@rc-component/dialog 1.6.2 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common-async.js +2518 -0
- package/dist/common-async.js.map +1 -0
- package/dist/demos-async.css +396 -0
- package/dist/demos-async.css.map +1 -0
- package/dist/demos-async.js +1242 -0
- package/dist/demos-async.js.map +1 -0
- package/dist/docs_changelog_md-async.js +2141 -0
- package/dist/docs_changelog_md-async.js.map +1 -0
- package/dist/docs_demo_ant-design_md-async.js +101 -0
- package/dist/docs_demo_ant-design_md-async.js.map +1 -0
- package/dist/docs_demo_bootstrap_md-async.js +101 -0
- package/dist/docs_demo_bootstrap_md-async.js.map +1 -0
- package/dist/docs_demo_draggable_md-async.js +101 -0
- package/dist/docs_demo_draggable_md-async.js.map +1 -0
- package/dist/docs_demo_multiple-Portal_md-async.js +147 -0
- package/dist/docs_demo_multiple-Portal_md-async.js.map +1 -0
- package/dist/docs_demo_pure_md-async.js +101 -0
- package/dist/docs_demo_pure_md-async.js.map +1 -0
- package/dist/docs_index_md-async.js +1754 -0
- package/dist/docs_index_md-async.js.map +1 -0
- package/dist/dumi__tmp__dumi__theme__ContextWrapper-async.js +201 -0
- package/dist/dumi__tmp__dumi__theme__ContextWrapper-async.js.map +1 -0
- package/dist/meta__docs-async.css +396 -0
- package/dist/meta__docs-async.css.map +1 -0
- package/dist/meta__docs-async.js +1048 -0
- package/dist/meta__docs-async.js.map +1 -0
- package/dist/nm__dumi__dist__client__pages__404-async.js +69 -0
- package/dist/nm__dumi__dist__client__pages__404-async.js.map +1 -0
- package/dist/nm__dumi__dist__client__pages__Demo__index-async.js +63 -0
- package/dist/{9f7aa744-async.3e863897.js.map → nm__dumi__dist__client__pages__Demo__index-async.js.map} +1 -1
- package/dist/node_modules_dumi_dist_client_misc_reactDemoCompiler_js-async.js +368 -0
- package/dist/node_modules_dumi_dist_client_misc_reactDemoCompiler_js-async.js.map +1 -0
- package/dist/node_modules_dumi_theme-default_layouts_DocLayout_index_js-async.js +1077 -0
- package/dist/node_modules_dumi_theme-default_layouts_DocLayout_index_js-async.js.map +1 -0
- package/dist/node_modules_react-dom_server_browser_js-async.js +18 -0
- package/dist/{f410dd15-async.4aeedec3.js.map → node_modules_react-dom_server_browser_js-async.js.map} +1 -1
- package/dist/umi.css +1317 -0
- package/dist/umi.css.map +1 -0
- package/dist/umi.js +83003 -0
- package/dist/umi.js.map +1 -0
- package/dist/vendors-async.css +26259 -0
- package/dist/vendors-async.css.map +1 -0
- package/dist/vendors-async.js +56792 -0
- package/dist/vendors-async.js.map +1 -0
- package/es/Dialog/index.js +0 -12
- package/es/DialogWrap.js +14 -1
- package/es/IDialogPropTypes.d.ts +1 -1
- package/lib/Dialog/index.js +0 -12
- package/lib/DialogWrap.js +14 -1
- package/lib/IDialogPropTypes.d.ts +1 -1
- package/package.json +5 -5
- package/dist/00feb83c-async.b2b13c3a.js +0 -2
- package/dist/00feb83c-async.b2b13c3a.js.map +0 -1
- package/dist/12e34244-async.042e069f.js +0 -2
- package/dist/12e34244-async.042e069f.js.map +0 -1
- package/dist/1476aea7-async.5924d48b.js +0 -2
- package/dist/1476aea7-async.5924d48b.js.map +0 -1
- package/dist/267f1112-async.b1c4e09d.js +0 -2
- package/dist/267f1112-async.b1c4e09d.js.map +0 -1
- package/dist/3daea961-async.dfa8a2b7.js +0 -2
- package/dist/3daea961-async.dfa8a2b7.js.map +0 -1
- package/dist/404.html +0 -15
- package/dist/42e76558-async.f2db19d4.js +0 -2
- package/dist/42e76558-async.f2db19d4.js.map +0 -1
- package/dist/58f5abb1-async.f36f6f5a.js +0 -2
- package/dist/58f5abb1-async.f36f6f5a.js.map +0 -1
- package/dist/779f92e1-async.d95373de.js +0 -124
- package/dist/779f92e1-async.d95373de.js.map +0 -1
- package/dist/9e8e2db3-async.7488f9f0.css +0 -2
- package/dist/9e8e2db3-async.7488f9f0.css.map +0 -1
- package/dist/9e8e2db3-async.82b5afee.js +0 -8
- package/dist/9e8e2db3-async.82b5afee.js.map +0 -1
- package/dist/9f7aa744-async.3e863897.js +0 -2
- package/dist/bd24602e-async.050c580d.js +0 -2
- package/dist/bd24602e-async.050c580d.js.map +0 -1
- package/dist/cd8d7381-async.a336cd94.js +0 -2
- package/dist/cd8d7381-async.a336cd94.js.map +0 -1
- package/dist/changelog/index.html +0 -15
- package/dist/common-async.d12bbb31.js +0 -2
- package/dist/common-async.d12bbb31.js.map +0 -1
- package/dist/demo/ant-design/index.html +0 -15
- package/dist/demo/bootstrap/index.html +0 -15
- package/dist/demo/draggable/index.html +0 -15
- package/dist/demo/multiple--portal/index.html +0 -15
- package/dist/demo/pure/index.html +0 -15
- package/dist/f2210531-async.0ea798a7.js +0 -2
- package/dist/f2210531-async.0ea798a7.js.map +0 -1
- package/dist/f410dd15-async.4aeedec3.js +0 -2
- package/dist/fff33d9f-async.4061bf6f.js +0 -2
- package/dist/fff33d9f-async.4061bf6f.js.map +0 -1
- package/dist/fff33d9f-async.f200d0df.css +0 -2
- package/dist/fff33d9f-async.f200d0df.css.map +0 -1
- package/dist/index.html +0 -15
- package/dist/preload_helper.fdfc8d07.js +0 -1
- package/dist/umi.ebc6765d.js +0 -9
- package/dist/umi.ebc6765d.js.map +0 -1
- package/dist/umi.ed582539.css +0 -2
- package/dist/umi.ed582539.css.map +0 -1
- package/dist/vendors-async.53ad541e.css +0 -2
- package/dist/vendors-async.53ad541e.css.map +0 -1
- package/dist/vendors-async.af87bf96.js +0 -44
- package/dist/vendors-async.af87bf96.js.map +0 -1
- package/dist/~demos/:id/index.html +0 -15
- package/dist/~demos/docs-demo-ant-design-demo-ant-design/index.html +0 -15
- package/dist/~demos/docs-demo-bootstrap-demo-bootstrap/index.html +0 -15
- package/dist/~demos/docs-demo-draggable-demo-draggable/index.html +0 -15
- package/dist/~demos/docs-demo-multiple-portal-demo-multiple-portal/index.html +0 -15
- package/dist/~demos/docs-demo-pure-demo-pure/index.html +0 -15
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["node_modules/dumi/dist/client/misc/reactDemoCompiler.js","node_modules/sucrase/dist/esm/CJSImportProcessor.js","node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs","node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs","node_modules/sucrase/dist/esm/HelperManager.js","node_modules/sucrase/dist/esm/identifyShadowedGlobals.js","node_modules/sucrase/dist/esm/NameManager.js","node_modules/sucrase/dist/esm/util/getIdentifierNames.js","node_modules/sucrase/dist/esm/Options-gen-types.js","node_modules/sucrase/dist/esm/Options.js","node_modules/sucrase/dist/esm/TokenProcessor.js","node_modules/sucrase/dist/esm/util/isAsyncOperation.js","node_modules/sucrase/dist/esm/util/getClassInfo.js","node_modules/sucrase/dist/esm/util/elideImportEquals.js","node_modules/sucrase/dist/esm/util/getDeclarationInfo.js","node_modules/sucrase/dist/esm/util/isExportFrom.js","node_modules/sucrase/dist/esm/util/removeMaybeImportAttributes.js","node_modules/sucrase/dist/esm/util/shouldElideDefaultExport.js","node_modules/sucrase/dist/esm/transformers/CJSImportTransformer.js","node_modules/sucrase/dist/esm/transformers/ESMImportTransformer.js","node_modules/sucrase/dist/esm/transformers/FlowTransformer.js","node_modules/sucrase/dist/esm/transformers/JestHoistTransformer.js","node_modules/sucrase/dist/esm/transformers/NumericSeparatorTransformer.js","node_modules/sucrase/dist/esm/transformers/OptionalCatchBindingTransformer.js","node_modules/sucrase/dist/esm/transformers/OptionalChainingNullishTransformer.js","node_modules/sucrase/dist/esm/transformers/ReactDisplayNameTransformer.js","node_modules/sucrase/dist/esm/transformers/ReactHotLoaderTransformer.js","node_modules/sucrase/dist/esm/util/isIdentifier.js","node_modules/sucrase/dist/esm/transformers/TypeScriptTransformer.js","node_modules/sucrase/dist/esm/transformers/RootTransformer.js","node_modules/sucrase/dist/esm/index.js","node_modules/sucrase/dist/esm/util/getTSImportedNames.js","node_modules/sucrase/dist/esm/computeSourceMap.js"],"sourcesContent":["function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = \"function\" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || \"@@iterator\", asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\", toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, \"\"); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: \"normal\", arg: fn.call(obj, arg) }; } catch (err) { return { type: \"throw\", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { [\"next\", \"throw\", \"return\"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if (\"throw\" !== record.type) { var result = record.arg, value = result.value; return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke(\"next\", value, resolve, reject); }, function (err) { invoke(\"throw\", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke(\"throw\", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, \"_invoke\", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = \"suspendedStart\"; return function (method, arg) { if (\"executing\" === state) throw new Error(\"Generator is already running\"); if (\"completed\" === state) { if (\"throw\" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) { if (\"suspendedStart\" === state) throw state = \"completed\", context.arg; context.dispatchException(context.arg); } else \"return\" === context.method && context.abrupt(\"return\", context.arg); state = \"executing\"; var record = tryCatch(innerFn, self, context); if (\"normal\" === record.type) { if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator.return && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = \"normal\", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: \"root\" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if (\"function\" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) { var ctor = \"function\" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, \"toString\", function () { return \"[object Generator]\"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if (\"throw\" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if (\"root\" === entry.tryLoc) return handle(\"end\"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, \"catchLoc\"), hasFinally = hasOwn.call(entry, \"finallyLoc\"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error(\"try statement without catch or finally\"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if (\"throw\" === record.type) throw record.arg; return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, catch: function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if (\"throw\" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nimport { transform } from 'sucrase';\nvar compile = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(code) {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", transform(code, {\n transforms: ['typescript', 'jsx', 'imports']\n }).code);\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function compile(_x) {\n return _ref.apply(this, arguments);\n };\n}();\nexport default compile;","\n\n\nimport {isDeclaration} from \"./parser/tokenizer\";\nimport {ContextualKeyword} from \"./parser/tokenizer/keywords\";\nimport {TokenType as tt} from \"./parser/tokenizer/types\";\n\nimport getImportExportSpecifierInfo from \"./util/getImportExportSpecifierInfo\";\nimport {getNonTypeIdentifiers} from \"./util/getNonTypeIdentifiers\";\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Class responsible for preprocessing and bookkeeping import and export declarations within the\n * file.\n *\n * TypeScript uses a simpler mechanism that does not use functions like interopRequireDefault and\n * interopRequireWildcard, so we also allow that mode for compatibility.\n */\nexport default class CJSImportProcessor {\n __init() {this.nonTypeIdentifiers = new Set()}\n __init2() {this.importInfoByPath = new Map()}\n __init3() {this.importsToReplace = new Map()}\n __init4() {this.identifierReplacements = new Map()}\n __init5() {this.exportBindingsByLocalName = new Map()}\n\n constructor(\n nameManager,\n tokens,\n enableLegacyTypeScriptModuleInterop,\n options,\n isTypeScriptTransformEnabled,\n keepUnusedImports,\n helperManager,\n ) {;this.nameManager = nameManager;this.tokens = tokens;this.enableLegacyTypeScriptModuleInterop = enableLegacyTypeScriptModuleInterop;this.options = options;this.isTypeScriptTransformEnabled = isTypeScriptTransformEnabled;this.keepUnusedImports = keepUnusedImports;this.helperManager = helperManager;CJSImportProcessor.prototype.__init.call(this);CJSImportProcessor.prototype.__init2.call(this);CJSImportProcessor.prototype.__init3.call(this);CJSImportProcessor.prototype.__init4.call(this);CJSImportProcessor.prototype.__init5.call(this);}\n\n preprocessTokens() {\n for (let i = 0; i < this.tokens.tokens.length; i++) {\n if (\n this.tokens.matches1AtIndex(i, tt._import) &&\n !this.tokens.matches3AtIndex(i, tt._import, tt.name, tt.eq)\n ) {\n this.preprocessImportAtIndex(i);\n }\n if (\n this.tokens.matches1AtIndex(i, tt._export) &&\n !this.tokens.matches2AtIndex(i, tt._export, tt.eq)\n ) {\n this.preprocessExportAtIndex(i);\n }\n }\n this.generateImportReplacements();\n }\n\n /**\n * In TypeScript, import statements that only import types should be removed.\n * This includes `import {} from 'foo';`, but not `import 'foo';`.\n */\n pruneTypeOnlyImports() {\n this.nonTypeIdentifiers = getNonTypeIdentifiers(this.tokens, this.options);\n for (const [path, importInfo] of this.importInfoByPath.entries()) {\n if (\n importInfo.hasBareImport ||\n importInfo.hasStarExport ||\n importInfo.exportStarNames.length > 0 ||\n importInfo.namedExports.length > 0\n ) {\n continue;\n }\n const names = [\n ...importInfo.defaultNames,\n ...importInfo.wildcardNames,\n ...importInfo.namedImports.map(({localName}) => localName),\n ];\n if (names.every((name) => this.shouldAutomaticallyElideImportedName(name))) {\n this.importsToReplace.set(path, \"\");\n }\n }\n }\n\n shouldAutomaticallyElideImportedName(name) {\n return (\n this.isTypeScriptTransformEnabled &&\n !this.keepUnusedImports &&\n !this.nonTypeIdentifiers.has(name)\n );\n }\n\n generateImportReplacements() {\n for (const [path, importInfo] of this.importInfoByPath.entries()) {\n const {\n defaultNames,\n wildcardNames,\n namedImports,\n namedExports,\n exportStarNames,\n hasStarExport,\n } = importInfo;\n\n if (\n defaultNames.length === 0 &&\n wildcardNames.length === 0 &&\n namedImports.length === 0 &&\n namedExports.length === 0 &&\n exportStarNames.length === 0 &&\n !hasStarExport\n ) {\n // Import is never used, so don't even assign a name.\n this.importsToReplace.set(path, `require('${path}');`);\n continue;\n }\n\n const primaryImportName = this.getFreeIdentifierForPath(path);\n let secondaryImportName;\n if (this.enableLegacyTypeScriptModuleInterop) {\n secondaryImportName = primaryImportName;\n } else {\n secondaryImportName =\n wildcardNames.length > 0 ? wildcardNames[0] : this.getFreeIdentifierForPath(path);\n }\n let requireCode = `var ${primaryImportName} = require('${path}');`;\n if (wildcardNames.length > 0) {\n for (const wildcardName of wildcardNames) {\n const moduleExpr = this.enableLegacyTypeScriptModuleInterop\n ? primaryImportName\n : `${this.helperManager.getHelperName(\"interopRequireWildcard\")}(${primaryImportName})`;\n requireCode += ` var ${wildcardName} = ${moduleExpr};`;\n }\n } else if (exportStarNames.length > 0 && secondaryImportName !== primaryImportName) {\n requireCode += ` var ${secondaryImportName} = ${this.helperManager.getHelperName(\n \"interopRequireWildcard\",\n )}(${primaryImportName});`;\n } else if (defaultNames.length > 0 && secondaryImportName !== primaryImportName) {\n requireCode += ` var ${secondaryImportName} = ${this.helperManager.getHelperName(\n \"interopRequireDefault\",\n )}(${primaryImportName});`;\n }\n\n for (const {importedName, localName} of namedExports) {\n requireCode += ` ${this.helperManager.getHelperName(\n \"createNamedExportFrom\",\n )}(${primaryImportName}, '${localName}', '${importedName}');`;\n }\n for (const exportStarName of exportStarNames) {\n requireCode += ` exports.${exportStarName} = ${secondaryImportName};`;\n }\n if (hasStarExport) {\n requireCode += ` ${this.helperManager.getHelperName(\n \"createStarExport\",\n )}(${primaryImportName});`;\n }\n\n this.importsToReplace.set(path, requireCode);\n\n for (const defaultName of defaultNames) {\n this.identifierReplacements.set(defaultName, `${secondaryImportName}.default`);\n }\n for (const {importedName, localName} of namedImports) {\n this.identifierReplacements.set(localName, `${primaryImportName}.${importedName}`);\n }\n }\n }\n\n getFreeIdentifierForPath(path) {\n const components = path.split(\"/\");\n const lastComponent = components[components.length - 1];\n const baseName = lastComponent.replace(/\\W/g, \"\");\n return this.nameManager.claimFreeName(`_${baseName}`);\n }\n\n preprocessImportAtIndex(index) {\n const defaultNames = [];\n const wildcardNames = [];\n const namedImports = [];\n\n index++;\n if (\n (this.tokens.matchesContextualAtIndex(index, ContextualKeyword._type) ||\n this.tokens.matches1AtIndex(index, tt._typeof)) &&\n !this.tokens.matches1AtIndex(index + 1, tt.comma) &&\n !this.tokens.matchesContextualAtIndex(index + 1, ContextualKeyword._from)\n ) {\n // import type declaration, so no need to process anything.\n return;\n }\n\n if (this.tokens.matches1AtIndex(index, tt.parenL)) {\n // Dynamic import, so nothing to do\n return;\n }\n\n if (this.tokens.matches1AtIndex(index, tt.name)) {\n defaultNames.push(this.tokens.identifierNameAtIndex(index));\n index++;\n if (this.tokens.matches1AtIndex(index, tt.comma)) {\n index++;\n }\n }\n\n if (this.tokens.matches1AtIndex(index, tt.star)) {\n // * as\n index += 2;\n wildcardNames.push(this.tokens.identifierNameAtIndex(index));\n index++;\n }\n\n if (this.tokens.matches1AtIndex(index, tt.braceL)) {\n const result = this.getNamedImports(index + 1);\n index = result.newIndex;\n\n for (const namedImport of result.namedImports) {\n // Treat {default as X} as a default import to ensure usage of require interop helper\n if (namedImport.importedName === \"default\") {\n defaultNames.push(namedImport.localName);\n } else {\n namedImports.push(namedImport);\n }\n }\n }\n\n if (this.tokens.matchesContextualAtIndex(index, ContextualKeyword._from)) {\n index++;\n }\n\n if (!this.tokens.matches1AtIndex(index, tt.string)) {\n throw new Error(\"Expected string token at the end of import statement.\");\n }\n const path = this.tokens.stringValueAtIndex(index);\n const importInfo = this.getImportInfo(path);\n importInfo.defaultNames.push(...defaultNames);\n importInfo.wildcardNames.push(...wildcardNames);\n importInfo.namedImports.push(...namedImports);\n if (defaultNames.length === 0 && wildcardNames.length === 0 && namedImports.length === 0) {\n importInfo.hasBareImport = true;\n }\n }\n\n preprocessExportAtIndex(index) {\n if (\n this.tokens.matches2AtIndex(index, tt._export, tt._var) ||\n this.tokens.matches2AtIndex(index, tt._export, tt._let) ||\n this.tokens.matches2AtIndex(index, tt._export, tt._const)\n ) {\n this.preprocessVarExportAtIndex(index);\n } else if (\n this.tokens.matches2AtIndex(index, tt._export, tt._function) ||\n this.tokens.matches2AtIndex(index, tt._export, tt._class)\n ) {\n const exportName = this.tokens.identifierNameAtIndex(index + 2);\n this.addExportBinding(exportName, exportName);\n } else if (this.tokens.matches3AtIndex(index, tt._export, tt.name, tt._function)) {\n const exportName = this.tokens.identifierNameAtIndex(index + 3);\n this.addExportBinding(exportName, exportName);\n } else if (this.tokens.matches2AtIndex(index, tt._export, tt.braceL)) {\n this.preprocessNamedExportAtIndex(index);\n } else if (this.tokens.matches2AtIndex(index, tt._export, tt.star)) {\n this.preprocessExportStarAtIndex(index);\n }\n }\n\n preprocessVarExportAtIndex(index) {\n let depth = 0;\n // Handle cases like `export let {x} = y;`, starting at the open-brace in that case.\n for (let i = index + 2; ; i++) {\n if (\n this.tokens.matches1AtIndex(i, tt.braceL) ||\n this.tokens.matches1AtIndex(i, tt.dollarBraceL) ||\n this.tokens.matches1AtIndex(i, tt.bracketL)\n ) {\n depth++;\n } else if (\n this.tokens.matches1AtIndex(i, tt.braceR) ||\n this.tokens.matches1AtIndex(i, tt.bracketR)\n ) {\n depth--;\n } else if (depth === 0 && !this.tokens.matches1AtIndex(i, tt.name)) {\n break;\n } else if (this.tokens.matches1AtIndex(1, tt.eq)) {\n const endIndex = this.tokens.currentToken().rhsEndIndex;\n if (endIndex == null) {\n throw new Error(\"Expected = token with an end index.\");\n }\n i = endIndex - 1;\n } else {\n const token = this.tokens.tokens[i];\n if (isDeclaration(token)) {\n const exportName = this.tokens.identifierNameAtIndex(i);\n this.identifierReplacements.set(exportName, `exports.${exportName}`);\n }\n }\n }\n }\n\n /**\n * Walk this export statement just in case it's an export...from statement.\n * If it is, combine it into the import info for that path. Otherwise, just\n * bail out; it'll be handled later.\n */\n preprocessNamedExportAtIndex(index) {\n // export {\n index += 2;\n const {newIndex, namedImports} = this.getNamedImports(index);\n index = newIndex;\n\n if (this.tokens.matchesContextualAtIndex(index, ContextualKeyword._from)) {\n index++;\n } else {\n // Reinterpret \"a as b\" to be local/exported rather than imported/local.\n for (const {importedName: localName, localName: exportedName} of namedImports) {\n this.addExportBinding(localName, exportedName);\n }\n return;\n }\n\n if (!this.tokens.matches1AtIndex(index, tt.string)) {\n throw new Error(\"Expected string token at the end of import statement.\");\n }\n const path = this.tokens.stringValueAtIndex(index);\n const importInfo = this.getImportInfo(path);\n importInfo.namedExports.push(...namedImports);\n }\n\n preprocessExportStarAtIndex(index) {\n let exportedName = null;\n if (this.tokens.matches3AtIndex(index, tt._export, tt.star, tt._as)) {\n // export * as\n index += 3;\n exportedName = this.tokens.identifierNameAtIndex(index);\n // foo from\n index += 2;\n } else {\n // export * from\n index += 3;\n }\n if (!this.tokens.matches1AtIndex(index, tt.string)) {\n throw new Error(\"Expected string token at the end of star export statement.\");\n }\n const path = this.tokens.stringValueAtIndex(index);\n const importInfo = this.getImportInfo(path);\n if (exportedName !== null) {\n importInfo.exportStarNames.push(exportedName);\n } else {\n importInfo.hasStarExport = true;\n }\n }\n\n getNamedImports(index) {\n const namedImports = [];\n while (true) {\n if (this.tokens.matches1AtIndex(index, tt.braceR)) {\n index++;\n break;\n }\n\n const specifierInfo = getImportExportSpecifierInfo(this.tokens, index);\n index = specifierInfo.endIndex;\n if (!specifierInfo.isType) {\n namedImports.push({\n importedName: specifierInfo.leftName,\n localName: specifierInfo.rightName,\n });\n }\n\n if (this.tokens.matches2AtIndex(index, tt.comma, tt.braceR)) {\n index += 2;\n break;\n } else if (this.tokens.matches1AtIndex(index, tt.braceR)) {\n index++;\n break;\n } else if (this.tokens.matches1AtIndex(index, tt.comma)) {\n index++;\n } else {\n throw new Error(`Unexpected token: ${JSON.stringify(this.tokens.tokens[index])}`);\n }\n }\n return {newIndex: index, namedImports};\n }\n\n /**\n * Get a mutable import info object for this path, creating one if it doesn't\n * exist yet.\n */\n getImportInfo(path) {\n const existingInfo = this.importInfoByPath.get(path);\n if (existingInfo) {\n return existingInfo;\n }\n const newInfo = {\n defaultNames: [],\n wildcardNames: [],\n namedImports: [],\n namedExports: [],\n hasBareImport: false,\n exportStarNames: [],\n hasStarExport: false,\n };\n this.importInfoByPath.set(path, newInfo);\n return newInfo;\n }\n\n addExportBinding(localName, exportedName) {\n if (!this.exportBindingsByLocalName.has(localName)) {\n this.exportBindingsByLocalName.set(localName, []);\n }\n this.exportBindingsByLocalName.get(localName).push(exportedName);\n }\n\n /**\n * Return the code to use for the import for this path, or the empty string if\n * the code has already been \"claimed\" by a previous import.\n */\n claimImportCode(importPath) {\n const result = this.importsToReplace.get(importPath);\n this.importsToReplace.set(importPath, \"\");\n return result || \"\";\n }\n\n getIdentifierReplacement(identifierName) {\n return this.identifierReplacements.get(identifierName) || null;\n }\n\n /**\n * Return a string like `exports.foo = exports.bar`.\n */\n resolveExportBinding(assignedName) {\n const exportedNames = this.exportBindingsByLocalName.get(assignedName);\n if (!exportedNames || exportedNames.length === 0) {\n return null;\n }\n return exportedNames.map((exportedName) => `exports.${exportedName}`).join(\" = \");\n }\n\n /**\n * Return all imported/exported names where we might be interested in whether usages of those\n * names are shadowed.\n */\n getGlobalNames() {\n return new Set([\n ...this.identifierReplacements.keys(),\n ...this.exportBindingsByLocalName.keys(),\n ]);\n }\n}\n","// src/vlq.ts\nvar comma = \",\".charCodeAt(0);\nvar semicolon = \";\".charCodeAt(0);\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar intToChar = new Uint8Array(64);\nvar charToInt = new Uint8Array(128);\nfor (let i = 0; i < chars.length; i++) {\n const c = chars.charCodeAt(i);\n intToChar[i] = c;\n charToInt[c] = i;\n}\nfunction decodeInteger(reader, relative) {\n let value = 0;\n let shift = 0;\n let integer = 0;\n do {\n const c = reader.next();\n integer = charToInt[c];\n value |= (integer & 31) << shift;\n shift += 5;\n } while (integer & 32);\n const shouldNegate = value & 1;\n value >>>= 1;\n if (shouldNegate) {\n value = -2147483648 | -value;\n }\n return relative + value;\n}\nfunction encodeInteger(builder, num, relative) {\n let delta = num - relative;\n delta = delta < 0 ? -delta << 1 | 1 : delta << 1;\n do {\n let clamped = delta & 31;\n delta >>>= 5;\n if (delta > 0) clamped |= 32;\n builder.write(intToChar[clamped]);\n } while (delta > 0);\n return num;\n}\nfunction hasMoreVlq(reader, max) {\n if (reader.pos >= max) return false;\n return reader.peek() !== comma;\n}\n\n// src/strings.ts\nvar bufLength = 1024 * 16;\nvar td = typeof TextDecoder !== \"undefined\" ? /* @__PURE__ */ new TextDecoder() : typeof Buffer !== \"undefined\" ? {\n decode(buf) {\n const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);\n return out.toString();\n }\n} : {\n decode(buf) {\n let out = \"\";\n for (let i = 0; i < buf.length; i++) {\n out += String.fromCharCode(buf[i]);\n }\n return out;\n }\n};\nvar StringWriter = class {\n constructor() {\n this.pos = 0;\n this.out = \"\";\n this.buffer = new Uint8Array(bufLength);\n }\n write(v) {\n const { buffer } = this;\n buffer[this.pos++] = v;\n if (this.pos === bufLength) {\n this.out += td.decode(buffer);\n this.pos = 0;\n }\n }\n flush() {\n const { buffer, out, pos } = this;\n return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out;\n }\n};\nvar StringReader = class {\n constructor(buffer) {\n this.pos = 0;\n this.buffer = buffer;\n }\n next() {\n return this.buffer.charCodeAt(this.pos++);\n }\n peek() {\n return this.buffer.charCodeAt(this.pos);\n }\n indexOf(char) {\n const { buffer, pos } = this;\n const idx = buffer.indexOf(char, pos);\n return idx === -1 ? buffer.length : idx;\n }\n};\n\n// src/scopes.ts\nvar EMPTY = [];\nfunction decodeOriginalScopes(input) {\n const { length } = input;\n const reader = new StringReader(input);\n const scopes = [];\n const stack = [];\n let line = 0;\n for (; reader.pos < length; reader.pos++) {\n line = decodeInteger(reader, line);\n const column = decodeInteger(reader, 0);\n if (!hasMoreVlq(reader, length)) {\n const last = stack.pop();\n last[2] = line;\n last[3] = column;\n continue;\n }\n const kind = decodeInteger(reader, 0);\n const fields = decodeInteger(reader, 0);\n const hasName = fields & 1;\n const scope = hasName ? [line, column, 0, 0, kind, decodeInteger(reader, 0)] : [line, column, 0, 0, kind];\n let vars = EMPTY;\n if (hasMoreVlq(reader, length)) {\n vars = [];\n do {\n const varsIndex = decodeInteger(reader, 0);\n vars.push(varsIndex);\n } while (hasMoreVlq(reader, length));\n }\n scope.vars = vars;\n scopes.push(scope);\n stack.push(scope);\n }\n return scopes;\n}\nfunction encodeOriginalScopes(scopes) {\n const writer = new StringWriter();\n for (let i = 0; i < scopes.length; ) {\n i = _encodeOriginalScopes(scopes, i, writer, [0]);\n }\n return writer.flush();\n}\nfunction _encodeOriginalScopes(scopes, index, writer, state) {\n const scope = scopes[index];\n const { 0: startLine, 1: startColumn, 2: endLine, 3: endColumn, 4: kind, vars } = scope;\n if (index > 0) writer.write(comma);\n state[0] = encodeInteger(writer, startLine, state[0]);\n encodeInteger(writer, startColumn, 0);\n encodeInteger(writer, kind, 0);\n const fields = scope.length === 6 ? 1 : 0;\n encodeInteger(writer, fields, 0);\n if (scope.length === 6) encodeInteger(writer, scope[5], 0);\n for (const v of vars) {\n encodeInteger(writer, v, 0);\n }\n for (index++; index < scopes.length; ) {\n const next = scopes[index];\n const { 0: l, 1: c } = next;\n if (l > endLine || l === endLine && c >= endColumn) {\n break;\n }\n index = _encodeOriginalScopes(scopes, index, writer, state);\n }\n writer.write(comma);\n state[0] = encodeInteger(writer, endLine, state[0]);\n encodeInteger(writer, endColumn, 0);\n return index;\n}\nfunction decodeGeneratedRanges(input) {\n const { length } = input;\n const reader = new StringReader(input);\n const ranges = [];\n const stack = [];\n let genLine = 0;\n let definitionSourcesIndex = 0;\n let definitionScopeIndex = 0;\n let callsiteSourcesIndex = 0;\n let callsiteLine = 0;\n let callsiteColumn = 0;\n let bindingLine = 0;\n let bindingColumn = 0;\n do {\n const semi = reader.indexOf(\";\");\n let genColumn = 0;\n for (; reader.pos < semi; reader.pos++) {\n genColumn = decodeInteger(reader, genColumn);\n if (!hasMoreVlq(reader, semi)) {\n const last = stack.pop();\n last[2] = genLine;\n last[3] = genColumn;\n continue;\n }\n const fields = decodeInteger(reader, 0);\n const hasDefinition = fields & 1;\n const hasCallsite = fields & 2;\n const hasScope = fields & 4;\n let callsite = null;\n let bindings = EMPTY;\n let range;\n if (hasDefinition) {\n const defSourcesIndex = decodeInteger(reader, definitionSourcesIndex);\n definitionScopeIndex = decodeInteger(\n reader,\n definitionSourcesIndex === defSourcesIndex ? definitionScopeIndex : 0\n );\n definitionSourcesIndex = defSourcesIndex;\n range = [genLine, genColumn, 0, 0, defSourcesIndex, definitionScopeIndex];\n } else {\n range = [genLine, genColumn, 0, 0];\n }\n range.isScope = !!hasScope;\n if (hasCallsite) {\n const prevCsi = callsiteSourcesIndex;\n const prevLine = callsiteLine;\n callsiteSourcesIndex = decodeInteger(reader, callsiteSourcesIndex);\n const sameSource = prevCsi === callsiteSourcesIndex;\n callsiteLine = decodeInteger(reader, sameSource ? callsiteLine : 0);\n callsiteColumn = decodeInteger(\n reader,\n sameSource && prevLine === callsiteLine ? callsiteColumn : 0\n );\n callsite = [callsiteSourcesIndex, callsiteLine, callsiteColumn];\n }\n range.callsite = callsite;\n if (hasMoreVlq(reader, semi)) {\n bindings = [];\n do {\n bindingLine = genLine;\n bindingColumn = genColumn;\n const expressionsCount = decodeInteger(reader, 0);\n let expressionRanges;\n if (expressionsCount < -1) {\n expressionRanges = [[decodeInteger(reader, 0)]];\n for (let i = -1; i > expressionsCount; i--) {\n const prevBl = bindingLine;\n bindingLine = decodeInteger(reader, bindingLine);\n bindingColumn = decodeInteger(reader, bindingLine === prevBl ? bindingColumn : 0);\n const expression = decodeInteger(reader, 0);\n expressionRanges.push([expression, bindingLine, bindingColumn]);\n }\n } else {\n expressionRanges = [[expressionsCount]];\n }\n bindings.push(expressionRanges);\n } while (hasMoreVlq(reader, semi));\n }\n range.bindings = bindings;\n ranges.push(range);\n stack.push(range);\n }\n genLine++;\n reader.pos = semi + 1;\n } while (reader.pos < length);\n return ranges;\n}\nfunction encodeGeneratedRanges(ranges) {\n if (ranges.length === 0) return \"\";\n const writer = new StringWriter();\n for (let i = 0; i < ranges.length; ) {\n i = _encodeGeneratedRanges(ranges, i, writer, [0, 0, 0, 0, 0, 0, 0]);\n }\n return writer.flush();\n}\nfunction _encodeGeneratedRanges(ranges, index, writer, state) {\n const range = ranges[index];\n const {\n 0: startLine,\n 1: startColumn,\n 2: endLine,\n 3: endColumn,\n isScope,\n callsite,\n bindings\n } = range;\n if (state[0] < startLine) {\n catchupLine(writer, state[0], startLine);\n state[0] = startLine;\n state[1] = 0;\n } else if (index > 0) {\n writer.write(comma);\n }\n state[1] = encodeInteger(writer, range[1], state[1]);\n const fields = (range.length === 6 ? 1 : 0) | (callsite ? 2 : 0) | (isScope ? 4 : 0);\n encodeInteger(writer, fields, 0);\n if (range.length === 6) {\n const { 4: sourcesIndex, 5: scopesIndex } = range;\n if (sourcesIndex !== state[2]) {\n state[3] = 0;\n }\n state[2] = encodeInteger(writer, sourcesIndex, state[2]);\n state[3] = encodeInteger(writer, scopesIndex, state[3]);\n }\n if (callsite) {\n const { 0: sourcesIndex, 1: callLine, 2: callColumn } = range.callsite;\n if (sourcesIndex !== state[4]) {\n state[5] = 0;\n state[6] = 0;\n } else if (callLine !== state[5]) {\n state[6] = 0;\n }\n state[4] = encodeInteger(writer, sourcesIndex, state[4]);\n state[5] = encodeInteger(writer, callLine, state[5]);\n state[6] = encodeInteger(writer, callColumn, state[6]);\n }\n if (bindings) {\n for (const binding of bindings) {\n if (binding.length > 1) encodeInteger(writer, -binding.length, 0);\n const expression = binding[0][0];\n encodeInteger(writer, expression, 0);\n let bindingStartLine = startLine;\n let bindingStartColumn = startColumn;\n for (let i = 1; i < binding.length; i++) {\n const expRange = binding[i];\n bindingStartLine = encodeInteger(writer, expRange[1], bindingStartLine);\n bindingStartColumn = encodeInteger(writer, expRange[2], bindingStartColumn);\n encodeInteger(writer, expRange[0], 0);\n }\n }\n }\n for (index++; index < ranges.length; ) {\n const next = ranges[index];\n const { 0: l, 1: c } = next;\n if (l > endLine || l === endLine && c >= endColumn) {\n break;\n }\n index = _encodeGeneratedRanges(ranges, index, writer, state);\n }\n if (state[0] < endLine) {\n catchupLine(writer, state[0], endLine);\n state[0] = endLine;\n state[1] = 0;\n } else {\n writer.write(comma);\n }\n state[1] = encodeInteger(writer, endColumn, state[1]);\n return index;\n}\nfunction catchupLine(writer, lastLine, line) {\n do {\n writer.write(semicolon);\n } while (++lastLine < line);\n}\n\n// src/sourcemap-codec.ts\nfunction decode(mappings) {\n const { length } = mappings;\n const reader = new StringReader(mappings);\n const decoded = [];\n let genColumn = 0;\n let sourcesIndex = 0;\n let sourceLine = 0;\n let sourceColumn = 0;\n let namesIndex = 0;\n do {\n const semi = reader.indexOf(\";\");\n const line = [];\n let sorted = true;\n let lastCol = 0;\n genColumn = 0;\n while (reader.pos < semi) {\n let seg;\n genColumn = decodeInteger(reader, genColumn);\n if (genColumn < lastCol) sorted = false;\n lastCol = genColumn;\n if (hasMoreVlq(reader, semi)) {\n sourcesIndex = decodeInteger(reader, sourcesIndex);\n sourceLine = decodeInteger(reader, sourceLine);\n sourceColumn = decodeInteger(reader, sourceColumn);\n if (hasMoreVlq(reader, semi)) {\n namesIndex = decodeInteger(reader, namesIndex);\n seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex];\n } else {\n seg = [genColumn, sourcesIndex, sourceLine, sourceColumn];\n }\n } else {\n seg = [genColumn];\n }\n line.push(seg);\n reader.pos++;\n }\n if (!sorted) sort(line);\n decoded.push(line);\n reader.pos = semi + 1;\n } while (reader.pos <= length);\n return decoded;\n}\nfunction sort(line) {\n line.sort(sortComparator);\n}\nfunction sortComparator(a, b) {\n return a[0] - b[0];\n}\nfunction encode(decoded) {\n const writer = new StringWriter();\n let sourcesIndex = 0;\n let sourceLine = 0;\n let sourceColumn = 0;\n let namesIndex = 0;\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n if (i > 0) writer.write(semicolon);\n if (line.length === 0) continue;\n let genColumn = 0;\n for (let j = 0; j < line.length; j++) {\n const segment = line[j];\n if (j > 0) writer.write(comma);\n genColumn = encodeInteger(writer, segment[0], genColumn);\n if (segment.length === 1) continue;\n sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex);\n sourceLine = encodeInteger(writer, segment[2], sourceLine);\n sourceColumn = encodeInteger(writer, segment[3], sourceColumn);\n if (segment.length === 4) continue;\n namesIndex = encodeInteger(writer, segment[4], namesIndex);\n }\n }\n return writer.flush();\n}\nexport {\n decode,\n decodeGeneratedRanges,\n decodeOriginalScopes,\n encode,\n encodeGeneratedRanges,\n encodeOriginalScopes\n};\n//# sourceMappingURL=sourcemap-codec.mjs.map\n","// src/set-array.ts\nvar SetArray = class {\n constructor() {\n this._indexes = { __proto__: null };\n this.array = [];\n }\n};\nfunction cast(set) {\n return set;\n}\nfunction get(setarr, key) {\n return cast(setarr)._indexes[key];\n}\nfunction put(setarr, key) {\n const index = get(setarr, key);\n if (index !== void 0) return index;\n const { array, _indexes: indexes } = cast(setarr);\n const length = array.push(key);\n return indexes[key] = length - 1;\n}\nfunction remove(setarr, key) {\n const index = get(setarr, key);\n if (index === void 0) return;\n const { array, _indexes: indexes } = cast(setarr);\n for (let i = index + 1; i < array.length; i++) {\n const k = array[i];\n array[i - 1] = k;\n indexes[k]--;\n }\n indexes[key] = void 0;\n array.pop();\n}\n\n// src/gen-mapping.ts\nimport {\n encode\n} from \"@jridgewell/sourcemap-codec\";\nimport { TraceMap, decodedMappings } from \"@jridgewell/trace-mapping\";\n\n// src/sourcemap-segment.ts\nvar COLUMN = 0;\nvar SOURCES_INDEX = 1;\nvar SOURCE_LINE = 2;\nvar SOURCE_COLUMN = 3;\nvar NAMES_INDEX = 4;\n\n// src/gen-mapping.ts\nvar NO_NAME = -1;\nvar GenMapping = class {\n constructor({ file, sourceRoot } = {}) {\n this._names = new SetArray();\n this._sources = new SetArray();\n this._sourcesContent = [];\n this._mappings = [];\n this.file = file;\n this.sourceRoot = sourceRoot;\n this._ignoreList = new SetArray();\n }\n};\nfunction cast2(map) {\n return map;\n}\nfunction addSegment(map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) {\n return addSegmentInternal(\n false,\n map,\n genLine,\n genColumn,\n source,\n sourceLine,\n sourceColumn,\n name,\n content\n );\n}\nfunction addMapping(map, mapping) {\n return addMappingInternal(false, map, mapping);\n}\nvar maybeAddSegment = (map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) => {\n return addSegmentInternal(\n true,\n map,\n genLine,\n genColumn,\n source,\n sourceLine,\n sourceColumn,\n name,\n content\n );\n};\nvar maybeAddMapping = (map, mapping) => {\n return addMappingInternal(true, map, mapping);\n};\nfunction setSourceContent(map, source, content) {\n const {\n _sources: sources,\n _sourcesContent: sourcesContent\n // _originalScopes: originalScopes,\n } = cast2(map);\n const index = put(sources, source);\n sourcesContent[index] = content;\n}\nfunction setIgnore(map, source, ignore = true) {\n const {\n _sources: sources,\n _sourcesContent: sourcesContent,\n _ignoreList: ignoreList\n // _originalScopes: originalScopes,\n } = cast2(map);\n const index = put(sources, source);\n if (index === sourcesContent.length) sourcesContent[index] = null;\n if (ignore) put(ignoreList, index);\n else remove(ignoreList, index);\n}\nfunction toDecodedMap(map) {\n const {\n _mappings: mappings,\n _sources: sources,\n _sourcesContent: sourcesContent,\n _names: names,\n _ignoreList: ignoreList\n // _originalScopes: originalScopes,\n // _generatedRanges: generatedRanges,\n } = cast2(map);\n removeEmptyFinalLines(mappings);\n return {\n version: 3,\n file: map.file || void 0,\n names: names.array,\n sourceRoot: map.sourceRoot || void 0,\n sources: sources.array,\n sourcesContent,\n mappings,\n // originalScopes,\n // generatedRanges,\n ignoreList: ignoreList.array\n };\n}\nfunction toEncodedMap(map) {\n const decoded = toDecodedMap(map);\n return Object.assign({}, decoded, {\n // originalScopes: decoded.originalScopes.map((os) => encodeOriginalScopes(os)),\n // generatedRanges: encodeGeneratedRanges(decoded.generatedRanges as GeneratedRange[]),\n mappings: encode(decoded.mappings)\n });\n}\nfunction fromMap(input) {\n const map = new TraceMap(input);\n const gen = new GenMapping({ file: map.file, sourceRoot: map.sourceRoot });\n putAll(cast2(gen)._names, map.names);\n putAll(cast2(gen)._sources, map.sources);\n cast2(gen)._sourcesContent = map.sourcesContent || map.sources.map(() => null);\n cast2(gen)._mappings = decodedMappings(map);\n if (map.ignoreList) putAll(cast2(gen)._ignoreList, map.ignoreList);\n return gen;\n}\nfunction allMappings(map) {\n const out = [];\n const { _mappings: mappings, _sources: sources, _names: names } = cast2(map);\n for (let i = 0; i < mappings.length; i++) {\n const line = mappings[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n const generated = { line: i + 1, column: seg[COLUMN] };\n let source = void 0;\n let original = void 0;\n let name = void 0;\n if (seg.length !== 1) {\n source = sources.array[seg[SOURCES_INDEX]];\n original = { line: seg[SOURCE_LINE] + 1, column: seg[SOURCE_COLUMN] };\n if (seg.length === 5) name = names.array[seg[NAMES_INDEX]];\n }\n out.push({ generated, source, original, name });\n }\n }\n return out;\n}\nfunction addSegmentInternal(skipable, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) {\n const {\n _mappings: mappings,\n _sources: sources,\n _sourcesContent: sourcesContent,\n _names: names\n // _originalScopes: originalScopes,\n } = cast2(map);\n const line = getIndex(mappings, genLine);\n const index = getColumnIndex(line, genColumn);\n if (!source) {\n if (skipable && skipSourceless(line, index)) return;\n return insert(line, index, [genColumn]);\n }\n assert(sourceLine);\n assert(sourceColumn);\n const sourcesIndex = put(sources, source);\n const namesIndex = name ? put(names, name) : NO_NAME;\n if (sourcesIndex === sourcesContent.length) sourcesContent[sourcesIndex] = content != null ? content : null;\n if (skipable && skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex)) {\n return;\n }\n return insert(\n line,\n index,\n name ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex] : [genColumn, sourcesIndex, sourceLine, sourceColumn]\n );\n}\nfunction assert(_val) {\n}\nfunction getIndex(arr, index) {\n for (let i = arr.length; i <= index; i++) {\n arr[i] = [];\n }\n return arr[index];\n}\nfunction getColumnIndex(line, genColumn) {\n let index = line.length;\n for (let i = index - 1; i >= 0; index = i--) {\n const current = line[i];\n if (genColumn >= current[COLUMN]) break;\n }\n return index;\n}\nfunction insert(array, index, value) {\n for (let i = array.length; i > index; i--) {\n array[i] = array[i - 1];\n }\n array[index] = value;\n}\nfunction removeEmptyFinalLines(mappings) {\n const { length } = mappings;\n let len = length;\n for (let i = len - 1; i >= 0; len = i, i--) {\n if (mappings[i].length > 0) break;\n }\n if (len < length) mappings.length = len;\n}\nfunction putAll(setarr, array) {\n for (let i = 0; i < array.length; i++) put(setarr, array[i]);\n}\nfunction skipSourceless(line, index) {\n if (index === 0) return true;\n const prev = line[index - 1];\n return prev.length === 1;\n}\nfunction skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex) {\n if (index === 0) return false;\n const prev = line[index - 1];\n if (prev.length === 1) return false;\n return sourcesIndex === prev[SOURCES_INDEX] && sourceLine === prev[SOURCE_LINE] && sourceColumn === prev[SOURCE_COLUMN] && namesIndex === (prev.length === 5 ? prev[NAMES_INDEX] : NO_NAME);\n}\nfunction addMappingInternal(skipable, map, mapping) {\n const { generated, source, original, name, content } = mapping;\n if (!source) {\n return addSegmentInternal(\n skipable,\n map,\n generated.line - 1,\n generated.column,\n null,\n null,\n null,\n null,\n null\n );\n }\n assert(original);\n return addSegmentInternal(\n skipable,\n map,\n generated.line - 1,\n generated.column,\n source,\n original.line - 1,\n original.column,\n name,\n content\n );\n}\nexport {\n GenMapping,\n addMapping,\n addSegment,\n allMappings,\n fromMap,\n maybeAddMapping,\n maybeAddSegment,\n setIgnore,\n setSourceContent,\n toDecodedMap,\n toEncodedMap\n};\n//# sourceMappingURL=gen-mapping.mjs.map\n","\n\nconst HELPERS = {\n require: `\n import {createRequire as CREATE_REQUIRE_NAME} from \"module\";\n const require = CREATE_REQUIRE_NAME(import.meta.url);\n `,\n interopRequireWildcard: `\n function interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n return newObj;\n }\n }\n `,\n interopRequireDefault: `\n function interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n }\n `,\n createNamedExportFrom: `\n function createNamedExportFrom(obj, localName, importedName) {\n Object.defineProperty(exports, localName, {enumerable: true, configurable: true, get: () => obj[importedName]});\n }\n `,\n // Note that TypeScript and Babel do this differently; TypeScript does a simple existence\n // check in the exports object and does a plain assignment, whereas Babel uses\n // defineProperty and builds an object of explicitly-exported names so that star exports can\n // always take lower precedence. For now, we do the easier TypeScript thing.\n createStarExport: `\n function createStarExport(obj) {\n Object.keys(obj)\n .filter((key) => key !== \"default\" && key !== \"__esModule\")\n .forEach((key) => {\n if (exports.hasOwnProperty(key)) {\n return;\n }\n Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]});\n });\n }\n `,\n nullishCoalesce: `\n function nullishCoalesce(lhs, rhsFn) {\n if (lhs != null) {\n return lhs;\n } else {\n return rhsFn();\n }\n }\n `,\n asyncNullishCoalesce: `\n async function asyncNullishCoalesce(lhs, rhsFn) {\n if (lhs != null) {\n return lhs;\n } else {\n return await rhsFn();\n }\n }\n `,\n optionalChain: `\n function optionalChain(ops) {\n let lastAccessLHS = undefined;\n let value = ops[0];\n let i = 1;\n while (i < ops.length) {\n const op = ops[i];\n const fn = ops[i + 1];\n i += 2;\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = fn((...args) => value.call(lastAccessLHS, ...args));\n lastAccessLHS = undefined;\n }\n }\n return value;\n }\n `,\n asyncOptionalChain: `\n async function asyncOptionalChain(ops) {\n let lastAccessLHS = undefined;\n let value = ops[0];\n let i = 1;\n while (i < ops.length) {\n const op = ops[i];\n const fn = ops[i + 1];\n i += 2;\n if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {\n return undefined;\n }\n if (op === 'access' || op === 'optionalAccess') {\n lastAccessLHS = value;\n value = await fn(value);\n } else if (op === 'call' || op === 'optionalCall') {\n value = await fn((...args) => value.call(lastAccessLHS, ...args));\n lastAccessLHS = undefined;\n }\n }\n return value;\n }\n `,\n optionalChainDelete: `\n function optionalChainDelete(ops) {\n const result = OPTIONAL_CHAIN_NAME(ops);\n return result == null ? true : result;\n }\n `,\n asyncOptionalChainDelete: `\n async function asyncOptionalChainDelete(ops) {\n const result = await ASYNC_OPTIONAL_CHAIN_NAME(ops);\n return result == null ? true : result;\n }\n `,\n};\n\nexport class HelperManager {\n __init() {this.helperNames = {}}\n __init2() {this.createRequireName = null}\n constructor( nameManager) {;this.nameManager = nameManager;HelperManager.prototype.__init.call(this);HelperManager.prototype.__init2.call(this);}\n\n getHelperName(baseName) {\n let helperName = this.helperNames[baseName];\n if (helperName) {\n return helperName;\n }\n helperName = this.nameManager.claimFreeName(`_${baseName}`);\n this.helperNames[baseName] = helperName;\n return helperName;\n }\n\n emitHelpers() {\n let resultCode = \"\";\n if (this.helperNames.optionalChainDelete) {\n this.getHelperName(\"optionalChain\");\n }\n if (this.helperNames.asyncOptionalChainDelete) {\n this.getHelperName(\"asyncOptionalChain\");\n }\n for (const [baseName, helperCodeTemplate] of Object.entries(HELPERS)) {\n const helperName = this.helperNames[baseName];\n let helperCode = helperCodeTemplate;\n if (baseName === \"optionalChainDelete\") {\n helperCode = helperCode.replace(\"OPTIONAL_CHAIN_NAME\", this.helperNames.optionalChain);\n } else if (baseName === \"asyncOptionalChainDelete\") {\n helperCode = helperCode.replace(\n \"ASYNC_OPTIONAL_CHAIN_NAME\",\n this.helperNames.asyncOptionalChain,\n );\n } else if (baseName === \"require\") {\n if (this.createRequireName === null) {\n this.createRequireName = this.nameManager.claimFreeName(\"_createRequire\");\n }\n helperCode = helperCode.replace(/CREATE_REQUIRE_NAME/g, this.createRequireName);\n }\n if (helperName) {\n resultCode += \" \";\n resultCode += helperCode.replace(baseName, helperName).replace(/\\s+/g, \" \").trim();\n }\n }\n return resultCode;\n }\n}\n","import {\n isBlockScopedDeclaration,\n isFunctionScopedDeclaration,\n isNonTopLevelDeclaration,\n} from \"./parser/tokenizer\";\n\nimport {TokenType as tt} from \"./parser/tokenizer/types\";\n\n\n/**\n * Traverse the given tokens and modify them if necessary to indicate that some names shadow global\n * variables.\n */\nexport default function identifyShadowedGlobals(\n tokens,\n scopes,\n globalNames,\n) {\n if (!hasShadowedGlobals(tokens, globalNames)) {\n return;\n }\n markShadowedGlobals(tokens, scopes, globalNames);\n}\n\n/**\n * We can do a fast up-front check to see if there are any declarations to global names. If not,\n * then there's no point in computing scope assignments.\n */\n// Exported for testing.\nexport function hasShadowedGlobals(tokens, globalNames) {\n for (const token of tokens.tokens) {\n if (\n token.type === tt.name &&\n !token.isType &&\n isNonTopLevelDeclaration(token) &&\n globalNames.has(tokens.identifierNameForToken(token))\n ) {\n return true;\n }\n }\n return false;\n}\n\nfunction markShadowedGlobals(\n tokens,\n scopes,\n globalNames,\n) {\n const scopeStack = [];\n let scopeIndex = scopes.length - 1;\n // Scopes were generated at completion time, so they're sorted by end index, so we can maintain a\n // good stack by going backwards through them.\n for (let i = tokens.tokens.length - 1; ; i--) {\n while (scopeStack.length > 0 && scopeStack[scopeStack.length - 1].startTokenIndex === i + 1) {\n scopeStack.pop();\n }\n while (scopeIndex >= 0 && scopes[scopeIndex].endTokenIndex === i + 1) {\n scopeStack.push(scopes[scopeIndex]);\n scopeIndex--;\n }\n // Process scopes after the last iteration so we can make sure we pop all of them.\n if (i < 0) {\n break;\n }\n\n const token = tokens.tokens[i];\n const name = tokens.identifierNameForToken(token);\n if (scopeStack.length > 1 && !token.isType && token.type === tt.name && globalNames.has(name)) {\n if (isBlockScopedDeclaration(token)) {\n markShadowedForScope(scopeStack[scopeStack.length - 1], tokens, name);\n } else if (isFunctionScopedDeclaration(token)) {\n let stackIndex = scopeStack.length - 1;\n while (stackIndex > 0 && !scopeStack[stackIndex].isFunctionScope) {\n stackIndex--;\n }\n if (stackIndex < 0) {\n throw new Error(\"Did not find parent function scope.\");\n }\n markShadowedForScope(scopeStack[stackIndex], tokens, name);\n }\n }\n }\n if (scopeStack.length > 0) {\n throw new Error(\"Expected empty scope stack after processing file.\");\n }\n}\n\nfunction markShadowedForScope(scope, tokens, name) {\n for (let i = scope.startTokenIndex; i < scope.endTokenIndex; i++) {\n const token = tokens.tokens[i];\n if (\n (token.type === tt.name || token.type === tt.jsxName) &&\n tokens.identifierNameForToken(token) === name\n ) {\n token.shadowsGlobal = true;\n }\n }\n}\n","\nimport getIdentifierNames from \"./util/getIdentifierNames\";\n\nexport default class NameManager {\n __init() {this.usedNames = new Set()}\n\n constructor(code, tokens) {;NameManager.prototype.__init.call(this);\n this.usedNames = new Set(getIdentifierNames(code, tokens));\n }\n\n claimFreeName(name) {\n const newName = this.findFreeName(name);\n this.usedNames.add(newName);\n return newName;\n }\n\n findFreeName(name) {\n if (!this.usedNames.has(name)) {\n return name;\n }\n let suffixNum = 2;\n while (this.usedNames.has(name + String(suffixNum))) {\n suffixNum++;\n }\n return name + String(suffixNum);\n }\n}\n","\nimport {TokenType as tt} from \"../parser/tokenizer/types\";\n\n/**\n * Get all identifier names in the code, in order, including duplicates.\n */\nexport default function getIdentifierNames(code, tokens) {\n const names = [];\n for (const token of tokens) {\n if (token.type === tt.name) {\n names.push(code.slice(token.start, token.end));\n }\n }\n return names;\n}\n","/**\n * This module was automatically generated by `ts-interface-builder`\n */\nimport * as t from \"ts-interface-checker\";\n// tslint:disable:object-literal-key-quotes\n\nexport const Transform = t.union(\n t.lit(\"jsx\"),\n t.lit(\"typescript\"),\n t.lit(\"flow\"),\n t.lit(\"imports\"),\n t.lit(\"react-hot-loader\"),\n t.lit(\"jest\"),\n);\n\nexport const SourceMapOptions = t.iface([], {\n compiledFilename: \"string\",\n});\n\nexport const Options = t.iface([], {\n transforms: t.array(\"Transform\"),\n disableESTransforms: t.opt(\"boolean\"),\n jsxRuntime: t.opt(t.union(t.lit(\"classic\"), t.lit(\"automatic\"), t.lit(\"preserve\"))),\n production: t.opt(\"boolean\"),\n jsxImportSource: t.opt(\"string\"),\n jsxPragma: t.opt(\"string\"),\n jsxFragmentPragma: t.opt(\"string\"),\n keepUnusedImports: t.opt(\"boolean\"),\n preserveDynamicImport: t.opt(\"boolean\"),\n injectCreateRequireForImportRequire: t.opt(\"boolean\"),\n enableLegacyTypeScriptModuleInterop: t.opt(\"boolean\"),\n enableLegacyBabel5ModuleInterop: t.opt(\"boolean\"),\n sourceMapOptions: t.opt(\"SourceMapOptions\"),\n filePath: t.opt(\"string\"),\n});\n\nconst exportedTypeSuite = {\n Transform,\n SourceMapOptions,\n Options,\n};\nexport default exportedTypeSuite;\n","import {createCheckers} from \"ts-interface-checker\";\n\nimport OptionsGenTypes from \"./Options-gen-types\";\n\nconst {Options: OptionsChecker} = createCheckers(OptionsGenTypes);\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nexport function validateOptions(options) {\n OptionsChecker.strictCheck(options);\n}\n","\n\n\nimport { TokenType as tt} from \"./parser/tokenizer/types\";\nimport isAsyncOperation from \"./util/isAsyncOperation\";\n\n\n\n\n\n\n\n\n\n\n\nexport default class TokenProcessor {\n __init() {this.resultCode = \"\"}\n // Array mapping input token index to optional string index position in the\n // output code.\n __init2() {this.resultMappings = new Array(this.tokens.length)}\n __init3() {this.tokenIndex = 0}\n\n constructor(\n code,\n tokens,\n isFlowEnabled,\n disableESTransforms,\n helperManager,\n ) {;this.code = code;this.tokens = tokens;this.isFlowEnabled = isFlowEnabled;this.disableESTransforms = disableESTransforms;this.helperManager = helperManager;TokenProcessor.prototype.__init.call(this);TokenProcessor.prototype.__init2.call(this);TokenProcessor.prototype.__init3.call(this);}\n\n /**\n * Snapshot the token state in a way that can be restored later, useful for\n * things like lookahead.\n *\n * resultMappings do not need to be copied since in all use cases, they will\n * be overwritten anyway after restore.\n */\n snapshot() {\n return {\n resultCode: this.resultCode,\n tokenIndex: this.tokenIndex,\n };\n }\n\n restoreToSnapshot(snapshot) {\n this.resultCode = snapshot.resultCode;\n this.tokenIndex = snapshot.tokenIndex;\n }\n\n /**\n * Remove and return the code generated since the snapshot, leaving the\n * current token position in-place. Unlike most TokenProcessor operations,\n * this operation can result in input/output line number mismatches because\n * the removed code may contain newlines, so this operation should be used\n * sparingly.\n */\n dangerouslyGetAndRemoveCodeSinceSnapshot(snapshot) {\n const result = this.resultCode.slice(snapshot.resultCode.length);\n this.resultCode = snapshot.resultCode;\n return result;\n }\n\n reset() {\n this.resultCode = \"\";\n this.resultMappings = new Array(this.tokens.length);\n this.tokenIndex = 0;\n }\n\n matchesContextualAtIndex(index, contextualKeyword) {\n return (\n this.matches1AtIndex(index, tt.name) &&\n this.tokens[index].contextualKeyword === contextualKeyword\n );\n }\n\n identifierNameAtIndex(index) {\n // TODO: We need to process escapes since technically you can have unicode escapes in variable\n // names.\n return this.identifierNameForToken(this.tokens[index]);\n }\n\n identifierNameAtRelativeIndex(relativeIndex) {\n return this.identifierNameForToken(this.tokenAtRelativeIndex(relativeIndex));\n }\n\n identifierName() {\n return this.identifierNameForToken(this.currentToken());\n }\n\n identifierNameForToken(token) {\n return this.code.slice(token.start, token.end);\n }\n\n rawCodeForToken(token) {\n return this.code.slice(token.start, token.end);\n }\n\n stringValueAtIndex(index) {\n return this.stringValueForToken(this.tokens[index]);\n }\n\n stringValue() {\n return this.stringValueForToken(this.currentToken());\n }\n\n stringValueForToken(token) {\n // This is used to identify when two imports are the same and to resolve TypeScript enum keys.\n // Ideally we'd process escapes within the strings, but for now we pretty much take the raw\n // code.\n return this.code.slice(token.start + 1, token.end - 1);\n }\n\n matches1AtIndex(index, t1) {\n return this.tokens[index].type === t1;\n }\n\n matches2AtIndex(index, t1, t2) {\n return this.tokens[index].type === t1 && this.tokens[index + 1].type === t2;\n }\n\n matches3AtIndex(index, t1, t2, t3) {\n return (\n this.tokens[index].type === t1 &&\n this.tokens[index + 1].type === t2 &&\n this.tokens[index + 2].type === t3\n );\n }\n\n matches1(t1) {\n return this.tokens[this.tokenIndex].type === t1;\n }\n\n matches2(t1, t2) {\n return this.tokens[this.tokenIndex].type === t1 && this.tokens[this.tokenIndex + 1].type === t2;\n }\n\n matches3(t1, t2, t3) {\n return (\n this.tokens[this.tokenIndex].type === t1 &&\n this.tokens[this.tokenIndex + 1].type === t2 &&\n this.tokens[this.tokenIndex + 2].type === t3\n );\n }\n\n matches4(t1, t2, t3, t4) {\n return (\n this.tokens[this.tokenIndex].type === t1 &&\n this.tokens[this.tokenIndex + 1].type === t2 &&\n this.tokens[this.tokenIndex + 2].type === t3 &&\n this.tokens[this.tokenIndex + 3].type === t4\n );\n }\n\n matches5(t1, t2, t3, t4, t5) {\n return (\n this.tokens[this.tokenIndex].type === t1 &&\n this.tokens[this.tokenIndex + 1].type === t2 &&\n this.tokens[this.tokenIndex + 2].type === t3 &&\n this.tokens[this.tokenIndex + 3].type === t4 &&\n this.tokens[this.tokenIndex + 4].type === t5\n );\n }\n\n matchesContextual(contextualKeyword) {\n return this.matchesContextualAtIndex(this.tokenIndex, contextualKeyword);\n }\n\n matchesContextIdAndLabel(type, contextId) {\n return this.matches1(type) && this.currentToken().contextId === contextId;\n }\n\n previousWhitespaceAndComments() {\n let whitespaceAndComments = this.code.slice(\n this.tokenIndex > 0 ? this.tokens[this.tokenIndex - 1].end : 0,\n this.tokenIndex < this.tokens.length ? this.tokens[this.tokenIndex].start : this.code.length,\n );\n if (this.isFlowEnabled) {\n whitespaceAndComments = whitespaceAndComments.replace(/@flow/g, \"\");\n }\n return whitespaceAndComments;\n }\n\n replaceToken(newCode) {\n this.resultCode += this.previousWhitespaceAndComments();\n this.appendTokenPrefix();\n this.resultMappings[this.tokenIndex] = this.resultCode.length;\n this.resultCode += newCode;\n this.appendTokenSuffix();\n this.tokenIndex++;\n }\n\n replaceTokenTrimmingLeftWhitespace(newCode) {\n this.resultCode += this.previousWhitespaceAndComments().replace(/[^\\r\\n]/g, \"\");\n this.appendTokenPrefix();\n this.resultMappings[this.tokenIndex] = this.resultCode.length;\n this.resultCode += newCode;\n this.appendTokenSuffix();\n this.tokenIndex++;\n }\n\n removeInitialToken() {\n this.replaceToken(\"\");\n }\n\n removeToken() {\n this.replaceTokenTrimmingLeftWhitespace(\"\");\n }\n\n /**\n * Remove all code until the next }, accounting for balanced braces.\n */\n removeBalancedCode() {\n let braceDepth = 0;\n while (!this.isAtEnd()) {\n if (this.matches1(tt.braceL)) {\n braceDepth++;\n } else if (this.matches1(tt.braceR)) {\n if (braceDepth === 0) {\n return;\n }\n braceDepth--;\n }\n this.removeToken();\n }\n }\n\n copyExpectedToken(tokenType) {\n if (this.tokens[this.tokenIndex].type !== tokenType) {\n throw new Error(`Expected token ${tokenType}`);\n }\n this.copyToken();\n }\n\n copyToken() {\n this.resultCode += this.previousWhitespaceAndComments();\n this.appendTokenPrefix();\n this.resultMappings[this.tokenIndex] = this.resultCode.length;\n this.resultCode += this.code.slice(\n this.tokens[this.tokenIndex].start,\n this.tokens[this.tokenIndex].end,\n );\n this.appendTokenSuffix();\n this.tokenIndex++;\n }\n\n copyTokenWithPrefix(prefix) {\n this.resultCode += this.previousWhitespaceAndComments();\n this.appendTokenPrefix();\n this.resultCode += prefix;\n this.resultMappings[this.tokenIndex] = this.resultCode.length;\n this.resultCode += this.code.slice(\n this.tokens[this.tokenIndex].start,\n this.tokens[this.tokenIndex].end,\n );\n this.appendTokenSuffix();\n this.tokenIndex++;\n }\n\n appendTokenPrefix() {\n const token = this.currentToken();\n if (token.numNullishCoalesceStarts || token.isOptionalChainStart) {\n token.isAsyncOperation = isAsyncOperation(this);\n }\n if (this.disableESTransforms) {\n return;\n }\n if (token.numNullishCoalesceStarts) {\n for (let i = 0; i < token.numNullishCoalesceStarts; i++) {\n if (token.isAsyncOperation) {\n this.resultCode += \"await \";\n this.resultCode += this.helperManager.getHelperName(\"asyncNullishCoalesce\");\n } else {\n this.resultCode += this.helperManager.getHelperName(\"nullishCoalesce\");\n }\n this.resultCode += \"(\";\n }\n }\n if (token.isOptionalChainStart) {\n if (token.isAsyncOperation) {\n this.resultCode += \"await \";\n }\n if (this.tokenIndex > 0 && this.tokenAtRelativeIndex(-1).type === tt._delete) {\n if (token.isAsyncOperation) {\n this.resultCode += this.helperManager.getHelperName(\"asyncOptionalChainDelete\");\n } else {\n this.resultCode += this.helperManager.getHelperName(\"optionalChainDelete\");\n }\n } else if (token.isAsyncOperation) {\n this.resultCode += this.helperManager.getHelperName(\"asyncOptionalChain\");\n } else {\n this.resultCode += this.helperManager.getHelperName(\"optionalChain\");\n }\n this.resultCode += \"([\";\n }\n }\n\n appendTokenSuffix() {\n const token = this.currentToken();\n if (token.isOptionalChainEnd && !this.disableESTransforms) {\n this.resultCode += \"])\";\n }\n if (token.numNullishCoalesceEnds && !this.disableESTransforms) {\n for (let i = 0; i < token.numNullishCoalesceEnds; i++) {\n this.resultCode += \"))\";\n }\n }\n }\n\n appendCode(code) {\n this.resultCode += code;\n }\n\n currentToken() {\n return this.tokens[this.tokenIndex];\n }\n\n currentTokenCode() {\n const token = this.currentToken();\n return this.code.slice(token.start, token.end);\n }\n\n tokenAtRelativeIndex(relativeIndex) {\n return this.tokens[this.tokenIndex + relativeIndex];\n }\n\n currentIndex() {\n return this.tokenIndex;\n }\n\n /**\n * Move to the next token. Only suitable in preprocessing steps. When\n * generating new code, you should use copyToken or removeToken.\n */\n nextToken() {\n if (this.tokenIndex === this.tokens.length) {\n throw new Error(\"Unexpectedly reached end of input.\");\n }\n this.tokenIndex++;\n }\n\n previousToken() {\n this.tokenIndex--;\n }\n\n finish() {\n if (this.tokenIndex !== this.tokens.length) {\n throw new Error(\"Tried to finish processing tokens before reaching the end.\");\n }\n this.resultCode += this.previousWhitespaceAndComments();\n return {code: this.resultCode, mappings: this.resultMappings};\n }\n\n isAtEnd() {\n return this.tokenIndex === this.tokens.length;\n }\n}\n","import {ContextualKeyword} from \"../parser/tokenizer/keywords\";\n\n\n/**\n * Determine whether this optional chain or nullish coalescing operation has any await statements in\n * it. If so, we'll need to transpile to an async operation.\n *\n * We compute this by walking the length of the operation and returning true if we see an await\n * keyword used as a real await (rather than an object key or property access). Nested optional\n * chain/nullish operations need to be tracked but don't silence await, but a nested async function\n * (or any other nested scope) will make the await not count.\n */\nexport default function isAsyncOperation(tokens) {\n let index = tokens.currentIndex();\n let depth = 0;\n const startToken = tokens.currentToken();\n do {\n const token = tokens.tokens[index];\n if (token.isOptionalChainStart) {\n depth++;\n }\n if (token.isOptionalChainEnd) {\n depth--;\n }\n depth += token.numNullishCoalesceStarts;\n depth -= token.numNullishCoalesceEnds;\n\n if (\n token.contextualKeyword === ContextualKeyword._await &&\n token.identifierRole == null &&\n token.scopeDepth === startToken.scopeDepth\n ) {\n return true;\n }\n index += 1;\n } while (depth > 0 && index < tokens.tokens.length);\n return false;\n}\n","\n\nimport {ContextualKeyword} from \"../parser/tokenizer/keywords\";\nimport {TokenType as tt} from \"../parser/tokenizer/types\";\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Get information about the class fields for this class, given a token processor pointing to the\n * open-brace at the start of the class.\n */\nexport default function getClassInfo(\n rootTransformer,\n tokens,\n nameManager,\n disableESTransforms,\n) {\n const snapshot = tokens.snapshot();\n\n const headerInfo = processClassHeader(tokens);\n\n let constructorInitializerStatements = [];\n const instanceInitializerNames = [];\n const staticInitializerNames = [];\n let constructorInsertPos = null;\n const fields = [];\n const rangesToRemove = [];\n\n const classContextId = tokens.currentToken().contextId;\n if (classContextId == null) {\n throw new Error(\"Expected non-null class context ID on class open-brace.\");\n }\n\n tokens.nextToken();\n while (!tokens.matchesContextIdAndLabel(tt.braceR, classContextId)) {\n if (tokens.matchesContextual(ContextualKeyword._constructor) && !tokens.currentToken().isType) {\n ({constructorInitializerStatements, constructorInsertPos} = processConstructor(tokens));\n } else if (tokens.matches1(tt.semi)) {\n if (!disableESTransforms) {\n rangesToRemove.push({start: tokens.currentIndex(), end: tokens.currentIndex() + 1});\n }\n tokens.nextToken();\n } else if (tokens.currentToken().isType) {\n tokens.nextToken();\n } else {\n // Either a method or a field. Skip to the identifier part.\n const statementStartIndex = tokens.currentIndex();\n let isStatic = false;\n let isESPrivate = false;\n let isDeclareOrAbstract = false;\n while (isAccessModifier(tokens.currentToken())) {\n if (tokens.matches1(tt._static)) {\n isStatic = true;\n }\n if (tokens.matches1(tt.hash)) {\n isESPrivate = true;\n }\n if (tokens.matches1(tt._declare) || tokens.matches1(tt._abstract)) {\n isDeclareOrAbstract = true;\n }\n tokens.nextToken();\n }\n if (isStatic && tokens.matches1(tt.braceL)) {\n // This is a static block, so don't process it in any special way.\n skipToNextClassElement(tokens, classContextId);\n continue;\n }\n if (isESPrivate) {\n // Sucrase doesn't attempt to transpile private fields; just leave them as-is.\n skipToNextClassElement(tokens, classContextId);\n continue;\n }\n if (\n tokens.matchesContextual(ContextualKeyword._constructor) &&\n !tokens.currentToken().isType\n ) {\n ({constructorInitializerStatements, constructorInsertPos} = processConstructor(tokens));\n continue;\n }\n\n const nameStartIndex = tokens.currentIndex();\n skipFieldName(tokens);\n if (tokens.matches1(tt.lessThan) || tokens.matches1(tt.parenL)) {\n // This is a method, so nothing to process.\n skipToNextClassElement(tokens, classContextId);\n continue;\n }\n // There might be a type annotation that we need to skip.\n while (tokens.currentToken().isType) {\n tokens.nextToken();\n }\n if (tokens.matches1(tt.eq)) {\n const equalsIndex = tokens.currentIndex();\n // This is an initializer, so we need to wrap in an initializer method.\n const valueEnd = tokens.currentToken().rhsEndIndex;\n if (valueEnd == null) {\n throw new Error(\"Expected rhsEndIndex on class field assignment.\");\n }\n tokens.nextToken();\n while (tokens.currentIndex() < valueEnd) {\n rootTransformer.processToken();\n }\n let initializerName;\n if (isStatic) {\n initializerName = nameManager.claimFreeName(\"__initStatic\");\n staticInitializerNames.push(initializerName);\n } else {\n initializerName = nameManager.claimFreeName(\"__init\");\n instanceInitializerNames.push(initializerName);\n }\n // Fields start at the name, so `static x = 1;` has a field range of `x = 1;`.\n fields.push({\n initializerName,\n equalsIndex,\n start: nameStartIndex,\n end: tokens.currentIndex(),\n });\n } else if (!disableESTransforms || isDeclareOrAbstract) {\n // This is a regular field declaration, like `x;`. With the class transform enabled, we just\n // remove the line so that no output is produced. With the class transform disabled, we\n // usually want to preserve the declaration (but still strip types), but if the `declare`\n // or `abstract` keyword is specified, we should remove the line to avoid initializing the\n // value to undefined.\n rangesToRemove.push({start: statementStartIndex, end: tokens.currentIndex()});\n }\n }\n }\n\n tokens.restoreToSnapshot(snapshot);\n if (disableESTransforms) {\n // With ES transforms disabled, we don't want to transform regular class\n // field declarations, and we don't need to do any additional tricks to\n // reference the constructor for static init, but we still need to transform\n // TypeScript field initializers defined as constructor parameters and we\n // still need to remove `declare` fields. For now, we run the same code\n // path but omit any field information, as if the class had no field\n // declarations. In the future, when we fully drop the class fields\n // transform, we can simplify this code significantly.\n return {\n headerInfo,\n constructorInitializerStatements,\n instanceInitializerNames: [],\n staticInitializerNames: [],\n constructorInsertPos,\n fields: [],\n rangesToRemove,\n };\n } else {\n return {\n headerInfo,\n constructorInitializerStatements,\n instanceInitializerNames,\n staticInitializerNames,\n constructorInsertPos,\n fields,\n rangesToRemove,\n };\n }\n}\n\n/**\n * Move the token processor to the next method/field in the class.\n *\n * To do that, we seek forward to the next start of a class name (either an open\n * bracket or an identifier, or the closing curly brace), then seek backward to\n * include any access modifiers.\n */\nfunction skipToNextClassElement(tokens, classContextId) {\n tokens.nextToken();\n while (tokens.currentToken().contextId !== classContextId) {\n tokens.nextToken();\n }\n while (isAccessModifier(tokens.tokenAtRelativeIndex(-1))) {\n tokens.previousToken();\n }\n}\n\nfunction processClassHeader(tokens) {\n const classToken = tokens.currentToken();\n const contextId = classToken.contextId;\n if (contextId == null) {\n throw new Error(\"Expected context ID on class token.\");\n }\n const isExpression = classToken.isExpression;\n if (isExpression == null) {\n throw new Error(\"Expected isExpression on class token.\");\n }\n let className = null;\n let hasSuperclass = false;\n tokens.nextToken();\n if (tokens.matches1(tt.name)) {\n className = tokens.identifierName();\n }\n while (!tokens.matchesContextIdAndLabel(tt.braceL, contextId)) {\n // If this has a superclass, there will always be an `extends` token. If it doesn't have a\n // superclass, only type parameters and `implements` clauses can show up here, all of which\n // consist only of type tokens. A declaration like `class A<B extends C> {` should *not* count\n // as having a superclass.\n if (tokens.matches1(tt._extends) && !tokens.currentToken().isType) {\n hasSuperclass = true;\n }\n tokens.nextToken();\n }\n return {isExpression, className, hasSuperclass};\n}\n\n/**\n * Extract useful information out of a constructor, starting at the \"constructor\" name.\n */\nfunction processConstructor(tokens)\n\n\n {\n const constructorInitializerStatements = [];\n\n tokens.nextToken();\n const constructorContextId = tokens.currentToken().contextId;\n if (constructorContextId == null) {\n throw new Error(\"Expected context ID on open-paren starting constructor params.\");\n }\n // Advance through parameters looking for access modifiers.\n while (!tokens.matchesContextIdAndLabel(tt.parenR, constructorContextId)) {\n if (tokens.currentToken().contextId === constructorContextId) {\n // Current token is an open paren or comma just before a param, so check\n // that param for access modifiers.\n tokens.nextToken();\n if (isAccessModifier(tokens.currentToken())) {\n tokens.nextToken();\n while (isAccessModifier(tokens.currentToken())) {\n tokens.nextToken();\n }\n const token = tokens.currentToken();\n if (token.type !== tt.name) {\n throw new Error(\"Expected identifier after access modifiers in constructor arg.\");\n }\n const name = tokens.identifierNameForToken(token);\n constructorInitializerStatements.push(`this.${name} = ${name}`);\n }\n } else {\n tokens.nextToken();\n }\n }\n // )\n tokens.nextToken();\n // Constructor type annotations are invalid, but skip them anyway since\n // they're easy to skip.\n while (tokens.currentToken().isType) {\n tokens.nextToken();\n }\n let constructorInsertPos = tokens.currentIndex();\n\n // Advance through body looking for a super call.\n let foundSuperCall = false;\n while (!tokens.matchesContextIdAndLabel(tt.braceR, constructorContextId)) {\n if (!foundSuperCall && tokens.matches2(tt._super, tt.parenL)) {\n tokens.nextToken();\n const superCallContextId = tokens.currentToken().contextId;\n if (superCallContextId == null) {\n throw new Error(\"Expected a context ID on the super call\");\n }\n while (!tokens.matchesContextIdAndLabel(tt.parenR, superCallContextId)) {\n tokens.nextToken();\n }\n constructorInsertPos = tokens.currentIndex();\n foundSuperCall = true;\n }\n tokens.nextToken();\n }\n // }\n tokens.nextToken();\n\n return {constructorInitializerStatements, constructorInsertPos};\n}\n\n/**\n * Determine if this is any token that can go before the name in a method/field.\n */\nfunction isAccessModifier(token) {\n return [\n tt._async,\n tt._get,\n tt._set,\n tt.plus,\n tt.minus,\n tt._readonly,\n tt._static,\n tt._public,\n tt._private,\n tt._protected,\n tt._override,\n tt._abstract,\n tt.star,\n tt._declare,\n tt.hash,\n ].includes(token.type);\n}\n\n/**\n * The next token or set of tokens is either an identifier or an expression in square brackets, for\n * a method or field name.\n */\nfunction skipFieldName(tokens) {\n if (tokens.matches1(tt.bracketL)) {\n const startToken = tokens.currentToken();\n const classContextId = startToken.contextId;\n if (classContextId == null) {\n throw new Error(\"Expected class context ID on computed name open bracket.\");\n }\n while (!tokens.matchesContextIdAndLabel(tt.bracketR, classContextId)) {\n tokens.nextToken();\n }\n tokens.nextToken();\n } else {\n tokens.nextToken();\n }\n}\n","import {TokenType as tt} from \"../parser/tokenizer/types\";\n\n\nexport default function elideImportEquals(tokens) {\n // import\n tokens.removeInitialToken();\n // name\n tokens.removeToken();\n // =\n tokens.removeToken();\n // name or require\n tokens.removeToken();\n // Handle either `import A = require('A')` or `import A = B.C.D`.\n if (tokens.matches1(tt.parenL)) {\n // (\n tokens.removeToken();\n // path string\n tokens.removeToken();\n // )\n tokens.removeToken();\n } else {\n while (tokens.matches1(tt.dot)) {\n // .\n tokens.removeToken();\n // name\n tokens.removeToken();\n }\n }\n}\n","import {isTopLevelDeclaration} from \"../parser/tokenizer\";\nimport {TokenType as tt} from \"../parser/tokenizer/types\";\n\n\n\n\n\n\n\nexport const EMPTY_DECLARATION_INFO = {\n typeDeclarations: new Set(),\n valueDeclarations: new Set(),\n};\n\n/**\n * Get all top-level identifiers that should be preserved when exported in TypeScript.\n *\n * Examples:\n * - If an identifier is declared as `const x`, then `export {x}` should be preserved.\n * - If it's declared as `type x`, then `export {x}` should be removed.\n * - If it's declared as both `const x` and `type x`, then the export should be preserved.\n * - Classes and enums should be preserved (even though they also introduce types).\n * - Imported identifiers should be preserved since we don't have enough information to\n * rule them out. --isolatedModules disallows re-exports, which catches errors here.\n */\nexport default function getDeclarationInfo(tokens) {\n const typeDeclarations = new Set();\n const valueDeclarations = new Set();\n for (let i = 0; i < tokens.tokens.length; i++) {\n const token = tokens.tokens[i];\n if (token.type === tt.name && isTopLevelDeclaration(token)) {\n if (token.isType) {\n typeDeclarations.add(tokens.identifierNameForToken(token));\n } else {\n valueDeclarations.add(tokens.identifierNameForToken(token));\n }\n }\n }\n return {typeDeclarations, valueDeclarations};\n}\n","import {ContextualKeyword} from \"../parser/tokenizer/keywords\";\nimport {TokenType as tt} from \"../parser/tokenizer/types\";\n\n\n/**\n * Starting at `export {`, look ahead and return `true` if this is an\n * `export {...} from` statement and `false` if this is a plain multi-export.\n */\nexport default function isExportFrom(tokens) {\n let closeBraceIndex = tokens.currentIndex();\n while (!tokens.matches1AtIndex(closeBraceIndex, tt.braceR)) {\n closeBraceIndex++;\n }\n return (\n tokens.matchesContextualAtIndex(closeBraceIndex + 1, ContextualKeyword._from) &&\n tokens.matches1AtIndex(closeBraceIndex + 2, tt.string)\n );\n}\n","import {ContextualKeyword} from \"../parser/tokenizer/keywords\";\nimport {TokenType as tt} from \"../parser/tokenizer/types\";\n\n\n/**\n * Starting at a potential `with` or (legacy) `assert` token, remove the import\n * attributes if they exist.\n */\nexport function removeMaybeImportAttributes(tokens) {\n if (\n tokens.matches2(tt._with, tt.braceL) ||\n (tokens.matches2(tt.name, tt.braceL) && tokens.matchesContextual(ContextualKeyword._assert))\n ) {\n // assert\n tokens.removeToken();\n // {\n tokens.removeToken();\n tokens.removeBalancedCode();\n // }\n tokens.removeToken();\n }\n}\n","import {TokenType as tt} from \"../parser/tokenizer/types\";\n\n\n\n/**\n * Common method sharing code between CJS and ESM cases, since they're the same here.\n */\nexport default function shouldElideDefaultExport(\n isTypeScriptTransformEnabled,\n keepUnusedImports,\n tokens,\n declarationInfo,\n) {\n if (!isTypeScriptTransformEnabled || keepUnusedImports) {\n return false;\n }\n const exportToken = tokens.currentToken();\n if (exportToken.rhsEndIndex == null) {\n throw new Error(\"Expected non-null rhsEndIndex on export token.\");\n }\n // The export must be of the form `export default a` or `export default a;`.\n const numTokens = exportToken.rhsEndIndex - tokens.currentIndex();\n if (\n numTokens !== 3 &&\n !(numTokens === 4 && tokens.matches1AtIndex(exportToken.rhsEndIndex - 1, tt.semi))\n ) {\n return false;\n }\n const identifierToken = tokens.tokenAtRelativeIndex(2);\n if (identifierToken.type !== tt.name) {\n return false;\n }\n const exportedName = tokens.identifierNameForToken(identifierToken);\n return (\n declarationInfo.typeDeclarations.has(exportedName) &&\n !declarationInfo.valueDeclarations.has(exportedName)\n );\n}\n","\n\n\nimport {IdentifierRole, isDeclaration, isObjectShorthandDeclaration} from \"../parser/tokenizer\";\nimport {ContextualKeyword} from \"../parser/tokenizer/keywords\";\nimport {TokenType as tt} from \"../parser/tokenizer/types\";\n\nimport elideImportEquals from \"../util/elideImportEquals\";\nimport getDeclarationInfo, {\n\n EMPTY_DECLARATION_INFO,\n} from \"../util/getDeclarationInfo\";\nimport getImportExportSpecifierInfo from \"../util/getImportExportSpecifierInfo\";\nimport isExportFrom from \"../util/isExportFrom\";\nimport {removeMaybeImportAttributes} from \"../util/removeMaybeImportAttributes\";\nimport shouldElideDefaultExport from \"../util/shouldElideDefaultExport\";\n\n\nimport Transformer from \"./Transformer\";\n\n/**\n * Class for editing import statements when we are transforming to commonjs.\n */\nexport default class CJSImportTransformer extends Transformer {\n __init() {this.hadExport = false}\n __init2() {this.hadNamedExport = false}\n __init3() {this.hadDefaultExport = false}\n \n\n constructor(\n rootTransformer,\n tokens,\n importProcessor,\n nameManager,\n helperManager,\n reactHotLoaderTransformer,\n enableLegacyBabel5ModuleInterop,\n enableLegacyTypeScriptModuleInterop,\n isTypeScriptTransformEnabled,\n isFlowTransformEnabled,\n preserveDynamicImport,\n keepUnusedImports,\n ) {\n super();this.rootTransformer = rootTransformer;this.tokens = tokens;this.importProcessor = importProcessor;this.nameManager = nameManager;this.helperManager = helperManager;this.reactHotLoaderTransformer = reactHotLoaderTransformer;this.enableLegacyBabel5ModuleInterop = enableLegacyBabel5ModuleInterop;this.enableLegacyTypeScriptModuleInterop = enableLegacyTypeScriptModuleInterop;this.isTypeScriptTransformEnabled = isTypeScriptTransformEnabled;this.isFlowTransformEnabled = isFlowTransformEnabled;this.preserveDynamicImport = preserveDynamicImport;this.keepUnusedImports = keepUnusedImports;CJSImportTransformer.prototype.__init.call(this);CJSImportTransformer.prototype.__init2.call(this);CJSImportTransformer.prototype.__init3.call(this);;\n this.declarationInfo = isTypeScriptTransformEnabled\n ? getDeclarationInfo(tokens)\n : EMPTY_DECLARATION_INFO;\n }\n\n getPrefixCode() {\n let prefix = \"\";\n if (this.hadExport) {\n prefix += 'Object.defineProperty(exports, \"__esModule\", {value: true});';\n }\n return prefix;\n }\n\n getSuffixCode() {\n if (this.enableLegacyBabel5ModuleInterop && this.hadDefaultExport && !this.hadNamedExport) {\n return \"\\nmodule.exports = exports.default;\\n\";\n }\n return \"\";\n }\n\n process() {\n // TypeScript `import foo = require('foo');` should always just be translated to plain require.\n if (this.tokens.matches3(tt._import, tt.name, tt.eq)) {\n return this.processImportEquals();\n }\n if (this.tokens.matches1(tt._import)) {\n this.processImport();\n return true;\n }\n if (this.tokens.matches2(tt._export, tt.eq)) {\n this.tokens.replaceToken(\"module.exports\");\n return true;\n }\n if (this.tokens.matches1(tt._export) && !this.tokens.currentToken().isType) {\n this.hadExport = true;\n return this.processExport();\n }\n if (this.tokens.matches2(tt.name, tt.postIncDec)) {\n // Fall through to normal identifier matching if this doesn't apply.\n if (this.processPostIncDec()) {\n return true;\n }\n }\n if (this.tokens.matches1(tt.name) || this.tokens.matches1(tt.jsxName)) {\n return this.processIdentifier();\n }\n if (this.tokens.matches1(tt.eq)) {\n return this.processAssignment();\n }\n if (this.tokens.matches1(tt.assign)) {\n return this.processComplexAssignment();\n }\n if (this.tokens.matches1(tt.preIncDec)) {\n return this.processPreIncDec();\n }\n return false;\n }\n\n processImportEquals() {\n const importName = this.tokens.identifierNameAtIndex(this.tokens.currentIndex() + 1);\n if (this.importProcessor.shouldAutomaticallyElideImportedName(importName)) {\n // If this name is only used as a type, elide the whole import.\n elideImportEquals(this.tokens);\n } else {\n // Otherwise, switch `import` to `const`.\n this.tokens.replaceToken(\"const\");\n }\n return true;\n }\n\n /**\n * Transform this:\n * import foo, {bar} from 'baz';\n * into\n * var _baz = require('baz'); var _baz2 = _interopRequireDefault(_baz);\n *\n * The import code was already generated in the import preprocessing step, so\n * we just need to look it up.\n */\n processImport() {\n if (this.tokens.matches2(tt._import, tt.parenL)) {\n if (this.preserveDynamicImport) {\n // Bail out, only making progress for this one token.\n this.tokens.copyToken();\n return;\n }\n const requireWrapper = this.enableLegacyTypeScriptModuleInterop\n ? \"\"\n : `${this.helperManager.getHelperName(\"interopRequireWildcard\")}(`;\n this.tokens.replaceToken(`Promise.resolve().then(() => ${requireWrapper}require`);\n const contextId = this.tokens.currentToken().contextId;\n if (contextId == null) {\n throw new Error(\"Expected context ID on dynamic import invocation.\");\n }\n this.tokens.copyToken();\n while (!this.tokens.matchesContextIdAndLabel(tt.parenR, contextId)) {\n this.rootTransformer.processToken();\n }\n this.tokens.replaceToken(requireWrapper ? \")))\" : \"))\");\n return;\n }\n\n const shouldElideImport = this.removeImportAndDetectIfShouldElide();\n if (shouldElideImport) {\n this.tokens.removeToken();\n } else {\n const path = this.tokens.stringValue();\n this.tokens.replaceTokenTrimmingLeftWhitespace(this.importProcessor.claimImportCode(path));\n this.tokens.appendCode(this.importProcessor.claimImportCode(path));\n }\n removeMaybeImportAttributes(this.tokens);\n if (this.tokens.matches1(tt.semi)) {\n this.tokens.removeToken();\n }\n }\n\n /**\n * Erase this import (since any CJS output would be completely different), and\n * return true if this import is should be elided due to being a type-only\n * import. Such imports will not be emitted at all to avoid side effects.\n *\n * Import elision only happens with the TypeScript or Flow transforms enabled.\n *\n * TODO: This function has some awkward overlap with\n * CJSImportProcessor.pruneTypeOnlyImports , and the two should be unified.\n * That function handles TypeScript implicit import name elision, and removes\n * an import if all typical imported names (without `type`) are removed due\n * to being type-only imports. This function handles Flow import removal and\n * properly distinguishes `import 'foo'` from `import {} from 'foo'` for TS\n * purposes.\n *\n * The position should end at the import string.\n */\n removeImportAndDetectIfShouldElide() {\n this.tokens.removeInitialToken();\n if (\n this.tokens.matchesContextual(ContextualKeyword._type) &&\n !this.tokens.matches1AtIndex(this.tokens.currentIndex() + 1, tt.comma) &&\n !this.tokens.matchesContextualAtIndex(this.tokens.currentIndex() + 1, ContextualKeyword._from)\n ) {\n // This is an \"import type\" statement, so exit early.\n this.removeRemainingImport();\n return true;\n }\n\n if (this.tokens.matches1(tt.name) || this.tokens.matches1(tt.star)) {\n // We have a default import or namespace import, so there must be some\n // non-type import.\n this.removeRemainingImport();\n return false;\n }\n\n if (this.tokens.matches1(tt.string)) {\n // This is a bare import, so we should proceed with the import.\n return false;\n }\n\n let foundNonTypeImport = false;\n let foundAnyNamedImport = false;\n while (!this.tokens.matches1(tt.string)) {\n // Check if any named imports are of the form \"foo\" or \"foo as bar\", with\n // no leading \"type\".\n if (\n (!foundNonTypeImport && this.tokens.matches1(tt.braceL)) ||\n this.tokens.matches1(tt.comma)\n ) {\n this.tokens.removeToken();\n if (!this.tokens.matches1(tt.braceR)) {\n foundAnyNamedImport = true;\n }\n if (\n this.tokens.matches2(tt.name, tt.comma) ||\n this.tokens.matches2(tt.name, tt.braceR) ||\n this.tokens.matches4(tt.name, tt.name, tt.name, tt.comma) ||\n this.tokens.matches4(tt.name, tt.name, tt.name, tt.braceR)\n ) {\n foundNonTypeImport = true;\n }\n }\n this.tokens.removeToken();\n }\n if (this.keepUnusedImports) {\n return false;\n }\n if (this.isTypeScriptTransformEnabled) {\n return !foundNonTypeImport;\n } else if (this.isFlowTransformEnabled) {\n // In Flow, unlike TS, `import {} from 'foo';` preserves the import.\n return foundAnyNamedImport && !foundNonTypeImport;\n } else {\n return false;\n }\n }\n\n removeRemainingImport() {\n while (!this.tokens.matches1(tt.string)) {\n this.tokens.removeToken();\n }\n }\n\n processIdentifier() {\n const token = this.tokens.currentToken();\n if (token.shadowsGlobal) {\n return false;\n }\n\n if (token.identifierRole === IdentifierRole.ObjectShorthand) {\n return this.processObjectShorthand();\n }\n\n if (token.identifierRole !== IdentifierRole.Access) {\n return false;\n }\n const replacement = this.importProcessor.getIdentifierReplacement(\n this.tokens.identifierNameForToken(token),\n );\n if (!replacement) {\n return false;\n }\n // Tolerate any number of closing parens while looking for an opening paren\n // that indicates a function call.\n let possibleOpenParenIndex = this.tokens.currentIndex() + 1;\n while (\n possibleOpenParenIndex < this.tokens.tokens.length &&\n this.tokens.tokens[possibleOpenParenIndex].type === tt.parenR\n ) {\n possibleOpenParenIndex++;\n }\n // Avoid treating imported functions as methods of their `exports` object\n // by using `(0, f)` when the identifier is in a paren expression. Else\n // use `Function.prototype.call` when the identifier is a guaranteed\n // function call. When using `call`, pass undefined as the context.\n if (this.tokens.tokens[possibleOpenParenIndex].type === tt.parenL) {\n if (\n this.tokens.tokenAtRelativeIndex(1).type === tt.parenL &&\n this.tokens.tokenAtRelativeIndex(-1).type !== tt._new\n ) {\n this.tokens.replaceToken(`${replacement}.call(void 0, `);\n // Remove the old paren.\n this.tokens.removeToken();\n // Balance out the new paren.\n this.rootTransformer.processBalancedCode();\n this.tokens.copyExpectedToken(tt.parenR);\n } else {\n // See here: http://2ality.com/2015/12/references.html\n this.tokens.replaceToken(`(0, ${replacement})`);\n }\n } else {\n this.tokens.replaceToken(replacement);\n }\n return true;\n }\n\n processObjectShorthand() {\n const identifier = this.tokens.identifierName();\n const replacement = this.importProcessor.getIdentifierReplacement(identifier);\n if (!replacement) {\n return false;\n }\n this.tokens.replaceToken(`${identifier}: ${replacement}`);\n return true;\n }\n\n processExport() {\n if (\n this.tokens.matches2(tt._export, tt._enum) ||\n this.tokens.matches3(tt._export, tt._const, tt._enum)\n ) {\n this.hadNamedExport = true;\n // Let the TypeScript transform handle it.\n return false;\n }\n if (this.tokens.matches2(tt._export, tt._default)) {\n if (this.tokens.matches3(tt._export, tt._default, tt._enum)) {\n this.hadDefaultExport = true;\n // Flow export default enums need some special handling, so handle them\n // in that tranform rather than this one.\n return false;\n }\n this.processExportDefault();\n return true;\n } else if (this.tokens.matches2(tt._export, tt.braceL)) {\n this.processExportBindings();\n return true;\n } else if (\n this.tokens.matches2(tt._export, tt.name) &&\n this.tokens.matchesContextualAtIndex(this.tokens.currentIndex() + 1, ContextualKeyword._type)\n ) {\n // export type {a};\n // export type {a as b};\n // export type {a} from './b';\n // export type * from './b';\n // export type * as ns from './b';\n this.tokens.removeInitialToken();\n this.tokens.removeToken();\n if (this.tokens.matches1(tt.braceL)) {\n while (!this.tokens.matches1(tt.braceR)) {\n this.tokens.removeToken();\n }\n this.tokens.removeToken();\n } else {\n // *\n this.tokens.removeToken();\n if (this.tokens.matches1(tt._as)) {\n // as\n this.tokens.removeToken();\n // ns\n this.tokens.removeToken();\n }\n }\n // Remove type re-export `... } from './T'`\n if (\n this.tokens.matchesContextual(ContextualKeyword._from) &&\n this.tokens.matches1AtIndex(this.tokens.currentIndex() + 1, tt.string)\n ) {\n this.tokens.removeToken();\n this.tokens.removeToken();\n removeMaybeImportAttributes(this.tokens);\n }\n return true;\n }\n this.hadNamedExport = true;\n if (\n this.tokens.matches2(tt._export, tt._var) ||\n this.tokens.matches2(tt._export, tt._let) ||\n this.tokens.matches2(tt._export, tt._const)\n ) {\n this.processExportVar();\n return true;\n } else if (\n this.tokens.matches2(tt._export, tt._function) ||\n // export async function\n this.tokens.matches3(tt._export, tt.name, tt._function)\n ) {\n this.processExportFunction();\n return true;\n } else if (\n this.tokens.matches2(tt._export, tt._class) ||\n this.tokens.matches3(tt._export, tt._abstract, tt._class) ||\n this.tokens.matches2(tt._export, tt.at)\n ) {\n this.processExportClass();\n return true;\n } else if (this.tokens.matches2(tt._export, tt.star)) {\n this.processExportStar();\n return true;\n } else {\n throw new Error(\"Unrecognized export syntax.\");\n }\n }\n\n processAssignment() {\n const index = this.tokens.currentIndex();\n const identifierToken = this.tokens.tokens[index - 1];\n // If the LHS is a type identifier, this must be a declaration like `let a: b = c;`,\n // with `b` as the identifier, so nothing needs to be done in that case.\n if (identifierToken.isType || identifierToken.type !== tt.name) {\n return false;\n }\n if (identifierToken.shadowsGlobal) {\n return false;\n }\n if (index >= 2 && this.tokens.matches1AtIndex(index - 2, tt.dot)) {\n return false;\n }\n if (index >= 2 && [tt._var, tt._let, tt._const].includes(this.tokens.tokens[index - 2].type)) {\n // Declarations don't need an extra assignment. This doesn't avoid the\n // assignment for comma-separated declarations, but it's still correct\n // since the assignment is just redundant.\n return false;\n }\n const assignmentSnippet = this.importProcessor.resolveExportBinding(\n this.tokens.identifierNameForToken(identifierToken),\n );\n if (!assignmentSnippet) {\n return false;\n }\n this.tokens.copyToken();\n this.tokens.appendCode(` ${assignmentSnippet} =`);\n return true;\n }\n\n /**\n * Process something like `a += 3`, where `a` might be an exported value.\n */\n processComplexAssignment() {\n const index = this.tokens.currentIndex();\n const identifierToken = this.tokens.tokens[index - 1];\n if (identifierToken.type !== tt.name) {\n return false;\n }\n if (identifierToken.shadowsGlobal) {\n return false;\n }\n if (index >= 2 && this.tokens.matches1AtIndex(index - 2, tt.dot)) {\n return false;\n }\n const assignmentSnippet = this.importProcessor.resolveExportBinding(\n this.tokens.identifierNameForToken(identifierToken),\n );\n if (!assignmentSnippet) {\n return false;\n }\n this.tokens.appendCode(` = ${assignmentSnippet}`);\n this.tokens.copyToken();\n return true;\n }\n\n /**\n * Process something like `++a`, where `a` might be an exported value.\n */\n processPreIncDec() {\n const index = this.tokens.currentIndex();\n const identifierToken = this.tokens.tokens[index + 1];\n if (identifierToken.type !== tt.name) {\n return false;\n }\n if (identifierToken.shadowsGlobal) {\n return false;\n }\n // Ignore things like ++a.b and ++a[b] and ++a().b.\n if (\n index + 2 < this.tokens.tokens.length &&\n (this.tokens.matches1AtIndex(index + 2, tt.dot) ||\n this.tokens.matches1AtIndex(index + 2, tt.bracketL) ||\n this.tokens.matches1AtIndex(index + 2, tt.parenL))\n ) {\n return false;\n }\n const identifierName = this.tokens.identifierNameForToken(identifierToken);\n const assignmentSnippet = this.importProcessor.resolveExportBinding(identifierName);\n if (!assignmentSnippet) {\n return false;\n }\n this.tokens.appendCode(`${assignmentSnippet} = `);\n this.tokens.copyToken();\n return true;\n }\n\n /**\n * Process something like `a++`, where `a` might be an exported value.\n * This starts at the `a`, not at the `++`.\n */\n processPostIncDec() {\n const index = this.tokens.currentIndex();\n const identifierToken = this.tokens.tokens[index];\n const operatorToken = this.tokens.tokens[index + 1];\n if (identifierToken.type !== tt.name) {\n return false;\n }\n if (identifierToken.shadowsGlobal) {\n return false;\n }\n if (index >= 1 && this.tokens.matches1AtIndex(index - 1, tt.dot)) {\n return false;\n }\n const identifierName = this.tokens.identifierNameForToken(identifierToken);\n const assignmentSnippet = this.importProcessor.resolveExportBinding(identifierName);\n if (!assignmentSnippet) {\n return false;\n }\n const operatorCode = this.tokens.rawCodeForToken(operatorToken);\n // We might also replace the identifier with something like exports.x, so\n // do that replacement here as well.\n const base = this.importProcessor.getIdentifierReplacement(identifierName) || identifierName;\n if (operatorCode === \"++\") {\n this.tokens.replaceToken(`(${base} = ${assignmentSnippet} = ${base} + 1, ${base} - 1)`);\n } else if (operatorCode === \"--\") {\n this.tokens.replaceToken(`(${base} = ${assignmentSnippet} = ${base} - 1, ${base} + 1)`);\n } else {\n throw new Error(`Unexpected operator: ${operatorCode}`);\n }\n this.tokens.removeToken();\n return true;\n }\n\n processExportDefault() {\n let exportedRuntimeValue = true;\n if (\n this.tokens.matches4(tt._export, tt._default, tt._function, tt.name) ||\n // export default async function\n (this.tokens.matches5(tt._export, tt._default, tt.name, tt._function, tt.name) &&\n this.tokens.matchesContextualAtIndex(\n this.tokens.currentIndex() + 2,\n ContextualKeyword._async,\n ))\n ) {\n this.tokens.removeInitialToken();\n this.tokens.removeToken();\n // Named function export case: change it to a top-level function\n // declaration followed by exports statement.\n const name = this.processNamedFunction();\n this.tokens.appendCode(` exports.default = ${name};`);\n } else if (\n this.tokens.matches4(tt._export, tt._default, tt._class, tt.name) ||\n this.tokens.matches5(tt._export, tt._default, tt._abstract, tt._class, tt.name) ||\n this.tokens.matches3(tt._export, tt._default, tt.at)\n ) {\n this.tokens.removeInitialToken();\n this.tokens.removeToken();\n this.copyDecorators();\n if (this.tokens.matches1(tt._abstract)) {\n this.tokens.removeToken();\n }\n const name = this.rootTransformer.processNamedClass();\n this.tokens.appendCode(` exports.default = ${name};`);\n // After this point, this is a plain \"export default E\" statement.\n } else if (\n shouldElideDefaultExport(\n this.isTypeScriptTransformEnabled,\n this.keepUnusedImports,\n this.tokens,\n this.declarationInfo,\n )\n ) {\n // If the exported value is just an identifier and should be elided by TypeScript\n // rules, then remove it entirely. It will always have the form `export default e`,\n // where `e` is an identifier.\n exportedRuntimeValue = false;\n this.tokens.removeInitialToken();\n this.tokens.removeToken();\n this.tokens.removeToken();\n } else if (this.reactHotLoaderTransformer) {\n // We need to assign E to a variable. Change \"export default E\" to\n // \"let _default; exports.default = _default = E\"\n const defaultVarName = this.nameManager.claimFreeName(\"_default\");\n this.tokens.replaceToken(`let ${defaultVarName}; exports.`);\n this.tokens.copyToken();\n this.tokens.appendCode(` = ${defaultVarName} =`);\n this.reactHotLoaderTransformer.setExtractedDefaultExportName(defaultVarName);\n } else {\n // Change \"export default E\" to \"exports.default = E\"\n this.tokens.replaceToken(\"exports.\");\n this.tokens.copyToken();\n this.tokens.appendCode(\" =\");\n }\n if (exportedRuntimeValue) {\n this.hadDefaultExport = true;\n }\n }\n\n copyDecorators() {\n while (this.tokens.matches1(tt.at)) {\n this.tokens.copyToken();\n if (this.tokens.matches1(tt.parenL)) {\n this.tokens.copyExpectedToken(tt.parenL);\n this.rootTransformer.processBalancedCode();\n this.tokens.copyExpectedToken(tt.parenR);\n } else {\n this.tokens.copyExpectedToken(tt.name);\n while (this.tokens.matches1(tt.dot)) {\n this.tokens.copyExpectedToken(tt.dot);\n this.tokens.copyExpectedToken(tt.name);\n }\n if (this.tokens.matches1(tt.parenL)) {\n this.tokens.copyExpectedToken(tt.parenL);\n this.rootTransformer.processBalancedCode();\n this.tokens.copyExpectedToken(tt.parenR);\n }\n }\n }\n }\n\n /**\n * Transform a declaration like `export var`, `export let`, or `export const`.\n */\n processExportVar() {\n if (this.isSimpleExportVar()) {\n this.processSimpleExportVar();\n } else {\n this.processComplexExportVar();\n }\n }\n\n /**\n * Determine if the export is of the form:\n * export var/let/const [varName] = [expr];\n * In other words, determine if function name inference might apply.\n */\n isSimpleExportVar() {\n let tokenIndex = this.tokens.currentIndex();\n // export\n tokenIndex++;\n // var/let/const\n tokenIndex++;\n if (!this.tokens.matches1AtIndex(tokenIndex, tt.name)) {\n return false;\n }\n tokenIndex++;\n while (tokenIndex < this.tokens.tokens.length && this.tokens.tokens[tokenIndex].isType) {\n tokenIndex++;\n }\n if (!this.tokens.matches1AtIndex(tokenIndex, tt.eq)) {\n return false;\n }\n return true;\n }\n\n /**\n * Transform an `export var` declaration initializing a single variable.\n *\n * For example, this:\n * export const f = () => {};\n * becomes this:\n * const f = () => {}; exports.f = f;\n *\n * The variable is unused (e.g. exports.f has the true value of the export).\n * We need to produce an assignment of this form so that the function will\n * have an inferred name of \"f\", which wouldn't happen in the more general\n * case below.\n */\n processSimpleExportVar() {\n // export\n this.tokens.removeInitialToken();\n // var/let/const\n this.tokens.copyToken();\n const varName = this.tokens.identifierName();\n // x: number -> x\n while (!this.tokens.matches1(tt.eq)) {\n this.rootTransformer.processToken();\n }\n const endIndex = this.tokens.currentToken().rhsEndIndex;\n if (endIndex == null) {\n throw new Error(\"Expected = token with an end index.\");\n }\n while (this.tokens.currentIndex() < endIndex) {\n this.rootTransformer.processToken();\n }\n this.tokens.appendCode(`; exports.${varName} = ${varName}`);\n }\n\n /**\n * Transform normal declaration exports, including handling destructuring.\n * For example, this:\n * export const {x: [a = 2, b], c} = d;\n * becomes this:\n * ({x: [exports.a = 2, exports.b], c: exports.c} = d;)\n */\n processComplexExportVar() {\n this.tokens.removeInitialToken();\n this.tokens.removeToken();\n const needsParens = this.tokens.matches1(tt.braceL);\n if (needsParens) {\n this.tokens.appendCode(\"(\");\n }\n\n let depth = 0;\n while (true) {\n if (\n this.tokens.matches1(tt.braceL) ||\n this.tokens.matches1(tt.dollarBraceL) ||\n this.tokens.matches1(tt.bracketL)\n ) {\n depth++;\n this.tokens.copyToken();\n } else if (this.tokens.matches1(tt.braceR) || this.tokens.matches1(tt.bracketR)) {\n depth--;\n this.tokens.copyToken();\n } else if (\n depth === 0 &&\n !this.tokens.matches1(tt.name) &&\n !this.tokens.currentToken().isType\n ) {\n break;\n } else if (this.tokens.matches1(tt.eq)) {\n // Default values might have assignments in the RHS that we want to ignore, so skip past\n // them.\n const endIndex = this.tokens.currentToken().rhsEndIndex;\n if (endIndex == null) {\n throw new Error(\"Expected = token with an end index.\");\n }\n while (this.tokens.currentIndex() < endIndex) {\n this.rootTransformer.processToken();\n }\n } else {\n const token = this.tokens.currentToken();\n if (isDeclaration(token)) {\n const name = this.tokens.identifierName();\n let replacement = this.importProcessor.getIdentifierReplacement(name);\n if (replacement === null) {\n throw new Error(`Expected a replacement for ${name} in \\`export var\\` syntax.`);\n }\n if (isObjectShorthandDeclaration(token)) {\n replacement = `${name}: ${replacement}`;\n }\n this.tokens.replaceToken(replacement);\n } else {\n this.rootTransformer.processToken();\n }\n }\n }\n\n if (needsParens) {\n // Seek to the end of the RHS.\n const endIndex = this.tokens.currentToken().rhsEndIndex;\n if (endIndex == null) {\n throw new Error(\"Expected = token with an end index.\");\n }\n while (this.tokens.currentIndex() < endIndex) {\n this.rootTransformer.processToken();\n }\n this.tokens.appendCode(\")\");\n }\n }\n\n /**\n * Transform this:\n * export function foo() {}\n * into this:\n * function foo() {} exports.foo = foo;\n */\n processExportFunction() {\n this.tokens.replaceToken(\"\");\n const name = this.processNamedFunction();\n this.tokens.appendCode(` exports.${name} = ${name};`);\n }\n\n /**\n * Skip past a function with a name and return that name.\n */\n processNamedFunction() {\n if (this.tokens.matches1(tt._function)) {\n this.tokens.copyToken();\n } else if (this.tokens.matches2(tt.name, tt._function)) {\n if (!this.tokens.matchesContextual(ContextualKeyword._async)) {\n throw new Error(\"Expected async keyword in function export.\");\n }\n this.tokens.copyToken();\n this.tokens.copyToken();\n }\n if (this.tokens.matches1(tt.star)) {\n this.tokens.copyToken();\n }\n if (!this.tokens.matches1(tt.name)) {\n throw new Error(\"Expected identifier for exported function name.\");\n }\n const name = this.tokens.identifierName();\n this.tokens.copyToken();\n if (this.tokens.currentToken().isType) {\n this.tokens.removeInitialToken();\n while (this.tokens.currentToken().isType) {\n this.tokens.removeToken();\n }\n }\n this.tokens.copyExpectedToken(tt.parenL);\n this.rootTransformer.processBalancedCode();\n this.tokens.copyExpectedToken(tt.parenR);\n this.rootTransformer.processPossibleTypeRange();\n this.tokens.copyExpectedToken(tt.braceL);\n this.rootTransformer.processBalancedCode();\n this.tokens.copyExpectedToken(tt.braceR);\n return name;\n }\n\n /**\n * Transform this:\n * export class A {}\n * into this:\n * class A {} exports.A = A;\n */\n processExportClass() {\n this.tokens.removeInitialToken();\n this.copyDecorators();\n if (this.tokens.matches1(tt._abstract)) {\n this.tokens.removeToken();\n }\n const name = this.rootTransformer.processNamedClass();\n this.tokens.appendCode(` exports.${name} = ${name};`);\n }\n\n /**\n * Transform this:\n * export {a, b as c};\n * into this:\n * exports.a = a; exports.c = b;\n *\n * OR\n *\n * Transform this:\n * export {a, b as c} from './foo';\n * into the pre-generated Object.defineProperty code from the ImportProcessor.\n *\n * For the first case, if the TypeScript transform is enabled, we need to skip\n * exports that are only defined as types.\n */\n processExportBindings() {\n this.tokens.removeInitialToken();\n this.tokens.removeToken();\n\n const isReExport = isExportFrom(this.tokens);\n\n const exportStatements = [];\n while (true) {\n if (this.tokens.matches1(tt.braceR)) {\n this.tokens.removeToken();\n break;\n }\n\n const specifierInfo = getImportExportSpecifierInfo(this.tokens);\n\n while (this.tokens.currentIndex() < specifierInfo.endIndex) {\n this.tokens.removeToken();\n }\n\n const shouldRemoveExport =\n specifierInfo.isType ||\n (!isReExport && this.shouldElideExportedIdentifier(specifierInfo.leftName));\n if (!shouldRemoveExport) {\n const exportedName = specifierInfo.rightName;\n if (exportedName === \"default\") {\n this.hadDefaultExport = true;\n } else {\n this.hadNamedExport = true;\n }\n const localName = specifierInfo.leftName;\n const newLocalName = this.importProcessor.getIdentifierReplacement(localName);\n exportStatements.push(`exports.${exportedName} = ${newLocalName || localName};`);\n }\n\n if (this.tokens.matches1(tt.braceR)) {\n this.tokens.removeToken();\n break;\n }\n if (this.tokens.matches2(tt.comma, tt.braceR)) {\n this.tokens.removeToken();\n this.tokens.removeToken();\n break;\n } else if (this.tokens.matches1(tt.comma)) {\n this.tokens.removeToken();\n } else {\n throw new Error(`Unexpected token: ${JSON.stringify(this.tokens.currentToken())}`);\n }\n }\n\n if (this.tokens.matchesContextual(ContextualKeyword._from)) {\n // This is an export...from, so throw away the normal named export code\n // and use the Object.defineProperty code from ImportProcessor.\n this.tokens.removeToken();\n const path = this.tokens.stringValue();\n this.tokens.replaceTokenTrimmingLeftWhitespace(this.importProcessor.claimImportCode(path));\n removeMaybeImportAttributes(this.tokens);\n } else {\n // This is a normal named export, so use that.\n this.tokens.appendCode(exportStatements.join(\" \"));\n }\n\n if (this.tokens.matches1(tt.semi)) {\n this.tokens.removeToken();\n }\n }\n\n processExportStar() {\n this.tokens.removeInitialToken();\n while (!this.tokens.matches1(tt.string)) {\n this.tokens.removeToken();\n }\n const path = this.tokens.stringValue();\n this.tokens.replaceTokenTrimmingLeftWhitespace(this.importProcessor.claimImportCode(path));\n removeMaybeImportAttributes(this.tokens);\n if (this.tokens.matches1(tt.semi)) {\n this.tokens.removeToken();\n }\n }\n\n shouldElideExportedIdentifier(name) {\n return (\n this.isTypeScriptTransformEnabled &&\n !this.keepUnusedImports &&\n !this.declarationInfo.valueDeclarations.has(name)\n );\n }\n}\n","\n\n\nimport {ContextualKeyword} from \"../parser/tokenizer/keywords\";\nimport {TokenType as tt} from \"../parser/tokenizer/types\";\n\nimport elideImportEquals from \"../util/elideImportEquals\";\nimport getDeclarationInfo, {\n\n EMPTY_DECLARATION_INFO,\n} from \"../util/getDeclarationInfo\";\nimport getImportExportSpecifierInfo from \"../util/getImportExportSpecifierInfo\";\nimport {getNonTypeIdentifiers} from \"../util/getNonTypeIdentifiers\";\nimport isExportFrom from \"../util/isExportFrom\";\nimport {removeMaybeImportAttributes} from \"../util/removeMaybeImportAttributes\";\nimport shouldElideDefaultExport from \"../util/shouldElideDefaultExport\";\n\nimport Transformer from \"./Transformer\";\n\n/**\n * Class for editing import statements when we are keeping the code as ESM. We still need to remove\n * type-only imports in TypeScript and Flow.\n */\nexport default class ESMImportTransformer extends Transformer {\n \n \n \n\n constructor(\n tokens,\n nameManager,\n helperManager,\n reactHotLoaderTransformer,\n isTypeScriptTransformEnabled,\n isFlowTransformEnabled,\n keepUnusedImports,\n options,\n ) {\n super();this.tokens = tokens;this.nameManager = nameManager;this.helperManager = helperManager;this.reactHotLoaderTransformer = reactHotLoaderTransformer;this.isTypeScriptTransformEnabled = isTypeScriptTransformEnabled;this.isFlowTransformEnabled = isFlowTransformEnabled;this.keepUnusedImports = keepUnusedImports;;\n this.nonTypeIdentifiers =\n isTypeScriptTransformEnabled && !keepUnusedImports\n ? getNonTypeIdentifiers(tokens, options)\n : new Set();\n this.declarationInfo =\n isTypeScriptTransformEnabled && !keepUnusedImports\n ? getDeclarationInfo(tokens)\n : EMPTY_DECLARATION_INFO;\n this.injectCreateRequireForImportRequire = Boolean(options.injectCreateRequireForImportRequire);\n }\n\n process() {\n // TypeScript `import foo = require('foo');` should always just be translated to plain require.\n if (this.tokens.matches3(tt._import, tt.name, tt.eq)) {\n return this.processImportEquals();\n }\n if (\n this.tokens.matches4(tt._import, tt.name, tt.name, tt.eq) &&\n this.tokens.matchesContextualAtIndex(this.tokens.currentIndex() + 1, ContextualKeyword._type)\n ) {\n // import type T = require('T')\n this.tokens.removeInitialToken();\n // This construct is always exactly 8 tokens long, so remove the 7 remaining tokens.\n for (let i = 0; i < 7; i++) {\n this.tokens.removeToken();\n }\n return true;\n }\n if (this.tokens.matches2(tt._export, tt.eq)) {\n this.tokens.replaceToken(\"module.exports\");\n return true;\n }\n if (\n this.tokens.matches5(tt._export, tt._import, tt.name, tt.name, tt.eq) &&\n this.tokens.matchesContextualAtIndex(this.tokens.currentIndex() + 2, ContextualKeyword._type)\n ) {\n // export import type T = require('T')\n this.tokens.removeInitialToken();\n // This construct is always exactly 9 tokens long, so remove the 8 remaining tokens.\n for (let i = 0; i < 8; i++) {\n this.tokens.removeToken();\n }\n return true;\n }\n if (this.tokens.matches1(tt._import)) {\n return this.processImport();\n }\n if (this.tokens.matches2(tt._export, tt._default)) {\n return this.processExportDefault();\n }\n if (this.tokens.matches2(tt._export, tt.braceL)) {\n return this.processNamedExports();\n }\n if (\n this.tokens.matches2(tt._export, tt.name) &&\n this.tokens.matchesContextualAtIndex(this.tokens.currentIndex() + 1, ContextualKeyword._type)\n ) {\n // export type {a};\n // export type {a as b};\n // export type {a} from './b';\n // export type * from './b';\n // export type * as ns from './b';\n this.tokens.removeInitialToken();\n this.tokens.removeToken();\n if (this.tokens.matches1(tt.braceL)) {\n while (!this.tokens.matches1(tt.braceR)) {\n this.tokens.removeToken();\n }\n this.tokens.removeToken();\n } else {\n // *\n this.tokens.removeToken();\n if (this.tokens.matches1(tt._as)) {\n // as\n this.tokens.removeToken();\n // ns\n this.tokens.removeToken();\n }\n }\n // Remove type re-export `... } from './T'`\n if (\n this.tokens.matchesContextual(ContextualKeyword._from) &&\n this.tokens.matches1AtIndex(this.tokens.currentIndex() + 1, tt.string)\n ) {\n this.tokens.removeToken();\n this.tokens.removeToken();\n removeMaybeImportAttributes(this.tokens);\n }\n return true;\n }\n return false;\n }\n\n processImportEquals() {\n const importName = this.tokens.identifierNameAtIndex(this.tokens.currentIndex() + 1);\n if (this.shouldAutomaticallyElideImportedName(importName)) {\n // If this name is only used as a type, elide the whole import.\n elideImportEquals(this.tokens);\n } else if (this.injectCreateRequireForImportRequire) {\n // We're using require in an environment (Node ESM) that doesn't provide\n // it as a global, so generate a helper to import it.\n // import -> const\n this.tokens.replaceToken(\"const\");\n // Foo\n this.tokens.copyToken();\n // =\n this.tokens.copyToken();\n // require\n this.tokens.replaceToken(this.helperManager.getHelperName(\"require\"));\n } else {\n // Otherwise, just switch `import` to `const`.\n this.tokens.replaceToken(\"const\");\n }\n return true;\n }\n\n processImport() {\n if (this.tokens.matches2(tt._import, tt.parenL)) {\n // Dynamic imports don't need to be transformed.\n return false;\n }\n\n const snapshot = this.tokens.snapshot();\n const allImportsRemoved = this.removeImportTypeBindings();\n if (allImportsRemoved) {\n this.tokens.restoreToSnapshot(snapshot);\n while (!this.tokens.matches1(tt.string)) {\n this.tokens.removeToken();\n }\n this.tokens.removeToken();\n removeMaybeImportAttributes(this.tokens);\n if (this.tokens.matches1(tt.semi)) {\n this.tokens.removeToken();\n }\n }\n return true;\n }\n\n /**\n * Remove type bindings from this import, leaving the rest of the import intact.\n *\n * Return true if this import was ONLY types, and thus is eligible for removal. This will bail out\n * of the replacement operation, so we can return early here.\n */\n removeImportTypeBindings() {\n this.tokens.copyExpectedToken(tt._import);\n if (\n this.tokens.matchesContextual(ContextualKeyword._type) &&\n !this.tokens.matches1AtIndex(this.tokens.currentIndex() + 1, tt.comma) &&\n !this.tokens.matchesContextualAtIndex(this.tokens.currentIndex() + 1, ContextualKeyword._from)\n ) {\n // This is an \"import type\" statement, so exit early.\n return true;\n }\n\n if (this.tokens.matches1(tt.string)) {\n // This is a bare import, so we should proceed with the import.\n this.tokens.copyToken();\n return false;\n }\n\n // Skip the \"module\" token in import reflection.\n if (\n this.tokens.matchesContextual(ContextualKeyword._module) &&\n this.tokens.matchesContextualAtIndex(this.tokens.currentIndex() + 2, ContextualKeyword._from)\n ) {\n this.tokens.copyToken();\n }\n\n let foundNonTypeImport = false;\n let foundAnyNamedImport = false;\n let needsComma = false;\n\n // Handle default import.\n if (this.tokens.matches1(tt.name)) {\n if (this.shouldAutomaticallyElideImportedName(this.tokens.identifierName())) {\n this.tokens.removeToken();\n if (this.tokens.matches1(tt.comma)) {\n this.tokens.removeToken();\n }\n } else {\n foundNonTypeImport = true;\n this.tokens.copyToken();\n if (this.tokens.matches1(tt.comma)) {\n // We're in a statement like:\n // import A, * as B from './A';\n // or\n // import A, {foo} from './A';\n // where the `A` is being kept. The comma should be removed if an only\n // if the next part of the import statement is elided, but that's hard\n // to determine at this point in the code. Instead, always remove it\n // and set a flag to add it back if necessary.\n needsComma = true;\n this.tokens.removeToken();\n }\n }\n }\n\n if (this.tokens.matches1(tt.star)) {\n if (this.shouldAutomaticallyElideImportedName(this.tokens.identifierNameAtRelativeIndex(2))) {\n this.tokens.removeToken();\n this.tokens.removeToken();\n this.tokens.removeToken();\n } else {\n if (needsComma) {\n this.tokens.appendCode(\",\");\n }\n foundNonTypeImport = true;\n this.tokens.copyExpectedToken(tt.star);\n this.tokens.copyExpectedToken(tt.name);\n this.tokens.copyExpectedToken(tt.name);\n }\n } else if (this.tokens.matches1(tt.braceL)) {\n if (needsComma) {\n this.tokens.appendCode(\",\");\n }\n this.tokens.copyToken();\n while (!this.tokens.matches1(tt.braceR)) {\n foundAnyNamedImport = true;\n const specifierInfo = getImportExportSpecifierInfo(this.tokens);\n if (\n specifierInfo.isType ||\n this.shouldAutomaticallyElideImportedName(specifierInfo.rightName)\n ) {\n while (this.tokens.currentIndex() < specifierInfo.endIndex) {\n this.tokens.removeToken();\n }\n if (this.tokens.matches1(tt.comma)) {\n this.tokens.removeToken();\n }\n } else {\n foundNonTypeImport = true;\n while (this.tokens.currentIndex() < specifierInfo.endIndex) {\n this.tokens.copyToken();\n }\n if (this.tokens.matches1(tt.comma)) {\n this.tokens.copyToken();\n }\n }\n }\n this.tokens.copyExpectedToken(tt.braceR);\n }\n\n if (this.keepUnusedImports) {\n return false;\n }\n if (this.isTypeScriptTransformEnabled) {\n return !foundNonTypeImport;\n } else if (this.isFlowTransformEnabled) {\n // In Flow, unlike TS, `import {} from 'foo';` preserves the import.\n return foundAnyNamedImport && !foundNonTypeImport;\n } else {\n return false;\n }\n }\n\n shouldAutomaticallyElideImportedName(name) {\n return (\n this.isTypeScriptTransformEnabled &&\n !this.keepUnusedImports &&\n !this.nonTypeIdentifiers.has(name)\n );\n }\n\n processExportDefault() {\n if (\n shouldElideDefaultExport(\n this.isTypeScriptTransformEnabled,\n this.keepUnusedImports,\n this.tokens,\n this.declarationInfo,\n )\n ) {\n // If the exported value is just an identifier and should be elided by TypeScript\n // rules, then remove it entirely. It will always have the form `export default e`,\n // where `e` is an identifier.\n this.tokens.removeInitialToken();\n this.tokens.removeToken();\n this.tokens.removeToken();\n return true;\n }\n\n const alreadyHasName =\n this.tokens.matches4(tt._export, tt._default, tt._function, tt.name) ||\n // export default async function\n (this.tokens.matches5(tt._export, tt._default, tt.name, tt._function, tt.name) &&\n this.tokens.matchesContextualAtIndex(\n this.tokens.currentIndex() + 2,\n ContextualKeyword._async,\n )) ||\n this.tokens.matches4(tt._export, tt._default, tt._class, tt.name) ||\n this.tokens.matches5(tt._export, tt._default, tt._abstract, tt._class, tt.name);\n\n if (!alreadyHasName && this.reactHotLoaderTransformer) {\n // This is a plain \"export default E\" statement and we need to assign E to a variable.\n // Change \"export default E\" to \"let _default; export default _default = E\"\n const defaultVarName = this.nameManager.claimFreeName(\"_default\");\n this.tokens.replaceToken(`let ${defaultVarName}; export`);\n this.tokens.copyToken();\n this.tokens.appendCode(` ${defaultVarName} =`);\n this.reactHotLoaderTransformer.setExtractedDefaultExportName(defaultVarName);\n return true;\n }\n return false;\n }\n\n /**\n * Handle a statement with one of these forms:\n * export {a, type b};\n * export {c, type d} from 'foo';\n *\n * In both cases, any explicit type exports should be removed. In the first\n * case, we also need to handle implicit export elision for names declared as\n * types. In the second case, we must NOT do implicit named export elision,\n * but we must remove the runtime import if all exports are type exports.\n */\n processNamedExports() {\n if (!this.isTypeScriptTransformEnabled) {\n return false;\n }\n this.tokens.copyExpectedToken(tt._export);\n this.tokens.copyExpectedToken(tt.braceL);\n\n const isReExport = isExportFrom(this.tokens);\n let foundNonTypeExport = false;\n while (!this.tokens.matches1(tt.braceR)) {\n const specifierInfo = getImportExportSpecifierInfo(this.tokens);\n if (\n specifierInfo.isType ||\n (!isReExport && this.shouldElideExportedName(specifierInfo.leftName))\n ) {\n // Type export, so remove all tokens, including any comma.\n while (this.tokens.currentIndex() < specifierInfo.endIndex) {\n this.tokens.removeToken();\n }\n if (this.tokens.matches1(tt.comma)) {\n this.tokens.removeToken();\n }\n } else {\n // Non-type export, so copy all tokens, including any comma.\n foundNonTypeExport = true;\n while (this.tokens.currentIndex() < specifierInfo.endIndex) {\n this.tokens.copyToken();\n }\n if (this.tokens.matches1(tt.comma)) {\n this.tokens.copyToken();\n }\n }\n }\n this.tokens.copyExpectedToken(tt.braceR);\n\n if (!this.keepUnusedImports && isReExport && !foundNonTypeExport) {\n // This is a type-only re-export, so skip evaluating the other module. Technically this\n // leaves the statement as `export {}`, but that's ok since that's a no-op.\n this.tokens.removeToken();\n this.tokens.removeToken();\n removeMaybeImportAttributes(this.tokens);\n }\n\n return true;\n }\n\n /**\n * ESM elides all imports with the rule that we only elide if we see that it's\n * a type and never see it as a value. This is in contrast to CJS, which\n * elides imports that are completely unknown.\n */\n shouldElideExportedName(name) {\n return (\n this.isTypeScriptTransformEnabled &&\n !this.keepUnusedImports &&\n this.declarationInfo.typeDeclarations.has(name) &&\n !this.declarationInfo.valueDeclarations.has(name)\n );\n }\n}\n","import {ContextualKeyword} from \"../parser/tokenizer/keywords\";\nimport {TokenType as tt} from \"../parser/tokenizer/types\";\n\n\nimport Transformer from \"./Transformer\";\n\nexport default class FlowTransformer extends Transformer {\n constructor(\n rootTransformer,\n tokens,\n isImportsTransformEnabled,\n ) {\n super();this.rootTransformer = rootTransformer;this.tokens = tokens;this.isImportsTransformEnabled = isImportsTransformEnabled;;\n }\n\n process() {\n if (\n this.rootTransformer.processPossibleArrowParamEnd() ||\n this.rootTransformer.processPossibleAsyncArrowWithTypeParams() ||\n this.rootTransformer.processPossibleTypeRange()\n ) {\n return true;\n }\n if (this.tokens.matches1(tt._enum)) {\n this.processEnum();\n return true;\n }\n if (this.tokens.matches2(tt._export, tt._enum)) {\n this.processNamedExportEnum();\n return true;\n }\n if (this.tokens.matches3(tt._export, tt._default, tt._enum)) {\n this.processDefaultExportEnum();\n return true;\n }\n return false;\n }\n\n /**\n * Handle a declaration like:\n * export enum E ...\n *\n * With this imports transform, this becomes:\n * const E = [[enum]]; exports.E = E;\n *\n * otherwise, it becomes:\n * export const E = [[enum]];\n */\n processNamedExportEnum() {\n if (this.isImportsTransformEnabled) {\n // export\n this.tokens.removeInitialToken();\n const enumName = this.tokens.identifierNameAtRelativeIndex(1);\n this.processEnum();\n this.tokens.appendCode(` exports.${enumName} = ${enumName};`);\n } else {\n this.tokens.copyToken();\n this.processEnum();\n }\n }\n\n /**\n * Handle a declaration like:\n * export default enum E\n *\n * With the imports transform, this becomes:\n * const E = [[enum]]; exports.default = E;\n *\n * otherwise, it becomes:\n * const E = [[enum]]; export default E;\n */\n processDefaultExportEnum() {\n // export\n this.tokens.removeInitialToken();\n // default\n this.tokens.removeToken();\n const enumName = this.tokens.identifierNameAtRelativeIndex(1);\n this.processEnum();\n if (this.isImportsTransformEnabled) {\n this.tokens.appendCode(` exports.default = ${enumName};`);\n } else {\n this.tokens.appendCode(` export default ${enumName};`);\n }\n }\n\n /**\n * Transpile flow enums to invoke the \"flow-enums-runtime\" library.\n *\n * Currently, the transpiled code always uses `require(\"flow-enums-runtime\")`,\n * but if future flexibility is needed, we could expose a config option for\n * this string (similar to configurable JSX). Even when targeting ESM, the\n * default behavior of babel-plugin-transform-flow-enums is to use require\n * rather than injecting an import.\n *\n * Flow enums are quite a bit simpler than TS enums and have some convenient\n * constraints:\n * - Element initializers must be either always present or always absent. That\n * means that we can use fixed lookahead on the first element (if any) and\n * assume that all elements are like that.\n * - The right-hand side of an element initializer must be a literal value,\n * not a complex expression and not referencing other elements. That means\n * we can simply copy a single token.\n *\n * Enums can be broken up into three basic cases:\n *\n * Mirrored enums:\n * enum E {A, B}\n * ->\n * const E = require(\"flow-enums-runtime\").Mirrored([\"A\", \"B\"]);\n *\n * Initializer enums:\n * enum E {A = 1, B = 2}\n * ->\n * const E = require(\"flow-enums-runtime\")({A: 1, B: 2});\n *\n * Symbol enums:\n * enum E of symbol {A, B}\n * ->\n * const E = require(\"flow-enums-runtime\")({A: Symbol(\"A\"), B: Symbol(\"B\")});\n *\n * We can statically detect which of the three cases this is by looking at the\n * \"of\" declaration (if any) and seeing if the first element has an initializer.\n * Since the other transform details are so similar between the three cases, we\n * use a single implementation and vary the transform within processEnumElement\n * based on case.\n */\n processEnum() {\n // enum E -> const E\n this.tokens.replaceToken(\"const\");\n this.tokens.copyExpectedToken(tt.name);\n\n let isSymbolEnum = false;\n if (this.tokens.matchesContextual(ContextualKeyword._of)) {\n this.tokens.removeToken();\n isSymbolEnum = this.tokens.matchesContextual(ContextualKeyword._symbol);\n this.tokens.removeToken();\n }\n const hasInitializers = this.tokens.matches3(tt.braceL, tt.name, tt.eq);\n this.tokens.appendCode(' = require(\"flow-enums-runtime\")');\n\n const isMirrored = !isSymbolEnum && !hasInitializers;\n this.tokens.replaceTokenTrimmingLeftWhitespace(isMirrored ? \".Mirrored([\" : \"({\");\n\n while (!this.tokens.matches1(tt.braceR)) {\n // ... is allowed at the end and has no runtime behavior.\n if (this.tokens.matches1(tt.ellipsis)) {\n this.tokens.removeToken();\n break;\n }\n this.processEnumElement(isSymbolEnum, hasInitializers);\n if (this.tokens.matches1(tt.comma)) {\n this.tokens.copyToken();\n }\n }\n\n this.tokens.replaceToken(isMirrored ? \"]);\" : \"});\");\n }\n\n /**\n * Process an individual enum element, producing either an array element or an\n * object element based on what type of enum this is.\n */\n processEnumElement(isSymbolEnum, hasInitializers) {\n if (isSymbolEnum) {\n // Symbol enums never have initializers and are expanded to object elements.\n // A, -> A: Symbol(\"A\"),\n const elementName = this.tokens.identifierName();\n this.tokens.copyToken();\n this.tokens.appendCode(`: Symbol(\"${elementName}\")`);\n } else if (hasInitializers) {\n // Initializers are expanded to object elements.\n // A = 1, -> A: 1,\n this.tokens.copyToken();\n this.tokens.replaceTokenTrimmingLeftWhitespace(\":\");\n this.tokens.copyToken();\n } else {\n // Enum elements without initializers become string literal array elements.\n // A, -> \"A\",\n this.tokens.replaceToken(`\"${this.tokens.identifierName()}\"`);\n }\n }\n}\n"," function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }\n\nimport {TokenType as tt} from \"../parser/tokenizer/types\";\n\n\nimport Transformer from \"./Transformer\";\n\nconst JEST_GLOBAL_NAME = \"jest\";\nconst HOISTED_METHODS = [\"mock\", \"unmock\", \"enableAutomock\", \"disableAutomock\"];\n\n/**\n * Implementation of babel-plugin-jest-hoist, which hoists up some jest method\n * calls above the imports to allow them to override other imports.\n *\n * To preserve line numbers, rather than directly moving the jest.mock code, we\n * wrap each invocation in a function statement and then call the function from\n * the top of the file.\n */\nexport default class JestHoistTransformer extends Transformer {\n __init() {this.hoistedFunctionNames = []}\n\n constructor(\n rootTransformer,\n tokens,\n nameManager,\n importProcessor,\n ) {\n super();this.rootTransformer = rootTransformer;this.tokens = tokens;this.nameManager = nameManager;this.importProcessor = importProcessor;JestHoistTransformer.prototype.__init.call(this);;\n }\n\n process() {\n if (\n this.tokens.currentToken().scopeDepth === 0 &&\n this.tokens.matches4(tt.name, tt.dot, tt.name, tt.parenL) &&\n this.tokens.identifierName() === JEST_GLOBAL_NAME\n ) {\n // TODO: This only works if imports transform is active, which it will be for jest.\n // But if jest adds module support and we no longer need the import transform, this needs fixing.\n if (_optionalChain([this, 'access', _ => _.importProcessor, 'optionalAccess', _2 => _2.getGlobalNames, 'call', _3 => _3(), 'optionalAccess', _4 => _4.has, 'call', _5 => _5(JEST_GLOBAL_NAME)])) {\n return false;\n }\n return this.extractHoistedCalls();\n }\n\n return false;\n }\n\n getHoistedCode() {\n if (this.hoistedFunctionNames.length > 0) {\n // This will be placed before module interop code, but that's fine since\n // imports aren't allowed in module mock factories.\n return this.hoistedFunctionNames.map((name) => `${name}();`).join(\"\");\n }\n return \"\";\n }\n\n /**\n * Extracts any methods calls on the jest-object that should be hoisted.\n *\n * According to the jest docs, https://jestjs.io/docs/en/jest-object#jestmockmodulename-factory-options,\n * mock, unmock, enableAutomock, disableAutomock, are the methods that should be hoisted.\n *\n * We do not apply the same checks of the arguments as babel-plugin-jest-hoist does.\n */\n extractHoistedCalls() {\n // We're handling a chain of calls where `jest` may or may not need to be inserted for each call\n // in the chain, so remove the initial `jest` to make the loop implementation cleaner.\n this.tokens.removeToken();\n // Track some state so that multiple non-hoisted chained calls in a row keep their chaining\n // syntax.\n let followsNonHoistedJestCall = false;\n\n // Iterate through all chained calls on the jest object.\n while (this.tokens.matches3(tt.dot, tt.name, tt.parenL)) {\n const methodName = this.tokens.identifierNameAtIndex(this.tokens.currentIndex() + 1);\n const shouldHoist = HOISTED_METHODS.includes(methodName);\n if (shouldHoist) {\n // We've matched e.g. `.mock(...)` or similar call.\n // Replace the initial `.` with `function __jestHoist(){jest.`\n const hoistedFunctionName = this.nameManager.claimFreeName(\"__jestHoist\");\n this.hoistedFunctionNames.push(hoistedFunctionName);\n this.tokens.replaceToken(`function ${hoistedFunctionName}(){${JEST_GLOBAL_NAME}.`);\n this.tokens.copyToken();\n this.tokens.copyToken();\n this.rootTransformer.processBalancedCode();\n this.tokens.copyExpectedToken(tt.parenR);\n this.tokens.appendCode(\";}\");\n followsNonHoistedJestCall = false;\n } else {\n // This is a non-hoisted method, so just transform the code as usual.\n if (followsNonHoistedJestCall) {\n // If we didn't hoist the previous call, we can leave the code as-is to chain off of the\n // previous method call. It's important to preserve the code here because we don't know\n // for sure that the method actually returned the jest object for chaining.\n this.tokens.copyToken();\n } else {\n // If we hoisted the previous call, we know it returns the jest object back, so we insert\n // the identifier `jest` to continue the chain.\n this.tokens.replaceToken(`${JEST_GLOBAL_NAME}.`);\n }\n this.tokens.copyToken();\n this.tokens.copyToken();\n this.rootTransformer.processBalancedCode();\n this.tokens.copyExpectedToken(tt.parenR);\n followsNonHoistedJestCall = true;\n }\n }\n\n return true;\n }\n}\n","import {TokenType as tt} from \"../parser/tokenizer/types\";\n\nimport Transformer from \"./Transformer\";\n\nexport default class NumericSeparatorTransformer extends Transformer {\n constructor( tokens) {\n super();this.tokens = tokens;;\n }\n\n process() {\n if (this.tokens.matches1(tt.num)) {\n const code = this.tokens.currentTokenCode();\n if (code.includes(\"_\")) {\n this.tokens.replaceToken(code.replace(/_/g, \"\"));\n return true;\n }\n }\n return false;\n }\n}\n","\nimport {TokenType as tt} from \"../parser/tokenizer/types\";\n\nimport Transformer from \"./Transformer\";\n\nexport default class OptionalCatchBindingTransformer extends Transformer {\n constructor( tokens, nameManager) {\n super();this.tokens = tokens;this.nameManager = nameManager;;\n }\n\n process() {\n if (this.tokens.matches2(tt._catch, tt.braceL)) {\n this.tokens.copyToken();\n this.tokens.appendCode(` (${this.nameManager.claimFreeName(\"e\")})`);\n return true;\n }\n return false;\n }\n}\n","\nimport {TokenType as tt} from \"../parser/tokenizer/types\";\n\nimport Transformer from \"./Transformer\";\n\n/**\n * Transformer supporting the optional chaining and nullish coalescing operators.\n *\n * Tech plan here:\n * https://github.com/alangpierce/sucrase/wiki/Sucrase-Optional-Chaining-and-Nullish-Coalescing-Technical-Plan\n *\n * The prefix and suffix code snippets are handled by TokenProcessor, and this transformer handles\n * the operators themselves.\n */\nexport default class OptionalChainingNullishTransformer extends Transformer {\n constructor( tokens, nameManager) {\n super();this.tokens = tokens;this.nameManager = nameManager;;\n }\n\n process() {\n if (this.tokens.matches1(tt.nullishCoalescing)) {\n const token = this.tokens.currentToken();\n if (this.tokens.tokens[token.nullishStartIndex].isAsyncOperation) {\n this.tokens.replaceTokenTrimmingLeftWhitespace(\", async () => (\");\n } else {\n this.tokens.replaceTokenTrimmingLeftWhitespace(\", () => (\");\n }\n return true;\n }\n if (this.tokens.matches1(tt._delete)) {\n const nextToken = this.tokens.tokenAtRelativeIndex(1);\n if (nextToken.isOptionalChainStart) {\n this.tokens.removeInitialToken();\n return true;\n }\n }\n const token = this.tokens.currentToken();\n const chainStart = token.subscriptStartIndex;\n if (\n chainStart != null &&\n this.tokens.tokens[chainStart].isOptionalChainStart &&\n // Super subscripts can't be optional (since super is never null/undefined), and the syntax\n // relies on the subscript being intact, so leave this token alone.\n this.tokens.tokenAtRelativeIndex(-1).type !== tt._super\n ) {\n const param = this.nameManager.claimFreeName(\"_\");\n let arrowStartSnippet;\n if (\n chainStart > 0 &&\n this.tokens.matches1AtIndex(chainStart - 1, tt._delete) &&\n this.isLastSubscriptInChain()\n ) {\n // Delete operations are special: we already removed the delete keyword, and to still\n // perform a delete, we need to insert a delete in the very last part of the chain, which\n // in correct code will always be a property access.\n arrowStartSnippet = `${param} => delete ${param}`;\n } else {\n arrowStartSnippet = `${param} => ${param}`;\n }\n if (this.tokens.tokens[chainStart].isAsyncOperation) {\n arrowStartSnippet = `async ${arrowStartSnippet}`;\n }\n if (\n this.tokens.matches2(tt.questionDot, tt.parenL) ||\n this.tokens.matches2(tt.questionDot, tt.lessThan)\n ) {\n if (this.justSkippedSuper()) {\n this.tokens.appendCode(\".bind(this)\");\n }\n this.tokens.replaceTokenTrimmingLeftWhitespace(`, 'optionalCall', ${arrowStartSnippet}`);\n } else if (this.tokens.matches2(tt.questionDot, tt.bracketL)) {\n this.tokens.replaceTokenTrimmingLeftWhitespace(`, 'optionalAccess', ${arrowStartSnippet}`);\n } else if (this.tokens.matches1(tt.questionDot)) {\n this.tokens.replaceTokenTrimmingLeftWhitespace(`, 'optionalAccess', ${arrowStartSnippet}.`);\n } else if (this.tokens.matches1(tt.dot)) {\n this.tokens.replaceTokenTrimmingLeftWhitespace(`, 'access', ${arrowStartSnippet}.`);\n } else if (this.tokens.matches1(tt.bracketL)) {\n this.tokens.replaceTokenTrimmingLeftWhitespace(`, 'access', ${arrowStartSnippet}[`);\n } else if (this.tokens.matches1(tt.parenL)) {\n if (this.justSkippedSuper()) {\n this.tokens.appendCode(\".bind(this)\");\n }\n this.tokens.replaceTokenTrimmingLeftWhitespace(`, 'call', ${arrowStartSnippet}(`);\n } else {\n throw new Error(\"Unexpected subscript operator in optional chain.\");\n }\n return true;\n }\n return false;\n }\n\n /**\n * Determine if the current token is the last of its chain, so that we know whether it's eligible\n * to have a delete op inserted.\n *\n * We can do this by walking forward until we determine one way or another. Each\n * isOptionalChainStart token must be paired with exactly one isOptionalChainEnd token after it in\n * a nesting way, so we can track depth and walk to the end of the chain (the point where the\n * depth goes negative) and see if any other subscript token is after us in the chain.\n */\n isLastSubscriptInChain() {\n let depth = 0;\n for (let i = this.tokens.currentIndex() + 1; ; i++) {\n if (i >= this.tokens.tokens.length) {\n throw new Error(\"Reached the end of the code while finding the end of the access chain.\");\n }\n if (this.tokens.tokens[i].isOptionalChainStart) {\n depth++;\n } else if (this.tokens.tokens[i].isOptionalChainEnd) {\n depth--;\n }\n if (depth < 0) {\n return true;\n }\n\n // This subscript token is a later one in the same chain.\n if (depth === 0 && this.tokens.tokens[i].subscriptStartIndex != null) {\n return false;\n }\n }\n }\n\n /**\n * Determine if we are the open-paren in an expression like super.a()?.b.\n *\n * We can do this by walking backward to find the previous subscript. If that subscript was\n * preceded by a super, then we must be the subscript after it, so if this is a call expression,\n * we'll need to attach the right context.\n */\n justSkippedSuper() {\n let depth = 0;\n let index = this.tokens.currentIndex() - 1;\n while (true) {\n if (index < 0) {\n throw new Error(\n \"Reached the start of the code while finding the start of the access chain.\",\n );\n }\n if (this.tokens.tokens[index].isOptionalChainStart) {\n depth--;\n } else if (this.tokens.tokens[index].isOptionalChainEnd) {\n depth++;\n }\n if (depth < 0) {\n return false;\n }\n\n // This subscript token is a later one in the same chain.\n if (depth === 0 && this.tokens.tokens[index].subscriptStartIndex != null) {\n return this.tokens.tokens[index - 1].type === tt._super;\n }\n index--;\n }\n }\n}\n","\n\nimport {IdentifierRole} from \"../parser/tokenizer\";\nimport {TokenType as tt} from \"../parser/tokenizer/types\";\n\n\nimport Transformer from \"./Transformer\";\n\n/**\n * Implementation of babel-plugin-transform-react-display-name, which adds a\n * display name to usages of React.createClass and createReactClass.\n */\nexport default class ReactDisplayNameTransformer extends Transformer {\n constructor(\n rootTransformer,\n tokens,\n importProcessor,\n options,\n ) {\n super();this.rootTransformer = rootTransformer;this.tokens = tokens;this.importProcessor = importProcessor;this.options = options;;\n }\n\n process() {\n const startIndex = this.tokens.currentIndex();\n if (this.tokens.identifierName() === \"createReactClass\") {\n const newName =\n this.importProcessor && this.importProcessor.getIdentifierReplacement(\"createReactClass\");\n if (newName) {\n this.tokens.replaceToken(`(0, ${newName})`);\n } else {\n this.tokens.copyToken();\n }\n this.tryProcessCreateClassCall(startIndex);\n return true;\n }\n if (\n this.tokens.matches3(tt.name, tt.dot, tt.name) &&\n this.tokens.identifierName() === \"React\" &&\n this.tokens.identifierNameAtIndex(this.tokens.currentIndex() + 2) === \"createClass\"\n ) {\n const newName = this.importProcessor\n ? this.importProcessor.getIdentifierReplacement(\"React\") || \"React\"\n : \"React\";\n if (newName) {\n this.tokens.replaceToken(newName);\n this.tokens.copyToken();\n this.tokens.copyToken();\n } else {\n this.tokens.copyToken();\n this.tokens.copyToken();\n this.tokens.copyToken();\n }\n this.tryProcessCreateClassCall(startIndex);\n return true;\n }\n return false;\n }\n\n /**\n * This is called with the token position at the open-paren.\n */\n tryProcessCreateClassCall(startIndex) {\n const displayName = this.findDisplayName(startIndex);\n if (!displayName) {\n return;\n }\n\n if (this.classNeedsDisplayName()) {\n this.tokens.copyExpectedToken(tt.parenL);\n this.tokens.copyExpectedToken(tt.braceL);\n this.tokens.appendCode(`displayName: '${displayName}',`);\n this.rootTransformer.processBalancedCode();\n this.tokens.copyExpectedToken(tt.braceR);\n this.tokens.copyExpectedToken(tt.parenR);\n }\n }\n\n findDisplayName(startIndex) {\n if (startIndex < 2) {\n return null;\n }\n if (this.tokens.matches2AtIndex(startIndex - 2, tt.name, tt.eq)) {\n // This is an assignment (or declaration) and the LHS is either an identifier or a member\n // expression ending in an identifier, so use that identifier name.\n return this.tokens.identifierNameAtIndex(startIndex - 2);\n }\n if (\n startIndex >= 2 &&\n this.tokens.tokens[startIndex - 2].identifierRole === IdentifierRole.ObjectKey\n ) {\n // This is an object literal value.\n return this.tokens.identifierNameAtIndex(startIndex - 2);\n }\n if (this.tokens.matches2AtIndex(startIndex - 2, tt._export, tt._default)) {\n return this.getDisplayNameFromFilename();\n }\n return null;\n }\n\n getDisplayNameFromFilename() {\n const filePath = this.options.filePath || \"unknown\";\n const pathSegments = filePath.split(\"/\");\n const filename = pathSegments[pathSegments.length - 1];\n const dotIndex = filename.lastIndexOf(\".\");\n const baseFilename = dotIndex === -1 ? filename : filename.slice(0, dotIndex);\n if (baseFilename === \"index\" && pathSegments[pathSegments.length - 2]) {\n return pathSegments[pathSegments.length - 2];\n } else {\n return baseFilename;\n }\n }\n\n /**\n * We only want to add a display name when this is a function call containing\n * one argument, which is an object literal without `displayName` as an\n * existing key.\n */\n classNeedsDisplayName() {\n let index = this.tokens.currentIndex();\n if (!this.tokens.matches2(tt.parenL, tt.braceL)) {\n return false;\n }\n // The block starts on the {, and we expect any displayName key to be in\n // that context. We need to ignore other other contexts to avoid matching\n // nested displayName keys.\n const objectStartIndex = index + 1;\n const objectContextId = this.tokens.tokens[objectStartIndex].contextId;\n if (objectContextId == null) {\n throw new Error(\"Expected non-null context ID on object open-brace.\");\n }\n\n for (; index < this.tokens.tokens.length; index++) {\n const token = this.tokens.tokens[index];\n if (token.type === tt.braceR && token.contextId === objectContextId) {\n index++;\n break;\n }\n\n if (\n this.tokens.identifierNameAtIndex(index) === \"displayName\" &&\n this.tokens.tokens[index].identifierRole === IdentifierRole.ObjectKey &&\n token.contextId === objectContextId\n ) {\n // We found a displayName key, so bail out.\n return false;\n }\n }\n\n if (index === this.tokens.tokens.length) {\n throw new Error(\"Unexpected end of input when processing React class.\");\n }\n\n // If we got this far, we know we have createClass with an object with no\n // display name, so we want to proceed as long as that was the only argument.\n return (\n this.tokens.matches1AtIndex(index, tt.parenR) ||\n this.tokens.matches2AtIndex(index, tt.comma, tt.parenR)\n );\n }\n}\n","import {IdentifierRole, isTopLevelDeclaration} from \"../parser/tokenizer\";\n\nimport Transformer from \"./Transformer\";\n\nexport default class ReactHotLoaderTransformer extends Transformer {\n __init() {this.extractedDefaultExportName = null}\n\n constructor( tokens, filePath) {\n super();this.tokens = tokens;this.filePath = filePath;ReactHotLoaderTransformer.prototype.__init.call(this);;\n }\n\n setExtractedDefaultExportName(extractedDefaultExportName) {\n this.extractedDefaultExportName = extractedDefaultExportName;\n }\n\n getPrefixCode() {\n return `\n (function () {\n var enterModule = require('react-hot-loader').enterModule;\n enterModule && enterModule(module);\n })();`\n .replace(/\\s+/g, \" \")\n .trim();\n }\n\n getSuffixCode() {\n const topLevelNames = new Set();\n for (const token of this.tokens.tokens) {\n if (\n !token.isType &&\n isTopLevelDeclaration(token) &&\n token.identifierRole !== IdentifierRole.ImportDeclaration\n ) {\n topLevelNames.add(this.tokens.identifierNameForToken(token));\n }\n }\n const namesToRegister = Array.from(topLevelNames).map((name) => ({\n variableName: name,\n uniqueLocalName: name,\n }));\n if (this.extractedDefaultExportName) {\n namesToRegister.push({\n variableName: this.extractedDefaultExportName,\n uniqueLocalName: \"default\",\n });\n }\n return `\n;(function () {\n var reactHotLoader = require('react-hot-loader').default;\n var leaveModule = require('react-hot-loader').leaveModule;\n if (!reactHotLoader) {\n return;\n }\n${namesToRegister\n .map(\n ({variableName, uniqueLocalName}) =>\n ` reactHotLoader.register(${variableName}, \"${uniqueLocalName}\", ${JSON.stringify(\n this.filePath || \"\",\n )});`,\n )\n .join(\"\\n\")}\n leaveModule(module);\n})();`;\n }\n\n process() {\n return false;\n }\n}\n","import {IS_IDENTIFIER_CHAR, IS_IDENTIFIER_START} from \"../parser/util/identifier\";\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar\n// Hard-code a list of reserved words rather than trying to use keywords or contextual keywords\n// from the parser, since currently there are various exceptions, like `package` being reserved\n// but unused and various contextual keywords being reserved. Note that we assume that all code\n// compiled by Sucrase is in a module, so strict mode words and await are all considered reserved\n// here.\nconst RESERVED_WORDS = new Set([\n // Reserved keywords as of ECMAScript 2015\n \"break\",\n \"case\",\n \"catch\",\n \"class\",\n \"const\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"delete\",\n \"do\",\n \"else\",\n \"export\",\n \"extends\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"import\",\n \"in\",\n \"instanceof\",\n \"new\",\n \"return\",\n \"super\",\n \"switch\",\n \"this\",\n \"throw\",\n \"try\",\n \"typeof\",\n \"var\",\n \"void\",\n \"while\",\n \"with\",\n \"yield\",\n // Future reserved keywords\n \"enum\",\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n \"await\",\n // Literals that cannot be used as identifiers\n \"false\",\n \"null\",\n \"true\",\n]);\n\n/**\n * Determine if the given name is a legal variable name.\n *\n * This is needed when transforming TypeScript enums; if an enum key is a valid\n * variable name, it might be referenced later in the enum, so we need to\n * declare a variable.\n */\nexport default function isIdentifier(name) {\n if (name.length === 0) {\n return false;\n }\n if (!IS_IDENTIFIER_START[name.charCodeAt(0)]) {\n return false;\n }\n for (let i = 1; i < name.length; i++) {\n if (!IS_IDENTIFIER_CHAR[name.charCodeAt(i)]) {\n return false;\n }\n }\n return !RESERVED_WORDS.has(name);\n}\n","\nimport {TokenType as tt} from \"../parser/tokenizer/types\";\n\nimport isIdentifier from \"../util/isIdentifier\";\n\nimport Transformer from \"./Transformer\";\n\nexport default class TypeScriptTransformer extends Transformer {\n constructor(\n rootTransformer,\n tokens,\n isImportsTransformEnabled,\n ) {\n super();this.rootTransformer = rootTransformer;this.tokens = tokens;this.isImportsTransformEnabled = isImportsTransformEnabled;;\n }\n\n process() {\n if (\n this.rootTransformer.processPossibleArrowParamEnd() ||\n this.rootTransformer.processPossibleAsyncArrowWithTypeParams() ||\n this.rootTransformer.processPossibleTypeRange()\n ) {\n return true;\n }\n if (\n this.tokens.matches1(tt._public) ||\n this.tokens.matches1(tt._protected) ||\n this.tokens.matches1(tt._private) ||\n this.tokens.matches1(tt._abstract) ||\n this.tokens.matches1(tt._readonly) ||\n this.tokens.matches1(tt._override) ||\n this.tokens.matches1(tt.nonNullAssertion)\n ) {\n this.tokens.removeInitialToken();\n return true;\n }\n if (this.tokens.matches1(tt._enum) || this.tokens.matches2(tt._const, tt._enum)) {\n this.processEnum();\n return true;\n }\n if (\n this.tokens.matches2(tt._export, tt._enum) ||\n this.tokens.matches3(tt._export, tt._const, tt._enum)\n ) {\n this.processEnum(true);\n return true;\n }\n return false;\n }\n\n processEnum(isExport = false) {\n // We might have \"export const enum\", so just remove all relevant tokens.\n this.tokens.removeInitialToken();\n while (this.tokens.matches1(tt._const) || this.tokens.matches1(tt._enum)) {\n this.tokens.removeToken();\n }\n const enumName = this.tokens.identifierName();\n this.tokens.removeToken();\n if (isExport && !this.isImportsTransformEnabled) {\n this.tokens.appendCode(\"export \");\n }\n this.tokens.appendCode(`var ${enumName}; (function (${enumName})`);\n this.tokens.copyExpectedToken(tt.braceL);\n this.processEnumBody(enumName);\n this.tokens.copyExpectedToken(tt.braceR);\n if (isExport && this.isImportsTransformEnabled) {\n this.tokens.appendCode(`)(${enumName} || (exports.${enumName} = ${enumName} = {}));`);\n } else {\n this.tokens.appendCode(`)(${enumName} || (${enumName} = {}));`);\n }\n }\n\n /**\n * Transform an enum into equivalent JS. This has complexity in a few places:\n * - TS allows string enums, numeric enums, and a mix of the two styles within an enum.\n * - Enum keys are allowed to be referenced in later enum values.\n * - Enum keys are allowed to be strings.\n * - When enum values are omitted, they should follow an auto-increment behavior.\n */\n processEnumBody(enumName) {\n // Code that can be used to reference the previous enum member, or null if this is the first\n // enum member.\n let previousValueCode = null;\n while (true) {\n if (this.tokens.matches1(tt.braceR)) {\n break;\n }\n const {nameStringCode, variableName} = this.extractEnumKeyInfo(this.tokens.currentToken());\n this.tokens.removeInitialToken();\n\n if (\n this.tokens.matches3(tt.eq, tt.string, tt.comma) ||\n this.tokens.matches3(tt.eq, tt.string, tt.braceR)\n ) {\n this.processStringLiteralEnumMember(enumName, nameStringCode, variableName);\n } else if (this.tokens.matches1(tt.eq)) {\n this.processExplicitValueEnumMember(enumName, nameStringCode, variableName);\n } else {\n this.processImplicitValueEnumMember(\n enumName,\n nameStringCode,\n variableName,\n previousValueCode,\n );\n }\n if (this.tokens.matches1(tt.comma)) {\n this.tokens.removeToken();\n }\n\n if (variableName != null) {\n previousValueCode = variableName;\n } else {\n previousValueCode = `${enumName}[${nameStringCode}]`;\n }\n }\n }\n\n /**\n * Detect name information about this enum key, which will be used to determine which code to emit\n * and whether we should declare a variable as part of this declaration.\n *\n * Some cases to keep in mind:\n * - Enum keys can be implicitly referenced later, e.g. `X = 1, Y = X`. In Sucrase, we implement\n * this by declaring a variable `X` so that later expressions can use it.\n * - In addition to the usual identifier key syntax, enum keys are allowed to be string literals,\n * e.g. `\"hello world\" = 3,`. Template literal syntax is NOT allowed.\n * - Even if the enum key is defined as a string literal, it may still be referenced by identifier\n * later, e.g. `\"X\" = 1, Y = X`. That means that we need to detect whether or not a string\n * literal is identifier-like and emit a variable if so, even if the declaration did not use an\n * identifier.\n * - Reserved keywords like `break` are valid enum keys, but are not valid to be referenced later\n * and would be a syntax error if we emitted a variable, so we need to skip the variable\n * declaration in those cases.\n *\n * The variableName return value captures these nuances: if non-null, we can and must emit a\n * variable declaration, and if null, we can't and shouldn't.\n */\n extractEnumKeyInfo(nameToken) {\n if (nameToken.type === tt.name) {\n const name = this.tokens.identifierNameForToken(nameToken);\n return {\n nameStringCode: `\"${name}\"`,\n variableName: isIdentifier(name) ? name : null,\n };\n } else if (nameToken.type === tt.string) {\n const name = this.tokens.stringValueForToken(nameToken);\n return {\n nameStringCode: this.tokens.code.slice(nameToken.start, nameToken.end),\n variableName: isIdentifier(name) ? name : null,\n };\n } else {\n throw new Error(\"Expected name or string at beginning of enum element.\");\n }\n }\n\n /**\n * Handle an enum member where the RHS is just a string literal (not omitted, not a number, and\n * not a complex expression). This is the typical form for TS string enums, and in this case, we\n * do *not* create a reverse mapping.\n *\n * This is called after deleting the key token, when the token processor is at the equals sign.\n *\n * Example 1:\n * someKey = \"some value\"\n * ->\n * const someKey = \"some value\"; MyEnum[\"someKey\"] = someKey;\n *\n * Example 2:\n * \"some key\" = \"some value\"\n * ->\n * MyEnum[\"some key\"] = \"some value\";\n */\n processStringLiteralEnumMember(\n enumName,\n nameStringCode,\n variableName,\n ) {\n if (variableName != null) {\n this.tokens.appendCode(`const ${variableName}`);\n // =\n this.tokens.copyToken();\n // value string\n this.tokens.copyToken();\n this.tokens.appendCode(`; ${enumName}[${nameStringCode}] = ${variableName};`);\n } else {\n this.tokens.appendCode(`${enumName}[${nameStringCode}]`);\n // =\n this.tokens.copyToken();\n // value string\n this.tokens.copyToken();\n this.tokens.appendCode(\";\");\n }\n }\n\n /**\n * Handle an enum member initialized with an expression on the right-hand side (other than a\n * string literal). In these cases, we should transform the expression and emit code that sets up\n * a reverse mapping.\n *\n * The TypeScript implementation of this operation distinguishes between expressions that can be\n * \"constant folded\" at compile time (i.e. consist of number literals and simple math operations\n * on those numbers) and ones that are dynamic. For constant expressions, it emits the resolved\n * numeric value, and auto-incrementing is only allowed in that case. Evaluating expressions at\n * compile time would add significant complexity to Sucrase, so Sucrase instead leaves the\n * expression as-is, and will later emit something like `MyEnum[\"previousKey\"] + 1` to implement\n * auto-incrementing.\n *\n * This is called after deleting the key token, when the token processor is at the equals sign.\n *\n * Example 1:\n * someKey = 1 + 1\n * ->\n * const someKey = 1 + 1; MyEnum[MyEnum[\"someKey\"] = someKey] = \"someKey\";\n *\n * Example 2:\n * \"some key\" = 1 + 1\n * ->\n * MyEnum[MyEnum[\"some key\"] = 1 + 1] = \"some key\";\n */\n processExplicitValueEnumMember(\n enumName,\n nameStringCode,\n variableName,\n ) {\n const rhsEndIndex = this.tokens.currentToken().rhsEndIndex;\n if (rhsEndIndex == null) {\n throw new Error(\"Expected rhsEndIndex on enum assign.\");\n }\n\n if (variableName != null) {\n this.tokens.appendCode(`const ${variableName}`);\n this.tokens.copyToken();\n while (this.tokens.currentIndex() < rhsEndIndex) {\n this.rootTransformer.processToken();\n }\n this.tokens.appendCode(\n `; ${enumName}[${enumName}[${nameStringCode}] = ${variableName}] = ${nameStringCode};`,\n );\n } else {\n this.tokens.appendCode(`${enumName}[${enumName}[${nameStringCode}]`);\n this.tokens.copyToken();\n while (this.tokens.currentIndex() < rhsEndIndex) {\n this.rootTransformer.processToken();\n }\n this.tokens.appendCode(`] = ${nameStringCode};`);\n }\n }\n\n /**\n * Handle an enum member with no right-hand side expression. In this case, the value is the\n * previous value plus 1, or 0 if there was no previous value. We should also always emit a\n * reverse mapping.\n *\n * Example 1:\n * someKey2\n * ->\n * const someKey2 = someKey1 + 1; MyEnum[MyEnum[\"someKey2\"] = someKey2] = \"someKey2\";\n *\n * Example 2:\n * \"some key 2\"\n * ->\n * MyEnum[MyEnum[\"some key 2\"] = someKey1 + 1] = \"some key 2\";\n */\n processImplicitValueEnumMember(\n enumName,\n nameStringCode,\n variableName,\n previousValueCode,\n ) {\n let valueCode = previousValueCode != null ? `${previousValueCode} + 1` : \"0\";\n if (variableName != null) {\n this.tokens.appendCode(`const ${variableName} = ${valueCode}; `);\n valueCode = variableName;\n }\n this.tokens.appendCode(\n `${enumName}[${enumName}[${nameStringCode}] = ${valueCode}] = ${nameStringCode};`,\n );\n }\n}\n","\n\n\nimport {ContextualKeyword} from \"../parser/tokenizer/keywords\";\nimport {TokenType as tt} from \"../parser/tokenizer/types\";\n\nimport getClassInfo, {} from \"../util/getClassInfo\";\nimport CJSImportTransformer from \"./CJSImportTransformer\";\nimport ESMImportTransformer from \"./ESMImportTransformer\";\nimport FlowTransformer from \"./FlowTransformer\";\nimport JestHoistTransformer from \"./JestHoistTransformer\";\nimport JSXTransformer from \"./JSXTransformer\";\nimport NumericSeparatorTransformer from \"./NumericSeparatorTransformer\";\nimport OptionalCatchBindingTransformer from \"./OptionalCatchBindingTransformer\";\nimport OptionalChainingNullishTransformer from \"./OptionalChainingNullishTransformer\";\nimport ReactDisplayNameTransformer from \"./ReactDisplayNameTransformer\";\nimport ReactHotLoaderTransformer from \"./ReactHotLoaderTransformer\";\n\nimport TypeScriptTransformer from \"./TypeScriptTransformer\";\n\n\n\n\n\n\n\n\nexport default class RootTransformer {\n __init() {this.transformers = []}\n \n \n __init2() {this.generatedVariables = []}\n \n \n \n \n\n constructor(\n sucraseContext,\n transforms,\n enableLegacyBabel5ModuleInterop,\n options,\n ) {;RootTransformer.prototype.__init.call(this);RootTransformer.prototype.__init2.call(this);\n this.nameManager = sucraseContext.nameManager;\n this.helperManager = sucraseContext.helperManager;\n const {tokenProcessor, importProcessor} = sucraseContext;\n this.tokens = tokenProcessor;\n this.isImportsTransformEnabled = transforms.includes(\"imports\");\n this.isReactHotLoaderTransformEnabled = transforms.includes(\"react-hot-loader\");\n this.disableESTransforms = Boolean(options.disableESTransforms);\n\n if (!options.disableESTransforms) {\n this.transformers.push(\n new OptionalChainingNullishTransformer(tokenProcessor, this.nameManager),\n );\n this.transformers.push(new NumericSeparatorTransformer(tokenProcessor));\n this.transformers.push(new OptionalCatchBindingTransformer(tokenProcessor, this.nameManager));\n }\n\n if (transforms.includes(\"jsx\")) {\n if (options.jsxRuntime !== \"preserve\") {\n this.transformers.push(\n new JSXTransformer(this, tokenProcessor, importProcessor, this.nameManager, options),\n );\n }\n this.transformers.push(\n new ReactDisplayNameTransformer(this, tokenProcessor, importProcessor, options),\n );\n }\n\n let reactHotLoaderTransformer = null;\n if (transforms.includes(\"react-hot-loader\")) {\n if (!options.filePath) {\n throw new Error(\"filePath is required when using the react-hot-loader transform.\");\n }\n reactHotLoaderTransformer = new ReactHotLoaderTransformer(tokenProcessor, options.filePath);\n this.transformers.push(reactHotLoaderTransformer);\n }\n\n // Note that we always want to enable the imports transformer, even when the import transform\n // itself isn't enabled, since we need to do type-only import pruning for both Flow and\n // TypeScript.\n if (transforms.includes(\"imports\")) {\n if (importProcessor === null) {\n throw new Error(\"Expected non-null importProcessor with imports transform enabled.\");\n }\n this.transformers.push(\n new CJSImportTransformer(\n this,\n tokenProcessor,\n importProcessor,\n this.nameManager,\n this.helperManager,\n reactHotLoaderTransformer,\n enableLegacyBabel5ModuleInterop,\n Boolean(options.enableLegacyTypeScriptModuleInterop),\n transforms.includes(\"typescript\"),\n transforms.includes(\"flow\"),\n Boolean(options.preserveDynamicImport),\n Boolean(options.keepUnusedImports),\n ),\n );\n } else {\n this.transformers.push(\n new ESMImportTransformer(\n tokenProcessor,\n this.nameManager,\n this.helperManager,\n reactHotLoaderTransformer,\n transforms.includes(\"typescript\"),\n transforms.includes(\"flow\"),\n Boolean(options.keepUnusedImports),\n options,\n ),\n );\n }\n\n if (transforms.includes(\"flow\")) {\n this.transformers.push(\n new FlowTransformer(this, tokenProcessor, transforms.includes(\"imports\")),\n );\n }\n if (transforms.includes(\"typescript\")) {\n this.transformers.push(\n new TypeScriptTransformer(this, tokenProcessor, transforms.includes(\"imports\")),\n );\n }\n if (transforms.includes(\"jest\")) {\n this.transformers.push(\n new JestHoistTransformer(this, tokenProcessor, this.nameManager, importProcessor),\n );\n }\n }\n\n transform() {\n this.tokens.reset();\n this.processBalancedCode();\n const shouldAddUseStrict = this.isImportsTransformEnabled;\n // \"use strict\" always needs to be first, so override the normal transformer order.\n let prefix = shouldAddUseStrict ? '\"use strict\";' : \"\";\n for (const transformer of this.transformers) {\n prefix += transformer.getPrefixCode();\n }\n prefix += this.helperManager.emitHelpers();\n prefix += this.generatedVariables.map((v) => ` var ${v};`).join(\"\");\n for (const transformer of this.transformers) {\n prefix += transformer.getHoistedCode();\n }\n let suffix = \"\";\n for (const transformer of this.transformers) {\n suffix += transformer.getSuffixCode();\n }\n const result = this.tokens.finish();\n let {code} = result;\n if (code.startsWith(\"#!\")) {\n let newlineIndex = code.indexOf(\"\\n\");\n if (newlineIndex === -1) {\n newlineIndex = code.length;\n code += \"\\n\";\n }\n return {\n code: code.slice(0, newlineIndex + 1) + prefix + code.slice(newlineIndex + 1) + suffix,\n // The hashbang line has no tokens, so shifting the tokens to account\n // for prefix can happen normally.\n mappings: this.shiftMappings(result.mappings, prefix.length),\n };\n } else {\n return {\n code: prefix + code + suffix,\n mappings: this.shiftMappings(result.mappings, prefix.length),\n };\n }\n }\n\n processBalancedCode() {\n let braceDepth = 0;\n let parenDepth = 0;\n while (!this.tokens.isAtEnd()) {\n if (this.tokens.matches1(tt.braceL) || this.tokens.matches1(tt.dollarBraceL)) {\n braceDepth++;\n } else if (this.tokens.matches1(tt.braceR)) {\n if (braceDepth === 0) {\n return;\n }\n braceDepth--;\n }\n if (this.tokens.matches1(tt.parenL)) {\n parenDepth++;\n } else if (this.tokens.matches1(tt.parenR)) {\n if (parenDepth === 0) {\n return;\n }\n parenDepth--;\n }\n this.processToken();\n }\n }\n\n processToken() {\n if (this.tokens.matches1(tt._class)) {\n this.processClass();\n return;\n }\n for (const transformer of this.transformers) {\n const wasProcessed = transformer.process();\n if (wasProcessed) {\n return;\n }\n }\n this.tokens.copyToken();\n }\n\n /**\n * Skip past a class with a name and return that name.\n */\n processNamedClass() {\n if (!this.tokens.matches2(tt._class, tt.name)) {\n throw new Error(\"Expected identifier for exported class name.\");\n }\n const name = this.tokens.identifierNameAtIndex(this.tokens.currentIndex() + 1);\n this.processClass();\n return name;\n }\n\n processClass() {\n const classInfo = getClassInfo(this, this.tokens, this.nameManager, this.disableESTransforms);\n\n // Both static and instance initializers need a class name to use to invoke the initializer, so\n // assign to one if necessary.\n const needsCommaExpression =\n (classInfo.headerInfo.isExpression || !classInfo.headerInfo.className) &&\n classInfo.staticInitializerNames.length + classInfo.instanceInitializerNames.length > 0;\n\n let className = classInfo.headerInfo.className;\n if (needsCommaExpression) {\n className = this.nameManager.claimFreeName(\"_class\");\n this.generatedVariables.push(className);\n this.tokens.appendCode(` (${className} =`);\n }\n\n const classToken = this.tokens.currentToken();\n const contextId = classToken.contextId;\n if (contextId == null) {\n throw new Error(\"Expected class to have a context ID.\");\n }\n this.tokens.copyExpectedToken(tt._class);\n while (!this.tokens.matchesContextIdAndLabel(tt.braceL, contextId)) {\n this.processToken();\n }\n\n this.processClassBody(classInfo, className);\n\n const staticInitializerStatements = classInfo.staticInitializerNames.map(\n (name) => `${className}.${name}()`,\n );\n if (needsCommaExpression) {\n this.tokens.appendCode(\n `, ${staticInitializerStatements.map((s) => `${s}, `).join(\"\")}${className})`,\n );\n } else if (classInfo.staticInitializerNames.length > 0) {\n this.tokens.appendCode(` ${staticInitializerStatements.map((s) => `${s};`).join(\" \")}`);\n }\n }\n\n /**\n * We want to just handle class fields in all contexts, since TypeScript supports them. Later,\n * when some JS implementations support class fields, this should be made optional.\n */\n processClassBody(classInfo, className) {\n const {\n headerInfo,\n constructorInsertPos,\n constructorInitializerStatements,\n fields,\n instanceInitializerNames,\n rangesToRemove,\n } = classInfo;\n let fieldIndex = 0;\n let rangeToRemoveIndex = 0;\n const classContextId = this.tokens.currentToken().contextId;\n if (classContextId == null) {\n throw new Error(\"Expected non-null context ID on class.\");\n }\n this.tokens.copyExpectedToken(tt.braceL);\n if (this.isReactHotLoaderTransformEnabled) {\n this.tokens.appendCode(\n \"__reactstandin__regenerateByEval(key, code) {this[key] = eval(code);}\",\n );\n }\n\n const needsConstructorInit =\n constructorInitializerStatements.length + instanceInitializerNames.length > 0;\n\n if (constructorInsertPos === null && needsConstructorInit) {\n const constructorInitializersCode = this.makeConstructorInitCode(\n constructorInitializerStatements,\n instanceInitializerNames,\n className,\n );\n if (headerInfo.hasSuperclass) {\n const argsName = this.nameManager.claimFreeName(\"args\");\n this.tokens.appendCode(\n `constructor(...${argsName}) { super(...${argsName}); ${constructorInitializersCode}; }`,\n );\n } else {\n this.tokens.appendCode(`constructor() { ${constructorInitializersCode}; }`);\n }\n }\n\n while (!this.tokens.matchesContextIdAndLabel(tt.braceR, classContextId)) {\n if (fieldIndex < fields.length && this.tokens.currentIndex() === fields[fieldIndex].start) {\n let needsCloseBrace = false;\n if (this.tokens.matches1(tt.bracketL)) {\n this.tokens.copyTokenWithPrefix(`${fields[fieldIndex].initializerName}() {this`);\n } else if (this.tokens.matches1(tt.string) || this.tokens.matches1(tt.num)) {\n this.tokens.copyTokenWithPrefix(`${fields[fieldIndex].initializerName}() {this[`);\n needsCloseBrace = true;\n } else {\n this.tokens.copyTokenWithPrefix(`${fields[fieldIndex].initializerName}() {this.`);\n }\n while (this.tokens.currentIndex() < fields[fieldIndex].end) {\n if (needsCloseBrace && this.tokens.currentIndex() === fields[fieldIndex].equalsIndex) {\n this.tokens.appendCode(\"]\");\n }\n this.processToken();\n }\n this.tokens.appendCode(\"}\");\n fieldIndex++;\n } else if (\n rangeToRemoveIndex < rangesToRemove.length &&\n this.tokens.currentIndex() >= rangesToRemove[rangeToRemoveIndex].start\n ) {\n if (this.tokens.currentIndex() < rangesToRemove[rangeToRemoveIndex].end) {\n this.tokens.removeInitialToken();\n }\n while (this.tokens.currentIndex() < rangesToRemove[rangeToRemoveIndex].end) {\n this.tokens.removeToken();\n }\n rangeToRemoveIndex++;\n } else if (this.tokens.currentIndex() === constructorInsertPos) {\n this.tokens.copyToken();\n if (needsConstructorInit) {\n this.tokens.appendCode(\n `;${this.makeConstructorInitCode(\n constructorInitializerStatements,\n instanceInitializerNames,\n className,\n )};`,\n );\n }\n this.processToken();\n } else {\n this.processToken();\n }\n }\n this.tokens.copyExpectedToken(tt.braceR);\n }\n\n makeConstructorInitCode(\n constructorInitializerStatements,\n instanceInitializerNames,\n className,\n ) {\n return [\n ...constructorInitializerStatements,\n ...instanceInitializerNames.map((name) => `${className}.prototype.${name}.call(this)`),\n ].join(\";\");\n }\n\n /**\n * Normally it's ok to simply remove type tokens, but we need to be more careful when dealing with\n * arrow function return types since they can confuse the parser. In that case, we want to move\n * the close-paren to the same line as the arrow.\n *\n * See https://github.com/alangpierce/sucrase/issues/391 for more details.\n */\n processPossibleArrowParamEnd() {\n if (this.tokens.matches2(tt.parenR, tt.colon) && this.tokens.tokenAtRelativeIndex(1).isType) {\n let nextNonTypeIndex = this.tokens.currentIndex() + 1;\n // Look ahead to see if this is an arrow function or something else.\n while (this.tokens.tokens[nextNonTypeIndex].isType) {\n nextNonTypeIndex++;\n }\n if (this.tokens.matches1AtIndex(nextNonTypeIndex, tt.arrow)) {\n this.tokens.removeInitialToken();\n while (this.tokens.currentIndex() < nextNonTypeIndex) {\n this.tokens.removeToken();\n }\n this.tokens.replaceTokenTrimmingLeftWhitespace(\") =>\");\n return true;\n }\n }\n return false;\n }\n\n /**\n * An async arrow function might be of the form:\n *\n * async <\n * T\n * >() => {}\n *\n * in which case, removing the type parameters will cause a syntax error. Detect this case and\n * move the open-paren earlier.\n */\n processPossibleAsyncArrowWithTypeParams() {\n if (\n !this.tokens.matchesContextual(ContextualKeyword._async) &&\n !this.tokens.matches1(tt._async)\n ) {\n return false;\n }\n const nextToken = this.tokens.tokenAtRelativeIndex(1);\n if (nextToken.type !== tt.lessThan || !nextToken.isType) {\n return false;\n }\n\n let nextNonTypeIndex = this.tokens.currentIndex() + 1;\n // Look ahead to see if this is an arrow function or something else.\n while (this.tokens.tokens[nextNonTypeIndex].isType) {\n nextNonTypeIndex++;\n }\n if (this.tokens.matches1AtIndex(nextNonTypeIndex, tt.parenL)) {\n this.tokens.replaceToken(\"async (\");\n this.tokens.removeInitialToken();\n while (this.tokens.currentIndex() < nextNonTypeIndex) {\n this.tokens.removeToken();\n }\n this.tokens.removeToken();\n // We ate a ( token, so we need to process the tokens in between and then the ) token so that\n // we remain balanced.\n this.processBalancedCode();\n this.processToken();\n return true;\n }\n return false;\n }\n\n processPossibleTypeRange() {\n if (this.tokens.currentToken().isType) {\n this.tokens.removeInitialToken();\n while (this.tokens.currentToken().isType) {\n this.tokens.removeToken();\n }\n return true;\n }\n return false;\n }\n\n shiftMappings(\n mappings,\n prefixLength,\n ) {\n for (let i = 0; i < mappings.length; i++) {\n const mapping = mappings[i];\n if (mapping !== undefined) {\n mappings[i] = mapping + prefixLength;\n }\n }\n return mappings;\n }\n}\n","import CJSImportProcessor from \"./CJSImportProcessor\";\nimport computeSourceMap, {} from \"./computeSourceMap\";\nimport {HelperManager} from \"./HelperManager\";\nimport identifyShadowedGlobals from \"./identifyShadowedGlobals\";\nimport NameManager from \"./NameManager\";\nimport {validateOptions} from \"./Options\";\n\nimport {parse} from \"./parser\";\n\nimport TokenProcessor from \"./TokenProcessor\";\nimport RootTransformer from \"./transformers/RootTransformer\";\nimport formatTokens from \"./util/formatTokens\";\nimport getTSImportedNames from \"./util/getTSImportedNames\";\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n;\n\nexport function getVersion() {\n /* istanbul ignore next */\n return \"3.35.1\";\n}\n\nexport function transform(code, options) {\n validateOptions(options);\n try {\n const sucraseContext = getSucraseContext(code, options);\n const transformer = new RootTransformer(\n sucraseContext,\n options.transforms,\n Boolean(options.enableLegacyBabel5ModuleInterop),\n options,\n );\n const transformerResult = transformer.transform();\n let result = {code: transformerResult.code};\n if (options.sourceMapOptions) {\n if (!options.filePath) {\n throw new Error(\"filePath must be specified when generating a source map.\");\n }\n result = {\n ...result,\n sourceMap: computeSourceMap(\n transformerResult,\n options.filePath,\n options.sourceMapOptions,\n code,\n sucraseContext.tokenProcessor.tokens,\n ),\n };\n }\n return result;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (e) {\n if (options.filePath) {\n e.message = `Error transforming ${options.filePath}: ${e.message}`;\n }\n throw e;\n }\n}\n\n/**\n * Return a string representation of the sucrase tokens, mostly useful for\n * diagnostic purposes.\n */\nexport function getFormattedTokens(code, options) {\n const tokens = getSucraseContext(code, options).tokenProcessor.tokens;\n return formatTokens(code, tokens);\n}\n\n/**\n * Call into the parser/tokenizer and do some further preprocessing:\n * - Come up with a set of used names so that we can assign new names.\n * - Preprocess all import/export statements so we know which globals we are interested in.\n * - Compute situations where any of those globals are shadowed.\n *\n * In the future, some of these preprocessing steps can be skipped based on what actual work is\n * being done.\n */\nfunction getSucraseContext(code, options) {\n const isJSXEnabled = options.transforms.includes(\"jsx\");\n const isTypeScriptEnabled = options.transforms.includes(\"typescript\");\n const isFlowEnabled = options.transforms.includes(\"flow\");\n const disableESTransforms = options.disableESTransforms === true;\n const file = parse(code, isJSXEnabled, isTypeScriptEnabled, isFlowEnabled);\n const tokens = file.tokens;\n const scopes = file.scopes;\n\n const nameManager = new NameManager(code, tokens);\n const helperManager = new HelperManager(nameManager);\n const tokenProcessor = new TokenProcessor(\n code,\n tokens,\n isFlowEnabled,\n disableESTransforms,\n helperManager,\n );\n const enableLegacyTypeScriptModuleInterop = Boolean(options.enableLegacyTypeScriptModuleInterop);\n\n let importProcessor = null;\n if (options.transforms.includes(\"imports\")) {\n importProcessor = new CJSImportProcessor(\n nameManager,\n tokenProcessor,\n enableLegacyTypeScriptModuleInterop,\n options,\n options.transforms.includes(\"typescript\"),\n Boolean(options.keepUnusedImports),\n helperManager,\n );\n importProcessor.preprocessTokens();\n // We need to mark shadowed globals after processing imports so we know that the globals are,\n // but before type-only import pruning, since that relies on shadowing information.\n identifyShadowedGlobals(tokenProcessor, scopes, importProcessor.getGlobalNames());\n if (options.transforms.includes(\"typescript\") && !options.keepUnusedImports) {\n importProcessor.pruneTypeOnlyImports();\n }\n } else if (options.transforms.includes(\"typescript\") && !options.keepUnusedImports) {\n // Shadowed global detection is needed for TS implicit elision of imported names.\n identifyShadowedGlobals(tokenProcessor, scopes, getTSImportedNames(tokenProcessor));\n }\n return {tokenProcessor, scopes, nameManager, importProcessor, helperManager};\n}\n","import {TokenType as tt} from \"../parser/tokenizer/types\";\n\nimport getImportExportSpecifierInfo from \"./getImportExportSpecifierInfo\";\n\n/**\n * Special case code to scan for imported names in ESM TypeScript. We need to do this so we can\n * properly get globals so we can compute shadowed globals.\n *\n * This is similar to logic in CJSImportProcessor, but trimmed down to avoid logic with CJS\n * replacement and flow type imports.\n */\nexport default function getTSImportedNames(tokens) {\n const importedNames = new Set();\n for (let i = 0; i < tokens.tokens.length; i++) {\n if (\n tokens.matches1AtIndex(i, tt._import) &&\n !tokens.matches3AtIndex(i, tt._import, tt.name, tt.eq)\n ) {\n collectNamesForImport(tokens, i, importedNames);\n }\n }\n return importedNames;\n}\n\nfunction collectNamesForImport(\n tokens,\n index,\n importedNames,\n) {\n index++;\n\n if (tokens.matches1AtIndex(index, tt.parenL)) {\n // Dynamic import, so nothing to do\n return;\n }\n\n if (tokens.matches1AtIndex(index, tt.name)) {\n importedNames.add(tokens.identifierNameAtIndex(index));\n index++;\n if (tokens.matches1AtIndex(index, tt.comma)) {\n index++;\n }\n }\n\n if (tokens.matches1AtIndex(index, tt.star)) {\n // * as\n index += 2;\n importedNames.add(tokens.identifierNameAtIndex(index));\n index++;\n }\n\n if (tokens.matches1AtIndex(index, tt.braceL)) {\n index++;\n collectNamesForNamedImport(tokens, index, importedNames);\n }\n}\n\nfunction collectNamesForNamedImport(\n tokens,\n index,\n importedNames,\n) {\n while (true) {\n if (tokens.matches1AtIndex(index, tt.braceR)) {\n return;\n }\n\n const specifierInfo = getImportExportSpecifierInfo(tokens, index);\n index = specifierInfo.endIndex;\n if (!specifierInfo.isType) {\n importedNames.add(specifierInfo.rightName);\n }\n\n if (tokens.matches2AtIndex(index, tt.comma, tt.braceR)) {\n return;\n } else if (tokens.matches1AtIndex(index, tt.braceR)) {\n return;\n } else if (tokens.matches1AtIndex(index, tt.comma)) {\n index++;\n } else {\n throw new Error(`Unexpected token: ${JSON.stringify(tokens.tokens[index])}`);\n }\n }\n}\n","import {GenMapping, maybeAddSegment, toEncodedMap} from \"@jridgewell/gen-mapping\";\n\n\n\nimport {charCodes} from \"./parser/util/charcodes\";\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Generate a source map indicating that each line maps directly to the original line,\n * with the tokens in their new positions.\n */\nexport default function computeSourceMap(\n {code: generatedCode, mappings: rawMappings},\n filePath,\n options,\n source,\n tokens,\n) {\n const sourceColumns = computeSourceColumns(source, tokens);\n const map = new GenMapping({file: options.compiledFilename});\n let tokenIndex = 0;\n // currentMapping is the output source index for the current input token being\n // considered.\n let currentMapping = rawMappings[0];\n while (currentMapping === undefined && tokenIndex < rawMappings.length - 1) {\n tokenIndex++;\n currentMapping = rawMappings[tokenIndex];\n }\n let line = 0;\n let lineStart = 0;\n if (currentMapping !== lineStart) {\n maybeAddSegment(map, line, 0, filePath, line, 0);\n }\n for (let i = 0; i < generatedCode.length; i++) {\n if (i === currentMapping) {\n const genColumn = currentMapping - lineStart;\n const sourceColumn = sourceColumns[tokenIndex];\n maybeAddSegment(map, line, genColumn, filePath, line, sourceColumn);\n while (\n (currentMapping === i || currentMapping === undefined) &&\n tokenIndex < rawMappings.length - 1\n ) {\n tokenIndex++;\n currentMapping = rawMappings[tokenIndex];\n }\n }\n if (generatedCode.charCodeAt(i) === charCodes.lineFeed) {\n line++;\n lineStart = i + 1;\n if (currentMapping !== lineStart) {\n maybeAddSegment(map, line, 0, filePath, line, 0);\n }\n }\n }\n const {sourceRoot, sourcesContent, ...sourceMap} = toEncodedMap(map);\n return sourceMap ;\n}\n\n/**\n * Create an array mapping each token index to the 0-based column of the start\n * position of the token.\n */\nfunction computeSourceColumns(code, tokens) {\n const sourceColumns = new Array(tokens.length);\n let tokenIndex = 0;\n let currentMapping = tokens[tokenIndex].start;\n let lineStart = 0;\n for (let i = 0; i < code.length; i++) {\n if (i === currentMapping) {\n sourceColumns[tokenIndex] = currentMapping - lineStart;\n tokenIndex++;\n currentMapping = tokens[tokenIndex].start;\n }\n if (code.charCodeAt(i) === charCodes.lineFeed) {\n lineStart = i + 1;\n }\n }\n return sourceColumns;\n}\n"],"names":[],"mappings":"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"}
|