{"version":3,"sources":["webpack:///./node_modules/@babel/traverse/lib/scope/lib/renamer.js","webpack:///./node_modules/@babel/traverse/lib/path/family.js","webpack:///./node_modules/@babel/traverse/lib/path/evaluation.js","webpack:///./node_modules/@babel/template/lib/string.js","webpack:///./node_modules/@babel/template/lib/formatters.js","webpack:///./node_modules/@babel/traverse/lib/path/lib/virtual-types.js","webpack:///./node_modules/@babel/traverse/lib/path/inference/index.js","webpack:///./node_modules/@babel/traverse/lib/cache.js","webpack:///./node_modules/@babel/traverse/lib/path/inference/inferers.js","webpack:///./node_modules/@babel/traverse/lib/path/removal.js","webpack:///./node_modules/@babel/traverse/lib/path/conversion.js","webpack:///./node_modules/@babel/template/lib/literal.js","webpack:///./node_modules/@babel/traverse/lib/path/inference/util.js","webpack:///./node_modules/@babel/traverse/lib/context.js","webpack:///./node_modules/@babel/template/lib/builder.js","webpack:///./node_modules/@babel/traverse/lib/traverse-node.js","webpack:///./node_modules/@babel/template/lib/parse.js","webpack:///./node_modules/@babel/traverse/lib/path/comments.js","webpack:///./node_modules/@babel/traverse/lib/path/introspection.js","webpack:///./node_modules/@babel/traverse/lib/path/lib/removal-hooks.js","webpack:///./node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js","webpack:///./node_modules/@babel/traverse/lib/scope/binding.js","webpack:///./node_modules/@babel/template/lib/populate.js","webpack:///./node_modules/@babel/traverse/lib/path/index.js","webpack:///./node_modules/@babel/traverse/lib/path/context.js","webpack:///./node_modules/@babel/highlight/lib/index.js","webpack:///./node_modules/@babel/traverse/lib/path/ancestry.js","webpack:///./node_modules/@babel/traverse/lib/path/replacement.js","webpack:///./node_modules/@babel/traverse/lib/visitors.js","webpack:///./node_modules/@babel/traverse/lib/hub.js","webpack:///./node_modules/@babel/traverse/lib/scope/index.js","webpack:///./node_modules/@babel/traverse/lib/index.js","webpack:///./node_modules/@babel/traverse/lib/path/lib/hoister.js","webpack:///./node_modules/@babel/traverse/lib/path/inference/inferer-reference.js","webpack:///./node_modules/@babel/template/lib/options.js","webpack:///./node_modules/@babel/template/lib/index.js","webpack:///./node_modules/@babel/traverse/lib/path/modification.js"],"names":["Object","defineProperty","exports","value","default","t","_t","_traverseNode","_visitors","_context","getAssignmentIdentifiers","renameVisitor","node","state","name","oldName","newName","path","scope","bindingIdentifierEquals","binding","identifier","skip","isMethod","requeueComputedKeyAndDecorators","call","key","_node$extra","shorthand","getBindingIdentifier","extra","isVariableDeclaration","ids","isAssignmentExpression","getOuterBindingIdentifiers","Renamer","this","parentDeclar","maybeExportDeclar","parentPath","isExportDeclaration","isExportDefaultDeclaration","declaration","isDeclaration","id","isExportAllDeclaration","splitExportDeclaration","find","isFunctionExpression","isClassExpression","bindingIds","maybeConvertFromExportDeclaration","blockToTraverse","arguments","block","skipKeys","discriminant","computed","isObjectMethod","decorators","traverseNode","explode","removeOwnBinding","bindings","maybeConvertFromClassFunctionDeclaration","maybeConvertFromClassFunctionExpression","_getKey","_getPattern","get","getAllNextSiblings","getAllPrevSiblings","getBindingIdentifierPaths","getBindingIdentifiers","getCompletionRecords","getNextSibling","getOpposite","getOuterBindingIdentifierPaths","getPrevSibling","getSibling","_index","_getAssignmentIdentifiers","_getBindingIdentifiers","_getOuterBindingIdentifiers","numericLiteral","unaryExpression","NORMAL_COMPLETION","BREAK_COMPLETION","NormalCompletion","type","BreakCompletion","addCompletionRecords","records","context","push","_getCompletionRecords","completionRecordForSwitch","cases","lastNormalCompletions","i","length","casePath","caseCompletions","normalCompletions","breakCompletions","c","normalCompletionToBreak","completions","forEach","replaceBreakStatementInBreakCompletion","reachable","isBreakStatement","label","replaceWith","remove","getStatementListCompletion","paths","canHaveBreak","newContext","assign","inCaseClause","isBlockStatement","shouldPopulateBreak","statementCompletions","every","some","pathCompletions","isIfStatement","isDoExpression","isFor","isWhile","isLabeledStatement","isProgram","isFunction","isTryStatement","isCatchClause","isSwitchStatement","isSwitchCase","map","r","parent","container","listKey","setContext","_key","sibling","siblings","parts","split","Array","isArray","_","part","duplicates","outerOnly","search","create","shift","keys","isIdentifier","_ids","isFunctionDeclaration","child","evaluate","evaluateTruthy","VALID_OBJECT_CALLEES","VALID_IDENTIFIER_CALLEES","INVALID_METHODS","isValidObjectCallee","val","includes","isValidIdentifierCallee","isInvalidMethod","res","confident","deopt","deoptPath","Globals","Map","undefined","Infinity","NaN","evaluateCached","seen","has","existing","resolved","item","set","_evaluate","isSequenceExpression","exprs","isStringLiteral","isNumericLiteral","isBooleanLiteral","isNullLiteral","isTemplateLiteral","evaluateQuasis","quasis","isTaggedTemplateExpression","isMemberExpression","object","property","getBinding","quasi","isConditionalExpression","testResult","isExpressionWrapper","isCallExpression","callee","isLiteral","isReferencedIdentifier","constantViolations","start","end","hasValue","resolve","isUnaryExpression","prefix","operator","argument","isClass","arg","isArrayExpression","arr","elems","elem","elemValue","isObjectExpression","obj","props","prop","isSpreadElement","keyPath","valuePath","isLogicalExpression","wasConfident","left","leftConfident","right","rightConfident","isBinaryExpression","Math","pow","func","global","hasOwnProperty","args","apply","raw","str","cooked","expr","String","stringTemplate","_options","_parse","_populate","formatter","code","opts","metadata","replacements","normalizeReplacements","unwrap","statements","statement","smart","program","expression","assertExpressionStatement","makeStatementFormatter","fn","validate","ast","body","slice","Error","stmt","Var","User","Statement","SpreadProperty","Scope","RestProperty","ReferencedMemberExpression","ReferencedIdentifier","Referenced","Pure","NumericLiteralTypeAnnotation","Generated","ForAwaitStatement","Flow","Expression","ExistentialTypeParam","BlockScoped","BindingIdentifier","_getTypeAnnotation","baseTypeStrictlyMatches","couldBeBaseType","getTypeAnnotation","isBaseType","isGenericType","inferers","anyTypeAnnotation","isAnyTypeAnnotation","isArrayTypeAnnotation","isBooleanTypeAnnotation","isEmptyTypeAnnotation","isFlowBaseAnnotation","isGenericTypeAnnotation","isMixedTypeAnnotation","isNumberTypeAnnotation","isStringTypeAnnotation","isTSArrayType","isTSTypeAnnotation","isTSTypeReference","isTupleTypeAnnotation","isTypeAnnotation","isUnionTypeAnnotation","isVoidTypeAnnotation","stringTypeAnnotation","voidTypeAnnotation","getData","typeAnnotation","setData","typeAnnotationInferringNodes","WeakSet","add","_inferer","inferer","validParent","delete","isVariableDeclarator","declar","declarParent","isForInStatement","isForOfStatement","baseName","soft","_isBaseType","type2","types","rightArg","genericName","typeName","clear","clearPath","clearScope","getCachedPaths","getOrCreateCachedPaths","pathsCache","WeakMap","nullHub","freeze","hub","_pathsCache$get","_hub","_hub2","_hub3","parents","ArrayExpression","AssignmentExpression","BinaryExpression","BooleanLiteral","CallExpression","ConditionalExpression","ClassDeclaration","ClassExpression","FunctionDeclaration","ArrowFunctionExpression","FunctionExpression","Func","enumerable","_infererReference","LogicalExpression","NewExpression","NullLiteral","NumericLiteral","ObjectExpression","ParenthesizedExpression","RegExpLiteral","RestElement","SequenceExpression","StringLiteral","TSAsExpression","TSNonNullExpression","TaggedTemplateExpression","TemplateLiteral","TypeCastExpression","UnaryExpression","UpdateExpression","VariableDeclarator","_util","BOOLEAN_BINARY_OPERATORS","BOOLEAN_UNARY_OPERATORS","NUMBER_BINARY_OPERATORS","NUMBER_UNARY_OPERATORS","STRING_UNARY_OPERATORS","arrayTypeAnnotation","booleanTypeAnnotation","buildMatchMemberExpression","genericTypeAnnotation","nullLiteralTypeAnnotation","numberTypeAnnotation","tupleTypeAnnotation","unionTypeAnnotation","argumentTypes","createUnionType","pop","isArrayFrom","isObjectKeys","isObjectValues","isObjectEntries","resolveCall","async","generator","returnType","_assertUnremoved","_callRemovalHooks","_markRemoved","_remove","_removeFromScope","_removalHooks","_cache","_replacement","_modification","_this$opts","resync","noScope","shareCommentsWithSiblings","removeBinding","hooks","splice","updateSiblingKeys","_replaceWith","_traverseFlags","SHOULD_SKIP","REMOVED","removed","buildCodeFrameError","arrowFunctionToExpression","ensureBlock","ensureFunctionName","toComputedKey","unwrapFunctionEnvironment","_template","arrowFunctionExpression","assignmentExpression","binaryExpression","blockStatement","callExpression","conditionalExpression","expressionStatement","jsxIdentifier","logicalExpression","LOGICAL_OPERATORS","memberExpression","metaProperty","objectExpression","restElement","returnStatement","sequenceExpression","spreadElement","stringLiteral","super","_super","thisExpression","toExpression","toBindingIdentifierName","isAssignmentPattern","isRestElement","getFunctionName","cloneNode","variableDeclaration","variableDeclarator","exportNamedDeclaration","exportSpecifier","inherits","isProperty","ReferenceError","bodyNode","stringPath","isStatement","setup","isArrowFunctionExpression","hoistFunctionEnvironment","setType","allowInsertArrow","allowInsertArrowWithRest","noNewArrows","_arguments$","specCompliant","self","_self$ensureFunctionN","thisBinding","fnPath","checkBinding","generateUidIdentifier","init","unshiftContainer","addHelper","arrowFunctionToShadowed","getSuperCallsVisitor","environmentVisitor","allSuperCalls","isSuper","arrowParent","thisEnvFn","findParent","p","isClassProperty","static","isClassPrivateProperty","inConstructor","isClassMethod","kind","thisPaths","argumentsPaths","newTargetPaths","superProps","superCalls","getScopeInformation","traverse","superBinding","getSuperBinding","superCall","loc","argumentsBinding","buildUndefinedNode","argumentsChild","argsRef","newTargetBinding","targetChild","targetRef","flatSuperProps","reduce","acc","superProp","concat","standardizeSuperProperty","superParentPath","isAssignment","isCall","isTaggedTemplate","tag","getSuperPropBinding","getThisBinding","hasSuperClass","thisChild","thisRef","isJSX","isLogicalOp","op","assignmentPath","isLogicalAssignment","tmp","generateDeclaredUidIdentifier","rightExpression","isUpdateExpression","updateExpr","computedKey","superClass","assignSuperThisVisitor","supers","replaceWithMultiple","argsBinding","propName","argsList","fnBody","method","unshift","valueIdent","cacheKey","data","getScopeInformationVisitor","isJSXMemberExpression","isJSXOpeningElement","curr","hasOwnBinding","rename","isExportNamedDeclaration","standaloneDeclaration","isClassDeclaration","exportExpr","isScope","needBindingRegistration","hasBinding","updatedDeclaration","updatedExportDeclaration","insertAfter","registerDeclaration","bindingIdentifiers","specifiers","aliasDeclar","refersOuterBindingVisitor","needsRename","stop","supportUnicodeId","test","startsWith","replace","originalNode","getOwnBinding","hasGlobal","getProgramParent","references","params","len","getFunctionArity","count","findIndex","param","literalTemplate","tpl","names","buildLiteralData","defaultReplacements","replacement","join","buildTemplateCode","parser","placeholderWhitelist","Set","from","placeholderPattern","preserveComments","syntacticPlaceholders","createFlowUnionType","createTSUnionType","createUnionTypeAnnotation","isFlowType","isTSType","v","VISITOR_KEYS","TraversalContext","queue","priorityQueue","enter","exit","notPriority","shouldVisit","visitQueue","visited","visitIndex","contexts","pushContext","visit","popContext","nodes","visitMultiple","visitSingle","createTemplateBuilder","_string","_literal","NO_PLACEHOLDER","defaultOpts","templateFnCache","templateAstCache","cachedOpts","extendedTrace","merge","builder","rootStack","error","stack","err","visitSelf","parentKey","parseAndBuildMetadata","_parser","_codeFrame","isExpressionStatement","isJSXIdentifier","isNewExpression","isPlaceholder","removePropertiesDeep","PATTERN","parseWithCodeFrame","syntactic","placeholders","placeholderNames","legacy","placeholderVisitorHandler","ancestors","_state$placeholderWhi","hasSyntacticPlaceholders","expectedNode","resolveAncestors","isDuplicate","index","parserOpts","plugins","allowReturnOutsideFunction","allowSuperOutsideMethod","sourceType","parse","message","codeFrameColumns","addComment","addComments","_addComment","_addComments","trailing","trailingComments","leading","leadingComments","prev","next","hasPrev","Boolean","hasNext","removeIfExisting","list","toRemove","filter","el","content","line","comments","_guessExecutionStatusRelativeTo","_resolve","canHaveVariableDeclarationOrExpression","canSwapBetweenExpressionAndStatement","getSource","isCompletionRecord","isConstantExpression","isInStrictMode","isNodeType","isStatementOrBlock","isStatic","matchesPattern","referencesImport","willIMaybeExecuteBefore","STATEMENT_OR_BLOCK_KEYS","isExpression","isType","_matchesPattern","pattern","allowPartial","allowInsideFunction","first","moduleSource","importName","isOptionalMemberExpression","isImportDeclaration","source","isImportDefaultSpecifier","isImportNamespaceSpecifier","isImportSpecifier","imported","getCode","target","getOuterFunction","getFunctionParent","isExecutionUncertain","isExecutionUncertainInList","maxIndex","_this$node","is","isnt","equals","SYMBOL_CHECKING","Symbol","_guessExecutionStatusRelativeToCached","base","cache","funcParent","_guessExecutionStatusRelativeToDifferentFunctionsCached","getAncestry","commonPath","commonIndex","indexOf","divergence","keyPosition","_guessExecutionStatusRelativeToDifferentFunctionsInternal","referencePaths","allStatus","childOfFunction","status","cached","nodeMap","result","dangerous","_resolved","constant","ret","isTypeCastExpression","targetKey","targetName","match","isNaN","isRegExpLiteral","noGlobals","strictParent","directive","directives","removeParent","declarations","expressions","isBinary","isLoop","isBindingIdentifier","isBlockScoped","isFlow","isForAwaitStatement","isGenerated","isPure","isReferenced","isReferencedMemberExpression","isRestProperty","isSpreadProperty","isUser","isVar","isBinding","nodeIsBlockScoped","nodeIsExpression","nodeIsFlow","isForStatement","isForXStatement","nodeIsRestElement","nodeIsReferenced","nodeIsScope","nodeIsStatement","nodeIsVar","react","isCompatTag","grandparent","constantsOnly","importKind","exportKind","_this$parentPath","isObjectPattern","_this$parentPath2","await","isExistentialTypeParam","isNumericLiteralTypeAnnotation","Binding","referenced","isDeclaredInLoop","reassign","clearValue","hasDeoptedValue","isFunctionParent","populatePlaceholders","emptyStatement","placeholder","placeholderName","reverse","applyReplacement","e","optional","items","SHOULD_STOP","virtualTypes","_debug","_index2","_generator","NodePath_ancestry","NodePath_inference","NodePath_replacement","NodePath_evaluation","NodePath_conversion","NodePath_introspection","NodePath_context","NodePath_removal","NodePath_modification","NodePath_family","NodePath_comments","NodePath_virtual_types_validator","debug","NodePath_Final","NodePath","targetNode","def","msg","SyntaxError","buildError","visitor","inList","enabled","getPathLocation","methods","getStatementParent","getEarliestCommonAncestorFrom","getDeepestCommonAncestorFrom","isAncestor","isDescendant","inType","replaceWithSourceString","replaceExpressionWithStatements","replaceInline","isDenylisted","skipKey","requeue","insertBefore","pushContainer","prototype","hoist","isBlacklisted","setScope","setKey","_guessExecutionStatusRelativeToDifferentFunctions","_call","_resyncParent","_resyncKey","_resyncList","_resyncRemoved","_getQueueContexts","_containerInsert","_containerInsertBefore","_containerInsertAfter","_verifyNodeList","TYPES","typeKey","TypeError","_removal","_opts$this$node$type","fns","then","_this$opts$denylist","denylist","blacklist","restoreContext","_this$opts$shouldSkip","shouldSkip","currentContext","shouldStop","_this$opts2","_this$scope","_path$opts","getScope","newContainer","pathToQueue","maybeQueue","isPrivate","decorator","highlight","shouldHighlight","_jsTokens","_helperValidatorIdentifier","_picocolors","_interopRequireWildcard","_getRequireWildcardCache","__esModule","n","__proto__","a","getOwnPropertyDescriptor","u","colors","process","FORCE_COLOR","createColors","compose","f","g","sometimesKeywords","getDefs","keyword","cyan","capitalized","yellow","punctuator","number","magenta","string","green","regex","comment","gray","invalid","white","bgRed","bold","NEWLINE","BRACKET","tokenize","JSX_TAG","getTokenType","token","offset","text","isKeyword","isStrictReservedWord","toLowerCase","exec","matchToToken","highlightTokens","defs","highlighted","colorize","options","isColorSupported","forceColor","pcWithForcedColor","getColors","chalk","chalkWithForcedColor","getChalk","constructor","level","callback","isFile","deepest","ancestries","earliest","ancestry","earliestKeyIndex","currentKeyIndex","lastCommonIndex","lastCommon","minDepth","depthLoop","shouldMatch","maybeDescendant","maybeAncestor","candidateTypes","FUNCTION_TYPES","awaitExpression","inheritLeadingComments","inheritTrailingComments","inheritsComments","isEmptyStatement","removeComments","yieldExpression","_getCachedPaths","column","expressionAST","removeProperties","replacementPath","nodePath","oldNode","_getCachedPaths2","declars","nodesAsSingleExpression","gatherSequenceExpressions","functionParent","isParentAsync","isParentGenerator","hoistVariables","completionRecords","loop","uid","newCallee","needToAwaitFunction","hasType","needToYieldFunction","ensureLastUndefined","consequent","alternate","explode$1","isExplodedVisitor","verify","verify$1","virtualTypesValidators","DEPRECATED_KEYS","DEPRECATED_ALIASES","FLIPPED_ALIAS_KEYS","__internal__deprecationWarning","deprecationWarning","isVirtualType","_exploded","nodeType","shouldIgnoreKey","ensureEntranceObjects","ensureCallbackArrays","wrapCheck","mergePair","aliases","deprecatedKey","deprecatedAlias","alias","_verified","validateVisitorMethods","visitors","visitorKey","states","wrapper","mergedVisitor","topVisitor","wrapWithStateOrWrapper","typeVisitor","nodeVisitor","oldVisitor","newVisitor","phase","newFn","toString","fnKey","validator","dest","src","_environmentVisitor","isObjectProperty","Hub","_renamer","_binding","_globals","NOT_LOCAL_BINDING","isClassBody","isModuleSpecifier","isPureish","isThisExpression","toIdentifier","isRecordExpression","isTupleExpression","isTopicReference","isMetaProperty","isPrivateName","gatherNodeParts","_node$specifiers","local","properties","meta","openingElement","openingFragment","namespace","collectorVisitor","parentScope","registerBinding","getBlockParent","isPattern","ExportDeclaration","reference","decl","assignments","labels","inited","globals","uids","crawling","_parent","_path","generateUid","_generateUid","hasLabel","hasReference","defaultName","generateUidBasedOnNode","dontPush","generateUidIdentifierBasedOnNode","duplicate","renamer","sep","repeat","console","log","violations","arrayLikeIsIterable","helperName","getLabel","registerLabel","declare","isTypeDeclaration","specifier","isTypeSpecifier","_this$getBinding","bindingPath","declarators","checkBlockScopedCollisions","_node$decorators","_node$decorators2","_node$decorators3","elements","crawl","programParent","typeVisitors","addGlobal","registerConstantViolation","ref","getPatternParent","unique","blockHoist","_blockHoist","dataKey","declarPath","declarator","isBlockParent","kinds","previousPath","_previousPath","_this$getBinding2","noUids","hasUid","contextVariables","_this$parent","info","_this$getBinding3","emit","firstId","builtin","traverseFast","hasDenylistedType","cheap","clearNode","tree","denylistTypes","_t2","jsxExpressionContainer","referenceVisitor","breakOnScopePaths","violation","mutableBinding","PathHoister","scopes","attachAfter","isCompatibleScope","_getAttachmentPath","targetScope","bindingParentPath","getAttachmentParentForPath","violationPath","hasOwnParamBindings","getNextScopeAttachmentParent","bodies","getCompatibleScopes","attachTo","getAttachmentPath","insertFn","attached","isJSXElement","children","_default","BOOLEAN_NUMBER_BINARY_OPERATORS","createTypeAnnotationBasedOnTypeof","getTypeAnnotationBindingConstantViolations","functionConstantViolations","getConstantViolationsBefore","testType","getConditionalAnnotation","testConstantViolations","ifStatement","functions","inferAnnotationFromBinaryExpression","typeofPath","typePath","typeValue","getParentConditionalPath","_excluded","_objectWithoutPropertiesLoose","excluded","sourceKeys","b","_ref","RegExp","formatters","_builder","bind","_hoister","assertExpression","nodes_","shouldInsertCurrentNode","_this$context","to","last","isHiddenInSequenceExpression","isAlmostConstantAssignment","blockScope","temp","fromIndex","incrementBy","verifiedNodes","hoister","run"],"mappings":"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","file":"js/Production~2f50458f.383af60e.js","sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar t = require(\"@babel/types\");\nvar _t = t;\nvar _traverseNode = require(\"../../traverse-node.js\");\nvar _visitors = require(\"../../visitors.js\");\nvar _context = require(\"../../path/context.js\");\nconst {\n getAssignmentIdentifiers\n} = _t;\nconst renameVisitor = {\n ReferencedIdentifier({\n node\n }, state) {\n if (node.name === state.oldName) {\n node.name = state.newName;\n }\n },\n Scope(path, state) {\n if (!path.scope.bindingIdentifierEquals(state.oldName, state.binding.identifier)) {\n path.skip();\n if (path.isMethod()) {\n if (!path.requeueComputedKeyAndDecorators) {\n _context.requeueComputedKeyAndDecorators.call(path);\n } else {\n path.requeueComputedKeyAndDecorators();\n }\n }\n }\n },\n ObjectProperty({\n node,\n scope\n }, state) {\n const {\n name\n } = node.key;\n if (node.shorthand && (name === state.oldName || name === state.newName) && scope.getBindingIdentifier(name) === state.binding.identifier) {\n node.shorthand = false;\n {\n var _node$extra;\n if ((_node$extra = node.extra) != null && _node$extra.shorthand) node.extra.shorthand = false;\n }\n }\n },\n \"AssignmentExpression|Declaration|VariableDeclarator\"(path, state) {\n if (path.isVariableDeclaration()) return;\n const ids = path.isAssignmentExpression() ? getAssignmentIdentifiers(path.node) : path.getOuterBindingIdentifiers();\n for (const name in ids) {\n if (name === state.oldName) ids[name].name = state.newName;\n }\n }\n};\nclass Renamer {\n constructor(binding, oldName, newName) {\n this.newName = newName;\n this.oldName = oldName;\n this.binding = binding;\n }\n maybeConvertFromExportDeclaration(parentDeclar) {\n const maybeExportDeclar = parentDeclar.parentPath;\n if (!maybeExportDeclar.isExportDeclaration()) {\n return;\n }\n if (maybeExportDeclar.isExportDefaultDeclaration()) {\n const {\n declaration\n } = maybeExportDeclar.node;\n if (t.isDeclaration(declaration) && !declaration.id) {\n return;\n }\n }\n if (maybeExportDeclar.isExportAllDeclaration()) {\n return;\n }\n maybeExportDeclar.splitExportDeclaration();\n }\n maybeConvertFromClassFunctionDeclaration(path) {\n return path;\n }\n maybeConvertFromClassFunctionExpression(path) {\n return path;\n }\n rename() {\n const {\n binding,\n oldName,\n newName\n } = this;\n const {\n scope,\n path\n } = binding;\n const parentDeclar = path.find(path => path.isDeclaration() || path.isFunctionExpression() || path.isClassExpression());\n if (parentDeclar) {\n const bindingIds = parentDeclar.getOuterBindingIdentifiers();\n if (bindingIds[oldName] === binding.identifier) {\n this.maybeConvertFromExportDeclaration(parentDeclar);\n }\n }\n const blockToTraverse = arguments[0] || scope.block;\n const skipKeys = {\n discriminant: true\n };\n if (t.isMethod(blockToTraverse)) {\n if (blockToTraverse.computed) {\n skipKeys.key = true;\n }\n if (!t.isObjectMethod(blockToTraverse)) {\n skipKeys.decorators = true;\n }\n }\n (0, _traverseNode.traverseNode)(blockToTraverse, (0, _visitors.explode)(renameVisitor), scope, this, scope.path, skipKeys);\n if (!arguments[0]) {\n scope.removeOwnBinding(oldName);\n scope.bindings[newName] = binding;\n this.binding.identifier.name = newName;\n }\n if (parentDeclar) {\n this.maybeConvertFromClassFunctionDeclaration(path);\n this.maybeConvertFromClassFunctionExpression(path);\n }\n }\n}\nexports.default = Renamer;\n\n//# sourceMappingURL=renamer.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports._getKey = _getKey;\nexports._getPattern = _getPattern;\nexports.get = get;\nexports.getAllNextSiblings = getAllNextSiblings;\nexports.getAllPrevSiblings = getAllPrevSiblings;\nexports.getAssignmentIdentifiers = getAssignmentIdentifiers;\nexports.getBindingIdentifierPaths = getBindingIdentifierPaths;\nexports.getBindingIdentifiers = getBindingIdentifiers;\nexports.getCompletionRecords = getCompletionRecords;\nexports.getNextSibling = getNextSibling;\nexports.getOpposite = getOpposite;\nexports.getOuterBindingIdentifierPaths = getOuterBindingIdentifierPaths;\nexports.getOuterBindingIdentifiers = getOuterBindingIdentifiers;\nexports.getPrevSibling = getPrevSibling;\nexports.getSibling = getSibling;\nvar _index = require(\"./index.js\");\nvar _t = require(\"@babel/types\");\nconst {\n getAssignmentIdentifiers: _getAssignmentIdentifiers,\n getBindingIdentifiers: _getBindingIdentifiers,\n getOuterBindingIdentifiers: _getOuterBindingIdentifiers,\n numericLiteral,\n unaryExpression\n} = _t;\nconst NORMAL_COMPLETION = 0;\nconst BREAK_COMPLETION = 1;\nfunction NormalCompletion(path) {\n return {\n type: NORMAL_COMPLETION,\n path\n };\n}\nfunction BreakCompletion(path) {\n return {\n type: BREAK_COMPLETION,\n path\n };\n}\nfunction getOpposite() {\n if (this.key === \"left\") {\n return this.getSibling(\"right\");\n } else if (this.key === \"right\") {\n return this.getSibling(\"left\");\n }\n return null;\n}\nfunction addCompletionRecords(path, records, context) {\n if (path) {\n records.push(..._getCompletionRecords(path, context));\n }\n return records;\n}\nfunction completionRecordForSwitch(cases, records, context) {\n let lastNormalCompletions = [];\n for (let i = 0; i < cases.length; i++) {\n const casePath = cases[i];\n const caseCompletions = _getCompletionRecords(casePath, context);\n const normalCompletions = [];\n const breakCompletions = [];\n for (const c of caseCompletions) {\n if (c.type === NORMAL_COMPLETION) {\n normalCompletions.push(c);\n }\n if (c.type === BREAK_COMPLETION) {\n breakCompletions.push(c);\n }\n }\n if (normalCompletions.length) {\n lastNormalCompletions = normalCompletions;\n }\n records.push(...breakCompletions);\n }\n records.push(...lastNormalCompletions);\n return records;\n}\nfunction normalCompletionToBreak(completions) {\n completions.forEach(c => {\n c.type = BREAK_COMPLETION;\n });\n}\nfunction replaceBreakStatementInBreakCompletion(completions, reachable) {\n completions.forEach(c => {\n if (c.path.isBreakStatement({\n label: null\n })) {\n if (reachable) {\n c.path.replaceWith(unaryExpression(\"void\", numericLiteral(0)));\n } else {\n c.path.remove();\n }\n }\n });\n}\nfunction getStatementListCompletion(paths, context) {\n const completions = [];\n if (context.canHaveBreak) {\n let lastNormalCompletions = [];\n for (let i = 0; i < paths.length; i++) {\n const path = paths[i];\n const newContext = Object.assign({}, context, {\n inCaseClause: false\n });\n if (path.isBlockStatement() && (context.inCaseClause || context.shouldPopulateBreak)) {\n newContext.shouldPopulateBreak = true;\n } else {\n newContext.shouldPopulateBreak = false;\n }\n const statementCompletions = _getCompletionRecords(path, newContext);\n if (statementCompletions.length > 0 && statementCompletions.every(c => c.type === BREAK_COMPLETION)) {\n if (lastNormalCompletions.length > 0 && statementCompletions.every(c => c.path.isBreakStatement({\n label: null\n }))) {\n normalCompletionToBreak(lastNormalCompletions);\n completions.push(...lastNormalCompletions);\n if (lastNormalCompletions.some(c => c.path.isDeclaration())) {\n completions.push(...statementCompletions);\n replaceBreakStatementInBreakCompletion(statementCompletions, true);\n }\n replaceBreakStatementInBreakCompletion(statementCompletions, false);\n } else {\n completions.push(...statementCompletions);\n if (!context.shouldPopulateBreak) {\n replaceBreakStatementInBreakCompletion(statementCompletions, true);\n }\n }\n break;\n }\n if (i === paths.length - 1) {\n completions.push(...statementCompletions);\n } else {\n lastNormalCompletions = [];\n for (let i = 0; i < statementCompletions.length; i++) {\n const c = statementCompletions[i];\n if (c.type === BREAK_COMPLETION) {\n completions.push(c);\n }\n if (c.type === NORMAL_COMPLETION) {\n lastNormalCompletions.push(c);\n }\n }\n }\n }\n } else if (paths.length) {\n for (let i = paths.length - 1; i >= 0; i--) {\n const pathCompletions = _getCompletionRecords(paths[i], context);\n if (pathCompletions.length > 1 || pathCompletions.length === 1 && !pathCompletions[0].path.isVariableDeclaration()) {\n completions.push(...pathCompletions);\n break;\n }\n }\n }\n return completions;\n}\nfunction _getCompletionRecords(path, context) {\n let records = [];\n if (path.isIfStatement()) {\n records = addCompletionRecords(path.get(\"consequent\"), records, context);\n records = addCompletionRecords(path.get(\"alternate\"), records, context);\n } else if (path.isDoExpression() || path.isFor() || path.isWhile() || path.isLabeledStatement()) {\n return addCompletionRecords(path.get(\"body\"), records, context);\n } else if (path.isProgram() || path.isBlockStatement()) {\n return getStatementListCompletion(path.get(\"body\"), context);\n } else if (path.isFunction()) {\n return _getCompletionRecords(path.get(\"body\"), context);\n } else if (path.isTryStatement()) {\n records = addCompletionRecords(path.get(\"block\"), records, context);\n records = addCompletionRecords(path.get(\"handler\"), records, context);\n } else if (path.isCatchClause()) {\n return addCompletionRecords(path.get(\"body\"), records, context);\n } else if (path.isSwitchStatement()) {\n return completionRecordForSwitch(path.get(\"cases\"), records, context);\n } else if (path.isSwitchCase()) {\n return getStatementListCompletion(path.get(\"consequent\"), {\n canHaveBreak: true,\n shouldPopulateBreak: false,\n inCaseClause: true\n });\n } else if (path.isBreakStatement()) {\n records.push(BreakCompletion(path));\n } else {\n records.push(NormalCompletion(path));\n }\n return records;\n}\nfunction getCompletionRecords() {\n const records = _getCompletionRecords(this, {\n canHaveBreak: false,\n shouldPopulateBreak: false,\n inCaseClause: false\n });\n return records.map(r => r.path);\n}\nfunction getSibling(key) {\n return _index.default.get({\n parentPath: this.parentPath,\n parent: this.parent,\n container: this.container,\n listKey: this.listKey,\n key: key\n }).setContext(this.context);\n}\nfunction getPrevSibling() {\n return this.getSibling(this.key - 1);\n}\nfunction getNextSibling() {\n return this.getSibling(this.key + 1);\n}\nfunction getAllNextSiblings() {\n let _key = this.key;\n let sibling = this.getSibling(++_key);\n const siblings = [];\n while (sibling.node) {\n siblings.push(sibling);\n sibling = this.getSibling(++_key);\n }\n return siblings;\n}\nfunction getAllPrevSiblings() {\n let _key = this.key;\n let sibling = this.getSibling(--_key);\n const siblings = [];\n while (sibling.node) {\n siblings.push(sibling);\n sibling = this.getSibling(--_key);\n }\n return siblings;\n}\nfunction get(key, context = true) {\n if (context === true) context = this.context;\n const parts = key.split(\".\");\n if (parts.length === 1) {\n return _getKey.call(this, key, context);\n } else {\n return _getPattern.call(this, parts, context);\n }\n}\nfunction _getKey(key, context) {\n const node = this.node;\n const container = node[key];\n if (Array.isArray(container)) {\n return container.map((_, i) => {\n return _index.default.get({\n listKey: key,\n parentPath: this,\n parent: node,\n container: container,\n key: i\n }).setContext(context);\n });\n } else {\n return _index.default.get({\n parentPath: this,\n parent: node,\n container: node,\n key: key\n }).setContext(context);\n }\n}\nfunction _getPattern(parts, context) {\n let path = this;\n for (const part of parts) {\n if (part === \".\") {\n path = path.parentPath;\n } else {\n if (Array.isArray(path)) {\n path = path[part];\n } else {\n path = path.get(part, context);\n }\n }\n }\n return path;\n}\nfunction getAssignmentIdentifiers() {\n return _getAssignmentIdentifiers(this.node);\n}\nfunction getBindingIdentifiers(duplicates) {\n return _getBindingIdentifiers(this.node, duplicates);\n}\nfunction getOuterBindingIdentifiers(duplicates) {\n return _getOuterBindingIdentifiers(this.node, duplicates);\n}\nfunction getBindingIdentifierPaths(duplicates = false, outerOnly = false) {\n const path = this;\n const search = [path];\n const ids = Object.create(null);\n while (search.length) {\n const id = search.shift();\n if (!id) continue;\n if (!id.node) continue;\n const keys = _getBindingIdentifiers.keys[id.node.type];\n if (id.isIdentifier()) {\n if (duplicates) {\n const _ids = ids[id.node.name] = ids[id.node.name] || [];\n _ids.push(id);\n } else {\n ids[id.node.name] = id;\n }\n continue;\n }\n if (id.isExportDeclaration()) {\n const declaration = id.get(\"declaration\");\n if (declaration.isDeclaration()) {\n search.push(declaration);\n }\n continue;\n }\n if (outerOnly) {\n if (id.isFunctionDeclaration()) {\n search.push(id.get(\"id\"));\n continue;\n }\n if (id.isFunctionExpression()) {\n continue;\n }\n }\n if (keys) {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const child = id.get(key);\n if (Array.isArray(child)) {\n search.push(...child);\n } else if (child.node) {\n search.push(child);\n }\n }\n }\n }\n return ids;\n}\nfunction getOuterBindingIdentifierPaths(duplicates = false) {\n return this.getBindingIdentifierPaths(duplicates, true);\n}\n\n//# sourceMappingURL=family.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.evaluate = evaluate;\nexports.evaluateTruthy = evaluateTruthy;\nconst VALID_OBJECT_CALLEES = [\"Number\", \"String\", \"Math\"];\nconst VALID_IDENTIFIER_CALLEES = [\"isFinite\", \"isNaN\", \"parseFloat\", \"parseInt\", \"decodeURI\", \"decodeURIComponent\", \"encodeURI\", \"encodeURIComponent\", null, null];\nconst INVALID_METHODS = [\"random\"];\nfunction isValidObjectCallee(val) {\n return VALID_OBJECT_CALLEES.includes(val);\n}\nfunction isValidIdentifierCallee(val) {\n return VALID_IDENTIFIER_CALLEES.includes(val);\n}\nfunction isInvalidMethod(val) {\n return INVALID_METHODS.includes(val);\n}\nfunction evaluateTruthy() {\n const res = this.evaluate();\n if (res.confident) return !!res.value;\n}\nfunction deopt(path, state) {\n if (!state.confident) return;\n state.deoptPath = path;\n state.confident = false;\n}\nconst Globals = new Map([[\"undefined\", undefined], [\"Infinity\", Infinity], [\"NaN\", NaN]]);\nfunction evaluateCached(path, state) {\n const {\n node\n } = path;\n const {\n seen\n } = state;\n if (seen.has(node)) {\n const existing = seen.get(node);\n if (existing.resolved) {\n return existing.value;\n } else {\n deopt(path, state);\n return;\n }\n } else {\n const item = {\n resolved: false\n };\n seen.set(node, item);\n const val = _evaluate(path, state);\n if (state.confident) {\n item.resolved = true;\n item.value = val;\n }\n return val;\n }\n}\nfunction _evaluate(path, state) {\n if (!state.confident) return;\n if (path.isSequenceExpression()) {\n const exprs = path.get(\"expressions\");\n return evaluateCached(exprs[exprs.length - 1], state);\n }\n if (path.isStringLiteral() || path.isNumericLiteral() || path.isBooleanLiteral()) {\n return path.node.value;\n }\n if (path.isNullLiteral()) {\n return null;\n }\n if (path.isTemplateLiteral()) {\n return evaluateQuasis(path, path.node.quasis, state);\n }\n if (path.isTaggedTemplateExpression() && path.get(\"tag\").isMemberExpression()) {\n const object = path.get(\"tag.object\");\n const {\n node: {\n name\n }\n } = object;\n const property = path.get(\"tag.property\");\n if (object.isIdentifier() && name === \"String\" && !path.scope.getBinding(name) && property.isIdentifier() && property.node.name === \"raw\") {\n return evaluateQuasis(path, path.node.quasi.quasis, state, true);\n }\n }\n if (path.isConditionalExpression()) {\n const testResult = evaluateCached(path.get(\"test\"), state);\n if (!state.confident) return;\n if (testResult) {\n return evaluateCached(path.get(\"consequent\"), state);\n } else {\n return evaluateCached(path.get(\"alternate\"), state);\n }\n }\n if (path.isExpressionWrapper()) {\n return evaluateCached(path.get(\"expression\"), state);\n }\n if (path.isMemberExpression() && !path.parentPath.isCallExpression({\n callee: path.node\n })) {\n const property = path.get(\"property\");\n const object = path.get(\"object\");\n if (object.isLiteral()) {\n const value = object.node.value;\n const type = typeof value;\n let key = null;\n if (path.node.computed) {\n key = evaluateCached(property, state);\n if (!state.confident) return;\n } else if (property.isIdentifier()) {\n key = property.node.name;\n }\n if ((type === \"number\" || type === \"string\") && key != null && (typeof key === \"number\" || typeof key === \"string\")) {\n return value[key];\n }\n }\n }\n if (path.isReferencedIdentifier()) {\n const binding = path.scope.getBinding(path.node.name);\n if (binding) {\n if (binding.constantViolations.length > 0 || path.node.start < binding.path.node.end) {\n deopt(binding.path, state);\n return;\n }\n if (binding.hasValue) {\n return binding.value;\n }\n }\n const name = path.node.name;\n if (Globals.has(name)) {\n if (!binding) {\n return Globals.get(name);\n }\n deopt(binding.path, state);\n return;\n }\n const resolved = path.resolve();\n if (resolved === path) {\n deopt(path, state);\n return;\n } else {\n return evaluateCached(resolved, state);\n }\n }\n if (path.isUnaryExpression({\n prefix: true\n })) {\n if (path.node.operator === \"void\") {\n return undefined;\n }\n const argument = path.get(\"argument\");\n if (path.node.operator === \"typeof\" && (argument.isFunction() || argument.isClass())) {\n return \"function\";\n }\n const arg = evaluateCached(argument, state);\n if (!state.confident) return;\n switch (path.node.operator) {\n case \"!\":\n return !arg;\n case \"+\":\n return +arg;\n case \"-\":\n return -arg;\n case \"~\":\n return ~arg;\n case \"typeof\":\n return typeof arg;\n }\n }\n if (path.isArrayExpression()) {\n const arr = [];\n const elems = path.get(\"elements\");\n for (const elem of elems) {\n const elemValue = elem.evaluate();\n if (elemValue.confident) {\n arr.push(elemValue.value);\n } else {\n deopt(elemValue.deopt, state);\n return;\n }\n }\n return arr;\n }\n if (path.isObjectExpression()) {\n const obj = {};\n const props = path.get(\"properties\");\n for (const prop of props) {\n if (prop.isObjectMethod() || prop.isSpreadElement()) {\n deopt(prop, state);\n return;\n }\n const keyPath = prop.get(\"key\");\n let key;\n if (prop.node.computed) {\n key = keyPath.evaluate();\n if (!key.confident) {\n deopt(key.deopt, state);\n return;\n }\n key = key.value;\n } else if (keyPath.isIdentifier()) {\n key = keyPath.node.name;\n } else {\n key = keyPath.node.value;\n }\n const valuePath = prop.get(\"value\");\n let value = valuePath.evaluate();\n if (!value.confident) {\n deopt(value.deopt, state);\n return;\n }\n value = value.value;\n obj[key] = value;\n }\n return obj;\n }\n if (path.isLogicalExpression()) {\n const wasConfident = state.confident;\n const left = evaluateCached(path.get(\"left\"), state);\n const leftConfident = state.confident;\n state.confident = wasConfident;\n const right = evaluateCached(path.get(\"right\"), state);\n const rightConfident = state.confident;\n switch (path.node.operator) {\n case \"||\":\n state.confident = leftConfident && (!!left || rightConfident);\n if (!state.confident) return;\n return left || right;\n case \"&&\":\n state.confident = leftConfident && (!left || rightConfident);\n if (!state.confident) return;\n return left && right;\n case \"??\":\n state.confident = leftConfident && (left != null || rightConfident);\n if (!state.confident) return;\n return left != null ? left : right;\n }\n }\n if (path.isBinaryExpression()) {\n const left = evaluateCached(path.get(\"left\"), state);\n if (!state.confident) return;\n const right = evaluateCached(path.get(\"right\"), state);\n if (!state.confident) return;\n switch (path.node.operator) {\n case \"-\":\n return left - right;\n case \"+\":\n return left + right;\n case \"/\":\n return left / right;\n case \"*\":\n return left * right;\n case \"%\":\n return left % right;\n case \"**\":\n return Math.pow(left, right);\n case \"<\":\n return left < right;\n case \">\":\n return left > right;\n case \"<=\":\n return left <= right;\n case \">=\":\n return left >= right;\n case \"==\":\n return left == right;\n case \"!=\":\n return left != right;\n case \"===\":\n return left === right;\n case \"!==\":\n return left !== right;\n case \"|\":\n return left | right;\n case \"&\":\n return left & right;\n case \"^\":\n return left ^ right;\n case \"<<\":\n return left << right;\n case \">>\":\n return left >> right;\n case \">>>\":\n return left >>> right;\n }\n }\n if (path.isCallExpression()) {\n const callee = path.get(\"callee\");\n let context;\n let func;\n if (callee.isIdentifier() && !path.scope.getBinding(callee.node.name) && (isValidObjectCallee(callee.node.name) || isValidIdentifierCallee(callee.node.name))) {\n func = global[callee.node.name];\n }\n if (callee.isMemberExpression()) {\n const object = callee.get(\"object\");\n const property = callee.get(\"property\");\n if (object.isIdentifier() && property.isIdentifier() && isValidObjectCallee(object.node.name) && !isInvalidMethod(property.node.name)) {\n context = global[object.node.name];\n const key = property.node.name;\n if (hasOwnProperty.call(context, key)) {\n func = context[key];\n }\n }\n if (object.isLiteral() && property.isIdentifier()) {\n const type = typeof object.node.value;\n if (type === \"string\" || type === \"number\") {\n context = object.node.value;\n func = context[property.node.name];\n }\n }\n }\n if (func) {\n const args = path.get(\"arguments\").map(arg => evaluateCached(arg, state));\n if (!state.confident) return;\n return func.apply(context, args);\n }\n }\n deopt(path, state);\n}\nfunction evaluateQuasis(path, quasis, state, raw = false) {\n let str = \"\";\n let i = 0;\n const exprs = path.isTemplateLiteral() ? path.get(\"expressions\") : path.get(\"quasi.expressions\");\n for (const elem of quasis) {\n if (!state.confident) break;\n str += raw ? elem.value.raw : elem.value.cooked;\n const expr = exprs[i++];\n if (expr) str += String(evaluateCached(expr, state));\n }\n if (!state.confident) return;\n return str;\n}\nfunction evaluate() {\n const state = {\n confident: true,\n deoptPath: null,\n seen: new Map()\n };\n let value = evaluateCached(this, state);\n if (!state.confident) value = undefined;\n return {\n confident: state.confident,\n deopt: state.deoptPath,\n value: value\n };\n}\n\n//# sourceMappingURL=evaluation.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = stringTemplate;\nvar _options = require(\"./options.js\");\nvar _parse = require(\"./parse.js\");\nvar _populate = require(\"./populate.js\");\nfunction stringTemplate(formatter, code, opts) {\n code = formatter.code(code);\n let metadata;\n return arg => {\n const replacements = (0, _options.normalizeReplacements)(arg);\n if (!metadata) metadata = (0, _parse.default)(formatter, code, opts);\n return formatter.unwrap((0, _populate.default)(metadata, replacements));\n };\n}\n\n//# sourceMappingURL=string.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.statements = exports.statement = exports.smart = exports.program = exports.expression = void 0;\nvar _t = require(\"@babel/types\");\nconst {\n assertExpressionStatement\n} = _t;\nfunction makeStatementFormatter(fn) {\n return {\n code: str => `/* @babel/template */;\\n${str}`,\n validate: () => {},\n unwrap: ast => {\n return fn(ast.program.body.slice(1));\n }\n };\n}\nconst smart = exports.smart = makeStatementFormatter(body => {\n if (body.length > 1) {\n return body;\n } else {\n return body[0];\n }\n});\nconst statements = exports.statements = makeStatementFormatter(body => body);\nconst statement = exports.statement = makeStatementFormatter(body => {\n if (body.length === 0) {\n throw new Error(\"Found nothing to return.\");\n }\n if (body.length > 1) {\n throw new Error(\"Found multiple statements but wanted one\");\n }\n return body[0];\n});\nconst expression = exports.expression = {\n code: str => `(\\n${str}\\n)`,\n validate: ast => {\n if (ast.program.body.length > 1) {\n throw new Error(\"Found multiple statements but wanted one\");\n }\n if (expression.unwrap(ast).start === 0) {\n throw new Error(\"Parse result included parens.\");\n }\n },\n unwrap: ({\n program\n }) => {\n const [stmt] = program.body;\n assertExpressionStatement(stmt);\n return stmt.expression;\n }\n};\nconst program = exports.program = {\n code: str => str,\n validate: () => {},\n unwrap: ast => ast.program\n};\n\n//# sourceMappingURL=formatters.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Var = exports.User = exports.Statement = exports.SpreadProperty = exports.Scope = exports.RestProperty = exports.ReferencedMemberExpression = exports.ReferencedIdentifier = exports.Referenced = exports.Pure = exports.NumericLiteralTypeAnnotation = exports.Generated = exports.ForAwaitStatement = exports.Flow = exports.Expression = exports.ExistentialTypeParam = exports.BlockScoped = exports.BindingIdentifier = void 0;\nconst ReferencedIdentifier = exports.ReferencedIdentifier = [\"Identifier\", \"JSXIdentifier\"];\nconst ReferencedMemberExpression = exports.ReferencedMemberExpression = [\"MemberExpression\"];\nconst BindingIdentifier = exports.BindingIdentifier = [\"Identifier\"];\nconst Statement = exports.Statement = [\"Statement\"];\nconst Expression = exports.Expression = [\"Expression\"];\nconst Scope = exports.Scope = [\"Scopable\", \"Pattern\"];\nconst Referenced = exports.Referenced = null;\nconst BlockScoped = exports.BlockScoped = null;\nconst Var = exports.Var = [\"VariableDeclaration\"];\nconst User = exports.User = null;\nconst Generated = exports.Generated = null;\nconst Pure = exports.Pure = null;\nconst Flow = exports.Flow = [\"Flow\", \"ImportDeclaration\", \"ExportDeclaration\", \"ImportSpecifier\"];\nconst RestProperty = exports.RestProperty = [\"RestElement\"];\nconst SpreadProperty = exports.SpreadProperty = [\"RestElement\"];\nconst ExistentialTypeParam = exports.ExistentialTypeParam = [\"ExistsTypeAnnotation\"];\nconst NumericLiteralTypeAnnotation = exports.NumericLiteralTypeAnnotation = [\"NumberLiteralTypeAnnotation\"];\nconst ForAwaitStatement = exports.ForAwaitStatement = [\"ForOfStatement\"];\n\n//# sourceMappingURL=virtual-types.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports._getTypeAnnotation = _getTypeAnnotation;\nexports.baseTypeStrictlyMatches = baseTypeStrictlyMatches;\nexports.couldBeBaseType = couldBeBaseType;\nexports.getTypeAnnotation = getTypeAnnotation;\nexports.isBaseType = isBaseType;\nexports.isGenericType = isGenericType;\nvar inferers = require(\"./inferers.js\");\nvar _t = require(\"@babel/types\");\nconst {\n anyTypeAnnotation,\n isAnyTypeAnnotation,\n isArrayTypeAnnotation,\n isBooleanTypeAnnotation,\n isEmptyTypeAnnotation,\n isFlowBaseAnnotation,\n isGenericTypeAnnotation,\n isIdentifier,\n isMixedTypeAnnotation,\n isNumberTypeAnnotation,\n isStringTypeAnnotation,\n isTSArrayType,\n isTSTypeAnnotation,\n isTSTypeReference,\n isTupleTypeAnnotation,\n isTypeAnnotation,\n isUnionTypeAnnotation,\n isVoidTypeAnnotation,\n stringTypeAnnotation,\n voidTypeAnnotation\n} = _t;\nfunction getTypeAnnotation() {\n let type = this.getData(\"typeAnnotation\");\n if (type != null) {\n return type;\n }\n type = _getTypeAnnotation.call(this) || anyTypeAnnotation();\n if (isTypeAnnotation(type) || isTSTypeAnnotation(type)) {\n type = type.typeAnnotation;\n }\n this.setData(\"typeAnnotation\", type);\n return type;\n}\nconst typeAnnotationInferringNodes = new WeakSet();\nfunction _getTypeAnnotation() {\n const node = this.node;\n if (!node) {\n if (this.key === \"init\" && this.parentPath.isVariableDeclarator()) {\n const declar = this.parentPath.parentPath;\n const declarParent = declar.parentPath;\n if (declar.key === \"left\" && declarParent.isForInStatement()) {\n return stringTypeAnnotation();\n }\n if (declar.key === \"left\" && declarParent.isForOfStatement()) {\n return anyTypeAnnotation();\n }\n return voidTypeAnnotation();\n } else {\n return;\n }\n }\n if (node.typeAnnotation) {\n return node.typeAnnotation;\n }\n if (typeAnnotationInferringNodes.has(node)) {\n return;\n }\n typeAnnotationInferringNodes.add(node);\n try {\n var _inferer;\n let inferer = inferers[node.type];\n if (inferer) {\n return inferer.call(this, node);\n }\n inferer = inferers[this.parentPath.type];\n if ((_inferer = inferer) != null && _inferer.validParent) {\n return this.parentPath.getTypeAnnotation();\n }\n } finally {\n typeAnnotationInferringNodes.delete(node);\n }\n}\nfunction isBaseType(baseName, soft) {\n return _isBaseType(baseName, this.getTypeAnnotation(), soft);\n}\nfunction _isBaseType(baseName, type, soft) {\n if (baseName === \"string\") {\n return isStringTypeAnnotation(type);\n } else if (baseName === \"number\") {\n return isNumberTypeAnnotation(type);\n } else if (baseName === \"boolean\") {\n return isBooleanTypeAnnotation(type);\n } else if (baseName === \"any\") {\n return isAnyTypeAnnotation(type);\n } else if (baseName === \"mixed\") {\n return isMixedTypeAnnotation(type);\n } else if (baseName === \"empty\") {\n return isEmptyTypeAnnotation(type);\n } else if (baseName === \"void\") {\n return isVoidTypeAnnotation(type);\n } else {\n if (soft) {\n return false;\n } else {\n throw new Error(`Unknown base type ${baseName}`);\n }\n }\n}\nfunction couldBeBaseType(name) {\n const type = this.getTypeAnnotation();\n if (isAnyTypeAnnotation(type)) return true;\n if (isUnionTypeAnnotation(type)) {\n for (const type2 of type.types) {\n if (isAnyTypeAnnotation(type2) || _isBaseType(name, type2, true)) {\n return true;\n }\n }\n return false;\n } else {\n return _isBaseType(name, type, true);\n }\n}\nfunction baseTypeStrictlyMatches(rightArg) {\n const left = this.getTypeAnnotation();\n const right = rightArg.getTypeAnnotation();\n if (!isAnyTypeAnnotation(left) && isFlowBaseAnnotation(left)) {\n return right.type === left.type;\n }\n return false;\n}\nfunction isGenericType(genericName) {\n const type = this.getTypeAnnotation();\n if (genericName === \"Array\") {\n if (isTSArrayType(type) || isArrayTypeAnnotation(type) || isTupleTypeAnnotation(type)) {\n return true;\n }\n }\n return isGenericTypeAnnotation(type) && isIdentifier(type.id, {\n name: genericName\n }) || isTSTypeReference(type) && isIdentifier(type.typeName, {\n name: genericName\n });\n}\n\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.clear = clear;\nexports.clearPath = clearPath;\nexports.clearScope = clearScope;\nexports.getCachedPaths = getCachedPaths;\nexports.getOrCreateCachedPaths = getOrCreateCachedPaths;\nexports.scope = exports.path = void 0;\nlet pathsCache = exports.path = new WeakMap();\nlet scope = exports.scope = new WeakMap();\nfunction clear() {\n clearPath();\n clearScope();\n}\nfunction clearPath() {\n exports.path = pathsCache = new WeakMap();\n}\nfunction clearScope() {\n exports.scope = scope = new WeakMap();\n}\nconst nullHub = Object.freeze({});\nfunction getCachedPaths(hub, parent) {\n var _pathsCache$get, _hub;\n {\n hub = null;\n }\n return (_pathsCache$get = pathsCache.get((_hub = hub) != null ? _hub : nullHub)) == null ? void 0 : _pathsCache$get.get(parent);\n}\nfunction getOrCreateCachedPaths(hub, parent) {\n var _hub2, _hub3;\n {\n hub = null;\n }\n let parents = pathsCache.get((_hub2 = hub) != null ? _hub2 : nullHub);\n if (!parents) pathsCache.set((_hub3 = hub) != null ? _hub3 : nullHub, parents = new WeakMap());\n let paths = parents.get(parent);\n if (!paths) parents.set(parent, paths = new Map());\n return paths;\n}\n\n//# sourceMappingURL=cache.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ArrayExpression = ArrayExpression;\nexports.AssignmentExpression = AssignmentExpression;\nexports.BinaryExpression = BinaryExpression;\nexports.BooleanLiteral = BooleanLiteral;\nexports.CallExpression = CallExpression;\nexports.ConditionalExpression = ConditionalExpression;\nexports.ClassDeclaration = exports.ClassExpression = exports.FunctionDeclaration = exports.ArrowFunctionExpression = exports.FunctionExpression = Func;\nObject.defineProperty(exports, \"Identifier\", {\n enumerable: true,\n get: function () {\n return _infererReference.default;\n }\n});\nexports.LogicalExpression = LogicalExpression;\nexports.NewExpression = NewExpression;\nexports.NullLiteral = NullLiteral;\nexports.NumericLiteral = NumericLiteral;\nexports.ObjectExpression = ObjectExpression;\nexports.ParenthesizedExpression = ParenthesizedExpression;\nexports.RegExpLiteral = RegExpLiteral;\nexports.RestElement = RestElement;\nexports.SequenceExpression = SequenceExpression;\nexports.StringLiteral = StringLiteral;\nexports.TSAsExpression = TSAsExpression;\nexports.TSNonNullExpression = TSNonNullExpression;\nexports.TaggedTemplateExpression = TaggedTemplateExpression;\nexports.TemplateLiteral = TemplateLiteral;\nexports.TypeCastExpression = TypeCastExpression;\nexports.UnaryExpression = UnaryExpression;\nexports.UpdateExpression = UpdateExpression;\nexports.VariableDeclarator = VariableDeclarator;\nvar _t = require(\"@babel/types\");\nvar _infererReference = require(\"./inferer-reference.js\");\nvar _util = require(\"./util.js\");\nconst {\n BOOLEAN_BINARY_OPERATORS,\n BOOLEAN_UNARY_OPERATORS,\n NUMBER_BINARY_OPERATORS,\n NUMBER_UNARY_OPERATORS,\n STRING_UNARY_OPERATORS,\n anyTypeAnnotation,\n arrayTypeAnnotation,\n booleanTypeAnnotation,\n buildMatchMemberExpression,\n genericTypeAnnotation,\n identifier,\n nullLiteralTypeAnnotation,\n numberTypeAnnotation,\n stringTypeAnnotation,\n tupleTypeAnnotation,\n unionTypeAnnotation,\n voidTypeAnnotation,\n isIdentifier\n} = _t;\nfunction VariableDeclarator() {\n if (!this.get(\"id\").isIdentifier()) return;\n return this.get(\"init\").getTypeAnnotation();\n}\nfunction TypeCastExpression(node) {\n return node.typeAnnotation;\n}\nTypeCastExpression.validParent = true;\nfunction TSAsExpression(node) {\n return node.typeAnnotation;\n}\nTSAsExpression.validParent = true;\nfunction TSNonNullExpression() {\n return this.get(\"expression\").getTypeAnnotation();\n}\nfunction NewExpression(node) {\n if (node.callee.type === \"Identifier\") {\n return genericTypeAnnotation(node.callee);\n }\n}\nfunction TemplateLiteral() {\n return stringTypeAnnotation();\n}\nfunction UnaryExpression(node) {\n const operator = node.operator;\n if (operator === \"void\") {\n return voidTypeAnnotation();\n } else if (NUMBER_UNARY_OPERATORS.includes(operator)) {\n return numberTypeAnnotation();\n } else if (STRING_UNARY_OPERATORS.includes(operator)) {\n return stringTypeAnnotation();\n } else if (BOOLEAN_UNARY_OPERATORS.includes(operator)) {\n return booleanTypeAnnotation();\n }\n}\nfunction BinaryExpression(node) {\n const operator = node.operator;\n if (NUMBER_BINARY_OPERATORS.includes(operator)) {\n return numberTypeAnnotation();\n } else if (BOOLEAN_BINARY_OPERATORS.includes(operator)) {\n return booleanTypeAnnotation();\n } else if (operator === \"+\") {\n const right = this.get(\"right\");\n const left = this.get(\"left\");\n if (left.isBaseType(\"number\") && right.isBaseType(\"number\")) {\n return numberTypeAnnotation();\n } else if (left.isBaseType(\"string\") || right.isBaseType(\"string\")) {\n return stringTypeAnnotation();\n }\n return unionTypeAnnotation([stringTypeAnnotation(), numberTypeAnnotation()]);\n }\n}\nfunction LogicalExpression() {\n const argumentTypes = [this.get(\"left\").getTypeAnnotation(), this.get(\"right\").getTypeAnnotation()];\n return (0, _util.createUnionType)(argumentTypes);\n}\nfunction ConditionalExpression() {\n const argumentTypes = [this.get(\"consequent\").getTypeAnnotation(), this.get(\"alternate\").getTypeAnnotation()];\n return (0, _util.createUnionType)(argumentTypes);\n}\nfunction SequenceExpression() {\n return this.get(\"expressions\").pop().getTypeAnnotation();\n}\nfunction ParenthesizedExpression() {\n return this.get(\"expression\").getTypeAnnotation();\n}\nfunction AssignmentExpression() {\n return this.get(\"right\").getTypeAnnotation();\n}\nfunction UpdateExpression(node) {\n const operator = node.operator;\n if (operator === \"++\" || operator === \"--\") {\n return numberTypeAnnotation();\n }\n}\nfunction StringLiteral() {\n return stringTypeAnnotation();\n}\nfunction NumericLiteral() {\n return numberTypeAnnotation();\n}\nfunction BooleanLiteral() {\n return booleanTypeAnnotation();\n}\nfunction NullLiteral() {\n return nullLiteralTypeAnnotation();\n}\nfunction RegExpLiteral() {\n return genericTypeAnnotation(identifier(\"RegExp\"));\n}\nfunction ObjectExpression() {\n return genericTypeAnnotation(identifier(\"Object\"));\n}\nfunction ArrayExpression() {\n return genericTypeAnnotation(identifier(\"Array\"));\n}\nfunction RestElement() {\n return ArrayExpression();\n}\nRestElement.validParent = true;\nfunction Func() {\n return genericTypeAnnotation(identifier(\"Function\"));\n}\nconst isArrayFrom = buildMatchMemberExpression(\"Array.from\");\nconst isObjectKeys = buildMatchMemberExpression(\"Object.keys\");\nconst isObjectValues = buildMatchMemberExpression(\"Object.values\");\nconst isObjectEntries = buildMatchMemberExpression(\"Object.entries\");\nfunction CallExpression() {\n const {\n callee\n } = this.node;\n if (isObjectKeys(callee)) {\n return arrayTypeAnnotation(stringTypeAnnotation());\n } else if (isArrayFrom(callee) || isObjectValues(callee) || isIdentifier(callee, {\n name: \"Array\"\n })) {\n return arrayTypeAnnotation(anyTypeAnnotation());\n } else if (isObjectEntries(callee)) {\n return arrayTypeAnnotation(tupleTypeAnnotation([stringTypeAnnotation(), anyTypeAnnotation()]));\n }\n return resolveCall(this.get(\"callee\"));\n}\nfunction TaggedTemplateExpression() {\n return resolveCall(this.get(\"tag\"));\n}\nfunction resolveCall(callee) {\n callee = callee.resolve();\n if (callee.isFunction()) {\n const {\n node\n } = callee;\n if (node.async) {\n if (node.generator) {\n return genericTypeAnnotation(identifier(\"AsyncIterator\"));\n } else {\n return genericTypeAnnotation(identifier(\"Promise\"));\n }\n } else {\n if (node.generator) {\n return genericTypeAnnotation(identifier(\"Iterator\"));\n } else if (callee.node.returnType) {\n return callee.node.returnType;\n } else {}\n }\n }\n}\n\n//# sourceMappingURL=inferers.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports._assertUnremoved = _assertUnremoved;\nexports._callRemovalHooks = _callRemovalHooks;\nexports._markRemoved = _markRemoved;\nexports._remove = _remove;\nexports._removeFromScope = _removeFromScope;\nexports.remove = remove;\nvar _removalHooks = require(\"./lib/removal-hooks.js\");\nvar _cache = require(\"../cache.js\");\nvar _replacement = require(\"./replacement.js\");\nvar _index = require(\"./index.js\");\nvar _t = require(\"@babel/types\");\nvar _modification = require(\"./modification.js\");\nvar _context = require(\"./context.js\");\nconst {\n getBindingIdentifiers\n} = _t;\nfunction remove() {\n var _this$opts;\n _assertUnremoved.call(this);\n _context.resync.call(this);\n if (_callRemovalHooks.call(this)) {\n _markRemoved.call(this);\n return;\n }\n if (!((_this$opts = this.opts) != null && _this$opts.noScope)) {\n _removeFromScope.call(this);\n }\n this.shareCommentsWithSiblings();\n _remove.call(this);\n _markRemoved.call(this);\n}\nfunction _removeFromScope() {\n const bindings = getBindingIdentifiers(this.node, false, false, true);\n Object.keys(bindings).forEach(name => this.scope.removeBinding(name));\n}\nfunction _callRemovalHooks() {\n if (this.parentPath) {\n for (const fn of _removalHooks.hooks) {\n if (fn(this, this.parentPath)) return true;\n }\n }\n}\nfunction _remove() {\n if (Array.isArray(this.container)) {\n this.container.splice(this.key, 1);\n _modification.updateSiblingKeys.call(this, this.key, -1);\n } else {\n _replacement._replaceWith.call(this, null);\n }\n}\nfunction _markRemoved() {\n this._traverseFlags |= _index.SHOULD_SKIP | _index.REMOVED;\n if (this.parent) {\n (0, _cache.getCachedPaths)(this.hub, this.parent).delete(this.node);\n }\n this.node = null;\n}\nfunction _assertUnremoved() {\n if (this.removed) {\n throw this.buildCodeFrameError(\"NodePath has been removed so is read-only.\");\n }\n}\n\n//# sourceMappingURL=removal.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.arrowFunctionToExpression = arrowFunctionToExpression;\nexports.ensureBlock = ensureBlock;\nexports.ensureFunctionName = ensureFunctionName;\nexports.splitExportDeclaration = splitExportDeclaration;\nexports.toComputedKey = toComputedKey;\nexports.unwrapFunctionEnvironment = unwrapFunctionEnvironment;\nvar _t = require(\"@babel/types\");\nvar _template = require(\"@babel/template\");\nvar _visitors = require(\"../visitors.js\");\nvar _context = require(\"./context.js\");\nconst {\n arrowFunctionExpression,\n assignmentExpression,\n binaryExpression,\n blockStatement,\n callExpression,\n conditionalExpression,\n expressionStatement,\n identifier,\n isIdentifier,\n jsxIdentifier,\n logicalExpression,\n LOGICAL_OPERATORS,\n memberExpression,\n metaProperty,\n numericLiteral,\n objectExpression,\n restElement,\n returnStatement,\n sequenceExpression,\n spreadElement,\n stringLiteral,\n super: _super,\n thisExpression,\n toExpression,\n unaryExpression,\n toBindingIdentifierName,\n isFunction,\n isAssignmentPattern,\n isRestElement,\n getFunctionName,\n cloneNode,\n variableDeclaration,\n variableDeclarator,\n exportNamedDeclaration,\n exportSpecifier,\n inherits\n} = _t;\nfunction toComputedKey() {\n let key;\n if (this.isMemberExpression()) {\n key = this.node.property;\n } else if (this.isProperty() || this.isMethod()) {\n key = this.node.key;\n } else {\n throw new ReferenceError(\"todo\");\n }\n if (!this.node.computed) {\n if (isIdentifier(key)) key = stringLiteral(key.name);\n }\n return key;\n}\nfunction ensureBlock() {\n const body = this.get(\"body\");\n const bodyNode = body.node;\n if (Array.isArray(body)) {\n throw new Error(\"Can't convert array path to a block statement\");\n }\n if (!bodyNode) {\n throw new Error(\"Can't convert node without a body\");\n }\n if (body.isBlockStatement()) {\n return bodyNode;\n }\n const statements = [];\n let stringPath = \"body\";\n let key;\n let listKey;\n if (body.isStatement()) {\n listKey = \"body\";\n key = 0;\n statements.push(body.node);\n } else {\n stringPath += \".body.0\";\n if (this.isFunction()) {\n key = \"argument\";\n statements.push(returnStatement(body.node));\n } else {\n key = \"expression\";\n statements.push(expressionStatement(body.node));\n }\n }\n this.node.body = blockStatement(statements);\n const parentPath = this.get(stringPath);\n _context.setup.call(body, parentPath, listKey ? parentPath.node[listKey] : parentPath.node, listKey, key);\n return this.node;\n}\n{\n exports.arrowFunctionToShadowed = function () {\n if (!this.isArrowFunctionExpression()) return;\n this.arrowFunctionToExpression();\n };\n}\nfunction unwrapFunctionEnvironment() {\n if (!this.isArrowFunctionExpression() && !this.isFunctionExpression() && !this.isFunctionDeclaration()) {\n throw this.buildCodeFrameError(\"Can only unwrap the environment of a function.\");\n }\n hoistFunctionEnvironment(this);\n}\nfunction setType(path, type) {\n path.node.type = type;\n}\nfunction arrowFunctionToExpression({\n allowInsertArrow = true,\n allowInsertArrowWithRest = allowInsertArrow,\n noNewArrows = !(_arguments$ => (_arguments$ = arguments[0]) == null ? void 0 : _arguments$.specCompliant)()\n} = {}) {\n if (!this.isArrowFunctionExpression()) {\n throw this.buildCodeFrameError(\"Cannot convert non-arrow function to a function expression.\");\n }\n let self = this;\n if (!noNewArrows) {\n var _self$ensureFunctionN;\n self = (_self$ensureFunctionN = self.ensureFunctionName(false)) != null ? _self$ensureFunctionN : self;\n }\n const {\n thisBinding,\n fnPath: fn\n } = hoistFunctionEnvironment(self, noNewArrows, allowInsertArrow, allowInsertArrowWithRest);\n fn.ensureBlock();\n setType(fn, \"FunctionExpression\");\n if (!noNewArrows) {\n const checkBinding = thisBinding ? null : fn.scope.generateUidIdentifier(\"arrowCheckId\");\n if (checkBinding) {\n fn.parentPath.scope.push({\n id: checkBinding,\n init: objectExpression([])\n });\n }\n fn.get(\"body\").unshiftContainer(\"body\", expressionStatement(callExpression(this.hub.addHelper(\"newArrowCheck\"), [thisExpression(), checkBinding ? identifier(checkBinding.name) : identifier(thisBinding)])));\n fn.replaceWith(callExpression(memberExpression(fn.node, identifier(\"bind\")), [checkBinding ? identifier(checkBinding.name) : thisExpression()]));\n return fn.get(\"callee.object\");\n }\n return fn;\n}\nconst getSuperCallsVisitor = (0, _visitors.environmentVisitor)({\n CallExpression(child, {\n allSuperCalls\n }) {\n if (!child.get(\"callee\").isSuper()) return;\n allSuperCalls.push(child);\n }\n});\nfunction hoistFunctionEnvironment(fnPath, noNewArrows = true, allowInsertArrow = true, allowInsertArrowWithRest = true) {\n let arrowParent;\n let thisEnvFn = fnPath.findParent(p => {\n if (p.isArrowFunctionExpression()) {\n var _arrowParent;\n (_arrowParent = arrowParent) != null ? _arrowParent : arrowParent = p;\n return false;\n }\n return p.isFunction() || p.isProgram() || p.isClassProperty({\n static: false\n }) || p.isClassPrivateProperty({\n static: false\n });\n });\n const inConstructor = thisEnvFn.isClassMethod({\n kind: \"constructor\"\n });\n if (thisEnvFn.isClassProperty() || thisEnvFn.isClassPrivateProperty()) {\n if (arrowParent) {\n thisEnvFn = arrowParent;\n } else if (allowInsertArrow) {\n fnPath.replaceWith(callExpression(arrowFunctionExpression([], toExpression(fnPath.node)), []));\n thisEnvFn = fnPath.get(\"callee\");\n fnPath = thisEnvFn.get(\"body\");\n } else {\n throw fnPath.buildCodeFrameError(\"Unable to transform arrow inside class property\");\n }\n }\n const {\n thisPaths,\n argumentsPaths,\n newTargetPaths,\n superProps,\n superCalls\n } = getScopeInformation(fnPath);\n if (inConstructor && superCalls.length > 0) {\n if (!allowInsertArrow) {\n throw superCalls[0].buildCodeFrameError(\"When using '@babel/plugin-transform-arrow-functions', \" + \"it's not possible to compile `super()` in an arrow function without compiling classes.\\n\" + \"Please add '@babel/plugin-transform-classes' to your Babel configuration.\");\n }\n if (!allowInsertArrowWithRest) {\n throw superCalls[0].buildCodeFrameError(\"When using '@babel/plugin-transform-parameters', \" + \"it's not possible to compile `super()` in an arrow function with default or rest parameters without compiling classes.\\n\" + \"Please add '@babel/plugin-transform-classes' to your Babel configuration.\");\n }\n const allSuperCalls = [];\n thisEnvFn.traverse(getSuperCallsVisitor, {\n allSuperCalls\n });\n const superBinding = getSuperBinding(thisEnvFn);\n allSuperCalls.forEach(superCall => {\n const callee = identifier(superBinding);\n callee.loc = superCall.node.callee.loc;\n superCall.get(\"callee\").replaceWith(callee);\n });\n }\n if (argumentsPaths.length > 0) {\n const argumentsBinding = getBinding(thisEnvFn, \"arguments\", () => {\n const args = () => identifier(\"arguments\");\n if (thisEnvFn.scope.path.isProgram()) {\n return conditionalExpression(binaryExpression(\"===\", unaryExpression(\"typeof\", args()), stringLiteral(\"undefined\")), thisEnvFn.scope.buildUndefinedNode(), args());\n } else {\n return args();\n }\n });\n argumentsPaths.forEach(argumentsChild => {\n const argsRef = identifier(argumentsBinding);\n argsRef.loc = argumentsChild.node.loc;\n argumentsChild.replaceWith(argsRef);\n });\n }\n if (newTargetPaths.length > 0) {\n const newTargetBinding = getBinding(thisEnvFn, \"newtarget\", () => metaProperty(identifier(\"new\"), identifier(\"target\")));\n newTargetPaths.forEach(targetChild => {\n const targetRef = identifier(newTargetBinding);\n targetRef.loc = targetChild.node.loc;\n targetChild.replaceWith(targetRef);\n });\n }\n if (superProps.length > 0) {\n if (!allowInsertArrow) {\n throw superProps[0].buildCodeFrameError(\"When using '@babel/plugin-transform-arrow-functions', \" + \"it's not possible to compile `super.prop` in an arrow function without compiling classes.\\n\" + \"Please add '@babel/plugin-transform-classes' to your Babel configuration.\");\n }\n const flatSuperProps = superProps.reduce((acc, superProp) => acc.concat(standardizeSuperProperty(superProp)), []);\n flatSuperProps.forEach(superProp => {\n const key = superProp.node.computed ? \"\" : superProp.get(\"property\").node.name;\n const superParentPath = superProp.parentPath;\n const isAssignment = superParentPath.isAssignmentExpression({\n left: superProp.node\n });\n const isCall = superParentPath.isCallExpression({\n callee: superProp.node\n });\n const isTaggedTemplate = superParentPath.isTaggedTemplateExpression({\n tag: superProp.node\n });\n const superBinding = getSuperPropBinding(thisEnvFn, isAssignment, key);\n const args = [];\n if (superProp.node.computed) {\n args.push(superProp.get(\"property\").node);\n }\n if (isAssignment) {\n const value = superParentPath.node.right;\n args.push(value);\n }\n const call = callExpression(identifier(superBinding), args);\n if (isCall) {\n superParentPath.unshiftContainer(\"arguments\", thisExpression());\n superProp.replaceWith(memberExpression(call, identifier(\"call\")));\n thisPaths.push(superParentPath.get(\"arguments.0\"));\n } else if (isAssignment) {\n superParentPath.replaceWith(call);\n } else if (isTaggedTemplate) {\n superProp.replaceWith(callExpression(memberExpression(call, identifier(\"bind\"), false), [thisExpression()]));\n thisPaths.push(superProp.get(\"arguments.0\"));\n } else {\n superProp.replaceWith(call);\n }\n });\n }\n let thisBinding;\n if (thisPaths.length > 0 || !noNewArrows) {\n thisBinding = getThisBinding(thisEnvFn, inConstructor);\n if (noNewArrows || inConstructor && hasSuperClass(thisEnvFn)) {\n thisPaths.forEach(thisChild => {\n const thisRef = thisChild.isJSX() ? jsxIdentifier(thisBinding) : identifier(thisBinding);\n thisRef.loc = thisChild.node.loc;\n thisChild.replaceWith(thisRef);\n });\n if (!noNewArrows) thisBinding = null;\n }\n }\n return {\n thisBinding,\n fnPath\n };\n}\nfunction isLogicalOp(op) {\n return LOGICAL_OPERATORS.includes(op);\n}\nfunction standardizeSuperProperty(superProp) {\n if (superProp.parentPath.isAssignmentExpression() && superProp.parentPath.node.operator !== \"=\") {\n const assignmentPath = superProp.parentPath;\n const op = assignmentPath.node.operator.slice(0, -1);\n const value = assignmentPath.node.right;\n const isLogicalAssignment = isLogicalOp(op);\n if (superProp.node.computed) {\n const tmp = superProp.scope.generateDeclaredUidIdentifier(\"tmp\");\n const object = superProp.node.object;\n const property = superProp.node.property;\n assignmentPath.get(\"left\").replaceWith(memberExpression(object, assignmentExpression(\"=\", tmp, property), true));\n assignmentPath.get(\"right\").replaceWith(rightExpression(isLogicalAssignment ? \"=\" : op, memberExpression(object, identifier(tmp.name), true), value));\n } else {\n const object = superProp.node.object;\n const property = superProp.node.property;\n assignmentPath.get(\"left\").replaceWith(memberExpression(object, property));\n assignmentPath.get(\"right\").replaceWith(rightExpression(isLogicalAssignment ? \"=\" : op, memberExpression(object, identifier(property.name)), value));\n }\n if (isLogicalAssignment) {\n assignmentPath.replaceWith(logicalExpression(op, assignmentPath.node.left, assignmentPath.node.right));\n } else {\n assignmentPath.node.operator = \"=\";\n }\n return [assignmentPath.get(\"left\"), assignmentPath.get(\"right\").get(\"left\")];\n } else if (superProp.parentPath.isUpdateExpression()) {\n const updateExpr = superProp.parentPath;\n const tmp = superProp.scope.generateDeclaredUidIdentifier(\"tmp\");\n const computedKey = superProp.node.computed ? superProp.scope.generateDeclaredUidIdentifier(\"prop\") : null;\n const parts = [assignmentExpression(\"=\", tmp, memberExpression(superProp.node.object, computedKey ? assignmentExpression(\"=\", computedKey, superProp.node.property) : superProp.node.property, superProp.node.computed)), assignmentExpression(\"=\", memberExpression(superProp.node.object, computedKey ? identifier(computedKey.name) : superProp.node.property, superProp.node.computed), binaryExpression(superProp.parentPath.node.operator[0], identifier(tmp.name), numericLiteral(1)))];\n if (!superProp.parentPath.node.prefix) {\n parts.push(identifier(tmp.name));\n }\n updateExpr.replaceWith(sequenceExpression(parts));\n const left = updateExpr.get(\"expressions.0.right\");\n const right = updateExpr.get(\"expressions.1.left\");\n return [left, right];\n }\n return [superProp];\n function rightExpression(op, left, right) {\n if (op === \"=\") {\n return assignmentExpression(\"=\", left, right);\n } else {\n return binaryExpression(op, left, right);\n }\n }\n}\nfunction hasSuperClass(thisEnvFn) {\n return thisEnvFn.isClassMethod() && !!thisEnvFn.parentPath.parentPath.node.superClass;\n}\nconst assignSuperThisVisitor = (0, _visitors.environmentVisitor)({\n CallExpression(child, {\n supers,\n thisBinding\n }) {\n if (!child.get(\"callee\").isSuper()) return;\n if (supers.has(child.node)) return;\n supers.add(child.node);\n child.replaceWithMultiple([child.node, assignmentExpression(\"=\", identifier(thisBinding), identifier(\"this\"))]);\n }\n});\nfunction getThisBinding(thisEnvFn, inConstructor) {\n return getBinding(thisEnvFn, \"this\", thisBinding => {\n if (!inConstructor || !hasSuperClass(thisEnvFn)) return thisExpression();\n thisEnvFn.traverse(assignSuperThisVisitor, {\n supers: new WeakSet(),\n thisBinding\n });\n });\n}\nfunction getSuperBinding(thisEnvFn) {\n return getBinding(thisEnvFn, \"supercall\", () => {\n const argsBinding = thisEnvFn.scope.generateUidIdentifier(\"args\");\n return arrowFunctionExpression([restElement(argsBinding)], callExpression(_super(), [spreadElement(identifier(argsBinding.name))]));\n });\n}\nfunction getSuperPropBinding(thisEnvFn, isAssignment, propName) {\n const op = isAssignment ? \"set\" : \"get\";\n return getBinding(thisEnvFn, `superprop_${op}:${propName || \"\"}`, () => {\n const argsList = [];\n let fnBody;\n if (propName) {\n fnBody = memberExpression(_super(), identifier(propName));\n } else {\n const method = thisEnvFn.scope.generateUidIdentifier(\"prop\");\n argsList.unshift(method);\n fnBody = memberExpression(_super(), identifier(method.name), true);\n }\n if (isAssignment) {\n const valueIdent = thisEnvFn.scope.generateUidIdentifier(\"value\");\n argsList.push(valueIdent);\n fnBody = assignmentExpression(\"=\", fnBody, identifier(valueIdent.name));\n }\n return arrowFunctionExpression(argsList, fnBody);\n });\n}\nfunction getBinding(thisEnvFn, key, init) {\n const cacheKey = \"binding:\" + key;\n let data = thisEnvFn.getData(cacheKey);\n if (!data) {\n const id = thisEnvFn.scope.generateUidIdentifier(key);\n data = id.name;\n thisEnvFn.setData(cacheKey, data);\n thisEnvFn.scope.push({\n id: id,\n init: init(data)\n });\n }\n return data;\n}\nconst getScopeInformationVisitor = (0, _visitors.environmentVisitor)({\n ThisExpression(child, {\n thisPaths\n }) {\n thisPaths.push(child);\n },\n JSXIdentifier(child, {\n thisPaths\n }) {\n if (child.node.name !== \"this\") return;\n if (!child.parentPath.isJSXMemberExpression({\n object: child.node\n }) && !child.parentPath.isJSXOpeningElement({\n name: child.node\n })) {\n return;\n }\n thisPaths.push(child);\n },\n CallExpression(child, {\n superCalls\n }) {\n if (child.get(\"callee\").isSuper()) superCalls.push(child);\n },\n MemberExpression(child, {\n superProps\n }) {\n if (child.get(\"object\").isSuper()) superProps.push(child);\n },\n Identifier(child, {\n argumentsPaths\n }) {\n if (!child.isReferencedIdentifier({\n name: \"arguments\"\n })) return;\n let curr = child.scope;\n do {\n if (curr.hasOwnBinding(\"arguments\")) {\n curr.rename(\"arguments\");\n return;\n }\n if (curr.path.isFunction() && !curr.path.isArrowFunctionExpression()) {\n break;\n }\n } while (curr = curr.parent);\n argumentsPaths.push(child);\n },\n MetaProperty(child, {\n newTargetPaths\n }) {\n if (!child.get(\"meta\").isIdentifier({\n name: \"new\"\n })) return;\n if (!child.get(\"property\").isIdentifier({\n name: \"target\"\n })) return;\n newTargetPaths.push(child);\n }\n});\nfunction getScopeInformation(fnPath) {\n const thisPaths = [];\n const argumentsPaths = [];\n const newTargetPaths = [];\n const superProps = [];\n const superCalls = [];\n fnPath.traverse(getScopeInformationVisitor, {\n thisPaths,\n argumentsPaths,\n newTargetPaths,\n superProps,\n superCalls\n });\n return {\n thisPaths,\n argumentsPaths,\n newTargetPaths,\n superProps,\n superCalls\n };\n}\nfunction splitExportDeclaration() {\n if (!this.isExportDeclaration() || this.isExportAllDeclaration()) {\n throw new Error(\"Only default and named export declarations can be split.\");\n }\n if (this.isExportNamedDeclaration() && this.get(\"specifiers\").length > 0) {\n throw new Error(\"It doesn't make sense to split exported specifiers.\");\n }\n const declaration = this.get(\"declaration\");\n if (this.isExportDefaultDeclaration()) {\n const standaloneDeclaration = declaration.isFunctionDeclaration() || declaration.isClassDeclaration();\n const exportExpr = declaration.isFunctionExpression() || declaration.isClassExpression();\n const scope = declaration.isScope() ? declaration.scope.parent : declaration.scope;\n let id = declaration.node.id;\n let needBindingRegistration = false;\n if (!id) {\n needBindingRegistration = true;\n id = scope.generateUidIdentifier(\"default\");\n if (standaloneDeclaration || exportExpr) {\n declaration.node.id = cloneNode(id);\n }\n } else if (exportExpr && scope.hasBinding(id.name)) {\n needBindingRegistration = true;\n id = scope.generateUidIdentifier(id.name);\n }\n const updatedDeclaration = standaloneDeclaration ? declaration.node : variableDeclaration(\"var\", [variableDeclarator(cloneNode(id), declaration.node)]);\n const updatedExportDeclaration = exportNamedDeclaration(null, [exportSpecifier(cloneNode(id), identifier(\"default\"))]);\n this.insertAfter(updatedExportDeclaration);\n this.replaceWith(updatedDeclaration);\n if (needBindingRegistration) {\n scope.registerDeclaration(this);\n }\n return this;\n } else if (this.get(\"specifiers\").length > 0) {\n throw new Error(\"It doesn't make sense to split exported specifiers.\");\n }\n const bindingIdentifiers = declaration.getOuterBindingIdentifiers();\n const specifiers = Object.keys(bindingIdentifiers).map(name => {\n return exportSpecifier(identifier(name), identifier(name));\n });\n const aliasDeclar = exportNamedDeclaration(null, specifiers);\n this.insertAfter(aliasDeclar);\n this.replaceWith(declaration.node);\n return this;\n}\nconst refersOuterBindingVisitor = {\n \"ReferencedIdentifier|BindingIdentifier\"(path, state) {\n if (path.node.name !== state.name) return;\n state.needsRename = true;\n path.stop();\n },\n Scope(path, state) {\n if (path.scope.hasOwnBinding(state.name)) {\n path.skip();\n }\n }\n};\nfunction ensureFunctionName(supportUnicodeId) {\n if (this.node.id) return this;\n const res = getFunctionName(this.node, this.parent);\n if (res == null) return this;\n let {\n name\n } = res;\n if (!supportUnicodeId && /[\\uD800-\\uDFFF]/.test(name)) {\n return null;\n }\n if (name.startsWith(\"get \") || name.startsWith(\"set \")) {\n return null;\n }\n name = toBindingIdentifierName(name.replace(/[/ ]/g, \"_\"));\n const id = identifier(name);\n inherits(id, res.originalNode);\n const state = {\n needsRename: false,\n name\n };\n const {\n scope\n } = this;\n const binding = scope.getOwnBinding(name);\n if (binding) {\n if (binding.kind === \"param\") {\n state.needsRename = true;\n } else {}\n } else if (scope.parent.hasBinding(name) || scope.hasGlobal(name)) {\n this.traverse(refersOuterBindingVisitor, state);\n }\n if (!state.needsRename) {\n this.node.id = id;\n scope.getProgramParent().references[id.name] = true;\n return this;\n }\n if (scope.hasBinding(id.name) && !scope.hasGlobal(id.name)) {\n scope.rename(id.name);\n this.node.id = id;\n scope.getProgramParent().references[id.name] = true;\n return this;\n }\n if (!isFunction(this.node)) return null;\n const key = scope.generateUidIdentifier(id.name);\n const params = [];\n for (let i = 0, len = getFunctionArity(this.node); i < len; i++) {\n params.push(scope.generateUidIdentifier(\"x\"));\n }\n const call = _template.default.expression.ast`\n (function (${key}) {\n function ${id}(${params}) {\n return ${cloneNode(key)}.apply(this, arguments);\n }\n\n ${cloneNode(id)}.toString = function () {\n return ${cloneNode(key)}.toString();\n }\n\n return ${cloneNode(id)};\n })(${toExpression(this.node)})\n `;\n return this.replaceWith(call)[0].get(\"arguments.0\");\n}\nfunction getFunctionArity(node) {\n const count = node.params.findIndex(param => isAssignmentPattern(param) || isRestElement(param));\n return count === -1 ? node.params.length : count;\n}\n\n//# sourceMappingURL=conversion.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = literalTemplate;\nvar _options = require(\"./options.js\");\nvar _parse = require(\"./parse.js\");\nvar _populate = require(\"./populate.js\");\nfunction literalTemplate(formatter, tpl, opts) {\n const {\n metadata,\n names\n } = buildLiteralData(formatter, tpl, opts);\n return arg => {\n const defaultReplacements = {};\n arg.forEach((replacement, i) => {\n defaultReplacements[names[i]] = replacement;\n });\n return arg => {\n const replacements = (0, _options.normalizeReplacements)(arg);\n if (replacements) {\n Object.keys(replacements).forEach(key => {\n if (hasOwnProperty.call(defaultReplacements, key)) {\n throw new Error(\"Unexpected replacement overlap.\");\n }\n });\n }\n return formatter.unwrap((0, _populate.default)(metadata, replacements ? Object.assign(replacements, defaultReplacements) : defaultReplacements));\n };\n };\n}\nfunction buildLiteralData(formatter, tpl, opts) {\n let prefix = \"BABEL_TPL$\";\n const raw = tpl.join(\"\");\n do {\n prefix = \"$$\" + prefix;\n } while (raw.includes(prefix));\n const {\n names,\n code\n } = buildTemplateCode(tpl, prefix);\n const metadata = (0, _parse.default)(formatter, formatter.code(code), {\n parser: opts.parser,\n placeholderWhitelist: new Set(names.concat(opts.placeholderWhitelist ? Array.from(opts.placeholderWhitelist) : [])),\n placeholderPattern: opts.placeholderPattern,\n preserveComments: opts.preserveComments,\n syntacticPlaceholders: opts.syntacticPlaceholders\n });\n return {\n metadata,\n names\n };\n}\nfunction buildTemplateCode(tpl, prefix) {\n const names = [];\n let code = tpl[0];\n for (let i = 1; i < tpl.length; i++) {\n const value = `${prefix}${i - 1}`;\n names.push(value);\n code += value + tpl[i];\n }\n return {\n names,\n code\n };\n}\n\n//# sourceMappingURL=literal.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createUnionType = createUnionType;\nvar _t = require(\"@babel/types\");\nconst {\n createFlowUnionType,\n createTSUnionType,\n createUnionTypeAnnotation,\n isFlowType,\n isTSType\n} = _t;\nfunction createUnionType(types) {\n {\n if (types.every(v => isFlowType(v))) {\n if (createFlowUnionType) {\n return createFlowUnionType(types);\n }\n return createUnionTypeAnnotation(types);\n } else if (types.every(v => isTSType(v))) {\n if (createTSUnionType) {\n return createTSUnionType(types);\n }\n }\n }\n}\n\n//# sourceMappingURL=util.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = require(\"./path/index.js\");\nvar _t = require(\"@babel/types\");\nvar _context = require(\"./path/context.js\");\nconst {\n VISITOR_KEYS\n} = _t;\nclass TraversalContext {\n constructor(scope, opts, state, parentPath) {\n this.queue = null;\n this.priorityQueue = null;\n this.parentPath = parentPath;\n this.scope = scope;\n this.state = state;\n this.opts = opts;\n }\n shouldVisit(node) {\n const opts = this.opts;\n if (opts.enter || opts.exit) return true;\n if (opts[node.type]) return true;\n const keys = VISITOR_KEYS[node.type];\n if (!(keys != null && keys.length)) return false;\n for (const key of keys) {\n if (node[key]) {\n return true;\n }\n }\n return false;\n }\n create(node, container, key, listKey) {\n return _index.default.get({\n parentPath: this.parentPath,\n parent: node,\n container,\n key: key,\n listKey\n });\n }\n maybeQueue(path, notPriority) {\n if (this.queue) {\n if (notPriority) {\n this.queue.push(path);\n } else {\n this.priorityQueue.push(path);\n }\n }\n }\n visitMultiple(container, parent, listKey) {\n if (container.length === 0) return false;\n const queue = [];\n for (let key = 0; key < container.length; key++) {\n const node = container[key];\n if (node && this.shouldVisit(node)) {\n queue.push(this.create(parent, container, key, listKey));\n }\n }\n return this.visitQueue(queue);\n }\n visitSingle(node, key) {\n if (this.shouldVisit(node[key])) {\n return this.visitQueue([this.create(node, node, key)]);\n } else {\n return false;\n }\n }\n visitQueue(queue) {\n this.queue = queue;\n this.priorityQueue = [];\n const visited = new WeakSet();\n let stop = false;\n let visitIndex = 0;\n for (; visitIndex < queue.length;) {\n const path = queue[visitIndex];\n visitIndex++;\n _context.resync.call(path);\n if (path.contexts.length === 0 || path.contexts[path.contexts.length - 1] !== this) {\n _context.pushContext.call(path, this);\n }\n if (path.key === null) continue;\n const {\n node\n } = path;\n if (visited.has(node)) continue;\n if (node) visited.add(node);\n if (path.visit()) {\n stop = true;\n break;\n }\n if (this.priorityQueue.length) {\n stop = this.visitQueue(this.priorityQueue);\n this.priorityQueue = [];\n this.queue = queue;\n if (stop) break;\n }\n }\n for (let i = 0; i < visitIndex; i++) {\n _context.popContext.call(queue[i]);\n }\n this.queue = null;\n return stop;\n }\n visit(node, key) {\n const nodes = node[key];\n if (!nodes) return false;\n if (Array.isArray(nodes)) {\n return this.visitMultiple(nodes, node, key);\n } else {\n return this.visitSingle(node, key);\n }\n }\n}\nexports.default = TraversalContext;\n\n//# sourceMappingURL=context.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createTemplateBuilder;\nvar _options = require(\"./options.js\");\nvar _string = require(\"./string.js\");\nvar _literal = require(\"./literal.js\");\nconst NO_PLACEHOLDER = (0, _options.validate)({\n placeholderPattern: false\n});\nfunction createTemplateBuilder(formatter, defaultOpts) {\n const templateFnCache = new WeakMap();\n const templateAstCache = new WeakMap();\n const cachedOpts = defaultOpts || (0, _options.validate)(null);\n return Object.assign((tpl, ...args) => {\n if (typeof tpl === \"string\") {\n if (args.length > 1) throw new Error(\"Unexpected extra params.\");\n return extendedTrace((0, _string.default)(formatter, tpl, (0, _options.merge)(cachedOpts, (0, _options.validate)(args[0]))));\n } else if (Array.isArray(tpl)) {\n let builder = templateFnCache.get(tpl);\n if (!builder) {\n builder = (0, _literal.default)(formatter, tpl, cachedOpts);\n templateFnCache.set(tpl, builder);\n }\n return extendedTrace(builder(args));\n } else if (typeof tpl === \"object\" && tpl) {\n if (args.length > 0) throw new Error(\"Unexpected extra params.\");\n return createTemplateBuilder(formatter, (0, _options.merge)(cachedOpts, (0, _options.validate)(tpl)));\n }\n throw new Error(`Unexpected template param ${typeof tpl}`);\n }, {\n ast: (tpl, ...args) => {\n if (typeof tpl === \"string\") {\n if (args.length > 1) throw new Error(\"Unexpected extra params.\");\n return (0, _string.default)(formatter, tpl, (0, _options.merge)((0, _options.merge)(cachedOpts, (0, _options.validate)(args[0])), NO_PLACEHOLDER))();\n } else if (Array.isArray(tpl)) {\n let builder = templateAstCache.get(tpl);\n if (!builder) {\n builder = (0, _literal.default)(formatter, tpl, (0, _options.merge)(cachedOpts, NO_PLACEHOLDER));\n templateAstCache.set(tpl, builder);\n }\n return builder(args)();\n }\n throw new Error(`Unexpected template param ${typeof tpl}`);\n }\n });\n}\nfunction extendedTrace(fn) {\n let rootStack = \"\";\n try {\n throw new Error();\n } catch (error) {\n if (error.stack) {\n rootStack = error.stack.split(\"\\n\").slice(3).join(\"\\n\");\n }\n }\n return arg => {\n try {\n return fn(arg);\n } catch (err) {\n err.stack += `\\n =============\\n${rootStack}`;\n throw err;\n }\n };\n}\n\n//# sourceMappingURL=builder.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.traverseNode = traverseNode;\nvar _context = require(\"./context.js\");\nvar _t = require(\"@babel/types\");\nconst {\n VISITOR_KEYS\n} = _t;\nfunction traverseNode(node, opts, scope, state, path, skipKeys, visitSelf) {\n const keys = VISITOR_KEYS[node.type];\n if (!keys) return false;\n const context = new _context.default(scope, opts, state, path);\n if (visitSelf) {\n if (skipKeys != null && skipKeys[path.parentKey]) return false;\n return context.visitQueue([path]);\n }\n for (const key of keys) {\n if (skipKeys != null && skipKeys[key]) continue;\n if (context.visit(node, key)) {\n return true;\n }\n }\n return false;\n}\n\n//# sourceMappingURL=traverse-node.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = parseAndBuildMetadata;\nvar _t = require(\"@babel/types\");\nvar _parser = require(\"@babel/parser\");\nvar _codeFrame = require(\"@babel/code-frame\");\nconst {\n isCallExpression,\n isExpressionStatement,\n isFunction,\n isIdentifier,\n isJSXIdentifier,\n isNewExpression,\n isPlaceholder,\n isStatement,\n isStringLiteral,\n removePropertiesDeep,\n traverse\n} = _t;\nconst PATTERN = /^[_$A-Z0-9]+$/;\nfunction parseAndBuildMetadata(formatter, code, opts) {\n const {\n placeholderWhitelist,\n placeholderPattern,\n preserveComments,\n syntacticPlaceholders\n } = opts;\n const ast = parseWithCodeFrame(code, opts.parser, syntacticPlaceholders);\n removePropertiesDeep(ast, {\n preserveComments\n });\n formatter.validate(ast);\n const state = {\n syntactic: {\n placeholders: [],\n placeholderNames: new Set()\n },\n legacy: {\n placeholders: [],\n placeholderNames: new Set()\n },\n placeholderWhitelist,\n placeholderPattern,\n syntacticPlaceholders\n };\n traverse(ast, placeholderVisitorHandler, state);\n return Object.assign({\n ast\n }, state.syntactic.placeholders.length ? state.syntactic : state.legacy);\n}\nfunction placeholderVisitorHandler(node, ancestors, state) {\n var _state$placeholderWhi;\n let name;\n let hasSyntacticPlaceholders = state.syntactic.placeholders.length > 0;\n if (isPlaceholder(node)) {\n if (state.syntacticPlaceholders === false) {\n throw new Error(\"%%foo%%-style placeholders can't be used when \" + \"'.syntacticPlaceholders' is false.\");\n }\n name = node.name.name;\n hasSyntacticPlaceholders = true;\n } else if (hasSyntacticPlaceholders || state.syntacticPlaceholders) {\n return;\n } else if (isIdentifier(node) || isJSXIdentifier(node)) {\n name = node.name;\n } else if (isStringLiteral(node)) {\n name = node.value;\n } else {\n return;\n }\n if (hasSyntacticPlaceholders && (state.placeholderPattern != null || state.placeholderWhitelist != null)) {\n throw new Error(\"'.placeholderWhitelist' and '.placeholderPattern' aren't compatible\" + \" with '.syntacticPlaceholders: true'\");\n }\n if (!hasSyntacticPlaceholders && (state.placeholderPattern === false || !(state.placeholderPattern || PATTERN).test(name)) && !((_state$placeholderWhi = state.placeholderWhitelist) != null && _state$placeholderWhi.has(name))) {\n return;\n }\n ancestors = ancestors.slice();\n const {\n node: parent,\n key\n } = ancestors[ancestors.length - 1];\n let type;\n if (isStringLiteral(node) || isPlaceholder(node, {\n expectedNode: \"StringLiteral\"\n })) {\n type = \"string\";\n } else if (isNewExpression(parent) && key === \"arguments\" || isCallExpression(parent) && key === \"arguments\" || isFunction(parent) && key === \"params\") {\n type = \"param\";\n } else if (isExpressionStatement(parent) && !isPlaceholder(node)) {\n type = \"statement\";\n ancestors = ancestors.slice(0, -1);\n } else if (isStatement(node) && isPlaceholder(node)) {\n type = \"statement\";\n } else {\n type = \"other\";\n }\n const {\n placeholders,\n placeholderNames\n } = !hasSyntacticPlaceholders ? state.legacy : state.syntactic;\n placeholders.push({\n name,\n type,\n resolve: ast => resolveAncestors(ast, ancestors),\n isDuplicate: placeholderNames.has(name)\n });\n placeholderNames.add(name);\n}\nfunction resolveAncestors(ast, ancestors) {\n let parent = ast;\n for (let i = 0; i < ancestors.length - 1; i++) {\n const {\n key,\n index\n } = ancestors[i];\n if (index === undefined) {\n parent = parent[key];\n } else {\n parent = parent[key][index];\n }\n }\n const {\n key,\n index\n } = ancestors[ancestors.length - 1];\n return {\n parent,\n key,\n index\n };\n}\nfunction parseWithCodeFrame(code, parserOpts, syntacticPlaceholders) {\n const plugins = (parserOpts.plugins || []).slice();\n if (syntacticPlaceholders !== false) {\n plugins.push(\"placeholders\");\n }\n parserOpts = Object.assign({\n allowReturnOutsideFunction: true,\n allowSuperOutsideMethod: true,\n sourceType: \"module\"\n }, parserOpts, {\n plugins\n });\n try {\n return (0, _parser.parse)(code, parserOpts);\n } catch (err) {\n const loc = err.loc;\n if (loc) {\n err.message += \"\\n\" + (0, _codeFrame.codeFrameColumns)(code, {\n start: loc\n });\n err.code = \"BABEL_TEMPLATE_PARSE_ERROR\";\n }\n throw err;\n }\n}\n\n//# sourceMappingURL=parse.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addComment = addComment;\nexports.addComments = addComments;\nexports.shareCommentsWithSiblings = shareCommentsWithSiblings;\nvar _t = require(\"@babel/types\");\nconst {\n addComment: _addComment,\n addComments: _addComments\n} = _t;\nfunction shareCommentsWithSiblings() {\n if (typeof this.key === \"string\") return;\n const node = this.node;\n if (!node) return;\n const trailing = node.trailingComments;\n const leading = node.leadingComments;\n if (!trailing && !leading) return;\n const prev = this.getSibling(this.key - 1);\n const next = this.getSibling(this.key + 1);\n const hasPrev = Boolean(prev.node);\n const hasNext = Boolean(next.node);\n if (hasPrev) {\n if (leading) {\n prev.addComments(\"trailing\", removeIfExisting(leading, prev.node.trailingComments));\n }\n if (trailing && !hasNext) prev.addComments(\"trailing\", trailing);\n }\n if (hasNext) {\n if (trailing) {\n next.addComments(\"leading\", removeIfExisting(trailing, next.node.leadingComments));\n }\n if (leading && !hasPrev) next.addComments(\"leading\", leading);\n }\n}\nfunction removeIfExisting(list, toRemove) {\n if (!(toRemove != null && toRemove.length)) return list;\n const set = new Set(toRemove);\n return list.filter(el => {\n return !set.has(el);\n });\n}\nfunction addComment(type, content, line) {\n _addComment(this.node, type, content, line);\n}\nfunction addComments(type, comments) {\n _addComments(this.node, type, comments);\n}\n\n//# sourceMappingURL=comments.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports._guessExecutionStatusRelativeTo = _guessExecutionStatusRelativeTo;\nexports._resolve = _resolve;\nexports.canHaveVariableDeclarationOrExpression = canHaveVariableDeclarationOrExpression;\nexports.canSwapBetweenExpressionAndStatement = canSwapBetweenExpressionAndStatement;\nexports.getSource = getSource;\nexports.isCompletionRecord = isCompletionRecord;\nexports.isConstantExpression = isConstantExpression;\nexports.isInStrictMode = isInStrictMode;\nexports.isNodeType = isNodeType;\nexports.isStatementOrBlock = isStatementOrBlock;\nexports.isStatic = isStatic;\nexports.matchesPattern = matchesPattern;\nexports.referencesImport = referencesImport;\nexports.resolve = resolve;\nexports.willIMaybeExecuteBefore = willIMaybeExecuteBefore;\nvar _t = require(\"@babel/types\");\nconst {\n STATEMENT_OR_BLOCK_KEYS,\n VISITOR_KEYS,\n isBlockStatement,\n isExpression,\n isIdentifier,\n isLiteral,\n isStringLiteral,\n isType,\n matchesPattern: _matchesPattern\n} = _t;\nfunction matchesPattern(pattern, allowPartial) {\n return _matchesPattern(this.node, pattern, allowPartial);\n}\n{\n exports.has = function has(key) {\n var _this$node;\n const val = (_this$node = this.node) == null ? void 0 : _this$node[key];\n if (val && Array.isArray(val)) {\n return !!val.length;\n } else {\n return !!val;\n }\n };\n}\nfunction isStatic() {\n return this.scope.isStatic(this.node);\n}\n{\n exports.is = exports.has;\n exports.isnt = function isnt(key) {\n return !this.has(key);\n };\n exports.equals = function equals(key, value) {\n return this.node[key] === value;\n };\n}\nfunction isNodeType(type) {\n return isType(this.type, type);\n}\nfunction canHaveVariableDeclarationOrExpression() {\n return (this.key === \"init\" || this.key === \"left\") && this.parentPath.isFor();\n}\nfunction canSwapBetweenExpressionAndStatement(replacement) {\n if (this.key !== \"body\" || !this.parentPath.isArrowFunctionExpression()) {\n return false;\n }\n if (this.isExpression()) {\n return isBlockStatement(replacement);\n } else if (this.isBlockStatement()) {\n return isExpression(replacement);\n }\n return false;\n}\nfunction isCompletionRecord(allowInsideFunction) {\n let path = this;\n let first = true;\n do {\n const {\n type,\n container\n } = path;\n if (!first && (path.isFunction() || type === \"StaticBlock\")) {\n return !!allowInsideFunction;\n }\n first = false;\n if (Array.isArray(container) && path.key !== container.length - 1) {\n return false;\n }\n } while ((path = path.parentPath) && !path.isProgram() && !path.isDoExpression());\n return true;\n}\nfunction isStatementOrBlock() {\n if (this.parentPath.isLabeledStatement() || isBlockStatement(this.container)) {\n return false;\n } else {\n return STATEMENT_OR_BLOCK_KEYS.includes(this.key);\n }\n}\nfunction referencesImport(moduleSource, importName) {\n if (!this.isReferencedIdentifier()) {\n if (this.isJSXMemberExpression() && this.node.property.name === importName || (this.isMemberExpression() || this.isOptionalMemberExpression()) && (this.node.computed ? isStringLiteral(this.node.property, {\n value: importName\n }) : this.node.property.name === importName)) {\n const object = this.get(\"object\");\n return object.isReferencedIdentifier() && object.referencesImport(moduleSource, \"*\");\n }\n return false;\n }\n const binding = this.scope.getBinding(this.node.name);\n if (!binding || binding.kind !== \"module\") return false;\n const path = binding.path;\n const parent = path.parentPath;\n if (!parent.isImportDeclaration()) return false;\n if (parent.node.source.value === moduleSource) {\n if (!importName) return true;\n } else {\n return false;\n }\n if (path.isImportDefaultSpecifier() && importName === \"default\") {\n return true;\n }\n if (path.isImportNamespaceSpecifier() && importName === \"*\") {\n return true;\n }\n if (path.isImportSpecifier() && isIdentifier(path.node.imported, {\n name: importName\n })) {\n return true;\n }\n return false;\n}\nfunction getSource() {\n const node = this.node;\n if (node.end) {\n const code = this.hub.getCode();\n if (code) return code.slice(node.start, node.end);\n }\n return \"\";\n}\nfunction willIMaybeExecuteBefore(target) {\n return this._guessExecutionStatusRelativeTo(target) !== \"after\";\n}\nfunction getOuterFunction(path) {\n return path.isProgram() ? path : (path.parentPath.scope.getFunctionParent() || path.parentPath.scope.getProgramParent()).path;\n}\nfunction isExecutionUncertain(type, key) {\n switch (type) {\n case \"LogicalExpression\":\n return key === \"right\";\n case \"ConditionalExpression\":\n case \"IfStatement\":\n return key === \"consequent\" || key === \"alternate\";\n case \"WhileStatement\":\n case \"DoWhileStatement\":\n case \"ForInStatement\":\n case \"ForOfStatement\":\n return key === \"body\";\n case \"ForStatement\":\n return key === \"body\" || key === \"update\";\n case \"SwitchStatement\":\n return key === \"cases\";\n case \"TryStatement\":\n return key === \"handler\";\n case \"AssignmentPattern\":\n return key === \"right\";\n case \"OptionalMemberExpression\":\n return key === \"property\";\n case \"OptionalCallExpression\":\n return key === \"arguments\";\n default:\n return false;\n }\n}\nfunction isExecutionUncertainInList(paths, maxIndex) {\n for (let i = 0; i < maxIndex; i++) {\n const path = paths[i];\n if (isExecutionUncertain(path.parent.type, path.parentKey)) {\n return true;\n }\n }\n return false;\n}\nconst SYMBOL_CHECKING = Symbol();\nfunction _guessExecutionStatusRelativeTo(target) {\n return _guessExecutionStatusRelativeToCached(this, target, new Map());\n}\nfunction _guessExecutionStatusRelativeToCached(base, target, cache) {\n const funcParent = {\n this: getOuterFunction(base),\n target: getOuterFunction(target)\n };\n if (funcParent.target.node !== funcParent.this.node) {\n return _guessExecutionStatusRelativeToDifferentFunctionsCached(base, funcParent.target, cache);\n }\n const paths = {\n target: target.getAncestry(),\n this: base.getAncestry()\n };\n if (paths.target.includes(base)) return \"after\";\n if (paths.this.includes(target)) return \"before\";\n let commonPath;\n const commonIndex = {\n target: 0,\n this: 0\n };\n while (!commonPath && commonIndex.this < paths.this.length) {\n const path = paths.this[commonIndex.this];\n commonIndex.target = paths.target.indexOf(path);\n if (commonIndex.target >= 0) {\n commonPath = path;\n } else {\n commonIndex.this++;\n }\n }\n if (!commonPath) {\n throw new Error(\"Internal Babel error - The two compared nodes\" + \" don't appear to belong to the same program.\");\n }\n if (isExecutionUncertainInList(paths.this, commonIndex.this - 1) || isExecutionUncertainInList(paths.target, commonIndex.target - 1)) {\n return \"unknown\";\n }\n const divergence = {\n this: paths.this[commonIndex.this - 1],\n target: paths.target[commonIndex.target - 1]\n };\n if (divergence.target.listKey && divergence.this.listKey && divergence.target.container === divergence.this.container) {\n return divergence.target.key > divergence.this.key ? \"before\" : \"after\";\n }\n const keys = VISITOR_KEYS[commonPath.type];\n const keyPosition = {\n this: keys.indexOf(divergence.this.parentKey),\n target: keys.indexOf(divergence.target.parentKey)\n };\n return keyPosition.target > keyPosition.this ? \"before\" : \"after\";\n}\nfunction _guessExecutionStatusRelativeToDifferentFunctionsInternal(base, target, cache) {\n if (!target.isFunctionDeclaration()) {\n if (_guessExecutionStatusRelativeToCached(base, target, cache) === \"before\") {\n return \"before\";\n }\n return \"unknown\";\n } else if (target.parentPath.isExportDeclaration()) {\n return \"unknown\";\n }\n const binding = target.scope.getBinding(target.node.id.name);\n if (!binding.references) return \"before\";\n const referencePaths = binding.referencePaths;\n let allStatus;\n for (const path of referencePaths) {\n const childOfFunction = !!path.find(path => path.node === target.node);\n if (childOfFunction) continue;\n if (path.key !== \"callee\" || !path.parentPath.isCallExpression()) {\n return \"unknown\";\n }\n const status = _guessExecutionStatusRelativeToCached(base, path, cache);\n if (allStatus && allStatus !== status) {\n return \"unknown\";\n } else {\n allStatus = status;\n }\n }\n return allStatus;\n}\nfunction _guessExecutionStatusRelativeToDifferentFunctionsCached(base, target, cache) {\n let nodeMap = cache.get(base.node);\n let cached;\n if (!nodeMap) {\n cache.set(base.node, nodeMap = new Map());\n } else if (cached = nodeMap.get(target.node)) {\n if (cached === SYMBOL_CHECKING) {\n return \"unknown\";\n }\n return cached;\n }\n nodeMap.set(target.node, SYMBOL_CHECKING);\n const result = _guessExecutionStatusRelativeToDifferentFunctionsInternal(base, target, cache);\n nodeMap.set(target.node, result);\n return result;\n}\nfunction resolve(dangerous, resolved) {\n return _resolve.call(this, dangerous, resolved) || this;\n}\nfunction _resolve(dangerous, resolved) {\n var _resolved;\n if ((_resolved = resolved) != null && _resolved.includes(this)) return;\n resolved = resolved || [];\n resolved.push(this);\n if (this.isVariableDeclarator()) {\n if (this.get(\"id\").isIdentifier()) {\n return this.get(\"init\").resolve(dangerous, resolved);\n } else {}\n } else if (this.isReferencedIdentifier()) {\n const binding = this.scope.getBinding(this.node.name);\n if (!binding) return;\n if (!binding.constant) return;\n if (binding.kind === \"module\") return;\n if (binding.path !== this) {\n const ret = binding.path.resolve(dangerous, resolved);\n if (this.find(parent => parent.node === ret.node)) return;\n return ret;\n }\n } else if (this.isTypeCastExpression()) {\n return this.get(\"expression\").resolve(dangerous, resolved);\n } else if (dangerous && this.isMemberExpression()) {\n const targetKey = this.toComputedKey();\n if (!isLiteral(targetKey)) return;\n const targetName = targetKey.value;\n const target = this.get(\"object\").resolve(dangerous, resolved);\n if (target.isObjectExpression()) {\n const props = target.get(\"properties\");\n for (const prop of props) {\n if (!prop.isProperty()) continue;\n const key = prop.get(\"key\");\n let match = prop.isnt(\"computed\") && key.isIdentifier({\n name: targetName\n });\n match = match || key.isLiteral({\n value: targetName\n });\n if (match) return prop.get(\"value\").resolve(dangerous, resolved);\n }\n } else if (target.isArrayExpression() && !isNaN(+targetName)) {\n const elems = target.get(\"elements\");\n const elem = elems[targetName];\n if (elem) return elem.resolve(dangerous, resolved);\n }\n }\n}\nfunction isConstantExpression() {\n if (this.isIdentifier()) {\n const binding = this.scope.getBinding(this.node.name);\n if (!binding) return false;\n return binding.constant;\n }\n if (this.isLiteral()) {\n if (this.isRegExpLiteral()) {\n return false;\n }\n if (this.isTemplateLiteral()) {\n return this.get(\"expressions\").every(expression => expression.isConstantExpression());\n }\n return true;\n }\n if (this.isUnaryExpression()) {\n if (this.node.operator !== \"void\") {\n return false;\n }\n return this.get(\"argument\").isConstantExpression();\n }\n if (this.isBinaryExpression()) {\n const {\n operator\n } = this.node;\n return operator !== \"in\" && operator !== \"instanceof\" && this.get(\"left\").isConstantExpression() && this.get(\"right\").isConstantExpression();\n }\n if (this.isMemberExpression()) {\n return !this.node.computed && this.get(\"object\").isIdentifier({\n name: \"Symbol\"\n }) && !this.scope.hasBinding(\"Symbol\", {\n noGlobals: true\n });\n }\n if (this.isCallExpression()) {\n return this.node.arguments.length === 1 && this.get(\"callee\").matchesPattern(\"Symbol.for\") && !this.scope.hasBinding(\"Symbol\", {\n noGlobals: true\n }) && this.get(\"arguments\")[0].isStringLiteral();\n }\n return false;\n}\nfunction isInStrictMode() {\n const start = this.isProgram() ? this : this.parentPath;\n const strictParent = start.find(path => {\n if (path.isProgram({\n sourceType: \"module\"\n })) return true;\n if (path.isClass()) return true;\n if (path.isArrowFunctionExpression() && !path.get(\"body\").isBlockStatement()) {\n return false;\n }\n let body;\n if (path.isFunction()) {\n body = path.node.body;\n } else if (path.isProgram()) {\n body = path.node;\n } else {\n return false;\n }\n for (const directive of body.directives) {\n if (directive.value.value === \"use strict\") {\n return true;\n }\n }\n });\n return !!strictParent;\n}\n\n//# sourceMappingURL=introspection.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.hooks = void 0;\nconst hooks = exports.hooks = [function (self, parent) {\n const removeParent = self.key === \"test\" && (parent.isWhile() || parent.isSwitchCase()) || self.key === \"declaration\" && parent.isExportDeclaration() || self.key === \"body\" && parent.isLabeledStatement() || self.listKey === \"declarations\" && parent.isVariableDeclaration() && parent.node.declarations.length === 1 || self.key === \"expression\" && parent.isExpressionStatement();\n if (removeParent) {\n parent.remove();\n return true;\n }\n}, function (self, parent) {\n if (parent.isSequenceExpression() && parent.node.expressions.length === 1) {\n parent.replaceWith(parent.node.expressions[0]);\n return true;\n }\n}, function (self, parent) {\n if (parent.isBinary()) {\n if (self.key === \"left\") {\n parent.replaceWith(parent.node.right);\n } else {\n parent.replaceWith(parent.node.left);\n }\n return true;\n }\n}, function (self, parent) {\n if (parent.isIfStatement() && self.key === \"consequent\" || self.key === \"body\" && (parent.isLoop() || parent.isArrowFunctionExpression())) {\n self.replaceWith({\n type: \"BlockStatement\",\n body: []\n });\n return true;\n }\n}];\n\n//# sourceMappingURL=removal-hooks.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isBindingIdentifier = isBindingIdentifier;\nexports.isBlockScoped = isBlockScoped;\nexports.isExpression = isExpression;\nexports.isFlow = isFlow;\nexports.isForAwaitStatement = isForAwaitStatement;\nexports.isGenerated = isGenerated;\nexports.isPure = isPure;\nexports.isReferenced = isReferenced;\nexports.isReferencedIdentifier = isReferencedIdentifier;\nexports.isReferencedMemberExpression = isReferencedMemberExpression;\nexports.isRestProperty = isRestProperty;\nexports.isScope = isScope;\nexports.isSpreadProperty = isSpreadProperty;\nexports.isStatement = isStatement;\nexports.isUser = isUser;\nexports.isVar = isVar;\nvar _t = require(\"@babel/types\");\nconst {\n isBinding,\n isBlockScoped: nodeIsBlockScoped,\n isExportDeclaration,\n isExpression: nodeIsExpression,\n isFlow: nodeIsFlow,\n isForStatement,\n isForXStatement,\n isIdentifier,\n isImportDeclaration,\n isImportSpecifier,\n isJSXIdentifier,\n isJSXMemberExpression,\n isMemberExpression,\n isRestElement: nodeIsRestElement,\n isReferenced: nodeIsReferenced,\n isScope: nodeIsScope,\n isStatement: nodeIsStatement,\n isVar: nodeIsVar,\n isVariableDeclaration,\n react,\n isForOfStatement\n} = _t;\nconst {\n isCompatTag\n} = react;\nfunction isReferencedIdentifier(opts) {\n const {\n node,\n parent\n } = this;\n if (!isIdentifier(node, opts) && !isJSXMemberExpression(parent, opts)) {\n if (isJSXIdentifier(node, opts)) {\n if (isCompatTag(node.name)) return false;\n } else {\n return false;\n }\n }\n return nodeIsReferenced(node, parent, this.parentPath.parent);\n}\nfunction isReferencedMemberExpression() {\n const {\n node,\n parent\n } = this;\n return isMemberExpression(node) && nodeIsReferenced(node, parent);\n}\nfunction isBindingIdentifier() {\n const {\n node,\n parent\n } = this;\n const grandparent = this.parentPath.parent;\n return isIdentifier(node) && isBinding(node, parent, grandparent);\n}\nfunction isStatement() {\n const {\n node,\n parent\n } = this;\n if (nodeIsStatement(node)) {\n if (isVariableDeclaration(node)) {\n if (isForXStatement(parent, {\n left: node\n })) return false;\n if (isForStatement(parent, {\n init: node\n })) return false;\n }\n return true;\n } else {\n return false;\n }\n}\nfunction isExpression() {\n if (this.isIdentifier()) {\n return this.isReferencedIdentifier();\n } else {\n return nodeIsExpression(this.node);\n }\n}\nfunction isScope() {\n return nodeIsScope(this.node, this.parent);\n}\nfunction isReferenced() {\n return nodeIsReferenced(this.node, this.parent);\n}\nfunction isBlockScoped() {\n return nodeIsBlockScoped(this.node);\n}\nfunction isVar() {\n return nodeIsVar(this.node);\n}\nfunction isUser() {\n return this.node && !!this.node.loc;\n}\nfunction isGenerated() {\n return !this.isUser();\n}\nfunction isPure(constantsOnly) {\n return this.scope.isPure(this.node, constantsOnly);\n}\nfunction isFlow() {\n const {\n node\n } = this;\n if (nodeIsFlow(node)) {\n return true;\n } else if (isImportDeclaration(node)) {\n return node.importKind === \"type\" || node.importKind === \"typeof\";\n } else if (isExportDeclaration(node)) {\n return node.exportKind === \"type\";\n } else if (isImportSpecifier(node)) {\n return node.importKind === \"type\" || node.importKind === \"typeof\";\n } else {\n return false;\n }\n}\nfunction isRestProperty() {\n var _this$parentPath;\n return nodeIsRestElement(this.node) && ((_this$parentPath = this.parentPath) == null ? void 0 : _this$parentPath.isObjectPattern());\n}\nfunction isSpreadProperty() {\n var _this$parentPath2;\n return nodeIsRestElement(this.node) && ((_this$parentPath2 = this.parentPath) == null ? void 0 : _this$parentPath2.isObjectExpression());\n}\nfunction isForAwaitStatement() {\n return isForOfStatement(this.node, {\n await: true\n });\n}\n{\n exports.isExistentialTypeParam = function isExistentialTypeParam() {\n throw new Error(\"`path.isExistentialTypeParam` has been renamed to `path.isExistsTypeAnnotation()` in Babel 7.\");\n };\n exports.isNumericLiteralTypeAnnotation = function isNumericLiteralTypeAnnotation() {\n throw new Error(\"`path.isNumericLiteralTypeAnnotation()` has been renamed to `path.isNumberLiteralTypeAnnotation()` in Babel 7.\");\n };\n}\n\n//# sourceMappingURL=virtual-types-validator.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nclass Binding {\n constructor({\n identifier,\n scope,\n path,\n kind\n }) {\n this.identifier = void 0;\n this.scope = void 0;\n this.path = void 0;\n this.kind = void 0;\n this.constantViolations = [];\n this.constant = true;\n this.referencePaths = [];\n this.referenced = false;\n this.references = 0;\n this.identifier = identifier;\n this.scope = scope;\n this.path = path;\n this.kind = kind;\n if ((kind === \"var\" || kind === \"hoisted\") && isDeclaredInLoop(path)) {\n this.reassign(path);\n }\n this.clearValue();\n }\n deoptValue() {\n this.clearValue();\n this.hasDeoptedValue = true;\n }\n setValue(value) {\n if (this.hasDeoptedValue) return;\n this.hasValue = true;\n this.value = value;\n }\n clearValue() {\n this.hasDeoptedValue = false;\n this.hasValue = false;\n this.value = null;\n }\n reassign(path) {\n this.constant = false;\n if (this.constantViolations.includes(path)) {\n return;\n }\n this.constantViolations.push(path);\n }\n reference(path) {\n if (this.referencePaths.includes(path)) {\n return;\n }\n this.referenced = true;\n this.references++;\n this.referencePaths.push(path);\n }\n dereference() {\n this.references--;\n this.referenced = !!this.references;\n }\n}\nexports.default = Binding;\nfunction isDeclaredInLoop(path) {\n for (let {\n parentPath,\n key\n } = path; parentPath; ({\n parentPath,\n key\n } = parentPath)) {\n if (parentPath.isFunctionParent()) return false;\n if (parentPath.isWhile() || parentPath.isForXStatement() || parentPath.isForStatement() && key === \"body\") {\n return true;\n }\n }\n return false;\n}\n\n//# sourceMappingURL=binding.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = populatePlaceholders;\nvar _t = require(\"@babel/types\");\nconst {\n blockStatement,\n cloneNode,\n emptyStatement,\n expressionStatement,\n identifier,\n isStatement,\n isStringLiteral,\n stringLiteral,\n validate\n} = _t;\nfunction populatePlaceholders(metadata, replacements) {\n const ast = cloneNode(metadata.ast);\n if (replacements) {\n metadata.placeholders.forEach(placeholder => {\n if (!hasOwnProperty.call(replacements, placeholder.name)) {\n const placeholderName = placeholder.name;\n throw new Error(`Error: No substitution given for \"${placeholderName}\". If this is not meant to be a\n placeholder you may want to consider passing one of the following options to @babel/template:\n - { placeholderPattern: false, placeholderWhitelist: new Set(['${placeholderName}'])}\n - { placeholderPattern: /^${placeholderName}$/ }`);\n }\n });\n Object.keys(replacements).forEach(key => {\n if (!metadata.placeholderNames.has(key)) {\n throw new Error(`Unknown substitution \"${key}\" given`);\n }\n });\n }\n metadata.placeholders.slice().reverse().forEach(placeholder => {\n try {\n applyReplacement(placeholder, ast, replacements && replacements[placeholder.name] || null);\n } catch (e) {\n e.message = `@babel/template placeholder \"${placeholder.name}\": ${e.message}`;\n throw e;\n }\n });\n return ast;\n}\nfunction applyReplacement(placeholder, ast, replacement) {\n if (placeholder.isDuplicate) {\n if (Array.isArray(replacement)) {\n replacement = replacement.map(node => cloneNode(node));\n } else if (typeof replacement === \"object\") {\n replacement = cloneNode(replacement);\n }\n }\n const {\n parent,\n key,\n index\n } = placeholder.resolve(ast);\n if (placeholder.type === \"string\") {\n if (typeof replacement === \"string\") {\n replacement = stringLiteral(replacement);\n }\n if (!replacement || !isStringLiteral(replacement)) {\n throw new Error(\"Expected string substitution\");\n }\n } else if (placeholder.type === \"statement\") {\n if (index === undefined) {\n if (!replacement) {\n replacement = emptyStatement();\n } else if (Array.isArray(replacement)) {\n replacement = blockStatement(replacement);\n } else if (typeof replacement === \"string\") {\n replacement = expressionStatement(identifier(replacement));\n } else if (!isStatement(replacement)) {\n replacement = expressionStatement(replacement);\n }\n } else {\n if (replacement && !Array.isArray(replacement)) {\n if (typeof replacement === \"string\") {\n replacement = identifier(replacement);\n }\n if (!isStatement(replacement)) {\n replacement = expressionStatement(replacement);\n }\n }\n }\n } else if (placeholder.type === \"param\") {\n if (typeof replacement === \"string\") {\n replacement = identifier(replacement);\n }\n if (index === undefined) throw new Error(\"Assertion failure.\");\n } else {\n if (typeof replacement === \"string\") {\n replacement = identifier(replacement);\n }\n if (Array.isArray(replacement)) {\n throw new Error(\"Cannot replace single expression with an array.\");\n }\n }\n function set(parent, key, value) {\n const node = parent[key];\n parent[key] = value;\n if (node.type === \"Identifier\") {\n if (node.typeAnnotation) {\n value.typeAnnotation = node.typeAnnotation;\n }\n if (node.optional) {\n value.optional = node.optional;\n }\n if (node.decorators) {\n value.decorators = node.decorators;\n }\n }\n }\n if (index === undefined) {\n validate(parent, key, replacement);\n set(parent, key, replacement);\n } else {\n const items = parent[key].slice();\n if (placeholder.type === \"statement\" || placeholder.type === \"param\") {\n if (replacement == null) {\n items.splice(index, 1);\n } else if (Array.isArray(replacement)) {\n items.splice(index, 1, ...replacement);\n } else {\n set(items, index, replacement);\n }\n } else {\n set(items, index, replacement);\n }\n validate(parent, key, items);\n parent[key] = items;\n }\n}\n\n//# sourceMappingURL=populate.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.SHOULD_STOP = exports.SHOULD_SKIP = exports.REMOVED = void 0;\nvar virtualTypes = require(\"./lib/virtual-types.js\");\nvar _debug = require(\"debug\");\nvar _index = require(\"../index.js\");\nvar _index2 = require(\"../scope/index.js\");\nvar _t = require(\"@babel/types\");\nvar t = _t;\nvar cache = require(\"../cache.js\");\nvar _generator = require(\"@babel/generator\");\nvar NodePath_ancestry = require(\"./ancestry.js\");\nvar NodePath_inference = require(\"./inference/index.js\");\nvar NodePath_replacement = require(\"./replacement.js\");\nvar NodePath_evaluation = require(\"./evaluation.js\");\nvar NodePath_conversion = require(\"./conversion.js\");\nvar NodePath_introspection = require(\"./introspection.js\");\nvar _context = require(\"./context.js\");\nvar NodePath_context = _context;\nvar NodePath_removal = require(\"./removal.js\");\nvar NodePath_modification = require(\"./modification.js\");\nvar NodePath_family = require(\"./family.js\");\nvar NodePath_comments = require(\"./comments.js\");\nvar NodePath_virtual_types_validator = require(\"./lib/virtual-types-validator.js\");\nconst {\n validate\n} = _t;\nconst debug = _debug(\"babel\");\nconst REMOVED = exports.REMOVED = 1 << 0;\nconst SHOULD_STOP = exports.SHOULD_STOP = 1 << 1;\nconst SHOULD_SKIP = exports.SHOULD_SKIP = 1 << 2;\nconst NodePath_Final = exports.default = class NodePath {\n constructor(hub, parent) {\n this.contexts = [];\n this.state = null;\n this.opts = null;\n this._traverseFlags = 0;\n this.skipKeys = null;\n this.parentPath = null;\n this.container = null;\n this.listKey = null;\n this.key = null;\n this.node = null;\n this.type = null;\n this.parent = parent;\n this.hub = hub;\n this.data = null;\n this.context = null;\n this.scope = null;\n }\n get removed() {\n return (this._traverseFlags & 1) > 0;\n }\n set removed(v) {\n if (v) this._traverseFlags |= 1;else this._traverseFlags &= -2;\n }\n get shouldStop() {\n return (this._traverseFlags & 2) > 0;\n }\n set shouldStop(v) {\n if (v) this._traverseFlags |= 2;else this._traverseFlags &= -3;\n }\n get shouldSkip() {\n return (this._traverseFlags & 4) > 0;\n }\n set shouldSkip(v) {\n if (v) this._traverseFlags |= 4;else this._traverseFlags &= -5;\n }\n static get({\n hub,\n parentPath,\n parent,\n container,\n listKey,\n key\n }) {\n if (!hub && parentPath) {\n hub = parentPath.hub;\n }\n if (!parent) {\n throw new Error(\"To get a node path the parent needs to exist\");\n }\n const targetNode = container[key];\n const paths = cache.getOrCreateCachedPaths(hub, parent);\n let path = paths.get(targetNode);\n if (!path) {\n path = new NodePath(hub, parent);\n if (targetNode) paths.set(targetNode, path);\n }\n _context.setup.call(path, parentPath, container, listKey, key);\n return path;\n }\n getScope(scope) {\n return this.isScope() ? new _index2.default(this) : scope;\n }\n setData(key, val) {\n if (this.data == null) {\n this.data = Object.create(null);\n }\n return this.data[key] = val;\n }\n getData(key, def) {\n if (this.data == null) {\n this.data = Object.create(null);\n }\n let val = this.data[key];\n if (val === undefined && def !== undefined) val = this.data[key] = def;\n return val;\n }\n hasNode() {\n return this.node != null;\n }\n buildCodeFrameError(msg, Error = SyntaxError) {\n return this.hub.buildError(this.node, msg, Error);\n }\n traverse(visitor, state) {\n (0, _index.default)(this.node, visitor, this.scope, state, this);\n }\n set(key, node) {\n validate(this.node, key, node);\n this.node[key] = node;\n }\n getPathLocation() {\n const parts = [];\n let path = this;\n do {\n let key = path.key;\n if (path.inList) key = `${path.listKey}[${key}]`;\n parts.unshift(key);\n } while (path = path.parentPath);\n return parts.join(\".\");\n }\n debug(message) {\n if (!debug.enabled) return;\n debug(`${this.getPathLocation()} ${this.type}: ${message}`);\n }\n toString() {\n return (0, _generator.default)(this.node).code;\n }\n get inList() {\n return !!this.listKey;\n }\n set inList(inList) {\n if (!inList) {\n this.listKey = null;\n }\n }\n get parentKey() {\n return this.listKey || this.key;\n }\n};\nconst methods = {\n findParent: NodePath_ancestry.findParent,\n find: NodePath_ancestry.find,\n getFunctionParent: NodePath_ancestry.getFunctionParent,\n getStatementParent: NodePath_ancestry.getStatementParent,\n getEarliestCommonAncestorFrom: NodePath_ancestry.getEarliestCommonAncestorFrom,\n getDeepestCommonAncestorFrom: NodePath_ancestry.getDeepestCommonAncestorFrom,\n getAncestry: NodePath_ancestry.getAncestry,\n isAncestor: NodePath_ancestry.isAncestor,\n isDescendant: NodePath_ancestry.isDescendant,\n inType: NodePath_ancestry.inType,\n getTypeAnnotation: NodePath_inference.getTypeAnnotation,\n isBaseType: NodePath_inference.isBaseType,\n couldBeBaseType: NodePath_inference.couldBeBaseType,\n baseTypeStrictlyMatches: NodePath_inference.baseTypeStrictlyMatches,\n isGenericType: NodePath_inference.isGenericType,\n replaceWithMultiple: NodePath_replacement.replaceWithMultiple,\n replaceWithSourceString: NodePath_replacement.replaceWithSourceString,\n replaceWith: NodePath_replacement.replaceWith,\n replaceExpressionWithStatements: NodePath_replacement.replaceExpressionWithStatements,\n replaceInline: NodePath_replacement.replaceInline,\n evaluateTruthy: NodePath_evaluation.evaluateTruthy,\n evaluate: NodePath_evaluation.evaluate,\n toComputedKey: NodePath_conversion.toComputedKey,\n ensureBlock: NodePath_conversion.ensureBlock,\n unwrapFunctionEnvironment: NodePath_conversion.unwrapFunctionEnvironment,\n arrowFunctionToExpression: NodePath_conversion.arrowFunctionToExpression,\n splitExportDeclaration: NodePath_conversion.splitExportDeclaration,\n ensureFunctionName: NodePath_conversion.ensureFunctionName,\n matchesPattern: NodePath_introspection.matchesPattern,\n isStatic: NodePath_introspection.isStatic,\n isNodeType: NodePath_introspection.isNodeType,\n canHaveVariableDeclarationOrExpression: NodePath_introspection.canHaveVariableDeclarationOrExpression,\n canSwapBetweenExpressionAndStatement: NodePath_introspection.canSwapBetweenExpressionAndStatement,\n isCompletionRecord: NodePath_introspection.isCompletionRecord,\n isStatementOrBlock: NodePath_introspection.isStatementOrBlock,\n referencesImport: NodePath_introspection.referencesImport,\n getSource: NodePath_introspection.getSource,\n willIMaybeExecuteBefore: NodePath_introspection.willIMaybeExecuteBefore,\n _guessExecutionStatusRelativeTo: NodePath_introspection._guessExecutionStatusRelativeTo,\n resolve: NodePath_introspection.resolve,\n isConstantExpression: NodePath_introspection.isConstantExpression,\n isInStrictMode: NodePath_introspection.isInStrictMode,\n isDenylisted: NodePath_context.isDenylisted,\n visit: NodePath_context.visit,\n skip: NodePath_context.skip,\n skipKey: NodePath_context.skipKey,\n stop: NodePath_context.stop,\n setContext: NodePath_context.setContext,\n requeue: NodePath_context.requeue,\n requeueComputedKeyAndDecorators: NodePath_context.requeueComputedKeyAndDecorators,\n remove: NodePath_removal.remove,\n insertBefore: NodePath_modification.insertBefore,\n insertAfter: NodePath_modification.insertAfter,\n unshiftContainer: NodePath_modification.unshiftContainer,\n pushContainer: NodePath_modification.pushContainer,\n getOpposite: NodePath_family.getOpposite,\n getCompletionRecords: NodePath_family.getCompletionRecords,\n getSibling: NodePath_family.getSibling,\n getPrevSibling: NodePath_family.getPrevSibling,\n getNextSibling: NodePath_family.getNextSibling,\n getAllNextSiblings: NodePath_family.getAllNextSiblings,\n getAllPrevSiblings: NodePath_family.getAllPrevSiblings,\n get: NodePath_family.get,\n getAssignmentIdentifiers: NodePath_family.getAssignmentIdentifiers,\n getBindingIdentifiers: NodePath_family.getBindingIdentifiers,\n getOuterBindingIdentifiers: NodePath_family.getOuterBindingIdentifiers,\n getBindingIdentifierPaths: NodePath_family.getBindingIdentifierPaths,\n getOuterBindingIdentifierPaths: NodePath_family.getOuterBindingIdentifierPaths,\n shareCommentsWithSiblings: NodePath_comments.shareCommentsWithSiblings,\n addComment: NodePath_comments.addComment,\n addComments: NodePath_comments.addComments\n};\nObject.assign(NodePath_Final.prototype, methods);\n{\n NodePath_Final.prototype.arrowFunctionToShadowed = NodePath_conversion[String(\"arrowFunctionToShadowed\")];\n Object.assign(NodePath_Final.prototype, {\n has: NodePath_introspection[String(\"has\")],\n is: NodePath_introspection[String(\"is\")],\n isnt: NodePath_introspection[String(\"isnt\")],\n equals: NodePath_introspection[String(\"equals\")],\n hoist: NodePath_modification[String(\"hoist\")],\n updateSiblingKeys: NodePath_modification.updateSiblingKeys,\n call: NodePath_context.call,\n isBlacklisted: NodePath_context[String(\"isBlacklisted\")],\n setScope: NodePath_context.setScope,\n resync: NodePath_context.resync,\n popContext: NodePath_context.popContext,\n pushContext: NodePath_context.pushContext,\n setup: NodePath_context.setup,\n setKey: NodePath_context.setKey\n });\n}\n{\n NodePath_Final.prototype._guessExecutionStatusRelativeToDifferentFunctions = NodePath_introspection._guessExecutionStatusRelativeTo;\n NodePath_Final.prototype._guessExecutionStatusRelativeToDifferentFunctions = NodePath_introspection._guessExecutionStatusRelativeTo;\n Object.assign(NodePath_Final.prototype, {\n _getTypeAnnotation: NodePath_inference._getTypeAnnotation,\n _replaceWith: NodePath_replacement._replaceWith,\n _resolve: NodePath_introspection._resolve,\n _call: NodePath_context._call,\n _resyncParent: NodePath_context._resyncParent,\n _resyncKey: NodePath_context._resyncKey,\n _resyncList: NodePath_context._resyncList,\n _resyncRemoved: NodePath_context._resyncRemoved,\n _getQueueContexts: NodePath_context._getQueueContexts,\n _removeFromScope: NodePath_removal._removeFromScope,\n _callRemovalHooks: NodePath_removal._callRemovalHooks,\n _remove: NodePath_removal._remove,\n _markRemoved: NodePath_removal._markRemoved,\n _assertUnremoved: NodePath_removal._assertUnremoved,\n _containerInsert: NodePath_modification._containerInsert,\n _containerInsertBefore: NodePath_modification._containerInsertBefore,\n _containerInsertAfter: NodePath_modification._containerInsertAfter,\n _verifyNodeList: NodePath_modification._verifyNodeList,\n _getKey: NodePath_family._getKey,\n _getPattern: NodePath_family._getPattern\n });\n}\nfor (const type of t.TYPES) {\n const typeKey = `is${type}`;\n const fn = t[typeKey];\n NodePath_Final.prototype[typeKey] = function (opts) {\n return fn(this.node, opts);\n };\n NodePath_Final.prototype[`assert${type}`] = function (opts) {\n if (!fn(this.node, opts)) {\n throw new TypeError(`Expected node path of type ${type}`);\n }\n };\n}\nObject.assign(NodePath_Final.prototype, NodePath_virtual_types_validator);\nfor (const type of Object.keys(virtualTypes)) {\n if (type[0] === \"_\") continue;\n if (!t.TYPES.includes(type)) t.TYPES.push(type);\n}\n\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports._call = _call;\nexports._getQueueContexts = _getQueueContexts;\nexports._resyncKey = _resyncKey;\nexports._resyncList = _resyncList;\nexports._resyncParent = _resyncParent;\nexports._resyncRemoved = _resyncRemoved;\nexports.call = call;\nexports.isDenylisted = isDenylisted;\nexports.popContext = popContext;\nexports.pushContext = pushContext;\nexports.requeue = requeue;\nexports.requeueComputedKeyAndDecorators = requeueComputedKeyAndDecorators;\nexports.resync = resync;\nexports.setContext = setContext;\nexports.setKey = setKey;\nexports.setScope = setScope;\nexports.setup = setup;\nexports.skip = skip;\nexports.skipKey = skipKey;\nexports.stop = stop;\nexports.visit = visit;\nvar _traverseNode = require(\"../traverse-node.js\");\nvar _index = require(\"./index.js\");\nvar _removal = require(\"./removal.js\");\nvar t = require(\"@babel/types\");\nfunction call(key) {\n const opts = this.opts;\n this.debug(key);\n if (this.node) {\n if (_call.call(this, opts[key])) return true;\n }\n if (this.node) {\n var _opts$this$node$type;\n return _call.call(this, (_opts$this$node$type = opts[this.node.type]) == null ? void 0 : _opts$this$node$type[key]);\n }\n return false;\n}\nfunction _call(fns) {\n if (!fns) return false;\n for (const fn of fns) {\n if (!fn) continue;\n const node = this.node;\n if (!node) return true;\n const ret = fn.call(this.state, this, this.state);\n if (ret && typeof ret === \"object\" && typeof ret.then === \"function\") {\n throw new Error(`You appear to be using a plugin with an async traversal visitor, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, you may need to upgrade ` + `your @babel/core version.`);\n }\n if (ret) {\n throw new Error(`Unexpected return value from visitor method ${fn}`);\n }\n if (this.node !== node) return true;\n if (this._traverseFlags > 0) return true;\n }\n return false;\n}\nfunction isDenylisted() {\n var _this$opts$denylist;\n const denylist = (_this$opts$denylist = this.opts.denylist) != null ? _this$opts$denylist : this.opts.blacklist;\n return denylist && denylist.indexOf(this.node.type) > -1;\n}\n{\n exports.isBlacklisted = isDenylisted;\n}\nfunction restoreContext(path, context) {\n if (path.context !== context) {\n path.context = context;\n path.state = context.state;\n path.opts = context.opts;\n }\n}\nfunction visit() {\n var _this$opts$shouldSkip, _this$opts;\n if (!this.node) {\n return false;\n }\n if (this.isDenylisted()) {\n return false;\n }\n if ((_this$opts$shouldSkip = (_this$opts = this.opts).shouldSkip) != null && _this$opts$shouldSkip.call(_this$opts, this)) {\n return false;\n }\n const currentContext = this.context;\n if (this.shouldSkip || call.call(this, \"enter\")) {\n this.debug(\"Skip...\");\n return this.shouldStop;\n }\n restoreContext(this, currentContext);\n this.debug(\"Recursing into...\");\n this.shouldStop = (0, _traverseNode.traverseNode)(this.node, this.opts, this.scope, this.state, this, this.skipKeys);\n restoreContext(this, currentContext);\n call.call(this, \"exit\");\n return this.shouldStop;\n}\nfunction skip() {\n this.shouldSkip = true;\n}\nfunction skipKey(key) {\n if (this.skipKeys == null) {\n this.skipKeys = {};\n }\n this.skipKeys[key] = true;\n}\nfunction stop() {\n this._traverseFlags |= _index.SHOULD_SKIP | _index.SHOULD_STOP;\n}\nfunction setScope() {\n var _this$opts2, _this$scope;\n if ((_this$opts2 = this.opts) != null && _this$opts2.noScope) return;\n let path = this.parentPath;\n if ((this.key === \"key\" || this.listKey === \"decorators\") && path.isMethod() || this.key === \"discriminant\" && path.isSwitchStatement()) {\n path = path.parentPath;\n }\n let target;\n while (path && !target) {\n var _path$opts;\n if ((_path$opts = path.opts) != null && _path$opts.noScope) return;\n target = path.scope;\n path = path.parentPath;\n }\n this.scope = this.getScope(target);\n (_this$scope = this.scope) == null || _this$scope.init();\n}\nfunction setContext(context) {\n if (this.skipKeys != null) {\n this.skipKeys = {};\n }\n this._traverseFlags = 0;\n if (context) {\n this.context = context;\n this.state = context.state;\n this.opts = context.opts;\n }\n setScope.call(this);\n return this;\n}\nfunction resync() {\n if (this.removed) return;\n _resyncParent.call(this);\n _resyncList.call(this);\n _resyncKey.call(this);\n}\nfunction _resyncParent() {\n if (this.parentPath) {\n this.parent = this.parentPath.node;\n }\n}\nfunction _resyncKey() {\n if (!this.container) return;\n if (this.node === this.container[this.key]) {\n return;\n }\n if (Array.isArray(this.container)) {\n for (let i = 0; i < this.container.length; i++) {\n if (this.container[i] === this.node) {\n setKey.call(this, i);\n return;\n }\n }\n } else {\n for (const key of Object.keys(this.container)) {\n if (this.container[key] === this.node) {\n setKey.call(this, key);\n return;\n }\n }\n }\n this.key = null;\n}\nfunction _resyncList() {\n if (!this.parent || !this.inList) return;\n const newContainer = this.parent[this.listKey];\n if (this.container === newContainer) return;\n this.container = newContainer || null;\n}\nfunction _resyncRemoved() {\n if (this.key == null || !this.container || this.container[this.key] !== this.node) {\n _removal._markRemoved.call(this);\n }\n}\nfunction popContext() {\n this.contexts.pop();\n if (this.contexts.length > 0) {\n this.setContext(this.contexts[this.contexts.length - 1]);\n } else {\n this.setContext(undefined);\n }\n}\nfunction pushContext(context) {\n this.contexts.push(context);\n this.setContext(context);\n}\nfunction setup(parentPath, container, listKey, key) {\n this.listKey = listKey;\n this.container = container;\n this.parentPath = parentPath || this.parentPath;\n setKey.call(this, key);\n}\nfunction setKey(key) {\n var _this$node;\n this.key = key;\n this.node = this.container[this.key];\n this.type = (_this$node = this.node) == null ? void 0 : _this$node.type;\n}\nfunction requeue(pathToQueue = this) {\n if (pathToQueue.removed) return;\n ;\n const contexts = this.contexts;\n for (const context of contexts) {\n context.maybeQueue(pathToQueue);\n }\n}\nfunction requeueComputedKeyAndDecorators() {\n const {\n context,\n node\n } = this;\n if (!t.isPrivate(node) && node.computed) {\n context.maybeQueue(this.get(\"key\"));\n }\n if (node.decorators) {\n for (const decorator of this.get(\"decorators\")) {\n context.maybeQueue(decorator);\n }\n }\n}\nfunction _getQueueContexts() {\n let path = this;\n let contexts = this.contexts;\n while (!contexts.length) {\n path = path.parentPath;\n if (!path) break;\n contexts = path.contexts;\n }\n return contexts;\n}\n\n//# sourceMappingURL=context.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = highlight;\nexports.shouldHighlight = shouldHighlight;\nvar _jsTokens = require(\"js-tokens\");\nvar _helperValidatorIdentifier = require(\"@babel/helper-validator-identifier\");\nvar _picocolors = _interopRequireWildcard(require(\"picocolors\"), true);\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nconst colors = typeof process === \"object\" && (process.env.FORCE_COLOR === \"0\" || process.env.FORCE_COLOR === \"false\") ? (0, _picocolors.createColors)(false) : _picocolors.default;\nconst compose = (f, g) => v => f(g(v));\nconst sometimesKeywords = new Set([\"as\", \"async\", \"from\", \"get\", \"of\", \"set\"]);\nfunction getDefs(colors) {\n return {\n keyword: colors.cyan,\n capitalized: colors.yellow,\n jsxIdentifier: colors.yellow,\n punctuator: colors.yellow,\n number: colors.magenta,\n string: colors.green,\n regex: colors.magenta,\n comment: colors.gray,\n invalid: compose(compose(colors.white, colors.bgRed), colors.bold)\n };\n}\nconst NEWLINE = /\\r\\n|[\\n\\r\\u2028\\u2029]/;\nconst BRACKET = /^[()[\\]{}]$/;\nlet tokenize;\n{\n const JSX_TAG = /^[a-z][\\w-]*$/i;\n const getTokenType = function (token, offset, text) {\n if (token.type === \"name\") {\n if ((0, _helperValidatorIdentifier.isKeyword)(token.value) || (0, _helperValidatorIdentifier.isStrictReservedWord)(token.value, true) || sometimesKeywords.has(token.value)) {\n return \"keyword\";\n }\n if (JSX_TAG.test(token.value) && (text[offset - 1] === \"<\" || text.slice(offset - 2, offset) === \" colorize(str)).join(\"\\n\");\n } else {\n highlighted += value;\n }\n }\n return highlighted;\n}\nfunction shouldHighlight(options) {\n return colors.isColorSupported || options.forceColor;\n}\nlet pcWithForcedColor = undefined;\nfunction getColors(forceColor) {\n if (forceColor) {\n var _pcWithForcedColor;\n (_pcWithForcedColor = pcWithForcedColor) != null ? _pcWithForcedColor : pcWithForcedColor = (0, _picocolors.createColors)(true);\n return pcWithForcedColor;\n }\n return colors;\n}\nfunction highlight(code, options = {}) {\n if (code !== \"\" && shouldHighlight(options)) {\n const defs = getDefs(getColors(options.forceColor));\n return highlightTokens(defs, code);\n } else {\n return code;\n }\n}\n{\n let chalk, chalkWithForcedColor;\n exports.getChalk = ({\n forceColor\n }) => {\n var _chalk;\n (_chalk = chalk) != null ? _chalk : chalk = require(\"chalk\");\n if (forceColor) {\n var _chalkWithForcedColor;\n (_chalkWithForcedColor = chalkWithForcedColor) != null ? _chalkWithForcedColor : chalkWithForcedColor = new chalk.constructor({\n enabled: true,\n level: 1\n });\n return chalkWithForcedColor;\n }\n return chalk;\n };\n}\n\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.find = find;\nexports.findParent = findParent;\nexports.getAncestry = getAncestry;\nexports.getDeepestCommonAncestorFrom = getDeepestCommonAncestorFrom;\nexports.getEarliestCommonAncestorFrom = getEarliestCommonAncestorFrom;\nexports.getFunctionParent = getFunctionParent;\nexports.getStatementParent = getStatementParent;\nexports.inType = inType;\nexports.isAncestor = isAncestor;\nexports.isDescendant = isDescendant;\nvar _t = require(\"@babel/types\");\nconst {\n VISITOR_KEYS\n} = _t;\nfunction findParent(callback) {\n let path = this;\n while (path = path.parentPath) {\n if (callback(path)) return path;\n }\n return null;\n}\nfunction find(callback) {\n let path = this;\n do {\n if (callback(path)) return path;\n } while (path = path.parentPath);\n return null;\n}\nfunction getFunctionParent() {\n return this.findParent(p => p.isFunction());\n}\nfunction getStatementParent() {\n let path = this;\n do {\n if (!path.parentPath || Array.isArray(path.container) && path.isStatement()) {\n break;\n } else {\n path = path.parentPath;\n }\n } while (path);\n if (path && (path.isProgram() || path.isFile())) {\n throw new Error(\"File/Program node, we can't possibly find a statement parent to this\");\n }\n return path;\n}\nfunction getEarliestCommonAncestorFrom(paths) {\n return this.getDeepestCommonAncestorFrom(paths, function (deepest, i, ancestries) {\n let earliest;\n const keys = VISITOR_KEYS[deepest.type];\n for (const ancestry of ancestries) {\n const path = ancestry[i + 1];\n if (!earliest) {\n earliest = path;\n continue;\n }\n if (path.listKey && earliest.listKey === path.listKey) {\n if (path.key < earliest.key) {\n earliest = path;\n continue;\n }\n }\n const earliestKeyIndex = keys.indexOf(earliest.parentKey);\n const currentKeyIndex = keys.indexOf(path.parentKey);\n if (earliestKeyIndex > currentKeyIndex) {\n earliest = path;\n }\n }\n return earliest;\n });\n}\nfunction getDeepestCommonAncestorFrom(paths, filter) {\n if (!paths.length) {\n return this;\n }\n if (paths.length === 1) {\n return paths[0];\n }\n let minDepth = Infinity;\n let lastCommonIndex, lastCommon;\n const ancestries = paths.map(path => {\n const ancestry = [];\n do {\n ancestry.unshift(path);\n } while ((path = path.parentPath) && path !== this);\n if (ancestry.length < minDepth) {\n minDepth = ancestry.length;\n }\n return ancestry;\n });\n const first = ancestries[0];\n depthLoop: for (let i = 0; i < minDepth; i++) {\n const shouldMatch = first[i];\n for (const ancestry of ancestries) {\n if (ancestry[i] !== shouldMatch) {\n break depthLoop;\n }\n }\n lastCommonIndex = i;\n lastCommon = shouldMatch;\n }\n if (lastCommon) {\n if (filter) {\n return filter(lastCommon, lastCommonIndex, ancestries);\n } else {\n return lastCommon;\n }\n } else {\n throw new Error(\"Couldn't find intersection\");\n }\n}\nfunction getAncestry() {\n let path = this;\n const paths = [];\n do {\n paths.push(path);\n } while (path = path.parentPath);\n return paths;\n}\nfunction isAncestor(maybeDescendant) {\n return maybeDescendant.isDescendant(this);\n}\nfunction isDescendant(maybeAncestor) {\n return !!this.findParent(parent => parent === maybeAncestor);\n}\nfunction inType(...candidateTypes) {\n let path = this;\n while (path) {\n for (const type of candidateTypes) {\n if (path.node.type === type) return true;\n }\n path = path.parentPath;\n }\n return false;\n}\n\n//# sourceMappingURL=ancestry.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports._replaceWith = _replaceWith;\nexports.replaceExpressionWithStatements = replaceExpressionWithStatements;\nexports.replaceInline = replaceInline;\nexports.replaceWith = replaceWith;\nexports.replaceWithMultiple = replaceWithMultiple;\nexports.replaceWithSourceString = replaceWithSourceString;\nvar _codeFrame = require(\"@babel/code-frame\");\nvar _index = require(\"../index.js\");\nvar _index2 = require(\"./index.js\");\nvar _cache = require(\"../cache.js\");\nvar _modification = require(\"./modification.js\");\nvar _parser = require(\"@babel/parser\");\nvar _t = require(\"@babel/types\");\nvar _context = require(\"./context.js\");\nconst {\n FUNCTION_TYPES,\n arrowFunctionExpression,\n assignmentExpression,\n awaitExpression,\n blockStatement,\n buildUndefinedNode,\n callExpression,\n cloneNode,\n conditionalExpression,\n expressionStatement,\n getBindingIdentifiers,\n identifier,\n inheritLeadingComments,\n inheritTrailingComments,\n inheritsComments,\n isBlockStatement,\n isEmptyStatement,\n isExpression,\n isExpressionStatement,\n isIfStatement,\n isProgram,\n isStatement,\n isVariableDeclaration,\n removeComments,\n returnStatement,\n sequenceExpression,\n validate,\n yieldExpression\n} = _t;\nfunction replaceWithMultiple(nodes) {\n var _getCachedPaths;\n _context.resync.call(this);\n nodes = _modification._verifyNodeList.call(this, nodes);\n inheritLeadingComments(nodes[0], this.node);\n inheritTrailingComments(nodes[nodes.length - 1], this.node);\n (_getCachedPaths = (0, _cache.getCachedPaths)(this.hub, this.parent)) == null || _getCachedPaths.delete(this.node);\n this.node = this.container[this.key] = null;\n const paths = this.insertAfter(nodes);\n if (this.node) {\n this.requeue();\n } else {\n this.remove();\n }\n return paths;\n}\nfunction replaceWithSourceString(replacement) {\n _context.resync.call(this);\n let ast;\n try {\n replacement = `(${replacement})`;\n ast = (0, _parser.parse)(replacement);\n } catch (err) {\n const loc = err.loc;\n if (loc) {\n err.message += \" - make sure this is an expression.\\n\" + (0, _codeFrame.codeFrameColumns)(replacement, {\n start: {\n line: loc.line,\n column: loc.column + 1\n }\n });\n err.code = \"BABEL_REPLACE_SOURCE_ERROR\";\n }\n throw err;\n }\n const expressionAST = ast.program.body[0].expression;\n _index.default.removeProperties(expressionAST);\n return this.replaceWith(expressionAST);\n}\nfunction replaceWith(replacementPath) {\n _context.resync.call(this);\n if (this.removed) {\n throw new Error(\"You can't replace this node, we've already removed it\");\n }\n let replacement = replacementPath instanceof _index2.default ? replacementPath.node : replacementPath;\n if (!replacement) {\n throw new Error(\"You passed `path.replaceWith()` a falsy node, use `path.remove()` instead\");\n }\n if (this.node === replacement) {\n return [this];\n }\n if (this.isProgram() && !isProgram(replacement)) {\n throw new Error(\"You can only replace a Program root node with another Program node\");\n }\n if (Array.isArray(replacement)) {\n throw new Error(\"Don't use `path.replaceWith()` with an array of nodes, use `path.replaceWithMultiple()`\");\n }\n if (typeof replacement === \"string\") {\n throw new Error(\"Don't use `path.replaceWith()` with a source string, use `path.replaceWithSourceString()`\");\n }\n let nodePath = \"\";\n if (this.isNodeType(\"Statement\") && isExpression(replacement)) {\n if (!this.canHaveVariableDeclarationOrExpression() && !this.canSwapBetweenExpressionAndStatement(replacement) && !this.parentPath.isExportDefaultDeclaration()) {\n replacement = expressionStatement(replacement);\n nodePath = \"expression\";\n }\n }\n if (this.isNodeType(\"Expression\") && isStatement(replacement)) {\n if (!this.canHaveVariableDeclarationOrExpression() && !this.canSwapBetweenExpressionAndStatement(replacement)) {\n return this.replaceExpressionWithStatements([replacement]);\n }\n }\n const oldNode = this.node;\n if (oldNode) {\n inheritsComments(replacement, oldNode);\n removeComments(oldNode);\n }\n _replaceWith.call(this, replacement);\n this.type = replacement.type;\n _context.setScope.call(this);\n this.requeue();\n return [nodePath ? this.get(nodePath) : this];\n}\nfunction _replaceWith(node) {\n var _getCachedPaths2;\n if (!this.container) {\n throw new ReferenceError(\"Container is falsy\");\n }\n if (this.inList) {\n validate(this.parent, this.key, [node]);\n } else {\n validate(this.parent, this.key, node);\n }\n this.debug(`Replace with ${node == null ? void 0 : node.type}`);\n (_getCachedPaths2 = (0, _cache.getCachedPaths)(this.hub, this.parent)) == null || _getCachedPaths2.set(node, this).delete(this.node);\n this.node = this.container[this.key] = node;\n}\nfunction replaceExpressionWithStatements(nodes) {\n _context.resync.call(this);\n const declars = [];\n const nodesAsSingleExpression = gatherSequenceExpressions(nodes, declars);\n if (nodesAsSingleExpression) {\n for (const id of declars) this.scope.push({\n id\n });\n return this.replaceWith(nodesAsSingleExpression)[0].get(\"expressions\");\n }\n const functionParent = this.getFunctionParent();\n const isParentAsync = functionParent == null ? void 0 : functionParent.node.async;\n const isParentGenerator = functionParent == null ? void 0 : functionParent.node.generator;\n const container = arrowFunctionExpression([], blockStatement(nodes));\n this.replaceWith(callExpression(container, []));\n const callee = this.get(\"callee\");\n callee.get(\"body\").scope.hoistVariables(id => this.scope.push({\n id\n }));\n const completionRecords = callee.getCompletionRecords();\n for (const path of completionRecords) {\n if (!path.isExpressionStatement()) continue;\n const loop = path.findParent(path => path.isLoop());\n if (loop) {\n let uid = loop.getData(\"expressionReplacementReturnUid\");\n if (!uid) {\n uid = callee.scope.generateDeclaredUidIdentifier(\"ret\");\n callee.get(\"body\").pushContainer(\"body\", returnStatement(cloneNode(uid)));\n loop.setData(\"expressionReplacementReturnUid\", uid);\n } else {\n uid = identifier(uid.name);\n }\n path.get(\"expression\").replaceWith(assignmentExpression(\"=\", cloneNode(uid), path.node.expression));\n } else {\n path.replaceWith(returnStatement(path.node.expression));\n }\n }\n callee.arrowFunctionToExpression();\n const newCallee = callee;\n const needToAwaitFunction = isParentAsync && _index.default.hasType(this.get(\"callee.body\").node, \"AwaitExpression\", FUNCTION_TYPES);\n const needToYieldFunction = isParentGenerator && _index.default.hasType(this.get(\"callee.body\").node, \"YieldExpression\", FUNCTION_TYPES);\n if (needToAwaitFunction) {\n newCallee.set(\"async\", true);\n if (!needToYieldFunction) {\n this.replaceWith(awaitExpression(this.node));\n }\n }\n if (needToYieldFunction) {\n newCallee.set(\"generator\", true);\n this.replaceWith(yieldExpression(this.node, true));\n }\n return newCallee.get(\"body.body\");\n}\nfunction gatherSequenceExpressions(nodes, declars) {\n const exprs = [];\n let ensureLastUndefined = true;\n for (const node of nodes) {\n if (!isEmptyStatement(node)) {\n ensureLastUndefined = false;\n }\n if (isExpression(node)) {\n exprs.push(node);\n } else if (isExpressionStatement(node)) {\n exprs.push(node.expression);\n } else if (isVariableDeclaration(node)) {\n if (node.kind !== \"var\") return;\n for (const declar of node.declarations) {\n const bindings = getBindingIdentifiers(declar);\n for (const key of Object.keys(bindings)) {\n declars.push(cloneNode(bindings[key]));\n }\n if (declar.init) {\n exprs.push(assignmentExpression(\"=\", declar.id, declar.init));\n }\n }\n ensureLastUndefined = true;\n } else if (isIfStatement(node)) {\n const consequent = node.consequent ? gatherSequenceExpressions([node.consequent], declars) : buildUndefinedNode();\n const alternate = node.alternate ? gatherSequenceExpressions([node.alternate], declars) : buildUndefinedNode();\n if (!consequent || !alternate) return;\n exprs.push(conditionalExpression(node.test, consequent, alternate));\n } else if (isBlockStatement(node)) {\n const body = gatherSequenceExpressions(node.body, declars);\n if (!body) return;\n exprs.push(body);\n } else if (isEmptyStatement(node)) {\n if (nodes.indexOf(node) === 0) {\n ensureLastUndefined = true;\n }\n } else {\n return;\n }\n }\n if (ensureLastUndefined) exprs.push(buildUndefinedNode());\n if (exprs.length === 1) {\n return exprs[0];\n } else {\n return sequenceExpression(exprs);\n }\n}\nfunction replaceInline(nodes) {\n _context.resync.call(this);\n if (Array.isArray(nodes)) {\n if (Array.isArray(this.container)) {\n nodes = _modification._verifyNodeList.call(this, nodes);\n const paths = _modification._containerInsertAfter.call(this, nodes);\n this.remove();\n return paths;\n } else {\n return this.replaceWithMultiple(nodes);\n }\n } else {\n return this.replaceWith(nodes);\n }\n}\n\n//# sourceMappingURL=replacement.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.environmentVisitor = environmentVisitor;\nexports.explode = explode$1;\nexports.isExplodedVisitor = isExplodedVisitor;\nexports.merge = merge;\nexports.verify = verify$1;\nvar virtualTypes = require(\"./path/lib/virtual-types.js\");\nvar virtualTypesValidators = require(\"./path/lib/virtual-types-validator.js\");\nvar _t = require(\"@babel/types\");\nvar _context = require(\"./path/context.js\");\nconst {\n DEPRECATED_KEYS,\n DEPRECATED_ALIASES,\n FLIPPED_ALIAS_KEYS,\n TYPES,\n __internal__deprecationWarning: deprecationWarning\n} = _t;\nfunction isVirtualType(type) {\n return type in virtualTypes;\n}\nfunction isExplodedVisitor(visitor) {\n return visitor == null ? void 0 : visitor._exploded;\n}\nfunction explode$1(visitor) {\n if (isExplodedVisitor(visitor)) return visitor;\n visitor._exploded = true;\n for (const nodeType of Object.keys(visitor)) {\n if (shouldIgnoreKey(nodeType)) continue;\n const parts = nodeType.split(\"|\");\n if (parts.length === 1) continue;\n const fns = visitor[nodeType];\n delete visitor[nodeType];\n for (const part of parts) {\n visitor[part] = fns;\n }\n }\n verify$1(visitor);\n delete visitor.__esModule;\n ensureEntranceObjects(visitor);\n ensureCallbackArrays(visitor);\n for (const nodeType of Object.keys(visitor)) {\n if (shouldIgnoreKey(nodeType)) continue;\n if (!isVirtualType(nodeType)) continue;\n const fns = visitor[nodeType];\n for (const type of Object.keys(fns)) {\n fns[type] = wrapCheck(nodeType, fns[type]);\n }\n delete visitor[nodeType];\n const types = virtualTypes[nodeType];\n if (types !== null) {\n for (const type of types) {\n if (visitor[type]) {\n mergePair(visitor[type], fns);\n } else {\n visitor[type] = fns;\n }\n }\n } else {\n mergePair(visitor, fns);\n }\n }\n for (const nodeType of Object.keys(visitor)) {\n if (shouldIgnoreKey(nodeType)) continue;\n let aliases = FLIPPED_ALIAS_KEYS[nodeType];\n if (nodeType in DEPRECATED_KEYS) {\n const deprecatedKey = DEPRECATED_KEYS[nodeType];\n deprecationWarning(nodeType, deprecatedKey, \"Visitor \");\n aliases = [deprecatedKey];\n } else if (nodeType in DEPRECATED_ALIASES) {\n const deprecatedAlias = DEPRECATED_ALIASES[nodeType];\n deprecationWarning(nodeType, deprecatedAlias, \"Visitor \");\n aliases = FLIPPED_ALIAS_KEYS[deprecatedAlias];\n }\n if (!aliases) continue;\n const fns = visitor[nodeType];\n delete visitor[nodeType];\n for (const alias of aliases) {\n const existing = visitor[alias];\n if (existing) {\n mergePair(existing, fns);\n } else {\n visitor[alias] = Object.assign({}, fns);\n }\n }\n }\n for (const nodeType of Object.keys(visitor)) {\n if (shouldIgnoreKey(nodeType)) continue;\n ensureCallbackArrays(visitor[nodeType]);\n }\n return visitor;\n}\nfunction verify$1(visitor) {\n if (visitor._verified) return;\n if (typeof visitor === \"function\") {\n throw new Error(\"You passed `traverse()` a function when it expected a visitor object, \" + \"are you sure you didn't mean `{ enter: Function }`?\");\n }\n for (const nodeType of Object.keys(visitor)) {\n if (nodeType === \"enter\" || nodeType === \"exit\") {\n validateVisitorMethods(nodeType, visitor[nodeType]);\n }\n if (shouldIgnoreKey(nodeType)) continue;\n if (!TYPES.includes(nodeType)) {\n throw new Error(`You gave us a visitor for the node type ${nodeType} but it's not a valid type in @babel/traverse ${\"7.25.6\"}`);\n }\n const visitors = visitor[nodeType];\n if (typeof visitors === \"object\") {\n for (const visitorKey of Object.keys(visitors)) {\n if (visitorKey === \"enter\" || visitorKey === \"exit\") {\n validateVisitorMethods(`${nodeType}.${visitorKey}`, visitors[visitorKey]);\n } else {\n throw new Error(\"You passed `traverse()` a visitor object with the property \" + `${nodeType} that has the invalid property ${visitorKey}`);\n }\n }\n }\n }\n visitor._verified = true;\n}\nfunction validateVisitorMethods(path, val) {\n const fns = [].concat(val);\n for (const fn of fns) {\n if (typeof fn !== \"function\") {\n throw new TypeError(`Non-function found defined in ${path} with type ${typeof fn}`);\n }\n }\n}\nfunction merge(visitors, states = [], wrapper) {\n const mergedVisitor = {\n _verified: true,\n _exploded: true\n };\n {\n Object.defineProperty(mergedVisitor, \"_exploded\", {\n enumerable: false\n });\n Object.defineProperty(mergedVisitor, \"_verified\", {\n enumerable: false\n });\n }\n for (let i = 0; i < visitors.length; i++) {\n const visitor = explode$1(visitors[i]);\n const state = states[i];\n let topVisitor = visitor;\n if (state || wrapper) {\n topVisitor = wrapWithStateOrWrapper(topVisitor, state, wrapper);\n }\n mergePair(mergedVisitor, topVisitor);\n for (const key of Object.keys(visitor)) {\n if (shouldIgnoreKey(key)) continue;\n let typeVisitor = visitor[key];\n if (state || wrapper) {\n typeVisitor = wrapWithStateOrWrapper(typeVisitor, state, wrapper);\n }\n const nodeVisitor = mergedVisitor[key] || (mergedVisitor[key] = {});\n mergePair(nodeVisitor, typeVisitor);\n }\n }\n return mergedVisitor;\n}\nfunction wrapWithStateOrWrapper(oldVisitor, state, wrapper) {\n const newVisitor = {};\n for (const phase of [\"enter\", \"exit\"]) {\n let fns = oldVisitor[phase];\n if (!Array.isArray(fns)) continue;\n fns = fns.map(function (fn) {\n let newFn = fn;\n if (state) {\n newFn = function (path) {\n fn.call(state, path, state);\n };\n }\n if (wrapper) {\n newFn = wrapper(state == null ? void 0 : state.key, phase, newFn);\n }\n if (newFn !== fn) {\n newFn.toString = () => fn.toString();\n }\n return newFn;\n });\n newVisitor[phase] = fns;\n }\n return newVisitor;\n}\nfunction ensureEntranceObjects(obj) {\n for (const key of Object.keys(obj)) {\n if (shouldIgnoreKey(key)) continue;\n const fns = obj[key];\n if (typeof fns === \"function\") {\n obj[key] = {\n enter: fns\n };\n }\n }\n}\nfunction ensureCallbackArrays(obj) {\n if (obj.enter && !Array.isArray(obj.enter)) obj.enter = [obj.enter];\n if (obj.exit && !Array.isArray(obj.exit)) obj.exit = [obj.exit];\n}\nfunction wrapCheck(nodeType, fn) {\n const fnKey = `is${nodeType}`;\n const validator = virtualTypesValidators[fnKey];\n const newFn = function (path) {\n if (validator.call(path)) {\n return fn.apply(this, arguments);\n }\n };\n newFn.toString = () => fn.toString();\n return newFn;\n}\nfunction shouldIgnoreKey(key) {\n if (key[0] === \"_\") return true;\n if (key === \"enter\" || key === \"exit\" || key === \"shouldSkip\") return true;\n if (key === \"denylist\" || key === \"noScope\" || key === \"skipKeys\") {\n return true;\n }\n {\n if (key === \"blacklist\") {\n return true;\n }\n }\n return false;\n}\nfunction mergePair(dest, src) {\n for (const phase of [\"enter\", \"exit\"]) {\n if (!src[phase]) continue;\n dest[phase] = [].concat(dest[phase] || [], src[phase]);\n }\n}\nconst _environmentVisitor = {\n FunctionParent(path) {\n if (path.isArrowFunctionExpression()) return;\n path.skip();\n if (path.isMethod()) {\n if (!path.requeueComputedKeyAndDecorators) {\n _context.requeueComputedKeyAndDecorators.call(path);\n } else {\n path.requeueComputedKeyAndDecorators();\n }\n }\n },\n Property(path) {\n if (path.isObjectProperty()) return;\n path.skip();\n if (!path.requeueComputedKeyAndDecorators) {\n _context.requeueComputedKeyAndDecorators.call(path);\n } else {\n path.requeueComputedKeyAndDecorators();\n }\n }\n};\nfunction environmentVisitor(visitor) {\n return merge([_environmentVisitor, visitor]);\n}\n\n//# sourceMappingURL=visitors.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nclass Hub {\n getCode() {}\n getScope() {}\n addHelper() {\n throw new Error(\"Helpers are not supported by the default hub.\");\n }\n buildError(node, msg, Error = TypeError) {\n return new Error(msg);\n }\n}\nexports.default = Hub;\n\n//# sourceMappingURL=hub.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _renamer = require(\"./lib/renamer.js\");\nvar _index = require(\"../index.js\");\nvar _binding = require(\"./binding.js\");\nvar _globals = require(\"globals\");\nvar _t = require(\"@babel/types\");\nvar t = _t;\nvar _cache = require(\"../cache.js\");\nvar _visitors = require(\"../visitors.js\");\nconst {\n NOT_LOCAL_BINDING,\n assignmentExpression,\n callExpression,\n cloneNode,\n getBindingIdentifiers,\n identifier,\n isArrayExpression,\n isBinary,\n isCallExpression,\n isClass,\n isClassBody,\n isClassDeclaration,\n isExportAllDeclaration,\n isExportDefaultDeclaration,\n isExportNamedDeclaration,\n isFunctionDeclaration,\n isIdentifier,\n isImportDeclaration,\n isLiteral,\n isMemberExpression,\n isMethod,\n isModuleSpecifier,\n isNullLiteral,\n isObjectExpression,\n isProperty,\n isPureish,\n isRegExpLiteral,\n isSuper,\n isTaggedTemplateExpression,\n isTemplateLiteral,\n isThisExpression,\n isUnaryExpression,\n isVariableDeclaration,\n expressionStatement,\n matchesPattern,\n memberExpression,\n numericLiteral,\n toIdentifier,\n variableDeclaration,\n variableDeclarator,\n isRecordExpression,\n isTupleExpression,\n isObjectProperty,\n isTopicReference,\n isMetaProperty,\n isPrivateName,\n isExportDeclaration,\n buildUndefinedNode,\n sequenceExpression\n} = _t;\nfunction gatherNodeParts(node, parts) {\n switch (node == null ? void 0 : node.type) {\n default:\n if (isImportDeclaration(node) || isExportDeclaration(node)) {\n var _node$specifiers;\n if ((isExportAllDeclaration(node) || isExportNamedDeclaration(node) || isImportDeclaration(node)) && node.source) {\n gatherNodeParts(node.source, parts);\n } else if ((isExportNamedDeclaration(node) || isImportDeclaration(node)) && (_node$specifiers = node.specifiers) != null && _node$specifiers.length) {\n for (const e of node.specifiers) gatherNodeParts(e, parts);\n } else if ((isExportDefaultDeclaration(node) || isExportNamedDeclaration(node)) && node.declaration) {\n gatherNodeParts(node.declaration, parts);\n }\n } else if (isModuleSpecifier(node)) {\n gatherNodeParts(node.local, parts);\n } else if (isLiteral(node) && !isNullLiteral(node) && !isRegExpLiteral(node) && !isTemplateLiteral(node)) {\n parts.push(node.value);\n }\n break;\n case \"MemberExpression\":\n case \"OptionalMemberExpression\":\n case \"JSXMemberExpression\":\n gatherNodeParts(node.object, parts);\n gatherNodeParts(node.property, parts);\n break;\n case \"Identifier\":\n case \"JSXIdentifier\":\n parts.push(node.name);\n break;\n case \"CallExpression\":\n case \"OptionalCallExpression\":\n case \"NewExpression\":\n gatherNodeParts(node.callee, parts);\n break;\n case \"ObjectExpression\":\n case \"ObjectPattern\":\n for (const e of node.properties) {\n gatherNodeParts(e, parts);\n }\n break;\n case \"SpreadElement\":\n case \"RestElement\":\n gatherNodeParts(node.argument, parts);\n break;\n case \"ObjectProperty\":\n case \"ObjectMethod\":\n case \"ClassProperty\":\n case \"ClassMethod\":\n case \"ClassPrivateProperty\":\n case \"ClassPrivateMethod\":\n gatherNodeParts(node.key, parts);\n break;\n case \"ThisExpression\":\n parts.push(\"this\");\n break;\n case \"Super\":\n parts.push(\"super\");\n break;\n case \"Import\":\n parts.push(\"import\");\n break;\n case \"DoExpression\":\n parts.push(\"do\");\n break;\n case \"YieldExpression\":\n parts.push(\"yield\");\n gatherNodeParts(node.argument, parts);\n break;\n case \"AwaitExpression\":\n parts.push(\"await\");\n gatherNodeParts(node.argument, parts);\n break;\n case \"AssignmentExpression\":\n gatherNodeParts(node.left, parts);\n break;\n case \"VariableDeclarator\":\n gatherNodeParts(node.id, parts);\n break;\n case \"FunctionExpression\":\n case \"FunctionDeclaration\":\n case \"ClassExpression\":\n case \"ClassDeclaration\":\n gatherNodeParts(node.id, parts);\n break;\n case \"PrivateName\":\n gatherNodeParts(node.id, parts);\n break;\n case \"ParenthesizedExpression\":\n gatherNodeParts(node.expression, parts);\n break;\n case \"UnaryExpression\":\n case \"UpdateExpression\":\n gatherNodeParts(node.argument, parts);\n break;\n case \"MetaProperty\":\n gatherNodeParts(node.meta, parts);\n gatherNodeParts(node.property, parts);\n break;\n case \"JSXElement\":\n gatherNodeParts(node.openingElement, parts);\n break;\n case \"JSXOpeningElement\":\n gatherNodeParts(node.name, parts);\n break;\n case \"JSXFragment\":\n gatherNodeParts(node.openingFragment, parts);\n break;\n case \"JSXOpeningFragment\":\n parts.push(\"Fragment\");\n break;\n case \"JSXNamespacedName\":\n gatherNodeParts(node.namespace, parts);\n gatherNodeParts(node.name, parts);\n break;\n }\n}\nconst collectorVisitor = {\n ForStatement(path) {\n const declar = path.get(\"init\");\n if (declar.isVar()) {\n const {\n scope\n } = path;\n const parentScope = scope.getFunctionParent() || scope.getProgramParent();\n parentScope.registerBinding(\"var\", declar);\n }\n },\n Declaration(path) {\n if (path.isBlockScoped()) return;\n if (path.isImportDeclaration()) return;\n if (path.isExportDeclaration()) return;\n const parent = path.scope.getFunctionParent() || path.scope.getProgramParent();\n parent.registerDeclaration(path);\n },\n ImportDeclaration(path) {\n const parent = path.scope.getBlockParent();\n parent.registerDeclaration(path);\n },\n ReferencedIdentifier(path, state) {\n state.references.push(path);\n },\n ForXStatement(path, state) {\n const left = path.get(\"left\");\n if (left.isPattern() || left.isIdentifier()) {\n state.constantViolations.push(path);\n } else if (left.isVar()) {\n const {\n scope\n } = path;\n const parentScope = scope.getFunctionParent() || scope.getProgramParent();\n parentScope.registerBinding(\"var\", left);\n }\n },\n ExportDeclaration: {\n exit(path) {\n const {\n node,\n scope\n } = path;\n if (isExportAllDeclaration(node)) return;\n const declar = node.declaration;\n if (isClassDeclaration(declar) || isFunctionDeclaration(declar)) {\n const id = declar.id;\n if (!id) return;\n const binding = scope.getBinding(id.name);\n binding == null || binding.reference(path);\n } else if (isVariableDeclaration(declar)) {\n for (const decl of declar.declarations) {\n for (const name of Object.keys(getBindingIdentifiers(decl))) {\n const binding = scope.getBinding(name);\n binding == null || binding.reference(path);\n }\n }\n }\n }\n },\n LabeledStatement(path) {\n path.scope.getBlockParent().registerDeclaration(path);\n },\n AssignmentExpression(path, state) {\n state.assignments.push(path);\n },\n UpdateExpression(path, state) {\n state.constantViolations.push(path);\n },\n UnaryExpression(path, state) {\n if (path.node.operator === \"delete\") {\n state.constantViolations.push(path);\n }\n },\n BlockScoped(path) {\n let scope = path.scope;\n if (scope.path === path) scope = scope.parent;\n const parent = scope.getBlockParent();\n parent.registerDeclaration(path);\n if (path.isClassDeclaration() && path.node.id) {\n const id = path.node.id;\n const name = id.name;\n path.scope.bindings[name] = path.scope.parent.getBinding(name);\n }\n },\n CatchClause(path) {\n path.scope.registerBinding(\"let\", path);\n },\n Function(path) {\n const params = path.get(\"params\");\n for (const param of params) {\n path.scope.registerBinding(\"param\", param);\n }\n if (path.isFunctionExpression() && path.node.id && !path.node.id[NOT_LOCAL_BINDING]) {\n path.scope.registerBinding(\"local\", path.get(\"id\"), path);\n }\n },\n ClassExpression(path) {\n if (path.node.id && !path.node.id[NOT_LOCAL_BINDING]) {\n path.scope.registerBinding(\"local\", path.get(\"id\"), path);\n }\n },\n TSTypeAnnotation(path) {\n path.skip();\n }\n};\nlet uid = 0;\nclass Scope {\n constructor(path) {\n this.uid = void 0;\n this.path = void 0;\n this.block = void 0;\n this.labels = void 0;\n this.inited = void 0;\n this.bindings = void 0;\n this.references = void 0;\n this.globals = void 0;\n this.uids = void 0;\n this.data = void 0;\n this.crawling = void 0;\n const {\n node\n } = path;\n const cached = _cache.scope.get(node);\n if ((cached == null ? void 0 : cached.path) === path) {\n return cached;\n }\n _cache.scope.set(node, this);\n this.uid = uid++;\n this.block = node;\n this.path = path;\n this.labels = new Map();\n this.inited = false;\n }\n get parent() {\n var _parent;\n let parent,\n path = this.path;\n do {\n var _path;\n const shouldSkip = path.key === \"key\" || path.listKey === \"decorators\";\n path = path.parentPath;\n if (shouldSkip && path.isMethod()) path = path.parentPath;\n if ((_path = path) != null && _path.isScope()) parent = path;\n } while (path && !parent);\n return (_parent = parent) == null ? void 0 : _parent.scope;\n }\n get parentBlock() {\n return this.path.parent;\n }\n get hub() {\n return this.path.hub;\n }\n traverse(node, opts, state) {\n (0, _index.default)(node, opts, this, state, this.path);\n }\n generateDeclaredUidIdentifier(name) {\n const id = this.generateUidIdentifier(name);\n this.push({\n id\n });\n return cloneNode(id);\n }\n generateUidIdentifier(name) {\n return identifier(this.generateUid(name));\n }\n generateUid(name = \"temp\") {\n name = toIdentifier(name).replace(/^_+/, \"\").replace(/\\d+$/g, \"\");\n let uid;\n let i = 1;\n do {\n uid = this._generateUid(name, i);\n i++;\n } while (this.hasLabel(uid) || this.hasBinding(uid) || this.hasGlobal(uid) || this.hasReference(uid));\n const program = this.getProgramParent();\n program.references[uid] = true;\n program.uids[uid] = true;\n return uid;\n }\n _generateUid(name, i) {\n let id = name;\n if (i > 1) id += i;\n return `_${id}`;\n }\n generateUidBasedOnNode(node, defaultName) {\n const parts = [];\n gatherNodeParts(node, parts);\n let id = parts.join(\"$\");\n id = id.replace(/^_/, \"\") || defaultName || \"ref\";\n return this.generateUid(id.slice(0, 20));\n }\n generateUidIdentifierBasedOnNode(node, defaultName) {\n return identifier(this.generateUidBasedOnNode(node, defaultName));\n }\n isStatic(node) {\n if (isThisExpression(node) || isSuper(node) || isTopicReference(node)) {\n return true;\n }\n if (isIdentifier(node)) {\n const binding = this.getBinding(node.name);\n if (binding) {\n return binding.constant;\n } else {\n return this.hasBinding(node.name);\n }\n }\n return false;\n }\n maybeGenerateMemoised(node, dontPush) {\n if (this.isStatic(node)) {\n return null;\n } else {\n const id = this.generateUidIdentifierBasedOnNode(node);\n if (!dontPush) {\n this.push({\n id\n });\n return cloneNode(id);\n }\n return id;\n }\n }\n checkBlockScopedCollisions(local, kind, name, id) {\n if (kind === \"param\") return;\n if (local.kind === \"local\") return;\n const duplicate = kind === \"let\" || local.kind === \"let\" || local.kind === \"const\" || local.kind === \"module\" || local.kind === \"param\" && kind === \"const\";\n if (duplicate) {\n throw this.hub.buildError(id, `Duplicate declaration \"${name}\"`, TypeError);\n }\n }\n rename(oldName, newName) {\n const binding = this.getBinding(oldName);\n if (binding) {\n newName || (newName = this.generateUidIdentifier(oldName).name);\n const renamer = new _renamer.default(binding, oldName, newName);\n {\n renamer.rename(arguments[2]);\n }\n }\n }\n _renameFromMap(map, oldName, newName, value) {\n if (map[oldName]) {\n map[newName] = value;\n map[oldName] = null;\n }\n }\n dump() {\n const sep = \"-\".repeat(60);\n console.log(sep);\n let scope = this;\n do {\n console.log(\"#\", scope.block.type);\n for (const name of Object.keys(scope.bindings)) {\n const binding = scope.bindings[name];\n console.log(\" -\", name, {\n constant: binding.constant,\n references: binding.references,\n violations: binding.constantViolations.length,\n kind: binding.kind\n });\n }\n } while (scope = scope.parent);\n console.log(sep);\n }\n toArray(node, i, arrayLikeIsIterable) {\n if (isIdentifier(node)) {\n const binding = this.getBinding(node.name);\n if (binding != null && binding.constant && binding.path.isGenericType(\"Array\")) {\n return node;\n }\n }\n if (isArrayExpression(node)) {\n return node;\n }\n if (isIdentifier(node, {\n name: \"arguments\"\n })) {\n return callExpression(memberExpression(memberExpression(memberExpression(identifier(\"Array\"), identifier(\"prototype\")), identifier(\"slice\")), identifier(\"call\")), [node]);\n }\n let helperName;\n const args = [node];\n if (i === true) {\n helperName = \"toConsumableArray\";\n } else if (typeof i === \"number\") {\n args.push(numericLiteral(i));\n helperName = \"slicedToArray\";\n } else {\n helperName = \"toArray\";\n }\n if (arrayLikeIsIterable) {\n args.unshift(this.hub.addHelper(helperName));\n helperName = \"maybeArrayLike\";\n }\n return callExpression(this.hub.addHelper(helperName), args);\n }\n hasLabel(name) {\n return !!this.getLabel(name);\n }\n getLabel(name) {\n return this.labels.get(name);\n }\n registerLabel(path) {\n this.labels.set(path.node.label.name, path);\n }\n registerDeclaration(path) {\n if (path.isLabeledStatement()) {\n this.registerLabel(path);\n } else if (path.isFunctionDeclaration()) {\n this.registerBinding(\"hoisted\", path.get(\"id\"), path);\n } else if (path.isVariableDeclaration()) {\n const declarations = path.get(\"declarations\");\n const {\n kind\n } = path.node;\n for (const declar of declarations) {\n this.registerBinding(kind === \"using\" || kind === \"await using\" ? \"const\" : kind, declar);\n }\n } else if (path.isClassDeclaration()) {\n if (path.node.declare) return;\n this.registerBinding(\"let\", path);\n } else if (path.isImportDeclaration()) {\n const isTypeDeclaration = path.node.importKind === \"type\" || path.node.importKind === \"typeof\";\n const specifiers = path.get(\"specifiers\");\n for (const specifier of specifiers) {\n const isTypeSpecifier = isTypeDeclaration || specifier.isImportSpecifier() && (specifier.node.importKind === \"type\" || specifier.node.importKind === \"typeof\");\n this.registerBinding(isTypeSpecifier ? \"unknown\" : \"module\", specifier);\n }\n } else if (path.isExportDeclaration()) {\n const declar = path.get(\"declaration\");\n if (declar.isClassDeclaration() || declar.isFunctionDeclaration() || declar.isVariableDeclaration()) {\n this.registerDeclaration(declar);\n }\n } else {\n this.registerBinding(\"unknown\", path);\n }\n }\n buildUndefinedNode() {\n return buildUndefinedNode();\n }\n registerConstantViolation(path) {\n const ids = path.getAssignmentIdentifiers();\n for (const name of Object.keys(ids)) {\n var _this$getBinding;\n (_this$getBinding = this.getBinding(name)) == null || _this$getBinding.reassign(path);\n }\n }\n registerBinding(kind, path, bindingPath = path) {\n if (!kind) throw new ReferenceError(\"no `kind`\");\n if (path.isVariableDeclaration()) {\n const declarators = path.get(\"declarations\");\n for (const declar of declarators) {\n this.registerBinding(kind, declar);\n }\n return;\n }\n const parent = this.getProgramParent();\n const ids = path.getOuterBindingIdentifiers(true);\n for (const name of Object.keys(ids)) {\n parent.references[name] = true;\n for (const id of ids[name]) {\n const local = this.getOwnBinding(name);\n if (local) {\n if (local.identifier === id) continue;\n this.checkBlockScopedCollisions(local, kind, name, id);\n }\n if (local) {\n local.reassign(bindingPath);\n } else {\n this.bindings[name] = new _binding.default({\n identifier: id,\n scope: this,\n path: bindingPath,\n kind: kind\n });\n }\n }\n }\n }\n addGlobal(node) {\n this.globals[node.name] = node;\n }\n hasUid(name) {\n let scope = this;\n do {\n if (scope.uids[name]) return true;\n } while (scope = scope.parent);\n return false;\n }\n hasGlobal(name) {\n let scope = this;\n do {\n if (scope.globals[name]) return true;\n } while (scope = scope.parent);\n return false;\n }\n hasReference(name) {\n return !!this.getProgramParent().references[name];\n }\n isPure(node, constantsOnly) {\n if (isIdentifier(node)) {\n const binding = this.getBinding(node.name);\n if (!binding) return false;\n if (constantsOnly) return binding.constant;\n return true;\n } else if (isThisExpression(node) || isMetaProperty(node) || isTopicReference(node) || isPrivateName(node)) {\n return true;\n } else if (isClass(node)) {\n var _node$decorators;\n if (node.superClass && !this.isPure(node.superClass, constantsOnly)) {\n return false;\n }\n if (((_node$decorators = node.decorators) == null ? void 0 : _node$decorators.length) > 0) {\n return false;\n }\n return this.isPure(node.body, constantsOnly);\n } else if (isClassBody(node)) {\n for (const method of node.body) {\n if (!this.isPure(method, constantsOnly)) return false;\n }\n return true;\n } else if (isBinary(node)) {\n return this.isPure(node.left, constantsOnly) && this.isPure(node.right, constantsOnly);\n } else if (isArrayExpression(node) || isTupleExpression(node)) {\n for (const elem of node.elements) {\n if (elem !== null && !this.isPure(elem, constantsOnly)) return false;\n }\n return true;\n } else if (isObjectExpression(node) || isRecordExpression(node)) {\n for (const prop of node.properties) {\n if (!this.isPure(prop, constantsOnly)) return false;\n }\n return true;\n } else if (isMethod(node)) {\n var _node$decorators2;\n if (node.computed && !this.isPure(node.key, constantsOnly)) return false;\n if (((_node$decorators2 = node.decorators) == null ? void 0 : _node$decorators2.length) > 0) {\n return false;\n }\n return true;\n } else if (isProperty(node)) {\n var _node$decorators3;\n if (node.computed && !this.isPure(node.key, constantsOnly)) return false;\n if (((_node$decorators3 = node.decorators) == null ? void 0 : _node$decorators3.length) > 0) {\n return false;\n }\n if (isObjectProperty(node) || node.static) {\n if (node.value !== null && !this.isPure(node.value, constantsOnly)) {\n return false;\n }\n }\n return true;\n } else if (isUnaryExpression(node)) {\n return this.isPure(node.argument, constantsOnly);\n } else if (isTemplateLiteral(node)) {\n for (const expression of node.expressions) {\n if (!this.isPure(expression, constantsOnly)) return false;\n }\n return true;\n } else if (isTaggedTemplateExpression(node)) {\n return matchesPattern(node.tag, \"String.raw\") && !this.hasBinding(\"String\", {\n noGlobals: true\n }) && this.isPure(node.quasi, constantsOnly);\n } else if (isMemberExpression(node)) {\n return !node.computed && isIdentifier(node.object) && node.object.name === \"Symbol\" && isIdentifier(node.property) && node.property.name !== \"for\" && !this.hasBinding(\"Symbol\", {\n noGlobals: true\n });\n } else if (isCallExpression(node)) {\n return matchesPattern(node.callee, \"Symbol.for\") && !this.hasBinding(\"Symbol\", {\n noGlobals: true\n }) && node.arguments.length === 1 && t.isStringLiteral(node.arguments[0]);\n } else {\n return isPureish(node);\n }\n }\n setData(key, val) {\n return this.data[key] = val;\n }\n getData(key) {\n let scope = this;\n do {\n const data = scope.data[key];\n if (data != null) return data;\n } while (scope = scope.parent);\n }\n removeData(key) {\n let scope = this;\n do {\n const data = scope.data[key];\n if (data != null) scope.data[key] = null;\n } while (scope = scope.parent);\n }\n init() {\n if (!this.inited) {\n this.inited = true;\n this.crawl();\n }\n }\n crawl() {\n const path = this.path;\n this.references = Object.create(null);\n this.bindings = Object.create(null);\n this.globals = Object.create(null);\n this.uids = Object.create(null);\n this.data = Object.create(null);\n const programParent = this.getProgramParent();\n if (programParent.crawling) return;\n const state = {\n references: [],\n constantViolations: [],\n assignments: []\n };\n this.crawling = true;\n if (path.type !== \"Program\" && (0, _visitors.isExplodedVisitor)(collectorVisitor)) {\n for (const visit of collectorVisitor.enter) {\n visit.call(state, path, state);\n }\n const typeVisitors = collectorVisitor[path.type];\n if (typeVisitors) {\n for (const visit of typeVisitors.enter) {\n visit.call(state, path, state);\n }\n }\n }\n path.traverse(collectorVisitor, state);\n this.crawling = false;\n for (const path of state.assignments) {\n const ids = path.getAssignmentIdentifiers();\n for (const name of Object.keys(ids)) {\n if (path.scope.getBinding(name)) continue;\n programParent.addGlobal(ids[name]);\n }\n path.scope.registerConstantViolation(path);\n }\n for (const ref of state.references) {\n const binding = ref.scope.getBinding(ref.node.name);\n if (binding) {\n binding.reference(ref);\n } else {\n programParent.addGlobal(ref.node);\n }\n }\n for (const path of state.constantViolations) {\n path.scope.registerConstantViolation(path);\n }\n }\n push(opts) {\n let path = this.path;\n if (path.isPattern()) {\n path = this.getPatternParent().path;\n } else if (!path.isBlockStatement() && !path.isProgram()) {\n path = this.getBlockParent().path;\n }\n if (path.isSwitchStatement()) {\n path = (this.getFunctionParent() || this.getProgramParent()).path;\n }\n const {\n init,\n unique,\n kind = \"var\",\n id\n } = opts;\n if (!init && !unique && (kind === \"var\" || kind === \"let\") && path.isFunction() && !path.node.name && isCallExpression(path.parent, {\n callee: path.node\n }) && path.parent.arguments.length <= path.node.params.length && isIdentifier(id)) {\n path.pushContainer(\"params\", id);\n path.scope.registerBinding(\"param\", path.get(\"params\")[path.node.params.length - 1]);\n return;\n }\n if (path.isLoop() || path.isCatchClause() || path.isFunction()) {\n path.ensureBlock();\n path = path.get(\"body\");\n }\n const blockHoist = opts._blockHoist == null ? 2 : opts._blockHoist;\n const dataKey = `declaration:${kind}:${blockHoist}`;\n let declarPath = !unique && path.getData(dataKey);\n if (!declarPath) {\n const declar = variableDeclaration(kind, []);\n declar._blockHoist = blockHoist;\n [declarPath] = path.unshiftContainer(\"body\", [declar]);\n if (!unique) path.setData(dataKey, declarPath);\n }\n const declarator = variableDeclarator(id, init);\n const len = declarPath.node.declarations.push(declarator);\n path.scope.registerBinding(kind, declarPath.get(\"declarations\")[len - 1]);\n }\n getProgramParent() {\n let scope = this;\n do {\n if (scope.path.isProgram()) {\n return scope;\n }\n } while (scope = scope.parent);\n throw new Error(\"Couldn't find a Program\");\n }\n getFunctionParent() {\n let scope = this;\n do {\n if (scope.path.isFunctionParent()) {\n return scope;\n }\n } while (scope = scope.parent);\n return null;\n }\n getBlockParent() {\n let scope = this;\n do {\n if (scope.path.isBlockParent()) {\n return scope;\n }\n } while (scope = scope.parent);\n throw new Error(\"We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...\");\n }\n getPatternParent() {\n let scope = this;\n do {\n if (!scope.path.isPattern()) {\n return scope.getBlockParent();\n }\n } while (scope = scope.parent.parent);\n throw new Error(\"We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...\");\n }\n getAllBindings() {\n const ids = Object.create(null);\n let scope = this;\n do {\n for (const key of Object.keys(scope.bindings)) {\n if (key in ids === false) {\n ids[key] = scope.bindings[key];\n }\n }\n scope = scope.parent;\n } while (scope);\n return ids;\n }\n getAllBindingsOfKind(...kinds) {\n const ids = Object.create(null);\n for (const kind of kinds) {\n let scope = this;\n do {\n for (const name of Object.keys(scope.bindings)) {\n const binding = scope.bindings[name];\n if (binding.kind === kind) ids[name] = binding;\n }\n scope = scope.parent;\n } while (scope);\n }\n return ids;\n }\n bindingIdentifierEquals(name, node) {\n return this.getBindingIdentifier(name) === node;\n }\n getBinding(name) {\n let scope = this;\n let previousPath;\n do {\n const binding = scope.getOwnBinding(name);\n if (binding) {\n var _previousPath;\n if ((_previousPath = previousPath) != null && _previousPath.isPattern() && binding.kind !== \"param\" && binding.kind !== \"local\") {} else {\n return binding;\n }\n } else if (!binding && name === \"arguments\" && scope.path.isFunction() && !scope.path.isArrowFunctionExpression()) {\n break;\n }\n previousPath = scope.path;\n } while (scope = scope.parent);\n }\n getOwnBinding(name) {\n return this.bindings[name];\n }\n getBindingIdentifier(name) {\n var _this$getBinding2;\n return (_this$getBinding2 = this.getBinding(name)) == null ? void 0 : _this$getBinding2.identifier;\n }\n getOwnBindingIdentifier(name) {\n const binding = this.bindings[name];\n return binding == null ? void 0 : binding.identifier;\n }\n hasOwnBinding(name) {\n return !!this.getOwnBinding(name);\n }\n hasBinding(name, opts) {\n if (!name) return false;\n let scope = this;\n do {\n if (scope.hasOwnBinding(name)) {\n return true;\n }\n } while (scope = scope.parent);\n let noGlobals;\n let noUids;\n if (typeof opts === \"object\") {\n noGlobals = opts.noGlobals;\n noUids = opts.noUids;\n } else if (typeof opts === \"boolean\") {\n noGlobals = opts;\n }\n if (!noUids && this.hasUid(name)) return true;\n if (!noGlobals && Scope.globals.includes(name)) return true;\n if (!noGlobals && Scope.contextVariables.includes(name)) return true;\n return false;\n }\n parentHasBinding(name, opts) {\n var _this$parent;\n return (_this$parent = this.parent) == null ? void 0 : _this$parent.hasBinding(name, opts);\n }\n moveBindingTo(name, scope) {\n const info = this.getBinding(name);\n if (info) {\n info.scope.removeOwnBinding(name);\n info.scope = scope;\n scope.bindings[name] = info;\n }\n }\n removeOwnBinding(name) {\n delete this.bindings[name];\n }\n removeBinding(name) {\n var _this$getBinding3;\n (_this$getBinding3 = this.getBinding(name)) == null || _this$getBinding3.scope.removeOwnBinding(name);\n let scope = this;\n do {\n if (scope.uids[name]) {\n scope.uids[name] = false;\n }\n } while (scope = scope.parent);\n }\n hoistVariables(emit = id => this.push({\n id\n })) {\n this.crawl();\n const seen = new Set();\n for (const name of Object.keys(this.bindings)) {\n const binding = this.bindings[name];\n if (!binding) continue;\n const {\n path\n } = binding;\n if (!path.isVariableDeclarator()) continue;\n const {\n parent,\n parentPath\n } = path;\n if (parent.kind !== \"var\" || seen.has(parent)) continue;\n seen.add(path.parent);\n let firstId;\n const init = [];\n for (const decl of parent.declarations) {\n var _firstId;\n (_firstId = firstId) != null ? _firstId : firstId = decl.id;\n if (decl.init) {\n init.push(assignmentExpression(\"=\", decl.id, decl.init));\n }\n const ids = Object.keys(getBindingIdentifiers(decl, false, true, true));\n for (const name of ids) {\n emit(identifier(name), decl.init != null);\n }\n }\n if (parentPath.parentPath.isFor({\n left: parent\n })) {\n parentPath.replaceWith(firstId);\n } else if (init.length === 0) {\n parentPath.remove();\n } else {\n const expr = init.length === 1 ? init[0] : sequenceExpression(init);\n if (parentPath.parentPath.isForStatement({\n init: parent\n })) {\n parentPath.replaceWith(expr);\n } else {\n parentPath.replaceWith(expressionStatement(expr));\n }\n }\n }\n }\n}\nexports.default = Scope;\nScope.globals = Object.keys(_globals.builtin);\nScope.contextVariables = [\"arguments\", \"undefined\", \"Infinity\", \"NaN\"];\n\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"Hub\", {\n enumerable: true,\n get: function () {\n return _hub.default;\n }\n});\nObject.defineProperty(exports, \"NodePath\", {\n enumerable: true,\n get: function () {\n return _index.default;\n }\n});\nObject.defineProperty(exports, \"Scope\", {\n enumerable: true,\n get: function () {\n return _index2.default;\n }\n});\nexports.visitors = exports.default = void 0;\nrequire(\"./path/context.js\");\nvar visitors = require(\"./visitors.js\");\nexports.visitors = visitors;\nvar _t = require(\"@babel/types\");\nvar cache = require(\"./cache.js\");\nvar _traverseNode = require(\"./traverse-node.js\");\nvar _index = require(\"./path/index.js\");\nvar _index2 = require(\"./scope/index.js\");\nvar _hub = require(\"./hub.js\");\nconst {\n VISITOR_KEYS,\n removeProperties,\n traverseFast\n} = _t;\nfunction traverse(parent, opts = {}, scope, state, parentPath, visitSelf) {\n if (!parent) return;\n if (!opts.noScope && !scope) {\n if (parent.type !== \"Program\" && parent.type !== \"File\") {\n throw new Error(\"You must pass a scope and parentPath unless traversing a Program/File. \" + `Instead of that you tried to traverse a ${parent.type} node without ` + \"passing scope and parentPath.\");\n }\n }\n if (!parentPath && visitSelf) {\n throw new Error(\"visitSelf can only be used when providing a NodePath.\");\n }\n if (!VISITOR_KEYS[parent.type]) {\n return;\n }\n visitors.explode(opts);\n (0, _traverseNode.traverseNode)(parent, opts, scope, state, parentPath, null, visitSelf);\n}\nvar _default = exports.default = traverse;\ntraverse.visitors = visitors;\ntraverse.verify = visitors.verify;\ntraverse.explode = visitors.explode;\ntraverse.cheap = function (node, enter) {\n traverseFast(node, enter);\n return;\n};\ntraverse.node = function (node, opts, scope, state, path, skipKeys) {\n (0, _traverseNode.traverseNode)(node, opts, scope, state, path, skipKeys);\n};\ntraverse.clearNode = function (node, opts) {\n removeProperties(node, opts);\n};\ntraverse.removeProperties = function (tree, opts) {\n traverseFast(tree, traverse.clearNode, opts);\n return tree;\n};\nfunction hasDenylistedType(path, state) {\n if (path.node.type === state.type) {\n state.has = true;\n path.stop();\n }\n}\ntraverse.hasType = function (tree, type, denylistTypes) {\n if (denylistTypes != null && denylistTypes.includes(tree.type)) return false;\n if (tree.type === type) return true;\n const state = {\n has: false,\n type: type\n };\n traverse(tree, {\n noScope: true,\n denylist: denylistTypes,\n enter: hasDenylistedType\n }, null, state);\n return state.has;\n};\ntraverse.cache = cache;\n\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _t = require(\"@babel/types\");\nvar _t2 = _t;\nconst {\n react\n} = _t;\nconst {\n cloneNode,\n jsxExpressionContainer,\n variableDeclaration,\n variableDeclarator\n} = _t2;\nconst referenceVisitor = {\n ReferencedIdentifier(path, state) {\n if (path.isJSXIdentifier() && react.isCompatTag(path.node.name) && !path.parentPath.isJSXMemberExpression()) {\n return;\n }\n if (path.node.name === \"this\") {\n let scope = path.scope;\n do {\n if (scope.path.isFunction() && !scope.path.isArrowFunctionExpression()) {\n break;\n }\n } while (scope = scope.parent);\n if (scope) state.breakOnScopePaths.push(scope.path);\n }\n const binding = path.scope.getBinding(path.node.name);\n if (!binding) return;\n for (const violation of binding.constantViolations) {\n if (violation.scope !== binding.path.scope) {\n state.mutableBinding = true;\n path.stop();\n return;\n }\n }\n if (binding !== state.scope.getBinding(path.node.name)) return;\n state.bindings[path.node.name] = binding;\n }\n};\nclass PathHoister {\n constructor(path, scope) {\n this.breakOnScopePaths = void 0;\n this.bindings = void 0;\n this.mutableBinding = void 0;\n this.scopes = void 0;\n this.scope = void 0;\n this.path = void 0;\n this.attachAfter = void 0;\n this.breakOnScopePaths = [];\n this.bindings = {};\n this.mutableBinding = false;\n this.scopes = [];\n this.scope = scope;\n this.path = path;\n this.attachAfter = false;\n }\n isCompatibleScope(scope) {\n for (const key of Object.keys(this.bindings)) {\n const binding = this.bindings[key];\n if (!scope.bindingIdentifierEquals(key, binding.identifier)) {\n return false;\n }\n }\n return true;\n }\n getCompatibleScopes() {\n let scope = this.path.scope;\n do {\n if (this.isCompatibleScope(scope)) {\n this.scopes.push(scope);\n } else {\n break;\n }\n if (this.breakOnScopePaths.includes(scope.path)) {\n break;\n }\n } while (scope = scope.parent);\n }\n getAttachmentPath() {\n let path = this._getAttachmentPath();\n if (!path) return;\n let targetScope = path.scope;\n if (targetScope.path === path) {\n targetScope = path.scope.parent;\n }\n if (targetScope.path.isProgram() || targetScope.path.isFunction()) {\n for (const name of Object.keys(this.bindings)) {\n if (!targetScope.hasOwnBinding(name)) continue;\n const binding = this.bindings[name];\n if (binding.kind === \"param\" || binding.path.parentKey === \"params\") {\n continue;\n }\n const bindingParentPath = this.getAttachmentParentForPath(binding.path);\n if (bindingParentPath.key >= path.key) {\n this.attachAfter = true;\n path = binding.path;\n for (const violationPath of binding.constantViolations) {\n if (this.getAttachmentParentForPath(violationPath).key > path.key) {\n path = violationPath;\n }\n }\n }\n }\n }\n return path;\n }\n _getAttachmentPath() {\n const scopes = this.scopes;\n const scope = scopes.pop();\n if (!scope) return;\n if (scope.path.isFunction()) {\n if (this.hasOwnParamBindings(scope)) {\n if (this.scope === scope) return;\n const bodies = scope.path.get(\"body\").get(\"body\");\n for (let i = 0; i < bodies.length; i++) {\n if (bodies[i].node._blockHoist) continue;\n return bodies[i];\n }\n } else {\n return this.getNextScopeAttachmentParent();\n }\n } else if (scope.path.isProgram()) {\n return this.getNextScopeAttachmentParent();\n }\n }\n getNextScopeAttachmentParent() {\n const scope = this.scopes.pop();\n if (scope) return this.getAttachmentParentForPath(scope.path);\n }\n getAttachmentParentForPath(path) {\n do {\n if (!path.parentPath || Array.isArray(path.container) && path.isStatement()) {\n return path;\n }\n } while (path = path.parentPath);\n }\n hasOwnParamBindings(scope) {\n for (const name of Object.keys(this.bindings)) {\n if (!scope.hasOwnBinding(name)) continue;\n const binding = this.bindings[name];\n if (binding.kind === \"param\" && binding.constant) return true;\n }\n return false;\n }\n run() {\n this.path.traverse(referenceVisitor, this);\n if (this.mutableBinding) return;\n this.getCompatibleScopes();\n const attachTo = this.getAttachmentPath();\n if (!attachTo) return;\n if (attachTo.getFunctionParent() === this.path.getFunctionParent()) return;\n let uid = attachTo.scope.generateUidIdentifier(\"ref\");\n const declarator = variableDeclarator(uid, this.path.node);\n const insertFn = this.attachAfter ? \"insertAfter\" : \"insertBefore\";\n const [attached] = attachTo[insertFn]([attachTo.isVariableDeclarator() ? declarator : variableDeclaration(\"var\", [declarator])]);\n const parent = this.path.parentPath;\n if (parent.isJSXElement() && this.path.container === parent.node.children) {\n uid = jsxExpressionContainer(uid);\n }\n this.path.replaceWith(cloneNode(uid));\n return attachTo.isVariableDeclarator() ? attached.get(\"init\") : attached.get(\"declarations.0.init\");\n }\n}\nexports.default = PathHoister;\n\n//# sourceMappingURL=hoister.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\nvar _t = require(\"@babel/types\");\nvar _util = require(\"./util.js\");\nconst {\n BOOLEAN_NUMBER_BINARY_OPERATORS,\n createTypeAnnotationBasedOnTypeof,\n numberTypeAnnotation,\n voidTypeAnnotation\n} = _t;\nfunction _default(node) {\n if (!this.isReferenced()) return;\n const binding = this.scope.getBinding(node.name);\n if (binding) {\n if (binding.identifier.typeAnnotation) {\n return binding.identifier.typeAnnotation;\n } else {\n return getTypeAnnotationBindingConstantViolations(binding, this, node.name);\n }\n }\n if (node.name === \"undefined\") {\n return voidTypeAnnotation();\n } else if (node.name === \"NaN\" || node.name === \"Infinity\") {\n return numberTypeAnnotation();\n } else if (node.name === \"arguments\") {}\n}\nfunction getTypeAnnotationBindingConstantViolations(binding, path, name) {\n const types = [];\n const functionConstantViolations = [];\n let constantViolations = getConstantViolationsBefore(binding, path, functionConstantViolations);\n const testType = getConditionalAnnotation(binding, path, name);\n if (testType) {\n const testConstantViolations = getConstantViolationsBefore(binding, testType.ifStatement);\n constantViolations = constantViolations.filter(path => !testConstantViolations.includes(path));\n types.push(testType.typeAnnotation);\n }\n if (constantViolations.length) {\n constantViolations.push(...functionConstantViolations);\n for (const violation of constantViolations) {\n types.push(violation.getTypeAnnotation());\n }\n }\n if (!types.length) {\n return;\n }\n return (0, _util.createUnionType)(types);\n}\nfunction getConstantViolationsBefore(binding, path, functions) {\n const violations = binding.constantViolations.slice();\n violations.unshift(binding.path);\n return violations.filter(violation => {\n violation = violation.resolve();\n const status = violation._guessExecutionStatusRelativeTo(path);\n if (functions && status === \"unknown\") functions.push(violation);\n return status === \"before\";\n });\n}\nfunction inferAnnotationFromBinaryExpression(name, path) {\n const operator = path.node.operator;\n const right = path.get(\"right\").resolve();\n const left = path.get(\"left\").resolve();\n let target;\n if (left.isIdentifier({\n name\n })) {\n target = right;\n } else if (right.isIdentifier({\n name\n })) {\n target = left;\n }\n if (target) {\n if (operator === \"===\") {\n return target.getTypeAnnotation();\n }\n if (BOOLEAN_NUMBER_BINARY_OPERATORS.includes(operator)) {\n return numberTypeAnnotation();\n }\n return;\n }\n if (operator !== \"===\" && operator !== \"==\") return;\n let typeofPath;\n let typePath;\n if (left.isUnaryExpression({\n operator: \"typeof\"\n })) {\n typeofPath = left;\n typePath = right;\n } else if (right.isUnaryExpression({\n operator: \"typeof\"\n })) {\n typeofPath = right;\n typePath = left;\n }\n if (!typeofPath) return;\n if (!typeofPath.get(\"argument\").isIdentifier({\n name\n })) return;\n typePath = typePath.resolve();\n if (!typePath.isLiteral()) return;\n const typeValue = typePath.node.value;\n if (typeof typeValue !== \"string\") return;\n return createTypeAnnotationBasedOnTypeof(typeValue);\n}\nfunction getParentConditionalPath(binding, path, name) {\n let parentPath;\n while (parentPath = path.parentPath) {\n if (parentPath.isIfStatement() || parentPath.isConditionalExpression()) {\n if (path.key === \"test\") {\n return;\n }\n return parentPath;\n }\n if (parentPath.isFunction()) {\n if (parentPath.parentPath.scope.getBinding(name) !== binding) return;\n }\n path = parentPath;\n }\n}\nfunction getConditionalAnnotation(binding, path, name) {\n const ifStatement = getParentConditionalPath(binding, path, name);\n if (!ifStatement) return;\n const test = ifStatement.get(\"test\");\n const paths = [test];\n const types = [];\n for (let i = 0; i < paths.length; i++) {\n const path = paths[i];\n if (path.isLogicalExpression()) {\n if (path.node.operator === \"&&\") {\n paths.push(path.get(\"left\"));\n paths.push(path.get(\"right\"));\n }\n } else if (path.isBinaryExpression()) {\n const type = inferAnnotationFromBinaryExpression(name, path);\n if (type) types.push(type);\n }\n }\n if (types.length) {\n return {\n typeAnnotation: (0, _util.createUnionType)(types),\n ifStatement\n };\n }\n return getConditionalAnnotation(binding, ifStatement, name);\n}\n\n//# sourceMappingURL=inferer-reference.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.merge = merge;\nexports.normalizeReplacements = normalizeReplacements;\nexports.validate = validate;\nconst _excluded = [\"placeholderWhitelist\", \"placeholderPattern\", \"preserveComments\", \"syntacticPlaceholders\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction merge(a, b) {\n const {\n placeholderWhitelist = a.placeholderWhitelist,\n placeholderPattern = a.placeholderPattern,\n preserveComments = a.preserveComments,\n syntacticPlaceholders = a.syntacticPlaceholders\n } = b;\n return {\n parser: Object.assign({}, a.parser, b.parser),\n placeholderWhitelist,\n placeholderPattern,\n preserveComments,\n syntacticPlaceholders\n };\n}\nfunction validate(opts) {\n if (opts != null && typeof opts !== \"object\") {\n throw new Error(\"Unknown template options.\");\n }\n const _ref = opts || {},\n {\n placeholderWhitelist,\n placeholderPattern,\n preserveComments,\n syntacticPlaceholders\n } = _ref,\n parser = _objectWithoutPropertiesLoose(_ref, _excluded);\n if (placeholderWhitelist != null && !(placeholderWhitelist instanceof Set)) {\n throw new Error(\"'.placeholderWhitelist' must be a Set, null, or undefined\");\n }\n if (placeholderPattern != null && !(placeholderPattern instanceof RegExp) && placeholderPattern !== false) {\n throw new Error(\"'.placeholderPattern' must be a RegExp, false, null, or undefined\");\n }\n if (preserveComments != null && typeof preserveComments !== \"boolean\") {\n throw new Error(\"'.preserveComments' must be a boolean, null, or undefined\");\n }\n if (syntacticPlaceholders != null && typeof syntacticPlaceholders !== \"boolean\") {\n throw new Error(\"'.syntacticPlaceholders' must be a boolean, null, or undefined\");\n }\n if (syntacticPlaceholders === true && (placeholderWhitelist != null || placeholderPattern != null)) {\n throw new Error(\"'.placeholderWhitelist' and '.placeholderPattern' aren't compatible\" + \" with '.syntacticPlaceholders: true'\");\n }\n return {\n parser,\n placeholderWhitelist: placeholderWhitelist || undefined,\n placeholderPattern: placeholderPattern == null ? undefined : placeholderPattern,\n preserveComments: preserveComments == null ? undefined : preserveComments,\n syntacticPlaceholders: syntacticPlaceholders == null ? undefined : syntacticPlaceholders\n };\n}\nfunction normalizeReplacements(replacements) {\n if (Array.isArray(replacements)) {\n return replacements.reduce((acc, replacement, i) => {\n acc[\"$\" + i] = replacement;\n return acc;\n }, {});\n } else if (typeof replacements === \"object\" || replacements == null) {\n return replacements || undefined;\n }\n throw new Error(\"Template replacements must be an array, object, null, or undefined\");\n}\n\n//# sourceMappingURL=options.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.statements = exports.statement = exports.smart = exports.program = exports.expression = exports.default = void 0;\nvar formatters = require(\"./formatters.js\");\nvar _builder = require(\"./builder.js\");\nconst smart = exports.smart = (0, _builder.default)(formatters.smart);\nconst statement = exports.statement = (0, _builder.default)(formatters.statement);\nconst statements = exports.statements = (0, _builder.default)(formatters.statements);\nconst expression = exports.expression = (0, _builder.default)(formatters.expression);\nconst program = exports.program = (0, _builder.default)(formatters.program);\nvar _default = exports.default = Object.assign(smart.bind(undefined), {\n smart,\n statement,\n statements,\n expression,\n program,\n ast: smart.ast\n});\n\n//# sourceMappingURL=index.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports._containerInsert = _containerInsert;\nexports._containerInsertAfter = _containerInsertAfter;\nexports._containerInsertBefore = _containerInsertBefore;\nexports._verifyNodeList = _verifyNodeList;\nexports.insertAfter = insertAfter;\nexports.insertBefore = insertBefore;\nexports.pushContainer = pushContainer;\nexports.unshiftContainer = unshiftContainer;\nexports.updateSiblingKeys = updateSiblingKeys;\nvar _cache = require(\"../cache.js\");\nvar _hoister = require(\"./lib/hoister.js\");\nvar _index = require(\"./index.js\");\nvar _context = require(\"./context.js\");\nvar _removal = require(\"./removal.js\");\nvar _t = require(\"@babel/types\");\nconst {\n arrowFunctionExpression,\n assertExpression,\n assignmentExpression,\n blockStatement,\n callExpression,\n cloneNode,\n expressionStatement,\n isAssignmentExpression,\n isCallExpression,\n isExportNamedDeclaration,\n isExpression,\n isIdentifier,\n isSequenceExpression,\n isSuper,\n thisExpression\n} = _t;\nfunction insertBefore(nodes_) {\n _removal._assertUnremoved.call(this);\n const nodes = _verifyNodeList.call(this, nodes_);\n const {\n parentPath,\n parent\n } = this;\n if (parentPath.isExpressionStatement() || parentPath.isLabeledStatement() || isExportNamedDeclaration(parent) || parentPath.isExportDefaultDeclaration() && this.isDeclaration()) {\n return parentPath.insertBefore(nodes);\n } else if (this.isNodeType(\"Expression\") && !this.isJSXElement() || parentPath.isForStatement() && this.key === \"init\") {\n if (this.node) nodes.push(this.node);\n return this.replaceExpressionWithStatements(nodes);\n } else if (Array.isArray(this.container)) {\n return _containerInsertBefore.call(this, nodes);\n } else if (this.isStatementOrBlock()) {\n const node = this.node;\n const shouldInsertCurrentNode = node && (!this.isExpressionStatement() || node.expression != null);\n this.replaceWith(blockStatement(shouldInsertCurrentNode ? [node] : []));\n return this.unshiftContainer(\"body\", nodes);\n } else {\n throw new Error(\"We don't know what to do with this node type. \" + \"We were previously a Statement but we can't fit in here?\");\n }\n}\nfunction _containerInsert(from, nodes) {\n updateSiblingKeys.call(this, from, nodes.length);\n const paths = [];\n this.container.splice(from, 0, ...nodes);\n for (let i = 0; i < nodes.length; i++) {\n var _this$context;\n const to = from + i;\n const path = this.getSibling(to);\n paths.push(path);\n if ((_this$context = this.context) != null && _this$context.queue) {\n _context.pushContext.call(path, this.context);\n }\n }\n const contexts = _context._getQueueContexts.call(this);\n for (const path of paths) {\n _context.setScope.call(path);\n path.debug(\"Inserted.\");\n for (const context of contexts) {\n context.maybeQueue(path, true);\n }\n }\n return paths;\n}\nfunction _containerInsertBefore(nodes) {\n return _containerInsert.call(this, this.key, nodes);\n}\nfunction _containerInsertAfter(nodes) {\n return _containerInsert.call(this, this.key + 1, nodes);\n}\nconst last = arr => arr[arr.length - 1];\nfunction isHiddenInSequenceExpression(path) {\n return isSequenceExpression(path.parent) && (last(path.parent.expressions) !== path.node || isHiddenInSequenceExpression(path.parentPath));\n}\nfunction isAlmostConstantAssignment(node, scope) {\n if (!isAssignmentExpression(node) || !isIdentifier(node.left)) {\n return false;\n }\n const blockScope = scope.getBlockParent();\n return blockScope.hasOwnBinding(node.left.name) && blockScope.getOwnBinding(node.left.name).constantViolations.length <= 1;\n}\nfunction insertAfter(nodes_) {\n _removal._assertUnremoved.call(this);\n if (this.isSequenceExpression()) {\n return last(this.get(\"expressions\")).insertAfter(nodes_);\n }\n const nodes = _verifyNodeList.call(this, nodes_);\n const {\n parentPath,\n parent\n } = this;\n if (parentPath.isExpressionStatement() || parentPath.isLabeledStatement() || isExportNamedDeclaration(parent) || parentPath.isExportDefaultDeclaration() && this.isDeclaration()) {\n return parentPath.insertAfter(nodes.map(node => {\n return isExpression(node) ? expressionStatement(node) : node;\n }));\n } else if (this.isNodeType(\"Expression\") && !this.isJSXElement() && !parentPath.isJSXElement() || parentPath.isForStatement() && this.key === \"init\") {\n const self = this;\n if (self.node) {\n const node = self.node;\n let {\n scope\n } = this;\n if (scope.path.isPattern()) {\n assertExpression(node);\n self.replaceWith(callExpression(arrowFunctionExpression([], node), []));\n self.get(\"callee.body\").insertAfter(nodes);\n return [self];\n }\n if (isHiddenInSequenceExpression(self)) {\n nodes.unshift(node);\n } else if (isCallExpression(node) && isSuper(node.callee)) {\n nodes.unshift(node);\n nodes.push(thisExpression());\n } else if (isAlmostConstantAssignment(node, scope)) {\n nodes.unshift(node);\n nodes.push(cloneNode(node.left));\n } else if (scope.isPure(node, true)) {\n nodes.push(node);\n } else {\n if (parentPath.isMethod({\n computed: true,\n key: node\n })) {\n scope = scope.parent;\n }\n const temp = scope.generateDeclaredUidIdentifier();\n nodes.unshift(expressionStatement(assignmentExpression(\"=\", cloneNode(temp), node)));\n nodes.push(expressionStatement(cloneNode(temp)));\n }\n }\n return this.replaceExpressionWithStatements(nodes);\n } else if (Array.isArray(this.container)) {\n return _containerInsertAfter.call(this, nodes);\n } else if (this.isStatementOrBlock()) {\n const node = this.node;\n const shouldInsertCurrentNode = node && (!this.isExpressionStatement() || node.expression != null);\n this.replaceWith(blockStatement(shouldInsertCurrentNode ? [node] : []));\n return this.pushContainer(\"body\", nodes);\n } else {\n throw new Error(\"We don't know what to do with this node type. \" + \"We were previously a Statement but we can't fit in here?\");\n }\n}\nfunction updateSiblingKeys(fromIndex, incrementBy) {\n if (!this.parent) return;\n const paths = (0, _cache.getCachedPaths)(this.hub, this.parent) || [];\n for (const [, path] of paths) {\n if (typeof path.key === \"number\" && path.key >= fromIndex) {\n path.key += incrementBy;\n }\n }\n}\nfunction _verifyNodeList(nodes) {\n if (!nodes) {\n return [];\n }\n if (!Array.isArray(nodes)) {\n nodes = [nodes];\n }\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n let msg;\n if (!node) {\n msg = \"has falsy node\";\n } else if (typeof node !== \"object\") {\n msg = \"contains a non-object node\";\n } else if (!node.type) {\n msg = \"without a type\";\n } else if (node instanceof _index.default) {\n msg = \"has a NodePath when it expected a raw object\";\n }\n if (msg) {\n const type = Array.isArray(node) ? \"array\" : typeof node;\n throw new Error(`Node list ${msg} with the index of ${i} and type of ${type}`);\n }\n }\n return nodes;\n}\nfunction unshiftContainer(listKey, nodes) {\n _removal._assertUnremoved.call(this);\n nodes = _verifyNodeList.call(this, nodes);\n const path = _index.default.get({\n parentPath: this,\n parent: this.node,\n container: this.node[listKey],\n listKey,\n key: 0\n }).setContext(this.context);\n return _containerInsertBefore.call(path, nodes);\n}\nfunction pushContainer(listKey, nodes) {\n _removal._assertUnremoved.call(this);\n const verifiedNodes = _verifyNodeList.call(this, nodes);\n const container = this.node[listKey];\n const path = _index.default.get({\n parentPath: this,\n parent: this.node,\n container: container,\n listKey,\n key: container.length\n }).setContext(this.context);\n return path.replaceWithMultiple(verifiedNodes);\n}\n{\n exports.hoist = function hoist(scope = this.scope) {\n const hoister = new _hoister.default(this, scope);\n return hoister.run();\n };\n}\n\n//# sourceMappingURL=modification.js.map\n"],"sourceRoot":""}