| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282 | "use strict";Object.defineProperty(exports, "__esModule", {  value: true});exports.default = exports.SHOULD_STOP = exports.SHOULD_SKIP = exports.REMOVED = void 0;var virtualTypes = require("./lib/virtual-types.js");var _debug = require("debug");var _index = require("../index.js");var _index2 = require("../scope/index.js");var _t = require("@babel/types");var t = _t;var cache = require("../cache.js");var _generator = require("@babel/generator");var NodePath_ancestry = require("./ancestry.js");var NodePath_inference = require("./inference/index.js");var NodePath_replacement = require("./replacement.js");var NodePath_evaluation = require("./evaluation.js");var NodePath_conversion = require("./conversion.js");var NodePath_introspection = require("./introspection.js");var NodePath_context = require("./context.js");var NodePath_removal = require("./removal.js");var NodePath_modification = require("./modification.js");var NodePath_family = require("./family.js");var NodePath_comments = require("./comments.js");var NodePath_virtual_types_validator = require("./lib/virtual-types-validator.js");const {  validate} = _t;const debug = _debug("babel");const REMOVED = exports.REMOVED = 1 << 0;const SHOULD_STOP = exports.SHOULD_STOP = 1 << 1;const SHOULD_SKIP = exports.SHOULD_SKIP = 1 << 2;const NodePath_Final = exports.default = class NodePath {  constructor(hub, parent) {    this.contexts = [];    this.state = null;    this.opts = null;    this._traverseFlags = 0;    this.skipKeys = null;    this.parentPath = null;    this.container = null;    this.listKey = null;    this.key = null;    this.node = null;    this.type = null;    this.parent = parent;    this.hub = hub;    this.data = null;    this.context = null;    this.scope = null;  }  get removed() {    return (this._traverseFlags & 1) > 0;  }  set removed(v) {    if (v) this._traverseFlags |= 1;else this._traverseFlags &= -2;  }  get shouldStop() {    return (this._traverseFlags & 2) > 0;  }  set shouldStop(v) {    if (v) this._traverseFlags |= 2;else this._traverseFlags &= -3;  }  get shouldSkip() {    return (this._traverseFlags & 4) > 0;  }  set shouldSkip(v) {    if (v) this._traverseFlags |= 4;else this._traverseFlags &= -5;  }  static get({    hub,    parentPath,    parent,    container,    listKey,    key  }) {    if (!hub && parentPath) {      hub = parentPath.hub;    }    if (!parent) {      throw new Error("To get a node path the parent needs to exist");    }    const targetNode = container[key];    const paths = cache.getOrCreateCachedPaths(hub, parent);    let path = paths.get(targetNode);    if (!path) {      path = new NodePath(hub, parent);      if (targetNode) paths.set(targetNode, path);    }    path.setup(parentPath, container, listKey, key);    return path;  }  getScope(scope) {    return this.isScope() ? new _index2.default(this) : scope;  }  setData(key, val) {    if (this.data == null) {      this.data = Object.create(null);    }    return this.data[key] = val;  }  getData(key, def) {    if (this.data == null) {      this.data = Object.create(null);    }    let val = this.data[key];    if (val === undefined && def !== undefined) val = this.data[key] = def;    return val;  }  hasNode() {    return this.node != null;  }  buildCodeFrameError(msg, Error = SyntaxError) {    return this.hub.buildError(this.node, msg, Error);  }  traverse(visitor, state) {    (0, _index.default)(this.node, visitor, this.scope, state, this);  }  set(key, node) {    validate(this.node, key, node);    this.node[key] = node;  }  getPathLocation() {    const parts = [];    let path = this;    do {      let key = path.key;      if (path.inList) key = `${path.listKey}[${key}]`;      parts.unshift(key);    } while (path = path.parentPath);    return parts.join(".");  }  debug(message) {    if (!debug.enabled) return;    debug(`${this.getPathLocation()} ${this.type}: ${message}`);  }  toString() {    return (0, _generator.default)(this.node).code;  }  get inList() {    return !!this.listKey;  }  set inList(inList) {    if (!inList) {      this.listKey = null;    }  }  get parentKey() {    return this.listKey || this.key;  }};const methods = {  findParent: NodePath_ancestry.findParent,  find: NodePath_ancestry.find,  getFunctionParent: NodePath_ancestry.getFunctionParent,  getStatementParent: NodePath_ancestry.getStatementParent,  getEarliestCommonAncestorFrom: NodePath_ancestry.getEarliestCommonAncestorFrom,  getDeepestCommonAncestorFrom: NodePath_ancestry.getDeepestCommonAncestorFrom,  getAncestry: NodePath_ancestry.getAncestry,  isAncestor: NodePath_ancestry.isAncestor,  isDescendant: NodePath_ancestry.isDescendant,  inType: NodePath_ancestry.inType,  getTypeAnnotation: NodePath_inference.getTypeAnnotation,  _getTypeAnnotation: NodePath_inference._getTypeAnnotation,  isBaseType: NodePath_inference.isBaseType,  couldBeBaseType: NodePath_inference.couldBeBaseType,  baseTypeStrictlyMatches: NodePath_inference.baseTypeStrictlyMatches,  isGenericType: NodePath_inference.isGenericType,  replaceWithMultiple: NodePath_replacement.replaceWithMultiple,  replaceWithSourceString: NodePath_replacement.replaceWithSourceString,  replaceWith: NodePath_replacement.replaceWith,  _replaceWith: NodePath_replacement._replaceWith,  replaceExpressionWithStatements: NodePath_replacement.replaceExpressionWithStatements,  replaceInline: NodePath_replacement.replaceInline,  evaluateTruthy: NodePath_evaluation.evaluateTruthy,  evaluate: NodePath_evaluation.evaluate,  toComputedKey: NodePath_conversion.toComputedKey,  ensureBlock: NodePath_conversion.ensureBlock,  unwrapFunctionEnvironment: NodePath_conversion.unwrapFunctionEnvironment,  arrowFunctionToExpression: NodePath_conversion.arrowFunctionToExpression,  matchesPattern: NodePath_introspection.matchesPattern,  has: NodePath_introspection.has,  isStatic: NodePath_introspection.isStatic,  is: NodePath_introspection.is,  isnt: NodePath_introspection.isnt,  equals: NodePath_introspection.equals,  isNodeType: NodePath_introspection.isNodeType,  canHaveVariableDeclarationOrExpression: NodePath_introspection.canHaveVariableDeclarationOrExpression,  canSwapBetweenExpressionAndStatement: NodePath_introspection.canSwapBetweenExpressionAndStatement,  isCompletionRecord: NodePath_introspection.isCompletionRecord,  isStatementOrBlock: NodePath_introspection.isStatementOrBlock,  referencesImport: NodePath_introspection.referencesImport,  getSource: NodePath_introspection.getSource,  willIMaybeExecuteBefore: NodePath_introspection.willIMaybeExecuteBefore,  _guessExecutionStatusRelativeTo: NodePath_introspection._guessExecutionStatusRelativeTo,  resolve: NodePath_introspection.resolve,  _resolve: NodePath_introspection._resolve,  isConstantExpression: NodePath_introspection.isConstantExpression,  isInStrictMode: NodePath_introspection.isInStrictMode,  call: NodePath_context.call,  _call: NodePath_context._call,  isDenylisted: NodePath_context.isDenylisted,  isBlacklisted: NodePath_context.isBlacklisted,  visit: NodePath_context.visit,  skip: NodePath_context.skip,  skipKey: NodePath_context.skipKey,  stop: NodePath_context.stop,  setScope: NodePath_context.setScope,  setContext: NodePath_context.setContext,  resync: NodePath_context.resync,  _resyncParent: NodePath_context._resyncParent,  _resyncKey: NodePath_context._resyncKey,  _resyncList: NodePath_context._resyncList,  _resyncRemoved: NodePath_context._resyncRemoved,  popContext: NodePath_context.popContext,  pushContext: NodePath_context.pushContext,  setup: NodePath_context.setup,  setKey: NodePath_context.setKey,  requeue: NodePath_context.requeue,  _getQueueContexts: NodePath_context._getQueueContexts,  remove: NodePath_removal.remove,  _removeFromScope: NodePath_removal._removeFromScope,  _callRemovalHooks: NodePath_removal._callRemovalHooks,  _remove: NodePath_removal._remove,  _markRemoved: NodePath_removal._markRemoved,  _assertUnremoved: NodePath_removal._assertUnremoved,  insertBefore: NodePath_modification.insertBefore,  _containerInsert: NodePath_modification._containerInsert,  _containerInsertBefore: NodePath_modification._containerInsertBefore,  _containerInsertAfter: NodePath_modification._containerInsertAfter,  insertAfter: NodePath_modification.insertAfter,  updateSiblingKeys: NodePath_modification.updateSiblingKeys,  _verifyNodeList: NodePath_modification._verifyNodeList,  unshiftContainer: NodePath_modification.unshiftContainer,  pushContainer: NodePath_modification.pushContainer,  hoist: NodePath_modification.hoist,  getOpposite: NodePath_family.getOpposite,  getCompletionRecords: NodePath_family.getCompletionRecords,  getSibling: NodePath_family.getSibling,  getPrevSibling: NodePath_family.getPrevSibling,  getNextSibling: NodePath_family.getNextSibling,  getAllNextSiblings: NodePath_family.getAllNextSiblings,  getAllPrevSiblings: NodePath_family.getAllPrevSiblings,  get: NodePath_family.get,  _getKey: NodePath_family._getKey,  _getPattern: NodePath_family._getPattern,  getBindingIdentifiers: NodePath_family.getBindingIdentifiers,  getOuterBindingIdentifiers: NodePath_family.getOuterBindingIdentifiers,  getBindingIdentifierPaths: NodePath_family.getBindingIdentifierPaths,  getOuterBindingIdentifierPaths: NodePath_family.getOuterBindingIdentifierPaths,  shareCommentsWithSiblings: NodePath_comments.shareCommentsWithSiblings,  addComment: NodePath_comments.addComment,  addComments: NodePath_comments.addComments};Object.assign(NodePath_Final.prototype, methods);{  NodePath_Final.prototype.arrowFunctionToShadowed = NodePath_conversion[String("arrowFunctionToShadowed")];}{  NodePath_Final.prototype._guessExecutionStatusRelativeToDifferentFunctions = NodePath_introspection._guessExecutionStatusRelativeTo;}for (const type of t.TYPES) {  const typeKey = `is${type}`;  const fn = t[typeKey];  NodePath_Final.prototype[typeKey] = function (opts) {    return fn(this.node, opts);  };  NodePath_Final.prototype[`assert${type}`] = function (opts) {    if (!fn(this.node, opts)) {      throw new TypeError(`Expected node path of type ${type}`);    }  };}Object.assign(NodePath_Final.prototype, NodePath_virtual_types_validator);for (const type of Object.keys(virtualTypes)) {  if (type[0] === "_") continue;  if (!t.TYPES.includes(type)) t.TYPES.push(type);}//# sourceMappingURL=index.js.map
 |