diff --git a/examples/boilerplate-vue/package.json b/examples/boilerplate-vue/package.json index a03006b14cd6..c7eab2412f56 100644 --- a/examples/boilerplate-vue/package.json +++ b/examples/boilerplate-vue/package.json @@ -9,7 +9,7 @@ "e2e": "cypress run", "e2e:ci": "cross-env HMR=none PORT=5071 start-server-and-test dev http://localhost:5071/__umi/api/status cypress:ci", "e2e:open": "cypress open", - "preview": "max preview --port 6070", + "preview": "umi preview --port 6070", "setup": "umi setup", "start": "npm run dev" }, diff --git a/examples/test-vitest/package.json b/examples/test-vitest/package.json index bea7f6d0e38a..342d063f2b69 100644 --- a/examples/test-vitest/package.json +++ b/examples/test-vitest/package.json @@ -11,7 +11,7 @@ }, "devDependencies": { "@types/react-test-renderer": "^18.0.0", - "@vitejs/plugin-react": "1.2.0", + "@vitejs/plugin-react": "3.0.1", "react-test-renderer": "^18.2.0", "typescript": "^4.9.4", "vitest": "^0.16.0" diff --git a/examples/vite-e2e/.umirc.ts b/examples/vite-e2e/.umirc.ts index ea8a0ee2df67..a8e8185427d1 100644 --- a/examples/vite-e2e/.umirc.ts +++ b/examples/vite-e2e/.umirc.ts @@ -5,4 +5,7 @@ export default { alias: { '@xx/utils': resolve('utils/index.ts'), }, + targets: { + ie: 11, + }, }; diff --git a/packages/bundler-vite/compiled/@vitejs/plugin-legacy/186.index.cjs.js b/packages/bundler-vite/compiled/@vitejs/plugin-legacy/186.index.cjs.js deleted file mode 100644 index 668598ed7e82..000000000000 --- a/packages/bundler-vite/compiled/@vitejs/plugin-legacy/186.index.cjs.js +++ /dev/null @@ -1,124836 +0,0 @@ -exports.id = 186; -exports.ids = [186]; -exports.modules = { - -/***/ 186: -/***/ (function(__unused_webpack_module, exports) { - -(function (global, factory) { - true ? factory(exports) : - 0; -})(this, (function (exports) { 'use strict'; - - var _babel = /*#__PURE__*/Object.freeze({ - __proto__: null, - get version () { return version$3; }, - get types () { return t$8; }, - get DEFAULT_EXTENSIONS () { return DEFAULT_EXTENSIONS; }, - get OptionManager () { return OptionManager; }, - get Plugin () { return Plugin; }, - get File () { return File; }, - get buildExternalHelpers () { return babelBuildExternalHelpers; }, - get resolvePlugin () { return resolvePlugin; }, - get resolvePreset () { return resolvePreset; }, - get getEnv () { return getEnv; }, - get tokTypes () { return tokTypes; }, - get traverse () { return traverse; }, - get template () { return template$2; }, - get createConfigItem () { return createConfigItem; }, - get createConfigItemSync () { return createConfigItemSync; }, - get createConfigItemAsync () { return createConfigItemAsync; }, - get loadPartialConfig () { return loadPartialConfig; }, - get loadPartialConfigSync () { return loadPartialConfigSync; }, - get loadPartialConfigAsync () { return loadPartialConfigAsync; }, - get loadOptions () { return loadOptions; }, - get loadOptionsSync () { return loadOptionsSync; }, - get loadOptionsAsync () { return loadOptionsAsync; }, - get transform () { return transform$3; }, - get transformSync () { return transformSync; }, - get transformAsync () { return transformAsync; }, - get transformFile () { return transformFile; }, - get transformFileSync () { return transformFileSync; }, - get transformFileAsync () { return transformFileAsync; }, - get transformFromAst () { return transformFromAst$1; }, - get transformFromAstSync () { return transformFromAstSync; }, - get transformFromAstAsync () { return transformFromAstAsync; }, - get parse () { return parse$1; }, - get parseSync () { return parseSync; }, - get parseAsync () { return parseAsync; } - }); - - function _regeneratorRuntime() { - _regeneratorRuntime = function () { - 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 (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 (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 method = delegate.iterator[context.method]; - if (undefined === method) { - if (context.delegate = null, "throw" === context.method) { - if (delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; - context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); - } - return 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 (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 () { - this.done = !0; - var rootRecord = this.tryEntries[0].completion; - if ("throw" === rootRecord.type) throw rootRecord.arg; - return this.rval; - }, - dispatchException: function (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 (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 (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 (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 (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 (iterable, resultName, nextLoc) { - return this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }, "next" === this.method && (this.arg = undefined), ContinueSentinel; - } - }, exports; - } - function 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); - } - } - function _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); - }); - }; - } - function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; - } - function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true - } - }); - Object.defineProperty(subClass, "prototype", { - writable: false - }); - if (superClass) _setPrototypeOf(subClass, superClass); - } - function _getPrototypeOf(o) { - _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return _getPrototypeOf(o); - } - function _setPrototypeOf(o, p) { - _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - return _setPrototypeOf(o, p); - } - function _isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) return false; - if (Reflect.construct.sham) return false; - if (typeof Proxy === "function") return true; - try { - Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); - return true; - } catch (e) { - return false; - } - } - function _construct(Parent, args, Class) { - if (_isNativeReflectConstruct()) { - _construct = Reflect.construct.bind(); - } else { - _construct = function _construct(Parent, args, Class) { - var a = [null]; - a.push.apply(a, args); - var Constructor = Function.bind.apply(Parent, a); - var instance = new Constructor(); - if (Class) _setPrototypeOf(instance, Class.prototype); - return instance; - }; - } - return _construct.apply(null, arguments); - } - function _isNativeFunction(fn) { - return Function.toString.call(fn).indexOf("[native code]") !== -1; - } - function _wrapNativeSuper(Class) { - var _cache = typeof Map === "function" ? new Map() : undefined; - _wrapNativeSuper = function _wrapNativeSuper(Class) { - if (Class === null || !_isNativeFunction(Class)) return Class; - if (typeof Class !== "function") { - throw new TypeError("Super expression must either be null or a function"); - } - if (typeof _cache !== "undefined") { - if (_cache.has(Class)) return _cache.get(Class); - _cache.set(Class, Wrapper); - } - function Wrapper() { - return _construct(Class, arguments, _getPrototypeOf(this).constructor); - } - Wrapper.prototype = Object.create(Class.prototype, { - constructor: { - value: Wrapper, - enumerable: false, - writable: true, - configurable: true - } - }); - return _setPrototypeOf(Wrapper, Class); - }; - return _wrapNativeSuper(Class); - } - function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; - } - return target; - } - function _objectWithoutProperties(source, excluded) { - if (source == null) return {}; - var target = _objectWithoutPropertiesLoose(source, excluded); - var key, i; - if (Object.getOwnPropertySymbols) { - var sourceSymbolKeys = Object.getOwnPropertySymbols(source); - for (i = 0; i < sourceSymbolKeys.length; i++) { - key = sourceSymbolKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; - target[key] = source[key]; - } - } - return target; - } - function _assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - return self; - } - function _taggedTemplateLiteralLoose(strings, raw) { - if (!raw) { - raw = strings.slice(0); - } - strings.raw = raw; - return strings; - } - function _slicedToArray(arr, i) { - return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); - } - function _toConsumableArray(arr) { - return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); - } - function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) return _arrayLikeToArray(arr); - } - function _arrayWithHoles(arr) { - if (Array.isArray(arr)) return arr; - } - function _iterableToArray(iter) { - if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); - } - function _iterableToArrayLimit(arr, i) { - var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; - if (_i == null) return; - var _arr = []; - var _n = true; - var _d = false; - var _s, _e; - try { - for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { - _arr.push(_s.value); - if (i && _arr.length === i) break; - } - } catch (err) { - _d = true; - _e = err; - } finally { - try { - if (!_n && _i["return"] != null) _i["return"](); - } finally { - if (_d) throw _e; - } - } - return _arr; - } - function _unsupportedIterableToArray(o, minLen) { - if (!o) return; - if (typeof o === "string") return _arrayLikeToArray(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); - } - function _arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) len = arr.length; - for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; - return arr2; - } - function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - function _createForOfIteratorHelperLoose(o, allowArrayLike) { - var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; - if (it) return (it = it.call(o)).next.bind(it); - if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { - if (it) o = it; - var i = 0; - return function () { - if (i >= o.length) return { - done: true - }; - return { - done: false, - value: o[i++] - }; - }; - } - throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - - var ReferencedIdentifier$1 = ["Identifier", "JSXIdentifier"]; - var ReferencedMemberExpression = ["MemberExpression"]; - var BindingIdentifier = ["Identifier"]; - var Statement = ["Statement"]; - var Expression = ["Expression"]; - var Scope$2 = ["Scopable", "Pattern"]; - var Referenced = null; - var BlockScoped = null; - var Var = ["VariableDeclaration"]; - var User = null; - var Generated = null; - var Pure = null; - var Flow = ["Flow", "ImportDeclaration", "ExportDeclaration", "ImportSpecifier"]; - - var RestProperty$1 = ["RestElement"]; - var SpreadProperty$1 = ["RestElement"]; - var ExistentialTypeParam = ["ExistsTypeAnnotation"]; - var NumericLiteralTypeAnnotation = ["NumberLiteralTypeAnnotation"]; - var ForAwaitStatement = ["ForOfStatement"]; - - var virtualTypes = /*#__PURE__*/Object.freeze({ - __proto__: null, - ReferencedIdentifier: ReferencedIdentifier$1, - ReferencedMemberExpression: ReferencedMemberExpression, - BindingIdentifier: BindingIdentifier, - Statement: Statement, - Expression: Expression, - Scope: Scope$2, - Referenced: Referenced, - BlockScoped: BlockScoped, - Var: Var, - User: User, - Generated: Generated, - Pure: Pure, - Flow: Flow, - RestProperty: RestProperty$1, - SpreadProperty: SpreadProperty$1, - ExistentialTypeParam: ExistentialTypeParam, - NumericLiteralTypeAnnotation: NumericLiteralTypeAnnotation, - ForAwaitStatement: ForAwaitStatement - }); - - function shallowEqual$2(actual, expected) { - var keys = Object.keys(expected); - for (var _i = 0, _keys = keys; _i < _keys.length; _i++) { - var key = _keys[_i]; - if ( - actual[key] !== expected[key]) { - return false; - } - } - return true; - } - - function isArrayExpression$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ArrayExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isAssignmentExpression$4(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "AssignmentExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isBinaryExpression$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "BinaryExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isInterpreterDirective(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "InterpreterDirective") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isDirective(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "Directive") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isDirectiveLiteral(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "DirectiveLiteral") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isBlockStatement$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "BlockStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isBreakStatement(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "BreakStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isCallExpression$8(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "CallExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isCatchClause(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "CatchClause") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isConditionalExpression$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ConditionalExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isContinueStatement(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ContinueStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isDebuggerStatement(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "DebuggerStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isDoWhileStatement(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "DoWhileStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isEmptyStatement(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "EmptyStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isExpressionStatement$3(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ExpressionStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isFile(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "File") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isForInStatement$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ForInStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isForStatement$3(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ForStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isFunctionDeclaration$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "FunctionDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isFunctionExpression$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "FunctionExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isIdentifier$j(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "Identifier") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isIfStatement$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "IfStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isLabeledStatement(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "LabeledStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isStringLiteral$7(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "StringLiteral") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isNumericLiteral(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "NumericLiteral") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isNullLiteral$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "NullLiteral") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isBooleanLiteral(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "BooleanLiteral") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isRegExpLiteral$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "RegExpLiteral") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isLogicalExpression$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "LogicalExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isMemberExpression$8(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "MemberExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isNewExpression$4(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "NewExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isProgram$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "Program") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isObjectExpression$3(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ObjectExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isObjectMethod$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ObjectMethod") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isObjectProperty$6(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ObjectProperty") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isRestElement$3(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "RestElement") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isReturnStatement$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ReturnStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isSequenceExpression$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "SequenceExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isParenthesizedExpression$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ParenthesizedExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isSwitchCase(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "SwitchCase") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isSwitchStatement$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "SwitchStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isThisExpression$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ThisExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isThrowStatement$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ThrowStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTryStatement(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TryStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isUnaryExpression$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "UnaryExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isUpdateExpression$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "UpdateExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isVariableDeclaration$3(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "VariableDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isVariableDeclarator$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "VariableDeclarator") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isWhileStatement$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "WhileStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isWithStatement(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "WithStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isAssignmentPattern$5(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "AssignmentPattern") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isArrayPattern$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ArrayPattern") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isArrowFunctionExpression$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ArrowFunctionExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isClassBody$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ClassBody") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isClassExpression$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ClassExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isClassDeclaration$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ClassDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isExportAllDeclaration$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ExportAllDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isExportDefaultDeclaration$3(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ExportDefaultDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isExportNamedDeclaration$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ExportNamedDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isExportSpecifier(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ExportSpecifier") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isForOfStatement$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ForOfStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isImportDeclaration$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ImportDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isImportDefaultSpecifier$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ImportDefaultSpecifier") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isImportNamespaceSpecifier$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ImportNamespaceSpecifier") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isImportSpecifier$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ImportSpecifier") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isMetaProperty$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "MetaProperty") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isClassMethod$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ClassMethod") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isObjectPattern$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ObjectPattern") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isSpreadElement$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "SpreadElement") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isSuper$3(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "Super") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTaggedTemplateExpression$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TaggedTemplateExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTemplateElement(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TemplateElement") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTemplateLiteral$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TemplateLiteral") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isYieldExpression$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "YieldExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isAwaitExpression$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "AwaitExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isImport(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "Import") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isBigIntLiteral(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "BigIntLiteral") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isExportNamespaceSpecifier$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ExportNamespaceSpecifier") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isOptionalMemberExpression$3(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "OptionalMemberExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isOptionalCallExpression$3(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "OptionalCallExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isClassProperty(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ClassProperty") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isClassAccessorProperty(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ClassAccessorProperty") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isClassPrivateProperty(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ClassPrivateProperty") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isClassPrivateMethod(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ClassPrivateMethod") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isPrivateName$3(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "PrivateName") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isStaticBlock(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "StaticBlock") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isAnyTypeAnnotation$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "AnyTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isArrayTypeAnnotation$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ArrayTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isBooleanTypeAnnotation$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "BooleanTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isBooleanLiteralTypeAnnotation(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "BooleanLiteralTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isNullLiteralTypeAnnotation(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "NullLiteralTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isClassImplements(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ClassImplements") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isDeclareClass(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "DeclareClass") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isDeclareFunction(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "DeclareFunction") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isDeclareInterface(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "DeclareInterface") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isDeclareModule(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "DeclareModule") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isDeclareModuleExports(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "DeclareModuleExports") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isDeclareTypeAlias(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "DeclareTypeAlias") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isDeclareOpaqueType(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "DeclareOpaqueType") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isDeclareVariable(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "DeclareVariable") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isDeclareExportDeclaration$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "DeclareExportDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isDeclareExportAllDeclaration(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "DeclareExportAllDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isDeclaredPredicate(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "DeclaredPredicate") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isExistsTypeAnnotation(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ExistsTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isFunctionTypeAnnotation(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "FunctionTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isFunctionTypeParam(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "FunctionTypeParam") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isGenericTypeAnnotation$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "GenericTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isInferredPredicate(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "InferredPredicate") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isInterfaceExtends(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "InterfaceExtends") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isInterfaceDeclaration(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "InterfaceDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isInterfaceTypeAnnotation(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "InterfaceTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isIntersectionTypeAnnotation$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "IntersectionTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isMixedTypeAnnotation$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "MixedTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isEmptyTypeAnnotation$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "EmptyTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isNullableTypeAnnotation$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "NullableTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isNumberLiteralTypeAnnotation(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "NumberLiteralTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isNumberTypeAnnotation$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "NumberTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isObjectTypeAnnotation(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ObjectTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isObjectTypeInternalSlot(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ObjectTypeInternalSlot") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isObjectTypeCallProperty(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ObjectTypeCallProperty") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isObjectTypeIndexer(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ObjectTypeIndexer") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isObjectTypeProperty(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ObjectTypeProperty") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isObjectTypeSpreadProperty(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ObjectTypeSpreadProperty") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isOpaqueType(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "OpaqueType") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isQualifiedTypeIdentifier(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "QualifiedTypeIdentifier") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isStringLiteralTypeAnnotation(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "StringLiteralTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isStringTypeAnnotation$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "StringTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isSymbolTypeAnnotation(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "SymbolTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isThisTypeAnnotation(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ThisTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTupleTypeAnnotation$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TupleTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTypeofTypeAnnotation(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TypeofTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTypeAlias(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TypeAlias") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTypeAnnotation$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTypeCastExpression$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TypeCastExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTypeParameter(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TypeParameter") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTypeParameterDeclaration(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TypeParameterDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTypeParameterInstantiation(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TypeParameterInstantiation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isUnionTypeAnnotation$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "UnionTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isVariance(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "Variance") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isVoidTypeAnnotation$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "VoidTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isEnumDeclaration(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "EnumDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isEnumBooleanBody(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "EnumBooleanBody") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isEnumNumberBody(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "EnumNumberBody") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isEnumStringBody(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "EnumStringBody") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isEnumSymbolBody(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "EnumSymbolBody") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isEnumBooleanMember(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "EnumBooleanMember") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isEnumNumberMember(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "EnumNumberMember") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isEnumStringMember(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "EnumStringMember") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isEnumDefaultedMember(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "EnumDefaultedMember") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isIndexedAccessType$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "IndexedAccessType") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isOptionalIndexedAccessType(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "OptionalIndexedAccessType") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isJSXAttribute(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "JSXAttribute") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isJSXClosingElement(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "JSXClosingElement") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isJSXElement(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "JSXElement") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isJSXEmptyExpression(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "JSXEmptyExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isJSXExpressionContainer$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "JSXExpressionContainer") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isJSXSpreadChild(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "JSXSpreadChild") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isJSXIdentifier$3(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "JSXIdentifier") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isJSXMemberExpression$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "JSXMemberExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isJSXNamespacedName$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "JSXNamespacedName") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isJSXOpeningElement(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "JSXOpeningElement") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isJSXSpreadAttribute$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "JSXSpreadAttribute") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isJSXText(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "JSXText") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isJSXFragment(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "JSXFragment") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isJSXOpeningFragment(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "JSXOpeningFragment") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isJSXClosingFragment(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "JSXClosingFragment") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isNoop(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "Noop") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isPlaceholder$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "Placeholder") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isV8IntrinsicIdentifier(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "V8IntrinsicIdentifier") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isArgumentPlaceholder(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ArgumentPlaceholder") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isBindExpression(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "BindExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isImportAttribute(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ImportAttribute") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isDecorator(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "Decorator") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isDoExpression(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "DoExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isExportDefaultSpecifier$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ExportDefaultSpecifier") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isRecordExpression$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "RecordExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTupleExpression$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TupleExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isDecimalLiteral(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "DecimalLiteral") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isModuleExpression(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "ModuleExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTopicReference$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TopicReference") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isPipelineTopicExpression(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "PipelineTopicExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isPipelineBareFunction(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "PipelineBareFunction") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isPipelinePrimaryTopicReference(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "PipelinePrimaryTopicReference") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSParameterProperty(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSParameterProperty") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSDeclareFunction(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSDeclareFunction") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSDeclareMethod(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSDeclareMethod") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSQualifiedName(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSQualifiedName") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSCallSignatureDeclaration(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSCallSignatureDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSConstructSignatureDeclaration(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSConstructSignatureDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSPropertySignature(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSPropertySignature") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSMethodSignature(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSMethodSignature") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSIndexSignature(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSIndexSignature") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSAnyKeyword(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSAnyKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSBooleanKeyword(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSBooleanKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSBigIntKeyword(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSBigIntKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSIntrinsicKeyword(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSIntrinsicKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSNeverKeyword(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSNeverKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSNullKeyword(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSNullKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSNumberKeyword(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSNumberKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSObjectKeyword(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSObjectKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSStringKeyword(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSStringKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSSymbolKeyword(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSSymbolKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSUndefinedKeyword(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSUndefinedKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSUnknownKeyword(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSUnknownKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSVoidKeyword(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSVoidKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSThisType(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSThisType") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSFunctionType(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSFunctionType") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSConstructorType(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSConstructorType") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSTypeReference$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSTypeReference") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSTypePredicate(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSTypePredicate") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSTypeQuery(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSTypeQuery") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSTypeLiteral(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSTypeLiteral") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSArrayType$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSArrayType") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSTupleType(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSTupleType") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSOptionalType$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSOptionalType") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSRestType$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSRestType") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSNamedTupleMember(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSNamedTupleMember") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSUnionType$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSUnionType") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSIntersectionType$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSIntersectionType") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSConditionalType(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSConditionalType") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSInferType(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSInferType") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSParenthesizedType(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSParenthesizedType") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSTypeOperator(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSTypeOperator") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSIndexedAccessType(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSIndexedAccessType") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSMappedType(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSMappedType") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSLiteralType(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSLiteralType") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSExpressionWithTypeArguments(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSExpressionWithTypeArguments") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSInterfaceDeclaration(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSInterfaceDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSInterfaceBody$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSInterfaceBody") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSTypeAliasDeclaration(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSTypeAliasDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSInstantiationExpression$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSInstantiationExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSAsExpression$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSAsExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSSatisfiesExpression$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSSatisfiesExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSTypeAssertion$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSTypeAssertion") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSEnumDeclaration(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSEnumDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSEnumMember(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSEnumMember") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSModuleDeclaration(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSModuleDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSModuleBlock(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSModuleBlock") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSImportType(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSImportType") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSImportEqualsDeclaration(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSImportEqualsDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSExternalModuleReference(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSExternalModuleReference") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSNonNullExpression$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSNonNullExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSExportAssignment(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSExportAssignment") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSNamespaceExportDeclaration(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSNamespaceExportDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSTypeAnnotation$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSTypeParameterInstantiation(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSTypeParameterInstantiation") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSTypeParameterDeclaration(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSTypeParameterDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSTypeParameter(node, opts) { - if (!node) return false; - var nodeType = node.type; - if (nodeType === "TSTypeParameter") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isStandardized(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("ArrayExpression" === nodeType || "AssignmentExpression" === nodeType || "BinaryExpression" === nodeType || "InterpreterDirective" === nodeType || "Directive" === nodeType || "DirectiveLiteral" === nodeType || "BlockStatement" === nodeType || "BreakStatement" === nodeType || "CallExpression" === nodeType || "CatchClause" === nodeType || "ConditionalExpression" === nodeType || "ContinueStatement" === nodeType || "DebuggerStatement" === nodeType || "DoWhileStatement" === nodeType || "EmptyStatement" === nodeType || "ExpressionStatement" === nodeType || "File" === nodeType || "ForInStatement" === nodeType || "ForStatement" === nodeType || "FunctionDeclaration" === nodeType || "FunctionExpression" === nodeType || "Identifier" === nodeType || "IfStatement" === nodeType || "LabeledStatement" === nodeType || "StringLiteral" === nodeType || "NumericLiteral" === nodeType || "NullLiteral" === nodeType || "BooleanLiteral" === nodeType || "RegExpLiteral" === nodeType || "LogicalExpression" === nodeType || "MemberExpression" === nodeType || "NewExpression" === nodeType || "Program" === nodeType || "ObjectExpression" === nodeType || "ObjectMethod" === nodeType || "ObjectProperty" === nodeType || "RestElement" === nodeType || "ReturnStatement" === nodeType || "SequenceExpression" === nodeType || "ParenthesizedExpression" === nodeType || "SwitchCase" === nodeType || "SwitchStatement" === nodeType || "ThisExpression" === nodeType || "ThrowStatement" === nodeType || "TryStatement" === nodeType || "UnaryExpression" === nodeType || "UpdateExpression" === nodeType || "VariableDeclaration" === nodeType || "VariableDeclarator" === nodeType || "WhileStatement" === nodeType || "WithStatement" === nodeType || "AssignmentPattern" === nodeType || "ArrayPattern" === nodeType || "ArrowFunctionExpression" === nodeType || "ClassBody" === nodeType || "ClassExpression" === nodeType || "ClassDeclaration" === nodeType || "ExportAllDeclaration" === nodeType || "ExportDefaultDeclaration" === nodeType || "ExportNamedDeclaration" === nodeType || "ExportSpecifier" === nodeType || "ForOfStatement" === nodeType || "ImportDeclaration" === nodeType || "ImportDefaultSpecifier" === nodeType || "ImportNamespaceSpecifier" === nodeType || "ImportSpecifier" === nodeType || "MetaProperty" === nodeType || "ClassMethod" === nodeType || "ObjectPattern" === nodeType || "SpreadElement" === nodeType || "Super" === nodeType || "TaggedTemplateExpression" === nodeType || "TemplateElement" === nodeType || "TemplateLiteral" === nodeType || "YieldExpression" === nodeType || "AwaitExpression" === nodeType || "Import" === nodeType || "BigIntLiteral" === nodeType || "ExportNamespaceSpecifier" === nodeType || "OptionalMemberExpression" === nodeType || "OptionalCallExpression" === nodeType || "ClassProperty" === nodeType || "ClassAccessorProperty" === nodeType || "ClassPrivateProperty" === nodeType || "ClassPrivateMethod" === nodeType || "PrivateName" === nodeType || "StaticBlock" === nodeType || nodeType === "Placeholder" && ("Identifier" === node.expectedNode || "StringLiteral" === node.expectedNode || "BlockStatement" === node.expectedNode || "ClassBody" === node.expectedNode)) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isExpression$4(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("ArrayExpression" === nodeType || "AssignmentExpression" === nodeType || "BinaryExpression" === nodeType || "CallExpression" === nodeType || "ConditionalExpression" === nodeType || "FunctionExpression" === nodeType || "Identifier" === nodeType || "StringLiteral" === nodeType || "NumericLiteral" === nodeType || "NullLiteral" === nodeType || "BooleanLiteral" === nodeType || "RegExpLiteral" === nodeType || "LogicalExpression" === nodeType || "MemberExpression" === nodeType || "NewExpression" === nodeType || "ObjectExpression" === nodeType || "SequenceExpression" === nodeType || "ParenthesizedExpression" === nodeType || "ThisExpression" === nodeType || "UnaryExpression" === nodeType || "UpdateExpression" === nodeType || "ArrowFunctionExpression" === nodeType || "ClassExpression" === nodeType || "MetaProperty" === nodeType || "Super" === nodeType || "TaggedTemplateExpression" === nodeType || "TemplateLiteral" === nodeType || "YieldExpression" === nodeType || "AwaitExpression" === nodeType || "Import" === nodeType || "BigIntLiteral" === nodeType || "OptionalMemberExpression" === nodeType || "OptionalCallExpression" === nodeType || "TypeCastExpression" === nodeType || "JSXElement" === nodeType || "JSXFragment" === nodeType || "BindExpression" === nodeType || "DoExpression" === nodeType || "RecordExpression" === nodeType || "TupleExpression" === nodeType || "DecimalLiteral" === nodeType || "ModuleExpression" === nodeType || "TopicReference" === nodeType || "PipelineTopicExpression" === nodeType || "PipelineBareFunction" === nodeType || "PipelinePrimaryTopicReference" === nodeType || "TSInstantiationExpression" === nodeType || "TSAsExpression" === nodeType || "TSSatisfiesExpression" === nodeType || "TSTypeAssertion" === nodeType || "TSNonNullExpression" === nodeType || nodeType === "Placeholder" && ("Expression" === node.expectedNode || "Identifier" === node.expectedNode || "StringLiteral" === node.expectedNode)) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isBinary$3(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("BinaryExpression" === nodeType || "LogicalExpression" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isScopable(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("BlockStatement" === nodeType || "CatchClause" === nodeType || "DoWhileStatement" === nodeType || "ForInStatement" === nodeType || "ForStatement" === nodeType || "FunctionDeclaration" === nodeType || "FunctionExpression" === nodeType || "Program" === nodeType || "ObjectMethod" === nodeType || "SwitchStatement" === nodeType || "WhileStatement" === nodeType || "ArrowFunctionExpression" === nodeType || "ClassExpression" === nodeType || "ClassDeclaration" === nodeType || "ForOfStatement" === nodeType || "ClassMethod" === nodeType || "ClassPrivateMethod" === nodeType || "StaticBlock" === nodeType || "TSModuleBlock" === nodeType || nodeType === "Placeholder" && "BlockStatement" === node.expectedNode) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isBlockParent(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("BlockStatement" === nodeType || "CatchClause" === nodeType || "DoWhileStatement" === nodeType || "ForInStatement" === nodeType || "ForStatement" === nodeType || "FunctionDeclaration" === nodeType || "FunctionExpression" === nodeType || "Program" === nodeType || "ObjectMethod" === nodeType || "SwitchStatement" === nodeType || "WhileStatement" === nodeType || "ArrowFunctionExpression" === nodeType || "ForOfStatement" === nodeType || "ClassMethod" === nodeType || "ClassPrivateMethod" === nodeType || "StaticBlock" === nodeType || "TSModuleBlock" === nodeType || nodeType === "Placeholder" && "BlockStatement" === node.expectedNode) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isBlock(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("BlockStatement" === nodeType || "Program" === nodeType || "TSModuleBlock" === nodeType || nodeType === "Placeholder" && "BlockStatement" === node.expectedNode) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isStatement$8(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("BlockStatement" === nodeType || "BreakStatement" === nodeType || "ContinueStatement" === nodeType || "DebuggerStatement" === nodeType || "DoWhileStatement" === nodeType || "EmptyStatement" === nodeType || "ExpressionStatement" === nodeType || "ForInStatement" === nodeType || "ForStatement" === nodeType || "FunctionDeclaration" === nodeType || "IfStatement" === nodeType || "LabeledStatement" === nodeType || "ReturnStatement" === nodeType || "SwitchStatement" === nodeType || "ThrowStatement" === nodeType || "TryStatement" === nodeType || "VariableDeclaration" === nodeType || "WhileStatement" === nodeType || "WithStatement" === nodeType || "ClassDeclaration" === nodeType || "ExportAllDeclaration" === nodeType || "ExportDefaultDeclaration" === nodeType || "ExportNamedDeclaration" === nodeType || "ForOfStatement" === nodeType || "ImportDeclaration" === nodeType || "DeclareClass" === nodeType || "DeclareFunction" === nodeType || "DeclareInterface" === nodeType || "DeclareModule" === nodeType || "DeclareModuleExports" === nodeType || "DeclareTypeAlias" === nodeType || "DeclareOpaqueType" === nodeType || "DeclareVariable" === nodeType || "DeclareExportDeclaration" === nodeType || "DeclareExportAllDeclaration" === nodeType || "InterfaceDeclaration" === nodeType || "OpaqueType" === nodeType || "TypeAlias" === nodeType || "EnumDeclaration" === nodeType || "TSDeclareFunction" === nodeType || "TSInterfaceDeclaration" === nodeType || "TSTypeAliasDeclaration" === nodeType || "TSEnumDeclaration" === nodeType || "TSModuleDeclaration" === nodeType || "TSImportEqualsDeclaration" === nodeType || "TSExportAssignment" === nodeType || "TSNamespaceExportDeclaration" === nodeType || nodeType === "Placeholder" && ("Statement" === node.expectedNode || "Declaration" === node.expectedNode || "BlockStatement" === node.expectedNode)) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTerminatorless(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("BreakStatement" === nodeType || "ContinueStatement" === nodeType || "ReturnStatement" === nodeType || "ThrowStatement" === nodeType || "YieldExpression" === nodeType || "AwaitExpression" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isCompletionStatement(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("BreakStatement" === nodeType || "ContinueStatement" === nodeType || "ReturnStatement" === nodeType || "ThrowStatement" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isConditional$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("ConditionalExpression" === nodeType || "IfStatement" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isLoop$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("DoWhileStatement" === nodeType || "ForInStatement" === nodeType || "ForStatement" === nodeType || "WhileStatement" === nodeType || "ForOfStatement" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isWhile(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("DoWhileStatement" === nodeType || "WhileStatement" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isExpressionWrapper(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("ExpressionStatement" === nodeType || "ParenthesizedExpression" === nodeType || "TypeCastExpression" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isFor$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("ForInStatement" === nodeType || "ForStatement" === nodeType || "ForOfStatement" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isForXStatement$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("ForInStatement" === nodeType || "ForOfStatement" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isFunction$4(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("FunctionDeclaration" === nodeType || "FunctionExpression" === nodeType || "ObjectMethod" === nodeType || "ArrowFunctionExpression" === nodeType || "ClassMethod" === nodeType || "ClassPrivateMethod" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isFunctionParent(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("FunctionDeclaration" === nodeType || "FunctionExpression" === nodeType || "ObjectMethod" === nodeType || "ArrowFunctionExpression" === nodeType || "ClassMethod" === nodeType || "ClassPrivateMethod" === nodeType || "StaticBlock" === nodeType || "TSModuleBlock" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isPureish$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("FunctionDeclaration" === nodeType || "FunctionExpression" === nodeType || "StringLiteral" === nodeType || "NumericLiteral" === nodeType || "NullLiteral" === nodeType || "BooleanLiteral" === nodeType || "RegExpLiteral" === nodeType || "ArrowFunctionExpression" === nodeType || "BigIntLiteral" === nodeType || "DecimalLiteral" === nodeType || nodeType === "Placeholder" && "StringLiteral" === node.expectedNode) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isDeclaration$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("FunctionDeclaration" === nodeType || "VariableDeclaration" === nodeType || "ClassDeclaration" === nodeType || "ExportAllDeclaration" === nodeType || "ExportDefaultDeclaration" === nodeType || "ExportNamedDeclaration" === nodeType || "ImportDeclaration" === nodeType || "DeclareClass" === nodeType || "DeclareFunction" === nodeType || "DeclareInterface" === nodeType || "DeclareModule" === nodeType || "DeclareModuleExports" === nodeType || "DeclareTypeAlias" === nodeType || "DeclareOpaqueType" === nodeType || "DeclareVariable" === nodeType || "DeclareExportDeclaration" === nodeType || "DeclareExportAllDeclaration" === nodeType || "InterfaceDeclaration" === nodeType || "OpaqueType" === nodeType || "TypeAlias" === nodeType || "EnumDeclaration" === nodeType || "TSDeclareFunction" === nodeType || "TSInterfaceDeclaration" === nodeType || "TSTypeAliasDeclaration" === nodeType || "TSEnumDeclaration" === nodeType || "TSModuleDeclaration" === nodeType || nodeType === "Placeholder" && "Declaration" === node.expectedNode) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isPatternLike(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("Identifier" === nodeType || "RestElement" === nodeType || "AssignmentPattern" === nodeType || "ArrayPattern" === nodeType || "ObjectPattern" === nodeType || "TSAsExpression" === nodeType || "TSSatisfiesExpression" === nodeType || "TSTypeAssertion" === nodeType || "TSNonNullExpression" === nodeType || nodeType === "Placeholder" && ("Pattern" === node.expectedNode || "Identifier" === node.expectedNode)) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isLVal(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("Identifier" === nodeType || "MemberExpression" === nodeType || "RestElement" === nodeType || "AssignmentPattern" === nodeType || "ArrayPattern" === nodeType || "ObjectPattern" === nodeType || "TSParameterProperty" === nodeType || "TSAsExpression" === nodeType || "TSSatisfiesExpression" === nodeType || "TSTypeAssertion" === nodeType || "TSNonNullExpression" === nodeType || nodeType === "Placeholder" && ("Pattern" === node.expectedNode || "Identifier" === node.expectedNode)) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSEntityName(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("Identifier" === nodeType || "TSQualifiedName" === nodeType || nodeType === "Placeholder" && "Identifier" === node.expectedNode) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isLiteral$6(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("StringLiteral" === nodeType || "NumericLiteral" === nodeType || "NullLiteral" === nodeType || "BooleanLiteral" === nodeType || "RegExpLiteral" === nodeType || "TemplateLiteral" === nodeType || "BigIntLiteral" === nodeType || "DecimalLiteral" === nodeType || nodeType === "Placeholder" && "StringLiteral" === node.expectedNode) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isUserWhitespacable(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("ObjectMethod" === nodeType || "ObjectProperty" === nodeType || "ObjectTypeInternalSlot" === nodeType || "ObjectTypeCallProperty" === nodeType || "ObjectTypeIndexer" === nodeType || "ObjectTypeProperty" === nodeType || "ObjectTypeSpreadProperty" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isMethod$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("ObjectMethod" === nodeType || "ClassMethod" === nodeType || "ClassPrivateMethod" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isObjectMember(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("ObjectMethod" === nodeType || "ObjectProperty" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isProperty$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("ObjectProperty" === nodeType || "ClassProperty" === nodeType || "ClassAccessorProperty" === nodeType || "ClassPrivateProperty" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isUnaryLike$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("UnaryExpression" === nodeType || "SpreadElement" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isPattern(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("AssignmentPattern" === nodeType || "ArrayPattern" === nodeType || "ObjectPattern" === nodeType || nodeType === "Placeholder" && "Pattern" === node.expectedNode) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isClass$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("ClassExpression" === nodeType || "ClassDeclaration" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isModuleDeclaration$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("ExportAllDeclaration" === nodeType || "ExportDefaultDeclaration" === nodeType || "ExportNamedDeclaration" === nodeType || "ImportDeclaration" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isExportDeclaration$2(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("ExportAllDeclaration" === nodeType || "ExportDefaultDeclaration" === nodeType || "ExportNamedDeclaration" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isModuleSpecifier$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("ExportSpecifier" === nodeType || "ImportDefaultSpecifier" === nodeType || "ImportNamespaceSpecifier" === nodeType || "ImportSpecifier" === nodeType || "ExportNamespaceSpecifier" === nodeType || "ExportDefaultSpecifier" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isAccessor(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("ClassAccessorProperty" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isPrivate(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("ClassPrivateProperty" === nodeType || "ClassPrivateMethod" === nodeType || "PrivateName" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isFlow$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("AnyTypeAnnotation" === nodeType || "ArrayTypeAnnotation" === nodeType || "BooleanTypeAnnotation" === nodeType || "BooleanLiteralTypeAnnotation" === nodeType || "NullLiteralTypeAnnotation" === nodeType || "ClassImplements" === nodeType || "DeclareClass" === nodeType || "DeclareFunction" === nodeType || "DeclareInterface" === nodeType || "DeclareModule" === nodeType || "DeclareModuleExports" === nodeType || "DeclareTypeAlias" === nodeType || "DeclareOpaqueType" === nodeType || "DeclareVariable" === nodeType || "DeclareExportDeclaration" === nodeType || "DeclareExportAllDeclaration" === nodeType || "DeclaredPredicate" === nodeType || "ExistsTypeAnnotation" === nodeType || "FunctionTypeAnnotation" === nodeType || "FunctionTypeParam" === nodeType || "GenericTypeAnnotation" === nodeType || "InferredPredicate" === nodeType || "InterfaceExtends" === nodeType || "InterfaceDeclaration" === nodeType || "InterfaceTypeAnnotation" === nodeType || "IntersectionTypeAnnotation" === nodeType || "MixedTypeAnnotation" === nodeType || "EmptyTypeAnnotation" === nodeType || "NullableTypeAnnotation" === nodeType || "NumberLiteralTypeAnnotation" === nodeType || "NumberTypeAnnotation" === nodeType || "ObjectTypeAnnotation" === nodeType || "ObjectTypeInternalSlot" === nodeType || "ObjectTypeCallProperty" === nodeType || "ObjectTypeIndexer" === nodeType || "ObjectTypeProperty" === nodeType || "ObjectTypeSpreadProperty" === nodeType || "OpaqueType" === nodeType || "QualifiedTypeIdentifier" === nodeType || "StringLiteralTypeAnnotation" === nodeType || "StringTypeAnnotation" === nodeType || "SymbolTypeAnnotation" === nodeType || "ThisTypeAnnotation" === nodeType || "TupleTypeAnnotation" === nodeType || "TypeofTypeAnnotation" === nodeType || "TypeAlias" === nodeType || "TypeAnnotation" === nodeType || "TypeCastExpression" === nodeType || "TypeParameter" === nodeType || "TypeParameterDeclaration" === nodeType || "TypeParameterInstantiation" === nodeType || "UnionTypeAnnotation" === nodeType || "Variance" === nodeType || "VoidTypeAnnotation" === nodeType || "EnumDeclaration" === nodeType || "EnumBooleanBody" === nodeType || "EnumNumberBody" === nodeType || "EnumStringBody" === nodeType || "EnumSymbolBody" === nodeType || "EnumBooleanMember" === nodeType || "EnumNumberMember" === nodeType || "EnumStringMember" === nodeType || "EnumDefaultedMember" === nodeType || "IndexedAccessType" === nodeType || "OptionalIndexedAccessType" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isFlowType$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("AnyTypeAnnotation" === nodeType || "ArrayTypeAnnotation" === nodeType || "BooleanTypeAnnotation" === nodeType || "BooleanLiteralTypeAnnotation" === nodeType || "NullLiteralTypeAnnotation" === nodeType || "ExistsTypeAnnotation" === nodeType || "FunctionTypeAnnotation" === nodeType || "GenericTypeAnnotation" === nodeType || "InterfaceTypeAnnotation" === nodeType || "IntersectionTypeAnnotation" === nodeType || "MixedTypeAnnotation" === nodeType || "EmptyTypeAnnotation" === nodeType || "NullableTypeAnnotation" === nodeType || "NumberLiteralTypeAnnotation" === nodeType || "NumberTypeAnnotation" === nodeType || "ObjectTypeAnnotation" === nodeType || "StringLiteralTypeAnnotation" === nodeType || "StringTypeAnnotation" === nodeType || "SymbolTypeAnnotation" === nodeType || "ThisTypeAnnotation" === nodeType || "TupleTypeAnnotation" === nodeType || "TypeofTypeAnnotation" === nodeType || "UnionTypeAnnotation" === nodeType || "VoidTypeAnnotation" === nodeType || "IndexedAccessType" === nodeType || "OptionalIndexedAccessType" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isFlowBaseAnnotation$1(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("AnyTypeAnnotation" === nodeType || "BooleanTypeAnnotation" === nodeType || "NullLiteralTypeAnnotation" === nodeType || "MixedTypeAnnotation" === nodeType || "EmptyTypeAnnotation" === nodeType || "NumberTypeAnnotation" === nodeType || "StringTypeAnnotation" === nodeType || "SymbolTypeAnnotation" === nodeType || "ThisTypeAnnotation" === nodeType || "VoidTypeAnnotation" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isFlowDeclaration(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("DeclareClass" === nodeType || "DeclareFunction" === nodeType || "DeclareInterface" === nodeType || "DeclareModule" === nodeType || "DeclareModuleExports" === nodeType || "DeclareTypeAlias" === nodeType || "DeclareOpaqueType" === nodeType || "DeclareVariable" === nodeType || "DeclareExportDeclaration" === nodeType || "DeclareExportAllDeclaration" === nodeType || "InterfaceDeclaration" === nodeType || "OpaqueType" === nodeType || "TypeAlias" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isFlowPredicate(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("DeclaredPredicate" === nodeType || "InferredPredicate" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isEnumBody(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("EnumBooleanBody" === nodeType || "EnumNumberBody" === nodeType || "EnumStringBody" === nodeType || "EnumSymbolBody" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isEnumMember(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("EnumBooleanMember" === nodeType || "EnumNumberMember" === nodeType || "EnumStringMember" === nodeType || "EnumDefaultedMember" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isJSX(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("JSXAttribute" === nodeType || "JSXClosingElement" === nodeType || "JSXElement" === nodeType || "JSXEmptyExpression" === nodeType || "JSXExpressionContainer" === nodeType || "JSXSpreadChild" === nodeType || "JSXIdentifier" === nodeType || "JSXMemberExpression" === nodeType || "JSXNamespacedName" === nodeType || "JSXOpeningElement" === nodeType || "JSXSpreadAttribute" === nodeType || "JSXText" === nodeType || "JSXFragment" === nodeType || "JSXOpeningFragment" === nodeType || "JSXClosingFragment" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isMiscellaneous(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("Noop" === nodeType || "Placeholder" === nodeType || "V8IntrinsicIdentifier" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTypeScript(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("TSParameterProperty" === nodeType || "TSDeclareFunction" === nodeType || "TSDeclareMethod" === nodeType || "TSQualifiedName" === nodeType || "TSCallSignatureDeclaration" === nodeType || "TSConstructSignatureDeclaration" === nodeType || "TSPropertySignature" === nodeType || "TSMethodSignature" === nodeType || "TSIndexSignature" === nodeType || "TSAnyKeyword" === nodeType || "TSBooleanKeyword" === nodeType || "TSBigIntKeyword" === nodeType || "TSIntrinsicKeyword" === nodeType || "TSNeverKeyword" === nodeType || "TSNullKeyword" === nodeType || "TSNumberKeyword" === nodeType || "TSObjectKeyword" === nodeType || "TSStringKeyword" === nodeType || "TSSymbolKeyword" === nodeType || "TSUndefinedKeyword" === nodeType || "TSUnknownKeyword" === nodeType || "TSVoidKeyword" === nodeType || "TSThisType" === nodeType || "TSFunctionType" === nodeType || "TSConstructorType" === nodeType || "TSTypeReference" === nodeType || "TSTypePredicate" === nodeType || "TSTypeQuery" === nodeType || "TSTypeLiteral" === nodeType || "TSArrayType" === nodeType || "TSTupleType" === nodeType || "TSOptionalType" === nodeType || "TSRestType" === nodeType || "TSNamedTupleMember" === nodeType || "TSUnionType" === nodeType || "TSIntersectionType" === nodeType || "TSConditionalType" === nodeType || "TSInferType" === nodeType || "TSParenthesizedType" === nodeType || "TSTypeOperator" === nodeType || "TSIndexedAccessType" === nodeType || "TSMappedType" === nodeType || "TSLiteralType" === nodeType || "TSExpressionWithTypeArguments" === nodeType || "TSInterfaceDeclaration" === nodeType || "TSInterfaceBody" === nodeType || "TSTypeAliasDeclaration" === nodeType || "TSInstantiationExpression" === nodeType || "TSAsExpression" === nodeType || "TSSatisfiesExpression" === nodeType || "TSTypeAssertion" === nodeType || "TSEnumDeclaration" === nodeType || "TSEnumMember" === nodeType || "TSModuleDeclaration" === nodeType || "TSModuleBlock" === nodeType || "TSImportType" === nodeType || "TSImportEqualsDeclaration" === nodeType || "TSExternalModuleReference" === nodeType || "TSNonNullExpression" === nodeType || "TSExportAssignment" === nodeType || "TSNamespaceExportDeclaration" === nodeType || "TSTypeAnnotation" === nodeType || "TSTypeParameterInstantiation" === nodeType || "TSTypeParameterDeclaration" === nodeType || "TSTypeParameter" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSTypeElement(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("TSCallSignatureDeclaration" === nodeType || "TSConstructSignatureDeclaration" === nodeType || "TSPropertySignature" === nodeType || "TSMethodSignature" === nodeType || "TSIndexSignature" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSType(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("TSAnyKeyword" === nodeType || "TSBooleanKeyword" === nodeType || "TSBigIntKeyword" === nodeType || "TSIntrinsicKeyword" === nodeType || "TSNeverKeyword" === nodeType || "TSNullKeyword" === nodeType || "TSNumberKeyword" === nodeType || "TSObjectKeyword" === nodeType || "TSStringKeyword" === nodeType || "TSSymbolKeyword" === nodeType || "TSUndefinedKeyword" === nodeType || "TSUnknownKeyword" === nodeType || "TSVoidKeyword" === nodeType || "TSThisType" === nodeType || "TSFunctionType" === nodeType || "TSConstructorType" === nodeType || "TSTypeReference" === nodeType || "TSTypePredicate" === nodeType || "TSTypeQuery" === nodeType || "TSTypeLiteral" === nodeType || "TSArrayType" === nodeType || "TSTupleType" === nodeType || "TSOptionalType" === nodeType || "TSRestType" === nodeType || "TSUnionType" === nodeType || "TSIntersectionType" === nodeType || "TSConditionalType" === nodeType || "TSInferType" === nodeType || "TSParenthesizedType" === nodeType || "TSTypeOperator" === nodeType || "TSIndexedAccessType" === nodeType || "TSMappedType" === nodeType || "TSLiteralType" === nodeType || "TSExpressionWithTypeArguments" === nodeType || "TSImportType" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isTSBaseType(node, opts) { - if (!node) return false; - var nodeType = node.type; - if ("TSAnyKeyword" === nodeType || "TSBooleanKeyword" === nodeType || "TSBigIntKeyword" === nodeType || "TSIntrinsicKeyword" === nodeType || "TSNeverKeyword" === nodeType || "TSNullKeyword" === nodeType || "TSNumberKeyword" === nodeType || "TSObjectKeyword" === nodeType || "TSStringKeyword" === nodeType || "TSSymbolKeyword" === nodeType || "TSUndefinedKeyword" === nodeType || "TSUnknownKeyword" === nodeType || "TSVoidKeyword" === nodeType || "TSThisType" === nodeType || "TSLiteralType" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isNumberLiteral(node, opts) { - console.trace("The node type NumberLiteral has been renamed to NumericLiteral"); - if (!node) return false; - var nodeType = node.type; - if (nodeType === "NumberLiteral") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isRegexLiteral(node, opts) { - console.trace("The node type RegexLiteral has been renamed to RegExpLiteral"); - if (!node) return false; - var nodeType = node.type; - if (nodeType === "RegexLiteral") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isRestProperty$1(node, opts) { - console.trace("The node type RestProperty has been renamed to RestElement"); - if (!node) return false; - var nodeType = node.type; - if (nodeType === "RestProperty") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - function isSpreadProperty$1(node, opts) { - console.trace("The node type SpreadProperty has been renamed to SpreadElement"); - if (!node) return false; - var nodeType = node.type; - if (nodeType === "SpreadProperty") { - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - return false; - } - - function matchesPattern$2(member, match, allowPartial) { - if (!isMemberExpression$8(member)) return false; - var parts = Array.isArray(match) ? match : match.split("."); - var nodes = []; - var node; - for (node = member; isMemberExpression$8(node); node = node.object) { - nodes.push(node.property); - } - nodes.push(node); - if (nodes.length < parts.length) return false; - if (!allowPartial && nodes.length > parts.length) return false; - for (var i = 0, j = nodes.length - 1; i < parts.length; i++, j--) { - var _node = nodes[j]; - var value = void 0; - if (isIdentifier$j(_node)) { - value = _node.name; - } else if (isStringLiteral$7(_node)) { - value = _node.value; - } else if (isThisExpression$2(_node)) { - value = "this"; - } else { - return false; - } - if (parts[i] !== value) return false; - } - return true; - } - - function buildMatchMemberExpression$1(match, allowPartial) { - var parts = match.split("."); - return function (member) { - return matchesPattern$2(member, parts, allowPartial); - }; - } - - var isReactComponent = buildMatchMemberExpression$1("React.Component"); - - function isCompatTag$1(tagName) { - return !!tagName && /^[a-z]/.test(tagName); - } - - var global$1 = (typeof global !== "undefined" ? global : - typeof self !== "undefined" ? self : - typeof window !== "undefined" ? window : {}); - - // shim for using process in browser - // based off https://github.com/defunctzombie/node-process/blob/master/browser.js - - function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); - } - function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); - } - var cachedSetTimeout = defaultSetTimout; - var cachedClearTimeout = defaultClearTimeout; - if (typeof global$1.setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } - if (typeof global$1.clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } - - function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); - } - } - - - } - function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } - - - - } - var queue = []; - var draining = false; - var currentQueue; - var queueIndex = -1; - - function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } - } - - function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); - } - function nextTick(fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } - } - // v8 likes predictible objects - function Item(fun, array) { - this.fun = fun; - this.array = array; - } - Item.prototype.run = function () { - this.fun.apply(null, this.array); - }; - var title = 'browser'; - var platform = 'browser'; - var browser$5 = true; - var env$1 = {}; - var argv = []; - var version$4 = ''; // empty string to avoid regexp issues - var versions$2 = {}; - var release = {}; - var config$1 = {}; - - function noop$2() {} - - var on = noop$2; - var addListener = noop$2; - var once$1 = noop$2; - var off = noop$2; - var removeListener = noop$2; - var removeAllListeners = noop$2; - var emit$1 = noop$2; - - function binding(name) { - throw new Error('process.binding is not supported'); - } - - function cwd () { return '/' } - function chdir (dir) { - throw new Error('process.chdir is not supported'); - }function umask() { return 0; } - - // from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js - var performance = global$1.performance || {}; - var performanceNow = - performance.now || - performance.mozNow || - performance.msNow || - performance.oNow || - performance.webkitNow || - function(){ return (new Date()).getTime() }; - - // generate timestamp or delta - // see http://nodejs.org/api/process.html#process_process_hrtime - function hrtime(previousTimestamp){ - var clocktime = performanceNow.call(performance)*1e-3; - var seconds = Math.floor(clocktime); - var nanoseconds = Math.floor((clocktime%1)*1e9); - if (previousTimestamp) { - seconds = seconds - previousTimestamp[0]; - nanoseconds = nanoseconds - previousTimestamp[1]; - if (nanoseconds<0) { - seconds--; - nanoseconds += 1e9; - } - } - return [seconds,nanoseconds] - } - - var startTime = new Date(); - function uptime() { - var currentTime = new Date(); - var dif = currentTime - startTime; - return dif / 1000; - } - - var browser$1$1 = { - nextTick: nextTick, - title: title, - browser: browser$5, - env: env$1, - argv: argv, - version: version$4, - versions: versions$2, - on: on, - addListener: addListener, - once: once$1, - off: off, - removeListener: removeListener, - removeAllListeners: removeAllListeners, - emit: emit$1, - binding: binding, - cwd: cwd, - chdir: chdir, - umask: umask, - hrtime: hrtime, - platform: platform, - release: release, - config: config$1, - uptime: uptime - }; - - var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; - - function getAugmentedNamespace(n) { - var f = n.default; - if (typeof f == "function") { - var a = function () { - return f.apply(this, arguments); - }; - a.prototype = f.prototype; - } else a = {}; - Object.defineProperty(a, '__esModule', {value: true}); - Object.keys(n).forEach(function (k) { - var d = Object.getOwnPropertyDescriptor(n, k); - Object.defineProperty(a, k, d.get ? d : { - enumerable: true, - get: function () { - return n[k]; - } - }); - }); - return a; - } - - var toFastPropertiesBABEL_8_BREAKINGTrue; - var hasRequiredToFastPropertiesBABEL_8_BREAKINGTrue; - function requireToFastPropertiesBABEL_8_BREAKINGTrue() { - if (hasRequiredToFastPropertiesBABEL_8_BREAKINGTrue) return toFastPropertiesBABEL_8_BREAKINGTrue; - hasRequiredToFastPropertiesBABEL_8_BREAKINGTrue = 1; - var fastProto = null; - - function FastObject(o) { - if (fastProto !== null && typeof fastProto.property) { - var result = fastProto; - fastProto = FastObject.prototype = null; - return result; - } - fastProto = FastObject.prototype = o == null ? Object.create(null) : o; - return new FastObject(); - } - var inlineCacheCutoff = 10; - - for (var i = 0; i <= inlineCacheCutoff; i++) { - FastObject(); - } - toFastPropertiesBABEL_8_BREAKINGTrue = function toFastproperties(o) { - return FastObject(o); - }; - return toFastPropertiesBABEL_8_BREAKINGTrue; - } - - var toFastPropertiesBABEL_8_BREAKINGFalse; - var hasRequiredToFastPropertiesBABEL_8_BREAKINGFalse; - function requireToFastPropertiesBABEL_8_BREAKINGFalse() { - if (hasRequiredToFastPropertiesBABEL_8_BREAKINGFalse) return toFastPropertiesBABEL_8_BREAKINGFalse; - hasRequiredToFastPropertiesBABEL_8_BREAKINGFalse = 1; - var fastProto = null; - - function FastObject(o) { - if (fastProto !== null && typeof fastProto.property) { - var result = fastProto; - fastProto = FastObject.prototype = null; - return result; - } - fastProto = FastObject.prototype = o == null ? Object.create(null) : o; - return new FastObject(); - } - - FastObject(); - toFastPropertiesBABEL_8_BREAKINGFalse = function toFastproperties(o) { - return FastObject(o); - }; - return toFastPropertiesBABEL_8_BREAKINGFalse; - } - - function bool$8(value) { - if (value == null) return false; - return value && value !== "false" && value !== "0"; - } - var toFastProperties = bool$8(browser$1$1.env["BABEL_8_BREAKING"]) ? requireToFastPropertiesBABEL_8_BREAKINGTrue() : requireToFastPropertiesBABEL_8_BREAKINGFalse(); - - function isType$2(nodeType, targetType) { - if (nodeType === targetType) return true; - - if (ALIAS_KEYS[targetType]) return false; - var aliases = FLIPPED_ALIAS_KEYS$3[targetType]; - if (aliases) { - if (aliases[0] === nodeType) return true; - for (var _iterator = _createForOfIteratorHelperLoose(aliases), _step; !(_step = _iterator()).done;) { - var alias = _step.value; - if (nodeType === alias) return true; - } - } - return false; - } - - function isPlaceholderType(placeholderType, targetType) { - if (placeholderType === targetType) return true; - var aliases = PLACEHOLDERS_ALIAS[placeholderType]; - if (aliases) { - for (var _iterator = _createForOfIteratorHelperLoose(aliases), _step; !(_step = _iterator()).done;) { - var alias = _step.value; - if (targetType === alias) return true; - } - } - return false; - } - - function is$1(type, node, opts) { - if (!node) return false; - var matches = isType$2(node.type, type); - if (!matches) { - if (!opts && node.type === "Placeholder" && type in FLIPPED_ALIAS_KEYS$3) { - return isPlaceholderType(node.expectedNode, type); - } - return false; - } - if (typeof opts === "undefined") { - return true; - } else { - return shallowEqual$2(node, opts); - } - } - - var nonASCIIidentifierStartChars = "\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC"; - var nonASCIIidentifierChars = "\u200C\u200D\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F"; - var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); - var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); - nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; - - var astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 757, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938, 6, 4191]; - var astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 81, 2, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 9, 5351, 0, 7, 14, 13835, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 983, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; - - function isInAstralSet(code, set) { - var pos = 0x10000; - for (var i = 0, length = set.length; i < length; i += 2) { - pos += set[i]; - if (pos > code) return false; - pos += set[i + 1]; - if (pos >= code) return true; - } - return false; - } - - function isIdentifierStart(code) { - if (code < 65) return code === 36; - if (code <= 90) return true; - if (code < 97) return code === 95; - if (code <= 122) return true; - if (code <= 0xffff) { - return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); - } - return isInAstralSet(code, astralIdentifierStartCodes); - } - - function isIdentifierChar(code) { - if (code < 48) return code === 36; - if (code < 58) return true; - if (code < 65) return false; - if (code <= 90) return true; - if (code < 97) return code === 95; - if (code <= 122) return true; - if (code <= 0xffff) { - return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); - } - return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); - } - - function isIdentifierName(name) { - var isFirst = true; - for (var i = 0; i < name.length; i++) { - var cp = name.charCodeAt(i); - if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) { - var trail = name.charCodeAt(++i); - if ((trail & 0xfc00) === 0xdc00) { - cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff); - } - } - if (isFirst) { - isFirst = false; - if (!isIdentifierStart(cp)) { - return false; - } - } else if (!isIdentifierChar(cp)) { - return false; - } - } - return !isFirst; - } - - var reservedWords = { - keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], - strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], - strictBind: ["eval", "arguments"] - }; - var keywords$1 = new Set(reservedWords.keyword); - var reservedWordsStrictSet = new Set(reservedWords.strict); - var reservedWordsStrictBindSet = new Set(reservedWords.strictBind); - - function isReservedWord(word, inModule) { - return inModule && word === "await" || word === "enum"; - } - - function isStrictReservedWord(word, inModule) { - return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word); - } - - function isStrictBindOnlyReservedWord(word) { - return reservedWordsStrictBindSet.has(word); - } - - function isStrictBindReservedWord(word, inModule) { - return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word); - } - function isKeyword(word) { - return keywords$1.has(word); - } - - function isValidIdentifier$1(name, reserved) { - if (reserved === void 0) { - reserved = true; - } - if (typeof name !== "string") return false; - if (reserved) { - if (isKeyword(name) || isStrictReservedWord(name, true)) { - return false; - } - } - return isIdentifierName(name); - } - - var _isDigit = function isDigit(code) { - return code >= 48 && code <= 57; - }; - var forbiddenNumericSeparatorSiblings = { - decBinOct: new Set([46, 66, 69, 79, 95, 98, 101, 111]), - hex: new Set([46, 88, 95, 120]) - }; - var isAllowedNumericSeparatorSibling = { - bin: function bin(ch) { - return ch === 48 || ch === 49; - }, - oct: function oct(ch) { - return ch >= 48 && ch <= 55; - }, - dec: function dec(ch) { - return ch >= 48 && ch <= 57; - }, - hex: function hex(ch) { - return ch >= 48 && ch <= 57 || ch >= 65 && ch <= 70 || ch >= 97 && ch <= 102; - } - }; - function readStringContents(type, input, pos, lineStart, curLine, errors) { - var initialPos = pos; - var initialLineStart = lineStart; - var initialCurLine = curLine; - var out = ""; - var firstInvalidLoc = null; - var chunkStart = pos; - var length = input.length; - for (;;) { - if (pos >= length) { - errors.unterminated(initialPos, initialLineStart, initialCurLine); - out += input.slice(chunkStart, pos); - break; - } - var ch = input.charCodeAt(pos); - if (isStringEnd(type, ch, input, pos)) { - out += input.slice(chunkStart, pos); - break; - } - if (ch === 92) { - out += input.slice(chunkStart, pos); - var res = readEscapedChar(input, pos, lineStart, curLine, type === "template", errors); - if (res.ch === null && !firstInvalidLoc) { - firstInvalidLoc = { - pos: pos, - lineStart: lineStart, - curLine: curLine - }; - } else { - out += res.ch; - } - pos = res.pos; - lineStart = res.lineStart; - curLine = res.curLine; - chunkStart = pos; - } else if (ch === 8232 || ch === 8233) { - ++pos; - ++curLine; - lineStart = pos; - } else if (ch === 10 || ch === 13) { - if (type === "template") { - out += input.slice(chunkStart, pos) + "\n"; - ++pos; - if (ch === 13 && input.charCodeAt(pos) === 10) { - ++pos; - } - ++curLine; - chunkStart = lineStart = pos; - } else { - errors.unterminated(initialPos, initialLineStart, initialCurLine); - } - } else { - ++pos; - } - } - return { - pos: pos, - str: out, - firstInvalidLoc: firstInvalidLoc, - lineStart: lineStart, - curLine: curLine, - containsInvalid: !!firstInvalidLoc - }; - } - function isStringEnd(type, ch, input, pos) { - if (type === "template") { - return ch === 96 || ch === 36 && input.charCodeAt(pos + 1) === 123; - } - return ch === (type === "double" ? 34 : 39); - } - function readEscapedChar(input, pos, lineStart, curLine, inTemplate, errors) { - var throwOnInvalid = !inTemplate; - pos++; - - var res = function res(ch) { - return { - pos: pos, - ch: ch, - lineStart: lineStart, - curLine: curLine - }; - }; - var ch = input.charCodeAt(pos++); - switch (ch) { - case 110: - return res("\n"); - case 114: - return res("\r"); - case 120: - { - var code; - var _readHexChar = readHexChar(input, pos, lineStart, curLine, 2, false, throwOnInvalid, errors); - code = _readHexChar.code; - pos = _readHexChar.pos; - return res(code === null ? null : String.fromCharCode(code)); - } - case 117: - { - var _code; - var _readCodePoint = readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors); - _code = _readCodePoint.code; - pos = _readCodePoint.pos; - return res(_code === null ? null : String.fromCodePoint(_code)); - } - case 116: - return res("\t"); - case 98: - return res("\b"); - case 118: - return res("\x0B"); - case 102: - return res("\f"); - case 13: - if (input.charCodeAt(pos) === 10) { - ++pos; - } - case 10: - lineStart = pos; - ++curLine; - case 8232: - case 8233: - return res(""); - case 56: - case 57: - if (inTemplate) { - return res(null); - } else { - errors.strictNumericEscape(pos - 1, lineStart, curLine); - } - default: - if (ch >= 48 && ch <= 55) { - var startPos = pos - 1; - var match = input.slice(startPos, pos + 2).match(/^[0-7]+/); - var octalStr = match[0]; - var octal = parseInt(octalStr, 8); - if (octal > 255) { - octalStr = octalStr.slice(0, -1); - octal = parseInt(octalStr, 8); - } - pos += octalStr.length - 1; - var next = input.charCodeAt(pos); - if (octalStr !== "0" || next === 56 || next === 57) { - if (inTemplate) { - return res(null); - } else { - errors.strictNumericEscape(startPos, lineStart, curLine); - } - } - return res(String.fromCharCode(octal)); - } - return res(String.fromCharCode(ch)); - } - } - function readHexChar(input, pos, lineStart, curLine, len, forceLen, throwOnInvalid, errors) { - var initialPos = pos; - var n; - var _readInt = readInt(input, pos, lineStart, curLine, 16, len, forceLen, false, errors, !throwOnInvalid); - n = _readInt.n; - pos = _readInt.pos; - if (n === null) { - if (throwOnInvalid) { - errors.invalidEscapeSequence(initialPos, lineStart, curLine); - } else { - pos = initialPos - 1; - } - } - return { - code: n, - pos: pos - }; - } - function readInt(input, pos, lineStart, curLine, radix, len, forceLen, allowNumSeparator, errors, bailOnError) { - var start = pos; - var forbiddenSiblings = radix === 16 ? forbiddenNumericSeparatorSiblings.hex : forbiddenNumericSeparatorSiblings.decBinOct; - var isAllowedSibling = radix === 16 ? isAllowedNumericSeparatorSibling.hex : radix === 10 ? isAllowedNumericSeparatorSibling.dec : radix === 8 ? isAllowedNumericSeparatorSibling.oct : isAllowedNumericSeparatorSibling.bin; - var invalid = false; - var total = 0; - for (var i = 0, e = len == null ? Infinity : len; i < e; ++i) { - var code = input.charCodeAt(pos); - var val = void 0; - if (code === 95 && allowNumSeparator !== "bail") { - var prev = input.charCodeAt(pos - 1); - var next = input.charCodeAt(pos + 1); - if (!allowNumSeparator) { - if (bailOnError) return { - n: null, - pos: pos - }; - errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine); - } else if (Number.isNaN(next) || !isAllowedSibling(next) || forbiddenSiblings.has(prev) || forbiddenSiblings.has(next)) { - if (bailOnError) return { - n: null, - pos: pos - }; - errors.unexpectedNumericSeparator(pos, lineStart, curLine); - } - - ++pos; - continue; - } - if (code >= 97) { - val = code - 97 + 10; - } else if (code >= 65) { - val = code - 65 + 10; - } else if (_isDigit(code)) { - val = code - 48; - } else { - val = Infinity; - } - if (val >= radix) { - if (val <= 9 && bailOnError) { - return { - n: null, - pos: pos - }; - } else if (val <= 9 && errors.invalidDigit(pos, lineStart, curLine, radix)) { - val = 0; - } else if (forceLen) { - val = 0; - invalid = true; - } else { - break; - } - } - ++pos; - total = total * radix + val; - } - if (pos === start || len != null && pos - start !== len || invalid) { - return { - n: null, - pos: pos - }; - } - return { - n: total, - pos: pos - }; - } - function readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors) { - var ch = input.charCodeAt(pos); - var code; - if (ch === 123) { - ++pos; - var _readHexChar2 = readHexChar(input, pos, lineStart, curLine, input.indexOf("}", pos) - pos, true, throwOnInvalid, errors); - code = _readHexChar2.code; - pos = _readHexChar2.pos; - ++pos; - if (code !== null && code > 0x10ffff) { - if (throwOnInvalid) { - errors.invalidCodePoint(pos, lineStart, curLine); - } else { - return { - code: null, - pos: pos - }; - } - } - } else { - var _readHexChar3 = readHexChar(input, pos, lineStart, curLine, 4, false, throwOnInvalid, errors); - code = _readHexChar3.code; - pos = _readHexChar3.pos; - } - return { - code: code, - pos: pos - }; - } - - var STATEMENT_OR_BLOCK_KEYS$1 = ["consequent", "body", "alternate"]; - var FLATTENABLE_KEYS = ["body", "expressions"]; - var FOR_INIT_KEYS = ["left", "init"]; - var COMMENT_KEYS = ["leadingComments", "trailingComments", "innerComments"]; - var LOGICAL_OPERATORS$3 = ["||", "&&", "??"]; - var UPDATE_OPERATORS = ["++", "--"]; - var BOOLEAN_NUMBER_BINARY_OPERATORS$1 = [">", "<", ">=", "<="]; - var EQUALITY_BINARY_OPERATORS = ["==", "===", "!=", "!=="]; - var COMPARISON_BINARY_OPERATORS = [].concat(EQUALITY_BINARY_OPERATORS, ["in", "instanceof"]); - var BOOLEAN_BINARY_OPERATORS$1 = [].concat(_toConsumableArray(COMPARISON_BINARY_OPERATORS), BOOLEAN_NUMBER_BINARY_OPERATORS$1); - var NUMBER_BINARY_OPERATORS$1 = ["-", "/", "%", "*", "**", "&", "|", ">>", ">>>", "<<", "^"]; - var BINARY_OPERATORS = ["+"].concat(NUMBER_BINARY_OPERATORS$1, _toConsumableArray(BOOLEAN_BINARY_OPERATORS$1), ["|>"]); - var ASSIGNMENT_OPERATORS = ["=", "+="].concat(_toConsumableArray(NUMBER_BINARY_OPERATORS$1.map(function (op) { - return op + "="; - })), _toConsumableArray(LOGICAL_OPERATORS$3.map(function (op) { - return op + "="; - }))); - var BOOLEAN_UNARY_OPERATORS$1 = ["delete", "!"]; - var NUMBER_UNARY_OPERATORS$1 = ["+", "-", "~"]; - var STRING_UNARY_OPERATORS$1 = ["typeof"]; - var UNARY_OPERATORS = ["void", "throw"].concat(BOOLEAN_UNARY_OPERATORS$1, NUMBER_UNARY_OPERATORS$1, STRING_UNARY_OPERATORS$1); - var INHERIT_KEYS = { - optional: ["typeAnnotation", "typeParameters", "returnType"], - force: ["start", "loc", "end"] - }; - var BLOCK_SCOPED_SYMBOL = Symbol["for"]("var used to be block scoped"); - var NOT_LOCAL_BINDING$2 = Symbol["for"]("should not be considered a local binding"); - - var VISITOR_KEYS$5 = {}; - var ALIAS_KEYS = {}; - var FLIPPED_ALIAS_KEYS$3 = {}; - var NODE_FIELDS = {}; - var BUILDER_KEYS = {}; - var DEPRECATED_KEYS$1 = {}; - var NODE_PARENT_VALIDATIONS = {}; - function getType$2(val) { - if (Array.isArray(val)) { - return "array"; - } else if (val === null) { - return "null"; - } else { - return typeof val; - } - } - function validate$6(validate) { - return { - validate: validate - }; - } - function typeIs(typeName) { - return typeof typeName === "string" ? assertNodeType(typeName) : assertNodeType.apply(void 0, _toConsumableArray(typeName)); - } - function validateType(typeName) { - return validate$6(typeIs(typeName)); - } - function validateOptional(validate) { - return { - validate: validate, - optional: true - }; - } - function validateOptionalType(typeName) { - return { - validate: typeIs(typeName), - optional: true - }; - } - function arrayOf(elementType) { - return chain$1(assertValueType("array"), assertEach(elementType)); - } - function arrayOfType(typeName) { - return arrayOf(typeIs(typeName)); - } - function validateArrayOfType(typeName) { - return validate$6(arrayOfType(typeName)); - } - function assertEach(callback) { - function validator(node, key, val) { - if (!Array.isArray(val)) return; - for (var i = 0; i < val.length; i++) { - var subkey = key + "[" + i + "]"; - var v = val[i]; - callback(node, subkey, v); - if (browser$1$1.env.BABEL_TYPES_8_BREAKING) validateChild(node, subkey, v); - } - } - validator.each = callback; - return validator; - } - function assertOneOf() { - for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) { - values[_key] = arguments[_key]; - } - function validate(node, key, val) { - if (values.indexOf(val) < 0) { - throw new TypeError("Property " + key + " expected value to be one of " + JSON.stringify(values) + " but got " + JSON.stringify(val)); - } - } - validate.oneOf = values; - return validate; - } - function assertNodeType() { - for (var _len2 = arguments.length, types = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - types[_key2] = arguments[_key2]; - } - function validate(node, key, val) { - for (var _iterator = _createForOfIteratorHelperLoose(types), _step; !(_step = _iterator()).done;) { - var type = _step.value; - if (is$1(type, val)) { - validateChild(node, key, val); - return; - } - } - throw new TypeError("Property " + key + " of " + node.type + " expected node to be of a type " + JSON.stringify(types) + " but instead got " + JSON.stringify(val == null ? void 0 : val.type)); - } - validate.oneOfNodeTypes = types; - return validate; - } - function assertNodeOrValueType() { - for (var _len3 = arguments.length, types = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { - types[_key3] = arguments[_key3]; - } - function validate(node, key, val) { - for (var _iterator2 = _createForOfIteratorHelperLoose(types), _step2; !(_step2 = _iterator2()).done;) { - var type = _step2.value; - if (getType$2(val) === type || is$1(type, val)) { - validateChild(node, key, val); - return; - } - } - throw new TypeError("Property " + key + " of " + node.type + " expected node to be of a type " + JSON.stringify(types) + " but instead got " + JSON.stringify(val == null ? void 0 : val.type)); - } - validate.oneOfNodeOrValueTypes = types; - return validate; - } - function assertValueType(type) { - function validate(node, key, val) { - var valid = getType$2(val) === type; - if (!valid) { - throw new TypeError("Property " + key + " expected type of " + type + " but got " + getType$2(val)); - } - } - validate.type = type; - return validate; - } - function assertShape(shape) { - function validate(node, key, val) { - var errors = []; - for (var _i = 0, _Object$keys = Object.keys(shape); _i < _Object$keys.length; _i++) { - var property = _Object$keys[_i]; - try { - validateField(node, property, val[property], shape[property]); - } catch (error) { - if (error instanceof TypeError) { - errors.push(error.message); - continue; - } - throw error; - } - } - if (errors.length) { - throw new TypeError("Property " + key + " of " + node.type + " expected to have the following:\n" + errors.join("\n")); - } - } - validate.shapeOf = shape; - return validate; - } - function assertOptionalChainStart() { - function validate(node) { - var _current2; - var current = node; - while (node) { - var _current = current, - type = _current.type; - if (type === "OptionalCallExpression") { - if (current.optional) return; - current = current.callee; - continue; - } - if (type === "OptionalMemberExpression") { - if (current.optional) return; - current = current.object; - continue; - } - break; - } - throw new TypeError("Non-optional " + node.type + " must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from " + ((_current2 = current) == null ? void 0 : _current2.type)); - } - return validate; - } - function chain$1() { - for (var _len4 = arguments.length, fns = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { - fns[_key4] = arguments[_key4]; - } - function validate() { - for (var _iterator3 = _createForOfIteratorHelperLoose(fns), _step3; !(_step3 = _iterator3()).done;) { - var fn = _step3.value; - fn.apply(void 0, arguments); - } - } - validate.chainOf = fns; - if (fns.length >= 2 && "type" in fns[0] && fns[0].type === "array" && !("each" in fns[1])) { - throw new Error("An assertValueType(\"array\") validator can only be followed by an assertEach(...) validator."); - } - return validate; - } - var validTypeOpts = ["aliases", "builder", "deprecatedAlias", "fields", "inherits", "visitor", "validate"]; - var validFieldKeys = ["default", "optional", "validate"]; - var store = {}; - - function defineAliasedType() { - for (var _len5 = arguments.length, aliases = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { - aliases[_key5] = arguments[_key5]; - } - return function (type, opts) { - var _defined2; - if (opts === void 0) { - opts = {}; - } - var defined = opts.aliases; - if (!defined) { - var _store$opts$inherits$, _defined; - if (opts.inherits) defined = (_store$opts$inherits$ = store[opts.inherits].aliases) == null ? void 0 : _store$opts$inherits$.slice(); - (_defined = defined) != null ? _defined : defined = []; - opts.aliases = defined; - } - var additional = aliases.filter(function (a) { - return !defined.includes(a); - }); - (_defined2 = defined).unshift.apply(_defined2, _toConsumableArray(additional)); - return defineType$5(type, opts); - }; - } - function defineType$5(type, opts) { - if (opts === void 0) { - opts = {}; - } - var inherits = opts.inherits && store[opts.inherits] || {}; - var fields = opts.fields; - if (!fields) { - fields = {}; - if (inherits.fields) { - var keys = Object.getOwnPropertyNames(inherits.fields); - for (var _iterator4 = _createForOfIteratorHelperLoose(keys), _step4; !(_step4 = _iterator4()).done;) { - var _key6 = _step4.value; - var field = inherits.fields[_key6]; - var def = field["default"]; - if (Array.isArray(def) ? def.length > 0 : def && typeof def === "object") { - throw new Error("field defaults can only be primitives or empty arrays currently"); - } - fields[_key6] = { - "default": Array.isArray(def) ? [] : def, - optional: field.optional, - validate: field.validate - }; - } - } - } - var visitor = opts.visitor || inherits.visitor || []; - var aliases = opts.aliases || inherits.aliases || []; - var builder = opts.builder || inherits.builder || opts.visitor || []; - for (var _i2 = 0, _Object$keys2 = Object.keys(opts); _i2 < _Object$keys2.length; _i2++) { - var k = _Object$keys2[_i2]; - if (validTypeOpts.indexOf(k) === -1) { - throw new Error("Unknown type option \"" + k + "\" on " + type); - } - } - if (opts.deprecatedAlias) { - DEPRECATED_KEYS$1[opts.deprecatedAlias] = type; - } - - for (var _iterator5 = _createForOfIteratorHelperLoose(visitor.concat(builder)), _step5; !(_step5 = _iterator5()).done;) { - var _key8 = _step5.value; - fields[_key8] = fields[_key8] || {}; - } - for (var _i3 = 0, _Object$keys3 = Object.keys(fields); _i3 < _Object$keys3.length; _i3++) { - var _key7 = _Object$keys3[_i3]; - var _field = fields[_key7]; - if (_field["default"] !== undefined && builder.indexOf(_key7) === -1) { - _field.optional = true; - } - if (_field["default"] === undefined) { - _field["default"] = null; - } else if (!_field.validate && _field["default"] != null) { - _field.validate = assertValueType(getType$2(_field["default"])); - } - for (var _i4 = 0, _Object$keys4 = Object.keys(_field); _i4 < _Object$keys4.length; _i4++) { - var _k = _Object$keys4[_i4]; - if (validFieldKeys.indexOf(_k) === -1) { - throw new Error("Unknown field key \"" + _k + "\" on " + type + "." + _key7); - } - } - } - VISITOR_KEYS$5[type] = opts.visitor = visitor; - BUILDER_KEYS[type] = opts.builder = builder; - NODE_FIELDS[type] = opts.fields = fields; - ALIAS_KEYS[type] = opts.aliases = aliases; - aliases.forEach(function (alias) { - FLIPPED_ALIAS_KEYS$3[alias] = FLIPPED_ALIAS_KEYS$3[alias] || []; - FLIPPED_ALIAS_KEYS$3[alias].push(type); - }); - if (opts.validate) { - NODE_PARENT_VALIDATIONS[type] = opts.validate; - } - store[type] = opts; - } - - var defineType$4 = defineAliasedType("Standardized"); - defineType$4("ArrayExpression", { - fields: { - elements: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeOrValueType("null", "Expression", "SpreadElement"))), - "default": !browser$1$1.env.BABEL_TYPES_8_BREAKING ? [] : undefined - } - }, - visitor: ["elements"], - aliases: ["Expression"] - }); - defineType$4("AssignmentExpression", { - fields: { - operator: { - validate: function () { - if (!browser$1$1.env.BABEL_TYPES_8_BREAKING) { - return assertValueType("string"); - } - var identifier = assertOneOf.apply(void 0, _toConsumableArray(ASSIGNMENT_OPERATORS)); - var pattern = assertOneOf("="); - return function (node, key, val) { - var validator = is$1("Pattern", node.left) ? pattern : identifier; - validator(node, key, val); - }; - }() - }, - left: { - validate: !browser$1$1.env.BABEL_TYPES_8_BREAKING ? assertNodeType("LVal") : assertNodeType("Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") - }, - right: { - validate: assertNodeType("Expression") - } - }, - builder: ["operator", "left", "right"], - visitor: ["left", "right"], - aliases: ["Expression"] - }); - defineType$4("BinaryExpression", { - builder: ["operator", "left", "right"], - fields: { - operator: { - validate: assertOneOf.apply(void 0, _toConsumableArray(BINARY_OPERATORS)) - }, - left: { - validate: function () { - var expression = assertNodeType("Expression"); - var inOp = assertNodeType("Expression", "PrivateName"); - var validator = Object.assign(function (node, key, val) { - var validator = node.operator === "in" ? inOp : expression; - validator(node, key, val); - }, - { - oneOfNodeTypes: ["Expression", "PrivateName"] - }); - return validator; - }() - }, - right: { - validate: assertNodeType("Expression") - } - }, - visitor: ["left", "right"], - aliases: ["Binary", "Expression"] - }); - defineType$4("InterpreterDirective", { - builder: ["value"], - fields: { - value: { - validate: assertValueType("string") - } - } - }); - defineType$4("Directive", { - visitor: ["value"], - fields: { - value: { - validate: assertNodeType("DirectiveLiteral") - } - } - }); - defineType$4("DirectiveLiteral", { - builder: ["value"], - fields: { - value: { - validate: assertValueType("string") - } - } - }); - defineType$4("BlockStatement", { - builder: ["body", "directives"], - visitor: ["directives", "body"], - fields: { - directives: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("Directive"))), - "default": [] - }, - body: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("Statement"))) - } - }, - aliases: ["Scopable", "BlockParent", "Block", "Statement"] - }); - defineType$4("BreakStatement", { - visitor: ["label"], - fields: { - label: { - validate: assertNodeType("Identifier"), - optional: true - } - }, - aliases: ["Statement", "Terminatorless", "CompletionStatement"] - }); - defineType$4("CallExpression", { - visitor: ["callee", "arguments", "typeParameters", "typeArguments"], - builder: ["callee", "arguments"], - aliases: ["Expression"], - fields: Object.assign({ - callee: { - validate: assertNodeType("Expression", "Super", "V8IntrinsicIdentifier") - }, - arguments: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("Expression", "SpreadElement", "JSXNamespacedName", "ArgumentPlaceholder"))) - } - }, !browser$1$1.env.BABEL_TYPES_8_BREAKING ? { - optional: { - validate: assertOneOf(true, false), - optional: true - } - } : {}, { - typeArguments: { - validate: assertNodeType("TypeParameterInstantiation"), - optional: true - }, - typeParameters: { - validate: assertNodeType("TSTypeParameterInstantiation"), - optional: true - } - }) - }); - defineType$4("CatchClause", { - visitor: ["param", "body"], - fields: { - param: { - validate: assertNodeType("Identifier", "ArrayPattern", "ObjectPattern"), - optional: true - }, - body: { - validate: assertNodeType("BlockStatement") - } - }, - aliases: ["Scopable", "BlockParent"] - }); - defineType$4("ConditionalExpression", { - visitor: ["test", "consequent", "alternate"], - fields: { - test: { - validate: assertNodeType("Expression") - }, - consequent: { - validate: assertNodeType("Expression") - }, - alternate: { - validate: assertNodeType("Expression") - } - }, - aliases: ["Expression", "Conditional"] - }); - defineType$4("ContinueStatement", { - visitor: ["label"], - fields: { - label: { - validate: assertNodeType("Identifier"), - optional: true - } - }, - aliases: ["Statement", "Terminatorless", "CompletionStatement"] - }); - defineType$4("DebuggerStatement", { - aliases: ["Statement"] - }); - defineType$4("DoWhileStatement", { - visitor: ["test", "body"], - fields: { - test: { - validate: assertNodeType("Expression") - }, - body: { - validate: assertNodeType("Statement") - } - }, - aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"] - }); - defineType$4("EmptyStatement", { - aliases: ["Statement"] - }); - defineType$4("ExpressionStatement", { - visitor: ["expression"], - fields: { - expression: { - validate: assertNodeType("Expression") - } - }, - aliases: ["Statement", "ExpressionWrapper"] - }); - defineType$4("File", { - builder: ["program", "comments", "tokens"], - visitor: ["program"], - fields: { - program: { - validate: assertNodeType("Program") - }, - comments: { - validate: !browser$1$1.env.BABEL_TYPES_8_BREAKING ? Object.assign(function () {}, { - each: { - oneOfNodeTypes: ["CommentBlock", "CommentLine"] - } - }) : assertEach(assertNodeType("CommentBlock", "CommentLine")), - optional: true - }, - tokens: { - validate: assertEach(Object.assign(function () {}, { - type: "any" - })), - optional: true - } - } - }); - defineType$4("ForInStatement", { - visitor: ["left", "right", "body"], - aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"], - fields: { - left: { - validate: !browser$1$1.env.BABEL_TYPES_8_BREAKING ? assertNodeType("VariableDeclaration", "LVal") : assertNodeType("VariableDeclaration", "Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") - }, - right: { - validate: assertNodeType("Expression") - }, - body: { - validate: assertNodeType("Statement") - } - } - }); - defineType$4("ForStatement", { - visitor: ["init", "test", "update", "body"], - aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop"], - fields: { - init: { - validate: assertNodeType("VariableDeclaration", "Expression"), - optional: true - }, - test: { - validate: assertNodeType("Expression"), - optional: true - }, - update: { - validate: assertNodeType("Expression"), - optional: true - }, - body: { - validate: assertNodeType("Statement") - } - } - }); - var functionCommon = function functionCommon() { - return { - params: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("Identifier", "Pattern", "RestElement"))) - }, - generator: { - "default": false - }, - async: { - "default": false - } - }; - }; - var functionTypeAnnotationCommon = function functionTypeAnnotationCommon() { - return { - returnType: { - validate: assertNodeType("TypeAnnotation", "TSTypeAnnotation", - "Noop"), - optional: true - }, - typeParameters: { - validate: assertNodeType("TypeParameterDeclaration", "TSTypeParameterDeclaration", - "Noop"), - optional: true - } - }; - }; - var functionDeclarationCommon = function functionDeclarationCommon() { - return Object.assign({}, functionCommon(), { - declare: { - validate: assertValueType("boolean"), - optional: true - }, - id: { - validate: assertNodeType("Identifier"), - optional: true - } - }); - }; - - defineType$4("FunctionDeclaration", { - builder: ["id", "params", "body", "generator", "async"], - visitor: ["id", "params", "body", "returnType", "typeParameters"], - fields: Object.assign({}, functionDeclarationCommon(), functionTypeAnnotationCommon(), { - body: { - validate: assertNodeType("BlockStatement") - }, - predicate: { - validate: assertNodeType("DeclaredPredicate", "InferredPredicate"), - optional: true - } - }), - aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Statement", "Pureish", "Declaration"], - validate: function () { - if (!browser$1$1.env.BABEL_TYPES_8_BREAKING) return function () {}; - var identifier = assertNodeType("Identifier"); - return function (parent, key, node) { - if (!is$1("ExportDefaultDeclaration", parent)) { - identifier(node, "id", node.id); - } - }; - }() - }); - defineType$4("FunctionExpression", { - inherits: "FunctionDeclaration", - aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pureish"], - fields: Object.assign({}, functionCommon(), functionTypeAnnotationCommon(), { - id: { - validate: assertNodeType("Identifier"), - optional: true - }, - body: { - validate: assertNodeType("BlockStatement") - }, - predicate: { - validate: assertNodeType("DeclaredPredicate", "InferredPredicate"), - optional: true - } - }) - }); - var patternLikeCommon = function patternLikeCommon() { - return { - typeAnnotation: { - validate: assertNodeType("TypeAnnotation", "TSTypeAnnotation", - "Noop"), - optional: true - }, - decorators: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("Decorator"))), - optional: true - } - }; - }; - defineType$4("Identifier", { - builder: ["name"], - visitor: ["typeAnnotation", "decorators"], - aliases: ["Expression", "PatternLike", "LVal", "TSEntityName"], - fields: Object.assign({}, patternLikeCommon(), { - name: { - validate: chain$1(assertValueType("string"), Object.assign(function (node, key, val) { - if (!browser$1$1.env.BABEL_TYPES_8_BREAKING) return; - if (!isValidIdentifier$1(val, false)) { - throw new TypeError("\"" + val + "\" is not a valid identifier name"); - } - }, { - type: "string" - })) - }, - optional: { - validate: assertValueType("boolean"), - optional: true - } - }), - validate: function validate(parent, key, node) { - if (!browser$1$1.env.BABEL_TYPES_8_BREAKING) return; - var match = /\.(\w+)$/.exec(key); - if (!match) return; - var _match = _slicedToArray(match, 2), - parentKey = _match[1]; - var nonComp = { - computed: false - }; - - if (parentKey === "property") { - if (is$1("MemberExpression", parent, nonComp)) return; - if (is$1("OptionalMemberExpression", parent, nonComp)) return; - } else if (parentKey === "key") { - if (is$1("Property", parent, nonComp)) return; - if (is$1("Method", parent, nonComp)) return; - } else if (parentKey === "exported") { - if (is$1("ExportSpecifier", parent)) return; - } else if (parentKey === "imported") { - if (is$1("ImportSpecifier", parent, { - imported: node - })) return; - } else if (parentKey === "meta") { - if (is$1("MetaProperty", parent, { - meta: node - })) return; - } - if ( - (isKeyword(node.name) || isReservedWord(node.name, false)) && - node.name !== "this") { - throw new TypeError("\"" + node.name + "\" is not a valid identifier"); - } - } - }); - defineType$4("IfStatement", { - visitor: ["test", "consequent", "alternate"], - aliases: ["Statement", "Conditional"], - fields: { - test: { - validate: assertNodeType("Expression") - }, - consequent: { - validate: assertNodeType("Statement") - }, - alternate: { - optional: true, - validate: assertNodeType("Statement") - } - } - }); - defineType$4("LabeledStatement", { - visitor: ["label", "body"], - aliases: ["Statement"], - fields: { - label: { - validate: assertNodeType("Identifier") - }, - body: { - validate: assertNodeType("Statement") - } - } - }); - defineType$4("StringLiteral", { - builder: ["value"], - fields: { - value: { - validate: assertValueType("string") - } - }, - aliases: ["Expression", "Pureish", "Literal", "Immutable"] - }); - defineType$4("NumericLiteral", { - builder: ["value"], - deprecatedAlias: "NumberLiteral", - fields: { - value: { - validate: assertValueType("number") - } - }, - aliases: ["Expression", "Pureish", "Literal", "Immutable"] - }); - defineType$4("NullLiteral", { - aliases: ["Expression", "Pureish", "Literal", "Immutable"] - }); - defineType$4("BooleanLiteral", { - builder: ["value"], - fields: { - value: { - validate: assertValueType("boolean") - } - }, - aliases: ["Expression", "Pureish", "Literal", "Immutable"] - }); - defineType$4("RegExpLiteral", { - builder: ["pattern", "flags"], - deprecatedAlias: "RegexLiteral", - aliases: ["Expression", "Pureish", "Literal"], - fields: { - pattern: { - validate: assertValueType("string") - }, - flags: { - validate: chain$1(assertValueType("string"), Object.assign(function (node, key, val) { - if (!browser$1$1.env.BABEL_TYPES_8_BREAKING) return; - var invalid = /[^gimsuy]/.exec(val); - if (invalid) { - throw new TypeError("\"" + invalid[0] + "\" is not a valid RegExp flag"); - } - }, { - type: "string" - })), - "default": "" - } - } - }); - defineType$4("LogicalExpression", { - builder: ["operator", "left", "right"], - visitor: ["left", "right"], - aliases: ["Binary", "Expression"], - fields: { - operator: { - validate: assertOneOf.apply(void 0, _toConsumableArray(LOGICAL_OPERATORS$3)) - }, - left: { - validate: assertNodeType("Expression") - }, - right: { - validate: assertNodeType("Expression") - } - } - }); - defineType$4("MemberExpression", { - builder: ["object", "property", "computed"].concat(_toConsumableArray(!browser$1$1.env.BABEL_TYPES_8_BREAKING ? ["optional"] : [])), - visitor: ["object", "property"], - aliases: ["Expression", "LVal"], - fields: Object.assign({ - object: { - validate: assertNodeType("Expression", "Super") - }, - property: { - validate: function () { - var normal = assertNodeType("Identifier", "PrivateName"); - var computed = assertNodeType("Expression"); - var validator = function validator(node, key, val) { - var validator = node.computed ? computed : normal; - validator(node, key, val); - }; - validator.oneOfNodeTypes = ["Expression", "Identifier", "PrivateName"]; - return validator; - }() - }, - computed: { - "default": false - } - }, !browser$1$1.env.BABEL_TYPES_8_BREAKING ? { - optional: { - validate: assertOneOf(true, false), - optional: true - } - } : {}) - }); - defineType$4("NewExpression", { - inherits: "CallExpression" - }); - defineType$4("Program", { - visitor: ["directives", "body"], - builder: ["body", "directives", "sourceType", "interpreter"], - fields: { - sourceFile: { - validate: assertValueType("string") - }, - sourceType: { - validate: assertOneOf("script", "module"), - "default": "script" - }, - interpreter: { - validate: assertNodeType("InterpreterDirective"), - "default": null, - optional: true - }, - directives: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("Directive"))), - "default": [] - }, - body: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("Statement"))) - } - }, - aliases: ["Scopable", "BlockParent", "Block"] - }); - defineType$4("ObjectExpression", { - visitor: ["properties"], - aliases: ["Expression"], - fields: { - properties: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("ObjectMethod", "ObjectProperty", "SpreadElement"))) - } - } - }); - defineType$4("ObjectMethod", { - builder: ["kind", "key", "params", "body", "computed", "generator", "async"], - fields: Object.assign({}, functionCommon(), functionTypeAnnotationCommon(), { - kind: Object.assign({ - validate: assertOneOf("method", "get", "set") - }, !browser$1$1.env.BABEL_TYPES_8_BREAKING ? { - "default": "method" - } : {}), - computed: { - "default": false - }, - key: { - validate: function () { - var normal = assertNodeType("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral"); - var computed = assertNodeType("Expression"); - var validator = function validator(node, key, val) { - var validator = node.computed ? computed : normal; - validator(node, key, val); - }; - validator.oneOfNodeTypes = ["Expression", "Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral"]; - return validator; - }() - }, - decorators: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("Decorator"))), - optional: true - }, - body: { - validate: assertNodeType("BlockStatement") - } - }), - visitor: ["key", "params", "body", "decorators", "returnType", "typeParameters"], - aliases: ["UserWhitespacable", "Function", "Scopable", "BlockParent", "FunctionParent", "Method", "ObjectMember"] - }); - defineType$4("ObjectProperty", { - builder: ["key", "value", "computed", "shorthand"].concat(_toConsumableArray(!browser$1$1.env.BABEL_TYPES_8_BREAKING ? ["decorators"] : [])), - fields: { - computed: { - "default": false - }, - key: { - validate: function () { - var normal = assertNodeType("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "DecimalLiteral", "PrivateName"); - var computed = assertNodeType("Expression"); - var validator = Object.assign(function (node, key, val) { - var validator = node.computed ? computed : normal; - validator(node, key, val); - }, { - oneOfNodeTypes: ["Expression", "Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "DecimalLiteral", "PrivateName"] - }); - return validator; - }() - }, - value: { - validate: assertNodeType("Expression", "PatternLike") - }, - shorthand: { - validate: chain$1(assertValueType("boolean"), Object.assign(function (node, key, val) { - if (!browser$1$1.env.BABEL_TYPES_8_BREAKING) return; - if (val && node.computed) { - throw new TypeError("Property shorthand of ObjectProperty cannot be true if computed is true"); - } - }, { - type: "boolean" - }), function (node, key, val) { - if (!browser$1$1.env.BABEL_TYPES_8_BREAKING) return; - if (val && !is$1("Identifier", node.key)) { - throw new TypeError("Property shorthand of ObjectProperty cannot be true if key is not an Identifier"); - } - }), - "default": false - }, - decorators: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("Decorator"))), - optional: true - } - }, - visitor: ["key", "value", "decorators"], - aliases: ["UserWhitespacable", "Property", "ObjectMember"], - validate: function () { - var pattern = assertNodeType("Identifier", "Pattern", "TSAsExpression", "TSSatisfiesExpression", "TSNonNullExpression", "TSTypeAssertion"); - var expression = assertNodeType("Expression"); - return function (parent, key, node) { - if (!browser$1$1.env.BABEL_TYPES_8_BREAKING) return; - var validator = is$1("ObjectPattern", parent) ? pattern : expression; - validator(node, "value", node.value); - }; - }() - }); - defineType$4("RestElement", { - visitor: ["argument", "typeAnnotation"], - builder: ["argument"], - aliases: ["LVal", "PatternLike"], - deprecatedAlias: "RestProperty", - fields: Object.assign({}, patternLikeCommon(), { - argument: { - validate: !browser$1$1.env.BABEL_TYPES_8_BREAKING ? assertNodeType("LVal") : assertNodeType("Identifier", "ArrayPattern", "ObjectPattern", "MemberExpression", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") - }, - optional: { - validate: assertValueType("boolean"), - optional: true - } - }), - validate: function validate(parent, key) { - if (!browser$1$1.env.BABEL_TYPES_8_BREAKING) return; - var match = /(\w+)\[(\d+)\]/.exec(key); - if (!match) throw new Error("Internal Babel error: malformed key."); - var _ref = match, - _ref2 = _slicedToArray(_ref, 3), - listKey = _ref2[1], - index = _ref2[2]; - if (parent[listKey].length > +index + 1) { - throw new TypeError("RestElement must be last element of " + listKey); - } - } - }); - defineType$4("ReturnStatement", { - visitor: ["argument"], - aliases: ["Statement", "Terminatorless", "CompletionStatement"], - fields: { - argument: { - validate: assertNodeType("Expression"), - optional: true - } - } - }); - defineType$4("SequenceExpression", { - visitor: ["expressions"], - fields: { - expressions: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("Expression"))) - } - }, - aliases: ["Expression"] - }); - defineType$4("ParenthesizedExpression", { - visitor: ["expression"], - aliases: ["Expression", "ExpressionWrapper"], - fields: { - expression: { - validate: assertNodeType("Expression") - } - } - }); - defineType$4("SwitchCase", { - visitor: ["test", "consequent"], - fields: { - test: { - validate: assertNodeType("Expression"), - optional: true - }, - consequent: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("Statement"))) - } - } - }); - defineType$4("SwitchStatement", { - visitor: ["discriminant", "cases"], - aliases: ["Statement", "BlockParent", "Scopable"], - fields: { - discriminant: { - validate: assertNodeType("Expression") - }, - cases: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("SwitchCase"))) - } - } - }); - defineType$4("ThisExpression", { - aliases: ["Expression"] - }); - defineType$4("ThrowStatement", { - visitor: ["argument"], - aliases: ["Statement", "Terminatorless", "CompletionStatement"], - fields: { - argument: { - validate: assertNodeType("Expression") - } - } - }); - defineType$4("TryStatement", { - visitor: ["block", "handler", "finalizer"], - aliases: ["Statement"], - fields: { - block: { - validate: chain$1(assertNodeType("BlockStatement"), Object.assign(function (node) { - if (!browser$1$1.env.BABEL_TYPES_8_BREAKING) return; - - if (!node.handler && !node.finalizer) { - throw new TypeError("TryStatement expects either a handler or finalizer, or both"); - } - }, { - oneOfNodeTypes: ["BlockStatement"] - })) - }, - handler: { - optional: true, - validate: assertNodeType("CatchClause") - }, - finalizer: { - optional: true, - validate: assertNodeType("BlockStatement") - } - } - }); - defineType$4("UnaryExpression", { - builder: ["operator", "argument", "prefix"], - fields: { - prefix: { - "default": true - }, - argument: { - validate: assertNodeType("Expression") - }, - operator: { - validate: assertOneOf.apply(void 0, _toConsumableArray(UNARY_OPERATORS)) - } - }, - visitor: ["argument"], - aliases: ["UnaryLike", "Expression"] - }); - defineType$4("UpdateExpression", { - builder: ["operator", "argument", "prefix"], - fields: { - prefix: { - "default": false - }, - argument: { - validate: !browser$1$1.env.BABEL_TYPES_8_BREAKING ? assertNodeType("Expression") : assertNodeType("Identifier", "MemberExpression") - }, - operator: { - validate: assertOneOf.apply(void 0, _toConsumableArray(UPDATE_OPERATORS)) - } - }, - visitor: ["argument"], - aliases: ["Expression"] - }); - defineType$4("VariableDeclaration", { - builder: ["kind", "declarations"], - visitor: ["declarations"], - aliases: ["Statement", "Declaration"], - fields: { - declare: { - validate: assertValueType("boolean"), - optional: true - }, - kind: { - validate: assertOneOf("var", "let", "const", - "using") - }, - declarations: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("VariableDeclarator"))) - } - }, - validate: function validate(parent, key, node) { - if (!browser$1$1.env.BABEL_TYPES_8_BREAKING) return; - if (!is$1("ForXStatement", parent, { - left: node - })) return; - if (node.declarations.length !== 1) { - throw new TypeError("Exactly one VariableDeclarator is required in the VariableDeclaration of a " + parent.type); - } - } - }); - defineType$4("VariableDeclarator", { - visitor: ["id", "init"], - fields: { - id: { - validate: function () { - if (!browser$1$1.env.BABEL_TYPES_8_BREAKING) { - return assertNodeType("LVal"); - } - var normal = assertNodeType("Identifier", "ArrayPattern", "ObjectPattern"); - var without = assertNodeType("Identifier"); - return function (node, key, val) { - var validator = node.init ? normal : without; - validator(node, key, val); - }; - }() - }, - definite: { - optional: true, - validate: assertValueType("boolean") - }, - init: { - optional: true, - validate: assertNodeType("Expression") - } - } - }); - defineType$4("WhileStatement", { - visitor: ["test", "body"], - aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"], - fields: { - test: { - validate: assertNodeType("Expression") - }, - body: { - validate: assertNodeType("Statement") - } - } - }); - defineType$4("WithStatement", { - visitor: ["object", "body"], - aliases: ["Statement"], - fields: { - object: { - validate: assertNodeType("Expression") - }, - body: { - validate: assertNodeType("Statement") - } - } - }); - - defineType$4("AssignmentPattern", { - visitor: ["left", "right", "decorators"], - builder: ["left", "right"], - aliases: ["Pattern", "PatternLike", "LVal"], - fields: Object.assign({}, patternLikeCommon(), { - left: { - validate: assertNodeType("Identifier", "ObjectPattern", "ArrayPattern", "MemberExpression", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") - }, - right: { - validate: assertNodeType("Expression") - }, - decorators: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("Decorator"))), - optional: true - } - }) - }); - defineType$4("ArrayPattern", { - visitor: ["elements", "typeAnnotation"], - builder: ["elements"], - aliases: ["Pattern", "PatternLike", "LVal"], - fields: Object.assign({}, patternLikeCommon(), { - elements: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeOrValueType("null", "PatternLike", "LVal"))) - }, - decorators: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("Decorator"))), - optional: true - }, - optional: { - validate: assertValueType("boolean"), - optional: true - } - }) - }); - defineType$4("ArrowFunctionExpression", { - builder: ["params", "body", "async"], - visitor: ["params", "body", "returnType", "typeParameters"], - aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pureish"], - fields: Object.assign({}, functionCommon(), functionTypeAnnotationCommon(), { - expression: { - validate: assertValueType("boolean") - }, - body: { - validate: assertNodeType("BlockStatement", "Expression") - }, - predicate: { - validate: assertNodeType("DeclaredPredicate", "InferredPredicate"), - optional: true - } - }) - }); - defineType$4("ClassBody", { - visitor: ["body"], - fields: { - body: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("ClassMethod", "ClassPrivateMethod", "ClassProperty", "ClassPrivateProperty", "ClassAccessorProperty", "TSDeclareMethod", "TSIndexSignature", "StaticBlock"))) - } - } - }); - defineType$4("ClassExpression", { - builder: ["id", "superClass", "body", "decorators"], - visitor: ["id", "body", "superClass", "mixins", "typeParameters", "superTypeParameters", "implements", "decorators"], - aliases: ["Scopable", "Class", "Expression"], - fields: { - id: { - validate: assertNodeType("Identifier"), - optional: true - }, - typeParameters: { - validate: assertNodeType("TypeParameterDeclaration", "TSTypeParameterDeclaration", - "Noop"), - optional: true - }, - body: { - validate: assertNodeType("ClassBody") - }, - superClass: { - optional: true, - validate: assertNodeType("Expression") - }, - superTypeParameters: { - validate: assertNodeType("TypeParameterInstantiation", "TSTypeParameterInstantiation"), - optional: true - }, - "implements": { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("TSExpressionWithTypeArguments", "ClassImplements"))), - optional: true - }, - decorators: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("Decorator"))), - optional: true - }, - mixins: { - validate: assertNodeType("InterfaceExtends"), - optional: true - } - } - }); - defineType$4("ClassDeclaration", { - inherits: "ClassExpression", - aliases: ["Scopable", "Class", "Statement", "Declaration"], - fields: { - id: { - validate: assertNodeType("Identifier") - }, - typeParameters: { - validate: assertNodeType("TypeParameterDeclaration", "TSTypeParameterDeclaration", - "Noop"), - optional: true - }, - body: { - validate: assertNodeType("ClassBody") - }, - superClass: { - optional: true, - validate: assertNodeType("Expression") - }, - superTypeParameters: { - validate: assertNodeType("TypeParameterInstantiation", "TSTypeParameterInstantiation"), - optional: true - }, - "implements": { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("TSExpressionWithTypeArguments", "ClassImplements"))), - optional: true - }, - decorators: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("Decorator"))), - optional: true - }, - mixins: { - validate: assertNodeType("InterfaceExtends"), - optional: true - }, - declare: { - validate: assertValueType("boolean"), - optional: true - }, - "abstract": { - validate: assertValueType("boolean"), - optional: true - } - }, - validate: function () { - var identifier = assertNodeType("Identifier"); - return function (parent, key, node) { - if (!browser$1$1.env.BABEL_TYPES_8_BREAKING) return; - if (!is$1("ExportDefaultDeclaration", parent)) { - identifier(node, "id", node.id); - } - }; - }() - }); - defineType$4("ExportAllDeclaration", { - visitor: ["source"], - aliases: ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"], - fields: { - source: { - validate: assertNodeType("StringLiteral") - }, - exportKind: validateOptional(assertOneOf("type", "value")), - assertions: { - optional: true, - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("ImportAttribute"))) - } - } - }); - defineType$4("ExportDefaultDeclaration", { - visitor: ["declaration"], - aliases: ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"], - fields: { - declaration: { - validate: assertNodeType("TSDeclareFunction", "FunctionDeclaration", "ClassDeclaration", "Expression") - }, - exportKind: validateOptional(assertOneOf("value")) - } - }); - defineType$4("ExportNamedDeclaration", { - visitor: ["declaration", "specifiers", "source"], - aliases: ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"], - fields: { - declaration: { - optional: true, - validate: chain$1(assertNodeType("Declaration"), Object.assign(function (node, key, val) { - if (!browser$1$1.env.BABEL_TYPES_8_BREAKING) return; - - if (val && node.specifiers.length) { - throw new TypeError("Only declaration or specifiers is allowed on ExportNamedDeclaration"); - } - }, { - oneOfNodeTypes: ["Declaration"] - }), function (node, key, val) { - if (!browser$1$1.env.BABEL_TYPES_8_BREAKING) return; - - if (val && node.source) { - throw new TypeError("Cannot export a declaration from a source"); - } - }) - }, - assertions: { - optional: true, - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("ImportAttribute"))) - }, - specifiers: { - "default": [], - validate: chain$1(assertValueType("array"), assertEach(function () { - var sourced = assertNodeType("ExportSpecifier", "ExportDefaultSpecifier", "ExportNamespaceSpecifier"); - var sourceless = assertNodeType("ExportSpecifier"); - if (!browser$1$1.env.BABEL_TYPES_8_BREAKING) return sourced; - return function (node, key, val) { - var validator = node.source ? sourced : sourceless; - validator(node, key, val); - }; - }())) - }, - source: { - validate: assertNodeType("StringLiteral"), - optional: true - }, - exportKind: validateOptional(assertOneOf("type", "value")) - } - }); - defineType$4("ExportSpecifier", { - visitor: ["local", "exported"], - aliases: ["ModuleSpecifier"], - fields: { - local: { - validate: assertNodeType("Identifier") - }, - exported: { - validate: assertNodeType("Identifier", "StringLiteral") - }, - exportKind: { - validate: assertOneOf("type", "value"), - optional: true - } - } - }); - defineType$4("ForOfStatement", { - visitor: ["left", "right", "body"], - builder: ["left", "right", "body", "await"], - aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"], - fields: { - left: { - validate: function () { - if (!browser$1$1.env.BABEL_TYPES_8_BREAKING) { - return assertNodeType("VariableDeclaration", "LVal"); - } - var declaration = assertNodeType("VariableDeclaration"); - var lval = assertNodeType("Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression"); - return function (node, key, val) { - if (is$1("VariableDeclaration", val)) { - declaration(node, key, val); - } else { - lval(node, key, val); - } - }; - }() - }, - right: { - validate: assertNodeType("Expression") - }, - body: { - validate: assertNodeType("Statement") - }, - "await": { - "default": false - } - } - }); - defineType$4("ImportDeclaration", { - visitor: ["specifiers", "source"], - aliases: ["Statement", "Declaration", "ModuleDeclaration"], - fields: { - assertions: { - optional: true, - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("ImportAttribute"))) - }, - module: { - optional: true, - validate: assertValueType("boolean") - }, - specifiers: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("ImportSpecifier", "ImportDefaultSpecifier", "ImportNamespaceSpecifier"))) - }, - source: { - validate: assertNodeType("StringLiteral") - }, - importKind: { - validate: assertOneOf("type", "typeof", "value"), - optional: true - } - } - }); - defineType$4("ImportDefaultSpecifier", { - visitor: ["local"], - aliases: ["ModuleSpecifier"], - fields: { - local: { - validate: assertNodeType("Identifier") - } - } - }); - defineType$4("ImportNamespaceSpecifier", { - visitor: ["local"], - aliases: ["ModuleSpecifier"], - fields: { - local: { - validate: assertNodeType("Identifier") - } - } - }); - defineType$4("ImportSpecifier", { - visitor: ["local", "imported"], - aliases: ["ModuleSpecifier"], - fields: { - local: { - validate: assertNodeType("Identifier") - }, - imported: { - validate: assertNodeType("Identifier", "StringLiteral") - }, - importKind: { - validate: assertOneOf("type", "typeof", "value"), - optional: true - } - } - }); - defineType$4("MetaProperty", { - visitor: ["meta", "property"], - aliases: ["Expression"], - fields: { - meta: { - validate: chain$1(assertNodeType("Identifier"), Object.assign(function (node, key, val) { - if (!browser$1$1.env.BABEL_TYPES_8_BREAKING) return; - var property; - switch (val.name) { - case "function": - property = "sent"; - break; - case "new": - property = "target"; - break; - case "import": - property = "meta"; - break; - } - if (!is$1("Identifier", node.property, { - name: property - })) { - throw new TypeError("Unrecognised MetaProperty"); - } - }, { - oneOfNodeTypes: ["Identifier"] - })) - }, - property: { - validate: assertNodeType("Identifier") - } - } - }); - var classMethodOrPropertyCommon = function classMethodOrPropertyCommon() { - return { - "abstract": { - validate: assertValueType("boolean"), - optional: true - }, - accessibility: { - validate: assertOneOf("public", "private", "protected"), - optional: true - }, - "static": { - "default": false - }, - override: { - "default": false - }, - computed: { - "default": false - }, - optional: { - validate: assertValueType("boolean"), - optional: true - }, - key: { - validate: chain$1(function () { - var normal = assertNodeType("Identifier", "StringLiteral", "NumericLiteral"); - var computed = assertNodeType("Expression"); - return function (node, key, val) { - var validator = node.computed ? computed : normal; - validator(node, key, val); - }; - }(), assertNodeType("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "Expression")) - } - }; - }; - var classMethodOrDeclareMethodCommon = function classMethodOrDeclareMethodCommon() { - return Object.assign({}, functionCommon(), classMethodOrPropertyCommon(), { - params: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("Identifier", "Pattern", "RestElement", "TSParameterProperty"))) - }, - kind: { - validate: assertOneOf("get", "set", "method", "constructor"), - "default": "method" - }, - access: { - validate: chain$1(assertValueType("string"), assertOneOf("public", "private", "protected")), - optional: true - }, - decorators: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("Decorator"))), - optional: true - } - }); - }; - defineType$4("ClassMethod", { - aliases: ["Function", "Scopable", "BlockParent", "FunctionParent", "Method"], - builder: ["kind", "key", "params", "body", "computed", "static", "generator", "async"], - visitor: ["key", "params", "body", "decorators", "returnType", "typeParameters"], - fields: Object.assign({}, classMethodOrDeclareMethodCommon(), functionTypeAnnotationCommon(), { - body: { - validate: assertNodeType("BlockStatement") - } - }) - }); - defineType$4("ObjectPattern", { - visitor: ["properties", "typeAnnotation", "decorators"], - - builder: ["properties"], - aliases: ["Pattern", "PatternLike", "LVal"], - fields: Object.assign({}, patternLikeCommon(), { - properties: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("RestElement", "ObjectProperty"))) - } - }) - }); - defineType$4("SpreadElement", { - visitor: ["argument"], - aliases: ["UnaryLike"], - deprecatedAlias: "SpreadProperty", - fields: { - argument: { - validate: assertNodeType("Expression") - } - } - }); - defineType$4("Super", { - aliases: ["Expression"] - }); - defineType$4("TaggedTemplateExpression", { - visitor: ["tag", "quasi", "typeParameters"], - builder: ["tag", "quasi"], - aliases: ["Expression"], - fields: { - tag: { - validate: assertNodeType("Expression") - }, - quasi: { - validate: assertNodeType("TemplateLiteral") - }, - typeParameters: { - validate: assertNodeType("TypeParameterInstantiation", "TSTypeParameterInstantiation"), - optional: true - } - } - }); - defineType$4("TemplateElement", { - builder: ["value", "tail"], - fields: { - value: { - validate: chain$1(assertShape({ - raw: { - validate: assertValueType("string") - }, - cooked: { - validate: assertValueType("string"), - optional: true - } - }), function templateElementCookedValidator(node) { - var raw = node.value.raw; - var unterminatedCalled = false; - var error = function error() { - throw new Error("Internal @babel/types error."); - }; - var _readStringContents = readStringContents("template", raw, 0, 0, 0, { - unterminated: function unterminated() { - unterminatedCalled = true; - }, - strictNumericEscape: error, - invalidEscapeSequence: error, - numericSeparatorInEscapeSequence: error, - unexpectedNumericSeparator: error, - invalidDigit: error, - invalidCodePoint: error - }), - str = _readStringContents.str, - firstInvalidLoc = _readStringContents.firstInvalidLoc; - if (!unterminatedCalled) throw new Error("Invalid raw"); - node.value.cooked = firstInvalidLoc ? null : str; - }) - }, - tail: { - "default": false - } - } - }); - defineType$4("TemplateLiteral", { - visitor: ["quasis", "expressions"], - aliases: ["Expression", "Literal"], - fields: { - quasis: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("TemplateElement"))) - }, - expressions: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("Expression", - "TSType")), function (node, key, val) { - if (node.quasis.length !== val.length + 1) { - throw new TypeError("Number of " + node.type + " quasis should be exactly one more than the number of expressions.\nExpected " + (val.length + 1) + " quasis but got " + node.quasis.length); - } - }) - } - } - }); - defineType$4("YieldExpression", { - builder: ["argument", "delegate"], - visitor: ["argument"], - aliases: ["Expression", "Terminatorless"], - fields: { - delegate: { - validate: chain$1(assertValueType("boolean"), Object.assign(function (node, key, val) { - if (!browser$1$1.env.BABEL_TYPES_8_BREAKING) return; - if (val && !node.argument) { - throw new TypeError("Property delegate of YieldExpression cannot be true if there is no argument"); - } - }, { - type: "boolean" - })), - "default": false - }, - argument: { - optional: true, - validate: assertNodeType("Expression") - } - } - }); - - defineType$4("AwaitExpression", { - builder: ["argument"], - visitor: ["argument"], - aliases: ["Expression", "Terminatorless"], - fields: { - argument: { - validate: assertNodeType("Expression") - } - } - }); - - defineType$4("Import", { - aliases: ["Expression"] - }); - - defineType$4("BigIntLiteral", { - builder: ["value"], - fields: { - value: { - validate: assertValueType("string") - } - }, - aliases: ["Expression", "Pureish", "Literal", "Immutable"] - }); - defineType$4("ExportNamespaceSpecifier", { - visitor: ["exported"], - aliases: ["ModuleSpecifier"], - fields: { - exported: { - validate: assertNodeType("Identifier") - } - } - }); - defineType$4("OptionalMemberExpression", { - builder: ["object", "property", "computed", "optional"], - visitor: ["object", "property"], - aliases: ["Expression"], - fields: { - object: { - validate: assertNodeType("Expression") - }, - property: { - validate: function () { - var normal = assertNodeType("Identifier"); - var computed = assertNodeType("Expression"); - var validator = Object.assign(function (node, key, val) { - var validator = node.computed ? computed : normal; - validator(node, key, val); - }, - { - oneOfNodeTypes: ["Expression", "Identifier"] - }); - return validator; - }() - }, - computed: { - "default": false - }, - optional: { - validate: !browser$1$1.env.BABEL_TYPES_8_BREAKING ? assertValueType("boolean") : chain$1(assertValueType("boolean"), assertOptionalChainStart()) - } - } - }); - defineType$4("OptionalCallExpression", { - visitor: ["callee", "arguments", "typeParameters", "typeArguments"], - builder: ["callee", "arguments", "optional"], - aliases: ["Expression"], - fields: { - callee: { - validate: assertNodeType("Expression") - }, - arguments: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("Expression", "SpreadElement", "JSXNamespacedName", "ArgumentPlaceholder"))) - }, - optional: { - validate: !browser$1$1.env.BABEL_TYPES_8_BREAKING ? assertValueType("boolean") : chain$1(assertValueType("boolean"), assertOptionalChainStart()) - }, - typeArguments: { - validate: assertNodeType("TypeParameterInstantiation"), - optional: true - }, - typeParameters: { - validate: assertNodeType("TSTypeParameterInstantiation"), - optional: true - } - } - }); - - defineType$4("ClassProperty", { - visitor: ["key", "value", "typeAnnotation", "decorators"], - builder: ["key", "value", "typeAnnotation", "decorators", "computed", "static"], - aliases: ["Property"], - fields: Object.assign({}, classMethodOrPropertyCommon(), { - value: { - validate: assertNodeType("Expression"), - optional: true - }, - definite: { - validate: assertValueType("boolean"), - optional: true - }, - typeAnnotation: { - validate: assertNodeType("TypeAnnotation", "TSTypeAnnotation", - "Noop"), - optional: true - }, - decorators: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("Decorator"))), - optional: true - }, - readonly: { - validate: assertValueType("boolean"), - optional: true - }, - declare: { - validate: assertValueType("boolean"), - optional: true - }, - variance: { - validate: assertNodeType("Variance"), - optional: true - } - }) - }); - defineType$4("ClassAccessorProperty", { - visitor: ["key", "value", "typeAnnotation", "decorators"], - builder: ["key", "value", "typeAnnotation", "decorators", "computed", "static"], - aliases: ["Property", "Accessor"], - fields: Object.assign({}, classMethodOrPropertyCommon(), { - key: { - validate: chain$1(function () { - var normal = assertNodeType("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "PrivateName"); - var computed = assertNodeType("Expression"); - return function (node, key, val) { - var validator = node.computed ? computed : normal; - validator(node, key, val); - }; - }(), assertNodeType("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "Expression", "PrivateName")) - }, - value: { - validate: assertNodeType("Expression"), - optional: true - }, - definite: { - validate: assertValueType("boolean"), - optional: true - }, - typeAnnotation: { - validate: assertNodeType("TypeAnnotation", "TSTypeAnnotation", - "Noop"), - optional: true - }, - decorators: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("Decorator"))), - optional: true - }, - readonly: { - validate: assertValueType("boolean"), - optional: true - }, - declare: { - validate: assertValueType("boolean"), - optional: true - }, - variance: { - validate: assertNodeType("Variance"), - optional: true - } - }) - }); - defineType$4("ClassPrivateProperty", { - visitor: ["key", "value", "decorators", "typeAnnotation"], - builder: ["key", "value", "decorators", "static"], - aliases: ["Property", "Private"], - fields: { - key: { - validate: assertNodeType("PrivateName") - }, - value: { - validate: assertNodeType("Expression"), - optional: true - }, - typeAnnotation: { - validate: assertNodeType("TypeAnnotation", "TSTypeAnnotation", - "Noop"), - optional: true - }, - decorators: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("Decorator"))), - optional: true - }, - "static": { - validate: assertValueType("boolean"), - "default": false - }, - readonly: { - validate: assertValueType("boolean"), - optional: true - }, - definite: { - validate: assertValueType("boolean"), - optional: true - }, - variance: { - validate: assertNodeType("Variance"), - optional: true - } - } - }); - defineType$4("ClassPrivateMethod", { - builder: ["kind", "key", "params", "body", "static"], - visitor: ["key", "params", "body", "decorators", "returnType", "typeParameters"], - aliases: ["Function", "Scopable", "BlockParent", "FunctionParent", "Method", "Private"], - fields: Object.assign({}, classMethodOrDeclareMethodCommon(), functionTypeAnnotationCommon(), { - kind: { - validate: assertOneOf("get", "set", "method"), - "default": "method" - }, - key: { - validate: assertNodeType("PrivateName") - }, - body: { - validate: assertNodeType("BlockStatement") - } - }) - }); - defineType$4("PrivateName", { - visitor: ["id"], - aliases: ["Private"], - fields: { - id: { - validate: assertNodeType("Identifier") - } - } - }); - defineType$4("StaticBlock", { - visitor: ["body"], - fields: { - body: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("Statement"))) - } - }, - aliases: ["Scopable", "BlockParent", "FunctionParent"] - }); - - var defineType$3 = defineAliasedType("Flow"); - var defineInterfaceishType = function defineInterfaceishType(name) { - defineType$3(name, { - builder: ["id", "typeParameters", "extends", "body"], - visitor: ["id", "typeParameters", "extends", "mixins", "implements", "body"], - aliases: ["FlowDeclaration", "Statement", "Declaration"], - fields: { - id: validateType("Identifier"), - typeParameters: validateOptionalType("TypeParameterDeclaration"), - "extends": validateOptional(arrayOfType("InterfaceExtends")), - mixins: validateOptional(arrayOfType("InterfaceExtends")), - "implements": validateOptional(arrayOfType("ClassImplements")), - body: validateType("ObjectTypeAnnotation") - } - }); - }; - defineType$3("AnyTypeAnnotation", { - aliases: ["FlowType", "FlowBaseAnnotation"] - }); - defineType$3("ArrayTypeAnnotation", { - visitor: ["elementType"], - aliases: ["FlowType"], - fields: { - elementType: validateType("FlowType") - } - }); - defineType$3("BooleanTypeAnnotation", { - aliases: ["FlowType", "FlowBaseAnnotation"] - }); - defineType$3("BooleanLiteralTypeAnnotation", { - builder: ["value"], - aliases: ["FlowType"], - fields: { - value: validate$6(assertValueType("boolean")) - } - }); - defineType$3("NullLiteralTypeAnnotation", { - aliases: ["FlowType", "FlowBaseAnnotation"] - }); - defineType$3("ClassImplements", { - visitor: ["id", "typeParameters"], - fields: { - id: validateType("Identifier"), - typeParameters: validateOptionalType("TypeParameterInstantiation") - } - }); - defineInterfaceishType("DeclareClass"); - defineType$3("DeclareFunction", { - visitor: ["id"], - aliases: ["FlowDeclaration", "Statement", "Declaration"], - fields: { - id: validateType("Identifier"), - predicate: validateOptionalType("DeclaredPredicate") - } - }); - defineInterfaceishType("DeclareInterface"); - defineType$3("DeclareModule", { - builder: ["id", "body", "kind"], - visitor: ["id", "body"], - aliases: ["FlowDeclaration", "Statement", "Declaration"], - fields: { - id: validateType(["Identifier", "StringLiteral"]), - body: validateType("BlockStatement"), - kind: validateOptional(assertOneOf("CommonJS", "ES")) - } - }); - defineType$3("DeclareModuleExports", { - visitor: ["typeAnnotation"], - aliases: ["FlowDeclaration", "Statement", "Declaration"], - fields: { - typeAnnotation: validateType("TypeAnnotation") - } - }); - defineType$3("DeclareTypeAlias", { - visitor: ["id", "typeParameters", "right"], - aliases: ["FlowDeclaration", "Statement", "Declaration"], - fields: { - id: validateType("Identifier"), - typeParameters: validateOptionalType("TypeParameterDeclaration"), - right: validateType("FlowType") - } - }); - defineType$3("DeclareOpaqueType", { - visitor: ["id", "typeParameters", "supertype"], - aliases: ["FlowDeclaration", "Statement", "Declaration"], - fields: { - id: validateType("Identifier"), - typeParameters: validateOptionalType("TypeParameterDeclaration"), - supertype: validateOptionalType("FlowType"), - impltype: validateOptionalType("FlowType") - } - }); - defineType$3("DeclareVariable", { - visitor: ["id"], - aliases: ["FlowDeclaration", "Statement", "Declaration"], - fields: { - id: validateType("Identifier") - } - }); - defineType$3("DeclareExportDeclaration", { - visitor: ["declaration", "specifiers", "source"], - aliases: ["FlowDeclaration", "Statement", "Declaration"], - fields: { - declaration: validateOptionalType("Flow"), - specifiers: validateOptional(arrayOfType(["ExportSpecifier", "ExportNamespaceSpecifier"])), - source: validateOptionalType("StringLiteral"), - "default": validateOptional(assertValueType("boolean")) - } - }); - defineType$3("DeclareExportAllDeclaration", { - visitor: ["source"], - aliases: ["FlowDeclaration", "Statement", "Declaration"], - fields: { - source: validateType("StringLiteral"), - exportKind: validateOptional(assertOneOf("type", "value")) - } - }); - defineType$3("DeclaredPredicate", { - visitor: ["value"], - aliases: ["FlowPredicate"], - fields: { - value: validateType("Flow") - } - }); - defineType$3("ExistsTypeAnnotation", { - aliases: ["FlowType"] - }); - defineType$3("FunctionTypeAnnotation", { - visitor: ["typeParameters", "params", "rest", "returnType"], - aliases: ["FlowType"], - fields: { - typeParameters: validateOptionalType("TypeParameterDeclaration"), - params: validate$6(arrayOfType("FunctionTypeParam")), - rest: validateOptionalType("FunctionTypeParam"), - "this": validateOptionalType("FunctionTypeParam"), - returnType: validateType("FlowType") - } - }); - defineType$3("FunctionTypeParam", { - visitor: ["name", "typeAnnotation"], - fields: { - name: validateOptionalType("Identifier"), - typeAnnotation: validateType("FlowType"), - optional: validateOptional(assertValueType("boolean")) - } - }); - defineType$3("GenericTypeAnnotation", { - visitor: ["id", "typeParameters"], - aliases: ["FlowType"], - fields: { - id: validateType(["Identifier", "QualifiedTypeIdentifier"]), - typeParameters: validateOptionalType("TypeParameterInstantiation") - } - }); - defineType$3("InferredPredicate", { - aliases: ["FlowPredicate"] - }); - defineType$3("InterfaceExtends", { - visitor: ["id", "typeParameters"], - fields: { - id: validateType(["Identifier", "QualifiedTypeIdentifier"]), - typeParameters: validateOptionalType("TypeParameterInstantiation") - } - }); - defineInterfaceishType("InterfaceDeclaration"); - defineType$3("InterfaceTypeAnnotation", { - visitor: ["extends", "body"], - aliases: ["FlowType"], - fields: { - "extends": validateOptional(arrayOfType("InterfaceExtends")), - body: validateType("ObjectTypeAnnotation") - } - }); - defineType$3("IntersectionTypeAnnotation", { - visitor: ["types"], - aliases: ["FlowType"], - fields: { - types: validate$6(arrayOfType("FlowType")) - } - }); - defineType$3("MixedTypeAnnotation", { - aliases: ["FlowType", "FlowBaseAnnotation"] - }); - defineType$3("EmptyTypeAnnotation", { - aliases: ["FlowType", "FlowBaseAnnotation"] - }); - defineType$3("NullableTypeAnnotation", { - visitor: ["typeAnnotation"], - aliases: ["FlowType"], - fields: { - typeAnnotation: validateType("FlowType") - } - }); - defineType$3("NumberLiteralTypeAnnotation", { - builder: ["value"], - aliases: ["FlowType"], - fields: { - value: validate$6(assertValueType("number")) - } - }); - defineType$3("NumberTypeAnnotation", { - aliases: ["FlowType", "FlowBaseAnnotation"] - }); - defineType$3("ObjectTypeAnnotation", { - visitor: ["properties", "indexers", "callProperties", "internalSlots"], - aliases: ["FlowType"], - builder: ["properties", "indexers", "callProperties", "internalSlots", "exact"], - fields: { - properties: validate$6(arrayOfType(["ObjectTypeProperty", "ObjectTypeSpreadProperty"])), - indexers: { - validate: arrayOfType("ObjectTypeIndexer"), - optional: true, - "default": [] - }, - callProperties: { - validate: arrayOfType("ObjectTypeCallProperty"), - optional: true, - "default": [] - }, - internalSlots: { - validate: arrayOfType("ObjectTypeInternalSlot"), - optional: true, - "default": [] - }, - exact: { - validate: assertValueType("boolean"), - "default": false - }, - inexact: validateOptional(assertValueType("boolean")) - } - }); - defineType$3("ObjectTypeInternalSlot", { - visitor: ["id", "value", "optional", "static", "method"], - aliases: ["UserWhitespacable"], - fields: { - id: validateType("Identifier"), - value: validateType("FlowType"), - optional: validate$6(assertValueType("boolean")), - "static": validate$6(assertValueType("boolean")), - method: validate$6(assertValueType("boolean")) - } - }); - defineType$3("ObjectTypeCallProperty", { - visitor: ["value"], - aliases: ["UserWhitespacable"], - fields: { - value: validateType("FlowType"), - "static": validate$6(assertValueType("boolean")) - } - }); - defineType$3("ObjectTypeIndexer", { - visitor: ["id", "key", "value", "variance"], - aliases: ["UserWhitespacable"], - fields: { - id: validateOptionalType("Identifier"), - key: validateType("FlowType"), - value: validateType("FlowType"), - "static": validate$6(assertValueType("boolean")), - variance: validateOptionalType("Variance") - } - }); - defineType$3("ObjectTypeProperty", { - visitor: ["key", "value", "variance"], - aliases: ["UserWhitespacable"], - fields: { - key: validateType(["Identifier", "StringLiteral"]), - value: validateType("FlowType"), - kind: validate$6(assertOneOf("init", "get", "set")), - "static": validate$6(assertValueType("boolean")), - proto: validate$6(assertValueType("boolean")), - optional: validate$6(assertValueType("boolean")), - variance: validateOptionalType("Variance"), - method: validate$6(assertValueType("boolean")) - } - }); - defineType$3("ObjectTypeSpreadProperty", { - visitor: ["argument"], - aliases: ["UserWhitespacable"], - fields: { - argument: validateType("FlowType") - } - }); - defineType$3("OpaqueType", { - visitor: ["id", "typeParameters", "supertype", "impltype"], - aliases: ["FlowDeclaration", "Statement", "Declaration"], - fields: { - id: validateType("Identifier"), - typeParameters: validateOptionalType("TypeParameterDeclaration"), - supertype: validateOptionalType("FlowType"), - impltype: validateType("FlowType") - } - }); - defineType$3("QualifiedTypeIdentifier", { - visitor: ["id", "qualification"], - fields: { - id: validateType("Identifier"), - qualification: validateType(["Identifier", "QualifiedTypeIdentifier"]) - } - }); - defineType$3("StringLiteralTypeAnnotation", { - builder: ["value"], - aliases: ["FlowType"], - fields: { - value: validate$6(assertValueType("string")) - } - }); - defineType$3("StringTypeAnnotation", { - aliases: ["FlowType", "FlowBaseAnnotation"] - }); - defineType$3("SymbolTypeAnnotation", { - aliases: ["FlowType", "FlowBaseAnnotation"] - }); - defineType$3("ThisTypeAnnotation", { - aliases: ["FlowType", "FlowBaseAnnotation"] - }); - defineType$3("TupleTypeAnnotation", { - visitor: ["types"], - aliases: ["FlowType"], - fields: { - types: validate$6(arrayOfType("FlowType")) - } - }); - defineType$3("TypeofTypeAnnotation", { - visitor: ["argument"], - aliases: ["FlowType"], - fields: { - argument: validateType("FlowType") - } - }); - defineType$3("TypeAlias", { - visitor: ["id", "typeParameters", "right"], - aliases: ["FlowDeclaration", "Statement", "Declaration"], - fields: { - id: validateType("Identifier"), - typeParameters: validateOptionalType("TypeParameterDeclaration"), - right: validateType("FlowType") - } - }); - defineType$3("TypeAnnotation", { - visitor: ["typeAnnotation"], - fields: { - typeAnnotation: validateType("FlowType") - } - }); - defineType$3("TypeCastExpression", { - visitor: ["expression", "typeAnnotation"], - aliases: ["ExpressionWrapper", "Expression"], - fields: { - expression: validateType("Expression"), - typeAnnotation: validateType("TypeAnnotation") - } - }); - defineType$3("TypeParameter", { - visitor: ["bound", "default", "variance"], - fields: { - name: validate$6(assertValueType("string")), - bound: validateOptionalType("TypeAnnotation"), - "default": validateOptionalType("FlowType"), - variance: validateOptionalType("Variance") - } - }); - defineType$3("TypeParameterDeclaration", { - visitor: ["params"], - fields: { - params: validate$6(arrayOfType("TypeParameter")) - } - }); - defineType$3("TypeParameterInstantiation", { - visitor: ["params"], - fields: { - params: validate$6(arrayOfType("FlowType")) - } - }); - defineType$3("UnionTypeAnnotation", { - visitor: ["types"], - aliases: ["FlowType"], - fields: { - types: validate$6(arrayOfType("FlowType")) - } - }); - defineType$3("Variance", { - builder: ["kind"], - fields: { - kind: validate$6(assertOneOf("minus", "plus")) - } - }); - defineType$3("VoidTypeAnnotation", { - aliases: ["FlowType", "FlowBaseAnnotation"] - }); - - defineType$3("EnumDeclaration", { - aliases: ["Statement", "Declaration"], - visitor: ["id", "body"], - fields: { - id: validateType("Identifier"), - body: validateType(["EnumBooleanBody", "EnumNumberBody", "EnumStringBody", "EnumSymbolBody"]) - } - }); - defineType$3("EnumBooleanBody", { - aliases: ["EnumBody"], - visitor: ["members"], - fields: { - explicitType: validate$6(assertValueType("boolean")), - members: validateArrayOfType("EnumBooleanMember"), - hasUnknownMembers: validate$6(assertValueType("boolean")) - } - }); - defineType$3("EnumNumberBody", { - aliases: ["EnumBody"], - visitor: ["members"], - fields: { - explicitType: validate$6(assertValueType("boolean")), - members: validateArrayOfType("EnumNumberMember"), - hasUnknownMembers: validate$6(assertValueType("boolean")) - } - }); - defineType$3("EnumStringBody", { - aliases: ["EnumBody"], - visitor: ["members"], - fields: { - explicitType: validate$6(assertValueType("boolean")), - members: validateArrayOfType(["EnumStringMember", "EnumDefaultedMember"]), - hasUnknownMembers: validate$6(assertValueType("boolean")) - } - }); - defineType$3("EnumSymbolBody", { - aliases: ["EnumBody"], - visitor: ["members"], - fields: { - members: validateArrayOfType("EnumDefaultedMember"), - hasUnknownMembers: validate$6(assertValueType("boolean")) - } - }); - defineType$3("EnumBooleanMember", { - aliases: ["EnumMember"], - visitor: ["id"], - fields: { - id: validateType("Identifier"), - init: validateType("BooleanLiteral") - } - }); - defineType$3("EnumNumberMember", { - aliases: ["EnumMember"], - visitor: ["id", "init"], - fields: { - id: validateType("Identifier"), - init: validateType("NumericLiteral") - } - }); - defineType$3("EnumStringMember", { - aliases: ["EnumMember"], - visitor: ["id", "init"], - fields: { - id: validateType("Identifier"), - init: validateType("StringLiteral") - } - }); - defineType$3("EnumDefaultedMember", { - aliases: ["EnumMember"], - visitor: ["id"], - fields: { - id: validateType("Identifier") - } - }); - defineType$3("IndexedAccessType", { - visitor: ["objectType", "indexType"], - aliases: ["FlowType"], - fields: { - objectType: validateType("FlowType"), - indexType: validateType("FlowType") - } - }); - defineType$3("OptionalIndexedAccessType", { - visitor: ["objectType", "indexType"], - aliases: ["FlowType"], - fields: { - objectType: validateType("FlowType"), - indexType: validateType("FlowType"), - optional: validate$6(assertValueType("boolean")) - } - }); - - var defineType$2 = defineAliasedType("JSX"); - defineType$2("JSXAttribute", { - visitor: ["name", "value"], - aliases: ["Immutable"], - fields: { - name: { - validate: assertNodeType("JSXIdentifier", "JSXNamespacedName") - }, - value: { - optional: true, - validate: assertNodeType("JSXElement", "JSXFragment", "StringLiteral", "JSXExpressionContainer") - } - } - }); - defineType$2("JSXClosingElement", { - visitor: ["name"], - aliases: ["Immutable"], - fields: { - name: { - validate: assertNodeType("JSXIdentifier", "JSXMemberExpression", "JSXNamespacedName") - } - } - }); - defineType$2("JSXElement", { - builder: ["openingElement", "closingElement", "children", "selfClosing"], - visitor: ["openingElement", "children", "closingElement"], - aliases: ["Immutable", "Expression"], - fields: Object.assign({ - openingElement: { - validate: assertNodeType("JSXOpeningElement") - }, - closingElement: { - optional: true, - validate: assertNodeType("JSXClosingElement") - }, - children: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("JSXText", "JSXExpressionContainer", "JSXSpreadChild", "JSXElement", "JSXFragment"))) - } - }, { - selfClosing: { - validate: assertValueType("boolean"), - optional: true - } - }) - }); - defineType$2("JSXEmptyExpression", {}); - defineType$2("JSXExpressionContainer", { - visitor: ["expression"], - aliases: ["Immutable"], - fields: { - expression: { - validate: assertNodeType("Expression", "JSXEmptyExpression") - } - } - }); - defineType$2("JSXSpreadChild", { - visitor: ["expression"], - aliases: ["Immutable"], - fields: { - expression: { - validate: assertNodeType("Expression") - } - } - }); - defineType$2("JSXIdentifier", { - builder: ["name"], - fields: { - name: { - validate: assertValueType("string") - } - } - }); - defineType$2("JSXMemberExpression", { - visitor: ["object", "property"], - fields: { - object: { - validate: assertNodeType("JSXMemberExpression", "JSXIdentifier") - }, - property: { - validate: assertNodeType("JSXIdentifier") - } - } - }); - defineType$2("JSXNamespacedName", { - visitor: ["namespace", "name"], - fields: { - namespace: { - validate: assertNodeType("JSXIdentifier") - }, - name: { - validate: assertNodeType("JSXIdentifier") - } - } - }); - defineType$2("JSXOpeningElement", { - builder: ["name", "attributes", "selfClosing"], - visitor: ["name", "attributes"], - aliases: ["Immutable"], - fields: { - name: { - validate: assertNodeType("JSXIdentifier", "JSXMemberExpression", "JSXNamespacedName") - }, - selfClosing: { - "default": false - }, - attributes: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("JSXAttribute", "JSXSpreadAttribute"))) - }, - typeParameters: { - validate: assertNodeType("TypeParameterInstantiation", "TSTypeParameterInstantiation"), - optional: true - } - } - }); - defineType$2("JSXSpreadAttribute", { - visitor: ["argument"], - fields: { - argument: { - validate: assertNodeType("Expression") - } - } - }); - defineType$2("JSXText", { - aliases: ["Immutable"], - builder: ["value"], - fields: { - value: { - validate: assertValueType("string") - } - } - }); - defineType$2("JSXFragment", { - builder: ["openingFragment", "closingFragment", "children"], - visitor: ["openingFragment", "children", "closingFragment"], - aliases: ["Immutable", "Expression"], - fields: { - openingFragment: { - validate: assertNodeType("JSXOpeningFragment") - }, - closingFragment: { - validate: assertNodeType("JSXClosingFragment") - }, - children: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("JSXText", "JSXExpressionContainer", "JSXSpreadChild", "JSXElement", "JSXFragment"))) - } - } - }); - defineType$2("JSXOpeningFragment", { - aliases: ["Immutable"] - }); - defineType$2("JSXClosingFragment", { - aliases: ["Immutable"] - }); - - var PLACEHOLDERS = ["Identifier", "StringLiteral", "Expression", "Statement", "Declaration", "BlockStatement", "ClassBody", "Pattern"]; - var PLACEHOLDERS_ALIAS = { - Declaration: ["Statement"], - Pattern: ["PatternLike", "LVal"] - }; - for (var _i$2 = 0, _PLACEHOLDERS = PLACEHOLDERS; _i$2 < _PLACEHOLDERS.length; _i$2++) { - var type$2 = _PLACEHOLDERS[_i$2]; - var alias = ALIAS_KEYS[type$2]; - if (alias != null && alias.length) PLACEHOLDERS_ALIAS[type$2] = alias; - } - var PLACEHOLDERS_FLIPPED_ALIAS = {}; - Object.keys(PLACEHOLDERS_ALIAS).forEach(function (type) { - PLACEHOLDERS_ALIAS[type].forEach(function (alias) { - if (!Object.hasOwnProperty.call(PLACEHOLDERS_FLIPPED_ALIAS, alias)) { - PLACEHOLDERS_FLIPPED_ALIAS[alias] = []; - } - PLACEHOLDERS_FLIPPED_ALIAS[alias].push(type); - }); - }); - - var defineType$1 = defineAliasedType("Miscellaneous"); - { - defineType$1("Noop", { - visitor: [] - }); - } - defineType$1("Placeholder", { - visitor: [], - builder: ["expectedNode", "name"], - fields: { - name: { - validate: assertNodeType("Identifier") - }, - expectedNode: { - validate: assertOneOf.apply(void 0, _toConsumableArray(PLACEHOLDERS)) - } - } - }); - defineType$1("V8IntrinsicIdentifier", { - builder: ["name"], - fields: { - name: { - validate: assertValueType("string") - } - } - }); - - defineType$5("ArgumentPlaceholder", {}); - defineType$5("BindExpression", { - visitor: ["object", "callee"], - aliases: ["Expression"], - fields: !browser$1$1.env.BABEL_TYPES_8_BREAKING ? { - object: { - validate: Object.assign(function () {}, { - oneOfNodeTypes: ["Expression"] - }) - }, - callee: { - validate: Object.assign(function () {}, { - oneOfNodeTypes: ["Expression"] - }) - } - } : { - object: { - validate: assertNodeType("Expression") - }, - callee: { - validate: assertNodeType("Expression") - } - } - }); - defineType$5("ImportAttribute", { - visitor: ["key", "value"], - fields: { - key: { - validate: assertNodeType("Identifier", "StringLiteral") - }, - value: { - validate: assertNodeType("StringLiteral") - } - } - }); - defineType$5("Decorator", { - visitor: ["expression"], - fields: { - expression: { - validate: assertNodeType("Expression") - } - } - }); - defineType$5("DoExpression", { - visitor: ["body"], - builder: ["body", "async"], - aliases: ["Expression"], - fields: { - body: { - validate: assertNodeType("BlockStatement") - }, - async: { - validate: assertValueType("boolean"), - "default": false - } - } - }); - defineType$5("ExportDefaultSpecifier", { - visitor: ["exported"], - aliases: ["ModuleSpecifier"], - fields: { - exported: { - validate: assertNodeType("Identifier") - } - } - }); - defineType$5("RecordExpression", { - visitor: ["properties"], - aliases: ["Expression"], - fields: { - properties: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("ObjectProperty", "SpreadElement"))) - } - } - }); - defineType$5("TupleExpression", { - fields: { - elements: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("Expression", "SpreadElement"))), - "default": [] - } - }, - visitor: ["elements"], - aliases: ["Expression"] - }); - defineType$5("DecimalLiteral", { - builder: ["value"], - fields: { - value: { - validate: assertValueType("string") - } - }, - aliases: ["Expression", "Pureish", "Literal", "Immutable"] - }); - - defineType$5("ModuleExpression", { - visitor: ["body"], - fields: { - body: { - validate: assertNodeType("Program") - } - }, - aliases: ["Expression"] - }); - - defineType$5("TopicReference", { - aliases: ["Expression"] - }); - - defineType$5("PipelineTopicExpression", { - builder: ["expression"], - visitor: ["expression"], - fields: { - expression: { - validate: assertNodeType("Expression") - } - }, - aliases: ["Expression"] - }); - defineType$5("PipelineBareFunction", { - builder: ["callee"], - visitor: ["callee"], - fields: { - callee: { - validate: assertNodeType("Expression") - } - }, - aliases: ["Expression"] - }); - defineType$5("PipelinePrimaryTopicReference", { - aliases: ["Expression"] - }); - - var defineType = defineAliasedType("TypeScript"); - var bool$7 = assertValueType("boolean"); - var tSFunctionTypeAnnotationCommon = function tSFunctionTypeAnnotationCommon() { - return { - returnType: { - validate: - assertNodeType("TSTypeAnnotation", "Noop"), - optional: true - }, - typeParameters: { - validate: - assertNodeType("TSTypeParameterDeclaration", "Noop"), - optional: true - } - }; - }; - defineType("TSParameterProperty", { - aliases: ["LVal"], - visitor: ["parameter"], - fields: { - accessibility: { - validate: assertOneOf("public", "private", "protected"), - optional: true - }, - readonly: { - validate: assertValueType("boolean"), - optional: true - }, - parameter: { - validate: assertNodeType("Identifier", "AssignmentPattern") - }, - override: { - validate: assertValueType("boolean"), - optional: true - }, - decorators: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("Decorator"))), - optional: true - } - } - }); - defineType("TSDeclareFunction", { - aliases: ["Statement", "Declaration"], - visitor: ["id", "typeParameters", "params", "returnType"], - fields: Object.assign({}, functionDeclarationCommon(), tSFunctionTypeAnnotationCommon()) - }); - defineType("TSDeclareMethod", { - visitor: ["decorators", "key", "typeParameters", "params", "returnType"], - fields: Object.assign({}, classMethodOrDeclareMethodCommon(), tSFunctionTypeAnnotationCommon()) - }); - defineType("TSQualifiedName", { - aliases: ["TSEntityName"], - visitor: ["left", "right"], - fields: { - left: validateType("TSEntityName"), - right: validateType("Identifier") - } - }); - var signatureDeclarationCommon = function signatureDeclarationCommon() { - var _ref; - return _ref = { - typeParameters: validateOptionalType("TSTypeParameterDeclaration") - }, _ref["parameters"] = validateArrayOfType(["Identifier", "RestElement"]), _ref["typeAnnotation"] = validateOptionalType("TSTypeAnnotation"), _ref; - }; - var callConstructSignatureDeclaration = { - aliases: ["TSTypeElement"], - visitor: ["typeParameters", "parameters", "typeAnnotation"], - fields: signatureDeclarationCommon() - }; - defineType("TSCallSignatureDeclaration", callConstructSignatureDeclaration); - defineType("TSConstructSignatureDeclaration", callConstructSignatureDeclaration); - var namedTypeElementCommon = function namedTypeElementCommon() { - return { - key: validateType("Expression"), - computed: { - "default": false - }, - optional: validateOptional(bool$7) - }; - }; - defineType("TSPropertySignature", { - aliases: ["TSTypeElement"], - visitor: ["key", "typeAnnotation", "initializer"], - fields: Object.assign({}, namedTypeElementCommon(), { - readonly: validateOptional(bool$7), - typeAnnotation: validateOptionalType("TSTypeAnnotation"), - initializer: validateOptionalType("Expression"), - kind: { - validate: assertOneOf("get", "set") - } - }) - }); - defineType("TSMethodSignature", { - aliases: ["TSTypeElement"], - visitor: ["key", "typeParameters", "parameters", "typeAnnotation"], - fields: Object.assign({}, signatureDeclarationCommon(), namedTypeElementCommon(), { - kind: { - validate: assertOneOf("method", "get", "set") - } - }) - }); - defineType("TSIndexSignature", { - aliases: ["TSTypeElement"], - visitor: ["parameters", "typeAnnotation"], - fields: { - readonly: validateOptional(bool$7), - "static": validateOptional(bool$7), - parameters: validateArrayOfType("Identifier"), - typeAnnotation: validateOptionalType("TSTypeAnnotation") - } - }); - var tsKeywordTypes = ["TSAnyKeyword", "TSBooleanKeyword", "TSBigIntKeyword", "TSIntrinsicKeyword", "TSNeverKeyword", "TSNullKeyword", "TSNumberKeyword", "TSObjectKeyword", "TSStringKeyword", "TSSymbolKeyword", "TSUndefinedKeyword", "TSUnknownKeyword", "TSVoidKeyword"]; - for (var _i$1 = 0, _tsKeywordTypes = tsKeywordTypes; _i$1 < _tsKeywordTypes.length; _i$1++) { - var type$1 = _tsKeywordTypes[_i$1]; - defineType(type$1, { - aliases: ["TSType", "TSBaseType"], - visitor: [], - fields: {} - }); - } - defineType("TSThisType", { - aliases: ["TSType", "TSBaseType"], - visitor: [], - fields: {} - }); - var fnOrCtrBase = { - aliases: ["TSType"], - visitor: ["typeParameters", "parameters", "typeAnnotation"] - }; - defineType("TSFunctionType", Object.assign({}, fnOrCtrBase, { - fields: signatureDeclarationCommon() - })); - defineType("TSConstructorType", Object.assign({}, fnOrCtrBase, { - fields: Object.assign({}, signatureDeclarationCommon(), { - "abstract": validateOptional(bool$7) - }) - })); - defineType("TSTypeReference", { - aliases: ["TSType"], - visitor: ["typeName", "typeParameters"], - fields: { - typeName: validateType("TSEntityName"), - typeParameters: validateOptionalType("TSTypeParameterInstantiation") - } - }); - defineType("TSTypePredicate", { - aliases: ["TSType"], - visitor: ["parameterName", "typeAnnotation"], - builder: ["parameterName", "typeAnnotation", "asserts"], - fields: { - parameterName: validateType(["Identifier", "TSThisType"]), - typeAnnotation: validateOptionalType("TSTypeAnnotation"), - asserts: validateOptional(bool$7) - } - }); - defineType("TSTypeQuery", { - aliases: ["TSType"], - visitor: ["exprName", "typeParameters"], - fields: { - exprName: validateType(["TSEntityName", "TSImportType"]), - typeParameters: validateOptionalType("TSTypeParameterInstantiation") - } - }); - defineType("TSTypeLiteral", { - aliases: ["TSType"], - visitor: ["members"], - fields: { - members: validateArrayOfType("TSTypeElement") - } - }); - defineType("TSArrayType", { - aliases: ["TSType"], - visitor: ["elementType"], - fields: { - elementType: validateType("TSType") - } - }); - defineType("TSTupleType", { - aliases: ["TSType"], - visitor: ["elementTypes"], - fields: { - elementTypes: validateArrayOfType(["TSType", "TSNamedTupleMember"]) - } - }); - defineType("TSOptionalType", { - aliases: ["TSType"], - visitor: ["typeAnnotation"], - fields: { - typeAnnotation: validateType("TSType") - } - }); - defineType("TSRestType", { - aliases: ["TSType"], - visitor: ["typeAnnotation"], - fields: { - typeAnnotation: validateType("TSType") - } - }); - defineType("TSNamedTupleMember", { - visitor: ["label", "elementType"], - builder: ["label", "elementType", "optional"], - fields: { - label: validateType("Identifier"), - optional: { - validate: bool$7, - "default": false - }, - elementType: validateType("TSType") - } - }); - var unionOrIntersection = { - aliases: ["TSType"], - visitor: ["types"], - fields: { - types: validateArrayOfType("TSType") - } - }; - defineType("TSUnionType", unionOrIntersection); - defineType("TSIntersectionType", unionOrIntersection); - defineType("TSConditionalType", { - aliases: ["TSType"], - visitor: ["checkType", "extendsType", "trueType", "falseType"], - fields: { - checkType: validateType("TSType"), - extendsType: validateType("TSType"), - trueType: validateType("TSType"), - falseType: validateType("TSType") - } - }); - defineType("TSInferType", { - aliases: ["TSType"], - visitor: ["typeParameter"], - fields: { - typeParameter: validateType("TSTypeParameter") - } - }); - defineType("TSParenthesizedType", { - aliases: ["TSType"], - visitor: ["typeAnnotation"], - fields: { - typeAnnotation: validateType("TSType") - } - }); - defineType("TSTypeOperator", { - aliases: ["TSType"], - visitor: ["typeAnnotation"], - fields: { - operator: validate$6(assertValueType("string")), - typeAnnotation: validateType("TSType") - } - }); - defineType("TSIndexedAccessType", { - aliases: ["TSType"], - visitor: ["objectType", "indexType"], - fields: { - objectType: validateType("TSType"), - indexType: validateType("TSType") - } - }); - defineType("TSMappedType", { - aliases: ["TSType"], - visitor: ["typeParameter", "typeAnnotation", "nameType"], - fields: { - readonly: validateOptional(assertOneOf(true, false, "+", "-")), - typeParameter: validateType("TSTypeParameter"), - optional: validateOptional(assertOneOf(true, false, "+", "-")), - typeAnnotation: validateOptionalType("TSType"), - nameType: validateOptionalType("TSType") - } - }); - defineType("TSLiteralType", { - aliases: ["TSType", "TSBaseType"], - visitor: ["literal"], - fields: { - literal: { - validate: function () { - var unaryExpression = assertNodeType("NumericLiteral", "BigIntLiteral"); - var unaryOperator = assertOneOf("-"); - var literal = assertNodeType("NumericLiteral", "StringLiteral", "BooleanLiteral", "BigIntLiteral", "TemplateLiteral"); - function validator(parent, key, node) { - if (is$1("UnaryExpression", node)) { - unaryOperator(node, "operator", node.operator); - unaryExpression(node, "argument", node.argument); - } else { - literal(parent, key, node); - } - } - validator.oneOfNodeTypes = ["NumericLiteral", "StringLiteral", "BooleanLiteral", "BigIntLiteral", "TemplateLiteral", "UnaryExpression"]; - return validator; - }() - } - } - }); - defineType("TSExpressionWithTypeArguments", { - aliases: ["TSType"], - visitor: ["expression", "typeParameters"], - fields: { - expression: validateType("TSEntityName"), - typeParameters: validateOptionalType("TSTypeParameterInstantiation") - } - }); - defineType("TSInterfaceDeclaration", { - aliases: ["Statement", "Declaration"], - visitor: ["id", "typeParameters", "extends", "body"], - fields: { - declare: validateOptional(bool$7), - id: validateType("Identifier"), - typeParameters: validateOptionalType("TSTypeParameterDeclaration"), - "extends": validateOptional(arrayOfType("TSExpressionWithTypeArguments")), - body: validateType("TSInterfaceBody") - } - }); - defineType("TSInterfaceBody", { - visitor: ["body"], - fields: { - body: validateArrayOfType("TSTypeElement") - } - }); - defineType("TSTypeAliasDeclaration", { - aliases: ["Statement", "Declaration"], - visitor: ["id", "typeParameters", "typeAnnotation"], - fields: { - declare: validateOptional(bool$7), - id: validateType("Identifier"), - typeParameters: validateOptionalType("TSTypeParameterDeclaration"), - typeAnnotation: validateType("TSType") - } - }); - defineType("TSInstantiationExpression", { - aliases: ["Expression"], - visitor: ["expression", "typeParameters"], - fields: { - expression: validateType("Expression"), - typeParameters: validateOptionalType("TSTypeParameterInstantiation") - } - }); - var TSTypeExpression$1 = { - aliases: ["Expression", "LVal", "PatternLike"], - visitor: ["expression", "typeAnnotation"], - fields: { - expression: validateType("Expression"), - typeAnnotation: validateType("TSType") - } - }; - defineType("TSAsExpression", TSTypeExpression$1); - defineType("TSSatisfiesExpression", TSTypeExpression$1); - defineType("TSTypeAssertion", { - aliases: ["Expression", "LVal", "PatternLike"], - visitor: ["typeAnnotation", "expression"], - fields: { - typeAnnotation: validateType("TSType"), - expression: validateType("Expression") - } - }); - defineType("TSEnumDeclaration", { - aliases: ["Statement", "Declaration"], - visitor: ["id", "members"], - fields: { - declare: validateOptional(bool$7), - "const": validateOptional(bool$7), - id: validateType("Identifier"), - members: validateArrayOfType("TSEnumMember"), - initializer: validateOptionalType("Expression") - } - }); - defineType("TSEnumMember", { - visitor: ["id", "initializer"], - fields: { - id: validateType(["Identifier", "StringLiteral"]), - initializer: validateOptionalType("Expression") - } - }); - defineType("TSModuleDeclaration", { - aliases: ["Statement", "Declaration"], - visitor: ["id", "body"], - fields: { - declare: validateOptional(bool$7), - global: validateOptional(bool$7), - id: validateType(["Identifier", "StringLiteral"]), - body: validateType(["TSModuleBlock", "TSModuleDeclaration"]) - } - }); - defineType("TSModuleBlock", { - aliases: ["Scopable", "Block", "BlockParent", "FunctionParent"], - visitor: ["body"], - fields: { - body: validateArrayOfType("Statement") - } - }); - defineType("TSImportType", { - aliases: ["TSType"], - visitor: ["argument", "qualifier", "typeParameters"], - fields: { - argument: validateType("StringLiteral"), - qualifier: validateOptionalType("TSEntityName"), - typeParameters: validateOptionalType("TSTypeParameterInstantiation") - } - }); - defineType("TSImportEqualsDeclaration", { - aliases: ["Statement"], - visitor: ["id", "moduleReference"], - fields: { - isExport: validate$6(bool$7), - id: validateType("Identifier"), - moduleReference: validateType(["TSEntityName", "TSExternalModuleReference"]), - importKind: { - validate: assertOneOf("type", "value"), - optional: true - } - } - }); - defineType("TSExternalModuleReference", { - visitor: ["expression"], - fields: { - expression: validateType("StringLiteral") - } - }); - defineType("TSNonNullExpression", { - aliases: ["Expression", "LVal", "PatternLike"], - visitor: ["expression"], - fields: { - expression: validateType("Expression") - } - }); - defineType("TSExportAssignment", { - aliases: ["Statement"], - visitor: ["expression"], - fields: { - expression: validateType("Expression") - } - }); - defineType("TSNamespaceExportDeclaration", { - aliases: ["Statement"], - visitor: ["id"], - fields: { - id: validateType("Identifier") - } - }); - defineType("TSTypeAnnotation", { - visitor: ["typeAnnotation"], - fields: { - typeAnnotation: { - validate: assertNodeType("TSType") - } - } - }); - defineType("TSTypeParameterInstantiation", { - visitor: ["params"], - fields: { - params: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("TSType"))) - } - } - }); - defineType("TSTypeParameterDeclaration", { - visitor: ["params"], - fields: { - params: { - validate: chain$1(assertValueType("array"), assertEach(assertNodeType("TSTypeParameter"))) - } - } - }); - defineType("TSTypeParameter", { - builder: ["constraint", "default", "name"], - visitor: ["constraint", "default"], - fields: { - name: { - validate: assertValueType("string") - }, - "in": { - validate: assertValueType("boolean"), - optional: true - }, - out: { - validate: assertValueType("boolean"), - optional: true - }, - constraint: { - validate: assertNodeType("TSType"), - optional: true - }, - "default": { - validate: assertNodeType("TSType"), - optional: true - } - } - }); - - toFastProperties(VISITOR_KEYS$5); - toFastProperties(ALIAS_KEYS); - toFastProperties(FLIPPED_ALIAS_KEYS$3); - toFastProperties(NODE_FIELDS); - toFastProperties(BUILDER_KEYS); - toFastProperties(DEPRECATED_KEYS$1); - toFastProperties(PLACEHOLDERS_ALIAS); - toFastProperties(PLACEHOLDERS_FLIPPED_ALIAS); - var TYPES$1 = [].concat(Object.keys(VISITOR_KEYS$5), Object.keys(FLIPPED_ALIAS_KEYS$3), Object.keys(DEPRECATED_KEYS$1)); - - function validate$5(node, key, val) { - if (!node) return; - var fields = NODE_FIELDS[node.type]; - if (!fields) return; - var field = fields[key]; - validateField(node, key, val, field); - validateChild(node, key, val); - } - function validateField(node, key, val, field) { - if (!(field != null && field.validate)) return; - if (field.optional && val == null) return; - field.validate(node, key, val); - } - function validateChild(node, key, val) { - if (val == null) return; - var validate = NODE_PARENT_VALIDATIONS[val.type]; - if (!validate) return; - validate(node, key, val); - } - - function validateNode(node) { - var keys = BUILDER_KEYS[node.type]; - for (var _iterator = _createForOfIteratorHelperLoose(keys), _step; !(_step = _iterator()).done;) { - var key = _step.value; - validate$5(node, key, node[key]); - } - return node; - } - - function arrayExpression$2(elements) { - if (elements === void 0) { - elements = []; - } - return validateNode({ - type: "ArrayExpression", - elements: elements - }); - } - function assignmentExpression$d(operator, left, right) { - return validateNode({ - type: "AssignmentExpression", - operator: operator, - left: left, - right: right - }); - } - function binaryExpression$5(operator, left, right) { - return validateNode({ - type: "BinaryExpression", - operator: operator, - left: left, - right: right - }); - } - function interpreterDirective$1(value) { - return validateNode({ - type: "InterpreterDirective", - value: value - }); - } - function directive$1(value) { - return validateNode({ - type: "Directive", - value: value - }); - } - function directiveLiteral$1(value) { - return validateNode({ - type: "DirectiveLiteral", - value: value - }); - } - function blockStatement$6(body, directives) { - if (directives === void 0) { - directives = []; - } - return validateNode({ - type: "BlockStatement", - body: body, - directives: directives - }); - } - function breakStatement(label) { - if (label === void 0) { - label = null; - } - return validateNode({ - type: "BreakStatement", - label: label - }); - } - function callExpression$e(callee, _arguments) { - return validateNode({ - type: "CallExpression", - callee: callee, - arguments: _arguments - }); - } - function catchClause(param, body) { - if (param === void 0) { - param = null; - } - return validateNode({ - type: "CatchClause", - param: param, - body: body - }); - } - function conditionalExpression$4(test, consequent, alternate) { - return validateNode({ - type: "ConditionalExpression", - test: test, - consequent: consequent, - alternate: alternate - }); - } - function continueStatement(label) { - if (label === void 0) { - label = null; - } - return validateNode({ - type: "ContinueStatement", - label: label - }); - } - function debuggerStatement() { - return { - type: "DebuggerStatement" - }; - } - function doWhileStatement(test, body) { - return validateNode({ - type: "DoWhileStatement", - test: test, - body: body - }); - } - function emptyStatement$1() { - return { - type: "EmptyStatement" - }; - } - function expressionStatement$a(expression) { - return validateNode({ - type: "ExpressionStatement", - expression: expression - }); - } - function file$2(program, comments, tokens) { - if (comments === void 0) { - comments = null; - } - if (tokens === void 0) { - tokens = null; - } - return validateNode({ - type: "File", - program: program, - comments: comments, - tokens: tokens - }); - } - function forInStatement(left, right, body) { - return validateNode({ - type: "ForInStatement", - left: left, - right: right, - body: body - }); - } - function forStatement(init, test, update, body) { - if (init === void 0) { - init = null; - } - if (test === void 0) { - test = null; - } - if (update === void 0) { - update = null; - } - return validateNode({ - type: "ForStatement", - init: init, - test: test, - update: update, - body: body - }); - } - function functionDeclaration(id, params, body, generator, async) { - if (id === void 0) { - id = null; - } - if (generator === void 0) { - generator = false; - } - if (async === void 0) { - async = false; - } - return validateNode({ - type: "FunctionDeclaration", - id: id, - params: params, - body: body, - generator: generator, - async: async - }); - } - function functionExpression$3(id, params, body, generator, async) { - if (id === void 0) { - id = null; - } - if (generator === void 0) { - generator = false; - } - if (async === void 0) { - async = false; - } - return validateNode({ - type: "FunctionExpression", - id: id, - params: params, - body: body, - generator: generator, - async: async - }); - } - function identifier$j(name) { - return validateNode({ - type: "Identifier", - name: name - }); - } - function ifStatement(test, consequent, alternate) { - if (alternate === void 0) { - alternate = null; - } - return validateNode({ - type: "IfStatement", - test: test, - consequent: consequent, - alternate: alternate - }); - } - function labeledStatement(label, body) { - return validateNode({ - type: "LabeledStatement", - label: label, - body: body - }); - } - function stringLiteral$8(value) { - return validateNode({ - type: "StringLiteral", - value: value - }); - } - function numericLiteral$8(value) { - return validateNode({ - type: "NumericLiteral", - value: value - }); - } - function nullLiteral$2() { - return { - type: "NullLiteral" - }; - } - function booleanLiteral$5(value) { - return validateNode({ - type: "BooleanLiteral", - value: value - }); - } - function regExpLiteral(pattern, flags) { - if (flags === void 0) { - flags = ""; - } - return validateNode({ - type: "RegExpLiteral", - pattern: pattern, - flags: flags - }); - } - function logicalExpression$3(operator, left, right) { - return validateNode({ - type: "LogicalExpression", - operator: operator, - left: left, - right: right - }); - } - function memberExpression$c(object, property, computed, optional) { - if (computed === void 0) { - computed = false; - } - if (optional === void 0) { - optional = null; - } - return validateNode({ - type: "MemberExpression", - object: object, - property: property, - computed: computed, - optional: optional - }); - } - function newExpression(callee, _arguments) { - return validateNode({ - type: "NewExpression", - callee: callee, - arguments: _arguments - }); - } - function program$3(body, directives, sourceType, interpreter) { - if (directives === void 0) { - directives = []; - } - if (sourceType === void 0) { - sourceType = "script"; - } - if (interpreter === void 0) { - interpreter = null; - } - return validateNode({ - type: "Program", - body: body, - directives: directives, - sourceType: sourceType, - interpreter: interpreter, - sourceFile: null - }); - } - function objectExpression$4(properties) { - return validateNode({ - type: "ObjectExpression", - properties: properties - }); - } - function objectMethod(kind, key, params, body, computed, generator, async) { - if (kind === void 0) { - kind = "method"; - } - if (computed === void 0) { - computed = false; - } - if (generator === void 0) { - generator = false; - } - if (async === void 0) { - async = false; - } - return validateNode({ - type: "ObjectMethod", - kind: kind, - key: key, - params: params, - body: body, - computed: computed, - generator: generator, - async: async - }); - } - function objectProperty$2(key, value, computed, shorthand, decorators) { - if (computed === void 0) { - computed = false; - } - if (shorthand === void 0) { - shorthand = false; - } - if (decorators === void 0) { - decorators = null; - } - return validateNode({ - type: "ObjectProperty", - key: key, - value: value, - computed: computed, - shorthand: shorthand, - decorators: decorators - }); - } - function restElement$2(argument) { - return validateNode({ - type: "RestElement", - argument: argument - }); - } - function returnStatement$3(argument) { - if (argument === void 0) { - argument = null; - } - return validateNode({ - type: "ReturnStatement", - argument: argument - }); - } - function sequenceExpression$7(expressions) { - return validateNode({ - type: "SequenceExpression", - expressions: expressions - }); - } - function parenthesizedExpression(expression) { - return validateNode({ - type: "ParenthesizedExpression", - expression: expression - }); - } - function switchCase(test, consequent) { - if (test === void 0) { - test = null; - } - return validateNode({ - type: "SwitchCase", - test: test, - consequent: consequent - }); - } - function switchStatement(discriminant, cases) { - return validateNode({ - type: "SwitchStatement", - discriminant: discriminant, - cases: cases - }); - } - function thisExpression$4() { - return { - type: "ThisExpression" - }; - } - function throwStatement(argument) { - return validateNode({ - type: "ThrowStatement", - argument: argument - }); - } - function tryStatement(block, handler, finalizer) { - if (handler === void 0) { - handler = null; - } - if (finalizer === void 0) { - finalizer = null; - } - return validateNode({ - type: "TryStatement", - block: block, - handler: handler, - finalizer: finalizer - }); - } - function unaryExpression$7(operator, argument, prefix) { - if (prefix === void 0) { - prefix = true; - } - return validateNode({ - type: "UnaryExpression", - operator: operator, - argument: argument, - prefix: prefix - }); - } - function updateExpression$1(operator, argument, prefix) { - if (prefix === void 0) { - prefix = false; - } - return validateNode({ - type: "UpdateExpression", - operator: operator, - argument: argument, - prefix: prefix - }); - } - function variableDeclaration$8(kind, declarations) { - return validateNode({ - type: "VariableDeclaration", - kind: kind, - declarations: declarations - }); - } - function variableDeclarator$8(id, init) { - if (init === void 0) { - init = null; - } - return validateNode({ - type: "VariableDeclarator", - id: id, - init: init - }); - } - function whileStatement(test, body) { - return validateNode({ - type: "WhileStatement", - test: test, - body: body - }); - } - function withStatement(object, body) { - return validateNode({ - type: "WithStatement", - object: object, - body: body - }); - } - function assignmentPattern(left, right) { - return validateNode({ - type: "AssignmentPattern", - left: left, - right: right - }); - } - function arrayPattern(elements) { - return validateNode({ - type: "ArrayPattern", - elements: elements - }); - } - function arrowFunctionExpression$4(params, body, async) { - if (async === void 0) { - async = false; - } - return validateNode({ - type: "ArrowFunctionExpression", - params: params, - body: body, - async: async, - expression: null - }); - } - function classBody(body) { - return validateNode({ - type: "ClassBody", - body: body - }); - } - function classExpression(id, superClass, body, decorators) { - if (id === void 0) { - id = null; - } - if (superClass === void 0) { - superClass = null; - } - if (decorators === void 0) { - decorators = null; - } - return validateNode({ - type: "ClassExpression", - id: id, - superClass: superClass, - body: body, - decorators: decorators - }); - } - function classDeclaration(id, superClass, body, decorators) { - if (superClass === void 0) { - superClass = null; - } - if (decorators === void 0) { - decorators = null; - } - return validateNode({ - type: "ClassDeclaration", - id: id, - superClass: superClass, - body: body, - decorators: decorators - }); - } - function exportAllDeclaration(source) { - return validateNode({ - type: "ExportAllDeclaration", - source: source - }); - } - function exportDefaultDeclaration(declaration) { - return validateNode({ - type: "ExportDefaultDeclaration", - declaration: declaration - }); - } - function exportNamedDeclaration$2(declaration, specifiers, source) { - if (declaration === void 0) { - declaration = null; - } - if (specifiers === void 0) { - specifiers = []; - } - if (source === void 0) { - source = null; - } - return validateNode({ - type: "ExportNamedDeclaration", - declaration: declaration, - specifiers: specifiers, - source: source - }); - } - function exportSpecifier$2(local, exported) { - return validateNode({ - type: "ExportSpecifier", - local: local, - exported: exported - }); - } - function forOfStatement(left, right, body, _await) { - if (_await === void 0) { - _await = false; - } - return validateNode({ - type: "ForOfStatement", - left: left, - right: right, - body: body, - "await": _await - }); - } - function importDeclaration$1(specifiers, source) { - return validateNode({ - type: "ImportDeclaration", - specifiers: specifiers, - source: source - }); - } - function importDefaultSpecifier$1(local) { - return validateNode({ - type: "ImportDefaultSpecifier", - local: local - }); - } - function importNamespaceSpecifier$1(local) { - return validateNode({ - type: "ImportNamespaceSpecifier", - local: local - }); - } - function importSpecifier$1(local, imported) { - return validateNode({ - type: "ImportSpecifier", - local: local, - imported: imported - }); - } - function metaProperty$1(meta, property) { - return validateNode({ - type: "MetaProperty", - meta: meta, - property: property - }); - } - function classMethod(kind, key, params, body, computed, _static, generator, async) { - if (kind === void 0) { - kind = "method"; - } - if (computed === void 0) { - computed = false; - } - if (_static === void 0) { - _static = false; - } - if (generator === void 0) { - generator = false; - } - if (async === void 0) { - async = false; - } - return validateNode({ - type: "ClassMethod", - kind: kind, - key: key, - params: params, - body: body, - computed: computed, - "static": _static, - generator: generator, - async: async - }); - } - function objectPattern$1(properties) { - return validateNode({ - type: "ObjectPattern", - properties: properties - }); - } - function spreadElement$2(argument) { - return validateNode({ - type: "SpreadElement", - argument: argument - }); - } - function _super$1() { - return { - type: "Super" - }; - } - function taggedTemplateExpression(tag, quasi) { - return validateNode({ - type: "TaggedTemplateExpression", - tag: tag, - quasi: quasi - }); - } - function templateElement(value, tail) { - if (tail === void 0) { - tail = false; - } - return validateNode({ - type: "TemplateElement", - value: value, - tail: tail - }); - } - function templateLiteral(quasis, expressions) { - return validateNode({ - type: "TemplateLiteral", - quasis: quasis, - expressions: expressions - }); - } - function yieldExpression$2(argument, delegate) { - if (argument === void 0) { - argument = null; - } - if (delegate === void 0) { - delegate = false; - } - return validateNode({ - type: "YieldExpression", - argument: argument, - delegate: delegate - }); - } - function awaitExpression$1(argument) { - return validateNode({ - type: "AwaitExpression", - argument: argument - }); - } - function _import() { - return { - type: "Import" - }; - } - function bigIntLiteral(value) { - return validateNode({ - type: "BigIntLiteral", - value: value - }); - } - function exportNamespaceSpecifier(exported) { - return validateNode({ - type: "ExportNamespaceSpecifier", - exported: exported - }); - } - function optionalMemberExpression$2(object, property, computed, optional) { - if (computed === void 0) { - computed = false; - } - return validateNode({ - type: "OptionalMemberExpression", - object: object, - property: property, - computed: computed, - optional: optional - }); - } - function optionalCallExpression$2(callee, _arguments, optional) { - return validateNode({ - type: "OptionalCallExpression", - callee: callee, - arguments: _arguments, - optional: optional - }); - } - function classProperty(key, value, typeAnnotation, decorators, computed, _static) { - if (value === void 0) { - value = null; - } - if (typeAnnotation === void 0) { - typeAnnotation = null; - } - if (decorators === void 0) { - decorators = null; - } - if (computed === void 0) { - computed = false; - } - if (_static === void 0) { - _static = false; - } - return validateNode({ - type: "ClassProperty", - key: key, - value: value, - typeAnnotation: typeAnnotation, - decorators: decorators, - computed: computed, - "static": _static - }); - } - function classAccessorProperty(key, value, typeAnnotation, decorators, computed, _static) { - if (value === void 0) { - value = null; - } - if (typeAnnotation === void 0) { - typeAnnotation = null; - } - if (decorators === void 0) { - decorators = null; - } - if (computed === void 0) { - computed = false; - } - if (_static === void 0) { - _static = false; - } - return validateNode({ - type: "ClassAccessorProperty", - key: key, - value: value, - typeAnnotation: typeAnnotation, - decorators: decorators, - computed: computed, - "static": _static - }); - } - function classPrivateProperty(key, value, decorators, _static) { - if (value === void 0) { - value = null; - } - if (decorators === void 0) { - decorators = null; - } - if (_static === void 0) { - _static = false; - } - return validateNode({ - type: "ClassPrivateProperty", - key: key, - value: value, - decorators: decorators, - "static": _static - }); - } - function classPrivateMethod(kind, key, params, body, _static) { - if (kind === void 0) { - kind = "method"; - } - if (_static === void 0) { - _static = false; - } - return validateNode({ - type: "ClassPrivateMethod", - kind: kind, - key: key, - params: params, - body: body, - "static": _static - }); - } - function privateName(id) { - return validateNode({ - type: "PrivateName", - id: id - }); - } - function staticBlock(body) { - return validateNode({ - type: "StaticBlock", - body: body - }); - } - function anyTypeAnnotation$2() { - return { - type: "AnyTypeAnnotation" - }; - } - function arrayTypeAnnotation$1(elementType) { - return validateNode({ - type: "ArrayTypeAnnotation", - elementType: elementType - }); - } - function booleanTypeAnnotation$1() { - return { - type: "BooleanTypeAnnotation" - }; - } - function booleanLiteralTypeAnnotation(value) { - return validateNode({ - type: "BooleanLiteralTypeAnnotation", - value: value - }); - } - function nullLiteralTypeAnnotation$1() { - return { - type: "NullLiteralTypeAnnotation" - }; - } - function classImplements(id, typeParameters) { - if (typeParameters === void 0) { - typeParameters = null; - } - return validateNode({ - type: "ClassImplements", - id: id, - typeParameters: typeParameters - }); - } - function declareClass(id, typeParameters, _extends, body) { - if (typeParameters === void 0) { - typeParameters = null; - } - if (_extends === void 0) { - _extends = null; - } - return validateNode({ - type: "DeclareClass", - id: id, - typeParameters: typeParameters, - "extends": _extends, - body: body - }); - } - function declareFunction(id) { - return validateNode({ - type: "DeclareFunction", - id: id - }); - } - function declareInterface(id, typeParameters, _extends, body) { - if (typeParameters === void 0) { - typeParameters = null; - } - if (_extends === void 0) { - _extends = null; - } - return validateNode({ - type: "DeclareInterface", - id: id, - typeParameters: typeParameters, - "extends": _extends, - body: body - }); - } - function declareModule(id, body, kind) { - if (kind === void 0) { - kind = null; - } - return validateNode({ - type: "DeclareModule", - id: id, - body: body, - kind: kind - }); - } - function declareModuleExports(typeAnnotation) { - return validateNode({ - type: "DeclareModuleExports", - typeAnnotation: typeAnnotation - }); - } - function declareTypeAlias(id, typeParameters, right) { - if (typeParameters === void 0) { - typeParameters = null; - } - return validateNode({ - type: "DeclareTypeAlias", - id: id, - typeParameters: typeParameters, - right: right - }); - } - function declareOpaqueType(id, typeParameters, supertype) { - if (typeParameters === void 0) { - typeParameters = null; - } - if (supertype === void 0) { - supertype = null; - } - return validateNode({ - type: "DeclareOpaqueType", - id: id, - typeParameters: typeParameters, - supertype: supertype - }); - } - function declareVariable(id) { - return validateNode({ - type: "DeclareVariable", - id: id - }); - } - function declareExportDeclaration(declaration, specifiers, source) { - if (declaration === void 0) { - declaration = null; - } - if (specifiers === void 0) { - specifiers = null; - } - if (source === void 0) { - source = null; - } - return validateNode({ - type: "DeclareExportDeclaration", - declaration: declaration, - specifiers: specifiers, - source: source - }); - } - function declareExportAllDeclaration(source) { - return validateNode({ - type: "DeclareExportAllDeclaration", - source: source - }); - } - function declaredPredicate(value) { - return validateNode({ - type: "DeclaredPredicate", - value: value - }); - } - function existsTypeAnnotation() { - return { - type: "ExistsTypeAnnotation" - }; - } - function functionTypeAnnotation(typeParameters, params, rest, returnType) { - if (typeParameters === void 0) { - typeParameters = null; - } - if (rest === void 0) { - rest = null; - } - return validateNode({ - type: "FunctionTypeAnnotation", - typeParameters: typeParameters, - params: params, - rest: rest, - returnType: returnType - }); - } - function functionTypeParam(name, typeAnnotation) { - if (name === void 0) { - name = null; - } - return validateNode({ - type: "FunctionTypeParam", - name: name, - typeAnnotation: typeAnnotation - }); - } - function genericTypeAnnotation$1(id, typeParameters) { - if (typeParameters === void 0) { - typeParameters = null; - } - return validateNode({ - type: "GenericTypeAnnotation", - id: id, - typeParameters: typeParameters - }); - } - function inferredPredicate() { - return { - type: "InferredPredicate" - }; - } - function interfaceExtends(id, typeParameters) { - if (typeParameters === void 0) { - typeParameters = null; - } - return validateNode({ - type: "InterfaceExtends", - id: id, - typeParameters: typeParameters - }); - } - function interfaceDeclaration(id, typeParameters, _extends, body) { - if (typeParameters === void 0) { - typeParameters = null; - } - if (_extends === void 0) { - _extends = null; - } - return validateNode({ - type: "InterfaceDeclaration", - id: id, - typeParameters: typeParameters, - "extends": _extends, - body: body - }); - } - function interfaceTypeAnnotation(_extends, body) { - if (_extends === void 0) { - _extends = null; - } - return validateNode({ - type: "InterfaceTypeAnnotation", - "extends": _extends, - body: body - }); - } - function intersectionTypeAnnotation(types) { - return validateNode({ - type: "IntersectionTypeAnnotation", - types: types - }); - } - function mixedTypeAnnotation() { - return { - type: "MixedTypeAnnotation" - }; - } - function emptyTypeAnnotation() { - return { - type: "EmptyTypeAnnotation" - }; - } - function nullableTypeAnnotation(typeAnnotation) { - return validateNode({ - type: "NullableTypeAnnotation", - typeAnnotation: typeAnnotation - }); - } - function numberLiteralTypeAnnotation(value) { - return validateNode({ - type: "NumberLiteralTypeAnnotation", - value: value - }); - } - function numberTypeAnnotation$2() { - return { - type: "NumberTypeAnnotation" - }; - } - function objectTypeAnnotation(properties, indexers, callProperties, internalSlots, exact) { - if (indexers === void 0) { - indexers = []; - } - if (callProperties === void 0) { - callProperties = []; - } - if (internalSlots === void 0) { - internalSlots = []; - } - if (exact === void 0) { - exact = false; - } - return validateNode({ - type: "ObjectTypeAnnotation", - properties: properties, - indexers: indexers, - callProperties: callProperties, - internalSlots: internalSlots, - exact: exact - }); - } - function objectTypeInternalSlot(id, value, optional, _static, method) { - return validateNode({ - type: "ObjectTypeInternalSlot", - id: id, - value: value, - optional: optional, - "static": _static, - method: method - }); - } - function objectTypeCallProperty(value) { - return validateNode({ - type: "ObjectTypeCallProperty", - value: value, - "static": null - }); - } - function objectTypeIndexer(id, key, value, variance) { - if (id === void 0) { - id = null; - } - if (variance === void 0) { - variance = null; - } - return validateNode({ - type: "ObjectTypeIndexer", - id: id, - key: key, - value: value, - variance: variance, - "static": null - }); - } - function objectTypeProperty(key, value, variance) { - if (variance === void 0) { - variance = null; - } - return validateNode({ - type: "ObjectTypeProperty", - key: key, - value: value, - variance: variance, - kind: null, - method: null, - optional: null, - proto: null, - "static": null - }); - } - function objectTypeSpreadProperty(argument) { - return validateNode({ - type: "ObjectTypeSpreadProperty", - argument: argument - }); - } - function opaqueType(id, typeParameters, supertype, impltype) { - if (typeParameters === void 0) { - typeParameters = null; - } - if (supertype === void 0) { - supertype = null; - } - return validateNode({ - type: "OpaqueType", - id: id, - typeParameters: typeParameters, - supertype: supertype, - impltype: impltype - }); - } - function qualifiedTypeIdentifier(id, qualification) { - return validateNode({ - type: "QualifiedTypeIdentifier", - id: id, - qualification: qualification - }); - } - function stringLiteralTypeAnnotation(value) { - return validateNode({ - type: "StringLiteralTypeAnnotation", - value: value - }); - } - function stringTypeAnnotation$2() { - return { - type: "StringTypeAnnotation" - }; - } - function symbolTypeAnnotation() { - return { - type: "SymbolTypeAnnotation" - }; - } - function thisTypeAnnotation() { - return { - type: "ThisTypeAnnotation" - }; - } - function tupleTypeAnnotation$1(types) { - return validateNode({ - type: "TupleTypeAnnotation", - types: types - }); - } - function typeofTypeAnnotation(argument) { - return validateNode({ - type: "TypeofTypeAnnotation", - argument: argument - }); - } - function typeAlias(id, typeParameters, right) { - if (typeParameters === void 0) { - typeParameters = null; - } - return validateNode({ - type: "TypeAlias", - id: id, - typeParameters: typeParameters, - right: right - }); - } - function typeAnnotation(typeAnnotation) { - return validateNode({ - type: "TypeAnnotation", - typeAnnotation: typeAnnotation - }); - } - function typeCastExpression(expression, typeAnnotation) { - return validateNode({ - type: "TypeCastExpression", - expression: expression, - typeAnnotation: typeAnnotation - }); - } - function typeParameter(bound, _default, variance) { - if (bound === void 0) { - bound = null; - } - if (_default === void 0) { - _default = null; - } - if (variance === void 0) { - variance = null; - } - return validateNode({ - type: "TypeParameter", - bound: bound, - "default": _default, - variance: variance, - name: null - }); - } - function typeParameterDeclaration(params) { - return validateNode({ - type: "TypeParameterDeclaration", - params: params - }); - } - function typeParameterInstantiation(params) { - return validateNode({ - type: "TypeParameterInstantiation", - params: params - }); - } - function unionTypeAnnotation$1(types) { - return validateNode({ - type: "UnionTypeAnnotation", - types: types - }); - } - function variance(kind) { - return validateNode({ - type: "Variance", - kind: kind - }); - } - function voidTypeAnnotation$3() { - return { - type: "VoidTypeAnnotation" - }; - } - function enumDeclaration(id, body) { - return validateNode({ - type: "EnumDeclaration", - id: id, - body: body - }); - } - function enumBooleanBody(members) { - return validateNode({ - type: "EnumBooleanBody", - members: members, - explicitType: null, - hasUnknownMembers: null - }); - } - function enumNumberBody(members) { - return validateNode({ - type: "EnumNumberBody", - members: members, - explicitType: null, - hasUnknownMembers: null - }); - } - function enumStringBody(members) { - return validateNode({ - type: "EnumStringBody", - members: members, - explicitType: null, - hasUnknownMembers: null - }); - } - function enumSymbolBody(members) { - return validateNode({ - type: "EnumSymbolBody", - members: members, - hasUnknownMembers: null - }); - } - function enumBooleanMember(id) { - return validateNode({ - type: "EnumBooleanMember", - id: id, - init: null - }); - } - function enumNumberMember(id, init) { - return validateNode({ - type: "EnumNumberMember", - id: id, - init: init - }); - } - function enumStringMember(id, init) { - return validateNode({ - type: "EnumStringMember", - id: id, - init: init - }); - } - function enumDefaultedMember(id) { - return validateNode({ - type: "EnumDefaultedMember", - id: id - }); - } - function indexedAccessType(objectType, indexType) { - return validateNode({ - type: "IndexedAccessType", - objectType: objectType, - indexType: indexType - }); - } - function optionalIndexedAccessType(objectType, indexType) { - return validateNode({ - type: "OptionalIndexedAccessType", - objectType: objectType, - indexType: indexType, - optional: null - }); - } - function jsxAttribute(name, value) { - if (value === void 0) { - value = null; - } - return validateNode({ - type: "JSXAttribute", - name: name, - value: value - }); - } - function jsxClosingElement(name) { - return validateNode({ - type: "JSXClosingElement", - name: name - }); - } - function jsxElement(openingElement, closingElement, children, selfClosing) { - if (closingElement === void 0) { - closingElement = null; - } - if (selfClosing === void 0) { - selfClosing = null; - } - return validateNode({ - type: "JSXElement", - openingElement: openingElement, - closingElement: closingElement, - children: children, - selfClosing: selfClosing - }); - } - function jsxEmptyExpression() { - return { - type: "JSXEmptyExpression" - }; - } - function jsxExpressionContainer$1(expression) { - return validateNode({ - type: "JSXExpressionContainer", - expression: expression - }); - } - function jsxSpreadChild(expression) { - return validateNode({ - type: "JSXSpreadChild", - expression: expression - }); - } - function jsxIdentifier$2(name) { - return validateNode({ - type: "JSXIdentifier", - name: name - }); - } - function jsxMemberExpression$1(object, property) { - return validateNode({ - type: "JSXMemberExpression", - object: object, - property: property - }); - } - function jsxNamespacedName(namespace, name) { - return validateNode({ - type: "JSXNamespacedName", - namespace: namespace, - name: name - }); - } - function jsxOpeningElement(name, attributes, selfClosing) { - if (selfClosing === void 0) { - selfClosing = false; - } - return validateNode({ - type: "JSXOpeningElement", - name: name, - attributes: attributes, - selfClosing: selfClosing - }); - } - function jsxSpreadAttribute(argument) { - return validateNode({ - type: "JSXSpreadAttribute", - argument: argument - }); - } - function jsxText(value) { - return validateNode({ - type: "JSXText", - value: value - }); - } - function jsxFragment(openingFragment, closingFragment, children) { - return validateNode({ - type: "JSXFragment", - openingFragment: openingFragment, - closingFragment: closingFragment, - children: children - }); - } - function jsxOpeningFragment() { - return { - type: "JSXOpeningFragment" - }; - } - function jsxClosingFragment() { - return { - type: "JSXClosingFragment" - }; - } - function noop$1() { - return { - type: "Noop" - }; - } - function placeholder(expectedNode, name) { - return validateNode({ - type: "Placeholder", - expectedNode: expectedNode, - name: name - }); - } - function v8IntrinsicIdentifier(name) { - return validateNode({ - type: "V8IntrinsicIdentifier", - name: name - }); - } - function argumentPlaceholder() { - return { - type: "ArgumentPlaceholder" - }; - } - function bindExpression(object, callee) { - return validateNode({ - type: "BindExpression", - object: object, - callee: callee - }); - } - function importAttribute(key, value) { - return validateNode({ - type: "ImportAttribute", - key: key, - value: value - }); - } - function decorator(expression) { - return validateNode({ - type: "Decorator", - expression: expression - }); - } - function doExpression(body, async) { - if (async === void 0) { - async = false; - } - return validateNode({ - type: "DoExpression", - body: body, - async: async - }); - } - function exportDefaultSpecifier(exported) { - return validateNode({ - type: "ExportDefaultSpecifier", - exported: exported - }); - } - function recordExpression(properties) { - return validateNode({ - type: "RecordExpression", - properties: properties - }); - } - function tupleExpression(elements) { - if (elements === void 0) { - elements = []; - } - return validateNode({ - type: "TupleExpression", - elements: elements - }); - } - function decimalLiteral(value) { - return validateNode({ - type: "DecimalLiteral", - value: value - }); - } - function moduleExpression(body) { - return validateNode({ - type: "ModuleExpression", - body: body - }); - } - function topicReference() { - return { - type: "TopicReference" - }; - } - function pipelineTopicExpression(expression) { - return validateNode({ - type: "PipelineTopicExpression", - expression: expression - }); - } - function pipelineBareFunction(callee) { - return validateNode({ - type: "PipelineBareFunction", - callee: callee - }); - } - function pipelinePrimaryTopicReference() { - return { - type: "PipelinePrimaryTopicReference" - }; - } - function tsParameterProperty(parameter) { - return validateNode({ - type: "TSParameterProperty", - parameter: parameter - }); - } - function tsDeclareFunction(id, typeParameters, params, returnType) { - if (id === void 0) { - id = null; - } - if (typeParameters === void 0) { - typeParameters = null; - } - if (returnType === void 0) { - returnType = null; - } - return validateNode({ - type: "TSDeclareFunction", - id: id, - typeParameters: typeParameters, - params: params, - returnType: returnType - }); - } - function tsDeclareMethod(decorators, key, typeParameters, params, returnType) { - if (decorators === void 0) { - decorators = null; - } - if (typeParameters === void 0) { - typeParameters = null; - } - if (returnType === void 0) { - returnType = null; - } - return validateNode({ - type: "TSDeclareMethod", - decorators: decorators, - key: key, - typeParameters: typeParameters, - params: params, - returnType: returnType - }); - } - function tsQualifiedName(left, right) { - return validateNode({ - type: "TSQualifiedName", - left: left, - right: right - }); - } - function tsCallSignatureDeclaration(typeParameters, parameters, typeAnnotation) { - if (typeParameters === void 0) { - typeParameters = null; - } - if (typeAnnotation === void 0) { - typeAnnotation = null; - } - return validateNode({ - type: "TSCallSignatureDeclaration", - typeParameters: typeParameters, - parameters: parameters, - typeAnnotation: typeAnnotation - }); - } - function tsConstructSignatureDeclaration(typeParameters, parameters, typeAnnotation) { - if (typeParameters === void 0) { - typeParameters = null; - } - if (typeAnnotation === void 0) { - typeAnnotation = null; - } - return validateNode({ - type: "TSConstructSignatureDeclaration", - typeParameters: typeParameters, - parameters: parameters, - typeAnnotation: typeAnnotation - }); - } - function tsPropertySignature(key, typeAnnotation, initializer) { - if (typeAnnotation === void 0) { - typeAnnotation = null; - } - if (initializer === void 0) { - initializer = null; - } - return validateNode({ - type: "TSPropertySignature", - key: key, - typeAnnotation: typeAnnotation, - initializer: initializer, - kind: null - }); - } - function tsMethodSignature(key, typeParameters, parameters, typeAnnotation) { - if (typeParameters === void 0) { - typeParameters = null; - } - if (typeAnnotation === void 0) { - typeAnnotation = null; - } - return validateNode({ - type: "TSMethodSignature", - key: key, - typeParameters: typeParameters, - parameters: parameters, - typeAnnotation: typeAnnotation, - kind: null - }); - } - function tsIndexSignature(parameters, typeAnnotation) { - if (typeAnnotation === void 0) { - typeAnnotation = null; - } - return validateNode({ - type: "TSIndexSignature", - parameters: parameters, - typeAnnotation: typeAnnotation - }); - } - function tsAnyKeyword() { - return { - type: "TSAnyKeyword" - }; - } - function tsBooleanKeyword() { - return { - type: "TSBooleanKeyword" - }; - } - function tsBigIntKeyword() { - return { - type: "TSBigIntKeyword" - }; - } - function tsIntrinsicKeyword() { - return { - type: "TSIntrinsicKeyword" - }; - } - function tsNeverKeyword() { - return { - type: "TSNeverKeyword" - }; - } - function tsNullKeyword() { - return { - type: "TSNullKeyword" - }; - } - function tsNumberKeyword() { - return { - type: "TSNumberKeyword" - }; - } - function tsObjectKeyword() { - return { - type: "TSObjectKeyword" - }; - } - function tsStringKeyword() { - return { - type: "TSStringKeyword" - }; - } - function tsSymbolKeyword() { - return { - type: "TSSymbolKeyword" - }; - } - function tsUndefinedKeyword() { - return { - type: "TSUndefinedKeyword" - }; - } - function tsUnknownKeyword() { - return { - type: "TSUnknownKeyword" - }; - } - function tsVoidKeyword() { - return { - type: "TSVoidKeyword" - }; - } - function tsThisType() { - return { - type: "TSThisType" - }; - } - function tsFunctionType(typeParameters, parameters, typeAnnotation) { - if (typeParameters === void 0) { - typeParameters = null; - } - if (typeAnnotation === void 0) { - typeAnnotation = null; - } - return validateNode({ - type: "TSFunctionType", - typeParameters: typeParameters, - parameters: parameters, - typeAnnotation: typeAnnotation - }); - } - function tsConstructorType(typeParameters, parameters, typeAnnotation) { - if (typeParameters === void 0) { - typeParameters = null; - } - if (typeAnnotation === void 0) { - typeAnnotation = null; - } - return validateNode({ - type: "TSConstructorType", - typeParameters: typeParameters, - parameters: parameters, - typeAnnotation: typeAnnotation - }); - } - function tsTypeReference(typeName, typeParameters) { - if (typeParameters === void 0) { - typeParameters = null; - } - return validateNode({ - type: "TSTypeReference", - typeName: typeName, - typeParameters: typeParameters - }); - } - function tsTypePredicate(parameterName, typeAnnotation, asserts) { - if (typeAnnotation === void 0) { - typeAnnotation = null; - } - if (asserts === void 0) { - asserts = null; - } - return validateNode({ - type: "TSTypePredicate", - parameterName: parameterName, - typeAnnotation: typeAnnotation, - asserts: asserts - }); - } - function tsTypeQuery(exprName, typeParameters) { - if (typeParameters === void 0) { - typeParameters = null; - } - return validateNode({ - type: "TSTypeQuery", - exprName: exprName, - typeParameters: typeParameters - }); - } - function tsTypeLiteral(members) { - return validateNode({ - type: "TSTypeLiteral", - members: members - }); - } - function tsArrayType(elementType) { - return validateNode({ - type: "TSArrayType", - elementType: elementType - }); - } - function tsTupleType(elementTypes) { - return validateNode({ - type: "TSTupleType", - elementTypes: elementTypes - }); - } - function tsOptionalType(typeAnnotation) { - return validateNode({ - type: "TSOptionalType", - typeAnnotation: typeAnnotation - }); - } - function tsRestType(typeAnnotation) { - return validateNode({ - type: "TSRestType", - typeAnnotation: typeAnnotation - }); - } - function tsNamedTupleMember(label, elementType, optional) { - if (optional === void 0) { - optional = false; - } - return validateNode({ - type: "TSNamedTupleMember", - label: label, - elementType: elementType, - optional: optional - }); - } - function tsUnionType(types) { - return validateNode({ - type: "TSUnionType", - types: types - }); - } - function tsIntersectionType(types) { - return validateNode({ - type: "TSIntersectionType", - types: types - }); - } - function tsConditionalType(checkType, extendsType, trueType, falseType) { - return validateNode({ - type: "TSConditionalType", - checkType: checkType, - extendsType: extendsType, - trueType: trueType, - falseType: falseType - }); - } - function tsInferType(typeParameter) { - return validateNode({ - type: "TSInferType", - typeParameter: typeParameter - }); - } - function tsParenthesizedType(typeAnnotation) { - return validateNode({ - type: "TSParenthesizedType", - typeAnnotation: typeAnnotation - }); - } - function tsTypeOperator(typeAnnotation) { - return validateNode({ - type: "TSTypeOperator", - typeAnnotation: typeAnnotation, - operator: null - }); - } - function tsIndexedAccessType(objectType, indexType) { - return validateNode({ - type: "TSIndexedAccessType", - objectType: objectType, - indexType: indexType - }); - } - function tsMappedType(typeParameter, typeAnnotation, nameType) { - if (typeAnnotation === void 0) { - typeAnnotation = null; - } - if (nameType === void 0) { - nameType = null; - } - return validateNode({ - type: "TSMappedType", - typeParameter: typeParameter, - typeAnnotation: typeAnnotation, - nameType: nameType - }); - } - function tsLiteralType(literal) { - return validateNode({ - type: "TSLiteralType", - literal: literal - }); - } - function tsExpressionWithTypeArguments(expression, typeParameters) { - if (typeParameters === void 0) { - typeParameters = null; - } - return validateNode({ - type: "TSExpressionWithTypeArguments", - expression: expression, - typeParameters: typeParameters - }); - } - function tsInterfaceDeclaration(id, typeParameters, _extends, body) { - if (typeParameters === void 0) { - typeParameters = null; - } - if (_extends === void 0) { - _extends = null; - } - return validateNode({ - type: "TSInterfaceDeclaration", - id: id, - typeParameters: typeParameters, - "extends": _extends, - body: body - }); - } - function tsInterfaceBody(body) { - return validateNode({ - type: "TSInterfaceBody", - body: body - }); - } - function tsTypeAliasDeclaration(id, typeParameters, typeAnnotation) { - if (typeParameters === void 0) { - typeParameters = null; - } - return validateNode({ - type: "TSTypeAliasDeclaration", - id: id, - typeParameters: typeParameters, - typeAnnotation: typeAnnotation - }); - } - function tsInstantiationExpression(expression, typeParameters) { - if (typeParameters === void 0) { - typeParameters = null; - } - return validateNode({ - type: "TSInstantiationExpression", - expression: expression, - typeParameters: typeParameters - }); - } - function tsAsExpression(expression, typeAnnotation) { - return validateNode({ - type: "TSAsExpression", - expression: expression, - typeAnnotation: typeAnnotation - }); - } - function tsSatisfiesExpression(expression, typeAnnotation) { - return validateNode({ - type: "TSSatisfiesExpression", - expression: expression, - typeAnnotation: typeAnnotation - }); - } - function tsTypeAssertion(typeAnnotation, expression) { - return validateNode({ - type: "TSTypeAssertion", - typeAnnotation: typeAnnotation, - expression: expression - }); - } - function tsEnumDeclaration(id, members) { - return validateNode({ - type: "TSEnumDeclaration", - id: id, - members: members - }); - } - function tsEnumMember(id, initializer) { - if (initializer === void 0) { - initializer = null; - } - return validateNode({ - type: "TSEnumMember", - id: id, - initializer: initializer - }); - } - function tsModuleDeclaration(id, body) { - return validateNode({ - type: "TSModuleDeclaration", - id: id, - body: body - }); - } - function tsModuleBlock(body) { - return validateNode({ - type: "TSModuleBlock", - body: body - }); - } - function tsImportType(argument, qualifier, typeParameters) { - if (qualifier === void 0) { - qualifier = null; - } - if (typeParameters === void 0) { - typeParameters = null; - } - return validateNode({ - type: "TSImportType", - argument: argument, - qualifier: qualifier, - typeParameters: typeParameters - }); - } - function tsImportEqualsDeclaration(id, moduleReference) { - return validateNode({ - type: "TSImportEqualsDeclaration", - id: id, - moduleReference: moduleReference, - isExport: null - }); - } - function tsExternalModuleReference(expression) { - return validateNode({ - type: "TSExternalModuleReference", - expression: expression - }); - } - function tsNonNullExpression(expression) { - return validateNode({ - type: "TSNonNullExpression", - expression: expression - }); - } - function tsExportAssignment(expression) { - return validateNode({ - type: "TSExportAssignment", - expression: expression - }); - } - function tsNamespaceExportDeclaration(id) { - return validateNode({ - type: "TSNamespaceExportDeclaration", - id: id - }); - } - function tsTypeAnnotation(typeAnnotation) { - return validateNode({ - type: "TSTypeAnnotation", - typeAnnotation: typeAnnotation - }); - } - function tsTypeParameterInstantiation(params) { - return validateNode({ - type: "TSTypeParameterInstantiation", - params: params - }); - } - function tsTypeParameterDeclaration(params) { - return validateNode({ - type: "TSTypeParameterDeclaration", - params: params - }); - } - function tsTypeParameter(constraint, _default, name) { - if (constraint === void 0) { - constraint = null; - } - if (_default === void 0) { - _default = null; - } - return validateNode({ - type: "TSTypeParameter", - constraint: constraint, - "default": _default, - name: name - }); - } - function NumberLiteral(value) { - console.trace("The node type NumberLiteral has been renamed to NumericLiteral"); - return numericLiteral$8(value); - } - function RegexLiteral(pattern, flags) { - if (flags === void 0) { - flags = ""; - } - console.trace("The node type RegexLiteral has been renamed to RegExpLiteral"); - return regExpLiteral(pattern, flags); - } - function RestProperty(argument) { - console.trace("The node type RestProperty has been renamed to RestElement"); - return restElement$2(argument); - } - function SpreadProperty(argument) { - console.trace("The node type SpreadProperty has been renamed to SpreadElement"); - return spreadElement$2(argument); - } - - function cleanJSXElementLiteralChild(child, args) { - var lines = child.value.split(/\r\n|\n|\r/); - var lastNonEmptyLine = 0; - for (var i = 0; i < lines.length; i++) { - if (lines[i].match(/[^ \t]/)) { - lastNonEmptyLine = i; - } - } - var str = ""; - for (var _i = 0; _i < lines.length; _i++) { - var line = lines[_i]; - var isFirstLine = _i === 0; - var isLastLine = _i === lines.length - 1; - var isLastNonEmptyLine = _i === lastNonEmptyLine; - - var trimmedLine = line.replace(/\t/g, " "); - - if (!isFirstLine) { - trimmedLine = trimmedLine.replace(/^[ ]+/, ""); - } - - if (!isLastLine) { - trimmedLine = trimmedLine.replace(/[ ]+$/, ""); - } - if (trimmedLine) { - if (!isLastNonEmptyLine) { - trimmedLine += " "; - } - str += trimmedLine; - } - } - if (str) args.push(stringLiteral$8(str)); - } - - function buildChildren(node) { - var elements = []; - for (var i = 0; i < node.children.length; i++) { - var child = node.children[i]; - if (isJSXText(child)) { - cleanJSXElementLiteralChild(child, elements); - continue; - } - if (isJSXExpressionContainer$1(child)) child = child.expression; - if (isJSXEmptyExpression(child)) continue; - elements.push(child); - } - return elements; - } - - function isNode(node) { - return !!(node && VISITOR_KEYS$5[node.type]); - } - - function assertNode(node) { - if (!isNode(node)) { - var _node$type; - var type = (_node$type = node == null ? void 0 : node.type) != null ? _node$type : JSON.stringify(node); - throw new TypeError("Not a valid node of type \"" + type + "\""); - } - } - - function assert$3(type, node, opts) { - if (!is$1(type, node, opts)) { - throw new Error("Expected type \"" + type + "\" with option " + JSON.stringify(opts) + ", " + ("but instead got \"" + node.type + "\".")); - } - } - function assertArrayExpression(node, opts) { - assert$3("ArrayExpression", node, opts); - } - function assertAssignmentExpression(node, opts) { - assert$3("AssignmentExpression", node, opts); - } - function assertBinaryExpression(node, opts) { - assert$3("BinaryExpression", node, opts); - } - function assertInterpreterDirective(node, opts) { - assert$3("InterpreterDirective", node, opts); - } - function assertDirective(node, opts) { - assert$3("Directive", node, opts); - } - function assertDirectiveLiteral(node, opts) { - assert$3("DirectiveLiteral", node, opts); - } - function assertBlockStatement(node, opts) { - assert$3("BlockStatement", node, opts); - } - function assertBreakStatement(node, opts) { - assert$3("BreakStatement", node, opts); - } - function assertCallExpression(node, opts) { - assert$3("CallExpression", node, opts); - } - function assertCatchClause(node, opts) { - assert$3("CatchClause", node, opts); - } - function assertConditionalExpression(node, opts) { - assert$3("ConditionalExpression", node, opts); - } - function assertContinueStatement(node, opts) { - assert$3("ContinueStatement", node, opts); - } - function assertDebuggerStatement(node, opts) { - assert$3("DebuggerStatement", node, opts); - } - function assertDoWhileStatement(node, opts) { - assert$3("DoWhileStatement", node, opts); - } - function assertEmptyStatement(node, opts) { - assert$3("EmptyStatement", node, opts); - } - function assertExpressionStatement$1(node, opts) { - assert$3("ExpressionStatement", node, opts); - } - function assertFile(node, opts) { - assert$3("File", node, opts); - } - function assertForInStatement(node, opts) { - assert$3("ForInStatement", node, opts); - } - function assertForStatement(node, opts) { - assert$3("ForStatement", node, opts); - } - function assertFunctionDeclaration(node, opts) { - assert$3("FunctionDeclaration", node, opts); - } - function assertFunctionExpression(node, opts) { - assert$3("FunctionExpression", node, opts); - } - function assertIdentifier(node, opts) { - assert$3("Identifier", node, opts); - } - function assertIfStatement(node, opts) { - assert$3("IfStatement", node, opts); - } - function assertLabeledStatement(node, opts) { - assert$3("LabeledStatement", node, opts); - } - function assertStringLiteral(node, opts) { - assert$3("StringLiteral", node, opts); - } - function assertNumericLiteral(node, opts) { - assert$3("NumericLiteral", node, opts); - } - function assertNullLiteral(node, opts) { - assert$3("NullLiteral", node, opts); - } - function assertBooleanLiteral(node, opts) { - assert$3("BooleanLiteral", node, opts); - } - function assertRegExpLiteral(node, opts) { - assert$3("RegExpLiteral", node, opts); - } - function assertLogicalExpression(node, opts) { - assert$3("LogicalExpression", node, opts); - } - function assertMemberExpression(node, opts) { - assert$3("MemberExpression", node, opts); - } - function assertNewExpression(node, opts) { - assert$3("NewExpression", node, opts); - } - function assertProgram(node, opts) { - assert$3("Program", node, opts); - } - function assertObjectExpression(node, opts) { - assert$3("ObjectExpression", node, opts); - } - function assertObjectMethod(node, opts) { - assert$3("ObjectMethod", node, opts); - } - function assertObjectProperty(node, opts) { - assert$3("ObjectProperty", node, opts); - } - function assertRestElement(node, opts) { - assert$3("RestElement", node, opts); - } - function assertReturnStatement(node, opts) { - assert$3("ReturnStatement", node, opts); - } - function assertSequenceExpression(node, opts) { - assert$3("SequenceExpression", node, opts); - } - function assertParenthesizedExpression(node, opts) { - assert$3("ParenthesizedExpression", node, opts); - } - function assertSwitchCase(node, opts) { - assert$3("SwitchCase", node, opts); - } - function assertSwitchStatement(node, opts) { - assert$3("SwitchStatement", node, opts); - } - function assertThisExpression(node, opts) { - assert$3("ThisExpression", node, opts); - } - function assertThrowStatement(node, opts) { - assert$3("ThrowStatement", node, opts); - } - function assertTryStatement(node, opts) { - assert$3("TryStatement", node, opts); - } - function assertUnaryExpression(node, opts) { - assert$3("UnaryExpression", node, opts); - } - function assertUpdateExpression(node, opts) { - assert$3("UpdateExpression", node, opts); - } - function assertVariableDeclaration(node, opts) { - assert$3("VariableDeclaration", node, opts); - } - function assertVariableDeclarator(node, opts) { - assert$3("VariableDeclarator", node, opts); - } - function assertWhileStatement(node, opts) { - assert$3("WhileStatement", node, opts); - } - function assertWithStatement(node, opts) { - assert$3("WithStatement", node, opts); - } - function assertAssignmentPattern(node, opts) { - assert$3("AssignmentPattern", node, opts); - } - function assertArrayPattern(node, opts) { - assert$3("ArrayPattern", node, opts); - } - function assertArrowFunctionExpression(node, opts) { - assert$3("ArrowFunctionExpression", node, opts); - } - function assertClassBody(node, opts) { - assert$3("ClassBody", node, opts); - } - function assertClassExpression(node, opts) { - assert$3("ClassExpression", node, opts); - } - function assertClassDeclaration(node, opts) { - assert$3("ClassDeclaration", node, opts); - } - function assertExportAllDeclaration(node, opts) { - assert$3("ExportAllDeclaration", node, opts); - } - function assertExportDefaultDeclaration(node, opts) { - assert$3("ExportDefaultDeclaration", node, opts); - } - function assertExportNamedDeclaration(node, opts) { - assert$3("ExportNamedDeclaration", node, opts); - } - function assertExportSpecifier$1(node, opts) { - assert$3("ExportSpecifier", node, opts); - } - function assertForOfStatement(node, opts) { - assert$3("ForOfStatement", node, opts); - } - function assertImportDeclaration(node, opts) { - assert$3("ImportDeclaration", node, opts); - } - function assertImportDefaultSpecifier(node, opts) { - assert$3("ImportDefaultSpecifier", node, opts); - } - function assertImportNamespaceSpecifier(node, opts) { - assert$3("ImportNamespaceSpecifier", node, opts); - } - function assertImportSpecifier(node, opts) { - assert$3("ImportSpecifier", node, opts); - } - function assertMetaProperty(node, opts) { - assert$3("MetaProperty", node, opts); - } - function assertClassMethod(node, opts) { - assert$3("ClassMethod", node, opts); - } - function assertObjectPattern(node, opts) { - assert$3("ObjectPattern", node, opts); - } - function assertSpreadElement(node, opts) { - assert$3("SpreadElement", node, opts); - } - function assertSuper(node, opts) { - assert$3("Super", node, opts); - } - function assertTaggedTemplateExpression(node, opts) { - assert$3("TaggedTemplateExpression", node, opts); - } - function assertTemplateElement(node, opts) { - assert$3("TemplateElement", node, opts); - } - function assertTemplateLiteral(node, opts) { - assert$3("TemplateLiteral", node, opts); - } - function assertYieldExpression(node, opts) { - assert$3("YieldExpression", node, opts); - } - function assertAwaitExpression(node, opts) { - assert$3("AwaitExpression", node, opts); - } - function assertImport(node, opts) { - assert$3("Import", node, opts); - } - function assertBigIntLiteral(node, opts) { - assert$3("BigIntLiteral", node, opts); - } - function assertExportNamespaceSpecifier(node, opts) { - assert$3("ExportNamespaceSpecifier", node, opts); - } - function assertOptionalMemberExpression(node, opts) { - assert$3("OptionalMemberExpression", node, opts); - } - function assertOptionalCallExpression(node, opts) { - assert$3("OptionalCallExpression", node, opts); - } - function assertClassProperty(node, opts) { - assert$3("ClassProperty", node, opts); - } - function assertClassAccessorProperty(node, opts) { - assert$3("ClassAccessorProperty", node, opts); - } - function assertClassPrivateProperty(node, opts) { - assert$3("ClassPrivateProperty", node, opts); - } - function assertClassPrivateMethod(node, opts) { - assert$3("ClassPrivateMethod", node, opts); - } - function assertPrivateName(node, opts) { - assert$3("PrivateName", node, opts); - } - function assertStaticBlock(node, opts) { - assert$3("StaticBlock", node, opts); - } - function assertAnyTypeAnnotation(node, opts) { - assert$3("AnyTypeAnnotation", node, opts); - } - function assertArrayTypeAnnotation(node, opts) { - assert$3("ArrayTypeAnnotation", node, opts); - } - function assertBooleanTypeAnnotation(node, opts) { - assert$3("BooleanTypeAnnotation", node, opts); - } - function assertBooleanLiteralTypeAnnotation(node, opts) { - assert$3("BooleanLiteralTypeAnnotation", node, opts); - } - function assertNullLiteralTypeAnnotation(node, opts) { - assert$3("NullLiteralTypeAnnotation", node, opts); - } - function assertClassImplements(node, opts) { - assert$3("ClassImplements", node, opts); - } - function assertDeclareClass(node, opts) { - assert$3("DeclareClass", node, opts); - } - function assertDeclareFunction(node, opts) { - assert$3("DeclareFunction", node, opts); - } - function assertDeclareInterface(node, opts) { - assert$3("DeclareInterface", node, opts); - } - function assertDeclareModule(node, opts) { - assert$3("DeclareModule", node, opts); - } - function assertDeclareModuleExports(node, opts) { - assert$3("DeclareModuleExports", node, opts); - } - function assertDeclareTypeAlias(node, opts) { - assert$3("DeclareTypeAlias", node, opts); - } - function assertDeclareOpaqueType(node, opts) { - assert$3("DeclareOpaqueType", node, opts); - } - function assertDeclareVariable(node, opts) { - assert$3("DeclareVariable", node, opts); - } - function assertDeclareExportDeclaration(node, opts) { - assert$3("DeclareExportDeclaration", node, opts); - } - function assertDeclareExportAllDeclaration(node, opts) { - assert$3("DeclareExportAllDeclaration", node, opts); - } - function assertDeclaredPredicate(node, opts) { - assert$3("DeclaredPredicate", node, opts); - } - function assertExistsTypeAnnotation(node, opts) { - assert$3("ExistsTypeAnnotation", node, opts); - } - function assertFunctionTypeAnnotation(node, opts) { - assert$3("FunctionTypeAnnotation", node, opts); - } - function assertFunctionTypeParam(node, opts) { - assert$3("FunctionTypeParam", node, opts); - } - function assertGenericTypeAnnotation(node, opts) { - assert$3("GenericTypeAnnotation", node, opts); - } - function assertInferredPredicate(node, opts) { - assert$3("InferredPredicate", node, opts); - } - function assertInterfaceExtends(node, opts) { - assert$3("InterfaceExtends", node, opts); - } - function assertInterfaceDeclaration(node, opts) { - assert$3("InterfaceDeclaration", node, opts); - } - function assertInterfaceTypeAnnotation(node, opts) { - assert$3("InterfaceTypeAnnotation", node, opts); - } - function assertIntersectionTypeAnnotation(node, opts) { - assert$3("IntersectionTypeAnnotation", node, opts); - } - function assertMixedTypeAnnotation(node, opts) { - assert$3("MixedTypeAnnotation", node, opts); - } - function assertEmptyTypeAnnotation(node, opts) { - assert$3("EmptyTypeAnnotation", node, opts); - } - function assertNullableTypeAnnotation(node, opts) { - assert$3("NullableTypeAnnotation", node, opts); - } - function assertNumberLiteralTypeAnnotation(node, opts) { - assert$3("NumberLiteralTypeAnnotation", node, opts); - } - function assertNumberTypeAnnotation(node, opts) { - assert$3("NumberTypeAnnotation", node, opts); - } - function assertObjectTypeAnnotation(node, opts) { - assert$3("ObjectTypeAnnotation", node, opts); - } - function assertObjectTypeInternalSlot(node, opts) { - assert$3("ObjectTypeInternalSlot", node, opts); - } - function assertObjectTypeCallProperty(node, opts) { - assert$3("ObjectTypeCallProperty", node, opts); - } - function assertObjectTypeIndexer(node, opts) { - assert$3("ObjectTypeIndexer", node, opts); - } - function assertObjectTypeProperty(node, opts) { - assert$3("ObjectTypeProperty", node, opts); - } - function assertObjectTypeSpreadProperty(node, opts) { - assert$3("ObjectTypeSpreadProperty", node, opts); - } - function assertOpaqueType(node, opts) { - assert$3("OpaqueType", node, opts); - } - function assertQualifiedTypeIdentifier(node, opts) { - assert$3("QualifiedTypeIdentifier", node, opts); - } - function assertStringLiteralTypeAnnotation(node, opts) { - assert$3("StringLiteralTypeAnnotation", node, opts); - } - function assertStringTypeAnnotation(node, opts) { - assert$3("StringTypeAnnotation", node, opts); - } - function assertSymbolTypeAnnotation(node, opts) { - assert$3("SymbolTypeAnnotation", node, opts); - } - function assertThisTypeAnnotation(node, opts) { - assert$3("ThisTypeAnnotation", node, opts); - } - function assertTupleTypeAnnotation(node, opts) { - assert$3("TupleTypeAnnotation", node, opts); - } - function assertTypeofTypeAnnotation(node, opts) { - assert$3("TypeofTypeAnnotation", node, opts); - } - function assertTypeAlias(node, opts) { - assert$3("TypeAlias", node, opts); - } - function assertTypeAnnotation(node, opts) { - assert$3("TypeAnnotation", node, opts); - } - function assertTypeCastExpression(node, opts) { - assert$3("TypeCastExpression", node, opts); - } - function assertTypeParameter(node, opts) { - assert$3("TypeParameter", node, opts); - } - function assertTypeParameterDeclaration(node, opts) { - assert$3("TypeParameterDeclaration", node, opts); - } - function assertTypeParameterInstantiation(node, opts) { - assert$3("TypeParameterInstantiation", node, opts); - } - function assertUnionTypeAnnotation(node, opts) { - assert$3("UnionTypeAnnotation", node, opts); - } - function assertVariance(node, opts) { - assert$3("Variance", node, opts); - } - function assertVoidTypeAnnotation(node, opts) { - assert$3("VoidTypeAnnotation", node, opts); - } - function assertEnumDeclaration(node, opts) { - assert$3("EnumDeclaration", node, opts); - } - function assertEnumBooleanBody(node, opts) { - assert$3("EnumBooleanBody", node, opts); - } - function assertEnumNumberBody(node, opts) { - assert$3("EnumNumberBody", node, opts); - } - function assertEnumStringBody(node, opts) { - assert$3("EnumStringBody", node, opts); - } - function assertEnumSymbolBody(node, opts) { - assert$3("EnumSymbolBody", node, opts); - } - function assertEnumBooleanMember(node, opts) { - assert$3("EnumBooleanMember", node, opts); - } - function assertEnumNumberMember(node, opts) { - assert$3("EnumNumberMember", node, opts); - } - function assertEnumStringMember(node, opts) { - assert$3("EnumStringMember", node, opts); - } - function assertEnumDefaultedMember(node, opts) { - assert$3("EnumDefaultedMember", node, opts); - } - function assertIndexedAccessType(node, opts) { - assert$3("IndexedAccessType", node, opts); - } - function assertOptionalIndexedAccessType(node, opts) { - assert$3("OptionalIndexedAccessType", node, opts); - } - function assertJSXAttribute(node, opts) { - assert$3("JSXAttribute", node, opts); - } - function assertJSXClosingElement(node, opts) { - assert$3("JSXClosingElement", node, opts); - } - function assertJSXElement(node, opts) { - assert$3("JSXElement", node, opts); - } - function assertJSXEmptyExpression(node, opts) { - assert$3("JSXEmptyExpression", node, opts); - } - function assertJSXExpressionContainer(node, opts) { - assert$3("JSXExpressionContainer", node, opts); - } - function assertJSXSpreadChild(node, opts) { - assert$3("JSXSpreadChild", node, opts); - } - function assertJSXIdentifier(node, opts) { - assert$3("JSXIdentifier", node, opts); - } - function assertJSXMemberExpression(node, opts) { - assert$3("JSXMemberExpression", node, opts); - } - function assertJSXNamespacedName(node, opts) { - assert$3("JSXNamespacedName", node, opts); - } - function assertJSXOpeningElement(node, opts) { - assert$3("JSXOpeningElement", node, opts); - } - function assertJSXSpreadAttribute(node, opts) { - assert$3("JSXSpreadAttribute", node, opts); - } - function assertJSXText(node, opts) { - assert$3("JSXText", node, opts); - } - function assertJSXFragment(node, opts) { - assert$3("JSXFragment", node, opts); - } - function assertJSXOpeningFragment(node, opts) { - assert$3("JSXOpeningFragment", node, opts); - } - function assertJSXClosingFragment(node, opts) { - assert$3("JSXClosingFragment", node, opts); - } - function assertNoop(node, opts) { - assert$3("Noop", node, opts); - } - function assertPlaceholder(node, opts) { - assert$3("Placeholder", node, opts); - } - function assertV8IntrinsicIdentifier(node, opts) { - assert$3("V8IntrinsicIdentifier", node, opts); - } - function assertArgumentPlaceholder(node, opts) { - assert$3("ArgumentPlaceholder", node, opts); - } - function assertBindExpression(node, opts) { - assert$3("BindExpression", node, opts); - } - function assertImportAttribute(node, opts) { - assert$3("ImportAttribute", node, opts); - } - function assertDecorator(node, opts) { - assert$3("Decorator", node, opts); - } - function assertDoExpression(node, opts) { - assert$3("DoExpression", node, opts); - } - function assertExportDefaultSpecifier(node, opts) { - assert$3("ExportDefaultSpecifier", node, opts); - } - function assertRecordExpression(node, opts) { - assert$3("RecordExpression", node, opts); - } - function assertTupleExpression(node, opts) { - assert$3("TupleExpression", node, opts); - } - function assertDecimalLiteral(node, opts) { - assert$3("DecimalLiteral", node, opts); - } - function assertModuleExpression(node, opts) { - assert$3("ModuleExpression", node, opts); - } - function assertTopicReference(node, opts) { - assert$3("TopicReference", node, opts); - } - function assertPipelineTopicExpression(node, opts) { - assert$3("PipelineTopicExpression", node, opts); - } - function assertPipelineBareFunction(node, opts) { - assert$3("PipelineBareFunction", node, opts); - } - function assertPipelinePrimaryTopicReference(node, opts) { - assert$3("PipelinePrimaryTopicReference", node, opts); - } - function assertTSParameterProperty(node, opts) { - assert$3("TSParameterProperty", node, opts); - } - function assertTSDeclareFunction(node, opts) { - assert$3("TSDeclareFunction", node, opts); - } - function assertTSDeclareMethod(node, opts) { - assert$3("TSDeclareMethod", node, opts); - } - function assertTSQualifiedName(node, opts) { - assert$3("TSQualifiedName", node, opts); - } - function assertTSCallSignatureDeclaration(node, opts) { - assert$3("TSCallSignatureDeclaration", node, opts); - } - function assertTSConstructSignatureDeclaration(node, opts) { - assert$3("TSConstructSignatureDeclaration", node, opts); - } - function assertTSPropertySignature(node, opts) { - assert$3("TSPropertySignature", node, opts); - } - function assertTSMethodSignature(node, opts) { - assert$3("TSMethodSignature", node, opts); - } - function assertTSIndexSignature(node, opts) { - assert$3("TSIndexSignature", node, opts); - } - function assertTSAnyKeyword(node, opts) { - assert$3("TSAnyKeyword", node, opts); - } - function assertTSBooleanKeyword(node, opts) { - assert$3("TSBooleanKeyword", node, opts); - } - function assertTSBigIntKeyword(node, opts) { - assert$3("TSBigIntKeyword", node, opts); - } - function assertTSIntrinsicKeyword(node, opts) { - assert$3("TSIntrinsicKeyword", node, opts); - } - function assertTSNeverKeyword(node, opts) { - assert$3("TSNeverKeyword", node, opts); - } - function assertTSNullKeyword(node, opts) { - assert$3("TSNullKeyword", node, opts); - } - function assertTSNumberKeyword(node, opts) { - assert$3("TSNumberKeyword", node, opts); - } - function assertTSObjectKeyword(node, opts) { - assert$3("TSObjectKeyword", node, opts); - } - function assertTSStringKeyword(node, opts) { - assert$3("TSStringKeyword", node, opts); - } - function assertTSSymbolKeyword(node, opts) { - assert$3("TSSymbolKeyword", node, opts); - } - function assertTSUndefinedKeyword(node, opts) { - assert$3("TSUndefinedKeyword", node, opts); - } - function assertTSUnknownKeyword(node, opts) { - assert$3("TSUnknownKeyword", node, opts); - } - function assertTSVoidKeyword(node, opts) { - assert$3("TSVoidKeyword", node, opts); - } - function assertTSThisType(node, opts) { - assert$3("TSThisType", node, opts); - } - function assertTSFunctionType(node, opts) { - assert$3("TSFunctionType", node, opts); - } - function assertTSConstructorType(node, opts) { - assert$3("TSConstructorType", node, opts); - } - function assertTSTypeReference(node, opts) { - assert$3("TSTypeReference", node, opts); - } - function assertTSTypePredicate(node, opts) { - assert$3("TSTypePredicate", node, opts); - } - function assertTSTypeQuery(node, opts) { - assert$3("TSTypeQuery", node, opts); - } - function assertTSTypeLiteral(node, opts) { - assert$3("TSTypeLiteral", node, opts); - } - function assertTSArrayType(node, opts) { - assert$3("TSArrayType", node, opts); - } - function assertTSTupleType(node, opts) { - assert$3("TSTupleType", node, opts); - } - function assertTSOptionalType(node, opts) { - assert$3("TSOptionalType", node, opts); - } - function assertTSRestType(node, opts) { - assert$3("TSRestType", node, opts); - } - function assertTSNamedTupleMember(node, opts) { - assert$3("TSNamedTupleMember", node, opts); - } - function assertTSUnionType(node, opts) { - assert$3("TSUnionType", node, opts); - } - function assertTSIntersectionType(node, opts) { - assert$3("TSIntersectionType", node, opts); - } - function assertTSConditionalType(node, opts) { - assert$3("TSConditionalType", node, opts); - } - function assertTSInferType(node, opts) { - assert$3("TSInferType", node, opts); - } - function assertTSParenthesizedType(node, opts) { - assert$3("TSParenthesizedType", node, opts); - } - function assertTSTypeOperator(node, opts) { - assert$3("TSTypeOperator", node, opts); - } - function assertTSIndexedAccessType(node, opts) { - assert$3("TSIndexedAccessType", node, opts); - } - function assertTSMappedType(node, opts) { - assert$3("TSMappedType", node, opts); - } - function assertTSLiteralType(node, opts) { - assert$3("TSLiteralType", node, opts); - } - function assertTSExpressionWithTypeArguments(node, opts) { - assert$3("TSExpressionWithTypeArguments", node, opts); - } - function assertTSInterfaceDeclaration(node, opts) { - assert$3("TSInterfaceDeclaration", node, opts); - } - function assertTSInterfaceBody(node, opts) { - assert$3("TSInterfaceBody", node, opts); - } - function assertTSTypeAliasDeclaration(node, opts) { - assert$3("TSTypeAliasDeclaration", node, opts); - } - function assertTSInstantiationExpression(node, opts) { - assert$3("TSInstantiationExpression", node, opts); - } - function assertTSAsExpression(node, opts) { - assert$3("TSAsExpression", node, opts); - } - function assertTSSatisfiesExpression(node, opts) { - assert$3("TSSatisfiesExpression", node, opts); - } - function assertTSTypeAssertion(node, opts) { - assert$3("TSTypeAssertion", node, opts); - } - function assertTSEnumDeclaration(node, opts) { - assert$3("TSEnumDeclaration", node, opts); - } - function assertTSEnumMember(node, opts) { - assert$3("TSEnumMember", node, opts); - } - function assertTSModuleDeclaration(node, opts) { - assert$3("TSModuleDeclaration", node, opts); - } - function assertTSModuleBlock(node, opts) { - assert$3("TSModuleBlock", node, opts); - } - function assertTSImportType(node, opts) { - assert$3("TSImportType", node, opts); - } - function assertTSImportEqualsDeclaration(node, opts) { - assert$3("TSImportEqualsDeclaration", node, opts); - } - function assertTSExternalModuleReference(node, opts) { - assert$3("TSExternalModuleReference", node, opts); - } - function assertTSNonNullExpression(node, opts) { - assert$3("TSNonNullExpression", node, opts); - } - function assertTSExportAssignment(node, opts) { - assert$3("TSExportAssignment", node, opts); - } - function assertTSNamespaceExportDeclaration(node, opts) { - assert$3("TSNamespaceExportDeclaration", node, opts); - } - function assertTSTypeAnnotation(node, opts) { - assert$3("TSTypeAnnotation", node, opts); - } - function assertTSTypeParameterInstantiation(node, opts) { - assert$3("TSTypeParameterInstantiation", node, opts); - } - function assertTSTypeParameterDeclaration(node, opts) { - assert$3("TSTypeParameterDeclaration", node, opts); - } - function assertTSTypeParameter(node, opts) { - assert$3("TSTypeParameter", node, opts); - } - function assertStandardized(node, opts) { - assert$3("Standardized", node, opts); - } - function assertExpression$1(node, opts) { - assert$3("Expression", node, opts); - } - function assertBinary(node, opts) { - assert$3("Binary", node, opts); - } - function assertScopable(node, opts) { - assert$3("Scopable", node, opts); - } - function assertBlockParent(node, opts) { - assert$3("BlockParent", node, opts); - } - function assertBlock(node, opts) { - assert$3("Block", node, opts); - } - function assertStatement(node, opts) { - assert$3("Statement", node, opts); - } - function assertTerminatorless(node, opts) { - assert$3("Terminatorless", node, opts); - } - function assertCompletionStatement(node, opts) { - assert$3("CompletionStatement", node, opts); - } - function assertConditional(node, opts) { - assert$3("Conditional", node, opts); - } - function assertLoop(node, opts) { - assert$3("Loop", node, opts); - } - function assertWhile(node, opts) { - assert$3("While", node, opts); - } - function assertExpressionWrapper(node, opts) { - assert$3("ExpressionWrapper", node, opts); - } - function assertFor(node, opts) { - assert$3("For", node, opts); - } - function assertForXStatement(node, opts) { - assert$3("ForXStatement", node, opts); - } - function assertFunction$1(node, opts) { - assert$3("Function", node, opts); - } - function assertFunctionParent(node, opts) { - assert$3("FunctionParent", node, opts); - } - function assertPureish(node, opts) { - assert$3("Pureish", node, opts); - } - function assertDeclaration(node, opts) { - assert$3("Declaration", node, opts); - } - function assertPatternLike(node, opts) { - assert$3("PatternLike", node, opts); - } - function assertLVal(node, opts) { - assert$3("LVal", node, opts); - } - function assertTSEntityName(node, opts) { - assert$3("TSEntityName", node, opts); - } - function assertLiteral(node, opts) { - assert$3("Literal", node, opts); - } - function assertImmutable(node, opts) { - assert$3("Immutable", node, opts); - } - function assertUserWhitespacable(node, opts) { - assert$3("UserWhitespacable", node, opts); - } - function assertMethod(node, opts) { - assert$3("Method", node, opts); - } - function assertObjectMember(node, opts) { - assert$3("ObjectMember", node, opts); - } - function assertProperty(node, opts) { - assert$3("Property", node, opts); - } - function assertUnaryLike(node, opts) { - assert$3("UnaryLike", node, opts); - } - function assertPattern(node, opts) { - assert$3("Pattern", node, opts); - } - function assertClass(node, opts) { - assert$3("Class", node, opts); - } - function assertModuleDeclaration(node, opts) { - assert$3("ModuleDeclaration", node, opts); - } - function assertExportDeclaration(node, opts) { - assert$3("ExportDeclaration", node, opts); - } - function assertModuleSpecifier(node, opts) { - assert$3("ModuleSpecifier", node, opts); - } - function assertAccessor(node, opts) { - assert$3("Accessor", node, opts); - } - function assertPrivate(node, opts) { - assert$3("Private", node, opts); - } - function assertFlow(node, opts) { - assert$3("Flow", node, opts); - } - function assertFlowType(node, opts) { - assert$3("FlowType", node, opts); - } - function assertFlowBaseAnnotation(node, opts) { - assert$3("FlowBaseAnnotation", node, opts); - } - function assertFlowDeclaration(node, opts) { - assert$3("FlowDeclaration", node, opts); - } - function assertFlowPredicate(node, opts) { - assert$3("FlowPredicate", node, opts); - } - function assertEnumBody(node, opts) { - assert$3("EnumBody", node, opts); - } - function assertEnumMember(node, opts) { - assert$3("EnumMember", node, opts); - } - function assertJSX(node, opts) { - assert$3("JSX", node, opts); - } - function assertMiscellaneous(node, opts) { - assert$3("Miscellaneous", node, opts); - } - function assertTypeScript(node, opts) { - assert$3("TypeScript", node, opts); - } - function assertTSTypeElement(node, opts) { - assert$3("TSTypeElement", node, opts); - } - function assertTSType(node, opts) { - assert$3("TSType", node, opts); - } - function assertTSBaseType(node, opts) { - assert$3("TSBaseType", node, opts); - } - function assertNumberLiteral(node, opts) { - console.trace("The node type NumberLiteral has been renamed to NumericLiteral"); - assert$3("NumberLiteral", node, opts); - } - function assertRegexLiteral(node, opts) { - console.trace("The node type RegexLiteral has been renamed to RegExpLiteral"); - assert$3("RegexLiteral", node, opts); - } - function assertRestProperty(node, opts) { - console.trace("The node type RestProperty has been renamed to RestElement"); - assert$3("RestProperty", node, opts); - } - function assertSpreadProperty(node, opts) { - console.trace("The node type SpreadProperty has been renamed to SpreadElement"); - assert$3("SpreadProperty", node, opts); - } - - function createTypeAnnotationBasedOnTypeof$1(type) { - switch (type) { - case "string": - return stringTypeAnnotation$2(); - case "number": - return numberTypeAnnotation$2(); - case "undefined": - return voidTypeAnnotation$3(); - case "boolean": - return booleanTypeAnnotation$1(); - case "function": - return genericTypeAnnotation$1(identifier$j("Function")); - case "object": - return genericTypeAnnotation$1(identifier$j("Object")); - case "symbol": - return genericTypeAnnotation$1(identifier$j("Symbol")); - case "bigint": - return anyTypeAnnotation$2(); - } - throw new Error("Invalid typeof value: " + type); - } - - function getQualifiedName$1(node) { - return isIdentifier$j(node) ? node.name : node.id.name + "." + getQualifiedName$1(node.qualification); - } - - function removeTypeDuplicates$1( - nodes) { - var generics = new Map(); - var bases = new Map(); - - var typeGroups = new Set(); - var types = []; - for (var i = 0; i < nodes.length; i++) { - var node = nodes[i]; - if (!node) continue; - - if (types.indexOf(node) >= 0) { - continue; - } - - if (isAnyTypeAnnotation$1(node)) { - return [node]; - } - if (isFlowBaseAnnotation$1(node)) { - bases.set(node.type, node); - continue; - } - if (isUnionTypeAnnotation$2(node)) { - if (!typeGroups.has(node.types)) { - nodes = nodes.concat(node.types); - typeGroups.add(node.types); - } - continue; - } - - if (isGenericTypeAnnotation$1(node)) { - var name = getQualifiedName$1(node.id); - if (generics.has(name)) { - var existing = generics.get(name); - if (existing.typeParameters) { - if (node.typeParameters) { - existing.typeParameters.params = removeTypeDuplicates$1(existing.typeParameters.params.concat(node.typeParameters.params)); - } - } else { - existing = node.typeParameters; - } - } else { - generics.set(name, node); - } - continue; - } - types.push(node); - } - - for (var _iterator = _createForOfIteratorHelperLoose(bases), _step; !(_step = _iterator()).done;) { - var _step$value = _slicedToArray(_step.value, 2), - baseType = _step$value[1]; - types.push(baseType); - } - - for (var _iterator2 = _createForOfIteratorHelperLoose(generics), _step2; !(_step2 = _iterator2()).done;) { - var _step2$value = _slicedToArray(_step2.value, 2), - genericName = _step2$value[1]; - types.push(genericName); - } - return types; - } - - function createFlowUnionType$1(types) { - var flattened = removeTypeDuplicates$1(types); - if (flattened.length === 1) { - return flattened[0]; - } else { - return unionTypeAnnotation$1(flattened); - } - } - - function getQualifiedName(node) { - return isIdentifier$j(node) ? node.name : node.right.name + "." + getQualifiedName(node.left); - } - - function removeTypeDuplicates(nodes) { - var generics = new Map(); - var bases = new Map(); - - var typeGroups = new Set(); - var types = []; - for (var i = 0; i < nodes.length; i++) { - var node = nodes[i]; - if (!node) continue; - - if (types.indexOf(node) >= 0) { - continue; - } - - if (isTSAnyKeyword(node)) { - return [node]; - } - - if (isTSBaseType(node)) { - bases.set(node.type, node); - continue; - } - if (isTSUnionType$1(node)) { - if (!typeGroups.has(node.types)) { - nodes.push.apply(nodes, _toConsumableArray(node.types)); - typeGroups.add(node.types); - } - continue; - } - - if (isTSTypeReference$1(node) && node.typeParameters) { - var name = getQualifiedName(node.typeName); - if (generics.has(name)) { - var existing = generics.get(name); - if (existing.typeParameters) { - if (node.typeParameters) { - existing.typeParameters.params = removeTypeDuplicates(existing.typeParameters.params.concat(node.typeParameters.params)); - } - } else { - existing = node.typeParameters; - } - } else { - generics.set(name, node); - } - continue; - } - types.push(node); - } - - for (var _iterator = _createForOfIteratorHelperLoose(bases), _step; !(_step = _iterator()).done;) { - var _step$value = _slicedToArray(_step.value, 2), - baseType = _step$value[1]; - types.push(baseType); - } - - for (var _iterator2 = _createForOfIteratorHelperLoose(generics), _step2; !(_step2 = _iterator2()).done;) { - var _step2$value = _slicedToArray(_step2.value, 2), - genericName = _step2$value[1]; - types.push(genericName); - } - return types; - } - - function createTSUnionType$1(typeAnnotations) { - var types = typeAnnotations.map(function (type) { - return isTSTypeAnnotation$1(type) ? type.typeAnnotation : type; - }); - var flattened = removeTypeDuplicates(types); - if (flattened.length === 1) { - return flattened[0]; - } else { - return tsUnionType(flattened); - } - } - - var has$a = Function.call.bind(Object.prototype.hasOwnProperty); - function cloneIfNode(obj, deep, withoutLoc, commentsCache) { - if (obj && typeof obj.type === "string") { - return cloneNodeInternal(obj, deep, withoutLoc, commentsCache); - } - return obj; - } - function cloneIfNodeOrArray(obj, deep, withoutLoc, commentsCache) { - if (Array.isArray(obj)) { - return obj.map(function (node) { - return cloneIfNode(node, deep, withoutLoc, commentsCache); - }); - } - return cloneIfNode(obj, deep, withoutLoc, commentsCache); - } - - function cloneNode$j(node, deep, withoutLoc) { - if (deep === void 0) { - deep = true; - } - if (withoutLoc === void 0) { - withoutLoc = false; - } - return cloneNodeInternal(node, deep, withoutLoc, new Map()); - } - function cloneNodeInternal(node, deep, withoutLoc, commentsCache) { - if (deep === void 0) { - deep = true; - } - if (withoutLoc === void 0) { - withoutLoc = false; - } - if (!node) return node; - var type = node.type; - var newNode = { - type: node.type - }; - - if (isIdentifier$j(node)) { - newNode.name = node.name; - if (has$a(node, "optional") && typeof node.optional === "boolean") { - newNode.optional = node.optional; - } - if (has$a(node, "typeAnnotation")) { - newNode.typeAnnotation = deep ? cloneIfNodeOrArray(node.typeAnnotation, true, withoutLoc, commentsCache) : node.typeAnnotation; - } - } else if (!has$a(NODE_FIELDS, type)) { - throw new Error("Unknown node type: \"" + type + "\""); - } else { - for (var _i = 0, _Object$keys = Object.keys(NODE_FIELDS[type]); _i < _Object$keys.length; _i++) { - var field = _Object$keys[_i]; - if (has$a(node, field)) { - if (deep) { - newNode[field] = isFile(node) && field === "comments" ? maybeCloneComments(node.comments, deep, withoutLoc, commentsCache) : cloneIfNodeOrArray( - node[field], true, withoutLoc, commentsCache); - } else { - newNode[field] = - node[field]; - } - } - } - } - if (has$a(node, "loc")) { - if (withoutLoc) { - newNode.loc = null; - } else { - newNode.loc = node.loc; - } - } - if (has$a(node, "leadingComments")) { - newNode.leadingComments = maybeCloneComments(node.leadingComments, deep, withoutLoc, commentsCache); - } - if (has$a(node, "innerComments")) { - newNode.innerComments = maybeCloneComments(node.innerComments, deep, withoutLoc, commentsCache); - } - if (has$a(node, "trailingComments")) { - newNode.trailingComments = maybeCloneComments(node.trailingComments, deep, withoutLoc, commentsCache); - } - if (has$a(node, "extra")) { - newNode.extra = Object.assign({}, node.extra); - } - return newNode; - } - function maybeCloneComments(comments, deep, withoutLoc, commentsCache) { - if (!comments || !deep) { - return comments; - } - return comments.map(function (comment) { - var cache = commentsCache.get(comment); - if (cache) return cache; - var type = comment.type, - value = comment.value, - loc = comment.loc; - var ret = { - type: type, - value: value, - loc: loc - }; - if (withoutLoc) { - ret.loc = null; - } - commentsCache.set(comment, ret); - return ret; - }); - } - - function clone(node) { - return cloneNode$j(node, false); - } - - function cloneDeep$1(node) { - return cloneNode$j(node); - } - - function cloneDeepWithoutLoc(node) { - return cloneNode$j(node, true, true); - } - - function cloneWithoutLoc(node) { - return cloneNode$j(node, false, true); - } - - function addComments$1(node, type, comments) { - if (!comments || !node) return node; - var key = type + "Comments"; - if (node[key]) { - if (type === "leading") { - node[key] = comments.concat(node[key]); - } else { - var _node$key; - (_node$key = node[key]).push.apply(_node$key, _toConsumableArray(comments)); - } - } else { - node[key] = comments; - } - return node; - } - - function addComment$2(node, type, content, line) { - return addComments$1(node, type, [{ - type: line ? "CommentLine" : "CommentBlock", - value: content - }]); - } - - function inherit(key, child, parent) { - if (child && parent) { - child[key] = Array.from(new Set([].concat(child[key], parent[key]).filter(Boolean))); - } - } - - function inheritInnerComments(child, parent) { - inherit("innerComments", child, parent); - } - - function inheritLeadingComments$1(child, parent) { - inherit("leadingComments", child, parent); - } - - function inheritTrailingComments$1(child, parent) { - inherit("trailingComments", child, parent); - } - - function inheritsComments$2(child, parent) { - inheritTrailingComments$1(child, parent); - inheritLeadingComments$1(child, parent); - inheritInnerComments(child, parent); - return child; - } - - function removeComments$2(node) { - COMMENT_KEYS.forEach(function (key) { - node[key] = null; - }); - return node; - } - - var STANDARDIZED_TYPES = FLIPPED_ALIAS_KEYS$3["Standardized"]; - var EXPRESSION_TYPES = FLIPPED_ALIAS_KEYS$3["Expression"]; - var BINARY_TYPES = FLIPPED_ALIAS_KEYS$3["Binary"]; - var SCOPABLE_TYPES = FLIPPED_ALIAS_KEYS$3["Scopable"]; - var BLOCKPARENT_TYPES = FLIPPED_ALIAS_KEYS$3["BlockParent"]; - var BLOCK_TYPES = FLIPPED_ALIAS_KEYS$3["Block"]; - var STATEMENT_TYPES = FLIPPED_ALIAS_KEYS$3["Statement"]; - var TERMINATORLESS_TYPES = FLIPPED_ALIAS_KEYS$3["Terminatorless"]; - var COMPLETIONSTATEMENT_TYPES = FLIPPED_ALIAS_KEYS$3["CompletionStatement"]; - var CONDITIONAL_TYPES = FLIPPED_ALIAS_KEYS$3["Conditional"]; - var LOOP_TYPES = FLIPPED_ALIAS_KEYS$3["Loop"]; - var WHILE_TYPES = FLIPPED_ALIAS_KEYS$3["While"]; - var EXPRESSIONWRAPPER_TYPES = FLIPPED_ALIAS_KEYS$3["ExpressionWrapper"]; - var FOR_TYPES = FLIPPED_ALIAS_KEYS$3["For"]; - var FORXSTATEMENT_TYPES = FLIPPED_ALIAS_KEYS$3["ForXStatement"]; - var FUNCTION_TYPES$1 = FLIPPED_ALIAS_KEYS$3["Function"]; - var FUNCTIONPARENT_TYPES = FLIPPED_ALIAS_KEYS$3["FunctionParent"]; - var PUREISH_TYPES = FLIPPED_ALIAS_KEYS$3["Pureish"]; - var DECLARATION_TYPES = FLIPPED_ALIAS_KEYS$3["Declaration"]; - var PATTERNLIKE_TYPES = FLIPPED_ALIAS_KEYS$3["PatternLike"]; - var LVAL_TYPES = FLIPPED_ALIAS_KEYS$3["LVal"]; - var TSENTITYNAME_TYPES = FLIPPED_ALIAS_KEYS$3["TSEntityName"]; - var LITERAL_TYPES = FLIPPED_ALIAS_KEYS$3["Literal"]; - var IMMUTABLE_TYPES = FLIPPED_ALIAS_KEYS$3["Immutable"]; - var USERWHITESPACABLE_TYPES = FLIPPED_ALIAS_KEYS$3["UserWhitespacable"]; - var METHOD_TYPES = FLIPPED_ALIAS_KEYS$3["Method"]; - var OBJECTMEMBER_TYPES = FLIPPED_ALIAS_KEYS$3["ObjectMember"]; - var PROPERTY_TYPES = FLIPPED_ALIAS_KEYS$3["Property"]; - var UNARYLIKE_TYPES = FLIPPED_ALIAS_KEYS$3["UnaryLike"]; - var PATTERN_TYPES = FLIPPED_ALIAS_KEYS$3["Pattern"]; - var CLASS_TYPES = FLIPPED_ALIAS_KEYS$3["Class"]; - var MODULEDECLARATION_TYPES = FLIPPED_ALIAS_KEYS$3["ModuleDeclaration"]; - var EXPORTDECLARATION_TYPES = FLIPPED_ALIAS_KEYS$3["ExportDeclaration"]; - var MODULESPECIFIER_TYPES = FLIPPED_ALIAS_KEYS$3["ModuleSpecifier"]; - var ACCESSOR_TYPES = FLIPPED_ALIAS_KEYS$3["Accessor"]; - var PRIVATE_TYPES = FLIPPED_ALIAS_KEYS$3["Private"]; - var FLOW_TYPES = FLIPPED_ALIAS_KEYS$3["Flow"]; - var FLOWTYPE_TYPES = FLIPPED_ALIAS_KEYS$3["FlowType"]; - var FLOWBASEANNOTATION_TYPES = FLIPPED_ALIAS_KEYS$3["FlowBaseAnnotation"]; - var FLOWDECLARATION_TYPES = FLIPPED_ALIAS_KEYS$3["FlowDeclaration"]; - var FLOWPREDICATE_TYPES = FLIPPED_ALIAS_KEYS$3["FlowPredicate"]; - var ENUMBODY_TYPES = FLIPPED_ALIAS_KEYS$3["EnumBody"]; - var ENUMMEMBER_TYPES = FLIPPED_ALIAS_KEYS$3["EnumMember"]; - var JSX_TYPES = FLIPPED_ALIAS_KEYS$3["JSX"]; - var MISCELLANEOUS_TYPES = FLIPPED_ALIAS_KEYS$3["Miscellaneous"]; - var TYPESCRIPT_TYPES = FLIPPED_ALIAS_KEYS$3["TypeScript"]; - var TSTYPEELEMENT_TYPES = FLIPPED_ALIAS_KEYS$3["TSTypeElement"]; - var TSTYPE_TYPES = FLIPPED_ALIAS_KEYS$3["TSType"]; - var TSBASETYPE_TYPES = FLIPPED_ALIAS_KEYS$3["TSBaseType"]; - - function toBlock(node, parent) { - if (isBlockStatement$2(node)) { - return node; - } - var blockNodes = []; - if (isEmptyStatement(node)) { - blockNodes = []; - } else { - if (!isStatement$8(node)) { - if (isFunction$4(parent)) { - node = returnStatement$3(node); - } else { - node = expressionStatement$a(node); - } - } - blockNodes = [node]; - } - return blockStatement$6(blockNodes); - } - - function ensureBlock$1(node, key) { - if (key === void 0) { - key = "body"; - } - var result = toBlock(node[key], node); - node[key] = result; - return result; - } - - function toIdentifier$1(input) { - input = input + ""; - - var name = ""; - for (var _iterator = _createForOfIteratorHelperLoose(input), _step; !(_step = _iterator()).done;) { - var c = _step.value; - name += isIdentifierChar(c.codePointAt(0)) ? c : "-"; - } - - name = name.replace(/^[-0-9]+/, ""); - - name = name.replace(/[-\s]+(.)?/g, function (match, c) { - return c ? c.toUpperCase() : ""; - }); - if (!isValidIdentifier$1(name)) { - name = "_" + name; - } - return name || "_"; - } - - function toBindingIdentifierName$1(name) { - name = toIdentifier$1(name); - if (name === "eval" || name === "arguments") name = "_" + name; - return name; - } - - function toComputedKey$3(node, - key) { - if (key === void 0) { - key = node.key || node.property; - } - if (!node.computed && isIdentifier$j(key)) key = stringLiteral$8(key.name); - return key; - } - - function toExpression$1(node) { - if (isExpressionStatement$3(node)) { - node = node.expression; - } - - if (isExpression$4(node)) { - return node; - } - - if (isClass$2(node)) { - node.type = "ClassExpression"; - } else if (isFunction$4(node)) { - node.type = "FunctionExpression"; - } - - if (!isExpression$4(node)) { - throw new Error("cannot turn " + node.type + " to an expression"); - } - return node; - } - - function traverseFast$2(node, enter, opts) { - if (!node) return; - var keys = VISITOR_KEYS$5[node.type]; - if (!keys) return; - opts = opts || {}; - enter(node, opts); - for (var _iterator = _createForOfIteratorHelperLoose(keys), _step; !(_step = _iterator()).done;) { - var key = _step.value; - var subNode = - node[key]; - if (Array.isArray(subNode)) { - for (var _iterator2 = _createForOfIteratorHelperLoose(subNode), _step2; !(_step2 = _iterator2()).done;) { - var _node = _step2.value; - traverseFast$2(_node, enter, opts); - } - } else { - traverseFast$2(subNode, enter, opts); - } - } - } - - var CLEAR_KEYS = ["tokens", - "start", "end", "loc", - "raw", "rawValue"]; - var CLEAR_KEYS_PLUS_COMMENTS = [].concat(_toConsumableArray(COMMENT_KEYS), ["comments"], CLEAR_KEYS); - function removeProperties$1(node, opts) { - if (opts === void 0) { - opts = {}; - } - var map = opts.preserveComments ? CLEAR_KEYS : CLEAR_KEYS_PLUS_COMMENTS; - for (var _iterator = _createForOfIteratorHelperLoose(map), _step; !(_step = _iterator()).done;) { - var _key = _step.value; - if (node[_key] != null) node[_key] = undefined; - } - for (var _i = 0, _Object$keys = Object.keys(node); _i < _Object$keys.length; _i++) { - var key = _Object$keys[_i]; - if (key[0] === "_" && node[key] != null) node[key] = undefined; - } - var symbols = Object.getOwnPropertySymbols(node); - for (var _iterator2 = _createForOfIteratorHelperLoose(symbols), _step2; !(_step2 = _iterator2()).done;) { - var sym = _step2.value; - node[sym] = null; - } - } - - function removePropertiesDeep$1(tree, opts) { - traverseFast$2(tree, removeProperties$1, opts); - return tree; - } - - function toKeyAlias$1(node, key) { - if (key === void 0) { - key = node.key; - } - var alias; - - if (node.kind === "method") { - return toKeyAlias$1.increment() + ""; - } else if (isIdentifier$j(key)) { - alias = key.name; - } else if (isStringLiteral$7(key)) { - alias = JSON.stringify(key.value); - } else { - alias = JSON.stringify(removePropertiesDeep$1(cloneNode$j(key))); - } - - if (node.computed) { - alias = "[" + alias + "]"; - } - - if (node["static"]) { - alias = "static:" + alias; - } - return alias; - } - toKeyAlias$1.uid = 0; - toKeyAlias$1.increment = function () { - if (toKeyAlias$1.uid >= Number.MAX_SAFE_INTEGER) { - return toKeyAlias$1.uid = 0; - } else { - return toKeyAlias$1.uid++; - } - }; - - function getBindingIdentifiers$2(node, duplicates, outerOnly) { - var search = [].concat(node); - var ids = Object.create(null); - while (search.length) { - var id = search.shift(); - if (!id) continue; - var keys = - getBindingIdentifiers$2.keys[id.type]; - if (isIdentifier$j(id)) { - if (duplicates) { - var _ids = ids[id.name] = ids[id.name] || []; - _ids.push(id); - } else { - ids[id.name] = id; - } - continue; - } - if (isExportDeclaration$2(id) && !isExportAllDeclaration$1(id)) { - if (isDeclaration$1(id.declaration)) { - search.push(id.declaration); - } - continue; - } - if (outerOnly) { - if (isFunctionDeclaration$2(id)) { - search.push(id.id); - continue; - } - if (isFunctionExpression$2(id)) { - continue; - } - } - if (keys) { - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - var nodes = - id[key]; - if (nodes) { - Array.isArray(nodes) ? search.push.apply(search, _toConsumableArray(nodes)) : search.push(nodes); - } - } - } - } - - return ids; - } - - getBindingIdentifiers$2.keys = { - DeclareClass: ["id"], - DeclareFunction: ["id"], - DeclareModule: ["id"], - DeclareVariable: ["id"], - DeclareInterface: ["id"], - DeclareTypeAlias: ["id"], - DeclareOpaqueType: ["id"], - InterfaceDeclaration: ["id"], - TypeAlias: ["id"], - OpaqueType: ["id"], - CatchClause: ["param"], - LabeledStatement: ["label"], - UnaryExpression: ["argument"], - AssignmentExpression: ["left"], - ImportSpecifier: ["local"], - ImportNamespaceSpecifier: ["local"], - ImportDefaultSpecifier: ["local"], - ImportDeclaration: ["specifiers"], - ExportSpecifier: ["exported"], - ExportNamespaceSpecifier: ["exported"], - ExportDefaultSpecifier: ["exported"], - FunctionDeclaration: ["id", "params"], - FunctionExpression: ["id", "params"], - ArrowFunctionExpression: ["params"], - ObjectMethod: ["params"], - ClassMethod: ["params"], - ClassPrivateMethod: ["params"], - ForInStatement: ["left"], - ForOfStatement: ["left"], - ClassDeclaration: ["id"], - ClassExpression: ["id"], - RestElement: ["argument"], - UpdateExpression: ["argument"], - ObjectProperty: ["value"], - AssignmentPattern: ["left"], - ArrayPattern: ["elements"], - ObjectPattern: ["properties"], - VariableDeclaration: ["declarations"], - VariableDeclarator: ["id"] - }; - - function gatherSequenceExpressions(nodes, scope, declars) { - var exprs = []; - var ensureLastUndefined = true; - for (var _iterator = _createForOfIteratorHelperLoose(nodes), _step; !(_step = _iterator()).done;) { - var node = _step.value; - if (!isEmptyStatement(node)) { - ensureLastUndefined = false; - } - if (isExpression$4(node)) { - exprs.push(node); - } else if (isExpressionStatement$3(node)) { - exprs.push(node.expression); - } else if (isVariableDeclaration$3(node)) { - if (node.kind !== "var") return; - - for (var _iterator2 = _createForOfIteratorHelperLoose(node.declarations), _step2; !(_step2 = _iterator2()).done;) { - var declar = _step2.value; - var bindings = getBindingIdentifiers$2(declar); - for (var _i = 0, _Object$keys = Object.keys(bindings); _i < _Object$keys.length; _i++) { - var key = _Object$keys[_i]; - declars.push({ - kind: node.kind, - id: cloneNode$j(bindings[key]) - }); - } - if (declar.init) { - exprs.push(assignmentExpression$d("=", declar.id, declar.init)); - } - } - ensureLastUndefined = true; - } else if (isIfStatement$2(node)) { - var consequent = node.consequent ? gatherSequenceExpressions([node.consequent], scope, declars) : scope.buildUndefinedNode(); - var alternate = node.alternate ? gatherSequenceExpressions([node.alternate], scope, declars) : scope.buildUndefinedNode(); - if (!consequent || !alternate) return; - - exprs.push(conditionalExpression$4(node.test, consequent, alternate)); - } else if (isBlockStatement$2(node)) { - var body = gatherSequenceExpressions(node.body, scope, declars); - if (!body) return; - - exprs.push(body); - } else if (isEmptyStatement(node)) { - if (nodes.indexOf(node) === 0) { - ensureLastUndefined = true; - } - } else { - return; - } - } - if (ensureLastUndefined) { - exprs.push(scope.buildUndefinedNode()); - } - if (exprs.length === 1) { - return exprs[0]; - } else { - return sequenceExpression$7(exprs); - } - } - - function toSequenceExpression$1(nodes, scope) { - if (!(nodes != null && nodes.length)) return; - var declars = []; - var result = gatherSequenceExpressions(nodes, scope, declars); - if (!result) return; - for (var _i = 0, _declars = declars; _i < _declars.length; _i++) { - var declar = _declars[_i]; - scope.push(declar); - } - - return result; - } - - function toStatement(node, ignore) { - if (isStatement$8(node)) { - return node; - } - var mustHaveId = false; - var newType; - if (isClass$2(node)) { - mustHaveId = true; - newType = "ClassDeclaration"; - } else if (isFunction$4(node)) { - mustHaveId = true; - newType = "FunctionDeclaration"; - } else if (isAssignmentExpression$4(node)) { - return expressionStatement$a(node); - } - - if (mustHaveId && !node.id) { - newType = false; - } - if (!newType) { - if (ignore) { - return false; - } else { - throw new Error("cannot turn " + node.type + " to a statement"); - } - } - - node.type = newType; - - return node; - } - - var objectToString = Function.call.bind(Object.prototype.toString); - function isRegExp(value) { - return objectToString(value) === "[object RegExp]"; - } - function isPlainObject(value) { - if (typeof value !== "object" || value === null || Object.prototype.toString.call(value) !== "[object Object]") { - return false; - } - var proto = Object.getPrototypeOf(value); - return proto === null || Object.getPrototypeOf(proto) === null; - } - function valueToNode$1(value) { - if (value === undefined) { - return identifier$j("undefined"); - } - - if (value === true || value === false) { - return booleanLiteral$5(value); - } - - if (value === null) { - return nullLiteral$2(); - } - - if (typeof value === "string") { - return stringLiteral$8(value); - } - - if (typeof value === "number") { - var result; - if (Number.isFinite(value)) { - result = numericLiteral$8(Math.abs(value)); - } else { - var numerator; - if (Number.isNaN(value)) { - numerator = numericLiteral$8(0); - } else { - numerator = numericLiteral$8(1); - } - result = binaryExpression$5("/", numerator, numericLiteral$8(0)); - } - if (value < 0 || Object.is(value, -0)) { - result = unaryExpression$7("-", result); - } - return result; - } - - if (isRegExp(value)) { - var pattern = value.source; - var flags = value.toString().match(/\/([a-z]+|)$/)[1]; - return regExpLiteral(pattern, flags); - } - - if (Array.isArray(value)) { - return arrayExpression$2(value.map(valueToNode$1)); - } - - if (isPlainObject(value)) { - var props = []; - for (var _i = 0, _Object$keys = Object.keys(value); _i < _Object$keys.length; _i++) { - var key = _Object$keys[_i]; - var nodeKey = void 0; - if (isValidIdentifier$1(key)) { - nodeKey = identifier$j(key); - } else { - nodeKey = stringLiteral$8(key); - } - props.push(objectProperty$2(nodeKey, valueToNode$1( - value[key]))); - } - return objectExpression$4(props); - } - throw new Error("don't know how to turn this value into a node"); - } - - function appendToMemberExpression(member, append, computed) { - if (computed === void 0) { - computed = false; - } - member.object = memberExpression$c(member.object, member.property, member.computed); - member.property = append; - member.computed = !!computed; - return member; - } - - function inherits$1(child, parent) { - if (!child || !parent) return child; - - for (var _iterator = _createForOfIteratorHelperLoose(INHERIT_KEYS.optional), _step; !(_step = _iterator()).done;) { - var _key = _step.value; - if (child[_key] == null) { - child[_key] = parent[_key]; - } - } - - for (var _i = 0, _Object$keys = Object.keys(parent); _i < _Object$keys.length; _i++) { - var key = _Object$keys[_i]; - if (key[0] === "_" && key !== "__clone") { - child[key] = parent[key]; - } - } - - for (var _iterator2 = _createForOfIteratorHelperLoose(INHERIT_KEYS.force), _step2; !(_step2 = _iterator2()).done;) { - var _key2 = _step2.value; - child[_key2] = parent[_key2]; - } - inheritsComments$2(child, parent); - return child; - } - - function prependToMemberExpression(member, prepend) { - if (isSuper$3(member.object)) { - throw new Error("Cannot prepend node to super property access (`super.foo`)."); - } - member.object = memberExpression$c(prepend, member.object); - return member; - } - - function getOuterBindingIdentifiers$2(node, duplicates) { - return getBindingIdentifiers$2(node, duplicates, true); - } - - function traverse$2(node, handlers, state) { - if (typeof handlers === "function") { - handlers = { - enter: handlers - }; - } - var _ref = handlers, - enter = _ref.enter, - exit = _ref.exit; - traverseSimpleImpl(node, enter, exit, state, []); - } - function traverseSimpleImpl(node, enter, exit, state, ancestors) { - var keys = VISITOR_KEYS$5[node.type]; - if (!keys) return; - if (enter) enter(node, ancestors, state); - for (var _iterator = _createForOfIteratorHelperLoose(keys), _step; !(_step = _iterator()).done;) { - var key = _step.value; - var subNode = node[key]; - if (Array.isArray(subNode)) { - for (var i = 0; i < subNode.length; i++) { - var child = subNode[i]; - if (!child) continue; - ancestors.push({ - node: node, - key: key, - index: i - }); - traverseSimpleImpl(child, enter, exit, state, ancestors); - ancestors.pop(); - } - } else if (subNode) { - ancestors.push({ - node: node, - key: key - }); - traverseSimpleImpl(subNode, enter, exit, state, ancestors); - ancestors.pop(); - } - } - if (exit) exit(node, ancestors, state); - } - - function isBinding$1(node, parent, grandparent) { - if (grandparent && node.type === "Identifier" && parent.type === "ObjectProperty" && grandparent.type === "ObjectExpression") { - return false; - } - var keys = - getBindingIdentifiers$2.keys[parent.type]; - if (keys) { - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - var val = - parent[key]; - if (Array.isArray(val)) { - if (val.indexOf(node) >= 0) return true; - } else { - if (val === node) return true; - } - } - } - return false; - } - - function isLet(node) { - return isVariableDeclaration$3(node) && (node.kind !== "var" || - node[BLOCK_SCOPED_SYMBOL]); - } - - function isBlockScoped$2(node) { - return isFunctionDeclaration$2(node) || isClassDeclaration$2(node) || isLet(node); - } - - function isImmutable(node) { - if (isType$2(node.type, "Immutable")) return true; - if (isIdentifier$j(node)) { - if (node.name === "undefined") { - return true; - } else { - return false; - } - } - return false; - } - - function isNodesEquivalent(a, b) { - if (typeof a !== "object" || typeof b !== "object" || a == null || b == null) { - return a === b; - } - if (a.type !== b.type) { - return false; - } - var fields = Object.keys(NODE_FIELDS[a.type] || a.type); - var visitorKeys = VISITOR_KEYS$5[a.type]; - for (var _i = 0, _fields = fields; _i < _fields.length; _i++) { - var field = _fields[_i]; - var val_a = - a[field]; - var val_b = b[field]; - if (typeof val_a !== typeof val_b) { - return false; - } - if (val_a == null && val_b == null) { - continue; - } else if (val_a == null || val_b == null) { - return false; - } - if (Array.isArray(val_a)) { - if (!Array.isArray(val_b)) { - return false; - } - if (val_a.length !== val_b.length) { - return false; - } - for (var i = 0; i < val_a.length; i++) { - if (!isNodesEquivalent(val_a[i], val_b[i])) { - return false; - } - } - continue; - } - if (typeof val_a === "object" && !(visitorKeys != null && visitorKeys.includes(field))) { - for (var _i2 = 0, _Object$keys = Object.keys(val_a); _i2 < _Object$keys.length; _i2++) { - var key = _Object$keys[_i2]; - if (val_a[key] !== val_b[key]) { - return false; - } - } - continue; - } - if (!isNodesEquivalent(val_a, val_b)) { - return false; - } - } - return true; - } - - function isReferenced$2(node, parent, grandparent) { - switch (parent.type) { - case "MemberExpression": - case "OptionalMemberExpression": - if (parent.property === node) { - return !!parent.computed; - } - return parent.object === node; - case "JSXMemberExpression": - return parent.object === node; - case "VariableDeclarator": - return parent.init === node; - - case "ArrowFunctionExpression": - return parent.body === node; - - case "PrivateName": - return false; - - case "ClassMethod": - case "ClassPrivateMethod": - case "ObjectMethod": - if (parent.key === node) { - return !!parent.computed; - } - return false; - - case "ObjectProperty": - if (parent.key === node) { - return !!parent.computed; - } - return !grandparent || grandparent.type !== "ObjectPattern"; - case "ClassProperty": - case "ClassAccessorProperty": - if (parent.key === node) { - return !!parent.computed; - } - return true; - case "ClassPrivateProperty": - return parent.key !== node; - - case "ClassDeclaration": - case "ClassExpression": - return parent.superClass === node; - - case "AssignmentExpression": - return parent.right === node; - - case "AssignmentPattern": - return parent.right === node; - - case "LabeledStatement": - return false; - - case "CatchClause": - return false; - - case "RestElement": - return false; - case "BreakStatement": - case "ContinueStatement": - return false; - - case "FunctionDeclaration": - case "FunctionExpression": - return false; - - case "ExportNamespaceSpecifier": - case "ExportDefaultSpecifier": - return false; - - case "ExportSpecifier": - if (grandparent != null && grandparent.source) { - return false; - } - return parent.local === node; - - case "ImportDefaultSpecifier": - case "ImportNamespaceSpecifier": - case "ImportSpecifier": - return false; - - case "ImportAttribute": - return false; - - case "JSXAttribute": - return false; - - case "ObjectPattern": - case "ArrayPattern": - return false; - - case "MetaProperty": - return false; - - case "ObjectTypeProperty": - return parent.key !== node; - - case "TSEnumMember": - return parent.id !== node; - - case "TSPropertySignature": - if (parent.key === node) { - return !!parent.computed; - } - return true; - } - return true; - } - - function isScope$1(node, parent) { - if (isBlockStatement$2(node) && (isFunction$4(parent) || isCatchClause(parent))) { - return false; - } - - if (isPattern(node) && (isFunction$4(parent) || isCatchClause(parent))) { - return true; - } - return isScopable(node); - } - - function isSpecifierDefault(specifier) { - return isImportDefaultSpecifier$1(specifier) || - isIdentifier$j(specifier.imported || specifier.exported, { - name: "default" - }); - } - - var RESERVED_WORDS_ES3_ONLY = new Set(["abstract", "boolean", "byte", "char", "double", "enum", "final", "float", "goto", "implements", "int", "interface", "long", "native", "package", "private", "protected", "public", "short", "static", "synchronized", "throws", "transient", "volatile"]); - - function isValidES3Identifier(name) { - return isValidIdentifier$1(name) && !RESERVED_WORDS_ES3_ONLY.has(name); - } - - function isVar$2(node) { - return isVariableDeclaration$3(node, { - kind: "var" - }) && ! - node[BLOCK_SCOPED_SYMBOL]; - } - - var react$3 = { - isReactComponent: isReactComponent, - isCompatTag: isCompatTag$1, - buildChildren: buildChildren - }; - - var t$8 = /*#__PURE__*/Object.freeze({ - __proto__: null, - react: react$3, - assertNode: assertNode, - createTypeAnnotationBasedOnTypeof: createTypeAnnotationBasedOnTypeof$1, - createUnionTypeAnnotation: createFlowUnionType$1, - createFlowUnionType: createFlowUnionType$1, - createTSUnionType: createTSUnionType$1, - cloneNode: cloneNode$j, - clone: clone, - cloneDeep: cloneDeep$1, - cloneDeepWithoutLoc: cloneDeepWithoutLoc, - cloneWithoutLoc: cloneWithoutLoc, - addComment: addComment$2, - addComments: addComments$1, - inheritInnerComments: inheritInnerComments, - inheritLeadingComments: inheritLeadingComments$1, - inheritsComments: inheritsComments$2, - inheritTrailingComments: inheritTrailingComments$1, - removeComments: removeComments$2, - ensureBlock: ensureBlock$1, - toBindingIdentifierName: toBindingIdentifierName$1, - toBlock: toBlock, - toComputedKey: toComputedKey$3, - toExpression: toExpression$1, - toIdentifier: toIdentifier$1, - toKeyAlias: toKeyAlias$1, - toSequenceExpression: toSequenceExpression$1, - toStatement: toStatement, - valueToNode: valueToNode$1, - appendToMemberExpression: appendToMemberExpression, - inherits: inherits$1, - prependToMemberExpression: prependToMemberExpression, - removeProperties: removeProperties$1, - removePropertiesDeep: removePropertiesDeep$1, - removeTypeDuplicates: removeTypeDuplicates$1, - getBindingIdentifiers: getBindingIdentifiers$2, - getOuterBindingIdentifiers: getOuterBindingIdentifiers$2, - traverse: traverse$2, - traverseFast: traverseFast$2, - shallowEqual: shallowEqual$2, - is: is$1, - isBinding: isBinding$1, - isBlockScoped: isBlockScoped$2, - isImmutable: isImmutable, - isLet: isLet, - isNode: isNode, - isNodesEquivalent: isNodesEquivalent, - isPlaceholderType: isPlaceholderType, - isReferenced: isReferenced$2, - isScope: isScope$1, - isSpecifierDefault: isSpecifierDefault, - isType: isType$2, - isValidES3Identifier: isValidES3Identifier, - isValidIdentifier: isValidIdentifier$1, - isVar: isVar$2, - matchesPattern: matchesPattern$2, - validate: validate$5, - buildMatchMemberExpression: buildMatchMemberExpression$1, - assertArrayExpression: assertArrayExpression, - assertAssignmentExpression: assertAssignmentExpression, - assertBinaryExpression: assertBinaryExpression, - assertInterpreterDirective: assertInterpreterDirective, - assertDirective: assertDirective, - assertDirectiveLiteral: assertDirectiveLiteral, - assertBlockStatement: assertBlockStatement, - assertBreakStatement: assertBreakStatement, - assertCallExpression: assertCallExpression, - assertCatchClause: assertCatchClause, - assertConditionalExpression: assertConditionalExpression, - assertContinueStatement: assertContinueStatement, - assertDebuggerStatement: assertDebuggerStatement, - assertDoWhileStatement: assertDoWhileStatement, - assertEmptyStatement: assertEmptyStatement, - assertExpressionStatement: assertExpressionStatement$1, - assertFile: assertFile, - assertForInStatement: assertForInStatement, - assertForStatement: assertForStatement, - assertFunctionDeclaration: assertFunctionDeclaration, - assertFunctionExpression: assertFunctionExpression, - assertIdentifier: assertIdentifier, - assertIfStatement: assertIfStatement, - assertLabeledStatement: assertLabeledStatement, - assertStringLiteral: assertStringLiteral, - assertNumericLiteral: assertNumericLiteral, - assertNullLiteral: assertNullLiteral, - assertBooleanLiteral: assertBooleanLiteral, - assertRegExpLiteral: assertRegExpLiteral, - assertLogicalExpression: assertLogicalExpression, - assertMemberExpression: assertMemberExpression, - assertNewExpression: assertNewExpression, - assertProgram: assertProgram, - assertObjectExpression: assertObjectExpression, - assertObjectMethod: assertObjectMethod, - assertObjectProperty: assertObjectProperty, - assertRestElement: assertRestElement, - assertReturnStatement: assertReturnStatement, - assertSequenceExpression: assertSequenceExpression, - assertParenthesizedExpression: assertParenthesizedExpression, - assertSwitchCase: assertSwitchCase, - assertSwitchStatement: assertSwitchStatement, - assertThisExpression: assertThisExpression, - assertThrowStatement: assertThrowStatement, - assertTryStatement: assertTryStatement, - assertUnaryExpression: assertUnaryExpression, - assertUpdateExpression: assertUpdateExpression, - assertVariableDeclaration: assertVariableDeclaration, - assertVariableDeclarator: assertVariableDeclarator, - assertWhileStatement: assertWhileStatement, - assertWithStatement: assertWithStatement, - assertAssignmentPattern: assertAssignmentPattern, - assertArrayPattern: assertArrayPattern, - assertArrowFunctionExpression: assertArrowFunctionExpression, - assertClassBody: assertClassBody, - assertClassExpression: assertClassExpression, - assertClassDeclaration: assertClassDeclaration, - assertExportAllDeclaration: assertExportAllDeclaration, - assertExportDefaultDeclaration: assertExportDefaultDeclaration, - assertExportNamedDeclaration: assertExportNamedDeclaration, - assertExportSpecifier: assertExportSpecifier$1, - assertForOfStatement: assertForOfStatement, - assertImportDeclaration: assertImportDeclaration, - assertImportDefaultSpecifier: assertImportDefaultSpecifier, - assertImportNamespaceSpecifier: assertImportNamespaceSpecifier, - assertImportSpecifier: assertImportSpecifier, - assertMetaProperty: assertMetaProperty, - assertClassMethod: assertClassMethod, - assertObjectPattern: assertObjectPattern, - assertSpreadElement: assertSpreadElement, - assertSuper: assertSuper, - assertTaggedTemplateExpression: assertTaggedTemplateExpression, - assertTemplateElement: assertTemplateElement, - assertTemplateLiteral: assertTemplateLiteral, - assertYieldExpression: assertYieldExpression, - assertAwaitExpression: assertAwaitExpression, - assertImport: assertImport, - assertBigIntLiteral: assertBigIntLiteral, - assertExportNamespaceSpecifier: assertExportNamespaceSpecifier, - assertOptionalMemberExpression: assertOptionalMemberExpression, - assertOptionalCallExpression: assertOptionalCallExpression, - assertClassProperty: assertClassProperty, - assertClassAccessorProperty: assertClassAccessorProperty, - assertClassPrivateProperty: assertClassPrivateProperty, - assertClassPrivateMethod: assertClassPrivateMethod, - assertPrivateName: assertPrivateName, - assertStaticBlock: assertStaticBlock, - assertAnyTypeAnnotation: assertAnyTypeAnnotation, - assertArrayTypeAnnotation: assertArrayTypeAnnotation, - assertBooleanTypeAnnotation: assertBooleanTypeAnnotation, - assertBooleanLiteralTypeAnnotation: assertBooleanLiteralTypeAnnotation, - assertNullLiteralTypeAnnotation: assertNullLiteralTypeAnnotation, - assertClassImplements: assertClassImplements, - assertDeclareClass: assertDeclareClass, - assertDeclareFunction: assertDeclareFunction, - assertDeclareInterface: assertDeclareInterface, - assertDeclareModule: assertDeclareModule, - assertDeclareModuleExports: assertDeclareModuleExports, - assertDeclareTypeAlias: assertDeclareTypeAlias, - assertDeclareOpaqueType: assertDeclareOpaqueType, - assertDeclareVariable: assertDeclareVariable, - assertDeclareExportDeclaration: assertDeclareExportDeclaration, - assertDeclareExportAllDeclaration: assertDeclareExportAllDeclaration, - assertDeclaredPredicate: assertDeclaredPredicate, - assertExistsTypeAnnotation: assertExistsTypeAnnotation, - assertFunctionTypeAnnotation: assertFunctionTypeAnnotation, - assertFunctionTypeParam: assertFunctionTypeParam, - assertGenericTypeAnnotation: assertGenericTypeAnnotation, - assertInferredPredicate: assertInferredPredicate, - assertInterfaceExtends: assertInterfaceExtends, - assertInterfaceDeclaration: assertInterfaceDeclaration, - assertInterfaceTypeAnnotation: assertInterfaceTypeAnnotation, - assertIntersectionTypeAnnotation: assertIntersectionTypeAnnotation, - assertMixedTypeAnnotation: assertMixedTypeAnnotation, - assertEmptyTypeAnnotation: assertEmptyTypeAnnotation, - assertNullableTypeAnnotation: assertNullableTypeAnnotation, - assertNumberLiteralTypeAnnotation: assertNumberLiteralTypeAnnotation, - assertNumberTypeAnnotation: assertNumberTypeAnnotation, - assertObjectTypeAnnotation: assertObjectTypeAnnotation, - assertObjectTypeInternalSlot: assertObjectTypeInternalSlot, - assertObjectTypeCallProperty: assertObjectTypeCallProperty, - assertObjectTypeIndexer: assertObjectTypeIndexer, - assertObjectTypeProperty: assertObjectTypeProperty, - assertObjectTypeSpreadProperty: assertObjectTypeSpreadProperty, - assertOpaqueType: assertOpaqueType, - assertQualifiedTypeIdentifier: assertQualifiedTypeIdentifier, - assertStringLiteralTypeAnnotation: assertStringLiteralTypeAnnotation, - assertStringTypeAnnotation: assertStringTypeAnnotation, - assertSymbolTypeAnnotation: assertSymbolTypeAnnotation, - assertThisTypeAnnotation: assertThisTypeAnnotation, - assertTupleTypeAnnotation: assertTupleTypeAnnotation, - assertTypeofTypeAnnotation: assertTypeofTypeAnnotation, - assertTypeAlias: assertTypeAlias, - assertTypeAnnotation: assertTypeAnnotation, - assertTypeCastExpression: assertTypeCastExpression, - assertTypeParameter: assertTypeParameter, - assertTypeParameterDeclaration: assertTypeParameterDeclaration, - assertTypeParameterInstantiation: assertTypeParameterInstantiation, - assertUnionTypeAnnotation: assertUnionTypeAnnotation, - assertVariance: assertVariance, - assertVoidTypeAnnotation: assertVoidTypeAnnotation, - assertEnumDeclaration: assertEnumDeclaration, - assertEnumBooleanBody: assertEnumBooleanBody, - assertEnumNumberBody: assertEnumNumberBody, - assertEnumStringBody: assertEnumStringBody, - assertEnumSymbolBody: assertEnumSymbolBody, - assertEnumBooleanMember: assertEnumBooleanMember, - assertEnumNumberMember: assertEnumNumberMember, - assertEnumStringMember: assertEnumStringMember, - assertEnumDefaultedMember: assertEnumDefaultedMember, - assertIndexedAccessType: assertIndexedAccessType, - assertOptionalIndexedAccessType: assertOptionalIndexedAccessType, - assertJSXAttribute: assertJSXAttribute, - assertJSXClosingElement: assertJSXClosingElement, - assertJSXElement: assertJSXElement, - assertJSXEmptyExpression: assertJSXEmptyExpression, - assertJSXExpressionContainer: assertJSXExpressionContainer, - assertJSXSpreadChild: assertJSXSpreadChild, - assertJSXIdentifier: assertJSXIdentifier, - assertJSXMemberExpression: assertJSXMemberExpression, - assertJSXNamespacedName: assertJSXNamespacedName, - assertJSXOpeningElement: assertJSXOpeningElement, - assertJSXSpreadAttribute: assertJSXSpreadAttribute, - assertJSXText: assertJSXText, - assertJSXFragment: assertJSXFragment, - assertJSXOpeningFragment: assertJSXOpeningFragment, - assertJSXClosingFragment: assertJSXClosingFragment, - assertNoop: assertNoop, - assertPlaceholder: assertPlaceholder, - assertV8IntrinsicIdentifier: assertV8IntrinsicIdentifier, - assertArgumentPlaceholder: assertArgumentPlaceholder, - assertBindExpression: assertBindExpression, - assertImportAttribute: assertImportAttribute, - assertDecorator: assertDecorator, - assertDoExpression: assertDoExpression, - assertExportDefaultSpecifier: assertExportDefaultSpecifier, - assertRecordExpression: assertRecordExpression, - assertTupleExpression: assertTupleExpression, - assertDecimalLiteral: assertDecimalLiteral, - assertModuleExpression: assertModuleExpression, - assertTopicReference: assertTopicReference, - assertPipelineTopicExpression: assertPipelineTopicExpression, - assertPipelineBareFunction: assertPipelineBareFunction, - assertPipelinePrimaryTopicReference: assertPipelinePrimaryTopicReference, - assertTSParameterProperty: assertTSParameterProperty, - assertTSDeclareFunction: assertTSDeclareFunction, - assertTSDeclareMethod: assertTSDeclareMethod, - assertTSQualifiedName: assertTSQualifiedName, - assertTSCallSignatureDeclaration: assertTSCallSignatureDeclaration, - assertTSConstructSignatureDeclaration: assertTSConstructSignatureDeclaration, - assertTSPropertySignature: assertTSPropertySignature, - assertTSMethodSignature: assertTSMethodSignature, - assertTSIndexSignature: assertTSIndexSignature, - assertTSAnyKeyword: assertTSAnyKeyword, - assertTSBooleanKeyword: assertTSBooleanKeyword, - assertTSBigIntKeyword: assertTSBigIntKeyword, - assertTSIntrinsicKeyword: assertTSIntrinsicKeyword, - assertTSNeverKeyword: assertTSNeverKeyword, - assertTSNullKeyword: assertTSNullKeyword, - assertTSNumberKeyword: assertTSNumberKeyword, - assertTSObjectKeyword: assertTSObjectKeyword, - assertTSStringKeyword: assertTSStringKeyword, - assertTSSymbolKeyword: assertTSSymbolKeyword, - assertTSUndefinedKeyword: assertTSUndefinedKeyword, - assertTSUnknownKeyword: assertTSUnknownKeyword, - assertTSVoidKeyword: assertTSVoidKeyword, - assertTSThisType: assertTSThisType, - assertTSFunctionType: assertTSFunctionType, - assertTSConstructorType: assertTSConstructorType, - assertTSTypeReference: assertTSTypeReference, - assertTSTypePredicate: assertTSTypePredicate, - assertTSTypeQuery: assertTSTypeQuery, - assertTSTypeLiteral: assertTSTypeLiteral, - assertTSArrayType: assertTSArrayType, - assertTSTupleType: assertTSTupleType, - assertTSOptionalType: assertTSOptionalType, - assertTSRestType: assertTSRestType, - assertTSNamedTupleMember: assertTSNamedTupleMember, - assertTSUnionType: assertTSUnionType, - assertTSIntersectionType: assertTSIntersectionType, - assertTSConditionalType: assertTSConditionalType, - assertTSInferType: assertTSInferType, - assertTSParenthesizedType: assertTSParenthesizedType, - assertTSTypeOperator: assertTSTypeOperator, - assertTSIndexedAccessType: assertTSIndexedAccessType, - assertTSMappedType: assertTSMappedType, - assertTSLiteralType: assertTSLiteralType, - assertTSExpressionWithTypeArguments: assertTSExpressionWithTypeArguments, - assertTSInterfaceDeclaration: assertTSInterfaceDeclaration, - assertTSInterfaceBody: assertTSInterfaceBody, - assertTSTypeAliasDeclaration: assertTSTypeAliasDeclaration, - assertTSInstantiationExpression: assertTSInstantiationExpression, - assertTSAsExpression: assertTSAsExpression, - assertTSSatisfiesExpression: assertTSSatisfiesExpression, - assertTSTypeAssertion: assertTSTypeAssertion, - assertTSEnumDeclaration: assertTSEnumDeclaration, - assertTSEnumMember: assertTSEnumMember, - assertTSModuleDeclaration: assertTSModuleDeclaration, - assertTSModuleBlock: assertTSModuleBlock, - assertTSImportType: assertTSImportType, - assertTSImportEqualsDeclaration: assertTSImportEqualsDeclaration, - assertTSExternalModuleReference: assertTSExternalModuleReference, - assertTSNonNullExpression: assertTSNonNullExpression, - assertTSExportAssignment: assertTSExportAssignment, - assertTSNamespaceExportDeclaration: assertTSNamespaceExportDeclaration, - assertTSTypeAnnotation: assertTSTypeAnnotation, - assertTSTypeParameterInstantiation: assertTSTypeParameterInstantiation, - assertTSTypeParameterDeclaration: assertTSTypeParameterDeclaration, - assertTSTypeParameter: assertTSTypeParameter, - assertStandardized: assertStandardized, - assertExpression: assertExpression$1, - assertBinary: assertBinary, - assertScopable: assertScopable, - assertBlockParent: assertBlockParent, - assertBlock: assertBlock, - assertStatement: assertStatement, - assertTerminatorless: assertTerminatorless, - assertCompletionStatement: assertCompletionStatement, - assertConditional: assertConditional, - assertLoop: assertLoop, - assertWhile: assertWhile, - assertExpressionWrapper: assertExpressionWrapper, - assertFor: assertFor, - assertForXStatement: assertForXStatement, - assertFunction: assertFunction$1, - assertFunctionParent: assertFunctionParent, - assertPureish: assertPureish, - assertDeclaration: assertDeclaration, - assertPatternLike: assertPatternLike, - assertLVal: assertLVal, - assertTSEntityName: assertTSEntityName, - assertLiteral: assertLiteral, - assertImmutable: assertImmutable, - assertUserWhitespacable: assertUserWhitespacable, - assertMethod: assertMethod, - assertObjectMember: assertObjectMember, - assertProperty: assertProperty, - assertUnaryLike: assertUnaryLike, - assertPattern: assertPattern, - assertClass: assertClass, - assertModuleDeclaration: assertModuleDeclaration, - assertExportDeclaration: assertExportDeclaration, - assertModuleSpecifier: assertModuleSpecifier, - assertAccessor: assertAccessor, - assertPrivate: assertPrivate, - assertFlow: assertFlow, - assertFlowType: assertFlowType, - assertFlowBaseAnnotation: assertFlowBaseAnnotation, - assertFlowDeclaration: assertFlowDeclaration, - assertFlowPredicate: assertFlowPredicate, - assertEnumBody: assertEnumBody, - assertEnumMember: assertEnumMember, - assertJSX: assertJSX, - assertMiscellaneous: assertMiscellaneous, - assertTypeScript: assertTypeScript, - assertTSTypeElement: assertTSTypeElement, - assertTSType: assertTSType, - assertTSBaseType: assertTSBaseType, - assertNumberLiteral: assertNumberLiteral, - assertRegexLiteral: assertRegexLiteral, - assertRestProperty: assertRestProperty, - assertSpreadProperty: assertSpreadProperty, - arrayExpression: arrayExpression$2, - assignmentExpression: assignmentExpression$d, - binaryExpression: binaryExpression$5, - interpreterDirective: interpreterDirective$1, - directive: directive$1, - directiveLiteral: directiveLiteral$1, - blockStatement: blockStatement$6, - breakStatement: breakStatement, - callExpression: callExpression$e, - catchClause: catchClause, - conditionalExpression: conditionalExpression$4, - continueStatement: continueStatement, - debuggerStatement: debuggerStatement, - doWhileStatement: doWhileStatement, - emptyStatement: emptyStatement$1, - expressionStatement: expressionStatement$a, - file: file$2, - forInStatement: forInStatement, - forStatement: forStatement, - functionDeclaration: functionDeclaration, - functionExpression: functionExpression$3, - identifier: identifier$j, - ifStatement: ifStatement, - labeledStatement: labeledStatement, - stringLiteral: stringLiteral$8, - numericLiteral: numericLiteral$8, - nullLiteral: nullLiteral$2, - booleanLiteral: booleanLiteral$5, - regExpLiteral: regExpLiteral, - logicalExpression: logicalExpression$3, - memberExpression: memberExpression$c, - newExpression: newExpression, - program: program$3, - objectExpression: objectExpression$4, - objectMethod: objectMethod, - objectProperty: objectProperty$2, - restElement: restElement$2, - returnStatement: returnStatement$3, - sequenceExpression: sequenceExpression$7, - parenthesizedExpression: parenthesizedExpression, - switchCase: switchCase, - switchStatement: switchStatement, - thisExpression: thisExpression$4, - throwStatement: throwStatement, - tryStatement: tryStatement, - unaryExpression: unaryExpression$7, - updateExpression: updateExpression$1, - variableDeclaration: variableDeclaration$8, - variableDeclarator: variableDeclarator$8, - whileStatement: whileStatement, - withStatement: withStatement, - assignmentPattern: assignmentPattern, - arrayPattern: arrayPattern, - arrowFunctionExpression: arrowFunctionExpression$4, - classBody: classBody, - classExpression: classExpression, - classDeclaration: classDeclaration, - exportAllDeclaration: exportAllDeclaration, - exportDefaultDeclaration: exportDefaultDeclaration, - exportNamedDeclaration: exportNamedDeclaration$2, - exportSpecifier: exportSpecifier$2, - forOfStatement: forOfStatement, - importDeclaration: importDeclaration$1, - importDefaultSpecifier: importDefaultSpecifier$1, - importNamespaceSpecifier: importNamespaceSpecifier$1, - importSpecifier: importSpecifier$1, - metaProperty: metaProperty$1, - classMethod: classMethod, - objectPattern: objectPattern$1, - spreadElement: spreadElement$2, - 'super': _super$1, - taggedTemplateExpression: taggedTemplateExpression, - templateElement: templateElement, - templateLiteral: templateLiteral, - yieldExpression: yieldExpression$2, - awaitExpression: awaitExpression$1, - 'import': _import, - bigIntLiteral: bigIntLiteral, - exportNamespaceSpecifier: exportNamespaceSpecifier, - optionalMemberExpression: optionalMemberExpression$2, - optionalCallExpression: optionalCallExpression$2, - classProperty: classProperty, - classAccessorProperty: classAccessorProperty, - classPrivateProperty: classPrivateProperty, - classPrivateMethod: classPrivateMethod, - privateName: privateName, - staticBlock: staticBlock, - anyTypeAnnotation: anyTypeAnnotation$2, - arrayTypeAnnotation: arrayTypeAnnotation$1, - booleanTypeAnnotation: booleanTypeAnnotation$1, - booleanLiteralTypeAnnotation: booleanLiteralTypeAnnotation, - nullLiteralTypeAnnotation: nullLiteralTypeAnnotation$1, - classImplements: classImplements, - declareClass: declareClass, - declareFunction: declareFunction, - declareInterface: declareInterface, - declareModule: declareModule, - declareModuleExports: declareModuleExports, - declareTypeAlias: declareTypeAlias, - declareOpaqueType: declareOpaqueType, - declareVariable: declareVariable, - declareExportDeclaration: declareExportDeclaration, - declareExportAllDeclaration: declareExportAllDeclaration, - declaredPredicate: declaredPredicate, - existsTypeAnnotation: existsTypeAnnotation, - functionTypeAnnotation: functionTypeAnnotation, - functionTypeParam: functionTypeParam, - genericTypeAnnotation: genericTypeAnnotation$1, - inferredPredicate: inferredPredicate, - interfaceExtends: interfaceExtends, - interfaceDeclaration: interfaceDeclaration, - interfaceTypeAnnotation: interfaceTypeAnnotation, - intersectionTypeAnnotation: intersectionTypeAnnotation, - mixedTypeAnnotation: mixedTypeAnnotation, - emptyTypeAnnotation: emptyTypeAnnotation, - nullableTypeAnnotation: nullableTypeAnnotation, - numberLiteralTypeAnnotation: numberLiteralTypeAnnotation, - numberTypeAnnotation: numberTypeAnnotation$2, - objectTypeAnnotation: objectTypeAnnotation, - objectTypeInternalSlot: objectTypeInternalSlot, - objectTypeCallProperty: objectTypeCallProperty, - objectTypeIndexer: objectTypeIndexer, - objectTypeProperty: objectTypeProperty, - objectTypeSpreadProperty: objectTypeSpreadProperty, - opaqueType: opaqueType, - qualifiedTypeIdentifier: qualifiedTypeIdentifier, - stringLiteralTypeAnnotation: stringLiteralTypeAnnotation, - stringTypeAnnotation: stringTypeAnnotation$2, - symbolTypeAnnotation: symbolTypeAnnotation, - thisTypeAnnotation: thisTypeAnnotation, - tupleTypeAnnotation: tupleTypeAnnotation$1, - typeofTypeAnnotation: typeofTypeAnnotation, - typeAlias: typeAlias, - typeAnnotation: typeAnnotation, - typeCastExpression: typeCastExpression, - typeParameter: typeParameter, - typeParameterDeclaration: typeParameterDeclaration, - typeParameterInstantiation: typeParameterInstantiation, - unionTypeAnnotation: unionTypeAnnotation$1, - variance: variance, - voidTypeAnnotation: voidTypeAnnotation$3, - enumDeclaration: enumDeclaration, - enumBooleanBody: enumBooleanBody, - enumNumberBody: enumNumberBody, - enumStringBody: enumStringBody, - enumSymbolBody: enumSymbolBody, - enumBooleanMember: enumBooleanMember, - enumNumberMember: enumNumberMember, - enumStringMember: enumStringMember, - enumDefaultedMember: enumDefaultedMember, - indexedAccessType: indexedAccessType, - optionalIndexedAccessType: optionalIndexedAccessType, - jsxAttribute: jsxAttribute, - jSXAttribute: jsxAttribute, - jsxClosingElement: jsxClosingElement, - jSXClosingElement: jsxClosingElement, - jsxElement: jsxElement, - jSXElement: jsxElement, - jsxEmptyExpression: jsxEmptyExpression, - jSXEmptyExpression: jsxEmptyExpression, - jsxExpressionContainer: jsxExpressionContainer$1, - jSXExpressionContainer: jsxExpressionContainer$1, - jsxSpreadChild: jsxSpreadChild, - jSXSpreadChild: jsxSpreadChild, - jsxIdentifier: jsxIdentifier$2, - jSXIdentifier: jsxIdentifier$2, - jsxMemberExpression: jsxMemberExpression$1, - jSXMemberExpression: jsxMemberExpression$1, - jsxNamespacedName: jsxNamespacedName, - jSXNamespacedName: jsxNamespacedName, - jsxOpeningElement: jsxOpeningElement, - jSXOpeningElement: jsxOpeningElement, - jsxSpreadAttribute: jsxSpreadAttribute, - jSXSpreadAttribute: jsxSpreadAttribute, - jsxText: jsxText, - jSXText: jsxText, - jsxFragment: jsxFragment, - jSXFragment: jsxFragment, - jsxOpeningFragment: jsxOpeningFragment, - jSXOpeningFragment: jsxOpeningFragment, - jsxClosingFragment: jsxClosingFragment, - jSXClosingFragment: jsxClosingFragment, - noop: noop$1, - placeholder: placeholder, - v8IntrinsicIdentifier: v8IntrinsicIdentifier, - argumentPlaceholder: argumentPlaceholder, - bindExpression: bindExpression, - importAttribute: importAttribute, - decorator: decorator, - doExpression: doExpression, - exportDefaultSpecifier: exportDefaultSpecifier, - recordExpression: recordExpression, - tupleExpression: tupleExpression, - decimalLiteral: decimalLiteral, - moduleExpression: moduleExpression, - topicReference: topicReference, - pipelineTopicExpression: pipelineTopicExpression, - pipelineBareFunction: pipelineBareFunction, - pipelinePrimaryTopicReference: pipelinePrimaryTopicReference, - tsParameterProperty: tsParameterProperty, - tSParameterProperty: tsParameterProperty, - tsDeclareFunction: tsDeclareFunction, - tSDeclareFunction: tsDeclareFunction, - tsDeclareMethod: tsDeclareMethod, - tSDeclareMethod: tsDeclareMethod, - tsQualifiedName: tsQualifiedName, - tSQualifiedName: tsQualifiedName, - tsCallSignatureDeclaration: tsCallSignatureDeclaration, - tSCallSignatureDeclaration: tsCallSignatureDeclaration, - tsConstructSignatureDeclaration: tsConstructSignatureDeclaration, - tSConstructSignatureDeclaration: tsConstructSignatureDeclaration, - tsPropertySignature: tsPropertySignature, - tSPropertySignature: tsPropertySignature, - tsMethodSignature: tsMethodSignature, - tSMethodSignature: tsMethodSignature, - tsIndexSignature: tsIndexSignature, - tSIndexSignature: tsIndexSignature, - tsAnyKeyword: tsAnyKeyword, - tSAnyKeyword: tsAnyKeyword, - tsBooleanKeyword: tsBooleanKeyword, - tSBooleanKeyword: tsBooleanKeyword, - tsBigIntKeyword: tsBigIntKeyword, - tSBigIntKeyword: tsBigIntKeyword, - tsIntrinsicKeyword: tsIntrinsicKeyword, - tSIntrinsicKeyword: tsIntrinsicKeyword, - tsNeverKeyword: tsNeverKeyword, - tSNeverKeyword: tsNeverKeyword, - tsNullKeyword: tsNullKeyword, - tSNullKeyword: tsNullKeyword, - tsNumberKeyword: tsNumberKeyword, - tSNumberKeyword: tsNumberKeyword, - tsObjectKeyword: tsObjectKeyword, - tSObjectKeyword: tsObjectKeyword, - tsStringKeyword: tsStringKeyword, - tSStringKeyword: tsStringKeyword, - tsSymbolKeyword: tsSymbolKeyword, - tSSymbolKeyword: tsSymbolKeyword, - tsUndefinedKeyword: tsUndefinedKeyword, - tSUndefinedKeyword: tsUndefinedKeyword, - tsUnknownKeyword: tsUnknownKeyword, - tSUnknownKeyword: tsUnknownKeyword, - tsVoidKeyword: tsVoidKeyword, - tSVoidKeyword: tsVoidKeyword, - tsThisType: tsThisType, - tSThisType: tsThisType, - tsFunctionType: tsFunctionType, - tSFunctionType: tsFunctionType, - tsConstructorType: tsConstructorType, - tSConstructorType: tsConstructorType, - tsTypeReference: tsTypeReference, - tSTypeReference: tsTypeReference, - tsTypePredicate: tsTypePredicate, - tSTypePredicate: tsTypePredicate, - tsTypeQuery: tsTypeQuery, - tSTypeQuery: tsTypeQuery, - tsTypeLiteral: tsTypeLiteral, - tSTypeLiteral: tsTypeLiteral, - tsArrayType: tsArrayType, - tSArrayType: tsArrayType, - tsTupleType: tsTupleType, - tSTupleType: tsTupleType, - tsOptionalType: tsOptionalType, - tSOptionalType: tsOptionalType, - tsRestType: tsRestType, - tSRestType: tsRestType, - tsNamedTupleMember: tsNamedTupleMember, - tSNamedTupleMember: tsNamedTupleMember, - tsUnionType: tsUnionType, - tSUnionType: tsUnionType, - tsIntersectionType: tsIntersectionType, - tSIntersectionType: tsIntersectionType, - tsConditionalType: tsConditionalType, - tSConditionalType: tsConditionalType, - tsInferType: tsInferType, - tSInferType: tsInferType, - tsParenthesizedType: tsParenthesizedType, - tSParenthesizedType: tsParenthesizedType, - tsTypeOperator: tsTypeOperator, - tSTypeOperator: tsTypeOperator, - tsIndexedAccessType: tsIndexedAccessType, - tSIndexedAccessType: tsIndexedAccessType, - tsMappedType: tsMappedType, - tSMappedType: tsMappedType, - tsLiteralType: tsLiteralType, - tSLiteralType: tsLiteralType, - tsExpressionWithTypeArguments: tsExpressionWithTypeArguments, - tSExpressionWithTypeArguments: tsExpressionWithTypeArguments, - tsInterfaceDeclaration: tsInterfaceDeclaration, - tSInterfaceDeclaration: tsInterfaceDeclaration, - tsInterfaceBody: tsInterfaceBody, - tSInterfaceBody: tsInterfaceBody, - tsTypeAliasDeclaration: tsTypeAliasDeclaration, - tSTypeAliasDeclaration: tsTypeAliasDeclaration, - tsInstantiationExpression: tsInstantiationExpression, - tSInstantiationExpression: tsInstantiationExpression, - tsAsExpression: tsAsExpression, - tSAsExpression: tsAsExpression, - tsSatisfiesExpression: tsSatisfiesExpression, - tSSatisfiesExpression: tsSatisfiesExpression, - tsTypeAssertion: tsTypeAssertion, - tSTypeAssertion: tsTypeAssertion, - tsEnumDeclaration: tsEnumDeclaration, - tSEnumDeclaration: tsEnumDeclaration, - tsEnumMember: tsEnumMember, - tSEnumMember: tsEnumMember, - tsModuleDeclaration: tsModuleDeclaration, - tSModuleDeclaration: tsModuleDeclaration, - tsModuleBlock: tsModuleBlock, - tSModuleBlock: tsModuleBlock, - tsImportType: tsImportType, - tSImportType: tsImportType, - tsImportEqualsDeclaration: tsImportEqualsDeclaration, - tSImportEqualsDeclaration: tsImportEqualsDeclaration, - tsExternalModuleReference: tsExternalModuleReference, - tSExternalModuleReference: tsExternalModuleReference, - tsNonNullExpression: tsNonNullExpression, - tSNonNullExpression: tsNonNullExpression, - tsExportAssignment: tsExportAssignment, - tSExportAssignment: tsExportAssignment, - tsNamespaceExportDeclaration: tsNamespaceExportDeclaration, - tSNamespaceExportDeclaration: tsNamespaceExportDeclaration, - tsTypeAnnotation: tsTypeAnnotation, - tSTypeAnnotation: tsTypeAnnotation, - tsTypeParameterInstantiation: tsTypeParameterInstantiation, - tSTypeParameterInstantiation: tsTypeParameterInstantiation, - tsTypeParameterDeclaration: tsTypeParameterDeclaration, - tSTypeParameterDeclaration: tsTypeParameterDeclaration, - tsTypeParameter: tsTypeParameter, - tSTypeParameter: tsTypeParameter, - numberLiteral: NumberLiteral, - regexLiteral: RegexLiteral, - restProperty: RestProperty, - spreadProperty: SpreadProperty, - ArrayExpression: arrayExpression$2, - AssignmentExpression: assignmentExpression$d, - BinaryExpression: binaryExpression$5, - InterpreterDirective: interpreterDirective$1, - Directive: directive$1, - DirectiveLiteral: directiveLiteral$1, - BlockStatement: blockStatement$6, - BreakStatement: breakStatement, - CallExpression: callExpression$e, - CatchClause: catchClause, - ConditionalExpression: conditionalExpression$4, - ContinueStatement: continueStatement, - DebuggerStatement: debuggerStatement, - DoWhileStatement: doWhileStatement, - EmptyStatement: emptyStatement$1, - ExpressionStatement: expressionStatement$a, - File: file$2, - ForInStatement: forInStatement, - ForStatement: forStatement, - FunctionDeclaration: functionDeclaration, - FunctionExpression: functionExpression$3, - Identifier: identifier$j, - IfStatement: ifStatement, - LabeledStatement: labeledStatement, - StringLiteral: stringLiteral$8, - NumericLiteral: numericLiteral$8, - NullLiteral: nullLiteral$2, - BooleanLiteral: booleanLiteral$5, - RegExpLiteral: regExpLiteral, - LogicalExpression: logicalExpression$3, - MemberExpression: memberExpression$c, - NewExpression: newExpression, - Program: program$3, - ObjectExpression: objectExpression$4, - ObjectMethod: objectMethod, - ObjectProperty: objectProperty$2, - RestElement: restElement$2, - ReturnStatement: returnStatement$3, - SequenceExpression: sequenceExpression$7, - ParenthesizedExpression: parenthesizedExpression, - SwitchCase: switchCase, - SwitchStatement: switchStatement, - ThisExpression: thisExpression$4, - ThrowStatement: throwStatement, - TryStatement: tryStatement, - UnaryExpression: unaryExpression$7, - UpdateExpression: updateExpression$1, - VariableDeclaration: variableDeclaration$8, - VariableDeclarator: variableDeclarator$8, - WhileStatement: whileStatement, - WithStatement: withStatement, - AssignmentPattern: assignmentPattern, - ArrayPattern: arrayPattern, - ArrowFunctionExpression: arrowFunctionExpression$4, - ClassBody: classBody, - ClassExpression: classExpression, - ClassDeclaration: classDeclaration, - ExportAllDeclaration: exportAllDeclaration, - ExportDefaultDeclaration: exportDefaultDeclaration, - ExportNamedDeclaration: exportNamedDeclaration$2, - ExportSpecifier: exportSpecifier$2, - ForOfStatement: forOfStatement, - ImportDeclaration: importDeclaration$1, - ImportDefaultSpecifier: importDefaultSpecifier$1, - ImportNamespaceSpecifier: importNamespaceSpecifier$1, - ImportSpecifier: importSpecifier$1, - MetaProperty: metaProperty$1, - ClassMethod: classMethod, - ObjectPattern: objectPattern$1, - SpreadElement: spreadElement$2, - Super: _super$1, - TaggedTemplateExpression: taggedTemplateExpression, - TemplateElement: templateElement, - TemplateLiteral: templateLiteral, - YieldExpression: yieldExpression$2, - AwaitExpression: awaitExpression$1, - Import: _import, - BigIntLiteral: bigIntLiteral, - ExportNamespaceSpecifier: exportNamespaceSpecifier, - OptionalMemberExpression: optionalMemberExpression$2, - OptionalCallExpression: optionalCallExpression$2, - ClassProperty: classProperty, - ClassAccessorProperty: classAccessorProperty, - ClassPrivateProperty: classPrivateProperty, - ClassPrivateMethod: classPrivateMethod, - PrivateName: privateName, - StaticBlock: staticBlock, - AnyTypeAnnotation: anyTypeAnnotation$2, - ArrayTypeAnnotation: arrayTypeAnnotation$1, - BooleanTypeAnnotation: booleanTypeAnnotation$1, - BooleanLiteralTypeAnnotation: booleanLiteralTypeAnnotation, - NullLiteralTypeAnnotation: nullLiteralTypeAnnotation$1, - ClassImplements: classImplements, - DeclareClass: declareClass, - DeclareFunction: declareFunction, - DeclareInterface: declareInterface, - DeclareModule: declareModule, - DeclareModuleExports: declareModuleExports, - DeclareTypeAlias: declareTypeAlias, - DeclareOpaqueType: declareOpaqueType, - DeclareVariable: declareVariable, - DeclareExportDeclaration: declareExportDeclaration, - DeclareExportAllDeclaration: declareExportAllDeclaration, - DeclaredPredicate: declaredPredicate, - ExistsTypeAnnotation: existsTypeAnnotation, - FunctionTypeAnnotation: functionTypeAnnotation, - FunctionTypeParam: functionTypeParam, - GenericTypeAnnotation: genericTypeAnnotation$1, - InferredPredicate: inferredPredicate, - InterfaceExtends: interfaceExtends, - InterfaceDeclaration: interfaceDeclaration, - InterfaceTypeAnnotation: interfaceTypeAnnotation, - IntersectionTypeAnnotation: intersectionTypeAnnotation, - MixedTypeAnnotation: mixedTypeAnnotation, - EmptyTypeAnnotation: emptyTypeAnnotation, - NullableTypeAnnotation: nullableTypeAnnotation, - NumberLiteralTypeAnnotation: numberLiteralTypeAnnotation, - NumberTypeAnnotation: numberTypeAnnotation$2, - ObjectTypeAnnotation: objectTypeAnnotation, - ObjectTypeInternalSlot: objectTypeInternalSlot, - ObjectTypeCallProperty: objectTypeCallProperty, - ObjectTypeIndexer: objectTypeIndexer, - ObjectTypeProperty: objectTypeProperty, - ObjectTypeSpreadProperty: objectTypeSpreadProperty, - OpaqueType: opaqueType, - QualifiedTypeIdentifier: qualifiedTypeIdentifier, - StringLiteralTypeAnnotation: stringLiteralTypeAnnotation, - StringTypeAnnotation: stringTypeAnnotation$2, - SymbolTypeAnnotation: symbolTypeAnnotation, - ThisTypeAnnotation: thisTypeAnnotation, - TupleTypeAnnotation: tupleTypeAnnotation$1, - TypeofTypeAnnotation: typeofTypeAnnotation, - TypeAlias: typeAlias, - TypeAnnotation: typeAnnotation, - TypeCastExpression: typeCastExpression, - TypeParameter: typeParameter, - TypeParameterDeclaration: typeParameterDeclaration, - TypeParameterInstantiation: typeParameterInstantiation, - UnionTypeAnnotation: unionTypeAnnotation$1, - Variance: variance, - VoidTypeAnnotation: voidTypeAnnotation$3, - EnumDeclaration: enumDeclaration, - EnumBooleanBody: enumBooleanBody, - EnumNumberBody: enumNumberBody, - EnumStringBody: enumStringBody, - EnumSymbolBody: enumSymbolBody, - EnumBooleanMember: enumBooleanMember, - EnumNumberMember: enumNumberMember, - EnumStringMember: enumStringMember, - EnumDefaultedMember: enumDefaultedMember, - IndexedAccessType: indexedAccessType, - OptionalIndexedAccessType: optionalIndexedAccessType, - JSXAttribute: jsxAttribute, - JSXClosingElement: jsxClosingElement, - JSXElement: jsxElement, - JSXEmptyExpression: jsxEmptyExpression, - JSXExpressionContainer: jsxExpressionContainer$1, - JSXSpreadChild: jsxSpreadChild, - JSXIdentifier: jsxIdentifier$2, - JSXMemberExpression: jsxMemberExpression$1, - JSXNamespacedName: jsxNamespacedName, - JSXOpeningElement: jsxOpeningElement, - JSXSpreadAttribute: jsxSpreadAttribute, - JSXText: jsxText, - JSXFragment: jsxFragment, - JSXOpeningFragment: jsxOpeningFragment, - JSXClosingFragment: jsxClosingFragment, - Noop: noop$1, - Placeholder: placeholder, - V8IntrinsicIdentifier: v8IntrinsicIdentifier, - ArgumentPlaceholder: argumentPlaceholder, - BindExpression: bindExpression, - ImportAttribute: importAttribute, - Decorator: decorator, - DoExpression: doExpression, - ExportDefaultSpecifier: exportDefaultSpecifier, - RecordExpression: recordExpression, - TupleExpression: tupleExpression, - DecimalLiteral: decimalLiteral, - ModuleExpression: moduleExpression, - TopicReference: topicReference, - PipelineTopicExpression: pipelineTopicExpression, - PipelineBareFunction: pipelineBareFunction, - PipelinePrimaryTopicReference: pipelinePrimaryTopicReference, - TSParameterProperty: tsParameterProperty, - TSDeclareFunction: tsDeclareFunction, - TSDeclareMethod: tsDeclareMethod, - TSQualifiedName: tsQualifiedName, - TSCallSignatureDeclaration: tsCallSignatureDeclaration, - TSConstructSignatureDeclaration: tsConstructSignatureDeclaration, - TSPropertySignature: tsPropertySignature, - TSMethodSignature: tsMethodSignature, - TSIndexSignature: tsIndexSignature, - TSAnyKeyword: tsAnyKeyword, - TSBooleanKeyword: tsBooleanKeyword, - TSBigIntKeyword: tsBigIntKeyword, - TSIntrinsicKeyword: tsIntrinsicKeyword, - TSNeverKeyword: tsNeverKeyword, - TSNullKeyword: tsNullKeyword, - TSNumberKeyword: tsNumberKeyword, - TSObjectKeyword: tsObjectKeyword, - TSStringKeyword: tsStringKeyword, - TSSymbolKeyword: tsSymbolKeyword, - TSUndefinedKeyword: tsUndefinedKeyword, - TSUnknownKeyword: tsUnknownKeyword, - TSVoidKeyword: tsVoidKeyword, - TSThisType: tsThisType, - TSFunctionType: tsFunctionType, - TSConstructorType: tsConstructorType, - TSTypeReference: tsTypeReference, - TSTypePredicate: tsTypePredicate, - TSTypeQuery: tsTypeQuery, - TSTypeLiteral: tsTypeLiteral, - TSArrayType: tsArrayType, - TSTupleType: tsTupleType, - TSOptionalType: tsOptionalType, - TSRestType: tsRestType, - TSNamedTupleMember: tsNamedTupleMember, - TSUnionType: tsUnionType, - TSIntersectionType: tsIntersectionType, - TSConditionalType: tsConditionalType, - TSInferType: tsInferType, - TSParenthesizedType: tsParenthesizedType, - TSTypeOperator: tsTypeOperator, - TSIndexedAccessType: tsIndexedAccessType, - TSMappedType: tsMappedType, - TSLiteralType: tsLiteralType, - TSExpressionWithTypeArguments: tsExpressionWithTypeArguments, - TSInterfaceDeclaration: tsInterfaceDeclaration, - TSInterfaceBody: tsInterfaceBody, - TSTypeAliasDeclaration: tsTypeAliasDeclaration, - TSInstantiationExpression: tsInstantiationExpression, - TSAsExpression: tsAsExpression, - TSSatisfiesExpression: tsSatisfiesExpression, - TSTypeAssertion: tsTypeAssertion, - TSEnumDeclaration: tsEnumDeclaration, - TSEnumMember: tsEnumMember, - TSModuleDeclaration: tsModuleDeclaration, - TSModuleBlock: tsModuleBlock, - TSImportType: tsImportType, - TSImportEqualsDeclaration: tsImportEqualsDeclaration, - TSExternalModuleReference: tsExternalModuleReference, - TSNonNullExpression: tsNonNullExpression, - TSExportAssignment: tsExportAssignment, - TSNamespaceExportDeclaration: tsNamespaceExportDeclaration, - TSTypeAnnotation: tsTypeAnnotation, - TSTypeParameterInstantiation: tsTypeParameterInstantiation, - TSTypeParameterDeclaration: tsTypeParameterDeclaration, - TSTypeParameter: tsTypeParameter, - NumberLiteral: NumberLiteral, - RegexLiteral: RegexLiteral, - RestProperty: RestProperty, - SpreadProperty: SpreadProperty, - STANDARDIZED_TYPES: STANDARDIZED_TYPES, - EXPRESSION_TYPES: EXPRESSION_TYPES, - BINARY_TYPES: BINARY_TYPES, - SCOPABLE_TYPES: SCOPABLE_TYPES, - BLOCKPARENT_TYPES: BLOCKPARENT_TYPES, - BLOCK_TYPES: BLOCK_TYPES, - STATEMENT_TYPES: STATEMENT_TYPES, - TERMINATORLESS_TYPES: TERMINATORLESS_TYPES, - COMPLETIONSTATEMENT_TYPES: COMPLETIONSTATEMENT_TYPES, - CONDITIONAL_TYPES: CONDITIONAL_TYPES, - LOOP_TYPES: LOOP_TYPES, - WHILE_TYPES: WHILE_TYPES, - EXPRESSIONWRAPPER_TYPES: EXPRESSIONWRAPPER_TYPES, - FOR_TYPES: FOR_TYPES, - FORXSTATEMENT_TYPES: FORXSTATEMENT_TYPES, - FUNCTION_TYPES: FUNCTION_TYPES$1, - FUNCTIONPARENT_TYPES: FUNCTIONPARENT_TYPES, - PUREISH_TYPES: PUREISH_TYPES, - DECLARATION_TYPES: DECLARATION_TYPES, - PATTERNLIKE_TYPES: PATTERNLIKE_TYPES, - LVAL_TYPES: LVAL_TYPES, - TSENTITYNAME_TYPES: TSENTITYNAME_TYPES, - LITERAL_TYPES: LITERAL_TYPES, - IMMUTABLE_TYPES: IMMUTABLE_TYPES, - USERWHITESPACABLE_TYPES: USERWHITESPACABLE_TYPES, - METHOD_TYPES: METHOD_TYPES, - OBJECTMEMBER_TYPES: OBJECTMEMBER_TYPES, - PROPERTY_TYPES: PROPERTY_TYPES, - UNARYLIKE_TYPES: UNARYLIKE_TYPES, - PATTERN_TYPES: PATTERN_TYPES, - CLASS_TYPES: CLASS_TYPES, - MODULEDECLARATION_TYPES: MODULEDECLARATION_TYPES, - EXPORTDECLARATION_TYPES: EXPORTDECLARATION_TYPES, - MODULESPECIFIER_TYPES: MODULESPECIFIER_TYPES, - ACCESSOR_TYPES: ACCESSOR_TYPES, - PRIVATE_TYPES: PRIVATE_TYPES, - FLOW_TYPES: FLOW_TYPES, - FLOWTYPE_TYPES: FLOWTYPE_TYPES, - FLOWBASEANNOTATION_TYPES: FLOWBASEANNOTATION_TYPES, - FLOWDECLARATION_TYPES: FLOWDECLARATION_TYPES, - FLOWPREDICATE_TYPES: FLOWPREDICATE_TYPES, - ENUMBODY_TYPES: ENUMBODY_TYPES, - ENUMMEMBER_TYPES: ENUMMEMBER_TYPES, - JSX_TYPES: JSX_TYPES, - MISCELLANEOUS_TYPES: MISCELLANEOUS_TYPES, - TYPESCRIPT_TYPES: TYPESCRIPT_TYPES, - TSTYPEELEMENT_TYPES: TSTYPEELEMENT_TYPES, - TSTYPE_TYPES: TSTYPE_TYPES, - TSBASETYPE_TYPES: TSBASETYPE_TYPES, - STATEMENT_OR_BLOCK_KEYS: STATEMENT_OR_BLOCK_KEYS$1, - FLATTENABLE_KEYS: FLATTENABLE_KEYS, - FOR_INIT_KEYS: FOR_INIT_KEYS, - COMMENT_KEYS: COMMENT_KEYS, - LOGICAL_OPERATORS: LOGICAL_OPERATORS$3, - UPDATE_OPERATORS: UPDATE_OPERATORS, - BOOLEAN_NUMBER_BINARY_OPERATORS: BOOLEAN_NUMBER_BINARY_OPERATORS$1, - EQUALITY_BINARY_OPERATORS: EQUALITY_BINARY_OPERATORS, - COMPARISON_BINARY_OPERATORS: COMPARISON_BINARY_OPERATORS, - BOOLEAN_BINARY_OPERATORS: BOOLEAN_BINARY_OPERATORS$1, - NUMBER_BINARY_OPERATORS: NUMBER_BINARY_OPERATORS$1, - BINARY_OPERATORS: BINARY_OPERATORS, - ASSIGNMENT_OPERATORS: ASSIGNMENT_OPERATORS, - BOOLEAN_UNARY_OPERATORS: BOOLEAN_UNARY_OPERATORS$1, - NUMBER_UNARY_OPERATORS: NUMBER_UNARY_OPERATORS$1, - STRING_UNARY_OPERATORS: STRING_UNARY_OPERATORS$1, - UNARY_OPERATORS: UNARY_OPERATORS, - INHERIT_KEYS: INHERIT_KEYS, - BLOCK_SCOPED_SYMBOL: BLOCK_SCOPED_SYMBOL, - NOT_LOCAL_BINDING: NOT_LOCAL_BINDING$2, - VISITOR_KEYS: VISITOR_KEYS$5, - ALIAS_KEYS: ALIAS_KEYS, - FLIPPED_ALIAS_KEYS: FLIPPED_ALIAS_KEYS$3, - NODE_FIELDS: NODE_FIELDS, - BUILDER_KEYS: BUILDER_KEYS, - DEPRECATED_KEYS: DEPRECATED_KEYS$1, - NODE_PARENT_VALIDATIONS: NODE_PARENT_VALIDATIONS, - PLACEHOLDERS: PLACEHOLDERS, - PLACEHOLDERS_ALIAS: PLACEHOLDERS_ALIAS, - PLACEHOLDERS_FLIPPED_ALIAS: PLACEHOLDERS_FLIPPED_ALIAS, - TYPES: TYPES$1, - isArrayExpression: isArrayExpression$2, - isAssignmentExpression: isAssignmentExpression$4, - isBinaryExpression: isBinaryExpression$1, - isInterpreterDirective: isInterpreterDirective, - isDirective: isDirective, - isDirectiveLiteral: isDirectiveLiteral, - isBlockStatement: isBlockStatement$2, - isBreakStatement: isBreakStatement, - isCallExpression: isCallExpression$8, - isCatchClause: isCatchClause, - isConditionalExpression: isConditionalExpression$1, - isContinueStatement: isContinueStatement, - isDebuggerStatement: isDebuggerStatement, - isDoWhileStatement: isDoWhileStatement, - isEmptyStatement: isEmptyStatement, - isExpressionStatement: isExpressionStatement$3, - isFile: isFile, - isForInStatement: isForInStatement$1, - isForStatement: isForStatement$3, - isFunctionDeclaration: isFunctionDeclaration$2, - isFunctionExpression: isFunctionExpression$2, - isIdentifier: isIdentifier$j, - isIfStatement: isIfStatement$2, - isLabeledStatement: isLabeledStatement, - isStringLiteral: isStringLiteral$7, - isNumericLiteral: isNumericLiteral, - isNullLiteral: isNullLiteral$2, - isBooleanLiteral: isBooleanLiteral, - isRegExpLiteral: isRegExpLiteral$2, - isLogicalExpression: isLogicalExpression$1, - isMemberExpression: isMemberExpression$8, - isNewExpression: isNewExpression$4, - isProgram: isProgram$1, - isObjectExpression: isObjectExpression$3, - isObjectMethod: isObjectMethod$2, - isObjectProperty: isObjectProperty$6, - isRestElement: isRestElement$3, - isReturnStatement: isReturnStatement$1, - isSequenceExpression: isSequenceExpression$2, - isParenthesizedExpression: isParenthesizedExpression$1, - isSwitchCase: isSwitchCase, - isSwitchStatement: isSwitchStatement$1, - isThisExpression: isThisExpression$2, - isThrowStatement: isThrowStatement$1, - isTryStatement: isTryStatement, - isUnaryExpression: isUnaryExpression$1, - isUpdateExpression: isUpdateExpression$2, - isVariableDeclaration: isVariableDeclaration$3, - isVariableDeclarator: isVariableDeclarator$2, - isWhileStatement: isWhileStatement$1, - isWithStatement: isWithStatement, - isAssignmentPattern: isAssignmentPattern$5, - isArrayPattern: isArrayPattern$1, - isArrowFunctionExpression: isArrowFunctionExpression$1, - isClassBody: isClassBody$2, - isClassExpression: isClassExpression$1, - isClassDeclaration: isClassDeclaration$2, - isExportAllDeclaration: isExportAllDeclaration$1, - isExportDefaultDeclaration: isExportDefaultDeclaration$3, - isExportNamedDeclaration: isExportNamedDeclaration$2, - isExportSpecifier: isExportSpecifier, - isForOfStatement: isForOfStatement$2, - isImportDeclaration: isImportDeclaration$2, - isImportDefaultSpecifier: isImportDefaultSpecifier$1, - isImportNamespaceSpecifier: isImportNamespaceSpecifier$1, - isImportSpecifier: isImportSpecifier$1, - isMetaProperty: isMetaProperty$1, - isClassMethod: isClassMethod$1, - isObjectPattern: isObjectPattern$2, - isSpreadElement: isSpreadElement$1, - isSuper: isSuper$3, - isTaggedTemplateExpression: isTaggedTemplateExpression$2, - isTemplateElement: isTemplateElement, - isTemplateLiteral: isTemplateLiteral$2, - isYieldExpression: isYieldExpression$1, - isAwaitExpression: isAwaitExpression$1, - isImport: isImport, - isBigIntLiteral: isBigIntLiteral, - isExportNamespaceSpecifier: isExportNamespaceSpecifier$1, - isOptionalMemberExpression: isOptionalMemberExpression$3, - isOptionalCallExpression: isOptionalCallExpression$3, - isClassProperty: isClassProperty, - isClassAccessorProperty: isClassAccessorProperty, - isClassPrivateProperty: isClassPrivateProperty, - isClassPrivateMethod: isClassPrivateMethod, - isPrivateName: isPrivateName$3, - isStaticBlock: isStaticBlock, - isAnyTypeAnnotation: isAnyTypeAnnotation$1, - isArrayTypeAnnotation: isArrayTypeAnnotation$2, - isBooleanTypeAnnotation: isBooleanTypeAnnotation$1, - isBooleanLiteralTypeAnnotation: isBooleanLiteralTypeAnnotation, - isNullLiteralTypeAnnotation: isNullLiteralTypeAnnotation, - isClassImplements: isClassImplements, - isDeclareClass: isDeclareClass, - isDeclareFunction: isDeclareFunction, - isDeclareInterface: isDeclareInterface, - isDeclareModule: isDeclareModule, - isDeclareModuleExports: isDeclareModuleExports, - isDeclareTypeAlias: isDeclareTypeAlias, - isDeclareOpaqueType: isDeclareOpaqueType, - isDeclareVariable: isDeclareVariable, - isDeclareExportDeclaration: isDeclareExportDeclaration$1, - isDeclareExportAllDeclaration: isDeclareExportAllDeclaration, - isDeclaredPredicate: isDeclaredPredicate, - isExistsTypeAnnotation: isExistsTypeAnnotation, - isFunctionTypeAnnotation: isFunctionTypeAnnotation, - isFunctionTypeParam: isFunctionTypeParam, - isGenericTypeAnnotation: isGenericTypeAnnotation$1, - isInferredPredicate: isInferredPredicate, - isInterfaceExtends: isInterfaceExtends, - isInterfaceDeclaration: isInterfaceDeclaration, - isInterfaceTypeAnnotation: isInterfaceTypeAnnotation, - isIntersectionTypeAnnotation: isIntersectionTypeAnnotation$1, - isMixedTypeAnnotation: isMixedTypeAnnotation$1, - isEmptyTypeAnnotation: isEmptyTypeAnnotation$1, - isNullableTypeAnnotation: isNullableTypeAnnotation$1, - isNumberLiteralTypeAnnotation: isNumberLiteralTypeAnnotation, - isNumberTypeAnnotation: isNumberTypeAnnotation$1, - isObjectTypeAnnotation: isObjectTypeAnnotation, - isObjectTypeInternalSlot: isObjectTypeInternalSlot, - isObjectTypeCallProperty: isObjectTypeCallProperty, - isObjectTypeIndexer: isObjectTypeIndexer, - isObjectTypeProperty: isObjectTypeProperty, - isObjectTypeSpreadProperty: isObjectTypeSpreadProperty, - isOpaqueType: isOpaqueType, - isQualifiedTypeIdentifier: isQualifiedTypeIdentifier, - isStringLiteralTypeAnnotation: isStringLiteralTypeAnnotation, - isStringTypeAnnotation: isStringTypeAnnotation$1, - isSymbolTypeAnnotation: isSymbolTypeAnnotation, - isThisTypeAnnotation: isThisTypeAnnotation, - isTupleTypeAnnotation: isTupleTypeAnnotation$1, - isTypeofTypeAnnotation: isTypeofTypeAnnotation, - isTypeAlias: isTypeAlias, - isTypeAnnotation: isTypeAnnotation$2, - isTypeCastExpression: isTypeCastExpression$1, - isTypeParameter: isTypeParameter, - isTypeParameterDeclaration: isTypeParameterDeclaration, - isTypeParameterInstantiation: isTypeParameterInstantiation, - isUnionTypeAnnotation: isUnionTypeAnnotation$2, - isVariance: isVariance, - isVoidTypeAnnotation: isVoidTypeAnnotation$1, - isEnumDeclaration: isEnumDeclaration, - isEnumBooleanBody: isEnumBooleanBody, - isEnumNumberBody: isEnumNumberBody, - isEnumStringBody: isEnumStringBody, - isEnumSymbolBody: isEnumSymbolBody, - isEnumBooleanMember: isEnumBooleanMember, - isEnumNumberMember: isEnumNumberMember, - isEnumStringMember: isEnumStringMember, - isEnumDefaultedMember: isEnumDefaultedMember, - isIndexedAccessType: isIndexedAccessType$1, - isOptionalIndexedAccessType: isOptionalIndexedAccessType, - isJSXAttribute: isJSXAttribute, - isJSXClosingElement: isJSXClosingElement, - isJSXElement: isJSXElement, - isJSXEmptyExpression: isJSXEmptyExpression, - isJSXExpressionContainer: isJSXExpressionContainer$1, - isJSXSpreadChild: isJSXSpreadChild, - isJSXIdentifier: isJSXIdentifier$3, - isJSXMemberExpression: isJSXMemberExpression$2, - isJSXNamespacedName: isJSXNamespacedName$1, - isJSXOpeningElement: isJSXOpeningElement, - isJSXSpreadAttribute: isJSXSpreadAttribute$1, - isJSXText: isJSXText, - isJSXFragment: isJSXFragment, - isJSXOpeningFragment: isJSXOpeningFragment, - isJSXClosingFragment: isJSXClosingFragment, - isNoop: isNoop, - isPlaceholder: isPlaceholder$1, - isV8IntrinsicIdentifier: isV8IntrinsicIdentifier, - isArgumentPlaceholder: isArgumentPlaceholder, - isBindExpression: isBindExpression, - isImportAttribute: isImportAttribute, - isDecorator: isDecorator, - isDoExpression: isDoExpression, - isExportDefaultSpecifier: isExportDefaultSpecifier$1, - isRecordExpression: isRecordExpression$1, - isTupleExpression: isTupleExpression$1, - isDecimalLiteral: isDecimalLiteral, - isModuleExpression: isModuleExpression, - isTopicReference: isTopicReference$1, - isPipelineTopicExpression: isPipelineTopicExpression, - isPipelineBareFunction: isPipelineBareFunction, - isPipelinePrimaryTopicReference: isPipelinePrimaryTopicReference, - isTSParameterProperty: isTSParameterProperty, - isTSDeclareFunction: isTSDeclareFunction, - isTSDeclareMethod: isTSDeclareMethod, - isTSQualifiedName: isTSQualifiedName, - isTSCallSignatureDeclaration: isTSCallSignatureDeclaration, - isTSConstructSignatureDeclaration: isTSConstructSignatureDeclaration, - isTSPropertySignature: isTSPropertySignature, - isTSMethodSignature: isTSMethodSignature, - isTSIndexSignature: isTSIndexSignature, - isTSAnyKeyword: isTSAnyKeyword, - isTSBooleanKeyword: isTSBooleanKeyword, - isTSBigIntKeyword: isTSBigIntKeyword, - isTSIntrinsicKeyword: isTSIntrinsicKeyword, - isTSNeverKeyword: isTSNeverKeyword, - isTSNullKeyword: isTSNullKeyword, - isTSNumberKeyword: isTSNumberKeyword, - isTSObjectKeyword: isTSObjectKeyword, - isTSStringKeyword: isTSStringKeyword, - isTSSymbolKeyword: isTSSymbolKeyword, - isTSUndefinedKeyword: isTSUndefinedKeyword, - isTSUnknownKeyword: isTSUnknownKeyword, - isTSVoidKeyword: isTSVoidKeyword, - isTSThisType: isTSThisType, - isTSFunctionType: isTSFunctionType, - isTSConstructorType: isTSConstructorType, - isTSTypeReference: isTSTypeReference$1, - isTSTypePredicate: isTSTypePredicate, - isTSTypeQuery: isTSTypeQuery, - isTSTypeLiteral: isTSTypeLiteral, - isTSArrayType: isTSArrayType$2, - isTSTupleType: isTSTupleType, - isTSOptionalType: isTSOptionalType$1, - isTSRestType: isTSRestType$1, - isTSNamedTupleMember: isTSNamedTupleMember, - isTSUnionType: isTSUnionType$1, - isTSIntersectionType: isTSIntersectionType$1, - isTSConditionalType: isTSConditionalType, - isTSInferType: isTSInferType, - isTSParenthesizedType: isTSParenthesizedType, - isTSTypeOperator: isTSTypeOperator, - isTSIndexedAccessType: isTSIndexedAccessType, - isTSMappedType: isTSMappedType, - isTSLiteralType: isTSLiteralType, - isTSExpressionWithTypeArguments: isTSExpressionWithTypeArguments, - isTSInterfaceDeclaration: isTSInterfaceDeclaration, - isTSInterfaceBody: isTSInterfaceBody$1, - isTSTypeAliasDeclaration: isTSTypeAliasDeclaration, - isTSInstantiationExpression: isTSInstantiationExpression$1, - isTSAsExpression: isTSAsExpression$2, - isTSSatisfiesExpression: isTSSatisfiesExpression$2, - isTSTypeAssertion: isTSTypeAssertion$2, - isTSEnumDeclaration: isTSEnumDeclaration, - isTSEnumMember: isTSEnumMember, - isTSModuleDeclaration: isTSModuleDeclaration, - isTSModuleBlock: isTSModuleBlock, - isTSImportType: isTSImportType, - isTSImportEqualsDeclaration: isTSImportEqualsDeclaration, - isTSExternalModuleReference: isTSExternalModuleReference, - isTSNonNullExpression: isTSNonNullExpression$2, - isTSExportAssignment: isTSExportAssignment, - isTSNamespaceExportDeclaration: isTSNamespaceExportDeclaration, - isTSTypeAnnotation: isTSTypeAnnotation$1, - isTSTypeParameterInstantiation: isTSTypeParameterInstantiation, - isTSTypeParameterDeclaration: isTSTypeParameterDeclaration, - isTSTypeParameter: isTSTypeParameter, - isStandardized: isStandardized, - isExpression: isExpression$4, - isBinary: isBinary$3, - isScopable: isScopable, - isBlockParent: isBlockParent, - isBlock: isBlock, - isStatement: isStatement$8, - isTerminatorless: isTerminatorless, - isCompletionStatement: isCompletionStatement, - isConditional: isConditional$1, - isLoop: isLoop$1, - isWhile: isWhile, - isExpressionWrapper: isExpressionWrapper, - isFor: isFor$2, - isForXStatement: isForXStatement$1, - isFunction: isFunction$4, - isFunctionParent: isFunctionParent, - isPureish: isPureish$2, - isDeclaration: isDeclaration$1, - isPatternLike: isPatternLike, - isLVal: isLVal, - isTSEntityName: isTSEntityName, - isLiteral: isLiteral$6, - isUserWhitespacable: isUserWhitespacable, - isMethod: isMethod$1, - isObjectMember: isObjectMember, - isProperty: isProperty$2, - isUnaryLike: isUnaryLike$1, - isPattern: isPattern, - isClass: isClass$2, - isModuleDeclaration: isModuleDeclaration$1, - isExportDeclaration: isExportDeclaration$2, - isModuleSpecifier: isModuleSpecifier$1, - isAccessor: isAccessor, - isPrivate: isPrivate, - isFlow: isFlow$1, - isFlowType: isFlowType$1, - isFlowBaseAnnotation: isFlowBaseAnnotation$1, - isFlowDeclaration: isFlowDeclaration, - isFlowPredicate: isFlowPredicate, - isEnumBody: isEnumBody, - isEnumMember: isEnumMember, - isJSX: isJSX, - isMiscellaneous: isMiscellaneous, - isTypeScript: isTypeScript, - isTSTypeElement: isTSTypeElement, - isTSType: isTSType, - isTSBaseType: isTSBaseType, - isNumberLiteral: isNumberLiteral, - isRegexLiteral: isRegexLiteral, - isRestProperty: isRestProperty$1, - isSpreadProperty: isSpreadProperty$1 - }); - - var DEPRECATED_KEYS = DEPRECATED_KEYS$1, - FLIPPED_ALIAS_KEYS$2 = FLIPPED_ALIAS_KEYS$3, - TYPES = TYPES$1; - function isVirtualType(type) { - return type in virtualTypes; - } - - function explode$1(visitor) { - if (visitor._exploded) return visitor; - visitor._exploded = true; - - for (var _i = 0, _arr = Object.keys(visitor); _i < _arr.length; _i++) { - var nodeType = _arr[_i]; - if (shouldIgnoreKey(nodeType)) continue; - var parts = nodeType.split("|"); - if (parts.length === 1) continue; - var fns = visitor[nodeType]; - delete visitor[nodeType]; - for (var _iterator = _createForOfIteratorHelperLoose(parts), _step; !(_step = _iterator()).done;) { - var part = _step.value; - visitor[part] = fns; - } - } - - verify(visitor); - - delete visitor.__esModule; - - ensureEntranceObjects(visitor); - - ensureCallbackArrays(visitor); - - for (var _i2 = 0, _Object$keys = Object.keys(visitor); _i2 < _Object$keys.length; _i2++) { - var _nodeType = _Object$keys[_i2]; - if (shouldIgnoreKey(_nodeType)) continue; - if (!isVirtualType(_nodeType)) continue; - - var _fns = visitor[_nodeType]; - for (var _i3 = 0, _Object$keys2 = Object.keys(_fns); _i3 < _Object$keys2.length; _i3++) { - var type = _Object$keys2[_i3]; - _fns[type] = wrapCheck(_nodeType, _fns[type]); - } - - delete visitor[_nodeType]; - var types = virtualTypes[_nodeType]; - if (types !== null) { - for (var _iterator2 = _createForOfIteratorHelperLoose(types), _step2; !(_step2 = _iterator2()).done;) { - var _type = _step2.value; - if (visitor[_type]) { - mergePair(visitor[_type], _fns); - } else { - visitor[_type] = _fns; - } - } - } else { - mergePair(visitor, _fns); - } - } - - for (var _i4 = 0, _arr2 = Object.keys(visitor); _i4 < _arr2.length; _i4++) { - var _nodeType2 = _arr2[_i4]; - if (shouldIgnoreKey(_nodeType2)) continue; - var _fns2 = visitor[_nodeType2]; - var aliases = FLIPPED_ALIAS_KEYS$2[_nodeType2]; - var deprecatedKey = DEPRECATED_KEYS[_nodeType2]; - if (deprecatedKey) { - console.trace("Visitor defined for " + _nodeType2 + " but it has been renamed to " + deprecatedKey); - aliases = [deprecatedKey]; - } - if (!aliases) continue; - - delete visitor[_nodeType2]; - for (var _iterator3 = _createForOfIteratorHelperLoose(aliases), _step3; !(_step3 = _iterator3()).done;) { - var alias = _step3.value; - var existing = visitor[alias]; - if (existing) { - mergePair(existing, _fns2); - } else { - visitor[alias] = Object.assign({}, _fns2); - } - } - } - for (var _i5 = 0, _Object$keys3 = Object.keys(visitor); _i5 < _Object$keys3.length; _i5++) { - var _nodeType3 = _Object$keys3[_i5]; - if (shouldIgnoreKey(_nodeType3)) continue; - ensureCallbackArrays( - visitor[_nodeType3]); - } - return visitor; - } - function verify(visitor) { - if (visitor._verified) return; - if (typeof visitor === "function") { - throw new Error("You passed `traverse()` a function when it expected a visitor object, " + "are you sure you didn't mean `{ enter: Function }`?"); - } - for (var _i6 = 0, _arr3 = Object.keys(visitor); _i6 < _arr3.length; _i6++) { - var nodeType = _arr3[_i6]; - if (nodeType === "enter" || nodeType === "exit") { - validateVisitorMethods(nodeType, visitor[nodeType]); - } - if (shouldIgnoreKey(nodeType)) continue; - if (TYPES.indexOf(nodeType) < 0) { - throw new Error("You gave us a visitor for the node type " + nodeType + " but it's not a valid type"); - } - var _visitors = visitor[nodeType]; - if (typeof _visitors === "object") { - for (var _i7 = 0, _Object$keys4 = Object.keys(_visitors); _i7 < _Object$keys4.length; _i7++) { - var visitorKey = _Object$keys4[_i7]; - if (visitorKey === "enter" || visitorKey === "exit") { - validateVisitorMethods(nodeType + "." + visitorKey, _visitors[visitorKey]); - } else { - throw new Error("You passed `traverse()` a visitor object with the property " + (nodeType + " that has the invalid property " + visitorKey)); - } - } - } - } - visitor._verified = true; - } - function validateVisitorMethods(path, val) { - var fns = [].concat(val); - for (var _iterator4 = _createForOfIteratorHelperLoose(fns), _step4; !(_step4 = _iterator4()).done;) { - var fn = _step4.value; - if (typeof fn !== "function") { - throw new TypeError("Non-function found defined in " + path + " with type " + typeof fn); - } - } - } - function merge$1(visitors, states, wrapper) { - if (states === void 0) { - states = []; - } - var rootVisitor = {}; - for (var i = 0; i < visitors.length; i++) { - var visitor = visitors[i]; - var state = states[i]; - explode$1(visitor); - for (var _i8 = 0, _arr4 = Object.keys(visitor); _i8 < _arr4.length; _i8++) { - var type = _arr4[_i8]; - var visitorType = visitor[type]; - - if (state || wrapper) { - visitorType = wrapWithStateOrWrapper(visitorType, state, wrapper); - } - - var nodeVisitor = rootVisitor[type] || (rootVisitor[type] = {}); - mergePair(nodeVisitor, visitorType); - } - } - return rootVisitor; - } - function wrapWithStateOrWrapper(oldVisitor, state, wrapper) { - var newVisitor = {}; - var _loop = function _loop() { - var key = _arr5[_i9]; - var fns = oldVisitor[key]; - - if (!Array.isArray(fns)) return "continue"; - - fns = fns.map(function (fn) { - var newFn = fn; - if (state) { - newFn = function newFn(path) { - return fn.call(state, path, state); - }; - } - if (wrapper) { - newFn = wrapper(state.key, key, newFn); - } - - if (newFn !== fn) { - newFn.toString = function () { - return fn.toString(); - }; - } - return newFn; - }); - - newVisitor[key] = fns; - }; - for (var _i9 = 0, _arr5 = Object.keys(oldVisitor); _i9 < _arr5.length; _i9++) { - var _ret = _loop(); - if (_ret === "continue") continue; - } - return newVisitor; - } - function ensureEntranceObjects(obj) { - for (var _i10 = 0, _arr6 = Object.keys(obj); _i10 < _arr6.length; _i10++) { - var key = _arr6[_i10]; - if (shouldIgnoreKey(key)) continue; - var fns = obj[key]; - if (typeof fns === "function") { - obj[key] = { - enter: fns - }; - } - } - } - function ensureCallbackArrays(obj) { - if (obj.enter && !Array.isArray(obj.enter)) obj.enter = [obj.enter]; - if (obj.exit && !Array.isArray(obj.exit)) obj.exit = [obj.exit]; - } - function wrapCheck(nodeType, fn) { - var newFn = function newFn(path) { - if (path["is" + nodeType]()) { - return fn.apply(this, arguments); - } - }; - newFn.toString = function () { - return fn.toString(); - }; - return newFn; - } - function shouldIgnoreKey(key) { - if (key[0] === "_") return true; - - if (key === "enter" || key === "exit" || key === "shouldSkip") return true; - - if (key === "denylist" || key === "noScope" || key === "skipKeys" || - key === "blacklist") { - return true; - } - return false; - } - function mergePair(dest, src) { - for (var _i11 = 0, _Object$keys5 = Object.keys(src); _i11 < _Object$keys5.length; _i11++) { - var key = _Object$keys5[_i11]; - dest[key] = [].concat(dest[key] || [], src[key]); - } - } - - var visitors = /*#__PURE__*/Object.freeze({ - __proto__: null, - explode: explode$1, - verify: verify, - merge: merge$1 - }); - - var path$2 = new WeakMap(); - var scope = new WeakMap(); - function clear() { - clearPath(); - clearScope(); - } - function clearPath() { - path$2 = new WeakMap(); - } - function clearScope() { - scope = new WeakMap(); - } - - var cache$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - get path () { return path$2; }, - get scope () { return scope; }, - clear: clear, - clearPath: clearPath, - clearScope: clearScope - }); - - var browser$4 = {exports: {}}; - - var ms; - var hasRequiredMs; - function requireMs() { - if (hasRequiredMs) return ms; - hasRequiredMs = 1; - var s = 1000; - var m = s * 60; - var h = m * 60; - var d = h * 24; - var w = d * 7; - var y = d * 365.25; - - ms = function ms(val, options) { - options = options || {}; - var type = typeof val; - if (type === 'string' && val.length > 0) { - return parse(val); - } else if (type === 'number' && isFinite(val)) { - return options["long"] ? fmtLong(val) : fmtShort(val); - } - throw new Error('val is not a non-empty string or a valid number. val=' + JSON.stringify(val)); - }; - - function parse(str) { - str = String(str); - if (str.length > 100) { - return; - } - var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str); - if (!match) { - return; - } - var n = parseFloat(match[1]); - var type = (match[2] || 'ms').toLowerCase(); - switch (type) { - case 'years': - case 'year': - case 'yrs': - case 'yr': - case 'y': - return n * y; - case 'weeks': - case 'week': - case 'w': - return n * w; - case 'days': - case 'day': - case 'd': - return n * d; - case 'hours': - case 'hour': - case 'hrs': - case 'hr': - case 'h': - return n * h; - case 'minutes': - case 'minute': - case 'mins': - case 'min': - case 'm': - return n * m; - case 'seconds': - case 'second': - case 'secs': - case 'sec': - case 's': - return n * s; - case 'milliseconds': - case 'millisecond': - case 'msecs': - case 'msec': - case 'ms': - return n; - default: - return undefined; - } - } - - function fmtShort(ms) { - var msAbs = Math.abs(ms); - if (msAbs >= d) { - return Math.round(ms / d) + 'd'; - } - if (msAbs >= h) { - return Math.round(ms / h) + 'h'; - } - if (msAbs >= m) { - return Math.round(ms / m) + 'm'; - } - if (msAbs >= s) { - return Math.round(ms / s) + 's'; - } - return ms + 'ms'; - } - - function fmtLong(ms) { - var msAbs = Math.abs(ms); - if (msAbs >= d) { - return plural(ms, msAbs, d, 'day'); - } - if (msAbs >= h) { - return plural(ms, msAbs, h, 'hour'); - } - if (msAbs >= m) { - return plural(ms, msAbs, m, 'minute'); - } - if (msAbs >= s) { - return plural(ms, msAbs, s, 'second'); - } - return ms + ' ms'; - } - - function plural(ms, msAbs, n, name) { - var isPlural = msAbs >= n * 1.5; - return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); - } - return ms; - } - - function setup$1(env) { - createDebug.debug = createDebug; - createDebug["default"] = createDebug; - createDebug.coerce = coerce; - createDebug.disable = disable; - createDebug.enable = enable; - createDebug.enabled = enabled; - createDebug.humanize = requireMs(); - createDebug.destroy = destroy; - Object.keys(env).forEach(function (key) { - createDebug[key] = env[key]; - }); - - createDebug.names = []; - createDebug.skips = []; - - createDebug.formatters = {}; - - function selectColor(namespace) { - var hash = 0; - for (var i = 0; i < namespace.length; i++) { - hash = (hash << 5) - hash + namespace.charCodeAt(i); - hash |= 0; - } - - return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; - } - createDebug.selectColor = selectColor; - - function createDebug(namespace) { - var prevTime; - var enableOverride = null; - var namespacesCache; - var enabledCache; - function debug() { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - if (!debug.enabled) { - return; - } - var self = debug; - - var curr = Number(new Date()); - var ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; - args[0] = createDebug.coerce(args[0]); - if (typeof args[0] !== 'string') { - args.unshift('%O'); - } - - var index = 0; - args[0] = args[0].replace(/%([a-zA-Z%])/g, function (match, format) { - if (match === '%%') { - return '%'; - } - index++; - var formatter = createDebug.formatters[format]; - if (typeof formatter === 'function') { - var val = args[index]; - match = formatter.call(self, val); - - args.splice(index, 1); - index--; - } - return match; - }); - - createDebug.formatArgs.call(self, args); - var logFn = self.log || createDebug.log; - logFn.apply(self, args); - } - debug.namespace = namespace; - debug.useColors = createDebug.useColors(); - debug.color = createDebug.selectColor(namespace); - debug.extend = extend; - debug.destroy = createDebug.destroy; - - Object.defineProperty(debug, 'enabled', { - enumerable: true, - configurable: false, - get: function get() { - if (enableOverride !== null) { - return enableOverride; - } - if (namespacesCache !== createDebug.namespaces) { - namespacesCache = createDebug.namespaces; - enabledCache = createDebug.enabled(namespace); - } - return enabledCache; - }, - set: function set(v) { - enableOverride = v; - } - }); - - if (typeof createDebug.init === 'function') { - createDebug.init(debug); - } - return debug; - } - function extend(namespace, delimiter) { - var newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); - newDebug.log = this.log; - return newDebug; - } - - function enable(namespaces) { - createDebug.save(namespaces); - createDebug.namespaces = namespaces; - createDebug.names = []; - createDebug.skips = []; - var i; - var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); - var len = split.length; - for (i = 0; i < len; i++) { - if (!split[i]) { - continue; - } - namespaces = split[i].replace(/\*/g, '.*?'); - if (namespaces[0] === '-') { - createDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$')); - } else { - createDebug.names.push(new RegExp('^' + namespaces + '$')); - } - } - } - - function disable() { - var namespaces = [].concat(_toConsumableArray(createDebug.names.map(toNamespace)), _toConsumableArray(createDebug.skips.map(toNamespace).map(function (namespace) { - return '-' + namespace; - }))).join(','); - createDebug.enable(''); - return namespaces; - } - - function enabled(name) { - if (name[name.length - 1] === '*') { - return true; - } - var i; - var len; - for (i = 0, len = createDebug.skips.length; i < len; i++) { - if (createDebug.skips[i].test(name)) { - return false; - } - } - for (i = 0, len = createDebug.names.length; i < len; i++) { - if (createDebug.names[i].test(name)) { - return true; - } - } - return false; - } - - function toNamespace(regexp) { - return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, '*'); - } - - function coerce(val) { - if (val instanceof Error) { - return val.stack || val.message; - } - return val; - } - - function destroy() { - console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); - } - createDebug.enable(createDebug.load()); - return createDebug; - } - var common = setup$1; - - (function (module, exports) { - - exports.formatArgs = formatArgs; - exports.save = save; - exports.load = load; - exports.useColors = useColors; - exports.storage = localstorage(); - exports.destroy = function () { - var warned = false; - return function () { - if (!warned) { - warned = true; - console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); - } - }; - }(); - - exports.colors = ['#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC', '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF', '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC', '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF', '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC', '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033', '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366', '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933', '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC', '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF', '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33']; - - function useColors() { - if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { - return true; - } - - if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { - return false; - } - - return typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || - typeof window !== 'undefined' && window.console && (window.console.firebug || window.console.exception && window.console.table) || - typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || - typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); - } - - function formatArgs(args) { - args[0] = (this.useColors ? '%c' : '') + this.namespace + (this.useColors ? ' %c' : ' ') + args[0] + (this.useColors ? '%c ' : ' ') + '+' + module.exports.humanize(this.diff); - if (!this.useColors) { - return; - } - var c = 'color: ' + this.color; - args.splice(1, 0, c, 'color: inherit'); - - var index = 0; - var lastC = 0; - args[0].replace(/%[a-zA-Z%]/g, function (match) { - if (match === '%%') { - return; - } - index++; - if (match === '%c') { - lastC = index; - } - }); - args.splice(lastC, 0, c); - } - - exports.log = console.debug || console.log || function () {}; - - function save(namespaces) { - try { - if (namespaces) { - exports.storage.setItem('debug', namespaces); - } else { - exports.storage.removeItem('debug'); - } - } catch (error) { - } - } - - function load() { - var r; - try { - r = exports.storage.getItem('debug'); - } catch (error) { - } - - if (!r && typeof browser$1$1 !== 'undefined' && 'env' in browser$1$1) { - r = browser$1$1.env.DEBUG; - } - return r; - } - - function localstorage() { - try { - return localStorage; - } catch (error) { - } - } - - module.exports = common(exports); - var formatters = module.exports.formatters; - - formatters.j = function (v) { - try { - return JSON.stringify(v); - } catch (error) { - return '[UnexpectedJSONParseError]: ' + error.message; - } - }; - })(browser$4, browser$4.exports); - var buildDebug = browser$4.exports; - - var cloneNode$i = cloneNode$j, - exportNamedDeclaration$1 = exportNamedDeclaration$2, - exportSpecifier$1 = exportSpecifier$2, - identifier$i = identifier$j, - variableDeclaration$7 = variableDeclaration$8, - variableDeclarator$7 = variableDeclarator$8; - function splitExportDeclaration(exportDeclaration) { - if (!exportDeclaration.isExportDeclaration() || exportDeclaration.isExportAllDeclaration()) { - throw new Error("Only default and named export declarations can be split."); - } - - if (exportDeclaration.isExportDefaultDeclaration()) { - var _declaration = exportDeclaration.get("declaration"); - var standaloneDeclaration = _declaration.isFunctionDeclaration() || _declaration.isClassDeclaration(); - var scope = _declaration.isScope() ? _declaration.scope.parent : _declaration.scope; - - var id = _declaration.node.id; - var needBindingRegistration = false; - if (!id) { - needBindingRegistration = true; - id = scope.generateUidIdentifier("default"); - if (standaloneDeclaration || _declaration.isFunctionExpression() || _declaration.isClassExpression()) { - _declaration.node.id = cloneNode$i(id); - } - } - var updatedDeclaration = standaloneDeclaration ? _declaration.node : variableDeclaration$7("var", [variableDeclarator$7(cloneNode$i(id), - _declaration.node)]); - var updatedExportDeclaration = exportNamedDeclaration$1(null, [exportSpecifier$1(cloneNode$i(id), identifier$i("default"))]); - exportDeclaration.insertAfter(updatedExportDeclaration); - exportDeclaration.replaceWith(updatedDeclaration); - if (needBindingRegistration) { - scope.registerDeclaration(exportDeclaration); - } - return exportDeclaration; - } else if ( - exportDeclaration.get("specifiers").length > 0) { - throw new Error("It doesn't make sense to split exported specifiers."); - } - var declaration = exportDeclaration.get("declaration"); - var bindingIdentifiers = declaration.getOuterBindingIdentifiers(); - var specifiers = Object.keys(bindingIdentifiers).map(function (name) { - return exportSpecifier$1(identifier$i(name), identifier$i(name)); - }); - var aliasDeclar = exportNamedDeclaration$1(null, specifiers); - exportDeclaration.insertAfter(aliasDeclar); - exportDeclaration.replaceWith(declaration.node); - return exportDeclaration; - } - - function requeueComputedKeyAndDecorators(path) { - var context = path.context, - node = path.node; - if (node.computed) { - context.maybeQueue(path.get("key")); - } - if (node.decorators) { - for (var _iterator = _createForOfIteratorHelperLoose(path.get("decorators")), _step; !(_step = _iterator()).done;) { - var decorator = _step.value; - context.maybeQueue(decorator); - } - } - } - - var visitor$6 = { - FunctionParent: function FunctionParent(path) { - if (path.isArrowFunctionExpression()) { - return; - } else { - path.skip(); - if (path.isMethod()) { - requeueComputedKeyAndDecorators(path); - } - } - }, - Property: function Property(path) { - if (path.isObjectProperty()) { - return; - } - path.skip(); - requeueComputedKeyAndDecorators(path); - } - }; - - var renameVisitor = { - ReferencedIdentifier: function ReferencedIdentifier(_ref, state) { - var node = _ref.node; - if (node.name === state.oldName) { - node.name = state.newName; - } - }, - Scope: function Scope(path, state) { - if (!path.scope.bindingIdentifierEquals(state.oldName, state.binding.identifier)) { - path.skip(); - if (path.isMethod()) { - requeueComputedKeyAndDecorators(path); - } - } - }, - "AssignmentExpression|Declaration|VariableDeclarator": function AssignmentExpressionDeclarationVariableDeclarator(path, state) { - if (path.isVariableDeclaration()) return; - var ids = path.getOuterBindingIdentifiers(); - for (var name in ids) { - if (name === state.oldName) ids[name].name = state.newName; - } - } - }; - var Renamer = function () { - function Renamer(binding, oldName, newName) { - this.newName = newName; - this.oldName = oldName; - this.binding = binding; - } - var _proto = Renamer.prototype; - _proto.maybeConvertFromExportDeclaration = function maybeConvertFromExportDeclaration(parentDeclar) { - var maybeExportDeclar = parentDeclar.parentPath; - if (!maybeExportDeclar.isExportDeclaration()) { - return; - } - if (maybeExportDeclar.isExportDefaultDeclaration()) { - var declaration = maybeExportDeclar.node.declaration; - if (isDeclaration$1(declaration) && !declaration.id) { - return; - } - } - if (maybeExportDeclar.isExportAllDeclaration()) { - return; - } - splitExportDeclaration(maybeExportDeclar); - }; - _proto.maybeConvertFromClassFunctionDeclaration = function maybeConvertFromClassFunctionDeclaration(path) { - return path; - - }; - _proto.maybeConvertFromClassFunctionExpression = function maybeConvertFromClassFunctionExpression(path) { - return path; - - }; - _proto.rename = function rename(block) { - var _this = this; - var binding = this.binding, - oldName = this.oldName, - newName = this.newName; - var scope = binding.scope, - path = binding.path; - var parentDeclar = path.find(function (path) { - return path.isDeclaration() || path.isFunctionExpression() || path.isClassExpression(); - }); - if (parentDeclar) { - var bindingIds = parentDeclar.getOuterBindingIdentifiers(); - if (bindingIds[oldName] === binding.identifier) { - this.maybeConvertFromExportDeclaration(parentDeclar); - } - } - var blockToTraverse = block || scope.block; - if ((blockToTraverse == null ? void 0 : blockToTraverse.type) === "SwitchStatement") { - blockToTraverse.cases.forEach(function (c) { - scope.traverse(c, renameVisitor, _this); - }); - } else { - scope.traverse(blockToTraverse, renameVisitor, this); - } - if (!block) { - scope.removeOwnBinding(oldName); - scope.bindings[newName] = binding; - this.binding.identifier.name = newName; - } - if (parentDeclar) { - this.maybeConvertFromClassFunctionDeclaration(path); - this.maybeConvertFromClassFunctionExpression(path); - } - }; - return _createClass(Renamer); - }(); - - var Binding = function () { - function Binding(_ref) { - var identifier = _ref.identifier, - scope = _ref.scope, - path = _ref.path, - kind = _ref.kind; - this.identifier = void 0; - this.scope = void 0; - this.path = void 0; - this.kind = void 0; - this.constantViolations = []; - this.constant = true; - this.referencePaths = []; - this.referenced = false; - this.references = 0; - this.identifier = identifier; - this.scope = scope; - this.path = path; - this.kind = kind; - if ((kind === "var" || kind === "hoisted") && - isDeclaredInLoop(path || function () { - throw new Error("Internal Babel error: unreachable "); - }())) { - this.reassign(path); - } - this.clearValue(); - } - var _proto = Binding.prototype; - _proto.deoptValue = function deoptValue() { - this.clearValue(); - this.hasDeoptedValue = true; - }; - _proto.setValue = function setValue(value) { - if (this.hasDeoptedValue) return; - this.hasValue = true; - this.value = value; - }; - _proto.clearValue = function clearValue() { - this.hasDeoptedValue = false; - this.hasValue = false; - this.value = null; - } - - ; - _proto.reassign = - - function reassign(path) { - this.constant = false; - if (this.constantViolations.indexOf(path) !== -1) { - return; - } - this.constantViolations.push(path); - } - - ; - _proto.reference = - - function reference(path) { - if (this.referencePaths.indexOf(path) !== -1) { - return; - } - this.referenced = true; - this.references++; - this.referencePaths.push(path); - } - - ; - _proto.dereference = - - function dereference() { - this.references--; - this.referenced = !!this.references; - }; - return _createClass(Binding); - }(); - function isDeclaredInLoop(path) { - for (var parentPath = path.parentPath, key = path.key; parentPath; _parentPath = parentPath, parentPath = _parentPath.parentPath, key = _parentPath.key, _parentPath) { - var _parentPath; - if (parentPath.isFunctionParent()) return false; - if (parentPath.isWhile() || parentPath.isForXStatement() || parentPath.isForStatement() && key === "body") { - return true; - } - } - return false; - } - - var builtin$1 = { - "Array": false, - "ArrayBuffer": false, - Atomics: false, - BigInt: false, - BigInt64Array: false, - BigUint64Array: false, - "Boolean": false, - constructor: false, - "DataView": false, - "Date": false, - "decodeURI": false, - "decodeURIComponent": false, - "encodeURI": false, - "encodeURIComponent": false, - "Error": false, - "escape": false, - "eval": false, - "EvalError": false, - FinalizationRegistry: false, - "Float32Array": false, - "Float64Array": false, - "Function": false, - globalThis: false, - hasOwnProperty: false, - "Infinity": false, - "Int16Array": false, - "Int32Array": false, - "Int8Array": false, - "isFinite": false, - "isNaN": false, - isPrototypeOf: false, - "JSON": false, - "Map": false, - "Math": false, - "NaN": false, - "Number": false, - "Object": false, - "parseFloat": false, - "parseInt": false, - "Promise": false, - propertyIsEnumerable: false, - "Proxy": false, - "RangeError": false, - "ReferenceError": false, - "Reflect": false, - "RegExp": false, - "Set": false, - SharedArrayBuffer: false, - "String": false, - "Symbol": false, - "SyntaxError": false, - toLocaleString: false, - toString: false, - "TypeError": false, - "Uint16Array": false, - "Uint32Array": false, - "Uint8Array": false, - "Uint8ClampedArray": false, - "undefined": false, - "unescape": false, - "URIError": false, - valueOf: false, - "WeakMap": false, - WeakRef: false, - "WeakSet": false - }; - var es5$1 = { - "Array": false, - "Boolean": false, - constructor: false, - "Date": false, - "decodeURI": false, - "decodeURIComponent": false, - "encodeURI": false, - "encodeURIComponent": false, - "Error": false, - "escape": false, - "eval": false, - "EvalError": false, - "Function": false, - hasOwnProperty: false, - "Infinity": false, - "isFinite": false, - "isNaN": false, - isPrototypeOf: false, - "JSON": false, - "Math": false, - "NaN": false, - "Number": false, - "Object": false, - "parseFloat": false, - "parseInt": false, - propertyIsEnumerable: false, - "RangeError": false, - "ReferenceError": false, - "RegExp": false, - "String": false, - "SyntaxError": false, - toLocaleString: false, - toString: false, - "TypeError": false, - "undefined": false, - "unescape": false, - "URIError": false, - valueOf: false - }; - var es2015$1 = { - "Array": false, - "ArrayBuffer": false, - "Boolean": false, - constructor: false, - "DataView": false, - "Date": false, - "decodeURI": false, - "decodeURIComponent": false, - "encodeURI": false, - "encodeURIComponent": false, - "Error": false, - "escape": false, - "eval": false, - "EvalError": false, - "Float32Array": false, - "Float64Array": false, - "Function": false, - hasOwnProperty: false, - "Infinity": false, - "Int16Array": false, - "Int32Array": false, - "Int8Array": false, - "isFinite": false, - "isNaN": false, - isPrototypeOf: false, - "JSON": false, - "Map": false, - "Math": false, - "NaN": false, - "Number": false, - "Object": false, - "parseFloat": false, - "parseInt": false, - "Promise": false, - propertyIsEnumerable: false, - "Proxy": false, - "RangeError": false, - "ReferenceError": false, - "Reflect": false, - "RegExp": false, - "Set": false, - "String": false, - "Symbol": false, - "SyntaxError": false, - toLocaleString: false, - toString: false, - "TypeError": false, - "Uint16Array": false, - "Uint32Array": false, - "Uint8Array": false, - "Uint8ClampedArray": false, - "undefined": false, - "unescape": false, - "URIError": false, - valueOf: false, - "WeakMap": false, - "WeakSet": false - }; - var es2017$1 = { - "Array": false, - "ArrayBuffer": false, - Atomics: false, - "Boolean": false, - constructor: false, - "DataView": false, - "Date": false, - "decodeURI": false, - "decodeURIComponent": false, - "encodeURI": false, - "encodeURIComponent": false, - "Error": false, - "escape": false, - "eval": false, - "EvalError": false, - "Float32Array": false, - "Float64Array": false, - "Function": false, - hasOwnProperty: false, - "Infinity": false, - "Int16Array": false, - "Int32Array": false, - "Int8Array": false, - "isFinite": false, - "isNaN": false, - isPrototypeOf: false, - "JSON": false, - "Map": false, - "Math": false, - "NaN": false, - "Number": false, - "Object": false, - "parseFloat": false, - "parseInt": false, - "Promise": false, - propertyIsEnumerable: false, - "Proxy": false, - "RangeError": false, - "ReferenceError": false, - "Reflect": false, - "RegExp": false, - "Set": false, - SharedArrayBuffer: false, - "String": false, - "Symbol": false, - "SyntaxError": false, - toLocaleString: false, - toString: false, - "TypeError": false, - "Uint16Array": false, - "Uint32Array": false, - "Uint8Array": false, - "Uint8ClampedArray": false, - "undefined": false, - "unescape": false, - "URIError": false, - valueOf: false, - "WeakMap": false, - "WeakSet": false - }; - var es2020 = { - "Array": false, - "ArrayBuffer": false, - Atomics: false, - BigInt: false, - BigInt64Array: false, - BigUint64Array: false, - "Boolean": false, - constructor: false, - "DataView": false, - "Date": false, - "decodeURI": false, - "decodeURIComponent": false, - "encodeURI": false, - "encodeURIComponent": false, - "Error": false, - "escape": false, - "eval": false, - "EvalError": false, - "Float32Array": false, - "Float64Array": false, - "Function": false, - globalThis: false, - hasOwnProperty: false, - "Infinity": false, - "Int16Array": false, - "Int32Array": false, - "Int8Array": false, - "isFinite": false, - "isNaN": false, - isPrototypeOf: false, - "JSON": false, - "Map": false, - "Math": false, - "NaN": false, - "Number": false, - "Object": false, - "parseFloat": false, - "parseInt": false, - "Promise": false, - propertyIsEnumerable: false, - "Proxy": false, - "RangeError": false, - "ReferenceError": false, - "Reflect": false, - "RegExp": false, - "Set": false, - SharedArrayBuffer: false, - "String": false, - "Symbol": false, - "SyntaxError": false, - toLocaleString: false, - toString: false, - "TypeError": false, - "Uint16Array": false, - "Uint32Array": false, - "Uint8Array": false, - "Uint8ClampedArray": false, - "undefined": false, - "unescape": false, - "URIError": false, - valueOf: false, - "WeakMap": false, - "WeakSet": false - }; - var es2021 = { - "Array": false, - "ArrayBuffer": false, - Atomics: false, - BigInt: false, - BigInt64Array: false, - BigUint64Array: false, - "Boolean": false, - constructor: false, - "DataView": false, - "Date": false, - "decodeURI": false, - "decodeURIComponent": false, - "encodeURI": false, - "encodeURIComponent": false, - "Error": false, - "escape": false, - "eval": false, - "EvalError": false, - FinalizationRegistry: false, - "Float32Array": false, - "Float64Array": false, - "Function": false, - globalThis: false, - hasOwnProperty: false, - "Infinity": false, - "Int16Array": false, - "Int32Array": false, - "Int8Array": false, - "isFinite": false, - "isNaN": false, - isPrototypeOf: false, - "JSON": false, - "Map": false, - "Math": false, - "NaN": false, - "Number": false, - "Object": false, - "parseFloat": false, - "parseInt": false, - "Promise": false, - propertyIsEnumerable: false, - "Proxy": false, - "RangeError": false, - "ReferenceError": false, - "Reflect": false, - "RegExp": false, - "Set": false, - SharedArrayBuffer: false, - "String": false, - "Symbol": false, - "SyntaxError": false, - toLocaleString: false, - toString: false, - "TypeError": false, - "Uint16Array": false, - "Uint32Array": false, - "Uint8Array": false, - "Uint8ClampedArray": false, - "undefined": false, - "unescape": false, - "URIError": false, - valueOf: false, - "WeakMap": false, - WeakRef: false, - "WeakSet": false - }; - var browser$3 = { - AbortController: false, - AbortSignal: false, - addEventListener: false, - alert: false, - AnalyserNode: false, - Animation: false, - AnimationEffectReadOnly: false, - AnimationEffectTiming: false, - AnimationEffectTimingReadOnly: false, - AnimationEvent: false, - AnimationPlaybackEvent: false, - AnimationTimeline: false, - applicationCache: false, - ApplicationCache: false, - ApplicationCacheErrorEvent: false, - atob: false, - Attr: false, - Audio: false, - AudioBuffer: false, - AudioBufferSourceNode: false, - AudioContext: false, - AudioDestinationNode: false, - AudioListener: false, - AudioNode: false, - AudioParam: false, - AudioProcessingEvent: false, - AudioScheduledSourceNode: false, - "AudioWorkletGlobalScope ": false, - AudioWorkletNode: false, - AudioWorkletProcessor: false, - BarProp: false, - BaseAudioContext: false, - BatteryManager: false, - BeforeUnloadEvent: false, - BiquadFilterNode: false, - Blob: false, - BlobEvent: false, - blur: false, - BroadcastChannel: false, - btoa: false, - BudgetService: false, - ByteLengthQueuingStrategy: false, - Cache: false, - caches: false, - CacheStorage: false, - cancelAnimationFrame: false, - cancelIdleCallback: false, - CanvasCaptureMediaStreamTrack: false, - CanvasGradient: false, - CanvasPattern: false, - CanvasRenderingContext2D: false, - ChannelMergerNode: false, - ChannelSplitterNode: false, - CharacterData: false, - clearInterval: false, - clearTimeout: false, - clientInformation: false, - ClipboardEvent: false, - close: false, - closed: false, - CloseEvent: false, - Comment: false, - CompositionEvent: false, - confirm: false, - console: false, - ConstantSourceNode: false, - ConvolverNode: false, - CountQueuingStrategy: false, - createImageBitmap: false, - Credential: false, - CredentialsContainer: false, - crypto: false, - Crypto: false, - CryptoKey: false, - CSS: false, - CSSConditionRule: false, - CSSFontFaceRule: false, - CSSGroupingRule: false, - CSSImportRule: false, - CSSKeyframeRule: false, - CSSKeyframesRule: false, - CSSMediaRule: false, - CSSNamespaceRule: false, - CSSPageRule: false, - CSSRule: false, - CSSRuleList: false, - CSSStyleDeclaration: false, - CSSStyleRule: false, - CSSStyleSheet: false, - CSSSupportsRule: false, - CustomElementRegistry: false, - customElements: false, - CustomEvent: false, - DataTransfer: false, - DataTransferItem: false, - DataTransferItemList: false, - defaultstatus: false, - defaultStatus: false, - DelayNode: false, - DeviceMotionEvent: false, - DeviceOrientationEvent: false, - devicePixelRatio: false, - dispatchEvent: false, - document: false, - Document: false, - DocumentFragment: false, - DocumentType: false, - DOMError: false, - DOMException: false, - DOMImplementation: false, - DOMMatrix: false, - DOMMatrixReadOnly: false, - DOMParser: false, - DOMPoint: false, - DOMPointReadOnly: false, - DOMQuad: false, - DOMRect: false, - DOMRectReadOnly: false, - DOMStringList: false, - DOMStringMap: false, - DOMTokenList: false, - DragEvent: false, - DynamicsCompressorNode: false, - Element: false, - ErrorEvent: false, - event: false, - Event: false, - EventSource: false, - EventTarget: false, - external: false, - fetch: false, - File: false, - FileList: false, - FileReader: false, - find: false, - focus: false, - FocusEvent: false, - FontFace: false, - FontFaceSetLoadEvent: false, - FormData: false, - frameElement: false, - frames: false, - GainNode: false, - Gamepad: false, - GamepadButton: false, - GamepadEvent: false, - getComputedStyle: false, - getSelection: false, - HashChangeEvent: false, - Headers: false, - history: false, - History: false, - HTMLAllCollection: false, - HTMLAnchorElement: false, - HTMLAreaElement: false, - HTMLAudioElement: false, - HTMLBaseElement: false, - HTMLBodyElement: false, - HTMLBRElement: false, - HTMLButtonElement: false, - HTMLCanvasElement: false, - HTMLCollection: false, - HTMLContentElement: false, - HTMLDataElement: false, - HTMLDataListElement: false, - HTMLDetailsElement: false, - HTMLDialogElement: false, - HTMLDirectoryElement: false, - HTMLDivElement: false, - HTMLDListElement: false, - HTMLDocument: false, - HTMLElement: false, - HTMLEmbedElement: false, - HTMLFieldSetElement: false, - HTMLFontElement: false, - HTMLFormControlsCollection: false, - HTMLFormElement: false, - HTMLFrameElement: false, - HTMLFrameSetElement: false, - HTMLHeadElement: false, - HTMLHeadingElement: false, - HTMLHRElement: false, - HTMLHtmlElement: false, - HTMLIFrameElement: false, - HTMLImageElement: false, - HTMLInputElement: false, - HTMLLabelElement: false, - HTMLLegendElement: false, - HTMLLIElement: false, - HTMLLinkElement: false, - HTMLMapElement: false, - HTMLMarqueeElement: false, - HTMLMediaElement: false, - HTMLMenuElement: false, - HTMLMetaElement: false, - HTMLMeterElement: false, - HTMLModElement: false, - HTMLObjectElement: false, - HTMLOListElement: false, - HTMLOptGroupElement: false, - HTMLOptionElement: false, - HTMLOptionsCollection: false, - HTMLOutputElement: false, - HTMLParagraphElement: false, - HTMLParamElement: false, - HTMLPictureElement: false, - HTMLPreElement: false, - HTMLProgressElement: false, - HTMLQuoteElement: false, - HTMLScriptElement: false, - HTMLSelectElement: false, - HTMLShadowElement: false, - HTMLSlotElement: false, - HTMLSourceElement: false, - HTMLSpanElement: false, - HTMLStyleElement: false, - HTMLTableCaptionElement: false, - HTMLTableCellElement: false, - HTMLTableColElement: false, - HTMLTableElement: false, - HTMLTableRowElement: false, - HTMLTableSectionElement: false, - HTMLTemplateElement: false, - HTMLTextAreaElement: false, - HTMLTimeElement: false, - HTMLTitleElement: false, - HTMLTrackElement: false, - HTMLUListElement: false, - HTMLUnknownElement: false, - HTMLVideoElement: false, - IDBCursor: false, - IDBCursorWithValue: false, - IDBDatabase: false, - IDBFactory: false, - IDBIndex: false, - IDBKeyRange: false, - IDBObjectStore: false, - IDBOpenDBRequest: false, - IDBRequest: false, - IDBTransaction: false, - IDBVersionChangeEvent: false, - IdleDeadline: false, - IIRFilterNode: false, - Image: false, - ImageBitmap: false, - ImageBitmapRenderingContext: false, - ImageCapture: false, - ImageData: false, - indexedDB: false, - innerHeight: false, - innerWidth: false, - InputEvent: false, - IntersectionObserver: false, - IntersectionObserverEntry: false, - "Intl": false, - isSecureContext: false, - KeyboardEvent: false, - KeyframeEffect: false, - KeyframeEffectReadOnly: false, - length: false, - localStorage: false, - location: true, - Location: false, - locationbar: false, - matchMedia: false, - MediaDeviceInfo: false, - MediaDevices: false, - MediaElementAudioSourceNode: false, - MediaEncryptedEvent: false, - MediaError: false, - MediaKeyMessageEvent: false, - MediaKeySession: false, - MediaKeyStatusMap: false, - MediaKeySystemAccess: false, - MediaList: false, - MediaQueryList: false, - MediaQueryListEvent: false, - MediaRecorder: false, - MediaSettingsRange: false, - MediaSource: false, - MediaStream: false, - MediaStreamAudioDestinationNode: false, - MediaStreamAudioSourceNode: false, - MediaStreamEvent: false, - MediaStreamTrack: false, - MediaStreamTrackEvent: false, - menubar: false, - MessageChannel: false, - MessageEvent: false, - MessagePort: false, - MIDIAccess: false, - MIDIConnectionEvent: false, - MIDIInput: false, - MIDIInputMap: false, - MIDIMessageEvent: false, - MIDIOutput: false, - MIDIOutputMap: false, - MIDIPort: false, - MimeType: false, - MimeTypeArray: false, - MouseEvent: false, - moveBy: false, - moveTo: false, - MutationEvent: false, - MutationObserver: false, - MutationRecord: false, - name: false, - NamedNodeMap: false, - NavigationPreloadManager: false, - navigator: false, - Navigator: false, - NetworkInformation: false, - Node: false, - NodeFilter: false, - NodeIterator: false, - NodeList: false, - Notification: false, - OfflineAudioCompletionEvent: false, - OfflineAudioContext: false, - offscreenBuffering: false, - OffscreenCanvas: true, - OffscreenCanvasRenderingContext2D: false, - onabort: true, - onafterprint: true, - onanimationend: true, - onanimationiteration: true, - onanimationstart: true, - onappinstalled: true, - onauxclick: true, - onbeforeinstallprompt: true, - onbeforeprint: true, - onbeforeunload: true, - onblur: true, - oncancel: true, - oncanplay: true, - oncanplaythrough: true, - onchange: true, - onclick: true, - onclose: true, - oncontextmenu: true, - oncuechange: true, - ondblclick: true, - ondevicemotion: true, - ondeviceorientation: true, - ondeviceorientationabsolute: true, - ondrag: true, - ondragend: true, - ondragenter: true, - ondragleave: true, - ondragover: true, - ondragstart: true, - ondrop: true, - ondurationchange: true, - onemptied: true, - onended: true, - onerror: true, - onfocus: true, - ongotpointercapture: true, - onhashchange: true, - oninput: true, - oninvalid: true, - onkeydown: true, - onkeypress: true, - onkeyup: true, - onlanguagechange: true, - onload: true, - onloadeddata: true, - onloadedmetadata: true, - onloadstart: true, - onlostpointercapture: true, - onmessage: true, - onmessageerror: true, - onmousedown: true, - onmouseenter: true, - onmouseleave: true, - onmousemove: true, - onmouseout: true, - onmouseover: true, - onmouseup: true, - onmousewheel: true, - onoffline: true, - ononline: true, - onpagehide: true, - onpageshow: true, - onpause: true, - onplay: true, - onplaying: true, - onpointercancel: true, - onpointerdown: true, - onpointerenter: true, - onpointerleave: true, - onpointermove: true, - onpointerout: true, - onpointerover: true, - onpointerup: true, - onpopstate: true, - onprogress: true, - onratechange: true, - onrejectionhandled: true, - onreset: true, - onresize: true, - onscroll: true, - onsearch: true, - onseeked: true, - onseeking: true, - onselect: true, - onstalled: true, - onstorage: true, - onsubmit: true, - onsuspend: true, - ontimeupdate: true, - ontoggle: true, - ontransitionend: true, - onunhandledrejection: true, - onunload: true, - onvolumechange: true, - onwaiting: true, - onwheel: true, - open: false, - openDatabase: false, - opener: false, - Option: false, - origin: false, - OscillatorNode: false, - outerHeight: false, - outerWidth: false, - PageTransitionEvent: false, - pageXOffset: false, - pageYOffset: false, - PannerNode: false, - parent: false, - Path2D: false, - PaymentAddress: false, - PaymentRequest: false, - PaymentRequestUpdateEvent: false, - PaymentResponse: false, - performance: false, - Performance: false, - PerformanceEntry: false, - PerformanceLongTaskTiming: false, - PerformanceMark: false, - PerformanceMeasure: false, - PerformanceNavigation: false, - PerformanceNavigationTiming: false, - PerformanceObserver: false, - PerformanceObserverEntryList: false, - PerformancePaintTiming: false, - PerformanceResourceTiming: false, - PerformanceTiming: false, - PeriodicWave: false, - Permissions: false, - PermissionStatus: false, - personalbar: false, - PhotoCapabilities: false, - Plugin: false, - PluginArray: false, - PointerEvent: false, - PopStateEvent: false, - postMessage: false, - Presentation: false, - PresentationAvailability: false, - PresentationConnection: false, - PresentationConnectionAvailableEvent: false, - PresentationConnectionCloseEvent: false, - PresentationConnectionList: false, - PresentationReceiver: false, - PresentationRequest: false, - print: false, - ProcessingInstruction: false, - ProgressEvent: false, - PromiseRejectionEvent: false, - prompt: false, - PushManager: false, - PushSubscription: false, - PushSubscriptionOptions: false, - queueMicrotask: false, - RadioNodeList: false, - Range: false, - ReadableStream: false, - registerProcessor: false, - RemotePlayback: false, - removeEventListener: false, - Request: false, - requestAnimationFrame: false, - requestIdleCallback: false, - resizeBy: false, - ResizeObserver: false, - ResizeObserverEntry: false, - resizeTo: false, - Response: false, - RTCCertificate: false, - RTCDataChannel: false, - RTCDataChannelEvent: false, - RTCDtlsTransport: false, - RTCIceCandidate: false, - RTCIceGatherer: false, - RTCIceTransport: false, - RTCPeerConnection: false, - RTCPeerConnectionIceEvent: false, - RTCRtpContributingSource: false, - RTCRtpReceiver: false, - RTCRtpSender: false, - RTCSctpTransport: false, - RTCSessionDescription: false, - RTCStatsReport: false, - RTCTrackEvent: false, - screen: false, - Screen: false, - screenLeft: false, - ScreenOrientation: false, - screenTop: false, - screenX: false, - screenY: false, - ScriptProcessorNode: false, - scroll: false, - scrollbars: false, - scrollBy: false, - scrollTo: false, - scrollX: false, - scrollY: false, - SecurityPolicyViolationEvent: false, - Selection: false, - self: false, - ServiceWorker: false, - ServiceWorkerContainer: false, - ServiceWorkerRegistration: false, - sessionStorage: false, - setInterval: false, - setTimeout: false, - ShadowRoot: false, - SharedWorker: false, - SourceBuffer: false, - SourceBufferList: false, - speechSynthesis: false, - SpeechSynthesisEvent: false, - SpeechSynthesisUtterance: false, - StaticRange: false, - status: false, - statusbar: false, - StereoPannerNode: false, - stop: false, - Storage: false, - StorageEvent: false, - StorageManager: false, - styleMedia: false, - StyleSheet: false, - StyleSheetList: false, - SubtleCrypto: false, - SVGAElement: false, - SVGAngle: false, - SVGAnimatedAngle: false, - SVGAnimatedBoolean: false, - SVGAnimatedEnumeration: false, - SVGAnimatedInteger: false, - SVGAnimatedLength: false, - SVGAnimatedLengthList: false, - SVGAnimatedNumber: false, - SVGAnimatedNumberList: false, - SVGAnimatedPreserveAspectRatio: false, - SVGAnimatedRect: false, - SVGAnimatedString: false, - SVGAnimatedTransformList: false, - SVGAnimateElement: false, - SVGAnimateMotionElement: false, - SVGAnimateTransformElement: false, - SVGAnimationElement: false, - SVGCircleElement: false, - SVGClipPathElement: false, - SVGComponentTransferFunctionElement: false, - SVGDefsElement: false, - SVGDescElement: false, - SVGDiscardElement: false, - SVGElement: false, - SVGEllipseElement: false, - SVGFEBlendElement: false, - SVGFEColorMatrixElement: false, - SVGFEComponentTransferElement: false, - SVGFECompositeElement: false, - SVGFEConvolveMatrixElement: false, - SVGFEDiffuseLightingElement: false, - SVGFEDisplacementMapElement: false, - SVGFEDistantLightElement: false, - SVGFEDropShadowElement: false, - SVGFEFloodElement: false, - SVGFEFuncAElement: false, - SVGFEFuncBElement: false, - SVGFEFuncGElement: false, - SVGFEFuncRElement: false, - SVGFEGaussianBlurElement: false, - SVGFEImageElement: false, - SVGFEMergeElement: false, - SVGFEMergeNodeElement: false, - SVGFEMorphologyElement: false, - SVGFEOffsetElement: false, - SVGFEPointLightElement: false, - SVGFESpecularLightingElement: false, - SVGFESpotLightElement: false, - SVGFETileElement: false, - SVGFETurbulenceElement: false, - SVGFilterElement: false, - SVGForeignObjectElement: false, - SVGGElement: false, - SVGGeometryElement: false, - SVGGradientElement: false, - SVGGraphicsElement: false, - SVGImageElement: false, - SVGLength: false, - SVGLengthList: false, - SVGLinearGradientElement: false, - SVGLineElement: false, - SVGMarkerElement: false, - SVGMaskElement: false, - SVGMatrix: false, - SVGMetadataElement: false, - SVGMPathElement: false, - SVGNumber: false, - SVGNumberList: false, - SVGPathElement: false, - SVGPatternElement: false, - SVGPoint: false, - SVGPointList: false, - SVGPolygonElement: false, - SVGPolylineElement: false, - SVGPreserveAspectRatio: false, - SVGRadialGradientElement: false, - SVGRect: false, - SVGRectElement: false, - SVGScriptElement: false, - SVGSetElement: false, - SVGStopElement: false, - SVGStringList: false, - SVGStyleElement: false, - SVGSVGElement: false, - SVGSwitchElement: false, - SVGSymbolElement: false, - SVGTextContentElement: false, - SVGTextElement: false, - SVGTextPathElement: false, - SVGTextPositioningElement: false, - SVGTitleElement: false, - SVGTransform: false, - SVGTransformList: false, - SVGTSpanElement: false, - SVGUnitTypes: false, - SVGUseElement: false, - SVGViewElement: false, - TaskAttributionTiming: false, - Text: false, - TextDecoder: false, - TextEncoder: false, - TextEvent: false, - TextMetrics: false, - TextTrack: false, - TextTrackCue: false, - TextTrackCueList: false, - TextTrackList: false, - TimeRanges: false, - toolbar: false, - top: false, - Touch: false, - TouchEvent: false, - TouchList: false, - TrackEvent: false, - TransitionEvent: false, - TreeWalker: false, - UIEvent: false, - URL: false, - URLSearchParams: false, - ValidityState: false, - visualViewport: false, - VisualViewport: false, - VTTCue: false, - WaveShaperNode: false, - WebAssembly: false, - WebGL2RenderingContext: false, - WebGLActiveInfo: false, - WebGLBuffer: false, - WebGLContextEvent: false, - WebGLFramebuffer: false, - WebGLProgram: false, - WebGLQuery: false, - WebGLRenderbuffer: false, - WebGLRenderingContext: false, - WebGLSampler: false, - WebGLShader: false, - WebGLShaderPrecisionFormat: false, - WebGLSync: false, - WebGLTexture: false, - WebGLTransformFeedback: false, - WebGLUniformLocation: false, - WebGLVertexArrayObject: false, - WebSocket: false, - WheelEvent: false, - window: false, - Window: false, - Worker: false, - WritableStream: false, - XMLDocument: false, - XMLHttpRequest: false, - XMLHttpRequestEventTarget: false, - XMLHttpRequestUpload: false, - XMLSerializer: false, - XPathEvaluator: false, - XPathExpression: false, - XPathResult: false, - XSLTProcessor: false - }; - var worker$1 = { - addEventListener: false, - applicationCache: false, - atob: false, - Blob: false, - BroadcastChannel: false, - btoa: false, - Cache: false, - caches: false, - clearInterval: false, - clearTimeout: false, - close: true, - console: false, - fetch: false, - FileReaderSync: false, - FormData: false, - Headers: false, - IDBCursor: false, - IDBCursorWithValue: false, - IDBDatabase: false, - IDBFactory: false, - IDBIndex: false, - IDBKeyRange: false, - IDBObjectStore: false, - IDBOpenDBRequest: false, - IDBRequest: false, - IDBTransaction: false, - IDBVersionChangeEvent: false, - ImageData: false, - importScripts: true, - indexedDB: false, - location: false, - MessageChannel: false, - MessagePort: false, - name: false, - navigator: false, - Notification: false, - onclose: true, - onconnect: true, - onerror: true, - onlanguagechange: true, - onmessage: true, - onoffline: true, - ononline: true, - onrejectionhandled: true, - onunhandledrejection: true, - performance: false, - Performance: false, - PerformanceEntry: false, - PerformanceMark: false, - PerformanceMeasure: false, - PerformanceNavigation: false, - PerformanceResourceTiming: false, - PerformanceTiming: false, - postMessage: true, - "Promise": false, - queueMicrotask: false, - removeEventListener: false, - Request: false, - Response: false, - self: true, - ServiceWorkerRegistration: false, - setInterval: false, - setTimeout: false, - TextDecoder: false, - TextEncoder: false, - URL: false, - URLSearchParams: false, - WebSocket: false, - Worker: false, - WorkerGlobalScope: false, - XMLHttpRequest: false - }; - var node$2 = { - __dirname: false, - __filename: false, - Buffer: false, - clearImmediate: false, - clearInterval: false, - clearTimeout: false, - console: false, - exports: true, - global: false, - "Intl": false, - module: false, - process: false, - queueMicrotask: false, - require: false, - setImmediate: false, - setInterval: false, - setTimeout: false, - TextDecoder: false, - TextEncoder: false, - URL: false, - URLSearchParams: false - }; - var nodeBuiltin = { - Buffer: false, - clearImmediate: false, - clearInterval: false, - clearTimeout: false, - console: false, - global: false, - "Intl": false, - process: false, - queueMicrotask: false, - setImmediate: false, - setInterval: false, - setTimeout: false, - TextDecoder: false, - TextEncoder: false, - URL: false, - URLSearchParams: false - }; - var commonjs$1 = { - exports: true, - global: false, - module: false, - require: false - }; - var amd$1 = { - define: false, - require: false - }; - var mocha$1 = { - after: false, - afterEach: false, - before: false, - beforeEach: false, - context: false, - describe: false, - it: false, - mocha: false, - run: false, - setup: false, - specify: false, - suite: false, - suiteSetup: false, - suiteTeardown: false, - teardown: false, - test: false, - xcontext: false, - xdescribe: false, - xit: false, - xspecify: false - }; - var jasmine$1 = { - afterAll: false, - afterEach: false, - beforeAll: false, - beforeEach: false, - describe: false, - expect: false, - expectAsync: false, - fail: false, - fdescribe: false, - fit: false, - it: false, - jasmine: false, - pending: false, - runs: false, - spyOn: false, - spyOnAllFunctions: false, - spyOnProperty: false, - waits: false, - waitsFor: false, - xdescribe: false, - xit: false - }; - var jest$1 = { - afterAll: false, - afterEach: false, - beforeAll: false, - beforeEach: false, - describe: false, - expect: false, - fdescribe: false, - fit: false, - it: false, - jest: false, - pit: false, - require: false, - test: false, - xdescribe: false, - xit: false, - xtest: false - }; - var qunit$1 = { - asyncTest: false, - deepEqual: false, - equal: false, - expect: false, - module: false, - notDeepEqual: false, - notEqual: false, - notOk: false, - notPropEqual: false, - notStrictEqual: false, - ok: false, - propEqual: false, - QUnit: false, - raises: false, - start: false, - stop: false, - strictEqual: false, - test: false, - throws: false - }; - var phantomjs$1 = { - console: true, - exports: true, - phantom: true, - require: true, - WebPage: true - }; - var couch$1 = { - emit: false, - exports: false, - getRow: false, - log: false, - module: false, - provides: false, - require: false, - respond: false, - send: false, - start: false, - sum: false - }; - var rhino$1 = { - defineClass: false, - deserialize: false, - gc: false, - help: false, - importClass: false, - importPackage: false, - java: false, - load: false, - loadClass: false, - Packages: false, - print: false, - quit: false, - readFile: false, - readUrl: false, - runCommand: false, - seal: false, - serialize: false, - spawn: false, - sync: false, - toint32: false, - version: false - }; - var nashorn$1 = { - __DIR__: false, - __FILE__: false, - __LINE__: false, - com: false, - edu: false, - exit: false, - java: false, - Java: false, - javafx: false, - JavaImporter: false, - javax: false, - JSAdapter: false, - load: false, - loadWithNewGlobal: false, - org: false, - Packages: false, - print: false, - quit: false - }; - var wsh$1 = { - ActiveXObject: false, - CollectGarbage: false, - Debug: false, - Enumerator: false, - GetObject: false, - RuntimeObject: false, - ScriptEngine: false, - ScriptEngineBuildVersion: false, - ScriptEngineMajorVersion: false, - ScriptEngineMinorVersion: false, - VBArray: false, - WScript: false, - WSH: false - }; - var jquery$1 = { - $: false, - jQuery: false - }; - var yui$1 = { - YAHOO: false, - YAHOO_config: false, - YUI: false, - YUI_config: false - }; - var shelljs$1 = { - cat: false, - cd: false, - chmod: false, - config: false, - cp: false, - dirs: false, - echo: false, - env: false, - error: false, - exec: false, - exit: false, - find: false, - grep: false, - ln: false, - ls: false, - mkdir: false, - mv: false, - popd: false, - pushd: false, - pwd: false, - rm: false, - sed: false, - set: false, - target: false, - tempdir: false, - test: false, - touch: false, - which: false - }; - var prototypejs$1 = { - $: false, - $$: false, - $A: false, - $break: false, - $continue: false, - $F: false, - $H: false, - $R: false, - $w: false, - Abstract: false, - Ajax: false, - Autocompleter: false, - Builder: false, - Class: false, - Control: false, - Draggable: false, - Draggables: false, - Droppables: false, - Effect: false, - Element: false, - Enumerable: false, - Event: false, - Field: false, - Form: false, - Hash: false, - Insertion: false, - ObjectRange: false, - PeriodicalExecuter: false, - Position: false, - Prototype: false, - Scriptaculous: false, - Selector: false, - Sortable: false, - SortableObserver: false, - Sound: false, - Template: false, - Toggle: false, - Try: false - }; - var meteor$1 = { - $: false, - Accounts: false, - AccountsClient: false, - AccountsCommon: false, - AccountsServer: false, - App: false, - Assets: false, - Blaze: false, - check: false, - Cordova: false, - DDP: false, - DDPRateLimiter: false, - DDPServer: false, - Deps: false, - EJSON: false, - Email: false, - HTTP: false, - Log: false, - Match: false, - Meteor: false, - Mongo: false, - MongoInternals: false, - Npm: false, - Package: false, - Plugin: false, - process: false, - Random: false, - ReactiveDict: false, - ReactiveVar: false, - Router: false, - ServiceConfiguration: false, - Session: false, - share: false, - Spacebars: false, - Template: false, - Tinytest: false, - Tracker: false, - UI: false, - Utils: false, - WebApp: false, - WebAppInternals: false - }; - var mongo$1 = { - _isWindows: false, - _rand: false, - BulkWriteResult: false, - cat: false, - cd: false, - connect: false, - db: false, - getHostName: false, - getMemInfo: false, - hostname: false, - ISODate: false, - listFiles: false, - load: false, - ls: false, - md5sumFile: false, - mkdir: false, - Mongo: false, - NumberInt: false, - NumberLong: false, - ObjectId: false, - PlanCache: false, - print: false, - printjson: false, - pwd: false, - quit: false, - removeFile: false, - rs: false, - sh: false, - UUID: false, - version: false, - WriteResult: false - }; - var applescript$1 = { - $: false, - Application: false, - Automation: false, - console: false, - delay: false, - Library: false, - ObjC: false, - ObjectSpecifier: false, - Path: false, - Progress: false, - Ref: false - }; - var serviceworker$1 = { - addEventListener: false, - applicationCache: false, - atob: false, - Blob: false, - BroadcastChannel: false, - btoa: false, - Cache: false, - caches: false, - CacheStorage: false, - clearInterval: false, - clearTimeout: false, - Client: false, - clients: false, - Clients: false, - close: true, - console: false, - ExtendableEvent: false, - ExtendableMessageEvent: false, - fetch: false, - FetchEvent: false, - FileReaderSync: false, - FormData: false, - Headers: false, - IDBCursor: false, - IDBCursorWithValue: false, - IDBDatabase: false, - IDBFactory: false, - IDBIndex: false, - IDBKeyRange: false, - IDBObjectStore: false, - IDBOpenDBRequest: false, - IDBRequest: false, - IDBTransaction: false, - IDBVersionChangeEvent: false, - ImageData: false, - importScripts: false, - indexedDB: false, - location: false, - MessageChannel: false, - MessagePort: false, - name: false, - navigator: false, - Notification: false, - onclose: true, - onconnect: true, - onerror: true, - onfetch: true, - oninstall: true, - onlanguagechange: true, - onmessage: true, - onmessageerror: true, - onnotificationclick: true, - onnotificationclose: true, - onoffline: true, - ononline: true, - onpush: true, - onpushsubscriptionchange: true, - onrejectionhandled: true, - onsync: true, - onunhandledrejection: true, - performance: false, - Performance: false, - PerformanceEntry: false, - PerformanceMark: false, - PerformanceMeasure: false, - PerformanceNavigation: false, - PerformanceResourceTiming: false, - PerformanceTiming: false, - postMessage: true, - "Promise": false, - queueMicrotask: false, - registration: false, - removeEventListener: false, - Request: false, - Response: false, - self: false, - ServiceWorker: false, - ServiceWorkerContainer: false, - ServiceWorkerGlobalScope: false, - ServiceWorkerMessageEvent: false, - ServiceWorkerRegistration: false, - setInterval: false, - setTimeout: false, - skipWaiting: false, - TextDecoder: false, - TextEncoder: false, - URL: false, - URLSearchParams: false, - WebSocket: false, - WindowClient: false, - Worker: false, - WorkerGlobalScope: false, - XMLHttpRequest: false - }; - var atomtest$1 = { - advanceClock: false, - atom: false, - fakeClearInterval: false, - fakeClearTimeout: false, - fakeSetInterval: false, - fakeSetTimeout: false, - resetTimeouts: false, - waitsForPromise: false - }; - var embertest$1 = { - andThen: false, - click: false, - currentPath: false, - currentRouteName: false, - currentURL: false, - fillIn: false, - find: false, - findAll: false, - findWithAssert: false, - keyEvent: false, - pauseTest: false, - resumeTest: false, - triggerEvent: false, - visit: false, - wait: false - }; - var protractor$1 = { - $: false, - $$: false, - browser: false, - by: false, - By: false, - DartObject: false, - element: false, - protractor: false - }; - var webextensions$1 = { - browser: false, - chrome: false, - opr: false - }; - var greasemonkey$1 = { - cloneInto: false, - createObjectIn: false, - exportFunction: false, - GM: false, - GM_addStyle: false, - GM_addValueChangeListener: false, - GM_deleteValue: false, - GM_download: false, - GM_getResourceText: false, - GM_getResourceURL: false, - GM_getTab: false, - GM_getTabs: false, - GM_getValue: false, - GM_info: false, - GM_listValues: false, - GM_log: false, - GM_notification: false, - GM_openInTab: false, - GM_registerMenuCommand: false, - GM_removeValueChangeListener: false, - GM_saveTab: false, - GM_setClipboard: false, - GM_setValue: false, - GM_unregisterMenuCommand: false, - GM_xmlhttpRequest: false, - unsafeWindow: false - }; - var devtools$1 = { - $: false, - $_: false, - $$: false, - $0: false, - $1: false, - $2: false, - $3: false, - $4: false, - $x: false, - chrome: false, - clear: false, - copy: false, - debug: false, - dir: false, - dirxml: false, - getEventListeners: false, - inspect: false, - keys: false, - monitor: false, - monitorEvents: false, - profile: false, - profileEnd: false, - queryObjects: false, - table: false, - undebug: false, - unmonitor: false, - unmonitorEvents: false, - values: false - }; - var require$$0$b = { - builtin: builtin$1, - es5: es5$1, - es2015: es2015$1, - es2017: es2017$1, - es2020: es2020, - es2021: es2021, - browser: browser$3, - worker: worker$1, - node: node$2, - nodeBuiltin: nodeBuiltin, - commonjs: commonjs$1, - amd: amd$1, - mocha: mocha$1, - jasmine: jasmine$1, - jest: jest$1, - qunit: qunit$1, - phantomjs: phantomjs$1, - couch: couch$1, - rhino: rhino$1, - nashorn: nashorn$1, - wsh: wsh$1, - jquery: jquery$1, - yui: yui$1, - shelljs: shelljs$1, - prototypejs: prototypejs$1, - meteor: meteor$1, - mongo: mongo$1, - applescript: applescript$1, - serviceworker: serviceworker$1, - atomtest: atomtest$1, - embertest: embertest$1, - protractor: protractor$1, - "shared-node-browser": { - clearInterval: false, - clearTimeout: false, - console: false, - setInterval: false, - setTimeout: false, - URL: false, - URLSearchParams: false - }, - webextensions: webextensions$1, - greasemonkey: greasemonkey$1, - devtools: devtools$1 - }; - - var globalsBABEL_8_BREAKINGTrue; - var hasRequiredGlobalsBABEL_8_BREAKINGTrue; - function requireGlobalsBABEL_8_BREAKINGTrue() { - if (hasRequiredGlobalsBABEL_8_BREAKINGTrue) return globalsBABEL_8_BREAKINGTrue; - hasRequiredGlobalsBABEL_8_BREAKINGTrue = 1; - globalsBABEL_8_BREAKINGTrue = require$$0$b; - return globalsBABEL_8_BREAKINGTrue; - } - - var builtin = { - "Array": false, - "ArrayBuffer": false, - Atomics: false, - BigInt: false, - BigInt64Array: false, - BigUint64Array: false, - "Boolean": false, - constructor: false, - "DataView": false, - "Date": false, - "decodeURI": false, - "decodeURIComponent": false, - "encodeURI": false, - "encodeURIComponent": false, - "Error": false, - "escape": false, - "eval": false, - "EvalError": false, - "Float32Array": false, - "Float64Array": false, - "Function": false, - globalThis: false, - hasOwnProperty: false, - "Infinity": false, - "Int16Array": false, - "Int32Array": false, - "Int8Array": false, - "isFinite": false, - "isNaN": false, - isPrototypeOf: false, - "JSON": false, - "Map": false, - "Math": false, - "NaN": false, - "Number": false, - "Object": false, - "parseFloat": false, - "parseInt": false, - "Promise": false, - propertyIsEnumerable: false, - "Proxy": false, - "RangeError": false, - "ReferenceError": false, - "Reflect": false, - "RegExp": false, - "Set": false, - SharedArrayBuffer: false, - "String": false, - "Symbol": false, - "SyntaxError": false, - toLocaleString: false, - toString: false, - "TypeError": false, - "Uint16Array": false, - "Uint32Array": false, - "Uint8Array": false, - "Uint8ClampedArray": false, - "undefined": false, - "unescape": false, - "URIError": false, - valueOf: false, - "WeakMap": false, - "WeakSet": false - }; - var es5 = { - "Array": false, - "Boolean": false, - constructor: false, - "Date": false, - "decodeURI": false, - "decodeURIComponent": false, - "encodeURI": false, - "encodeURIComponent": false, - "Error": false, - "escape": false, - "eval": false, - "EvalError": false, - "Function": false, - hasOwnProperty: false, - "Infinity": false, - "isFinite": false, - "isNaN": false, - isPrototypeOf: false, - "JSON": false, - "Math": false, - "NaN": false, - "Number": false, - "Object": false, - "parseFloat": false, - "parseInt": false, - propertyIsEnumerable: false, - "RangeError": false, - "ReferenceError": false, - "RegExp": false, - "String": false, - "SyntaxError": false, - toLocaleString: false, - toString: false, - "TypeError": false, - "undefined": false, - "unescape": false, - "URIError": false, - valueOf: false - }; - var es2015 = { - "Array": false, - "ArrayBuffer": false, - "Boolean": false, - constructor: false, - "DataView": false, - "Date": false, - "decodeURI": false, - "decodeURIComponent": false, - "encodeURI": false, - "encodeURIComponent": false, - "Error": false, - "escape": false, - "eval": false, - "EvalError": false, - "Float32Array": false, - "Float64Array": false, - "Function": false, - hasOwnProperty: false, - "Infinity": false, - "Int16Array": false, - "Int32Array": false, - "Int8Array": false, - "isFinite": false, - "isNaN": false, - isPrototypeOf: false, - "JSON": false, - "Map": false, - "Math": false, - "NaN": false, - "Number": false, - "Object": false, - "parseFloat": false, - "parseInt": false, - "Promise": false, - propertyIsEnumerable: false, - "Proxy": false, - "RangeError": false, - "ReferenceError": false, - "Reflect": false, - "RegExp": false, - "Set": false, - "String": false, - "Symbol": false, - "SyntaxError": false, - toLocaleString: false, - toString: false, - "TypeError": false, - "Uint16Array": false, - "Uint32Array": false, - "Uint8Array": false, - "Uint8ClampedArray": false, - "undefined": false, - "unescape": false, - "URIError": false, - valueOf: false, - "WeakMap": false, - "WeakSet": false - }; - var es2017 = { - "Array": false, - "ArrayBuffer": false, - Atomics: false, - "Boolean": false, - constructor: false, - "DataView": false, - "Date": false, - "decodeURI": false, - "decodeURIComponent": false, - "encodeURI": false, - "encodeURIComponent": false, - "Error": false, - "escape": false, - "eval": false, - "EvalError": false, - "Float32Array": false, - "Float64Array": false, - "Function": false, - hasOwnProperty: false, - "Infinity": false, - "Int16Array": false, - "Int32Array": false, - "Int8Array": false, - "isFinite": false, - "isNaN": false, - isPrototypeOf: false, - "JSON": false, - "Map": false, - "Math": false, - "NaN": false, - "Number": false, - "Object": false, - "parseFloat": false, - "parseInt": false, - "Promise": false, - propertyIsEnumerable: false, - "Proxy": false, - "RangeError": false, - "ReferenceError": false, - "Reflect": false, - "RegExp": false, - "Set": false, - SharedArrayBuffer: false, - "String": false, - "Symbol": false, - "SyntaxError": false, - toLocaleString: false, - toString: false, - "TypeError": false, - "Uint16Array": false, - "Uint32Array": false, - "Uint8Array": false, - "Uint8ClampedArray": false, - "undefined": false, - "unescape": false, - "URIError": false, - valueOf: false, - "WeakMap": false, - "WeakSet": false - }; - var browser$2 = { - AbortController: false, - AbortSignal: false, - addEventListener: false, - alert: false, - AnalyserNode: false, - Animation: false, - AnimationEffectReadOnly: false, - AnimationEffectTiming: false, - AnimationEffectTimingReadOnly: false, - AnimationEvent: false, - AnimationPlaybackEvent: false, - AnimationTimeline: false, - applicationCache: false, - ApplicationCache: false, - ApplicationCacheErrorEvent: false, - atob: false, - Attr: false, - Audio: false, - AudioBuffer: false, - AudioBufferSourceNode: false, - AudioContext: false, - AudioDestinationNode: false, - AudioListener: false, - AudioNode: false, - AudioParam: false, - AudioProcessingEvent: false, - AudioScheduledSourceNode: false, - "AudioWorkletGlobalScope ": false, - AudioWorkletNode: false, - AudioWorkletProcessor: false, - BarProp: false, - BaseAudioContext: false, - BatteryManager: false, - BeforeUnloadEvent: false, - BiquadFilterNode: false, - Blob: false, - BlobEvent: false, - blur: false, - BroadcastChannel: false, - btoa: false, - BudgetService: false, - ByteLengthQueuingStrategy: false, - Cache: false, - caches: false, - CacheStorage: false, - cancelAnimationFrame: false, - cancelIdleCallback: false, - CanvasCaptureMediaStreamTrack: false, - CanvasGradient: false, - CanvasPattern: false, - CanvasRenderingContext2D: false, - ChannelMergerNode: false, - ChannelSplitterNode: false, - CharacterData: false, - clearInterval: false, - clearTimeout: false, - clientInformation: false, - ClipboardEvent: false, - close: false, - closed: false, - CloseEvent: false, - Comment: false, - CompositionEvent: false, - confirm: false, - console: false, - ConstantSourceNode: false, - ConvolverNode: false, - CountQueuingStrategy: false, - createImageBitmap: false, - Credential: false, - CredentialsContainer: false, - crypto: false, - Crypto: false, - CryptoKey: false, - CSS: false, - CSSConditionRule: false, - CSSFontFaceRule: false, - CSSGroupingRule: false, - CSSImportRule: false, - CSSKeyframeRule: false, - CSSKeyframesRule: false, - CSSMediaRule: false, - CSSNamespaceRule: false, - CSSPageRule: false, - CSSRule: false, - CSSRuleList: false, - CSSStyleDeclaration: false, - CSSStyleRule: false, - CSSStyleSheet: false, - CSSSupportsRule: false, - CustomElementRegistry: false, - customElements: false, - CustomEvent: false, - DataTransfer: false, - DataTransferItem: false, - DataTransferItemList: false, - defaultstatus: false, - defaultStatus: false, - DelayNode: false, - DeviceMotionEvent: false, - DeviceOrientationEvent: false, - devicePixelRatio: false, - dispatchEvent: false, - document: false, - Document: false, - DocumentFragment: false, - DocumentType: false, - DOMError: false, - DOMException: false, - DOMImplementation: false, - DOMMatrix: false, - DOMMatrixReadOnly: false, - DOMParser: false, - DOMPoint: false, - DOMPointReadOnly: false, - DOMQuad: false, - DOMRect: false, - DOMRectReadOnly: false, - DOMStringList: false, - DOMStringMap: false, - DOMTokenList: false, - DragEvent: false, - DynamicsCompressorNode: false, - Element: false, - ErrorEvent: false, - event: false, - Event: false, - EventSource: false, - EventTarget: false, - external: false, - fetch: false, - File: false, - FileList: false, - FileReader: false, - find: false, - focus: false, - FocusEvent: false, - FontFace: false, - FontFaceSetLoadEvent: false, - FormData: false, - frameElement: false, - frames: false, - GainNode: false, - Gamepad: false, - GamepadButton: false, - GamepadEvent: false, - getComputedStyle: false, - getSelection: false, - HashChangeEvent: false, - Headers: false, - history: false, - History: false, - HTMLAllCollection: false, - HTMLAnchorElement: false, - HTMLAreaElement: false, - HTMLAudioElement: false, - HTMLBaseElement: false, - HTMLBodyElement: false, - HTMLBRElement: false, - HTMLButtonElement: false, - HTMLCanvasElement: false, - HTMLCollection: false, - HTMLContentElement: false, - HTMLDataElement: false, - HTMLDataListElement: false, - HTMLDetailsElement: false, - HTMLDialogElement: false, - HTMLDirectoryElement: false, - HTMLDivElement: false, - HTMLDListElement: false, - HTMLDocument: false, - HTMLElement: false, - HTMLEmbedElement: false, - HTMLFieldSetElement: false, - HTMLFontElement: false, - HTMLFormControlsCollection: false, - HTMLFormElement: false, - HTMLFrameElement: false, - HTMLFrameSetElement: false, - HTMLHeadElement: false, - HTMLHeadingElement: false, - HTMLHRElement: false, - HTMLHtmlElement: false, - HTMLIFrameElement: false, - HTMLImageElement: false, - HTMLInputElement: false, - HTMLLabelElement: false, - HTMLLegendElement: false, - HTMLLIElement: false, - HTMLLinkElement: false, - HTMLMapElement: false, - HTMLMarqueeElement: false, - HTMLMediaElement: false, - HTMLMenuElement: false, - HTMLMetaElement: false, - HTMLMeterElement: false, - HTMLModElement: false, - HTMLObjectElement: false, - HTMLOListElement: false, - HTMLOptGroupElement: false, - HTMLOptionElement: false, - HTMLOptionsCollection: false, - HTMLOutputElement: false, - HTMLParagraphElement: false, - HTMLParamElement: false, - HTMLPictureElement: false, - HTMLPreElement: false, - HTMLProgressElement: false, - HTMLQuoteElement: false, - HTMLScriptElement: false, - HTMLSelectElement: false, - HTMLShadowElement: false, - HTMLSlotElement: false, - HTMLSourceElement: false, - HTMLSpanElement: false, - HTMLStyleElement: false, - HTMLTableCaptionElement: false, - HTMLTableCellElement: false, - HTMLTableColElement: false, - HTMLTableElement: false, - HTMLTableRowElement: false, - HTMLTableSectionElement: false, - HTMLTemplateElement: false, - HTMLTextAreaElement: false, - HTMLTimeElement: false, - HTMLTitleElement: false, - HTMLTrackElement: false, - HTMLUListElement: false, - HTMLUnknownElement: false, - HTMLVideoElement: false, - IDBCursor: false, - IDBCursorWithValue: false, - IDBDatabase: false, - IDBFactory: false, - IDBIndex: false, - IDBKeyRange: false, - IDBObjectStore: false, - IDBOpenDBRequest: false, - IDBRequest: false, - IDBTransaction: false, - IDBVersionChangeEvent: false, - IdleDeadline: false, - IIRFilterNode: false, - Image: false, - ImageBitmap: false, - ImageBitmapRenderingContext: false, - ImageCapture: false, - ImageData: false, - indexedDB: false, - innerHeight: false, - innerWidth: false, - InputEvent: false, - IntersectionObserver: false, - IntersectionObserverEntry: false, - "Intl": false, - isSecureContext: false, - KeyboardEvent: false, - KeyframeEffect: false, - KeyframeEffectReadOnly: false, - length: false, - localStorage: false, - location: true, - Location: false, - locationbar: false, - matchMedia: false, - MediaDeviceInfo: false, - MediaDevices: false, - MediaElementAudioSourceNode: false, - MediaEncryptedEvent: false, - MediaError: false, - MediaKeyMessageEvent: false, - MediaKeySession: false, - MediaKeyStatusMap: false, - MediaKeySystemAccess: false, - MediaList: false, - MediaQueryList: false, - MediaQueryListEvent: false, - MediaRecorder: false, - MediaSettingsRange: false, - MediaSource: false, - MediaStream: false, - MediaStreamAudioDestinationNode: false, - MediaStreamAudioSourceNode: false, - MediaStreamEvent: false, - MediaStreamTrack: false, - MediaStreamTrackEvent: false, - menubar: false, - MessageChannel: false, - MessageEvent: false, - MessagePort: false, - MIDIAccess: false, - MIDIConnectionEvent: false, - MIDIInput: false, - MIDIInputMap: false, - MIDIMessageEvent: false, - MIDIOutput: false, - MIDIOutputMap: false, - MIDIPort: false, - MimeType: false, - MimeTypeArray: false, - MouseEvent: false, - moveBy: false, - moveTo: false, - MutationEvent: false, - MutationObserver: false, - MutationRecord: false, - name: false, - NamedNodeMap: false, - NavigationPreloadManager: false, - navigator: false, - Navigator: false, - NetworkInformation: false, - Node: false, - NodeFilter: false, - NodeIterator: false, - NodeList: false, - Notification: false, - OfflineAudioCompletionEvent: false, - OfflineAudioContext: false, - offscreenBuffering: false, - OffscreenCanvas: true, - onabort: true, - onafterprint: true, - onanimationend: true, - onanimationiteration: true, - onanimationstart: true, - onappinstalled: true, - onauxclick: true, - onbeforeinstallprompt: true, - onbeforeprint: true, - onbeforeunload: true, - onblur: true, - oncancel: true, - oncanplay: true, - oncanplaythrough: true, - onchange: true, - onclick: true, - onclose: true, - oncontextmenu: true, - oncuechange: true, - ondblclick: true, - ondevicemotion: true, - ondeviceorientation: true, - ondeviceorientationabsolute: true, - ondrag: true, - ondragend: true, - ondragenter: true, - ondragleave: true, - ondragover: true, - ondragstart: true, - ondrop: true, - ondurationchange: true, - onemptied: true, - onended: true, - onerror: true, - onfocus: true, - ongotpointercapture: true, - onhashchange: true, - oninput: true, - oninvalid: true, - onkeydown: true, - onkeypress: true, - onkeyup: true, - onlanguagechange: true, - onload: true, - onloadeddata: true, - onloadedmetadata: true, - onloadstart: true, - onlostpointercapture: true, - onmessage: true, - onmessageerror: true, - onmousedown: true, - onmouseenter: true, - onmouseleave: true, - onmousemove: true, - onmouseout: true, - onmouseover: true, - onmouseup: true, - onmousewheel: true, - onoffline: true, - ononline: true, - onpagehide: true, - onpageshow: true, - onpause: true, - onplay: true, - onplaying: true, - onpointercancel: true, - onpointerdown: true, - onpointerenter: true, - onpointerleave: true, - onpointermove: true, - onpointerout: true, - onpointerover: true, - onpointerup: true, - onpopstate: true, - onprogress: true, - onratechange: true, - onrejectionhandled: true, - onreset: true, - onresize: true, - onscroll: true, - onsearch: true, - onseeked: true, - onseeking: true, - onselect: true, - onstalled: true, - onstorage: true, - onsubmit: true, - onsuspend: true, - ontimeupdate: true, - ontoggle: true, - ontransitionend: true, - onunhandledrejection: true, - onunload: true, - onvolumechange: true, - onwaiting: true, - onwheel: true, - open: false, - openDatabase: false, - opener: false, - Option: false, - origin: false, - OscillatorNode: false, - outerHeight: false, - outerWidth: false, - PageTransitionEvent: false, - pageXOffset: false, - pageYOffset: false, - PannerNode: false, - parent: false, - Path2D: false, - PaymentAddress: false, - PaymentRequest: false, - PaymentRequestUpdateEvent: false, - PaymentResponse: false, - performance: false, - Performance: false, - PerformanceEntry: false, - PerformanceLongTaskTiming: false, - PerformanceMark: false, - PerformanceMeasure: false, - PerformanceNavigation: false, - PerformanceNavigationTiming: false, - PerformanceObserver: false, - PerformanceObserverEntryList: false, - PerformancePaintTiming: false, - PerformanceResourceTiming: false, - PerformanceTiming: false, - PeriodicWave: false, - Permissions: false, - PermissionStatus: false, - personalbar: false, - PhotoCapabilities: false, - Plugin: false, - PluginArray: false, - PointerEvent: false, - PopStateEvent: false, - postMessage: false, - Presentation: false, - PresentationAvailability: false, - PresentationConnection: false, - PresentationConnectionAvailableEvent: false, - PresentationConnectionCloseEvent: false, - PresentationConnectionList: false, - PresentationReceiver: false, - PresentationRequest: false, - print: false, - ProcessingInstruction: false, - ProgressEvent: false, - PromiseRejectionEvent: false, - prompt: false, - PushManager: false, - PushSubscription: false, - PushSubscriptionOptions: false, - queueMicrotask: false, - RadioNodeList: false, - Range: false, - ReadableStream: false, - registerProcessor: false, - RemotePlayback: false, - removeEventListener: false, - Request: false, - requestAnimationFrame: false, - requestIdleCallback: false, - resizeBy: false, - ResizeObserver: false, - ResizeObserverEntry: false, - resizeTo: false, - Response: false, - RTCCertificate: false, - RTCDataChannel: false, - RTCDataChannelEvent: false, - RTCDtlsTransport: false, - RTCIceCandidate: false, - RTCIceGatherer: false, - RTCIceTransport: false, - RTCPeerConnection: false, - RTCPeerConnectionIceEvent: false, - RTCRtpContributingSource: false, - RTCRtpReceiver: false, - RTCRtpSender: false, - RTCSctpTransport: false, - RTCSessionDescription: false, - RTCStatsReport: false, - RTCTrackEvent: false, - screen: false, - Screen: false, - screenLeft: false, - ScreenOrientation: false, - screenTop: false, - screenX: false, - screenY: false, - ScriptProcessorNode: false, - scroll: false, - scrollbars: false, - scrollBy: false, - scrollTo: false, - scrollX: false, - scrollY: false, - SecurityPolicyViolationEvent: false, - Selection: false, - self: false, - ServiceWorker: false, - ServiceWorkerContainer: false, - ServiceWorkerRegistration: false, - sessionStorage: false, - setInterval: false, - setTimeout: false, - ShadowRoot: false, - SharedWorker: false, - SourceBuffer: false, - SourceBufferList: false, - speechSynthesis: false, - SpeechSynthesisEvent: false, - SpeechSynthesisUtterance: false, - StaticRange: false, - status: false, - statusbar: false, - StereoPannerNode: false, - stop: false, - Storage: false, - StorageEvent: false, - StorageManager: false, - styleMedia: false, - StyleSheet: false, - StyleSheetList: false, - SubtleCrypto: false, - SVGAElement: false, - SVGAngle: false, - SVGAnimatedAngle: false, - SVGAnimatedBoolean: false, - SVGAnimatedEnumeration: false, - SVGAnimatedInteger: false, - SVGAnimatedLength: false, - SVGAnimatedLengthList: false, - SVGAnimatedNumber: false, - SVGAnimatedNumberList: false, - SVGAnimatedPreserveAspectRatio: false, - SVGAnimatedRect: false, - SVGAnimatedString: false, - SVGAnimatedTransformList: false, - SVGAnimateElement: false, - SVGAnimateMotionElement: false, - SVGAnimateTransformElement: false, - SVGAnimationElement: false, - SVGCircleElement: false, - SVGClipPathElement: false, - SVGComponentTransferFunctionElement: false, - SVGDefsElement: false, - SVGDescElement: false, - SVGDiscardElement: false, - SVGElement: false, - SVGEllipseElement: false, - SVGFEBlendElement: false, - SVGFEColorMatrixElement: false, - SVGFEComponentTransferElement: false, - SVGFECompositeElement: false, - SVGFEConvolveMatrixElement: false, - SVGFEDiffuseLightingElement: false, - SVGFEDisplacementMapElement: false, - SVGFEDistantLightElement: false, - SVGFEDropShadowElement: false, - SVGFEFloodElement: false, - SVGFEFuncAElement: false, - SVGFEFuncBElement: false, - SVGFEFuncGElement: false, - SVGFEFuncRElement: false, - SVGFEGaussianBlurElement: false, - SVGFEImageElement: false, - SVGFEMergeElement: false, - SVGFEMergeNodeElement: false, - SVGFEMorphologyElement: false, - SVGFEOffsetElement: false, - SVGFEPointLightElement: false, - SVGFESpecularLightingElement: false, - SVGFESpotLightElement: false, - SVGFETileElement: false, - SVGFETurbulenceElement: false, - SVGFilterElement: false, - SVGForeignObjectElement: false, - SVGGElement: false, - SVGGeometryElement: false, - SVGGradientElement: false, - SVGGraphicsElement: false, - SVGImageElement: false, - SVGLength: false, - SVGLengthList: false, - SVGLinearGradientElement: false, - SVGLineElement: false, - SVGMarkerElement: false, - SVGMaskElement: false, - SVGMatrix: false, - SVGMetadataElement: false, - SVGMPathElement: false, - SVGNumber: false, - SVGNumberList: false, - SVGPathElement: false, - SVGPatternElement: false, - SVGPoint: false, - SVGPointList: false, - SVGPolygonElement: false, - SVGPolylineElement: false, - SVGPreserveAspectRatio: false, - SVGRadialGradientElement: false, - SVGRect: false, - SVGRectElement: false, - SVGScriptElement: false, - SVGSetElement: false, - SVGStopElement: false, - SVGStringList: false, - SVGStyleElement: false, - SVGSVGElement: false, - SVGSwitchElement: false, - SVGSymbolElement: false, - SVGTextContentElement: false, - SVGTextElement: false, - SVGTextPathElement: false, - SVGTextPositioningElement: false, - SVGTitleElement: false, - SVGTransform: false, - SVGTransformList: false, - SVGTSpanElement: false, - SVGUnitTypes: false, - SVGUseElement: false, - SVGViewElement: false, - TaskAttributionTiming: false, - Text: false, - TextDecoder: false, - TextEncoder: false, - TextEvent: false, - TextMetrics: false, - TextTrack: false, - TextTrackCue: false, - TextTrackCueList: false, - TextTrackList: false, - TimeRanges: false, - toolbar: false, - top: false, - Touch: false, - TouchEvent: false, - TouchList: false, - TrackEvent: false, - TransitionEvent: false, - TreeWalker: false, - UIEvent: false, - URL: false, - URLSearchParams: false, - ValidityState: false, - visualViewport: false, - VisualViewport: false, - VTTCue: false, - WaveShaperNode: false, - WebAssembly: false, - WebGL2RenderingContext: false, - WebGLActiveInfo: false, - WebGLBuffer: false, - WebGLContextEvent: false, - WebGLFramebuffer: false, - WebGLProgram: false, - WebGLQuery: false, - WebGLRenderbuffer: false, - WebGLRenderingContext: false, - WebGLSampler: false, - WebGLShader: false, - WebGLShaderPrecisionFormat: false, - WebGLSync: false, - WebGLTexture: false, - WebGLTransformFeedback: false, - WebGLUniformLocation: false, - WebGLVertexArrayObject: false, - WebSocket: false, - WheelEvent: false, - window: false, - Window: false, - Worker: false, - WritableStream: false, - XMLDocument: false, - XMLHttpRequest: false, - XMLHttpRequestEventTarget: false, - XMLHttpRequestUpload: false, - XMLSerializer: false, - XPathEvaluator: false, - XPathExpression: false, - XPathResult: false, - XSLTProcessor: false - }; - var worker = { - addEventListener: false, - applicationCache: false, - atob: false, - Blob: false, - BroadcastChannel: false, - btoa: false, - Cache: false, - caches: false, - clearInterval: false, - clearTimeout: false, - close: true, - console: false, - fetch: false, - FileReaderSync: false, - FormData: false, - Headers: false, - IDBCursor: false, - IDBCursorWithValue: false, - IDBDatabase: false, - IDBFactory: false, - IDBIndex: false, - IDBKeyRange: false, - IDBObjectStore: false, - IDBOpenDBRequest: false, - IDBRequest: false, - IDBTransaction: false, - IDBVersionChangeEvent: false, - ImageData: false, - importScripts: true, - indexedDB: false, - location: false, - MessageChannel: false, - MessagePort: false, - name: false, - navigator: false, - Notification: false, - onclose: true, - onconnect: true, - onerror: true, - onlanguagechange: true, - onmessage: true, - onoffline: true, - ononline: true, - onrejectionhandled: true, - onunhandledrejection: true, - performance: false, - Performance: false, - PerformanceEntry: false, - PerformanceMark: false, - PerformanceMeasure: false, - PerformanceNavigation: false, - PerformanceResourceTiming: false, - PerformanceTiming: false, - postMessage: true, - "Promise": false, - queueMicrotask: false, - removeEventListener: false, - Request: false, - Response: false, - self: true, - ServiceWorkerRegistration: false, - setInterval: false, - setTimeout: false, - TextDecoder: false, - TextEncoder: false, - URL: false, - URLSearchParams: false, - WebSocket: false, - Worker: false, - WorkerGlobalScope: false, - XMLHttpRequest: false - }; - var node$1 = { - __dirname: false, - __filename: false, - Buffer: false, - clearImmediate: false, - clearInterval: false, - clearTimeout: false, - console: false, - exports: true, - global: false, - "Intl": false, - module: false, - process: false, - queueMicrotask: false, - require: false, - setImmediate: false, - setInterval: false, - setTimeout: false, - TextDecoder: false, - TextEncoder: false, - URL: false, - URLSearchParams: false - }; - var commonjs = { - exports: true, - global: false, - module: false, - require: false - }; - var amd = { - define: false, - require: false - }; - var mocha = { - after: false, - afterEach: false, - before: false, - beforeEach: false, - context: false, - describe: false, - it: false, - mocha: false, - run: false, - setup: false, - specify: false, - suite: false, - suiteSetup: false, - suiteTeardown: false, - teardown: false, - test: false, - xcontext: false, - xdescribe: false, - xit: false, - xspecify: false - }; - var jasmine = { - afterAll: false, - afterEach: false, - beforeAll: false, - beforeEach: false, - describe: false, - expect: false, - fail: false, - fdescribe: false, - fit: false, - it: false, - jasmine: false, - pending: false, - runs: false, - spyOn: false, - spyOnProperty: false, - waits: false, - waitsFor: false, - xdescribe: false, - xit: false - }; - var jest = { - afterAll: false, - afterEach: false, - beforeAll: false, - beforeEach: false, - describe: false, - expect: false, - fdescribe: false, - fit: false, - it: false, - jest: false, - pit: false, - require: false, - test: false, - xdescribe: false, - xit: false, - xtest: false - }; - var qunit = { - asyncTest: false, - deepEqual: false, - equal: false, - expect: false, - module: false, - notDeepEqual: false, - notEqual: false, - notOk: false, - notPropEqual: false, - notStrictEqual: false, - ok: false, - propEqual: false, - QUnit: false, - raises: false, - start: false, - stop: false, - strictEqual: false, - test: false, - throws: false - }; - var phantomjs = { - console: true, - exports: true, - phantom: true, - require: true, - WebPage: true - }; - var couch = { - emit: false, - exports: false, - getRow: false, - log: false, - module: false, - provides: false, - require: false, - respond: false, - send: false, - start: false, - sum: false - }; - var rhino = { - defineClass: false, - deserialize: false, - gc: false, - help: false, - importClass: false, - importPackage: false, - java: false, - load: false, - loadClass: false, - Packages: false, - print: false, - quit: false, - readFile: false, - readUrl: false, - runCommand: false, - seal: false, - serialize: false, - spawn: false, - sync: false, - toint32: false, - version: false - }; - var nashorn = { - __DIR__: false, - __FILE__: false, - __LINE__: false, - com: false, - edu: false, - exit: false, - java: false, - Java: false, - javafx: false, - JavaImporter: false, - javax: false, - JSAdapter: false, - load: false, - loadWithNewGlobal: false, - org: false, - Packages: false, - print: false, - quit: false - }; - var wsh = { - ActiveXObject: true, - Enumerator: true, - GetObject: true, - ScriptEngine: true, - ScriptEngineBuildVersion: true, - ScriptEngineMajorVersion: true, - ScriptEngineMinorVersion: true, - VBArray: true, - WScript: true, - WSH: true, - XDomainRequest: true - }; - var jquery = { - $: false, - jQuery: false - }; - var yui = { - YAHOO: false, - YAHOO_config: false, - YUI: false, - YUI_config: false - }; - var shelljs = { - cat: false, - cd: false, - chmod: false, - config: false, - cp: false, - dirs: false, - echo: false, - env: false, - error: false, - exec: false, - exit: false, - find: false, - grep: false, - ln: false, - ls: false, - mkdir: false, - mv: false, - popd: false, - pushd: false, - pwd: false, - rm: false, - sed: false, - set: false, - target: false, - tempdir: false, - test: false, - touch: false, - which: false - }; - var prototypejs = { - $: false, - $$: false, - $A: false, - $break: false, - $continue: false, - $F: false, - $H: false, - $R: false, - $w: false, - Abstract: false, - Ajax: false, - Autocompleter: false, - Builder: false, - Class: false, - Control: false, - Draggable: false, - Draggables: false, - Droppables: false, - Effect: false, - Element: false, - Enumerable: false, - Event: false, - Field: false, - Form: false, - Hash: false, - Insertion: false, - ObjectRange: false, - PeriodicalExecuter: false, - Position: false, - Prototype: false, - Scriptaculous: false, - Selector: false, - Sortable: false, - SortableObserver: false, - Sound: false, - Template: false, - Toggle: false, - Try: false - }; - var meteor = { - _: false, - $: false, - Accounts: false, - AccountsClient: false, - AccountsCommon: false, - AccountsServer: false, - App: false, - Assets: false, - Blaze: false, - check: false, - Cordova: false, - DDP: false, - DDPRateLimiter: false, - DDPServer: false, - Deps: false, - EJSON: false, - Email: false, - HTTP: false, - Log: false, - Match: false, - Meteor: false, - Mongo: false, - MongoInternals: false, - Npm: false, - Package: false, - Plugin: false, - process: false, - Random: false, - ReactiveDict: false, - ReactiveVar: false, - Router: false, - ServiceConfiguration: false, - Session: false, - share: false, - Spacebars: false, - Template: false, - Tinytest: false, - Tracker: false, - UI: false, - Utils: false, - WebApp: false, - WebAppInternals: false - }; - var mongo = { - _isWindows: false, - _rand: false, - BulkWriteResult: false, - cat: false, - cd: false, - connect: false, - db: false, - getHostName: false, - getMemInfo: false, - hostname: false, - ISODate: false, - listFiles: false, - load: false, - ls: false, - md5sumFile: false, - mkdir: false, - Mongo: false, - NumberInt: false, - NumberLong: false, - ObjectId: false, - PlanCache: false, - print: false, - printjson: false, - pwd: false, - quit: false, - removeFile: false, - rs: false, - sh: false, - UUID: false, - version: false, - WriteResult: false - }; - var applescript = { - $: false, - Application: false, - Automation: false, - console: false, - delay: false, - Library: false, - ObjC: false, - ObjectSpecifier: false, - Path: false, - Progress: false, - Ref: false - }; - var serviceworker = { - addEventListener: false, - applicationCache: false, - atob: false, - Blob: false, - BroadcastChannel: false, - btoa: false, - Cache: false, - caches: false, - CacheStorage: false, - clearInterval: false, - clearTimeout: false, - Client: false, - clients: false, - Clients: false, - close: true, - console: false, - ExtendableEvent: false, - ExtendableMessageEvent: false, - fetch: false, - FetchEvent: false, - FileReaderSync: false, - FormData: false, - Headers: false, - IDBCursor: false, - IDBCursorWithValue: false, - IDBDatabase: false, - IDBFactory: false, - IDBIndex: false, - IDBKeyRange: false, - IDBObjectStore: false, - IDBOpenDBRequest: false, - IDBRequest: false, - IDBTransaction: false, - IDBVersionChangeEvent: false, - ImageData: false, - importScripts: false, - indexedDB: false, - location: false, - MessageChannel: false, - MessagePort: false, - name: false, - navigator: false, - Notification: false, - onclose: true, - onconnect: true, - onerror: true, - onfetch: true, - oninstall: true, - onlanguagechange: true, - onmessage: true, - onmessageerror: true, - onnotificationclick: true, - onnotificationclose: true, - onoffline: true, - ononline: true, - onpush: true, - onpushsubscriptionchange: true, - onrejectionhandled: true, - onsync: true, - onunhandledrejection: true, - performance: false, - Performance: false, - PerformanceEntry: false, - PerformanceMark: false, - PerformanceMeasure: false, - PerformanceNavigation: false, - PerformanceResourceTiming: false, - PerformanceTiming: false, - postMessage: true, - "Promise": false, - queueMicrotask: false, - registration: false, - removeEventListener: false, - Request: false, - Response: false, - self: false, - ServiceWorker: false, - ServiceWorkerContainer: false, - ServiceWorkerGlobalScope: false, - ServiceWorkerMessageEvent: false, - ServiceWorkerRegistration: false, - setInterval: false, - setTimeout: false, - skipWaiting: false, - TextDecoder: false, - TextEncoder: false, - URL: false, - URLSearchParams: false, - WebSocket: false, - WindowClient: false, - Worker: false, - WorkerGlobalScope: false, - XMLHttpRequest: false - }; - var atomtest = { - advanceClock: false, - fakeClearInterval: false, - fakeClearTimeout: false, - fakeSetInterval: false, - fakeSetTimeout: false, - resetTimeouts: false, - waitsForPromise: false - }; - var embertest = { - andThen: false, - click: false, - currentPath: false, - currentRouteName: false, - currentURL: false, - fillIn: false, - find: false, - findAll: false, - findWithAssert: false, - keyEvent: false, - pauseTest: false, - resumeTest: false, - triggerEvent: false, - visit: false, - wait: false - }; - var protractor = { - $: false, - $$: false, - browser: false, - by: false, - By: false, - DartObject: false, - element: false, - protractor: false - }; - var webextensions = { - browser: false, - chrome: false, - opr: false - }; - var greasemonkey = { - cloneInto: false, - createObjectIn: false, - exportFunction: false, - GM: false, - GM_addStyle: false, - GM_deleteValue: false, - GM_getResourceText: false, - GM_getResourceURL: false, - GM_getValue: false, - GM_info: false, - GM_listValues: false, - GM_log: false, - GM_openInTab: false, - GM_registerMenuCommand: false, - GM_setClipboard: false, - GM_setValue: false, - GM_xmlhttpRequest: false, - unsafeWindow: false - }; - var devtools = { - $: false, - $_: false, - $$: false, - $0: false, - $1: false, - $2: false, - $3: false, - $4: false, - $x: false, - chrome: false, - clear: false, - copy: false, - debug: false, - dir: false, - dirxml: false, - getEventListeners: false, - inspect: false, - keys: false, - monitor: false, - monitorEvents: false, - profile: false, - profileEnd: false, - queryObjects: false, - table: false, - undebug: false, - unmonitor: false, - unmonitorEvents: false, - values: false - }; - var require$$0$a = { - builtin: builtin, - es5: es5, - es2015: es2015, - es2017: es2017, - browser: browser$2, - worker: worker, - node: node$1, - commonjs: commonjs, - amd: amd, - mocha: mocha, - jasmine: jasmine, - jest: jest, - qunit: qunit, - phantomjs: phantomjs, - couch: couch, - rhino: rhino, - nashorn: nashorn, - wsh: wsh, - jquery: jquery, - yui: yui, - shelljs: shelljs, - prototypejs: prototypejs, - meteor: meteor, - mongo: mongo, - applescript: applescript, - serviceworker: serviceworker, - atomtest: atomtest, - embertest: embertest, - protractor: protractor, - "shared-node-browser": { - clearInterval: false, - clearTimeout: false, - console: false, - setInterval: false, - setTimeout: false, - URL: false, - URLSearchParams: false - }, - webextensions: webextensions, - greasemonkey: greasemonkey, - devtools: devtools - }; - - var globalsBABEL_8_BREAKINGFalse; - var hasRequiredGlobalsBABEL_8_BREAKINGFalse; - function requireGlobalsBABEL_8_BREAKINGFalse() { - if (hasRequiredGlobalsBABEL_8_BREAKINGFalse) return globalsBABEL_8_BREAKINGFalse; - hasRequiredGlobalsBABEL_8_BREAKINGFalse = 1; - globalsBABEL_8_BREAKINGFalse = require$$0$a; - return globalsBABEL_8_BREAKINGFalse; - } - - function bool$6(value) { - if (value == null) return false; - return value && value !== "false" && value !== "0"; - } - var globals = bool$6(browser$1$1.env["BABEL_8_BREAKING"]) ? requireGlobalsBABEL_8_BREAKINGTrue() : requireGlobalsBABEL_8_BREAKINGFalse(); - - var NOT_LOCAL_BINDING$1 = NOT_LOCAL_BINDING$2, - callExpression$d = callExpression$e, - cloneNode$h = cloneNode$j, - getBindingIdentifiers$1 = getBindingIdentifiers$2, - identifier$h = identifier$j, - isArrayExpression$1 = isArrayExpression$2, - isBinary$2 = isBinary$3, - isClass$1 = isClass$2, - isClassBody$1 = isClassBody$2, - isClassDeclaration$1 = isClassDeclaration$2, - isExportAllDeclaration = isExportAllDeclaration$1, - isExportDefaultDeclaration$2 = isExportDefaultDeclaration$3, - isExportNamedDeclaration$1 = isExportNamedDeclaration$2, - isFunctionDeclaration$1 = isFunctionDeclaration$2, - isIdentifier$i = isIdentifier$j, - isImportDeclaration$1 = isImportDeclaration$2, - isLiteral$5 = isLiteral$6, - isMethod = isMethod$1, - isModuleDeclaration = isModuleDeclaration$1, - isModuleSpecifier = isModuleSpecifier$1, - isNullLiteral$1 = isNullLiteral$2, - isObjectExpression$2 = isObjectExpression$3, - isProperty$1 = isProperty$2, - isPureish$1 = isPureish$2, - isRegExpLiteral$1 = isRegExpLiteral$2, - isSuper$2 = isSuper$3, - isTaggedTemplateExpression$1 = isTaggedTemplateExpression$2, - isTemplateLiteral$1 = isTemplateLiteral$2, - isThisExpression$1 = isThisExpression$2, - isUnaryExpression = isUnaryExpression$1, - isVariableDeclaration$2 = isVariableDeclaration$3, - matchesPattern$1 = matchesPattern$2, - memberExpression$b = memberExpression$c, - numericLiteral$7 = numericLiteral$8, - toIdentifier = toIdentifier$1, - unaryExpression$6 = unaryExpression$7, - variableDeclaration$6 = variableDeclaration$8, - variableDeclarator$6 = variableDeclarator$8, - isRecordExpression = isRecordExpression$1, - isTupleExpression = isTupleExpression$1, - isObjectProperty$5 = isObjectProperty$6, - isTopicReference = isTopicReference$1, - isMetaProperty = isMetaProperty$1, - isPrivateName$2 = isPrivateName$3; - function gatherNodeParts(node, parts) { - switch (node == null ? void 0 : node.type) { - default: - if (isModuleDeclaration(node)) { - if ((isExportAllDeclaration(node) || isExportNamedDeclaration$1(node) || isImportDeclaration$1(node)) && node.source) { - gatherNodeParts(node.source, parts); - } else if ((isExportNamedDeclaration$1(node) || isImportDeclaration$1(node)) && node.specifiers && node.specifiers.length) { - for (var _iterator = _createForOfIteratorHelperLoose(node.specifiers), _step; !(_step = _iterator()).done;) { - var e = _step.value; - gatherNodeParts(e, parts); - } - } else if ((isExportDefaultDeclaration$2(node) || isExportNamedDeclaration$1(node)) && node.declaration) { - gatherNodeParts(node.declaration, parts); - } - } else if (isModuleSpecifier(node)) { - gatherNodeParts(node.local, parts); - } else if (isLiteral$5(node) && !isNullLiteral$1(node) && !isRegExpLiteral$1(node) && !isTemplateLiteral$1(node)) { - parts.push(node.value); - } - break; - case "MemberExpression": - case "OptionalMemberExpression": - case "JSXMemberExpression": - gatherNodeParts(node.object, parts); - gatherNodeParts(node.property, parts); - break; - case "Identifier": - case "JSXIdentifier": - parts.push(node.name); - break; - case "CallExpression": - case "OptionalCallExpression": - case "NewExpression": - gatherNodeParts(node.callee, parts); - break; - case "ObjectExpression": - case "ObjectPattern": - for (var _iterator2 = _createForOfIteratorHelperLoose(node.properties), _step2; !(_step2 = _iterator2()).done;) { - var _e = _step2.value; - gatherNodeParts(_e, parts); - } - break; - case "SpreadElement": - case "RestElement": - gatherNodeParts(node.argument, parts); - break; - case "ObjectProperty": - case "ObjectMethod": - case "ClassProperty": - case "ClassMethod": - case "ClassPrivateProperty": - case "ClassPrivateMethod": - gatherNodeParts(node.key, parts); - break; - case "ThisExpression": - parts.push("this"); - break; - case "Super": - parts.push("super"); - break; - case "Import": - parts.push("import"); - break; - case "DoExpression": - parts.push("do"); - break; - case "YieldExpression": - parts.push("yield"); - gatherNodeParts(node.argument, parts); - break; - case "AwaitExpression": - parts.push("await"); - gatherNodeParts(node.argument, parts); - break; - case "AssignmentExpression": - gatherNodeParts(node.left, parts); - break; - case "VariableDeclarator": - gatherNodeParts(node.id, parts); - break; - case "FunctionExpression": - case "FunctionDeclaration": - case "ClassExpression": - case "ClassDeclaration": - gatherNodeParts(node.id, parts); - break; - case "PrivateName": - gatherNodeParts(node.id, parts); - break; - case "ParenthesizedExpression": - gatherNodeParts(node.expression, parts); - break; - case "UnaryExpression": - case "UpdateExpression": - gatherNodeParts(node.argument, parts); - break; - case "MetaProperty": - gatherNodeParts(node.meta, parts); - gatherNodeParts(node.property, parts); - break; - case "JSXElement": - gatherNodeParts(node.openingElement, parts); - break; - case "JSXOpeningElement": - gatherNodeParts(node.name, parts); - break; - case "JSXFragment": - gatherNodeParts(node.openingFragment, parts); - break; - case "JSXOpeningFragment": - parts.push("Fragment"); - break; - case "JSXNamespacedName": - gatherNodeParts(node.namespace, parts); - gatherNodeParts(node.name, parts); - break; - } - } - - var collectorVisitor = { - ForStatement: function ForStatement(path) { - var declar = path.get("init"); - if (declar.isVar()) { - var scope = path.scope; - var parentScope = scope.getFunctionParent() || scope.getProgramParent(); - parentScope.registerBinding("var", declar); - } - }, - Declaration: function Declaration(path) { - if (path.isBlockScoped()) return; - - if (path.isImportDeclaration()) return; - - if (path.isExportDeclaration()) return; - - var parent = path.scope.getFunctionParent() || path.scope.getProgramParent(); - parent.registerDeclaration(path); - }, - ImportDeclaration: function ImportDeclaration(path) { - var parent = path.scope.getBlockParent(); - parent.registerDeclaration(path); - }, - ReferencedIdentifier: function ReferencedIdentifier(path, state) { - state.references.push(path); - }, - ForXStatement: function ForXStatement(path, state) { - var left = path.get("left"); - if (left.isPattern() || left.isIdentifier()) { - state.constantViolations.push(path); - } - else if (left.isVar()) { - var scope = path.scope; - var parentScope = scope.getFunctionParent() || scope.getProgramParent(); - parentScope.registerBinding("var", left); - } - }, - ExportDeclaration: { - exit: function exit(path) { - var node = path.node, - scope = path.scope; - if (isExportAllDeclaration(node)) return; - var declar = node.declaration; - if (isClassDeclaration$1(declar) || isFunctionDeclaration$1(declar)) { - var id = declar.id; - if (!id) return; - var binding = scope.getBinding(id.name); - binding == null ? void 0 : binding.reference(path); - } else if (isVariableDeclaration$2(declar)) { - for (var _iterator3 = _createForOfIteratorHelperLoose(declar.declarations), _step3; !(_step3 = _iterator3()).done;) { - var decl = _step3.value; - for (var _i = 0, _Object$keys = Object.keys(getBindingIdentifiers$1(decl)); _i < _Object$keys.length; _i++) { - var _name = _Object$keys[_i]; - var _binding = scope.getBinding(_name); - _binding == null ? void 0 : _binding.reference(path); - } - } - } - } - }, - LabeledStatement: function LabeledStatement(path) { - path.scope.getBlockParent().registerDeclaration(path); - }, - AssignmentExpression: function AssignmentExpression(path, state) { - state.assignments.push(path); - }, - UpdateExpression: function UpdateExpression(path, state) { - state.constantViolations.push(path); - }, - UnaryExpression: function UnaryExpression(path, state) { - if (path.node.operator === "delete") { - state.constantViolations.push(path); - } - }, - BlockScoped: function BlockScoped(path) { - var scope = path.scope; - if (scope.path === path) scope = scope.parent; - var parent = scope.getBlockParent(); - parent.registerDeclaration(path); - - if (path.isClassDeclaration() && path.node.id) { - var id = path.node.id; - var _name2 = id.name; - path.scope.bindings[_name2] = path.scope.parent.getBinding(_name2); - } - }, - CatchClause: function CatchClause(path) { - path.scope.registerBinding("let", path); - }, - Function: function Function(path) { - var params = path.get("params"); - for (var _iterator4 = _createForOfIteratorHelperLoose(params), _step4; !(_step4 = _iterator4()).done;) { - var param = _step4.value; - path.scope.registerBinding("param", param); - } - - if (path.isFunctionExpression() && path.has("id") && - !path.get("id").node[NOT_LOCAL_BINDING$1]) { - path.scope.registerBinding("local", path.get("id"), path); - } - }, - ClassExpression: function ClassExpression(path) { - if (path.has("id") && - !path.get("id").node[NOT_LOCAL_BINDING$1]) { - path.scope.registerBinding("local", path); - } - } - }; - var uid = 0; - var Scope$1 = function () { - function Scope(path) { - this.uid = void 0; - this.path = void 0; - this.block = void 0; - this.labels = void 0; - this.inited = void 0; - this.bindings = void 0; - this.references = void 0; - this.globals = void 0; - this.uids = void 0; - this.data = void 0; - this.crawling = void 0; - var node = path.node; - var cached = scope.get(node); - if ((cached == null ? void 0 : cached.path) === path) { - return cached; - } - scope.set(node, this); - this.uid = uid++; - this.block = node; - this.path = path; - this.labels = new Map(); - this.inited = false; - } - - var _proto = Scope.prototype; - _proto.traverse = - function traverse$1(node, opts, state) { - traverse(node, opts, this, state, this.path); - } - - ; - _proto.generateDeclaredUidIdentifier = - - function generateDeclaredUidIdentifier(name) { - var id = this.generateUidIdentifier(name); - this.push({ - id: id - }); - return cloneNode$h(id); - } - - ; - _proto.generateUidIdentifier = - - function generateUidIdentifier(name) { - return identifier$h(this.generateUid(name)); - } - - ; - _proto.generateUid = - - function generateUid(name) { - if (name === void 0) { - name = "temp"; - } - name = toIdentifier(name).replace(/^_+/, "").replace(/[0-9]+$/g, ""); - var uid; - var i = 1; - do { - uid = this._generateUid(name, i); - i++; - } while (this.hasLabel(uid) || this.hasBinding(uid) || this.hasGlobal(uid) || this.hasReference(uid)); - var program = this.getProgramParent(); - program.references[uid] = true; - program.uids[uid] = true; - return uid; - } - - ; - _proto._generateUid = - - function _generateUid(name, i) { - var id = name; - if (i > 1) id += i; - return "_" + id; - }; - _proto.generateUidBasedOnNode = function generateUidBasedOnNode(node, defaultName) { - var parts = []; - gatherNodeParts(node, parts); - var id = parts.join("$"); - id = id.replace(/^_/, "") || defaultName || "ref"; - return this.generateUid(id.slice(0, 20)); - } - - ; - _proto.generateUidIdentifierBasedOnNode = - - function generateUidIdentifierBasedOnNode(node, defaultName) { - return identifier$h(this.generateUidBasedOnNode(node, defaultName)); - } - - ; - _proto.isStatic = - - function isStatic(node) { - if (isThisExpression$1(node) || isSuper$2(node) || isTopicReference(node)) { - return true; - } - if (isIdentifier$i(node)) { - var binding = this.getBinding(node.name); - if (binding) { - return binding.constant; - } else { - return this.hasBinding(node.name); - } - } - return false; - } - - ; - _proto.maybeGenerateMemoised = - - function maybeGenerateMemoised(node, dontPush) { - if (this.isStatic(node)) { - return null; - } else { - var id = this.generateUidIdentifierBasedOnNode(node); - if (!dontPush) { - this.push({ - id: id - }); - return cloneNode$h(id); - } - return id; - } - }; - _proto.checkBlockScopedCollisions = function checkBlockScopedCollisions(local, kind, name, id) { - if (kind === "param") return; - - if (local.kind === "local") return; - var duplicate = - kind === "let" || local.kind === "let" || local.kind === "const" || local.kind === "module" || - local.kind === "param" && kind === "const"; - if (duplicate) { - throw this.hub.buildError(id, "Duplicate declaration \"" + name + "\"", TypeError); - } - }; - _proto.rename = function rename(oldName, newName, block) { - var binding = this.getBinding(oldName); - if (binding) { - newName = newName || this.generateUidIdentifier(oldName).name; - return new Renamer(binding, oldName, newName).rename(block); - } - } - - ; - _proto._renameFromMap = - function _renameFromMap(map, oldName, newName, value) { - if (map[oldName]) { - map[newName] = value; - map[oldName] = null; - } - }; - _proto.dump = function dump() { - var sep = "-".repeat(60); - console.log(sep); - var scope = this; - do { - console.log("#", scope.block.type); - for (var _i2 = 0, _Object$keys2 = Object.keys(scope.bindings); _i2 < _Object$keys2.length; _i2++) { - var _name3 = _Object$keys2[_i2]; - var binding = scope.bindings[_name3]; - console.log(" -", _name3, { - constant: binding.constant, - references: binding.references, - violations: binding.constantViolations.length, - kind: binding.kind - }); - } - } while (scope = scope.parent); - console.log(sep); - } - - ; - _proto.toArray = - function toArray(node, i, arrayLikeIsIterable) { - if (isIdentifier$i(node)) { - var binding = this.getBinding(node.name); - if (binding != null && binding.constant && binding.path.isGenericType("Array")) { - return node; - } - } - if (isArrayExpression$1(node)) { - return node; - } - if (isIdentifier$i(node, { - name: "arguments" - })) { - return callExpression$d(memberExpression$b(memberExpression$b(memberExpression$b(identifier$h("Array"), identifier$h("prototype")), identifier$h("slice")), identifier$h("call")), [node]); - } - var helperName; - var args = [node]; - if (i === true) { - helperName = "toConsumableArray"; - } else if (typeof i === "number") { - args.push(numericLiteral$7(i)); - - helperName = "slicedToArray"; - } else { - helperName = "toArray"; - } - if (arrayLikeIsIterable) { - args.unshift(this.hub.addHelper(helperName)); - helperName = "maybeArrayLike"; - } - - return callExpression$d(this.hub.addHelper(helperName), args); - }; - _proto.hasLabel = function hasLabel(name) { - return !!this.getLabel(name); - }; - _proto.getLabel = function getLabel(name) { - return this.labels.get(name); - }; - _proto.registerLabel = function registerLabel(path) { - this.labels.set(path.node.label.name, path); - }; - _proto.registerDeclaration = function registerDeclaration(path) { - if (path.isLabeledStatement()) { - this.registerLabel(path); - } else if (path.isFunctionDeclaration()) { - this.registerBinding("hoisted", path.get("id"), path); - } else if (path.isVariableDeclaration()) { - var declarations = path.get("declarations"); - var kind = path.node.kind; - for (var _iterator5 = _createForOfIteratorHelperLoose(declarations), _step5; !(_step5 = _iterator5()).done;) { - var declar = _step5.value; - this.registerBinding(kind === "using" ? "const" : kind, declar); - } - } else if (path.isClassDeclaration()) { - if (path.node.declare) return; - this.registerBinding("let", path); - } else if (path.isImportDeclaration()) { - var specifiers = path.get("specifiers"); - for (var _iterator6 = _createForOfIteratorHelperLoose(specifiers), _step6; !(_step6 = _iterator6()).done;) { - var specifier = _step6.value; - this.registerBinding("module", specifier); - } - } else if (path.isExportDeclaration()) { - var _declar = path.get("declaration"); - if (_declar.isClassDeclaration() || _declar.isFunctionDeclaration() || _declar.isVariableDeclaration()) { - this.registerDeclaration(_declar); - } - } else { - this.registerBinding("unknown", path); - } - }; - _proto.buildUndefinedNode = function buildUndefinedNode() { - return unaryExpression$6("void", numericLiteral$7(0), true); - }; - _proto.registerConstantViolation = function registerConstantViolation(path) { - var ids = path.getBindingIdentifiers(); - for (var _i3 = 0, _Object$keys3 = Object.keys(ids); _i3 < _Object$keys3.length; _i3++) { - var _name4 = _Object$keys3[_i3]; - var binding = this.getBinding(_name4); - if (binding) binding.reassign(path); - } - }; - _proto.registerBinding = function registerBinding(kind, path, bindingPath) { - if (bindingPath === void 0) { - bindingPath = path; - } - if (!kind) throw new ReferenceError("no `kind`"); - if (path.isVariableDeclaration()) { - var declarators = path.get("declarations"); - for (var _iterator7 = _createForOfIteratorHelperLoose(declarators), _step7; !(_step7 = _iterator7()).done;) { - var declar = _step7.value; - this.registerBinding(kind, declar); - } - return; - } - var parent = this.getProgramParent(); - var ids = path.getOuterBindingIdentifiers(true); - for (var _i4 = 0, _Object$keys4 = Object.keys(ids); _i4 < _Object$keys4.length; _i4++) { - var _name5 = _Object$keys4[_i4]; - parent.references[_name5] = true; - for (var _iterator8 = _createForOfIteratorHelperLoose(ids[_name5]), _step8; !(_step8 = _iterator8()).done;) { - var id = _step8.value; - var local = this.getOwnBinding(_name5); - if (local) { - if (local.identifier === id) continue; - this.checkBlockScopedCollisions(local, kind, _name5, id); - } - - if (local) { - this.registerConstantViolation(bindingPath); - } else { - this.bindings[_name5] = new Binding({ - identifier: id, - scope: this, - path: bindingPath, - kind: kind - }); - } - } - } - }; - _proto.addGlobal = function addGlobal(node) { - this.globals[node.name] = node; - }; - _proto.hasUid = function hasUid(name) { - var scope = this; - do { - if (scope.uids[name]) return true; - } while (scope = scope.parent); - return false; - }; - _proto.hasGlobal = function hasGlobal(name) { - var scope = this; - do { - if (scope.globals[name]) return true; - } while (scope = scope.parent); - return false; - }; - _proto.hasReference = function hasReference(name) { - return !!this.getProgramParent().references[name]; - }; - _proto.isPure = function isPure(node, constantsOnly) { - if (isIdentifier$i(node)) { - var binding = this.getBinding(node.name); - if (!binding) return false; - if (constantsOnly) return binding.constant; - return true; - } else if (isThisExpression$1(node) || isMetaProperty(node) || isTopicReference(node) || isPrivateName$2(node)) { - return true; - } else if (isClass$1(node)) { - var _node$decorators; - if (node.superClass && !this.isPure(node.superClass, constantsOnly)) { - return false; - } - if (((_node$decorators = node.decorators) == null ? void 0 : _node$decorators.length) > 0) { - return false; - } - return this.isPure(node.body, constantsOnly); - } else if (isClassBody$1(node)) { - for (var _iterator9 = _createForOfIteratorHelperLoose(node.body), _step9; !(_step9 = _iterator9()).done;) { - var method = _step9.value; - if (!this.isPure(method, constantsOnly)) return false; - } - return true; - } else if (isBinary$2(node)) { - return this.isPure(node.left, constantsOnly) && this.isPure(node.right, constantsOnly); - } else if (isArrayExpression$1(node) || isTupleExpression(node)) { - for (var _iterator10 = _createForOfIteratorHelperLoose(node.elements), _step10; !(_step10 = _iterator10()).done;) { - var elem = _step10.value; - if (elem !== null && !this.isPure(elem, constantsOnly)) return false; - } - return true; - } else if (isObjectExpression$2(node) || isRecordExpression(node)) { - for (var _iterator11 = _createForOfIteratorHelperLoose(node.properties), _step11; !(_step11 = _iterator11()).done;) { - var prop = _step11.value; - if (!this.isPure(prop, constantsOnly)) return false; - } - return true; - } else if (isMethod(node)) { - var _node$decorators2; - if (node.computed && !this.isPure(node.key, constantsOnly)) return false; - if (((_node$decorators2 = node.decorators) == null ? void 0 : _node$decorators2.length) > 0) { - return false; - } - return true; - } else if (isProperty$1(node)) { - var _node$decorators3; - if (node.computed && !this.isPure(node.key, constantsOnly)) return false; - if (((_node$decorators3 = node.decorators) == null ? void 0 : _node$decorators3.length) > 0) { - return false; - } - if (isObjectProperty$5(node) || node["static"]) { - if (node.value !== null && !this.isPure(node.value, constantsOnly)) { - return false; - } - } - return true; - } else if (isUnaryExpression(node)) { - return this.isPure(node.argument, constantsOnly); - } else if (isTaggedTemplateExpression$1(node)) { - return matchesPattern$1(node.tag, "String.raw") && !this.hasBinding("String", true) && this.isPure(node.quasi, constantsOnly); - } else if (isTemplateLiteral$1(node)) { - for (var _iterator12 = _createForOfIteratorHelperLoose(node.expressions), _step12; !(_step12 = _iterator12()).done;) { - var expression = _step12.value; - if (!this.isPure(expression, constantsOnly)) return false; - } - return true; - } else { - return isPureish$1(node); - } - } - - ; - _proto.setData = - - function setData(key, val) { - return this.data[key] = val; - } - - ; - _proto.getData = - - function getData(key) { - var scope = this; - do { - var data = scope.data[key]; - if (data != null) return data; - } while (scope = scope.parent); - } - - ; - _proto.removeData = - - function removeData(key) { - var scope = this; - do { - var data = scope.data[key]; - if (data != null) scope.data[key] = null; - } while (scope = scope.parent); - }; - _proto.init = function init() { - if (!this.inited) { - this.inited = true; - this.crawl(); - } - }; - _proto.crawl = function crawl() { - var path = this.path; - this.references = Object.create(null); - this.bindings = Object.create(null); - this.globals = Object.create(null); - this.uids = Object.create(null); - this.data = Object.create(null); - var programParent = this.getProgramParent(); - if (programParent.crawling) return; - var state = { - references: [], - constantViolations: [], - assignments: [] - }; - this.crawling = true; - if (path.type !== "Program" && collectorVisitor._exploded) { - for (var _iterator13 = _createForOfIteratorHelperLoose(collectorVisitor.enter), _step13; !(_step13 = _iterator13()).done;) { - var _visit = _step13.value; - _visit(path, state); - } - var typeVisitors = collectorVisitor[path.type]; - if (typeVisitors) { - for (var _iterator14 = _createForOfIteratorHelperLoose(typeVisitors.enter), _step14; !(_step14 = _iterator14()).done;) { - var visit = _step14.value; - visit(path, state); - } - } - } - path.traverse(collectorVisitor, state); - this.crawling = false; - - for (var _iterator15 = _createForOfIteratorHelperLoose(state.assignments), _step15; !(_step15 = _iterator15()).done;) { - var _path = _step15.value; - var ids = _path.getBindingIdentifiers(); - for (var _i5 = 0, _Object$keys5 = Object.keys(ids); _i5 < _Object$keys5.length; _i5++) { - var _name6 = _Object$keys5[_i5]; - if (_path.scope.getBinding(_name6)) continue; - programParent.addGlobal(ids[_name6]); - } - - _path.scope.registerConstantViolation(_path); - } - - for (var _iterator16 = _createForOfIteratorHelperLoose(state.references), _step16; !(_step16 = _iterator16()).done;) { - var ref = _step16.value; - var binding = ref.scope.getBinding(ref.node.name); - if (binding) { - binding.reference(ref); - } else { - programParent.addGlobal(ref.node); - } - } - - for (var _iterator17 = _createForOfIteratorHelperLoose(state.constantViolations), _step17; !(_step17 = _iterator17()).done;) { - var _path2 = _step17.value; - _path2.scope.registerConstantViolation(_path2); - } - }; - _proto.push = function push(opts) { - var path = this.path; - if (path.isPattern()) { - path = this.getPatternParent().path; - } else if (!path.isBlockStatement() && !path.isProgram()) { - path = this.getBlockParent().path; - } - if (path.isSwitchStatement()) { - path = (this.getFunctionParent() || this.getProgramParent()).path; - } - if (path.isLoop() || path.isCatchClause() || path.isFunction()) { - path.ensureBlock(); - path = path.get("body"); - } - var unique = opts.unique; - var kind = opts.kind || "var"; - var blockHoist = opts._blockHoist == null ? 2 : opts._blockHoist; - var dataKey = "declaration:" + kind + ":" + blockHoist; - var declarPath = !unique && path.getData(dataKey); - if (!declarPath) { - var declar = variableDeclaration$6(kind, []); - declar._blockHoist = blockHoist; - var _unshiftContainer = path.unshiftContainer("body", [declar]); - var _unshiftContainer2 = _slicedToArray(_unshiftContainer, 1); - declarPath = _unshiftContainer2[0]; - if (!unique) path.setData(dataKey, declarPath); - } - var declarator = variableDeclarator$6(opts.id, opts.init); - var len = declarPath.node.declarations.push(declarator); - path.scope.registerBinding(kind, declarPath.get("declarations")[len - 1]); - } - - ; - _proto.getProgramParent = - - function getProgramParent() { - var scope = this; - do { - if (scope.path.isProgram()) { - return scope; - } - } while (scope = scope.parent); - throw new Error("Couldn't find a Program"); - } - - ; - _proto.getFunctionParent = - - function getFunctionParent() { - var scope = this; - do { - if (scope.path.isFunctionParent()) { - return scope; - } - } while (scope = scope.parent); - return null; - } - - ; - _proto.getBlockParent = - - function getBlockParent() { - var scope = this; - do { - if (scope.path.isBlockParent()) { - return scope; - } - } while (scope = scope.parent); - throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program..."); - } - - ; - _proto.getPatternParent = - function getPatternParent() { - var scope = this; - do { - if (!scope.path.isPattern()) { - return scope.getBlockParent(); - } - } while (scope = scope.parent.parent); - throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program..."); - } - - ; - _proto.getAllBindings = - - function getAllBindings() { - var ids = Object.create(null); - var scope = this; - do { - for (var _i6 = 0, _Object$keys6 = Object.keys(scope.bindings); _i6 < _Object$keys6.length; _i6++) { - var _key = _Object$keys6[_i6]; - if (_key in ids === false) { - ids[_key] = scope.bindings[_key]; - } - } - scope = scope.parent; - } while (scope); - return ids; - } - - ; - _proto.getAllBindingsOfKind = - - function getAllBindingsOfKind() { - var ids = Object.create(null); - for (var _len = arguments.length, kinds = new Array(_len), _key2 = 0; _key2 < _len; _key2++) { - kinds[_key2] = arguments[_key2]; - } - for (var _i7 = 0, _kinds = kinds; _i7 < _kinds.length; _i7++) { - var kind = _kinds[_i7]; - var scope = this; - do { - for (var _i8 = 0, _Object$keys7 = Object.keys(scope.bindings); _i8 < _Object$keys7.length; _i8++) { - var _name7 = _Object$keys7[_i8]; - var binding = scope.bindings[_name7]; - if (binding.kind === kind) ids[_name7] = binding; - } - scope = scope.parent; - } while (scope); - } - return ids; - }; - _proto.bindingIdentifierEquals = function bindingIdentifierEquals(name, node) { - return this.getBindingIdentifier(name) === node; - }; - _proto.getBinding = function getBinding(name) { - var scope = this; - var previousPath; - do { - var binding = scope.getOwnBinding(name); - if (binding) { - var _previousPath; - - if ((_previousPath = previousPath) != null && _previousPath.isPattern() && binding.kind !== "param" && binding.kind !== "local") ; else { - return binding; - } - } else if (!binding && name === "arguments" && scope.path.isFunction() && !scope.path.isArrowFunctionExpression()) { - break; - } - previousPath = scope.path; - } while (scope = scope.parent); - }; - _proto.getOwnBinding = function getOwnBinding(name) { - return this.bindings[name]; - } - - ; - _proto.getBindingIdentifier = - function getBindingIdentifier(name) { - var _this$getBinding; - return (_this$getBinding = this.getBinding(name)) == null ? void 0 : _this$getBinding.identifier; - } - - ; - _proto.getOwnBindingIdentifier = - function getOwnBindingIdentifier(name) { - var binding = this.bindings[name]; - return binding == null ? void 0 : binding.identifier; - }; - _proto.hasOwnBinding = function hasOwnBinding(name) { - return !!this.getOwnBinding(name); - }; - _proto.hasBinding = function hasBinding(name, noGlobals) { - if (!name) return false; - if (this.hasOwnBinding(name)) return true; - if (this.parentHasBinding(name, noGlobals)) return true; - if (this.hasUid(name)) return true; - if (!noGlobals && Scope.globals.includes(name)) return true; - if (!noGlobals && Scope.contextVariables.includes(name)) return true; - return false; - }; - _proto.parentHasBinding = function parentHasBinding(name, noGlobals) { - var _this$parent; - return (_this$parent = this.parent) == null ? void 0 : _this$parent.hasBinding(name, noGlobals); - } - - ; - _proto.moveBindingTo = - - function moveBindingTo(name, scope) { - var info = this.getBinding(name); - if (info) { - info.scope.removeOwnBinding(name); - info.scope = scope; - scope.bindings[name] = info; - } - }; - _proto.removeOwnBinding = function removeOwnBinding(name) { - delete this.bindings[name]; - }; - _proto.removeBinding = function removeBinding(name) { - var _this$getBinding2; - (_this$getBinding2 = this.getBinding(name)) == null ? void 0 : _this$getBinding2.scope.removeOwnBinding(name); - - var scope = this; - do { - if (scope.uids[name]) { - scope.uids[name] = false; - } - } while (scope = scope.parent); - }; - _createClass(Scope, [{ - key: "parent", - get: function get() { - var _parent; - var parent, - path = this.path; - do { - var shouldSkip = path.key === "key" || path.listKey === "decorators"; - path = path.parentPath; - if (shouldSkip && path.isMethod()) path = path.parentPath; - if (path && path.isScope()) parent = path; - } while (path && !parent); - return (_parent = parent) == null ? void 0 : _parent.scope; - } - }, { - key: "parentBlock", - get: function get() { - return this.path.parent; - } - }, { - key: "hub", - get: function get() { - return this.path.hub; - } - }]); - return Scope; - }(); - Scope$1.globals = Object.keys(globals.builtin); - Scope$1.contextVariables = ["arguments", "undefined", "Infinity", "NaN"]; - - var genMapping_umd = {exports: {}}; - - var setArray_umd = {exports: {}}; - - var hasRequiredSetArray_umd; - function requireSetArray_umd() { - if (hasRequiredSetArray_umd) return setArray_umd.exports; - hasRequiredSetArray_umd = 1; - (function (module, exports) { - (function (global, factory) { - factory(exports) ; - })(commonjsGlobal, function (exports) { - - exports.get = void 0; - exports.put = void 0; - exports.pop = void 0; - var SetArray = _createClass(function SetArray() { - this._indexes = { - __proto__: null - }; - this.array = []; - }); - (function () { - exports.get = function (strarr, key) { - return strarr._indexes[key]; - }; - exports.put = function (strarr, key) { - var index = exports.get(strarr, key); - if (index !== undefined) return index; - var array = strarr.array, - indexes = strarr._indexes; - return indexes[key] = array.push(key) - 1; - }; - exports.pop = function (strarr) { - var array = strarr.array, - indexes = strarr._indexes; - if (array.length === 0) return; - var last = array.pop(); - indexes[last] = undefined; - }; - })(); - exports.SetArray = SetArray; - Object.defineProperty(exports, '__esModule', { - value: true - }); - }); - })(setArray_umd, setArray_umd.exports); - return setArray_umd.exports; - } - - var lookup$1 = []; - var revLookup$1 = []; - var Arr$1 = typeof Uint8Array !== 'undefined' ? Uint8Array : Array; - var inited = false; - function init () { - inited = true; - var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - for (var i = 0, len = code.length; i < len; ++i) { - lookup$1[i] = code[i]; - revLookup$1[code.charCodeAt(i)] = i; - } - - revLookup$1['-'.charCodeAt(0)] = 62; - revLookup$1['_'.charCodeAt(0)] = 63; - } - - function toByteArray$1 (b64) { - if (!inited) { - init(); - } - var i, j, l, tmp, placeHolders, arr; - var len = b64.length; - - if (len % 4 > 0) { - throw new Error('Invalid string. Length must be a multiple of 4') - } - - // the number of equal signs (place holders) - // if there are two placeholders, than the two characters before it - // represent one byte - // if there is only one, then the three characters before it represent 2 bytes - // this is just a cheap hack to not do indexOf twice - placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0; - - // base64 is 4/3 + up to two characters of the original data - arr = new Arr$1(len * 3 / 4 - placeHolders); - - // if there are placeholders, only get up to the last complete 4 chars - l = placeHolders > 0 ? len - 4 : len; - - var L = 0; - - for (i = 0, j = 0; i < l; i += 4, j += 3) { - tmp = (revLookup$1[b64.charCodeAt(i)] << 18) | (revLookup$1[b64.charCodeAt(i + 1)] << 12) | (revLookup$1[b64.charCodeAt(i + 2)] << 6) | revLookup$1[b64.charCodeAt(i + 3)]; - arr[L++] = (tmp >> 16) & 0xFF; - arr[L++] = (tmp >> 8) & 0xFF; - arr[L++] = tmp & 0xFF; - } - - if (placeHolders === 2) { - tmp = (revLookup$1[b64.charCodeAt(i)] << 2) | (revLookup$1[b64.charCodeAt(i + 1)] >> 4); - arr[L++] = tmp & 0xFF; - } else if (placeHolders === 1) { - tmp = (revLookup$1[b64.charCodeAt(i)] << 10) | (revLookup$1[b64.charCodeAt(i + 1)] << 4) | (revLookup$1[b64.charCodeAt(i + 2)] >> 2); - arr[L++] = (tmp >> 8) & 0xFF; - arr[L++] = tmp & 0xFF; - } - - return arr - } - - function tripletToBase64$1 (num) { - return lookup$1[num >> 18 & 0x3F] + lookup$1[num >> 12 & 0x3F] + lookup$1[num >> 6 & 0x3F] + lookup$1[num & 0x3F] - } - - function encodeChunk$1 (uint8, start, end) { - var tmp; - var output = []; - for (var i = start; i < end; i += 3) { - tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]); - output.push(tripletToBase64$1(tmp)); - } - return output.join('') - } - - function fromByteArray$1 (uint8) { - if (!inited) { - init(); - } - var tmp; - var len = uint8.length; - var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes - var output = ''; - var parts = []; - var maxChunkLength = 16383; // must be multiple of 3 - - // go through the array every three bytes, we'll deal with trailing stuff later - for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { - parts.push(encodeChunk$1(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength))); - } - - // pad the end with zeros, but make sure to not forget the extra bytes - if (extraBytes === 1) { - tmp = uint8[len - 1]; - output += lookup$1[tmp >> 2]; - output += lookup$1[(tmp << 4) & 0x3F]; - output += '=='; - } else if (extraBytes === 2) { - tmp = (uint8[len - 2] << 8) + (uint8[len - 1]); - output += lookup$1[tmp >> 10]; - output += lookup$1[(tmp >> 4) & 0x3F]; - output += lookup$1[(tmp << 2) & 0x3F]; - output += '='; - } - - parts.push(output); - - return parts.join('') - } - - function read (buffer, offset, isLE, mLen, nBytes) { - var e, m; - var eLen = nBytes * 8 - mLen - 1; - var eMax = (1 << eLen) - 1; - var eBias = eMax >> 1; - var nBits = -7; - var i = isLE ? (nBytes - 1) : 0; - var d = isLE ? -1 : 1; - var s = buffer[offset + i]; - - i += d; - - e = s & ((1 << (-nBits)) - 1); - s >>= (-nBits); - nBits += eLen; - for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} - - m = e & ((1 << (-nBits)) - 1); - e >>= (-nBits); - nBits += mLen; - for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} - - if (e === 0) { - e = 1 - eBias; - } else if (e === eMax) { - return m ? NaN : ((s ? -1 : 1) * Infinity) - } else { - m = m + Math.pow(2, mLen); - e = e - eBias; - } - return (s ? -1 : 1) * m * Math.pow(2, e - mLen) - } - - function write (buffer, value, offset, isLE, mLen, nBytes) { - var e, m, c; - var eLen = nBytes * 8 - mLen - 1; - var eMax = (1 << eLen) - 1; - var eBias = eMax >> 1; - var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0); - var i = isLE ? 0 : (nBytes - 1); - var d = isLE ? 1 : -1; - var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0; - - value = Math.abs(value); - - if (isNaN(value) || value === Infinity) { - m = isNaN(value) ? 1 : 0; - e = eMax; - } else { - e = Math.floor(Math.log(value) / Math.LN2); - if (value * (c = Math.pow(2, -e)) < 1) { - e--; - c *= 2; - } - if (e + eBias >= 1) { - value += rt / c; - } else { - value += rt * Math.pow(2, 1 - eBias); - } - if (value * c >= 2) { - e++; - c /= 2; - } - - if (e + eBias >= eMax) { - m = 0; - e = eMax; - } else if (e + eBias >= 1) { - m = (value * c - 1) * Math.pow(2, mLen); - e = e + eBias; - } else { - m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); - e = 0; - } - } - - for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} - - e = (e << mLen) | m; - eLen += mLen; - for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} - - buffer[offset + i - d] |= s * 128; - } - - var toString = {}.toString; - - var isArray$1 = Array.isArray || function (arr) { - return toString.call(arr) == '[object Array]'; - }; - - /*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ - - var INSPECT_MAX_BYTES = 50; - - /** - * If `Buffer.TYPED_ARRAY_SUPPORT`: - * === true Use Uint8Array implementation (fastest) - * === false Use Object implementation (most compatible, even IE6) - * - * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, - * Opera 11.6+, iOS 4.2+. - * - * Due to various browser bugs, sometimes the Object implementation will be used even - * when the browser supports typed arrays. - * - * Note: - * - * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, - * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. - * - * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. - * - * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of - * incorrect length in some situations. - - * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they - * get the Object implementation, which is slower but behaves correctly. - */ - Buffer$1.TYPED_ARRAY_SUPPORT = global$1.TYPED_ARRAY_SUPPORT !== undefined - ? global$1.TYPED_ARRAY_SUPPORT - : true; - - /* - * Export kMaxLength after typed array support is determined. - */ - kMaxLength(); - - function kMaxLength () { - return Buffer$1.TYPED_ARRAY_SUPPORT - ? 0x7fffffff - : 0x3fffffff - } - - function createBuffer (that, length) { - if (kMaxLength() < length) { - throw new RangeError('Invalid typed array length') - } - if (Buffer$1.TYPED_ARRAY_SUPPORT) { - // Return an augmented `Uint8Array` instance, for best performance - that = new Uint8Array(length); - that.__proto__ = Buffer$1.prototype; - } else { - // Fallback: Return an object instance of the Buffer class - if (that === null) { - that = new Buffer$1(length); - } - that.length = length; - } - - return that - } - - /** - * The Buffer constructor returns instances of `Uint8Array` that have their - * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of - * `Uint8Array`, so the returned instances will have all the node `Buffer` methods - * and the `Uint8Array` methods. Square bracket notation works as expected -- it - * returns a single octet. - * - * The `Uint8Array` prototype remains unmodified. - */ - - function Buffer$1 (arg, encodingOrOffset, length) { - if (!Buffer$1.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer$1)) { - return new Buffer$1(arg, encodingOrOffset, length) - } - - // Common case. - if (typeof arg === 'number') { - if (typeof encodingOrOffset === 'string') { - throw new Error( - 'If encoding is specified then the first argument must be a string' - ) - } - return allocUnsafe(this, arg) - } - return from(this, arg, encodingOrOffset, length) - } - - Buffer$1.poolSize = 8192; // not used by this implementation - - // TODO: Legacy, not needed anymore. Remove in next major version. - Buffer$1._augment = function (arr) { - arr.__proto__ = Buffer$1.prototype; - return arr - }; - - function from (that, value, encodingOrOffset, length) { - if (typeof value === 'number') { - throw new TypeError('"value" argument must not be a number') - } - - if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { - return fromArrayBuffer(that, value, encodingOrOffset, length) - } - - if (typeof value === 'string') { - return fromString(that, value, encodingOrOffset) - } - - return fromObject(that, value) - } - - /** - * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError - * if value is a number. - * Buffer.from(str[, encoding]) - * Buffer.from(array) - * Buffer.from(buffer) - * Buffer.from(arrayBuffer[, byteOffset[, length]]) - **/ - Buffer$1.from = function (value, encodingOrOffset, length) { - return from(null, value, encodingOrOffset, length) - }; - - if (Buffer$1.TYPED_ARRAY_SUPPORT) { - Buffer$1.prototype.__proto__ = Uint8Array.prototype; - Buffer$1.__proto__ = Uint8Array; - } - - function assertSize (size) { - if (typeof size !== 'number') { - throw new TypeError('"size" argument must be a number') - } else if (size < 0) { - throw new RangeError('"size" argument must not be negative') - } - } - - function alloc (that, size, fill, encoding) { - assertSize(size); - if (size <= 0) { - return createBuffer(that, size) - } - if (fill !== undefined) { - // Only pay attention to encoding if it's a string. This - // prevents accidentally sending in a number that would - // be interpretted as a start offset. - return typeof encoding === 'string' - ? createBuffer(that, size).fill(fill, encoding) - : createBuffer(that, size).fill(fill) - } - return createBuffer(that, size) - } - - /** - * Creates a new filled Buffer instance. - * alloc(size[, fill[, encoding]]) - **/ - Buffer$1.alloc = function (size, fill, encoding) { - return alloc(null, size, fill, encoding) - }; - - function allocUnsafe (that, size) { - assertSize(size); - that = createBuffer(that, size < 0 ? 0 : checked(size) | 0); - if (!Buffer$1.TYPED_ARRAY_SUPPORT) { - for (var i = 0; i < size; ++i) { - that[i] = 0; - } - } - return that - } - - /** - * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. - * */ - Buffer$1.allocUnsafe = function (size) { - return allocUnsafe(null, size) - }; - /** - * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. - */ - Buffer$1.allocUnsafeSlow = function (size) { - return allocUnsafe(null, size) - }; - - function fromString (that, string, encoding) { - if (typeof encoding !== 'string' || encoding === '') { - encoding = 'utf8'; - } - - if (!Buffer$1.isEncoding(encoding)) { - throw new TypeError('"encoding" must be a valid string encoding') - } - - var length = byteLength$1(string, encoding) | 0; - that = createBuffer(that, length); - - var actual = that.write(string, encoding); - - if (actual !== length) { - // Writing a hex string, for example, that contains invalid characters will - // cause everything after the first invalid character to be ignored. (e.g. - // 'abxxcd' will be treated as 'ab') - that = that.slice(0, actual); - } - - return that - } - - function fromArrayLike (that, array) { - var length = array.length < 0 ? 0 : checked(array.length) | 0; - that = createBuffer(that, length); - for (var i = 0; i < length; i += 1) { - that[i] = array[i] & 255; - } - return that - } - - function fromArrayBuffer (that, array, byteOffset, length) { - array.byteLength; // this throws if `array` is not a valid ArrayBuffer - - if (byteOffset < 0 || array.byteLength < byteOffset) { - throw new RangeError('\'offset\' is out of bounds') - } - - if (array.byteLength < byteOffset + (length || 0)) { - throw new RangeError('\'length\' is out of bounds') - } - - if (byteOffset === undefined && length === undefined) { - array = new Uint8Array(array); - } else if (length === undefined) { - array = new Uint8Array(array, byteOffset); - } else { - array = new Uint8Array(array, byteOffset, length); - } - - if (Buffer$1.TYPED_ARRAY_SUPPORT) { - // Return an augmented `Uint8Array` instance, for best performance - that = array; - that.__proto__ = Buffer$1.prototype; - } else { - // Fallback: Return an object instance of the Buffer class - that = fromArrayLike(that, array); - } - return that - } - - function fromObject (that, obj) { - if (internalIsBuffer(obj)) { - var len = checked(obj.length) | 0; - that = createBuffer(that, len); - - if (that.length === 0) { - return that - } - - obj.copy(that, 0, 0, len); - return that - } - - if (obj) { - if ((typeof ArrayBuffer !== 'undefined' && - obj.buffer instanceof ArrayBuffer) || 'length' in obj) { - if (typeof obj.length !== 'number' || isnan(obj.length)) { - return createBuffer(that, 0) - } - return fromArrayLike(that, obj) - } - - if (obj.type === 'Buffer' && isArray$1(obj.data)) { - return fromArrayLike(that, obj.data) - } - } - - throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') - } - - function checked (length) { - // Note: cannot use `length < kMaxLength()` here because that fails when - // length is NaN (which is otherwise coerced to zero.) - if (length >= kMaxLength()) { - throw new RangeError('Attempt to allocate Buffer larger than maximum ' + - 'size: 0x' + kMaxLength().toString(16) + ' bytes') - } - return length | 0 - } - Buffer$1.isBuffer = isBuffer$1; - function internalIsBuffer (b) { - return !!(b != null && b._isBuffer) - } - - Buffer$1.compare = function compare (a, b) { - if (!internalIsBuffer(a) || !internalIsBuffer(b)) { - throw new TypeError('Arguments must be Buffers') - } - - if (a === b) return 0 - - var x = a.length; - var y = b.length; - - for (var i = 0, len = Math.min(x, y); i < len; ++i) { - if (a[i] !== b[i]) { - x = a[i]; - y = b[i]; - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 - }; - - Buffer$1.isEncoding = function isEncoding (encoding) { - switch (String(encoding).toLowerCase()) { - case 'hex': - case 'utf8': - case 'utf-8': - case 'ascii': - case 'latin1': - case 'binary': - case 'base64': - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return true - default: - return false - } - }; - - Buffer$1.concat = function concat (list, length) { - if (!isArray$1(list)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - - if (list.length === 0) { - return Buffer$1.alloc(0) - } - - var i; - if (length === undefined) { - length = 0; - for (i = 0; i < list.length; ++i) { - length += list[i].length; - } - } - - var buffer = Buffer$1.allocUnsafe(length); - var pos = 0; - for (i = 0; i < list.length; ++i) { - var buf = list[i]; - if (!internalIsBuffer(buf)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - buf.copy(buffer, pos); - pos += buf.length; - } - return buffer - }; - - function byteLength$1 (string, encoding) { - if (internalIsBuffer(string)) { - return string.length - } - if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && - (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { - return string.byteLength - } - if (typeof string !== 'string') { - string = '' + string; - } - - var len = string.length; - if (len === 0) return 0 - - // Use a for loop to avoid recursion - var loweredCase = false; - for (;;) { - switch (encoding) { - case 'ascii': - case 'latin1': - case 'binary': - return len - case 'utf8': - case 'utf-8': - case undefined: - return utf8ToBytes(string).length - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return len * 2 - case 'hex': - return len >>> 1 - case 'base64': - return base64ToBytes(string).length - default: - if (loweredCase) return utf8ToBytes(string).length // assume utf8 - encoding = ('' + encoding).toLowerCase(); - loweredCase = true; - } - } - } - Buffer$1.byteLength = byteLength$1; - - function slowToString (encoding, start, end) { - var loweredCase = false; - - // No need to verify that "this.length <= MAX_UINT32" since it's a read-only - // property of a typed array. - - // This behaves neither like String nor Uint8Array in that we set start/end - // to their upper/lower bounds if the value passed is out of range. - // undefined is handled specially as per ECMA-262 6th Edition, - // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. - if (start === undefined || start < 0) { - start = 0; - } - // Return early if start > this.length. Done here to prevent potential uint32 - // coercion fail below. - if (start > this.length) { - return '' - } - - if (end === undefined || end > this.length) { - end = this.length; - } - - if (end <= 0) { - return '' - } - - // Force coersion to uint32. This will also coerce falsey/NaN values to 0. - end >>>= 0; - start >>>= 0; - - if (end <= start) { - return '' - } - - if (!encoding) encoding = 'utf8'; - - while (true) { - switch (encoding) { - case 'hex': - return hexSlice(this, start, end) - - case 'utf8': - case 'utf-8': - return utf8Slice(this, start, end) - - case 'ascii': - return asciiSlice(this, start, end) - - case 'latin1': - case 'binary': - return latin1Slice(this, start, end) - - case 'base64': - return base64Slice(this, start, end) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return utf16leSlice(this, start, end) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = (encoding + '').toLowerCase(); - loweredCase = true; - } - } - } - - // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect - // Buffer instances. - Buffer$1.prototype._isBuffer = true; - - function swap (b, n, m) { - var i = b[n]; - b[n] = b[m]; - b[m] = i; - } - - Buffer$1.prototype.swap16 = function swap16 () { - var len = this.length; - if (len % 2 !== 0) { - throw new RangeError('Buffer size must be a multiple of 16-bits') - } - for (var i = 0; i < len; i += 2) { - swap(this, i, i + 1); - } - return this - }; - - Buffer$1.prototype.swap32 = function swap32 () { - var len = this.length; - if (len % 4 !== 0) { - throw new RangeError('Buffer size must be a multiple of 32-bits') - } - for (var i = 0; i < len; i += 4) { - swap(this, i, i + 3); - swap(this, i + 1, i + 2); - } - return this - }; - - Buffer$1.prototype.swap64 = function swap64 () { - var len = this.length; - if (len % 8 !== 0) { - throw new RangeError('Buffer size must be a multiple of 64-bits') - } - for (var i = 0; i < len; i += 8) { - swap(this, i, i + 7); - swap(this, i + 1, i + 6); - swap(this, i + 2, i + 5); - swap(this, i + 3, i + 4); - } - return this - }; - - Buffer$1.prototype.toString = function toString () { - var length = this.length | 0; - if (length === 0) return '' - if (arguments.length === 0) return utf8Slice(this, 0, length) - return slowToString.apply(this, arguments) - }; - - Buffer$1.prototype.equals = function equals (b) { - if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer') - if (this === b) return true - return Buffer$1.compare(this, b) === 0 - }; - - Buffer$1.prototype.inspect = function inspect () { - var str = ''; - var max = INSPECT_MAX_BYTES; - if (this.length > 0) { - str = this.toString('hex', 0, max).match(/.{2}/g).join(' '); - if (this.length > max) str += ' ... '; - } - return '' - }; - - Buffer$1.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { - if (!internalIsBuffer(target)) { - throw new TypeError('Argument must be a Buffer') - } - - if (start === undefined) { - start = 0; - } - if (end === undefined) { - end = target ? target.length : 0; - } - if (thisStart === undefined) { - thisStart = 0; - } - if (thisEnd === undefined) { - thisEnd = this.length; - } - - if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { - throw new RangeError('out of range index') - } - - if (thisStart >= thisEnd && start >= end) { - return 0 - } - if (thisStart >= thisEnd) { - return -1 - } - if (start >= end) { - return 1 - } - - start >>>= 0; - end >>>= 0; - thisStart >>>= 0; - thisEnd >>>= 0; - - if (this === target) return 0 - - var x = thisEnd - thisStart; - var y = end - start; - var len = Math.min(x, y); - - var thisCopy = this.slice(thisStart, thisEnd); - var targetCopy = target.slice(start, end); - - for (var i = 0; i < len; ++i) { - if (thisCopy[i] !== targetCopy[i]) { - x = thisCopy[i]; - y = targetCopy[i]; - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 - }; - - // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, - // OR the last index of `val` in `buffer` at offset <= `byteOffset`. - // - // Arguments: - // - buffer - a Buffer to search - // - val - a string, Buffer, or number - // - byteOffset - an index into `buffer`; will be clamped to an int32 - // - encoding - an optional encoding, relevant is val is a string - // - dir - true for indexOf, false for lastIndexOf - function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { - // Empty buffer means no match - if (buffer.length === 0) return -1 - - // Normalize byteOffset - if (typeof byteOffset === 'string') { - encoding = byteOffset; - byteOffset = 0; - } else if (byteOffset > 0x7fffffff) { - byteOffset = 0x7fffffff; - } else if (byteOffset < -0x80000000) { - byteOffset = -0x80000000; - } - byteOffset = +byteOffset; // Coerce to Number. - if (isNaN(byteOffset)) { - // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer - byteOffset = dir ? 0 : (buffer.length - 1); - } - - // Normalize byteOffset: negative offsets start from the end of the buffer - if (byteOffset < 0) byteOffset = buffer.length + byteOffset; - if (byteOffset >= buffer.length) { - if (dir) return -1 - else byteOffset = buffer.length - 1; - } else if (byteOffset < 0) { - if (dir) byteOffset = 0; - else return -1 - } - - // Normalize val - if (typeof val === 'string') { - val = Buffer$1.from(val, encoding); - } - - // Finally, search either indexOf (if dir is true) or lastIndexOf - if (internalIsBuffer(val)) { - // Special case: looking for empty string/buffer always fails - if (val.length === 0) { - return -1 - } - return arrayIndexOf(buffer, val, byteOffset, encoding, dir) - } else if (typeof val === 'number') { - val = val & 0xFF; // Search for a byte value [0-255] - if (Buffer$1.TYPED_ARRAY_SUPPORT && - typeof Uint8Array.prototype.indexOf === 'function') { - if (dir) { - return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) - } else { - return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) - } - } - return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) - } - - throw new TypeError('val must be string, number or Buffer') - } - - function arrayIndexOf (arr, val, byteOffset, encoding, dir) { - var indexSize = 1; - var arrLength = arr.length; - var valLength = val.length; - - if (encoding !== undefined) { - encoding = String(encoding).toLowerCase(); - if (encoding === 'ucs2' || encoding === 'ucs-2' || - encoding === 'utf16le' || encoding === 'utf-16le') { - if (arr.length < 2 || val.length < 2) { - return -1 - } - indexSize = 2; - arrLength /= 2; - valLength /= 2; - byteOffset /= 2; - } - } - - function read (buf, i) { - if (indexSize === 1) { - return buf[i] - } else { - return buf.readUInt16BE(i * indexSize) - } - } - - var i; - if (dir) { - var foundIndex = -1; - for (i = byteOffset; i < arrLength; i++) { - if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { - if (foundIndex === -1) foundIndex = i; - if (i - foundIndex + 1 === valLength) return foundIndex * indexSize - } else { - if (foundIndex !== -1) i -= i - foundIndex; - foundIndex = -1; - } - } - } else { - if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength; - for (i = byteOffset; i >= 0; i--) { - var found = true; - for (var j = 0; j < valLength; j++) { - if (read(arr, i + j) !== read(val, j)) { - found = false; - break - } - } - if (found) return i - } - } - - return -1 - } - - Buffer$1.prototype.includes = function includes (val, byteOffset, encoding) { - return this.indexOf(val, byteOffset, encoding) !== -1 - }; - - Buffer$1.prototype.indexOf = function indexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, true) - }; - - Buffer$1.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, false) - }; - - function hexWrite (buf, string, offset, length) { - offset = Number(offset) || 0; - var remaining = buf.length - offset; - if (!length) { - length = remaining; - } else { - length = Number(length); - if (length > remaining) { - length = remaining; - } - } - - // must be an even number of digits - var strLen = string.length; - if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') - - if (length > strLen / 2) { - length = strLen / 2; - } - for (var i = 0; i < length; ++i) { - var parsed = parseInt(string.substr(i * 2, 2), 16); - if (isNaN(parsed)) return i - buf[offset + i] = parsed; - } - return i - } - - function utf8Write (buf, string, offset, length) { - return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) - } - - function asciiWrite (buf, string, offset, length) { - return blitBuffer(asciiToBytes(string), buf, offset, length) - } - - function latin1Write (buf, string, offset, length) { - return asciiWrite(buf, string, offset, length) - } - - function base64Write (buf, string, offset, length) { - return blitBuffer(base64ToBytes(string), buf, offset, length) - } - - function ucs2Write (buf, string, offset, length) { - return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) - } - - Buffer$1.prototype.write = function write (string, offset, length, encoding) { - // Buffer#write(string) - if (offset === undefined) { - encoding = 'utf8'; - length = this.length; - offset = 0; - // Buffer#write(string, encoding) - } else if (length === undefined && typeof offset === 'string') { - encoding = offset; - length = this.length; - offset = 0; - // Buffer#write(string, offset[, length][, encoding]) - } else if (isFinite(offset)) { - offset = offset | 0; - if (isFinite(length)) { - length = length | 0; - if (encoding === undefined) encoding = 'utf8'; - } else { - encoding = length; - length = undefined; - } - // legacy write(string, encoding, offset, length) - remove in v0.13 - } else { - throw new Error( - 'Buffer.write(string, encoding, offset[, length]) is no longer supported' - ) - } - - var remaining = this.length - offset; - if (length === undefined || length > remaining) length = remaining; - - if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { - throw new RangeError('Attempt to write outside buffer bounds') - } - - if (!encoding) encoding = 'utf8'; - - var loweredCase = false; - for (;;) { - switch (encoding) { - case 'hex': - return hexWrite(this, string, offset, length) - - case 'utf8': - case 'utf-8': - return utf8Write(this, string, offset, length) - - case 'ascii': - return asciiWrite(this, string, offset, length) - - case 'latin1': - case 'binary': - return latin1Write(this, string, offset, length) - - case 'base64': - // Warning: maxLength not taken into account in base64Write - return base64Write(this, string, offset, length) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return ucs2Write(this, string, offset, length) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = ('' + encoding).toLowerCase(); - loweredCase = true; - } - } - }; - - Buffer$1.prototype.toJSON = function toJSON () { - return { - type: 'Buffer', - data: Array.prototype.slice.call(this._arr || this, 0) - } - }; - - function base64Slice (buf, start, end) { - if (start === 0 && end === buf.length) { - return fromByteArray$1(buf) - } else { - return fromByteArray$1(buf.slice(start, end)) - } - } - - function utf8Slice (buf, start, end) { - end = Math.min(buf.length, end); - var res = []; - - var i = start; - while (i < end) { - var firstByte = buf[i]; - var codePoint = null; - var bytesPerSequence = (firstByte > 0xEF) ? 4 - : (firstByte > 0xDF) ? 3 - : (firstByte > 0xBF) ? 2 - : 1; - - if (i + bytesPerSequence <= end) { - var secondByte, thirdByte, fourthByte, tempCodePoint; - - switch (bytesPerSequence) { - case 1: - if (firstByte < 0x80) { - codePoint = firstByte; - } - break - case 2: - secondByte = buf[i + 1]; - if ((secondByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F); - if (tempCodePoint > 0x7F) { - codePoint = tempCodePoint; - } - } - break - case 3: - secondByte = buf[i + 1]; - thirdByte = buf[i + 2]; - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F); - if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { - codePoint = tempCodePoint; - } - } - break - case 4: - secondByte = buf[i + 1]; - thirdByte = buf[i + 2]; - fourthByte = buf[i + 3]; - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F); - if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { - codePoint = tempCodePoint; - } - } - } - } - - if (codePoint === null) { - // we did not generate a valid codePoint so insert a - // replacement char (U+FFFD) and advance only 1 byte - codePoint = 0xFFFD; - bytesPerSequence = 1; - } else if (codePoint > 0xFFFF) { - // encode to utf16 (surrogate pair dance) - codePoint -= 0x10000; - res.push(codePoint >>> 10 & 0x3FF | 0xD800); - codePoint = 0xDC00 | codePoint & 0x3FF; - } - - res.push(codePoint); - i += bytesPerSequence; - } - - return decodeCodePointsArray(res) - } - - // Based on http://stackoverflow.com/a/22747272/680742, the browser with - // the lowest limit is Chrome, with 0x10000 args. - // We go 1 magnitude less, for safety - var MAX_ARGUMENTS_LENGTH = 0x1000; - - function decodeCodePointsArray (codePoints) { - var len = codePoints.length; - if (len <= MAX_ARGUMENTS_LENGTH) { - return String.fromCharCode.apply(String, codePoints) // avoid extra slice() - } - - // Decode in chunks to avoid "call stack size exceeded". - var res = ''; - var i = 0; - while (i < len) { - res += String.fromCharCode.apply( - String, - codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) - ); - } - return res - } - - function asciiSlice (buf, start, end) { - var ret = ''; - end = Math.min(buf.length, end); - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i] & 0x7F); - } - return ret - } - - function latin1Slice (buf, start, end) { - var ret = ''; - end = Math.min(buf.length, end); - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i]); - } - return ret - } - - function hexSlice (buf, start, end) { - var len = buf.length; - - if (!start || start < 0) start = 0; - if (!end || end < 0 || end > len) end = len; - - var out = ''; - for (var i = start; i < end; ++i) { - out += toHex(buf[i]); - } - return out - } - - function utf16leSlice (buf, start, end) { - var bytes = buf.slice(start, end); - var res = ''; - for (var i = 0; i < bytes.length; i += 2) { - res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256); - } - return res - } - - Buffer$1.prototype.slice = function slice (start, end) { - var len = this.length; - start = ~~start; - end = end === undefined ? len : ~~end; - - if (start < 0) { - start += len; - if (start < 0) start = 0; - } else if (start > len) { - start = len; - } - - if (end < 0) { - end += len; - if (end < 0) end = 0; - } else if (end > len) { - end = len; - } - - if (end < start) end = start; - - var newBuf; - if (Buffer$1.TYPED_ARRAY_SUPPORT) { - newBuf = this.subarray(start, end); - newBuf.__proto__ = Buffer$1.prototype; - } else { - var sliceLen = end - start; - newBuf = new Buffer$1(sliceLen, undefined); - for (var i = 0; i < sliceLen; ++i) { - newBuf[i] = this[i + start]; - } - } - - return newBuf - }; - - /* - * Need to make sure that buffer isn't trying to write out of bounds. - */ - function checkOffset (offset, ext, length) { - if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') - if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') - } - - Buffer$1.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { - offset = offset | 0; - byteLength = byteLength | 0; - if (!noAssert) checkOffset(offset, byteLength, this.length); - - var val = this[offset]; - var mul = 1; - var i = 0; - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul; - } - - return val - }; - - Buffer$1.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { - offset = offset | 0; - byteLength = byteLength | 0; - if (!noAssert) { - checkOffset(offset, byteLength, this.length); - } - - var val = this[offset + --byteLength]; - var mul = 1; - while (byteLength > 0 && (mul *= 0x100)) { - val += this[offset + --byteLength] * mul; - } - - return val - }; - - Buffer$1.prototype.readUInt8 = function readUInt8 (offset, noAssert) { - if (!noAssert) checkOffset(offset, 1, this.length); - return this[offset] - }; - - Buffer$1.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length); - return this[offset] | (this[offset + 1] << 8) - }; - - Buffer$1.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length); - return (this[offset] << 8) | this[offset + 1] - }; - - Buffer$1.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length); - - return ((this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16)) + - (this[offset + 3] * 0x1000000) - }; - - Buffer$1.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length); - - return (this[offset] * 0x1000000) + - ((this[offset + 1] << 16) | - (this[offset + 2] << 8) | - this[offset + 3]) - }; - - Buffer$1.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { - offset = offset | 0; - byteLength = byteLength | 0; - if (!noAssert) checkOffset(offset, byteLength, this.length); - - var val = this[offset]; - var mul = 1; - var i = 0; - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul; - } - mul *= 0x80; - - if (val >= mul) val -= Math.pow(2, 8 * byteLength); - - return val - }; - - Buffer$1.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { - offset = offset | 0; - byteLength = byteLength | 0; - if (!noAssert) checkOffset(offset, byteLength, this.length); - - var i = byteLength; - var mul = 1; - var val = this[offset + --i]; - while (i > 0 && (mul *= 0x100)) { - val += this[offset + --i] * mul; - } - mul *= 0x80; - - if (val >= mul) val -= Math.pow(2, 8 * byteLength); - - return val - }; - - Buffer$1.prototype.readInt8 = function readInt8 (offset, noAssert) { - if (!noAssert) checkOffset(offset, 1, this.length); - if (!(this[offset] & 0x80)) return (this[offset]) - return ((0xff - this[offset] + 1) * -1) - }; - - Buffer$1.prototype.readInt16LE = function readInt16LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length); - var val = this[offset] | (this[offset + 1] << 8); - return (val & 0x8000) ? val | 0xFFFF0000 : val - }; - - Buffer$1.prototype.readInt16BE = function readInt16BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length); - var val = this[offset + 1] | (this[offset] << 8); - return (val & 0x8000) ? val | 0xFFFF0000 : val - }; - - Buffer$1.prototype.readInt32LE = function readInt32LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length); - - return (this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16) | - (this[offset + 3] << 24) - }; - - Buffer$1.prototype.readInt32BE = function readInt32BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length); - - return (this[offset] << 24) | - (this[offset + 1] << 16) | - (this[offset + 2] << 8) | - (this[offset + 3]) - }; - - Buffer$1.prototype.readFloatLE = function readFloatLE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length); - return read(this, offset, true, 23, 4) - }; - - Buffer$1.prototype.readFloatBE = function readFloatBE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length); - return read(this, offset, false, 23, 4) - }; - - Buffer$1.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 8, this.length); - return read(this, offset, true, 52, 8) - }; - - Buffer$1.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 8, this.length); - return read(this, offset, false, 52, 8) - }; - - function checkInt (buf, value, offset, ext, max, min) { - if (!internalIsBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') - if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') - if (offset + ext > buf.length) throw new RangeError('Index out of range') - } - - Buffer$1.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { - value = +value; - offset = offset | 0; - byteLength = byteLength | 0; - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1; - checkInt(this, value, offset, byteLength, maxBytes, 0); - } - - var mul = 1; - var i = 0; - this[offset] = value & 0xFF; - while (++i < byteLength && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF; - } - - return offset + byteLength - }; - - Buffer$1.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { - value = +value; - offset = offset | 0; - byteLength = byteLength | 0; - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1; - checkInt(this, value, offset, byteLength, maxBytes, 0); - } - - var i = byteLength - 1; - var mul = 1; - this[offset + i] = value & 0xFF; - while (--i >= 0 && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF; - } - - return offset + byteLength - }; - - Buffer$1.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0); - if (!Buffer$1.TYPED_ARRAY_SUPPORT) value = Math.floor(value); - this[offset] = (value & 0xff); - return offset + 1 - }; - - function objectWriteUInt16 (buf, value, offset, littleEndian) { - if (value < 0) value = 0xffff + value + 1; - for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { - buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> - (littleEndian ? i : 1 - i) * 8; - } - } - - Buffer$1.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0); - if (Buffer$1.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff); - this[offset + 1] = (value >>> 8); - } else { - objectWriteUInt16(this, value, offset, true); - } - return offset + 2 - }; - - Buffer$1.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0); - if (Buffer$1.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 8); - this[offset + 1] = (value & 0xff); - } else { - objectWriteUInt16(this, value, offset, false); - } - return offset + 2 - }; - - function objectWriteUInt32 (buf, value, offset, littleEndian) { - if (value < 0) value = 0xffffffff + value + 1; - for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { - buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff; - } - } - - Buffer$1.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0); - if (Buffer$1.TYPED_ARRAY_SUPPORT) { - this[offset + 3] = (value >>> 24); - this[offset + 2] = (value >>> 16); - this[offset + 1] = (value >>> 8); - this[offset] = (value & 0xff); - } else { - objectWriteUInt32(this, value, offset, true); - } - return offset + 4 - }; - - Buffer$1.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0); - if (Buffer$1.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 24); - this[offset + 1] = (value >>> 16); - this[offset + 2] = (value >>> 8); - this[offset + 3] = (value & 0xff); - } else { - objectWriteUInt32(this, value, offset, false); - } - return offset + 4 - }; - - Buffer$1.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength - 1); - - checkInt(this, value, offset, byteLength, limit - 1, -limit); - } - - var i = 0; - var mul = 1; - var sub = 0; - this[offset] = value & 0xFF; - while (++i < byteLength && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { - sub = 1; - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF; - } - - return offset + byteLength - }; - - Buffer$1.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength - 1); - - checkInt(this, value, offset, byteLength, limit - 1, -limit); - } - - var i = byteLength - 1; - var mul = 1; - var sub = 0; - this[offset + i] = value & 0xFF; - while (--i >= 0 && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { - sub = 1; - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF; - } - - return offset + byteLength - }; - - Buffer$1.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80); - if (!Buffer$1.TYPED_ARRAY_SUPPORT) value = Math.floor(value); - if (value < 0) value = 0xff + value + 1; - this[offset] = (value & 0xff); - return offset + 1 - }; - - Buffer$1.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000); - if (Buffer$1.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff); - this[offset + 1] = (value >>> 8); - } else { - objectWriteUInt16(this, value, offset, true); - } - return offset + 2 - }; - - Buffer$1.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000); - if (Buffer$1.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 8); - this[offset + 1] = (value & 0xff); - } else { - objectWriteUInt16(this, value, offset, false); - } - return offset + 2 - }; - - Buffer$1.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000); - if (Buffer$1.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff); - this[offset + 1] = (value >>> 8); - this[offset + 2] = (value >>> 16); - this[offset + 3] = (value >>> 24); - } else { - objectWriteUInt32(this, value, offset, true); - } - return offset + 4 - }; - - Buffer$1.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { - value = +value; - offset = offset | 0; - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000); - if (value < 0) value = 0xffffffff + value + 1; - if (Buffer$1.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 24); - this[offset + 1] = (value >>> 16); - this[offset + 2] = (value >>> 8); - this[offset + 3] = (value & 0xff); - } else { - objectWriteUInt32(this, value, offset, false); - } - return offset + 4 - }; - - function checkIEEE754 (buf, value, offset, ext, max, min) { - if (offset + ext > buf.length) throw new RangeError('Index out of range') - if (offset < 0) throw new RangeError('Index out of range') - } - - function writeFloat (buf, value, offset, littleEndian, noAssert) { - if (!noAssert) { - checkIEEE754(buf, value, offset, 4); - } - write(buf, value, offset, littleEndian, 23, 4); - return offset + 4 - } - - Buffer$1.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { - return writeFloat(this, value, offset, true, noAssert) - }; - - Buffer$1.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { - return writeFloat(this, value, offset, false, noAssert) - }; - - function writeDouble (buf, value, offset, littleEndian, noAssert) { - if (!noAssert) { - checkIEEE754(buf, value, offset, 8); - } - write(buf, value, offset, littleEndian, 52, 8); - return offset + 8 - } - - Buffer$1.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { - return writeDouble(this, value, offset, true, noAssert) - }; - - Buffer$1.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { - return writeDouble(this, value, offset, false, noAssert) - }; - - // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) - Buffer$1.prototype.copy = function copy (target, targetStart, start, end) { - if (!start) start = 0; - if (!end && end !== 0) end = this.length; - if (targetStart >= target.length) targetStart = target.length; - if (!targetStart) targetStart = 0; - if (end > 0 && end < start) end = start; - - // Copy 0 bytes; we're done - if (end === start) return 0 - if (target.length === 0 || this.length === 0) return 0 - - // Fatal error conditions - if (targetStart < 0) { - throw new RangeError('targetStart out of bounds') - } - if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') - if (end < 0) throw new RangeError('sourceEnd out of bounds') - - // Are we oob? - if (end > this.length) end = this.length; - if (target.length - targetStart < end - start) { - end = target.length - targetStart + start; - } - - var len = end - start; - var i; - - if (this === target && start < targetStart && targetStart < end) { - // descending copy from end - for (i = len - 1; i >= 0; --i) { - target[i + targetStart] = this[i + start]; - } - } else if (len < 1000 || !Buffer$1.TYPED_ARRAY_SUPPORT) { - // ascending copy from start - for (i = 0; i < len; ++i) { - target[i + targetStart] = this[i + start]; - } - } else { - Uint8Array.prototype.set.call( - target, - this.subarray(start, start + len), - targetStart - ); - } - - return len - }; - - // Usage: - // buffer.fill(number[, offset[, end]]) - // buffer.fill(buffer[, offset[, end]]) - // buffer.fill(string[, offset[, end]][, encoding]) - Buffer$1.prototype.fill = function fill (val, start, end, encoding) { - // Handle string cases: - if (typeof val === 'string') { - if (typeof start === 'string') { - encoding = start; - start = 0; - end = this.length; - } else if (typeof end === 'string') { - encoding = end; - end = this.length; - } - if (val.length === 1) { - var code = val.charCodeAt(0); - if (code < 256) { - val = code; - } - } - if (encoding !== undefined && typeof encoding !== 'string') { - throw new TypeError('encoding must be a string') - } - if (typeof encoding === 'string' && !Buffer$1.isEncoding(encoding)) { - throw new TypeError('Unknown encoding: ' + encoding) - } - } else if (typeof val === 'number') { - val = val & 255; - } - - // Invalid ranges are not set to a default, so can range check early. - if (start < 0 || this.length < start || this.length < end) { - throw new RangeError('Out of range index') - } - - if (end <= start) { - return this - } - - start = start >>> 0; - end = end === undefined ? this.length : end >>> 0; - - if (!val) val = 0; - - var i; - if (typeof val === 'number') { - for (i = start; i < end; ++i) { - this[i] = val; - } - } else { - var bytes = internalIsBuffer(val) - ? val - : utf8ToBytes(new Buffer$1(val, encoding).toString()); - var len = bytes.length; - for (i = 0; i < end - start; ++i) { - this[i + start] = bytes[i % len]; - } - } - - return this - }; - - // HELPER FUNCTIONS - // ================ - - var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g; - - function base64clean (str) { - // Node strips out invalid characters like \n and \t from the string, base64-js does not - str = stringtrim(str).replace(INVALID_BASE64_RE, ''); - // Node converts strings with length < 2 to '' - if (str.length < 2) return '' - // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not - while (str.length % 4 !== 0) { - str = str + '='; - } - return str - } - - function stringtrim (str) { - if (str.trim) return str.trim() - return str.replace(/^\s+|\s+$/g, '') - } - - function toHex (n) { - if (n < 16) return '0' + n.toString(16) - return n.toString(16) - } - - function utf8ToBytes (string, units) { - units = units || Infinity; - var codePoint; - var length = string.length; - var leadSurrogate = null; - var bytes = []; - - for (var i = 0; i < length; ++i) { - codePoint = string.charCodeAt(i); - - // is surrogate component - if (codePoint > 0xD7FF && codePoint < 0xE000) { - // last char was a lead - if (!leadSurrogate) { - // no lead yet - if (codePoint > 0xDBFF) { - // unexpected trail - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); - continue - } else if (i + 1 === length) { - // unpaired lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); - continue - } - - // valid lead - leadSurrogate = codePoint; - - continue - } - - // 2 leads in a row - if (codePoint < 0xDC00) { - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); - leadSurrogate = codePoint; - continue - } - - // valid surrogate pair - codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000; - } else if (leadSurrogate) { - // valid bmp char, but last char was a lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); - } - - leadSurrogate = null; - - // encode utf8 - if (codePoint < 0x80) { - if ((units -= 1) < 0) break - bytes.push(codePoint); - } else if (codePoint < 0x800) { - if ((units -= 2) < 0) break - bytes.push( - codePoint >> 0x6 | 0xC0, - codePoint & 0x3F | 0x80 - ); - } else if (codePoint < 0x10000) { - if ((units -= 3) < 0) break - bytes.push( - codePoint >> 0xC | 0xE0, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ); - } else if (codePoint < 0x110000) { - if ((units -= 4) < 0) break - bytes.push( - codePoint >> 0x12 | 0xF0, - codePoint >> 0xC & 0x3F | 0x80, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ); - } else { - throw new Error('Invalid code point') - } - } - - return bytes - } - - function asciiToBytes (str) { - var byteArray = []; - for (var i = 0; i < str.length; ++i) { - // Node's code seems to be doing this and not & 0x7F.. - byteArray.push(str.charCodeAt(i) & 0xFF); - } - return byteArray - } - - function utf16leToBytes (str, units) { - var c, hi, lo; - var byteArray = []; - for (var i = 0; i < str.length; ++i) { - if ((units -= 2) < 0) break - - c = str.charCodeAt(i); - hi = c >> 8; - lo = c % 256; - byteArray.push(lo); - byteArray.push(hi); - } - - return byteArray - } - - - function base64ToBytes (str) { - return toByteArray$1(base64clean(str)) - } - - function blitBuffer (src, dst, offset, length) { - for (var i = 0; i < length; ++i) { - if ((i + offset >= dst.length) || (i >= src.length)) break - dst[i + offset] = src[i]; - } - return i - } - - function isnan (val) { - return val !== val // eslint-disable-line no-self-compare - } - - - // the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence - // The _isBuffer check is for Safari 5-7 support, because it's missing - // Object.prototype.constructor. Remove this eventually - function isBuffer$1(obj) { - return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj)) - } - - function isFastBuffer (obj) { - return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) - } - - // For Node v0.10 support. Remove this eventually. - function isSlowBuffer (obj) { - return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0)) - } - - var sourcemapCodec_umd = {exports: {}}; - - var hasRequiredSourcemapCodec_umd; - function requireSourcemapCodec_umd() { - if (hasRequiredSourcemapCodec_umd) return sourcemapCodec_umd.exports; - hasRequiredSourcemapCodec_umd = 1; - (function (module, exports) { - (function (global, factory) { - factory(exports) ; - })(commonjsGlobal, function (exports) { - - var comma = ','.charCodeAt(0); - var semicolon = ';'.charCodeAt(0); - var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - var intToChar = new Uint8Array(64); - var charToInt = new Uint8Array(128); - for (var i = 0; i < chars.length; i++) { - var c = chars.charCodeAt(i); - intToChar[i] = c; - charToInt[c] = i; - } - var td = typeof TextDecoder !== 'undefined' ? new TextDecoder() : typeof Buffer$1 !== 'undefined' ? { - decode: function decode(buf) { - var out = Buffer$1.from(buf.buffer, buf.byteOffset, buf.byteLength); - return out.toString(); - } - } : { - decode: function decode(buf) { - var out = ''; - for (var _i = 0; _i < buf.length; _i++) { - out += String.fromCharCode(buf[_i]); - } - return out; - } - }; - function decode(mappings) { - var state = new Int32Array(5); - var decoded = []; - var index = 0; - do { - var semi = indexOf(mappings, index); - var line = []; - var sorted = true; - var lastCol = 0; - state[0] = 0; - for (var _i2 = index; _i2 < semi; _i2++) { - var seg = void 0; - _i2 = decodeInteger(mappings, _i2, state, 0); - var col = state[0]; - if (col < lastCol) sorted = false; - lastCol = col; - if (hasMoreVlq(mappings, _i2, semi)) { - _i2 = decodeInteger(mappings, _i2, state, 1); - _i2 = decodeInteger(mappings, _i2, state, 2); - _i2 = decodeInteger(mappings, _i2, state, 3); - if (hasMoreVlq(mappings, _i2, semi)) { - _i2 = decodeInteger(mappings, _i2, state, 4); - seg = [col, state[1], state[2], state[3], state[4]]; - } else { - seg = [col, state[1], state[2], state[3]]; - } - } else { - seg = [col]; - } - line.push(seg); - } - if (!sorted) sort(line); - decoded.push(line); - index = semi + 1; - } while (index <= mappings.length); - return decoded; - } - function indexOf(mappings, index) { - var idx = mappings.indexOf(';', index); - return idx === -1 ? mappings.length : idx; - } - function decodeInteger(mappings, pos, state, j) { - var value = 0; - var shift = 0; - var integer = 0; - do { - var _c = mappings.charCodeAt(pos++); - integer = charToInt[_c]; - value |= (integer & 31) << shift; - shift += 5; - } while (integer & 32); - var shouldNegate = value & 1; - value >>>= 1; - if (shouldNegate) { - value = -0x80000000 | -value; - } - state[j] += value; - return pos; - } - function hasMoreVlq(mappings, i, length) { - if (i >= length) return false; - return mappings.charCodeAt(i) !== comma; - } - function sort(line) { - line.sort(sortComparator); - } - function sortComparator(a, b) { - return a[0] - b[0]; - } - function encode(decoded) { - var state = new Int32Array(5); - var bufLength = 1024 * 16; - var subLength = bufLength - 36; - var buf = new Uint8Array(bufLength); - var sub = buf.subarray(0, subLength); - var pos = 0; - var out = ''; - for (var _i3 = 0; _i3 < decoded.length; _i3++) { - var line = decoded[_i3]; - if (_i3 > 0) { - if (pos === bufLength) { - out += td.decode(buf); - pos = 0; - } - buf[pos++] = semicolon; - } - if (line.length === 0) continue; - state[0] = 0; - for (var j = 0; j < line.length; j++) { - var segment = line[j]; - if (pos > subLength) { - out += td.decode(sub); - buf.copyWithin(0, subLength, pos); - pos -= subLength; - } - if (j > 0) buf[pos++] = comma; - pos = encodeInteger(buf, pos, state, segment, 0); - if (segment.length === 1) continue; - pos = encodeInteger(buf, pos, state, segment, 1); - pos = encodeInteger(buf, pos, state, segment, 2); - pos = encodeInteger(buf, pos, state, segment, 3); - if (segment.length === 4) continue; - pos = encodeInteger(buf, pos, state, segment, 4); - } - } - - return out + td.decode(buf.subarray(0, pos)); - } - function encodeInteger(buf, pos, state, segment, j) { - var next = segment[j]; - var num = next - state[j]; - state[j] = next; - num = num < 0 ? -num << 1 | 1 : num << 1; - do { - var clamped = num & 31; - num >>>= 5; - if (num > 0) clamped |= 32; - buf[pos++] = intToChar[clamped]; - } while (num > 0); - return pos; - } - exports.decode = decode; - exports.encode = encode; - Object.defineProperty(exports, '__esModule', { - value: true - }); - }); - })(sourcemapCodec_umd, sourcemapCodec_umd.exports); - return sourcemapCodec_umd.exports; - } - - var traceMapping_umd = {exports: {}}; - - var resolveUri_umd = {exports: {}}; - - var hasRequiredResolveUri_umd; - function requireResolveUri_umd() { - if (hasRequiredResolveUri_umd) return resolveUri_umd.exports; - hasRequiredResolveUri_umd = 1; - (function (module, exports) { - (function (global, factory) { - module.exports = factory() ; - })(commonjsGlobal, function () { - - var schemeRegex = /^[\w+.-]+:\/\//; - var urlRegex = /^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/; - var fileRegex = /^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i; - var UrlType; - (function (UrlType) { - UrlType[UrlType["Empty"] = 1] = "Empty"; - UrlType[UrlType["Hash"] = 2] = "Hash"; - UrlType[UrlType["Query"] = 3] = "Query"; - UrlType[UrlType["RelativePath"] = 4] = "RelativePath"; - UrlType[UrlType["AbsolutePath"] = 5] = "AbsolutePath"; - UrlType[UrlType["SchemeRelative"] = 6] = "SchemeRelative"; - UrlType[UrlType["Absolute"] = 7] = "Absolute"; - })(UrlType || (UrlType = {})); - function isAbsoluteUrl(input) { - return schemeRegex.test(input); - } - function isSchemeRelativeUrl(input) { - return input.startsWith('//'); - } - function isAbsolutePath(input) { - return input.startsWith('/'); - } - function isFileUrl(input) { - return input.startsWith('file:'); - } - function isRelative(input) { - return /^[.?#]/.test(input); - } - function parseAbsoluteUrl(input) { - var match = urlRegex.exec(input); - return makeUrl(match[1], match[2] || '', match[3], match[4] || '', match[5] || '/', match[6] || '', match[7] || ''); - } - function parseFileUrl(input) { - var match = fileRegex.exec(input); - var path = match[2]; - return makeUrl('file:', '', match[1] || '', '', isAbsolutePath(path) ? path : '/' + path, match[3] || '', match[4] || ''); - } - function makeUrl(scheme, user, host, port, path, query, hash) { - return { - scheme: scheme, - user: user, - host: host, - port: port, - path: path, - query: query, - hash: hash, - type: UrlType.Absolute - }; - } - function parseUrl(input) { - if (isSchemeRelativeUrl(input)) { - var _url = parseAbsoluteUrl('http:' + input); - _url.scheme = ''; - _url.type = UrlType.SchemeRelative; - return _url; - } - if (isAbsolutePath(input)) { - var _url2 = parseAbsoluteUrl('http://foo.com' + input); - _url2.scheme = ''; - _url2.host = ''; - _url2.type = UrlType.AbsolutePath; - return _url2; - } - if (isFileUrl(input)) return parseFileUrl(input); - if (isAbsoluteUrl(input)) return parseAbsoluteUrl(input); - var url = parseAbsoluteUrl('http://foo.com/' + input); - url.scheme = ''; - url.host = ''; - url.type = input ? input.startsWith('?') ? UrlType.Query : input.startsWith('#') ? UrlType.Hash : UrlType.RelativePath : UrlType.Empty; - return url; - } - function stripPathFilename(path) { - if (path.endsWith('/..')) return path; - var index = path.lastIndexOf('/'); - return path.slice(0, index + 1); - } - function mergePaths(url, base) { - normalizePath(base, base.type); - if (url.path === '/') { - url.path = base.path; - } else { - url.path = stripPathFilename(base.path) + url.path; - } - } - function normalizePath(url, type) { - var rel = type <= UrlType.RelativePath; - var pieces = url.path.split('/'); - var pointer = 1; - var positive = 0; - var addTrailingSlash = false; - for (var i = 1; i < pieces.length; i++) { - var piece = pieces[i]; - if (!piece) { - addTrailingSlash = true; - continue; - } - addTrailingSlash = false; - if (piece === '.') continue; - if (piece === '..') { - if (positive) { - addTrailingSlash = true; - positive--; - pointer--; - } else if (rel) { - pieces[pointer++] = piece; - } - continue; - } - pieces[pointer++] = piece; - positive++; - } - var path = ''; - for (var _i = 1; _i < pointer; _i++) { - path += '/' + pieces[_i]; - } - if (!path || addTrailingSlash && !path.endsWith('/..')) { - path += '/'; - } - url.path = path; - } - function resolve(input, base) { - if (!input && !base) return ''; - var url = parseUrl(input); - var inputType = url.type; - if (base && inputType !== UrlType.Absolute) { - var baseUrl = parseUrl(base); - var baseType = baseUrl.type; - switch (inputType) { - case UrlType.Empty: - url.hash = baseUrl.hash; - case UrlType.Hash: - url.query = baseUrl.query; - case UrlType.Query: - case UrlType.RelativePath: - mergePaths(url, baseUrl); - case UrlType.AbsolutePath: - url.user = baseUrl.user; - url.host = baseUrl.host; - url.port = baseUrl.port; - case UrlType.SchemeRelative: - url.scheme = baseUrl.scheme; - } - if (baseType > inputType) inputType = baseType; - } - normalizePath(url, inputType); - var queryHash = url.query + url.hash; - switch (inputType) { - case UrlType.Hash: - case UrlType.Query: - return queryHash; - case UrlType.RelativePath: - { - var path = url.path.slice(1); - if (!path) return queryHash || '.'; - if (isRelative(base || input) && !isRelative(path)) { - return './' + path + queryHash; - } - return path + queryHash; - } - case UrlType.AbsolutePath: - return url.path + queryHash; - default: - return url.scheme + '//' + url.user + url.host + url.port + url.path + queryHash; - } - } - return resolve; - }); - })(resolveUri_umd); - return resolveUri_umd.exports; - } - - var hasRequiredTraceMapping_umd; - function requireTraceMapping_umd() { - if (hasRequiredTraceMapping_umd) return traceMapping_umd.exports; - hasRequiredTraceMapping_umd = 1; - (function (module, exports) { - (function (global, factory) { - factory(exports, requireSourcemapCodec_umd(), requireResolveUri_umd()) ; - })(commonjsGlobal, function (exports, sourcemapCodec, resolveUri) { - - function _interopDefaultLegacy(e) { - return e && typeof e === 'object' && 'default' in e ? e : { - 'default': e - }; - } - var resolveUri__default = _interopDefaultLegacy(resolveUri); - function resolve(input, base) { - if (base && !base.endsWith('/')) base += '/'; - return resolveUri__default["default"](input, base); - } - - function stripFilename(path) { - if (!path) return ''; - var index = path.lastIndexOf('/'); - return path.slice(0, index + 1); - } - var COLUMN = 0; - var SOURCES_INDEX = 1; - var SOURCE_LINE = 2; - var SOURCE_COLUMN = 3; - var NAMES_INDEX = 4; - var REV_GENERATED_LINE = 1; - var REV_GENERATED_COLUMN = 2; - function maybeSort(mappings, owned) { - var unsortedIndex = nextUnsortedSegmentLine(mappings, 0); - if (unsortedIndex === mappings.length) return mappings; - if (!owned) mappings = mappings.slice(); - for (var i = unsortedIndex; i < mappings.length; i = nextUnsortedSegmentLine(mappings, i + 1)) { - mappings[i] = sortSegments(mappings[i], owned); - } - return mappings; - } - function nextUnsortedSegmentLine(mappings, start) { - for (var i = start; i < mappings.length; i++) { - if (!isSorted(mappings[i])) return i; - } - return mappings.length; - } - function isSorted(line) { - for (var j = 1; j < line.length; j++) { - if (line[j][COLUMN] < line[j - 1][COLUMN]) { - return false; - } - } - return true; - } - function sortSegments(line, owned) { - if (!owned) line = line.slice(); - return line.sort(sortComparator); - } - function sortComparator(a, b) { - return a[COLUMN] - b[COLUMN]; - } - var found = false; - function binarySearch(haystack, needle, low, high) { - while (low <= high) { - var mid = low + (high - low >> 1); - var cmp = haystack[mid][COLUMN] - needle; - if (cmp === 0) { - found = true; - return mid; - } - if (cmp < 0) { - low = mid + 1; - } else { - high = mid - 1; - } - } - found = false; - return low - 1; - } - function upperBound(haystack, needle, index) { - for (var i = index + 1; i < haystack.length; index = i++) { - if (haystack[i][COLUMN] !== needle) break; - } - return index; - } - function lowerBound(haystack, needle, index) { - for (var i = index - 1; i >= 0; index = i--) { - if (haystack[i][COLUMN] !== needle) break; - } - return index; - } - function memoizedState() { - return { - lastKey: -1, - lastNeedle: -1, - lastIndex: -1 - }; - } - function memoizedBinarySearch(haystack, needle, state, key) { - var lastKey = state.lastKey, - lastNeedle = state.lastNeedle, - lastIndex = state.lastIndex; - var low = 0; - var high = haystack.length - 1; - if (key === lastKey) { - if (needle === lastNeedle) { - found = lastIndex !== -1 && haystack[lastIndex][COLUMN] === needle; - return lastIndex; - } - if (needle >= lastNeedle) { - low = lastIndex === -1 ? 0 : lastIndex; - } else { - high = lastIndex; - } - } - state.lastKey = key; - state.lastNeedle = needle; - return state.lastIndex = binarySearch(haystack, needle, low, high); - } - - function buildBySources(decoded, memos) { - var sources = memos.map(buildNullArray); - for (var i = 0; i < decoded.length; i++) { - var line = decoded[i]; - for (var j = 0; j < line.length; j++) { - var seg = line[j]; - if (seg.length === 1) continue; - var sourceIndex = seg[SOURCES_INDEX]; - var sourceLine = seg[SOURCE_LINE]; - var sourceColumn = seg[SOURCE_COLUMN]; - var originalSource = sources[sourceIndex]; - var originalLine = originalSource[sourceLine] || (originalSource[sourceLine] = []); - var memo = memos[sourceIndex]; - var index = upperBound(originalLine, sourceColumn, memoizedBinarySearch(originalLine, sourceColumn, memo, sourceLine)); - insert(originalLine, memo.lastIndex = index + 1, [sourceColumn, i, seg[COLUMN]]); - } - } - return sources; - } - function insert(array, index, value) { - for (var i = array.length; i > index; i--) { - array[i] = array[i - 1]; - } - array[index] = value; - } - function buildNullArray() { - return { - __proto__: null - }; - } - var AnyMap = function AnyMap(map, mapUrl) { - var parsed = typeof map === 'string' ? JSON.parse(map) : map; - if (!('sections' in parsed)) return new TraceMap(parsed, mapUrl); - var mappings = []; - var sources = []; - var sourcesContent = []; - var names = []; - recurse(parsed, mapUrl, mappings, sources, sourcesContent, names, 0, 0, Infinity, Infinity); - var joined = { - version: 3, - file: parsed.file, - names: names, - sources: sources, - sourcesContent: sourcesContent, - mappings: mappings - }; - return exports.presortedDecodedMap(joined); - }; - function recurse(input, mapUrl, mappings, sources, sourcesContent, names, lineOffset, columnOffset, stopLine, stopColumn) { - var sections = input.sections; - for (var i = 0; i < sections.length; i++) { - var _sections$i = sections[i], - map = _sections$i.map, - offset = _sections$i.offset; - var sl = stopLine; - var sc = stopColumn; - if (i + 1 < sections.length) { - var nextOffset = sections[i + 1].offset; - sl = Math.min(stopLine, lineOffset + nextOffset.line); - if (sl === stopLine) { - sc = Math.min(stopColumn, columnOffset + nextOffset.column); - } else if (sl < stopLine) { - sc = columnOffset + nextOffset.column; - } - } - addSection(map, mapUrl, mappings, sources, sourcesContent, names, lineOffset + offset.line, columnOffset + offset.column, sl, sc); - } - } - function addSection(input, mapUrl, mappings, sources, sourcesContent, names, lineOffset, columnOffset, stopLine, stopColumn) { - if ('sections' in input) return recurse.apply(void 0, arguments); - var map = new TraceMap(input, mapUrl); - var sourcesOffset = sources.length; - var namesOffset = names.length; - var decoded = exports.decodedMappings(map); - var resolvedSources = map.resolvedSources, - contents = map.sourcesContent; - append(sources, resolvedSources); - append(names, map.names); - if (contents) append(sourcesContent, contents);else for (var i = 0; i < resolvedSources.length; i++) { - sourcesContent.push(null); - } - for (var _i = 0; _i < decoded.length; _i++) { - var lineI = lineOffset + _i; - if (lineI > stopLine) return; - var out = getLine(mappings, lineI); - var cOffset = _i === 0 ? columnOffset : 0; - var line = decoded[_i]; - for (var j = 0; j < line.length; j++) { - var seg = line[j]; - var column = cOffset + seg[COLUMN]; - if (lineI === stopLine && column >= stopColumn) return; - if (seg.length === 1) { - out.push([column]); - continue; - } - var sourcesIndex = sourcesOffset + seg[SOURCES_INDEX]; - var sourceLine = seg[SOURCE_LINE]; - var sourceColumn = seg[SOURCE_COLUMN]; - out.push(seg.length === 4 ? [column, sourcesIndex, sourceLine, sourceColumn] : [column, sourcesIndex, sourceLine, sourceColumn, namesOffset + seg[NAMES_INDEX]]); - } - } - } - function append(arr, other) { - for (var i = 0; i < other.length; i++) { - arr.push(other[i]); - } - } - function getLine(arr, index) { - for (var i = arr.length; i <= index; i++) { - arr[i] = []; - } - return arr[index]; - } - var LINE_GTR_ZERO = '`line` must be greater than 0 (lines start at line 1)'; - var COL_GTR_EQ_ZERO = '`column` must be greater than or equal to 0 (columns start at column 0)'; - var LEAST_UPPER_BOUND = -1; - var GREATEST_LOWER_BOUND = 1; - exports.encodedMappings = void 0; - exports.decodedMappings = void 0; - exports.traceSegment = void 0; - exports.originalPositionFor = void 0; - exports.generatedPositionFor = void 0; - exports.allGeneratedPositionsFor = void 0; - exports.eachMapping = void 0; - exports.sourceContentFor = void 0; - exports.presortedDecodedMap = void 0; - exports.decodedMap = void 0; - exports.encodedMap = void 0; - var TraceMap = _createClass(function TraceMap(map, mapUrl) { - var isString = typeof map === 'string'; - if (!isString && map._decodedMemo) return map; - var parsed = isString ? JSON.parse(map) : map; - var version = parsed.version, - file = parsed.file, - names = parsed.names, - sourceRoot = parsed.sourceRoot, - sources = parsed.sources, - sourcesContent = parsed.sourcesContent; - this.version = version; - this.file = file; - this.names = names; - this.sourceRoot = sourceRoot; - this.sources = sources; - this.sourcesContent = sourcesContent; - var from = resolve(sourceRoot || '', stripFilename(mapUrl)); - this.resolvedSources = sources.map(function (s) { - return resolve(s || '', from); - }); - var mappings = parsed.mappings; - if (typeof mappings === 'string') { - this._encoded = mappings; - this._decoded = undefined; - } else { - this._encoded = undefined; - this._decoded = maybeSort(mappings, isString); - } - this._decodedMemo = memoizedState(); - this._bySources = undefined; - this._bySourceMemos = undefined; - }); - (function () { - exports.encodedMappings = function (map) { - var _a; - return (_a = map._encoded) !== null && _a !== void 0 ? _a : map._encoded = sourcemapCodec.encode(map._decoded); - }; - exports.decodedMappings = function (map) { - return map._decoded || (map._decoded = sourcemapCodec.decode(map._encoded)); - }; - exports.traceSegment = function (map, line, column) { - var decoded = exports.decodedMappings(map); - if (line >= decoded.length) return null; - var segments = decoded[line]; - var index = traceSegmentInternal(segments, map._decodedMemo, line, column, GREATEST_LOWER_BOUND); - return index === -1 ? null : segments[index]; - }; - exports.originalPositionFor = function (map, _ref) { - var line = _ref.line, - column = _ref.column, - bias = _ref.bias; - line--; - if (line < 0) throw new Error(LINE_GTR_ZERO); - if (column < 0) throw new Error(COL_GTR_EQ_ZERO); - var decoded = exports.decodedMappings(map); - if (line >= decoded.length) return OMapping(null, null, null, null); - var segments = decoded[line]; - var index = traceSegmentInternal(segments, map._decodedMemo, line, column, bias || GREATEST_LOWER_BOUND); - if (index === -1) return OMapping(null, null, null, null); - var segment = segments[index]; - if (segment.length === 1) return OMapping(null, null, null, null); - var names = map.names, - resolvedSources = map.resolvedSources; - return OMapping(resolvedSources[segment[SOURCES_INDEX]], segment[SOURCE_LINE] + 1, segment[SOURCE_COLUMN], segment.length === 5 ? names[segment[NAMES_INDEX]] : null); - }; - exports.allGeneratedPositionsFor = function (map, _ref2) { - var source = _ref2.source, - line = _ref2.line, - column = _ref2.column, - bias = _ref2.bias; - return generatedPosition(map, source, line, column, bias || LEAST_UPPER_BOUND, true); - }; - exports.generatedPositionFor = function (map, _ref3) { - var source = _ref3.source, - line = _ref3.line, - column = _ref3.column, - bias = _ref3.bias; - return generatedPosition(map, source, line, column, bias || GREATEST_LOWER_BOUND, false); - }; - exports.eachMapping = function (map, cb) { - var decoded = exports.decodedMappings(map); - var names = map.names, - resolvedSources = map.resolvedSources; - for (var i = 0; i < decoded.length; i++) { - var line = decoded[i]; - for (var j = 0; j < line.length; j++) { - var seg = line[j]; - var generatedLine = i + 1; - var generatedColumn = seg[0]; - var source = null; - var originalLine = null; - var originalColumn = null; - var name = null; - if (seg.length !== 1) { - source = resolvedSources[seg[1]]; - originalLine = seg[2] + 1; - originalColumn = seg[3]; - } - if (seg.length === 5) name = names[seg[4]]; - cb({ - generatedLine: generatedLine, - generatedColumn: generatedColumn, - source: source, - originalLine: originalLine, - originalColumn: originalColumn, - name: name - }); - } - } - }; - exports.sourceContentFor = function (map, source) { - var sources = map.sources, - resolvedSources = map.resolvedSources, - sourcesContent = map.sourcesContent; - if (sourcesContent == null) return null; - var index = sources.indexOf(source); - if (index === -1) index = resolvedSources.indexOf(source); - return index === -1 ? null : sourcesContent[index]; - }; - exports.presortedDecodedMap = function (map, mapUrl) { - var tracer = new TraceMap(clone(map, []), mapUrl); - tracer._decoded = map.mappings; - return tracer; - }; - exports.decodedMap = function (map) { - return clone(map, exports.decodedMappings(map)); - }; - exports.encodedMap = function (map) { - return clone(map, exports.encodedMappings(map)); - }; - function generatedPosition(map, source, line, column, bias, all) { - line--; - if (line < 0) throw new Error(LINE_GTR_ZERO); - if (column < 0) throw new Error(COL_GTR_EQ_ZERO); - var sources = map.sources, - resolvedSources = map.resolvedSources; - var sourceIndex = sources.indexOf(source); - if (sourceIndex === -1) sourceIndex = resolvedSources.indexOf(source); - if (sourceIndex === -1) return all ? [] : GMapping(null, null); - var generated = map._bySources || (map._bySources = buildBySources(exports.decodedMappings(map), map._bySourceMemos = sources.map(memoizedState))); - var segments = generated[sourceIndex][line]; - if (segments == null) return all ? [] : GMapping(null, null); - var memo = map._bySourceMemos[sourceIndex]; - if (all) return sliceGeneratedPositions(segments, memo, line, column, bias); - var index = traceSegmentInternal(segments, memo, line, column, bias); - if (index === -1) return GMapping(null, null); - var segment = segments[index]; - return GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN]); - } - })(); - function clone(map, mappings) { - return { - version: map.version, - file: map.file, - names: map.names, - sourceRoot: map.sourceRoot, - sources: map.sources, - sourcesContent: map.sourcesContent, - mappings: mappings - }; - } - function OMapping(source, line, column, name) { - return { - source: source, - line: line, - column: column, - name: name - }; - } - function GMapping(line, column) { - return { - line: line, - column: column - }; - } - function traceSegmentInternal(segments, memo, line, column, bias) { - var index = memoizedBinarySearch(segments, column, memo, line); - if (found) { - index = (bias === LEAST_UPPER_BOUND ? upperBound : lowerBound)(segments, column, index); - } else if (bias === LEAST_UPPER_BOUND) index++; - if (index === -1 || index === segments.length) return -1; - return index; - } - function sliceGeneratedPositions(segments, memo, line, column, bias) { - var min = traceSegmentInternal(segments, memo, line, column, GREATEST_LOWER_BOUND); - if (!found && bias === LEAST_UPPER_BOUND) min++; - if (min === -1 || min === segments.length) return []; - var matchedColumn = found ? column : segments[min][COLUMN]; - if (!found) min = lowerBound(segments, matchedColumn, min); - var max = upperBound(segments, matchedColumn, min); - var result = []; - for (; min <= max; min++) { - var segment = segments[min]; - result.push(GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN])); - } - return result; - } - exports.AnyMap = AnyMap; - exports.GREATEST_LOWER_BOUND = GREATEST_LOWER_BOUND; - exports.LEAST_UPPER_BOUND = LEAST_UPPER_BOUND; - exports.TraceMap = TraceMap; - Object.defineProperty(exports, '__esModule', { - value: true - }); - }); - })(traceMapping_umd, traceMapping_umd.exports); - return traceMapping_umd.exports; - } - - (function (module, exports) { - (function (global, factory) { - factory(exports, requireSetArray_umd(), requireSourcemapCodec_umd(), requireTraceMapping_umd()) ; - })(commonjsGlobal, function (exports, setArray, sourcemapCodec, traceMapping) { - - var COLUMN = 0; - var SOURCES_INDEX = 1; - var SOURCE_LINE = 2; - var SOURCE_COLUMN = 3; - var NAMES_INDEX = 4; - var NO_NAME = -1; - exports.addSegment = void 0; - exports.addMapping = void 0; - exports.maybeAddSegment = void 0; - exports.maybeAddMapping = void 0; - exports.setSourceContent = void 0; - exports.toDecodedMap = void 0; - exports.toEncodedMap = void 0; - exports.fromMap = void 0; - exports.allMappings = void 0; - var addSegmentInternal; - var GenMapping = _createClass(function GenMapping(_temp) { - var _ref = _temp === void 0 ? {} : _temp, - file = _ref.file, - sourceRoot = _ref.sourceRoot; - this._names = new setArray.SetArray(); - this._sources = new setArray.SetArray(); - this._sourcesContent = []; - this._mappings = []; - this.file = file; - this.sourceRoot = sourceRoot; - }); - (function () { - exports.addSegment = function (map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) { - return addSegmentInternal(false, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content); - }; - exports.maybeAddSegment = function (map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) { - return addSegmentInternal(true, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content); - }; - exports.addMapping = function (map, mapping) { - return addMappingInternal(false, map, mapping); - }; - exports.maybeAddMapping = function (map, mapping) { - return addMappingInternal(true, map, mapping); - }; - exports.setSourceContent = function (map, source, content) { - var sources = map._sources, - sourcesContent = map._sourcesContent; - sourcesContent[setArray.put(sources, source)] = content; - }; - exports.toDecodedMap = function (map) { - var file = map.file, - sourceRoot = map.sourceRoot, - mappings = map._mappings, - sources = map._sources, - sourcesContent = map._sourcesContent, - names = map._names; - removeEmptyFinalLines(mappings); - return { - version: 3, - file: file || undefined, - names: names.array, - sourceRoot: sourceRoot || undefined, - sources: sources.array, - sourcesContent: sourcesContent, - mappings: mappings - }; - }; - exports.toEncodedMap = function (map) { - var decoded = exports.toDecodedMap(map); - return Object.assign(Object.assign({}, decoded), { - mappings: sourcemapCodec.encode(decoded.mappings) - }); - }; - exports.allMappings = function (map) { - var out = []; - var mappings = map._mappings, - sources = map._sources, - names = map._names; - for (var i = 0; i < mappings.length; i++) { - var line = mappings[i]; - for (var j = 0; j < line.length; j++) { - var seg = line[j]; - var generated = { - line: i + 1, - column: seg[COLUMN] - }; - var source = undefined; - var original = undefined; - var name = undefined; - if (seg.length !== 1) { - source = sources.array[seg[SOURCES_INDEX]]; - original = { - line: seg[SOURCE_LINE] + 1, - column: seg[SOURCE_COLUMN] - }; - if (seg.length === 5) name = names.array[seg[NAMES_INDEX]]; - } - out.push({ - generated: generated, - source: source, - original: original, - name: name - }); - } - } - return out; - }; - exports.fromMap = function (input) { - var map = new traceMapping.TraceMap(input); - var gen = new GenMapping({ - file: map.file, - sourceRoot: map.sourceRoot - }); - putAll(gen._names, map.names); - putAll(gen._sources, map.sources); - gen._sourcesContent = map.sourcesContent || map.sources.map(function () { - return null; - }); - gen._mappings = traceMapping.decodedMappings(map); - return gen; - }; - addSegmentInternal = function addSegmentInternal(skipable, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) { - var mappings = map._mappings, - sources = map._sources, - sourcesContent = map._sourcesContent, - names = map._names; - var line = getLine(mappings, genLine); - var index = getColumnIndex(line, genColumn); - if (!source) { - if (skipable && skipSourceless(line, index)) return; - return insert(line, index, [genColumn]); - } - var sourcesIndex = setArray.put(sources, source); - var namesIndex = name ? setArray.put(names, name) : NO_NAME; - if (sourcesIndex === sourcesContent.length) sourcesContent[sourcesIndex] = content !== null && content !== void 0 ? content : null; - if (skipable && skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex)) { - return; - } - return insert(line, index, name ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex] : [genColumn, sourcesIndex, sourceLine, sourceColumn]); - }; - })(); - function getLine(mappings, index) { - for (var i = mappings.length; i <= index; i++) { - mappings[i] = []; - } - return mappings[index]; - } - function getColumnIndex(line, genColumn) { - var index = line.length; - for (var i = index - 1; i >= 0; index = i--) { - var current = line[i]; - if (genColumn >= current[COLUMN]) break; - } - return index; - } - function insert(array, index, value) { - for (var i = array.length; i > index; i--) { - array[i] = array[i - 1]; - } - array[index] = value; - } - function removeEmptyFinalLines(mappings) { - var length = mappings.length; - var len = length; - for (var i = len - 1; i >= 0; len = i, i--) { - if (mappings[i].length > 0) break; - } - if (len < length) mappings.length = len; - } - function putAll(strarr, array) { - for (var i = 0; i < array.length; i++) { - setArray.put(strarr, array[i]); - } - } - function skipSourceless(line, index) { - if (index === 0) return true; - var prev = line[index - 1]; - return prev.length === 1; - } - function skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex) { - if (index === 0) return false; - var prev = line[index - 1]; - if (prev.length === 1) return false; - return sourcesIndex === prev[SOURCES_INDEX] && sourceLine === prev[SOURCE_LINE] && sourceColumn === prev[SOURCE_COLUMN] && namesIndex === (prev.length === 5 ? prev[NAMES_INDEX] : NO_NAME); - } - function addMappingInternal(skipable, map, mapping) { - var generated = mapping.generated, - source = mapping.source, - original = mapping.original, - name = mapping.name, - content = mapping.content; - if (!source) { - return addSegmentInternal(skipable, map, generated.line - 1, generated.column, null, null, null, null, null); - } - var s = source; - return addSegmentInternal(skipable, map, generated.line - 1, generated.column, s, original.line - 1, original.column, name, content); - } - exports.GenMapping = GenMapping; - Object.defineProperty(exports, '__esModule', { - value: true - }); - }); - })(genMapping_umd, genMapping_umd.exports); - - var SourceMap$1 = function () { - - function SourceMap(opts, code) { - var _opts$sourceFileName; - this._map = void 0; - this._rawMappings = void 0; - this._sourceFileName = void 0; - this._lastGenLine = 0; - this._lastSourceLine = 0; - this._lastSourceColumn = 0; - var map = this._map = new genMapping_umd.exports.GenMapping({ - sourceRoot: opts.sourceRoot - }); - this._sourceFileName = (_opts$sourceFileName = opts.sourceFileName) == null ? void 0 : _opts$sourceFileName.replace(/\\/g, "/"); - this._rawMappings = undefined; - if (typeof code === "string") { - genMapping_umd.exports.setSourceContent(map, this._sourceFileName, code); - } else if (typeof code === "object") { - Object.keys(code).forEach(function (sourceFileName) { - genMapping_umd.exports.setSourceContent(map, sourceFileName.replace(/\\/g, "/"), code[sourceFileName]); - }); - } - } - - var _proto = SourceMap.prototype; - _proto.get = - function get() { - return genMapping_umd.exports.toEncodedMap(this._map); - }; - _proto.getDecoded = function getDecoded() { - return genMapping_umd.exports.toDecodedMap(this._map); - }; - _proto.getRawMappings = function getRawMappings() { - return this._rawMappings || (this._rawMappings = genMapping_umd.exports.allMappings(this._map)); - } - - ; - _proto.mark = - - function mark(generated, line, column, identifierName, filename) { - this._rawMappings = undefined; - genMapping_umd.exports.maybeAddMapping(this._map, { - name: identifierName, - generated: generated, - source: line == null ? undefined : (filename == null ? void 0 : filename.replace(/\\/g, "/")) || this._sourceFileName, - original: line == null ? undefined : { - line: line, - column: column - } - }); - }; - return _createClass(SourceMap); - }(); - - var Buffer = function () { - function Buffer(map) { - this._map = null; - this._buf = ""; - this._str = ""; - this._appendCount = 0; - this._last = 0; - this._queue = []; - this._queueCursor = 0; - this._position = { - line: 1, - column: 0 - }; - this._sourcePosition = { - identifierName: undefined, - line: undefined, - column: undefined, - filename: undefined - }; - this._map = map; - this._allocQueue(); - } - var _proto = Buffer.prototype; - _proto._allocQueue = function _allocQueue() { - var queue = this._queue; - for (var i = 0; i < 16; i++) { - queue.push({ - "char": 0, - repeat: 1, - line: undefined, - column: undefined, - identifierName: undefined, - filename: "" - }); - } - }; - _proto._pushQueue = function _pushQueue(_char, repeat, line, column, identifierName, filename) { - var cursor = this._queueCursor; - if (cursor === this._queue.length) { - this._allocQueue(); - } - var item = this._queue[cursor]; - item["char"] = _char; - item.repeat = repeat; - item.line = line; - item.column = column; - item.identifierName = identifierName; - item.filename = filename; - this._queueCursor++; - }; - _proto._popQueue = function _popQueue() { - if (this._queueCursor === 0) { - throw new Error("Cannot pop from empty queue"); - } - return this._queue[--this._queueCursor]; - } - - ; - _proto.get = - - function get() { - this._flush(); - var map = this._map; - var result = { - code: (this._buf + this._str).trimRight(), - decodedMap: map == null ? void 0 : map.getDecoded(), - get map() { - var resultMap = map ? map.get() : null; - result.map = resultMap; - return resultMap; - }, - set map(value) { - Object.defineProperty(result, "map", { - value: value, - writable: true - }); - }, - get rawMappings() { - var mappings = map == null ? void 0 : map.getRawMappings(); - result.rawMappings = mappings; - return mappings; - }, - set rawMappings(value) { - Object.defineProperty(result, "rawMappings", { - value: value, - writable: true - }); - } - }; - return result; - } - - ; - _proto.append = - - function append(str, maybeNewline) { - this._flush(); - this._append(str, this._sourcePosition, maybeNewline); - }; - _proto.appendChar = function appendChar(_char2) { - this._flush(); - this._appendChar(_char2, 1, this._sourcePosition); - } - - ; - _proto.queue = - function queue(_char3) { - if (_char3 === 10) { - while (this._queueCursor !== 0) { - var _char4 = this._queue[this._queueCursor - 1]["char"]; - if (_char4 !== 32 && _char4 !== 9) { - break; - } - this._queueCursor--; - } - } - var sourcePosition = this._sourcePosition; - this._pushQueue(_char3, 1, sourcePosition.line, sourcePosition.column, sourcePosition.identifierName, sourcePosition.filename); - } - - ; - _proto.queueIndentation = - function queueIndentation(_char5, repeat) { - this._pushQueue(_char5, repeat, undefined, undefined, undefined, undefined); - }; - _proto._flush = function _flush() { - var queueCursor = this._queueCursor; - var queue = this._queue; - for (var i = 0; i < queueCursor; i++) { - var item = queue[i]; - this._appendChar(item["char"], item.repeat, item); - } - this._queueCursor = 0; - }; - _proto._appendChar = function _appendChar(_char6, repeat, sourcePos) { - this._last = _char6; - this._str += repeat > 1 ? String.fromCharCode(_char6).repeat(repeat) : String.fromCharCode(_char6); - if (_char6 !== 10) { - this._mark(sourcePos.line, sourcePos.column, sourcePos.identifierName, sourcePos.filename); - this._position.column += repeat; - } else { - this._position.line++; - this._position.column = 0; - } - }; - _proto._append = function _append(str, sourcePos, maybeNewline) { - var len = str.length; - var position = this._position; - this._last = str.charCodeAt(len - 1); - if (++this._appendCount > 4096) { - +this._str; - this._buf += this._str; - this._str = str; - this._appendCount = 0; - } else { - this._str += str; - } - if (!maybeNewline && !this._map) { - position.column += len; - return; - } - var column = sourcePos.column, - identifierName = sourcePos.identifierName, - filename = sourcePos.filename; - var line = sourcePos.line; - - var i = str.indexOf("\n"); - var last = 0; - - if (i !== 0) { - this._mark(line, column, identifierName, filename); - } - - while (i !== -1) { - position.line++; - position.column = 0; - last = i + 1; - - if (last < len) { - this._mark(++line, 0, identifierName, filename); - } - i = str.indexOf("\n", last); - } - position.column += len - last; - }; - _proto._mark = function _mark(line, column, identifierName, filename) { - var _this$_map; - (_this$_map = this._map) == null ? void 0 : _this$_map.mark(this._position, line, column, identifierName, filename); - }; - _proto.removeTrailingNewline = function removeTrailingNewline() { - var queueCursor = this._queueCursor; - if (queueCursor !== 0 && this._queue[queueCursor - 1]["char"] === 10) { - this._queueCursor--; - } - }; - _proto.removeLastSemicolon = function removeLastSemicolon() { - var queueCursor = this._queueCursor; - if (queueCursor !== 0 && this._queue[queueCursor - 1]["char"] === 59) { - this._queueCursor--; - } - }; - _proto.getLastChar = function getLastChar() { - var queueCursor = this._queueCursor; - return queueCursor !== 0 ? this._queue[queueCursor - 1]["char"] : this._last; - } - - ; - _proto.getNewlineCount = - function getNewlineCount() { - var queueCursor = this._queueCursor; - var count = 0; - if (queueCursor === 0) return this._last === 10 ? 1 : 0; - for (var i = queueCursor - 1; i >= 0; i--) { - if (this._queue[i]["char"] !== 10) { - break; - } - count++; - } - return count === queueCursor && this._last === 10 ? count + 1 : count; - } - - ; - _proto.endsWithCharAndNewline = - function endsWithCharAndNewline() { - var queue = this._queue; - var queueCursor = this._queueCursor; - if (queueCursor !== 0) { - var lastCp = queue[queueCursor - 1]["char"]; - if (lastCp !== 10) return; - if (queueCursor > 1) { - return queue[queueCursor - 2]["char"]; - } else { - return this._last; - } - } - }; - _proto.hasContent = function hasContent() { - return this._queueCursor !== 0 || !!this._last; - } - - ; - _proto.exactSource = - function exactSource(loc, cb) { - if (!this._map) return cb(); - this.source("start", loc); - cb(); - this.source("end", loc); - } - - ; - _proto.source = - - function source(prop, loc) { - if (!this._map) return; - - this._normalizePosition(prop, loc, 0, 0); - }; - _proto.sourceWithOffset = function sourceWithOffset(prop, loc, lineOffset, columnOffset) { - if (!this._map) return; - this._normalizePosition(prop, loc, lineOffset, columnOffset); - } - - ; - _proto.withSource = - - function withSource(prop, loc, cb) { - if (!this._map) return cb(); - this.source(prop, loc); - cb(); - }; - _proto._normalizePosition = function _normalizePosition(prop, loc, lineOffset, columnOffset) { - var pos = loc[prop]; - var target = this._sourcePosition; - target.identifierName = prop === "start" && loc.identifierName || undefined; - if (pos) { - target.line = pos.line + lineOffset; - target.column = pos.column + columnOffset; - target.filename = loc.filename; - } - }; - _proto.getCurrentColumn = function getCurrentColumn() { - var queue = this._queue; - var queueCursor = this._queueCursor; - var lastIndex = -1; - var len = 0; - for (var i = 0; i < queueCursor; i++) { - var item = queue[i]; - if (item["char"] === 10) { - lastIndex = len; - } - len += item.repeat; - } - return lastIndex === -1 ? this._position.column + len : len - 1 - lastIndex; - }; - _proto.getCurrentLine = function getCurrentLine() { - var count = 0; - var queue = this._queue; - for (var i = 0; i < this._queueCursor; i++) { - if (queue[i]["char"] === 10) { - count++; - } - } - return this._position.line + count; - }; - return _createClass(Buffer); - }(); - - var FLIPPED_ALIAS_KEYS$1 = FLIPPED_ALIAS_KEYS$3, - isArrayExpression = isArrayExpression$2, - isAssignmentExpression$3 = isAssignmentExpression$4, - isBinary$1 = isBinary$3, - isBlockStatement$1 = isBlockStatement$2, - isCallExpression$7 = isCallExpression$8, - isFunction$3 = isFunction$4, - isIdentifier$h = isIdentifier$j, - isLiteral$4 = isLiteral$6, - isMemberExpression$7 = isMemberExpression$8, - isObjectExpression$1 = isObjectExpression$3, - isOptionalCallExpression$2 = isOptionalCallExpression$3, - isOptionalMemberExpression$2 = isOptionalMemberExpression$3, - isStringLiteral$6 = isStringLiteral$7; - function crawlInternal(node, state) { - if (!node) return state; - if (isMemberExpression$7(node) || isOptionalMemberExpression$2(node)) { - crawlInternal(node.object, state); - if (node.computed) crawlInternal(node.property, state); - } else if (isBinary$1(node) || isAssignmentExpression$3(node)) { - crawlInternal(node.left, state); - crawlInternal(node.right, state); - } else if (isCallExpression$7(node) || isOptionalCallExpression$2(node)) { - state.hasCall = true; - crawlInternal(node.callee, state); - } else if (isFunction$3(node)) { - state.hasFunction = true; - } else if (isIdentifier$h(node)) { - state.hasHelper = - state.hasHelper || node.callee && isHelper(node.callee); - } - return state; - } - - function crawl(node) { - return crawlInternal(node, { - hasCall: false, - hasFunction: false, - hasHelper: false - }); - } - - function isHelper(node) { - if (!node) return false; - if (isMemberExpression$7(node)) { - return isHelper(node.object) || isHelper(node.property); - } else if (isIdentifier$h(node)) { - return node.name === "require" || node.name.charCodeAt(0) === 95; - } else if (isCallExpression$7(node)) { - return isHelper(node.callee); - } else if (isBinary$1(node) || isAssignmentExpression$3(node)) { - return isIdentifier$h(node.left) && isHelper(node.left) || isHelper(node.right); - } else { - return false; - } - } - function isType$1(node) { - return isLiteral$4(node) || isObjectExpression$1(node) || isArrayExpression(node) || isIdentifier$h(node) || isMemberExpression$7(node); - } - - var nodes = { - AssignmentExpression: function (_AssignmentExpression) { - function AssignmentExpression(_x) { - return _AssignmentExpression.apply(this, arguments); - } - AssignmentExpression.toString = function () { - return _AssignmentExpression.toString(); - }; - return AssignmentExpression; - }(function (node) { - var state = crawl(node.right); - if (state.hasCall && state.hasHelper || state.hasFunction) { - return state.hasFunction ? 1 | 2 : 2; - } - }), - SwitchCase: function (_SwitchCase) { - function SwitchCase(_x2, _x3) { - return _SwitchCase.apply(this, arguments); - } - SwitchCase.toString = function () { - return _SwitchCase.toString(); - }; - return SwitchCase; - }(function (node, parent) { - return (!!node.consequent.length || parent.cases[0] === node ? 1 : 0) | (!node.consequent.length && parent.cases[parent.cases.length - 1] === node ? 2 : 0); - }), - LogicalExpression: function (_LogicalExpression) { - function LogicalExpression(_x4) { - return _LogicalExpression.apply(this, arguments); - } - LogicalExpression.toString = function () { - return _LogicalExpression.toString(); - }; - return LogicalExpression; - }(function (node) { - if (isFunction$3(node.left) || isFunction$3(node.right)) { - return 2; - } - }), - Literal: function (_Literal) { - function Literal(_x5) { - return _Literal.apply(this, arguments); - } - Literal.toString = function () { - return _Literal.toString(); - }; - return Literal; - }(function (node) { - if (isStringLiteral$6(node) && node.value === "use strict") { - return 2; - } - }), - CallExpression: function (_CallExpression) { - function CallExpression(_x6) { - return _CallExpression.apply(this, arguments); - } - CallExpression.toString = function () { - return _CallExpression.toString(); - }; - return CallExpression; - }(function (node) { - if (isFunction$3(node.callee) || isHelper(node)) { - return 1 | 2; - } - }), - OptionalCallExpression: function (_OptionalCallExpression) { - function OptionalCallExpression(_x7) { - return _OptionalCallExpression.apply(this, arguments); - } - OptionalCallExpression.toString = function () { - return _OptionalCallExpression.toString(); - }; - return OptionalCallExpression; - }(function (node) { - if (isFunction$3(node.callee)) { - return 1 | 2; - } - }), - VariableDeclaration: function (_VariableDeclaration) { - function VariableDeclaration(_x8) { - return _VariableDeclaration.apply(this, arguments); - } - VariableDeclaration.toString = function () { - return _VariableDeclaration.toString(); - }; - return VariableDeclaration; - }(function (node) { - for (var i = 0; i < node.declarations.length; i++) { - var declar = node.declarations[i]; - var enabled = isHelper(declar.id) && !isType$1(declar.init); - if (!enabled && declar.init) { - var state = crawl(declar.init); - enabled = isHelper(declar.init) && state.hasCall || state.hasFunction; - } - if (enabled) { - return 1 | 2; - } - } - }), - IfStatement: function (_IfStatement) { - function IfStatement(_x9) { - return _IfStatement.apply(this, arguments); - } - IfStatement.toString = function () { - return _IfStatement.toString(); - }; - return IfStatement; - }(function (node) { - if (isBlockStatement$1(node.consequent)) { - return 1 | 2; - } - }) - }; - - nodes.ObjectProperty = nodes.ObjectTypeProperty = nodes.ObjectMethod = function (node, parent) { - if (parent.properties[0] === node) { - return 1; - } - }; - nodes.ObjectTypeCallProperty = function (node, parent) { - var _parent$properties; - if (parent.callProperties[0] === node && !((_parent$properties = parent.properties) != null && _parent$properties.length)) { - return 1; - } - }; - nodes.ObjectTypeIndexer = function (node, parent) { - var _parent$properties2, _parent$callPropertie; - if (parent.indexers[0] === node && !((_parent$properties2 = parent.properties) != null && _parent$properties2.length) && !((_parent$callPropertie = parent.callProperties) != null && _parent$callPropertie.length)) { - return 1; - } - }; - nodes.ObjectTypeInternalSlot = function (node, parent) { - var _parent$properties3, _parent$callPropertie2, _parent$indexers; - if (parent.internalSlots[0] === node && !((_parent$properties3 = parent.properties) != null && _parent$properties3.length) && !((_parent$callPropertie2 = parent.callProperties) != null && _parent$callPropertie2.length) && !((_parent$indexers = parent.indexers) != null && _parent$indexers.length)) { - return 1; - } - }; - - [["Function", true], ["Class", true], ["Loop", true], ["LabeledStatement", true], ["SwitchStatement", true], ["TryStatement", true]].forEach(function (_ref) { - var _ref2 = _slicedToArray(_ref, 2), - type = _ref2[0], - amounts = _ref2[1]; - [type].concat(FLIPPED_ALIAS_KEYS$1[type] || []).forEach(function (type) { - var ret = amounts ? 1 | 2 : 0; - nodes[type] = function () { - return ret; - }; - }); - }); - - var isArrayTypeAnnotation$1 = isArrayTypeAnnotation$2, - isArrowFunctionExpression = isArrowFunctionExpression$1, - isAssignmentExpression$2 = isAssignmentExpression$4, - isAwaitExpression = isAwaitExpression$1, - isBinary = isBinary$3, - isBinaryExpression = isBinaryExpression$1, - isUpdateExpression$1 = isUpdateExpression$2, - isCallExpression$6 = isCallExpression$8, - isClass = isClass$2, - isClassExpression = isClassExpression$1, - isConditional = isConditional$1, - isConditionalExpression = isConditionalExpression$1, - isExportDeclaration$1 = isExportDeclaration$2, - isExportDefaultDeclaration$1 = isExportDefaultDeclaration$3, - isExpressionStatement$2 = isExpressionStatement$3, - isFor$1 = isFor$2, - isForInStatement = isForInStatement$1, - isForOfStatement$1 = isForOfStatement$2, - isForStatement$2 = isForStatement$3, - isFunctionExpression$1 = isFunctionExpression$2, - isIfStatement$1 = isIfStatement$2, - isIndexedAccessType = isIndexedAccessType$1, - isIntersectionTypeAnnotation = isIntersectionTypeAnnotation$1, - isLogicalExpression = isLogicalExpression$1, - isMemberExpression$6 = isMemberExpression$8, - isNewExpression$3 = isNewExpression$4, - isNullableTypeAnnotation = isNullableTypeAnnotation$1, - isObjectPattern$1 = isObjectPattern$2, - isOptionalCallExpression$1 = isOptionalCallExpression$3, - isOptionalMemberExpression$1 = isOptionalMemberExpression$3, - isReturnStatement = isReturnStatement$1, - isSequenceExpression$1 = isSequenceExpression$2, - isSwitchStatement = isSwitchStatement$1, - isTSArrayType$1 = isTSArrayType$2, - isTSAsExpression$1 = isTSAsExpression$2, - isTSInstantiationExpression = isTSInstantiationExpression$1, - isTSIntersectionType = isTSIntersectionType$1, - isTSNonNullExpression$1 = isTSNonNullExpression$2, - isTSOptionalType = isTSOptionalType$1, - isTSRestType = isTSRestType$1, - isTSTypeAssertion$1 = isTSTypeAssertion$2, - isTSUnionType = isTSUnionType$1, - isTaggedTemplateExpression = isTaggedTemplateExpression$2, - isThrowStatement = isThrowStatement$1, - isTypeAnnotation$1 = isTypeAnnotation$2, - isUnaryLike = isUnaryLike$1, - isUnionTypeAnnotation$1 = isUnionTypeAnnotation$2, - isVariableDeclarator$1 = isVariableDeclarator$2, - isWhileStatement = isWhileStatement$1, - isYieldExpression = isYieldExpression$1, - isTSSatisfiesExpression$1 = isTSSatisfiesExpression$2; - var PRECEDENCE = { - "||": 0, - "??": 0, - "|>": 0, - "&&": 1, - "|": 2, - "^": 3, - "&": 4, - "==": 5, - "===": 5, - "!=": 5, - "!==": 5, - "<": 6, - ">": 6, - "<=": 6, - ">=": 6, - "in": 6, - "instanceof": 6, - ">>": 7, - "<<": 7, - ">>>": 7, - "+": 8, - "-": 8, - "*": 9, - "/": 9, - "%": 9, - "**": 10 - }; - var isClassExtendsClause = function isClassExtendsClause(node, parent) { - return isClass(parent, { - superClass: node - }); - }; - var hasPostfixPart = function hasPostfixPart(node, parent) { - return (isMemberExpression$6(parent) || isOptionalMemberExpression$1(parent)) && parent.object === node || (isCallExpression$6(parent) || isOptionalCallExpression$1(parent) || isNewExpression$3(parent)) && parent.callee === node || isTaggedTemplateExpression(parent) && parent.tag === node || isTSNonNullExpression$1(parent); - }; - function NullableTypeAnnotation$1(node, parent) { - return isArrayTypeAnnotation$1(parent); - } - function FunctionTypeAnnotation$1(node, parent, printStack) { - if (printStack.length < 3) return; - return ( - isUnionTypeAnnotation$1(parent) || - isIntersectionTypeAnnotation(parent) || - isArrayTypeAnnotation$1(parent) || - isTypeAnnotation$1(parent) && - isArrowFunctionExpression(printStack[printStack.length - 3]) - ); - } - function UpdateExpression$2(node, parent) { - return hasPostfixPart(node, parent) || isClassExtendsClause(node, parent); - } - function ObjectExpression$2(node, parent, printStack) { - return isFirstInContext(printStack, 1 | 2); - } - function DoExpression$1(node, parent, printStack) { - return !node.async && isFirstInContext(printStack, 1); - } - function Binary(node, parent) { - if (node.operator === "**" && isBinaryExpression(parent, { - operator: "**" - })) { - return parent.left === node; - } - if (isClassExtendsClause(node, parent)) { - return true; - } - if (hasPostfixPart(node, parent) || isUnaryLike(parent) || isAwaitExpression(parent)) { - return true; - } - if (isBinary(parent)) { - var parentOp = parent.operator; - var parentPos = PRECEDENCE[parentOp]; - var nodeOp = node.operator; - var nodePos = PRECEDENCE[nodeOp]; - if ( - parentPos === nodePos && parent.right === node && !isLogicalExpression(parent) || parentPos > nodePos) { - return true; - } - } - } - function UnionTypeAnnotation$1(node, parent) { - return isArrayTypeAnnotation$1(parent) || isNullableTypeAnnotation(parent) || isIntersectionTypeAnnotation(parent) || isUnionTypeAnnotation$1(parent); - } - function OptionalIndexedAccessType$1(node, parent) { - return isIndexedAccessType(parent, { - objectType: node - }); - } - function TSAsExpression$1() { - return true; - } - function TSUnionType$1(node, parent) { - return isTSArrayType$1(parent) || isTSOptionalType(parent) || isTSIntersectionType(parent) || isTSUnionType(parent) || isTSRestType(parent); - } - function TSInferType$1(node, parent) { - return isTSArrayType$1(parent) || isTSOptionalType(parent); - } - function TSInstantiationExpression$1(node, parent) { - return (isCallExpression$6(parent) || isOptionalCallExpression$1(parent) || isNewExpression$3(parent) || isTSInstantiationExpression(parent)) && !!parent.typeParameters; - } - function BinaryExpression$1(node, parent) { - return node.operator === "in" && (isVariableDeclarator$1(parent) || isFor$1(parent)); - } - function SequenceExpression$2(node, parent) { - if ( - isForStatement$2(parent) || isThrowStatement(parent) || isReturnStatement(parent) || isIfStatement$1(parent) && parent.test === node || isWhileStatement(parent) && parent.test === node || isForInStatement(parent) && parent.right === node || isSwitchStatement(parent) && parent.discriminant === node || isExpressionStatement$2(parent) && parent.expression === node) { - return false; - } - - return true; - } - function YieldExpression$1(node, parent) { - return isBinary(parent) || isUnaryLike(parent) || hasPostfixPart(node, parent) || isAwaitExpression(parent) && isYieldExpression(node) || isConditionalExpression(parent) && node === parent.test || isClassExtendsClause(node, parent); - } - function ClassExpression(node, parent, printStack) { - return isFirstInContext(printStack, 1 | 4); - } - function UnaryLike(node, parent) { - return hasPostfixPart(node, parent) || isBinaryExpression(parent, { - operator: "**", - left: node - }) || isClassExtendsClause(node, parent); - } - function FunctionExpression$1(node, parent, printStack) { - return isFirstInContext(printStack, 1 | 4); - } - function ArrowFunctionExpression$1(node, parent) { - return isExportDeclaration$1(parent) || ConditionalExpression$2(node, parent); - } - function ConditionalExpression$2(node, parent) { - if (isUnaryLike(parent) || isBinary(parent) || isConditionalExpression(parent, { - test: node - }) || isAwaitExpression(parent) || isTSTypeAssertion$1(parent) || isTSAsExpression$1(parent) || isTSSatisfiesExpression$1(parent)) { - return true; - } - return UnaryLike(node, parent); - } - function OptionalMemberExpression$1(node, parent) { - return isCallExpression$6(parent, { - callee: node - }) || isMemberExpression$6(parent, { - object: node - }); - } - function AssignmentExpression$2(node, parent) { - if (isObjectPattern$1(node.left)) { - return true; - } else { - return ConditionalExpression$2(node, parent); - } - } - function LogicalExpression$1(node, parent) { - switch (node.operator) { - case "||": - if (!isLogicalExpression(parent)) return false; - return parent.operator === "??" || parent.operator === "&&"; - case "&&": - return isLogicalExpression(parent, { - operator: "??" - }); - case "??": - return isLogicalExpression(parent) && parent.operator !== "??"; - } - } - function Identifier$1(node, parent, printStack) { - var _node$extra; - if ((_node$extra = node.extra) != null && _node$extra.parenthesized && isAssignmentExpression$2(parent, { - left: node - }) && (isFunctionExpression$1(parent.right) || isClassExpression(parent.right)) && parent.right.id == null) { - return true; - } - if (node.name === "let") { - var isFollowedByBracket = isMemberExpression$6(parent, { - object: node, - computed: true - }) || isOptionalMemberExpression$1(parent, { - object: node, - computed: true, - optional: false - }); - return isFirstInContext(printStack, isFollowedByBracket ? 1 | 8 | 16 | 32 : 32); - } - - return node.name === "async" && isForOfStatement$1(parent) && node === parent.left; - } - - function isFirstInContext(printStack, checkParam) { - var expressionStatement = checkParam & 1; - var arrowBody = checkParam & 2; - var exportDefault = checkParam & 4; - var forHead = checkParam & 8; - var forInHead = checkParam & 16; - var forOfHead = checkParam & 32; - var i = printStack.length - 1; - if (i <= 0) return; - var node = printStack[i]; - i--; - var parent = printStack[i]; - while (i >= 0) { - if (expressionStatement && isExpressionStatement$2(parent, { - expression: node - }) || exportDefault && isExportDefaultDeclaration$1(parent, { - declaration: node - }) || arrowBody && isArrowFunctionExpression(parent, { - body: node - }) || forHead && isForStatement$2(parent, { - init: node - }) || forInHead && isForInStatement(parent, { - left: node - }) || forOfHead && isForOfStatement$1(parent, { - left: node - })) { - return true; - } - if (i > 0 && (hasPostfixPart(node, parent) && !isNewExpression$3(parent) || isSequenceExpression$1(parent) && parent.expressions[0] === node || isUpdateExpression$1(parent) && !parent.prefix || isConditional(parent, { - test: node - }) || isBinary(parent, { - left: node - }) || isAssignmentExpression$2(parent, { - left: node - }))) { - node = parent; - i--; - parent = printStack[i]; - } else { - return false; - } - } - return false; - } - - var parens = /*#__PURE__*/Object.freeze({ - __proto__: null, - NullableTypeAnnotation: NullableTypeAnnotation$1, - FunctionTypeAnnotation: FunctionTypeAnnotation$1, - UpdateExpression: UpdateExpression$2, - ObjectExpression: ObjectExpression$2, - DoExpression: DoExpression$1, - Binary: Binary, - UnionTypeAnnotation: UnionTypeAnnotation$1, - IntersectionTypeAnnotation: UnionTypeAnnotation$1, - OptionalIndexedAccessType: OptionalIndexedAccessType$1, - TSAsExpression: TSAsExpression$1, - TSSatisfiesExpression: TSAsExpression$1, - TSTypeAssertion: TSAsExpression$1, - TSUnionType: TSUnionType$1, - TSIntersectionType: TSUnionType$1, - TSInferType: TSInferType$1, - TSInstantiationExpression: TSInstantiationExpression$1, - BinaryExpression: BinaryExpression$1, - SequenceExpression: SequenceExpression$2, - YieldExpression: YieldExpression$1, - AwaitExpression: YieldExpression$1, - ClassExpression: ClassExpression, - UnaryLike: UnaryLike, - FunctionExpression: FunctionExpression$1, - ArrowFunctionExpression: ArrowFunctionExpression$1, - ConditionalExpression: ConditionalExpression$2, - OptionalMemberExpression: OptionalMemberExpression$1, - OptionalCallExpression: OptionalMemberExpression$1, - AssignmentExpression: AssignmentExpression$2, - LogicalExpression: LogicalExpression$1, - Identifier: Identifier$1 - }); - - var FLIPPED_ALIAS_KEYS = FLIPPED_ALIAS_KEYS$3, - isCallExpression$5 = isCallExpression$8, - isMemberExpression$5 = isMemberExpression$8, - isNewExpression$2 = isNewExpression$4; - function expandAliases(obj) { - var newObj = {}; - function add(type, func) { - var fn = newObj[type]; - newObj[type] = fn ? function (node, parent, stack) { - var result = fn(node, parent, stack); - return result == null ? func(node, parent, stack) : result; - } : func; - } - for (var _i = 0, _Object$keys = Object.keys(obj); _i < _Object$keys.length; _i++) { - var type = _Object$keys[_i]; - var aliases = FLIPPED_ALIAS_KEYS[type]; - if (aliases) { - for (var _iterator = _createForOfIteratorHelperLoose(aliases), _step; !(_step = _iterator()).done;) { - var alias = _step.value; - add(alias, obj[type]); - } - } else { - add(type, obj[type]); - } - } - return newObj; - } - - var expandedParens = expandAliases(parens); - expandAliases(nodes); - function find$2(obj, node, parent, printStack) { - var fn = obj[node.type]; - return fn ? fn(node, parent, printStack) : null; - } - function isOrHasCallExpression(node) { - if (isCallExpression$5(node)) { - return true; - } - return isMemberExpression$5(node) && isOrHasCallExpression(node.object); - } - function needsParens$1(node, parent, printStack) { - if (!parent) return false; - if (isNewExpression$2(parent) && parent.callee === node) { - if (isOrHasCallExpression(node)) return true; - } - return find$2(expandedParens, node, parent, printStack); - } - - function TaggedTemplateExpression$1(node) { - this.print(node.tag, node); - this.print(node.typeParameters, node); - this.print(node.quasi, node); - } - function TemplateElement(node, parent) { - var isFirst = parent.quasis[0] === node; - var isLast = parent.quasis[parent.quasis.length - 1] === node; - var value = (isFirst ? "`" : "}") + node.value.raw + (isLast ? "`" : "${"); - this.token(value, true); - } - function TemplateLiteral$1(node) { - var quasis = node.quasis; - for (var i = 0; i < quasis.length; i++) { - this.print(quasis[i], node); - if (i + 1 < quasis.length) { - this.print(node.expressions[i], node); - } - } - } - - var isCallExpression$4 = isCallExpression$8, - isLiteral$3 = isLiteral$6, - isMemberExpression$4 = isMemberExpression$8, - isNewExpression$1 = isNewExpression$4; - function UnaryExpression$1(node) { - if (node.operator === "void" || node.operator === "delete" || node.operator === "typeof" || - node.operator === "throw") { - this.word(node.operator); - this.space(); - } else { - this.token(node.operator); - } - this.print(node.argument, node); - } - function DoExpression(node) { - if (node.async) { - this.word("async", true); - this.space(); - } - this.word("do"); - this.space(); - this.print(node.body, node); - } - function ParenthesizedExpression$1(node) { - this.tokenChar(40); - this.print(node.expression, node); - this.tokenChar(41); - } - function UpdateExpression$1(node) { - if (node.prefix) { - this.token(node.operator); - this.print(node.argument, node); - } else { - this.printTerminatorless(node.argument, node, true); - this.token(node.operator); - } - } - function ConditionalExpression$1(node) { - this.print(node.test, node); - this.space(); - this.tokenChar(63); - this.space(); - this.print(node.consequent, node); - this.space(); - this.tokenChar(58); - this.space(); - this.print(node.alternate, node); - } - function NewExpression$1(node, parent) { - this.word("new"); - this.space(); - this.print(node.callee, node); - if (this.format.minified && node.arguments.length === 0 && !node.optional && !isCallExpression$4(parent, { - callee: node - }) && !isMemberExpression$4(parent) && !isNewExpression$1(parent)) { - return; - } - this.print(node.typeArguments, node); - this.print(node.typeParameters, node); - - if (node.optional) { - this.token("?."); - } - this.tokenChar(40); - this.printList(node.arguments, node); - this.tokenChar(41); - } - function SequenceExpression$1(node) { - this.printList(node.expressions, node); - } - function ThisExpression() { - this.word("this"); - } - function Super() { - this.word("super"); - } - function isDecoratorMemberExpression(node) { - switch (node.type) { - case "Identifier": - return true; - case "MemberExpression": - return !node.computed && node.property.type === "Identifier" && isDecoratorMemberExpression(node.object); - default: - return false; - } - } - function shouldParenthesizeDecoratorExpression(node) { - if (node.type === "ParenthesizedExpression") { - return false; - } - return !isDecoratorMemberExpression(node.type === "CallExpression" ? node.callee : node); - } - function Decorator(node) { - this.tokenChar(64); - var expression = node.expression; - if (shouldParenthesizeDecoratorExpression(expression)) { - this.tokenChar(40); - this.print(expression, node); - this.tokenChar(41); - } else { - this.print(expression, node); - } - this.newline(); - } - function OptionalMemberExpression(node) { - this.print(node.object, node); - if (!node.computed && isMemberExpression$4(node.property)) { - throw new TypeError("Got a MemberExpression for MemberExpression property"); - } - var computed = node.computed; - if (isLiteral$3(node.property) && typeof node.property.value === "number") { - computed = true; - } - if (node.optional) { - this.token("?."); - } - if (computed) { - this.tokenChar(91); - this.print(node.property, node); - this.tokenChar(93); - } else { - if (!node.optional) { - this.tokenChar(46); - } - this.print(node.property, node); - } - } - function OptionalCallExpression(node) { - this.print(node.callee, node); - this.print(node.typeParameters, node); - - if (node.optional) { - this.token("?."); - } - this.print(node.typeArguments, node); - - this.tokenChar(40); - this.printList(node.arguments, node); - this.tokenChar(41); - } - function CallExpression$1(node) { - this.print(node.callee, node); - this.print(node.typeArguments, node); - this.print(node.typeParameters, node); - this.tokenChar(40); - this.printList(node.arguments, node); - this.tokenChar(41); - } - function Import() { - this.word("import"); - } - function AwaitExpression(node) { - this.word("await"); - if (node.argument) { - this.space(); - this.printTerminatorless(node.argument, node, false); - } - } - function YieldExpression(node) { - this.word("yield", true); - if (node.delegate) { - this.tokenChar(42); - if (node.argument) { - this.space(); - this.print(node.argument, node); - } - } else { - if (node.argument) { - this.space(); - this.printTerminatorless(node.argument, node, false); - } - } - } - function EmptyStatement() { - this.semicolon(true); - } - - function ExpressionStatement(node) { - this.print(node.expression, node); - this.semicolon(); - } - function AssignmentPattern(node) { - this.print(node.left, node); - if (node.left.optional) this.tokenChar(63); - this.print(node.left.typeAnnotation, node); - this.space(); - this.tokenChar(61); - this.space(); - this.print(node.right, node); - } - function AssignmentExpression$1(node, parent) { - var parens = this.inForStatementInitCounter && node.operator === "in" && !needsParens$1(node, parent); - if (parens) { - this.tokenChar(40); - } - this.print(node.left, node); - this.space(); - if (node.operator === "in" || node.operator === "instanceof") { - this.word(node.operator); - } else { - this.token(node.operator); - } - this.space(); - this.print(node.right, node); - if (parens) { - this.tokenChar(41); - } - } - function BindExpression(node) { - this.print(node.object, node); - this.token("::"); - this.print(node.callee, node); - } - function MemberExpression(node) { - this.print(node.object, node); - if (!node.computed && isMemberExpression$4(node.property)) { - throw new TypeError("Got a MemberExpression for MemberExpression property"); - } - var computed = node.computed; - if (isLiteral$3(node.property) && typeof node.property.value === "number") { - computed = true; - } - if (computed) { - this.tokenChar(91); - this.print(node.property, node); - this.tokenChar(93); - } else { - this.tokenChar(46); - this.print(node.property, node); - } - } - function MetaProperty(node) { - this.print(node.meta, node); - this.tokenChar(46); - this.print(node.property, node); - } - function PrivateName(node) { - this.tokenChar(35); - this.print(node.id, node); - } - function V8IntrinsicIdentifier(node) { - this.tokenChar(37); - this.word(node.name); - } - function ModuleExpression(node) { - this.word("module", true); - this.space(); - this.tokenChar(123); - this.indent(); - var body = node.body; - if (body.body.length || body.directives.length) { - this.newline(); - } - this.print(body, node); - this.dedent(); - this.sourceWithOffset("end", node.loc, 0, -1); - this.rightBrace(); - } - - var isFor = isFor$2, - isForStatement$1 = isForStatement$3, - isIfStatement = isIfStatement$2, - isStatement$7 = isStatement$8; - function WithStatement(node) { - this.word("with"); - this.space(); - this.tokenChar(40); - this.print(node.object, node); - this.tokenChar(41); - this.printBlock(node); - } - function IfStatement(node) { - this.word("if"); - this.space(); - this.tokenChar(40); - this.print(node.test, node); - this.tokenChar(41); - this.space(); - var needsBlock = node.alternate && isIfStatement(getLastStatement(node.consequent)); - if (needsBlock) { - this.tokenChar(123); - this.newline(); - this.indent(); - } - this.printAndIndentOnComments(node.consequent, node); - if (needsBlock) { - this.dedent(); - this.newline(); - this.tokenChar(125); - } - if (node.alternate) { - if (this.endsWith(125)) this.space(); - this.word("else"); - this.space(); - this.printAndIndentOnComments(node.alternate, node); - } - } - - function getLastStatement(statement) { - var body = statement.body; - if (isStatement$7(body) === false) { - return statement; - } - return getLastStatement(body); - } - function ForStatement(node) { - this.word("for"); - this.space(); - this.tokenChar(40); - this.inForStatementInitCounter++; - this.print(node.init, node); - this.inForStatementInitCounter--; - this.tokenChar(59); - if (node.test) { - this.space(); - this.print(node.test, node); - } - this.tokenChar(59); - if (node.update) { - this.space(); - this.print(node.update, node); - } - this.tokenChar(41); - this.printBlock(node); - } - function WhileStatement(node) { - this.word("while"); - this.space(); - this.tokenChar(40); - this.print(node.test, node); - this.tokenChar(41); - this.printBlock(node); - } - function ForXStatement(node) { - this.word("for"); - this.space(); - var isForOf = node.type === "ForOfStatement"; - if (isForOf && node["await"]) { - this.word("await"); - this.space(); - } - this.noIndentInnerCommentsHere(); - this.tokenChar(40); - this.print(node.left, node); - this.space(); - this.word(isForOf ? "of" : "in"); - this.space(); - this.print(node.right, node); - this.tokenChar(41); - this.printBlock(node); - } - var ForInStatement = ForXStatement; - var ForOfStatement = ForXStatement; - function DoWhileStatement(node) { - this.word("do"); - this.space(); - this.print(node.body, node); - this.space(); - this.word("while"); - this.space(); - this.tokenChar(40); - this.print(node.test, node); - this.tokenChar(41); - this.semicolon(); - } - function printStatementAfterKeyword(printer, node, parent, isLabel) { - if (node) { - printer.space(); - printer.printTerminatorless(node, parent, isLabel); - } - printer.semicolon(); - } - function BreakStatement(node) { - this.word("break"); - printStatementAfterKeyword(this, node.label, node, true); - } - function ContinueStatement(node) { - this.word("continue"); - printStatementAfterKeyword(this, node.label, node, true); - } - function ReturnStatement(node) { - this.word("return"); - printStatementAfterKeyword(this, node.argument, node, false); - } - function ThrowStatement(node) { - this.word("throw"); - printStatementAfterKeyword(this, node.argument, node, false); - } - function LabeledStatement(node) { - this.print(node.label, node); - this.tokenChar(58); - this.space(); - this.print(node.body, node); - } - function TryStatement(node) { - this.word("try"); - this.space(); - this.print(node.block, node); - this.space(); - - if (node.handlers) { - this.print(node.handlers[0], node); - } else { - this.print(node.handler, node); - } - if (node.finalizer) { - this.space(); - this.word("finally"); - this.space(); - this.print(node.finalizer, node); - } - } - function CatchClause(node) { - this.word("catch"); - this.space(); - if (node.param) { - this.tokenChar(40); - this.print(node.param, node); - this.print(node.param.typeAnnotation, node); - this.tokenChar(41); - this.space(); - } - this.print(node.body, node); - } - function SwitchStatement(node) { - this.word("switch"); - this.space(); - this.tokenChar(40); - this.print(node.discriminant, node); - this.tokenChar(41); - this.space(); - this.tokenChar(123); - this.printSequence(node.cases, node, { - indent: true, - addNewlines: function addNewlines(leading, cas) { - if (!leading && node.cases[node.cases.length - 1] === cas) return -1; - } - }); - this.tokenChar(125); - } - function SwitchCase(node) { - if (node.test) { - this.word("case"); - this.space(); - this.print(node.test, node); - this.tokenChar(58); - } else { - this.word("default"); - this.tokenChar(58); - } - if (node.consequent.length) { - this.newline(); - this.printSequence(node.consequent, node, { - indent: true - }); - } - } - function DebuggerStatement() { - this.word("debugger"); - this.semicolon(); - } - function VariableDeclaration(node, parent) { - if (node.declare) { - this.word("declare"); - this.space(); - } - var kind = node.kind; - this.word(kind, kind === "using"); - this.space(); - var hasInits = false; - if (!isFor(parent)) { - for (var _iterator = _createForOfIteratorHelperLoose(node.declarations), _step; !(_step = _iterator()).done;) { - var declar = _step.value; - if (declar.init) { - hasInits = true; - } - } - } - - this.printList(node.declarations, node, { - separator: hasInits ? function () { - this.tokenChar(44); - this.newline(); - } : undefined, - indent: node.declarations.length > 1 ? true : false - }); - if (isFor(parent)) { - if (isForStatement$1(parent)) { - if (parent.init === node) return; - } else { - if (parent.left === node) return; - } - } - this.semicolon(); - } - function VariableDeclarator$1(node) { - this.print(node.id, node); - if (node.definite) this.tokenChar(33); - this.print(node.id.typeAnnotation, node); - if (node.init) { - this.space(); - this.tokenChar(61); - this.space(); - this.print(node.init, node); - } - } - - var isExportDefaultDeclaration = isExportDefaultDeclaration$3, - isExportNamedDeclaration = isExportNamedDeclaration$2; - function ClassDeclaration(node, parent) { - { - if (!this.format.decoratorsBeforeExport || !isExportDefaultDeclaration(parent) && !isExportNamedDeclaration(parent)) { - this.printJoin(node.decorators, node); - } - } - if (node.declare) { - this.word("declare"); - this.space(); - } - if (node["abstract"]) { - this.word("abstract"); - this.space(); - } - this.word("class"); - if (node.id) { - this.space(); - this.print(node.id, node); - } - this.print(node.typeParameters, node); - if (node.superClass) { - this.space(); - this.word("extends"); - this.space(); - this.print(node.superClass, node); - this.print(node.superTypeParameters, node); - } - if (node["implements"]) { - this.space(); - this.word("implements"); - this.space(); - this.printList(node["implements"], node); - } - this.space(); - this.print(node.body, node); - } - function ClassBody(node) { - this.tokenChar(123); - if (node.body.length === 0) { - this.tokenChar(125); - } else { - this.newline(); - this.indent(); - this.printSequence(node.body, node); - this.dedent(); - if (!this.endsWith(10)) this.newline(); - this.sourceWithOffset("end", node.loc, 0, -1); - this.rightBrace(); - } - } - function ClassProperty(node) { - var _node$key$loc, _node$key$loc$end; - this.printJoin(node.decorators, node); - - var endLine = (_node$key$loc = node.key.loc) == null ? void 0 : (_node$key$loc$end = _node$key$loc.end) == null ? void 0 : _node$key$loc$end.line; - if (endLine) this.catchUp(endLine); - this.tsPrintClassMemberModifiers(node); - if (node.computed) { - this.tokenChar(91); - this.print(node.key, node); - this.tokenChar(93); - } else { - this._variance(node); - this.print(node.key, node); - } - - if (node.optional) { - this.tokenChar(63); - } - if (node.definite) { - this.tokenChar(33); - } - this.print(node.typeAnnotation, node); - if (node.value) { - this.space(); - this.tokenChar(61); - this.space(); - this.print(node.value, node); - } - this.semicolon(); - } - function ClassAccessorProperty(node) { - var _node$key$loc2, _node$key$loc2$end; - this.printJoin(node.decorators, node); - - var endLine = (_node$key$loc2 = node.key.loc) == null ? void 0 : (_node$key$loc2$end = _node$key$loc2.end) == null ? void 0 : _node$key$loc2$end.line; - if (endLine) this.catchUp(endLine); - - this.tsPrintClassMemberModifiers(node); - this.word("accessor", true); - this.space(); - if (node.computed) { - this.tokenChar(91); - this.print(node.key, node); - this.tokenChar(93); - } else { - this._variance(node); - this.print(node.key, node); - } - - if (node.optional) { - this.tokenChar(63); - } - if (node.definite) { - this.tokenChar(33); - } - this.print(node.typeAnnotation, node); - if (node.value) { - this.space(); - this.tokenChar(61); - this.space(); - this.print(node.value, node); - } - this.semicolon(); - } - function ClassPrivateProperty(node) { - this.printJoin(node.decorators, node); - if (node["static"]) { - this.word("static"); - this.space(); - } - this.print(node.key, node); - this.print(node.typeAnnotation, node); - if (node.value) { - this.space(); - this.tokenChar(61); - this.space(); - this.print(node.value, node); - } - this.semicolon(); - } - function ClassMethod(node) { - this._classMethodHead(node); - this.space(); - this.print(node.body, node); - } - function ClassPrivateMethod(node) { - this._classMethodHead(node); - this.space(); - this.print(node.body, node); - } - function _classMethodHead(node) { - var _node$key$loc3, _node$key$loc3$end; - this.printJoin(node.decorators, node); - - var endLine = (_node$key$loc3 = node.key.loc) == null ? void 0 : (_node$key$loc3$end = _node$key$loc3.end) == null ? void 0 : _node$key$loc3$end.line; - if (endLine) this.catchUp(endLine); - this.tsPrintClassMemberModifiers(node); - this._methodHead(node); - } - function StaticBlock(node) { - this.word("static"); - this.space(); - this.tokenChar(123); - if (node.body.length === 0) { - this.tokenChar(125); - } else { - this.newline(); - this.printSequence(node.body, node, { - indent: true - }); - this.sourceWithOffset("end", node.loc, 0, -1); - this.rightBrace(); - } - } - - var isIdentifier$g = isIdentifier$j; - function _params(node) { - this.print(node.typeParameters, node); - this.tokenChar(40); - this._parameters(node.params, node); - this.tokenChar(41); - var noLineTerminator = node.type === "ArrowFunctionExpression"; - this.print(node.returnType, node, noLineTerminator); - this._noLineTerminator = noLineTerminator; - } - function _parameters(parameters, parent) { - var paramLength = parameters.length; - for (var i = 0; i < paramLength; i++) { - this._param(parameters[i], parent); - if (i < parameters.length - 1) { - this.tokenChar(44); - this.space(); - } - } - } - function _param(parameter, parent) { - this.printJoin(parameter.decorators, parameter); - this.print(parameter, parent); - if ( - parameter.optional) { - this.tokenChar(63); - } - - this.print( - parameter.typeAnnotation, parameter); - } - - function _methodHead(node) { - var kind = node.kind; - var key = node.key; - if (kind === "get" || kind === "set") { - this.word(kind); - this.space(); - } - if (node.async) { - this.word("async", true); - this.space(); - } - if (kind === "method" || - kind === "init") { - if (node.generator) { - this.tokenChar(42); - } - } - if (node.computed) { - this.tokenChar(91); - this.print(key, node); - this.tokenChar(93); - } else { - this.print(key, node); - } - if ( - node.optional) { - this.tokenChar(63); - } - this._params(node); - } - function _predicate(node, noLineTerminatorAfter) { - if (node.predicate) { - if (!node.returnType) { - this.tokenChar(58); - } - this.space(); - this.print(node.predicate, node, noLineTerminatorAfter); - } - } - function _functionHead(node) { - if (node.async) { - this.word("async"); - this._endsWithInnerRaw = false; - this.space(); - } - this.word("function"); - if (node.generator) { - this._endsWithInnerRaw = false; - this.tokenChar(42); - } - this.space(); - if (node.id) { - this.print(node.id, node); - } - this._params(node); - if (node.type !== "TSDeclareFunction") { - this._predicate(node); - } - } - function FunctionExpression(node) { - this._functionHead(node); - this.space(); - this.print(node.body, node); - } - function ArrowFunctionExpression(node) { - if (node.async) { - this.word("async", true); - this.space(); - } - - var firstParam; - if (!this.format.retainLines && node.params.length === 1 && isIdentifier$g(firstParam = node.params[0]) && !hasTypesOrComments(node, firstParam)) { - this.print(firstParam, node, true); - } else { - this._params(node); - } - this._predicate(node, true); - this.space(); - this.printInnerComments(); - this.token("=>"); - this.space(); - this.print(node.body, node); - } - function hasTypesOrComments(node, param) { - var _param$leadingComment, _param$trailingCommen; - return !!(node.typeParameters || node.returnType || node.predicate || param.typeAnnotation || param.optional || (_param$leadingComment = param.leadingComments) != null && _param$leadingComment.length || (_param$trailingCommen = param.trailingComments) != null && _param$trailingCommen.length); - } - - var isClassDeclaration = isClassDeclaration$2, - isExportDefaultSpecifier = isExportDefaultSpecifier$1, - isExportNamespaceSpecifier = isExportNamespaceSpecifier$1, - isImportDefaultSpecifier = isImportDefaultSpecifier$1, - isImportNamespaceSpecifier = isImportNamespaceSpecifier$1, - isStatement$6 = isStatement$8; - function ImportSpecifier(node) { - if (node.importKind === "type" || node.importKind === "typeof") { - this.word(node.importKind); - this.space(); - } - this.print(node.imported, node); - if (node.local && node.local.name !== node.imported.name) { - this.space(); - this.word("as"); - this.space(); - this.print(node.local, node); - } - } - function ImportDefaultSpecifier(node) { - this.print(node.local, node); - } - function ExportDefaultSpecifier(node) { - this.print(node.exported, node); - } - function ExportSpecifier(node) { - if (node.exportKind === "type") { - this.word("type"); - this.space(); - } - this.print(node.local, node); - if (node.exported && node.local.name !== node.exported.name) { - this.space(); - this.word("as"); - this.space(); - this.print(node.exported, node); - } - } - function ExportNamespaceSpecifier(node) { - this.tokenChar(42); - this.space(); - this.word("as"); - this.space(); - this.print(node.exported, node); - } - function _printAssertions(node) { - this.word("assert"); - this.space(); - this.tokenChar(123); - this.space(); - this.printList(node.assertions, node); - this.space(); - this.tokenChar(125); - } - function ExportAllDeclaration(node) { - var _node$assertions; - this.word("export"); - this.space(); - if (node.exportKind === "type") { - this.word("type"); - this.space(); - } - this.tokenChar(42); - this.space(); - this.word("from"); - this.space(); - if ((_node$assertions = node.assertions) != null && _node$assertions.length) { - this.print(node.source, node, true); - this.space(); - this._printAssertions(node); - } else { - this.print(node.source, node); - } - this.semicolon(); - } - function ExportNamedDeclaration(node) { - { - if (this.format.decoratorsBeforeExport && isClassDeclaration(node.declaration)) { - this.printJoin(node.declaration.decorators, node); - } - } - this.word("export"); - this.space(); - if (node.declaration) { - var declar = node.declaration; - this.print(declar, node); - if (!isStatement$6(declar)) this.semicolon(); - } else { - if (node.exportKind === "type") { - this.word("type"); - this.space(); - } - var specifiers = node.specifiers.slice(0); - - var hasSpecial = false; - for (;;) { - var first = specifiers[0]; - if (isExportDefaultSpecifier(first) || isExportNamespaceSpecifier(first)) { - hasSpecial = true; - this.print(specifiers.shift(), node); - if (specifiers.length) { - this.tokenChar(44); - this.space(); - } - } else { - break; - } - } - if (specifiers.length || !specifiers.length && !hasSpecial) { - this.tokenChar(123); - if (specifiers.length) { - this.space(); - this.printList(specifiers, node); - this.space(); - } - this.tokenChar(125); - } - if (node.source) { - var _node$assertions2; - this.space(); - this.word("from"); - this.space(); - if ((_node$assertions2 = node.assertions) != null && _node$assertions2.length) { - this.print(node.source, node, true); - this.space(); - this._printAssertions(node); - } else { - this.print(node.source, node); - } - } - this.semicolon(); - } - } - function ExportDefaultDeclaration(node) { - { - if (this.format.decoratorsBeforeExport && isClassDeclaration(node.declaration)) { - this.printJoin(node.declaration.decorators, node); - } - } - this.word("export"); - this.noIndentInnerCommentsHere(); - this.space(); - this.word("default"); - this.space(); - var declar = node.declaration; - this.print(declar, node); - if (!isStatement$6(declar)) this.semicolon(); - } - function ImportDeclaration(node) { - var _node$assertions3; - this.word("import"); - this.space(); - var isTypeKind = node.importKind === "type" || node.importKind === "typeof"; - if (isTypeKind) { - this.noIndentInnerCommentsHere(); - this.word(node.importKind); - this.space(); - } else if (node.module) { - this.noIndentInnerCommentsHere(); - this.word("module"); - this.space(); - } - var specifiers = node.specifiers.slice(0); - var hasSpecifiers = !!specifiers.length; - while (hasSpecifiers) { - var first = specifiers[0]; - if (isImportDefaultSpecifier(first) || isImportNamespaceSpecifier(first)) { - this.print(specifiers.shift(), node); - if (specifiers.length) { - this.tokenChar(44); - this.space(); - } - } else { - break; - } - } - if (specifiers.length) { - this.tokenChar(123); - this.space(); - this.printList(specifiers, node); - this.space(); - this.tokenChar(125); - } else if (isTypeKind && !hasSpecifiers) { - this.tokenChar(123); - this.tokenChar(125); - } - if (hasSpecifiers || isTypeKind) { - this.space(); - this.word("from"); - this.space(); - } - if ((_node$assertions3 = node.assertions) != null && _node$assertions3.length) { - this.print(node.source, node, true); - this.space(); - this._printAssertions(node); - } else { - this.print(node.source, node); - } - { - var _node$attributes; - if ((_node$attributes = node.attributes) != null && _node$attributes.length) { - this.space(); - this.word("with"); - this.space(); - this.printList(node.attributes, node); - } - } - this.semicolon(); - } - function ImportAttribute(node) { - this.print(node.key); - this.tokenChar(58); - this.space(); - this.print(node.value); - } - function ImportNamespaceSpecifier(node) { - this.tokenChar(42); - this.space(); - this.word("as"); - this.space(); - this.print(node.local, node); - } - - var jsesc_1$1; - var hasRequiredJsesc$1; - function requireJsesc$1() { - if (hasRequiredJsesc$1) return jsesc_1$1; - hasRequiredJsesc$1 = 1; - var object = {}; - var hasOwnProperty = object.hasOwnProperty; - var forOwn = function forOwn(object, callback) { - for (var key in object) { - if (hasOwnProperty.call(object, key)) { - callback(key, object[key]); - } - } - }; - var extend = function extend(destination, source) { - if (!source) { - return destination; - } - forOwn(source, function (key, value) { - destination[key] = value; - }); - return destination; - }; - var forEach = function forEach(array, callback) { - var length = array.length; - var index = -1; - while (++index < length) { - callback(array[index]); - } - }; - var fourHexEscape = function fourHexEscape(hex) { - return "\\u" + ('0000' + hex).slice(-4); - }; - var hexadecimal = function hexadecimal(code, lowercase) { - var hexadecimal = code.toString(16); - if (lowercase) return hexadecimal; - return hexadecimal.toUpperCase(); - }; - var toString = object.toString; - var isArray = Array.isArray; - var isBuffer = function isBuffer(value) { - return typeof Buffer$1 === 'function' && Buffer$1.isBuffer(value); - }; - var isObject = function isObject(value) { - return toString.call(value) == '[object Object]'; - }; - var isString = function isString(value) { - return typeof value == 'string' || toString.call(value) == '[object String]'; - }; - var isNumber = function isNumber(value) { - return typeof value == 'number' || toString.call(value) == '[object Number]'; - }; - var isFunction = function isFunction(value) { - return typeof value == 'function'; - }; - var isMap = function isMap(value) { - return toString.call(value) == '[object Map]'; - }; - var isSet = function isSet(value) { - return toString.call(value) == '[object Set]'; - }; - - var singleEscapes = { - '\\': '\\\\', - '\b': '\\b', - '\f': '\\f', - '\n': '\\n', - '\r': '\\r', - '\t': '\\t' - }; - - var regexSingleEscape = /[\\\b\f\n\r\t]/; - var regexDigit = /[0-9]/; - var regexWhitespace = /[\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/; - var escapeEverythingRegex = /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\uD800-\uDFFF])|(['"`])|[^]/g; - var escapeNonAsciiRegex = /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\uD800-\uDFFF])|(['"`])|[^ !#-&\(-\[\]-_a-~]/g; - var jsesc = function jsesc(argument, options) { - var increaseIndentation = function increaseIndentation() { - oldIndent = indent; - ++options.indentLevel; - indent = options.indent.repeat(options.indentLevel); - }; - var defaults = { - 'escapeEverything': false, - 'minimal': false, - 'isScriptContext': false, - 'quotes': 'single', - 'wrap': false, - 'es6': false, - 'json': false, - 'compact': true, - 'lowercaseHex': false, - 'numbers': 'decimal', - 'indent': '\t', - 'indentLevel': 0, - '__inline1__': false, - '__inline2__': false - }; - var json = options && options.json; - if (json) { - defaults.quotes = 'double'; - defaults.wrap = true; - } - options = extend(defaults, options); - if (options.quotes != 'single' && options.quotes != 'double' && options.quotes != 'backtick') { - options.quotes = 'single'; - } - var quote = options.quotes == 'double' ? '"' : options.quotes == 'backtick' ? '`' : '\''; - var compact = options.compact; - var lowercaseHex = options.lowercaseHex; - var indent = options.indent.repeat(options.indentLevel); - var oldIndent = ''; - var inline1 = options.__inline1__; - var inline2 = options.__inline2__; - var newLine = compact ? '' : '\n'; - var result; - var isEmpty = true; - var useBinNumbers = options.numbers == 'binary'; - var useOctNumbers = options.numbers == 'octal'; - var useDecNumbers = options.numbers == 'decimal'; - var useHexNumbers = options.numbers == 'hexadecimal'; - if (json && argument && isFunction(argument.toJSON)) { - argument = argument.toJSON(); - } - if (!isString(argument)) { - if (isMap(argument)) { - if (argument.size == 0) { - return 'new Map()'; - } - if (!compact) { - options.__inline1__ = true; - options.__inline2__ = false; - } - return 'new Map(' + jsesc(Array.from(argument), options) + ')'; - } - if (isSet(argument)) { - if (argument.size == 0) { - return 'new Set()'; - } - return 'new Set(' + jsesc(Array.from(argument), options) + ')'; - } - if (isBuffer(argument)) { - if (argument.length == 0) { - return 'Buffer.from([])'; - } - return 'Buffer.from(' + jsesc(Array.from(argument), options) + ')'; - } - if (isArray(argument)) { - result = []; - options.wrap = true; - if (inline1) { - options.__inline1__ = false; - options.__inline2__ = true; - } - if (!inline2) { - increaseIndentation(); - } - forEach(argument, function (value) { - isEmpty = false; - if (inline2) { - options.__inline2__ = false; - } - result.push((compact || inline2 ? '' : indent) + jsesc(value, options)); - }); - if (isEmpty) { - return '[]'; - } - if (inline2) { - return '[' + result.join(', ') + ']'; - } - return '[' + newLine + result.join(',' + newLine) + newLine + (compact ? '' : oldIndent) + ']'; - } else if (isNumber(argument)) { - if (json) { - return JSON.stringify(argument); - } - if (useDecNumbers) { - return String(argument); - } - if (useHexNumbers) { - var _hexadecimal = argument.toString(16); - if (!lowercaseHex) { - _hexadecimal = _hexadecimal.toUpperCase(); - } - return '0x' + _hexadecimal; - } - if (useBinNumbers) { - return '0b' + argument.toString(2); - } - if (useOctNumbers) { - return '0o' + argument.toString(8); - } - } else if (!isObject(argument)) { - if (json) { - return JSON.stringify(argument) || 'null'; - } - return String(argument); - } else { - result = []; - options.wrap = true; - increaseIndentation(); - forOwn(argument, function (key, value) { - isEmpty = false; - result.push((compact ? '' : indent) + jsesc(key, options) + ':' + (compact ? '' : ' ') + jsesc(value, options)); - }); - if (isEmpty) { - return '{}'; - } - return '{' + newLine + result.join(',' + newLine) + newLine + (compact ? '' : oldIndent) + '}'; - } - } - var regex = options.escapeEverything ? escapeEverythingRegex : escapeNonAsciiRegex; - result = argument.replace(regex, function (_char, pair, lone, quoteChar, index, string) { - if (pair) { - if (options.minimal) return pair; - var first = pair.charCodeAt(0); - var second = pair.charCodeAt(1); - if (options.es6) { - var codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000; - var _hex = hexadecimal(codePoint, lowercaseHex); - return "\\u{" + _hex + '}'; - } - return fourHexEscape(hexadecimal(first, lowercaseHex)) + fourHexEscape(hexadecimal(second, lowercaseHex)); - } - if (lone) { - return fourHexEscape(hexadecimal(lone.charCodeAt(0), lowercaseHex)); - } - if (_char == '\0' && !json && !regexDigit.test(string.charAt(index + 1))) { - return '\\0'; - } - if (quoteChar) { - if (quoteChar == quote || options.escapeEverything) { - return '\\' + quoteChar; - } - return quoteChar; - } - if (regexSingleEscape.test(_char)) { - return singleEscapes[_char]; - } - if (options.minimal && !regexWhitespace.test(_char)) { - return _char; - } - var hex = hexadecimal(_char.charCodeAt(0), lowercaseHex); - if (json || hex.length > 2) { - return fourHexEscape(hex); - } - return '\\x' + ('00' + hex).slice(-2); - }); - if (quote == '`') { - result = result.replace(/\$\{/g, '\\${'); - } - if (options.isScriptContext) { - result = result.replace(/<\/(script|style)/gi, '<\\/$1').replace(/ * (any, kinda silly) +// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0 +// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0 +// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0 +// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0 +// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0 +function replaceTildes (comp, options) { + return comp.trim().split(/\s+/).map(function (comp) { + return replaceTilde(comp, options) + }).join(' ') +} + +function replaceTilde (comp, options) { + var r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE] + return comp.replace(r, function (_, M, m, p, pr) { + debug('tilde', comp, _, M, m, p, pr) + var ret + + if (isX(M)) { + ret = '' + } else if (isX(m)) { + ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0' + } else if (isX(p)) { + // ~1.2 == >=1.2.0 <1.3.0 + ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0' + } else if (pr) { + debug('replaceTilde pr', pr) + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + + ' <' + M + '.' + (+m + 1) + '.0' + } else { + // ~1.2.3 == >=1.2.3 <1.3.0 + ret = '>=' + M + '.' + m + '.' + p + + ' <' + M + '.' + (+m + 1) + '.0' + } + + debug('tilde return', ret) + return ret + }) +} + +// ^ --> * (any, kinda silly) +// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0 +// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0 +// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0 +// ^1.2.3 --> >=1.2.3 <2.0.0 +// ^1.2.0 --> >=1.2.0 <2.0.0 +function replaceCarets (comp, options) { + return comp.trim().split(/\s+/).map(function (comp) { + return replaceCaret(comp, options) + }).join(' ') +} + +function replaceCaret (comp, options) { + debug('caret', comp, options) + var r = options.loose ? re[t.CARETLOOSE] : re[t.CARET] + return comp.replace(r, function (_, M, m, p, pr) { + debug('caret', comp, _, M, m, p, pr) + var ret + + if (isX(M)) { + ret = '' + } else if (isX(m)) { + ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0' + } else if (isX(p)) { + if (M === '0') { + ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0' + } else { + ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0' + } + } else if (pr) { + debug('replaceCaret pr', pr) + if (M === '0') { + if (m === '0') { + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + + ' <' + M + '.' + m + '.' + (+p + 1) + } else { + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + + ' <' + M + '.' + (+m + 1) + '.0' + } + } else { + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + + ' <' + (+M + 1) + '.0.0' + } + } else { + debug('no pr') + if (M === '0') { + if (m === '0') { + ret = '>=' + M + '.' + m + '.' + p + + ' <' + M + '.' + m + '.' + (+p + 1) + } else { + ret = '>=' + M + '.' + m + '.' + p + + ' <' + M + '.' + (+m + 1) + '.0' + } + } else { + ret = '>=' + M + '.' + m + '.' + p + + ' <' + (+M + 1) + '.0.0' + } + } + + debug('caret return', ret) + return ret + }) +} + +function replaceXRanges (comp, options) { + debug('replaceXRanges', comp, options) + return comp.split(/\s+/).map(function (comp) { + return replaceXRange(comp, options) + }).join(' ') +} + +function replaceXRange (comp, options) { + comp = comp.trim() + var r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE] + return comp.replace(r, function (ret, gtlt, M, m, p, pr) { + debug('xRange', comp, ret, gtlt, M, m, p, pr) + var xM = isX(M) + var xm = xM || isX(m) + var xp = xm || isX(p) + var anyX = xp + + if (gtlt === '=' && anyX) { + gtlt = '' + } + + // if we're including prereleases in the match, then we need + // to fix this to -0, the lowest possible prerelease value + pr = options.includePrerelease ? '-0' : '' + + if (xM) { + if (gtlt === '>' || gtlt === '<') { + // nothing is allowed + ret = '<0.0.0-0' + } else { + // nothing is forbidden + ret = '*' + } + } else if (gtlt && anyX) { + // we know patch is an x, because we have any x at all. + // replace X with 0 + if (xm) { + m = 0 + } + p = 0 + + if (gtlt === '>') { + // >1 => >=2.0.0 + // >1.2 => >=1.3.0 + // >1.2.3 => >= 1.2.4 + gtlt = '>=' + if (xm) { + M = +M + 1 + m = 0 + p = 0 + } else { + m = +m + 1 + p = 0 + } + } else if (gtlt === '<=') { + // <=0.7.x is actually <0.8.0, since any 0.7.x should + // pass. Similarly, <=7.x is actually <8.0.0, etc. + gtlt = '<' + if (xm) { + M = +M + 1 + } else { + m = +m + 1 + } + } + + ret = gtlt + M + '.' + m + '.' + p + pr + } else if (xm) { + ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr + } else if (xp) { + ret = '>=' + M + '.' + m + '.0' + pr + + ' <' + M + '.' + (+m + 1) + '.0' + pr + } + + debug('xRange return', ret) + + return ret + }) +} + +// Because * is AND-ed with everything else in the comparator, +// and '' means "any version", just remove the *s entirely. +function replaceStars (comp, options) { + debug('replaceStars', comp, options) + // Looseness is ignored here. star is always as loose as it gets! + return comp.trim().replace(re[t.STAR], '') +} + +// This function is passed to string.replace(re[t.HYPHENRANGE]) +// M, m, patch, prerelease, build +// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 +// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do +// 1.2 - 3.4 => >=1.2.0 <3.5.0 +function hyphenReplace ($0, + from, fM, fm, fp, fpr, fb, + to, tM, tm, tp, tpr, tb) { + if (isX(fM)) { + from = '' + } else if (isX(fm)) { + from = '>=' + fM + '.0.0' + } else if (isX(fp)) { + from = '>=' + fM + '.' + fm + '.0' + } else { + from = '>=' + from + } + + if (isX(tM)) { + to = '' + } else if (isX(tm)) { + to = '<' + (+tM + 1) + '.0.0' + } else if (isX(tp)) { + to = '<' + tM + '.' + (+tm + 1) + '.0' + } else if (tpr) { + to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr + } else { + to = '<=' + to + } + + return (from + ' ' + to).trim() +} + +// if ANY of the sets match ALL of its comparators, then pass +Range.prototype.test = function (version) { + if (!version) { + return false + } + + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options) + } catch (er) { + return false + } + } + + for (var i = 0; i < this.set.length; i++) { + if (testSet(this.set[i], version, this.options)) { + return true + } + } + return false +} + +function testSet (set, version, options) { + for (var i = 0; i < set.length; i++) { + if (!set[i].test(version)) { + return false + } + } + + if (version.prerelease.length && !options.includePrerelease) { + // Find the set of versions that are allowed to have prereleases + // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 + // That should allow `1.2.3-pr.2` to pass. + // However, `1.2.4-alpha.notready` should NOT be allowed, + // even though it's within the range set by the comparators. + for (i = 0; i < set.length; i++) { + debug(set[i].semver) + if (set[i].semver === ANY) { + continue + } + + if (set[i].semver.prerelease.length > 0) { + var allowed = set[i].semver + if (allowed.major === version.major && + allowed.minor === version.minor && + allowed.patch === version.patch) { + return true + } + } + } + + // Version has a -pre, but it's not one of the ones we like. + return false + } + + return true +} + +exports.satisfies = satisfies +function satisfies (version, range, options) { + try { + range = new Range(range, options) + } catch (er) { + return false + } + return range.test(version) +} + +exports.maxSatisfying = maxSatisfying +function maxSatisfying (versions, range, options) { + var max = null + var maxSV = null + try { + var rangeObj = new Range(range, options) + } catch (er) { + return null + } + versions.forEach(function (v) { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!max || maxSV.compare(v) === -1) { + // compare(max, v, true) + max = v + maxSV = new SemVer(max, options) + } + } + }) + return max +} + +exports.minSatisfying = minSatisfying +function minSatisfying (versions, range, options) { + var min = null + var minSV = null + try { + var rangeObj = new Range(range, options) + } catch (er) { + return null + } + versions.forEach(function (v) { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!min || minSV.compare(v) === 1) { + // compare(min, v, true) + min = v + minSV = new SemVer(min, options) + } + } + }) + return min +} + +exports.minVersion = minVersion +function minVersion (range, loose) { + range = new Range(range, loose) + + var minver = new SemVer('0.0.0') + if (range.test(minver)) { + return minver + } + + minver = new SemVer('0.0.0-0') + if (range.test(minver)) { + return minver + } + + minver = null + for (var i = 0; i < range.set.length; ++i) { + var comparators = range.set[i] + + comparators.forEach(function (comparator) { + // Clone to avoid manipulating the comparator's semver object. + var compver = new SemVer(comparator.semver.version) + switch (comparator.operator) { + case '>': + if (compver.prerelease.length === 0) { + compver.patch++ + } else { + compver.prerelease.push(0) + } + compver.raw = compver.format() + /* fallthrough */ + case '': + case '>=': + if (!minver || gt(minver, compver)) { + minver = compver + } + break + case '<': + case '<=': + /* Ignore maximum versions */ + break + /* istanbul ignore next */ + default: + throw new Error('Unexpected operation: ' + comparator.operator) + } + }) + } + + if (minver && range.test(minver)) { + return minver + } + + return null +} + +exports.validRange = validRange +function validRange (range, options) { + try { + // Return '*' instead of '' so that truthiness works. + // This will throw if it's invalid anyway + return new Range(range, options).range || '*' + } catch (er) { + return null + } +} + +// Determine if version is less than all the versions possible in the range +exports.ltr = ltr +function ltr (version, range, options) { + return outside(version, range, '<', options) +} + +// Determine if version is greater than all the versions possible in the range. +exports.gtr = gtr +function gtr (version, range, options) { + return outside(version, range, '>', options) +} + +exports.outside = outside +function outside (version, range, hilo, options) { + version = new SemVer(version, options) + range = new Range(range, options) + + var gtfn, ltefn, ltfn, comp, ecomp + switch (hilo) { + case '>': + gtfn = gt + ltefn = lte + ltfn = lt + comp = '>' + ecomp = '>=' + break + case '<': + gtfn = lt + ltefn = gte + ltfn = gt + comp = '<' + ecomp = '<=' + break + default: + throw new TypeError('Must provide a hilo val of "<" or ">"') + } + + // If it satisifes the range it is not outside + if (satisfies(version, range, options)) { + return false + } + + // From now on, variable terms are as if we're in "gtr" mode. + // but note that everything is flipped for the "ltr" function. + + for (var i = 0; i < range.set.length; ++i) { + var comparators = range.set[i] + + var high = null + var low = null + + comparators.forEach(function (comparator) { + if (comparator.semver === ANY) { + comparator = new Comparator('>=0.0.0') + } + high = high || comparator + low = low || comparator + if (gtfn(comparator.semver, high.semver, options)) { + high = comparator + } else if (ltfn(comparator.semver, low.semver, options)) { + low = comparator + } + }) + + // If the edge version comparator has a operator then our version + // isn't outside it + if (high.operator === comp || high.operator === ecomp) { + return false + } + + // If the lowest version comparator has an operator and our version + // is less than it then it isn't higher than the range + if ((!low.operator || low.operator === comp) && + ltefn(version, low.semver)) { + return false + } else if (low.operator === ecomp && ltfn(version, low.semver)) { + return false + } + } + return true +} + +exports.prerelease = prerelease +function prerelease (version, options) { + var parsed = parse(version, options) + return (parsed && parsed.prerelease.length) ? parsed.prerelease : null +} + +exports.intersects = intersects +function intersects (r1, r2, options) { + r1 = new Range(r1, options) + r2 = new Range(r2, options) + return r1.intersects(r2) +} + +exports.coerce = coerce +function coerce (version, options) { + if (version instanceof SemVer) { + return version + } + + if (typeof version === 'number') { + version = String(version) + } + + if (typeof version !== 'string') { + return null + } + + options = options || {} + + var match = null + if (!options.rtl) { + match = version.match(re[t.COERCE]) + } else { + // Find the right-most coercible string that does not share + // a terminus with a more left-ward coercible string. + // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4' + // + // Walk through the string checking with a /g regexp + // Manually set the index so as to pick up overlapping matches. + // Stop when we get a match that ends at the string end, since no + // coercible string can be more right-ward without the same terminus. + var next + while ((next = re[t.COERCERTL].exec(version)) && + (!match || match.index + match[0].length !== version.length) + ) { + if (!match || + next.index + next[0].length !== match.index + match[0].length) { + match = next + } + re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length + } + // leave it in a clean state + re[t.COERCERTL].lastIndex = -1 + } + + if (match === null) { + return null + } + + return parse(match[2] + + '.' + (match[3] || '0') + + '.' + (match[4] || '0'), options) +} + + +/***/ }), + +/***/ 2332: +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + +const os = __webpack_require__(2037); +const hasFlag = __webpack_require__(419); + +const env = process.env; + +let forceColor; +if (hasFlag('no-color') || + hasFlag('no-colors') || + hasFlag('color=false')) { + forceColor = false; +} else if (hasFlag('color') || + hasFlag('colors') || + hasFlag('color=true') || + hasFlag('color=always')) { + forceColor = true; +} +if ('FORCE_COLOR' in env) { + forceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0; +} + +function translateLevel(level) { + if (level === 0) { + return false; + } + + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; +} + +function supportsColor(stream) { + if (forceColor === false) { + return 0; + } + + if (hasFlag('color=16m') || + hasFlag('color=full') || + hasFlag('color=truecolor')) { + return 3; + } + + if (hasFlag('color=256')) { + return 2; + } + + if (stream && !stream.isTTY && forceColor !== true) { + return 0; + } + + const min = forceColor ? 1 : 0; + + if (process.platform === 'win32') { + // Node.js 7.5.0 is the first version of Node.js to include a patch to + // libuv that enables 256 color output on Windows. Anything earlier and it + // won't work. However, here we target Node.js 8 at minimum as it is an LTS + // release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows + // release that supports 256 colors. Windows 10 build 14931 is the first release + // that supports 16m/TrueColor. + const osRelease = os.release().split('.'); + if ( + Number(process.versions.node.split('.')[0]) >= 8 && + Number(osRelease[0]) >= 10 && + Number(osRelease[2]) >= 10586 + ) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } + + return 1; + } + + if ('CI' in env) { + if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') { + return 1; + } + + return min; + } + + if ('TEAMCITY_VERSION' in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + } + + if (env.COLORTERM === 'truecolor') { + return 3; + } + + if ('TERM_PROGRAM' in env) { + const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); + + switch (env.TERM_PROGRAM) { + case 'iTerm.app': + return version >= 3 ? 3 : 2; + case 'Apple_Terminal': + return 2; + // No default + } + } + + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } + + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } + + if ('COLORTERM' in env) { + return 1; + } + + if (env.TERM === 'dumb') { + return min; + } + + return min; +} + +function getSupportLevel(stream) { + const level = supportsColor(stream); + return translateLevel(level); +} + +module.exports = { + supportsColor: getSupportLevel, + stdout: getSupportLevel(process.stdout), + stderr: getSupportLevel(process.stderr) +}; + + +/***/ }), + +/***/ 2242: +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + +const os = __webpack_require__(2037); +const tty = __webpack_require__(6224); +const hasFlag = __webpack_require__(3975); + +const {env} = process; + +let forceColor; +if (hasFlag('no-color') || + hasFlag('no-colors') || + hasFlag('color=false') || + hasFlag('color=never')) { + forceColor = 0; +} else if (hasFlag('color') || + hasFlag('colors') || + hasFlag('color=true') || + hasFlag('color=always')) { + forceColor = 1; +} + +if ('FORCE_COLOR' in env) { + if (env.FORCE_COLOR === 'true') { + forceColor = 1; + } else if (env.FORCE_COLOR === 'false') { + forceColor = 0; + } else { + forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3); + } +} + +function translateLevel(level) { + if (level === 0) { + return false; + } + + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; +} + +function supportsColor(haveStream, streamIsTTY) { + if (forceColor === 0) { + return 0; + } + + if (hasFlag('color=16m') || + hasFlag('color=full') || + hasFlag('color=truecolor')) { + return 3; + } + + if (hasFlag('color=256')) { + return 2; + } + + if (haveStream && !streamIsTTY && forceColor === undefined) { + return 0; + } + + const min = forceColor || 0; + + if (env.TERM === 'dumb') { + return min; + } + + if (process.platform === 'win32') { + // Windows 10 build 10586 is the first Windows release that supports 256 colors. + // Windows 10 build 14931 is the first release that supports 16m/TrueColor. + const osRelease = os.release().split('.'); + if ( + Number(osRelease[0]) >= 10 && + Number(osRelease[2]) >= 10586 + ) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } + + return 1; + } + + if ('CI' in env) { + if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') { + return 1; + } + + return min; + } + + if ('TEAMCITY_VERSION' in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + } + + if (env.COLORTERM === 'truecolor') { + return 3; + } + + if ('TERM_PROGRAM' in env) { + const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); + + switch (env.TERM_PROGRAM) { + case 'iTerm.app': + return version >= 3 ? 3 : 2; + case 'Apple_Terminal': + return 2; + // No default + } + } + + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } + + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } + + if ('COLORTERM' in env) { + return 1; + } + + return min; +} + +function getSupportLevel(stream) { + const level = supportsColor(stream, stream && stream.isTTY); + return translateLevel(level); +} + +module.exports = { + supportsColor: getSupportLevel, + stdout: translateLevel(supportsColor(true, tty.isatty(1))), + stderr: translateLevel(supportsColor(true, tty.isatty(2))) +}; + + +/***/ }), + +/***/ 6802: +/***/ (function(module) { + +"use strict"; + + +let fastProto = null; + +// Creates an object with permanently fast properties in V8. See Toon Verwaest's +// post https://medium.com/@tverwaes/setting-up-prototypes-in-v8-ec9c9491dfe2#5f62 +// for more details. Use %HasFastProperties(object) and the Node.js flag +// --allow-natives-syntax to check whether an object has fast properties. +function FastObject(o) { + // A prototype object will have "fast properties" enabled once it is checked + // against the inline property cache of a function, e.g. fastProto.property: + // https://github.com/v8/v8/blob/6.0.122/test/mjsunit/fast-prototype.js#L48-L63 + if (fastProto !== null && typeof fastProto.property) { + const result = fastProto; + fastProto = FastObject.prototype = null; + return result; + } + fastProto = FastObject.prototype = o == null ? Object.create(null) : o; + return new FastObject; +} + +// Initialize the inline property cache of FastObject +FastObject(); + +module.exports = function toFastproperties(o) { + return FastObject(o); +}; + + +/***/ }), + +/***/ 2889: +/***/ (function(module) { + +"use strict"; + +module.exports = function (Yallist) { + Yallist.prototype[Symbol.iterator] = function* () { + for (let walker = this.head; walker; walker = walker.next) { + yield walker.value + } + } +} + + +/***/ }), + +/***/ 5358: +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + +module.exports = Yallist + +Yallist.Node = Node +Yallist.create = Yallist + +function Yallist (list) { + var self = this + if (!(self instanceof Yallist)) { + self = new Yallist() + } + + self.tail = null + self.head = null + self.length = 0 + + if (list && typeof list.forEach === 'function') { + list.forEach(function (item) { + self.push(item) + }) + } else if (arguments.length > 0) { + for (var i = 0, l = arguments.length; i < l; i++) { + self.push(arguments[i]) + } + } + + return self +} + +Yallist.prototype.removeNode = function (node) { + if (node.list !== this) { + throw new Error('removing node which does not belong to this list') + } + + var next = node.next + var prev = node.prev + + if (next) { + next.prev = prev + } + + if (prev) { + prev.next = next + } + + if (node === this.head) { + this.head = next + } + if (node === this.tail) { + this.tail = prev + } + + node.list.length-- + node.next = null + node.prev = null + node.list = null + + return next +} + +Yallist.prototype.unshiftNode = function (node) { + if (node === this.head) { + return + } + + if (node.list) { + node.list.removeNode(node) + } + + var head = this.head + node.list = this + node.next = head + if (head) { + head.prev = node + } + + this.head = node + if (!this.tail) { + this.tail = node + } + this.length++ +} + +Yallist.prototype.pushNode = function (node) { + if (node === this.tail) { + return + } + + if (node.list) { + node.list.removeNode(node) + } + + var tail = this.tail + node.list = this + node.prev = tail + if (tail) { + tail.next = node + } + + this.tail = node + if (!this.head) { + this.head = node + } + this.length++ +} + +Yallist.prototype.push = function () { + for (var i = 0, l = arguments.length; i < l; i++) { + push(this, arguments[i]) + } + return this.length +} + +Yallist.prototype.unshift = function () { + for (var i = 0, l = arguments.length; i < l; i++) { + unshift(this, arguments[i]) + } + return this.length +} + +Yallist.prototype.pop = function () { + if (!this.tail) { + return undefined + } + + var res = this.tail.value + this.tail = this.tail.prev + if (this.tail) { + this.tail.next = null + } else { + this.head = null + } + this.length-- + return res +} + +Yallist.prototype.shift = function () { + if (!this.head) { + return undefined + } + + var res = this.head.value + this.head = this.head.next + if (this.head) { + this.head.prev = null + } else { + this.tail = null + } + this.length-- + return res +} + +Yallist.prototype.forEach = function (fn, thisp) { + thisp = thisp || this + for (var walker = this.head, i = 0; walker !== null; i++) { + fn.call(thisp, walker.value, i, this) + walker = walker.next + } +} + +Yallist.prototype.forEachReverse = function (fn, thisp) { + thisp = thisp || this + for (var walker = this.tail, i = this.length - 1; walker !== null; i--) { + fn.call(thisp, walker.value, i, this) + walker = walker.prev + } +} + +Yallist.prototype.get = function (n) { + for (var i = 0, walker = this.head; walker !== null && i < n; i++) { + // abort out of the list early if we hit a cycle + walker = walker.next + } + if (i === n && walker !== null) { + return walker.value + } +} + +Yallist.prototype.getReverse = function (n) { + for (var i = 0, walker = this.tail; walker !== null && i < n; i++) { + // abort out of the list early if we hit a cycle + walker = walker.prev + } + if (i === n && walker !== null) { + return walker.value + } +} + +Yallist.prototype.map = function (fn, thisp) { + thisp = thisp || this + var res = new Yallist() + for (var walker = this.head; walker !== null;) { + res.push(fn.call(thisp, walker.value, this)) + walker = walker.next + } + return res +} + +Yallist.prototype.mapReverse = function (fn, thisp) { + thisp = thisp || this + var res = new Yallist() + for (var walker = this.tail; walker !== null;) { + res.push(fn.call(thisp, walker.value, this)) + walker = walker.prev + } + return res +} + +Yallist.prototype.reduce = function (fn, initial) { + var acc + var walker = this.head + if (arguments.length > 1) { + acc = initial + } else if (this.head) { + walker = this.head.next + acc = this.head.value + } else { + throw new TypeError('Reduce of empty list with no initial value') + } + + for (var i = 0; walker !== null; i++) { + acc = fn(acc, walker.value, i) + walker = walker.next + } + + return acc +} + +Yallist.prototype.reduceReverse = function (fn, initial) { + var acc + var walker = this.tail + if (arguments.length > 1) { + acc = initial + } else if (this.tail) { + walker = this.tail.prev + acc = this.tail.value + } else { + throw new TypeError('Reduce of empty list with no initial value') + } + + for (var i = this.length - 1; walker !== null; i--) { + acc = fn(acc, walker.value, i) + walker = walker.prev + } + + return acc +} + +Yallist.prototype.toArray = function () { + var arr = new Array(this.length) + for (var i = 0, walker = this.head; walker !== null; i++) { + arr[i] = walker.value + walker = walker.next + } + return arr +} + +Yallist.prototype.toArrayReverse = function () { + var arr = new Array(this.length) + for (var i = 0, walker = this.tail; walker !== null; i++) { + arr[i] = walker.value + walker = walker.prev + } + return arr +} + +Yallist.prototype.slice = function (from, to) { + to = to || this.length + if (to < 0) { + to += this.length + } + from = from || 0 + if (from < 0) { + from += this.length + } + var ret = new Yallist() + if (to < from || to < 0) { + return ret + } + if (from < 0) { + from = 0 + } + if (to > this.length) { + to = this.length + } + for (var i = 0, walker = this.head; walker !== null && i < from; i++) { + walker = walker.next + } + for (; walker !== null && i < to; i++, walker = walker.next) { + ret.push(walker.value) + } + return ret +} + +Yallist.prototype.sliceReverse = function (from, to) { + to = to || this.length + if (to < 0) { + to += this.length + } + from = from || 0 + if (from < 0) { + from += this.length + } + var ret = new Yallist() + if (to < from || to < 0) { + return ret + } + if (from < 0) { + from = 0 + } + if (to > this.length) { + to = this.length + } + for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) { + walker = walker.prev + } + for (; walker !== null && i > from; i--, walker = walker.prev) { + ret.push(walker.value) + } + return ret +} + +Yallist.prototype.splice = function (start, deleteCount /*, ...nodes */) { + if (start > this.length) { + start = this.length - 1 + } + if (start < 0) { + start = this.length + start; + } + + for (var i = 0, walker = this.head; walker !== null && i < start; i++) { + walker = walker.next + } + + var ret = [] + for (var i = 0; walker && i < deleteCount; i++) { + ret.push(walker.value) + walker = this.removeNode(walker) + } + if (walker === null) { + walker = this.tail + } + + if (walker !== this.head && walker !== this.tail) { + walker = walker.prev + } + + for (var i = 2; i < arguments.length; i++) { + walker = insert(this, walker, arguments[i]) + } + return ret; +} + +Yallist.prototype.reverse = function () { + var head = this.head + var tail = this.tail + for (var walker = head; walker !== null; walker = walker.prev) { + var p = walker.prev + walker.prev = walker.next + walker.next = p + } + this.head = tail + this.tail = head + return this +} + +function insert (self, node, value) { + var inserted = node === self.head ? + new Node(value, null, node, self) : + new Node(value, node, node.next, self) + + if (inserted.next === null) { + self.tail = inserted + } + if (inserted.prev === null) { + self.head = inserted + } + + self.length++ + + return inserted +} + +function push (self, item) { + self.tail = new Node(item, self.tail, null, self) + if (!self.head) { + self.head = self.tail + } + self.length++ +} + +function unshift (self, item) { + self.head = new Node(item, null, self.head, self) + if (!self.tail) { + self.tail = self.head + } + self.length++ +} + +function Node (value, prev, next, list) { + if (!(this instanceof Node)) { + return new Node(value, prev, next, list) + } + + this.list = list + this.value = value + + if (prev) { + prev.next = this + this.prev = prev + } else { + this.prev = null + } + + if (next) { + next.prev = this + this.next = next + } else { + this.next = null + } +} + +try { + // add if support for Symbol.iterator is present + __webpack_require__(2889)(Yallist) +} catch (er) {} + + +/***/ }), + +/***/ 2588: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.codeFrameColumns = codeFrameColumns; +exports["default"] = _default; + +var _highlight = __webpack_require__(505); + +let deprecationWarningShown = false; + +function getDefs(chalk) { + return { + gutter: chalk.grey, + marker: chalk.red.bold, + message: chalk.red.bold + }; +} + +const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; + +function getMarkerLines(loc, source, opts) { + const startLoc = Object.assign({ + column: 0, + line: -1 + }, loc.start); + const endLoc = Object.assign({}, startLoc, loc.end); + const { + linesAbove = 2, + linesBelow = 3 + } = opts || {}; + const startLine = startLoc.line; + const startColumn = startLoc.column; + const endLine = endLoc.line; + const endColumn = endLoc.column; + let start = Math.max(startLine - (linesAbove + 1), 0); + let end = Math.min(source.length, endLine + linesBelow); + + if (startLine === -1) { + start = 0; + } + + if (endLine === -1) { + end = source.length; + } + + const lineDiff = endLine - startLine; + const markerLines = {}; + + if (lineDiff) { + for (let i = 0; i <= lineDiff; i++) { + const lineNumber = i + startLine; + + if (!startColumn) { + markerLines[lineNumber] = true; + } else if (i === 0) { + const sourceLength = source[lineNumber - 1].length; + markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1]; + } else if (i === lineDiff) { + markerLines[lineNumber] = [0, endColumn]; + } else { + const sourceLength = source[lineNumber - i].length; + markerLines[lineNumber] = [0, sourceLength]; + } + } + } else { + if (startColumn === endColumn) { + if (startColumn) { + markerLines[startLine] = [startColumn, 0]; + } else { + markerLines[startLine] = true; + } + } else { + markerLines[startLine] = [startColumn, endColumn - startColumn]; + } + } + + return { + start, + end, + markerLines + }; +} + +function codeFrameColumns(rawLines, loc, opts = {}) { + const highlighted = (opts.highlightCode || opts.forceColor) && (0, _highlight.shouldHighlight)(opts); + const chalk = (0, _highlight.getChalk)(opts); + const defs = getDefs(chalk); + + const maybeHighlight = (chalkFn, string) => { + return highlighted ? chalkFn(string) : string; + }; + + const lines = rawLines.split(NEWLINE); + const { + start, + end, + markerLines + } = getMarkerLines(loc, lines, opts); + const hasColumns = loc.start && typeof loc.start.column === "number"; + const numberMaxWidth = String(end).length; + const highlightedLines = highlighted ? (0, _highlight.default)(rawLines, opts) : rawLines; + let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line, index) => { + const number = start + 1 + index; + const paddedNumber = ` ${number}`.slice(-numberMaxWidth); + const gutter = ` ${paddedNumber} |`; + const hasMarker = markerLines[number]; + const lastMarkerLine = !markerLines[number + 1]; + + if (hasMarker) { + let markerLine = ""; + + if (Array.isArray(hasMarker)) { + const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " "); + const numberOfMarkers = hasMarker[1] || 1; + markerLine = ["\n ", maybeHighlight(defs.gutter, gutter.replace(/\d/g, " ")), " ", markerSpacing, maybeHighlight(defs.marker, "^").repeat(numberOfMarkers)].join(""); + + if (lastMarkerLine && opts.message) { + markerLine += " " + maybeHighlight(defs.message, opts.message); + } + } + + return [maybeHighlight(defs.marker, ">"), maybeHighlight(defs.gutter, gutter), line.length > 0 ? ` ${line}` : "", markerLine].join(""); + } else { + return ` ${maybeHighlight(defs.gutter, gutter)}${line.length > 0 ? ` ${line}` : ""}`; + } + }).join("\n"); + + if (opts.message && !hasColumns) { + frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`; + } + + if (highlighted) { + return chalk.reset(frame); + } else { + return frame; + } +} + +function _default(rawLines, lineNumber, colNumber, opts = {}) { + if (!deprecationWarningShown) { + deprecationWarningShown = true; + const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`."; + + if (process.emitWarning) { + process.emitWarning(message, "DeprecationWarning"); + } else { + const deprecationError = new Error(message); + deprecationError.name = "DeprecationWarning"; + console.warn(new Error(message)); + } + } + + colNumber = Math.max(colNumber, 0); + const location = { + start: { + column: colNumber, + line: lineNumber + } + }; + return codeFrameColumns(rawLines, location, opts); +} + +/***/ }), + +/***/ 8349: +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +module.exports = __webpack_require__(9633); + + +/***/ }), + +/***/ 7203: +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +module.exports = __webpack_require__(2787); + + +/***/ }), + +/***/ 6846: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.assertSimpleType = assertSimpleType; +exports.makeStrongCache = makeStrongCache; +exports.makeStrongCacheSync = makeStrongCacheSync; +exports.makeWeakCache = makeWeakCache; +exports.makeWeakCacheSync = makeWeakCacheSync; +function _gensync() { + const data = __webpack_require__(3531); + _gensync = function () { + return data; + }; + return data; +} +var _async = __webpack_require__(5591); +var _util = __webpack_require__(734); +const synchronize = gen => { + return _gensync()(gen).sync; +}; +function* genTrue() { + return true; +} +function makeWeakCache(handler) { + return makeCachedFunction(WeakMap, handler); +} +function makeWeakCacheSync(handler) { + return synchronize(makeWeakCache(handler)); +} +function makeStrongCache(handler) { + return makeCachedFunction(Map, handler); +} +function makeStrongCacheSync(handler) { + return synchronize(makeStrongCache(handler)); +} +function makeCachedFunction(CallCache, handler) { + const callCacheSync = new CallCache(); + const callCacheAsync = new CallCache(); + const futureCache = new CallCache(); + return function* cachedFunction(arg, data) { + const asyncContext = yield* (0, _async.isAsync)(); + const callCache = asyncContext ? callCacheAsync : callCacheSync; + const cached = yield* getCachedValueOrWait(asyncContext, callCache, futureCache, arg, data); + if (cached.valid) return cached.value; + const cache = new CacheConfigurator(data); + const handlerResult = handler(arg, cache); + let finishLock; + let value; + if ((0, _util.isIterableIterator)(handlerResult)) { + value = yield* (0, _async.onFirstPause)(handlerResult, () => { + finishLock = setupAsyncLocks(cache, futureCache, arg); + }); + } else { + value = handlerResult; + } + updateFunctionCache(callCache, cache, arg, value); + if (finishLock) { + futureCache.delete(arg); + finishLock.release(value); + } + return value; + }; +} +function* getCachedValue(cache, arg, data) { + const cachedValue = cache.get(arg); + if (cachedValue) { + for (const { + value, + valid + } of cachedValue) { + if (yield* valid(data)) return { + valid: true, + value + }; + } + } + return { + valid: false, + value: null + }; +} +function* getCachedValueOrWait(asyncContext, callCache, futureCache, arg, data) { + const cached = yield* getCachedValue(callCache, arg, data); + if (cached.valid) { + return cached; + } + if (asyncContext) { + const cached = yield* getCachedValue(futureCache, arg, data); + if (cached.valid) { + const value = yield* (0, _async.waitFor)(cached.value.promise); + return { + valid: true, + value + }; + } + } + return { + valid: false, + value: null + }; +} +function setupAsyncLocks(config, futureCache, arg) { + const finishLock = new Lock(); + updateFunctionCache(futureCache, config, arg, finishLock); + return finishLock; +} +function updateFunctionCache(cache, config, arg, value) { + if (!config.configured()) config.forever(); + let cachedValue = cache.get(arg); + config.deactivate(); + switch (config.mode()) { + case "forever": + cachedValue = [{ + value, + valid: genTrue + }]; + cache.set(arg, cachedValue); + break; + case "invalidate": + cachedValue = [{ + value, + valid: config.validator() + }]; + cache.set(arg, cachedValue); + break; + case "valid": + if (cachedValue) { + cachedValue.push({ + value, + valid: config.validator() + }); + } else { + cachedValue = [{ + value, + valid: config.validator() + }]; + cache.set(arg, cachedValue); + } + } +} +class CacheConfigurator { + constructor(data) { + this._active = true; + this._never = false; + this._forever = false; + this._invalidate = false; + this._configured = false; + this._pairs = []; + this._data = void 0; + this._data = data; + } + simple() { + return makeSimpleConfigurator(this); + } + mode() { + if (this._never) return "never"; + if (this._forever) return "forever"; + if (this._invalidate) return "invalidate"; + return "valid"; + } + forever() { + if (!this._active) { + throw new Error("Cannot change caching after evaluation has completed."); + } + if (this._never) { + throw new Error("Caching has already been configured with .never()"); + } + this._forever = true; + this._configured = true; + } + never() { + if (!this._active) { + throw new Error("Cannot change caching after evaluation has completed."); + } + if (this._forever) { + throw new Error("Caching has already been configured with .forever()"); + } + this._never = true; + this._configured = true; + } + using(handler) { + if (!this._active) { + throw new Error("Cannot change caching after evaluation has completed."); + } + if (this._never || this._forever) { + throw new Error("Caching has already been configured with .never or .forever()"); + } + this._configured = true; + const key = handler(this._data); + const fn = (0, _async.maybeAsync)(handler, `You appear to be using an async cache handler, but Babel has been called synchronously`); + if ((0, _async.isThenable)(key)) { + return key.then(key => { + this._pairs.push([key, fn]); + return key; + }); + } + this._pairs.push([key, fn]); + return key; + } + invalidate(handler) { + this._invalidate = true; + return this.using(handler); + } + validator() { + const pairs = this._pairs; + return function* (data) { + for (const [key, fn] of pairs) { + if (key !== (yield* fn(data))) return false; + } + return true; + }; + } + deactivate() { + this._active = false; + } + configured() { + return this._configured; + } +} +function makeSimpleConfigurator(cache) { + function cacheFn(val) { + if (typeof val === "boolean") { + if (val) cache.forever();else cache.never(); + return; + } + return cache.using(() => assertSimpleType(val())); + } + cacheFn.forever = () => cache.forever(); + cacheFn.never = () => cache.never(); + cacheFn.using = cb => cache.using(() => assertSimpleType(cb())); + cacheFn.invalidate = cb => cache.invalidate(() => assertSimpleType(cb())); + return cacheFn; +} +function assertSimpleType(value) { + if ((0, _async.isThenable)(value)) { + throw new Error(`You appear to be using an async cache handler, ` + `which your current version of Babel does not support. ` + `We may add support for this in the future, ` + `but if you're on the most recent version of @babel/core and still ` + `seeing this error, then you'll need to synchronously handle your caching logic.`); + } + if (value != null && typeof value !== "string" && typeof value !== "boolean" && typeof value !== "number") { + throw new Error("Cache keys must be either string, boolean, number, null, or undefined."); + } + return value; +} +class Lock { + constructor() { + this.released = false; + this.promise = void 0; + this._resolve = void 0; + this.promise = new Promise(resolve => { + this._resolve = resolve; + }); + } + release(value) { + this.released = true; + this._resolve(value); + } +} +0 && 0; + +//# sourceMappingURL=caching.js.map + + +/***/ }), + +/***/ 2100: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.buildPresetChain = buildPresetChain; +exports.buildPresetChainWalker = void 0; +exports.buildRootChain = buildRootChain; +function _path() { + const data = __webpack_require__(1017); + _path = function () { + return data; + }; + return data; +} +function _debug() { + const data = __webpack_require__(2731); + _debug = function () { + return data; + }; + return data; +} +var _options = __webpack_require__(2306); +var _patternToRegex = __webpack_require__(2775); +var _printer = __webpack_require__(5077); +var _rewriteStackTrace = __webpack_require__(6772); +var _configError = __webpack_require__(1388); +var _files = __webpack_require__(3355); +var _caching = __webpack_require__(6846); +var _configDescriptors = __webpack_require__(7756); +const debug = _debug()("babel:config:config-chain"); +function* buildPresetChain(arg, context) { + const chain = yield* buildPresetChainWalker(arg, context); + if (!chain) return null; + return { + plugins: dedupDescriptors(chain.plugins), + presets: dedupDescriptors(chain.presets), + options: chain.options.map(o => normalizeOptions(o)), + files: new Set() + }; +} +const buildPresetChainWalker = makeChainWalker({ + root: preset => loadPresetDescriptors(preset), + env: (preset, envName) => loadPresetEnvDescriptors(preset)(envName), + overrides: (preset, index) => loadPresetOverridesDescriptors(preset)(index), + overridesEnv: (preset, index, envName) => loadPresetOverridesEnvDescriptors(preset)(index)(envName), + createLogger: () => () => {} +}); +exports.buildPresetChainWalker = buildPresetChainWalker; +const loadPresetDescriptors = (0, _caching.makeWeakCacheSync)(preset => buildRootDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors)); +const loadPresetEnvDescriptors = (0, _caching.makeWeakCacheSync)(preset => (0, _caching.makeStrongCacheSync)(envName => buildEnvDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, envName))); +const loadPresetOverridesDescriptors = (0, _caching.makeWeakCacheSync)(preset => (0, _caching.makeStrongCacheSync)(index => buildOverrideDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, index))); +const loadPresetOverridesEnvDescriptors = (0, _caching.makeWeakCacheSync)(preset => (0, _caching.makeStrongCacheSync)(index => (0, _caching.makeStrongCacheSync)(envName => buildOverrideEnvDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, index, envName)))); +function* buildRootChain(opts, context) { + let configReport, babelRcReport; + const programmaticLogger = new _printer.ConfigPrinter(); + const programmaticChain = yield* loadProgrammaticChain({ + options: opts, + dirname: context.cwd + }, context, undefined, programmaticLogger); + if (!programmaticChain) return null; + const programmaticReport = yield* programmaticLogger.output(); + let configFile; + if (typeof opts.configFile === "string") { + configFile = yield* (0, _files.loadConfig)(opts.configFile, context.cwd, context.envName, context.caller); + } else if (opts.configFile !== false) { + configFile = yield* (0, _files.findRootConfig)(context.root, context.envName, context.caller); + } + let { + babelrc, + babelrcRoots + } = opts; + let babelrcRootsDirectory = context.cwd; + const configFileChain = emptyChain(); + const configFileLogger = new _printer.ConfigPrinter(); + if (configFile) { + const validatedFile = validateConfigFile(configFile); + const result = yield* loadFileChain(validatedFile, context, undefined, configFileLogger); + if (!result) return null; + configReport = yield* configFileLogger.output(); + if (babelrc === undefined) { + babelrc = validatedFile.options.babelrc; + } + if (babelrcRoots === undefined) { + babelrcRootsDirectory = validatedFile.dirname; + babelrcRoots = validatedFile.options.babelrcRoots; + } + mergeChain(configFileChain, result); + } + let ignoreFile, babelrcFile; + let isIgnored = false; + const fileChain = emptyChain(); + if ((babelrc === true || babelrc === undefined) && typeof context.filename === "string") { + const pkgData = yield* (0, _files.findPackageData)(context.filename); + if (pkgData && babelrcLoadEnabled(context, pkgData, babelrcRoots, babelrcRootsDirectory)) { + ({ + ignore: ignoreFile, + config: babelrcFile + } = yield* (0, _files.findRelativeConfig)(pkgData, context.envName, context.caller)); + if (ignoreFile) { + fileChain.files.add(ignoreFile.filepath); + } + if (ignoreFile && shouldIgnore(context, ignoreFile.ignore, null, ignoreFile.dirname)) { + isIgnored = true; + } + if (babelrcFile && !isIgnored) { + const validatedFile = validateBabelrcFile(babelrcFile); + const babelrcLogger = new _printer.ConfigPrinter(); + const result = yield* loadFileChain(validatedFile, context, undefined, babelrcLogger); + if (!result) { + isIgnored = true; + } else { + babelRcReport = yield* babelrcLogger.output(); + mergeChain(fileChain, result); + } + } + if (babelrcFile && isIgnored) { + fileChain.files.add(babelrcFile.filepath); + } + } + } + if (context.showConfig) { + console.log(`Babel configs on "${context.filename}" (ascending priority):\n` + [configReport, babelRcReport, programmaticReport].filter(x => !!x).join("\n\n") + "\n-----End Babel configs-----"); + } + const chain = mergeChain(mergeChain(mergeChain(emptyChain(), configFileChain), fileChain), programmaticChain); + return { + plugins: isIgnored ? [] : dedupDescriptors(chain.plugins), + presets: isIgnored ? [] : dedupDescriptors(chain.presets), + options: isIgnored ? [] : chain.options.map(o => normalizeOptions(o)), + fileHandling: isIgnored ? "ignored" : "transpile", + ignore: ignoreFile || undefined, + babelrc: babelrcFile || undefined, + config: configFile || undefined, + files: chain.files + }; +} +function babelrcLoadEnabled(context, pkgData, babelrcRoots, babelrcRootsDirectory) { + if (typeof babelrcRoots === "boolean") return babelrcRoots; + const absoluteRoot = context.root; + if (babelrcRoots === undefined) { + return pkgData.directories.indexOf(absoluteRoot) !== -1; + } + let babelrcPatterns = babelrcRoots; + if (!Array.isArray(babelrcPatterns)) { + babelrcPatterns = [babelrcPatterns]; + } + babelrcPatterns = babelrcPatterns.map(pat => { + return typeof pat === "string" ? _path().resolve(babelrcRootsDirectory, pat) : pat; + }); + if (babelrcPatterns.length === 1 && babelrcPatterns[0] === absoluteRoot) { + return pkgData.directories.indexOf(absoluteRoot) !== -1; + } + return babelrcPatterns.some(pat => { + if (typeof pat === "string") { + pat = (0, _patternToRegex.default)(pat, babelrcRootsDirectory); + } + return pkgData.directories.some(directory => { + return matchPattern(pat, babelrcRootsDirectory, directory, context); + }); + }); +} +const validateConfigFile = (0, _caching.makeWeakCacheSync)(file => ({ + filepath: file.filepath, + dirname: file.dirname, + options: (0, _options.validate)("configfile", file.options, file.filepath) +})); +const validateBabelrcFile = (0, _caching.makeWeakCacheSync)(file => ({ + filepath: file.filepath, + dirname: file.dirname, + options: (0, _options.validate)("babelrcfile", file.options, file.filepath) +})); +const validateExtendFile = (0, _caching.makeWeakCacheSync)(file => ({ + filepath: file.filepath, + dirname: file.dirname, + options: (0, _options.validate)("extendsfile", file.options, file.filepath) +})); +const loadProgrammaticChain = makeChainWalker({ + root: input => buildRootDescriptors(input, "base", _configDescriptors.createCachedDescriptors), + env: (input, envName) => buildEnvDescriptors(input, "base", _configDescriptors.createCachedDescriptors, envName), + overrides: (input, index) => buildOverrideDescriptors(input, "base", _configDescriptors.createCachedDescriptors, index), + overridesEnv: (input, index, envName) => buildOverrideEnvDescriptors(input, "base", _configDescriptors.createCachedDescriptors, index, envName), + createLogger: (input, context, baseLogger) => buildProgrammaticLogger(input, context, baseLogger) +}); +const loadFileChainWalker = makeChainWalker({ + root: file => loadFileDescriptors(file), + env: (file, envName) => loadFileEnvDescriptors(file)(envName), + overrides: (file, index) => loadFileOverridesDescriptors(file)(index), + overridesEnv: (file, index, envName) => loadFileOverridesEnvDescriptors(file)(index)(envName), + createLogger: (file, context, baseLogger) => buildFileLogger(file.filepath, context, baseLogger) +}); +function* loadFileChain(input, context, files, baseLogger) { + const chain = yield* loadFileChainWalker(input, context, files, baseLogger); + if (chain) { + chain.files.add(input.filepath); + } + return chain; +} +const loadFileDescriptors = (0, _caching.makeWeakCacheSync)(file => buildRootDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors)); +const loadFileEnvDescriptors = (0, _caching.makeWeakCacheSync)(file => (0, _caching.makeStrongCacheSync)(envName => buildEnvDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, envName))); +const loadFileOverridesDescriptors = (0, _caching.makeWeakCacheSync)(file => (0, _caching.makeStrongCacheSync)(index => buildOverrideDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, index))); +const loadFileOverridesEnvDescriptors = (0, _caching.makeWeakCacheSync)(file => (0, _caching.makeStrongCacheSync)(index => (0, _caching.makeStrongCacheSync)(envName => buildOverrideEnvDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, index, envName)))); +function buildFileLogger(filepath, context, baseLogger) { + if (!baseLogger) { + return () => {}; + } + return baseLogger.configure(context.showConfig, _printer.ChainFormatter.Config, { + filepath + }); +} +function buildRootDescriptors({ + dirname, + options +}, alias, descriptors) { + return descriptors(dirname, options, alias); +} +function buildProgrammaticLogger(_, context, baseLogger) { + var _context$caller; + if (!baseLogger) { + return () => {}; + } + return baseLogger.configure(context.showConfig, _printer.ChainFormatter.Programmatic, { + callerName: (_context$caller = context.caller) == null ? void 0 : _context$caller.name + }); +} +function buildEnvDescriptors({ + dirname, + options +}, alias, descriptors, envName) { + const opts = options.env && options.env[envName]; + return opts ? descriptors(dirname, opts, `${alias}.env["${envName}"]`) : null; +} +function buildOverrideDescriptors({ + dirname, + options +}, alias, descriptors, index) { + const opts = options.overrides && options.overrides[index]; + if (!opts) throw new Error("Assertion failure - missing override"); + return descriptors(dirname, opts, `${alias}.overrides[${index}]`); +} +function buildOverrideEnvDescriptors({ + dirname, + options +}, alias, descriptors, index, envName) { + const override = options.overrides && options.overrides[index]; + if (!override) throw new Error("Assertion failure - missing override"); + const opts = override.env && override.env[envName]; + return opts ? descriptors(dirname, opts, `${alias}.overrides[${index}].env["${envName}"]`) : null; +} +function makeChainWalker({ + root, + env, + overrides, + overridesEnv, + createLogger +}) { + return function* chainWalker(input, context, files = new Set(), baseLogger) { + const { + dirname + } = input; + const flattenedConfigs = []; + const rootOpts = root(input); + if (configIsApplicable(rootOpts, dirname, context, input.filepath)) { + flattenedConfigs.push({ + config: rootOpts, + envName: undefined, + index: undefined + }); + const envOpts = env(input, context.envName); + if (envOpts && configIsApplicable(envOpts, dirname, context, input.filepath)) { + flattenedConfigs.push({ + config: envOpts, + envName: context.envName, + index: undefined + }); + } + (rootOpts.options.overrides || []).forEach((_, index) => { + const overrideOps = overrides(input, index); + if (configIsApplicable(overrideOps, dirname, context, input.filepath)) { + flattenedConfigs.push({ + config: overrideOps, + index, + envName: undefined + }); + const overrideEnvOpts = overridesEnv(input, index, context.envName); + if (overrideEnvOpts && configIsApplicable(overrideEnvOpts, dirname, context, input.filepath)) { + flattenedConfigs.push({ + config: overrideEnvOpts, + index, + envName: context.envName + }); + } + } + }); + } + if (flattenedConfigs.some(({ + config: { + options: { + ignore, + only + } + } + }) => shouldIgnore(context, ignore, only, dirname))) { + return null; + } + const chain = emptyChain(); + const logger = createLogger(input, context, baseLogger); + for (const { + config, + index, + envName + } of flattenedConfigs) { + if (!(yield* mergeExtendsChain(chain, config.options, dirname, context, files, baseLogger))) { + return null; + } + logger(config, index, envName); + yield* mergeChainOpts(chain, config); + } + return chain; + }; +} +function* mergeExtendsChain(chain, opts, dirname, context, files, baseLogger) { + if (opts.extends === undefined) return true; + const file = yield* (0, _files.loadConfig)(opts.extends, dirname, context.envName, context.caller); + if (files.has(file)) { + throw new Error(`Configuration cycle detected loading ${file.filepath}.\n` + `File already loaded following the config chain:\n` + Array.from(files, file => ` - ${file.filepath}`).join("\n")); + } + files.add(file); + const fileChain = yield* loadFileChain(validateExtendFile(file), context, files, baseLogger); + files.delete(file); + if (!fileChain) return false; + mergeChain(chain, fileChain); + return true; +} +function mergeChain(target, source) { + target.options.push(...source.options); + target.plugins.push(...source.plugins); + target.presets.push(...source.presets); + for (const file of source.files) { + target.files.add(file); + } + return target; +} +function* mergeChainOpts(target, { + options, + plugins, + presets +}) { + target.options.push(options); + target.plugins.push(...(yield* plugins())); + target.presets.push(...(yield* presets())); + return target; +} +function emptyChain() { + return { + options: [], + presets: [], + plugins: [], + files: new Set() + }; +} +function normalizeOptions(opts) { + const options = Object.assign({}, opts); + delete options.extends; + delete options.env; + delete options.overrides; + delete options.plugins; + delete options.presets; + delete options.passPerPreset; + delete options.ignore; + delete options.only; + delete options.test; + delete options.include; + delete options.exclude; + if (Object.prototype.hasOwnProperty.call(options, "sourceMap")) { + options.sourceMaps = options.sourceMap; + delete options.sourceMap; + } + return options; +} +function dedupDescriptors(items) { + const map = new Map(); + const descriptors = []; + for (const item of items) { + if (typeof item.value === "function") { + const fnKey = item.value; + let nameMap = map.get(fnKey); + if (!nameMap) { + nameMap = new Map(); + map.set(fnKey, nameMap); + } + let desc = nameMap.get(item.name); + if (!desc) { + desc = { + value: item + }; + descriptors.push(desc); + if (!item.ownPass) nameMap.set(item.name, desc); + } else { + desc.value = item; + } + } else { + descriptors.push({ + value: item + }); + } + } + return descriptors.reduce((acc, desc) => { + acc.push(desc.value); + return acc; + }, []); +} +function configIsApplicable({ + options +}, dirname, context, configName) { + return (options.test === undefined || configFieldIsApplicable(context, options.test, dirname, configName)) && (options.include === undefined || configFieldIsApplicable(context, options.include, dirname, configName)) && (options.exclude === undefined || !configFieldIsApplicable(context, options.exclude, dirname, configName)); +} +function configFieldIsApplicable(context, test, dirname, configName) { + const patterns = Array.isArray(test) ? test : [test]; + return matchesPatterns(context, patterns, dirname, configName); +} +function ignoreListReplacer(_key, value) { + if (value instanceof RegExp) { + return String(value); + } + return value; +} +function shouldIgnore(context, ignore, only, dirname) { + if (ignore && matchesPatterns(context, ignore, dirname)) { + var _context$filename; + const message = `No config is applied to "${(_context$filename = context.filename) != null ? _context$filename : "(unknown)"}" because it matches one of \`ignore: ${JSON.stringify(ignore, ignoreListReplacer)}\` from "${dirname}"`; + debug(message); + if (context.showConfig) { + console.log(message); + } + return true; + } + if (only && !matchesPatterns(context, only, dirname)) { + var _context$filename2; + const message = `No config is applied to "${(_context$filename2 = context.filename) != null ? _context$filename2 : "(unknown)"}" because it fails to match one of \`only: ${JSON.stringify(only, ignoreListReplacer)}\` from "${dirname}"`; + debug(message); + if (context.showConfig) { + console.log(message); + } + return true; + } + return false; +} +function matchesPatterns(context, patterns, dirname, configName) { + return patterns.some(pattern => matchPattern(pattern, dirname, context.filename, context, configName)); +} +function matchPattern(pattern, dirname, pathToTest, context, configName) { + if (typeof pattern === "function") { + return !!(0, _rewriteStackTrace.endHiddenCallStack)(pattern)(pathToTest, { + dirname, + envName: context.envName, + caller: context.caller + }); + } + if (typeof pathToTest !== "string") { + throw new _configError.default(`Configuration contains string/RegExp pattern, but no filename was passed to Babel`, configName); + } + if (typeof pattern === "string") { + pattern = (0, _patternToRegex.default)(pattern, dirname); + } + return pattern.test(pathToTest); +} +0 && 0; + +//# sourceMappingURL=config-chain.js.map + + +/***/ }), + +/***/ 7756: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.createCachedDescriptors = createCachedDescriptors; +exports.createDescriptor = createDescriptor; +exports.createUncachedDescriptors = createUncachedDescriptors; +function _gensync() { + const data = __webpack_require__(3531); + _gensync = function () { + return data; + }; + return data; +} +var _functional = __webpack_require__(4623); +var _files = __webpack_require__(3355); +var _item = __webpack_require__(8589); +var _caching = __webpack_require__(6846); +var _resolveTargets = __webpack_require__(2259); +function isEqualDescriptor(a, b) { + return a.name === b.name && a.value === b.value && a.options === b.options && a.dirname === b.dirname && a.alias === b.alias && a.ownPass === b.ownPass && (a.file && a.file.request) === (b.file && b.file.request) && (a.file && a.file.resolved) === (b.file && b.file.resolved); +} +function* handlerOf(value) { + return value; +} +function optionsWithResolvedBrowserslistConfigFile(options, dirname) { + if (typeof options.browserslistConfigFile === "string") { + options.browserslistConfigFile = (0, _resolveTargets.resolveBrowserslistConfigFile)(options.browserslistConfigFile, dirname); + } + return options; +} +function createCachedDescriptors(dirname, options, alias) { + const { + plugins, + presets, + passPerPreset + } = options; + return { + options: optionsWithResolvedBrowserslistConfigFile(options, dirname), + plugins: plugins ? () => createCachedPluginDescriptors(plugins, dirname)(alias) : () => handlerOf([]), + presets: presets ? () => createCachedPresetDescriptors(presets, dirname)(alias)(!!passPerPreset) : () => handlerOf([]) + }; +} +function createUncachedDescriptors(dirname, options, alias) { + return { + options: optionsWithResolvedBrowserslistConfigFile(options, dirname), + plugins: (0, _functional.once)(() => createPluginDescriptors(options.plugins || [], dirname, alias)), + presets: (0, _functional.once)(() => createPresetDescriptors(options.presets || [], dirname, alias, !!options.passPerPreset)) + }; +} +const PRESET_DESCRIPTOR_CACHE = new WeakMap(); +const createCachedPresetDescriptors = (0, _caching.makeWeakCacheSync)((items, cache) => { + const dirname = cache.using(dir => dir); + return (0, _caching.makeStrongCacheSync)(alias => (0, _caching.makeStrongCache)(function* (passPerPreset) { + const descriptors = yield* createPresetDescriptors(items, dirname, alias, passPerPreset); + return descriptors.map(desc => loadCachedDescriptor(PRESET_DESCRIPTOR_CACHE, desc)); + })); +}); +const PLUGIN_DESCRIPTOR_CACHE = new WeakMap(); +const createCachedPluginDescriptors = (0, _caching.makeWeakCacheSync)((items, cache) => { + const dirname = cache.using(dir => dir); + return (0, _caching.makeStrongCache)(function* (alias) { + const descriptors = yield* createPluginDescriptors(items, dirname, alias); + return descriptors.map(desc => loadCachedDescriptor(PLUGIN_DESCRIPTOR_CACHE, desc)); + }); +}); +const DEFAULT_OPTIONS = {}; +function loadCachedDescriptor(cache, desc) { + const { + value, + options = DEFAULT_OPTIONS + } = desc; + if (options === false) return desc; + let cacheByOptions = cache.get(value); + if (!cacheByOptions) { + cacheByOptions = new WeakMap(); + cache.set(value, cacheByOptions); + } + let possibilities = cacheByOptions.get(options); + if (!possibilities) { + possibilities = []; + cacheByOptions.set(options, possibilities); + } + if (possibilities.indexOf(desc) === -1) { + const matches = possibilities.filter(possibility => isEqualDescriptor(possibility, desc)); + if (matches.length > 0) { + return matches[0]; + } + possibilities.push(desc); + } + return desc; +} +function* createPresetDescriptors(items, dirname, alias, passPerPreset) { + return yield* createDescriptors("preset", items, dirname, alias, passPerPreset); +} +function* createPluginDescriptors(items, dirname, alias) { + return yield* createDescriptors("plugin", items, dirname, alias); +} +function* createDescriptors(type, items, dirname, alias, ownPass) { + const descriptors = yield* _gensync().all(items.map((item, index) => createDescriptor(item, dirname, { + type, + alias: `${alias}$${index}`, + ownPass: !!ownPass + }))); + assertNoDuplicates(descriptors); + return descriptors; +} +function* createDescriptor(pair, dirname, { + type, + alias, + ownPass +}) { + const desc = (0, _item.getItemDescriptor)(pair); + if (desc) { + return desc; + } + let name; + let options; + let value = pair; + if (Array.isArray(value)) { + if (value.length === 3) { + [value, options, name] = value; + } else { + [value, options] = value; + } + } + let file = undefined; + let filepath = null; + if (typeof value === "string") { + if (typeof type !== "string") { + throw new Error("To resolve a string-based item, the type of item must be given"); + } + const resolver = type === "plugin" ? _files.loadPlugin : _files.loadPreset; + const request = value; + ({ + filepath, + value + } = yield* resolver(value, dirname)); + file = { + request, + resolved: filepath + }; + } + if (!value) { + throw new Error(`Unexpected falsy value: ${String(value)}`); + } + if (typeof value === "object" && value.__esModule) { + if (value.default) { + value = value.default; + } else { + throw new Error("Must export a default export when using ES6 modules."); + } + } + if (typeof value !== "object" && typeof value !== "function") { + throw new Error(`Unsupported format: ${typeof value}. Expected an object or a function.`); + } + if (filepath !== null && typeof value === "object" && value) { + throw new Error(`Plugin/Preset files are not allowed to export objects, only functions. In ${filepath}`); + } + return { + name, + alias: filepath || alias, + value, + options, + dirname, + ownPass, + file + }; +} +function assertNoDuplicates(items) { + const map = new Map(); + for (const item of items) { + if (typeof item.value !== "function") continue; + let nameMap = map.get(item.value); + if (!nameMap) { + nameMap = new Set(); + map.set(item.value, nameMap); + } + if (nameMap.has(item.name)) { + const conflicts = items.filter(i => i.value === item.value); + throw new Error([`Duplicate plugin/preset detected.`, `If you'd like to use two separate instances of a plugin,`, `they need separate names, e.g.`, ``, ` plugins: [`, ` ['some-plugin', {}],`, ` ['some-plugin', {}, 'some unique name'],`, ` ]`, ``, `Duplicates detected are:`, `${JSON.stringify(conflicts, null, 2)}`].join("\n")); + } + nameMap.add(item.name); + } +} +0 && 0; + +//# sourceMappingURL=config-descriptors.js.map + + +/***/ }), + +/***/ 7941: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.ROOT_CONFIG_FILENAMES = void 0; +exports.findConfigUpwards = findConfigUpwards; +exports.findRelativeConfig = findRelativeConfig; +exports.findRootConfig = findRootConfig; +exports.loadConfig = loadConfig; +exports.resolveShowConfigPath = resolveShowConfigPath; +function _debug() { + const data = __webpack_require__(2731); + _debug = function () { + return data; + }; + return data; +} +function _fs() { + const data = __webpack_require__(7147); + _fs = function () { + return data; + }; + return data; +} +function _path() { + const data = __webpack_require__(1017); + _path = function () { + return data; + }; + return data; +} +function _json() { + const data = __webpack_require__(6361); + _json = function () { + return data; + }; + return data; +} +function _gensync() { + const data = __webpack_require__(3531); + _gensync = function () { + return data; + }; + return data; +} +var _caching = __webpack_require__(6846); +var _configApi = __webpack_require__(2300); +var _utils = __webpack_require__(6124); +var _moduleTypes = __webpack_require__(2809); +var _patternToRegex = __webpack_require__(2775); +var _configError = __webpack_require__(1388); +var fs = __webpack_require__(6290); +function _module() { + const data = __webpack_require__(8188); + _module = function () { + return data; + }; + return data; +} +var _rewriteStackTrace = __webpack_require__(6772); +const debug = _debug()("babel:config:loading:files:configuration"); +const ROOT_CONFIG_FILENAMES = ["babel.config.js", "babel.config.cjs", "babel.config.mjs", "babel.config.json"]; +exports.ROOT_CONFIG_FILENAMES = ROOT_CONFIG_FILENAMES; +const RELATIVE_CONFIG_FILENAMES = [".babelrc", ".babelrc.js", ".babelrc.cjs", ".babelrc.mjs", ".babelrc.json"]; +const BABELIGNORE_FILENAME = ".babelignore"; +const LOADING_CONFIGS = new Set(); +const readConfigJS = (0, _caching.makeStrongCache)(function* readConfigJS(filepath, cache) { + if (!_fs().existsSync(filepath)) { + cache.never(); + return null; + } + if (LOADING_CONFIGS.has(filepath)) { + cache.never(); + debug("Auto-ignoring usage of config %o.", filepath); + return { + filepath, + dirname: _path().dirname(filepath), + options: {} + }; + } + let options; + try { + LOADING_CONFIGS.add(filepath); + options = yield* (0, _moduleTypes.default)(filepath, "You appear to be using a native ECMAScript module configuration " + "file, which is only supported when running Babel asynchronously."); + } finally { + LOADING_CONFIGS.delete(filepath); + } + let assertCache = false; + if (typeof options === "function") { + yield* []; + options = (0, _rewriteStackTrace.endHiddenCallStack)(options)((0, _configApi.makeConfigAPI)(cache)); + assertCache = true; + } + if (!options || typeof options !== "object" || Array.isArray(options)) { + throw new _configError.default(`Configuration should be an exported JavaScript object.`, filepath); + } + if (typeof options.then === "function") { + throw new _configError.default(`You appear to be using an async configuration, ` + `which your current version of Babel does not support. ` + `We may add support for this in the future, ` + `but if you're on the most recent version of @babel/core and still ` + `seeing this error, then you'll need to synchronously return your config.`, filepath); + } + if (assertCache && !cache.configured()) throwConfigError(filepath); + return { + filepath, + dirname: _path().dirname(filepath), + options + }; +}); +const packageToBabelConfig = (0, _caching.makeWeakCacheSync)(file => { + const babel = file.options["babel"]; + if (typeof babel === "undefined") return null; + if (typeof babel !== "object" || Array.isArray(babel) || babel === null) { + throw new _configError.default(`.babel property must be an object`, file.filepath); + } + return { + filepath: file.filepath, + dirname: file.dirname, + options: babel + }; +}); +const readConfigJSON5 = (0, _utils.makeStaticFileCache)((filepath, content) => { + let options; + try { + options = _json().parse(content); + } catch (err) { + throw new _configError.default(`Error while parsing config - ${err.message}`, filepath); + } + if (!options) throw new _configError.default(`No config detected`, filepath); + if (typeof options !== "object") { + throw new _configError.default(`Config returned typeof ${typeof options}`, filepath); + } + if (Array.isArray(options)) { + throw new _configError.default(`Expected config object but found array`, filepath); + } + delete options["$schema"]; + return { + filepath, + dirname: _path().dirname(filepath), + options + }; +}); +const readIgnoreConfig = (0, _utils.makeStaticFileCache)((filepath, content) => { + const ignoreDir = _path().dirname(filepath); + const ignorePatterns = content.split("\n").map(line => line.replace(/#(.*?)$/, "").trim()).filter(line => !!line); + for (const pattern of ignorePatterns) { + if (pattern[0] === "!") { + throw new _configError.default(`Negation of file paths is not supported.`, filepath); + } + } + return { + filepath, + dirname: _path().dirname(filepath), + ignore: ignorePatterns.map(pattern => (0, _patternToRegex.default)(pattern, ignoreDir)) + }; +}); +function findConfigUpwards(rootDir) { + let dirname = rootDir; + for (;;) { + for (const filename of ROOT_CONFIG_FILENAMES) { + if (_fs().existsSync(_path().join(dirname, filename))) { + return dirname; + } + } + const nextDir = _path().dirname(dirname); + if (dirname === nextDir) break; + dirname = nextDir; + } + return null; +} +function* findRelativeConfig(packageData, envName, caller) { + let config = null; + let ignore = null; + const dirname = _path().dirname(packageData.filepath); + for (const loc of packageData.directories) { + if (!config) { + var _packageData$pkg; + config = yield* loadOneConfig(RELATIVE_CONFIG_FILENAMES, loc, envName, caller, ((_packageData$pkg = packageData.pkg) == null ? void 0 : _packageData$pkg.dirname) === loc ? packageToBabelConfig(packageData.pkg) : null); + } + if (!ignore) { + const ignoreLoc = _path().join(loc, BABELIGNORE_FILENAME); + ignore = yield* readIgnoreConfig(ignoreLoc); + if (ignore) { + debug("Found ignore %o from %o.", ignore.filepath, dirname); + } + } + } + return { + config, + ignore + }; +} +function findRootConfig(dirname, envName, caller) { + return loadOneConfig(ROOT_CONFIG_FILENAMES, dirname, envName, caller); +} +function* loadOneConfig(names, dirname, envName, caller, previousConfig = null) { + const configs = yield* _gensync().all(names.map(filename => readConfig(_path().join(dirname, filename), envName, caller))); + const config = configs.reduce((previousConfig, config) => { + if (config && previousConfig) { + throw new _configError.default(`Multiple configuration files found. Please remove one:\n` + ` - ${_path().basename(previousConfig.filepath)}\n` + ` - ${config.filepath}\n` + `from ${dirname}`); + } + return config || previousConfig; + }, previousConfig); + if (config) { + debug("Found configuration %o from %o.", config.filepath, dirname); + } + return config; +} +function* loadConfig(name, dirname, envName, caller) { + const filepath = (((v, w) => (v = v.split("."), w = w.split("."), +v[0] > +w[0] || v[0] == w[0] && +v[1] >= +w[1]))(process.versions.node, "8.9") ? require.resolve : (r, { + paths: [b] + }, M = __webpack_require__(8188)) => { + let f = M._findPath(r, M._nodeModulePaths(b).concat(b)); + if (f) return f; + f = new Error(`Cannot resolve module '${r}'`); + f.code = "MODULE_NOT_FOUND"; + throw f; + })(name, { + paths: [dirname] + }); + const conf = yield* readConfig(filepath, envName, caller); + if (!conf) { + throw new _configError.default(`Config file contains no configuration data`, filepath); + } + debug("Loaded config %o from %o.", name, dirname); + return conf; +} +function readConfig(filepath, envName, caller) { + const ext = _path().extname(filepath); + return ext === ".js" || ext === ".cjs" || ext === ".mjs" ? readConfigJS(filepath, { + envName, + caller + }) : readConfigJSON5(filepath); +} +function* resolveShowConfigPath(dirname) { + const targetPath = process.env.BABEL_SHOW_CONFIG_FOR; + if (targetPath != null) { + const absolutePath = _path().resolve(dirname, targetPath); + const stats = yield* fs.stat(absolutePath); + if (!stats.isFile()) { + throw new Error(`${absolutePath}: BABEL_SHOW_CONFIG_FOR must refer to a regular file, directories are not supported.`); + } + return absolutePath; + } + return null; +} +function throwConfigError(filepath) { + throw new _configError.default(`\ +Caching was left unconfigured. Babel's plugins, presets, and .babelrc.js files can be configured +for various types of caching, using the first param of their handler functions: + +module.exports = function(api) { + // The API exposes the following: + + // Cache the returned value forever and don't call this function again. + api.cache(true); + + // Don't cache at all. Not recommended because it will be very slow. + api.cache(false); + + // Cached based on the value of some function. If this function returns a value different from + // a previously-encountered value, the plugins will re-evaluate. + var env = api.cache(() => process.env.NODE_ENV); + + // If testing for a specific env, we recommend specifics to avoid instantiating a plugin for + // any possible NODE_ENV value that might come up during plugin execution. + var isProd = api.cache(() => process.env.NODE_ENV === "production"); + + // .cache(fn) will perform a linear search though instances to find the matching plugin based + // based on previous instantiated plugins. If you want to recreate the plugin and discard the + // previous instance whenever something changes, you may use: + var isProd = api.cache.invalidate(() => process.env.NODE_ENV === "production"); + + // Note, we also expose the following more-verbose versions of the above examples: + api.cache.forever(); // api.cache(true) + api.cache.never(); // api.cache(false) + api.cache.using(fn); // api.cache(fn) + + // Return the value that will be cached. + return { }; +};`, filepath); +} +0 && 0; + +//# sourceMappingURL=configuration.js.map + + +/***/ }), + +/***/ 9570: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = resolve; +function _module() { + const data = __webpack_require__(8188); + _module = function () { + return data; + }; + return data; +} +var _importMetaResolve = __webpack_require__(7027); +function 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); } } +function _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); }); }; } +let import_; +try { + import_ = __webpack_require__(7463); +} catch (_unused) {} +const importMetaResolveP = import_ && process.execArgv.includes("--experimental-import-meta-resolve") ? import_("data:text/javascript,export default import.meta.resolve").then(m => m.default || _importMetaResolve.resolve, () => _importMetaResolve.resolve) : Promise.resolve(_importMetaResolve.resolve); +function resolve(_x, _x2) { + return _resolve.apply(this, arguments); +} +function _resolve() { + _resolve = _asyncToGenerator(function* (specifier, parent) { + return (yield importMetaResolveP)(specifier, parent); + }); + return _resolve.apply(this, arguments); +} +0 && 0; + +//# sourceMappingURL=import-meta-resolve.js.map + + +/***/ }), + +/***/ 3355: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +Object.defineProperty(exports, "ROOT_CONFIG_FILENAMES", ({ + enumerable: true, + get: function () { + return _configuration.ROOT_CONFIG_FILENAMES; + } +})); +Object.defineProperty(exports, "findConfigUpwards", ({ + enumerable: true, + get: function () { + return _configuration.findConfigUpwards; + } +})); +Object.defineProperty(exports, "findPackageData", ({ + enumerable: true, + get: function () { + return _package.findPackageData; + } +})); +Object.defineProperty(exports, "findRelativeConfig", ({ + enumerable: true, + get: function () { + return _configuration.findRelativeConfig; + } +})); +Object.defineProperty(exports, "findRootConfig", ({ + enumerable: true, + get: function () { + return _configuration.findRootConfig; + } +})); +Object.defineProperty(exports, "loadConfig", ({ + enumerable: true, + get: function () { + return _configuration.loadConfig; + } +})); +Object.defineProperty(exports, "loadPlugin", ({ + enumerable: true, + get: function () { + return plugins.loadPlugin; + } +})); +Object.defineProperty(exports, "loadPreset", ({ + enumerable: true, + get: function () { + return plugins.loadPreset; + } +})); +exports.resolvePreset = exports.resolvePlugin = void 0; +Object.defineProperty(exports, "resolveShowConfigPath", ({ + enumerable: true, + get: function () { + return _configuration.resolveShowConfigPath; + } +})); +var _package = __webpack_require__(3174); +var _configuration = __webpack_require__(7941); +var plugins = __webpack_require__(7654); +function _gensync() { + const data = __webpack_require__(3531); + _gensync = function () { + return data; + }; + return data; +} +({}); +const resolvePlugin = _gensync()(plugins.resolvePlugin).sync; +exports.resolvePlugin = resolvePlugin; +const resolvePreset = _gensync()(plugins.resolvePreset).sync; +exports.resolvePreset = resolvePreset; +0 && 0; + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 2809: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = loadCjsOrMjsDefault; +exports.supportsESM = void 0; +var _async = __webpack_require__(5591); +function _path() { + const data = __webpack_require__(1017); + _path = function () { + return data; + }; + return data; +} +function _url() { + const data = __webpack_require__(7310); + _url = function () { + return data; + }; + return data; +} +function _module() { + const data = __webpack_require__(8188); + _module = function () { + return data; + }; + return data; +} +function _semver() { + const data = __webpack_require__(8999); + _semver = function () { + return data; + }; + return data; +} +var _rewriteStackTrace = __webpack_require__(6772); +var _configError = __webpack_require__(1388); +function 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); } } +function _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); }); }; } +let import_; +try { + import_ = __webpack_require__(7463); +} catch (_unused) {} +const supportsESM = _semver().satisfies(process.versions.node, "^12.17 || >=13.2"); +exports.supportsESM = supportsESM; +function* loadCjsOrMjsDefault(filepath, asyncError, fallbackToTranspiledModule = false) { + switch (guessJSModuleType(filepath)) { + case "cjs": + return loadCjsDefault(filepath, fallbackToTranspiledModule); + case "unknown": + try { + return loadCjsDefault(filepath, fallbackToTranspiledModule); + } catch (e) { + if (e.code !== "ERR_REQUIRE_ESM") throw e; + } + case "mjs": + if (yield* (0, _async.isAsync)()) { + return yield* (0, _async.waitFor)(loadMjsDefault(filepath)); + } + throw new _configError.default(asyncError, filepath); + } +} +function guessJSModuleType(filename) { + switch (_path().extname(filename)) { + case ".cjs": + return "cjs"; + case ".mjs": + return "mjs"; + default: + return "unknown"; + } +} +function loadCjsDefault(filepath, fallbackToTranspiledModule) { + const module = (0, _rewriteStackTrace.endHiddenCallStack)(require)(filepath); + return module != null && module.__esModule ? module.default || (fallbackToTranspiledModule ? module : undefined) : module; +} +function loadMjsDefault(_x) { + return _loadMjsDefault.apply(this, arguments); +} +function _loadMjsDefault() { + _loadMjsDefault = _asyncToGenerator(function* (filepath) { + if (!import_) { + throw new _configError.default("Internal error: Native ECMAScript modules aren't supported" + " by this platform.\n", filepath); + } + const module = yield (0, _rewriteStackTrace.endHiddenCallStack)(import_)((0, _url().pathToFileURL)(filepath)); + return module.default; + }); + return _loadMjsDefault.apply(this, arguments); +} +0 && 0; + +//# sourceMappingURL=module-types.js.map + + +/***/ }), + +/***/ 3174: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.findPackageData = findPackageData; +function _path() { + const data = __webpack_require__(1017); + _path = function () { + return data; + }; + return data; +} +var _utils = __webpack_require__(6124); +var _configError = __webpack_require__(1388); +const PACKAGE_FILENAME = "package.json"; +const readConfigPackage = (0, _utils.makeStaticFileCache)((filepath, content) => { + let options; + try { + options = JSON.parse(content); + } catch (err) { + throw new _configError.default(`Error while parsing JSON - ${err.message}`, filepath); + } + if (!options) throw new Error(`${filepath}: No config detected`); + if (typeof options !== "object") { + throw new _configError.default(`Config returned typeof ${typeof options}`, filepath); + } + if (Array.isArray(options)) { + throw new _configError.default(`Expected config object but found array`, filepath); + } + return { + filepath, + dirname: _path().dirname(filepath), + options + }; +}); +function* findPackageData(filepath) { + let pkg = null; + const directories = []; + let isPackage = true; + let dirname = _path().dirname(filepath); + while (!pkg && _path().basename(dirname) !== "node_modules") { + directories.push(dirname); + pkg = yield* readConfigPackage(_path().join(dirname, PACKAGE_FILENAME)); + const nextLoc = _path().dirname(dirname); + if (dirname === nextLoc) { + isPackage = false; + break; + } + dirname = nextLoc; + } + return { + filepath, + directories, + pkg, + isPackage + }; +} +0 && 0; + +//# sourceMappingURL=package.js.map + + +/***/ }), + +/***/ 7654: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.loadPlugin = loadPlugin; +exports.loadPreset = loadPreset; +exports.resolvePlugin = resolvePlugin; +exports.resolvePreset = resolvePreset; +function _debug() { + const data = __webpack_require__(2731); + _debug = function () { + return data; + }; + return data; +} +function _path() { + const data = __webpack_require__(1017); + _path = function () { + return data; + }; + return data; +} +function _gensync() { + const data = __webpack_require__(3531); + _gensync = function () { + return data; + }; + return data; +} +var _async = __webpack_require__(5591); +var _moduleTypes = __webpack_require__(2809); +function _url() { + const data = __webpack_require__(7310); + _url = function () { + return data; + }; + return data; +} +var _importMetaResolve = __webpack_require__(9570); +function _module() { + const data = __webpack_require__(8188); + _module = function () { + return data; + }; + return data; +} +function 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); } } +function _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); }); }; } +const debug = _debug()("babel:config:loading:files:plugins"); +const EXACT_RE = /^module:/; +const BABEL_PLUGIN_PREFIX_RE = /^(?!@|module:|[^/]+\/|babel-plugin-)/; +const BABEL_PRESET_PREFIX_RE = /^(?!@|module:|[^/]+\/|babel-preset-)/; +const BABEL_PLUGIN_ORG_RE = /^(@babel\/)(?!plugin-|[^/]+\/)/; +const BABEL_PRESET_ORG_RE = /^(@babel\/)(?!preset-|[^/]+\/)/; +const OTHER_PLUGIN_ORG_RE = /^(@(?!babel\/)[^/]+\/)(?![^/]*babel-plugin(?:-|\/|$)|[^/]+\/)/; +const OTHER_PRESET_ORG_RE = /^(@(?!babel\/)[^/]+\/)(?![^/]*babel-preset(?:-|\/|$)|[^/]+\/)/; +const OTHER_ORG_DEFAULT_RE = /^(@(?!babel$)[^/]+)$/; +function* resolvePlugin(name, dirname) { + return yield* resolveStandardizedName("plugin", name, dirname); +} +function* resolvePreset(name, dirname) { + return yield* resolveStandardizedName("preset", name, dirname); +} +function* loadPlugin(name, dirname) { + const filepath = yield* resolvePlugin(name, dirname); + const value = yield* requireModule("plugin", filepath); + debug("Loaded plugin %o from %o.", name, dirname); + return { + filepath, + value + }; +} +function* loadPreset(name, dirname) { + const filepath = yield* resolvePreset(name, dirname); + const value = yield* requireModule("preset", filepath); + debug("Loaded preset %o from %o.", name, dirname); + return { + filepath, + value + }; +} +function standardizeName(type, name) { + if (_path().isAbsolute(name)) return name; + const isPreset = type === "preset"; + return name.replace(isPreset ? BABEL_PRESET_PREFIX_RE : BABEL_PLUGIN_PREFIX_RE, `babel-${type}-`).replace(isPreset ? BABEL_PRESET_ORG_RE : BABEL_PLUGIN_ORG_RE, `$1${type}-`).replace(isPreset ? OTHER_PRESET_ORG_RE : OTHER_PLUGIN_ORG_RE, `$1babel-${type}-`).replace(OTHER_ORG_DEFAULT_RE, `$1/babel-${type}`).replace(EXACT_RE, ""); +} +function* resolveAlternativesHelper(type, name) { + const standardizedName = standardizeName(type, name); + const { + error, + value + } = yield standardizedName; + if (!error) return value; + if (error.code !== "MODULE_NOT_FOUND") throw error; + if (standardizedName !== name && !(yield name).error) { + error.message += `\n- If you want to resolve "${name}", use "module:${name}"`; + } + if (!(yield standardizeName(type, "@babel/" + name)).error) { + error.message += `\n- Did you mean "@babel/${name}"?`; + } + const oppositeType = type === "preset" ? "plugin" : "preset"; + if (!(yield standardizeName(oppositeType, name)).error) { + error.message += `\n- Did you accidentally pass a ${oppositeType} as a ${type}?`; + } + throw error; +} +function tryRequireResolve(id, { + paths: [dirname] +}) { + try { + return { + error: null, + value: (((v, w) => (v = v.split("."), w = w.split("."), +v[0] > +w[0] || v[0] == w[0] && +v[1] >= +w[1]))(process.versions.node, "8.9") ? require.resolve : (r, { + paths: [b] + }, M = __webpack_require__(8188)) => { + let f = M._findPath(r, M._nodeModulePaths(b).concat(b)); + if (f) return f; + f = new Error(`Cannot resolve module '${r}'`); + f.code = "MODULE_NOT_FOUND"; + throw f; + })(id, { + paths: [dirname] + }) + }; + } catch (error) { + return { + error, + value: null + }; + } +} +function tryImportMetaResolve(_x, _x2) { + return _tryImportMetaResolve.apply(this, arguments); +} +function _tryImportMetaResolve() { + _tryImportMetaResolve = _asyncToGenerator(function* (id, options) { + try { + return { + error: null, + value: yield (0, _importMetaResolve.default)(id, options) + }; + } catch (error) { + return { + error, + value: null + }; + } + }); + return _tryImportMetaResolve.apply(this, arguments); +} +function resolveStandardizedNameForRequire(type, name, dirname) { + const it = resolveAlternativesHelper(type, name); + let res = it.next(); + while (!res.done) { + res = it.next(tryRequireResolve(res.value, { + paths: [dirname] + })); + } + return res.value; +} +function resolveStandardizedNameForImport(_x3, _x4, _x5) { + return _resolveStandardizedNameForImport.apply(this, arguments); +} +function _resolveStandardizedNameForImport() { + _resolveStandardizedNameForImport = _asyncToGenerator(function* (type, name, dirname) { + const parentUrl = (0, _url().pathToFileURL)(_path().join(dirname, "./babel-virtual-resolve-base.js")).href; + const it = resolveAlternativesHelper(type, name); + let res = it.next(); + while (!res.done) { + res = it.next(yield tryImportMetaResolve(res.value, parentUrl)); + } + return (0, _url().fileURLToPath)(res.value); + }); + return _resolveStandardizedNameForImport.apply(this, arguments); +} +const resolveStandardizedName = _gensync()({ + sync(type, name, dirname = process.cwd()) { + return resolveStandardizedNameForRequire(type, name, dirname); + }, + async(type, name, dirname = process.cwd()) { + return _asyncToGenerator(function* () { + if (!_moduleTypes.supportsESM) { + return resolveStandardizedNameForRequire(type, name, dirname); + } + try { + return yield resolveStandardizedNameForImport(type, name, dirname); + } catch (e) { + try { + return resolveStandardizedNameForRequire(type, name, dirname); + } catch (e2) { + if (e.type === "MODULE_NOT_FOUND") throw e; + if (e2.type === "MODULE_NOT_FOUND") throw e2; + throw e; + } + } + })(); + } +}); +{ + var LOADING_MODULES = new Set(); +} +function* requireModule(type, name) { + { + if (!(yield* (0, _async.isAsync)()) && LOADING_MODULES.has(name)) { + throw new Error(`Reentrant ${type} detected trying to load "${name}". This module is not ignored ` + "and is trying to load itself while compiling itself, leading to a dependency cycle. " + 'We recommend adding it to your "ignore" list in your babelrc, or to a .babelignore.'); + } + } + try { + { + LOADING_MODULES.add(name); + } + return yield* (0, _moduleTypes.default)(name, `You appear to be using a native ECMAScript module ${type}, ` + "which is only supported when running Babel asynchronously.", true); + } catch (err) { + err.message = `[BABEL]: ${err.message} (While processing: ${name})`; + throw err; + } finally { + { + LOADING_MODULES.delete(name); + } + } +} +0 && 0; + +//# sourceMappingURL=plugins.js.map + + +/***/ }), + +/***/ 6124: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.makeStaticFileCache = makeStaticFileCache; +var _caching = __webpack_require__(6846); +var fs = __webpack_require__(6290); +function _fs2() { + const data = __webpack_require__(7147); + _fs2 = function () { + return data; + }; + return data; +} +function makeStaticFileCache(fn) { + return (0, _caching.makeStrongCache)(function* (filepath, cache) { + const cached = cache.invalidate(() => fileMtime(filepath)); + if (cached === null) { + return null; + } + return fn(filepath, yield* fs.readFile(filepath, "utf8")); + }); +} +function fileMtime(filepath) { + if (!_fs2().existsSync(filepath)) return null; + try { + return +_fs2().statSync(filepath).mtime; + } catch (e) { + if (e.code !== "ENOENT" && e.code !== "ENOTDIR") throw e; + } + return null; +} +0 && 0; + +//# sourceMappingURL=utils.js.map + + +/***/ }), + +/***/ 7365: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +function _gensync() { + const data = __webpack_require__(3531); + _gensync = function () { + return data; + }; + return data; +} +var _async = __webpack_require__(5591); +var _util = __webpack_require__(734); +var context = __webpack_require__(6246); +var _plugin = __webpack_require__(8474); +var _item = __webpack_require__(8589); +var _configChain = __webpack_require__(2100); +var _deepArray = __webpack_require__(589); +function _traverse() { + const data = __webpack_require__(5845); + _traverse = function () { + return data; + }; + return data; +} +var _caching = __webpack_require__(6846); +var _options = __webpack_require__(2306); +var _plugins = __webpack_require__(9512); +var _configApi = __webpack_require__(2300); +var _partial = __webpack_require__(3821); +var _configError = __webpack_require__(1388); +var _default = _gensync()(function* loadFullConfig(inputOpts) { + var _opts$assumptions; + const result = yield* (0, _partial.default)(inputOpts); + if (!result) { + return null; + } + const { + options, + context, + fileHandling + } = result; + if (fileHandling === "ignored") { + return null; + } + const optionDefaults = {}; + const { + plugins, + presets + } = options; + if (!plugins || !presets) { + throw new Error("Assertion failure - plugins and presets exist"); + } + const presetContext = Object.assign({}, context, { + targets: options.targets + }); + const toDescriptor = item => { + const desc = (0, _item.getItemDescriptor)(item); + if (!desc) { + throw new Error("Assertion failure - must be config item"); + } + return desc; + }; + const presetsDescriptors = presets.map(toDescriptor); + const initialPluginsDescriptors = plugins.map(toDescriptor); + const pluginDescriptorsByPass = [[]]; + const passes = []; + const externalDependencies = []; + const ignored = yield* enhanceError(context, function* recursePresetDescriptors(rawPresets, pluginDescriptorsPass) { + const presets = []; + for (let i = 0; i < rawPresets.length; i++) { + const descriptor = rawPresets[i]; + if (descriptor.options !== false) { + try { + var preset = yield* loadPresetDescriptor(descriptor, presetContext); + } catch (e) { + if (e.code === "BABEL_UNKNOWN_OPTION") { + (0, _options.checkNoUnwrappedItemOptionPairs)(rawPresets, i, "preset", e); + } + throw e; + } + externalDependencies.push(preset.externalDependencies); + if (descriptor.ownPass) { + presets.push({ + preset: preset.chain, + pass: [] + }); + } else { + presets.unshift({ + preset: preset.chain, + pass: pluginDescriptorsPass + }); + } + } + } + if (presets.length > 0) { + pluginDescriptorsByPass.splice(1, 0, ...presets.map(o => o.pass).filter(p => p !== pluginDescriptorsPass)); + for (const { + preset, + pass + } of presets) { + if (!preset) return true; + pass.push(...preset.plugins); + const ignored = yield* recursePresetDescriptors(preset.presets, pass); + if (ignored) return true; + preset.options.forEach(opts => { + (0, _util.mergeOptions)(optionDefaults, opts); + }); + } + } + })(presetsDescriptors, pluginDescriptorsByPass[0]); + if (ignored) return null; + const opts = optionDefaults; + (0, _util.mergeOptions)(opts, options); + const pluginContext = Object.assign({}, presetContext, { + assumptions: (_opts$assumptions = opts.assumptions) != null ? _opts$assumptions : {} + }); + yield* enhanceError(context, function* loadPluginDescriptors() { + pluginDescriptorsByPass[0].unshift(...initialPluginsDescriptors); + for (const descs of pluginDescriptorsByPass) { + const pass = []; + passes.push(pass); + for (let i = 0; i < descs.length; i++) { + const descriptor = descs[i]; + if (descriptor.options !== false) { + try { + var plugin = yield* loadPluginDescriptor(descriptor, pluginContext); + } catch (e) { + if (e.code === "BABEL_UNKNOWN_PLUGIN_PROPERTY") { + (0, _options.checkNoUnwrappedItemOptionPairs)(descs, i, "plugin", e); + } + throw e; + } + pass.push(plugin); + externalDependencies.push(plugin.externalDependencies); + } + } + } + })(); + opts.plugins = passes[0]; + opts.presets = passes.slice(1).filter(plugins => plugins.length > 0).map(plugins => ({ + plugins + })); + opts.passPerPreset = opts.presets.length > 0; + return { + options: opts, + passes: passes, + externalDependencies: (0, _deepArray.finalize)(externalDependencies) + }; +}); +exports["default"] = _default; +function enhanceError(context, fn) { + return function* (arg1, arg2) { + try { + return yield* fn(arg1, arg2); + } catch (e) { + if (!/^\[BABEL\]/.test(e.message)) { + var _context$filename; + e.message = `[BABEL] ${(_context$filename = context.filename) != null ? _context$filename : "unknown file"}: ${e.message}`; + } + throw e; + } + }; +} +const makeDescriptorLoader = apiFactory => (0, _caching.makeWeakCache)(function* ({ + value, + options, + dirname, + alias +}, cache) { + if (options === false) throw new Error("Assertion failure"); + options = options || {}; + const externalDependencies = []; + let item = value; + if (typeof value === "function") { + const factory = (0, _async.maybeAsync)(value, `You appear to be using an async plugin/preset, but Babel has been called synchronously`); + const api = Object.assign({}, context, apiFactory(cache, externalDependencies)); + try { + item = yield* factory(api, options, dirname); + } catch (e) { + if (alias) { + e.message += ` (While processing: ${JSON.stringify(alias)})`; + } + throw e; + } + } + if (!item || typeof item !== "object") { + throw new Error("Plugin/Preset did not return an object."); + } + if ((0, _async.isThenable)(item)) { + yield* []; + throw new Error(`You appear to be using a promise as a plugin, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, ` + `you may need to upgrade your @babel/core version. ` + `As an alternative, you can prefix the promise with "await". ` + `(While processing: ${JSON.stringify(alias)})`); + } + if (externalDependencies.length > 0 && (!cache.configured() || cache.mode() === "forever")) { + let error = `A plugin/preset has external untracked dependencies ` + `(${externalDependencies[0]}), but the cache `; + if (!cache.configured()) { + error += `has not been configured to be invalidated when the external dependencies change. `; + } else { + error += ` has been configured to never be invalidated. `; + } + error += `Plugins/presets should configure their cache to be invalidated when the external ` + `dependencies change, for example using \`api.cache.invalidate(() => ` + `statSync(filepath).mtimeMs)\` or \`api.cache.never()\`\n` + `(While processing: ${JSON.stringify(alias)})`; + throw new Error(error); + } + return { + value: item, + options, + dirname, + alias, + externalDependencies: (0, _deepArray.finalize)(externalDependencies) + }; +}); +const pluginDescriptorLoader = makeDescriptorLoader(_configApi.makePluginAPI); +const presetDescriptorLoader = makeDescriptorLoader(_configApi.makePresetAPI); +const instantiatePlugin = (0, _caching.makeWeakCache)(function* ({ + value, + options, + dirname, + alias, + externalDependencies +}, cache) { + const pluginObj = (0, _plugins.validatePluginObject)(value); + const plugin = Object.assign({}, pluginObj); + if (plugin.visitor) { + plugin.visitor = _traverse().default.explode(Object.assign({}, plugin.visitor)); + } + if (plugin.inherits) { + const inheritsDescriptor = { + name: undefined, + alias: `${alias}$inherits`, + value: plugin.inherits, + options, + dirname + }; + const inherits = yield* (0, _async.forwardAsync)(loadPluginDescriptor, run => { + return cache.invalidate(data => run(inheritsDescriptor, data)); + }); + plugin.pre = chain(inherits.pre, plugin.pre); + plugin.post = chain(inherits.post, plugin.post); + plugin.manipulateOptions = chain(inherits.manipulateOptions, plugin.manipulateOptions); + plugin.visitor = _traverse().default.visitors.merge([inherits.visitor || {}, plugin.visitor || {}]); + if (inherits.externalDependencies.length > 0) { + if (externalDependencies.length === 0) { + externalDependencies = inherits.externalDependencies; + } else { + externalDependencies = (0, _deepArray.finalize)([externalDependencies, inherits.externalDependencies]); + } + } + } + return new _plugin.default(plugin, options, alias, externalDependencies); +}); +function* loadPluginDescriptor(descriptor, context) { + if (descriptor.value instanceof _plugin.default) { + if (descriptor.options) { + throw new Error("Passed options to an existing Plugin instance will not work."); + } + return descriptor.value; + } + return yield* instantiatePlugin(yield* pluginDescriptorLoader(descriptor, context), context); +} +const needsFilename = val => val && typeof val !== "function"; +const validateIfOptionNeedsFilename = (options, descriptor) => { + if (needsFilename(options.test) || needsFilename(options.include) || needsFilename(options.exclude)) { + const formattedPresetName = descriptor.name ? `"${descriptor.name}"` : "/* your preset */"; + throw new _configError.default([`Preset ${formattedPresetName} requires a filename to be set when babel is called directly,`, `\`\`\``, `babel.transformSync(code, { filename: 'file.ts', presets: [${formattedPresetName}] });`, `\`\`\``, `See https://babeljs.io/docs/en/options#filename for more information.`].join("\n")); + } +}; +const validatePreset = (preset, context, descriptor) => { + if (!context.filename) { + const { + options + } = preset; + validateIfOptionNeedsFilename(options, descriptor); + if (options.overrides) { + options.overrides.forEach(overrideOptions => validateIfOptionNeedsFilename(overrideOptions, descriptor)); + } + } +}; +const instantiatePreset = (0, _caching.makeWeakCacheSync)(({ + value, + dirname, + alias, + externalDependencies +}) => { + return { + options: (0, _options.validate)("preset", value), + alias, + dirname, + externalDependencies + }; +}); +function* loadPresetDescriptor(descriptor, context) { + const preset = instantiatePreset(yield* presetDescriptorLoader(descriptor, context)); + validatePreset(preset, context, descriptor); + return { + chain: yield* (0, _configChain.buildPresetChain)(preset, context), + externalDependencies: preset.externalDependencies + }; +} +function chain(a, b) { + const fns = [a, b].filter(Boolean); + if (fns.length <= 1) return fns[0]; + return function (...args) { + for (const fn of fns) { + fn.apply(this, args); + } + }; +} +0 && 0; + +//# sourceMappingURL=full.js.map + + +/***/ }), + +/***/ 2300: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.makeConfigAPI = makeConfigAPI; +exports.makePluginAPI = makePluginAPI; +exports.makePresetAPI = makePresetAPI; +function _semver() { + const data = __webpack_require__(8999); + _semver = function () { + return data; + }; + return data; +} +var _ = __webpack_require__(6246); +var _caching = __webpack_require__(6846); +function makeConfigAPI(cache) { + const env = value => cache.using(data => { + if (typeof value === "undefined") return data.envName; + if (typeof value === "function") { + return (0, _caching.assertSimpleType)(value(data.envName)); + } + return (Array.isArray(value) ? value : [value]).some(entry => { + if (typeof entry !== "string") { + throw new Error("Unexpected non-string value"); + } + return entry === data.envName; + }); + }); + const caller = cb => cache.using(data => (0, _caching.assertSimpleType)(cb(data.caller))); + return { + version: _.version, + cache: cache.simple(), + env, + async: () => false, + caller, + assertVersion + }; +} +function makePresetAPI(cache, externalDependencies) { + const targets = () => JSON.parse(cache.using(data => JSON.stringify(data.targets))); + const addExternalDependency = ref => { + externalDependencies.push(ref); + }; + return Object.assign({}, makeConfigAPI(cache), { + targets, + addExternalDependency + }); +} +function makePluginAPI(cache, externalDependencies) { + const assumption = name => cache.using(data => data.assumptions[name]); + return Object.assign({}, makePresetAPI(cache, externalDependencies), { + assumption + }); +} +function assertVersion(range) { + if (typeof range === "number") { + if (!Number.isInteger(range)) { + throw new Error("Expected string or integer value."); + } + range = `^${range}.0.0-0`; + } + if (typeof range !== "string") { + throw new Error("Expected string or integer value."); + } + if (_semver().satisfies(_.version, range)) return; + const limit = Error.stackTraceLimit; + if (typeof limit === "number" && limit < 25) { + Error.stackTraceLimit = 25; + } + const err = new Error(`Requires Babel "${range}", but was loaded with "${_.version}". ` + `If you are sure you have a compatible version of @babel/core, ` + `it is likely that something in your build process is loading the ` + `wrong version. Inspect the stack trace of this error to look for ` + `the first entry that doesn't mention "@babel/core" or "babel-core" ` + `to see what is calling Babel.`); + if (typeof limit === "number") { + Error.stackTraceLimit = limit; + } + throw Object.assign(err, { + code: "BABEL_VERSION_UNSUPPORTED", + version: _.version, + range + }); +} +0 && 0; + +//# sourceMappingURL=config-api.js.map + + +/***/ }), + +/***/ 589: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.finalize = finalize; +exports.flattenToSet = flattenToSet; +function finalize(deepArr) { + return Object.freeze(deepArr); +} +function flattenToSet(arr) { + const result = new Set(); + const stack = [arr]; + while (stack.length > 0) { + for (const el of stack.pop()) { + if (Array.isArray(el)) stack.push(el);else result.add(el); + } + } + return result; +} +0 && 0; + +//# sourceMappingURL=deep-array.js.map + + +/***/ }), + +/***/ 5445: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.getEnv = getEnv; +function getEnv(defaultValue = "development") { + return process.env.BABEL_ENV || process.env.NODE_ENV || defaultValue; +} +0 && 0; + +//# sourceMappingURL=environment.js.map + + +/***/ }), + +/***/ 9866: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.createConfigItem = createConfigItem; +exports.createConfigItemSync = exports.createConfigItemAsync = void 0; +Object.defineProperty(exports, "default", ({ + enumerable: true, + get: function () { + return _full.default; + } +})); +exports.loadPartialConfigSync = exports.loadPartialConfigAsync = exports.loadPartialConfig = exports.loadOptionsSync = exports.loadOptionsAsync = exports.loadOptions = void 0; +function _gensync() { + const data = __webpack_require__(3531); + _gensync = function () { + return data; + }; + return data; +} +var _full = __webpack_require__(7365); +var _partial = __webpack_require__(3821); +var _item = __webpack_require__(8589); +const loadOptionsRunner = _gensync()(function* (opts) { + var _config$options; + const config = yield* (0, _full.default)(opts); + return (_config$options = config == null ? void 0 : config.options) != null ? _config$options : null; +}); +const createConfigItemRunner = _gensync()(_item.createConfigItem); +const maybeErrback = runner => (argOrCallback, maybeCallback) => { + let arg; + let callback; + if (maybeCallback === undefined && typeof argOrCallback === "function") { + callback = argOrCallback; + arg = undefined; + } else { + callback = maybeCallback; + arg = argOrCallback; + } + return callback ? runner.errback(arg, callback) : runner.sync(arg); +}; +const loadPartialConfig = maybeErrback(_partial.loadPartialConfig); +exports.loadPartialConfig = loadPartialConfig; +const loadPartialConfigSync = _partial.loadPartialConfig.sync; +exports.loadPartialConfigSync = loadPartialConfigSync; +const loadPartialConfigAsync = _partial.loadPartialConfig.async; +exports.loadPartialConfigAsync = loadPartialConfigAsync; +const loadOptions = maybeErrback(loadOptionsRunner); +exports.loadOptions = loadOptions; +const loadOptionsSync = loadOptionsRunner.sync; +exports.loadOptionsSync = loadOptionsSync; +const loadOptionsAsync = loadOptionsRunner.async; +exports.loadOptionsAsync = loadOptionsAsync; +const createConfigItemSync = createConfigItemRunner.sync; +exports.createConfigItemSync = createConfigItemSync; +const createConfigItemAsync = createConfigItemRunner.async; +exports.createConfigItemAsync = createConfigItemAsync; +function createConfigItem(target, options, callback) { + if (callback !== undefined) { + return createConfigItemRunner.errback(target, options, callback); + } else if (typeof options === "function") { + return createConfigItemRunner.errback(target, undefined, callback); + } else { + return createConfigItemRunner.sync(target, options); + } +} +0 && 0; + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 8589: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.createConfigItem = createConfigItem; +exports.createItemFromDescriptor = createItemFromDescriptor; +exports.getItemDescriptor = getItemDescriptor; +function _path() { + const data = __webpack_require__(1017); + _path = function () { + return data; + }; + return data; +} +var _configDescriptors = __webpack_require__(7756); +function createItemFromDescriptor(desc) { + return new ConfigItem(desc); +} +function* createConfigItem(value, { + dirname = ".", + type +} = {}) { + const descriptor = yield* (0, _configDescriptors.createDescriptor)(value, _path().resolve(dirname), { + type, + alias: "programmatic item" + }); + return createItemFromDescriptor(descriptor); +} +const CONFIG_ITEM_BRAND = Symbol.for("@babel/core@7 - ConfigItem"); +function getItemDescriptor(item) { + if (item != null && item[CONFIG_ITEM_BRAND]) { + return item._descriptor; + } + return undefined; +} +class ConfigItem { + constructor(descriptor) { + this._descriptor = void 0; + this[CONFIG_ITEM_BRAND] = true; + this.value = void 0; + this.options = void 0; + this.dirname = void 0; + this.name = void 0; + this.file = void 0; + this._descriptor = descriptor; + Object.defineProperty(this, "_descriptor", { + enumerable: false + }); + Object.defineProperty(this, CONFIG_ITEM_BRAND, { + enumerable: false + }); + this.value = this._descriptor.value; + this.options = this._descriptor.options; + this.dirname = this._descriptor.dirname; + this.name = this._descriptor.name; + this.file = this._descriptor.file ? { + request: this._descriptor.file.request, + resolved: this._descriptor.file.resolved + } : undefined; + Object.freeze(this); + } +} +Object.freeze(ConfigItem.prototype); +0 && 0; + +//# sourceMappingURL=item.js.map + + +/***/ }), + +/***/ 3821: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = loadPrivatePartialConfig; +exports.loadPartialConfig = void 0; +function _path() { + const data = __webpack_require__(1017); + _path = function () { + return data; + }; + return data; +} +function _gensync() { + const data = __webpack_require__(3531); + _gensync = function () { + return data; + }; + return data; +} +var _plugin = __webpack_require__(8474); +var _util = __webpack_require__(734); +var _item = __webpack_require__(8589); +var _configChain = __webpack_require__(2100); +var _environment = __webpack_require__(5445); +var _options = __webpack_require__(2306); +var _files = __webpack_require__(3355); +var _resolveTargets = __webpack_require__(2259); +const _excluded = ["showIgnoredFiles"]; +function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } +function resolveRootMode(rootDir, rootMode) { + switch (rootMode) { + case "root": + return rootDir; + case "upward-optional": + { + const upwardRootDir = (0, _files.findConfigUpwards)(rootDir); + return upwardRootDir === null ? rootDir : upwardRootDir; + } + case "upward": + { + const upwardRootDir = (0, _files.findConfigUpwards)(rootDir); + if (upwardRootDir !== null) return upwardRootDir; + throw Object.assign(new Error(`Babel was run with rootMode:"upward" but a root could not ` + `be found when searching upward from "${rootDir}".\n` + `One of the following config files must be in the directory tree: ` + `"${_files.ROOT_CONFIG_FILENAMES.join(", ")}".`), { + code: "BABEL_ROOT_NOT_FOUND", + dirname: rootDir + }); + } + default: + throw new Error(`Assertion failure - unknown rootMode value.`); + } +} +function* loadPrivatePartialConfig(inputOpts) { + if (inputOpts != null && (typeof inputOpts !== "object" || Array.isArray(inputOpts))) { + throw new Error("Babel options must be an object, null, or undefined"); + } + const args = inputOpts ? (0, _options.validate)("arguments", inputOpts) : {}; + const { + envName = (0, _environment.getEnv)(), + cwd = ".", + root: rootDir = ".", + rootMode = "root", + caller, + cloneInputAst = true + } = args; + const absoluteCwd = _path().resolve(cwd); + const absoluteRootDir = resolveRootMode(_path().resolve(absoluteCwd, rootDir), rootMode); + const filename = typeof args.filename === "string" ? _path().resolve(cwd, args.filename) : undefined; + const showConfigPath = yield* (0, _files.resolveShowConfigPath)(absoluteCwd); + const context = { + filename, + cwd: absoluteCwd, + root: absoluteRootDir, + envName, + caller, + showConfig: showConfigPath === filename + }; + const configChain = yield* (0, _configChain.buildRootChain)(args, context); + if (!configChain) return null; + const merged = { + assumptions: {} + }; + configChain.options.forEach(opts => { + (0, _util.mergeOptions)(merged, opts); + }); + const options = Object.assign({}, merged, { + targets: (0, _resolveTargets.resolveTargets)(merged, absoluteRootDir), + cloneInputAst, + babelrc: false, + configFile: false, + browserslistConfigFile: false, + passPerPreset: false, + envName: context.envName, + cwd: context.cwd, + root: context.root, + rootMode: "root", + filename: typeof context.filename === "string" ? context.filename : undefined, + plugins: configChain.plugins.map(descriptor => (0, _item.createItemFromDescriptor)(descriptor)), + presets: configChain.presets.map(descriptor => (0, _item.createItemFromDescriptor)(descriptor)) + }); + return { + options, + context, + fileHandling: configChain.fileHandling, + ignore: configChain.ignore, + babelrc: configChain.babelrc, + config: configChain.config, + files: configChain.files + }; +} +const loadPartialConfig = _gensync()(function* (opts) { + let showIgnoredFiles = false; + if (typeof opts === "object" && opts !== null && !Array.isArray(opts)) { + var _opts = opts; + ({ + showIgnoredFiles + } = _opts); + opts = _objectWithoutPropertiesLoose(_opts, _excluded); + _opts; + } + const result = yield* loadPrivatePartialConfig(opts); + if (!result) return null; + const { + options, + babelrc, + ignore, + config, + fileHandling, + files + } = result; + if (fileHandling === "ignored" && !showIgnoredFiles) { + return null; + } + (options.plugins || []).forEach(item => { + if (item.value instanceof _plugin.default) { + throw new Error("Passing cached plugin instances is not supported in " + "babel.loadPartialConfig()"); + } + }); + return new PartialConfig(options, babelrc ? babelrc.filepath : undefined, ignore ? ignore.filepath : undefined, config ? config.filepath : undefined, fileHandling, files); +}); +exports.loadPartialConfig = loadPartialConfig; +class PartialConfig { + constructor(options, babelrc, ignore, config, fileHandling, files) { + this.options = void 0; + this.babelrc = void 0; + this.babelignore = void 0; + this.config = void 0; + this.fileHandling = void 0; + this.files = void 0; + this.options = options; + this.babelignore = ignore; + this.babelrc = babelrc; + this.config = config; + this.fileHandling = fileHandling; + this.files = files; + Object.freeze(this); + } + hasFilesystemConfig() { + return this.babelrc !== undefined || this.config !== undefined; + } +} +Object.freeze(PartialConfig.prototype); +0 && 0; + +//# sourceMappingURL=partial.js.map + + +/***/ }), + +/***/ 2775: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = pathToPattern; +function _path() { + const data = __webpack_require__(1017); + _path = function () { + return data; + }; + return data; +} +const sep = `\\${_path().sep}`; +const endSep = `(?:${sep}|$)`; +const substitution = `[^${sep}]+`; +const starPat = `(?:${substitution}${sep})`; +const starPatLast = `(?:${substitution}${endSep})`; +const starStarPat = `${starPat}*?`; +const starStarPatLast = `${starPat}*?${starPatLast}?`; +function escapeRegExp(string) { + return string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&"); +} +function pathToPattern(pattern, dirname) { + const parts = _path().resolve(dirname, pattern).split(_path().sep); + return new RegExp(["^", ...parts.map((part, i) => { + const last = i === parts.length - 1; + if (part === "**") return last ? starStarPatLast : starStarPat; + if (part === "*") return last ? starPatLast : starPat; + if (part.indexOf("*.") === 0) { + return substitution + escapeRegExp(part.slice(1)) + (last ? endSep : sep); + } + return escapeRegExp(part) + (last ? endSep : sep); + })].join("")); +} +0 && 0; + +//# sourceMappingURL=pattern-to-regex.js.map + + +/***/ }), + +/***/ 8474: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +var _deepArray = __webpack_require__(589); +class Plugin { + constructor(plugin, options, key, externalDependencies = (0, _deepArray.finalize)([])) { + this.key = void 0; + this.manipulateOptions = void 0; + this.post = void 0; + this.pre = void 0; + this.visitor = void 0; + this.parserOverride = void 0; + this.generatorOverride = void 0; + this.options = void 0; + this.externalDependencies = void 0; + this.key = plugin.name || key; + this.manipulateOptions = plugin.manipulateOptions; + this.post = plugin.post; + this.pre = plugin.pre; + this.visitor = plugin.visitor || {}; + this.parserOverride = plugin.parserOverride; + this.generatorOverride = plugin.generatorOverride; + this.options = options; + this.externalDependencies = externalDependencies; + } +} +exports["default"] = Plugin; +0 && 0; + +//# sourceMappingURL=plugin.js.map + + +/***/ }), + +/***/ 5077: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.ConfigPrinter = exports.ChainFormatter = void 0; +function _gensync() { + const data = __webpack_require__(3531); + _gensync = function () { + return data; + }; + return data; +} +const ChainFormatter = { + Programmatic: 0, + Config: 1 +}; +exports.ChainFormatter = ChainFormatter; +const Formatter = { + title(type, callerName, filepath) { + let title = ""; + if (type === ChainFormatter.Programmatic) { + title = "programmatic options"; + if (callerName) { + title += " from " + callerName; + } + } else { + title = "config " + filepath; + } + return title; + }, + loc(index, envName) { + let loc = ""; + if (index != null) { + loc += `.overrides[${index}]`; + } + if (envName != null) { + loc += `.env["${envName}"]`; + } + return loc; + }, + *optionsAndDescriptors(opt) { + const content = Object.assign({}, opt.options); + delete content.overrides; + delete content.env; + const pluginDescriptors = [...(yield* opt.plugins())]; + if (pluginDescriptors.length) { + content.plugins = pluginDescriptors.map(d => descriptorToConfig(d)); + } + const presetDescriptors = [...(yield* opt.presets())]; + if (presetDescriptors.length) { + content.presets = [...presetDescriptors].map(d => descriptorToConfig(d)); + } + return JSON.stringify(content, undefined, 2); + } +}; +function descriptorToConfig(d) { + var _d$file; + let name = (_d$file = d.file) == null ? void 0 : _d$file.request; + if (name == null) { + if (typeof d.value === "object") { + name = d.value; + } else if (typeof d.value === "function") { + name = `[Function: ${d.value.toString().slice(0, 50)} ... ]`; + } + } + if (name == null) { + name = "[Unknown]"; + } + if (d.options === undefined) { + return name; + } else if (d.name == null) { + return [name, d.options]; + } else { + return [name, d.options, d.name]; + } +} +class ConfigPrinter { + constructor() { + this._stack = []; + } + configure(enabled, type, { + callerName, + filepath + }) { + if (!enabled) return () => {}; + return (content, index, envName) => { + this._stack.push({ + type, + callerName, + filepath, + content, + index, + envName + }); + }; + } + static *format(config) { + let title = Formatter.title(config.type, config.callerName, config.filepath); + const loc = Formatter.loc(config.index, config.envName); + if (loc) title += ` ${loc}`; + const content = yield* Formatter.optionsAndDescriptors(config.content); + return `${title}\n${content}`; + } + *output() { + if (this._stack.length === 0) return ""; + const configs = yield* _gensync().all(this._stack.map(s => ConfigPrinter.format(s))); + return configs.join("\n\n"); + } +} +exports.ConfigPrinter = ConfigPrinter; +0 && 0; + +//# sourceMappingURL=printer.js.map + + +/***/ }), + +/***/ 2259: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.resolveBrowserslistConfigFile = resolveBrowserslistConfigFile; +exports.resolveTargets = resolveTargets; +function _path() { + const data = __webpack_require__(1017); + _path = function () { + return data; + }; + return data; +} +function _helperCompilationTargets() { + const data = __webpack_require__(6006); + _helperCompilationTargets = function () { + return data; + }; + return data; +} +({}); +function resolveBrowserslistConfigFile(browserslistConfigFile, configFileDir) { + return _path().resolve(configFileDir, browserslistConfigFile); +} +function resolveTargets(options, root) { + const optTargets = options.targets; + let targets; + if (typeof optTargets === "string" || Array.isArray(optTargets)) { + targets = { + browsers: optTargets + }; + } else if (optTargets) { + if ("esmodules" in optTargets) { + targets = Object.assign({}, optTargets, { + esmodules: "intersect" + }); + } else { + targets = optTargets; + } + } + const { + browserslistConfigFile + } = options; + let configFile; + let ignoreBrowserslistConfig = false; + if (typeof browserslistConfigFile === "string") { + configFile = browserslistConfigFile; + } else { + ignoreBrowserslistConfig = browserslistConfigFile === false; + } + return (0, _helperCompilationTargets().default)(targets, { + ignoreBrowserslistConfig, + configFile, + configPath: root, + browserslistEnv: options.browserslistEnv + }); +} +0 && 0; + +//# sourceMappingURL=resolve-targets.js.map + + +/***/ }), + +/***/ 734: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.isIterableIterator = isIterableIterator; +exports.mergeOptions = mergeOptions; +function mergeOptions(target, source) { + for (const k of Object.keys(source)) { + if ((k === "parserOpts" || k === "generatorOpts" || k === "assumptions") && source[k]) { + const parserOpts = source[k]; + const targetObj = target[k] || (target[k] = {}); + mergeDefaultFields(targetObj, parserOpts); + } else { + const val = source[k]; + if (val !== undefined) target[k] = val; + } + } +} +function mergeDefaultFields(target, source) { + for (const k of Object.keys(source)) { + const val = source[k]; + if (val !== undefined) target[k] = val; + } +} +function isIterableIterator(value) { + return !!value && typeof value.next === "function" && typeof value[Symbol.iterator] === "function"; +} +0 && 0; + +//# sourceMappingURL=util.js.map + + +/***/ }), + +/***/ 8209: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.access = access; +exports.assertArray = assertArray; +exports.assertAssumptions = assertAssumptions; +exports.assertBabelrcSearch = assertBabelrcSearch; +exports.assertBoolean = assertBoolean; +exports.assertCallerMetadata = assertCallerMetadata; +exports.assertCompact = assertCompact; +exports.assertConfigApplicableTest = assertConfigApplicableTest; +exports.assertConfigFileSearch = assertConfigFileSearch; +exports.assertFunction = assertFunction; +exports.assertIgnoreList = assertIgnoreList; +exports.assertInputSourceMap = assertInputSourceMap; +exports.assertObject = assertObject; +exports.assertPluginList = assertPluginList; +exports.assertRootMode = assertRootMode; +exports.assertSourceMaps = assertSourceMaps; +exports.assertSourceType = assertSourceType; +exports.assertString = assertString; +exports.assertTargets = assertTargets; +exports.msg = msg; +function _helperCompilationTargets() { + const data = __webpack_require__(6006); + _helperCompilationTargets = function () { + return data; + }; + return data; +} +var _options = __webpack_require__(2306); +function msg(loc) { + switch (loc.type) { + case "root": + return ``; + case "env": + return `${msg(loc.parent)}.env["${loc.name}"]`; + case "overrides": + return `${msg(loc.parent)}.overrides[${loc.index}]`; + case "option": + return `${msg(loc.parent)}.${loc.name}`; + case "access": + return `${msg(loc.parent)}[${JSON.stringify(loc.name)}]`; + default: + throw new Error(`Assertion failure: Unknown type ${loc.type}`); + } +} +function access(loc, name) { + return { + type: "access", + name, + parent: loc + }; +} +function assertRootMode(loc, value) { + if (value !== undefined && value !== "root" && value !== "upward" && value !== "upward-optional") { + throw new Error(`${msg(loc)} must be a "root", "upward", "upward-optional" or undefined`); + } + return value; +} +function assertSourceMaps(loc, value) { + if (value !== undefined && typeof value !== "boolean" && value !== "inline" && value !== "both") { + throw new Error(`${msg(loc)} must be a boolean, "inline", "both", or undefined`); + } + return value; +} +function assertCompact(loc, value) { + if (value !== undefined && typeof value !== "boolean" && value !== "auto") { + throw new Error(`${msg(loc)} must be a boolean, "auto", or undefined`); + } + return value; +} +function assertSourceType(loc, value) { + if (value !== undefined && value !== "module" && value !== "script" && value !== "unambiguous") { + throw new Error(`${msg(loc)} must be "module", "script", "unambiguous", or undefined`); + } + return value; +} +function assertCallerMetadata(loc, value) { + const obj = assertObject(loc, value); + if (obj) { + if (typeof obj.name !== "string") { + throw new Error(`${msg(loc)} set but does not contain "name" property string`); + } + for (const prop of Object.keys(obj)) { + const propLoc = access(loc, prop); + const value = obj[prop]; + if (value != null && typeof value !== "boolean" && typeof value !== "string" && typeof value !== "number") { + throw new Error(`${msg(propLoc)} must be null, undefined, a boolean, a string, or a number.`); + } + } + } + return value; +} +function assertInputSourceMap(loc, value) { + if (value !== undefined && typeof value !== "boolean" && (typeof value !== "object" || !value)) { + throw new Error(`${msg(loc)} must be a boolean, object, or undefined`); + } + return value; +} +function assertString(loc, value) { + if (value !== undefined && typeof value !== "string") { + throw new Error(`${msg(loc)} must be a string, or undefined`); + } + return value; +} +function assertFunction(loc, value) { + if (value !== undefined && typeof value !== "function") { + throw new Error(`${msg(loc)} must be a function, or undefined`); + } + return value; +} +function assertBoolean(loc, value) { + if (value !== undefined && typeof value !== "boolean") { + throw new Error(`${msg(loc)} must be a boolean, or undefined`); + } + return value; +} +function assertObject(loc, value) { + if (value !== undefined && (typeof value !== "object" || Array.isArray(value) || !value)) { + throw new Error(`${msg(loc)} must be an object, or undefined`); + } + return value; +} +function assertArray(loc, value) { + if (value != null && !Array.isArray(value)) { + throw new Error(`${msg(loc)} must be an array, or undefined`); + } + return value; +} +function assertIgnoreList(loc, value) { + const arr = assertArray(loc, value); + if (arr) { + arr.forEach((item, i) => assertIgnoreItem(access(loc, i), item)); + } + return arr; +} +function assertIgnoreItem(loc, value) { + if (typeof value !== "string" && typeof value !== "function" && !(value instanceof RegExp)) { + throw new Error(`${msg(loc)} must be an array of string/Function/RegExp values, or undefined`); + } + return value; +} +function assertConfigApplicableTest(loc, value) { + if (value === undefined) { + return value; + } + if (Array.isArray(value)) { + value.forEach((item, i) => { + if (!checkValidTest(item)) { + throw new Error(`${msg(access(loc, i))} must be a string/Function/RegExp.`); + } + }); + } else if (!checkValidTest(value)) { + throw new Error(`${msg(loc)} must be a string/Function/RegExp, or an array of those`); + } + return value; +} +function checkValidTest(value) { + return typeof value === "string" || typeof value === "function" || value instanceof RegExp; +} +function assertConfigFileSearch(loc, value) { + if (value !== undefined && typeof value !== "boolean" && typeof value !== "string") { + throw new Error(`${msg(loc)} must be a undefined, a boolean, a string, ` + `got ${JSON.stringify(value)}`); + } + return value; +} +function assertBabelrcSearch(loc, value) { + if (value === undefined || typeof value === "boolean") { + return value; + } + if (Array.isArray(value)) { + value.forEach((item, i) => { + if (!checkValidTest(item)) { + throw new Error(`${msg(access(loc, i))} must be a string/Function/RegExp.`); + } + }); + } else if (!checkValidTest(value)) { + throw new Error(`${msg(loc)} must be a undefined, a boolean, a string/Function/RegExp ` + `or an array of those, got ${JSON.stringify(value)}`); + } + return value; +} +function assertPluginList(loc, value) { + const arr = assertArray(loc, value); + if (arr) { + arr.forEach((item, i) => assertPluginItem(access(loc, i), item)); + } + return arr; +} +function assertPluginItem(loc, value) { + if (Array.isArray(value)) { + if (value.length === 0) { + throw new Error(`${msg(loc)} must include an object`); + } + if (value.length > 3) { + throw new Error(`${msg(loc)} may only be a two-tuple or three-tuple`); + } + assertPluginTarget(access(loc, 0), value[0]); + if (value.length > 1) { + const opts = value[1]; + if (opts !== undefined && opts !== false && (typeof opts !== "object" || Array.isArray(opts) || opts === null)) { + throw new Error(`${msg(access(loc, 1))} must be an object, false, or undefined`); + } + } + if (value.length === 3) { + const name = value[2]; + if (name !== undefined && typeof name !== "string") { + throw new Error(`${msg(access(loc, 2))} must be a string, or undefined`); + } + } + } else { + assertPluginTarget(loc, value); + } + return value; +} +function assertPluginTarget(loc, value) { + if ((typeof value !== "object" || !value) && typeof value !== "string" && typeof value !== "function") { + throw new Error(`${msg(loc)} must be a string, object, function`); + } + return value; +} +function assertTargets(loc, value) { + if ((0, _helperCompilationTargets().isBrowsersQueryValid)(value)) return value; + if (typeof value !== "object" || !value || Array.isArray(value)) { + throw new Error(`${msg(loc)} must be a string, an array of strings or an object`); + } + const browsersLoc = access(loc, "browsers"); + const esmodulesLoc = access(loc, "esmodules"); + assertBrowsersList(browsersLoc, value.browsers); + assertBoolean(esmodulesLoc, value.esmodules); + for (const key of Object.keys(value)) { + const val = value[key]; + const subLoc = access(loc, key); + if (key === "esmodules") assertBoolean(subLoc, val);else if (key === "browsers") assertBrowsersList(subLoc, val);else if (!Object.hasOwnProperty.call(_helperCompilationTargets().TargetNames, key)) { + const validTargets = Object.keys(_helperCompilationTargets().TargetNames).join(", "); + throw new Error(`${msg(subLoc)} is not a valid target. Supported targets are ${validTargets}`); + } else assertBrowserVersion(subLoc, val); + } + return value; +} +function assertBrowsersList(loc, value) { + if (value !== undefined && !(0, _helperCompilationTargets().isBrowsersQueryValid)(value)) { + throw new Error(`${msg(loc)} must be undefined, a string or an array of strings`); + } +} +function assertBrowserVersion(loc, value) { + if (typeof value === "number" && Math.round(value) === value) return; + if (typeof value === "string") return; + throw new Error(`${msg(loc)} must be a string or an integer number`); +} +function assertAssumptions(loc, value) { + if (value === undefined) return; + if (typeof value !== "object" || value === null) { + throw new Error(`${msg(loc)} must be an object or undefined.`); + } + let root = loc; + do { + root = root.parent; + } while (root.type !== "root"); + const inPreset = root.source === "preset"; + for (const name of Object.keys(value)) { + const subLoc = access(loc, name); + if (!_options.assumptionsNames.has(name)) { + throw new Error(`${msg(subLoc)} is not a supported assumption.`); + } + if (typeof value[name] !== "boolean") { + throw new Error(`${msg(subLoc)} must be a boolean.`); + } + if (inPreset && value[name] === false) { + throw new Error(`${msg(subLoc)} cannot be set to 'false' inside presets.`); + } + } + return value; +} +0 && 0; + +//# sourceMappingURL=option-assertions.js.map + + +/***/ }), + +/***/ 2306: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.assumptionsNames = void 0; +exports.checkNoUnwrappedItemOptionPairs = checkNoUnwrappedItemOptionPairs; +exports.validate = validate; +var _removed = __webpack_require__(2482); +var _optionAssertions = __webpack_require__(8209); +var _configError = __webpack_require__(1388); +const ROOT_VALIDATORS = { + cwd: _optionAssertions.assertString, + root: _optionAssertions.assertString, + rootMode: _optionAssertions.assertRootMode, + configFile: _optionAssertions.assertConfigFileSearch, + caller: _optionAssertions.assertCallerMetadata, + filename: _optionAssertions.assertString, + filenameRelative: _optionAssertions.assertString, + code: _optionAssertions.assertBoolean, + ast: _optionAssertions.assertBoolean, + cloneInputAst: _optionAssertions.assertBoolean, + envName: _optionAssertions.assertString +}; +const BABELRC_VALIDATORS = { + babelrc: _optionAssertions.assertBoolean, + babelrcRoots: _optionAssertions.assertBabelrcSearch +}; +const NONPRESET_VALIDATORS = { + extends: _optionAssertions.assertString, + ignore: _optionAssertions.assertIgnoreList, + only: _optionAssertions.assertIgnoreList, + targets: _optionAssertions.assertTargets, + browserslistConfigFile: _optionAssertions.assertConfigFileSearch, + browserslistEnv: _optionAssertions.assertString +}; +const COMMON_VALIDATORS = { + inputSourceMap: _optionAssertions.assertInputSourceMap, + presets: _optionAssertions.assertPluginList, + plugins: _optionAssertions.assertPluginList, + passPerPreset: _optionAssertions.assertBoolean, + assumptions: _optionAssertions.assertAssumptions, + env: assertEnvSet, + overrides: assertOverridesList, + test: _optionAssertions.assertConfigApplicableTest, + include: _optionAssertions.assertConfigApplicableTest, + exclude: _optionAssertions.assertConfigApplicableTest, + retainLines: _optionAssertions.assertBoolean, + comments: _optionAssertions.assertBoolean, + shouldPrintComment: _optionAssertions.assertFunction, + compact: _optionAssertions.assertCompact, + minified: _optionAssertions.assertBoolean, + auxiliaryCommentBefore: _optionAssertions.assertString, + auxiliaryCommentAfter: _optionAssertions.assertString, + sourceType: _optionAssertions.assertSourceType, + wrapPluginVisitorMethod: _optionAssertions.assertFunction, + highlightCode: _optionAssertions.assertBoolean, + sourceMaps: _optionAssertions.assertSourceMaps, + sourceMap: _optionAssertions.assertSourceMaps, + sourceFileName: _optionAssertions.assertString, + sourceRoot: _optionAssertions.assertString, + parserOpts: _optionAssertions.assertObject, + generatorOpts: _optionAssertions.assertObject +}; +{ + Object.assign(COMMON_VALIDATORS, { + getModuleId: _optionAssertions.assertFunction, + moduleRoot: _optionAssertions.assertString, + moduleIds: _optionAssertions.assertBoolean, + moduleId: _optionAssertions.assertString + }); +} +const knownAssumptions = ["arrayLikeIsIterable", "constantReexports", "constantSuper", "enumerableModuleMeta", "ignoreFunctionLength", "ignoreToPrimitiveHint", "iterableIsArray", "mutableTemplateObject", "noClassCalls", "noDocumentAll", "noIncompleteNsImportDetection", "noNewArrows", "objectRestNoSymbols", "privateFieldsAsProperties", "pureGetters", "setClassMethods", "setComputedProperties", "setPublicClassFields", "setSpreadProperties", "skipForOfIteratorClosing", "superIsCallableConstructor"]; +const assumptionsNames = new Set(knownAssumptions); +exports.assumptionsNames = assumptionsNames; +function getSource(loc) { + return loc.type === "root" ? loc.source : getSource(loc.parent); +} +function validate(type, opts, filename) { + try { + return validateNested({ + type: "root", + source: type + }, opts); + } catch (error) { + const configError = new _configError.default(error.message, filename); + if (error.code) configError.code = error.code; + throw configError; + } +} +function validateNested(loc, opts) { + const type = getSource(loc); + assertNoDuplicateSourcemap(opts); + Object.keys(opts).forEach(key => { + const optLoc = { + type: "option", + name: key, + parent: loc + }; + if (type === "preset" && NONPRESET_VALIDATORS[key]) { + throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is not allowed in preset options`); + } + if (type !== "arguments" && ROOT_VALIDATORS[key]) { + throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is only allowed in root programmatic options`); + } + if (type !== "arguments" && type !== "configfile" && BABELRC_VALIDATORS[key]) { + if (type === "babelrcfile" || type === "extendsfile") { + throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is not allowed in .babelrc or "extends"ed files, only in root programmatic options, ` + `or babel.config.js/config file options`); + } + throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is only allowed in root programmatic options, or babel.config.js/config file options`); + } + const validator = COMMON_VALIDATORS[key] || NONPRESET_VALIDATORS[key] || BABELRC_VALIDATORS[key] || ROOT_VALIDATORS[key] || throwUnknownError; + validator(optLoc, opts[key]); + }); + return opts; +} +function throwUnknownError(loc) { + const key = loc.name; + if (_removed.default[key]) { + const { + message, + version = 5 + } = _removed.default[key]; + throw new Error(`Using removed Babel ${version} option: ${(0, _optionAssertions.msg)(loc)} - ${message}`); + } else { + const unknownOptErr = new Error(`Unknown option: ${(0, _optionAssertions.msg)(loc)}. Check out https://babeljs.io/docs/en/babel-core/#options for more information about options.`); + unknownOptErr.code = "BABEL_UNKNOWN_OPTION"; + throw unknownOptErr; + } +} +function has(obj, key) { + return Object.prototype.hasOwnProperty.call(obj, key); +} +function assertNoDuplicateSourcemap(opts) { + if (has(opts, "sourceMap") && has(opts, "sourceMaps")) { + throw new Error(".sourceMap is an alias for .sourceMaps, cannot use both"); + } +} +function assertEnvSet(loc, value) { + if (loc.parent.type === "env") { + throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside of another .env block`); + } + const parent = loc.parent; + const obj = (0, _optionAssertions.assertObject)(loc, value); + if (obj) { + for (const envName of Object.keys(obj)) { + const env = (0, _optionAssertions.assertObject)((0, _optionAssertions.access)(loc, envName), obj[envName]); + if (!env) continue; + const envLoc = { + type: "env", + name: envName, + parent + }; + validateNested(envLoc, env); + } + } + return obj; +} +function assertOverridesList(loc, value) { + if (loc.parent.type === "env") { + throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside an .env block`); + } + if (loc.parent.type === "overrides") { + throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside an .overrides block`); + } + const parent = loc.parent; + const arr = (0, _optionAssertions.assertArray)(loc, value); + if (arr) { + for (const [index, item] of arr.entries()) { + const objLoc = (0, _optionAssertions.access)(loc, index); + const env = (0, _optionAssertions.assertObject)(objLoc, item); + if (!env) throw new Error(`${(0, _optionAssertions.msg)(objLoc)} must be an object`); + const overridesLoc = { + type: "overrides", + index, + parent + }; + validateNested(overridesLoc, env); + } + } + return arr; +} +function checkNoUnwrappedItemOptionPairs(items, index, type, e) { + if (index === 0) return; + const lastItem = items[index - 1]; + const thisItem = items[index]; + if (lastItem.file && lastItem.options === undefined && typeof thisItem.value === "object") { + e.message += `\n- Maybe you meant to use\n` + `"${type}s": [\n ["${lastItem.file.request}", ${JSON.stringify(thisItem.value, undefined, 2)}]\n]\n` + `To be a valid ${type}, its name and options should be wrapped in a pair of brackets`; + } +} +0 && 0; + +//# sourceMappingURL=options.js.map + + +/***/ }), + +/***/ 9512: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.validatePluginObject = validatePluginObject; +var _optionAssertions = __webpack_require__(8209); +const VALIDATORS = { + name: _optionAssertions.assertString, + manipulateOptions: _optionAssertions.assertFunction, + pre: _optionAssertions.assertFunction, + post: _optionAssertions.assertFunction, + inherits: _optionAssertions.assertFunction, + visitor: assertVisitorMap, + parserOverride: _optionAssertions.assertFunction, + generatorOverride: _optionAssertions.assertFunction +}; +function assertVisitorMap(loc, value) { + const obj = (0, _optionAssertions.assertObject)(loc, value); + if (obj) { + Object.keys(obj).forEach(prop => assertVisitorHandler(prop, obj[prop])); + if (obj.enter || obj.exit) { + throw new Error(`${(0, _optionAssertions.msg)(loc)} cannot contain catch-all "enter" or "exit" handlers. Please target individual nodes.`); + } + } + return obj; +} +function assertVisitorHandler(key, value) { + if (value && typeof value === "object") { + Object.keys(value).forEach(handler => { + if (handler !== "enter" && handler !== "exit") { + throw new Error(`.visitor["${key}"] may only have .enter and/or .exit handlers.`); + } + }); + } else if (typeof value !== "function") { + throw new Error(`.visitor["${key}"] must be a function`); + } + return value; +} +function validatePluginObject(obj) { + const rootPath = { + type: "root", + source: "plugin" + }; + Object.keys(obj).forEach(key => { + const validator = VALIDATORS[key]; + if (validator) { + const optLoc = { + type: "option", + name: key, + parent: rootPath + }; + validator(optLoc, obj[key]); + } else { + const invalidPluginPropertyError = new Error(`.${key} is not a valid Plugin property`); + invalidPluginPropertyError.code = "BABEL_UNKNOWN_PLUGIN_PROPERTY"; + throw invalidPluginPropertyError; + } + }); + return obj; +} +0 && 0; + +//# sourceMappingURL=plugins.js.map + + +/***/ }), + +/***/ 2482: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +var _default = { + auxiliaryComment: { + message: "Use `auxiliaryCommentBefore` or `auxiliaryCommentAfter`" + }, + blacklist: { + message: "Put the specific transforms you want in the `plugins` option" + }, + breakConfig: { + message: "This is not a necessary option in Babel 6" + }, + experimental: { + message: "Put the specific transforms you want in the `plugins` option" + }, + externalHelpers: { + message: "Use the `external-helpers` plugin instead. " + "Check out http://babeljs.io/docs/plugins/external-helpers/" + }, + extra: { + message: "" + }, + jsxPragma: { + message: "use the `pragma` option in the `react-jsx` plugin. " + "Check out http://babeljs.io/docs/plugins/transform-react-jsx/" + }, + loose: { + message: "Specify the `loose` option for the relevant plugin you are using " + "or use a preset that sets the option." + }, + metadataUsedHelpers: { + message: "Not required anymore as this is enabled by default" + }, + modules: { + message: "Use the corresponding module transform plugin in the `plugins` option. " + "Check out http://babeljs.io/docs/plugins/#modules" + }, + nonStandard: { + message: "Use the `react-jsx` and `flow-strip-types` plugins to support JSX and Flow. " + "Also check out the react preset http://babeljs.io/docs/plugins/preset-react/" + }, + optional: { + message: "Put the specific transforms you want in the `plugins` option" + }, + sourceMapName: { + message: "The `sourceMapName` option has been removed because it makes more sense for the " + "tooling that calls Babel to assign `map.file` themselves." + }, + stage: { + message: "Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets" + }, + whitelist: { + message: "Put the specific transforms you want in the `plugins` option" + }, + resolveModuleSource: { + version: 6, + message: "Use `babel-plugin-module-resolver@3`'s 'resolvePath' options" + }, + metadata: { + version: 6, + message: "Generated plugin metadata is always included in the output result" + }, + sourceMapTarget: { + version: 6, + message: "The `sourceMapTarget` option has been removed because it makes more sense for the tooling " + "that calls Babel to assign `map.file` themselves." + } +}; +exports["default"] = _default; +0 && 0; + +//# sourceMappingURL=removed.js.map + + +/***/ }), + +/***/ 1388: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +var _rewriteStackTrace = __webpack_require__(6772); +class ConfigError extends Error { + constructor(message, filename) { + super(message); + (0, _rewriteStackTrace.expectedError)(this); + if (filename) (0, _rewriteStackTrace.injcectVirtualStackFrame)(this, filename); + } +} +exports["default"] = ConfigError; +0 && 0; + +//# sourceMappingURL=config-error.js.map + + +/***/ }), + +/***/ 6772: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.beginHiddenCallStack = beginHiddenCallStack; +exports.endHiddenCallStack = endHiddenCallStack; +exports.expectedError = expectedError; +exports.injcectVirtualStackFrame = injcectVirtualStackFrame; +const ErrorToString = Function.call.bind(Error.prototype.toString); +const SUPPORTED = !!Error.captureStackTrace; +const START_HIDNG = "startHiding - secret - don't use this - v1"; +const STOP_HIDNG = "stopHiding - secret - don't use this - v1"; +const expectedErrors = new WeakSet(); +const virtualFrames = new WeakMap(); +function CallSite(filename) { + return Object.create({ + isNative: () => false, + isConstructor: () => false, + isToplevel: () => true, + getFileName: () => filename, + getLineNumber: () => undefined, + getColumnNumber: () => undefined, + getFunctionName: () => undefined, + getMethodName: () => undefined, + getTypeName: () => undefined, + toString: () => filename + }); +} +function injcectVirtualStackFrame(error, filename) { + if (!SUPPORTED) return; + let frames = virtualFrames.get(error); + if (!frames) virtualFrames.set(error, frames = []); + frames.push(CallSite(filename)); + return error; +} +function expectedError(error) { + if (!SUPPORTED) return; + expectedErrors.add(error); + return error; +} +function beginHiddenCallStack(fn) { + if (!SUPPORTED) return fn; + return Object.defineProperty(function (...args) { + setupPrepareStackTrace(); + return fn(...args); + }, "name", { + value: STOP_HIDNG + }); +} +function endHiddenCallStack(fn) { + if (!SUPPORTED) return fn; + return Object.defineProperty(function (...args) { + return fn(...args); + }, "name", { + value: START_HIDNG + }); +} +function setupPrepareStackTrace() { + setupPrepareStackTrace = () => {}; + const { + prepareStackTrace = defaultPrepareStackTrace + } = Error; + const MIN_STACK_TRACE_LIMIT = 50; + Error.stackTraceLimit && (Error.stackTraceLimit = Math.max(Error.stackTraceLimit, MIN_STACK_TRACE_LIMIT)); + Error.prepareStackTrace = function stackTraceRewriter(err, trace) { + let newTrace = []; + const isExpected = expectedErrors.has(err); + let status = isExpected ? "hiding" : "unknown"; + for (let i = 0; i < trace.length; i++) { + const name = trace[i].getFunctionName(); + if (name === START_HIDNG) { + status = "hiding"; + } else if (name === STOP_HIDNG) { + if (status === "hiding") { + status = "showing"; + if (virtualFrames.has(err)) { + newTrace.unshift(...virtualFrames.get(err)); + } + } else if (status === "unknown") { + newTrace = trace; + break; + } + } else if (status !== "hiding") { + newTrace.push(trace[i]); + } + } + return prepareStackTrace(err, newTrace); + }; +} +function defaultPrepareStackTrace(err, trace) { + if (trace.length === 0) return ErrorToString(err); + return `${ErrorToString(err)}\n at ${trace.join("\n at ")}`; +} +0 && 0; + +//# sourceMappingURL=rewrite-stack-trace.js.map + + +/***/ }), + +/***/ 5591: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.forwardAsync = forwardAsync; +exports.isAsync = void 0; +exports.isThenable = isThenable; +exports.maybeAsync = maybeAsync; +exports.waitFor = exports.onFirstPause = void 0; +function _gensync() { + const data = __webpack_require__(3531); + _gensync = function () { + return data; + }; + return data; +} +function 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); } } +function _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); }); }; } +const runGenerator = _gensync()(function* (item) { + return yield* item; +}); +const isAsync = _gensync()({ + sync: () => false, + errback: cb => cb(null, true) +}); +exports.isAsync = isAsync; +function maybeAsync(fn, message) { + return _gensync()({ + sync(...args) { + const result = fn.apply(this, args); + if (isThenable(result)) throw new Error(message); + return result; + }, + async(...args) { + return Promise.resolve(fn.apply(this, args)); + } + }); +} +const withKind = _gensync()({ + sync: cb => cb("sync"), + async: function () { + var _ref = _asyncToGenerator(function* (cb) { + return cb("async"); + }); + return function async(_x) { + return _ref.apply(this, arguments); + }; + }() +}); +function forwardAsync(action, cb) { + const g = _gensync()(action); + return withKind(kind => { + const adapted = g[kind]; + return cb(adapted); + }); +} +const onFirstPause = _gensync()({ + name: "onFirstPause", + arity: 2, + sync: function (item) { + return runGenerator.sync(item); + }, + errback: function (item, firstPause, cb) { + let completed = false; + runGenerator.errback(item, (err, value) => { + completed = true; + cb(err, value); + }); + if (!completed) { + firstPause(); + } + } +}); +exports.onFirstPause = onFirstPause; +const waitFor = _gensync()({ + sync: x => x, + async: function () { + var _ref2 = _asyncToGenerator(function* (x) { + return x; + }); + return function async(_x2) { + return _ref2.apply(this, arguments); + }; + }() +}); +exports.waitFor = waitFor; +function isThenable(val) { + return !!val && (typeof val === "object" || typeof val === "function") && !!val.then && typeof val.then === "function"; +} +0 && 0; + +//# sourceMappingURL=async.js.map + + +/***/ }), + +/***/ 6290: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.stat = exports.readFile = void 0; +function _fs() { + const data = __webpack_require__(7147); + _fs = function () { + return data; + }; + return data; +} +function _gensync() { + const data = __webpack_require__(3531); + _gensync = function () { + return data; + }; + return data; +} +const readFile = _gensync()({ + sync: _fs().readFileSync, + errback: _fs().readFile +}); +exports.readFile = readFile; +const stat = _gensync()({ + sync: _fs().statSync, + errback: _fs().stat +}); +exports.stat = stat; +0 && 0; + +//# sourceMappingURL=fs.js.map + + +/***/ }), + +/***/ 4623: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.once = once; +var _async = __webpack_require__(5591); +function once(fn) { + let result; + let resultP; + return function* () { + if (result) return result; + if (!(yield* (0, _async.isAsync)())) return result = yield* fn(); + if (resultP) return yield* (0, _async.waitFor)(resultP); + let resolve, reject; + resultP = new Promise((res, rej) => { + resolve = res; + reject = rej; + }); + try { + result = yield* fn(); + resultP = null; + resolve(result); + return result; + } catch (error) { + reject(error); + throw error; + } + }; +} +0 && 0; + +//# sourceMappingURL=functional.js.map + + +/***/ }), + +/***/ 6246: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.DEFAULT_EXTENSIONS = void 0; +Object.defineProperty(exports, "File", ({ + enumerable: true, + get: function () { + return _file.default; + } +})); +exports.OptionManager = void 0; +exports.Plugin = Plugin; +Object.defineProperty(exports, "buildExternalHelpers", ({ + enumerable: true, + get: function () { + return _buildExternalHelpers.default; + } +})); +Object.defineProperty(exports, "createConfigItem", ({ + enumerable: true, + get: function () { + return _config.createConfigItem; + } +})); +Object.defineProperty(exports, "createConfigItemAsync", ({ + enumerable: true, + get: function () { + return _config.createConfigItemAsync; + } +})); +Object.defineProperty(exports, "createConfigItemSync", ({ + enumerable: true, + get: function () { + return _config.createConfigItemSync; + } +})); +Object.defineProperty(exports, "getEnv", ({ + enumerable: true, + get: function () { + return _environment.getEnv; + } +})); +Object.defineProperty(exports, "loadOptions", ({ + enumerable: true, + get: function () { + return _config.loadOptions; + } +})); +Object.defineProperty(exports, "loadOptionsAsync", ({ + enumerable: true, + get: function () { + return _config.loadOptionsAsync; + } +})); +Object.defineProperty(exports, "loadOptionsSync", ({ + enumerable: true, + get: function () { + return _config.loadOptionsSync; + } +})); +Object.defineProperty(exports, "loadPartialConfig", ({ + enumerable: true, + get: function () { + return _config.loadPartialConfig; + } +})); +Object.defineProperty(exports, "loadPartialConfigAsync", ({ + enumerable: true, + get: function () { + return _config.loadPartialConfigAsync; + } +})); +Object.defineProperty(exports, "loadPartialConfigSync", ({ + enumerable: true, + get: function () { + return _config.loadPartialConfigSync; + } +})); +Object.defineProperty(exports, "parse", ({ + enumerable: true, + get: function () { + return _parse.parse; + } +})); +Object.defineProperty(exports, "parseAsync", ({ + enumerable: true, + get: function () { + return _parse.parseAsync; + } +})); +Object.defineProperty(exports, "parseSync", ({ + enumerable: true, + get: function () { + return _parse.parseSync; + } +})); +Object.defineProperty(exports, "resolvePlugin", ({ + enumerable: true, + get: function () { + return _files.resolvePlugin; + } +})); +Object.defineProperty(exports, "resolvePreset", ({ + enumerable: true, + get: function () { + return _files.resolvePreset; + } +})); +Object.defineProperty((0, exports), "template", { + enumerable: true, + get: function () { + return _template().default; + } +}); +Object.defineProperty((0, exports), "tokTypes", { + enumerable: true, + get: function () { + return _parser().tokTypes; + } +}); +Object.defineProperty(exports, "transform", ({ + enumerable: true, + get: function () { + return _transform.transform; + } +})); +Object.defineProperty(exports, "transformAsync", ({ + enumerable: true, + get: function () { + return _transform.transformAsync; + } +})); +Object.defineProperty(exports, "transformFile", ({ + enumerable: true, + get: function () { + return _transformFile.transformFile; + } +})); +Object.defineProperty(exports, "transformFileAsync", ({ + enumerable: true, + get: function () { + return _transformFile.transformFileAsync; + } +})); +Object.defineProperty(exports, "transformFileSync", ({ + enumerable: true, + get: function () { + return _transformFile.transformFileSync; + } +})); +Object.defineProperty(exports, "transformFromAst", ({ + enumerable: true, + get: function () { + return _transformAst.transformFromAst; + } +})); +Object.defineProperty(exports, "transformFromAstAsync", ({ + enumerable: true, + get: function () { + return _transformAst.transformFromAstAsync; + } +})); +Object.defineProperty(exports, "transformFromAstSync", ({ + enumerable: true, + get: function () { + return _transformAst.transformFromAstSync; + } +})); +Object.defineProperty(exports, "transformSync", ({ + enumerable: true, + get: function () { + return _transform.transformSync; + } +})); +Object.defineProperty((0, exports), "traverse", { + enumerable: true, + get: function () { + return _traverse().default; + } +}); +exports.version = exports.types = void 0; +var _file = __webpack_require__(1265); +var _buildExternalHelpers = __webpack_require__(4070); +var _files = __webpack_require__(3355); +var _environment = __webpack_require__(5445); +function _types() { + const data = __webpack_require__(2139); + _types = function () { + return data; + }; + return data; +} +Object.defineProperty((0, exports), "types", { + enumerable: true, + get: function () { + return _types(); + } +}); +function _parser() { + const data = __webpack_require__(9249); + _parser = function () { + return data; + }; + return data; +} +function _traverse() { + const data = __webpack_require__(5845); + _traverse = function () { + return data; + }; + return data; +} +function _template() { + const data = __webpack_require__(940); + _template = function () { + return data; + }; + return data; +} +var _config = __webpack_require__(9866); +var _transform = __webpack_require__(4642); +var _transformFile = __webpack_require__(7731); +var _transformAst = __webpack_require__(1547); +var _parse = __webpack_require__(5039); +const version = "7.20.12"; +exports.version = version; +const DEFAULT_EXTENSIONS = Object.freeze([".js", ".jsx", ".es6", ".es", ".mjs", ".cjs"]); +exports.DEFAULT_EXTENSIONS = DEFAULT_EXTENSIONS; +class OptionManager { + init(opts) { + return (0, _config.loadOptionsSync)(opts); + } +} +exports.OptionManager = OptionManager; +function Plugin(alias) { + throw new Error(`The (${alias}) Babel 5 plugin is being run with an unsupported Babel version.`); +} +0 && (0); + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 5039: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.parse = void 0; +exports.parseAsync = parseAsync; +exports.parseSync = parseSync; +function _gensync() { + const data = __webpack_require__(3531); + _gensync = function () { + return data; + }; + return data; +} +var _config = __webpack_require__(9866); +var _parser = __webpack_require__(1678); +var _normalizeOpts = __webpack_require__(2922); +var _rewriteStackTrace = __webpack_require__(6772); +const parseRunner = _gensync()(function* parse(code, opts) { + const config = yield* (0, _config.default)(opts); + if (config === null) { + return null; + } + return yield* (0, _parser.default)(config.passes, (0, _normalizeOpts.default)(config), code); +}); +const parse = function parse(code, opts, callback) { + if (typeof opts === "function") { + callback = opts; + opts = undefined; + } + if (callback === undefined) { + { + return (0, _rewriteStackTrace.beginHiddenCallStack)(parseRunner.sync)(code, opts); + } + } + (0, _rewriteStackTrace.beginHiddenCallStack)(parseRunner.errback)(code, opts, callback); +}; +exports.parse = parse; +function parseSync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(parseRunner.sync)(...args); +} +function parseAsync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(parseRunner.async)(...args); +} +0 && 0; + +//# sourceMappingURL=parse.js.map + + +/***/ }), + +/***/ 1678: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = parser; +function _parser() { + const data = __webpack_require__(9249); + _parser = function () { + return data; + }; + return data; +} +function _codeFrame() { + const data = __webpack_require__(2588); + _codeFrame = function () { + return data; + }; + return data; +} +var _missingPluginHelper = __webpack_require__(8521); +function* parser(pluginPasses, { + parserOpts, + highlightCode = true, + filename = "unknown" +}, code) { + try { + const results = []; + for (const plugins of pluginPasses) { + for (const plugin of plugins) { + const { + parserOverride + } = plugin; + if (parserOverride) { + const ast = parserOverride(code, parserOpts, _parser().parse); + if (ast !== undefined) results.push(ast); + } + } + } + if (results.length === 0) { + return (0, _parser().parse)(code, parserOpts); + } else if (results.length === 1) { + yield* []; + if (typeof results[0].then === "function") { + throw new Error(`You appear to be using an async parser plugin, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, you may need to upgrade ` + `your @babel/core version.`); + } + return results[0]; + } + throw new Error("More than one plugin attempted to override parsing."); + } catch (err) { + if (err.code === "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED") { + err.message += "\nConsider renaming the file to '.mjs', or setting sourceType:module " + "or sourceType:unambiguous in your Babel config for this file."; + } + const { + loc, + missingPlugin + } = err; + if (loc) { + const codeFrame = (0, _codeFrame().codeFrameColumns)(code, { + start: { + line: loc.line, + column: loc.column + 1 + } + }, { + highlightCode + }); + if (missingPlugin) { + err.message = `${filename}: ` + (0, _missingPluginHelper.default)(missingPlugin[0], loc, codeFrame); + } else { + err.message = `${filename}: ${err.message}\n\n` + codeFrame; + } + err.code = "BABEL_PARSE_ERROR"; + } + throw err; + } +} +0 && 0; + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 8521: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = generateMissingPluginMessage; +const pluginNameMap = { + asyncDoExpressions: { + syntax: { + name: "@babel/plugin-syntax-async-do-expressions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-async-do-expressions" + } + }, + decimal: { + syntax: { + name: "@babel/plugin-syntax-decimal", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-decimal" + } + }, + decorators: { + syntax: { + name: "@babel/plugin-syntax-decorators", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-decorators" + }, + transform: { + name: "@babel/plugin-proposal-decorators", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-decorators" + } + }, + doExpressions: { + syntax: { + name: "@babel/plugin-syntax-do-expressions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-do-expressions" + }, + transform: { + name: "@babel/plugin-proposal-do-expressions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-do-expressions" + } + }, + exportDefaultFrom: { + syntax: { + name: "@babel/plugin-syntax-export-default-from", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-export-default-from" + }, + transform: { + name: "@babel/plugin-proposal-export-default-from", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-export-default-from" + } + }, + flow: { + syntax: { + name: "@babel/plugin-syntax-flow", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-flow" + }, + transform: { + name: "@babel/preset-flow", + url: "https://github.com/babel/babel/tree/main/packages/babel-preset-flow" + } + }, + functionBind: { + syntax: { + name: "@babel/plugin-syntax-function-bind", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-function-bind" + }, + transform: { + name: "@babel/plugin-proposal-function-bind", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-function-bind" + } + }, + functionSent: { + syntax: { + name: "@babel/plugin-syntax-function-sent", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-function-sent" + }, + transform: { + name: "@babel/plugin-proposal-function-sent", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-function-sent" + } + }, + jsx: { + syntax: { + name: "@babel/plugin-syntax-jsx", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-jsx" + }, + transform: { + name: "@babel/preset-react", + url: "https://github.com/babel/babel/tree/main/packages/babel-preset-react" + } + }, + importAssertions: { + syntax: { + name: "@babel/plugin-syntax-import-assertions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-assertions" + } + }, + pipelineOperator: { + syntax: { + name: "@babel/plugin-syntax-pipeline-operator", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-pipeline-operator" + }, + transform: { + name: "@babel/plugin-proposal-pipeline-operator", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-pipeline-operator" + } + }, + recordAndTuple: { + syntax: { + name: "@babel/plugin-syntax-record-and-tuple", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-record-and-tuple" + } + }, + regexpUnicodeSets: { + syntax: { + name: "@babel/plugin-syntax-unicode-sets-regex", + url: "https://github.com/babel/babel/blob/main/packages/babel-plugin-syntax-unicode-sets-regex/README.md" + }, + transform: { + name: "@babel/plugin-proposal-unicode-sets-regex", + url: "https://github.com/babel/babel/blob/main/packages/babel-plugin-proposalunicode-sets-regex/README.md" + } + }, + throwExpressions: { + syntax: { + name: "@babel/plugin-syntax-throw-expressions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-throw-expressions" + }, + transform: { + name: "@babel/plugin-proposal-throw-expressions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-throw-expressions" + } + }, + typescript: { + syntax: { + name: "@babel/plugin-syntax-typescript", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-typescript" + }, + transform: { + name: "@babel/preset-typescript", + url: "https://github.com/babel/babel/tree/main/packages/babel-preset-typescript" + } + }, + asyncGenerators: { + syntax: { + name: "@babel/plugin-syntax-async-generators", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-async-generators" + }, + transform: { + name: "@babel/plugin-proposal-async-generator-functions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-async-generator-functions" + } + }, + classProperties: { + syntax: { + name: "@babel/plugin-syntax-class-properties", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties" + }, + transform: { + name: "@babel/plugin-proposal-class-properties", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-class-properties" + } + }, + classPrivateProperties: { + syntax: { + name: "@babel/plugin-syntax-class-properties", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties" + }, + transform: { + name: "@babel/plugin-proposal-class-properties", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-class-properties" + } + }, + classPrivateMethods: { + syntax: { + name: "@babel/plugin-syntax-class-properties", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties" + }, + transform: { + name: "@babel/plugin-proposal-private-methods", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-private-methods" + } + }, + classStaticBlock: { + syntax: { + name: "@babel/plugin-syntax-class-static-block", + url: "https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-syntax-class-static-block" + }, + transform: { + name: "@babel/plugin-proposal-class-static-block", + url: "https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-class-static-block" + } + }, + dynamicImport: { + syntax: { + name: "@babel/plugin-syntax-dynamic-import", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-dynamic-import" + } + }, + exportNamespaceFrom: { + syntax: { + name: "@babel/plugin-syntax-export-namespace-from", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-export-namespace-from" + }, + transform: { + name: "@babel/plugin-proposal-export-namespace-from", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-export-namespace-from" + } + }, + importMeta: { + syntax: { + name: "@babel/plugin-syntax-import-meta", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-meta" + } + }, + logicalAssignment: { + syntax: { + name: "@babel/plugin-syntax-logical-assignment-operators", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-logical-assignment-operators" + }, + transform: { + name: "@babel/plugin-proposal-logical-assignment-operators", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-logical-assignment-operators" + } + }, + moduleStringNames: { + syntax: { + name: "@babel/plugin-syntax-module-string-names", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-module-string-names" + } + }, + numericSeparator: { + syntax: { + name: "@babel/plugin-syntax-numeric-separator", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-numeric-separator" + }, + transform: { + name: "@babel/plugin-proposal-numeric-separator", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-numeric-separator" + } + }, + nullishCoalescingOperator: { + syntax: { + name: "@babel/plugin-syntax-nullish-coalescing-operator", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-nullish-coalescing-operator" + }, + transform: { + name: "@babel/plugin-proposal-nullish-coalescing-operator", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-nullish-coalescing-opearator" + } + }, + objectRestSpread: { + syntax: { + name: "@babel/plugin-syntax-object-rest-spread", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-object-rest-spread" + }, + transform: { + name: "@babel/plugin-proposal-object-rest-spread", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-object-rest-spread" + } + }, + optionalCatchBinding: { + syntax: { + name: "@babel/plugin-syntax-optional-catch-binding", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-optional-catch-binding" + }, + transform: { + name: "@babel/plugin-proposal-optional-catch-binding", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-optional-catch-binding" + } + }, + optionalChaining: { + syntax: { + name: "@babel/plugin-syntax-optional-chaining", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-optional-chaining" + }, + transform: { + name: "@babel/plugin-proposal-optional-chaining", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-optional-chaining" + } + }, + privateIn: { + syntax: { + name: "@babel/plugin-syntax-private-property-in-object", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-private-property-in-object" + }, + transform: { + name: "@babel/plugin-proposal-private-property-in-object", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-private-property-in-object" + } + } +}; +pluginNameMap.privateIn.syntax = pluginNameMap.privateIn.transform; +const getNameURLCombination = ({ + name, + url +}) => `${name} (${url})`; +function generateMissingPluginMessage(missingPluginName, loc, codeFrame) { + let helpMessage = `Support for the experimental syntax '${missingPluginName}' isn't currently enabled ` + `(${loc.line}:${loc.column + 1}):\n\n` + codeFrame; + const pluginInfo = pluginNameMap[missingPluginName]; + if (pluginInfo) { + const { + syntax: syntaxPlugin, + transform: transformPlugin + } = pluginInfo; + if (syntaxPlugin) { + const syntaxPluginInfo = getNameURLCombination(syntaxPlugin); + if (transformPlugin) { + const transformPluginInfo = getNameURLCombination(transformPlugin); + const sectionType = transformPlugin.name.startsWith("@babel/plugin") ? "plugins" : "presets"; + helpMessage += `\n\nAdd ${transformPluginInfo} to the '${sectionType}' section of your Babel config to enable transformation. +If you want to leave it as-is, add ${syntaxPluginInfo} to the 'plugins' section to enable parsing.`; + } else { + helpMessage += `\n\nAdd ${syntaxPluginInfo} to the 'plugins' section of your Babel config ` + `to enable parsing.`; + } + } + } + return helpMessage; +} +0 && 0; + +//# sourceMappingURL=missing-plugin-helper.js.map + + +/***/ }), + +/***/ 4070: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = _default; +function helpers() { + const data = __webpack_require__(593); + helpers = function () { + return data; + }; + return data; +} +function _generator() { + const data = __webpack_require__(4426); + _generator = function () { + return data; + }; + return data; +} +function _template() { + const data = __webpack_require__(940); + _template = function () { + return data; + }; + return data; +} +function _t() { + const data = __webpack_require__(2139); + _t = function () { + return data; + }; + return data; +} +var _file = __webpack_require__(1265); +const { + arrayExpression, + assignmentExpression, + binaryExpression, + blockStatement, + callExpression, + cloneNode, + conditionalExpression, + exportNamedDeclaration, + exportSpecifier, + expressionStatement, + functionExpression, + identifier, + memberExpression, + objectExpression, + program, + stringLiteral, + unaryExpression, + variableDeclaration, + variableDeclarator +} = _t(); +const buildUmdWrapper = replacements => _template().default.statement` + (function (root, factory) { + if (typeof define === "function" && define.amd) { + define(AMD_ARGUMENTS, factory); + } else if (typeof exports === "object") { + factory(COMMON_ARGUMENTS); + } else { + factory(BROWSER_ARGUMENTS); + } + })(UMD_ROOT, function (FACTORY_PARAMETERS) { + FACTORY_BODY + }); + `(replacements); +function buildGlobal(allowlist) { + const namespace = identifier("babelHelpers"); + const body = []; + const container = functionExpression(null, [identifier("global")], blockStatement(body)); + const tree = program([expressionStatement(callExpression(container, [conditionalExpression(binaryExpression("===", unaryExpression("typeof", identifier("global")), stringLiteral("undefined")), identifier("self"), identifier("global"))]))]); + body.push(variableDeclaration("var", [variableDeclarator(namespace, assignmentExpression("=", memberExpression(identifier("global"), namespace), objectExpression([])))])); + buildHelpers(body, namespace, allowlist); + return tree; +} +function buildModule(allowlist) { + const body = []; + const refs = buildHelpers(body, null, allowlist); + body.unshift(exportNamedDeclaration(null, Object.keys(refs).map(name => { + return exportSpecifier(cloneNode(refs[name]), identifier(name)); + }))); + return program(body, [], "module"); +} +function buildUmd(allowlist) { + const namespace = identifier("babelHelpers"); + const body = []; + body.push(variableDeclaration("var", [variableDeclarator(namespace, identifier("global"))])); + buildHelpers(body, namespace, allowlist); + return program([buildUmdWrapper({ + FACTORY_PARAMETERS: identifier("global"), + BROWSER_ARGUMENTS: assignmentExpression("=", memberExpression(identifier("root"), namespace), objectExpression([])), + COMMON_ARGUMENTS: identifier("exports"), + AMD_ARGUMENTS: arrayExpression([stringLiteral("exports")]), + FACTORY_BODY: body, + UMD_ROOT: identifier("this") + })]); +} +function buildVar(allowlist) { + const namespace = identifier("babelHelpers"); + const body = []; + body.push(variableDeclaration("var", [variableDeclarator(namespace, objectExpression([]))])); + const tree = program(body); + buildHelpers(body, namespace, allowlist); + body.push(expressionStatement(namespace)); + return tree; +} +function buildHelpers(body, namespace, allowlist) { + const getHelperReference = name => { + return namespace ? memberExpression(namespace, identifier(name)) : identifier(`_${name}`); + }; + const refs = {}; + helpers().list.forEach(function (name) { + if (allowlist && allowlist.indexOf(name) < 0) return; + const ref = refs[name] = getHelperReference(name); + helpers().ensure(name, _file.default); + const { + nodes + } = helpers().get(name, getHelperReference, ref); + body.push(...nodes); + }); + return refs; +} +function _default(allowlist, outputType = "global") { + let tree; + const build = { + global: buildGlobal, + module: buildModule, + umd: buildUmd, + var: buildVar + }[outputType]; + if (build) { + tree = build(allowlist); + } else { + throw new Error(`Unsupported output type ${outputType}`); + } + return (0, _generator().default)(tree).code; +} +0 && 0; + +//# sourceMappingURL=build-external-helpers.js.map + + +/***/ }), + +/***/ 1547: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.transformFromAst = void 0; +exports.transformFromAstAsync = transformFromAstAsync; +exports.transformFromAstSync = transformFromAstSync; +function _gensync() { + const data = __webpack_require__(3531); + _gensync = function () { + return data; + }; + return data; +} +var _config = __webpack_require__(9866); +var _transformation = __webpack_require__(781); +var _rewriteStackTrace = __webpack_require__(6772); +const transformFromAstRunner = _gensync()(function* (ast, code, opts) { + const config = yield* (0, _config.default)(opts); + if (config === null) return null; + if (!ast) throw new Error("No AST given"); + return yield* (0, _transformation.run)(config, code, ast); +}); +const transformFromAst = function transformFromAst(ast, code, optsOrCallback, maybeCallback) { + let opts; + let callback; + if (typeof optsOrCallback === "function") { + callback = optsOrCallback; + opts = undefined; + } else { + opts = optsOrCallback; + callback = maybeCallback; + } + if (callback === undefined) { + { + return (0, _rewriteStackTrace.beginHiddenCallStack)(transformFromAstRunner.sync)(ast, code, opts); + } + } + (0, _rewriteStackTrace.beginHiddenCallStack)(transformFromAstRunner.errback)(ast, code, opts, callback); +}; +exports.transformFromAst = transformFromAst; +function transformFromAstSync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(transformFromAstRunner.sync)(...args); +} +function transformFromAstAsync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(transformFromAstRunner.async)(...args); +} +0 && 0; + +//# sourceMappingURL=transform-ast.js.map + + +/***/ }), + +/***/ 7731: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.transformFile = transformFile; +exports.transformFileAsync = transformFileAsync; +exports.transformFileSync = transformFileSync; +function _gensync() { + const data = __webpack_require__(3531); + _gensync = function () { + return data; + }; + return data; +} +var _config = __webpack_require__(9866); +var _transformation = __webpack_require__(781); +var fs = __webpack_require__(6290); +({}); +const transformFileRunner = _gensync()(function* (filename, opts) { + const options = Object.assign({}, opts, { + filename + }); + const config = yield* (0, _config.default)(options); + if (config === null) return null; + const code = yield* fs.readFile(filename, "utf8"); + return yield* (0, _transformation.run)(config, code); +}); +function transformFile(...args) { + return transformFileRunner.errback(...args); +} +function transformFileSync(...args) { + return transformFileRunner.sync(...args); +} +function transformFileAsync(...args) { + return transformFileRunner.async(...args); +} +0 && 0; + +//# sourceMappingURL=transform-file.js.map + + +/***/ }), + +/***/ 4642: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.transform = void 0; +exports.transformAsync = transformAsync; +exports.transformSync = transformSync; +function _gensync() { + const data = __webpack_require__(3531); + _gensync = function () { + return data; + }; + return data; +} +var _config = __webpack_require__(9866); +var _transformation = __webpack_require__(781); +var _rewriteStackTrace = __webpack_require__(6772); +const transformRunner = _gensync()(function* transform(code, opts) { + const config = yield* (0, _config.default)(opts); + if (config === null) return null; + return yield* (0, _transformation.run)(config, code); +}); +const transform = function transform(code, optsOrCallback, maybeCallback) { + let opts; + let callback; + if (typeof optsOrCallback === "function") { + callback = optsOrCallback; + opts = undefined; + } else { + opts = optsOrCallback; + callback = maybeCallback; + } + if (callback === undefined) { + { + return (0, _rewriteStackTrace.beginHiddenCallStack)(transformRunner.sync)(code, opts); + } + } + (0, _rewriteStackTrace.beginHiddenCallStack)(transformRunner.errback)(code, opts, callback); +}; +exports.transform = transform; +function transformSync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(transformRunner.sync)(...args); +} +function transformAsync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(transformRunner.async)(...args); +} +0 && 0; + +//# sourceMappingURL=transform.js.map + + +/***/ }), + +/***/ 1621: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = loadBlockHoistPlugin; +function _traverse() { + const data = __webpack_require__(5845); + _traverse = function () { + return data; + }; + return data; +} +var _plugin = __webpack_require__(8474); +let LOADED_PLUGIN; +const blockHoistPlugin = { + name: "internal.blockHoist", + visitor: { + Block: { + exit({ + node + }) { + const { + body + } = node; + let max = Math.pow(2, 30) - 1; + let hasChange = false; + for (let i = 0; i < body.length; i++) { + const n = body[i]; + const p = priority(n); + if (p > max) { + hasChange = true; + break; + } + max = p; + } + if (!hasChange) return; + node.body = stableSort(body.slice()); + } + } + } +}; +function loadBlockHoistPlugin() { + if (!LOADED_PLUGIN) { + LOADED_PLUGIN = new _plugin.default(Object.assign({}, blockHoistPlugin, { + visitor: _traverse().default.explode(blockHoistPlugin.visitor) + }), {}); + } + return LOADED_PLUGIN; +} +function priority(bodyNode) { + const priority = bodyNode == null ? void 0 : bodyNode._blockHoist; + if (priority == null) return 1; + if (priority === true) return 2; + return priority; +} +function stableSort(body) { + const buckets = Object.create(null); + for (let i = 0; i < body.length; i++) { + const n = body[i]; + const p = priority(n); + const bucket = buckets[p] || (buckets[p] = []); + bucket.push(n); + } + const keys = Object.keys(buckets).map(k => +k).sort((a, b) => b - a); + let index = 0; + for (const key of keys) { + const bucket = buckets[key]; + for (const n of bucket) { + body[index++] = n; + } + } + return body; +} +0 && 0; + +//# sourceMappingURL=block-hoist-plugin.js.map + + +/***/ }), + +/***/ 1265: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +function helpers() { + const data = __webpack_require__(593); + helpers = function () { + return data; + }; + return data; +} +function _traverse() { + const data = __webpack_require__(5845); + _traverse = function () { + return data; + }; + return data; +} +function _codeFrame() { + const data = __webpack_require__(2588); + _codeFrame = function () { + return data; + }; + return data; +} +function _t() { + const data = __webpack_require__(2139); + _t = function () { + return data; + }; + return data; +} +function _helperModuleTransforms() { + const data = __webpack_require__(4228); + _helperModuleTransforms = function () { + return data; + }; + return data; +} +function _semver() { + const data = __webpack_require__(8999); + _semver = function () { + return data; + }; + return data; +} +const { + cloneNode, + interpreterDirective +} = _t(); +const errorVisitor = { + enter(path, state) { + const loc = path.node.loc; + if (loc) { + state.loc = loc; + path.stop(); + } + } +}; +class File { + constructor(options, { + code, + ast, + inputMap + }) { + this._map = new Map(); + this.opts = void 0; + this.declarations = {}; + this.path = void 0; + this.ast = void 0; + this.scope = void 0; + this.metadata = {}; + this.code = ""; + this.inputMap = void 0; + this.hub = { + file: this, + getCode: () => this.code, + getScope: () => this.scope, + addHelper: this.addHelper.bind(this), + buildError: this.buildCodeFrameError.bind(this) + }; + this.opts = options; + this.code = code; + this.ast = ast; + this.inputMap = inputMap; + this.path = _traverse().NodePath.get({ + hub: this.hub, + parentPath: null, + parent: this.ast, + container: this.ast, + key: "program" + }).setContext(); + this.scope = this.path.scope; + } + get shebang() { + const { + interpreter + } = this.path.node; + return interpreter ? interpreter.value : ""; + } + set shebang(value) { + if (value) { + this.path.get("interpreter").replaceWith(interpreterDirective(value)); + } else { + this.path.get("interpreter").remove(); + } + } + set(key, val) { + if (key === "helpersNamespace") { + throw new Error("Babel 7.0.0-beta.56 has dropped support for the 'helpersNamespace' utility." + "If you are using @babel/plugin-external-helpers you will need to use a newer " + "version than the one you currently have installed. " + "If you have your own implementation, you'll want to explore using 'helperGenerator' " + "alongside 'file.availableHelper()'."); + } + this._map.set(key, val); + } + get(key) { + return this._map.get(key); + } + has(key) { + return this._map.has(key); + } + getModuleName() { + return (0, _helperModuleTransforms().getModuleName)(this.opts, this.opts); + } + addImport() { + throw new Error("This API has been removed. If you're looking for this " + "functionality in Babel 7, you should import the " + "'@babel/helper-module-imports' module and use the functions exposed " + " from that module, such as 'addNamed' or 'addDefault'."); + } + availableHelper(name, versionRange) { + let minVersion; + try { + minVersion = helpers().minVersion(name); + } catch (err) { + if (err.code !== "BABEL_HELPER_UNKNOWN") throw err; + return false; + } + if (typeof versionRange !== "string") return true; + if (_semver().valid(versionRange)) versionRange = `^${versionRange}`; + return !_semver().intersects(`<${minVersion}`, versionRange) && !_semver().intersects(`>=8.0.0`, versionRange); + } + addHelper(name) { + const declar = this.declarations[name]; + if (declar) return cloneNode(declar); + const generator = this.get("helperGenerator"); + if (generator) { + const res = generator(name); + if (res) return res; + } + helpers().ensure(name, File); + const uid = this.declarations[name] = this.scope.generateUidIdentifier(name); + const dependencies = {}; + for (const dep of helpers().getDependencies(name)) { + dependencies[dep] = this.addHelper(dep); + } + const { + nodes, + globals + } = helpers().get(name, dep => dependencies[dep], uid, Object.keys(this.scope.getAllBindings())); + globals.forEach(name => { + if (this.path.scope.hasBinding(name, true)) { + this.path.scope.rename(name); + } + }); + nodes.forEach(node => { + node._compact = true; + }); + this.path.unshiftContainer("body", nodes); + this.path.get("body").forEach(path => { + if (nodes.indexOf(path.node) === -1) return; + if (path.isVariableDeclaration()) this.scope.registerDeclaration(path); + }); + return uid; + } + addTemplateObject() { + throw new Error("This function has been moved into the template literal transform itself."); + } + buildCodeFrameError(node, msg, _Error = SyntaxError) { + let loc = node && (node.loc || node._loc); + if (!loc && node) { + const state = { + loc: null + }; + (0, _traverse().default)(node, errorVisitor, this.scope, state); + loc = state.loc; + let txt = "This is an error on an internal node. Probably an internal error."; + if (loc) txt += " Location has been estimated."; + msg += ` (${txt})`; + } + if (loc) { + const { + highlightCode = true + } = this.opts; + msg += "\n" + (0, _codeFrame().codeFrameColumns)(this.code, { + start: { + line: loc.start.line, + column: loc.start.column + 1 + }, + end: loc.end && loc.start.line === loc.end.line ? { + line: loc.end.line, + column: loc.end.column + 1 + } : undefined + }, { + highlightCode + }); + } + return new _Error(msg); + } +} +exports["default"] = File; +0 && 0; + +//# sourceMappingURL=file.js.map + + +/***/ }), + +/***/ 697: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = generateCode; +function _convertSourceMap() { + const data = __webpack_require__(2213); + _convertSourceMap = function () { + return data; + }; + return data; +} +function _generator() { + const data = __webpack_require__(4426); + _generator = function () { + return data; + }; + return data; +} +var _mergeMap = __webpack_require__(217); +function generateCode(pluginPasses, file) { + const { + opts, + ast, + code, + inputMap + } = file; + const { + generatorOpts + } = opts; + const results = []; + for (const plugins of pluginPasses) { + for (const plugin of plugins) { + const { + generatorOverride + } = plugin; + if (generatorOverride) { + const result = generatorOverride(ast, generatorOpts, code, _generator().default); + if (result !== undefined) results.push(result); + } + } + } + let result; + if (results.length === 0) { + result = (0, _generator().default)(ast, generatorOpts, code); + } else if (results.length === 1) { + result = results[0]; + if (typeof result.then === "function") { + throw new Error(`You appear to be using an async codegen plugin, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, ` + `you may need to upgrade your @babel/core version.`); + } + } else { + throw new Error("More than one plugin attempted to override codegen."); + } + let { + code: outputCode, + decodedMap: outputMap = result.map + } = result; + if (outputMap) { + if (inputMap) { + outputMap = (0, _mergeMap.default)(inputMap.toObject(), outputMap, generatorOpts.sourceFileName); + } else { + outputMap = result.map; + } + } + if (opts.sourceMaps === "inline" || opts.sourceMaps === "both") { + outputCode += "\n" + _convertSourceMap().fromObject(outputMap).toComment(); + } + if (opts.sourceMaps === "inline") { + outputMap = null; + } + return { + outputCode, + outputMap + }; +} +0 && 0; + +//# sourceMappingURL=generate.js.map + + +/***/ }), + +/***/ 217: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = mergeSourceMap; +function _remapping() { + const data = __webpack_require__(5514); + _remapping = function () { + return data; + }; + return data; +} +function mergeSourceMap(inputMap, map, sourceFileName) { + const source = sourceFileName.replace(/\\/g, "/"); + let found = false; + const result = _remapping()(rootless(map), (s, ctx) => { + if (s === source && !found) { + found = true; + ctx.source = ""; + return rootless(inputMap); + } + return null; + }); + if (typeof inputMap.sourceRoot === "string") { + result.sourceRoot = inputMap.sourceRoot; + } + return Object.assign({}, result); +} +function rootless(map) { + return Object.assign({}, map, { + sourceRoot: null + }); +} +0 && 0; + +//# sourceMappingURL=merge-map.js.map + + +/***/ }), + +/***/ 781: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.run = run; +function _traverse() { + const data = __webpack_require__(5845); + _traverse = function () { + return data; + }; + return data; +} +var _pluginPass = __webpack_require__(2031); +var _blockHoistPlugin = __webpack_require__(1621); +var _normalizeOpts = __webpack_require__(2922); +var _normalizeFile = __webpack_require__(3394); +var _generate = __webpack_require__(697); +var _deepArray = __webpack_require__(589); +function* run(config, code, ast) { + const file = yield* (0, _normalizeFile.default)(config.passes, (0, _normalizeOpts.default)(config), code, ast); + const opts = file.opts; + try { + yield* transformFile(file, config.passes); + } catch (e) { + var _opts$filename; + e.message = `${(_opts$filename = opts.filename) != null ? _opts$filename : "unknown file"}: ${e.message}`; + if (!e.code) { + e.code = "BABEL_TRANSFORM_ERROR"; + } + throw e; + } + let outputCode, outputMap; + try { + if (opts.code !== false) { + ({ + outputCode, + outputMap + } = (0, _generate.default)(config.passes, file)); + } + } catch (e) { + var _opts$filename2; + e.message = `${(_opts$filename2 = opts.filename) != null ? _opts$filename2 : "unknown file"}: ${e.message}`; + if (!e.code) { + e.code = "BABEL_GENERATE_ERROR"; + } + throw e; + } + return { + metadata: file.metadata, + options: opts, + ast: opts.ast === true ? file.ast : null, + code: outputCode === undefined ? null : outputCode, + map: outputMap === undefined ? null : outputMap, + sourceType: file.ast.program.sourceType, + externalDependencies: (0, _deepArray.flattenToSet)(config.externalDependencies) + }; +} +function* transformFile(file, pluginPasses) { + for (const pluginPairs of pluginPasses) { + const passPairs = []; + const passes = []; + const visitors = []; + for (const plugin of pluginPairs.concat([(0, _blockHoistPlugin.default)()])) { + const pass = new _pluginPass.default(file, plugin.key, plugin.options); + passPairs.push([plugin, pass]); + passes.push(pass); + visitors.push(plugin.visitor); + } + for (const [plugin, pass] of passPairs) { + const fn = plugin.pre; + if (fn) { + const result = fn.call(pass, file); + yield* []; + if (isThenable(result)) { + throw new Error(`You appear to be using an plugin with an async .pre, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, you may need to upgrade ` + `your @babel/core version.`); + } + } + } + const visitor = _traverse().default.visitors.merge(visitors, passes, file.opts.wrapPluginVisitorMethod); + (0, _traverse().default)(file.ast, visitor, file.scope); + for (const [plugin, pass] of passPairs) { + const fn = plugin.post; + if (fn) { + const result = fn.call(pass, file); + yield* []; + if (isThenable(result)) { + throw new Error(`You appear to be using an plugin with an async .post, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, you may need to upgrade ` + `your @babel/core version.`); + } + } + } + } +} +function isThenable(val) { + return !!val && (typeof val === "object" || typeof val === "function") && !!val.then && typeof val.then === "function"; +} +0 && 0; + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 3394: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = normalizeFile; +function _fs() { + const data = __webpack_require__(7147); + _fs = function () { + return data; + }; + return data; +} +function _path() { + const data = __webpack_require__(1017); + _path = function () { + return data; + }; + return data; +} +function _debug() { + const data = __webpack_require__(2731); + _debug = function () { + return data; + }; + return data; +} +function _t() { + const data = __webpack_require__(2139); + _t = function () { + return data; + }; + return data; +} +function _convertSourceMap() { + const data = __webpack_require__(2213); + _convertSourceMap = function () { + return data; + }; + return data; +} +var _file = __webpack_require__(1265); +var _parser = __webpack_require__(1678); +var _cloneDeep = __webpack_require__(1963); +const { + file, + traverseFast +} = _t(); +const debug = _debug()("babel:transform:file"); +const LARGE_INPUT_SOURCEMAP_THRESHOLD = 3000000; +const INLINE_SOURCEMAP_REGEX = /^[@#]\s+sourceMappingURL=data:(?:application|text)\/json;(?:charset[:=]\S+?;)?base64,(?:.*)$/; +const EXTERNAL_SOURCEMAP_REGEX = /^[@#][ \t]+sourceMappingURL=([^\s'"`]+)[ \t]*$/; +function* normalizeFile(pluginPasses, options, code, ast) { + code = `${code || ""}`; + if (ast) { + if (ast.type === "Program") { + ast = file(ast, [], []); + } else if (ast.type !== "File") { + throw new Error("AST root must be a Program or File node"); + } + if (options.cloneInputAst) { + ast = (0, _cloneDeep.default)(ast); + } + } else { + ast = yield* (0, _parser.default)(pluginPasses, options, code); + } + let inputMap = null; + if (options.inputSourceMap !== false) { + if (typeof options.inputSourceMap === "object") { + inputMap = _convertSourceMap().fromObject(options.inputSourceMap); + } + if (!inputMap) { + const lastComment = extractComments(INLINE_SOURCEMAP_REGEX, ast); + if (lastComment) { + try { + inputMap = _convertSourceMap().fromComment(lastComment); + } catch (err) { + debug("discarding unknown inline input sourcemap", err); + } + } + } + if (!inputMap) { + const lastComment = extractComments(EXTERNAL_SOURCEMAP_REGEX, ast); + if (typeof options.filename === "string" && lastComment) { + try { + const match = EXTERNAL_SOURCEMAP_REGEX.exec(lastComment); + const inputMapContent = _fs().readFileSync(_path().resolve(_path().dirname(options.filename), match[1])); + if (inputMapContent.length > LARGE_INPUT_SOURCEMAP_THRESHOLD) { + debug("skip merging input map > 1 MB"); + } else { + inputMap = _convertSourceMap().fromJSON(inputMapContent); + } + } catch (err) { + debug("discarding unknown file input sourcemap", err); + } + } else if (lastComment) { + debug("discarding un-loadable file input sourcemap"); + } + } + } + return new _file.default(options, { + code, + ast: ast, + inputMap + }); +} +function extractCommentsFromList(regex, comments, lastComment) { + if (comments) { + comments = comments.filter(({ + value + }) => { + if (regex.test(value)) { + lastComment = value; + return false; + } + return true; + }); + } + return [comments, lastComment]; +} +function extractComments(regex, ast) { + let lastComment = null; + traverseFast(ast, node => { + [node.leadingComments, lastComment] = extractCommentsFromList(regex, node.leadingComments, lastComment); + [node.innerComments, lastComment] = extractCommentsFromList(regex, node.innerComments, lastComment); + [node.trailingComments, lastComment] = extractCommentsFromList(regex, node.trailingComments, lastComment); + }); + return lastComment; +} +0 && 0; + +//# sourceMappingURL=normalize-file.js.map + + +/***/ }), + +/***/ 2922: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = normalizeOptions; +function _path() { + const data = __webpack_require__(1017); + _path = function () { + return data; + }; + return data; +} +function normalizeOptions(config) { + const { + filename, + cwd, + filenameRelative = typeof filename === "string" ? _path().relative(cwd, filename) : "unknown", + sourceType = "module", + inputSourceMap, + sourceMaps = !!inputSourceMap, + sourceRoot = config.options.moduleRoot, + sourceFileName = _path().basename(filenameRelative), + comments = true, + compact = "auto" + } = config.options; + const opts = config.options; + const options = Object.assign({}, opts, { + parserOpts: Object.assign({ + sourceType: _path().extname(filenameRelative) === ".mjs" ? "module" : sourceType, + sourceFileName: filename, + plugins: [] + }, opts.parserOpts), + generatorOpts: Object.assign({ + filename, + auxiliaryCommentBefore: opts.auxiliaryCommentBefore, + auxiliaryCommentAfter: opts.auxiliaryCommentAfter, + retainLines: opts.retainLines, + comments, + shouldPrintComment: opts.shouldPrintComment, + compact, + minified: opts.minified, + sourceMaps, + sourceRoot, + sourceFileName + }, opts.generatorOpts) + }); + for (const plugins of config.passes) { + for (const plugin of plugins) { + if (plugin.manipulateOptions) { + plugin.manipulateOptions(options, options.parserOpts); + } + } + } + return options; +} +0 && 0; + +//# sourceMappingURL=normalize-opts.js.map + + +/***/ }), + +/***/ 2031: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +class PluginPass { + constructor(file, key, options) { + this._map = new Map(); + this.key = void 0; + this.file = void 0; + this.opts = void 0; + this.cwd = void 0; + this.filename = void 0; + this.key = key; + this.file = file; + this.opts = options || {}; + this.cwd = file.opts.cwd; + this.filename = file.opts.filename; + } + set(key, val) { + this._map.set(key, val); + } + get(key) { + return this._map.get(key); + } + availableHelper(name, versionRange) { + return this.file.availableHelper(name, versionRange); + } + addHelper(name) { + return this.file.addHelper(name); + } + addImport() { + return this.file.addImport(); + } + buildCodeFrameError(node, msg, _Error) { + return this.file.buildCodeFrameError(node, msg, _Error); + } +} +exports["default"] = PluginPass; +{ + PluginPass.prototype.getModuleName = function getModuleName() { + return this.file.getModuleName(); + }; +} +0 && 0; + +//# sourceMappingURL=plugin-pass.js.map + + +/***/ }), + +/***/ 1963: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = _default; +function deepClone(value, cache) { + if (value !== null) { + if (cache.has(value)) return cache.get(value); + let cloned; + if (Array.isArray(value)) { + cloned = new Array(value.length); + for (let i = 0; i < value.length; i++) { + cloned[i] = typeof value[i] !== "object" ? value[i] : deepClone(value[i], cache); + } + } else { + cloned = {}; + const keys = Object.keys(value); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + cloned[key] = typeof value[key] !== "object" ? value[key] : deepClone(value[key], cache); + } + } + cache.set(value, cloned); + return cloned; + } + return value; +} +function _default(value) { + if (typeof value !== "object") return value; + return deepClone(value, new Map()); +} +0 && 0; + +//# sourceMappingURL=clone-deep.js.map + + +/***/ }), + +/***/ 7027: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.moduleResolve = moduleResolve; +exports.resolve = resolve; +function _url() { + const data = __webpack_require__(7310); + _url = function () { + return data; + }; + return data; +} +function _fs() { + const data = _interopRequireWildcard(__webpack_require__(7147), true); + _fs = function () { + return data; + }; + return data; +} +function _path() { + const data = __webpack_require__(1017); + _path = function () { + return data; + }; + return data; +} +function _assert() { + const data = __webpack_require__(9491); + _assert = function () { + return data; + }; + return data; +} +function _util() { + const data = __webpack_require__(3837); + _util = function () { + return data; + }; + return data; +} +function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } +function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } +function 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); } } +function _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); }); }; } +var re$3 = { + exports: {} +}; +const SEMVER_SPEC_VERSION = '2.0.0'; +const MAX_LENGTH$2 = 256; +const MAX_SAFE_INTEGER$1 = Number.MAX_SAFE_INTEGER || 9007199254740991; +const MAX_SAFE_COMPONENT_LENGTH = 16; +var constants = { + SEMVER_SPEC_VERSION, + MAX_LENGTH: MAX_LENGTH$2, + MAX_SAFE_INTEGER: MAX_SAFE_INTEGER$1, + MAX_SAFE_COMPONENT_LENGTH +}; +const debug$1 = typeof process === 'object' && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error('SEMVER', ...args) : () => {}; +var debug_1 = debug$1; +(function (module, exports) { + const { + MAX_SAFE_COMPONENT_LENGTH + } = constants; + const debug = debug_1; + exports = module.exports = {}; + const re = exports.re = []; + const src = exports.src = []; + const t = exports.t = {}; + let R = 0; + const createToken = (name, value, isGlobal) => { + const index = R++; + debug(name, index, value); + t[name] = index; + src[index] = value; + re[index] = new RegExp(value, isGlobal ? 'g' : undefined); + }; + createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*'); + createToken('NUMERICIDENTIFIERLOOSE', '[0-9]+'); + createToken('NONNUMERICIDENTIFIER', '\\d*[a-zA-Z-][a-zA-Z0-9-]*'); + createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` + `(${src[t.NUMERICIDENTIFIER]})\\.` + `(${src[t.NUMERICIDENTIFIER]})`); + createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + `(${src[t.NUMERICIDENTIFIERLOOSE]})`); + createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]}|${src[t.NONNUMERICIDENTIFIER]})`); + createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]}|${src[t.NONNUMERICIDENTIFIER]})`); + createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`); + createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`); + createToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+'); + createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER]}(?:\\.${src[t.BUILDIDENTIFIER]})*))`); + createToken('FULLPLAIN', `v?${src[t.MAINVERSION]}${src[t.PRERELEASE]}?${src[t.BUILD]}?`); + createToken('FULL', `^${src[t.FULLPLAIN]}$`); + createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE]}${src[t.PRERELEASELOOSE]}?${src[t.BUILD]}?`); + createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`); + createToken('GTLT', '((?:<|>)?=?)'); + createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`); + createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`); + createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + `(?:${src[t.PRERELEASE]})?${src[t.BUILD]}?` + `)?)?`); + createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + `(?:${src[t.PRERELEASELOOSE]})?${src[t.BUILD]}?` + `)?)?`); + createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`); + createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`); + createToken('COERCE', `${'(^|[^\\d])' + '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + `(?:$|[^\\d])`); + createToken('COERCERTL', src[t.COERCE], true); + createToken('LONETILDE', '(?:~>?)'); + createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true); + exports.tildeTrimReplace = '$1~'; + createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`); + createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`); + createToken('LONECARET', '(?:\\^)'); + createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true); + exports.caretTrimReplace = '$1^'; + createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`); + createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`); + createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`); + createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`); + createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true); + exports.comparatorTrimReplace = '$1$2$3'; + createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` + `\\s+-\\s+` + `(${src[t.XRANGEPLAIN]})` + `\\s*$`); + createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` + `\\s+-\\s+` + `(${src[t.XRANGEPLAINLOOSE]})` + `\\s*$`); + createToken('STAR', '(<|>)?=?\\s*\\*'); + createToken('GTE0', '^\\s*>=\\s*0\\.0\\.0\\s*$'); + createToken('GTE0PRE', '^\\s*>=\\s*0\\.0\\.0-0\\s*$'); +})(re$3, re$3.exports); +const opts = ['includePrerelease', 'loose', 'rtl']; +const parseOptions$2 = options => !options ? {} : typeof options !== 'object' ? { + loose: true +} : opts.filter(k => options[k]).reduce((o, k) => { + o[k] = true; + return o; +}, {}); +var parseOptions_1 = parseOptions$2; +const numeric = /^[0-9]+$/; +const compareIdentifiers$1 = (a, b) => { + const anum = numeric.test(a); + const bnum = numeric.test(b); + if (anum && bnum) { + a = +a; + b = +b; + } + return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1; +}; +const rcompareIdentifiers = (a, b) => compareIdentifiers$1(b, a); +var identifiers = { + compareIdentifiers: compareIdentifiers$1, + rcompareIdentifiers +}; +const debug = debug_1; +const { + MAX_LENGTH: MAX_LENGTH$1, + MAX_SAFE_INTEGER +} = constants; +const { + re: re$2, + t: t$2 +} = re$3.exports; +const parseOptions$1 = parseOptions_1; +const { + compareIdentifiers +} = identifiers; +class SemVer$c { + constructor(version, options) { + options = parseOptions$1(options); + if (version instanceof SemVer$c) { + if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) { + return version; + } else { + version = version.version; + } + } else if (typeof version !== 'string') { + throw new TypeError(`Invalid Version: ${version}`); + } + if (version.length > MAX_LENGTH$1) { + throw new TypeError(`version is longer than ${MAX_LENGTH$1} characters`); + } + debug('SemVer', version, options); + this.options = options; + this.loose = !!options.loose; + this.includePrerelease = !!options.includePrerelease; + const m = version.trim().match(options.loose ? re$2[t$2.LOOSE] : re$2[t$2.FULL]); + if (!m) { + throw new TypeError(`Invalid Version: ${version}`); + } + this.raw = version; + this.major = +m[1]; + this.minor = +m[2]; + this.patch = +m[3]; + if (this.major > MAX_SAFE_INTEGER || this.major < 0) { + throw new TypeError('Invalid major version'); + } + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { + throw new TypeError('Invalid minor version'); + } + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { + throw new TypeError('Invalid patch version'); + } + if (!m[4]) { + this.prerelease = []; + } else { + this.prerelease = m[4].split('.').map(id => { + if (/^[0-9]+$/.test(id)) { + const num = +id; + if (num >= 0 && num < MAX_SAFE_INTEGER) { + return num; + } + } + return id; + }); + } + this.build = m[5] ? m[5].split('.') : []; + this.format(); + } + format() { + this.version = `${this.major}.${this.minor}.${this.patch}`; + if (this.prerelease.length) { + this.version += `-${this.prerelease.join('.')}`; + } + return this.version; + } + toString() { + return this.version; + } + compare(other) { + debug('SemVer.compare', this.version, this.options, other); + if (!(other instanceof SemVer$c)) { + if (typeof other === 'string' && other === this.version) { + return 0; + } + other = new SemVer$c(other, this.options); + } + if (other.version === this.version) { + return 0; + } + return this.compareMain(other) || this.comparePre(other); + } + compareMain(other) { + if (!(other instanceof SemVer$c)) { + other = new SemVer$c(other, this.options); + } + return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch); + } + comparePre(other) { + if (!(other instanceof SemVer$c)) { + other = new SemVer$c(other, this.options); + } + if (this.prerelease.length && !other.prerelease.length) { + return -1; + } else if (!this.prerelease.length && other.prerelease.length) { + return 1; + } else if (!this.prerelease.length && !other.prerelease.length) { + return 0; + } + let i = 0; + do { + const a = this.prerelease[i]; + const b = other.prerelease[i]; + debug('prerelease compare', i, a, b); + if (a === undefined && b === undefined) { + return 0; + } else if (b === undefined) { + return 1; + } else if (a === undefined) { + return -1; + } else if (a === b) { + continue; + } else { + return compareIdentifiers(a, b); + } + } while (++i); + } + compareBuild(other) { + if (!(other instanceof SemVer$c)) { + other = new SemVer$c(other, this.options); + } + let i = 0; + do { + const a = this.build[i]; + const b = other.build[i]; + debug('prerelease compare', i, a, b); + if (a === undefined && b === undefined) { + return 0; + } else if (b === undefined) { + return 1; + } else if (a === undefined) { + return -1; + } else if (a === b) { + continue; + } else { + return compareIdentifiers(a, b); + } + } while (++i); + } + inc(release, identifier) { + switch (release) { + case 'premajor': + this.prerelease.length = 0; + this.patch = 0; + this.minor = 0; + this.major++; + this.inc('pre', identifier); + break; + case 'preminor': + this.prerelease.length = 0; + this.patch = 0; + this.minor++; + this.inc('pre', identifier); + break; + case 'prepatch': + this.prerelease.length = 0; + this.inc('patch', identifier); + this.inc('pre', identifier); + break; + case 'prerelease': + if (this.prerelease.length === 0) { + this.inc('patch', identifier); + } + this.inc('pre', identifier); + break; + case 'major': + if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) { + this.major++; + } + this.minor = 0; + this.patch = 0; + this.prerelease = []; + break; + case 'minor': + if (this.patch !== 0 || this.prerelease.length === 0) { + this.minor++; + } + this.patch = 0; + this.prerelease = []; + break; + case 'patch': + if (this.prerelease.length === 0) { + this.patch++; + } + this.prerelease = []; + break; + case 'pre': + if (this.prerelease.length === 0) { + this.prerelease = [0]; + } else { + let i = this.prerelease.length; + while (--i >= 0) { + if (typeof this.prerelease[i] === 'number') { + this.prerelease[i]++; + i = -2; + } + } + if (i === -1) { + this.prerelease.push(0); + } + } + if (identifier) { + if (compareIdentifiers(this.prerelease[0], identifier) === 0) { + if (isNaN(this.prerelease[1])) { + this.prerelease = [identifier, 0]; + } + } else { + this.prerelease = [identifier, 0]; + } + } + break; + default: + throw new Error(`invalid increment argument: ${release}`); + } + this.format(); + this.raw = this.version; + return this; + } +} +var semver$2 = SemVer$c; +const { + MAX_LENGTH +} = constants; +const { + re: re$1, + t: t$1 +} = re$3.exports; +const SemVer$b = semver$2; +const parseOptions = parseOptions_1; +const parse$5 = (version, options) => { + options = parseOptions(options); + if (version instanceof SemVer$b) { + return version; + } + if (typeof version !== 'string') { + return null; + } + if (version.length > MAX_LENGTH) { + return null; + } + const r = options.loose ? re$1[t$1.LOOSE] : re$1[t$1.FULL]; + if (!r.test(version)) { + return null; + } + try { + return new SemVer$b(version, options); + } catch (er) { + return null; + } +}; +var parse_1 = parse$5; +const parse$4 = parse_1; +const valid$1 = (version, options) => { + const v = parse$4(version, options); + return v ? v.version : null; +}; +var valid_1 = valid$1; +const parse$3 = parse_1; +const clean = (version, options) => { + const s = parse$3(version.trim().replace(/^[=v]+/, ''), options); + return s ? s.version : null; +}; +var clean_1 = clean; +const SemVer$a = semver$2; +const inc = (version, release, options, identifier) => { + if (typeof options === 'string') { + identifier = options; + options = undefined; + } + try { + return new SemVer$a(version instanceof SemVer$a ? version.version : version, options).inc(release, identifier).version; + } catch (er) { + return null; + } +}; +var inc_1 = inc; +const SemVer$9 = semver$2; +const compare$a = (a, b, loose) => new SemVer$9(a, loose).compare(new SemVer$9(b, loose)); +var compare_1 = compare$a; +const compare$9 = compare_1; +const eq$2 = (a, b, loose) => compare$9(a, b, loose) === 0; +var eq_1 = eq$2; +const parse$2 = parse_1; +const eq$1 = eq_1; +const diff = (version1, version2) => { + if (eq$1(version1, version2)) { + return null; + } else { + const v1 = parse$2(version1); + const v2 = parse$2(version2); + const hasPre = v1.prerelease.length || v2.prerelease.length; + const prefix = hasPre ? 'pre' : ''; + const defaultResult = hasPre ? 'prerelease' : ''; + for (const key in v1) { + if (key === 'major' || key === 'minor' || key === 'patch') { + if (v1[key] !== v2[key]) { + return prefix + key; + } + } + } + return defaultResult; + } +}; +var diff_1 = diff; +const SemVer$8 = semver$2; +const major = (a, loose) => new SemVer$8(a, loose).major; +var major_1 = major; +const SemVer$7 = semver$2; +const minor = (a, loose) => new SemVer$7(a, loose).minor; +var minor_1 = minor; +const SemVer$6 = semver$2; +const patch = (a, loose) => new SemVer$6(a, loose).patch; +var patch_1 = patch; +const parse$1 = parse_1; +const prerelease = (version, options) => { + const parsed = parse$1(version, options); + return parsed && parsed.prerelease.length ? parsed.prerelease : null; +}; +var prerelease_1 = prerelease; +const compare$8 = compare_1; +const rcompare = (a, b, loose) => compare$8(b, a, loose); +var rcompare_1 = rcompare; +const compare$7 = compare_1; +const compareLoose = (a, b) => compare$7(a, b, true); +var compareLoose_1 = compareLoose; +const SemVer$5 = semver$2; +const compareBuild$2 = (a, b, loose) => { + const versionA = new SemVer$5(a, loose); + const versionB = new SemVer$5(b, loose); + return versionA.compare(versionB) || versionA.compareBuild(versionB); +}; +var compareBuild_1 = compareBuild$2; +const compareBuild$1 = compareBuild_1; +const sort = (list, loose) => list.sort((a, b) => compareBuild$1(a, b, loose)); +var sort_1 = sort; +const compareBuild = compareBuild_1; +const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)); +var rsort_1 = rsort; +const compare$6 = compare_1; +const gt$3 = (a, b, loose) => compare$6(a, b, loose) > 0; +var gt_1 = gt$3; +const compare$5 = compare_1; +const lt$2 = (a, b, loose) => compare$5(a, b, loose) < 0; +var lt_1 = lt$2; +const compare$4 = compare_1; +const neq$1 = (a, b, loose) => compare$4(a, b, loose) !== 0; +var neq_1 = neq$1; +const compare$3 = compare_1; +const gte$2 = (a, b, loose) => compare$3(a, b, loose) >= 0; +var gte_1 = gte$2; +const compare$2 = compare_1; +const lte$2 = (a, b, loose) => compare$2(a, b, loose) <= 0; +var lte_1 = lte$2; +const eq = eq_1; +const neq = neq_1; +const gt$2 = gt_1; +const gte$1 = gte_1; +const lt$1 = lt_1; +const lte$1 = lte_1; +const cmp = (a, op, b, loose) => { + switch (op) { + case '===': + if (typeof a === 'object') { + a = a.version; + } + if (typeof b === 'object') { + b = b.version; + } + return a === b; + case '!==': + if (typeof a === 'object') { + a = a.version; + } + if (typeof b === 'object') { + b = b.version; + } + return a !== b; + case '': + case '=': + case '==': + return eq(a, b, loose); + case '!=': + return neq(a, b, loose); + case '>': + return gt$2(a, b, loose); + case '>=': + return gte$1(a, b, loose); + case '<': + return lt$1(a, b, loose); + case '<=': + return lte$1(a, b, loose); + default: + throw new TypeError(`Invalid operator: ${op}`); + } +}; +var cmp_1 = cmp; +const SemVer$4 = semver$2; +const parse = parse_1; +const { + re, + t +} = re$3.exports; +const coerce = (version, options) => { + if (version instanceof SemVer$4) { + return version; + } + if (typeof version === 'number') { + version = String(version); + } + if (typeof version !== 'string') { + return null; + } + options = options || {}; + let match = null; + if (!options.rtl) { + match = version.match(re[t.COERCE]); + } else { + let next; + while ((next = re[t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)) { + if (!match || next.index + next[0].length !== match.index + match[0].length) { + match = next; + } + re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length; + } + re[t.COERCERTL].lastIndex = -1; + } + if (match === null) { + return null; + } + return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options); +}; +var coerce_1 = coerce; +var iterator; +var hasRequiredIterator; +function requireIterator() { + if (hasRequiredIterator) return iterator; + hasRequiredIterator = 1; + iterator = function (Yallist) { + Yallist.prototype[Symbol.iterator] = function* () { + for (let walker = this.head; walker; walker = walker.next) { + yield walker.value; + } + }; + }; + return iterator; +} +var yallist; +var hasRequiredYallist; +function requireYallist() { + if (hasRequiredYallist) return yallist; + hasRequiredYallist = 1; + yallist = Yallist; + Yallist.Node = Node; + Yallist.create = Yallist; + function Yallist(list) { + var self = this; + if (!(self instanceof Yallist)) { + self = new Yallist(); + } + self.tail = null; + self.head = null; + self.length = 0; + if (list && typeof list.forEach === 'function') { + list.forEach(function (item) { + self.push(item); + }); + } else if (arguments.length > 0) { + for (var i = 0, l = arguments.length; i < l; i++) { + self.push(arguments[i]); + } + } + return self; + } + Yallist.prototype.removeNode = function (node) { + if (node.list !== this) { + throw new Error('removing node which does not belong to this list'); + } + var next = node.next; + var prev = node.prev; + if (next) { + next.prev = prev; + } + if (prev) { + prev.next = next; + } + if (node === this.head) { + this.head = next; + } + if (node === this.tail) { + this.tail = prev; + } + node.list.length--; + node.next = null; + node.prev = null; + node.list = null; + return next; + }; + Yallist.prototype.unshiftNode = function (node) { + if (node === this.head) { + return; + } + if (node.list) { + node.list.removeNode(node); + } + var head = this.head; + node.list = this; + node.next = head; + if (head) { + head.prev = node; + } + this.head = node; + if (!this.tail) { + this.tail = node; + } + this.length++; + }; + Yallist.prototype.pushNode = function (node) { + if (node === this.tail) { + return; + } + if (node.list) { + node.list.removeNode(node); + } + var tail = this.tail; + node.list = this; + node.prev = tail; + if (tail) { + tail.next = node; + } + this.tail = node; + if (!this.head) { + this.head = node; + } + this.length++; + }; + Yallist.prototype.push = function () { + for (var i = 0, l = arguments.length; i < l; i++) { + push(this, arguments[i]); + } + return this.length; + }; + Yallist.prototype.unshift = function () { + for (var i = 0, l = arguments.length; i < l; i++) { + unshift(this, arguments[i]); + } + return this.length; + }; + Yallist.prototype.pop = function () { + if (!this.tail) { + return undefined; + } + var res = this.tail.value; + this.tail = this.tail.prev; + if (this.tail) { + this.tail.next = null; + } else { + this.head = null; + } + this.length--; + return res; + }; + Yallist.prototype.shift = function () { + if (!this.head) { + return undefined; + } + var res = this.head.value; + this.head = this.head.next; + if (this.head) { + this.head.prev = null; + } else { + this.tail = null; + } + this.length--; + return res; + }; + Yallist.prototype.forEach = function (fn, thisp) { + thisp = thisp || this; + for (var walker = this.head, i = 0; walker !== null; i++) { + fn.call(thisp, walker.value, i, this); + walker = walker.next; + } + }; + Yallist.prototype.forEachReverse = function (fn, thisp) { + thisp = thisp || this; + for (var walker = this.tail, i = this.length - 1; walker !== null; i--) { + fn.call(thisp, walker.value, i, this); + walker = walker.prev; + } + }; + Yallist.prototype.get = function (n) { + for (var i = 0, walker = this.head; walker !== null && i < n; i++) { + walker = walker.next; + } + if (i === n && walker !== null) { + return walker.value; + } + }; + Yallist.prototype.getReverse = function (n) { + for (var i = 0, walker = this.tail; walker !== null && i < n; i++) { + walker = walker.prev; + } + if (i === n && walker !== null) { + return walker.value; + } + }; + Yallist.prototype.map = function (fn, thisp) { + thisp = thisp || this; + var res = new Yallist(); + for (var walker = this.head; walker !== null;) { + res.push(fn.call(thisp, walker.value, this)); + walker = walker.next; + } + return res; + }; + Yallist.prototype.mapReverse = function (fn, thisp) { + thisp = thisp || this; + var res = new Yallist(); + for (var walker = this.tail; walker !== null;) { + res.push(fn.call(thisp, walker.value, this)); + walker = walker.prev; + } + return res; + }; + Yallist.prototype.reduce = function (fn, initial) { + var acc; + var walker = this.head; + if (arguments.length > 1) { + acc = initial; + } else if (this.head) { + walker = this.head.next; + acc = this.head.value; + } else { + throw new TypeError('Reduce of empty list with no initial value'); + } + for (var i = 0; walker !== null; i++) { + acc = fn(acc, walker.value, i); + walker = walker.next; + } + return acc; + }; + Yallist.prototype.reduceReverse = function (fn, initial) { + var acc; + var walker = this.tail; + if (arguments.length > 1) { + acc = initial; + } else if (this.tail) { + walker = this.tail.prev; + acc = this.tail.value; + } else { + throw new TypeError('Reduce of empty list with no initial value'); + } + for (var i = this.length - 1; walker !== null; i--) { + acc = fn(acc, walker.value, i); + walker = walker.prev; + } + return acc; + }; + Yallist.prototype.toArray = function () { + var arr = new Array(this.length); + for (var i = 0, walker = this.head; walker !== null; i++) { + arr[i] = walker.value; + walker = walker.next; + } + return arr; + }; + Yallist.prototype.toArrayReverse = function () { + var arr = new Array(this.length); + for (var i = 0, walker = this.tail; walker !== null; i++) { + arr[i] = walker.value; + walker = walker.prev; + } + return arr; + }; + Yallist.prototype.slice = function (from, to) { + to = to || this.length; + if (to < 0) { + to += this.length; + } + from = from || 0; + if (from < 0) { + from += this.length; + } + var ret = new Yallist(); + if (to < from || to < 0) { + return ret; + } + if (from < 0) { + from = 0; + } + if (to > this.length) { + to = this.length; + } + for (var i = 0, walker = this.head; walker !== null && i < from; i++) { + walker = walker.next; + } + for (; walker !== null && i < to; i++, walker = walker.next) { + ret.push(walker.value); + } + return ret; + }; + Yallist.prototype.sliceReverse = function (from, to) { + to = to || this.length; + if (to < 0) { + to += this.length; + } + from = from || 0; + if (from < 0) { + from += this.length; + } + var ret = new Yallist(); + if (to < from || to < 0) { + return ret; + } + if (from < 0) { + from = 0; + } + if (to > this.length) { + to = this.length; + } + for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) { + walker = walker.prev; + } + for (; walker !== null && i > from; i--, walker = walker.prev) { + ret.push(walker.value); + } + return ret; + }; + Yallist.prototype.splice = function (start, deleteCount, ...nodes) { + if (start > this.length) { + start = this.length - 1; + } + if (start < 0) { + start = this.length + start; + } + for (var i = 0, walker = this.head; walker !== null && i < start; i++) { + walker = walker.next; + } + var ret = []; + for (var i = 0; walker && i < deleteCount; i++) { + ret.push(walker.value); + walker = this.removeNode(walker); + } + if (walker === null) { + walker = this.tail; + } + if (walker !== this.head && walker !== this.tail) { + walker = walker.prev; + } + for (var i = 0; i < nodes.length; i++) { + walker = insert(this, walker, nodes[i]); + } + return ret; + }; + Yallist.prototype.reverse = function () { + var head = this.head; + var tail = this.tail; + for (var walker = head; walker !== null; walker = walker.prev) { + var p = walker.prev; + walker.prev = walker.next; + walker.next = p; + } + this.head = tail; + this.tail = head; + return this; + }; + function insert(self, node, value) { + var inserted = node === self.head ? new Node(value, null, node, self) : new Node(value, node, node.next, self); + if (inserted.next === null) { + self.tail = inserted; + } + if (inserted.prev === null) { + self.head = inserted; + } + self.length++; + return inserted; + } + function push(self, item) { + self.tail = new Node(item, self.tail, null, self); + if (!self.head) { + self.head = self.tail; + } + self.length++; + } + function unshift(self, item) { + self.head = new Node(item, null, self.head, self); + if (!self.tail) { + self.tail = self.head; + } + self.length++; + } + function Node(value, prev, next, list) { + if (!(this instanceof Node)) { + return new Node(value, prev, next, list); + } + this.list = list; + this.value = value; + if (prev) { + prev.next = this; + this.prev = prev; + } else { + this.prev = null; + } + if (next) { + next.prev = this; + this.next = next; + } else { + this.next = null; + } + } + try { + requireIterator()(Yallist); + } catch (er) {} + return yallist; +} +var lruCache; +var hasRequiredLruCache; +function requireLruCache() { + if (hasRequiredLruCache) return lruCache; + hasRequiredLruCache = 1; + const Yallist = requireYallist(); + const MAX = Symbol('max'); + const LENGTH = Symbol('length'); + const LENGTH_CALCULATOR = Symbol('lengthCalculator'); + const ALLOW_STALE = Symbol('allowStale'); + const MAX_AGE = Symbol('maxAge'); + const DISPOSE = Symbol('dispose'); + const NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet'); + const LRU_LIST = Symbol('lruList'); + const CACHE = Symbol('cache'); + const UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet'); + const naiveLength = () => 1; + class LRUCache { + constructor(options) { + if (typeof options === 'number') options = { + max: options + }; + if (!options) options = {}; + if (options.max && (typeof options.max !== 'number' || options.max < 0)) throw new TypeError('max must be a non-negative number'); + this[MAX] = options.max || Infinity; + const lc = options.length || naiveLength; + this[LENGTH_CALCULATOR] = typeof lc !== 'function' ? naiveLength : lc; + this[ALLOW_STALE] = options.stale || false; + if (options.maxAge && typeof options.maxAge !== 'number') throw new TypeError('maxAge must be a number'); + this[MAX_AGE] = options.maxAge || 0; + this[DISPOSE] = options.dispose; + this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false; + this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false; + this.reset(); + } + set max(mL) { + if (typeof mL !== 'number' || mL < 0) throw new TypeError('max must be a non-negative number'); + this[MAX] = mL || Infinity; + trim(this); + } + get max() { + return this[MAX]; + } + set allowStale(allowStale) { + this[ALLOW_STALE] = !!allowStale; + } + get allowStale() { + return this[ALLOW_STALE]; + } + set maxAge(mA) { + if (typeof mA !== 'number') throw new TypeError('maxAge must be a non-negative number'); + this[MAX_AGE] = mA; + trim(this); + } + get maxAge() { + return this[MAX_AGE]; + } + set lengthCalculator(lC) { + if (typeof lC !== 'function') lC = naiveLength; + if (lC !== this[LENGTH_CALCULATOR]) { + this[LENGTH_CALCULATOR] = lC; + this[LENGTH] = 0; + this[LRU_LIST].forEach(hit => { + hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key); + this[LENGTH] += hit.length; + }); + } + trim(this); + } + get lengthCalculator() { + return this[LENGTH_CALCULATOR]; + } + get length() { + return this[LENGTH]; + } + get itemCount() { + return this[LRU_LIST].length; + } + rforEach(fn, thisp) { + thisp = thisp || this; + for (let walker = this[LRU_LIST].tail; walker !== null;) { + const prev = walker.prev; + forEachStep(this, fn, walker, thisp); + walker = prev; + } + } + forEach(fn, thisp) { + thisp = thisp || this; + for (let walker = this[LRU_LIST].head; walker !== null;) { + const next = walker.next; + forEachStep(this, fn, walker, thisp); + walker = next; + } + } + keys() { + return this[LRU_LIST].toArray().map(k => k.key); + } + values() { + return this[LRU_LIST].toArray().map(k => k.value); + } + reset() { + if (this[DISPOSE] && this[LRU_LIST] && this[LRU_LIST].length) { + this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value)); + } + this[CACHE] = new Map(); + this[LRU_LIST] = new Yallist(); + this[LENGTH] = 0; + } + dump() { + return this[LRU_LIST].map(hit => isStale(this, hit) ? false : { + k: hit.key, + v: hit.value, + e: hit.now + (hit.maxAge || 0) + }).toArray().filter(h => h); + } + dumpLru() { + return this[LRU_LIST]; + } + set(key, value, maxAge) { + maxAge = maxAge || this[MAX_AGE]; + if (maxAge && typeof maxAge !== 'number') throw new TypeError('maxAge must be a number'); + const now = maxAge ? Date.now() : 0; + const len = this[LENGTH_CALCULATOR](value, key); + if (this[CACHE].has(key)) { + if (len > this[MAX]) { + del(this, this[CACHE].get(key)); + return false; + } + const node = this[CACHE].get(key); + const item = node.value; + if (this[DISPOSE]) { + if (!this[NO_DISPOSE_ON_SET]) this[DISPOSE](key, item.value); + } + item.now = now; + item.maxAge = maxAge; + item.value = value; + this[LENGTH] += len - item.length; + item.length = len; + this.get(key); + trim(this); + return true; + } + const hit = new Entry(key, value, len, now, maxAge); + if (hit.length > this[MAX]) { + if (this[DISPOSE]) this[DISPOSE](key, value); + return false; + } + this[LENGTH] += hit.length; + this[LRU_LIST].unshift(hit); + this[CACHE].set(key, this[LRU_LIST].head); + trim(this); + return true; + } + has(key) { + if (!this[CACHE].has(key)) return false; + const hit = this[CACHE].get(key).value; + return !isStale(this, hit); + } + get(key) { + return get(this, key, true); + } + peek(key) { + return get(this, key, false); + } + pop() { + const node = this[LRU_LIST].tail; + if (!node) return null; + del(this, node); + return node.value; + } + del(key) { + del(this, this[CACHE].get(key)); + } + load(arr) { + this.reset(); + const now = Date.now(); + for (let l = arr.length - 1; l >= 0; l--) { + const hit = arr[l]; + const expiresAt = hit.e || 0; + if (expiresAt === 0) this.set(hit.k, hit.v);else { + const maxAge = expiresAt - now; + if (maxAge > 0) { + this.set(hit.k, hit.v, maxAge); + } + } + } + } + prune() { + this[CACHE].forEach((value, key) => get(this, key, false)); + } + } + const get = (self, key, doUse) => { + const node = self[CACHE].get(key); + if (node) { + const hit = node.value; + if (isStale(self, hit)) { + del(self, node); + if (!self[ALLOW_STALE]) return undefined; + } else { + if (doUse) { + if (self[UPDATE_AGE_ON_GET]) node.value.now = Date.now(); + self[LRU_LIST].unshiftNode(node); + } + } + return hit.value; + } + }; + const isStale = (self, hit) => { + if (!hit || !hit.maxAge && !self[MAX_AGE]) return false; + const diff = Date.now() - hit.now; + return hit.maxAge ? diff > hit.maxAge : self[MAX_AGE] && diff > self[MAX_AGE]; + }; + const trim = self => { + if (self[LENGTH] > self[MAX]) { + for (let walker = self[LRU_LIST].tail; self[LENGTH] > self[MAX] && walker !== null;) { + const prev = walker.prev; + del(self, walker); + walker = prev; + } + } + }; + const del = (self, node) => { + if (node) { + const hit = node.value; + if (self[DISPOSE]) self[DISPOSE](hit.key, hit.value); + self[LENGTH] -= hit.length; + self[CACHE].delete(hit.key); + self[LRU_LIST].removeNode(node); + } + }; + class Entry { + constructor(key, value, length, now, maxAge) { + this.key = key; + this.value = value; + this.length = length; + this.now = now; + this.maxAge = maxAge || 0; + } + } + const forEachStep = (self, fn, node, thisp) => { + let hit = node.value; + if (isStale(self, hit)) { + del(self, node); + if (!self[ALLOW_STALE]) hit = undefined; + } + if (hit) fn.call(thisp, hit.value, hit.key, self); + }; + lruCache = LRUCache; + return lruCache; +} +var range; +var hasRequiredRange; +function requireRange() { + if (hasRequiredRange) return range; + hasRequiredRange = 1; + class Range { + constructor(range, options) { + options = parseOptions(options); + if (range instanceof Range) { + if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) { + return range; + } else { + return new Range(range.raw, options); + } + } + if (range instanceof Comparator) { + this.raw = range.value; + this.set = [[range]]; + this.format(); + return this; + } + this.options = options; + this.loose = !!options.loose; + this.includePrerelease = !!options.includePrerelease; + this.raw = range; + this.set = range.split('||').map(r => this.parseRange(r.trim())).filter(c => c.length); + if (!this.set.length) { + throw new TypeError(`Invalid SemVer Range: ${range}`); + } + if (this.set.length > 1) { + const first = this.set[0]; + this.set = this.set.filter(c => !isNullSet(c[0])); + if (this.set.length === 0) { + this.set = [first]; + } else if (this.set.length > 1) { + for (const c of this.set) { + if (c.length === 1 && isAny(c[0])) { + this.set = [c]; + break; + } + } + } + } + this.format(); + } + format() { + this.range = this.set.map(comps => { + return comps.join(' ').trim(); + }).join('||').trim(); + return this.range; + } + toString() { + return this.range; + } + parseRange(range) { + range = range.trim(); + const memoOpts = Object.keys(this.options).join(','); + const memoKey = `parseRange:${memoOpts}:${range}`; + const cached = cache.get(memoKey); + if (cached) { + return cached; + } + const loose = this.options.loose; + const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]; + range = range.replace(hr, hyphenReplace(this.options.includePrerelease)); + debug('hyphen replace', range); + range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace); + debug('comparator trim', range); + range = range.replace(re[t.TILDETRIM], tildeTrimReplace); + range = range.replace(re[t.CARETTRIM], caretTrimReplace); + range = range.split(/\s+/).join(' '); + let rangeList = range.split(' ').map(comp => parseComparator(comp, this.options)).join(' ').split(/\s+/).map(comp => replaceGTE0(comp, this.options)); + if (loose) { + rangeList = rangeList.filter(comp => { + debug('loose invalid filter', comp, this.options); + return !!comp.match(re[t.COMPARATORLOOSE]); + }); + } + debug('range list', rangeList); + const rangeMap = new Map(); + const comparators = rangeList.map(comp => new Comparator(comp, this.options)); + for (const comp of comparators) { + if (isNullSet(comp)) { + return [comp]; + } + rangeMap.set(comp.value, comp); + } + if (rangeMap.size > 1 && rangeMap.has('')) { + rangeMap.delete(''); + } + const result = [...rangeMap.values()]; + cache.set(memoKey, result); + return result; + } + intersects(range, options) { + if (!(range instanceof Range)) { + throw new TypeError('a Range is required'); + } + return this.set.some(thisComparators => { + return isSatisfiable(thisComparators, options) && range.set.some(rangeComparators => { + return isSatisfiable(rangeComparators, options) && thisComparators.every(thisComparator => { + return rangeComparators.every(rangeComparator => { + return thisComparator.intersects(rangeComparator, options); + }); + }); + }); + }); + } + test(version) { + if (!version) { + return false; + } + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options); + } catch (er) { + return false; + } + } + for (let i = 0; i < this.set.length; i++) { + if (testSet(this.set[i], version, this.options)) { + return true; + } + } + return false; + } + } + range = Range; + const LRU = requireLruCache(); + const cache = new LRU({ + max: 1000 + }); + const parseOptions = parseOptions_1; + const Comparator = requireComparator(); + const debug = debug_1; + const SemVer = semver$2; + const { + re, + t, + comparatorTrimReplace, + tildeTrimReplace, + caretTrimReplace + } = re$3.exports; + const isNullSet = c => c.value === '<0.0.0-0'; + const isAny = c => c.value === ''; + const isSatisfiable = (comparators, options) => { + let result = true; + const remainingComparators = comparators.slice(); + let testComparator = remainingComparators.pop(); + while (result && remainingComparators.length) { + result = remainingComparators.every(otherComparator => { + return testComparator.intersects(otherComparator, options); + }); + testComparator = remainingComparators.pop(); + } + return result; + }; + const parseComparator = (comp, options) => { + debug('comp', comp, options); + comp = replaceCarets(comp, options); + debug('caret', comp); + comp = replaceTildes(comp, options); + debug('tildes', comp); + comp = replaceXRanges(comp, options); + debug('xrange', comp); + comp = replaceStars(comp, options); + debug('stars', comp); + return comp; + }; + const isX = id => !id || id.toLowerCase() === 'x' || id === '*'; + const replaceTildes = (comp, options) => comp.trim().split(/\s+/).map(c => { + return replaceTilde(c, options); + }).join(' '); + const replaceTilde = (comp, options) => { + const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]; + return comp.replace(r, (_, M, m, p, pr) => { + debug('tilde', comp, _, M, m, p, pr); + let ret; + if (isX(M)) { + ret = ''; + } else if (isX(m)) { + ret = `>=${M}.0.0 <${+M + 1}.0.0-0`; + } else if (isX(p)) { + ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`; + } else if (pr) { + debug('replaceTilde pr', pr); + ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`; + } else { + ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`; + } + debug('tilde return', ret); + return ret; + }); + }; + const replaceCarets = (comp, options) => comp.trim().split(/\s+/).map(c => { + return replaceCaret(c, options); + }).join(' '); + const replaceCaret = (comp, options) => { + debug('caret', comp, options); + const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]; + const z = options.includePrerelease ? '-0' : ''; + return comp.replace(r, (_, M, m, p, pr) => { + debug('caret', comp, _, M, m, p, pr); + let ret; + if (isX(M)) { + ret = ''; + } else if (isX(m)) { + ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`; + } else if (isX(p)) { + if (M === '0') { + ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`; + } else { + ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`; + } + } else if (pr) { + debug('replaceCaret pr', pr); + if (M === '0') { + if (m === '0') { + ret = `>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p + 1}-0`; + } else { + ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`; + } + } else { + ret = `>=${M}.${m}.${p}-${pr} <${+M + 1}.0.0-0`; + } + } else { + debug('no pr'); + if (M === '0') { + if (m === '0') { + ret = `>=${M}.${m}.${p}${z} <${M}.${m}.${+p + 1}-0`; + } else { + ret = `>=${M}.${m}.${p}${z} <${M}.${+m + 1}.0-0`; + } + } else { + ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`; + } + } + debug('caret return', ret); + return ret; + }); + }; + const replaceXRanges = (comp, options) => { + debug('replaceXRanges', comp, options); + return comp.split(/\s+/).map(c => { + return replaceXRange(c, options); + }).join(' '); + }; + const replaceXRange = (comp, options) => { + comp = comp.trim(); + const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]; + return comp.replace(r, (ret, gtlt, M, m, p, pr) => { + debug('xRange', comp, ret, gtlt, M, m, p, pr); + const xM = isX(M); + const xm = xM || isX(m); + const xp = xm || isX(p); + const anyX = xp; + if (gtlt === '=' && anyX) { + gtlt = ''; + } + pr = options.includePrerelease ? '-0' : ''; + if (xM) { + if (gtlt === '>' || gtlt === '<') { + ret = '<0.0.0-0'; + } else { + ret = '*'; + } + } else if (gtlt && anyX) { + if (xm) { + m = 0; + } + p = 0; + if (gtlt === '>') { + gtlt = '>='; + if (xm) { + M = +M + 1; + m = 0; + p = 0; + } else { + m = +m + 1; + p = 0; + } + } else if (gtlt === '<=') { + gtlt = '<'; + if (xm) { + M = +M + 1; + } else { + m = +m + 1; + } + } + if (gtlt === '<') { + pr = '-0'; + } + ret = `${gtlt + M}.${m}.${p}${pr}`; + } else if (xm) { + ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`; + } else if (xp) { + ret = `>=${M}.${m}.0${pr} <${M}.${+m + 1}.0-0`; + } + debug('xRange return', ret); + return ret; + }); + }; + const replaceStars = (comp, options) => { + debug('replaceStars', comp, options); + return comp.trim().replace(re[t.STAR], ''); + }; + const replaceGTE0 = (comp, options) => { + debug('replaceGTE0', comp, options); + return comp.trim().replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], ''); + }; + const hyphenReplace = incPr => ($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) => { + if (isX(fM)) { + from = ''; + } else if (isX(fm)) { + from = `>=${fM}.0.0${incPr ? '-0' : ''}`; + } else if (isX(fp)) { + from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`; + } else if (fpr) { + from = `>=${from}`; + } else { + from = `>=${from}${incPr ? '-0' : ''}`; + } + if (isX(tM)) { + to = ''; + } else if (isX(tm)) { + to = `<${+tM + 1}.0.0-0`; + } else if (isX(tp)) { + to = `<${tM}.${+tm + 1}.0-0`; + } else if (tpr) { + to = `<=${tM}.${tm}.${tp}-${tpr}`; + } else if (incPr) { + to = `<${tM}.${tm}.${+tp + 1}-0`; + } else { + to = `<=${to}`; + } + return `${from} ${to}`.trim(); + }; + const testSet = (set, version, options) => { + for (let i = 0; i < set.length; i++) { + if (!set[i].test(version)) { + return false; + } + } + if (version.prerelease.length && !options.includePrerelease) { + for (let i = 0; i < set.length; i++) { + debug(set[i].semver); + if (set[i].semver === Comparator.ANY) { + continue; + } + if (set[i].semver.prerelease.length > 0) { + const allowed = set[i].semver; + if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) { + return true; + } + } + } + return false; + } + return true; + }; + return range; +} +var comparator; +var hasRequiredComparator; +function requireComparator() { + if (hasRequiredComparator) return comparator; + hasRequiredComparator = 1; + const ANY = Symbol('SemVer ANY'); + class Comparator { + static get ANY() { + return ANY; + } + constructor(comp, options) { + options = parseOptions(options); + if (comp instanceof Comparator) { + if (comp.loose === !!options.loose) { + return comp; + } else { + comp = comp.value; + } + } + debug('comparator', comp, options); + this.options = options; + this.loose = !!options.loose; + this.parse(comp); + if (this.semver === ANY) { + this.value = ''; + } else { + this.value = this.operator + this.semver.version; + } + debug('comp', this); + } + parse(comp) { + const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]; + const m = comp.match(r); + if (!m) { + throw new TypeError(`Invalid comparator: ${comp}`); + } + this.operator = m[1] !== undefined ? m[1] : ''; + if (this.operator === '=') { + this.operator = ''; + } + if (!m[2]) { + this.semver = ANY; + } else { + this.semver = new SemVer(m[2], this.options.loose); + } + } + toString() { + return this.value; + } + test(version) { + debug('Comparator.test', version, this.options.loose); + if (this.semver === ANY || version === ANY) { + return true; + } + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options); + } catch (er) { + return false; + } + } + return cmp(version, this.operator, this.semver, this.options); + } + intersects(comp, options) { + if (!(comp instanceof Comparator)) { + throw new TypeError('a Comparator is required'); + } + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + }; + } + if (this.operator === '') { + if (this.value === '') { + return true; + } + return new Range(comp.value, options).test(this.value); + } else if (comp.operator === '') { + if (comp.value === '') { + return true; + } + return new Range(this.value, options).test(comp.semver); + } + const sameDirectionIncreasing = (this.operator === '>=' || this.operator === '>') && (comp.operator === '>=' || comp.operator === '>'); + const sameDirectionDecreasing = (this.operator === '<=' || this.operator === '<') && (comp.operator === '<=' || comp.operator === '<'); + const sameSemVer = this.semver.version === comp.semver.version; + const differentDirectionsInclusive = (this.operator === '>=' || this.operator === '<=') && (comp.operator === '>=' || comp.operator === '<='); + const oppositeDirectionsLessThan = cmp(this.semver, '<', comp.semver, options) && (this.operator === '>=' || this.operator === '>') && (comp.operator === '<=' || comp.operator === '<'); + const oppositeDirectionsGreaterThan = cmp(this.semver, '>', comp.semver, options) && (this.operator === '<=' || this.operator === '<') && (comp.operator === '>=' || comp.operator === '>'); + return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan; + } + } + comparator = Comparator; + const parseOptions = parseOptions_1; + const { + re, + t + } = re$3.exports; + const cmp = cmp_1; + const debug = debug_1; + const SemVer = semver$2; + const Range = requireRange(); + return comparator; +} +const Range$8 = requireRange(); +const satisfies$3 = (version, range, options) => { + try { + range = new Range$8(range, options); + } catch (er) { + return false; + } + return range.test(version); +}; +var satisfies_1 = satisfies$3; +const Range$7 = requireRange(); +const toComparators = (range, options) => new Range$7(range, options).set.map(comp => comp.map(c => c.value).join(' ').trim().split(' ')); +var toComparators_1 = toComparators; +const SemVer$3 = semver$2; +const Range$6 = requireRange(); +const maxSatisfying = (versions, range, options) => { + let max = null; + let maxSV = null; + let rangeObj = null; + try { + rangeObj = new Range$6(range, options); + } catch (er) { + return null; + } + versions.forEach(v => { + if (rangeObj.test(v)) { + if (!max || maxSV.compare(v) === -1) { + max = v; + maxSV = new SemVer$3(max, options); + } + } + }); + return max; +}; +var maxSatisfying_1 = maxSatisfying; +const SemVer$2 = semver$2; +const Range$5 = requireRange(); +const minSatisfying = (versions, range, options) => { + let min = null; + let minSV = null; + let rangeObj = null; + try { + rangeObj = new Range$5(range, options); + } catch (er) { + return null; + } + versions.forEach(v => { + if (rangeObj.test(v)) { + if (!min || minSV.compare(v) === 1) { + min = v; + minSV = new SemVer$2(min, options); + } + } + }); + return min; +}; +var minSatisfying_1 = minSatisfying; +const SemVer$1 = semver$2; +const Range$4 = requireRange(); +const gt$1 = gt_1; +const minVersion = (range, loose) => { + range = new Range$4(range, loose); + let minver = new SemVer$1('0.0.0'); + if (range.test(minver)) { + return minver; + } + minver = new SemVer$1('0.0.0-0'); + if (range.test(minver)) { + return minver; + } + minver = null; + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i]; + let setMin = null; + comparators.forEach(comparator => { + const compver = new SemVer$1(comparator.semver.version); + switch (comparator.operator) { + case '>': + if (compver.prerelease.length === 0) { + compver.patch++; + } else { + compver.prerelease.push(0); + } + compver.raw = compver.format(); + case '': + case '>=': + if (!setMin || gt$1(compver, setMin)) { + setMin = compver; + } + break; + case '<': + case '<=': + break; + default: + throw new Error(`Unexpected operation: ${comparator.operator}`); + } + }); + if (setMin && (!minver || gt$1(minver, setMin))) { + minver = setMin; + } + } + if (minver && range.test(minver)) { + return minver; + } + return null; +}; +var minVersion_1 = minVersion; +const Range$3 = requireRange(); +const validRange = (range, options) => { + try { + return new Range$3(range, options).range || '*'; + } catch (er) { + return null; + } +}; +var valid = validRange; +const SemVer = semver$2; +const Comparator$1 = requireComparator(); +const { + ANY: ANY$1 +} = Comparator$1; +const Range$2 = requireRange(); +const satisfies$2 = satisfies_1; +const gt = gt_1; +const lt = lt_1; +const lte = lte_1; +const gte = gte_1; +const outside$2 = (version, range, hilo, options) => { + version = new SemVer(version, options); + range = new Range$2(range, options); + let gtfn, ltefn, ltfn, comp, ecomp; + switch (hilo) { + case '>': + gtfn = gt; + ltefn = lte; + ltfn = lt; + comp = '>'; + ecomp = '>='; + break; + case '<': + gtfn = lt; + ltefn = gte; + ltfn = gt; + comp = '<'; + ecomp = '<='; + break; + default: + throw new TypeError('Must provide a hilo val of "<" or ">"'); + } + if (satisfies$2(version, range, options)) { + return false; + } + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i]; + let high = null; + let low = null; + comparators.forEach(comparator => { + if (comparator.semver === ANY$1) { + comparator = new Comparator$1('>=0.0.0'); + } + high = high || comparator; + low = low || comparator; + if (gtfn(comparator.semver, high.semver, options)) { + high = comparator; + } else if (ltfn(comparator.semver, low.semver, options)) { + low = comparator; + } + }); + if (high.operator === comp || high.operator === ecomp) { + return false; + } + if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) { + return false; + } else if (low.operator === ecomp && ltfn(version, low.semver)) { + return false; + } + } + return true; +}; +var outside_1 = outside$2; +const outside$1 = outside_1; +const gtr = (version, range, options) => outside$1(version, range, '>', options); +var gtr_1 = gtr; +const outside = outside_1; +const ltr = (version, range, options) => outside(version, range, '<', options); +var ltr_1 = ltr; +const Range$1 = requireRange(); +const intersects = (r1, r2, options) => { + r1 = new Range$1(r1, options); + r2 = new Range$1(r2, options); + return r1.intersects(r2); +}; +var intersects_1 = intersects; +const satisfies$1 = satisfies_1; +const compare$1 = compare_1; +var simplify = (versions, range, options) => { + const set = []; + let first = null; + let prev = null; + const v = versions.sort((a, b) => compare$1(a, b, options)); + for (const version of v) { + const included = satisfies$1(version, range, options); + if (included) { + prev = version; + if (!first) { + first = version; + } + } else { + if (prev) { + set.push([first, prev]); + } + prev = null; + first = null; + } + } + if (first) { + set.push([first, null]); + } + const ranges = []; + for (const [min, max] of set) { + if (min === max) { + ranges.push(min); + } else if (!max && min === v[0]) { + ranges.push('*'); + } else if (!max) { + ranges.push(`>=${min}`); + } else if (min === v[0]) { + ranges.push(`<=${max}`); + } else { + ranges.push(`${min} - ${max}`); + } + } + const simplified = ranges.join(' || '); + const original = typeof range.raw === 'string' ? range.raw : String(range); + return simplified.length < original.length ? simplified : range; +}; +const Range = requireRange(); +const Comparator = requireComparator(); +const { + ANY +} = Comparator; +const satisfies = satisfies_1; +const compare = compare_1; +const subset = (sub, dom, options = {}) => { + if (sub === dom) { + return true; + } + sub = new Range(sub, options); + dom = new Range(dom, options); + let sawNonNull = false; + OUTER: for (const simpleSub of sub.set) { + for (const simpleDom of dom.set) { + const isSub = simpleSubset(simpleSub, simpleDom, options); + sawNonNull = sawNonNull || isSub !== null; + if (isSub) { + continue OUTER; + } + } + if (sawNonNull) { + return false; + } + } + return true; +}; +const simpleSubset = (sub, dom, options) => { + if (sub === dom) { + return true; + } + if (sub.length === 1 && sub[0].semver === ANY) { + if (dom.length === 1 && dom[0].semver === ANY) { + return true; + } else if (options.includePrerelease) { + sub = [new Comparator('>=0.0.0-0')]; + } else { + sub = [new Comparator('>=0.0.0')]; + } + } + if (dom.length === 1 && dom[0].semver === ANY) { + if (options.includePrerelease) { + return true; + } else { + dom = [new Comparator('>=0.0.0')]; + } + } + const eqSet = new Set(); + let gt, lt; + for (const c of sub) { + if (c.operator === '>' || c.operator === '>=') { + gt = higherGT(gt, c, options); + } else if (c.operator === '<' || c.operator === '<=') { + lt = lowerLT(lt, c, options); + } else { + eqSet.add(c.semver); + } + } + if (eqSet.size > 1) { + return null; + } + let gtltComp; + if (gt && lt) { + gtltComp = compare(gt.semver, lt.semver, options); + if (gtltComp > 0) { + return null; + } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) { + return null; + } + } + for (const eq of eqSet) { + if (gt && !satisfies(eq, String(gt), options)) { + return null; + } + if (lt && !satisfies(eq, String(lt), options)) { + return null; + } + for (const c of dom) { + if (!satisfies(eq, String(c), options)) { + return false; + } + } + return true; + } + let higher, lower; + let hasDomLT, hasDomGT; + let needDomLTPre = lt && !options.includePrerelease && lt.semver.prerelease.length ? lt.semver : false; + let needDomGTPre = gt && !options.includePrerelease && gt.semver.prerelease.length ? gt.semver : false; + if (needDomLTPre && needDomLTPre.prerelease.length === 1 && lt.operator === '<' && needDomLTPre.prerelease[0] === 0) { + needDomLTPre = false; + } + for (const c of dom) { + hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='; + hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='; + if (gt) { + if (needDomGTPre) { + if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomGTPre.major && c.semver.minor === needDomGTPre.minor && c.semver.patch === needDomGTPre.patch) { + needDomGTPre = false; + } + } + if (c.operator === '>' || c.operator === '>=') { + higher = higherGT(gt, c, options); + if (higher === c && higher !== gt) { + return false; + } + } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) { + return false; + } + } + if (lt) { + if (needDomLTPre) { + if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomLTPre.major && c.semver.minor === needDomLTPre.minor && c.semver.patch === needDomLTPre.patch) { + needDomLTPre = false; + } + } + if (c.operator === '<' || c.operator === '<=') { + lower = lowerLT(lt, c, options); + if (lower === c && lower !== lt) { + return false; + } + } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) { + return false; + } + } + if (!c.operator && (lt || gt) && gtltComp !== 0) { + return false; + } + } + if (gt && hasDomLT && !lt && gtltComp !== 0) { + return false; + } + if (lt && hasDomGT && !gt && gtltComp !== 0) { + return false; + } + if (needDomGTPre || needDomLTPre) { + return false; + } + return true; +}; +const higherGT = (a, b, options) => { + if (!a) { + return b; + } + const comp = compare(a.semver, b.semver, options); + return comp > 0 ? a : comp < 0 ? b : b.operator === '>' && a.operator === '>=' ? b : a; +}; +const lowerLT = (a, b, options) => { + if (!a) { + return b; + } + const comp = compare(a.semver, b.semver, options); + return comp < 0 ? a : comp > 0 ? b : b.operator === '<' && a.operator === '<=' ? b : a; +}; +var subset_1 = subset; +const internalRe = re$3.exports; +var semver$1 = { + re: internalRe.re, + src: internalRe.src, + tokens: internalRe.t, + SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION, + SemVer: semver$2, + compareIdentifiers: identifiers.compareIdentifiers, + rcompareIdentifiers: identifiers.rcompareIdentifiers, + parse: parse_1, + valid: valid_1, + clean: clean_1, + inc: inc_1, + diff: diff_1, + major: major_1, + minor: minor_1, + patch: patch_1, + prerelease: prerelease_1, + compare: compare_1, + rcompare: rcompare_1, + compareLoose: compareLoose_1, + compareBuild: compareBuild_1, + sort: sort_1, + rsort: rsort_1, + gt: gt_1, + lt: lt_1, + eq: eq_1, + neq: neq_1, + gte: gte_1, + lte: lte_1, + cmp: cmp_1, + coerce: coerce_1, + Comparator: requireComparator(), + Range: requireRange(), + satisfies: satisfies_1, + toComparators: toComparators_1, + maxSatisfying: maxSatisfying_1, + minSatisfying: minSatisfying_1, + minVersion: minVersion_1, + validRange: valid, + outside: outside_1, + gtr: gtr_1, + ltr: ltr_1, + intersects: intersects_1, + simplifyRange: simplify, + subset: subset_1 +}; +var semver = semver$1; +var builtins = function ({ + version = process.version, + experimental = false +} = {}) { + var coreModules = ['assert', 'buffer', 'child_process', 'cluster', 'console', 'constants', 'crypto', 'dgram', 'dns', 'domain', 'events', 'fs', 'http', 'https', 'module', 'net', 'os', 'path', 'punycode', 'querystring', 'readline', 'repl', 'stream', 'string_decoder', 'sys', 'timers', 'tls', 'tty', 'url', 'util', 'vm', 'zlib']; + if (semver.lt(version, '6.0.0')) coreModules.push('freelist'); + if (semver.gte(version, '1.0.0')) coreModules.push('v8'); + if (semver.gte(version, '1.1.0')) coreModules.push('process'); + if (semver.gte(version, '8.0.0')) coreModules.push('inspector'); + if (semver.gte(version, '8.1.0')) coreModules.push('async_hooks'); + if (semver.gte(version, '8.4.0')) coreModules.push('http2'); + if (semver.gte(version, '8.5.0')) coreModules.push('perf_hooks'); + if (semver.gte(version, '10.0.0')) coreModules.push('trace_events'); + if (semver.gte(version, '10.5.0') && (experimental || semver.gte(version, '12.0.0'))) { + coreModules.push('worker_threads'); + } + if (semver.gte(version, '12.16.0') && experimental) { + coreModules.push('wasi'); + } + return coreModules; +}; +const reader = { + read +}; +function read(jsonPath) { + return find(_path().dirname(jsonPath)); +} +function find(dir) { + try { + const string = _fs().default.readFileSync(_path().toNamespacedPath(_path().join(dir, 'package.json')), 'utf8'); + return { + string + }; + } catch (error) { + if (error.code === 'ENOENT') { + const parent = _path().dirname(dir); + if (dir !== parent) return find(parent); + return { + string: undefined + }; + } + throw error; + } +} +const isWindows = process.platform === 'win32'; +const own$1 = {}.hasOwnProperty; +const codes = {}; +const messages = new Map(); +const nodeInternalPrefix = '__node_internal_'; +let userStackTraceLimit; +codes.ERR_INVALID_MODULE_SPECIFIER = createError('ERR_INVALID_MODULE_SPECIFIER', (request, reason, base = undefined) => { + return `Invalid module "${request}" ${reason}${base ? ` imported from ${base}` : ''}`; +}, TypeError); +codes.ERR_INVALID_PACKAGE_CONFIG = createError('ERR_INVALID_PACKAGE_CONFIG', (path, base, message) => { + return `Invalid package config ${path}${base ? ` while importing ${base}` : ''}${message ? `. ${message}` : ''}`; +}, Error); +codes.ERR_INVALID_PACKAGE_TARGET = createError('ERR_INVALID_PACKAGE_TARGET', (pkgPath, key, target, isImport = false, base = undefined) => { + const relError = typeof target === 'string' && !isImport && target.length > 0 && !target.startsWith('./'); + if (key === '.') { + _assert()(isImport === false); + return `Invalid "exports" main target ${JSON.stringify(target)} defined ` + `in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ''}${relError ? '; targets must start with "./"' : ''}`; + } + return `Invalid "${isImport ? 'imports' : 'exports'}" target ${JSON.stringify(target)} defined for '${key}' in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ''}${relError ? '; targets must start with "./"' : ''}`; +}, Error); +codes.ERR_MODULE_NOT_FOUND = createError('ERR_MODULE_NOT_FOUND', (path, base, type = 'package') => { + return `Cannot find ${type} '${path}' imported from ${base}`; +}, Error); +codes.ERR_PACKAGE_IMPORT_NOT_DEFINED = createError('ERR_PACKAGE_IMPORT_NOT_DEFINED', (specifier, packagePath, base) => { + return `Package import specifier "${specifier}" is not defined${packagePath ? ` in package ${packagePath}package.json` : ''} imported from ${base}`; +}, TypeError); +codes.ERR_PACKAGE_PATH_NOT_EXPORTED = createError('ERR_PACKAGE_PATH_NOT_EXPORTED', (pkgPath, subpath, base = undefined) => { + if (subpath === '.') return `No "exports" main defined in ${pkgPath}package.json${base ? ` imported from ${base}` : ''}`; + return `Package subpath '${subpath}' is not defined by "exports" in ${pkgPath}package.json${base ? ` imported from ${base}` : ''}`; +}, Error); +codes.ERR_UNSUPPORTED_DIR_IMPORT = createError('ERR_UNSUPPORTED_DIR_IMPORT', "Directory import '%s' is not supported " + 'resolving ES modules imported from %s', Error); +codes.ERR_UNKNOWN_FILE_EXTENSION = createError('ERR_UNKNOWN_FILE_EXTENSION', 'Unknown file extension "%s" for %s', TypeError); +codes.ERR_INVALID_ARG_VALUE = createError('ERR_INVALID_ARG_VALUE', (name, value, reason = 'is invalid') => { + let inspected = (0, _util().inspect)(value); + if (inspected.length > 128) { + inspected = `${inspected.slice(0, 128)}...`; + } + const type = name.includes('.') ? 'property' : 'argument'; + return `The ${type} '${name}' ${reason}. Received ${inspected}`; +}, TypeError); +codes.ERR_UNSUPPORTED_ESM_URL_SCHEME = createError('ERR_UNSUPPORTED_ESM_URL_SCHEME', url => { + let message = 'Only file and data URLs are supported by the default ESM loader'; + if (isWindows && url.protocol.length === 2) { + message += '. On Windows, absolute paths must be valid file:// URLs'; + } + message += `. Received protocol '${url.protocol}'`; + return message; +}, Error); +function createError(sym, value, def) { + messages.set(sym, value); + return makeNodeErrorWithCode(def, sym); +} +function makeNodeErrorWithCode(Base, key) { + return NodeError; + function NodeError(...args) { + const limit = Error.stackTraceLimit; + if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0; + const error = new Base(); + if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = limit; + const message = getMessage(key, args, error); + Object.defineProperty(error, 'message', { + value: message, + enumerable: false, + writable: true, + configurable: true + }); + Object.defineProperty(error, 'toString', { + value() { + return `${this.name} [${key}]: ${this.message}`; + }, + enumerable: false, + writable: true, + configurable: true + }); + addCodeToName(error, Base.name, key); + error.code = key; + return error; + } +} +const addCodeToName = hideStackFrames(function (error, name, code) { + error = captureLargerStackTrace(error); + error.name = `${name} [${code}]`; + error.stack; + if (name === 'SystemError') { + Object.defineProperty(error, 'name', { + value: name, + enumerable: false, + writable: true, + configurable: true + }); + } else { + delete error.name; + } +}); +function isErrorStackTraceLimitWritable() { + const desc = Object.getOwnPropertyDescriptor(Error, 'stackTraceLimit'); + if (desc === undefined) { + return Object.isExtensible(Error); + } + return own$1.call(desc, 'writable') ? desc.writable : desc.set !== undefined; +} +function hideStackFrames(fn) { + const hidden = nodeInternalPrefix + fn.name; + Object.defineProperty(fn, 'name', { + value: hidden + }); + return fn; +} +const captureLargerStackTrace = hideStackFrames(function (error) { + const stackTraceLimitIsWritable = isErrorStackTraceLimitWritable(); + if (stackTraceLimitIsWritable) { + userStackTraceLimit = Error.stackTraceLimit; + Error.stackTraceLimit = Number.POSITIVE_INFINITY; + } + Error.captureStackTrace(error); + if (stackTraceLimitIsWritable) Error.stackTraceLimit = userStackTraceLimit; + return error; +}); +function getMessage(key, args, self) { + const message = messages.get(key); + if (typeof message === 'function') { + _assert()(message.length <= args.length, `Code: ${key}; The provided arguments length (${args.length}) does not ` + `match the required ones (${message.length}).`); + return Reflect.apply(message, self, args); + } + const expectedLength = (message.match(/%[dfijoOs]/g) || []).length; + _assert()(expectedLength === args.length, `Code: ${key}; The provided arguments length (${args.length}) does not ` + `match the required ones (${expectedLength}).`); + if (args.length === 0) return message; + args.unshift(message); + return Reflect.apply(_util().format, null, args); +} +const { + ERR_UNKNOWN_FILE_EXTENSION +} = codes; +const extensionFormatMap = { + __proto__: null, + '.cjs': 'commonjs', + '.js': 'module', + '.mjs': 'module' +}; +function defaultGetFormat(url) { + if (url.startsWith('node:')) { + return { + format: 'builtin' + }; + } + const parsed = new (_url().URL)(url); + if (parsed.protocol === 'data:') { + const { + 1: mime + } = /^([^/]+\/[^;,]+)[^,]*?(;base64)?,/.exec(parsed.pathname) || [null, null]; + const format = mime === 'text/javascript' ? 'module' : null; + return { + format + }; + } + if (parsed.protocol === 'file:') { + const ext = _path().extname(parsed.pathname); + let format; + if (ext === '.js') { + format = getPackageType(parsed.href) === 'module' ? 'module' : 'commonjs'; + } else { + format = extensionFormatMap[ext]; + } + if (!format) { + throw new ERR_UNKNOWN_FILE_EXTENSION(ext, (0, _url().fileURLToPath)(url)); + } + return { + format: format || null + }; + } + return { + format: null + }; +} +const listOfBuiltins = builtins(); +const { + ERR_INVALID_MODULE_SPECIFIER, + ERR_INVALID_PACKAGE_CONFIG, + ERR_INVALID_PACKAGE_TARGET, + ERR_MODULE_NOT_FOUND, + ERR_PACKAGE_IMPORT_NOT_DEFINED, + ERR_PACKAGE_PATH_NOT_EXPORTED, + ERR_UNSUPPORTED_DIR_IMPORT, + ERR_UNSUPPORTED_ESM_URL_SCHEME, + ERR_INVALID_ARG_VALUE +} = codes; +const own = {}.hasOwnProperty; +const DEFAULT_CONDITIONS = Object.freeze(['node', 'import']); +const DEFAULT_CONDITIONS_SET = new Set(DEFAULT_CONDITIONS); +const invalidSegmentRegEx = /(^|\\|\/)(\.\.?|node_modules)(\\|\/|$)/; +const patternRegEx = /\*/g; +const encodedSepRegEx = /%2f|%2c/i; +const emittedPackageWarnings = new Set(); +const packageJsonCache = new Map(); +function emitFolderMapDeprecation(match, pjsonUrl, isExports, base) { + const pjsonPath = (0, _url().fileURLToPath)(pjsonUrl); + if (emittedPackageWarnings.has(pjsonPath + '|' + match)) return; + emittedPackageWarnings.add(pjsonPath + '|' + match); + process.emitWarning(`Use of deprecated folder mapping "${match}" in the ${isExports ? '"exports"' : '"imports"'} field module resolution of the package at ${pjsonPath}${base ? ` imported from ${(0, _url().fileURLToPath)(base)}` : ''}.\n` + `Update this package.json to use a subpath pattern like "${match}*".`, 'DeprecationWarning', 'DEP0148'); +} +function emitLegacyIndexDeprecation(url, packageJsonUrl, base, main) { + const { + format + } = defaultGetFormat(url.href); + if (format !== 'module') return; + const path = (0, _url().fileURLToPath)(url.href); + const pkgPath = (0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)); + const basePath = (0, _url().fileURLToPath)(base); + if (main) process.emitWarning(`Package ${pkgPath} has a "main" field set to ${JSON.stringify(main)}, ` + `excluding the full filename and extension to the resolved file at "${path.slice(pkgPath.length)}", imported from ${basePath}.\n Automatic extension resolution of the "main" field is` + 'deprecated for ES modules.', 'DeprecationWarning', 'DEP0151');else process.emitWarning(`No "main" or "exports" field defined in the package.json for ${pkgPath} resolving the main entry point "${path.slice(pkgPath.length)}", imported from ${basePath}.\nDefault "index" lookups for the main are deprecated for ES modules.`, 'DeprecationWarning', 'DEP0151'); +} +function getConditionsSet(conditions) { + if (conditions !== undefined && conditions !== DEFAULT_CONDITIONS) { + if (!Array.isArray(conditions)) { + throw new ERR_INVALID_ARG_VALUE('conditions', conditions, 'expected an array'); + } + return new Set(conditions); + } + return DEFAULT_CONDITIONS_SET; +} +function tryStatSync(path) { + try { + return (0, _fs().statSync)(path); + } catch (_unused) { + return new (_fs().Stats)(); + } +} +function getPackageConfig(path, specifier, base) { + const existing = packageJsonCache.get(path); + if (existing !== undefined) { + return existing; + } + const source = reader.read(path).string; + if (source === undefined) { + const packageConfig = { + pjsonPath: path, + exists: false, + main: undefined, + name: undefined, + type: 'none', + exports: undefined, + imports: undefined + }; + packageJsonCache.set(path, packageConfig); + return packageConfig; + } + let packageJson; + try { + packageJson = JSON.parse(source); + } catch (error) { + throw new ERR_INVALID_PACKAGE_CONFIG(path, (base ? `"${specifier}" from ` : '') + (0, _url().fileURLToPath)(base || specifier), error.message); + } + const { + exports, + imports, + main, + name, + type + } = packageJson; + const packageConfig = { + pjsonPath: path, + exists: true, + main: typeof main === 'string' ? main : undefined, + name: typeof name === 'string' ? name : undefined, + type: type === 'module' || type === 'commonjs' ? type : 'none', + exports, + imports: imports && typeof imports === 'object' ? imports : undefined + }; + packageJsonCache.set(path, packageConfig); + return packageConfig; +} +function getPackageScopeConfig(resolved) { + let packageJsonUrl = new (_url().URL)('./package.json', resolved); + while (true) { + const packageJsonPath = packageJsonUrl.pathname; + if (packageJsonPath.endsWith('node_modules/package.json')) break; + const packageConfig = getPackageConfig((0, _url().fileURLToPath)(packageJsonUrl), resolved); + if (packageConfig.exists) return packageConfig; + const lastPackageJsonUrl = packageJsonUrl; + packageJsonUrl = new (_url().URL)('../package.json', packageJsonUrl); + if (packageJsonUrl.pathname === lastPackageJsonUrl.pathname) break; + } + const packageJsonPath = (0, _url().fileURLToPath)(packageJsonUrl); + const packageConfig = { + pjsonPath: packageJsonPath, + exists: false, + main: undefined, + name: undefined, + type: 'none', + exports: undefined, + imports: undefined + }; + packageJsonCache.set(packageJsonPath, packageConfig); + return packageConfig; +} +function fileExists(url) { + return tryStatSync((0, _url().fileURLToPath)(url)).isFile(); +} +function legacyMainResolve(packageJsonUrl, packageConfig, base) { + let guess; + if (packageConfig.main !== undefined) { + guess = new (_url().URL)(`./${packageConfig.main}`, packageJsonUrl); + if (fileExists(guess)) return guess; + const tries = [`./${packageConfig.main}.js`, `./${packageConfig.main}.json`, `./${packageConfig.main}.node`, `./${packageConfig.main}/index.js`, `./${packageConfig.main}/index.json`, `./${packageConfig.main}/index.node`]; + let i = -1; + while (++i < tries.length) { + guess = new (_url().URL)(tries[i], packageJsonUrl); + if (fileExists(guess)) break; + guess = undefined; + } + if (guess) { + emitLegacyIndexDeprecation(guess, packageJsonUrl, base, packageConfig.main); + return guess; + } + } + const tries = ['./index.js', './index.json', './index.node']; + let i = -1; + while (++i < tries.length) { + guess = new (_url().URL)(tries[i], packageJsonUrl); + if (fileExists(guess)) break; + guess = undefined; + } + if (guess) { + emitLegacyIndexDeprecation(guess, packageJsonUrl, base, packageConfig.main); + return guess; + } + throw new ERR_MODULE_NOT_FOUND((0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)), (0, _url().fileURLToPath)(base)); +} +function finalizeResolution(resolved, base) { + if (encodedSepRegEx.test(resolved.pathname)) throw new ERR_INVALID_MODULE_SPECIFIER(resolved.pathname, 'must not include encoded "/" or "\\" characters', (0, _url().fileURLToPath)(base)); + const path = (0, _url().fileURLToPath)(resolved); + const stats = tryStatSync(path.endsWith('/') ? path.slice(-1) : path); + if (stats.isDirectory()) { + const error = new ERR_UNSUPPORTED_DIR_IMPORT(path, (0, _url().fileURLToPath)(base)); + error.url = String(resolved); + throw error; + } + if (!stats.isFile()) { + throw new ERR_MODULE_NOT_FOUND(path || resolved.pathname, base && (0, _url().fileURLToPath)(base), 'module'); + } + return resolved; +} +function throwImportNotDefined(specifier, packageJsonUrl, base) { + throw new ERR_PACKAGE_IMPORT_NOT_DEFINED(specifier, packageJsonUrl && (0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)), (0, _url().fileURLToPath)(base)); +} +function throwExportsNotFound(subpath, packageJsonUrl, base) { + throw new ERR_PACKAGE_PATH_NOT_EXPORTED((0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)), subpath, base && (0, _url().fileURLToPath)(base)); +} +function throwInvalidSubpath(subpath, packageJsonUrl, internal, base) { + const reason = `request is not a valid subpath for the "${internal ? 'imports' : 'exports'}" resolution of ${(0, _url().fileURLToPath)(packageJsonUrl)}`; + throw new ERR_INVALID_MODULE_SPECIFIER(subpath, reason, base && (0, _url().fileURLToPath)(base)); +} +function throwInvalidPackageTarget(subpath, target, packageJsonUrl, internal, base) { + target = typeof target === 'object' && target !== null ? JSON.stringify(target, null, '') : `${target}`; + throw new ERR_INVALID_PACKAGE_TARGET((0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)), subpath, target, internal, base && (0, _url().fileURLToPath)(base)); +} +function resolvePackageTargetString(target, subpath, match, packageJsonUrl, base, pattern, internal, conditions) { + if (subpath !== '' && !pattern && target[target.length - 1] !== '/') throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base); + if (!target.startsWith('./')) { + if (internal && !target.startsWith('../') && !target.startsWith('/')) { + let isURL = false; + try { + new (_url().URL)(target); + isURL = true; + } catch (_unused2) {} + if (!isURL) { + const exportTarget = pattern ? target.replace(patternRegEx, subpath) : target + subpath; + return packageResolve(exportTarget, packageJsonUrl, conditions); + } + } + throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base); + } + if (invalidSegmentRegEx.test(target.slice(2))) throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base); + const resolved = new (_url().URL)(target, packageJsonUrl); + const resolvedPath = resolved.pathname; + const packagePath = new (_url().URL)('.', packageJsonUrl).pathname; + if (!resolvedPath.startsWith(packagePath)) throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base); + if (subpath === '') return resolved; + if (invalidSegmentRegEx.test(subpath)) throwInvalidSubpath(match + subpath, packageJsonUrl, internal, base); + if (pattern) return new (_url().URL)(resolved.href.replace(patternRegEx, subpath)); + return new (_url().URL)(subpath, resolved); +} +function isArrayIndex(key) { + const keyNumber = Number(key); + if (`${keyNumber}` !== key) return false; + return keyNumber >= 0 && keyNumber < 0xffffffff; +} +function resolvePackageTarget(packageJsonUrl, target, subpath, packageSubpath, base, pattern, internal, conditions) { + if (typeof target === 'string') { + return resolvePackageTargetString(target, subpath, packageSubpath, packageJsonUrl, base, pattern, internal, conditions); + } + if (Array.isArray(target)) { + const targetList = target; + if (targetList.length === 0) return null; + let lastException; + let i = -1; + while (++i < targetList.length) { + const targetItem = targetList[i]; + let resolved; + try { + resolved = resolvePackageTarget(packageJsonUrl, targetItem, subpath, packageSubpath, base, pattern, internal, conditions); + } catch (error) { + lastException = error; + if (error.code === 'ERR_INVALID_PACKAGE_TARGET') continue; + throw error; + } + if (resolved === undefined) continue; + if (resolved === null) { + lastException = null; + continue; + } + return resolved; + } + if (lastException === undefined || lastException === null) { + return lastException; + } + throw lastException; + } + if (typeof target === 'object' && target !== null) { + const keys = Object.getOwnPropertyNames(target); + let i = -1; + while (++i < keys.length) { + const key = keys[i]; + if (isArrayIndex(key)) { + throw new ERR_INVALID_PACKAGE_CONFIG((0, _url().fileURLToPath)(packageJsonUrl), base, '"exports" cannot contain numeric property keys.'); + } + } + i = -1; + while (++i < keys.length) { + const key = keys[i]; + if (key === 'default' || conditions && conditions.has(key)) { + const conditionalTarget = target[key]; + const resolved = resolvePackageTarget(packageJsonUrl, conditionalTarget, subpath, packageSubpath, base, pattern, internal, conditions); + if (resolved === undefined) continue; + return resolved; + } + } + return undefined; + } + if (target === null) { + return null; + } + throwInvalidPackageTarget(packageSubpath, target, packageJsonUrl, internal, base); +} +function isConditionalExportsMainSugar(exports, packageJsonUrl, base) { + if (typeof exports === 'string' || Array.isArray(exports)) return true; + if (typeof exports !== 'object' || exports === null) return false; + const keys = Object.getOwnPropertyNames(exports); + let isConditionalSugar = false; + let i = 0; + let j = -1; + while (++j < keys.length) { + const key = keys[j]; + const curIsConditionalSugar = key === '' || key[0] !== '.'; + if (i++ === 0) { + isConditionalSugar = curIsConditionalSugar; + } else if (isConditionalSugar !== curIsConditionalSugar) { + throw new ERR_INVALID_PACKAGE_CONFIG((0, _url().fileURLToPath)(packageJsonUrl), base, '"exports" cannot contain some keys starting with \'.\' and some not.' + ' The exports object must either be an object of package subpath keys' + ' or an object of main entry condition name keys only.'); + } + } + return isConditionalSugar; +} +function packageExportsResolve(packageJsonUrl, packageSubpath, packageConfig, base, conditions) { + let exports = packageConfig.exports; + if (isConditionalExportsMainSugar(exports, packageJsonUrl, base)) exports = { + '.': exports + }; + if (own.call(exports, packageSubpath)) { + const target = exports[packageSubpath]; + const resolved = resolvePackageTarget(packageJsonUrl, target, '', packageSubpath, base, false, false, conditions); + if (resolved === null || resolved === undefined) throwExportsNotFound(packageSubpath, packageJsonUrl, base); + return { + resolved, + exact: true + }; + } + let bestMatch = ''; + const keys = Object.getOwnPropertyNames(exports); + let i = -1; + while (++i < keys.length) { + const key = keys[i]; + if (key[key.length - 1] === '*' && packageSubpath.startsWith(key.slice(0, -1)) && packageSubpath.length >= key.length && key.length > bestMatch.length) { + bestMatch = key; + } else if (key[key.length - 1] === '/' && packageSubpath.startsWith(key) && key.length > bestMatch.length) { + bestMatch = key; + } + } + if (bestMatch) { + const target = exports[bestMatch]; + const pattern = bestMatch[bestMatch.length - 1] === '*'; + const subpath = packageSubpath.slice(bestMatch.length - (pattern ? 1 : 0)); + const resolved = resolvePackageTarget(packageJsonUrl, target, subpath, bestMatch, base, pattern, false, conditions); + if (resolved === null || resolved === undefined) throwExportsNotFound(packageSubpath, packageJsonUrl, base); + if (!pattern) emitFolderMapDeprecation(bestMatch, packageJsonUrl, true, base); + return { + resolved, + exact: pattern + }; + } + throwExportsNotFound(packageSubpath, packageJsonUrl, base); +} +function packageImportsResolve(name, base, conditions) { + if (name === '#' || name.startsWith('#/')) { + const reason = 'is not a valid internal imports specifier name'; + throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, (0, _url().fileURLToPath)(base)); + } + let packageJsonUrl; + const packageConfig = getPackageScopeConfig(base); + if (packageConfig.exists) { + packageJsonUrl = (0, _url().pathToFileURL)(packageConfig.pjsonPath); + const imports = packageConfig.imports; + if (imports) { + if (own.call(imports, name)) { + const resolved = resolvePackageTarget(packageJsonUrl, imports[name], '', name, base, false, true, conditions); + if (resolved !== null) return { + resolved, + exact: true + }; + } else { + let bestMatch = ''; + const keys = Object.getOwnPropertyNames(imports); + let i = -1; + while (++i < keys.length) { + const key = keys[i]; + if (key[key.length - 1] === '*' && name.startsWith(key.slice(0, -1)) && name.length >= key.length && key.length > bestMatch.length) { + bestMatch = key; + } else if (key[key.length - 1] === '/' && name.startsWith(key) && key.length > bestMatch.length) { + bestMatch = key; + } + } + if (bestMatch) { + const target = imports[bestMatch]; + const pattern = bestMatch[bestMatch.length - 1] === '*'; + const subpath = name.slice(bestMatch.length - (pattern ? 1 : 0)); + const resolved = resolvePackageTarget(packageJsonUrl, target, subpath, bestMatch, base, pattern, true, conditions); + if (resolved !== null) { + if (!pattern) emitFolderMapDeprecation(bestMatch, packageJsonUrl, false, base); + return { + resolved, + exact: pattern + }; + } + } + } + } + } + throwImportNotDefined(name, packageJsonUrl, base); +} +function getPackageType(url) { + const packageConfig = getPackageScopeConfig(url); + return packageConfig.type; +} +function parsePackageName(specifier, base) { + let separatorIndex = specifier.indexOf('/'); + let validPackageName = true; + let isScoped = false; + if (specifier[0] === '@') { + isScoped = true; + if (separatorIndex === -1 || specifier.length === 0) { + validPackageName = false; + } else { + separatorIndex = specifier.indexOf('/', separatorIndex + 1); + } + } + const packageName = separatorIndex === -1 ? specifier : specifier.slice(0, separatorIndex); + let i = -1; + while (++i < packageName.length) { + if (packageName[i] === '%' || packageName[i] === '\\') { + validPackageName = false; + break; + } + } + if (!validPackageName) { + throw new ERR_INVALID_MODULE_SPECIFIER(specifier, 'is not a valid package name', (0, _url().fileURLToPath)(base)); + } + const packageSubpath = '.' + (separatorIndex === -1 ? '' : specifier.slice(separatorIndex)); + return { + packageName, + packageSubpath, + isScoped + }; +} +function packageResolve(specifier, base, conditions) { + const { + packageName, + packageSubpath, + isScoped + } = parsePackageName(specifier, base); + const packageConfig = getPackageScopeConfig(base); + if (packageConfig.exists) { + const packageJsonUrl = (0, _url().pathToFileURL)(packageConfig.pjsonPath); + if (packageConfig.name === packageName && packageConfig.exports !== undefined && packageConfig.exports !== null) { + return packageExportsResolve(packageJsonUrl, packageSubpath, packageConfig, base, conditions).resolved; + } + } + let packageJsonUrl = new (_url().URL)('./node_modules/' + packageName + '/package.json', base); + let packageJsonPath = (0, _url().fileURLToPath)(packageJsonUrl); + let lastPath; + do { + const stat = tryStatSync(packageJsonPath.slice(0, -13)); + if (!stat.isDirectory()) { + lastPath = packageJsonPath; + packageJsonUrl = new (_url().URL)((isScoped ? '../../../../node_modules/' : '../../../node_modules/') + packageName + '/package.json', packageJsonUrl); + packageJsonPath = (0, _url().fileURLToPath)(packageJsonUrl); + continue; + } + const packageConfig = getPackageConfig(packageJsonPath, specifier, base); + if (packageConfig.exports !== undefined && packageConfig.exports !== null) return packageExportsResolve(packageJsonUrl, packageSubpath, packageConfig, base, conditions).resolved; + if (packageSubpath === '.') return legacyMainResolve(packageJsonUrl, packageConfig, base); + return new (_url().URL)(packageSubpath, packageJsonUrl); + } while (packageJsonPath.length !== lastPath.length); + throw new ERR_MODULE_NOT_FOUND(packageName, (0, _url().fileURLToPath)(base)); +} +function isRelativeSpecifier(specifier) { + if (specifier[0] === '.') { + if (specifier.length === 1 || specifier[1] === '/') return true; + if (specifier[1] === '.' && (specifier.length === 2 || specifier[2] === '/')) { + return true; + } + } + return false; +} +function shouldBeTreatedAsRelativeOrAbsolutePath(specifier) { + if (specifier === '') return false; + if (specifier[0] === '/') return true; + return isRelativeSpecifier(specifier); +} +function moduleResolve(specifier, base, conditions) { + let resolved; + if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) { + resolved = new (_url().URL)(specifier, base); + } else if (specifier[0] === '#') { + ({ + resolved + } = packageImportsResolve(specifier, base, conditions)); + } else { + try { + resolved = new (_url().URL)(specifier); + } catch (_unused3) { + resolved = packageResolve(specifier, base, conditions); + } + } + return finalizeResolution(resolved, base); +} +function defaultResolve(specifier, context = {}) { + const { + parentURL + } = context; + let parsed; + try { + parsed = new (_url().URL)(specifier); + if (parsed.protocol === 'data:') { + return { + url: specifier + }; + } + } catch (_unused4) {} + if (parsed && parsed.protocol === 'node:') return { + url: specifier + }; + if (parsed && parsed.protocol !== 'file:' && parsed.protocol !== 'data:') throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed); + if (listOfBuiltins.includes(specifier)) { + return { + url: 'node:' + specifier + }; + } + if (parentURL.startsWith('data:')) { + new (_url().URL)(specifier, parentURL); + } + const conditions = getConditionsSet(context.conditions); + let url = moduleResolve(specifier, new (_url().URL)(parentURL), conditions); + const urlPath = (0, _url().fileURLToPath)(url); + const real = (0, _fs().realpathSync)(urlPath); + const old = url; + url = (0, _url().pathToFileURL)(real + (urlPath.endsWith(_path().sep) ? '/' : '')); + url.search = old.search; + url.hash = old.hash; + return { + url: `${url}` + }; +} +function resolve(_x, _x2) { + return _resolve.apply(this, arguments); +} +function _resolve() { + _resolve = _asyncToGenerator(function* (specifier, parent) { + if (!parent) { + throw new Error('Please pass `parent`: `import-meta-resolve` cannot ponyfill that'); + } + try { + return defaultResolve(specifier, { + parentURL: parent + }).url; + } catch (error) { + return error.code === 'ERR_UNSUPPORTED_DIR_IMPORT' ? error.url : Promise.reject(error); + } + }); + return _resolve.apply(this, arguments); +} +0 && 0; + +//# sourceMappingURL=import-meta-resolve.js.map + + +/***/ }), + +/***/ 2998: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +class Buffer { + constructor(map) { + this._map = null; + this._buf = ""; + this._str = ""; + this._appendCount = 0; + this._last = 0; + this._queue = []; + this._queueCursor = 0; + this._position = { + line: 1, + column: 0 + }; + this._sourcePosition = { + identifierName: undefined, + line: undefined, + column: undefined, + filename: undefined + }; + this._map = map; + this._allocQueue(); + } + _allocQueue() { + const queue = this._queue; + for (let i = 0; i < 16; i++) { + queue.push({ + char: 0, + repeat: 1, + line: undefined, + column: undefined, + identifierName: undefined, + filename: "" + }); + } + } + _pushQueue(char, repeat, line, column, identifierName, filename) { + const cursor = this._queueCursor; + if (cursor === this._queue.length) { + this._allocQueue(); + } + const item = this._queue[cursor]; + item.char = char; + item.repeat = repeat; + item.line = line; + item.column = column; + item.identifierName = identifierName; + item.filename = filename; + this._queueCursor++; + } + _popQueue() { + if (this._queueCursor === 0) { + throw new Error("Cannot pop from empty queue"); + } + return this._queue[--this._queueCursor]; + } + + get() { + this._flush(); + const map = this._map; + const result = { + code: (this._buf + this._str).trimRight(), + decodedMap: map == null ? void 0 : map.getDecoded(), + get map() { + const resultMap = map ? map.get() : null; + result.map = resultMap; + return resultMap; + }, + set map(value) { + Object.defineProperty(result, "map", { + value, + writable: true + }); + }, + get rawMappings() { + const mappings = map == null ? void 0 : map.getRawMappings(); + result.rawMappings = mappings; + return mappings; + }, + set rawMappings(value) { + Object.defineProperty(result, "rawMappings", { + value, + writable: true + }); + } + }; + return result; + } + + append(str, maybeNewline) { + this._flush(); + this._append(str, this._sourcePosition, maybeNewline); + } + appendChar(char) { + this._flush(); + this._appendChar(char, 1, this._sourcePosition); + } + + queue(char) { + if (char === 10) { + while (this._queueCursor !== 0) { + const char = this._queue[this._queueCursor - 1].char; + if (char !== 32 && char !== 9) { + break; + } + this._queueCursor--; + } + } + const sourcePosition = this._sourcePosition; + this._pushQueue(char, 1, sourcePosition.line, sourcePosition.column, sourcePosition.identifierName, sourcePosition.filename); + } + + queueIndentation(char, repeat) { + this._pushQueue(char, repeat, undefined, undefined, undefined, undefined); + } + _flush() { + const queueCursor = this._queueCursor; + const queue = this._queue; + for (let i = 0; i < queueCursor; i++) { + const item = queue[i]; + this._appendChar(item.char, item.repeat, item); + } + this._queueCursor = 0; + } + _appendChar(char, repeat, sourcePos) { + this._last = char; + this._str += repeat > 1 ? String.fromCharCode(char).repeat(repeat) : String.fromCharCode(char); + if (char !== 10) { + this._mark(sourcePos.line, sourcePos.column, sourcePos.identifierName, sourcePos.filename); + this._position.column += repeat; + } else { + this._position.line++; + this._position.column = 0; + } + } + _append(str, sourcePos, maybeNewline) { + const len = str.length; + const position = this._position; + this._last = str.charCodeAt(len - 1); + if (++this._appendCount > 4096) { + +this._str; + this._buf += this._str; + this._str = str; + this._appendCount = 0; + } else { + this._str += str; + } + if (!maybeNewline && !this._map) { + position.column += len; + return; + } + const { + column, + identifierName, + filename + } = sourcePos; + let line = sourcePos.line; + + let i = str.indexOf("\n"); + let last = 0; + + if (i !== 0) { + this._mark(line, column, identifierName, filename); + } + + while (i !== -1) { + position.line++; + position.column = 0; + last = i + 1; + + if (last < len) { + this._mark(++line, 0, identifierName, filename); + } + i = str.indexOf("\n", last); + } + position.column += len - last; + } + _mark(line, column, identifierName, filename) { + var _this$_map; + (_this$_map = this._map) == null ? void 0 : _this$_map.mark(this._position, line, column, identifierName, filename); + } + removeTrailingNewline() { + const queueCursor = this._queueCursor; + if (queueCursor !== 0 && this._queue[queueCursor - 1].char === 10) { + this._queueCursor--; + } + } + removeLastSemicolon() { + const queueCursor = this._queueCursor; + if (queueCursor !== 0 && this._queue[queueCursor - 1].char === 59) { + this._queueCursor--; + } + } + getLastChar() { + const queueCursor = this._queueCursor; + return queueCursor !== 0 ? this._queue[queueCursor - 1].char : this._last; + } + + getNewlineCount() { + const queueCursor = this._queueCursor; + let count = 0; + if (queueCursor === 0) return this._last === 10 ? 1 : 0; + for (let i = queueCursor - 1; i >= 0; i--) { + if (this._queue[i].char !== 10) { + break; + } + count++; + } + return count === queueCursor && this._last === 10 ? count + 1 : count; + } + + endsWithCharAndNewline() { + const queue = this._queue; + const queueCursor = this._queueCursor; + if (queueCursor !== 0) { + const lastCp = queue[queueCursor - 1].char; + if (lastCp !== 10) return; + if (queueCursor > 1) { + return queue[queueCursor - 2].char; + } else { + return this._last; + } + } + } + + hasContent() { + return this._queueCursor !== 0 || !!this._last; + } + + exactSource(loc, cb) { + if (!this._map) return cb(); + this.source("start", loc); + cb(); + this.source("end", loc); + } + + source(prop, loc) { + if (!this._map) return; + + this._normalizePosition(prop, loc, 0, 0); + } + sourceWithOffset(prop, loc, lineOffset, columnOffset) { + if (!this._map) return; + this._normalizePosition(prop, loc, lineOffset, columnOffset); + } + + withSource(prop, loc, cb) { + if (!this._map) return cb(); + this.source(prop, loc); + cb(); + } + _normalizePosition(prop, loc, lineOffset, columnOffset) { + const pos = loc[prop]; + const target = this._sourcePosition; + target.identifierName = prop === "start" && loc.identifierName || undefined; + if (pos) { + target.line = pos.line + lineOffset; + target.column = pos.column + columnOffset; + target.filename = loc.filename; + } + } + getCurrentColumn() { + const queue = this._queue; + const queueCursor = this._queueCursor; + let lastIndex = -1; + let len = 0; + for (let i = 0; i < queueCursor; i++) { + const item = queue[i]; + if (item.char === 10) { + lastIndex = len; + } + len += item.repeat; + } + return lastIndex === -1 ? this._position.column + len : len - 1 - lastIndex; + } + getCurrentLine() { + let count = 0; + const queue = this._queue; + for (let i = 0; i < this._queueCursor; i++) { + if (queue[i].char === 10) { + count++; + } + } + return this._position.line + count; + } +} +exports["default"] = Buffer; + +//# sourceMappingURL=buffer.js.map + + +/***/ }), + +/***/ 1794: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.BlockStatement = BlockStatement; +exports.Directive = Directive; +exports.DirectiveLiteral = DirectiveLiteral; +exports.File = File; +exports.InterpreterDirective = InterpreterDirective; +exports.Placeholder = Placeholder; +exports.Program = Program; +function File(node) { + if (node.program) { + this.print(node.program.interpreter, node); + } + this.print(node.program, node); +} +function Program(node) { + var _node$directives; + this.noIndentInnerCommentsHere(); + this.printInnerComments(); + const directivesLen = (_node$directives = node.directives) == null ? void 0 : _node$directives.length; + if (directivesLen) { + var _node$directives$trai; + const newline = node.body.length ? 2 : 1; + this.printSequence(node.directives, node, { + trailingCommentsLineOffset: newline + }); + if (!((_node$directives$trai = node.directives[directivesLen - 1].trailingComments) != null && _node$directives$trai.length)) { + this.newline(newline); + } + } + this.printSequence(node.body, node); +} +function BlockStatement(node) { + var _node$directives2; + this.tokenChar(123); + const directivesLen = (_node$directives2 = node.directives) == null ? void 0 : _node$directives2.length; + if (directivesLen) { + var _node$directives$trai2; + const newline = node.body.length ? 2 : 1; + this.printSequence(node.directives, node, { + indent: true, + trailingCommentsLineOffset: newline + }); + if (!((_node$directives$trai2 = node.directives[directivesLen - 1].trailingComments) != null && _node$directives$trai2.length)) { + this.newline(newline); + } + } + this.printSequence(node.body, node, { + indent: true + }); + this.sourceWithOffset("end", node.loc, 0, -1); + this.rightBrace(); +} +function Directive(node) { + this.print(node.value, node); + this.semicolon(); +} + +const unescapedSingleQuoteRE = /(?:^|[^\\])(?:\\\\)*'/; +const unescapedDoubleQuoteRE = /(?:^|[^\\])(?:\\\\)*"/; +function DirectiveLiteral(node) { + const raw = this.getPossibleRaw(node); + if (!this.format.minified && raw !== undefined) { + this.token(raw); + return; + } + const { + value + } = node; + + if (!unescapedDoubleQuoteRE.test(value)) { + this.token(`"${value}"`); + } else if (!unescapedSingleQuoteRE.test(value)) { + this.token(`'${value}'`); + } else { + throw new Error("Malformed AST: it is not possible to print a directive containing" + " both unescaped single and double quotes."); + } +} +function InterpreterDirective(node) { + this.token(`#!${node.value}`); + this.newline(1, true); +} +function Placeholder(node) { + this.token("%%"); + this.print(node.name); + this.token("%%"); + if (node.expectedNode === "Statement") { + this.semicolon(); + } +} + +//# sourceMappingURL=base.js.map + + +/***/ }), + +/***/ 8838: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.ClassAccessorProperty = ClassAccessorProperty; +exports.ClassBody = ClassBody; +exports.ClassExpression = exports.ClassDeclaration = ClassDeclaration; +exports.ClassMethod = ClassMethod; +exports.ClassPrivateMethod = ClassPrivateMethod; +exports.ClassPrivateProperty = ClassPrivateProperty; +exports.ClassProperty = ClassProperty; +exports.StaticBlock = StaticBlock; +exports._classMethodHead = _classMethodHead; +var _t = __webpack_require__(2139); +const { + isExportDefaultDeclaration, + isExportNamedDeclaration +} = _t; +function ClassDeclaration(node, parent) { + { + if (!this.format.decoratorsBeforeExport || !isExportDefaultDeclaration(parent) && !isExportNamedDeclaration(parent)) { + this.printJoin(node.decorators, node); + } + } + if (node.declare) { + this.word("declare"); + this.space(); + } + if (node.abstract) { + this.word("abstract"); + this.space(); + } + this.word("class"); + if (node.id) { + this.space(); + this.print(node.id, node); + } + this.print(node.typeParameters, node); + if (node.superClass) { + this.space(); + this.word("extends"); + this.space(); + this.print(node.superClass, node); + this.print(node.superTypeParameters, node); + } + if (node.implements) { + this.space(); + this.word("implements"); + this.space(); + this.printList(node.implements, node); + } + this.space(); + this.print(node.body, node); +} +function ClassBody(node) { + this.tokenChar(123); + if (node.body.length === 0) { + this.tokenChar(125); + } else { + this.newline(); + this.indent(); + this.printSequence(node.body, node); + this.dedent(); + if (!this.endsWith(10)) this.newline(); + this.sourceWithOffset("end", node.loc, 0, -1); + this.rightBrace(); + } +} +function ClassProperty(node) { + var _node$key$loc, _node$key$loc$end; + this.printJoin(node.decorators, node); + + const endLine = (_node$key$loc = node.key.loc) == null ? void 0 : (_node$key$loc$end = _node$key$loc.end) == null ? void 0 : _node$key$loc$end.line; + if (endLine) this.catchUp(endLine); + this.tsPrintClassMemberModifiers(node); + if (node.computed) { + this.tokenChar(91); + this.print(node.key, node); + this.tokenChar(93); + } else { + this._variance(node); + this.print(node.key, node); + } + + if (node.optional) { + this.tokenChar(63); + } + if (node.definite) { + this.tokenChar(33); + } + this.print(node.typeAnnotation, node); + if (node.value) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.value, node); + } + this.semicolon(); +} +function ClassAccessorProperty(node) { + var _node$key$loc2, _node$key$loc2$end; + this.printJoin(node.decorators, node); + + const endLine = (_node$key$loc2 = node.key.loc) == null ? void 0 : (_node$key$loc2$end = _node$key$loc2.end) == null ? void 0 : _node$key$loc2$end.line; + if (endLine) this.catchUp(endLine); + + this.tsPrintClassMemberModifiers(node); + this.word("accessor", true); + this.space(); + if (node.computed) { + this.tokenChar(91); + this.print(node.key, node); + this.tokenChar(93); + } else { + this._variance(node); + this.print(node.key, node); + } + + if (node.optional) { + this.tokenChar(63); + } + if (node.definite) { + this.tokenChar(33); + } + this.print(node.typeAnnotation, node); + if (node.value) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.value, node); + } + this.semicolon(); +} +function ClassPrivateProperty(node) { + this.printJoin(node.decorators, node); + if (node.static) { + this.word("static"); + this.space(); + } + this.print(node.key, node); + this.print(node.typeAnnotation, node); + if (node.value) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.value, node); + } + this.semicolon(); +} +function ClassMethod(node) { + this._classMethodHead(node); + this.space(); + this.print(node.body, node); +} +function ClassPrivateMethod(node) { + this._classMethodHead(node); + this.space(); + this.print(node.body, node); +} +function _classMethodHead(node) { + var _node$key$loc3, _node$key$loc3$end; + this.printJoin(node.decorators, node); + + const endLine = (_node$key$loc3 = node.key.loc) == null ? void 0 : (_node$key$loc3$end = _node$key$loc3.end) == null ? void 0 : _node$key$loc3$end.line; + if (endLine) this.catchUp(endLine); + this.tsPrintClassMemberModifiers(node); + this._methodHead(node); +} +function StaticBlock(node) { + this.word("static"); + this.space(); + this.tokenChar(123); + if (node.body.length === 0) { + this.tokenChar(125); + } else { + this.newline(); + this.printSequence(node.body, node, { + indent: true + }); + this.sourceWithOffset("end", node.loc, 0, -1); + this.rightBrace(); + } +} + +//# sourceMappingURL=classes.js.map + + +/***/ }), + +/***/ 3791: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.LogicalExpression = exports.BinaryExpression = exports.AssignmentExpression = AssignmentExpression; +exports.AssignmentPattern = AssignmentPattern; +exports.AwaitExpression = AwaitExpression; +exports.BindExpression = BindExpression; +exports.CallExpression = CallExpression; +exports.ConditionalExpression = ConditionalExpression; +exports.Decorator = Decorator; +exports.DoExpression = DoExpression; +exports.EmptyStatement = EmptyStatement; +exports.ExpressionStatement = ExpressionStatement; +exports.Import = Import; +exports.MemberExpression = MemberExpression; +exports.MetaProperty = MetaProperty; +exports.ModuleExpression = ModuleExpression; +exports.NewExpression = NewExpression; +exports.OptionalCallExpression = OptionalCallExpression; +exports.OptionalMemberExpression = OptionalMemberExpression; +exports.ParenthesizedExpression = ParenthesizedExpression; +exports.PrivateName = PrivateName; +exports.SequenceExpression = SequenceExpression; +exports.Super = Super; +exports.ThisExpression = ThisExpression; +exports.UnaryExpression = UnaryExpression; +exports.UpdateExpression = UpdateExpression; +exports.V8IntrinsicIdentifier = V8IntrinsicIdentifier; +exports.YieldExpression = YieldExpression; +var _t = __webpack_require__(2139); +var n = __webpack_require__(6971); +const { + isCallExpression, + isLiteral, + isMemberExpression, + isNewExpression +} = _t; +function UnaryExpression(node) { + if (node.operator === "void" || node.operator === "delete" || node.operator === "typeof" || + node.operator === "throw") { + this.word(node.operator); + this.space(); + } else { + this.token(node.operator); + } + this.print(node.argument, node); +} +function DoExpression(node) { + if (node.async) { + this.word("async", true); + this.space(); + } + this.word("do"); + this.space(); + this.print(node.body, node); +} +function ParenthesizedExpression(node) { + this.tokenChar(40); + this.print(node.expression, node); + this.tokenChar(41); +} +function UpdateExpression(node) { + if (node.prefix) { + this.token(node.operator); + this.print(node.argument, node); + } else { + this.printTerminatorless(node.argument, node, true); + this.token(node.operator); + } +} +function ConditionalExpression(node) { + this.print(node.test, node); + this.space(); + this.tokenChar(63); + this.space(); + this.print(node.consequent, node); + this.space(); + this.tokenChar(58); + this.space(); + this.print(node.alternate, node); +} +function NewExpression(node, parent) { + this.word("new"); + this.space(); + this.print(node.callee, node); + if (this.format.minified && node.arguments.length === 0 && !node.optional && !isCallExpression(parent, { + callee: node + }) && !isMemberExpression(parent) && !isNewExpression(parent)) { + return; + } + this.print(node.typeArguments, node); + this.print(node.typeParameters, node); + + if (node.optional) { + this.token("?."); + } + this.tokenChar(40); + this.printList(node.arguments, node); + this.tokenChar(41); +} +function SequenceExpression(node) { + this.printList(node.expressions, node); +} +function ThisExpression() { + this.word("this"); +} +function Super() { + this.word("super"); +} +function isDecoratorMemberExpression(node) { + switch (node.type) { + case "Identifier": + return true; + case "MemberExpression": + return !node.computed && node.property.type === "Identifier" && isDecoratorMemberExpression(node.object); + default: + return false; + } +} +function shouldParenthesizeDecoratorExpression(node) { + if (node.type === "ParenthesizedExpression") { + return false; + } + return !isDecoratorMemberExpression(node.type === "CallExpression" ? node.callee : node); +} +function Decorator(node) { + this.tokenChar(64); + const { + expression + } = node; + if (shouldParenthesizeDecoratorExpression(expression)) { + this.tokenChar(40); + this.print(expression, node); + this.tokenChar(41); + } else { + this.print(expression, node); + } + this.newline(); +} +function OptionalMemberExpression(node) { + this.print(node.object, node); + if (!node.computed && isMemberExpression(node.property)) { + throw new TypeError("Got a MemberExpression for MemberExpression property"); + } + let computed = node.computed; + if (isLiteral(node.property) && typeof node.property.value === "number") { + computed = true; + } + if (node.optional) { + this.token("?."); + } + if (computed) { + this.tokenChar(91); + this.print(node.property, node); + this.tokenChar(93); + } else { + if (!node.optional) { + this.tokenChar(46); + } + this.print(node.property, node); + } +} +function OptionalCallExpression(node) { + this.print(node.callee, node); + this.print(node.typeParameters, node); + + if (node.optional) { + this.token("?."); + } + this.print(node.typeArguments, node); + + this.tokenChar(40); + this.printList(node.arguments, node); + this.tokenChar(41); +} +function CallExpression(node) { + this.print(node.callee, node); + this.print(node.typeArguments, node); + this.print(node.typeParameters, node); + this.tokenChar(40); + this.printList(node.arguments, node); + this.tokenChar(41); +} +function Import() { + this.word("import"); +} +function AwaitExpression(node) { + this.word("await"); + if (node.argument) { + this.space(); + this.printTerminatorless(node.argument, node, false); + } +} +function YieldExpression(node) { + this.word("yield", true); + if (node.delegate) { + this.tokenChar(42); + if (node.argument) { + this.space(); + this.print(node.argument, node); + } + } else { + if (node.argument) { + this.space(); + this.printTerminatorless(node.argument, node, false); + } + } +} +function EmptyStatement() { + this.semicolon(true); +} + +function ExpressionStatement(node) { + this.print(node.expression, node); + this.semicolon(); +} +function AssignmentPattern(node) { + this.print(node.left, node); + if (node.left.optional) this.tokenChar(63); + this.print(node.left.typeAnnotation, node); + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.right, node); +} +function AssignmentExpression(node, parent) { + const parens = this.inForStatementInitCounter && node.operator === "in" && !n.needsParens(node, parent); + if (parens) { + this.tokenChar(40); + } + this.print(node.left, node); + this.space(); + if (node.operator === "in" || node.operator === "instanceof") { + this.word(node.operator); + } else { + this.token(node.operator); + } + this.space(); + this.print(node.right, node); + if (parens) { + this.tokenChar(41); + } +} +function BindExpression(node) { + this.print(node.object, node); + this.token("::"); + this.print(node.callee, node); +} +function MemberExpression(node) { + this.print(node.object, node); + if (!node.computed && isMemberExpression(node.property)) { + throw new TypeError("Got a MemberExpression for MemberExpression property"); + } + let computed = node.computed; + if (isLiteral(node.property) && typeof node.property.value === "number") { + computed = true; + } + if (computed) { + this.tokenChar(91); + this.print(node.property, node); + this.tokenChar(93); + } else { + this.tokenChar(46); + this.print(node.property, node); + } +} +function MetaProperty(node) { + this.print(node.meta, node); + this.tokenChar(46); + this.print(node.property, node); +} +function PrivateName(node) { + this.tokenChar(35); + this.print(node.id, node); +} +function V8IntrinsicIdentifier(node) { + this.tokenChar(37); + this.word(node.name); +} +function ModuleExpression(node) { + this.word("module", true); + this.space(); + this.tokenChar(123); + this.indent(); + const { + body + } = node; + if (body.body.length || body.directives.length) { + this.newline(); + } + this.print(body, node); + this.dedent(); + this.sourceWithOffset("end", node.loc, 0, -1); + this.rightBrace(); +} + +//# sourceMappingURL=expressions.js.map + + +/***/ }), + +/***/ 7083: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.AnyTypeAnnotation = AnyTypeAnnotation; +exports.ArrayTypeAnnotation = ArrayTypeAnnotation; +exports.BooleanLiteralTypeAnnotation = BooleanLiteralTypeAnnotation; +exports.BooleanTypeAnnotation = BooleanTypeAnnotation; +exports.DeclareClass = DeclareClass; +exports.DeclareExportAllDeclaration = DeclareExportAllDeclaration; +exports.DeclareExportDeclaration = DeclareExportDeclaration; +exports.DeclareFunction = DeclareFunction; +exports.DeclareInterface = DeclareInterface; +exports.DeclareModule = DeclareModule; +exports.DeclareModuleExports = DeclareModuleExports; +exports.DeclareOpaqueType = DeclareOpaqueType; +exports.DeclareTypeAlias = DeclareTypeAlias; +exports.DeclareVariable = DeclareVariable; +exports.DeclaredPredicate = DeclaredPredicate; +exports.EmptyTypeAnnotation = EmptyTypeAnnotation; +exports.EnumBooleanBody = EnumBooleanBody; +exports.EnumBooleanMember = EnumBooleanMember; +exports.EnumDeclaration = EnumDeclaration; +exports.EnumDefaultedMember = EnumDefaultedMember; +exports.EnumNumberBody = EnumNumberBody; +exports.EnumNumberMember = EnumNumberMember; +exports.EnumStringBody = EnumStringBody; +exports.EnumStringMember = EnumStringMember; +exports.EnumSymbolBody = EnumSymbolBody; +exports.ExistsTypeAnnotation = ExistsTypeAnnotation; +exports.FunctionTypeAnnotation = FunctionTypeAnnotation; +exports.FunctionTypeParam = FunctionTypeParam; +exports.IndexedAccessType = IndexedAccessType; +exports.InferredPredicate = InferredPredicate; +exports.InterfaceDeclaration = InterfaceDeclaration; +exports.GenericTypeAnnotation = exports.ClassImplements = exports.InterfaceExtends = InterfaceExtends; +exports.InterfaceTypeAnnotation = InterfaceTypeAnnotation; +exports.IntersectionTypeAnnotation = IntersectionTypeAnnotation; +exports.MixedTypeAnnotation = MixedTypeAnnotation; +exports.NullLiteralTypeAnnotation = NullLiteralTypeAnnotation; +exports.NullableTypeAnnotation = NullableTypeAnnotation; +Object.defineProperty(exports, "NumberLiteralTypeAnnotation", ({ + enumerable: true, + get: function () { + return _types2.NumericLiteral; + } +})); +exports.NumberTypeAnnotation = NumberTypeAnnotation; +exports.ObjectTypeAnnotation = ObjectTypeAnnotation; +exports.ObjectTypeCallProperty = ObjectTypeCallProperty; +exports.ObjectTypeIndexer = ObjectTypeIndexer; +exports.ObjectTypeInternalSlot = ObjectTypeInternalSlot; +exports.ObjectTypeProperty = ObjectTypeProperty; +exports.ObjectTypeSpreadProperty = ObjectTypeSpreadProperty; +exports.OpaqueType = OpaqueType; +exports.OptionalIndexedAccessType = OptionalIndexedAccessType; +exports.QualifiedTypeIdentifier = QualifiedTypeIdentifier; +Object.defineProperty(exports, "StringLiteralTypeAnnotation", ({ + enumerable: true, + get: function () { + return _types2.StringLiteral; + } +})); +exports.StringTypeAnnotation = StringTypeAnnotation; +exports.SymbolTypeAnnotation = SymbolTypeAnnotation; +exports.ThisTypeAnnotation = ThisTypeAnnotation; +exports.TupleTypeAnnotation = TupleTypeAnnotation; +exports.TypeAlias = TypeAlias; +exports.TypeAnnotation = TypeAnnotation; +exports.TypeCastExpression = TypeCastExpression; +exports.TypeParameter = TypeParameter; +exports.TypeParameterDeclaration = exports.TypeParameterInstantiation = TypeParameterInstantiation; +exports.TypeofTypeAnnotation = TypeofTypeAnnotation; +exports.UnionTypeAnnotation = UnionTypeAnnotation; +exports.Variance = Variance; +exports.VoidTypeAnnotation = VoidTypeAnnotation; +exports._interfaceish = _interfaceish; +exports._variance = _variance; +var _t = __webpack_require__(2139); +var _modules = __webpack_require__(7608); +var _types2 = __webpack_require__(3278); +const { + isDeclareExportDeclaration, + isStatement +} = _t; +function AnyTypeAnnotation() { + this.word("any"); +} +function ArrayTypeAnnotation(node) { + this.print(node.elementType, node, true); + this.tokenChar(91); + this.tokenChar(93); +} +function BooleanTypeAnnotation() { + this.word("boolean"); +} +function BooleanLiteralTypeAnnotation(node) { + this.word(node.value ? "true" : "false"); +} +function NullLiteralTypeAnnotation() { + this.word("null"); +} +function DeclareClass(node, parent) { + if (!isDeclareExportDeclaration(parent)) { + this.word("declare"); + this.space(); + } + this.word("class"); + this.space(); + this._interfaceish(node); +} +function DeclareFunction(node, parent) { + if (!isDeclareExportDeclaration(parent)) { + this.word("declare"); + this.space(); + } + this.word("function"); + this.space(); + this.print(node.id, node); + this.print(node.id.typeAnnotation.typeAnnotation, node); + if (node.predicate) { + this.space(); + this.print(node.predicate, node); + } + this.semicolon(); +} +function InferredPredicate() { + this.tokenChar(37); + this.word("checks"); +} +function DeclaredPredicate(node) { + this.tokenChar(37); + this.word("checks"); + this.tokenChar(40); + this.print(node.value, node); + this.tokenChar(41); +} +function DeclareInterface(node) { + this.word("declare"); + this.space(); + this.InterfaceDeclaration(node); +} +function DeclareModule(node) { + this.word("declare"); + this.space(); + this.word("module"); + this.space(); + this.print(node.id, node); + this.space(); + this.print(node.body, node); +} +function DeclareModuleExports(node) { + this.word("declare"); + this.space(); + this.word("module"); + this.tokenChar(46); + this.word("exports"); + this.print(node.typeAnnotation, node); +} +function DeclareTypeAlias(node) { + this.word("declare"); + this.space(); + this.TypeAlias(node); +} +function DeclareOpaqueType(node, parent) { + if (!isDeclareExportDeclaration(parent)) { + this.word("declare"); + this.space(); + } + this.OpaqueType(node); +} +function DeclareVariable(node, parent) { + if (!isDeclareExportDeclaration(parent)) { + this.word("declare"); + this.space(); + } + this.word("var"); + this.space(); + this.print(node.id, node); + this.print(node.id.typeAnnotation, node); + this.semicolon(); +} +function DeclareExportDeclaration(node) { + this.word("declare"); + this.space(); + this.word("export"); + this.space(); + if (node.default) { + this.word("default"); + this.space(); + } + FlowExportDeclaration.call(this, node); +} +function DeclareExportAllDeclaration(node) { + this.word("declare"); + this.space(); + _modules.ExportAllDeclaration.call(this, node); +} +function EnumDeclaration(node) { + const { + id, + body + } = node; + this.word("enum"); + this.space(); + this.print(id, node); + this.print(body, node); +} +function enumExplicitType(context, name, hasExplicitType) { + if (hasExplicitType) { + context.space(); + context.word("of"); + context.space(); + context.word(name); + } + context.space(); +} +function enumBody(context, node) { + const { + members + } = node; + context.token("{"); + context.indent(); + context.newline(); + for (const member of members) { + context.print(member, node); + context.newline(); + } + if (node.hasUnknownMembers) { + context.token("..."); + context.newline(); + } + context.dedent(); + context.token("}"); +} +function EnumBooleanBody(node) { + const { + explicitType + } = node; + enumExplicitType(this, "boolean", explicitType); + enumBody(this, node); +} +function EnumNumberBody(node) { + const { + explicitType + } = node; + enumExplicitType(this, "number", explicitType); + enumBody(this, node); +} +function EnumStringBody(node) { + const { + explicitType + } = node; + enumExplicitType(this, "string", explicitType); + enumBody(this, node); +} +function EnumSymbolBody(node) { + enumExplicitType(this, "symbol", true); + enumBody(this, node); +} +function EnumDefaultedMember(node) { + const { + id + } = node; + this.print(id, node); + this.tokenChar(44); +} +function enumInitializedMember(context, node) { + const { + id, + init + } = node; + context.print(id, node); + context.space(); + context.token("="); + context.space(); + context.print(init, node); + context.token(","); +} +function EnumBooleanMember(node) { + enumInitializedMember(this, node); +} +function EnumNumberMember(node) { + enumInitializedMember(this, node); +} +function EnumStringMember(node) { + enumInitializedMember(this, node); +} +function FlowExportDeclaration(node) { + if (node.declaration) { + const declar = node.declaration; + this.print(declar, node); + if (!isStatement(declar)) this.semicolon(); + } else { + this.tokenChar(123); + if (node.specifiers.length) { + this.space(); + this.printList(node.specifiers, node); + this.space(); + } + this.tokenChar(125); + if (node.source) { + this.space(); + this.word("from"); + this.space(); + this.print(node.source, node); + } + this.semicolon(); + } +} +function ExistsTypeAnnotation() { + this.tokenChar(42); +} +function FunctionTypeAnnotation(node, parent) { + this.print(node.typeParameters, node); + this.tokenChar(40); + if (node.this) { + this.word("this"); + this.tokenChar(58); + this.space(); + this.print(node.this.typeAnnotation, node); + if (node.params.length || node.rest) { + this.tokenChar(44); + this.space(); + } + } + this.printList(node.params, node); + if (node.rest) { + if (node.params.length) { + this.tokenChar(44); + this.space(); + } + this.token("..."); + this.print(node.rest, node); + } + this.tokenChar(41); + + if (parent && (parent.type === "ObjectTypeCallProperty" || parent.type === "ObjectTypeInternalSlot" || parent.type === "DeclareFunction" || parent.type === "ObjectTypeProperty" && parent.method)) { + this.tokenChar(58); + } else { + this.space(); + this.token("=>"); + } + this.space(); + this.print(node.returnType, node); +} +function FunctionTypeParam(node) { + this.print(node.name, node); + if (node.optional) this.tokenChar(63); + if (node.name) { + this.tokenChar(58); + this.space(); + } + this.print(node.typeAnnotation, node); +} +function InterfaceExtends(node) { + this.print(node.id, node); + this.print(node.typeParameters, node, true); +} +function _interfaceish(node) { + var _node$extends; + this.print(node.id, node); + this.print(node.typeParameters, node); + if ((_node$extends = node.extends) != null && _node$extends.length) { + this.space(); + this.word("extends"); + this.space(); + this.printList(node.extends, node); + } + if (node.mixins && node.mixins.length) { + this.space(); + this.word("mixins"); + this.space(); + this.printList(node.mixins, node); + } + if (node.implements && node.implements.length) { + this.space(); + this.word("implements"); + this.space(); + this.printList(node.implements, node); + } + this.space(); + this.print(node.body, node); +} +function _variance(node) { + if (node.variance) { + if (node.variance.kind === "plus") { + this.tokenChar(43); + } else if (node.variance.kind === "minus") { + this.tokenChar(45); + } + } +} +function InterfaceDeclaration(node) { + this.word("interface"); + this.space(); + this._interfaceish(node); +} +function andSeparator() { + this.space(); + this.tokenChar(38); + this.space(); +} +function InterfaceTypeAnnotation(node) { + this.word("interface"); + if (node.extends && node.extends.length) { + this.space(); + this.word("extends"); + this.space(); + this.printList(node.extends, node); + } + this.space(); + this.print(node.body, node); +} +function IntersectionTypeAnnotation(node) { + this.printJoin(node.types, node, { + separator: andSeparator + }); +} +function MixedTypeAnnotation() { + this.word("mixed"); +} +function EmptyTypeAnnotation() { + this.word("empty"); +} +function NullableTypeAnnotation(node) { + this.tokenChar(63); + this.print(node.typeAnnotation, node); +} +function NumberTypeAnnotation() { + this.word("number"); +} +function StringTypeAnnotation() { + this.word("string"); +} +function ThisTypeAnnotation() { + this.word("this"); +} +function TupleTypeAnnotation(node) { + this.tokenChar(91); + this.printList(node.types, node); + this.tokenChar(93); +} +function TypeofTypeAnnotation(node) { + this.word("typeof"); + this.space(); + this.print(node.argument, node); +} +function TypeAlias(node) { + this.word("type"); + this.space(); + this.print(node.id, node); + this.print(node.typeParameters, node); + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.right, node); + this.semicolon(); +} +function TypeAnnotation(node) { + this.tokenChar(58); + this.space(); + if (node.optional) this.tokenChar(63); + this.print(node.typeAnnotation, node); +} +function TypeParameterInstantiation(node) { + this.tokenChar(60); + this.printList(node.params, node, {}); + this.tokenChar(62); +} +function TypeParameter(node) { + this._variance(node); + this.word(node.name); + if (node.bound) { + this.print(node.bound, node); + } + if (node.default) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.default, node); + } +} +function OpaqueType(node) { + this.word("opaque"); + this.space(); + this.word("type"); + this.space(); + this.print(node.id, node); + this.print(node.typeParameters, node); + if (node.supertype) { + this.tokenChar(58); + this.space(); + this.print(node.supertype, node); + } + if (node.impltype) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.impltype, node); + } + this.semicolon(); +} +function ObjectTypeAnnotation(node) { + if (node.exact) { + this.token("{|"); + } else { + this.tokenChar(123); + } + + const props = [...node.properties, ...(node.callProperties || []), ...(node.indexers || []), ...(node.internalSlots || [])]; + if (props.length) { + this.newline(); + this.space(); + this.printJoin(props, node, { + addNewlines(leading) { + if (leading && !props[0]) return 1; + }, + indent: true, + statement: true, + iterator: () => { + if (props.length !== 1 || node.inexact) { + this.tokenChar(44); + this.space(); + } + } + }); + this.space(); + } + if (node.inexact) { + this.indent(); + this.token("..."); + if (props.length) { + this.newline(); + } + this.dedent(); + } + if (node.exact) { + this.token("|}"); + } else { + this.tokenChar(125); + } +} +function ObjectTypeInternalSlot(node) { + if (node.static) { + this.word("static"); + this.space(); + } + this.tokenChar(91); + this.tokenChar(91); + this.print(node.id, node); + this.tokenChar(93); + this.tokenChar(93); + if (node.optional) this.tokenChar(63); + if (!node.method) { + this.tokenChar(58); + this.space(); + } + this.print(node.value, node); +} +function ObjectTypeCallProperty(node) { + if (node.static) { + this.word("static"); + this.space(); + } + this.print(node.value, node); +} +function ObjectTypeIndexer(node) { + if (node.static) { + this.word("static"); + this.space(); + } + this._variance(node); + this.tokenChar(91); + if (node.id) { + this.print(node.id, node); + this.tokenChar(58); + this.space(); + } + this.print(node.key, node); + this.tokenChar(93); + this.tokenChar(58); + this.space(); + this.print(node.value, node); +} +function ObjectTypeProperty(node) { + if (node.proto) { + this.word("proto"); + this.space(); + } + if (node.static) { + this.word("static"); + this.space(); + } + if (node.kind === "get" || node.kind === "set") { + this.word(node.kind); + this.space(); + } + this._variance(node); + this.print(node.key, node); + if (node.optional) this.tokenChar(63); + if (!node.method) { + this.tokenChar(58); + this.space(); + } + this.print(node.value, node); +} +function ObjectTypeSpreadProperty(node) { + this.token("..."); + this.print(node.argument, node); +} +function QualifiedTypeIdentifier(node) { + this.print(node.qualification, node); + this.tokenChar(46); + this.print(node.id, node); +} +function SymbolTypeAnnotation() { + this.word("symbol"); +} +function orSeparator() { + this.space(); + this.tokenChar(124); + this.space(); +} +function UnionTypeAnnotation(node) { + this.printJoin(node.types, node, { + separator: orSeparator + }); +} +function TypeCastExpression(node) { + this.tokenChar(40); + this.print(node.expression, node); + this.print(node.typeAnnotation, node); + this.tokenChar(41); +} +function Variance(node) { + if (node.kind === "plus") { + this.tokenChar(43); + } else { + this.tokenChar(45); + } +} +function VoidTypeAnnotation() { + this.word("void"); +} +function IndexedAccessType(node) { + this.print(node.objectType, node, true); + this.tokenChar(91); + this.print(node.indexType, node); + this.tokenChar(93); +} +function OptionalIndexedAccessType(node) { + this.print(node.objectType, node); + if (node.optional) { + this.token("?."); + } + this.tokenChar(91); + this.print(node.indexType, node); + this.tokenChar(93); +} + +//# sourceMappingURL=flow.js.map + + +/***/ }), + +/***/ 4747: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +var _templateLiterals = __webpack_require__(9378); +Object.keys(_templateLiterals).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _templateLiterals[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _templateLiterals[key]; + } + }); +}); +var _expressions = __webpack_require__(3791); +Object.keys(_expressions).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _expressions[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _expressions[key]; + } + }); +}); +var _statements = __webpack_require__(6190); +Object.keys(_statements).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _statements[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _statements[key]; + } + }); +}); +var _classes = __webpack_require__(8838); +Object.keys(_classes).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _classes[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _classes[key]; + } + }); +}); +var _methods = __webpack_require__(9124); +Object.keys(_methods).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _methods[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _methods[key]; + } + }); +}); +var _modules = __webpack_require__(7608); +Object.keys(_modules).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _modules[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _modules[key]; + } + }); +}); +var _types = __webpack_require__(3278); +Object.keys(_types).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _types[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _types[key]; + } + }); +}); +var _flow = __webpack_require__(7083); +Object.keys(_flow).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _flow[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _flow[key]; + } + }); +}); +var _base = __webpack_require__(1794); +Object.keys(_base).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _base[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _base[key]; + } + }); +}); +var _jsx = __webpack_require__(4510); +Object.keys(_jsx).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _jsx[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _jsx[key]; + } + }); +}); +var _typescript = __webpack_require__(246); +Object.keys(_typescript).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _typescript[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _typescript[key]; + } + }); +}); + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 4510: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.JSXAttribute = JSXAttribute; +exports.JSXClosingElement = JSXClosingElement; +exports.JSXClosingFragment = JSXClosingFragment; +exports.JSXElement = JSXElement; +exports.JSXEmptyExpression = JSXEmptyExpression; +exports.JSXExpressionContainer = JSXExpressionContainer; +exports.JSXFragment = JSXFragment; +exports.JSXIdentifier = JSXIdentifier; +exports.JSXMemberExpression = JSXMemberExpression; +exports.JSXNamespacedName = JSXNamespacedName; +exports.JSXOpeningElement = JSXOpeningElement; +exports.JSXOpeningFragment = JSXOpeningFragment; +exports.JSXSpreadAttribute = JSXSpreadAttribute; +exports.JSXSpreadChild = JSXSpreadChild; +exports.JSXText = JSXText; +function JSXAttribute(node) { + this.print(node.name, node); + if (node.value) { + this.tokenChar(61); + this.print(node.value, node); + } +} +function JSXIdentifier(node) { + this.word(node.name); +} +function JSXNamespacedName(node) { + this.print(node.namespace, node); + this.tokenChar(58); + this.print(node.name, node); +} +function JSXMemberExpression(node) { + this.print(node.object, node); + this.tokenChar(46); + this.print(node.property, node); +} +function JSXSpreadAttribute(node) { + this.tokenChar(123); + this.token("..."); + this.print(node.argument, node); + this.tokenChar(125); +} +function JSXExpressionContainer(node) { + this.tokenChar(123); + this.print(node.expression, node); + this.tokenChar(125); +} +function JSXSpreadChild(node) { + this.tokenChar(123); + this.token("..."); + this.print(node.expression, node); + this.tokenChar(125); +} +function JSXText(node) { + const raw = this.getPossibleRaw(node); + if (raw !== undefined) { + this.token(raw, true); + } else { + this.token(node.value, true); + } +} +function JSXElement(node) { + const open = node.openingElement; + this.print(open, node); + if (open.selfClosing) return; + this.indent(); + for (const child of node.children) { + this.print(child, node); + } + this.dedent(); + this.print(node.closingElement, node); +} +function spaceSeparator() { + this.space(); +} +function JSXOpeningElement(node) { + this.tokenChar(60); + this.print(node.name, node); + this.print(node.typeParameters, node); + if (node.attributes.length > 0) { + this.space(); + this.printJoin(node.attributes, node, { + separator: spaceSeparator + }); + } + if (node.selfClosing) { + this.space(); + this.token("/>"); + } else { + this.tokenChar(62); + } +} +function JSXClosingElement(node) { + this.token(""); + this.space(); + this.print(node.body, node); +} +function hasTypesOrComments(node, param) { + var _param$leadingComment, _param$trailingCommen; + return !!(node.typeParameters || node.returnType || node.predicate || param.typeAnnotation || param.optional || (_param$leadingComment = param.leadingComments) != null && _param$leadingComment.length || (_param$trailingCommen = param.trailingComments) != null && _param$trailingCommen.length); +} + +//# sourceMappingURL=methods.js.map + + +/***/ }), + +/***/ 7608: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.ExportAllDeclaration = ExportAllDeclaration; +exports.ExportDefaultDeclaration = ExportDefaultDeclaration; +exports.ExportDefaultSpecifier = ExportDefaultSpecifier; +exports.ExportNamedDeclaration = ExportNamedDeclaration; +exports.ExportNamespaceSpecifier = ExportNamespaceSpecifier; +exports.ExportSpecifier = ExportSpecifier; +exports.ImportAttribute = ImportAttribute; +exports.ImportDeclaration = ImportDeclaration; +exports.ImportDefaultSpecifier = ImportDefaultSpecifier; +exports.ImportNamespaceSpecifier = ImportNamespaceSpecifier; +exports.ImportSpecifier = ImportSpecifier; +exports._printAssertions = _printAssertions; +var _t = __webpack_require__(2139); +const { + isClassDeclaration, + isExportDefaultSpecifier, + isExportNamespaceSpecifier, + isImportDefaultSpecifier, + isImportNamespaceSpecifier, + isStatement +} = _t; +function ImportSpecifier(node) { + if (node.importKind === "type" || node.importKind === "typeof") { + this.word(node.importKind); + this.space(); + } + this.print(node.imported, node); + if (node.local && node.local.name !== node.imported.name) { + this.space(); + this.word("as"); + this.space(); + this.print(node.local, node); + } +} +function ImportDefaultSpecifier(node) { + this.print(node.local, node); +} +function ExportDefaultSpecifier(node) { + this.print(node.exported, node); +} +function ExportSpecifier(node) { + if (node.exportKind === "type") { + this.word("type"); + this.space(); + } + this.print(node.local, node); + if (node.exported && node.local.name !== node.exported.name) { + this.space(); + this.word("as"); + this.space(); + this.print(node.exported, node); + } +} +function ExportNamespaceSpecifier(node) { + this.tokenChar(42); + this.space(); + this.word("as"); + this.space(); + this.print(node.exported, node); +} +function _printAssertions(node) { + this.word("assert"); + this.space(); + this.tokenChar(123); + this.space(); + this.printList(node.assertions, node); + this.space(); + this.tokenChar(125); +} +function ExportAllDeclaration(node) { + var _node$assertions; + this.word("export"); + this.space(); + if (node.exportKind === "type") { + this.word("type"); + this.space(); + } + this.tokenChar(42); + this.space(); + this.word("from"); + this.space(); + if ((_node$assertions = node.assertions) != null && _node$assertions.length) { + this.print(node.source, node, true); + this.space(); + this._printAssertions(node); + } else { + this.print(node.source, node); + } + this.semicolon(); +} +function ExportNamedDeclaration(node) { + { + if (this.format.decoratorsBeforeExport && isClassDeclaration(node.declaration)) { + this.printJoin(node.declaration.decorators, node); + } + } + this.word("export"); + this.space(); + if (node.declaration) { + const declar = node.declaration; + this.print(declar, node); + if (!isStatement(declar)) this.semicolon(); + } else { + if (node.exportKind === "type") { + this.word("type"); + this.space(); + } + const specifiers = node.specifiers.slice(0); + + let hasSpecial = false; + for (;;) { + const first = specifiers[0]; + if (isExportDefaultSpecifier(first) || isExportNamespaceSpecifier(first)) { + hasSpecial = true; + this.print(specifiers.shift(), node); + if (specifiers.length) { + this.tokenChar(44); + this.space(); + } + } else { + break; + } + } + if (specifiers.length || !specifiers.length && !hasSpecial) { + this.tokenChar(123); + if (specifiers.length) { + this.space(); + this.printList(specifiers, node); + this.space(); + } + this.tokenChar(125); + } + if (node.source) { + var _node$assertions2; + this.space(); + this.word("from"); + this.space(); + if ((_node$assertions2 = node.assertions) != null && _node$assertions2.length) { + this.print(node.source, node, true); + this.space(); + this._printAssertions(node); + } else { + this.print(node.source, node); + } + } + this.semicolon(); + } +} +function ExportDefaultDeclaration(node) { + { + if (this.format.decoratorsBeforeExport && isClassDeclaration(node.declaration)) { + this.printJoin(node.declaration.decorators, node); + } + } + this.word("export"); + this.noIndentInnerCommentsHere(); + this.space(); + this.word("default"); + this.space(); + const declar = node.declaration; + this.print(declar, node); + if (!isStatement(declar)) this.semicolon(); +} +function ImportDeclaration(node) { + var _node$assertions3; + this.word("import"); + this.space(); + const isTypeKind = node.importKind === "type" || node.importKind === "typeof"; + if (isTypeKind) { + this.noIndentInnerCommentsHere(); + this.word(node.importKind); + this.space(); + } else if (node.module) { + this.noIndentInnerCommentsHere(); + this.word("module"); + this.space(); + } + const specifiers = node.specifiers.slice(0); + const hasSpecifiers = !!specifiers.length; + while (hasSpecifiers) { + const first = specifiers[0]; + if (isImportDefaultSpecifier(first) || isImportNamespaceSpecifier(first)) { + this.print(specifiers.shift(), node); + if (specifiers.length) { + this.tokenChar(44); + this.space(); + } + } else { + break; + } + } + if (specifiers.length) { + this.tokenChar(123); + this.space(); + this.printList(specifiers, node); + this.space(); + this.tokenChar(125); + } else if (isTypeKind && !hasSpecifiers) { + this.tokenChar(123); + this.tokenChar(125); + } + if (hasSpecifiers || isTypeKind) { + this.space(); + this.word("from"); + this.space(); + } + if ((_node$assertions3 = node.assertions) != null && _node$assertions3.length) { + this.print(node.source, node, true); + this.space(); + this._printAssertions(node); + } else { + this.print(node.source, node); + } + { + var _node$attributes; + if ((_node$attributes = node.attributes) != null && _node$attributes.length) { + this.space(); + this.word("with"); + this.space(); + this.printList(node.attributes, node); + } + } + this.semicolon(); +} +function ImportAttribute(node) { + this.print(node.key); + this.tokenChar(58); + this.space(); + this.print(node.value); +} +function ImportNamespaceSpecifier(node) { + this.tokenChar(42); + this.space(); + this.word("as"); + this.space(); + this.print(node.local, node); +} + +//# sourceMappingURL=modules.js.map + + +/***/ }), + +/***/ 6190: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.BreakStatement = BreakStatement; +exports.CatchClause = CatchClause; +exports.ContinueStatement = ContinueStatement; +exports.DebuggerStatement = DebuggerStatement; +exports.DoWhileStatement = DoWhileStatement; +exports.ForOfStatement = exports.ForInStatement = void 0; +exports.ForStatement = ForStatement; +exports.IfStatement = IfStatement; +exports.LabeledStatement = LabeledStatement; +exports.ReturnStatement = ReturnStatement; +exports.SwitchCase = SwitchCase; +exports.SwitchStatement = SwitchStatement; +exports.ThrowStatement = ThrowStatement; +exports.TryStatement = TryStatement; +exports.VariableDeclaration = VariableDeclaration; +exports.VariableDeclarator = VariableDeclarator; +exports.WhileStatement = WhileStatement; +exports.WithStatement = WithStatement; +var _t = __webpack_require__(2139); +const { + isFor, + isForStatement, + isIfStatement, + isStatement +} = _t; +function WithStatement(node) { + this.word("with"); + this.space(); + this.tokenChar(40); + this.print(node.object, node); + this.tokenChar(41); + this.printBlock(node); +} +function IfStatement(node) { + this.word("if"); + this.space(); + this.tokenChar(40); + this.print(node.test, node); + this.tokenChar(41); + this.space(); + const needsBlock = node.alternate && isIfStatement(getLastStatement(node.consequent)); + if (needsBlock) { + this.tokenChar(123); + this.newline(); + this.indent(); + } + this.printAndIndentOnComments(node.consequent, node); + if (needsBlock) { + this.dedent(); + this.newline(); + this.tokenChar(125); + } + if (node.alternate) { + if (this.endsWith(125)) this.space(); + this.word("else"); + this.space(); + this.printAndIndentOnComments(node.alternate, node); + } +} + +function getLastStatement(statement) { + const { + body + } = statement; + if (isStatement(body) === false) { + return statement; + } + return getLastStatement(body); +} +function ForStatement(node) { + this.word("for"); + this.space(); + this.tokenChar(40); + this.inForStatementInitCounter++; + this.print(node.init, node); + this.inForStatementInitCounter--; + this.tokenChar(59); + if (node.test) { + this.space(); + this.print(node.test, node); + } + this.tokenChar(59); + if (node.update) { + this.space(); + this.print(node.update, node); + } + this.tokenChar(41); + this.printBlock(node); +} +function WhileStatement(node) { + this.word("while"); + this.space(); + this.tokenChar(40); + this.print(node.test, node); + this.tokenChar(41); + this.printBlock(node); +} +function ForXStatement(node) { + this.word("for"); + this.space(); + const isForOf = node.type === "ForOfStatement"; + if (isForOf && node.await) { + this.word("await"); + this.space(); + } + this.noIndentInnerCommentsHere(); + this.tokenChar(40); + this.print(node.left, node); + this.space(); + this.word(isForOf ? "of" : "in"); + this.space(); + this.print(node.right, node); + this.tokenChar(41); + this.printBlock(node); +} +const ForInStatement = ForXStatement; +exports.ForInStatement = ForInStatement; +const ForOfStatement = ForXStatement; +exports.ForOfStatement = ForOfStatement; +function DoWhileStatement(node) { + this.word("do"); + this.space(); + this.print(node.body, node); + this.space(); + this.word("while"); + this.space(); + this.tokenChar(40); + this.print(node.test, node); + this.tokenChar(41); + this.semicolon(); +} +function printStatementAfterKeyword(printer, node, parent, isLabel) { + if (node) { + printer.space(); + printer.printTerminatorless(node, parent, isLabel); + } + printer.semicolon(); +} +function BreakStatement(node) { + this.word("break"); + printStatementAfterKeyword(this, node.label, node, true); +} +function ContinueStatement(node) { + this.word("continue"); + printStatementAfterKeyword(this, node.label, node, true); +} +function ReturnStatement(node) { + this.word("return"); + printStatementAfterKeyword(this, node.argument, node, false); +} +function ThrowStatement(node) { + this.word("throw"); + printStatementAfterKeyword(this, node.argument, node, false); +} +function LabeledStatement(node) { + this.print(node.label, node); + this.tokenChar(58); + this.space(); + this.print(node.body, node); +} +function TryStatement(node) { + this.word("try"); + this.space(); + this.print(node.block, node); + this.space(); + + if (node.handlers) { + this.print(node.handlers[0], node); + } else { + this.print(node.handler, node); + } + if (node.finalizer) { + this.space(); + this.word("finally"); + this.space(); + this.print(node.finalizer, node); + } +} +function CatchClause(node) { + this.word("catch"); + this.space(); + if (node.param) { + this.tokenChar(40); + this.print(node.param, node); + this.print(node.param.typeAnnotation, node); + this.tokenChar(41); + this.space(); + } + this.print(node.body, node); +} +function SwitchStatement(node) { + this.word("switch"); + this.space(); + this.tokenChar(40); + this.print(node.discriminant, node); + this.tokenChar(41); + this.space(); + this.tokenChar(123); + this.printSequence(node.cases, node, { + indent: true, + addNewlines(leading, cas) { + if (!leading && node.cases[node.cases.length - 1] === cas) return -1; + } + }); + this.tokenChar(125); +} +function SwitchCase(node) { + if (node.test) { + this.word("case"); + this.space(); + this.print(node.test, node); + this.tokenChar(58); + } else { + this.word("default"); + this.tokenChar(58); + } + if (node.consequent.length) { + this.newline(); + this.printSequence(node.consequent, node, { + indent: true + }); + } +} +function DebuggerStatement() { + this.word("debugger"); + this.semicolon(); +} +function VariableDeclaration(node, parent) { + if (node.declare) { + this.word("declare"); + this.space(); + } + const { + kind + } = node; + this.word(kind, kind === "using"); + this.space(); + let hasInits = false; + if (!isFor(parent)) { + for (const declar of node.declarations) { + if (declar.init) { + hasInits = true; + } + } + } + + this.printList(node.declarations, node, { + separator: hasInits ? function () { + this.tokenChar(44); + this.newline(); + } : undefined, + indent: node.declarations.length > 1 ? true : false + }); + if (isFor(parent)) { + if (isForStatement(parent)) { + if (parent.init === node) return; + } else { + if (parent.left === node) return; + } + } + this.semicolon(); +} +function VariableDeclarator(node) { + this.print(node.id, node); + if (node.definite) this.tokenChar(33); + this.print(node.id.typeAnnotation, node); + if (node.init) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.init, node); + } +} + +//# sourceMappingURL=statements.js.map + + +/***/ }), + +/***/ 9378: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.TaggedTemplateExpression = TaggedTemplateExpression; +exports.TemplateElement = TemplateElement; +exports.TemplateLiteral = TemplateLiteral; +function TaggedTemplateExpression(node) { + this.print(node.tag, node); + this.print(node.typeParameters, node); + this.print(node.quasi, node); +} +function TemplateElement(node, parent) { + const isFirst = parent.quasis[0] === node; + const isLast = parent.quasis[parent.quasis.length - 1] === node; + const value = (isFirst ? "`" : "}") + node.value.raw + (isLast ? "`" : "${"); + this.token(value, true); +} +function TemplateLiteral(node) { + const quasis = node.quasis; + for (let i = 0; i < quasis.length; i++) { + this.print(quasis[i], node); + if (i + 1 < quasis.length) { + this.print(node.expressions[i], node); + } + } +} + +//# sourceMappingURL=template-literals.js.map + + +/***/ }), + +/***/ 3278: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.ArgumentPlaceholder = ArgumentPlaceholder; +exports.ArrayPattern = exports.ArrayExpression = ArrayExpression; +exports.BigIntLiteral = BigIntLiteral; +exports.BooleanLiteral = BooleanLiteral; +exports.DecimalLiteral = DecimalLiteral; +exports.Identifier = Identifier; +exports.NullLiteral = NullLiteral; +exports.NumericLiteral = NumericLiteral; +exports.ObjectPattern = exports.ObjectExpression = ObjectExpression; +exports.ObjectMethod = ObjectMethod; +exports.ObjectProperty = ObjectProperty; +exports.PipelineBareFunction = PipelineBareFunction; +exports.PipelinePrimaryTopicReference = PipelinePrimaryTopicReference; +exports.PipelineTopicExpression = PipelineTopicExpression; +exports.RecordExpression = RecordExpression; +exports.RegExpLiteral = RegExpLiteral; +exports.SpreadElement = exports.RestElement = RestElement; +exports.StringLiteral = StringLiteral; +exports.TopicReference = TopicReference; +exports.TupleExpression = TupleExpression; +var _t = __webpack_require__(2139); +var _jsesc = __webpack_require__(2095); +const { + isAssignmentPattern, + isIdentifier +} = _t; +function Identifier(node) { + this.word(node.name); +} +function ArgumentPlaceholder() { + this.tokenChar(63); +} +function RestElement(node) { + this.token("..."); + this.print(node.argument, node); +} +function ObjectExpression(node) { + const props = node.properties; + this.tokenChar(123); + if (props.length) { + this.space(); + this.printList(props, node, { + indent: true, + statement: true + }); + this.space(); + } + this.sourceWithOffset("end", node.loc, 0, -1); + this.tokenChar(125); +} +function ObjectMethod(node) { + this.printJoin(node.decorators, node); + this._methodHead(node); + this.space(); + this.print(node.body, node); +} +function ObjectProperty(node) { + this.printJoin(node.decorators, node); + if (node.computed) { + this.tokenChar(91); + this.print(node.key, node); + this.tokenChar(93); + } else { + if (isAssignmentPattern(node.value) && isIdentifier(node.key) && + node.key.name === node.value.left.name) { + this.print(node.value, node); + return; + } + this.print(node.key, node); + + if (node.shorthand && isIdentifier(node.key) && isIdentifier(node.value) && node.key.name === node.value.name) { + return; + } + } + this.tokenChar(58); + this.space(); + this.print(node.value, node); +} +function ArrayExpression(node) { + const elems = node.elements; + const len = elems.length; + this.tokenChar(91); + for (let i = 0; i < elems.length; i++) { + const elem = elems[i]; + if (elem) { + if (i > 0) this.space(); + this.print(elem, node); + if (i < len - 1) this.tokenChar(44); + } else { + this.tokenChar(44); + } + } + this.tokenChar(93); +} +function RecordExpression(node) { + const props = node.properties; + let startToken; + let endToken; + if (this.format.recordAndTupleSyntaxType === "bar") { + startToken = "{|"; + endToken = "|}"; + } else if (this.format.recordAndTupleSyntaxType !== "hash" && this.format.recordAndTupleSyntaxType != null) { + throw new Error(`The "recordAndTupleSyntaxType" generator option must be "bar" or "hash" (${JSON.stringify(this.format.recordAndTupleSyntaxType)} received).`); + } else { + startToken = "#{"; + endToken = "}"; + } + this.token(startToken); + if (props.length) { + this.space(); + this.printList(props, node, { + indent: true, + statement: true + }); + this.space(); + } + this.token(endToken); +} +function TupleExpression(node) { + const elems = node.elements; + const len = elems.length; + let startToken; + let endToken; + if (this.format.recordAndTupleSyntaxType === "bar") { + startToken = "[|"; + endToken = "|]"; + } else if (this.format.recordAndTupleSyntaxType === "hash") { + startToken = "#["; + endToken = "]"; + } else { + throw new Error(`${this.format.recordAndTupleSyntaxType} is not a valid recordAndTuple syntax type`); + } + this.token(startToken); + for (let i = 0; i < elems.length; i++) { + const elem = elems[i]; + if (elem) { + if (i > 0) this.space(); + this.print(elem, node); + if (i < len - 1) this.tokenChar(44); + } + } + this.token(endToken); +} +function RegExpLiteral(node) { + this.word(`/${node.pattern}/${node.flags}`); +} +function BooleanLiteral(node) { + this.word(node.value ? "true" : "false"); +} +function NullLiteral() { + this.word("null"); +} +function NumericLiteral(node) { + const raw = this.getPossibleRaw(node); + const opts = this.format.jsescOption; + const value = node.value + ""; + if (opts.numbers) { + this.number(_jsesc(node.value, opts)); + } else if (raw == null) { + this.number(value); + } else if (this.format.minified) { + this.number(raw.length < value.length ? raw : value); + } else { + this.number(raw); + } +} +function StringLiteral(node) { + const raw = this.getPossibleRaw(node); + if (!this.format.minified && raw !== undefined) { + this.token(raw); + return; + } + const val = _jsesc(node.value, Object.assign(this.format.jsescOption, this.format.jsonCompatibleStrings && { + json: true + })); + return this.token(val); +} +function BigIntLiteral(node) { + const raw = this.getPossibleRaw(node); + if (!this.format.minified && raw !== undefined) { + this.word(raw); + return; + } + this.word(node.value + "n"); +} +function DecimalLiteral(node) { + const raw = this.getPossibleRaw(node); + if (!this.format.minified && raw !== undefined) { + this.word(raw); + return; + } + this.word(node.value + "m"); +} + +const validTopicTokenSet = new Set(["^^", "@@", "^", "%", "#"]); +function TopicReference() { + const { + topicToken + } = this.format; + if (validTopicTokenSet.has(topicToken)) { + this.token(topicToken); + } else { + const givenTopicTokenJSON = JSON.stringify(topicToken); + const validTopics = Array.from(validTopicTokenSet, v => JSON.stringify(v)); + throw new Error(`The "topicToken" generator option must be one of ` + `${validTopics.join(", ")} (${givenTopicTokenJSON} received instead).`); + } +} + +function PipelineTopicExpression(node) { + this.print(node.expression, node); +} +function PipelineBareFunction(node) { + this.print(node.callee, node); +} +function PipelinePrimaryTopicReference() { + this.tokenChar(35); +} + +//# sourceMappingURL=types.js.map + + +/***/ }), + +/***/ 246: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.TSAnyKeyword = TSAnyKeyword; +exports.TSArrayType = TSArrayType; +exports.TSSatisfiesExpression = exports.TSAsExpression = TSTypeExpression; +exports.TSBigIntKeyword = TSBigIntKeyword; +exports.TSBooleanKeyword = TSBooleanKeyword; +exports.TSCallSignatureDeclaration = TSCallSignatureDeclaration; +exports.TSConditionalType = TSConditionalType; +exports.TSConstructSignatureDeclaration = TSConstructSignatureDeclaration; +exports.TSConstructorType = TSConstructorType; +exports.TSDeclareFunction = TSDeclareFunction; +exports.TSDeclareMethod = TSDeclareMethod; +exports.TSEnumDeclaration = TSEnumDeclaration; +exports.TSEnumMember = TSEnumMember; +exports.TSExportAssignment = TSExportAssignment; +exports.TSExpressionWithTypeArguments = TSExpressionWithTypeArguments; +exports.TSExternalModuleReference = TSExternalModuleReference; +exports.TSFunctionType = TSFunctionType; +exports.TSImportEqualsDeclaration = TSImportEqualsDeclaration; +exports.TSImportType = TSImportType; +exports.TSIndexSignature = TSIndexSignature; +exports.TSIndexedAccessType = TSIndexedAccessType; +exports.TSInferType = TSInferType; +exports.TSInstantiationExpression = TSInstantiationExpression; +exports.TSInterfaceBody = TSInterfaceBody; +exports.TSInterfaceDeclaration = TSInterfaceDeclaration; +exports.TSIntersectionType = TSIntersectionType; +exports.TSIntrinsicKeyword = TSIntrinsicKeyword; +exports.TSLiteralType = TSLiteralType; +exports.TSMappedType = TSMappedType; +exports.TSMethodSignature = TSMethodSignature; +exports.TSModuleBlock = TSModuleBlock; +exports.TSModuleDeclaration = TSModuleDeclaration; +exports.TSNamedTupleMember = TSNamedTupleMember; +exports.TSNamespaceExportDeclaration = TSNamespaceExportDeclaration; +exports.TSNeverKeyword = TSNeverKeyword; +exports.TSNonNullExpression = TSNonNullExpression; +exports.TSNullKeyword = TSNullKeyword; +exports.TSNumberKeyword = TSNumberKeyword; +exports.TSObjectKeyword = TSObjectKeyword; +exports.TSOptionalType = TSOptionalType; +exports.TSParameterProperty = TSParameterProperty; +exports.TSParenthesizedType = TSParenthesizedType; +exports.TSPropertySignature = TSPropertySignature; +exports.TSQualifiedName = TSQualifiedName; +exports.TSRestType = TSRestType; +exports.TSStringKeyword = TSStringKeyword; +exports.TSSymbolKeyword = TSSymbolKeyword; +exports.TSThisType = TSThisType; +exports.TSTupleType = TSTupleType; +exports.TSTypeAliasDeclaration = TSTypeAliasDeclaration; +exports.TSTypeAnnotation = TSTypeAnnotation; +exports.TSTypeAssertion = TSTypeAssertion; +exports.TSTypeLiteral = TSTypeLiteral; +exports.TSTypeOperator = TSTypeOperator; +exports.TSTypeParameter = TSTypeParameter; +exports.TSTypeParameterDeclaration = exports.TSTypeParameterInstantiation = TSTypeParameterInstantiation; +exports.TSTypePredicate = TSTypePredicate; +exports.TSTypeQuery = TSTypeQuery; +exports.TSTypeReference = TSTypeReference; +exports.TSUndefinedKeyword = TSUndefinedKeyword; +exports.TSUnionType = TSUnionType; +exports.TSUnknownKeyword = TSUnknownKeyword; +exports.TSVoidKeyword = TSVoidKeyword; +exports.tsPrintClassMemberModifiers = tsPrintClassMemberModifiers; +exports.tsPrintFunctionOrConstructorType = tsPrintFunctionOrConstructorType; +exports.tsPrintPropertyOrMethodName = tsPrintPropertyOrMethodName; +exports.tsPrintSignatureDeclarationBase = tsPrintSignatureDeclarationBase; +exports.tsPrintTypeLiteralOrInterfaceBody = tsPrintTypeLiteralOrInterfaceBody; +function TSTypeAnnotation(node) { + this.tokenChar(58); + this.space(); + if (node.optional) this.tokenChar(63); + this.print(node.typeAnnotation, node); +} +function TSTypeParameterInstantiation(node, parent) { + this.tokenChar(60); + this.printList(node.params, node, {}); + if (parent.type === "ArrowFunctionExpression" && node.params.length === 1) { + this.tokenChar(44); + } + this.tokenChar(62); +} +function TSTypeParameter(node) { + if (node.in) { + this.word("in"); + this.space(); + } + if (node.out) { + this.word("out"); + this.space(); + } + this.word(node.name); + if (node.constraint) { + this.space(); + this.word("extends"); + this.space(); + this.print(node.constraint, node); + } + if (node.default) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.default, node); + } +} +function TSParameterProperty(node) { + if (node.accessibility) { + this.word(node.accessibility); + this.space(); + } + if (node.readonly) { + this.word("readonly"); + this.space(); + } + this._param(node.parameter); +} +function TSDeclareFunction(node) { + if (node.declare) { + this.word("declare"); + this.space(); + } + this._functionHead(node); + this.tokenChar(59); +} +function TSDeclareMethod(node) { + this._classMethodHead(node); + this.tokenChar(59); +} +function TSQualifiedName(node) { + this.print(node.left, node); + this.tokenChar(46); + this.print(node.right, node); +} +function TSCallSignatureDeclaration(node) { + this.tsPrintSignatureDeclarationBase(node); + this.tokenChar(59); +} +function TSConstructSignatureDeclaration(node) { + this.word("new"); + this.space(); + this.tsPrintSignatureDeclarationBase(node); + this.tokenChar(59); +} +function TSPropertySignature(node) { + const { + readonly, + initializer + } = node; + if (readonly) { + this.word("readonly"); + this.space(); + } + this.tsPrintPropertyOrMethodName(node); + this.print(node.typeAnnotation, node); + if (initializer) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(initializer, node); + } + this.tokenChar(59); +} +function tsPrintPropertyOrMethodName(node) { + if (node.computed) { + this.tokenChar(91); + } + this.print(node.key, node); + if (node.computed) { + this.tokenChar(93); + } + if (node.optional) { + this.tokenChar(63); + } +} +function TSMethodSignature(node) { + const { + kind + } = node; + if (kind === "set" || kind === "get") { + this.word(kind); + this.space(); + } + this.tsPrintPropertyOrMethodName(node); + this.tsPrintSignatureDeclarationBase(node); + this.tokenChar(59); +} +function TSIndexSignature(node) { + const { + readonly, + static: isStatic + } = node; + if (isStatic) { + this.word("static"); + this.space(); + } + if (readonly) { + this.word("readonly"); + this.space(); + } + this.tokenChar(91); + this._parameters(node.parameters, node); + this.tokenChar(93); + this.print(node.typeAnnotation, node); + this.tokenChar(59); +} +function TSAnyKeyword() { + this.word("any"); +} +function TSBigIntKeyword() { + this.word("bigint"); +} +function TSUnknownKeyword() { + this.word("unknown"); +} +function TSNumberKeyword() { + this.word("number"); +} +function TSObjectKeyword() { + this.word("object"); +} +function TSBooleanKeyword() { + this.word("boolean"); +} +function TSStringKeyword() { + this.word("string"); +} +function TSSymbolKeyword() { + this.word("symbol"); +} +function TSVoidKeyword() { + this.word("void"); +} +function TSUndefinedKeyword() { + this.word("undefined"); +} +function TSNullKeyword() { + this.word("null"); +} +function TSNeverKeyword() { + this.word("never"); +} +function TSIntrinsicKeyword() { + this.word("intrinsic"); +} +function TSThisType() { + this.word("this"); +} +function TSFunctionType(node) { + this.tsPrintFunctionOrConstructorType(node); +} +function TSConstructorType(node) { + if (node.abstract) { + this.word("abstract"); + this.space(); + } + this.word("new"); + this.space(); + this.tsPrintFunctionOrConstructorType(node); +} +function tsPrintFunctionOrConstructorType(node) { + const { + typeParameters + } = node; + const parameters = + node.parameters; + this.print(typeParameters, node); + this.tokenChar(40); + this._parameters(parameters, node); + this.tokenChar(41); + this.space(); + this.token("=>"); + this.space(); + const returnType = + node.typeAnnotation; + this.print(returnType.typeAnnotation, node); +} +function TSTypeReference(node) { + this.print(node.typeName, node, true); + this.print(node.typeParameters, node, true); +} +function TSTypePredicate(node) { + if (node.asserts) { + this.word("asserts"); + this.space(); + } + this.print(node.parameterName); + if (node.typeAnnotation) { + this.space(); + this.word("is"); + this.space(); + this.print(node.typeAnnotation.typeAnnotation); + } +} +function TSTypeQuery(node) { + this.word("typeof"); + this.space(); + this.print(node.exprName); + if (node.typeParameters) { + this.print(node.typeParameters, node); + } +} +function TSTypeLiteral(node) { + this.tsPrintTypeLiteralOrInterfaceBody(node.members, node); +} +function tsPrintTypeLiteralOrInterfaceBody(members, node) { + tsPrintBraced(this, members, node); +} +function tsPrintBraced(printer, members, node) { + printer.token("{"); + if (members.length) { + printer.indent(); + printer.newline(); + for (const member of members) { + printer.print(member, node); + printer.newline(); + } + printer.dedent(); + } + printer.sourceWithOffset("end", node.loc, 0, -1); + printer.rightBrace(); +} +function TSArrayType(node) { + this.print(node.elementType, node, true); + this.token("[]"); +} +function TSTupleType(node) { + this.tokenChar(91); + this.printList(node.elementTypes, node); + this.tokenChar(93); +} +function TSOptionalType(node) { + this.print(node.typeAnnotation, node); + this.tokenChar(63); +} +function TSRestType(node) { + this.token("..."); + this.print(node.typeAnnotation, node); +} +function TSNamedTupleMember(node) { + this.print(node.label, node); + if (node.optional) this.tokenChar(63); + this.tokenChar(58); + this.space(); + this.print(node.elementType, node); +} +function TSUnionType(node) { + tsPrintUnionOrIntersectionType(this, node, "|"); +} +function TSIntersectionType(node) { + tsPrintUnionOrIntersectionType(this, node, "&"); +} +function tsPrintUnionOrIntersectionType(printer, node, sep) { + printer.printJoin(node.types, node, { + separator() { + this.space(); + this.token(sep); + this.space(); + } + }); +} +function TSConditionalType(node) { + this.print(node.checkType); + this.space(); + this.word("extends"); + this.space(); + this.print(node.extendsType); + this.space(); + this.tokenChar(63); + this.space(); + this.print(node.trueType); + this.space(); + this.tokenChar(58); + this.space(); + this.print(node.falseType); +} +function TSInferType(node) { + this.token("infer"); + this.space(); + this.print(node.typeParameter); +} +function TSParenthesizedType(node) { + this.tokenChar(40); + this.print(node.typeAnnotation, node); + this.tokenChar(41); +} +function TSTypeOperator(node) { + this.word(node.operator); + this.space(); + this.print(node.typeAnnotation, node); +} +function TSIndexedAccessType(node) { + this.print(node.objectType, node, true); + this.tokenChar(91); + this.print(node.indexType, node); + this.tokenChar(93); +} +function TSMappedType(node) { + const { + nameType, + optional, + readonly, + typeParameter + } = node; + this.tokenChar(123); + this.space(); + if (readonly) { + tokenIfPlusMinus(this, readonly); + this.word("readonly"); + this.space(); + } + this.tokenChar(91); + this.word(typeParameter.name); + this.space(); + this.word("in"); + this.space(); + this.print(typeParameter.constraint, typeParameter); + if (nameType) { + this.space(); + this.word("as"); + this.space(); + this.print(nameType, node); + } + this.tokenChar(93); + if (optional) { + tokenIfPlusMinus(this, optional); + this.tokenChar(63); + } + this.tokenChar(58); + this.space(); + this.print(node.typeAnnotation, node); + this.space(); + this.tokenChar(125); +} +function tokenIfPlusMinus(self, tok) { + if (tok !== true) { + self.token(tok); + } +} +function TSLiteralType(node) { + this.print(node.literal, node); +} +function TSExpressionWithTypeArguments(node) { + this.print(node.expression, node); + this.print(node.typeParameters, node); +} +function TSInterfaceDeclaration(node) { + const { + declare, + id, + typeParameters, + extends: extendz, + body + } = node; + if (declare) { + this.word("declare"); + this.space(); + } + this.word("interface"); + this.space(); + this.print(id, node); + this.print(typeParameters, node); + if (extendz != null && extendz.length) { + this.space(); + this.word("extends"); + this.space(); + this.printList(extendz, node); + } + this.space(); + this.print(body, node); +} +function TSInterfaceBody(node) { + this.tsPrintTypeLiteralOrInterfaceBody(node.body, node); +} +function TSTypeAliasDeclaration(node) { + const { + declare, + id, + typeParameters, + typeAnnotation + } = node; + if (declare) { + this.word("declare"); + this.space(); + } + this.word("type"); + this.space(); + this.print(id, node); + this.print(typeParameters, node); + this.space(); + this.tokenChar(61); + this.space(); + this.print(typeAnnotation, node); + this.tokenChar(59); +} +function TSTypeExpression(node) { + var _expression$trailingC; + const { + type, + expression, + typeAnnotation + } = node; + const forceParens = !!((_expression$trailingC = expression.trailingComments) != null && _expression$trailingC.length); + this.print(expression, node, true, undefined, forceParens); + this.space(); + this.word(type === "TSAsExpression" ? "as" : "satisfies"); + this.space(); + this.print(typeAnnotation, node); +} +function TSTypeAssertion(node) { + const { + typeAnnotation, + expression + } = node; + this.tokenChar(60); + this.print(typeAnnotation, node); + this.tokenChar(62); + this.space(); + this.print(expression, node); +} +function TSInstantiationExpression(node) { + this.print(node.expression, node); + this.print(node.typeParameters, node); +} +function TSEnumDeclaration(node) { + const { + declare, + const: isConst, + id, + members + } = node; + if (declare) { + this.word("declare"); + this.space(); + } + if (isConst) { + this.word("const"); + this.space(); + } + this.word("enum"); + this.space(); + this.print(id, node); + this.space(); + tsPrintBraced(this, members, node); +} +function TSEnumMember(node) { + const { + id, + initializer + } = node; + this.print(id, node); + if (initializer) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(initializer, node); + } + this.tokenChar(44); +} +function TSModuleDeclaration(node) { + const { + declare, + id + } = node; + if (declare) { + this.word("declare"); + this.space(); + } + if (!node.global) { + this.word(id.type === "Identifier" ? "namespace" : "module"); + this.space(); + } + this.print(id, node); + if (!node.body) { + this.tokenChar(59); + return; + } + let body = node.body; + while (body.type === "TSModuleDeclaration") { + this.tokenChar(46); + this.print(body.id, body); + body = body.body; + } + this.space(); + this.print(body, node); +} +function TSModuleBlock(node) { + tsPrintBraced(this, node.body, node); +} +function TSImportType(node) { + const { + argument, + qualifier, + typeParameters + } = node; + this.word("import"); + this.tokenChar(40); + this.print(argument, node); + this.tokenChar(41); + if (qualifier) { + this.tokenChar(46); + this.print(qualifier, node); + } + if (typeParameters) { + this.print(typeParameters, node); + } +} +function TSImportEqualsDeclaration(node) { + const { + isExport, + id, + moduleReference + } = node; + if (isExport) { + this.word("export"); + this.space(); + } + this.word("import"); + this.space(); + this.print(id, node); + this.space(); + this.tokenChar(61); + this.space(); + this.print(moduleReference, node); + this.tokenChar(59); +} +function TSExternalModuleReference(node) { + this.token("require("); + this.print(node.expression, node); + this.tokenChar(41); +} +function TSNonNullExpression(node) { + this.print(node.expression, node); + this.tokenChar(33); +} +function TSExportAssignment(node) { + this.word("export"); + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.expression, node); + this.tokenChar(59); +} +function TSNamespaceExportDeclaration(node) { + this.word("export"); + this.space(); + this.word("as"); + this.space(); + this.word("namespace"); + this.space(); + this.print(node.id, node); +} +function tsPrintSignatureDeclarationBase(node) { + const { + typeParameters + } = node; + const parameters = node.parameters; + this.print(typeParameters, node); + this.tokenChar(40); + this._parameters(parameters, node); + this.tokenChar(41); + const returnType = node.typeAnnotation; + this.print(returnType, node); +} +function tsPrintClassMemberModifiers(node) { + const isField = node.type === "ClassAccessorProperty" || node.type === "ClassProperty"; + if (isField && node.declare) { + this.word("declare"); + this.space(); + } + if (node.accessibility) { + this.word(node.accessibility); + this.space(); + } + if (node.static) { + this.word("static"); + this.space(); + } + if (node.override) { + this.word("override"); + this.space(); + } + if (node.abstract) { + this.word("abstract"); + this.space(); + } + if (isField && node.readonly) { + this.word("readonly"); + this.space(); + } +} + +//# sourceMappingURL=typescript.js.map + + +/***/ }), + +/***/ 4426: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.CodeGenerator = void 0; +exports["default"] = generate; +var _sourceMap = __webpack_require__(5483); +var _printer = __webpack_require__(9589); + +class Generator extends _printer.default { + constructor(ast, opts = {}, code) { + const format = normalizeOptions(code, opts); + const map = opts.sourceMaps ? new _sourceMap.default(opts, code) : null; + super(format, map); + this.ast = void 0; + this.ast = ast; + } + + generate() { + return super.generate(this.ast); + } +} + +function normalizeOptions(code, opts) { + const format = { + auxiliaryCommentBefore: opts.auxiliaryCommentBefore, + auxiliaryCommentAfter: opts.auxiliaryCommentAfter, + shouldPrintComment: opts.shouldPrintComment, + retainLines: opts.retainLines, + retainFunctionParens: opts.retainFunctionParens, + comments: opts.comments == null || opts.comments, + compact: opts.compact, + minified: opts.minified, + concise: opts.concise, + indent: { + adjustMultilineComment: true, + style: " " + }, + jsescOption: Object.assign({ + quotes: "double", + wrap: true, + minimal: false + }, opts.jsescOption), + recordAndTupleSyntaxType: opts.recordAndTupleSyntaxType, + topicToken: opts.topicToken + }; + { + format.decoratorsBeforeExport = !!opts.decoratorsBeforeExport; + format.jsonCompatibleStrings = opts.jsonCompatibleStrings; + } + if (format.minified) { + format.compact = true; + format.shouldPrintComment = format.shouldPrintComment || (() => format.comments); + } else { + format.shouldPrintComment = format.shouldPrintComment || (value => format.comments || value.includes("@license") || value.includes("@preserve")); + } + if (format.compact === "auto") { + format.compact = code.length > 500000; + + if (format.compact) { + console.error("[BABEL] Note: The code generator has deoptimised the styling of " + `${opts.filename} as it exceeds the max of ${"500KB"}.`); + } + } + if (format.compact) { + format.indent.adjustMultilineComment = false; + } + const { + auxiliaryCommentBefore, + auxiliaryCommentAfter, + shouldPrintComment + } = format; + if (auxiliaryCommentBefore && !shouldPrintComment(auxiliaryCommentBefore)) { + format.auxiliaryCommentBefore = undefined; + } + if (auxiliaryCommentAfter && !shouldPrintComment(auxiliaryCommentAfter)) { + format.auxiliaryCommentAfter = undefined; + } + return format; +} + +class CodeGenerator { + constructor(ast, opts, code) { + this._generator = void 0; + this._generator = new Generator(ast, opts, code); + } + generate() { + return this._generator.generate(); + } +} + +exports.CodeGenerator = CodeGenerator; +function generate(ast, opts, code) { + const gen = new Generator(ast, opts, code); + return gen.generate(); +} + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 6971: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.needsParens = needsParens; +exports.needsWhitespace = needsWhitespace; +exports.needsWhitespaceAfter = needsWhitespaceAfter; +exports.needsWhitespaceBefore = needsWhitespaceBefore; +var whitespace = __webpack_require__(10); +var parens = __webpack_require__(7410); +var _t = __webpack_require__(2139); +const { + FLIPPED_ALIAS_KEYS, + isCallExpression, + isExpressionStatement, + isMemberExpression, + isNewExpression +} = _t; +function expandAliases(obj) { + const newObj = {}; + function add(type, func) { + const fn = newObj[type]; + newObj[type] = fn ? function (node, parent, stack) { + const result = fn(node, parent, stack); + return result == null ? func(node, parent, stack) : result; + } : func; + } + for (const type of Object.keys(obj)) { + const aliases = FLIPPED_ALIAS_KEYS[type]; + if (aliases) { + for (const alias of aliases) { + add(alias, obj[type]); + } + } else { + add(type, obj[type]); + } + } + return newObj; +} + +const expandedParens = expandAliases(parens); +const expandedWhitespaceNodes = expandAliases(whitespace.nodes); +function find(obj, node, parent, printStack) { + const fn = obj[node.type]; + return fn ? fn(node, parent, printStack) : null; +} +function isOrHasCallExpression(node) { + if (isCallExpression(node)) { + return true; + } + return isMemberExpression(node) && isOrHasCallExpression(node.object); +} +function needsWhitespace(node, parent, type) { + if (!node) return false; + if (isExpressionStatement(node)) { + node = node.expression; + } + const flag = find(expandedWhitespaceNodes, node, parent); + if (typeof flag === "number") { + return (flag & type) !== 0; + } + return false; +} +function needsWhitespaceBefore(node, parent) { + return needsWhitespace(node, parent, 1); +} +function needsWhitespaceAfter(node, parent) { + return needsWhitespace(node, parent, 2); +} +function needsParens(node, parent, printStack) { + if (!parent) return false; + if (isNewExpression(parent) && parent.callee === node) { + if (isOrHasCallExpression(node)) return true; + } + return find(expandedParens, node, parent, printStack); +} + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 7410: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.ArrowFunctionExpression = ArrowFunctionExpression; +exports.AssignmentExpression = AssignmentExpression; +exports.Binary = Binary; +exports.BinaryExpression = BinaryExpression; +exports.ClassExpression = ClassExpression; +exports.ConditionalExpression = ConditionalExpression; +exports.DoExpression = DoExpression; +exports.FunctionExpression = FunctionExpression; +exports.FunctionTypeAnnotation = FunctionTypeAnnotation; +exports.Identifier = Identifier; +exports.LogicalExpression = LogicalExpression; +exports.NullableTypeAnnotation = NullableTypeAnnotation; +exports.ObjectExpression = ObjectExpression; +exports.OptionalIndexedAccessType = OptionalIndexedAccessType; +exports.OptionalCallExpression = exports.OptionalMemberExpression = OptionalMemberExpression; +exports.SequenceExpression = SequenceExpression; +exports.TSTypeAssertion = exports.TSSatisfiesExpression = exports.TSAsExpression = TSAsExpression; +exports.TSInferType = TSInferType; +exports.TSInstantiationExpression = TSInstantiationExpression; +exports.TSIntersectionType = exports.TSUnionType = TSUnionType; +exports.UnaryLike = UnaryLike; +exports.IntersectionTypeAnnotation = exports.UnionTypeAnnotation = UnionTypeAnnotation; +exports.UpdateExpression = UpdateExpression; +exports.AwaitExpression = exports.YieldExpression = YieldExpression; +var _t = __webpack_require__(2139); +const { + isArrayTypeAnnotation, + isArrowFunctionExpression, + isAssignmentExpression, + isAwaitExpression, + isBinary, + isBinaryExpression, + isUpdateExpression, + isCallExpression, + isClass, + isClassExpression, + isConditional, + isConditionalExpression, + isExportDeclaration, + isExportDefaultDeclaration, + isExpressionStatement, + isFor, + isForInStatement, + isForOfStatement, + isForStatement, + isFunctionExpression, + isIfStatement, + isIndexedAccessType, + isIntersectionTypeAnnotation, + isLogicalExpression, + isMemberExpression, + isNewExpression, + isNullableTypeAnnotation, + isObjectPattern, + isOptionalCallExpression, + isOptionalMemberExpression, + isReturnStatement, + isSequenceExpression, + isSwitchStatement, + isTSArrayType, + isTSAsExpression, + isTSInstantiationExpression, + isTSIntersectionType, + isTSNonNullExpression, + isTSOptionalType, + isTSRestType, + isTSTypeAssertion, + isTSUnionType, + isTaggedTemplateExpression, + isThrowStatement, + isTypeAnnotation, + isUnaryLike, + isUnionTypeAnnotation, + isVariableDeclarator, + isWhileStatement, + isYieldExpression, + isTSSatisfiesExpression +} = _t; +const PRECEDENCE = { + "||": 0, + "??": 0, + "|>": 0, + "&&": 1, + "|": 2, + "^": 3, + "&": 4, + "==": 5, + "===": 5, + "!=": 5, + "!==": 5, + "<": 6, + ">": 6, + "<=": 6, + ">=": 6, + in: 6, + instanceof: 6, + ">>": 7, + "<<": 7, + ">>>": 7, + "+": 8, + "-": 8, + "*": 9, + "/": 9, + "%": 9, + "**": 10 +}; +function isTSTypeExpression(node) { + return isTSAsExpression(node) || isTSSatisfiesExpression(node) || isTSTypeAssertion(node); +} +const isClassExtendsClause = (node, parent) => isClass(parent, { + superClass: node +}); +const hasPostfixPart = (node, parent) => (isMemberExpression(parent) || isOptionalMemberExpression(parent)) && parent.object === node || (isCallExpression(parent) || isOptionalCallExpression(parent) || isNewExpression(parent)) && parent.callee === node || isTaggedTemplateExpression(parent) && parent.tag === node || isTSNonNullExpression(parent); +function NullableTypeAnnotation(node, parent) { + return isArrayTypeAnnotation(parent); +} +function FunctionTypeAnnotation(node, parent, printStack) { + if (printStack.length < 3) return; + return ( + isUnionTypeAnnotation(parent) || + isIntersectionTypeAnnotation(parent) || + isArrayTypeAnnotation(parent) || + isTypeAnnotation(parent) && + isArrowFunctionExpression(printStack[printStack.length - 3]) + ); +} +function UpdateExpression(node, parent) { + return hasPostfixPart(node, parent) || isClassExtendsClause(node, parent); +} +function ObjectExpression(node, parent, printStack) { + return isFirstInContext(printStack, 1 | 2); +} +function DoExpression(node, parent, printStack) { + return !node.async && isFirstInContext(printStack, 1); +} +function Binary(node, parent) { + if (node.operator === "**" && isBinaryExpression(parent, { + operator: "**" + })) { + return parent.left === node; + } + if (isClassExtendsClause(node, parent)) { + return true; + } + if (hasPostfixPart(node, parent) || isUnaryLike(parent) || isAwaitExpression(parent)) { + return true; + } + if (isBinary(parent)) { + const parentOp = parent.operator; + const parentPos = PRECEDENCE[parentOp]; + const nodeOp = node.operator; + const nodePos = PRECEDENCE[nodeOp]; + if ( + parentPos === nodePos && parent.right === node && !isLogicalExpression(parent) || parentPos > nodePos) { + return true; + } + } +} +function UnionTypeAnnotation(node, parent) { + return isArrayTypeAnnotation(parent) || isNullableTypeAnnotation(parent) || isIntersectionTypeAnnotation(parent) || isUnionTypeAnnotation(parent); +} +function OptionalIndexedAccessType(node, parent) { + return isIndexedAccessType(parent, { + objectType: node + }); +} +function TSAsExpression() { + return true; +} +function TSUnionType(node, parent) { + return isTSArrayType(parent) || isTSOptionalType(parent) || isTSIntersectionType(parent) || isTSUnionType(parent) || isTSRestType(parent); +} +function TSInferType(node, parent) { + return isTSArrayType(parent) || isTSOptionalType(parent); +} +function TSInstantiationExpression(node, parent) { + return (isCallExpression(parent) || isOptionalCallExpression(parent) || isNewExpression(parent) || isTSInstantiationExpression(parent)) && !!parent.typeParameters; +} +function BinaryExpression(node, parent) { + return node.operator === "in" && (isVariableDeclarator(parent) || isFor(parent)); +} +function SequenceExpression(node, parent) { + if ( + isForStatement(parent) || isThrowStatement(parent) || isReturnStatement(parent) || isIfStatement(parent) && parent.test === node || isWhileStatement(parent) && parent.test === node || isForInStatement(parent) && parent.right === node || isSwitchStatement(parent) && parent.discriminant === node || isExpressionStatement(parent) && parent.expression === node) { + return false; + } + + return true; +} +function YieldExpression(node, parent) { + return isBinary(parent) || isUnaryLike(parent) || hasPostfixPart(node, parent) || isAwaitExpression(parent) && isYieldExpression(node) || isConditionalExpression(parent) && node === parent.test || isClassExtendsClause(node, parent); +} +function ClassExpression(node, parent, printStack) { + return isFirstInContext(printStack, 1 | 4); +} +function UnaryLike(node, parent) { + return hasPostfixPart(node, parent) || isBinaryExpression(parent, { + operator: "**", + left: node + }) || isClassExtendsClause(node, parent); +} +function FunctionExpression(node, parent, printStack) { + return isFirstInContext(printStack, 1 | 4); +} +function ArrowFunctionExpression(node, parent) { + return isExportDeclaration(parent) || ConditionalExpression(node, parent); +} +function ConditionalExpression(node, parent) { + if (isUnaryLike(parent) || isBinary(parent) || isConditionalExpression(parent, { + test: node + }) || isAwaitExpression(parent) || isTSTypeExpression(parent)) { + return true; + } + return UnaryLike(node, parent); +} +function OptionalMemberExpression(node, parent) { + return isCallExpression(parent, { + callee: node + }) || isMemberExpression(parent, { + object: node + }); +} +function AssignmentExpression(node, parent) { + if (isObjectPattern(node.left)) { + return true; + } else { + return ConditionalExpression(node, parent); + } +} +function LogicalExpression(node, parent) { + if (isTSTypeExpression(parent)) return true; + switch (node.operator) { + case "||": + if (!isLogicalExpression(parent)) return false; + return parent.operator === "??" || parent.operator === "&&"; + case "&&": + return isLogicalExpression(parent, { + operator: "??" + }); + case "??": + return isLogicalExpression(parent) && parent.operator !== "??"; + } +} +function Identifier(node, parent, printStack) { + var _node$extra; + if ((_node$extra = node.extra) != null && _node$extra.parenthesized && isAssignmentExpression(parent, { + left: node + }) && (isFunctionExpression(parent.right) || isClassExpression(parent.right)) && parent.right.id == null) { + return true; + } + if (node.name === "let") { + const isFollowedByBracket = isMemberExpression(parent, { + object: node, + computed: true + }) || isOptionalMemberExpression(parent, { + object: node, + computed: true, + optional: false + }); + return isFirstInContext(printStack, isFollowedByBracket ? 1 | 8 | 16 | 32 : 32); + } + + return node.name === "async" && isForOfStatement(parent) && node === parent.left; +} + +function isFirstInContext(printStack, checkParam) { + const expressionStatement = checkParam & 1; + const arrowBody = checkParam & 2; + const exportDefault = checkParam & 4; + const forHead = checkParam & 8; + const forInHead = checkParam & 16; + const forOfHead = checkParam & 32; + let i = printStack.length - 1; + if (i <= 0) return; + let node = printStack[i]; + i--; + let parent = printStack[i]; + while (i >= 0) { + if (expressionStatement && isExpressionStatement(parent, { + expression: node + }) || exportDefault && isExportDefaultDeclaration(parent, { + declaration: node + }) || arrowBody && isArrowFunctionExpression(parent, { + body: node + }) || forHead && isForStatement(parent, { + init: node + }) || forInHead && isForInStatement(parent, { + left: node + }) || forOfHead && isForOfStatement(parent, { + left: node + })) { + return true; + } + if (i > 0 && (hasPostfixPart(node, parent) && !isNewExpression(parent) || isSequenceExpression(parent) && parent.expressions[0] === node || isUpdateExpression(parent) && !parent.prefix || isConditional(parent, { + test: node + }) || isBinary(parent, { + left: node + }) || isAssignmentExpression(parent, { + left: node + }))) { + node = parent; + i--; + parent = printStack[i]; + } else { + return false; + } + } + return false; +} + +//# sourceMappingURL=parentheses.js.map + + +/***/ }), + +/***/ 10: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.nodes = void 0; +var _t = __webpack_require__(2139); +const { + FLIPPED_ALIAS_KEYS, + isArrayExpression, + isAssignmentExpression, + isBinary, + isBlockStatement, + isCallExpression, + isFunction, + isIdentifier, + isLiteral, + isMemberExpression, + isObjectExpression, + isOptionalCallExpression, + isOptionalMemberExpression, + isStringLiteral +} = _t; +function crawlInternal(node, state) { + if (!node) return state; + if (isMemberExpression(node) || isOptionalMemberExpression(node)) { + crawlInternal(node.object, state); + if (node.computed) crawlInternal(node.property, state); + } else if (isBinary(node) || isAssignmentExpression(node)) { + crawlInternal(node.left, state); + crawlInternal(node.right, state); + } else if (isCallExpression(node) || isOptionalCallExpression(node)) { + state.hasCall = true; + crawlInternal(node.callee, state); + } else if (isFunction(node)) { + state.hasFunction = true; + } else if (isIdentifier(node)) { + state.hasHelper = + state.hasHelper || node.callee && isHelper(node.callee); + } + return state; +} + +function crawl(node) { + return crawlInternal(node, { + hasCall: false, + hasFunction: false, + hasHelper: false + }); +} + +function isHelper(node) { + if (!node) return false; + if (isMemberExpression(node)) { + return isHelper(node.object) || isHelper(node.property); + } else if (isIdentifier(node)) { + return node.name === "require" || node.name.charCodeAt(0) === 95; + } else if (isCallExpression(node)) { + return isHelper(node.callee); + } else if (isBinary(node) || isAssignmentExpression(node)) { + return isIdentifier(node.left) && isHelper(node.left) || isHelper(node.right); + } else { + return false; + } +} +function isType(node) { + return isLiteral(node) || isObjectExpression(node) || isArrayExpression(node) || isIdentifier(node) || isMemberExpression(node); +} + +const nodes = { + + AssignmentExpression(node) { + const state = crawl(node.right); + if (state.hasCall && state.hasHelper || state.hasFunction) { + return state.hasFunction ? 1 | 2 : 2; + } + }, + + SwitchCase(node, parent) { + return (!!node.consequent.length || parent.cases[0] === node ? 1 : 0) | (!node.consequent.length && parent.cases[parent.cases.length - 1] === node ? 2 : 0); + }, + + LogicalExpression(node) { + if (isFunction(node.left) || isFunction(node.right)) { + return 2; + } + }, + + Literal(node) { + if (isStringLiteral(node) && node.value === "use strict") { + return 2; + } + }, + + CallExpression(node) { + if (isFunction(node.callee) || isHelper(node)) { + return 1 | 2; + } + }, + OptionalCallExpression(node) { + if (isFunction(node.callee)) { + return 1 | 2; + } + }, + + VariableDeclaration(node) { + for (let i = 0; i < node.declarations.length; i++) { + const declar = node.declarations[i]; + let enabled = isHelper(declar.id) && !isType(declar.init); + if (!enabled && declar.init) { + const state = crawl(declar.init); + enabled = isHelper(declar.init) && state.hasCall || state.hasFunction; + } + if (enabled) { + return 1 | 2; + } + } + }, + + IfStatement(node) { + if (isBlockStatement(node.consequent)) { + return 1 | 2; + } + } +}; + +exports.nodes = nodes; + +nodes.ObjectProperty = nodes.ObjectTypeProperty = nodes.ObjectMethod = function (node, parent) { + if (parent.properties[0] === node) { + return 1; + } +}; +nodes.ObjectTypeCallProperty = function (node, parent) { + var _parent$properties; + if (parent.callProperties[0] === node && !((_parent$properties = parent.properties) != null && _parent$properties.length)) { + return 1; + } +}; +nodes.ObjectTypeIndexer = function (node, parent) { + var _parent$properties2, _parent$callPropertie; + if (parent.indexers[0] === node && !((_parent$properties2 = parent.properties) != null && _parent$properties2.length) && !((_parent$callPropertie = parent.callProperties) != null && _parent$callPropertie.length)) { + return 1; + } +}; +nodes.ObjectTypeInternalSlot = function (node, parent) { + var _parent$properties3, _parent$callPropertie2, _parent$indexers; + if (parent.internalSlots[0] === node && !((_parent$properties3 = parent.properties) != null && _parent$properties3.length) && !((_parent$callPropertie2 = parent.callProperties) != null && _parent$callPropertie2.length) && !((_parent$indexers = parent.indexers) != null && _parent$indexers.length)) { + return 1; + } +}; + +[["Function", true], ["Class", true], ["Loop", true], ["LabeledStatement", true], ["SwitchStatement", true], ["TryStatement", true]].forEach(function ([type, amounts]) { + [type].concat(FLIPPED_ALIAS_KEYS[type] || []).forEach(function (type) { + const ret = amounts ? 1 | 2 : 0; + nodes[type] = () => ret; + }); +}); + +//# sourceMappingURL=whitespace.js.map + + +/***/ }), + +/***/ 9589: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +var _buffer = __webpack_require__(2998); +var n = __webpack_require__(6971); +var _t = __webpack_require__(2139); +var generatorFunctions = __webpack_require__(4747); +const { + isFunction, + isStatement, + isClassBody, + isTSInterfaceBody, + isTSEnumDeclaration +} = _t; +const SCIENTIFIC_NOTATION = /e/i; +const ZERO_DECIMAL_INTEGER = /\.0+$/; +const NON_DECIMAL_LITERAL = /^0[box]/; +const PURE_ANNOTATION_RE = /^\s*[@#]__PURE__\s*$/; +const HAS_NEWLINE = /[\n\r\u2028\u2029]/; +const HAS_BlOCK_COMMENT_END = /\*\//; +const { + needsParens +} = n; +class Printer { + constructor(format, map) { + this.inForStatementInitCounter = 0; + this._printStack = []; + this._indent = 0; + this._indentChar = 0; + this._indentRepeat = 0; + this._insideAux = false; + this._parenPushNewlineState = null; + this._noLineTerminator = false; + this._printAuxAfterOnNextUserNode = false; + this._printedComments = new Set(); + this._endsWithInteger = false; + this._endsWithWord = false; + this._lastCommentLine = 0; + this._endsWithInnerRaw = false; + this._indentInnerComments = true; + this.format = format; + this._buf = new _buffer.default(map); + this._indentChar = format.indent.style.charCodeAt(0); + this._indentRepeat = format.indent.style.length; + } + generate(ast) { + this.print(ast); + this._maybeAddAuxComment(); + return this._buf.get(); + } + + indent() { + if (this.format.compact || this.format.concise) return; + this._indent++; + } + + dedent() { + if (this.format.compact || this.format.concise) return; + this._indent--; + } + + semicolon(force = false) { + this._maybeAddAuxComment(); + if (force) { + this._appendChar(59); + } else { + this._queue(59); + } + this._noLineTerminator = false; + } + + rightBrace() { + if (this.format.minified) { + this._buf.removeLastSemicolon(); + } + this.tokenChar(125); + } + + space(force = false) { + if (this.format.compact) return; + if (force) { + this._space(); + } else if (this._buf.hasContent()) { + const lastCp = this.getLastChar(); + if (lastCp !== 32 && lastCp !== 10) { + this._space(); + } + } + } + + word(str, noLineTerminatorAfter = false) { + this._maybePrintInnerComments(); + + if (this._endsWithWord || str.charCodeAt(0) === 47 && this.endsWith(47)) { + this._space(); + } + this._maybeAddAuxComment(); + this._append(str, false); + this._endsWithWord = true; + this._noLineTerminator = noLineTerminatorAfter; + } + + number(str) { + this.word(str); + + this._endsWithInteger = Number.isInteger(+str) && !NON_DECIMAL_LITERAL.test(str) && !SCIENTIFIC_NOTATION.test(str) && !ZERO_DECIMAL_INTEGER.test(str) && str.charCodeAt(str.length - 1) !== 46; + } + + token(str, maybeNewline = false) { + this._maybePrintInnerComments(); + + const lastChar = this.getLastChar(); + const strFirst = str.charCodeAt(0); + if (lastChar === 33 && str === "--" || + strFirst === 43 && lastChar === 43 || strFirst === 45 && lastChar === 45 || + strFirst === 46 && this._endsWithInteger) { + this._space(); + } + this._maybeAddAuxComment(); + this._append(str, maybeNewline); + this._noLineTerminator = false; + } + tokenChar(char) { + this._maybePrintInnerComments(); + + const lastChar = this.getLastChar(); + if ( + char === 43 && lastChar === 43 || char === 45 && lastChar === 45 || + char === 46 && this._endsWithInteger) { + this._space(); + } + this._maybeAddAuxComment(); + this._appendChar(char); + this._noLineTerminator = false; + } + + newline(i = 1, force) { + if (i <= 0) return; + if (!force) { + if (this.format.retainLines || this.format.compact) return; + if (this.format.concise) { + this.space(); + return; + } + } + if (i > 2) i = 2; + + i -= this._buf.getNewlineCount(); + for (let j = 0; j < i; j++) { + this._newline(); + } + return; + } + endsWith(char) { + return this.getLastChar() === char; + } + getLastChar() { + return this._buf.getLastChar(); + } + endsWithCharAndNewline() { + return this._buf.endsWithCharAndNewline(); + } + removeTrailingNewline() { + this._buf.removeTrailingNewline(); + } + exactSource(loc, cb) { + if (!loc) return cb(); + this._catchUp("start", loc); + this._buf.exactSource(loc, cb); + } + source(prop, loc) { + if (!loc) return; + this._catchUp(prop, loc); + this._buf.source(prop, loc); + } + sourceWithOffset(prop, loc, lineOffset, columnOffset) { + if (!loc) return; + this._catchUp(prop, loc); + this._buf.sourceWithOffset(prop, loc, lineOffset, columnOffset); + } + withSource(prop, loc, cb) { + if (!loc) return cb(); + this._catchUp(prop, loc); + this._buf.withSource(prop, loc, cb); + } + _space() { + this._queue(32); + } + _newline() { + this._queue(10); + } + _append(str, maybeNewline) { + this._maybeAddParen(str); + this._maybeIndent(str.charCodeAt(0)); + this._buf.append(str, maybeNewline); + this._endsWithWord = false; + this._endsWithInteger = false; + } + _appendChar(char) { + this._maybeAddParenChar(char); + this._maybeIndent(char); + this._buf.appendChar(char); + this._endsWithWord = false; + this._endsWithInteger = false; + } + _queue(char) { + this._maybeAddParenChar(char); + this._maybeIndent(char); + this._buf.queue(char); + this._endsWithWord = false; + this._endsWithInteger = false; + } + _maybeIndent(firstChar) { + if (this._indent && firstChar !== 10 && this.endsWith(10)) { + this._buf.queueIndentation(this._indentChar, this._getIndent()); + } + } + _shouldIndent(firstChar) { + if (this._indent && firstChar !== 10 && this.endsWith(10)) { + return true; + } + } + _maybeAddParenChar(char) { + const parenPushNewlineState = this._parenPushNewlineState; + if (!parenPushNewlineState) return; + + if (char === 32) { + return; + } + + if (char !== 10) { + this._parenPushNewlineState = null; + return; + } + this.tokenChar(40); + this.indent(); + parenPushNewlineState.printed = true; + } + _maybeAddParen(str) { + const parenPushNewlineState = this._parenPushNewlineState; + if (!parenPushNewlineState) return; + + const len = str.length; + let i; + for (i = 0; i < len && str.charCodeAt(i) === 32; i++) continue; + if (i === len) { + return; + } + + const cha = str.charCodeAt(i); + if (cha !== 10) { + if ( + cha !== 47 || + i + 1 === len) { + this._parenPushNewlineState = null; + return; + } + const chaPost = str.charCodeAt(i + 1); + if (chaPost === 42) { + + if (PURE_ANNOTATION_RE.test(str.slice(i + 2, len - 2))) { + return; + } + + } else if (chaPost !== 47) { + this._parenPushNewlineState = null; + return; + } + } + this.tokenChar(40); + this.indent(); + parenPushNewlineState.printed = true; + } + catchUp(line) { + if (!this.format.retainLines) return; + + const count = line - this._buf.getCurrentLine(); + for (let i = 0; i < count; i++) { + this._newline(); + } + } + _catchUp(prop, loc) { + if (!this.format.retainLines) return; + + const pos = loc ? loc[prop] : null; + if ((pos == null ? void 0 : pos.line) != null) { + const count = pos.line - this._buf.getCurrentLine(); + for (let i = 0; i < count; i++) { + this._newline(); + } + } + } + + _getIndent() { + return this._indentRepeat * this._indent; + } + printTerminatorless(node, parent, isLabel) { + if (isLabel) { + this._noLineTerminator = true; + this.print(node, parent); + } else { + const terminatorState = { + printed: false + }; + this._parenPushNewlineState = terminatorState; + this.print(node, parent); + if (terminatorState.printed) { + this.dedent(); + this.newline(); + this.tokenChar(41); + } + } + } + print(node, parent, noLineTerminatorAfter, + trailingCommentsLineOffset, forceParens) { + if (!node) return; + this._endsWithInnerRaw = false; + const nodeType = node.type; + const format = this.format; + const oldConcise = format.concise; + if ( + node._compact) { + format.concise = true; + } + const printMethod = this[nodeType]; + if (printMethod === undefined) { + throw new ReferenceError(`unknown node of type ${JSON.stringify(nodeType)} with constructor ${JSON.stringify(node.constructor.name)}`); + } + this._printStack.push(node); + const oldInAux = this._insideAux; + this._insideAux = node.loc == undefined; + this._maybeAddAuxComment(this._insideAux && !oldInAux); + let shouldPrintParens = false; + if (forceParens) { + shouldPrintParens = true; + } else if (format.retainFunctionParens && nodeType === "FunctionExpression" && node.extra && node.extra.parenthesized) { + shouldPrintParens = true; + } else { + shouldPrintParens = needsParens(node, parent, this._printStack); + } + if (shouldPrintParens) { + this.tokenChar(40); + this._endsWithInnerRaw = false; + } + this._lastCommentLine = 0; + this._printLeadingComments(node, parent); + const loc = nodeType === "Program" || nodeType === "File" ? null : node.loc; + this.exactSource(loc, printMethod.bind(this, node, parent)); + if (shouldPrintParens) { + this._printTrailingComments(node, parent); + this.tokenChar(41); + this._noLineTerminator = noLineTerminatorAfter; + } else if (noLineTerminatorAfter && !this._noLineTerminator) { + this._noLineTerminator = true; + this._printTrailingComments(node, parent); + } else { + this._printTrailingComments(node, parent, trailingCommentsLineOffset); + } + + this._printStack.pop(); + format.concise = oldConcise; + this._insideAux = oldInAux; + this._endsWithInnerRaw = false; + } + _maybeAddAuxComment(enteredPositionlessNode) { + if (enteredPositionlessNode) this._printAuxBeforeComment(); + if (!this._insideAux) this._printAuxAfterComment(); + } + _printAuxBeforeComment() { + if (this._printAuxAfterOnNextUserNode) return; + this._printAuxAfterOnNextUserNode = true; + const comment = this.format.auxiliaryCommentBefore; + if (comment) { + this._printComment({ + type: "CommentBlock", + value: comment + }, 0); + } + } + _printAuxAfterComment() { + if (!this._printAuxAfterOnNextUserNode) return; + this._printAuxAfterOnNextUserNode = false; + const comment = this.format.auxiliaryCommentAfter; + if (comment) { + this._printComment({ + type: "CommentBlock", + value: comment + }, 0); + } + } + getPossibleRaw(node) { + const extra = node.extra; + if (extra && extra.raw != null && extra.rawValue != null && node.value === extra.rawValue) { + return extra.raw; + } + } + printJoin(nodes, parent, opts = {}) { + if (!(nodes != null && nodes.length)) return; + if (opts.indent) this.indent(); + const newlineOpts = { + addNewlines: opts.addNewlines, + nextNodeStartLine: 0 + }; + const separator = opts.separator ? opts.separator.bind(this) : null; + const len = nodes.length; + for (let i = 0; i < len; i++) { + const node = nodes[i]; + if (!node) continue; + if (opts.statement) this._printNewline(i === 0, newlineOpts); + this.print(node, parent, undefined, opts.trailingCommentsLineOffset || 0); + opts.iterator == null ? void 0 : opts.iterator(node, i); + if (i < len - 1) separator == null ? void 0 : separator(); + if (opts.statement) { + if (i + 1 === len) { + this.newline(1); + } else { + var _nextNode$loc; + const nextNode = nodes[i + 1]; + newlineOpts.nextNodeStartLine = ((_nextNode$loc = nextNode.loc) == null ? void 0 : _nextNode$loc.start.line) || 0; + this._printNewline(true, newlineOpts); + } + } + } + if (opts.indent) this.dedent(); + } + printAndIndentOnComments(node, parent) { + const indent = node.leadingComments && node.leadingComments.length > 0; + if (indent) this.indent(); + this.print(node, parent); + if (indent) this.dedent(); + } + printBlock(parent) { + const node = parent.body; + if (node.type !== "EmptyStatement") { + this.space(); + } + this.print(node, parent); + } + _printTrailingComments(node, parent, lineOffset) { + const { + innerComments, + trailingComments + } = node; + if (innerComments != null && innerComments.length) { + this._printComments(2, innerComments, node, parent, lineOffset); + } + if (trailingComments != null && trailingComments.length) { + this._printComments(2, trailingComments, node, parent, lineOffset); + } + } + _printLeadingComments(node, parent) { + const comments = node.leadingComments; + if (!(comments != null && comments.length)) return; + this._printComments(0, comments, node, parent); + } + _maybePrintInnerComments() { + if (this._endsWithInnerRaw) this.printInnerComments(); + this._endsWithInnerRaw = true; + this._indentInnerComments = true; + } + printInnerComments() { + const node = this._printStack[this._printStack.length - 1]; + const comments = node.innerComments; + if (!(comments != null && comments.length)) return; + const hasSpace = this.endsWith(32); + const indent = this._indentInnerComments; + const printedCommentsCount = this._printedComments.size; + if (indent) this.indent(); + this._printComments(1, comments, node); + if (hasSpace && printedCommentsCount !== this._printedComments.size) { + this.space(); + } + if (indent) this.dedent(); + } + noIndentInnerCommentsHere() { + this._indentInnerComments = false; + } + printSequence(nodes, parent, opts = {}) { + opts.statement = true; + return this.printJoin(nodes, parent, opts); + } + printList(items, parent, opts = {}) { + if (opts.separator == null) { + opts.separator = commaSeparator; + } + return this.printJoin(items, parent, opts); + } + _printNewline(newLine, opts) { + if (this.format.retainLines || this.format.compact) return; + + if (this.format.concise) { + this.space(); + return; + } + if (!newLine) { + return; + } + const startLine = opts.nextNodeStartLine; + const lastCommentLine = this._lastCommentLine; + if (startLine > 0 && lastCommentLine > 0) { + const offset = startLine - lastCommentLine; + if (offset >= 0) { + this.newline(offset || 1); + return; + } + } + + if (this._buf.hasContent()) { + + this.newline(1); + } + } + + _shouldPrintComment(comment) { + if (comment.ignore) return 0; + if (this._printedComments.has(comment)) return 0; + if (this._noLineTerminator && (HAS_NEWLINE.test(comment.value) || HAS_BlOCK_COMMENT_END.test(comment.value))) { + return 2; + } + this._printedComments.add(comment); + if (!this.format.shouldPrintComment(comment.value)) { + return 0; + } + return 1; + } + _printComment(comment, skipNewLines) { + const noLineTerminator = this._noLineTerminator; + const isBlockComment = comment.type === "CommentBlock"; + + const printNewLines = isBlockComment && skipNewLines !== 1 && !this._noLineTerminator; + if (printNewLines && this._buf.hasContent() && skipNewLines !== 2) { + this.newline(1); + } + const lastCharCode = this.getLastChar(); + if (lastCharCode !== 91 && lastCharCode !== 123) { + this.space(); + } + let val; + if (isBlockComment) { + val = `/*${comment.value}*/`; + if (this.format.indent.adjustMultilineComment) { + var _comment$loc; + const offset = (_comment$loc = comment.loc) == null ? void 0 : _comment$loc.start.column; + if (offset) { + const newlineRegex = new RegExp("\\n\\s{1," + offset + "}", "g"); + val = val.replace(newlineRegex, "\n"); + } + let indentSize = this.format.retainLines ? 0 : this._buf.getCurrentColumn(); + if (this._shouldIndent(47) || this.format.retainLines) { + indentSize += this._getIndent(); + } + val = val.replace(/\n(?!$)/g, `\n${" ".repeat(indentSize)}`); + } + } else if (!noLineTerminator) { + val = `//${comment.value}`; + } else { + val = `/*${comment.value}*/`; + } + + if (this.endsWith(47)) this._space(); + this.source("start", comment.loc); + this._append(val, isBlockComment); + if (!isBlockComment && !noLineTerminator) { + this.newline(1, true); + } + if (printNewLines && skipNewLines !== 3) { + this.newline(1); + } + } + _printComments(type, comments, node, parent, lineOffset = 0) { + const nodeLoc = node.loc; + const len = comments.length; + let hasLoc = !!nodeLoc; + const nodeStartLine = hasLoc ? nodeLoc.start.line : 0; + const nodeEndLine = hasLoc ? nodeLoc.end.line : 0; + let lastLine = 0; + let leadingCommentNewline = 0; + const maybeNewline = this._noLineTerminator ? function () {} : this.newline.bind(this); + for (let i = 0; i < len; i++) { + const comment = comments[i]; + const shouldPrint = this._shouldPrintComment(comment); + if (shouldPrint === 2) { + hasLoc = false; + break; + } + if (hasLoc && comment.loc && shouldPrint === 1) { + const commentStartLine = comment.loc.start.line; + const commentEndLine = comment.loc.end.line; + if (type === 0) { + let offset = 0; + if (i === 0) { + if (this._buf.hasContent() && (comment.type === "CommentLine" || commentStartLine != commentEndLine)) { + offset = leadingCommentNewline = 1; + } + } else { + offset = commentStartLine - lastLine; + } + lastLine = commentEndLine; + maybeNewline(offset); + this._printComment(comment, 1); + if (i + 1 === len) { + maybeNewline(Math.max(nodeStartLine - lastLine, leadingCommentNewline)); + lastLine = nodeStartLine; + } + } else if (type === 1) { + const offset = commentStartLine - (i === 0 ? nodeStartLine : lastLine); + lastLine = commentEndLine; + maybeNewline(offset); + this._printComment(comment, 1); + if (i + 1 === len) { + maybeNewline(Math.min(1, nodeEndLine - lastLine)); + lastLine = nodeEndLine; + } + } else { + const offset = commentStartLine - (i === 0 ? nodeEndLine - lineOffset : lastLine); + lastLine = commentEndLine; + maybeNewline(offset); + this._printComment(comment, 1); + } + } else { + hasLoc = false; + if (shouldPrint !== 1) { + continue; + } + if (len === 1) { + const singleLine = comment.loc ? comment.loc.start.line === comment.loc.end.line : !HAS_NEWLINE.test(comment.value); + const shouldSkipNewline = singleLine && !isStatement(node) && !isClassBody(parent) && !isTSInterfaceBody(parent) && !isTSEnumDeclaration(parent); + if (type === 0) { + this._printComment(comment, shouldSkipNewline && node.type !== "ObjectExpression" || singleLine && isFunction(parent, { + body: node + }) ? 1 : 0); + } else if (shouldSkipNewline && type === 2) { + this._printComment(comment, 1); + } else { + this._printComment(comment, 0); + } + } else if (type === 1 && !(node.type === "ObjectExpression" && node.properties.length > 1) && node.type !== "ClassBody" && node.type !== "TSInterfaceBody") { + + this._printComment(comment, i === 0 ? 2 : i === len - 1 ? 3 : 0); + } else { + this._printComment(comment, 0); + } + } + } + if (type === 2 && hasLoc && lastLine) { + this._lastCommentLine = lastLine; + } + } +} + +Object.assign(Printer.prototype, generatorFunctions); +{ + Printer.prototype.Noop = function Noop() {}; +} +var _default = Printer; +exports["default"] = _default; +function commaSeparator() { + this.tokenChar(44); + this.space(); +} + +//# sourceMappingURL=printer.js.map + + +/***/ }), + +/***/ 5483: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +var _genMapping = __webpack_require__(5937); + +class SourceMap { + + constructor(opts, code) { + var _opts$sourceFileName; + this._map = void 0; + this._rawMappings = void 0; + this._sourceFileName = void 0; + this._lastGenLine = 0; + this._lastSourceLine = 0; + this._lastSourceColumn = 0; + const map = this._map = new _genMapping.GenMapping({ + sourceRoot: opts.sourceRoot + }); + this._sourceFileName = (_opts$sourceFileName = opts.sourceFileName) == null ? void 0 : _opts$sourceFileName.replace(/\\/g, "/"); + this._rawMappings = undefined; + if (typeof code === "string") { + (0, _genMapping.setSourceContent)(map, this._sourceFileName, code); + } else if (typeof code === "object") { + Object.keys(code).forEach(sourceFileName => { + (0, _genMapping.setSourceContent)(map, sourceFileName.replace(/\\/g, "/"), code[sourceFileName]); + }); + } + } + + get() { + return (0, _genMapping.toEncodedMap)(this._map); + } + getDecoded() { + return (0, _genMapping.toDecodedMap)(this._map); + } + getRawMappings() { + return this._rawMappings || (this._rawMappings = (0, _genMapping.allMappings)(this._map)); + } + + mark(generated, line, column, identifierName, filename) { + this._rawMappings = undefined; + (0, _genMapping.maybeAddMapping)(this._map, { + name: identifierName, + generated, + source: line == null ? undefined : (filename == null ? void 0 : filename.replace(/\\/g, "/")) || this._sourceFileName, + original: line == null ? undefined : { + line: line, + column: column + } + }); + } +} +exports["default"] = SourceMap; + +//# sourceMappingURL=source-map.js.map + + +/***/ }), + +/***/ 6349: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.getInclusionReasons = getInclusionReasons; +var _semver = __webpack_require__(8999); +var _pretty = __webpack_require__(8651); +var _utils = __webpack_require__(2864); +function getInclusionReasons(item, targetVersions, list) { + const minVersions = list[item] || {}; + return Object.keys(targetVersions).reduce((result, env) => { + const minVersion = (0, _utils.getLowestImplementedVersion)(minVersions, env); + const targetVersion = targetVersions[env]; + if (!minVersion) { + result[env] = (0, _pretty.prettifyVersion)(targetVersion); + } else { + const minIsUnreleased = (0, _utils.isUnreleasedVersion)(minVersion, env); + const targetIsUnreleased = (0, _utils.isUnreleasedVersion)(targetVersion, env); + if (!targetIsUnreleased && (minIsUnreleased || _semver.lt(targetVersion.toString(), (0, _utils.semverify)(minVersion)))) { + result[env] = (0, _pretty.prettifyVersion)(targetVersion); + } + } + return result; + }, {}); +} + +//# sourceMappingURL=debug.js.map + + +/***/ }), + +/***/ 7611: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = filterItems; +exports.isRequired = isRequired; +exports.targetsSupported = targetsSupported; +var _semver = __webpack_require__(8999); +var _plugins = __webpack_require__(7203); +var _utils = __webpack_require__(2864); +function targetsSupported(target, support) { + const targetEnvironments = Object.keys(target); + if (targetEnvironments.length === 0) { + return false; + } + const unsupportedEnvironments = targetEnvironments.filter(environment => { + const lowestImplementedVersion = (0, _utils.getLowestImplementedVersion)(support, environment); + + if (!lowestImplementedVersion) { + return true; + } + const lowestTargetedVersion = target[environment]; + + if ((0, _utils.isUnreleasedVersion)(lowestTargetedVersion, environment)) { + return false; + } + + if ((0, _utils.isUnreleasedVersion)(lowestImplementedVersion, environment)) { + return true; + } + if (!_semver.valid(lowestTargetedVersion.toString())) { + throw new Error(`Invalid version passed for target "${environment}": "${lowestTargetedVersion}". ` + "Versions must be in semver format (major.minor.patch)"); + } + return _semver.gt((0, _utils.semverify)(lowestImplementedVersion), lowestTargetedVersion.toString()); + }); + return unsupportedEnvironments.length === 0; +} +function isRequired(name, targets, { + compatData = _plugins, + includes, + excludes +} = {}) { + if (excludes != null && excludes.has(name)) return false; + if (includes != null && includes.has(name)) return true; + return !targetsSupported(targets, compatData[name]); +} +function filterItems(list, includes, excludes, targets, defaultIncludes, defaultExcludes, pluginSyntaxMap) { + const result = new Set(); + const options = { + compatData: list, + includes, + excludes + }; + for (const item in list) { + if (isRequired(item, targets, options)) { + result.add(item); + } else if (pluginSyntaxMap) { + const shippedProposalsSyntax = pluginSyntaxMap.get(item); + if (shippedProposalsSyntax) { + result.add(shippedProposalsSyntax); + } + } + } + if (defaultIncludes) { + defaultIncludes.forEach(item => !excludes.has(item) && result.add(item)); + } + if (defaultExcludes) { + defaultExcludes.forEach(item => !includes.has(item) && result.delete(item)); + } + return result; +} + +//# sourceMappingURL=filter-items.js.map + + +/***/ }), + +/***/ 6006: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +Object.defineProperty(exports, "TargetNames", ({ + enumerable: true, + get: function () { + return _options.TargetNames; + } +})); +exports["default"] = getTargets; +Object.defineProperty(exports, "filterItems", ({ + enumerable: true, + get: function () { + return _filterItems.default; + } +})); +Object.defineProperty(exports, "getInclusionReasons", ({ + enumerable: true, + get: function () { + return _debug.getInclusionReasons; + } +})); +exports.isBrowsersQueryValid = isBrowsersQueryValid; +Object.defineProperty(exports, "isRequired", ({ + enumerable: true, + get: function () { + return _filterItems.isRequired; + } +})); +Object.defineProperty(exports, "prettifyTargets", ({ + enumerable: true, + get: function () { + return _pretty.prettifyTargets; + } +})); +Object.defineProperty(exports, "unreleasedLabels", ({ + enumerable: true, + get: function () { + return _targets.unreleasedLabels; + } +})); +var _browserslist = __webpack_require__(2333); +var _helperValidatorOption = __webpack_require__(1200); +var _nativeModules = __webpack_require__(8349); +var _lruCache = __webpack_require__(4543); +var _utils = __webpack_require__(2864); +var _targets = __webpack_require__(6974); +var _options = __webpack_require__(3267); +var _pretty = __webpack_require__(8651); +var _debug = __webpack_require__(6349); +var _filterItems = __webpack_require__(7611); +const ESM_SUPPORT = _nativeModules["es6.module"]; +const v = new _helperValidatorOption.OptionValidator("@babel/helper-compilation-targets"); +function validateTargetNames(targets) { + const validTargets = Object.keys(_options.TargetNames); + for (const target of Object.keys(targets)) { + if (!(target in _options.TargetNames)) { + throw new Error(v.formatMessage(`'${target}' is not a valid target +- Did you mean '${(0, _helperValidatorOption.findSuggestion)(target, validTargets)}'?`)); + } + } + return targets; +} +function isBrowsersQueryValid(browsers) { + return typeof browsers === "string" || Array.isArray(browsers) && browsers.every(b => typeof b === "string"); +} +function validateBrowsers(browsers) { + v.invariant(browsers === undefined || isBrowsersQueryValid(browsers), `'${String(browsers)}' is not a valid browserslist query`); + return browsers; +} +function getLowestVersions(browsers) { + return browsers.reduce((all, browser) => { + const [browserName, browserVersion] = browser.split(" "); + const target = _targets.browserNameMap[browserName]; + if (!target) { + return all; + } + try { + const splitVersion = browserVersion.split("-")[0].toLowerCase(); + const isSplitUnreleased = (0, _utils.isUnreleasedVersion)(splitVersion, target); + if (!all[target]) { + all[target] = isSplitUnreleased ? splitVersion : (0, _utils.semverify)(splitVersion); + return all; + } + const version = all[target]; + const isUnreleased = (0, _utils.isUnreleasedVersion)(version, target); + if (isUnreleased && isSplitUnreleased) { + all[target] = (0, _utils.getLowestUnreleased)(version, splitVersion, target); + } else if (isUnreleased) { + all[target] = (0, _utils.semverify)(splitVersion); + } else if (!isUnreleased && !isSplitUnreleased) { + const parsedBrowserVersion = (0, _utils.semverify)(splitVersion); + all[target] = (0, _utils.semverMin)(version, parsedBrowserVersion); + } + } catch (e) {} + return all; + }, {}); +} +function outputDecimalWarning(decimalTargets) { + if (!decimalTargets.length) { + return; + } + console.warn("Warning, the following targets are using a decimal version:\n"); + decimalTargets.forEach(({ + target, + value + }) => console.warn(` ${target}: ${value}`)); + console.warn(` +We recommend using a string for minor/patch versions to avoid numbers like 6.10 +getting parsed as 6.1, which can lead to unexpected behavior. +`); +} +function semverifyTarget(target, value) { + try { + return (0, _utils.semverify)(value); + } catch (error) { + throw new Error(v.formatMessage(`'${value}' is not a valid value for 'targets.${target}'.`)); + } +} + +function nodeTargetParser(value) { + const parsed = value === true || value === "current" ? process.versions.node : semverifyTarget("node", value); + return ["node", parsed]; +} +function defaultTargetParser(target, value) { + const version = (0, _utils.isUnreleasedVersion)(value, target) ? value.toLowerCase() : semverifyTarget(target, value); + return [target, version]; +} +function generateTargets(inputTargets) { + const input = Object.assign({}, inputTargets); + delete input.esmodules; + delete input.browsers; + return input; +} +function resolveTargets(queries, env) { + const resolved = _browserslist(queries, { + mobileToDesktop: true, + env + }); + return getLowestVersions(resolved); +} +const targetsCache = new _lruCache({ + max: 64 +}); +function resolveTargetsCached(queries, env) { + const cacheKey = typeof queries === "string" ? queries : queries.join() + env; + let cached = targetsCache.get(cacheKey); + if (!cached) { + cached = resolveTargets(queries, env); + targetsCache.set(cacheKey, cached); + } + return Object.assign({}, cached); +} +function getTargets(inputTargets = {}, options = {}) { + var _browsers, _browsers2; + let { + browsers, + esmodules + } = inputTargets; + const { + configPath = "." + } = options; + validateBrowsers(browsers); + const input = generateTargets(inputTargets); + let targets = validateTargetNames(input); + const shouldParseBrowsers = !!browsers; + const hasTargets = shouldParseBrowsers || Object.keys(targets).length > 0; + const shouldSearchForConfig = !options.ignoreBrowserslistConfig && !hasTargets; + if (!browsers && shouldSearchForConfig) { + browsers = _browserslist.loadConfig({ + config: options.configFile, + path: configPath, + env: options.browserslistEnv + }); + if (browsers == null) { + { + browsers = []; + } + } + } + + if (esmodules && (esmodules !== "intersect" || !((_browsers = browsers) != null && _browsers.length))) { + browsers = Object.keys(ESM_SUPPORT).map(browser => `${browser} >= ${ESM_SUPPORT[browser]}`).join(", "); + esmodules = false; + } + + if ((_browsers2 = browsers) != null && _browsers2.length) { + const queryBrowsers = resolveTargetsCached(browsers, options.browserslistEnv); + if (esmodules === "intersect") { + for (const browser of Object.keys(queryBrowsers)) { + const version = queryBrowsers[browser]; + const esmSupportVersion = + ESM_SUPPORT[browser]; + if (esmSupportVersion) { + queryBrowsers[browser] = (0, _utils.getHighestUnreleased)(version, (0, _utils.semverify)(esmSupportVersion), browser); + } else { + delete queryBrowsers[browser]; + } + } + } + targets = Object.assign(queryBrowsers, targets); + } + + const result = {}; + const decimalWarnings = []; + for (const target of Object.keys(targets).sort()) { + const value = targets[target]; + + if (typeof value === "number" && value % 1 !== 0) { + decimalWarnings.push({ + target, + value + }); + } + const [parsedTarget, parsedValue] = target === "node" ? nodeTargetParser(value) : defaultTargetParser(target, value); + if (parsedValue) { + result[parsedTarget] = parsedValue; + } + } + outputDecimalWarning(decimalWarnings); + return result; +} + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 3267: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.TargetNames = void 0; +const TargetNames = { + node: "node", + deno: "deno", + chrome: "chrome", + opera: "opera", + edge: "edge", + firefox: "firefox", + safari: "safari", + ie: "ie", + ios: "ios", + android: "android", + electron: "electron", + samsung: "samsung", + rhino: "rhino" +}; +exports.TargetNames = TargetNames; + +//# sourceMappingURL=options.js.map + + +/***/ }), + +/***/ 8651: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.prettifyTargets = prettifyTargets; +exports.prettifyVersion = prettifyVersion; +var _semver = __webpack_require__(8999); +var _targets = __webpack_require__(6974); +function prettifyVersion(version) { + if (typeof version !== "string") { + return version; + } + const { + major, + minor, + patch + } = _semver.parse(version); + const parts = [major]; + if (minor || patch) { + parts.push(minor); + } + if (patch) { + parts.push(patch); + } + return parts.join("."); +} +function prettifyTargets(targets) { + return Object.keys(targets).reduce((results, target) => { + let value = targets[target]; + const unreleasedLabel = + _targets.unreleasedLabels[target]; + if (typeof value === "string" && unreleasedLabel !== value) { + value = prettifyVersion(value); + } + results[target] = value; + return results; + }, {}); +} + +//# sourceMappingURL=pretty.js.map + + +/***/ }), + +/***/ 6974: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.unreleasedLabels = exports.browserNameMap = void 0; +const unreleasedLabels = { + safari: "tp" +}; +exports.unreleasedLabels = unreleasedLabels; +const browserNameMap = { + and_chr: "chrome", + and_ff: "firefox", + android: "android", + chrome: "chrome", + edge: "edge", + firefox: "firefox", + ie: "ie", + ie_mob: "ie", + ios_saf: "ios", + node: "node", + deno: "deno", + op_mob: "opera", + opera: "opera", + safari: "safari", + samsung: "samsung" +}; +exports.browserNameMap = browserNameMap; + +//# sourceMappingURL=targets.js.map + + +/***/ }), + +/***/ 2864: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.getHighestUnreleased = getHighestUnreleased; +exports.getLowestImplementedVersion = getLowestImplementedVersion; +exports.getLowestUnreleased = getLowestUnreleased; +exports.isUnreleasedVersion = isUnreleasedVersion; +exports.semverMin = semverMin; +exports.semverify = semverify; +var _semver = __webpack_require__(8999); +var _helperValidatorOption = __webpack_require__(1200); +var _targets = __webpack_require__(6974); +const versionRegExp = /^(\d+|\d+.\d+)$/; +const v = new _helperValidatorOption.OptionValidator("@babel/helper-compilation-targets"); +function semverMin(first, second) { + return first && _semver.lt(first, second) ? first : second; +} + +function semverify(version) { + if (typeof version === "string" && _semver.valid(version)) { + return version; + } + v.invariant(typeof version === "number" || typeof version === "string" && versionRegExp.test(version), `'${version}' is not a valid version`); + version = version.toString(); + let pos = 0; + let num = 0; + while ((pos = version.indexOf(".", pos + 1)) > 0) { + num++; + } + return version + ".0".repeat(2 - num); +} +function isUnreleasedVersion(version, env) { + const unreleasedLabel = + _targets.unreleasedLabels[env]; + return !!unreleasedLabel && unreleasedLabel === version.toString().toLowerCase(); +} +function getLowestUnreleased(a, b, env) { + const unreleasedLabel = + _targets.unreleasedLabels[env]; + if (a === unreleasedLabel) { + return b; + } + if (b === unreleasedLabel) { + return a; + } + return semverMin(a, b); +} +function getHighestUnreleased(a, b, env) { + return getLowestUnreleased(a, b, env) === a ? b : a; +} +function getLowestImplementedVersion(plugin, environment) { + const result = plugin[environment]; + if (!result && environment === "android") { + return plugin.chrome; + } + return result; +} + +//# sourceMappingURL=utils.js.map + + +/***/ }), + +/***/ 6371: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +exports.requeueComputedKeyAndDecorators = requeueComputedKeyAndDecorators; +exports.skipAllButComputedKey = skipAllButComputedKey; + +function skipAllButComputedKey(path) { + path.skip(); + + if (path.node.computed) { + path.context.maybeQueue(path.get("key")); + } +} + +function requeueComputedKeyAndDecorators(path) { + const { + context, + node + } = path; + + if (node.computed) { + context.maybeQueue(path.get("key")); + } + + if (node.decorators) { + for (const decorator of path.get("decorators")) { + context.maybeQueue(decorator); + } + } +} + +const visitor = { + FunctionParent(path) { + if (path.isArrowFunctionExpression()) { + return; + } else { + path.skip(); + + if (path.isMethod()) { + requeueComputedKeyAndDecorators(path); + } + } + }, + + Property(path) { + if (path.isObjectProperty()) { + return; + } + + path.skip(); + requeueComputedKeyAndDecorators(path); + } + +}; +var _default = visitor; +exports["default"] = _default; + +/***/ }), + +/***/ 7988: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = _default; + +var _template = __webpack_require__(940); + +var _t = __webpack_require__(2139); + +const { + NOT_LOCAL_BINDING, + cloneNode, + identifier, + isAssignmentExpression, + isAssignmentPattern, + isFunction, + isIdentifier, + isLiteral, + isNullLiteral, + isObjectMethod, + isObjectProperty, + isRegExpLiteral, + isRestElement, + isTemplateLiteral, + isVariableDeclarator, + toBindingIdentifierName +} = _t; + +function getFunctionArity(node) { + const count = node.params.findIndex(param => isAssignmentPattern(param) || isRestElement(param)); + return count === -1 ? node.params.length : count; +} + +const buildPropertyMethodAssignmentWrapper = _template.default.statement(` + (function (FUNCTION_KEY) { + function FUNCTION_ID() { + return FUNCTION_KEY.apply(this, arguments); + } + + FUNCTION_ID.toString = function () { + return FUNCTION_KEY.toString(); + } + + return FUNCTION_ID; + })(FUNCTION) +`); + +const buildGeneratorPropertyMethodAssignmentWrapper = _template.default.statement(` + (function (FUNCTION_KEY) { + function* FUNCTION_ID() { + return yield* FUNCTION_KEY.apply(this, arguments); + } + + FUNCTION_ID.toString = function () { + return FUNCTION_KEY.toString(); + }; + + return FUNCTION_ID; + })(FUNCTION) +`); + +const visitor = { + "ReferencedIdentifier|BindingIdentifier"(path, state) { + if (path.node.name !== state.name) return; + const localDeclar = path.scope.getBindingIdentifier(state.name); + if (localDeclar !== state.outerDeclar) return; + state.selfReference = true; + path.stop(); + } + +}; + +function getNameFromLiteralId(id) { + if (isNullLiteral(id)) { + return "null"; + } + + if (isRegExpLiteral(id)) { + return `_${id.pattern}_${id.flags}`; + } + + if (isTemplateLiteral(id)) { + return id.quasis.map(quasi => quasi.value.raw).join(""); + } + + if (id.value !== undefined) { + return id.value + ""; + } + + return ""; +} + +function wrap(state, method, id, scope) { + if (state.selfReference) { + if (scope.hasBinding(id.name) && !scope.hasGlobal(id.name)) { + scope.rename(id.name); + } else { + if (!isFunction(method)) return; + let build = buildPropertyMethodAssignmentWrapper; + + if (method.generator) { + build = buildGeneratorPropertyMethodAssignmentWrapper; + } + + const template = build({ + FUNCTION: method, + FUNCTION_ID: id, + FUNCTION_KEY: scope.generateUidIdentifier(id.name) + }).expression; + const params = template.callee.body.body[0].params; + + for (let i = 0, len = getFunctionArity(method); i < len; i++) { + params.push(scope.generateUidIdentifier("x")); + } + + return template; + } + } + + method.id = id; + scope.getProgramParent().references[id.name] = true; +} + +function visit(node, name, scope) { + const state = { + selfAssignment: false, + selfReference: false, + outerDeclar: scope.getBindingIdentifier(name), + name: name + }; + const binding = scope.getOwnBinding(name); + + if (binding) { + if (binding.kind === "param") { + state.selfReference = true; + } else {} + } else if (state.outerDeclar || scope.hasGlobal(name)) { + scope.traverse(node, visitor, state); + } + + return state; +} + +function _default({ + node, + parent, + scope, + id +}, localBinding = false, supportUnicodeId = false) { + if (node.id) return; + + if ((isObjectProperty(parent) || isObjectMethod(parent, { + kind: "method" + })) && (!parent.computed || isLiteral(parent.key))) { + id = parent.key; + } else if (isVariableDeclarator(parent)) { + id = parent.id; + + if (isIdentifier(id) && !localBinding) { + const binding = scope.parent.getBinding(id.name); + + if (binding && binding.constant && scope.getBinding(id.name) === binding) { + node.id = cloneNode(id); + node.id[NOT_LOCAL_BINDING] = true; + return; + } + } + } else if (isAssignmentExpression(parent, { + operator: "=" + })) { + id = parent.left; + } else if (!id) { + return; + } + + let name; + + if (id && isLiteral(id)) { + name = getNameFromLiteralId(id); + } else if (id && isIdentifier(id)) { + name = id.name; + } + + if (name === undefined) { + return; + } + + if (!supportUnicodeId && isFunction(node) && /[\uD800-\uDFFF]/.test(name)) { + return; + } + + name = toBindingIdentifierName(name); + const newId = identifier(name); + newId[NOT_LOCAL_BINDING] = true; + const state = visit(node, name, scope); + return wrap(state, node, newId, scope) || node; +} + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 3672: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = hoistVariables; + +var _t = __webpack_require__(2139); + +const { + assignmentExpression, + expressionStatement, + identifier +} = _t; +const visitor = { + Scope(path, state) { + if (state.kind === "let") path.skip(); + }, + + FunctionParent(path) { + path.skip(); + }, + + VariableDeclaration(path, state) { + if (state.kind && path.node.kind !== state.kind) return; + const nodes = []; + const declarations = path.get("declarations"); + let firstId; + + for (const declar of declarations) { + firstId = declar.node.id; + + if (declar.node.init) { + nodes.push(expressionStatement(assignmentExpression("=", declar.node.id, declar.node.init))); + } + + for (const name of Object.keys(declar.getBindingIdentifiers())) { + state.emit(identifier(name), name, declar.node.init !== null); + } + } + + if (path.parentPath.isFor({ + left: path.node + })) { + path.replaceWith(firstId); + } else { + path.replaceWithMultiple(nodes); + } + } + +}; + +function hoistVariables(path, emit, kind = "var") { + path.traverse(visitor, { + kind, + emit + }); +} + +/***/ }), + +/***/ 3581: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _assert = __webpack_require__(9491); + +var _t = __webpack_require__(2139); + +const { + callExpression, + cloneNode, + expressionStatement, + identifier, + importDeclaration, + importDefaultSpecifier, + importNamespaceSpecifier, + importSpecifier, + memberExpression, + stringLiteral, + variableDeclaration, + variableDeclarator +} = _t; + +class ImportBuilder { + constructor(importedSource, scope, hub) { + this._statements = []; + this._resultName = null; + this._importedSource = void 0; + this._scope = scope; + this._hub = hub; + this._importedSource = importedSource; + } + + done() { + return { + statements: this._statements, + resultName: this._resultName + }; + } + + import() { + this._statements.push(importDeclaration([], stringLiteral(this._importedSource))); + + return this; + } + + require() { + this._statements.push(expressionStatement(callExpression(identifier("require"), [stringLiteral(this._importedSource)]))); + + return this; + } + + namespace(name = "namespace") { + const local = this._scope.generateUidIdentifier(name); + + const statement = this._statements[this._statements.length - 1]; + + _assert(statement.type === "ImportDeclaration"); + + _assert(statement.specifiers.length === 0); + + statement.specifiers = [importNamespaceSpecifier(local)]; + this._resultName = cloneNode(local); + return this; + } + + default(name) { + const id = this._scope.generateUidIdentifier(name); + + const statement = this._statements[this._statements.length - 1]; + + _assert(statement.type === "ImportDeclaration"); + + _assert(statement.specifiers.length === 0); + + statement.specifiers = [importDefaultSpecifier(id)]; + this._resultName = cloneNode(id); + return this; + } + + named(name, importName) { + if (importName === "default") return this.default(name); + + const id = this._scope.generateUidIdentifier(name); + + const statement = this._statements[this._statements.length - 1]; + + _assert(statement.type === "ImportDeclaration"); + + _assert(statement.specifiers.length === 0); + + statement.specifiers = [importSpecifier(id, identifier(importName))]; + this._resultName = cloneNode(id); + return this; + } + + var(name) { + const id = this._scope.generateUidIdentifier(name); + + let statement = this._statements[this._statements.length - 1]; + + if (statement.type !== "ExpressionStatement") { + _assert(this._resultName); + + statement = expressionStatement(this._resultName); + + this._statements.push(statement); + } + + this._statements[this._statements.length - 1] = variableDeclaration("var", [variableDeclarator(id, statement.expression)]); + this._resultName = cloneNode(id); + return this; + } + + defaultInterop() { + return this._interop(this._hub.addHelper("interopRequireDefault")); + } + + wildcardInterop() { + return this._interop(this._hub.addHelper("interopRequireWildcard")); + } + + _interop(callee) { + const statement = this._statements[this._statements.length - 1]; + + if (statement.type === "ExpressionStatement") { + statement.expression = callExpression(callee, [statement.expression]); + } else if (statement.type === "VariableDeclaration") { + _assert(statement.declarations.length === 1); + + statement.declarations[0].init = callExpression(callee, [statement.declarations[0].init]); + } else { + _assert.fail("Unexpected type."); + } + + return this; + } + + prop(name) { + const statement = this._statements[this._statements.length - 1]; + + if (statement.type === "ExpressionStatement") { + statement.expression = memberExpression(statement.expression, identifier(name)); + } else if (statement.type === "VariableDeclaration") { + _assert(statement.declarations.length === 1); + + statement.declarations[0].init = memberExpression(statement.declarations[0].init, identifier(name)); + } else { + _assert.fail("Unexpected type:" + statement.type); + } + + return this; + } + + read(name) { + this._resultName = memberExpression(this._resultName, identifier(name)); + } + +} + +exports["default"] = ImportBuilder; + +/***/ }), + +/***/ 3827: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _assert = __webpack_require__(9491); + +var _t = __webpack_require__(2139); + +var _importBuilder = __webpack_require__(3581); + +var _isModule = __webpack_require__(4978); + +const { + numericLiteral, + sequenceExpression +} = _t; + +class ImportInjector { + constructor(path, importedSource, opts) { + this._defaultOpts = { + importedSource: null, + importedType: "commonjs", + importedInterop: "babel", + importingInterop: "babel", + ensureLiveReference: false, + ensureNoContext: false, + importPosition: "before" + }; + const programPath = path.find(p => p.isProgram()); + this._programPath = programPath; + this._programScope = programPath.scope; + this._hub = programPath.hub; + this._defaultOpts = this._applyDefaults(importedSource, opts, true); + } + + addDefault(importedSourceIn, opts) { + return this.addNamed("default", importedSourceIn, opts); + } + + addNamed(importName, importedSourceIn, opts) { + _assert(typeof importName === "string"); + + return this._generateImport(this._applyDefaults(importedSourceIn, opts), importName); + } + + addNamespace(importedSourceIn, opts) { + return this._generateImport(this._applyDefaults(importedSourceIn, opts), null); + } + + addSideEffect(importedSourceIn, opts) { + return this._generateImport(this._applyDefaults(importedSourceIn, opts), void 0); + } + + _applyDefaults(importedSource, opts, isInit = false) { + let newOpts; + + if (typeof importedSource === "string") { + newOpts = Object.assign({}, this._defaultOpts, { + importedSource + }, opts); + } else { + _assert(!opts, "Unexpected secondary arguments."); + + newOpts = Object.assign({}, this._defaultOpts, importedSource); + } + + if (!isInit && opts) { + if (opts.nameHint !== undefined) newOpts.nameHint = opts.nameHint; + if (opts.blockHoist !== undefined) newOpts.blockHoist = opts.blockHoist; + } + + return newOpts; + } + + _generateImport(opts, importName) { + const isDefault = importName === "default"; + const isNamed = !!importName && !isDefault; + const isNamespace = importName === null; + const { + importedSource, + importedType, + importedInterop, + importingInterop, + ensureLiveReference, + ensureNoContext, + nameHint, + importPosition, + blockHoist + } = opts; + let name = nameHint || importName; + const isMod = (0, _isModule.default)(this._programPath); + const isModuleForNode = isMod && importingInterop === "node"; + const isModuleForBabel = isMod && importingInterop === "babel"; + + if (importPosition === "after" && !isMod) { + throw new Error(`"importPosition": "after" is only supported in modules`); + } + + const builder = new _importBuilder.default(importedSource, this._programScope, this._hub); + + if (importedType === "es6") { + if (!isModuleForNode && !isModuleForBabel) { + throw new Error("Cannot import an ES6 module from CommonJS"); + } + + builder.import(); + + if (isNamespace) { + builder.namespace(nameHint || importedSource); + } else if (isDefault || isNamed) { + builder.named(name, importName); + } + } else if (importedType !== "commonjs") { + throw new Error(`Unexpected interopType "${importedType}"`); + } else if (importedInterop === "babel") { + if (isModuleForNode) { + name = name !== "default" ? name : importedSource; + const es6Default = `${importedSource}$es6Default`; + builder.import(); + + if (isNamespace) { + builder.default(es6Default).var(name || importedSource).wildcardInterop(); + } else if (isDefault) { + if (ensureLiveReference) { + builder.default(es6Default).var(name || importedSource).defaultInterop().read("default"); + } else { + builder.default(es6Default).var(name).defaultInterop().prop(importName); + } + } else if (isNamed) { + builder.default(es6Default).read(importName); + } + } else if (isModuleForBabel) { + builder.import(); + + if (isNamespace) { + builder.namespace(name || importedSource); + } else if (isDefault || isNamed) { + builder.named(name, importName); + } + } else { + builder.require(); + + if (isNamespace) { + builder.var(name || importedSource).wildcardInterop(); + } else if ((isDefault || isNamed) && ensureLiveReference) { + if (isDefault) { + name = name !== "default" ? name : importedSource; + builder.var(name).read(importName); + builder.defaultInterop(); + } else { + builder.var(importedSource).read(importName); + } + } else if (isDefault) { + builder.var(name).defaultInterop().prop(importName); + } else if (isNamed) { + builder.var(name).prop(importName); + } + } + } else if (importedInterop === "compiled") { + if (isModuleForNode) { + builder.import(); + + if (isNamespace) { + builder.default(name || importedSource); + } else if (isDefault || isNamed) { + builder.default(importedSource).read(name); + } + } else if (isModuleForBabel) { + builder.import(); + + if (isNamespace) { + builder.namespace(name || importedSource); + } else if (isDefault || isNamed) { + builder.named(name, importName); + } + } else { + builder.require(); + + if (isNamespace) { + builder.var(name || importedSource); + } else if (isDefault || isNamed) { + if (ensureLiveReference) { + builder.var(importedSource).read(name); + } else { + builder.prop(importName).var(name); + } + } + } + } else if (importedInterop === "uncompiled") { + if (isDefault && ensureLiveReference) { + throw new Error("No live reference for commonjs default"); + } + + if (isModuleForNode) { + builder.import(); + + if (isNamespace) { + builder.default(name || importedSource); + } else if (isDefault) { + builder.default(name); + } else if (isNamed) { + builder.default(importedSource).read(name); + } + } else if (isModuleForBabel) { + builder.import(); + + if (isNamespace) { + builder.default(name || importedSource); + } else if (isDefault) { + builder.default(name); + } else if (isNamed) { + builder.named(name, importName); + } + } else { + builder.require(); + + if (isNamespace) { + builder.var(name || importedSource); + } else if (isDefault) { + builder.var(name); + } else if (isNamed) { + if (ensureLiveReference) { + builder.var(importedSource).read(name); + } else { + builder.var(name).prop(importName); + } + } + } + } else { + throw new Error(`Unknown importedInterop "${importedInterop}".`); + } + + const { + statements, + resultName + } = builder.done(); + + this._insertStatements(statements, importPosition, blockHoist); + + if ((isDefault || isNamed) && ensureNoContext && resultName.type !== "Identifier") { + return sequenceExpression([numericLiteral(0), resultName]); + } + + return resultName; + } + + _insertStatements(statements, importPosition = "before", blockHoist = 3) { + const body = this._programPath.get("body"); + + if (importPosition === "after") { + for (let i = body.length - 1; i >= 0; i--) { + if (body[i].isImportDeclaration()) { + body[i].insertAfter(statements); + return; + } + } + } else { + statements.forEach(node => { + node._blockHoist = blockHoist; + }); + const targetPath = body.find(p => { + const val = p.node._blockHoist; + return Number.isFinite(val) && val < 4; + }); + + if (targetPath) { + targetPath.insertBefore(statements); + return; + } + } + + this._programPath.unshiftContainer("body", statements); + } + +} + +exports["default"] = ImportInjector; + +/***/ }), + +/***/ 8415: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +Object.defineProperty(exports, "ImportInjector", ({ + enumerable: true, + get: function () { + return _importInjector.default; + } +})); +exports.addDefault = addDefault; +exports.addNamed = addNamed; +exports.addNamespace = addNamespace; +exports.addSideEffect = addSideEffect; +Object.defineProperty(exports, "isModule", ({ + enumerable: true, + get: function () { + return _isModule.default; + } +})); + +var _importInjector = __webpack_require__(3827); + +var _isModule = __webpack_require__(4978); + +function addDefault(path, importedSource, opts) { + return new _importInjector.default(path).addDefault(importedSource, opts); +} + +function addNamed(path, name, importedSource, opts) { + return new _importInjector.default(path).addNamed(name, importedSource, opts); +} + +function addNamespace(path, importedSource, opts) { + return new _importInjector.default(path).addNamespace(importedSource, opts); +} + +function addSideEffect(path, importedSource, opts) { + return new _importInjector.default(path).addSideEffect(importedSource, opts); +} + +/***/ }), + +/***/ 4978: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = isModule; + +function isModule(path) { + const { + sourceType + } = path.node; + + if (sourceType !== "module" && sourceType !== "script") { + throw path.buildCodeFrameError(`Unknown sourceType "${sourceType}", cannot transform.`); + } + + return path.node.sourceType === "module"; +} + +/***/ }), + +/***/ 1829: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.buildDynamicImport = buildDynamicImport; +exports.getDynamicImportSource = getDynamicImportSource; +var t = __webpack_require__(2139); +var _template = __webpack_require__(940); + +function getDynamicImportSource(node) { + const [source] = node.arguments; + return t.isStringLiteral(source) || t.isTemplateLiteral(source) ? source : _template.default.expression.ast`\`\${${source}}\``; +} +function buildDynamicImport(node, deferToThen, wrapWithPromise, builder) { + const [specifier] = node.arguments; + if (t.isStringLiteral(specifier) || t.isTemplateLiteral(specifier) && specifier.quasis.length === 0) { + if (deferToThen) { + return _template.default.expression.ast` + Promise.resolve().then(() => ${builder(specifier)}) + `; + } else return builder(specifier); + } + const specifierToString = t.isTemplateLiteral(specifier) ? t.identifier("specifier") : t.templateLiteral([t.templateElement({ + raw: "" + }), t.templateElement({ + raw: "" + })], [t.identifier("specifier")]); + if (deferToThen) { + return _template.default.expression.ast` + (specifier => + new Promise(r => r(${specifierToString})) + .then(s => ${builder(t.identifier("s"))}) + )(${specifier}) + `; + } else if (wrapWithPromise) { + return _template.default.expression.ast` + (specifier => + new Promise(r => r(${builder(specifierToString)})) + )(${specifier}) + `; + } else { + return _template.default.expression.ast` + (specifier => ${builder(specifierToString)})(${specifier}) + `; + } +} + +//# sourceMappingURL=dynamic-import.js.map + + +/***/ }), + +/***/ 9682: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = getModuleName; +{ + const originalGetModuleName = getModuleName; + + exports["default"] = getModuleName = function getModuleName(rootOpts, pluginOpts) { + var _pluginOpts$moduleId, _pluginOpts$moduleIds, _pluginOpts$getModule, _pluginOpts$moduleRoo; + return originalGetModuleName(rootOpts, { + moduleId: (_pluginOpts$moduleId = pluginOpts.moduleId) != null ? _pluginOpts$moduleId : rootOpts.moduleId, + moduleIds: (_pluginOpts$moduleIds = pluginOpts.moduleIds) != null ? _pluginOpts$moduleIds : rootOpts.moduleIds, + getModuleId: (_pluginOpts$getModule = pluginOpts.getModuleId) != null ? _pluginOpts$getModule : rootOpts.getModuleId, + moduleRoot: (_pluginOpts$moduleRoo = pluginOpts.moduleRoot) != null ? _pluginOpts$moduleRoo : rootOpts.moduleRoot + }); + }; +} +function getModuleName(rootOpts, pluginOpts) { + const { + filename, + filenameRelative = filename, + sourceRoot = pluginOpts.moduleRoot + } = rootOpts; + const { + moduleId, + moduleIds = !!moduleId, + getModuleId, + moduleRoot = sourceRoot + } = pluginOpts; + if (!moduleIds) return null; + + if (moduleId != null && !getModuleId) { + return moduleId; + } + let moduleName = moduleRoot != null ? moduleRoot + "/" : ""; + if (filenameRelative) { + const sourceRootReplacer = sourceRoot != null ? new RegExp("^" + sourceRoot + "/?") : ""; + moduleName += filenameRelative + .replace(sourceRootReplacer, "") + .replace(/\.(\w*?)$/, ""); + } + + moduleName = moduleName.replace(/\\/g, "/"); + if (getModuleId) { + return getModuleId(moduleName) || moduleName; + } else { + return moduleName; + } +} + +//# sourceMappingURL=get-module-name.js.map + + +/***/ }), + +/***/ 4228: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +Object.defineProperty(exports, "buildDynamicImport", ({ + enumerable: true, + get: function () { + return _dynamicImport.buildDynamicImport; + } +})); +exports.buildNamespaceInitStatements = buildNamespaceInitStatements; +exports.ensureStatementsHoisted = ensureStatementsHoisted; +Object.defineProperty(exports, "getDynamicImportSource", ({ + enumerable: true, + get: function () { + return _dynamicImport.getDynamicImportSource; + } +})); +Object.defineProperty(exports, "getModuleName", ({ + enumerable: true, + get: function () { + return _getModuleName.default; + } +})); +Object.defineProperty(exports, "hasExports", ({ + enumerable: true, + get: function () { + return _normalizeAndLoadMetadata.hasExports; + } +})); +Object.defineProperty(exports, "isModule", ({ + enumerable: true, + get: function () { + return _helperModuleImports.isModule; + } +})); +Object.defineProperty(exports, "isSideEffectImport", ({ + enumerable: true, + get: function () { + return _normalizeAndLoadMetadata.isSideEffectImport; + } +})); +exports.rewriteModuleStatementsAndPrepareHeader = rewriteModuleStatementsAndPrepareHeader; +Object.defineProperty(exports, "rewriteThis", ({ + enumerable: true, + get: function () { + return _rewriteThis.default; + } +})); +exports.wrapInterop = wrapInterop; +var _assert = __webpack_require__(9491); +var _t = __webpack_require__(2139); +var _template = __webpack_require__(940); +var _helperModuleImports = __webpack_require__(8415); +var _rewriteThis = __webpack_require__(2691); +var _rewriteLiveReferences = __webpack_require__(3613); +var _normalizeAndLoadMetadata = __webpack_require__(6913); +var _dynamicImport = __webpack_require__(1829); +var _getModuleName = __webpack_require__(9682); +const { + booleanLiteral, + callExpression, + cloneNode, + directive, + directiveLiteral, + expressionStatement, + identifier, + isIdentifier, + memberExpression, + stringLiteral, + valueToNode, + variableDeclaration, + variableDeclarator +} = _t; +function rewriteModuleStatementsAndPrepareHeader(path, { + loose, + exportName, + strict, + allowTopLevelThis, + strictMode, + noInterop, + importInterop = noInterop ? "none" : "babel", + lazy, + esNamespaceOnly, + filename, + constantReexports = loose, + enumerableModuleMeta = loose, + noIncompleteNsImportDetection +}) { + (0, _normalizeAndLoadMetadata.validateImportInteropOption)(importInterop); + _assert((0, _helperModuleImports.isModule)(path), "Cannot process module statements in a script"); + path.node.sourceType = "script"; + const meta = (0, _normalizeAndLoadMetadata.default)(path, exportName, { + importInterop, + initializeReexports: constantReexports, + lazy, + esNamespaceOnly, + filename + }); + if (!allowTopLevelThis) { + (0, _rewriteThis.default)(path); + } + (0, _rewriteLiveReferences.default)(path, meta); + if (strictMode !== false) { + const hasStrict = path.node.directives.some(directive => { + return directive.value.value === "use strict"; + }); + if (!hasStrict) { + path.unshiftContainer("directives", directive(directiveLiteral("use strict"))); + } + } + const headers = []; + if ((0, _normalizeAndLoadMetadata.hasExports)(meta) && !strict) { + headers.push(buildESModuleHeader(meta, enumerableModuleMeta)); + } + const nameList = buildExportNameListDeclaration(path, meta); + if (nameList) { + meta.exportNameListName = nameList.name; + headers.push(nameList.statement); + } + + headers.push(...buildExportInitializationStatements(path, meta, constantReexports, noIncompleteNsImportDetection)); + return { + meta, + headers + }; +} + +function ensureStatementsHoisted(statements) { + statements.forEach(header => { + header._blockHoist = 3; + }); +} + +function wrapInterop(programPath, expr, type) { + if (type === "none") { + return null; + } + if (type === "node-namespace") { + return callExpression(programPath.hub.addHelper("interopRequireWildcard"), [expr, booleanLiteral(true)]); + } else if (type === "node-default") { + return null; + } + let helper; + if (type === "default") { + helper = "interopRequireDefault"; + } else if (type === "namespace") { + helper = "interopRequireWildcard"; + } else { + throw new Error(`Unknown interop: ${type}`); + } + return callExpression(programPath.hub.addHelper(helper), [expr]); +} + +function buildNamespaceInitStatements(metadata, sourceMetadata, constantReexports = false) { + const statements = []; + let srcNamespace = identifier(sourceMetadata.name); + if (sourceMetadata.lazy) srcNamespace = callExpression(srcNamespace, []); + for (const localName of sourceMetadata.importsNamespace) { + if (localName === sourceMetadata.name) continue; + + statements.push(_template.default.statement`var NAME = SOURCE;`({ + NAME: localName, + SOURCE: cloneNode(srcNamespace) + })); + } + if (constantReexports) { + statements.push(...buildReexportsFromMeta(metadata, sourceMetadata, true)); + } + for (const exportName of sourceMetadata.reexportNamespace) { + statements.push((sourceMetadata.lazy ? _template.default.statement` + Object.defineProperty(EXPORTS, "NAME", { + enumerable: true, + get: function() { + return NAMESPACE; + } + }); + ` : _template.default.statement`EXPORTS.NAME = NAMESPACE;`)({ + EXPORTS: metadata.exportName, + NAME: exportName, + NAMESPACE: cloneNode(srcNamespace) + })); + } + if (sourceMetadata.reexportAll) { + const statement = buildNamespaceReexport(metadata, cloneNode(srcNamespace), constantReexports); + statement.loc = sourceMetadata.reexportAll.loc; + + statements.push(statement); + } + return statements; +} +const ReexportTemplate = { + constant: _template.default.statement`EXPORTS.EXPORT_NAME = NAMESPACE_IMPORT;`, + constantComputed: _template.default.statement`EXPORTS["EXPORT_NAME"] = NAMESPACE_IMPORT;`, + spec: _template.default.statement` + Object.defineProperty(EXPORTS, "EXPORT_NAME", { + enumerable: true, + get: function() { + return NAMESPACE_IMPORT; + }, + }); + ` +}; +function buildReexportsFromMeta(meta, metadata, constantReexports) { + const namespace = metadata.lazy ? callExpression(identifier(metadata.name), []) : identifier(metadata.name); + const { + stringSpecifiers + } = meta; + return Array.from(metadata.reexports, ([exportName, importName]) => { + let NAMESPACE_IMPORT = cloneNode(namespace); + if (importName === "default" && metadata.interop === "node-default") { + } else if (stringSpecifiers.has(importName)) { + NAMESPACE_IMPORT = memberExpression(NAMESPACE_IMPORT, stringLiteral(importName), true); + } else { + NAMESPACE_IMPORT = memberExpression(NAMESPACE_IMPORT, identifier(importName)); + } + const astNodes = { + EXPORTS: meta.exportName, + EXPORT_NAME: exportName, + NAMESPACE_IMPORT + }; + if (constantReexports || isIdentifier(NAMESPACE_IMPORT)) { + if (stringSpecifiers.has(exportName)) { + return ReexportTemplate.constantComputed(astNodes); + } else { + return ReexportTemplate.constant(astNodes); + } + } else { + return ReexportTemplate.spec(astNodes); + } + }); +} + +function buildESModuleHeader(metadata, enumerableModuleMeta = false) { + return (enumerableModuleMeta ? _template.default.statement` + EXPORTS.__esModule = true; + ` : _template.default.statement` + Object.defineProperty(EXPORTS, "__esModule", { + value: true, + }); + `)({ + EXPORTS: metadata.exportName + }); +} + +function buildNamespaceReexport(metadata, namespace, constantReexports) { + return (constantReexports ? _template.default.statement` + Object.keys(NAMESPACE).forEach(function(key) { + if (key === "default" || key === "__esModule") return; + VERIFY_NAME_LIST; + if (key in EXPORTS && EXPORTS[key] === NAMESPACE[key]) return; + + EXPORTS[key] = NAMESPACE[key]; + }); + ` : + _template.default.statement` + Object.keys(NAMESPACE).forEach(function(key) { + if (key === "default" || key === "__esModule") return; + VERIFY_NAME_LIST; + if (key in EXPORTS && EXPORTS[key] === NAMESPACE[key]) return; + + Object.defineProperty(EXPORTS, key, { + enumerable: true, + get: function() { + return NAMESPACE[key]; + }, + }); + }); + `)({ + NAMESPACE: namespace, + EXPORTS: metadata.exportName, + VERIFY_NAME_LIST: metadata.exportNameListName ? (0, _template.default)` + if (Object.prototype.hasOwnProperty.call(EXPORTS_LIST, key)) return; + `({ + EXPORTS_LIST: metadata.exportNameListName + }) : null + }); +} + +function buildExportNameListDeclaration(programPath, metadata) { + const exportedVars = Object.create(null); + for (const data of metadata.local.values()) { + for (const name of data.names) { + exportedVars[name] = true; + } + } + let hasReexport = false; + for (const data of metadata.source.values()) { + for (const exportName of data.reexports.keys()) { + exportedVars[exportName] = true; + } + for (const exportName of data.reexportNamespace) { + exportedVars[exportName] = true; + } + hasReexport = hasReexport || !!data.reexportAll; + } + if (!hasReexport || Object.keys(exportedVars).length === 0) return null; + const name = programPath.scope.generateUidIdentifier("exportNames"); + delete exportedVars.default; + return { + name: name.name, + statement: variableDeclaration("var", [variableDeclarator(name, valueToNode(exportedVars))]) + }; +} + +function buildExportInitializationStatements(programPath, metadata, constantReexports = false, noIncompleteNsImportDetection = false) { + const initStatements = []; + for (const [localName, data] of metadata.local) { + if (data.kind === "import") { + } else if (data.kind === "hoisted") { + initStatements.push([ + data.names[0], buildInitStatement(metadata, data.names, identifier(localName))]); + } else if (!noIncompleteNsImportDetection) { + for (const exportName of data.names) { + initStatements.push([exportName, null]); + } + } + } + for (const data of metadata.source.values()) { + if (!constantReexports) { + const reexportsStatements = buildReexportsFromMeta(metadata, data, false); + const reexports = [...data.reexports.keys()]; + for (let i = 0; i < reexportsStatements.length; i++) { + initStatements.push([reexports[i], reexportsStatements[i]]); + } + } + if (!noIncompleteNsImportDetection) { + for (const exportName of data.reexportNamespace) { + initStatements.push([exportName, null]); + } + } + } + + initStatements.sort(([a], [b]) => { + if (a < b) return -1; + if (b < a) return 1; + return 0; + }); + const results = []; + if (noIncompleteNsImportDetection) { + for (const [, initStatement] of initStatements) { + results.push(initStatement); + } + } else { + const chunkSize = 100; + for (let i = 0; i < initStatements.length; i += chunkSize) { + let uninitializedExportNames = []; + for (let j = 0; j < chunkSize && i + j < initStatements.length; j++) { + const [exportName, initStatement] = initStatements[i + j]; + if (initStatement !== null) { + if (uninitializedExportNames.length > 0) { + results.push(buildInitStatement(metadata, uninitializedExportNames, programPath.scope.buildUndefinedNode())); + uninitializedExportNames = []; + } + results.push(initStatement); + } else { + uninitializedExportNames.push(exportName); + } + } + if (uninitializedExportNames.length > 0) { + results.push(buildInitStatement(metadata, uninitializedExportNames, programPath.scope.buildUndefinedNode())); + } + } + } + return results; +} + +const InitTemplate = { + computed: _template.default.expression`EXPORTS["NAME"] = VALUE`, + default: _template.default.expression`EXPORTS.NAME = VALUE` +}; +function buildInitStatement(metadata, exportNames, initExpr) { + const { + stringSpecifiers, + exportName: EXPORTS + } = metadata; + return expressionStatement(exportNames.reduce((acc, exportName) => { + const params = { + EXPORTS, + NAME: exportName, + VALUE: acc + }; + if (stringSpecifiers.has(exportName)) { + return InitTemplate.computed(params); + } else { + return InitTemplate.default(params); + } + }, initExpr)); +} + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 6913: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = normalizeModuleAndLoadMetadata; +exports.hasExports = hasExports; +exports.isSideEffectImport = isSideEffectImport; +exports.validateImportInteropOption = validateImportInteropOption; +var _path = __webpack_require__(1017); +var _helperValidatorIdentifier = __webpack_require__(8740); +var _helperSplitExportDeclaration = __webpack_require__(4254); +function hasExports(metadata) { + return metadata.hasExports; +} + +function isSideEffectImport(source) { + return source.imports.size === 0 && source.importsNamespace.size === 0 && source.reexports.size === 0 && source.reexportNamespace.size === 0 && !source.reexportAll; +} +function validateImportInteropOption(importInterop) { + if (typeof importInterop !== "function" && importInterop !== "none" && importInterop !== "babel" && importInterop !== "node") { + throw new Error(`.importInterop must be one of "none", "babel", "node", or a function returning one of those values (received ${importInterop}).`); + } + return importInterop; +} +function resolveImportInterop(importInterop, source, filename) { + if (typeof importInterop === "function") { + return validateImportInteropOption(importInterop(source, filename)); + } + return importInterop; +} + +function normalizeModuleAndLoadMetadata(programPath, exportName, { + importInterop, + initializeReexports = false, + lazy = false, + esNamespaceOnly = false, + filename +}) { + if (!exportName) { + exportName = programPath.scope.generateUidIdentifier("exports").name; + } + const stringSpecifiers = new Set(); + nameAnonymousExports(programPath); + const { + local, + source, + hasExports + } = getModuleMetadata(programPath, { + initializeReexports, + lazy + }, stringSpecifiers); + removeImportExportDeclarations(programPath); + + for (const [, metadata] of source) { + if (metadata.importsNamespace.size > 0) { + metadata.name = metadata.importsNamespace.values().next().value; + } + const resolvedInterop = resolveImportInterop(importInterop, metadata.source, filename); + if (resolvedInterop === "none") { + metadata.interop = "none"; + } else if (resolvedInterop === "node" && metadata.interop === "namespace") { + metadata.interop = "node-namespace"; + } else if (resolvedInterop === "node" && metadata.interop === "default") { + metadata.interop = "node-default"; + } else if (esNamespaceOnly && metadata.interop === "namespace") { + metadata.interop = "default"; + } + } + return { + exportName, + exportNameListName: null, + hasExports, + local, + source, + stringSpecifiers + }; +} +function getExportSpecifierName(path, stringSpecifiers) { + if (path.isIdentifier()) { + return path.node.name; + } else if (path.isStringLiteral()) { + const stringValue = path.node.value; + if (!(0, _helperValidatorIdentifier.isIdentifierName)(stringValue)) { + stringSpecifiers.add(stringValue); + } + return stringValue; + } else { + throw new Error(`Expected export specifier to be either Identifier or StringLiteral, got ${path.node.type}`); + } +} +function assertExportSpecifier(path) { + if (path.isExportSpecifier()) { + return; + } else if (path.isExportNamespaceSpecifier()) { + throw path.buildCodeFrameError("Export namespace should be first transformed by `@babel/plugin-proposal-export-namespace-from`."); + } else { + throw path.buildCodeFrameError("Unexpected export specifier type"); + } +} + +function getModuleMetadata(programPath, { + lazy, + initializeReexports +}, stringSpecifiers) { + const localData = getLocalExportMetadata(programPath, initializeReexports, stringSpecifiers); + const sourceData = new Map(); + const getData = sourceNode => { + const source = sourceNode.value; + let data = sourceData.get(source); + if (!data) { + data = { + name: programPath.scope.generateUidIdentifier((0, _path.basename)(source, (0, _path.extname)(source))).name, + interop: "none", + loc: null, + imports: new Map(), + importsNamespace: new Set(), + reexports: new Map(), + reexportNamespace: new Set(), + reexportAll: null, + lazy: false, + source + }; + sourceData.set(source, data); + } + return data; + }; + let hasExports = false; + programPath.get("body").forEach(child => { + if (child.isImportDeclaration()) { + const data = getData(child.node.source); + if (!data.loc) data.loc = child.node.loc; + child.get("specifiers").forEach(spec => { + if (spec.isImportDefaultSpecifier()) { + const localName = spec.get("local").node.name; + data.imports.set(localName, "default"); + const reexport = localData.get(localName); + if (reexport) { + localData.delete(localName); + reexport.names.forEach(name => { + data.reexports.set(name, "default"); + }); + } + } else if (spec.isImportNamespaceSpecifier()) { + const localName = spec.get("local").node.name; + data.importsNamespace.add(localName); + const reexport = localData.get(localName); + if (reexport) { + localData.delete(localName); + reexport.names.forEach(name => { + data.reexportNamespace.add(name); + }); + } + } else if (spec.isImportSpecifier()) { + const importName = getExportSpecifierName(spec.get("imported"), stringSpecifiers); + const localName = spec.get("local").node.name; + data.imports.set(localName, importName); + const reexport = localData.get(localName); + if (reexport) { + localData.delete(localName); + reexport.names.forEach(name => { + data.reexports.set(name, importName); + }); + } + } + }); + } else if (child.isExportAllDeclaration()) { + hasExports = true; + const data = getData(child.node.source); + if (!data.loc) data.loc = child.node.loc; + data.reexportAll = { + loc: child.node.loc + }; + } else if (child.isExportNamedDeclaration() && child.node.source) { + hasExports = true; + const data = getData(child.node.source); + if (!data.loc) data.loc = child.node.loc; + child.get("specifiers").forEach(spec => { + assertExportSpecifier(spec); + const importName = getExportSpecifierName(spec.get("local"), stringSpecifiers); + const exportName = getExportSpecifierName(spec.get("exported"), stringSpecifiers); + data.reexports.set(exportName, importName); + if (exportName === "__esModule") { + throw spec.get("exported").buildCodeFrameError('Illegal export "__esModule".'); + } + }); + } else if (child.isExportNamedDeclaration() || child.isExportDefaultDeclaration()) { + hasExports = true; + } + }); + for (const metadata of sourceData.values()) { + let needsDefault = false; + let needsNamed = false; + if (metadata.importsNamespace.size > 0) { + needsDefault = true; + needsNamed = true; + } + if (metadata.reexportAll) { + needsNamed = true; + } + for (const importName of metadata.imports.values()) { + if (importName === "default") needsDefault = true;else needsNamed = true; + } + for (const importName of metadata.reexports.values()) { + if (importName === "default") needsDefault = true;else needsNamed = true; + } + if (needsDefault && needsNamed) { + metadata.interop = "namespace"; + } else if (needsDefault) { + metadata.interop = "default"; + } + } + for (const [source, metadata] of sourceData) { + if (lazy !== false && !(isSideEffectImport(metadata) || metadata.reexportAll)) { + if (lazy === true) { + metadata.lazy = !/\./.test(source); + } else if (Array.isArray(lazy)) { + metadata.lazy = lazy.indexOf(source) !== -1; + } else if (typeof lazy === "function") { + metadata.lazy = lazy(source); + } else { + throw new Error(`.lazy must be a boolean, string array, or function`); + } + } + } + return { + hasExports, + local: localData, + source: sourceData + }; +} +function getLocalExportMetadata(programPath, initializeReexports, stringSpecifiers) { + const bindingKindLookup = new Map(); + programPath.get("body").forEach(child => { + let kind; + if (child.isImportDeclaration()) { + kind = "import"; + } else { + if (child.isExportDefaultDeclaration()) { + child = child.get("declaration"); + } + if (child.isExportNamedDeclaration()) { + if (child.node.declaration) { + child = child.get("declaration"); + } else if (initializeReexports && child.node.source && child.get("source").isStringLiteral()) { + child.get("specifiers").forEach(spec => { + assertExportSpecifier(spec); + bindingKindLookup.set(spec.get("local").node.name, "block"); + }); + return; + } + } + if (child.isFunctionDeclaration()) { + kind = "hoisted"; + } else if (child.isClassDeclaration()) { + kind = "block"; + } else if (child.isVariableDeclaration({ + kind: "var" + })) { + kind = "var"; + } else if (child.isVariableDeclaration()) { + kind = "block"; + } else { + return; + } + } + Object.keys(child.getOuterBindingIdentifiers()).forEach(name => { + bindingKindLookup.set(name, kind); + }); + }); + const localMetadata = new Map(); + const getLocalMetadata = idPath => { + const localName = idPath.node.name; + let metadata = localMetadata.get(localName); + if (!metadata) { + const kind = bindingKindLookup.get(localName); + if (kind === undefined) { + throw idPath.buildCodeFrameError(`Exporting local "${localName}", which is not declared.`); + } + metadata = { + names: [], + kind + }; + localMetadata.set(localName, metadata); + } + return metadata; + }; + programPath.get("body").forEach(child => { + if (child.isExportNamedDeclaration() && (initializeReexports || !child.node.source)) { + if (child.node.declaration) { + const declaration = child.get("declaration"); + const ids = declaration.getOuterBindingIdentifierPaths(); + Object.keys(ids).forEach(name => { + if (name === "__esModule") { + throw declaration.buildCodeFrameError('Illegal export "__esModule".'); + } + getLocalMetadata(ids[name]).names.push(name); + }); + } else { + child.get("specifiers").forEach(spec => { + const local = spec.get("local"); + const exported = spec.get("exported"); + const localMetadata = getLocalMetadata(local); + const exportName = getExportSpecifierName(exported, stringSpecifiers); + if (exportName === "__esModule") { + throw exported.buildCodeFrameError('Illegal export "__esModule".'); + } + localMetadata.names.push(exportName); + }); + } + } else if (child.isExportDefaultDeclaration()) { + const declaration = child.get("declaration"); + if (declaration.isFunctionDeclaration() || declaration.isClassDeclaration()) { + getLocalMetadata(declaration.get("id")).names.push("default"); + } else { + throw declaration.buildCodeFrameError("Unexpected default expression export."); + } + } + }); + return localMetadata; +} + +function nameAnonymousExports(programPath) { + programPath.get("body").forEach(child => { + if (!child.isExportDefaultDeclaration()) return; + (0, _helperSplitExportDeclaration.default)(child); + }); +} +function removeImportExportDeclarations(programPath) { + programPath.get("body").forEach(child => { + if (child.isImportDeclaration()) { + child.remove(); + } else if (child.isExportNamedDeclaration()) { + if (child.node.declaration) { + child.node.declaration._blockHoist = child.node._blockHoist; + child.replaceWith(child.node.declaration); + } else { + child.remove(); + } + } else if (child.isExportDefaultDeclaration()) { + const declaration = child.get("declaration"); + if (declaration.isFunctionDeclaration() || declaration.isClassDeclaration()) { + declaration._blockHoist = child.node._blockHoist; + child.replaceWith(declaration); + } else { + throw declaration.buildCodeFrameError("Unexpected default expression export."); + } + } else if (child.isExportAllDeclaration()) { + child.remove(); + } + }); +} + +//# sourceMappingURL=normalize-and-load-metadata.js.map + + +/***/ }), + +/***/ 3613: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = rewriteLiveReferences; +var _assert = __webpack_require__(9491); +var _t = __webpack_require__(2139); +var _template = __webpack_require__(940); +var _helperSimpleAccess = __webpack_require__(5457); +const { + assignmentExpression, + callExpression, + cloneNode, + expressionStatement, + getOuterBindingIdentifiers, + identifier, + isMemberExpression, + isVariableDeclaration, + jsxIdentifier, + jsxMemberExpression, + memberExpression, + numericLiteral, + sequenceExpression, + stringLiteral, + variableDeclaration, + variableDeclarator +} = _t; +function isInType(path) { + do { + switch (path.parent.type) { + case "TSTypeAnnotation": + case "TSTypeAliasDeclaration": + case "TSTypeReference": + case "TypeAnnotation": + case "TypeAlias": + return true; + case "ExportSpecifier": + return path.parentPath.parent.exportKind === "type"; + default: + if (path.parentPath.isStatement() || path.parentPath.isExpression()) { + return false; + } + } + } while (path = path.parentPath); +} +function rewriteLiveReferences(programPath, metadata) { + const imported = new Map(); + const exported = new Map(); + const requeueInParent = path => { + programPath.requeue(path); + }; + for (const [source, data] of metadata.source) { + for (const [localName, importName] of data.imports) { + imported.set(localName, [source, importName, null]); + } + for (const localName of data.importsNamespace) { + imported.set(localName, [source, null, localName]); + } + } + for (const [local, data] of metadata.local) { + let exportMeta = exported.get(local); + if (!exportMeta) { + exportMeta = []; + exported.set(local, exportMeta); + } + exportMeta.push(...data.names); + } + + const rewriteBindingInitVisitorState = { + metadata, + requeueInParent, + scope: programPath.scope, + exported + }; + + programPath.traverse( + rewriteBindingInitVisitor, rewriteBindingInitVisitorState); + (0, _helperSimpleAccess.default)(programPath, + new Set([...Array.from(imported.keys()), ...Array.from(exported.keys())]), false); + + const rewriteReferencesVisitorState = { + seen: new WeakSet(), + metadata, + requeueInParent, + scope: programPath.scope, + imported, + exported, + buildImportReference: ([source, importName, localName], identNode) => { + const meta = metadata.source.get(source); + if (localName) { + if (meta.lazy) { + identNode = callExpression( + identNode, []); + } + return identNode; + } + let namespace = identifier(meta.name); + if (meta.lazy) namespace = callExpression(namespace, []); + if (importName === "default" && meta.interop === "node-default") { + return namespace; + } + const computed = metadata.stringSpecifiers.has(importName); + return memberExpression(namespace, computed ? stringLiteral(importName) : identifier(importName), computed); + } + }; + programPath.traverse(rewriteReferencesVisitor, rewriteReferencesVisitorState); +} + +const rewriteBindingInitVisitor = { + Scope(path) { + path.skip(); + }, + ClassDeclaration(path) { + const { + requeueInParent, + exported, + metadata + } = this; + const { + id + } = path.node; + if (!id) throw new Error("Expected class to have a name"); + const localName = id.name; + const exportNames = exported.get(localName) || []; + if (exportNames.length > 0) { + const statement = expressionStatement( + buildBindingExportAssignmentExpression(metadata, exportNames, identifier(localName), path.scope)); + statement._blockHoist = path.node._blockHoist; + requeueInParent(path.insertAfter(statement)[0]); + } + }, + VariableDeclaration(path) { + const { + requeueInParent, + exported, + metadata + } = this; + Object.keys(path.getOuterBindingIdentifiers()).forEach(localName => { + const exportNames = exported.get(localName) || []; + if (exportNames.length > 0) { + const statement = expressionStatement( + buildBindingExportAssignmentExpression(metadata, exportNames, identifier(localName), path.scope)); + statement._blockHoist = path.node._blockHoist; + requeueInParent(path.insertAfter(statement)[0]); + } + }); + } +}; +const buildBindingExportAssignmentExpression = (metadata, exportNames, localExpr, scope) => { + const exportsObjectName = metadata.exportName; + for (let currentScope = scope; currentScope != null; currentScope = currentScope.parent) { + if (currentScope.hasOwnBinding(exportsObjectName)) { + currentScope.rename(exportsObjectName); + } + } + return (exportNames || []).reduce((expr, exportName) => { + const { + stringSpecifiers + } = metadata; + const computed = stringSpecifiers.has(exportName); + return assignmentExpression("=", memberExpression(identifier(exportsObjectName), computed ? stringLiteral(exportName) : identifier(exportName), computed), expr); + }, localExpr); +}; +const buildImportThrow = localName => { + return _template.default.expression.ast` + (function() { + throw new Error('"' + '${localName}' + '" is read-only.'); + })() + `; +}; +const rewriteReferencesVisitor = { + ReferencedIdentifier(path) { + const { + seen, + buildImportReference, + scope, + imported, + requeueInParent + } = this; + if (seen.has(path.node)) return; + seen.add(path.node); + const localName = path.node.name; + const importData = imported.get(localName); + if (importData) { + if (isInType(path)) { + throw path.buildCodeFrameError(`Cannot transform the imported binding "${localName}" since it's also used in a type annotation. ` + `Please strip type annotations using @babel/preset-typescript or @babel/preset-flow.`); + } + const localBinding = path.scope.getBinding(localName); + const rootBinding = scope.getBinding(localName); + + if (rootBinding !== localBinding) return; + const ref = buildImportReference(importData, path.node); + + ref.loc = path.node.loc; + if ((path.parentPath.isCallExpression({ + callee: path.node + }) || path.parentPath.isOptionalCallExpression({ + callee: path.node + }) || path.parentPath.isTaggedTemplateExpression({ + tag: path.node + })) && isMemberExpression(ref)) { + path.replaceWith(sequenceExpression([numericLiteral(0), ref])); + } else if (path.isJSXIdentifier() && isMemberExpression(ref)) { + const { + object, + property + } = ref; + path.replaceWith(jsxMemberExpression( + jsxIdentifier(object.name), + jsxIdentifier(property.name))); + } else { + path.replaceWith(ref); + } + requeueInParent(path); + + path.skip(); + } + }, + UpdateExpression(path) { + const { + scope, + seen, + imported, + exported, + requeueInParent, + buildImportReference + } = this; + if (seen.has(path.node)) return; + seen.add(path.node); + const arg = path.get("argument"); + + if (arg.isMemberExpression()) return; + const update = path.node; + if (arg.isIdentifier()) { + const localName = arg.node.name; + + if (scope.getBinding(localName) !== path.scope.getBinding(localName)) { + return; + } + const exportedNames = exported.get(localName); + const importData = imported.get(localName); + if ((exportedNames == null ? void 0 : exportedNames.length) > 0 || importData) { + if (importData) { + path.replaceWith(assignmentExpression(update.operator[0] + "=", buildImportReference(importData, arg.node), buildImportThrow(localName))); + } else if (update.prefix) { + path.replaceWith(buildBindingExportAssignmentExpression(this.metadata, exportedNames, cloneNode(update), path.scope)); + } else { + const ref = scope.generateDeclaredUidIdentifier(localName); + path.replaceWith(sequenceExpression([assignmentExpression("=", cloneNode(ref), cloneNode(update)), buildBindingExportAssignmentExpression(this.metadata, exportedNames, identifier(localName), path.scope), cloneNode(ref)])); + } + } + } + requeueInParent(path); + path.skip(); + }, + AssignmentExpression: { + exit(path) { + const { + scope, + seen, + imported, + exported, + requeueInParent, + buildImportReference + } = this; + if (seen.has(path.node)) return; + seen.add(path.node); + const left = path.get("left"); + + if (left.isMemberExpression()) return; + if (left.isIdentifier()) { + const localName = left.node.name; + + if (scope.getBinding(localName) !== path.scope.getBinding(localName)) { + return; + } + const exportedNames = exported.get(localName); + const importData = imported.get(localName); + if ((exportedNames == null ? void 0 : exportedNames.length) > 0 || importData) { + _assert(path.node.operator === "=", "Path was not simplified"); + const assignment = path.node; + if (importData) { + assignment.left = buildImportReference(importData, left.node); + assignment.right = sequenceExpression([assignment.right, buildImportThrow(localName)]); + } + path.replaceWith(buildBindingExportAssignmentExpression(this.metadata, exportedNames, assignment, path.scope)); + requeueInParent(path); + } + } else { + const ids = left.getOuterBindingIdentifiers(); + const programScopeIds = Object.keys(ids).filter(localName => scope.getBinding(localName) === path.scope.getBinding(localName)); + const id = programScopeIds.find(localName => imported.has(localName)); + if (id) { + path.node.right = sequenceExpression([path.node.right, buildImportThrow(id)]); + } + + const items = []; + programScopeIds.forEach(localName => { + const exportedNames = exported.get(localName) || []; + if (exportedNames.length > 0) { + items.push(buildBindingExportAssignmentExpression(this.metadata, exportedNames, identifier(localName), path.scope)); + } + }); + if (items.length > 0) { + let node = sequenceExpression(items); + if (path.parentPath.isExpressionStatement()) { + node = expressionStatement(node); + node._blockHoist = path.parentPath.node._blockHoist; + } + const statement = path.insertAfter(node)[0]; + requeueInParent(statement); + } + } + } + }, + "ForOfStatement|ForInStatement"(path) { + const { + scope, + node + } = path; + const { + left + } = node; + const { + exported, + imported, + scope: programScope + } = this; + if (!isVariableDeclaration(left)) { + let didTransformExport = false, + importConstViolationName; + const loopBodyScope = path.get("body").scope; + for (const name of Object.keys(getOuterBindingIdentifiers(left))) { + if (programScope.getBinding(name) === scope.getBinding(name)) { + if (exported.has(name)) { + didTransformExport = true; + if (loopBodyScope.hasOwnBinding(name)) { + loopBodyScope.rename(name); + } + } + if (imported.has(name) && !importConstViolationName) { + importConstViolationName = name; + } + } + } + if (!didTransformExport && !importConstViolationName) { + return; + } + path.ensureBlock(); + const bodyPath = path.get("body"); + const newLoopId = scope.generateUidIdentifierBasedOnNode(left); + path.get("left").replaceWith(variableDeclaration("let", [variableDeclarator(cloneNode(newLoopId))])); + scope.registerDeclaration(path.get("left")); + if (didTransformExport) { + bodyPath.unshiftContainer("body", expressionStatement(assignmentExpression("=", left, newLoopId))); + } + if (importConstViolationName) { + bodyPath.unshiftContainer("body", expressionStatement(buildImportThrow(importConstViolationName))); + } + } + } +}; + +//# sourceMappingURL=rewrite-live-references.js.map + + +/***/ }), + +/***/ 2691: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = rewriteThis; +var _helperEnvironmentVisitor = __webpack_require__(6371); +var _traverse = __webpack_require__(5845); +var _t = __webpack_require__(2139); +const { + numericLiteral, + unaryExpression +} = _t; +const rewriteThisVisitor = _traverse.default.visitors.merge([_helperEnvironmentVisitor.default, { + ThisExpression(path) { + path.replaceWith(unaryExpression("void", numericLiteral(0), true)); + } +}]); +function rewriteThis(programPath) { + (0, _traverse.default)(programPath.node, Object.assign({}, rewriteThisVisitor, { + noScope: true + })); +} + +//# sourceMappingURL=rewrite-this.js.map + + +/***/ }), + +/***/ 5457: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = simplifyAccess; +var _t = __webpack_require__(2139); +const { + LOGICAL_OPERATORS, + assignmentExpression, + binaryExpression, + cloneNode, + identifier, + logicalExpression, + numericLiteral, + sequenceExpression, + unaryExpression +} = _t; +const simpleAssignmentVisitor = { + UpdateExpression: { + exit(path) { + const { + scope, + bindingNames, + includeUpdateExpression + } = this; + if (!includeUpdateExpression) { + return; + } + const arg = path.get("argument"); + if (!arg.isIdentifier()) return; + const localName = arg.node.name; + if (!bindingNames.has(localName)) return; + + if (scope.getBinding(localName) !== path.scope.getBinding(localName)) { + return; + } + if (path.parentPath.isExpressionStatement() && !path.isCompletionRecord()) { + const operator = path.node.operator == "++" ? "+=" : "-="; + path.replaceWith(assignmentExpression(operator, arg.node, numericLiteral(1))); + } else if (path.node.prefix) { + path.replaceWith(assignmentExpression("=", identifier(localName), binaryExpression(path.node.operator[0], unaryExpression("+", arg.node), numericLiteral(1)))); + } else { + const old = path.scope.generateUidIdentifierBasedOnNode(arg.node, "old"); + const varName = old.name; + path.scope.push({ + id: old + }); + const binary = binaryExpression(path.node.operator[0], identifier(varName), + numericLiteral(1)); + + path.replaceWith(sequenceExpression([assignmentExpression("=", identifier(varName), unaryExpression("+", arg.node)), assignmentExpression("=", cloneNode(arg.node), binary), identifier(varName)])); + } + } + }, + AssignmentExpression: { + exit(path) { + const { + scope, + seen, + bindingNames + } = this; + if (path.node.operator === "=") return; + if (seen.has(path.node)) return; + seen.add(path.node); + const left = path.get("left"); + if (!left.isIdentifier()) return; + + const localName = left.node.name; + if (!bindingNames.has(localName)) return; + + if (scope.getBinding(localName) !== path.scope.getBinding(localName)) { + return; + } + const operator = path.node.operator.slice(0, -1); + if (LOGICAL_OPERATORS.includes(operator)) { + path.replaceWith(logicalExpression( + operator, path.node.left, assignmentExpression("=", cloneNode(path.node.left), path.node.right))); + } else { + path.node.right = binaryExpression( + operator, cloneNode(path.node.left), path.node.right); + path.node.operator = "="; + } + } + } +}; +function simplifyAccess(path, bindingNames, +includeUpdateExpression = true) { + path.traverse(simpleAssignmentVisitor, { + scope: path.scope, + bindingNames, + seen: new WeakSet(), + includeUpdateExpression + }); +} + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 4254: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = splitExportDeclaration; + +var _t = __webpack_require__(2139); + +const { + cloneNode, + exportNamedDeclaration, + exportSpecifier, + identifier, + variableDeclaration, + variableDeclarator +} = _t; + +function splitExportDeclaration(exportDeclaration) { + if (!exportDeclaration.isExportDeclaration() || exportDeclaration.isExportAllDeclaration()) { + throw new Error("Only default and named export declarations can be split."); + } + + if (exportDeclaration.isExportDefaultDeclaration()) { + const declaration = exportDeclaration.get("declaration"); + const standaloneDeclaration = declaration.isFunctionDeclaration() || declaration.isClassDeclaration(); + const scope = declaration.isScope() ? declaration.scope.parent : declaration.scope; + let id = declaration.node.id; + let needBindingRegistration = false; + + if (!id) { + needBindingRegistration = true; + id = scope.generateUidIdentifier("default"); + + if (standaloneDeclaration || declaration.isFunctionExpression() || declaration.isClassExpression()) { + declaration.node.id = cloneNode(id); + } + } + + const updatedDeclaration = standaloneDeclaration ? declaration.node : variableDeclaration("var", [variableDeclarator(cloneNode(id), declaration.node)]); + const updatedExportDeclaration = exportNamedDeclaration(null, [exportSpecifier(cloneNode(id), identifier("default"))]); + exportDeclaration.insertAfter(updatedExportDeclaration); + exportDeclaration.replaceWith(updatedDeclaration); + + if (needBindingRegistration) { + scope.registerDeclaration(exportDeclaration); + } + + return exportDeclaration; + } else if (exportDeclaration.get("specifiers").length > 0) { + throw new Error("It doesn't make sense to split exported specifiers."); + } + + const declaration = exportDeclaration.get("declaration"); + const bindingIdentifiers = declaration.getOuterBindingIdentifiers(); + const specifiers = Object.keys(bindingIdentifiers).map(name => { + return exportSpecifier(identifier(name), identifier(name)); + }); + const aliasDeclar = exportNamedDeclaration(null, specifiers); + exportDeclaration.insertAfter(aliasDeclar); + exportDeclaration.replaceWith(declaration.node); + return exportDeclaration; +} + +/***/ }), + +/***/ 6904: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.readCodePoint = readCodePoint; +exports.readInt = readInt; +exports.readStringContents = readStringContents; + +var _isDigit = function isDigit(code) { + return code >= 48 && code <= 57; +}; + +const forbiddenNumericSeparatorSiblings = { + decBinOct: new Set([46, 66, 69, 79, 95, 98, 101, 111]), + hex: new Set([46, 88, 95, 120]) +}; +const isAllowedNumericSeparatorSibling = { + bin: ch => ch === 48 || ch === 49, + oct: ch => ch >= 48 && ch <= 55, + dec: ch => ch >= 48 && ch <= 57, + hex: ch => ch >= 48 && ch <= 57 || ch >= 65 && ch <= 70 || ch >= 97 && ch <= 102 +}; + +function readStringContents(type, input, pos, lineStart, curLine, errors) { + const initialPos = pos; + const initialLineStart = lineStart; + const initialCurLine = curLine; + let out = ""; + let firstInvalidLoc = null; + let chunkStart = pos; + const { + length + } = input; + + for (;;) { + if (pos >= length) { + errors.unterminated(initialPos, initialLineStart, initialCurLine); + out += input.slice(chunkStart, pos); + break; + } + + const ch = input.charCodeAt(pos); + + if (isStringEnd(type, ch, input, pos)) { + out += input.slice(chunkStart, pos); + break; + } + + if (ch === 92) { + out += input.slice(chunkStart, pos); + const res = readEscapedChar(input, pos, lineStart, curLine, type === "template", errors); + + if (res.ch === null && !firstInvalidLoc) { + firstInvalidLoc = { + pos, + lineStart, + curLine + }; + } else { + out += res.ch; + } + + ({ + pos, + lineStart, + curLine + } = res); + chunkStart = pos; + } else if (ch === 8232 || ch === 8233) { + ++pos; + ++curLine; + lineStart = pos; + } else if (ch === 10 || ch === 13) { + if (type === "template") { + out += input.slice(chunkStart, pos) + "\n"; + ++pos; + + if (ch === 13 && input.charCodeAt(pos) === 10) { + ++pos; + } + + ++curLine; + chunkStart = lineStart = pos; + } else { + errors.unterminated(initialPos, initialLineStart, initialCurLine); + } + } else { + ++pos; + } + } + + return { + pos, + str: out, + firstInvalidLoc, + lineStart, + curLine, + containsInvalid: !!firstInvalidLoc + }; +} + +function isStringEnd(type, ch, input, pos) { + if (type === "template") { + return ch === 96 || ch === 36 && input.charCodeAt(pos + 1) === 123; + } + + return ch === (type === "double" ? 34 : 39); +} + +function readEscapedChar(input, pos, lineStart, curLine, inTemplate, errors) { + const throwOnInvalid = !inTemplate; + pos++; + + const res = ch => ({ + pos, + ch, + lineStart, + curLine + }); + + const ch = input.charCodeAt(pos++); + + switch (ch) { + case 110: + return res("\n"); + + case 114: + return res("\r"); + + case 120: + { + let code; + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, 2, false, throwOnInvalid, errors)); + return res(code === null ? null : String.fromCharCode(code)); + } + + case 117: + { + let code; + ({ + code, + pos + } = readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors)); + return res(code === null ? null : String.fromCodePoint(code)); + } + + case 116: + return res("\t"); + + case 98: + return res("\b"); + + case 118: + return res("\u000b"); + + case 102: + return res("\f"); + + case 13: + if (input.charCodeAt(pos) === 10) { + ++pos; + } + + case 10: + lineStart = pos; + ++curLine; + + case 8232: + case 8233: + return res(""); + + case 56: + case 57: + if (inTemplate) { + return res(null); + } else { + errors.strictNumericEscape(pos - 1, lineStart, curLine); + } + + default: + if (ch >= 48 && ch <= 55) { + const startPos = pos - 1; + const match = input.slice(startPos, pos + 2).match(/^[0-7]+/); + let octalStr = match[0]; + let octal = parseInt(octalStr, 8); + + if (octal > 255) { + octalStr = octalStr.slice(0, -1); + octal = parseInt(octalStr, 8); + } + + pos += octalStr.length - 1; + const next = input.charCodeAt(pos); + + if (octalStr !== "0" || next === 56 || next === 57) { + if (inTemplate) { + return res(null); + } else { + errors.strictNumericEscape(startPos, lineStart, curLine); + } + } + + return res(String.fromCharCode(octal)); + } + + return res(String.fromCharCode(ch)); + } +} + +function readHexChar(input, pos, lineStart, curLine, len, forceLen, throwOnInvalid, errors) { + const initialPos = pos; + let n; + ({ + n, + pos + } = readInt(input, pos, lineStart, curLine, 16, len, forceLen, false, errors, !throwOnInvalid)); + + if (n === null) { + if (throwOnInvalid) { + errors.invalidEscapeSequence(initialPos, lineStart, curLine); + } else { + pos = initialPos - 1; + } + } + + return { + code: n, + pos + }; +} + +function readInt(input, pos, lineStart, curLine, radix, len, forceLen, allowNumSeparator, errors, bailOnError) { + const start = pos; + const forbiddenSiblings = radix === 16 ? forbiddenNumericSeparatorSiblings.hex : forbiddenNumericSeparatorSiblings.decBinOct; + const isAllowedSibling = radix === 16 ? isAllowedNumericSeparatorSibling.hex : radix === 10 ? isAllowedNumericSeparatorSibling.dec : radix === 8 ? isAllowedNumericSeparatorSibling.oct : isAllowedNumericSeparatorSibling.bin; + let invalid = false; + let total = 0; + + for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) { + const code = input.charCodeAt(pos); + let val; + + if (code === 95 && allowNumSeparator !== "bail") { + const prev = input.charCodeAt(pos - 1); + const next = input.charCodeAt(pos + 1); + + if (!allowNumSeparator) { + if (bailOnError) return { + n: null, + pos + }; + errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine); + } else if (Number.isNaN(next) || !isAllowedSibling(next) || forbiddenSiblings.has(prev) || forbiddenSiblings.has(next)) { + if (bailOnError) return { + n: null, + pos + }; + errors.unexpectedNumericSeparator(pos, lineStart, curLine); + } + + ++pos; + continue; + } + + if (code >= 97) { + val = code - 97 + 10; + } else if (code >= 65) { + val = code - 65 + 10; + } else if (_isDigit(code)) { + val = code - 48; + } else { + val = Infinity; + } + + if (val >= radix) { + if (val <= 9 && bailOnError) { + return { + n: null, + pos + }; + } else if (val <= 9 && errors.invalidDigit(pos, lineStart, curLine, radix)) { + val = 0; + } else if (forceLen) { + val = 0; + invalid = true; + } else { + break; + } + } + + ++pos; + total = total * radix + val; + } + + if (pos === start || len != null && pos - start !== len || invalid) { + return { + n: null, + pos + }; + } + + return { + n: total, + pos + }; +} + +function readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors) { + const ch = input.charCodeAt(pos); + let code; + + if (ch === 123) { + ++pos; + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, input.indexOf("}", pos) - pos, true, throwOnInvalid, errors)); + ++pos; + + if (code !== null && code > 0x10ffff) { + if (throwOnInvalid) { + errors.invalidCodePoint(pos, lineStart, curLine); + } else { + return { + code: null, + pos + }; + } + } + } else { + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, 4, false, throwOnInvalid, errors)); + } + + return { + code, + pos + }; +} + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 2266: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.isIdentifierChar = isIdentifierChar; +exports.isIdentifierName = isIdentifierName; +exports.isIdentifierStart = isIdentifierStart; +let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; +let nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; +const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); +const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); +nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; +const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 757, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938, 6, 4191]; +const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 81, 2, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 9, 5351, 0, 7, 14, 13835, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 983, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; + +function isInAstralSet(code, set) { + let pos = 0x10000; + + for (let i = 0, length = set.length; i < length; i += 2) { + pos += set[i]; + if (pos > code) return false; + pos += set[i + 1]; + if (pos >= code) return true; + } + + return false; +} + +function isIdentifierStart(code) { + if (code < 65) return code === 36; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; + + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); + } + + return isInAstralSet(code, astralIdentifierStartCodes); +} + +function isIdentifierChar(code) { + if (code < 48) return code === 36; + if (code < 58) return true; + if (code < 65) return false; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; + + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); + } + + return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); +} + +function isIdentifierName(name) { + let isFirst = true; + + for (let i = 0; i < name.length; i++) { + let cp = name.charCodeAt(i); + + if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) { + const trail = name.charCodeAt(++i); + + if ((trail & 0xfc00) === 0xdc00) { + cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff); + } + } + + if (isFirst) { + isFirst = false; + + if (!isIdentifierStart(cp)) { + return false; + } + } else if (!isIdentifierChar(cp)) { + return false; + } + } + + return !isFirst; +} + +//# sourceMappingURL=identifier.js.map + + +/***/ }), + +/***/ 8740: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +Object.defineProperty(exports, "isIdentifierChar", ({ + enumerable: true, + get: function () { + return _identifier.isIdentifierChar; + } +})); +Object.defineProperty(exports, "isIdentifierName", ({ + enumerable: true, + get: function () { + return _identifier.isIdentifierName; + } +})); +Object.defineProperty(exports, "isIdentifierStart", ({ + enumerable: true, + get: function () { + return _identifier.isIdentifierStart; + } +})); +Object.defineProperty(exports, "isKeyword", ({ + enumerable: true, + get: function () { + return _keyword.isKeyword; + } +})); +Object.defineProperty(exports, "isReservedWord", ({ + enumerable: true, + get: function () { + return _keyword.isReservedWord; + } +})); +Object.defineProperty(exports, "isStrictBindOnlyReservedWord", ({ + enumerable: true, + get: function () { + return _keyword.isStrictBindOnlyReservedWord; + } +})); +Object.defineProperty(exports, "isStrictBindReservedWord", ({ + enumerable: true, + get: function () { + return _keyword.isStrictBindReservedWord; + } +})); +Object.defineProperty(exports, "isStrictReservedWord", ({ + enumerable: true, + get: function () { + return _keyword.isStrictReservedWord; + } +})); + +var _identifier = __webpack_require__(2266); + +var _keyword = __webpack_require__(2563); + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 2563: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.isKeyword = isKeyword; +exports.isReservedWord = isReservedWord; +exports.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord; +exports.isStrictBindReservedWord = isStrictBindReservedWord; +exports.isStrictReservedWord = isStrictReservedWord; +const reservedWords = { + keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], + strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], + strictBind: ["eval", "arguments"] +}; +const keywords = new Set(reservedWords.keyword); +const reservedWordsStrictSet = new Set(reservedWords.strict); +const reservedWordsStrictBindSet = new Set(reservedWords.strictBind); + +function isReservedWord(word, inModule) { + return inModule && word === "await" || word === "enum"; +} + +function isStrictReservedWord(word, inModule) { + return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word); +} + +function isStrictBindOnlyReservedWord(word) { + return reservedWordsStrictBindSet.has(word); +} + +function isStrictBindReservedWord(word, inModule) { + return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word); +} + +function isKeyword(word) { + return keywords.has(word); +} + +//# sourceMappingURL=keyword.js.map + + +/***/ }), + +/***/ 8224: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.findSuggestion = findSuggestion; +const { + min +} = Math; + +function levenshtein(a, b) { + let t = [], + u = [], + i, + j; + const m = a.length, + n = b.length; + + if (!m) { + return n; + } + + if (!n) { + return m; + } + + for (j = 0; j <= n; j++) { + t[j] = j; + } + + for (i = 1; i <= m; i++) { + for (u = [i], j = 1; j <= n; j++) { + u[j] = a[i - 1] === b[j - 1] ? t[j - 1] : min(t[j - 1], t[j], u[j - 1]) + 1; + } + + t = u; + } + + return u[n]; +} + +function findSuggestion(str, arr) { + const distances = arr.map(el => levenshtein(el, str)); + return arr[distances.indexOf(min(...distances))]; +} + +/***/ }), + +/***/ 1200: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +Object.defineProperty(exports, "OptionValidator", ({ + enumerable: true, + get: function () { + return _validator.OptionValidator; + } +})); +Object.defineProperty(exports, "findSuggestion", ({ + enumerable: true, + get: function () { + return _findSuggestion.findSuggestion; + } +})); + +var _validator = __webpack_require__(12); + +var _findSuggestion = __webpack_require__(8224); + +/***/ }), + +/***/ 12: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.OptionValidator = void 0; + +var _findSuggestion = __webpack_require__(8224); + +class OptionValidator { + constructor(descriptor) { + this.descriptor = descriptor; + } + + validateTopLevelOptions(options, TopLevelOptionShape) { + const validOptionNames = Object.keys(TopLevelOptionShape); + + for (const option of Object.keys(options)) { + if (!validOptionNames.includes(option)) { + throw new Error(this.formatMessage(`'${option}' is not a valid top-level option. +- Did you mean '${(0, _findSuggestion.findSuggestion)(option, validOptionNames)}'?`)); + } + } + } + + validateBooleanOption(name, value, defaultValue) { + if (value === undefined) { + return defaultValue; + } else { + this.invariant(typeof value === "boolean", `'${name}' option must be a boolean.`); + } + + return value; + } + + validateStringOption(name, value, defaultValue) { + if (value === undefined) { + return defaultValue; + } else { + this.invariant(typeof value === "string", `'${name}' option must be a string.`); + } + + return value; + } + + invariant(condition, message) { + if (!condition) { + throw new Error(this.formatMessage(message)); + } + } + + formatMessage(message) { + return `${this.descriptor}: ${message}`; + } + +} + +exports.OptionValidator = OptionValidator; + +/***/ }), + +/***/ 4619: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +var _template = __webpack_require__(940); + +function helper(minVersion, source) { + return Object.freeze({ + minVersion, + ast: () => _template.default.program.ast(source, { + preserveComments: true + }) + }); +} +var _default = Object.freeze({ + AsyncGenerator: helper("7.0.0-beta.0", 'import OverloadYield from"OverloadYield";export default function AsyncGenerator(gen){var front,back;function resume(key,arg){try{var result=gen[key](arg),value=result.value,overloaded=value instanceof OverloadYield;Promise.resolve(overloaded?value.v:value).then((function(arg){if(overloaded){var nextKey="return"===key?"return":"next";if(!value.k||arg.done)return resume(nextKey,arg);arg=gen[nextKey](arg).value}settle(result.done?"return":"normal",arg)}),(function(err){resume("throw",err)}))}catch(err){settle("throw",err)}}function settle(type,value){switch(type){case"return":front.resolve({value:value,done:!0});break;case"throw":front.reject(value);break;default:front.resolve({value:value,done:!1})}(front=front.next)?resume(front.key,front.arg):back=null}this._invoke=function(key,arg){return new Promise((function(resolve,reject){var request={key:key,arg:arg,resolve:resolve,reject:reject,next:null};back?back=back.next=request:(front=back=request,resume(key,arg))}))},"function"!=typeof gen.return&&(this.return=void 0)}AsyncGenerator.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},AsyncGenerator.prototype.next=function(arg){return this._invoke("next",arg)},AsyncGenerator.prototype.throw=function(arg){return this._invoke("throw",arg)},AsyncGenerator.prototype.return=function(arg){return this._invoke("return",arg)};'), + OverloadYield: helper("7.18.14", "export default function _OverloadYield(value,kind){this.v=value,this.k=kind}"), + applyDecs: helper("7.17.8", 'function old_createMetadataMethodsForProperty(metadataMap,kind,property,decoratorFinishedRef){return{getMetadata:function(key){old_assertNotFinished(decoratorFinishedRef,"getMetadata"),old_assertMetadataKey(key);var metadataForKey=metadataMap[key];if(void 0!==metadataForKey)if(1===kind){var pub=metadataForKey.public;if(void 0!==pub)return pub[property]}else if(2===kind){var priv=metadataForKey.private;if(void 0!==priv)return priv.get(property)}else if(Object.hasOwnProperty.call(metadataForKey,"constructor"))return metadataForKey.constructor},setMetadata:function(key,value){old_assertNotFinished(decoratorFinishedRef,"setMetadata"),old_assertMetadataKey(key);var metadataForKey=metadataMap[key];if(void 0===metadataForKey&&(metadataForKey=metadataMap[key]={}),1===kind){var pub=metadataForKey.public;void 0===pub&&(pub=metadataForKey.public={}),pub[property]=value}else if(2===kind){var priv=metadataForKey.priv;void 0===priv&&(priv=metadataForKey.private=new Map),priv.set(property,value)}else metadataForKey.constructor=value}}}function old_convertMetadataMapToFinal(obj,metadataMap){var parentMetadataMap=obj[Symbol.metadata||Symbol.for("Symbol.metadata")],metadataKeys=Object.getOwnPropertySymbols(metadataMap);if(0!==metadataKeys.length){for(var i=0;i=0;i--){var newInit;if(void 0!==(newValue=old_memberDec(decs[i],name,desc,metadataMap,initializers,kind,isStatic,isPrivate,value)))old_assertValidReturnValue(kind,newValue),0===kind?newInit=newValue:1===kind?(newInit=old_getInit(newValue),get=newValue.get||value.get,set=newValue.set||value.set,value={get:get,set:set}):value=newValue,void 0!==newInit&&(void 0===initializer?initializer=newInit:"function"==typeof initializer?initializer=[initializer,newInit]:initializer.push(newInit))}if(0===kind||1===kind){if(void 0===initializer)initializer=function(instance,init){return init};else if("function"!=typeof initializer){var ownInitializers=initializer;initializer=function(instance,init){for(var value=init,i=0;i3,isStatic=kind>=5;if(isStatic?(base=Class,metadataMap=staticMetadataMap,0!==(kind-=5)&&(initializers=staticInitializers=staticInitializers||[])):(base=Class.prototype,metadataMap=protoMetadataMap,0!==kind&&(initializers=protoInitializers=protoInitializers||[])),0!==kind&&!isPrivate){var existingNonFields=isStatic?existingStaticNonFields:existingProtoNonFields,existingKind=existingNonFields.get(name)||0;if(!0===existingKind||3===existingKind&&4!==kind||4===existingKind&&3!==kind)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+name);!existingKind&&kind>2?existingNonFields.set(name,kind):existingNonFields.set(name,!0)}old_applyMemberDec(ret,base,decInfo,name,kind,isStatic,isPrivate,metadataMap,initializers)}}old_pushInitializers(ret,protoInitializers),old_pushInitializers(ret,staticInitializers)}function old_pushInitializers(ret,initializers){initializers&&ret.push((function(instance){for(var i=0;i0){for(var initializers=[],newClass=targetClass,name=targetClass.name,i=classDecs.length-1;i>=0;i--){var decoratorFinishedRef={v:!1};try{var ctx=Object.assign({kind:"class",name:name,addInitializer:old_createAddInitializerMethod(initializers,decoratorFinishedRef)},old_createMetadataMethodsForProperty(metadataMap,0,name,decoratorFinishedRef)),nextNewClass=classDecs[i](newClass,ctx)}finally{decoratorFinishedRef.v=!0}void 0!==nextNewClass&&(old_assertValidReturnValue(10,nextNewClass),newClass=nextNewClass)}ret.push(newClass,(function(){for(var i=0;i=0;i--){var newInit;if(void 0!==(newValue=memberDec(decs[i],name,desc,initializers,kind,isStatic,isPrivate,value)))assertValidReturnValue(kind,newValue),0===kind?newInit=newValue:1===kind?(newInit=newValue.init,get=newValue.get||value.get,set=newValue.set||value.set,value={get:get,set:set}):value=newValue,void 0!==newInit&&(void 0===init?init=newInit:"function"==typeof init?init=[init,newInit]:init.push(newInit))}if(0===kind||1===kind){if(void 0===init)init=function(instance,init){return init};else if("function"!=typeof init){var ownInitializers=init;init=function(instance,init){for(var value=init,i=0;i3,isStatic=kind>=5;if(isStatic?(base=Class,0!==(kind-=5)&&(initializers=staticInitializers=staticInitializers||[])):(base=Class.prototype,0!==kind&&(initializers=protoInitializers=protoInitializers||[])),0!==kind&&!isPrivate){var existingNonFields=isStatic?existingStaticNonFields:existingProtoNonFields,existingKind=existingNonFields.get(name)||0;if(!0===existingKind||3===existingKind&&4!==kind||4===existingKind&&3!==kind)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+name);!existingKind&&kind>2?existingNonFields.set(name,kind):existingNonFields.set(name,!0)}applyMemberDec(ret,base,decInfo,name,kind,isStatic,isPrivate,initializers)}}pushInitializers(ret,protoInitializers),pushInitializers(ret,staticInitializers)}function pushInitializers(ret,initializers){initializers&&ret.push((function(instance){for(var i=0;i0){for(var initializers=[],newClass=targetClass,name=targetClass.name,i=classDecs.length-1;i>=0;i--){var decoratorFinishedRef={v:!1};try{var nextNewClass=classDecs[i](newClass,{kind:"class",name:name,addInitializer:createAddInitializerMethod(initializers,decoratorFinishedRef)})}finally{decoratorFinishedRef.v=!0}void 0!==nextNewClass&&(assertValidReturnValue(10,nextNewClass),newClass=nextNewClass)}ret.push(newClass,(function(){for(var i=0;i1){for(var childArray=new Array(childrenLength),i=0;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=0;--i){var entry=this.tryEntries[i];if(entry.tryLoc<=this.prev&&hasOwn.call(entry,"finallyLoc")&&this.prev=0;--i){var entry=this.tryEntries[i];if(entry.finallyLoc===finallyLoc)return this.complete(entry.completion,entry.afterLoc),resetTryEntry(entry),ContinueSentinel}},catch:function(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(iterable,resultName,nextLoc){return this.delegate={iterator:values(iterable),resultName:resultName,nextLoc:nextLoc},"next"===this.method&&(this.arg=undefined),ContinueSentinel}},exports}'), + typeof: helper("7.0.0-beta.0", 'export default 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)}'), + wrapRegExp: helper("7.19.0", 'import setPrototypeOf from"setPrototypeOf";import inherits from"inherits";export default function _wrapRegExp(){_wrapRegExp=function(re,groups){return new BabelRegExp(re,void 0,groups)};var _super=RegExp.prototype,_groups=new WeakMap;function BabelRegExp(re,flags,groups){var _this=new RegExp(re,flags);return _groups.set(_this,groups||_groups.get(re)),setPrototypeOf(_this,BabelRegExp.prototype)}function buildGroups(result,re){var g=_groups.get(re);return Object.keys(g).reduce((function(groups,name){var i=g[name];if("number"==typeof i)groups[name]=result[i];else{for(var k=0;void 0===result[i[k]]&&k+1]+)>/g,(function(_,name){var group=groups[name];return"$"+(Array.isArray(group)?group.join("$"):group)})))}if("function"==typeof substitution){var _this=this;return _super[Symbol.replace].call(this,str,(function(){var args=arguments;return"object"!=typeof args[args.length-1]&&(args=[].slice.call(args)).push(buildGroups(args,_this)),substitution.apply(this,args)}))}return _super[Symbol.replace].call(this,str,substitution)},_wrapRegExp.apply(this,arguments)}') +}); +exports["default"] = _default; + +//# sourceMappingURL=helpers-generated.js.map + + +/***/ }), + +/***/ 5819: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +var _template = __webpack_require__(940); +var _helpersGenerated = __webpack_require__(4619); +const helpers = Object.assign({ + __proto__: null +}, _helpersGenerated.default); +var _default = helpers; +exports["default"] = _default; +const helper = minVersion => tpl => ({ + minVersion, + ast: () => _template.default.program.ast(tpl) +}); +{ + helpers.AwaitValue = helper("7.0.0-beta.0")` + export default function _AwaitValue(value) { + this.wrapped = value; + } + `; +} +helpers.wrapAsyncGenerator = helper("7.0.0-beta.0")` + import AsyncGenerator from "AsyncGenerator"; + + export default function _wrapAsyncGenerator(fn) { + return function () { + return new AsyncGenerator(fn.apply(this, arguments)); + }; + } +`; +helpers.asyncToGenerator = helper("7.0.0-beta.0")` + function 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); + } + } + + export default function _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); + }); + }; + } +`; +helpers.classCallCheck = helper("7.0.0-beta.0")` + export default function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } +`; +helpers.createClass = helper("7.0.0-beta.0")` + import toPropertyKey from "toPropertyKey"; + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i ++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor); + } + } + + export default function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { writable: false }); + return Constructor; + } +`; +helpers.defineEnumerableProperties = helper("7.0.0-beta.0")` + export default function _defineEnumerableProperties(obj, descs) { + for (var key in descs) { + var desc = descs[key]; + desc.configurable = desc.enumerable = true; + if ("value" in desc) desc.writable = true; + Object.defineProperty(obj, key, desc); + } + + // Symbols are not enumerated over by for-in loops. If native + // Symbols are available, fetch all of the descs object's own + // symbol properties and define them on our target object too. + if (Object.getOwnPropertySymbols) { + var objectSymbols = Object.getOwnPropertySymbols(descs); + for (var i = 0; i < objectSymbols.length; i++) { + var sym = objectSymbols[i]; + var desc = descs[sym]; + desc.configurable = desc.enumerable = true; + if ("value" in desc) desc.writable = true; + Object.defineProperty(obj, sym, desc); + } + } + return obj; + } +`; +helpers.defaults = helper("7.0.0-beta.0")` + export default function _defaults(obj, defaults) { + var keys = Object.getOwnPropertyNames(defaults); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + var value = Object.getOwnPropertyDescriptor(defaults, key); + if (value && value.configurable && obj[key] === undefined) { + Object.defineProperty(obj, key, value); + } + } + return obj; + } +`; +helpers.defineProperty = helper("7.0.0-beta.0")` + import toPropertyKey from "toPropertyKey"; + export default function _defineProperty(obj, key, value) { + key = toPropertyKey(key); + // Shortcircuit the slow defineProperty path when possible. + // We are trying to avoid issues where setters defined on the + // prototype cause side effects under the fast path of simple + // assignment. By checking for existence of the property with + // the in operator, we can optimize most of this overhead away. + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } +`; + +helpers.extends = helper("7.0.0-beta.0")` + export default function _extends() { + _extends = Object.assign ? Object.assign.bind() : function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + return target; + }; + + return _extends.apply(this, arguments); + } +`; + +helpers.objectSpread = helper("7.0.0-beta.0")` + import defineProperty from "defineProperty"; + + export default function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = (arguments[i] != null) ? Object(arguments[i]) : {}; + var ownKeys = Object.keys(source); + if (typeof Object.getOwnPropertySymbols === 'function') { + ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function(sym) { + return Object.getOwnPropertyDescriptor(source, sym).enumerable; + })); + } + ownKeys.forEach(function(key) { + defineProperty(target, key, source[key]); + }); + } + return target; + } +`; +helpers.inherits = helper("7.0.0-beta.0")` + import setPrototypeOf from "setPrototypeOf"; + + export default function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + // We can't use defineProperty to set the prototype in a single step because it + // doesn't work in Chrome <= 36. https://github.com/babel/babel/issues/14056 + // V8 bug: https://bugs.chromium.org/p/v8/issues/detail?id=3334 + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { writable: false }); + if (superClass) setPrototypeOf(subClass, superClass); + } +`; +helpers.inheritsLoose = helper("7.0.0-beta.0")` + import setPrototypeOf from "setPrototypeOf"; + + export default function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + setPrototypeOf(subClass, superClass); + } +`; + +helpers.getPrototypeOf = helper("7.0.0-beta.0")` + export default function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf + ? Object.getPrototypeOf.bind() + : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } +`; +helpers.setPrototypeOf = helper("7.0.0-beta.0")` + export default function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } +`; +helpers.isNativeReflectConstruct = helper("7.9.0")` + export default function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + + // core-js@3 + if (Reflect.construct.sham) return false; + + // Proxy can't be polyfilled. Every browser implemented + // proxies before or at the same time as Reflect.construct, + // so if they support Proxy they also support Reflect.construct. + if (typeof Proxy === "function") return true; + + // Since Reflect.construct can't be properly polyfilled, some + // implementations (e.g. core-js@2) don't set the correct internal slots. + // Those polyfills don't allow us to subclass built-ins, so we need to + // use our fallback implementation. + try { + // If the internal slots aren't set, this throws an error similar to + // TypeError: this is not a Boolean object. + + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {})); + return true; + } catch (e) { + return false; + } + } +`; + +helpers.construct = helper("7.0.0-beta.0")` + import setPrototypeOf from "setPrototypeOf"; + import isNativeReflectConstruct from "isNativeReflectConstruct"; + + export default function _construct(Parent, args, Class) { + if (isNativeReflectConstruct()) { + _construct = Reflect.construct.bind(); + } else { + // NOTE: If Parent !== Class, the correct __proto__ is set *after* + // calling the constructor. + _construct = function _construct(Parent, args, Class) { + var a = [null]; + a.push.apply(a, args); + var Constructor = Function.bind.apply(Parent, a); + var instance = new Constructor(); + if (Class) setPrototypeOf(instance, Class.prototype); + return instance; + }; + } + // Avoid issues with Class being present but undefined when it wasn't + // present in the original call. + return _construct.apply(null, arguments); + } +`; +helpers.isNativeFunction = helper("7.0.0-beta.0")` + export default function _isNativeFunction(fn) { + // Note: This function returns "true" for core-js functions. + return Function.toString.call(fn).indexOf("[native code]") !== -1; + } +`; + +helpers.wrapNativeSuper = helper("7.0.0-beta.0")` + import getPrototypeOf from "getPrototypeOf"; + import setPrototypeOf from "setPrototypeOf"; + import isNativeFunction from "isNativeFunction"; + import construct from "construct"; + + export default function _wrapNativeSuper(Class) { + var _cache = typeof Map === "function" ? new Map() : undefined; + + _wrapNativeSuper = function _wrapNativeSuper(Class) { + if (Class === null || !isNativeFunction(Class)) return Class; + if (typeof Class !== "function") { + throw new TypeError("Super expression must either be null or a function"); + } + if (typeof _cache !== "undefined") { + if (_cache.has(Class)) return _cache.get(Class); + _cache.set(Class, Wrapper); + } + function Wrapper() { + return construct(Class, arguments, getPrototypeOf(this).constructor) + } + Wrapper.prototype = Object.create(Class.prototype, { + constructor: { + value: Wrapper, + enumerable: false, + writable: true, + configurable: true, + } + }); + + return setPrototypeOf(Wrapper, Class); + } + + return _wrapNativeSuper(Class) + } +`; +helpers.instanceof = helper("7.0.0-beta.0")` + export default function _instanceof(left, right) { + if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) { + return !!right[Symbol.hasInstance](left); + } else { + return left instanceof right; + } + } +`; +helpers.interopRequireDefault = helper("7.0.0-beta.0")` + export default function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } +`; +helpers.interopRequireWildcard = helper("7.14.0")` + function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function (nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); + } + + export default function _interopRequireWildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + + if (obj === null || (typeof obj !== "object" && typeof obj !== "function")) { + return { default: obj } + } + + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + + var newObj = {}; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var key in obj) { + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor + ? Object.getOwnPropertyDescriptor(obj, key) + : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; + } +`; +helpers.newArrowCheck = helper("7.0.0-beta.0")` + export default function _newArrowCheck(innerThis, boundThis) { + if (innerThis !== boundThis) { + throw new TypeError("Cannot instantiate an arrow function"); + } + } +`; +helpers.objectDestructuringEmpty = helper("7.0.0-beta.0")` + export default function _objectDestructuringEmpty(obj) { + if (obj == null) throw new TypeError("Cannot destructure " + obj); + } +`; +helpers.objectWithoutPropertiesLoose = helper("7.0.0-beta.0")` + export default function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; + } +`; +helpers.objectWithoutProperties = helper("7.0.0-beta.0")` + import objectWithoutPropertiesLoose from "objectWithoutPropertiesLoose"; + + export default function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; + + var target = objectWithoutPropertiesLoose(source, excluded); + var key, i; + + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; + target[key] = source[key]; + } + } + + return target; + } +`; +helpers.assertThisInitialized = helper("7.0.0-beta.0")` + export default function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } +`; +helpers.possibleConstructorReturn = helper("7.0.0-beta.0")` + import assertThisInitialized from "assertThisInitialized"; + + export default function _possibleConstructorReturn(self, call) { + if (call && (typeof call === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + + return assertThisInitialized(self); + } +`; + +helpers.createSuper = helper("7.9.0")` + import getPrototypeOf from "getPrototypeOf"; + import isNativeReflectConstruct from "isNativeReflectConstruct"; + import possibleConstructorReturn from "possibleConstructorReturn"; + + export default function _createSuper(Derived) { + var hasNativeReflectConstruct = isNativeReflectConstruct(); + + return function _createSuperInternal() { + var Super = getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + // NOTE: This doesn't work if this.__proto__.constructor has been modified. + var NewTarget = getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return possibleConstructorReturn(this, result); + } + } + `; +helpers.superPropBase = helper("7.0.0-beta.0")` + import getPrototypeOf from "getPrototypeOf"; + + export default function _superPropBase(object, property) { + // Yes, this throws if object is null to being with, that's on purpose. + while (!Object.prototype.hasOwnProperty.call(object, property)) { + object = getPrototypeOf(object); + if (object === null) break; + } + return object; + } +`; + +helpers.get = helper("7.0.0-beta.0")` + import superPropBase from "superPropBase"; + + export default function _get() { + if (typeof Reflect !== "undefined" && Reflect.get) { + _get = Reflect.get.bind(); + } else { + _get = function _get(target, property, receiver) { + var base = superPropBase(target, property); + + if (!base) return; + + var desc = Object.getOwnPropertyDescriptor(base, property); + if (desc.get) { + // STEP 3. If receiver is not present, then set receiver to target. + return desc.get.call(arguments.length < 3 ? target : receiver); + } + + return desc.value; + }; + } + return _get.apply(this, arguments); + } +`; +helpers.set = helper("7.0.0-beta.0")` + import superPropBase from "superPropBase"; + import defineProperty from "defineProperty"; + + function set(target, property, value, receiver) { + if (typeof Reflect !== "undefined" && Reflect.set) { + set = Reflect.set; + } else { + set = function set(target, property, value, receiver) { + var base = superPropBase(target, property); + var desc; + + if (base) { + desc = Object.getOwnPropertyDescriptor(base, property); + if (desc.set) { + desc.set.call(receiver, value); + return true; + } else if (!desc.writable) { + // Both getter and non-writable fall into this. + return false; + } + } + + // Without a super that defines the property, spec boils down to + // "define on receiver" for some reason. + desc = Object.getOwnPropertyDescriptor(receiver, property); + if (desc) { + if (!desc.writable) { + // Setter, getter, and non-writable fall into this. + return false; + } + + desc.value = value; + Object.defineProperty(receiver, property, desc); + } else { + // Avoid setters that may be defined on Sub's prototype, but not on + // the instance. + defineProperty(receiver, property, value); + } + + return true; + }; + } + + return set(target, property, value, receiver); + } + + export default function _set(target, property, value, receiver, isStrict) { + var s = set(target, property, value, receiver || target); + if (!s && isStrict) { + throw new TypeError('failed to set property'); + } + + return value; + } +`; +helpers.taggedTemplateLiteral = helper("7.0.0-beta.0")` + export default function _taggedTemplateLiteral(strings, raw) { + if (!raw) { raw = strings.slice(0); } + return Object.freeze(Object.defineProperties(strings, { + raw: { value: Object.freeze(raw) } + })); + } +`; +helpers.taggedTemplateLiteralLoose = helper("7.0.0-beta.0")` + export default function _taggedTemplateLiteralLoose(strings, raw) { + if (!raw) { raw = strings.slice(0); } + strings.raw = raw; + return strings; + } +`; +helpers.readOnlyError = helper("7.0.0-beta.0")` + export default function _readOnlyError(name) { + throw new TypeError("\\"" + name + "\\" is read-only"); + } +`; +helpers.writeOnlyError = helper("7.12.13")` + export default function _writeOnlyError(name) { + throw new TypeError("\\"" + name + "\\" is write-only"); + } +`; +helpers.classNameTDZError = helper("7.0.0-beta.0")` + export default function _classNameTDZError(name) { + throw new ReferenceError("Class \\"" + name + "\\" cannot be referenced in computed property keys."); + } +`; +helpers.temporalUndefined = helper("7.0.0-beta.0")` + // This function isn't mean to be called, but to be used as a reference. + // We can't use a normal object because it isn't hoisted. + export default function _temporalUndefined() {} +`; +helpers.tdz = helper("7.5.5")` + export default function _tdzError(name) { + throw new ReferenceError(name + " is not defined - temporal dead zone"); + } +`; +helpers.temporalRef = helper("7.0.0-beta.0")` + import undef from "temporalUndefined"; + import err from "tdz"; + + export default function _temporalRef(val, name) { + return val === undef ? err(name) : val; + } +`; +helpers.slicedToArray = helper("7.0.0-beta.0")` + import arrayWithHoles from "arrayWithHoles"; + import iterableToArrayLimit from "iterableToArrayLimit"; + import unsupportedIterableToArray from "unsupportedIterableToArray"; + import nonIterableRest from "nonIterableRest"; + + export default function _slicedToArray(arr, i) { + return ( + arrayWithHoles(arr) || + iterableToArrayLimit(arr, i) || + unsupportedIterableToArray(arr, i) || + nonIterableRest() + ); + } +`; +helpers.slicedToArrayLoose = helper("7.0.0-beta.0")` + import arrayWithHoles from "arrayWithHoles"; + import iterableToArrayLimitLoose from "iterableToArrayLimitLoose"; + import unsupportedIterableToArray from "unsupportedIterableToArray"; + import nonIterableRest from "nonIterableRest"; + + export default function _slicedToArrayLoose(arr, i) { + return ( + arrayWithHoles(arr) || + iterableToArrayLimitLoose(arr, i) || + unsupportedIterableToArray(arr, i) || + nonIterableRest() + ); + } +`; +helpers.toArray = helper("7.0.0-beta.0")` + import arrayWithHoles from "arrayWithHoles"; + import iterableToArray from "iterableToArray"; + import unsupportedIterableToArray from "unsupportedIterableToArray"; + import nonIterableRest from "nonIterableRest"; + + export default function _toArray(arr) { + return ( + arrayWithHoles(arr) || + iterableToArray(arr) || + unsupportedIterableToArray(arr) || + nonIterableRest() + ); + } +`; +helpers.toConsumableArray = helper("7.0.0-beta.0")` + import arrayWithoutHoles from "arrayWithoutHoles"; + import iterableToArray from "iterableToArray"; + import unsupportedIterableToArray from "unsupportedIterableToArray"; + import nonIterableSpread from "nonIterableSpread"; + + export default function _toConsumableArray(arr) { + return ( + arrayWithoutHoles(arr) || + iterableToArray(arr) || + unsupportedIterableToArray(arr) || + nonIterableSpread() + ); + } +`; +helpers.arrayWithoutHoles = helper("7.0.0-beta.0")` + import arrayLikeToArray from "arrayLikeToArray"; + + export default function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return arrayLikeToArray(arr); + } +`; +helpers.arrayWithHoles = helper("7.0.0-beta.0")` + export default function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } +`; +helpers.maybeArrayLike = helper("7.9.0")` + import arrayLikeToArray from "arrayLikeToArray"; + + export default function _maybeArrayLike(next, arr, i) { + if (arr && !Array.isArray(arr) && typeof arr.length === "number") { + var len = arr.length; + return arrayLikeToArray(arr, i !== void 0 && i < len ? i : len); + } + return next(arr, i); + } +`; +helpers.iterableToArray = helper("7.0.0-beta.0")` + export default function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); + } +`; +helpers.unsupportedIterableToArray = helper("7.9.0")` + import arrayLikeToArray from "arrayLikeToArray"; + + export default function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) + return arrayLikeToArray(o, minLen); + } +`; +helpers.arrayLikeToArray = helper("7.9.0")` + export default function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + return arr2; + } +`; +helpers.nonIterableSpread = helper("7.0.0-beta.0")` + export default function _nonIterableSpread() { + throw new TypeError( + "Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method." + ); + } +`; +helpers.nonIterableRest = helper("7.0.0-beta.0")` + export default function _nonIterableRest() { + throw new TypeError( + "Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method." + ); + } +`; +helpers.createForOfIteratorHelper = helper("7.9.0")` + import unsupportedIterableToArray from "unsupportedIterableToArray"; + + // s: start (create the iterator) + // n: next + // e: error (called whenever something throws) + // f: finish (always called at the end) + + export default function _createForOfIteratorHelper(o, allowArrayLike) { + var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; + + if (!it) { + // Fallback for engines without symbol support + if ( + Array.isArray(o) || + (it = unsupportedIterableToArray(o)) || + (allowArrayLike && o && typeof o.length === "number") + ) { + if (it) o = it; + var i = 0; + var F = function(){}; + return { + s: F, + n: function() { + if (i >= o.length) return { done: true }; + return { done: false, value: o[i++] }; + }, + e: function(e) { throw e; }, + f: F, + }; + } + + throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + var normalCompletion = true, didErr = false, err; + + return { + s: function() { + it = it.call(o); + }, + n: function() { + var step = it.next(); + normalCompletion = step.done; + return step; + }, + e: function(e) { + didErr = true; + err = e; + }, + f: function() { + try { + if (!normalCompletion && it.return != null) it.return(); + } finally { + if (didErr) throw err; + } + } + }; + } +`; +helpers.createForOfIteratorHelperLoose = helper("7.9.0")` + import unsupportedIterableToArray from "unsupportedIterableToArray"; + + export default function _createForOfIteratorHelperLoose(o, allowArrayLike) { + var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; + + if (it) return (it = it.call(o)).next.bind(it); + + // Fallback for engines without symbol support + if ( + Array.isArray(o) || + (it = unsupportedIterableToArray(o)) || + (allowArrayLike && o && typeof o.length === "number") + ) { + if (it) o = it; + var i = 0; + return function() { + if (i >= o.length) return { done: true }; + return { done: false, value: o[i++] }; + } + } + + throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } +`; +helpers.skipFirstGeneratorNext = helper("7.0.0-beta.0")` + export default function _skipFirstGeneratorNext(fn) { + return function () { + var it = fn.apply(this, arguments); + it.next(); + return it; + } + } +`; +helpers.toPrimitive = helper("7.1.5")` + export default function _toPrimitive( + input, + hint /*: "default" | "string" | "number" | void */ + ) { + if (typeof input !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (typeof res !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); + } +`; +helpers.toPropertyKey = helper("7.1.5")` + import toPrimitive from "toPrimitive"; + + export default function _toPropertyKey(arg) { + var key = toPrimitive(arg, "string"); + return typeof key === "symbol" ? key : String(key); + } +`; + +helpers.initializerWarningHelper = helper("7.0.0-beta.0")` + export default function _initializerWarningHelper(descriptor, context){ + throw new Error( + 'Decorating class property failed. Please ensure that ' + + 'proposal-class-properties is enabled and runs after the decorators transform.' + ); + } +`; + +helpers.initializerDefineProperty = helper("7.0.0-beta.0")` + export default function _initializerDefineProperty(target, property, descriptor, context){ + if (!descriptor) return; + + Object.defineProperty(target, property, { + enumerable: descriptor.enumerable, + configurable: descriptor.configurable, + writable: descriptor.writable, + value: descriptor.initializer ? descriptor.initializer.call(context) : void 0, + }); + } +`; + +helpers.applyDecoratedDescriptor = helper("7.0.0-beta.0")` + export default function _applyDecoratedDescriptor(target, property, decorators, descriptor, context){ + var desc = {}; + Object.keys(descriptor).forEach(function(key){ + desc[key] = descriptor[key]; + }); + desc.enumerable = !!desc.enumerable; + desc.configurable = !!desc.configurable; + if ('value' in desc || desc.initializer){ + desc.writable = true; + } + + desc = decorators.slice().reverse().reduce(function(desc, decorator){ + return decorator(target, property, desc) || desc; + }, desc); + + if (context && desc.initializer !== void 0){ + desc.value = desc.initializer ? desc.initializer.call(context) : void 0; + desc.initializer = undefined; + } + + if (desc.initializer === void 0){ + Object.defineProperty(target, property, desc); + desc = null; + } + + return desc; + } +`; +helpers.classPrivateFieldLooseKey = helper("7.0.0-beta.0")` + var id = 0; + export default function _classPrivateFieldKey(name) { + return "__private_" + (id++) + "_" + name; + } +`; +helpers.classPrivateFieldLooseBase = helper("7.0.0-beta.0")` + export default function _classPrivateFieldBase(receiver, privateKey) { + if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { + throw new TypeError("attempted to use private field on non-instance"); + } + return receiver; + } +`; +helpers.classPrivateFieldGet = helper("7.0.0-beta.0")` + import classApplyDescriptorGet from "classApplyDescriptorGet"; + import classExtractFieldDescriptor from "classExtractFieldDescriptor"; + export default function _classPrivateFieldGet(receiver, privateMap) { + var descriptor = classExtractFieldDescriptor(receiver, privateMap, "get"); + return classApplyDescriptorGet(receiver, descriptor); + } +`; +helpers.classPrivateFieldSet = helper("7.0.0-beta.0")` + import classApplyDescriptorSet from "classApplyDescriptorSet"; + import classExtractFieldDescriptor from "classExtractFieldDescriptor"; + export default function _classPrivateFieldSet(receiver, privateMap, value) { + var descriptor = classExtractFieldDescriptor(receiver, privateMap, "set"); + classApplyDescriptorSet(receiver, descriptor, value); + return value; + } +`; +helpers.classPrivateFieldDestructureSet = helper("7.4.4")` + import classApplyDescriptorDestructureSet from "classApplyDescriptorDestructureSet"; + import classExtractFieldDescriptor from "classExtractFieldDescriptor"; + export default function _classPrivateFieldDestructureSet(receiver, privateMap) { + var descriptor = classExtractFieldDescriptor(receiver, privateMap, "set"); + return classApplyDescriptorDestructureSet(receiver, descriptor); + } +`; +helpers.classExtractFieldDescriptor = helper("7.13.10")` + export default function _classExtractFieldDescriptor(receiver, privateMap, action) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to " + action + " private field on non-instance"); + } + return privateMap.get(receiver); + } +`; +helpers.classStaticPrivateFieldSpecGet = helper("7.0.2")` + import classApplyDescriptorGet from "classApplyDescriptorGet"; + import classCheckPrivateStaticAccess from "classCheckPrivateStaticAccess"; + import classCheckPrivateStaticFieldDescriptor from "classCheckPrivateStaticFieldDescriptor"; + export default function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) { + classCheckPrivateStaticAccess(receiver, classConstructor); + classCheckPrivateStaticFieldDescriptor(descriptor, "get"); + return classApplyDescriptorGet(receiver, descriptor); + } +`; +helpers.classStaticPrivateFieldSpecSet = helper("7.0.2")` + import classApplyDescriptorSet from "classApplyDescriptorSet"; + import classCheckPrivateStaticAccess from "classCheckPrivateStaticAccess"; + import classCheckPrivateStaticFieldDescriptor from "classCheckPrivateStaticFieldDescriptor"; + export default function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) { + classCheckPrivateStaticAccess(receiver, classConstructor); + classCheckPrivateStaticFieldDescriptor(descriptor, "set"); + classApplyDescriptorSet(receiver, descriptor, value); + return value; + } +`; +helpers.classStaticPrivateMethodGet = helper("7.3.2")` + import classCheckPrivateStaticAccess from "classCheckPrivateStaticAccess"; + export default function _classStaticPrivateMethodGet(receiver, classConstructor, method) { + classCheckPrivateStaticAccess(receiver, classConstructor); + return method; + } +`; +helpers.classStaticPrivateMethodSet = helper("7.3.2")` + export default function _classStaticPrivateMethodSet() { + throw new TypeError("attempted to set read only static private field"); + } +`; +helpers.classApplyDescriptorGet = helper("7.13.10")` + export default function _classApplyDescriptorGet(receiver, descriptor) { + if (descriptor.get) { + return descriptor.get.call(receiver); + } + return descriptor.value; + } +`; +helpers.classApplyDescriptorSet = helper("7.13.10")` + export default function _classApplyDescriptorSet(receiver, descriptor, value) { + if (descriptor.set) { + descriptor.set.call(receiver, value); + } else { + if (!descriptor.writable) { + // This should only throw in strict mode, but class bodies are + // always strict and private fields can only be used inside + // class bodies. + throw new TypeError("attempted to set read only private field"); + } + descriptor.value = value; + } + } +`; +helpers.classApplyDescriptorDestructureSet = helper("7.13.10")` + export default function _classApplyDescriptorDestructureSet(receiver, descriptor) { + if (descriptor.set) { + if (!("__destrObj" in descriptor)) { + descriptor.__destrObj = { + set value(v) { + descriptor.set.call(receiver, v) + }, + }; + } + return descriptor.__destrObj; + } else { + if (!descriptor.writable) { + // This should only throw in strict mode, but class bodies are + // always strict and private fields can only be used inside + // class bodies. + throw new TypeError("attempted to set read only private field"); + } + + return descriptor; + } + } +`; +helpers.classStaticPrivateFieldDestructureSet = helper("7.13.10")` + import classApplyDescriptorDestructureSet from "classApplyDescriptorDestructureSet"; + import classCheckPrivateStaticAccess from "classCheckPrivateStaticAccess"; + import classCheckPrivateStaticFieldDescriptor from "classCheckPrivateStaticFieldDescriptor"; + export default function _classStaticPrivateFieldDestructureSet(receiver, classConstructor, descriptor) { + classCheckPrivateStaticAccess(receiver, classConstructor); + classCheckPrivateStaticFieldDescriptor(descriptor, "set"); + return classApplyDescriptorDestructureSet(receiver, descriptor); + } +`; +helpers.classCheckPrivateStaticAccess = helper("7.13.10")` + export default function _classCheckPrivateStaticAccess(receiver, classConstructor) { + if (receiver !== classConstructor) { + throw new TypeError("Private static access of wrong provenance"); + } + } +`; +helpers.classCheckPrivateStaticFieldDescriptor = helper("7.13.10")` + export default function _classCheckPrivateStaticFieldDescriptor(descriptor, action) { + if (descriptor === undefined) { + throw new TypeError("attempted to " + action + " private static field before its declaration"); + } + } +`; +helpers.decorate = helper("7.1.5")` + import toArray from "toArray"; + import toPropertyKey from "toPropertyKey"; + + // These comments are stripped by @babel/template + /*:: + type PropertyDescriptor = + | { + value: any, + writable: boolean, + configurable: boolean, + enumerable: boolean, + } + | { + get?: () => any, + set?: (v: any) => void, + configurable: boolean, + enumerable: boolean, + }; + + type FieldDescriptor ={ + writable: boolean, + configurable: boolean, + enumerable: boolean, + }; + + type Placement = "static" | "prototype" | "own"; + type Key = string | symbol; // PrivateName is not supported yet. + + type ElementDescriptor = + | { + kind: "method", + key: Key, + placement: Placement, + descriptor: PropertyDescriptor + } + | { + kind: "field", + key: Key, + placement: Placement, + descriptor: FieldDescriptor, + initializer?: () => any, + }; + + // This is exposed to the user code + type ElementObjectInput = ElementDescriptor & { + [@@toStringTag]?: "Descriptor" + }; + + // This is exposed to the user code + type ElementObjectOutput = ElementDescriptor & { + [@@toStringTag]?: "Descriptor" + extras?: ElementDescriptor[], + finisher?: ClassFinisher, + }; + + // This is exposed to the user code + type ClassObject = { + [@@toStringTag]?: "Descriptor", + kind: "class", + elements: ElementDescriptor[], + }; + + type ElementDecorator = (descriptor: ElementObjectInput) => ?ElementObjectOutput; + type ClassDecorator = (descriptor: ClassObject) => ?ClassObject; + type ClassFinisher = (cl: Class) => Class; + + // Only used by Babel in the transform output, not part of the spec. + type ElementDefinition = + | { + kind: "method", + value: any, + key: Key, + static?: boolean, + decorators?: ElementDecorator[], + } + | { + kind: "field", + value: () => any, + key: Key, + static?: boolean, + decorators?: ElementDecorator[], + }; + + declare function ClassFactory(initialize: (instance: C) => void): { + F: Class, + d: ElementDefinition[] + } + + */ + + /*:: + // Various combinations with/without extras and with one or many finishers + + type ElementFinisherExtras = { + element: ElementDescriptor, + finisher?: ClassFinisher, + extras?: ElementDescriptor[], + }; + + type ElementFinishersExtras = { + element: ElementDescriptor, + finishers: ClassFinisher[], + extras: ElementDescriptor[], + }; + + type ElementsFinisher = { + elements: ElementDescriptor[], + finisher?: ClassFinisher, + }; + + type ElementsFinishers = { + elements: ElementDescriptor[], + finishers: ClassFinisher[], + }; + + */ + + /*:: + + type Placements = { + static: Key[], + prototype: Key[], + own: Key[], + }; + + */ + + // ClassDefinitionEvaluation (Steps 26-*) + export default function _decorate( + decorators /*: ClassDecorator[] */, + factory /*: ClassFactory */, + superClass /*: ?Class<*> */, + mixins /*: ?Array */, + ) /*: Class<*> */ { + var api = _getDecoratorsApi(); + if (mixins) { + for (var i = 0; i < mixins.length; i++) { + api = mixins[i](api); + } + } + + var r = factory(function initialize(O) { + api.initializeInstanceElements(O, decorated.elements); + }, superClass); + var decorated = api.decorateClass( + _coalesceClassElements(r.d.map(_createElementDescriptor)), + decorators, + ); + + api.initializeClassElements(r.F, decorated.elements); + + return api.runClassFinishers(r.F, decorated.finishers); + } + + function _getDecoratorsApi() { + _getDecoratorsApi = function() { + return api; + }; + + var api = { + elementsDefinitionOrder: [["method"], ["field"]], + + // InitializeInstanceElements + initializeInstanceElements: function( + /*::*/ O /*: C */, + elements /*: ElementDescriptor[] */, + ) { + ["method", "field"].forEach(function(kind) { + elements.forEach(function(element /*: ElementDescriptor */) { + if (element.kind === kind && element.placement === "own") { + this.defineClassElement(O, element); + } + }, this); + }, this); + }, + + // InitializeClassElements + initializeClassElements: function( + /*::*/ F /*: Class */, + elements /*: ElementDescriptor[] */, + ) { + var proto = F.prototype; + + ["method", "field"].forEach(function(kind) { + elements.forEach(function(element /*: ElementDescriptor */) { + var placement = element.placement; + if ( + element.kind === kind && + (placement === "static" || placement === "prototype") + ) { + var receiver = placement === "static" ? F : proto; + this.defineClassElement(receiver, element); + } + }, this); + }, this); + }, + + // DefineClassElement + defineClassElement: function( + /*::*/ receiver /*: C | Class */, + element /*: ElementDescriptor */, + ) { + var descriptor /*: PropertyDescriptor */ = element.descriptor; + if (element.kind === "field") { + var initializer = element.initializer; + descriptor = { + enumerable: descriptor.enumerable, + writable: descriptor.writable, + configurable: descriptor.configurable, + value: initializer === void 0 ? void 0 : initializer.call(receiver), + }; + } + Object.defineProperty(receiver, element.key, descriptor); + }, + + // DecorateClass + decorateClass: function( + elements /*: ElementDescriptor[] */, + decorators /*: ClassDecorator[] */, + ) /*: ElementsFinishers */ { + var newElements /*: ElementDescriptor[] */ = []; + var finishers /*: ClassFinisher[] */ = []; + var placements /*: Placements */ = { + static: [], + prototype: [], + own: [], + }; + + elements.forEach(function(element /*: ElementDescriptor */) { + this.addElementPlacement(element, placements); + }, this); + + elements.forEach(function(element /*: ElementDescriptor */) { + if (!_hasDecorators(element)) return newElements.push(element); + + var elementFinishersExtras /*: ElementFinishersExtras */ = this.decorateElement( + element, + placements, + ); + newElements.push(elementFinishersExtras.element); + newElements.push.apply(newElements, elementFinishersExtras.extras); + finishers.push.apply(finishers, elementFinishersExtras.finishers); + }, this); + + if (!decorators) { + return { elements: newElements, finishers: finishers }; + } + + var result /*: ElementsFinishers */ = this.decorateConstructor( + newElements, + decorators, + ); + finishers.push.apply(finishers, result.finishers); + result.finishers = finishers; + + return result; + }, + + // AddElementPlacement + addElementPlacement: function( + element /*: ElementDescriptor */, + placements /*: Placements */, + silent /*: boolean */, + ) { + var keys = placements[element.placement]; + if (!silent && keys.indexOf(element.key) !== -1) { + throw new TypeError("Duplicated element (" + element.key + ")"); + } + keys.push(element.key); + }, + + // DecorateElement + decorateElement: function( + element /*: ElementDescriptor */, + placements /*: Placements */, + ) /*: ElementFinishersExtras */ { + var extras /*: ElementDescriptor[] */ = []; + var finishers /*: ClassFinisher[] */ = []; + + for ( + var decorators = element.decorators, i = decorators.length - 1; + i >= 0; + i-- + ) { + // (inlined) RemoveElementPlacement + var keys = placements[element.placement]; + keys.splice(keys.indexOf(element.key), 1); + + var elementObject /*: ElementObjectInput */ = this.fromElementDescriptor( + element, + ); + var elementFinisherExtras /*: ElementFinisherExtras */ = this.toElementFinisherExtras( + (0, decorators[i])(elementObject) /*: ElementObjectOutput */ || + elementObject, + ); + + element = elementFinisherExtras.element; + this.addElementPlacement(element, placements); + + if (elementFinisherExtras.finisher) { + finishers.push(elementFinisherExtras.finisher); + } + + var newExtras /*: ElementDescriptor[] | void */ = + elementFinisherExtras.extras; + if (newExtras) { + for (var j = 0; j < newExtras.length; j++) { + this.addElementPlacement(newExtras[j], placements); + } + extras.push.apply(extras, newExtras); + } + } + + return { element: element, finishers: finishers, extras: extras }; + }, + + // DecorateConstructor + decorateConstructor: function( + elements /*: ElementDescriptor[] */, + decorators /*: ClassDecorator[] */, + ) /*: ElementsFinishers */ { + var finishers /*: ClassFinisher[] */ = []; + + for (var i = decorators.length - 1; i >= 0; i--) { + var obj /*: ClassObject */ = this.fromClassDescriptor(elements); + var elementsAndFinisher /*: ElementsFinisher */ = this.toClassDescriptor( + (0, decorators[i])(obj) /*: ClassObject */ || obj, + ); + + if (elementsAndFinisher.finisher !== undefined) { + finishers.push(elementsAndFinisher.finisher); + } + + if (elementsAndFinisher.elements !== undefined) { + elements = elementsAndFinisher.elements; + + for (var j = 0; j < elements.length - 1; j++) { + for (var k = j + 1; k < elements.length; k++) { + if ( + elements[j].key === elements[k].key && + elements[j].placement === elements[k].placement + ) { + throw new TypeError( + "Duplicated element (" + elements[j].key + ")", + ); + } + } + } + } + } + + return { elements: elements, finishers: finishers }; + }, + + // FromElementDescriptor + fromElementDescriptor: function( + element /*: ElementDescriptor */, + ) /*: ElementObject */ { + var obj /*: ElementObject */ = { + kind: element.kind, + key: element.key, + placement: element.placement, + descriptor: element.descriptor, + }; + + var desc = { + value: "Descriptor", + configurable: true, + }; + Object.defineProperty(obj, Symbol.toStringTag, desc); + + if (element.kind === "field") obj.initializer = element.initializer; + + return obj; + }, + + // ToElementDescriptors + toElementDescriptors: function( + elementObjects /*: ElementObject[] */, + ) /*: ElementDescriptor[] */ { + if (elementObjects === undefined) return; + return toArray(elementObjects).map(function(elementObject) { + var element = this.toElementDescriptor(elementObject); + this.disallowProperty(elementObject, "finisher", "An element descriptor"); + this.disallowProperty(elementObject, "extras", "An element descriptor"); + return element; + }, this); + }, + + // ToElementDescriptor + toElementDescriptor: function( + elementObject /*: ElementObject */, + ) /*: ElementDescriptor */ { + var kind = String(elementObject.kind); + if (kind !== "method" && kind !== "field") { + throw new TypeError( + 'An element descriptor\\'s .kind property must be either "method" or' + + ' "field", but a decorator created an element descriptor with' + + ' .kind "' + + kind + + '"', + ); + } + + var key = toPropertyKey(elementObject.key); + + var placement = String(elementObject.placement); + if ( + placement !== "static" && + placement !== "prototype" && + placement !== "own" + ) { + throw new TypeError( + 'An element descriptor\\'s .placement property must be one of "static",' + + ' "prototype" or "own", but a decorator created an element descriptor' + + ' with .placement "' + + placement + + '"', + ); + } + + var descriptor /*: PropertyDescriptor */ = elementObject.descriptor; + + this.disallowProperty(elementObject, "elements", "An element descriptor"); + + var element /*: ElementDescriptor */ = { + kind: kind, + key: key, + placement: placement, + descriptor: Object.assign({}, descriptor), + }; + + if (kind !== "field") { + this.disallowProperty(elementObject, "initializer", "A method descriptor"); + } else { + this.disallowProperty( + descriptor, + "get", + "The property descriptor of a field descriptor", + ); + this.disallowProperty( + descriptor, + "set", + "The property descriptor of a field descriptor", + ); + this.disallowProperty( + descriptor, + "value", + "The property descriptor of a field descriptor", + ); + + element.initializer = elementObject.initializer; + } + + return element; + }, + + toElementFinisherExtras: function( + elementObject /*: ElementObject */, + ) /*: ElementFinisherExtras */ { + var element /*: ElementDescriptor */ = this.toElementDescriptor( + elementObject, + ); + var finisher /*: ClassFinisher */ = _optionalCallableProperty( + elementObject, + "finisher", + ); + var extras /*: ElementDescriptors[] */ = this.toElementDescriptors( + elementObject.extras, + ); + + return { element: element, finisher: finisher, extras: extras }; + }, + + // FromClassDescriptor + fromClassDescriptor: function( + elements /*: ElementDescriptor[] */, + ) /*: ClassObject */ { + var obj = { + kind: "class", + elements: elements.map(this.fromElementDescriptor, this), + }; + + var desc = { value: "Descriptor", configurable: true }; + Object.defineProperty(obj, Symbol.toStringTag, desc); + + return obj; + }, + + // ToClassDescriptor + toClassDescriptor: function( + obj /*: ClassObject */, + ) /*: ElementsFinisher */ { + var kind = String(obj.kind); + if (kind !== "class") { + throw new TypeError( + 'A class descriptor\\'s .kind property must be "class", but a decorator' + + ' created a class descriptor with .kind "' + + kind + + '"', + ); + } + + this.disallowProperty(obj, "key", "A class descriptor"); + this.disallowProperty(obj, "placement", "A class descriptor"); + this.disallowProperty(obj, "descriptor", "A class descriptor"); + this.disallowProperty(obj, "initializer", "A class descriptor"); + this.disallowProperty(obj, "extras", "A class descriptor"); + + var finisher = _optionalCallableProperty(obj, "finisher"); + var elements = this.toElementDescriptors(obj.elements); + + return { elements: elements, finisher: finisher }; + }, + + // RunClassFinishers + runClassFinishers: function( + constructor /*: Class<*> */, + finishers /*: ClassFinisher[] */, + ) /*: Class<*> */ { + for (var i = 0; i < finishers.length; i++) { + var newConstructor /*: ?Class<*> */ = (0, finishers[i])(constructor); + if (newConstructor !== undefined) { + // NOTE: This should check if IsConstructor(newConstructor) is false. + if (typeof newConstructor !== "function") { + throw new TypeError("Finishers must return a constructor."); + } + constructor = newConstructor; + } + } + return constructor; + }, + + disallowProperty: function(obj, name, objectType) { + if (obj[name] !== undefined) { + throw new TypeError(objectType + " can't have a ." + name + " property."); + } + } + }; + + return api; + } + + // ClassElementEvaluation + function _createElementDescriptor( + def /*: ElementDefinition */, + ) /*: ElementDescriptor */ { + var key = toPropertyKey(def.key); + + var descriptor /*: PropertyDescriptor */; + if (def.kind === "method") { + descriptor = { + value: def.value, + writable: true, + configurable: true, + enumerable: false, + }; + } else if (def.kind === "get") { + descriptor = { get: def.value, configurable: true, enumerable: false }; + } else if (def.kind === "set") { + descriptor = { set: def.value, configurable: true, enumerable: false }; + } else if (def.kind === "field") { + descriptor = { configurable: true, writable: true, enumerable: true }; + } + + var element /*: ElementDescriptor */ = { + kind: def.kind === "field" ? "field" : "method", + key: key, + placement: def.static + ? "static" + : def.kind === "field" + ? "own" + : "prototype", + descriptor: descriptor, + }; + if (def.decorators) element.decorators = def.decorators; + if (def.kind === "field") element.initializer = def.value; + + return element; + } + + // CoalesceGetterSetter + function _coalesceGetterSetter( + element /*: ElementDescriptor */, + other /*: ElementDescriptor */, + ) { + if (element.descriptor.get !== undefined) { + other.descriptor.get = element.descriptor.get; + } else { + other.descriptor.set = element.descriptor.set; + } + } + + // CoalesceClassElements + function _coalesceClassElements( + elements /*: ElementDescriptor[] */, + ) /*: ElementDescriptor[] */ { + var newElements /*: ElementDescriptor[] */ = []; + + var isSameElement = function( + other /*: ElementDescriptor */, + ) /*: boolean */ { + return ( + other.kind === "method" && + other.key === element.key && + other.placement === element.placement + ); + }; + + for (var i = 0; i < elements.length; i++) { + var element /*: ElementDescriptor */ = elements[i]; + var other /*: ElementDescriptor */; + + if ( + element.kind === "method" && + (other = newElements.find(isSameElement)) + ) { + if ( + _isDataDescriptor(element.descriptor) || + _isDataDescriptor(other.descriptor) + ) { + if (_hasDecorators(element) || _hasDecorators(other)) { + throw new ReferenceError( + "Duplicated methods (" + element.key + ") can't be decorated.", + ); + } + other.descriptor = element.descriptor; + } else { + if (_hasDecorators(element)) { + if (_hasDecorators(other)) { + throw new ReferenceError( + "Decorators can't be placed on different accessors with for " + + "the same property (" + + element.key + + ").", + ); + } + other.decorators = element.decorators; + } + _coalesceGetterSetter(element, other); + } + } else { + newElements.push(element); + } + } + + return newElements; + } + + function _hasDecorators(element /*: ElementDescriptor */) /*: boolean */ { + return element.decorators && element.decorators.length; + } + + function _isDataDescriptor(desc /*: PropertyDescriptor */) /*: boolean */ { + return ( + desc !== undefined && + !(desc.value === undefined && desc.writable === undefined) + ); + } + + function _optionalCallableProperty /*::*/( + obj /*: T */, + name /*: $Keys */, + ) /*: ?Function */ { + var value = obj[name]; + if (value !== undefined && typeof value !== "function") { + throw new TypeError("Expected '" + name + "' to be a function"); + } + return value; + } + +`; +helpers.classPrivateMethodGet = helper("7.1.6")` + export default function _classPrivateMethodGet(receiver, privateSet, fn) { + if (!privateSet.has(receiver)) { + throw new TypeError("attempted to get private field on non-instance"); + } + return fn; + } +`; +helpers.checkPrivateRedeclaration = helper("7.14.1")` + export default function _checkPrivateRedeclaration(obj, privateCollection) { + if (privateCollection.has(obj)) { + throw new TypeError("Cannot initialize the same private elements twice on an object"); + } + } +`; +helpers.classPrivateFieldInitSpec = helper("7.14.1")` + import checkPrivateRedeclaration from "checkPrivateRedeclaration"; + + export default function _classPrivateFieldInitSpec(obj, privateMap, value) { + checkPrivateRedeclaration(obj, privateMap); + privateMap.set(obj, value); + } +`; +helpers.classPrivateMethodInitSpec = helper("7.14.1")` + import checkPrivateRedeclaration from "checkPrivateRedeclaration"; + + export default function _classPrivateMethodInitSpec(obj, privateSet) { + checkPrivateRedeclaration(obj, privateSet); + privateSet.add(obj); + } +`; +{ + helpers.classPrivateMethodSet = helper("7.1.6")` + export default function _classPrivateMethodSet() { + throw new TypeError("attempted to reassign private method"); + } + `; +} +helpers.identity = helper("7.17.0")` + export default function _identity(x) { + return x; + } +`; + +//# sourceMappingURL=helpers.js.map + + +/***/ }), + +/***/ 593: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +exports.ensure = ensure; +exports.get = get; +exports.getDependencies = getDependencies; +exports.list = void 0; +exports.minVersion = minVersion; +var _traverse = __webpack_require__(5845); +var _t = __webpack_require__(2139); +var _helpers = __webpack_require__(5819); +const { + assignmentExpression, + cloneNode, + expressionStatement, + file, + identifier +} = _t; +function makePath(path) { + const parts = []; + for (; path.parentPath; path = path.parentPath) { + parts.push(path.key); + if (path.inList) parts.push(path.listKey); + } + return parts.reverse().join("."); +} +let FileClass = undefined; +function getHelperMetadata(file) { + const globals = new Set(); + const localBindingNames = new Set(); + const dependencies = new Map(); + let exportName; + let exportPath; + const exportBindingAssignments = []; + const importPaths = []; + const importBindingsReferences = []; + const dependencyVisitor = { + ImportDeclaration(child) { + const name = child.node.source.value; + if (!_helpers.default[name]) { + throw child.buildCodeFrameError(`Unknown helper ${name}`); + } + if (child.get("specifiers").length !== 1 || + !child.get("specifiers.0").isImportDefaultSpecifier()) { + throw child.buildCodeFrameError("Helpers can only import a default value"); + } + const bindingIdentifier = child.node.specifiers[0].local; + dependencies.set(bindingIdentifier, name); + importPaths.push(makePath(child)); + }, + ExportDefaultDeclaration(child) { + const decl = child.get("declaration"); + if (!decl.isFunctionDeclaration() || !decl.node.id) { + throw decl.buildCodeFrameError("Helpers can only export named function declarations"); + } + exportName = decl.node.id.name; + exportPath = makePath(child); + }, + ExportAllDeclaration(child) { + throw child.buildCodeFrameError("Helpers can only export default"); + }, + ExportNamedDeclaration(child) { + throw child.buildCodeFrameError("Helpers can only export default"); + }, + Statement(child) { + if (child.isImportDeclaration() || child.isExportDeclaration()) return; + child.skip(); + } + }; + const referenceVisitor = { + Program(path) { + const bindings = path.scope.getAllBindings(); + Object.keys(bindings).forEach(name => { + if (name === exportName) return; + if (dependencies.has(bindings[name].identifier)) return; + localBindingNames.add(name); + }); + }, + ReferencedIdentifier(child) { + const name = child.node.name; + const binding = child.scope.getBinding(name); + if (!binding) { + globals.add(name); + } else if (dependencies.has(binding.identifier)) { + importBindingsReferences.push(makePath(child)); + } + }, + AssignmentExpression(child) { + const left = child.get("left"); + if (!(exportName in left.getBindingIdentifiers())) return; + if (!left.isIdentifier()) { + throw left.buildCodeFrameError("Only simple assignments to exports are allowed in helpers"); + } + const binding = child.scope.getBinding(exportName); + if (binding != null && binding.scope.path.isProgram()) { + exportBindingAssignments.push(makePath(child)); + } + } + }; + (0, _traverse.default)(file.ast, dependencyVisitor, file.scope); + (0, _traverse.default)(file.ast, referenceVisitor, file.scope); + if (!exportPath) throw new Error("Helpers must have a default export."); + + exportBindingAssignments.reverse(); + return { + globals: Array.from(globals), + localBindingNames: Array.from(localBindingNames), + dependencies, + exportBindingAssignments, + exportPath, + exportName, + importBindingsReferences, + importPaths + }; +} +function permuteHelperAST(file, metadata, id, localBindings, getDependency) { + if (localBindings && !id) { + throw new Error("Unexpected local bindings for module-based helpers."); + } + if (!id) return; + const { + localBindingNames, + dependencies, + exportBindingAssignments, + exportPath, + exportName, + importBindingsReferences, + importPaths + } = metadata; + const dependenciesRefs = {}; + dependencies.forEach((name, id) => { + dependenciesRefs[id.name] = typeof getDependency === "function" && getDependency(name) || id; + }); + const toRename = {}; + const bindings = new Set(localBindings || []); + localBindingNames.forEach(name => { + let newName = name; + while (bindings.has(newName)) newName = "_" + newName; + if (newName !== name) toRename[name] = newName; + }); + if (id.type === "Identifier" && exportName !== id.name) { + toRename[exportName] = id.name; + } + const { + path + } = file; + + const exp = path.get(exportPath); + const imps = importPaths.map(p => path.get(p)); + const impsBindingRefs = importBindingsReferences.map(p => path.get(p)); + + const decl = exp.get("declaration"); + if (id.type === "Identifier") { + exp.replaceWith(decl); + } else if (id.type === "MemberExpression") { + exportBindingAssignments.forEach(assignPath => { + const assign = path.get(assignPath); + assign.replaceWith(assignmentExpression("=", id, assign.node)); + }); + exp.replaceWith(decl); + path.pushContainer("body", expressionStatement(assignmentExpression("=", id, identifier(exportName)))); + } else { + throw new Error("Unexpected helper format."); + } + Object.keys(toRename).forEach(name => { + path.scope.rename(name, toRename[name]); + }); + for (const path of imps) path.remove(); + for (const path of impsBindingRefs) { + const node = cloneNode(dependenciesRefs[path.node.name]); + path.replaceWith(node); + } +} +const helperData = Object.create(null); +function loadHelper(name) { + if (!helperData[name]) { + const helper = _helpers.default[name]; + if (!helper) { + throw Object.assign(new ReferenceError(`Unknown helper ${name}`), { + code: "BABEL_HELPER_UNKNOWN", + helper: name + }); + } + const fn = () => { + { + if (!FileClass) { + const fakeFile = { + ast: file(helper.ast()), + path: null + }; + (0, _traverse.default)(fakeFile.ast, { + Program: path => (fakeFile.path = path).stop() + }); + return fakeFile; + } + } + return new FileClass({ + filename: `babel-helper://${name}` + }, { + ast: file(helper.ast()), + code: "[internal Babel helper code]", + inputMap: null + }); + }; + + let metadata = null; + helperData[name] = { + minVersion: helper.minVersion, + build(getDependency, id, localBindings) { + const file = fn(); + metadata || (metadata = getHelperMetadata(file)); + permuteHelperAST(file, metadata, id, localBindings, getDependency); + return { + nodes: file.ast.program.body, + globals: metadata.globals + }; + }, + getDependencies() { + metadata || (metadata = getHelperMetadata(fn())); + return Array.from(metadata.dependencies.values()); + } + }; + } + return helperData[name]; +} +function get(name, getDependency, id, localBindings) { + return loadHelper(name).build(getDependency, id, localBindings); +} +function minVersion(name) { + return loadHelper(name).minVersion; +} +function getDependencies(name) { + return loadHelper(name).getDependencies(); +} +function ensure(name, newFileClass) { + FileClass || (FileClass = newFileClass); + loadHelper(name); +} +const list = Object.keys(_helpers.default).map(name => name.replace(/^_/, "")); +exports.list = list; +var _default = get; +exports["default"] = _default; + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 505: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = highlight; +exports.getChalk = getChalk; +exports.shouldHighlight = shouldHighlight; + +var _jsTokens = __webpack_require__(8629); + +var _helperValidatorIdentifier = __webpack_require__(8740); + +var _chalk = __webpack_require__(6673); + +const sometimesKeywords = new Set(["as", "async", "from", "get", "of", "set"]); + +function getDefs(chalk) { + return { + keyword: chalk.cyan, + capitalized: chalk.yellow, + jsxIdentifier: chalk.yellow, + punctuator: chalk.yellow, + number: chalk.magenta, + string: chalk.green, + regex: chalk.magenta, + comment: chalk.grey, + invalid: chalk.white.bgRed.bold + }; +} + +const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; +const BRACKET = /^[()[\]{}]$/; +let tokenize; +{ + const JSX_TAG = /^[a-z][\w-]*$/i; + + const getTokenType = function (token, offset, text) { + if (token.type === "name") { + if ((0, _helperValidatorIdentifier.isKeyword)(token.value) || (0, _helperValidatorIdentifier.isStrictReservedWord)(token.value, true) || sometimesKeywords.has(token.value)) { + return "keyword"; + } + + if (JSX_TAG.test(token.value) && (text[offset - 1] === "<" || text.slice(offset - 2, offset) == " colorize(str)).join("\n"); + } else { + highlighted += value; + } + } + + return highlighted; +} + +function shouldHighlight(options) { + return !!_chalk.supportsColor || options.forceColor; +} + +function getChalk(options) { + return options.forceColor ? new _chalk.constructor({ + enabled: true, + level: 1 + }) : _chalk; +} + +function highlight(code, options = {}) { + if (code !== "" && shouldHighlight(options)) { + const chalk = getChalk(options); + const defs = getDefs(chalk); + return highlightTokens(defs, code); + } else { + return code; + } +} + +/***/ }), + +/***/ 9249: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + return target; +} + +class Position { + constructor(line, col, index) { + this.line = void 0; + this.column = void 0; + this.index = void 0; + this.line = line; + this.column = col; + this.index = index; + } +} +class SourceLocation { + constructor(start, end) { + this.start = void 0; + this.end = void 0; + this.filename = void 0; + this.identifierName = void 0; + this.start = start; + this.end = end; + } +} + +function createPositionWithColumnOffset(position, columnOffset) { + const { + line, + column, + index + } = position; + return new Position(line, column + columnOffset, index + columnOffset); +} + +var ParseErrorCode = { + SyntaxError: "BABEL_PARSER_SYNTAX_ERROR", + SourceTypeModuleError: "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED" +}; +const reflect = (keys, last = keys.length - 1) => ({ + get() { + return keys.reduce((object, key) => + object[key], this); + }, + set(value) { + keys.reduce( + (item, key, i) => i === last ? item[key] = value : item[key], this); + } +}); +const instantiate = (constructor, properties, descriptors) => Object.keys(descriptors).map(key => [key, descriptors[key]]).filter(([, descriptor]) => !!descriptor).map(([key, descriptor]) => [key, typeof descriptor === "function" ? { + value: descriptor, + enumerable: false +} : typeof descriptor.reflect === "string" ? Object.assign({}, descriptor, reflect(descriptor.reflect.split("."))) : descriptor]).reduce((instance, [key, descriptor]) => Object.defineProperty(instance, key, Object.assign({ + configurable: true +}, descriptor)), Object.assign(new constructor(), properties)); + +var ModuleErrors = { + ImportMetaOutsideModule: { + message: `import.meta may appear only with 'sourceType: "module"'`, + code: ParseErrorCode.SourceTypeModuleError + }, + ImportOutsideModule: { + message: `'import' and 'export' may appear only with 'sourceType: "module"'`, + code: ParseErrorCode.SourceTypeModuleError + } +}; + +const NodeDescriptions = { + ArrayPattern: "array destructuring pattern", + AssignmentExpression: "assignment expression", + AssignmentPattern: "assignment expression", + ArrowFunctionExpression: "arrow function expression", + ConditionalExpression: "conditional expression", + CatchClause: "catch clause", + ForOfStatement: "for-of statement", + ForInStatement: "for-in statement", + ForStatement: "for-loop", + FormalParameters: "function parameter list", + Identifier: "identifier", + ImportSpecifier: "import specifier", + ImportDefaultSpecifier: "import default specifier", + ImportNamespaceSpecifier: "import namespace specifier", + ObjectPattern: "object destructuring pattern", + ParenthesizedExpression: "parenthesized expression", + RestElement: "rest element", + UpdateExpression: { + true: "prefix operation", + false: "postfix operation" + }, + VariableDeclarator: "variable declaration", + YieldExpression: "yield expression" +}; +const toNodeDescription = ({ + type, + prefix +}) => type === "UpdateExpression" ? NodeDescriptions.UpdateExpression[String(prefix)] : NodeDescriptions[type]; + +var StandardErrors = { + AccessorIsGenerator: ({ + kind + }) => `A ${kind}ter cannot be a generator.`, + ArgumentsInClass: "'arguments' is only allowed in functions and class methods.", + AsyncFunctionInSingleStatementContext: "Async functions can only be declared at the top level or inside a block.", + AwaitBindingIdentifier: "Can not use 'await' as identifier inside an async function.", + AwaitBindingIdentifierInStaticBlock: "Can not use 'await' as identifier inside a static block.", + AwaitExpressionFormalParameter: "'await' is not allowed in async function parameters.", + AwaitNotInAsyncContext: "'await' is only allowed within async functions and at the top levels of modules.", + AwaitNotInAsyncFunction: "'await' is only allowed within async functions.", + BadGetterArity: "A 'get' accessor must not have any formal parameters.", + BadSetterArity: "A 'set' accessor must have exactly one formal parameter.", + BadSetterRestParameter: "A 'set' accessor function argument must not be a rest parameter.", + ConstructorClassField: "Classes may not have a field named 'constructor'.", + ConstructorClassPrivateField: "Classes may not have a private field named '#constructor'.", + ConstructorIsAccessor: "Class constructor may not be an accessor.", + ConstructorIsAsync: "Constructor can't be an async function.", + ConstructorIsGenerator: "Constructor can't be a generator.", + DeclarationMissingInitializer: ({ + kind + }) => `Missing initializer in ${kind} declaration.`, + DecoratorArgumentsOutsideParentheses: "Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.", + DecoratorBeforeExport: "Decorators must be placed *before* the 'export' keyword. You can set the 'decoratorsBeforeExport' option to false to use the 'export @decorator class {}' syntax.", + DecoratorConstructor: "Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?", + DecoratorExportClass: "Using the export keyword between a decorator and a class is not allowed. Please use `export @dec class` instead.", + DecoratorSemicolon: "Decorators must not be followed by a semicolon.", + DecoratorStaticBlock: "Decorators can't be used with a static block.", + DeletePrivateField: "Deleting a private field is not allowed.", + DestructureNamedImport: "ES2015 named imports do not destructure. Use another statement for destructuring after the import.", + DuplicateConstructor: "Duplicate constructor in the same class.", + DuplicateDefaultExport: "Only one default export allowed per module.", + DuplicateExport: ({ + exportName + }) => `\`${exportName}\` has already been exported. Exported identifiers must be unique.`, + DuplicateProto: "Redefinition of __proto__ property.", + DuplicateRegExpFlags: "Duplicate regular expression flag.", + ElementAfterRest: "Rest element must be last element.", + EscapedCharNotAnIdentifier: "Invalid Unicode escape.", + ExportBindingIsString: ({ + localName, + exportName + }) => `A string literal cannot be used as an exported binding without \`from\`.\n- Did you mean \`export { '${localName}' as '${exportName}' } from 'some-module'\`?`, + ExportDefaultFromAsIdentifier: "'from' is not allowed as an identifier after 'export default'.", + ForInOfLoopInitializer: ({ + type + }) => `'${type === "ForInStatement" ? "for-in" : "for-of"}' loop variable declaration may not have an initializer.`, + ForInUsing: "For-in loop may not start with 'using' declaration.", + ForOfAsync: "The left-hand side of a for-of loop may not be 'async'.", + ForOfLet: "The left-hand side of a for-of loop may not start with 'let'.", + GeneratorInSingleStatementContext: "Generators can only be declared at the top level or inside a block.", + IllegalBreakContinue: ({ + type + }) => `Unsyntactic ${type === "BreakStatement" ? "break" : "continue"}.`, + IllegalLanguageModeDirective: "Illegal 'use strict' directive in function with non-simple parameter list.", + IllegalReturn: "'return' outside of function.", + ImportBindingIsString: ({ + importName + }) => `A string literal cannot be used as an imported binding.\n- Did you mean \`import { "${importName}" as foo }\`?`, + ImportCallArgumentTrailingComma: "Trailing comma is disallowed inside import(...) arguments.", + ImportCallArity: ({ + maxArgumentCount + }) => `\`import()\` requires exactly ${maxArgumentCount === 1 ? "one argument" : "one or two arguments"}.`, + ImportCallNotNewExpression: "Cannot use new with import(...).", + ImportCallSpreadArgument: "`...` is not allowed in `import()`.", + ImportJSONBindingNotDefault: "A JSON module can only be imported with `default`.", + ImportReflectionHasAssertion: "`import module x` cannot have assertions.", + ImportReflectionNotBinding: 'Only `import module x from "./module"` is valid.', + IncompatibleRegExpUVFlags: "The 'u' and 'v' regular expression flags cannot be enabled at the same time.", + InvalidBigIntLiteral: "Invalid BigIntLiteral.", + InvalidCodePoint: "Code point out of bounds.", + InvalidCoverInitializedName: "Invalid shorthand property initializer.", + InvalidDecimal: "Invalid decimal.", + InvalidDigit: ({ + radix + }) => `Expected number in radix ${radix}.`, + InvalidEscapeSequence: "Bad character escape sequence.", + InvalidEscapeSequenceTemplate: "Invalid escape sequence in template.", + InvalidEscapedReservedWord: ({ + reservedWord + }) => `Escape sequence in keyword ${reservedWord}.`, + InvalidIdentifier: ({ + identifierName + }) => `Invalid identifier ${identifierName}.`, + InvalidLhs: ({ + ancestor + }) => `Invalid left-hand side in ${toNodeDescription(ancestor)}.`, + InvalidLhsBinding: ({ + ancestor + }) => `Binding invalid left-hand side in ${toNodeDescription(ancestor)}.`, + InvalidNumber: "Invalid number.", + InvalidOrMissingExponent: "Floating-point numbers require a valid exponent after the 'e'.", + InvalidOrUnexpectedToken: ({ + unexpected + }) => `Unexpected character '${unexpected}'.`, + InvalidParenthesizedAssignment: "Invalid parenthesized assignment pattern.", + InvalidPrivateFieldResolution: ({ + identifierName + }) => `Private name #${identifierName} is not defined.`, + InvalidPropertyBindingPattern: "Binding member expression.", + InvalidRecordProperty: "Only properties and spread elements are allowed in record definitions.", + InvalidRestAssignmentPattern: "Invalid rest operator's argument.", + LabelRedeclaration: ({ + labelName + }) => `Label '${labelName}' is already declared.`, + LetInLexicalBinding: "'let' is not allowed to be used as a name in 'let' or 'const' declarations.", + LineTerminatorBeforeArrow: "No line break is allowed before '=>'.", + MalformedRegExpFlags: "Invalid regular expression flag.", + MissingClassName: "A class name is required.", + MissingEqInAssignment: "Only '=' operator can be used for specifying default value.", + MissingSemicolon: "Missing semicolon.", + MissingPlugin: ({ + missingPlugin + }) => `This experimental syntax requires enabling the parser plugin: ${missingPlugin.map(name => JSON.stringify(name)).join(", ")}.`, + MissingOneOfPlugins: ({ + missingPlugin + }) => `This experimental syntax requires enabling one of the following parser plugin(s): ${missingPlugin.map(name => JSON.stringify(name)).join(", ")}.`, + MissingUnicodeEscape: "Expecting Unicode escape sequence \\uXXXX.", + MixingCoalesceWithLogical: "Nullish coalescing operator(??) requires parens when mixing with logical operators.", + ModuleAttributeDifferentFromType: "The only accepted module attribute is `type`.", + ModuleAttributeInvalidValue: "Only string literals are allowed as module attribute values.", + ModuleAttributesWithDuplicateKeys: ({ + key + }) => `Duplicate key "${key}" is not allowed in module attributes.`, + ModuleExportNameHasLoneSurrogate: ({ + surrogateCharCode + }) => `An export name cannot include a lone surrogate, found '\\u${surrogateCharCode.toString(16)}'.`, + ModuleExportUndefined: ({ + localName + }) => `Export '${localName}' is not defined.`, + MultipleDefaultsInSwitch: "Multiple default clauses.", + NewlineAfterThrow: "Illegal newline after throw.", + NoCatchOrFinally: "Missing catch or finally clause.", + NumberIdentifier: "Identifier directly after number.", + NumericSeparatorInEscapeSequence: "Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.", + ObsoleteAwaitStar: "'await*' has been removed from the async functions proposal. Use Promise.all() instead.", + OptionalChainingNoNew: "Constructors in/after an Optional Chain are not allowed.", + OptionalChainingNoTemplate: "Tagged Template Literals are not allowed in optionalChain.", + OverrideOnConstructor: "'override' modifier cannot appear on a constructor declaration.", + ParamDupe: "Argument name clash.", + PatternHasAccessor: "Object pattern can't contain getter or setter.", + PatternHasMethod: "Object pattern can't contain methods.", + PrivateInExpectedIn: ({ + identifierName + }) => `Private names are only allowed in property accesses (\`obj.#${identifierName}\`) or in \`in\` expressions (\`#${identifierName} in obj\`).`, + PrivateNameRedeclaration: ({ + identifierName + }) => `Duplicate private name #${identifierName}.`, + RecordExpressionBarIncorrectEndSyntaxType: "Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", + RecordExpressionBarIncorrectStartSyntaxType: "Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", + RecordExpressionHashIncorrectStartSyntaxType: "Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.", + RecordNoProto: "'__proto__' is not allowed in Record expressions.", + RestTrailingComma: "Unexpected trailing comma after rest element.", + SloppyFunction: "In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.", + StaticPrototype: "Classes may not have static property named prototype.", + SuperNotAllowed: "`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?", + SuperPrivateField: "Private fields can't be accessed on super.", + TrailingDecorator: "Decorators must be attached to a class element.", + TupleExpressionBarIncorrectEndSyntaxType: "Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", + TupleExpressionBarIncorrectStartSyntaxType: "Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", + TupleExpressionHashIncorrectStartSyntaxType: "Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.", + UnexpectedArgumentPlaceholder: "Unexpected argument placeholder.", + UnexpectedAwaitAfterPipelineBody: 'Unexpected "await" after pipeline body; await must have parentheses in minimal proposal.', + UnexpectedDigitAfterHash: "Unexpected digit after hash token.", + UnexpectedImportExport: "'import' and 'export' may only appear at the top level.", + UnexpectedKeyword: ({ + keyword + }) => `Unexpected keyword '${keyword}'.`, + UnexpectedLeadingDecorator: "Leading decorators must be attached to a class declaration.", + UnexpectedLexicalDeclaration: "Lexical declaration cannot appear in a single-statement context.", + UnexpectedNewTarget: "`new.target` can only be used in functions or class properties.", + UnexpectedNumericSeparator: "A numeric separator is only allowed between two digits.", + UnexpectedPrivateField: "Unexpected private name.", + UnexpectedReservedWord: ({ + reservedWord + }) => `Unexpected reserved word '${reservedWord}'.`, + UnexpectedSuper: "'super' is only allowed in object methods and classes.", + UnexpectedToken: ({ + expected, + unexpected + }) => `Unexpected token${unexpected ? ` '${unexpected}'.` : ""}${expected ? `, expected "${expected}"` : ""}`, + UnexpectedTokenUnaryExponentiation: "Illegal expression. Wrap left hand side or entire exponentiation in parentheses.", + UnexpectedUsingDeclaration: "Using declaration cannot appear in the top level when source type is `script`.", + UnsupportedBind: "Binding should be performed on object property.", + UnsupportedDecoratorExport: "A decorated export must export a class declaration.", + UnsupportedDefaultExport: "Only expressions, functions or classes are allowed as the `default` export.", + UnsupportedImport: "`import` can only be used in `import()` or `import.meta`.", + UnsupportedMetaProperty: ({ + target, + onlyValidPropertyName + }) => `The only valid meta property for ${target} is ${target}.${onlyValidPropertyName}.`, + UnsupportedParameterDecorator: "Decorators cannot be used to decorate parameters.", + UnsupportedPropertyDecorator: "Decorators cannot be used to decorate object literal properties.", + UnsupportedSuper: "'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).", + UnterminatedComment: "Unterminated comment.", + UnterminatedRegExp: "Unterminated regular expression.", + UnterminatedString: "Unterminated string constant.", + UnterminatedTemplate: "Unterminated template.", + UsingDeclarationHasBindingPattern: "Using declaration cannot have destructuring patterns.", + VarRedeclaration: ({ + identifierName + }) => `Identifier '${identifierName}' has already been declared.`, + YieldBindingIdentifier: "Can not use 'yield' as identifier inside a generator.", + YieldInParameter: "Yield expression is not allowed in formal parameters.", + ZeroDigitNumericSeparator: "Numeric separator can not be used after leading 0." +}; + +var StrictModeErrors = { + StrictDelete: "Deleting local variable in strict mode.", + StrictEvalArguments: ({ + referenceName + }) => `Assigning to '${referenceName}' in strict mode.`, + StrictEvalArgumentsBinding: ({ + bindingName + }) => `Binding '${bindingName}' in strict mode.`, + StrictFunction: "In strict mode code, functions can only be declared at top level or inside a block.", + StrictNumericEscape: "The only valid numeric escape in strict mode is '\\0'.", + StrictOctalLiteral: "Legacy octal literals are not allowed in strict mode.", + StrictWith: "'with' in strict mode." +}; + +const UnparenthesizedPipeBodyDescriptions = new Set(["ArrowFunctionExpression", "AssignmentExpression", "ConditionalExpression", "YieldExpression"]); +var PipelineOperatorErrors = { + PipeBodyIsTighter: "Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.", + PipeTopicRequiresHackPipes: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.', + PipeTopicUnbound: "Topic reference is unbound; it must be inside a pipe body.", + PipeTopicUnconfiguredToken: ({ + token + }) => `Invalid topic token ${token}. In order to use ${token} as a topic reference, the pipelineOperator plugin must be configured with { "proposal": "hack", "topicToken": "${token}" }.`, + PipeTopicUnused: "Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.", + PipeUnparenthesizedBody: ({ + type + }) => `Hack-style pipe body cannot be an unparenthesized ${toNodeDescription({ + type + })}; please wrap it in parentheses.`, + PipelineBodyNoArrow: 'Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized.', + PipelineBodySequenceExpression: "Pipeline body may not be a comma-separated sequence expression.", + PipelineHeadSequenceExpression: "Pipeline head should not be a comma-separated sequence expression.", + PipelineTopicUnused: "Pipeline is in topic style but does not use topic reference.", + PrimaryTopicNotAllowed: "Topic reference was used in a lexical context without topic binding.", + PrimaryTopicRequiresSmartPipeline: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.' +}; + +const _excluded$1 = ["toMessage"], + _excluded2$1 = ["message"]; +function toParseErrorConstructor(_ref) { + let { + toMessage + } = _ref, + properties = _objectWithoutPropertiesLoose(_ref, _excluded$1); + return function constructor({ + loc, + details + }) { + return instantiate(SyntaxError, Object.assign({}, properties, { + loc + }), { + clone(overrides = {}) { + const loc = overrides.loc || {}; + return constructor({ + loc: new Position("line" in loc ? loc.line : this.loc.line, "column" in loc ? loc.column : this.loc.column, "index" in loc ? loc.index : this.loc.index), + details: Object.assign({}, this.details, overrides.details) + }); + }, + details: { + value: details, + enumerable: false + }, + message: { + get() { + return `${toMessage(this.details)} (${this.loc.line}:${this.loc.column})`; + }, + set(value) { + Object.defineProperty(this, "message", { + value + }); + } + }, + pos: { + reflect: "loc.index", + enumerable: true + }, + missingPlugin: "missingPlugin" in details && { + reflect: "details.missingPlugin", + enumerable: true + } + }); + }; +} +function ParseErrorEnum(argument, syntaxPlugin) { + if (Array.isArray(argument)) { + return parseErrorTemplates => ParseErrorEnum(parseErrorTemplates, argument[0]); + } + const ParseErrorConstructors = {}; + for (const reasonCode of Object.keys(argument)) { + const template = argument[reasonCode]; + const _ref2 = typeof template === "string" ? { + message: () => template + } : typeof template === "function" ? { + message: template + } : template, + { + message + } = _ref2, + rest = _objectWithoutPropertiesLoose(_ref2, _excluded2$1); + const toMessage = typeof message === "string" ? () => message : message; + ParseErrorConstructors[reasonCode] = toParseErrorConstructor(Object.assign({ + code: ParseErrorCode.SyntaxError, + reasonCode, + toMessage + }, syntaxPlugin ? { + syntaxPlugin + } : {}, rest)); + } + return ParseErrorConstructors; +} +const Errors = Object.assign({}, ParseErrorEnum(ModuleErrors), ParseErrorEnum(StandardErrors), ParseErrorEnum(StrictModeErrors), ParseErrorEnum`pipelineOperator`(PipelineOperatorErrors)); + +const { + defineProperty +} = Object; +const toUnenumerable = (object, key) => defineProperty(object, key, { + enumerable: false, + value: object[key] +}); +function toESTreeLocation(node) { + node.loc.start && toUnenumerable(node.loc.start, "index"); + node.loc.end && toUnenumerable(node.loc.end, "index"); + return node; +} +var estree = (superClass => class ESTreeParserMixin extends superClass { + parse() { + const file = toESTreeLocation(super.parse()); + if (this.options.tokens) { + file.tokens = file.tokens.map(toESTreeLocation); + } + return file; + } + + parseRegExpLiteral({ + pattern, + flags + }) { + let regex = null; + try { + regex = new RegExp(pattern, flags); + } catch (e) { + } + + const node = this.estreeParseLiteral(regex); + node.regex = { + pattern, + flags + }; + return node; + } + + parseBigIntLiteral(value) { + let bigInt; + try { + bigInt = BigInt(value); + } catch (_unused) { + bigInt = null; + } + const node = this.estreeParseLiteral(bigInt); + node.bigint = String(node.value || value); + return node; + } + + parseDecimalLiteral(value) { + const decimal = null; + const node = this.estreeParseLiteral(decimal); + node.decimal = String(node.value || value); + return node; + } + estreeParseLiteral(value) { + return this.parseLiteral(value, "Literal"); + } + + parseStringLiteral(value) { + return this.estreeParseLiteral(value); + } + parseNumericLiteral(value) { + return this.estreeParseLiteral(value); + } + + parseNullLiteral() { + return this.estreeParseLiteral(null); + } + parseBooleanLiteral(value) { + return this.estreeParseLiteral(value); + } + + directiveToStmt(directive) { + const expression = directive.value; + delete directive.value; + expression.type = "Literal"; + expression.raw = expression.extra.raw; + expression.value = expression.extra.expressionValue; + const stmt = directive; + stmt.type = "ExpressionStatement"; + stmt.expression = expression; + stmt.directive = expression.extra.rawValue; + delete expression.extra; + return stmt; + } + + initFunction(node, isAsync) { + super.initFunction(node, isAsync); + node.expression = false; + } + checkDeclaration(node) { + if (node != null && this.isObjectProperty(node)) { + this.checkDeclaration(node.value); + } else { + super.checkDeclaration(node); + } + } + getObjectOrClassMethodParams(method) { + return method.value.params; + } + isValidDirective(stmt) { + var _stmt$expression$extr; + return stmt.type === "ExpressionStatement" && stmt.expression.type === "Literal" && typeof stmt.expression.value === "string" && !((_stmt$expression$extr = stmt.expression.extra) != null && _stmt$expression$extr.parenthesized); + } + parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse) { + super.parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse); + const directiveStatements = node.directives.map(d => this.directiveToStmt(d)); + node.body = directiveStatements.concat(node.body); + delete node.directives; + } + pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { + this.parseMethod(method, isGenerator, isAsync, isConstructor, allowsDirectSuper, "ClassMethod", true); + if (method.typeParameters) { + method.value.typeParameters = method.typeParameters; + delete method.typeParameters; + } + classBody.body.push(method); + } + parsePrivateName() { + const node = super.parsePrivateName(); + { + if (!this.getPluginOption("estree", "classFeatures")) { + return node; + } + } + return this.convertPrivateNameToPrivateIdentifier(node); + } + convertPrivateNameToPrivateIdentifier(node) { + const name = super.getPrivateNameSV(node); + node = node; + delete node.id; + node.name = name; + node.type = "PrivateIdentifier"; + return node; + } + isPrivateName(node) { + { + if (!this.getPluginOption("estree", "classFeatures")) { + return super.isPrivateName(node); + } + } + return node.type === "PrivateIdentifier"; + } + getPrivateNameSV(node) { + { + if (!this.getPluginOption("estree", "classFeatures")) { + return super.getPrivateNameSV(node); + } + } + return node.name; + } + + parseLiteral(value, type) { + const node = super.parseLiteral(value, type); + node.raw = node.extra.raw; + delete node.extra; + return node; + } + parseFunctionBody(node, allowExpression, isMethod = false) { + super.parseFunctionBody(node, allowExpression, isMethod); + node.expression = node.body.type !== "BlockStatement"; + } + + parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope = false) { + let funcNode = this.startNode(); + funcNode.kind = node.kind; + funcNode = super.parseMethod( + funcNode, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope); + funcNode.type = "FunctionExpression"; + delete funcNode.kind; + node.value = funcNode; + if (type === "ClassPrivateMethod") { + node.computed = false; + } + return this.finishNode( + node, "MethodDefinition"); + } + parseClassProperty(...args) { + const propertyNode = super.parseClassProperty(...args); + { + if (!this.getPluginOption("estree", "classFeatures")) { + return propertyNode; + } + } + propertyNode.type = "PropertyDefinition"; + return propertyNode; + } + parseClassPrivateProperty(...args) { + const propertyNode = super.parseClassPrivateProperty(...args); + { + if (!this.getPluginOption("estree", "classFeatures")) { + return propertyNode; + } + } + propertyNode.type = "PropertyDefinition"; + propertyNode.computed = false; + return propertyNode; + } + parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) { + const node = super.parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor); + if (node) { + node.type = "Property"; + if (node.kind === "method") { + node.kind = "init"; + } + node.shorthand = false; + } + return node; + } + parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors) { + const node = super.parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors); + if (node) { + node.kind = "init"; + node.type = "Property"; + } + return node; + } + isValidLVal(type, isUnparenthesizedInAssign, binding) { + return type === "Property" ? "value" : super.isValidLVal(type, isUnparenthesizedInAssign, binding); + } + isAssignable(node, isBinding) { + if (node != null && this.isObjectProperty(node)) { + return this.isAssignable(node.value, isBinding); + } + return super.isAssignable(node, isBinding); + } + toAssignable(node, isLHS = false) { + if (node != null && this.isObjectProperty(node)) { + const { + key, + value + } = node; + if (this.isPrivateName(key)) { + this.classScope.usePrivateName(this.getPrivateNameSV(key), key.loc.start); + } + this.toAssignable(value, isLHS); + } else { + super.toAssignable(node, isLHS); + } + } + toAssignableObjectExpressionProp(prop, isLast, isLHS) { + if (prop.kind === "get" || prop.kind === "set") { + this.raise(Errors.PatternHasAccessor, { + at: prop.key + }); + } else if (prop.method) { + this.raise(Errors.PatternHasMethod, { + at: prop.key + }); + } else { + super.toAssignableObjectExpressionProp(prop, isLast, isLHS); + } + } + finishCallExpression(unfinished, optional) { + const node = super.finishCallExpression(unfinished, optional); + if (node.callee.type === "Import") { + node.type = "ImportExpression"; + node.source = node.arguments[0]; + if (this.hasPlugin("importAssertions")) { + var _node$arguments$; + node.attributes = (_node$arguments$ = node.arguments[1]) != null ? _node$arguments$ : null; + } + delete node.arguments; + delete node.callee; + } + return node; + } + toReferencedArguments(node + ) { + if (node.type === "ImportExpression") { + return; + } + super.toReferencedArguments(node); + } + parseExport(unfinished, decorators) { + const exportStartLoc = this.state.lastTokStartLoc; + const node = super.parseExport(unfinished, decorators); + switch (node.type) { + case "ExportAllDeclaration": + node.exported = null; + break; + case "ExportNamedDeclaration": + if (node.specifiers.length === 1 && + node.specifiers[0].type === "ExportNamespaceSpecifier") { + node.type = "ExportAllDeclaration"; + node.exported = node.specifiers[0].exported; + delete node.specifiers; + } + + case "ExportDefaultDeclaration": + { + var _declaration$decorato; + const { + declaration + } = node; + if ((declaration == null ? void 0 : declaration.type) === "ClassDeclaration" && ((_declaration$decorato = declaration.decorators) == null ? void 0 : _declaration$decorato.length) > 0 && + declaration.start === node.start) { + this.resetStartLocation(node, + exportStartLoc); + } + } + break; + } + return node; + } + parseSubscript(base, startLoc, noCalls, state) { + const node = super.parseSubscript(base, startLoc, noCalls, state); + if (state.optionalChainMember) { + if (node.type === "OptionalMemberExpression" || node.type === "OptionalCallExpression") { + node.type = node.type.substring(8); + } + + if (state.stop) { + const chain = this.startNodeAtNode(node); + chain.expression = node; + return this.finishNode(chain, "ChainExpression"); + } + } else if (node.type === "MemberExpression" || node.type === "CallExpression") { + node.optional = false; + } + return node; + } + hasPropertyAsPrivateName(node) { + if (node.type === "ChainExpression") { + node = node.expression; + } + return super.hasPropertyAsPrivateName(node); + } + isOptionalChain(node) { + return node.type === "ChainExpression"; + } + + isObjectProperty(node) { + return node.type === "Property" && node.kind === "init" && !node.method; + } + isObjectMethod(node) { + return node.method || node.kind === "get" || node.kind === "set"; + } + finishNodeAt(node, type, endLoc) { + return toESTreeLocation(super.finishNodeAt(node, type, endLoc)); + } + resetStartLocation(node, startLoc) { + super.resetStartLocation(node, startLoc); + toESTreeLocation(node); + } + resetEndLocation(node, endLoc = this.state.lastTokEndLoc) { + super.resetEndLocation(node, endLoc); + toESTreeLocation(node); + } +}); + +class TokContext { + constructor(token, preserveSpace) { + this.token = void 0; + this.preserveSpace = void 0; + this.token = token; + this.preserveSpace = !!preserveSpace; + } +} +const types = { + brace: new TokContext("{"), + j_oTag: new TokContext("...", true) +}; + +{ + types.template = new TokContext("`", true); +} + +const beforeExpr = true; +const startsExpr = true; +const isLoop = true; +const isAssign = true; +const prefix = true; +const postfix = true; +class ExportedTokenType { + constructor(label, conf = {}) { + this.label = void 0; + this.keyword = void 0; + this.beforeExpr = void 0; + this.startsExpr = void 0; + this.rightAssociative = void 0; + this.isLoop = void 0; + this.isAssign = void 0; + this.prefix = void 0; + this.postfix = void 0; + this.binop = void 0; + this.label = label; + this.keyword = conf.keyword; + this.beforeExpr = !!conf.beforeExpr; + this.startsExpr = !!conf.startsExpr; + this.rightAssociative = !!conf.rightAssociative; + this.isLoop = !!conf.isLoop; + this.isAssign = !!conf.isAssign; + this.prefix = !!conf.prefix; + this.postfix = !!conf.postfix; + this.binop = conf.binop != null ? conf.binop : null; + { + this.updateContext = null; + } + } +} + +const keywords$1 = new Map(); +function createKeyword(name, options = {}) { + options.keyword = name; + const token = createToken(name, options); + keywords$1.set(name, token); + return token; +} +function createBinop(name, binop) { + return createToken(name, { + beforeExpr, + binop + }); +} +let tokenTypeCounter = -1; +const tokenTypes = []; +const tokenLabels = []; +const tokenBinops = []; +const tokenBeforeExprs = []; +const tokenStartsExprs = []; +const tokenPrefixes = []; +function createToken(name, options = {}) { + var _options$binop, _options$beforeExpr, _options$startsExpr, _options$prefix; + ++tokenTypeCounter; + tokenLabels.push(name); + tokenBinops.push((_options$binop = options.binop) != null ? _options$binop : -1); + tokenBeforeExprs.push((_options$beforeExpr = options.beforeExpr) != null ? _options$beforeExpr : false); + tokenStartsExprs.push((_options$startsExpr = options.startsExpr) != null ? _options$startsExpr : false); + tokenPrefixes.push((_options$prefix = options.prefix) != null ? _options$prefix : false); + tokenTypes.push(new ExportedTokenType(name, options)); + return tokenTypeCounter; +} +function createKeywordLike(name, options = {}) { + var _options$binop2, _options$beforeExpr2, _options$startsExpr2, _options$prefix2; + ++tokenTypeCounter; + keywords$1.set(name, tokenTypeCounter); + tokenLabels.push(name); + tokenBinops.push((_options$binop2 = options.binop) != null ? _options$binop2 : -1); + tokenBeforeExprs.push((_options$beforeExpr2 = options.beforeExpr) != null ? _options$beforeExpr2 : false); + tokenStartsExprs.push((_options$startsExpr2 = options.startsExpr) != null ? _options$startsExpr2 : false); + tokenPrefixes.push((_options$prefix2 = options.prefix) != null ? _options$prefix2 : false); + tokenTypes.push(new ExportedTokenType("name", options)); + return tokenTypeCounter; +} + +const tt = { + bracketL: createToken("[", { + beforeExpr, + startsExpr + }), + bracketHashL: createToken("#[", { + beforeExpr, + startsExpr + }), + bracketBarL: createToken("[|", { + beforeExpr, + startsExpr + }), + bracketR: createToken("]"), + bracketBarR: createToken("|]"), + braceL: createToken("{", { + beforeExpr, + startsExpr + }), + braceBarL: createToken("{|", { + beforeExpr, + startsExpr + }), + braceHashL: createToken("#{", { + beforeExpr, + startsExpr + }), + braceR: createToken("}"), + braceBarR: createToken("|}"), + parenL: createToken("(", { + beforeExpr, + startsExpr + }), + parenR: createToken(")"), + comma: createToken(",", { + beforeExpr + }), + semi: createToken(";", { + beforeExpr + }), + colon: createToken(":", { + beforeExpr + }), + doubleColon: createToken("::", { + beforeExpr + }), + dot: createToken("."), + question: createToken("?", { + beforeExpr + }), + questionDot: createToken("?."), + arrow: createToken("=>", { + beforeExpr + }), + template: createToken("template"), + ellipsis: createToken("...", { + beforeExpr + }), + backQuote: createToken("`", { + startsExpr + }), + dollarBraceL: createToken("${", { + beforeExpr, + startsExpr + }), + templateTail: createToken("...`", { + startsExpr + }), + templateNonTail: createToken("...${", { + beforeExpr, + startsExpr + }), + at: createToken("@"), + hash: createToken("#", { + startsExpr + }), + interpreterDirective: createToken("#!..."), + + eq: createToken("=", { + beforeExpr, + isAssign + }), + assign: createToken("_=", { + beforeExpr, + isAssign + }), + slashAssign: createToken("_=", { + beforeExpr, + isAssign + }), + xorAssign: createToken("_=", { + beforeExpr, + isAssign + }), + moduloAssign: createToken("_=", { + beforeExpr, + isAssign + }), + + incDec: createToken("++/--", { + prefix, + postfix, + startsExpr + }), + bang: createToken("!", { + beforeExpr, + prefix, + startsExpr + }), + tilde: createToken("~", { + beforeExpr, + prefix, + startsExpr + }), + doubleCaret: createToken("^^", { + startsExpr + }), + doubleAt: createToken("@@", { + startsExpr + }), + pipeline: createBinop("|>", 0), + nullishCoalescing: createBinop("??", 1), + logicalOR: createBinop("||", 1), + logicalAND: createBinop("&&", 2), + bitwiseOR: createBinop("|", 3), + bitwiseXOR: createBinop("^", 4), + bitwiseAND: createBinop("&", 5), + equality: createBinop("==/!=/===/!==", 6), + lt: createBinop("/<=/>=", 7), + gt: createBinop("/<=/>=", 7), + relational: createBinop("/<=/>=", 7), + bitShift: createBinop("<>/>>>", 8), + bitShiftL: createBinop("<>/>>>", 8), + bitShiftR: createBinop("<>/>>>", 8), + plusMin: createToken("+/-", { + beforeExpr, + binop: 9, + prefix, + startsExpr + }), + modulo: createToken("%", { + binop: 10, + startsExpr + }), + star: createToken("*", { + binop: 10 + }), + slash: createBinop("/", 10), + exponent: createToken("**", { + beforeExpr, + binop: 11, + rightAssociative: true + }), + _in: createKeyword("in", { + beforeExpr, + binop: 7 + }), + _instanceof: createKeyword("instanceof", { + beforeExpr, + binop: 7 + }), + _break: createKeyword("break"), + _case: createKeyword("case", { + beforeExpr + }), + _catch: createKeyword("catch"), + _continue: createKeyword("continue"), + _debugger: createKeyword("debugger"), + _default: createKeyword("default", { + beforeExpr + }), + _else: createKeyword("else", { + beforeExpr + }), + _finally: createKeyword("finally"), + _function: createKeyword("function", { + startsExpr + }), + _if: createKeyword("if"), + _return: createKeyword("return", { + beforeExpr + }), + _switch: createKeyword("switch"), + _throw: createKeyword("throw", { + beforeExpr, + prefix, + startsExpr + }), + _try: createKeyword("try"), + _var: createKeyword("var"), + _const: createKeyword("const"), + _with: createKeyword("with"), + _new: createKeyword("new", { + beforeExpr, + startsExpr + }), + _this: createKeyword("this", { + startsExpr + }), + _super: createKeyword("super", { + startsExpr + }), + _class: createKeyword("class", { + startsExpr + }), + _extends: createKeyword("extends", { + beforeExpr + }), + _export: createKeyword("export"), + _import: createKeyword("import", { + startsExpr + }), + _null: createKeyword("null", { + startsExpr + }), + _true: createKeyword("true", { + startsExpr + }), + _false: createKeyword("false", { + startsExpr + }), + _typeof: createKeyword("typeof", { + beforeExpr, + prefix, + startsExpr + }), + _void: createKeyword("void", { + beforeExpr, + prefix, + startsExpr + }), + _delete: createKeyword("delete", { + beforeExpr, + prefix, + startsExpr + }), + _do: createKeyword("do", { + isLoop, + beforeExpr + }), + _for: createKeyword("for", { + isLoop + }), + _while: createKeyword("while", { + isLoop + }), + + _as: createKeywordLike("as", { + startsExpr + }), + _assert: createKeywordLike("assert", { + startsExpr + }), + _async: createKeywordLike("async", { + startsExpr + }), + _await: createKeywordLike("await", { + startsExpr + }), + _from: createKeywordLike("from", { + startsExpr + }), + _get: createKeywordLike("get", { + startsExpr + }), + _let: createKeywordLike("let", { + startsExpr + }), + _meta: createKeywordLike("meta", { + startsExpr + }), + _of: createKeywordLike("of", { + startsExpr + }), + _sent: createKeywordLike("sent", { + startsExpr + }), + _set: createKeywordLike("set", { + startsExpr + }), + _static: createKeywordLike("static", { + startsExpr + }), + _using: createKeywordLike("using", { + startsExpr + }), + _yield: createKeywordLike("yield", { + startsExpr + }), + _asserts: createKeywordLike("asserts", { + startsExpr + }), + _checks: createKeywordLike("checks", { + startsExpr + }), + _exports: createKeywordLike("exports", { + startsExpr + }), + _global: createKeywordLike("global", { + startsExpr + }), + _implements: createKeywordLike("implements", { + startsExpr + }), + _intrinsic: createKeywordLike("intrinsic", { + startsExpr + }), + _infer: createKeywordLike("infer", { + startsExpr + }), + _is: createKeywordLike("is", { + startsExpr + }), + _mixins: createKeywordLike("mixins", { + startsExpr + }), + _proto: createKeywordLike("proto", { + startsExpr + }), + _require: createKeywordLike("require", { + startsExpr + }), + _satisfies: createKeywordLike("satisfies", { + startsExpr + }), + _keyof: createKeywordLike("keyof", { + startsExpr + }), + _readonly: createKeywordLike("readonly", { + startsExpr + }), + _unique: createKeywordLike("unique", { + startsExpr + }), + _abstract: createKeywordLike("abstract", { + startsExpr + }), + _declare: createKeywordLike("declare", { + startsExpr + }), + _enum: createKeywordLike("enum", { + startsExpr + }), + _module: createKeywordLike("module", { + startsExpr + }), + _namespace: createKeywordLike("namespace", { + startsExpr + }), + _interface: createKeywordLike("interface", { + startsExpr + }), + _type: createKeywordLike("type", { + startsExpr + }), + _opaque: createKeywordLike("opaque", { + startsExpr + }), + name: createToken("name", { + startsExpr + }), + + string: createToken("string", { + startsExpr + }), + num: createToken("num", { + startsExpr + }), + bigint: createToken("bigint", { + startsExpr + }), + decimal: createToken("decimal", { + startsExpr + }), + regexp: createToken("regexp", { + startsExpr + }), + privateName: createToken("#name", { + startsExpr + }), + eof: createToken("eof"), + jsxName: createToken("jsxName"), + jsxText: createToken("jsxText", { + beforeExpr: true + }), + jsxTagStart: createToken("jsxTagStart", { + startsExpr: true + }), + jsxTagEnd: createToken("jsxTagEnd"), + placeholder: createToken("%%", { + startsExpr: true + }) +}; +function tokenIsIdentifier(token) { + return token >= 93 && token <= 130; +} +function tokenKeywordOrIdentifierIsKeyword(token) { + return token <= 92; +} +function tokenIsKeywordOrIdentifier(token) { + return token >= 58 && token <= 130; +} +function tokenIsLiteralPropertyName(token) { + return token >= 58 && token <= 134; +} +function tokenComesBeforeExpression(token) { + return tokenBeforeExprs[token]; +} +function tokenCanStartExpression(token) { + return tokenStartsExprs[token]; +} +function tokenIsAssignment(token) { + return token >= 29 && token <= 33; +} +function tokenIsFlowInterfaceOrTypeOrOpaque(token) { + return token >= 127 && token <= 129; +} +function tokenIsLoop(token) { + return token >= 90 && token <= 92; +} +function tokenIsKeyword(token) { + return token >= 58 && token <= 92; +} +function tokenIsOperator(token) { + return token >= 39 && token <= 59; +} +function tokenIsPostfix(token) { + return token === 34; +} +function tokenIsPrefix(token) { + return tokenPrefixes[token]; +} +function tokenIsTSTypeOperator(token) { + return token >= 119 && token <= 121; +} +function tokenIsTSDeclarationStart(token) { + return token >= 122 && token <= 128; +} +function tokenLabelName(token) { + return tokenLabels[token]; +} +function tokenOperatorPrecedence(token) { + return tokenBinops[token]; +} +function tokenIsRightAssociative(token) { + return token === 57; +} +function tokenIsTemplate(token) { + return token >= 24 && token <= 25; +} +function getExportedToken(token) { + return tokenTypes[token]; +} +{ + tokenTypes[8].updateContext = context => { + context.pop(); + }; + tokenTypes[5].updateContext = tokenTypes[7].updateContext = tokenTypes[23].updateContext = context => { + context.push(types.brace); + }; + tokenTypes[22].updateContext = context => { + if (context[context.length - 1] === types.template) { + context.pop(); + } else { + context.push(types.template); + } + }; + tokenTypes[140].updateContext = context => { + context.push(types.j_expr, types.j_oTag); + }; +} + +let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; +let nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; +const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); +const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); +nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; + +const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 757, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938, 6, 4191]; +const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 81, 2, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 9, 5351, 0, 7, 14, 13835, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 983, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; + +function isInAstralSet(code, set) { + let pos = 0x10000; + for (let i = 0, length = set.length; i < length; i += 2) { + pos += set[i]; + if (pos > code) return false; + pos += set[i + 1]; + if (pos >= code) return true; + } + return false; +} + +function isIdentifierStart(code) { + if (code < 65) return code === 36; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); + } + return isInAstralSet(code, astralIdentifierStartCodes); +} + +function isIdentifierChar(code) { + if (code < 48) return code === 36; + if (code < 58) return true; + if (code < 65) return false; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); + } + return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); +} + +const reservedWords = { + keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], + strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], + strictBind: ["eval", "arguments"] +}; +const keywords = new Set(reservedWords.keyword); +const reservedWordsStrictSet = new Set(reservedWords.strict); +const reservedWordsStrictBindSet = new Set(reservedWords.strictBind); + +function isReservedWord(word, inModule) { + return inModule && word === "await" || word === "enum"; +} + +function isStrictReservedWord(word, inModule) { + return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word); +} + +function isStrictBindOnlyReservedWord(word) { + return reservedWordsStrictBindSet.has(word); +} + +function isStrictBindReservedWord(word, inModule) { + return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word); +} +function isKeyword(word) { + return keywords.has(word); +} + +function isIteratorStart(current, next, next2) { + return current === 64 && next === 64 && isIdentifierStart(next2); +} + +const reservedWordLikeSet = new Set(["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete", +"implements", "interface", "let", "package", "private", "protected", "public", "static", "yield", +"eval", "arguments", +"enum", "await"]); +function canBeReservedWord(word) { + return reservedWordLikeSet.has(word); +} + +const SCOPE_OTHER = 0b000000000, + SCOPE_PROGRAM = 0b000000001, + SCOPE_FUNCTION = 0b000000010, + SCOPE_ARROW = 0b000000100, + SCOPE_SIMPLE_CATCH = 0b000001000, + SCOPE_SUPER = 0b000010000, + SCOPE_DIRECT_SUPER = 0b000100000, + SCOPE_CLASS = 0b001000000, + SCOPE_STATIC_BLOCK = 0b010000000, + SCOPE_TS_MODULE = 0b100000000, + SCOPE_VAR = SCOPE_PROGRAM | SCOPE_FUNCTION | SCOPE_STATIC_BLOCK | SCOPE_TS_MODULE; +const BIND_KIND_VALUE = 0b000000000001, + BIND_KIND_TYPE = 0b000000000010, + BIND_SCOPE_VAR = 0b000000000100, + BIND_SCOPE_LEXICAL = 0b000000001000, + BIND_SCOPE_FUNCTION = 0b000000010000, + BIND_FLAGS_NONE = 0b0000001000000, + BIND_FLAGS_CLASS = 0b0000010000000, + BIND_FLAGS_TS_ENUM = 0b0000100000000, + BIND_FLAGS_TS_CONST_ENUM = 0b0001000000000, + BIND_FLAGS_TS_EXPORT_ONLY = 0b0010000000000, + BIND_FLAGS_FLOW_DECLARE_FN = 0b0100000000000, + BIND_FLAGS_TS_IMPORT = 0b1000000000000; + +const BIND_CLASS = BIND_KIND_VALUE | BIND_KIND_TYPE | BIND_SCOPE_LEXICAL | BIND_FLAGS_CLASS, + BIND_LEXICAL = BIND_KIND_VALUE | 0 | BIND_SCOPE_LEXICAL | 0, + BIND_VAR = BIND_KIND_VALUE | 0 | BIND_SCOPE_VAR | 0, + BIND_FUNCTION = BIND_KIND_VALUE | 0 | BIND_SCOPE_FUNCTION | 0, + BIND_TS_INTERFACE = 0 | BIND_KIND_TYPE | 0 | BIND_FLAGS_CLASS, + BIND_TS_TYPE = 0 | BIND_KIND_TYPE | 0 | 0, + BIND_TS_ENUM = BIND_KIND_VALUE | BIND_KIND_TYPE | BIND_SCOPE_LEXICAL | BIND_FLAGS_TS_ENUM, + BIND_TS_AMBIENT = 0 | 0 | 0 | BIND_FLAGS_TS_EXPORT_ONLY, + BIND_NONE = 0 | 0 | 0 | BIND_FLAGS_NONE, + BIND_OUTSIDE = BIND_KIND_VALUE | 0 | 0 | BIND_FLAGS_NONE, + BIND_TS_CONST_ENUM = BIND_TS_ENUM | BIND_FLAGS_TS_CONST_ENUM, + BIND_TS_NAMESPACE = 0 | 0 | 0 | BIND_FLAGS_TS_EXPORT_ONLY, + BIND_TS_TYPE_IMPORT = 0 | BIND_KIND_TYPE | 0 | BIND_FLAGS_TS_IMPORT, + BIND_FLOW_DECLARE_FN = BIND_FLAGS_FLOW_DECLARE_FN; +const CLASS_ELEMENT_FLAG_STATIC = 0b100, + CLASS_ELEMENT_KIND_GETTER = 0b010, + CLASS_ELEMENT_KIND_SETTER = 0b001, + CLASS_ELEMENT_KIND_ACCESSOR = CLASS_ELEMENT_KIND_GETTER | CLASS_ELEMENT_KIND_SETTER; + +const CLASS_ELEMENT_STATIC_GETTER = CLASS_ELEMENT_KIND_GETTER | CLASS_ELEMENT_FLAG_STATIC, + CLASS_ELEMENT_STATIC_SETTER = CLASS_ELEMENT_KIND_SETTER | CLASS_ELEMENT_FLAG_STATIC, + CLASS_ELEMENT_INSTANCE_GETTER = CLASS_ELEMENT_KIND_GETTER, + CLASS_ELEMENT_INSTANCE_SETTER = CLASS_ELEMENT_KIND_SETTER, + CLASS_ELEMENT_OTHER = 0; + +class Scope { + + constructor(flags) { + this.var = new Set(); + this.lexical = new Set(); + this.functions = new Set(); + this.flags = flags; + } +} + +class ScopeHandler { + constructor(parser, inModule) { + this.parser = void 0; + this.scopeStack = []; + this.inModule = void 0; + this.undefinedExports = new Map(); + this.parser = parser; + this.inModule = inModule; + } + get inTopLevel() { + return (this.currentScope().flags & SCOPE_PROGRAM) > 0; + } + get inFunction() { + return (this.currentVarScopeFlags() & SCOPE_FUNCTION) > 0; + } + get allowSuper() { + return (this.currentThisScopeFlags() & SCOPE_SUPER) > 0; + } + get allowDirectSuper() { + return (this.currentThisScopeFlags() & SCOPE_DIRECT_SUPER) > 0; + } + get inClass() { + return (this.currentThisScopeFlags() & SCOPE_CLASS) > 0; + } + get inClassAndNotInNonArrowFunction() { + const flags = this.currentThisScopeFlags(); + return (flags & SCOPE_CLASS) > 0 && (flags & SCOPE_FUNCTION) === 0; + } + get inStaticBlock() { + for (let i = this.scopeStack.length - 1;; i--) { + const { + flags + } = this.scopeStack[i]; + if (flags & SCOPE_STATIC_BLOCK) { + return true; + } + if (flags & (SCOPE_VAR | SCOPE_CLASS)) { + return false; + } + } + } + get inNonArrowFunction() { + return (this.currentThisScopeFlags() & SCOPE_FUNCTION) > 0; + } + get treatFunctionsAsVar() { + return this.treatFunctionsAsVarInScope(this.currentScope()); + } + createScope(flags) { + return new Scope(flags); + } + enter(flags) { + this.scopeStack.push(this.createScope(flags)); + } + exit() { + const scope = this.scopeStack.pop(); + return scope.flags; + } + + treatFunctionsAsVarInScope(scope) { + return !!(scope.flags & (SCOPE_FUNCTION | SCOPE_STATIC_BLOCK) || !this.parser.inModule && scope.flags & SCOPE_PROGRAM); + } + declareName(name, bindingType, loc) { + let scope = this.currentScope(); + if (bindingType & BIND_SCOPE_LEXICAL || bindingType & BIND_SCOPE_FUNCTION) { + this.checkRedeclarationInScope(scope, name, bindingType, loc); + if (bindingType & BIND_SCOPE_FUNCTION) { + scope.functions.add(name); + } else { + scope.lexical.add(name); + } + if (bindingType & BIND_SCOPE_LEXICAL) { + this.maybeExportDefined(scope, name); + } + } else if (bindingType & BIND_SCOPE_VAR) { + for (let i = this.scopeStack.length - 1; i >= 0; --i) { + scope = this.scopeStack[i]; + this.checkRedeclarationInScope(scope, name, bindingType, loc); + scope.var.add(name); + this.maybeExportDefined(scope, name); + if (scope.flags & SCOPE_VAR) break; + } + } + if (this.parser.inModule && scope.flags & SCOPE_PROGRAM) { + this.undefinedExports.delete(name); + } + } + maybeExportDefined(scope, name) { + if (this.parser.inModule && scope.flags & SCOPE_PROGRAM) { + this.undefinedExports.delete(name); + } + } + checkRedeclarationInScope(scope, name, bindingType, loc) { + if (this.isRedeclaredInScope(scope, name, bindingType)) { + this.parser.raise(Errors.VarRedeclaration, { + at: loc, + identifierName: name + }); + } + } + isRedeclaredInScope(scope, name, bindingType) { + if (!(bindingType & BIND_KIND_VALUE)) return false; + if (bindingType & BIND_SCOPE_LEXICAL) { + return scope.lexical.has(name) || scope.functions.has(name) || scope.var.has(name); + } + if (bindingType & BIND_SCOPE_FUNCTION) { + return scope.lexical.has(name) || !this.treatFunctionsAsVarInScope(scope) && scope.var.has(name); + } + return scope.lexical.has(name) && !(scope.flags & SCOPE_SIMPLE_CATCH && scope.lexical.values().next().value === name) || !this.treatFunctionsAsVarInScope(scope) && scope.functions.has(name); + } + checkLocalExport(id) { + const { + name + } = id; + const topLevelScope = this.scopeStack[0]; + if (!topLevelScope.lexical.has(name) && !topLevelScope.var.has(name) && + !topLevelScope.functions.has(name)) { + this.undefinedExports.set(name, id.loc.start); + } + } + currentScope() { + return this.scopeStack[this.scopeStack.length - 1]; + } + currentVarScopeFlags() { + for (let i = this.scopeStack.length - 1;; i--) { + const { + flags + } = this.scopeStack[i]; + if (flags & SCOPE_VAR) { + return flags; + } + } + } + + currentThisScopeFlags() { + for (let i = this.scopeStack.length - 1;; i--) { + const { + flags + } = this.scopeStack[i]; + if (flags & (SCOPE_VAR | SCOPE_CLASS) && !(flags & SCOPE_ARROW)) { + return flags; + } + } + } +} + +class FlowScope extends Scope { + constructor(...args) { + super(...args); + this.declareFunctions = new Set(); + } +} +class FlowScopeHandler extends ScopeHandler { + createScope(flags) { + return new FlowScope(flags); + } + declareName(name, bindingType, loc) { + const scope = this.currentScope(); + if (bindingType & BIND_FLAGS_FLOW_DECLARE_FN) { + this.checkRedeclarationInScope(scope, name, bindingType, loc); + this.maybeExportDefined(scope, name); + scope.declareFunctions.add(name); + return; + } + super.declareName(name, bindingType, loc); + } + isRedeclaredInScope(scope, name, bindingType) { + if (super.isRedeclaredInScope(scope, name, bindingType)) return true; + if (bindingType & BIND_FLAGS_FLOW_DECLARE_FN) { + return !scope.declareFunctions.has(name) && (scope.lexical.has(name) || scope.functions.has(name)); + } + return false; + } + checkLocalExport(id) { + if (!this.scopeStack[0].declareFunctions.has(id.name)) { + super.checkLocalExport(id); + } + } +} + +class BaseParser { + constructor() { + this.sawUnambiguousESM = false; + this.ambiguousScriptDifferentAst = false; + } + hasPlugin(pluginConfig) { + if (typeof pluginConfig === "string") { + return this.plugins.has(pluginConfig); + } else { + const [pluginName, pluginOptions] = pluginConfig; + if (!this.hasPlugin(pluginName)) { + return false; + } + const actualOptions = this.plugins.get(pluginName); + for (const key of Object.keys(pluginOptions)) { + if ((actualOptions == null ? void 0 : actualOptions[key]) !== pluginOptions[key]) { + return false; + } + } + return true; + } + } + getPluginOption(plugin, name) { + var _this$plugins$get; + return (_this$plugins$get = this.plugins.get(plugin)) == null ? void 0 : _this$plugins$get[name]; + } +} + +function setTrailingComments(node, comments) { + if (node.trailingComments === undefined) { + node.trailingComments = comments; + } else { + node.trailingComments.unshift(...comments); + } +} + +function setLeadingComments(node, comments) { + if (node.leadingComments === undefined) { + node.leadingComments = comments; + } else { + node.leadingComments.unshift(...comments); + } +} + +function setInnerComments(node, comments) { + if (node.innerComments === undefined) { + node.innerComments = comments; + } else { + node.innerComments.unshift(...comments); + } +} + +function adjustInnerComments(node, elements, commentWS) { + let lastElement = null; + let i = elements.length; + while (lastElement === null && i > 0) { + lastElement = elements[--i]; + } + if (lastElement === null || lastElement.start > commentWS.start) { + setInnerComments(node, commentWS.comments); + } else { + setTrailingComments(lastElement, commentWS.comments); + } +} +class CommentsParser extends BaseParser { + addComment(comment) { + if (this.filename) comment.loc.filename = this.filename; + this.state.comments.push(comment); + } + + processComment(node) { + const { + commentStack + } = this.state; + const commentStackLength = commentStack.length; + if (commentStackLength === 0) return; + let i = commentStackLength - 1; + const lastCommentWS = commentStack[i]; + if (lastCommentWS.start === node.end) { + lastCommentWS.leadingNode = node; + i--; + } + const { + start: nodeStart + } = node; + for (; i >= 0; i--) { + const commentWS = commentStack[i]; + const commentEnd = commentWS.end; + if (commentEnd > nodeStart) { + commentWS.containingNode = node; + this.finalizeComment(commentWS); + commentStack.splice(i, 1); + } else { + if (commentEnd === nodeStart) { + commentWS.trailingNode = node; + } + break; + } + } + } + + finalizeComment(commentWS) { + const { + comments + } = commentWS; + if (commentWS.leadingNode !== null || commentWS.trailingNode !== null) { + if (commentWS.leadingNode !== null) { + setTrailingComments(commentWS.leadingNode, comments); + } + if (commentWS.trailingNode !== null) { + setLeadingComments(commentWS.trailingNode, comments); + } + } else { + const { + containingNode: node, + start: commentStart + } = commentWS; + if (this.input.charCodeAt(commentStart - 1) === 44) { + switch (node.type) { + case "ObjectExpression": + case "ObjectPattern": + case "RecordExpression": + adjustInnerComments(node, node.properties, commentWS); + break; + case "CallExpression": + case "OptionalCallExpression": + adjustInnerComments(node, node.arguments, commentWS); + break; + case "FunctionDeclaration": + case "FunctionExpression": + case "ArrowFunctionExpression": + case "ObjectMethod": + case "ClassMethod": + case "ClassPrivateMethod": + adjustInnerComments(node, node.params, commentWS); + break; + case "ArrayExpression": + case "ArrayPattern": + case "TupleExpression": + adjustInnerComments(node, node.elements, commentWS); + break; + case "ExportNamedDeclaration": + case "ImportDeclaration": + adjustInnerComments(node, node.specifiers, commentWS); + break; + default: + { + setInnerComments(node, comments); + } + } + } else { + setInnerComments(node, comments); + } + } + } + + finalizeRemainingComments() { + const { + commentStack + } = this.state; + for (let i = commentStack.length - 1; i >= 0; i--) { + this.finalizeComment(commentStack[i]); + } + this.state.commentStack = []; + } + + resetPreviousNodeTrailingComments(node) { + const { + commentStack + } = this.state; + const { + length + } = commentStack; + if (length === 0) return; + const commentWS = commentStack[length - 1]; + if (commentWS.leadingNode === node) { + commentWS.leadingNode = null; + } + } + + takeSurroundingComments(node, start, end) { + const { + commentStack + } = this.state; + const commentStackLength = commentStack.length; + if (commentStackLength === 0) return; + let i = commentStackLength - 1; + for (; i >= 0; i--) { + const commentWS = commentStack[i]; + const commentEnd = commentWS.end; + const commentStart = commentWS.start; + if (commentStart === end) { + commentWS.leadingNode = node; + } else if (commentEnd === start) { + commentWS.trailingNode = node; + } else if (commentEnd < start) { + break; + } + } + } +} + +const lineBreak = /\r\n?|[\n\u2028\u2029]/; +const lineBreakG = new RegExp(lineBreak.source, "g"); + +function isNewLine(code) { + switch (code) { + case 10: + case 13: + case 8232: + case 8233: + return true; + default: + return false; + } +} +const skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g; +const skipWhiteSpaceInLine = /(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/y; + +const skipWhiteSpaceToLineBreak = new RegExp( +"(?=(" + +skipWhiteSpaceInLine.source + "))\\1" + +/(?=[\n\r\u2028\u2029]|\/\*(?!.*?\*\/)|$)/.source, "y"); + +function isWhitespace(code) { + switch (code) { + case 0x0009: + case 0x000b: + case 0x000c: + case 32: + case 160: + case 5760: + case 0x2000: + case 0x2001: + case 0x2002: + case 0x2003: + case 0x2004: + case 0x2005: + case 0x2006: + case 0x2007: + case 0x2008: + case 0x2009: + case 0x200a: + case 0x202f: + case 0x205f: + case 0x3000: + case 0xfeff: + return true; + default: + return false; + } +} + +class State { + constructor() { + this.strict = void 0; + this.curLine = void 0; + this.lineStart = void 0; + this.startLoc = void 0; + this.endLoc = void 0; + this.errors = []; + this.potentialArrowAt = -1; + this.noArrowAt = []; + this.noArrowParamsConversionAt = []; + this.maybeInArrowParameters = false; + this.inType = false; + this.noAnonFunctionType = false; + this.hasFlowComment = false; + this.isAmbientContext = false; + this.inAbstractClass = false; + this.inDisallowConditionalTypesContext = false; + this.topicContext = { + maxNumOfResolvableTopics: 0, + maxTopicIndex: null + }; + this.soloAwait = false; + this.inFSharpPipelineDirectBody = false; + this.labels = []; + this.comments = []; + this.commentStack = []; + this.pos = 0; + this.type = 137; + this.value = null; + this.start = 0; + this.end = 0; + this.lastTokEndLoc = null; + this.lastTokStartLoc = null; + this.lastTokStart = 0; + this.context = [types.brace]; + this.canStartJSXElement = true; + this.containsEsc = false; + this.firstInvalidTemplateEscapePos = null; + this.strictErrors = new Map(); + this.tokensLength = 0; + } + init({ + strictMode, + sourceType, + startLine, + startColumn + }) { + this.strict = strictMode === false ? false : strictMode === true ? true : sourceType === "module"; + this.curLine = startLine; + this.lineStart = -startColumn; + this.startLoc = this.endLoc = new Position(startLine, startColumn, 0); + } + curPosition() { + return new Position(this.curLine, this.pos - this.lineStart, this.pos); + } + clone(skipArrays) { + const state = new State(); + const keys = Object.keys(this); + for (let i = 0, length = keys.length; i < length; i++) { + const key = keys[i]; + let val = this[key]; + if (!skipArrays && Array.isArray(val)) { + val = val.slice(); + } + + state[key] = val; + } + return state; + } +} + +var _isDigit = function isDigit(code) { + return code >= 48 && code <= 57; +}; +const forbiddenNumericSeparatorSiblings = { + decBinOct: new Set([46, 66, 69, 79, 95, 98, 101, 111]), + hex: new Set([46, 88, 95, 120]) +}; +const isAllowedNumericSeparatorSibling = { + bin: ch => ch === 48 || ch === 49, + oct: ch => ch >= 48 && ch <= 55, + dec: ch => ch >= 48 && ch <= 57, + hex: ch => ch >= 48 && ch <= 57 || ch >= 65 && ch <= 70 || ch >= 97 && ch <= 102 +}; +function readStringContents(type, input, pos, lineStart, curLine, errors) { + const initialPos = pos; + const initialLineStart = lineStart; + const initialCurLine = curLine; + let out = ""; + let firstInvalidLoc = null; + let chunkStart = pos; + const { + length + } = input; + for (;;) { + if (pos >= length) { + errors.unterminated(initialPos, initialLineStart, initialCurLine); + out += input.slice(chunkStart, pos); + break; + } + const ch = input.charCodeAt(pos); + if (isStringEnd(type, ch, input, pos)) { + out += input.slice(chunkStart, pos); + break; + } + if (ch === 92) { + out += input.slice(chunkStart, pos); + const res = readEscapedChar(input, pos, lineStart, curLine, type === "template", errors); + if (res.ch === null && !firstInvalidLoc) { + firstInvalidLoc = { + pos, + lineStart, + curLine + }; + } else { + out += res.ch; + } + ({ + pos, + lineStart, + curLine + } = res); + chunkStart = pos; + } else if (ch === 8232 || ch === 8233) { + ++pos; + ++curLine; + lineStart = pos; + } else if (ch === 10 || ch === 13) { + if (type === "template") { + out += input.slice(chunkStart, pos) + "\n"; + ++pos; + if (ch === 13 && input.charCodeAt(pos) === 10) { + ++pos; + } + ++curLine; + chunkStart = lineStart = pos; + } else { + errors.unterminated(initialPos, initialLineStart, initialCurLine); + } + } else { + ++pos; + } + } + return { + pos, + str: out, + firstInvalidLoc, + lineStart, + curLine, + containsInvalid: !!firstInvalidLoc + }; +} +function isStringEnd(type, ch, input, pos) { + if (type === "template") { + return ch === 96 || ch === 36 && input.charCodeAt(pos + 1) === 123; + } + return ch === (type === "double" ? 34 : 39); +} +function readEscapedChar(input, pos, lineStart, curLine, inTemplate, errors) { + const throwOnInvalid = !inTemplate; + pos++; + + const res = ch => ({ + pos, + ch, + lineStart, + curLine + }); + const ch = input.charCodeAt(pos++); + switch (ch) { + case 110: + return res("\n"); + case 114: + return res("\r"); + case 120: + { + let code; + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, 2, false, throwOnInvalid, errors)); + return res(code === null ? null : String.fromCharCode(code)); + } + case 117: + { + let code; + ({ + code, + pos + } = readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors)); + return res(code === null ? null : String.fromCodePoint(code)); + } + case 116: + return res("\t"); + case 98: + return res("\b"); + case 118: + return res("\u000b"); + case 102: + return res("\f"); + case 13: + if (input.charCodeAt(pos) === 10) { + ++pos; + } + case 10: + lineStart = pos; + ++curLine; + case 8232: + case 8233: + return res(""); + case 56: + case 57: + if (inTemplate) { + return res(null); + } else { + errors.strictNumericEscape(pos - 1, lineStart, curLine); + } + default: + if (ch >= 48 && ch <= 55) { + const startPos = pos - 1; + const match = input.slice(startPos, pos + 2).match(/^[0-7]+/); + let octalStr = match[0]; + let octal = parseInt(octalStr, 8); + if (octal > 255) { + octalStr = octalStr.slice(0, -1); + octal = parseInt(octalStr, 8); + } + pos += octalStr.length - 1; + const next = input.charCodeAt(pos); + if (octalStr !== "0" || next === 56 || next === 57) { + if (inTemplate) { + return res(null); + } else { + errors.strictNumericEscape(startPos, lineStart, curLine); + } + } + return res(String.fromCharCode(octal)); + } + return res(String.fromCharCode(ch)); + } +} +function readHexChar(input, pos, lineStart, curLine, len, forceLen, throwOnInvalid, errors) { + const initialPos = pos; + let n; + ({ + n, + pos + } = readInt(input, pos, lineStart, curLine, 16, len, forceLen, false, errors, !throwOnInvalid)); + if (n === null) { + if (throwOnInvalid) { + errors.invalidEscapeSequence(initialPos, lineStart, curLine); + } else { + pos = initialPos - 1; + } + } + return { + code: n, + pos + }; +} +function readInt(input, pos, lineStart, curLine, radix, len, forceLen, allowNumSeparator, errors, bailOnError) { + const start = pos; + const forbiddenSiblings = radix === 16 ? forbiddenNumericSeparatorSiblings.hex : forbiddenNumericSeparatorSiblings.decBinOct; + const isAllowedSibling = radix === 16 ? isAllowedNumericSeparatorSibling.hex : radix === 10 ? isAllowedNumericSeparatorSibling.dec : radix === 8 ? isAllowedNumericSeparatorSibling.oct : isAllowedNumericSeparatorSibling.bin; + let invalid = false; + let total = 0; + for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) { + const code = input.charCodeAt(pos); + let val; + if (code === 95 && allowNumSeparator !== "bail") { + const prev = input.charCodeAt(pos - 1); + const next = input.charCodeAt(pos + 1); + if (!allowNumSeparator) { + if (bailOnError) return { + n: null, + pos + }; + errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine); + } else if (Number.isNaN(next) || !isAllowedSibling(next) || forbiddenSiblings.has(prev) || forbiddenSiblings.has(next)) { + if (bailOnError) return { + n: null, + pos + }; + errors.unexpectedNumericSeparator(pos, lineStart, curLine); + } + + ++pos; + continue; + } + if (code >= 97) { + val = code - 97 + 10; + } else if (code >= 65) { + val = code - 65 + 10; + } else if (_isDigit(code)) { + val = code - 48; + } else { + val = Infinity; + } + if (val >= radix) { + if (val <= 9 && bailOnError) { + return { + n: null, + pos + }; + } else if (val <= 9 && errors.invalidDigit(pos, lineStart, curLine, radix)) { + val = 0; + } else if (forceLen) { + val = 0; + invalid = true; + } else { + break; + } + } + ++pos; + total = total * radix + val; + } + if (pos === start || len != null && pos - start !== len || invalid) { + return { + n: null, + pos + }; + } + return { + n: total, + pos + }; +} +function readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors) { + const ch = input.charCodeAt(pos); + let code; + if (ch === 123) { + ++pos; + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, input.indexOf("}", pos) - pos, true, throwOnInvalid, errors)); + ++pos; + if (code !== null && code > 0x10ffff) { + if (throwOnInvalid) { + errors.invalidCodePoint(pos, lineStart, curLine); + } else { + return { + code: null, + pos + }; + } + } + } else { + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, 4, false, throwOnInvalid, errors)); + } + return { + code, + pos + }; +} + +const _excluded = ["at"], + _excluded2 = ["at"]; +function buildPosition(pos, lineStart, curLine) { + return new Position(curLine, pos - lineStart, pos); +} +const VALID_REGEX_FLAGS = new Set([103, 109, 115, 105, 121, 117, 100, 118]); + +class Token { + constructor(state) { + this.type = state.type; + this.value = state.value; + this.start = state.start; + this.end = state.end; + this.loc = new SourceLocation(state.startLoc, state.endLoc); + } +} + +class Tokenizer extends CommentsParser { + + constructor(options, input) { + super(); + this.isLookahead = void 0; + this.tokens = []; + this.errorHandlers_readInt = { + invalidDigit: (pos, lineStart, curLine, radix) => { + if (!this.options.errorRecovery) return false; + this.raise(Errors.InvalidDigit, { + at: buildPosition(pos, lineStart, curLine), + radix + }); + return true; + }, + numericSeparatorInEscapeSequence: this.errorBuilder(Errors.NumericSeparatorInEscapeSequence), + unexpectedNumericSeparator: this.errorBuilder(Errors.UnexpectedNumericSeparator) + }; + this.errorHandlers_readCodePoint = Object.assign({}, this.errorHandlers_readInt, { + invalidEscapeSequence: this.errorBuilder(Errors.InvalidEscapeSequence), + invalidCodePoint: this.errorBuilder(Errors.InvalidCodePoint) + }); + this.errorHandlers_readStringContents_string = Object.assign({}, this.errorHandlers_readCodePoint, { + strictNumericEscape: (pos, lineStart, curLine) => { + this.recordStrictModeErrors(Errors.StrictNumericEscape, { + at: buildPosition(pos, lineStart, curLine) + }); + }, + unterminated: (pos, lineStart, curLine) => { + throw this.raise(Errors.UnterminatedString, { + at: buildPosition(pos - 1, lineStart, curLine) + }); + } + }); + this.errorHandlers_readStringContents_template = Object.assign({}, this.errorHandlers_readCodePoint, { + strictNumericEscape: this.errorBuilder(Errors.StrictNumericEscape), + unterminated: (pos, lineStart, curLine) => { + throw this.raise(Errors.UnterminatedTemplate, { + at: buildPosition(pos, lineStart, curLine) + }); + } + }); + this.state = new State(); + this.state.init(options); + this.input = input; + this.length = input.length; + this.isLookahead = false; + } + pushToken(token) { + this.tokens.length = this.state.tokensLength; + this.tokens.push(token); + ++this.state.tokensLength; + } + + next() { + this.checkKeywordEscapes(); + if (this.options.tokens) { + this.pushToken(new Token(this.state)); + } + this.state.lastTokStart = this.state.start; + this.state.lastTokEndLoc = this.state.endLoc; + this.state.lastTokStartLoc = this.state.startLoc; + this.nextToken(); + } + eat(type) { + if (this.match(type)) { + this.next(); + return true; + } else { + return false; + } + } + + match(type) { + return this.state.type === type; + } + + createLookaheadState(state) { + return { + pos: state.pos, + value: null, + type: state.type, + start: state.start, + end: state.end, + context: [this.curContext()], + inType: state.inType, + startLoc: state.startLoc, + lastTokEndLoc: state.lastTokEndLoc, + curLine: state.curLine, + lineStart: state.lineStart, + curPosition: state.curPosition + }; + } + + lookahead() { + const old = this.state; + this.state = this.createLookaheadState(old); + this.isLookahead = true; + this.nextToken(); + this.isLookahead = false; + const curr = this.state; + this.state = old; + return curr; + } + nextTokenStart() { + return this.nextTokenStartSince(this.state.pos); + } + nextTokenStartSince(pos) { + skipWhiteSpace.lastIndex = pos; + return skipWhiteSpace.test(this.input) ? skipWhiteSpace.lastIndex : pos; + } + lookaheadCharCode() { + return this.input.charCodeAt(this.nextTokenStart()); + } + codePointAtPos(pos) { + let cp = this.input.charCodeAt(pos); + if ((cp & 0xfc00) === 0xd800 && ++pos < this.input.length) { + const trail = this.input.charCodeAt(pos); + if ((trail & 0xfc00) === 0xdc00) { + cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff); + } + } + return cp; + } + + setStrict(strict) { + this.state.strict = strict; + if (strict) { + this.state.strictErrors.forEach(([toParseError, at]) => this.raise(toParseError, { + at + })); + this.state.strictErrors.clear(); + } + } + curContext() { + return this.state.context[this.state.context.length - 1]; + } + + nextToken() { + this.skipSpace(); + this.state.start = this.state.pos; + if (!this.isLookahead) this.state.startLoc = this.state.curPosition(); + if (this.state.pos >= this.length) { + this.finishToken(137); + return; + } + this.getTokenFromCode(this.codePointAtPos(this.state.pos)); + } + + skipBlockComment(commentEnd) { + let startLoc; + if (!this.isLookahead) startLoc = this.state.curPosition(); + const start = this.state.pos; + const end = this.input.indexOf(commentEnd, start + 2); + if (end === -1) { + throw this.raise(Errors.UnterminatedComment, { + at: this.state.curPosition() + }); + } + this.state.pos = end + commentEnd.length; + lineBreakG.lastIndex = start + 2; + while (lineBreakG.test(this.input) && lineBreakG.lastIndex <= end) { + ++this.state.curLine; + this.state.lineStart = lineBreakG.lastIndex; + } + + if (this.isLookahead) return; + + const comment = { + type: "CommentBlock", + value: this.input.slice(start + 2, end), + start, + end: end + commentEnd.length, + loc: new SourceLocation(startLoc, this.state.curPosition()) + }; + if (this.options.tokens) this.pushToken(comment); + return comment; + } + skipLineComment(startSkip) { + const start = this.state.pos; + let startLoc; + if (!this.isLookahead) startLoc = this.state.curPosition(); + let ch = this.input.charCodeAt(this.state.pos += startSkip); + if (this.state.pos < this.length) { + while (!isNewLine(ch) && ++this.state.pos < this.length) { + ch = this.input.charCodeAt(this.state.pos); + } + } + + if (this.isLookahead) return; + + const end = this.state.pos; + const value = this.input.slice(start + startSkip, end); + const comment = { + type: "CommentLine", + value, + start, + end, + loc: new SourceLocation(startLoc, this.state.curPosition()) + }; + if (this.options.tokens) this.pushToken(comment); + return comment; + } + + skipSpace() { + const spaceStart = this.state.pos; + const comments = []; + loop: while (this.state.pos < this.length) { + const ch = this.input.charCodeAt(this.state.pos); + switch (ch) { + case 32: + case 160: + case 9: + ++this.state.pos; + break; + case 13: + if (this.input.charCodeAt(this.state.pos + 1) === 10) { + ++this.state.pos; + } + case 10: + case 8232: + case 8233: + ++this.state.pos; + ++this.state.curLine; + this.state.lineStart = this.state.pos; + break; + case 47: + switch (this.input.charCodeAt(this.state.pos + 1)) { + case 42: + { + const comment = this.skipBlockComment("*/"); + if (comment !== undefined) { + this.addComment(comment); + if (this.options.attachComment) comments.push(comment); + } + break; + } + case 47: + { + const comment = this.skipLineComment(2); + if (comment !== undefined) { + this.addComment(comment); + if (this.options.attachComment) comments.push(comment); + } + break; + } + default: + break loop; + } + break; + default: + if (isWhitespace(ch)) { + ++this.state.pos; + } else if (ch === 45 && !this.inModule) { + const pos = this.state.pos; + if (this.input.charCodeAt(pos + 1) === 45 && this.input.charCodeAt(pos + 2) === 62 && (spaceStart === 0 || this.state.lineStart > spaceStart)) { + const comment = this.skipLineComment(3); + if (comment !== undefined) { + this.addComment(comment); + if (this.options.attachComment) comments.push(comment); + } + } else { + break loop; + } + } else if (ch === 60 && !this.inModule) { + const pos = this.state.pos; + if (this.input.charCodeAt(pos + 1) === 33 && this.input.charCodeAt(pos + 2) === 45 && this.input.charCodeAt(pos + 3) === 45) { + const comment = this.skipLineComment(4); + if (comment !== undefined) { + this.addComment(comment); + if (this.options.attachComment) comments.push(comment); + } + } else { + break loop; + } + } else { + break loop; + } + } + } + if (comments.length > 0) { + const end = this.state.pos; + const commentWhitespace = { + start: spaceStart, + end, + comments, + leadingNode: null, + trailingNode: null, + containingNode: null + }; + this.state.commentStack.push(commentWhitespace); + } + } + + finishToken(type, val) { + this.state.end = this.state.pos; + this.state.endLoc = this.state.curPosition(); + const prevType = this.state.type; + this.state.type = type; + this.state.value = val; + if (!this.isLookahead) { + this.updateContext(prevType); + } + } + replaceToken(type) { + this.state.type = type; + this.updateContext(); + } + + readToken_numberSign() { + if (this.state.pos === 0 && this.readToken_interpreter()) { + return; + } + const nextPos = this.state.pos + 1; + const next = this.codePointAtPos(nextPos); + if (next >= 48 && next <= 57) { + throw this.raise(Errors.UnexpectedDigitAfterHash, { + at: this.state.curPosition() + }); + } + if (next === 123 || next === 91 && this.hasPlugin("recordAndTuple")) { + this.expectPlugin("recordAndTuple"); + if (this.getPluginOption("recordAndTuple", "syntaxType") === "bar") { + throw this.raise(next === 123 ? Errors.RecordExpressionHashIncorrectStartSyntaxType : Errors.TupleExpressionHashIncorrectStartSyntaxType, { + at: this.state.curPosition() + }); + } + this.state.pos += 2; + if (next === 123) { + this.finishToken(7); + } else { + this.finishToken(1); + } + } else if (isIdentifierStart(next)) { + ++this.state.pos; + this.finishToken(136, this.readWord1(next)); + } else if (next === 92) { + ++this.state.pos; + this.finishToken(136, this.readWord1()); + } else { + this.finishOp(27, 1); + } + } + readToken_dot() { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next >= 48 && next <= 57) { + this.readNumber(true); + return; + } + if (next === 46 && this.input.charCodeAt(this.state.pos + 2) === 46) { + this.state.pos += 3; + this.finishToken(21); + } else { + ++this.state.pos; + this.finishToken(16); + } + } + readToken_slash() { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 61) { + this.finishOp(31, 2); + } else { + this.finishOp(56, 1); + } + } + readToken_interpreter() { + if (this.state.pos !== 0 || this.length < 2) return false; + let ch = this.input.charCodeAt(this.state.pos + 1); + if (ch !== 33) return false; + const start = this.state.pos; + this.state.pos += 1; + while (!isNewLine(ch) && ++this.state.pos < this.length) { + ch = this.input.charCodeAt(this.state.pos); + } + const value = this.input.slice(start + 2, this.state.pos); + this.finishToken(28, value); + return true; + } + readToken_mult_modulo(code) { + let type = code === 42 ? 55 : 54; + let width = 1; + let next = this.input.charCodeAt(this.state.pos + 1); + + if (code === 42 && next === 42) { + width++; + next = this.input.charCodeAt(this.state.pos + 2); + type = 57; + } + + if (next === 61 && !this.state.inType) { + width++; + type = code === 37 ? 33 : 30; + } + this.finishOp(type, width); + } + readToken_pipe_amp(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === code) { + if (this.input.charCodeAt(this.state.pos + 2) === 61) { + this.finishOp(30, 3); + } else { + this.finishOp(code === 124 ? 41 : 42, 2); + } + return; + } + if (code === 124) { + if (next === 62) { + this.finishOp(39, 2); + return; + } + if (this.hasPlugin("recordAndTuple") && next === 125) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(Errors.RecordExpressionBarIncorrectEndSyntaxType, { + at: this.state.curPosition() + }); + } + this.state.pos += 2; + this.finishToken(9); + return; + } + + if (this.hasPlugin("recordAndTuple") && next === 93) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(Errors.TupleExpressionBarIncorrectEndSyntaxType, { + at: this.state.curPosition() + }); + } + this.state.pos += 2; + this.finishToken(4); + return; + } + } + if (next === 61) { + this.finishOp(30, 2); + return; + } + this.finishOp(code === 124 ? 43 : 45, 1); + } + readToken_caret() { + const next = this.input.charCodeAt(this.state.pos + 1); + + if (next === 61 && !this.state.inType) { + this.finishOp(32, 2); + } + else if (next === 94 && + this.hasPlugin(["pipelineOperator", { + proposal: "hack", + topicToken: "^^" + }])) { + this.finishOp(37, 2); + + const lookaheadCh = this.input.codePointAt(this.state.pos); + if (lookaheadCh === 94) { + throw this.unexpected(); + } + } + else { + this.finishOp(44, 1); + } + } + readToken_atSign() { + const next = this.input.charCodeAt(this.state.pos + 1); + + if (next === 64 && this.hasPlugin(["pipelineOperator", { + proposal: "hack", + topicToken: "@@" + }])) { + this.finishOp(38, 2); + } + else { + this.finishOp(26, 1); + } + } + readToken_plus_min(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === code) { + this.finishOp(34, 2); + return; + } + if (next === 61) { + this.finishOp(30, 2); + } else { + this.finishOp(53, 1); + } + } + readToken_lt() { + const { + pos + } = this.state; + const next = this.input.charCodeAt(pos + 1); + if (next === 60) { + if (this.input.charCodeAt(pos + 2) === 61) { + this.finishOp(30, 3); + return; + } + this.finishOp(51, 2); + return; + } + if (next === 61) { + this.finishOp(49, 2); + return; + } + this.finishOp(47, 1); + } + readToken_gt() { + const { + pos + } = this.state; + const next = this.input.charCodeAt(pos + 1); + if (next === 62) { + const size = this.input.charCodeAt(pos + 2) === 62 ? 3 : 2; + if (this.input.charCodeAt(pos + size) === 61) { + this.finishOp(30, size + 1); + return; + } + this.finishOp(52, size); + return; + } + if (next === 61) { + this.finishOp(49, 2); + return; + } + this.finishOp(48, 1); + } + readToken_eq_excl(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 61) { + this.finishOp(46, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2); + return; + } + if (code === 61 && next === 62) { + this.state.pos += 2; + this.finishToken(19); + return; + } + this.finishOp(code === 61 ? 29 : 35, 1); + } + readToken_question() { + const next = this.input.charCodeAt(this.state.pos + 1); + const next2 = this.input.charCodeAt(this.state.pos + 2); + if (next === 63) { + if (next2 === 61) { + this.finishOp(30, 3); + } else { + this.finishOp(40, 2); + } + } else if (next === 46 && !(next2 >= 48 && next2 <= 57)) { + this.state.pos += 2; + this.finishToken(18); + } else { + ++this.state.pos; + this.finishToken(17); + } + } + getTokenFromCode(code) { + switch (code) { + + case 46: + this.readToken_dot(); + return; + + case 40: + ++this.state.pos; + this.finishToken(10); + return; + case 41: + ++this.state.pos; + this.finishToken(11); + return; + case 59: + ++this.state.pos; + this.finishToken(13); + return; + case 44: + ++this.state.pos; + this.finishToken(12); + return; + case 91: + if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(Errors.TupleExpressionBarIncorrectStartSyntaxType, { + at: this.state.curPosition() + }); + } + + this.state.pos += 2; + this.finishToken(2); + } else { + ++this.state.pos; + this.finishToken(0); + } + return; + case 93: + ++this.state.pos; + this.finishToken(3); + return; + case 123: + if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(Errors.RecordExpressionBarIncorrectStartSyntaxType, { + at: this.state.curPosition() + }); + } + + this.state.pos += 2; + this.finishToken(6); + } else { + ++this.state.pos; + this.finishToken(5); + } + return; + case 125: + ++this.state.pos; + this.finishToken(8); + return; + case 58: + if (this.hasPlugin("functionBind") && this.input.charCodeAt(this.state.pos + 1) === 58) { + this.finishOp(15, 2); + } else { + ++this.state.pos; + this.finishToken(14); + } + return; + case 63: + this.readToken_question(); + return; + case 96: + this.readTemplateToken(); + return; + case 48: + { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 120 || next === 88) { + this.readRadixNumber(16); + return; + } + if (next === 111 || next === 79) { + this.readRadixNumber(8); + return; + } + if (next === 98 || next === 66) { + this.readRadixNumber(2); + return; + } + } + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + this.readNumber(false); + return; + + case 34: + case 39: + this.readString(code); + return; + + case 47: + this.readToken_slash(); + return; + case 37: + case 42: + this.readToken_mult_modulo(code); + return; + case 124: + case 38: + this.readToken_pipe_amp(code); + return; + case 94: + this.readToken_caret(); + return; + case 43: + case 45: + this.readToken_plus_min(code); + return; + case 60: + this.readToken_lt(); + return; + case 62: + this.readToken_gt(); + return; + case 61: + case 33: + this.readToken_eq_excl(code); + return; + case 126: + this.finishOp(36, 1); + return; + case 64: + this.readToken_atSign(); + return; + case 35: + this.readToken_numberSign(); + return; + case 92: + this.readWord(); + return; + default: + if (isIdentifierStart(code)) { + this.readWord(code); + return; + } + } + throw this.raise(Errors.InvalidOrUnexpectedToken, { + at: this.state.curPosition(), + unexpected: String.fromCodePoint(code) + }); + } + finishOp(type, size) { + const str = this.input.slice(this.state.pos, this.state.pos + size); + this.state.pos += size; + this.finishToken(type, str); + } + readRegexp() { + const startLoc = this.state.startLoc; + const start = this.state.start + 1; + let escaped, inClass; + let { + pos + } = this.state; + for (;; ++pos) { + if (pos >= this.length) { + throw this.raise(Errors.UnterminatedRegExp, { + at: createPositionWithColumnOffset(startLoc, 1) + }); + } + const ch = this.input.charCodeAt(pos); + if (isNewLine(ch)) { + throw this.raise(Errors.UnterminatedRegExp, { + at: createPositionWithColumnOffset(startLoc, 1) + }); + } + if (escaped) { + escaped = false; + } else { + if (ch === 91) { + inClass = true; + } else if (ch === 93 && inClass) { + inClass = false; + } else if (ch === 47 && !inClass) { + break; + } + escaped = ch === 92; + } + } + const content = this.input.slice(start, pos); + ++pos; + let mods = ""; + const nextPos = () => + createPositionWithColumnOffset(startLoc, pos + 2 - start); + while (pos < this.length) { + const cp = this.codePointAtPos(pos); + const char = String.fromCharCode(cp); + + if (VALID_REGEX_FLAGS.has(cp)) { + if (cp === 118) { + this.expectPlugin("regexpUnicodeSets", nextPos()); + if (mods.includes("u")) { + this.raise(Errors.IncompatibleRegExpUVFlags, { + at: nextPos() + }); + } + } else if (cp === 117) { + if (mods.includes("v")) { + this.raise(Errors.IncompatibleRegExpUVFlags, { + at: nextPos() + }); + } + } + if (mods.includes(char)) { + this.raise(Errors.DuplicateRegExpFlags, { + at: nextPos() + }); + } + } else if (isIdentifierChar(cp) || cp === 92) { + this.raise(Errors.MalformedRegExpFlags, { + at: nextPos() + }); + } else { + break; + } + ++pos; + mods += char; + } + this.state.pos = pos; + this.finishToken(135, { + pattern: content, + flags: mods + }); + } + + readInt(radix, len, forceLen = false, allowNumSeparator = true) { + const { + n, + pos + } = readInt(this.input, this.state.pos, this.state.lineStart, this.state.curLine, radix, len, forceLen, allowNumSeparator, this.errorHandlers_readInt, false); + this.state.pos = pos; + return n; + } + readRadixNumber(radix) { + const startLoc = this.state.curPosition(); + let isBigInt = false; + this.state.pos += 2; + const val = this.readInt(radix); + if (val == null) { + this.raise(Errors.InvalidDigit, { + at: createPositionWithColumnOffset(startLoc, 2), + radix + }); + } + const next = this.input.charCodeAt(this.state.pos); + if (next === 110) { + ++this.state.pos; + isBigInt = true; + } else if (next === 109) { + throw this.raise(Errors.InvalidDecimal, { + at: startLoc + }); + } + if (isIdentifierStart(this.codePointAtPos(this.state.pos))) { + throw this.raise(Errors.NumberIdentifier, { + at: this.state.curPosition() + }); + } + if (isBigInt) { + const str = this.input.slice(startLoc.index, this.state.pos).replace(/[_n]/g, ""); + this.finishToken(133, str); + return; + } + this.finishToken(132, val); + } + + readNumber(startsWithDot) { + const start = this.state.pos; + const startLoc = this.state.curPosition(); + let isFloat = false; + let isBigInt = false; + let isDecimal = false; + let hasExponent = false; + let isOctal = false; + if (!startsWithDot && this.readInt(10) === null) { + this.raise(Errors.InvalidNumber, { + at: this.state.curPosition() + }); + } + const hasLeadingZero = this.state.pos - start >= 2 && this.input.charCodeAt(start) === 48; + if (hasLeadingZero) { + const integer = this.input.slice(start, this.state.pos); + this.recordStrictModeErrors(Errors.StrictOctalLiteral, { + at: startLoc + }); + if (!this.state.strict) { + const underscorePos = integer.indexOf("_"); + if (underscorePos > 0) { + this.raise(Errors.ZeroDigitNumericSeparator, { + at: createPositionWithColumnOffset(startLoc, underscorePos) + }); + } + } + isOctal = hasLeadingZero && !/[89]/.test(integer); + } + let next = this.input.charCodeAt(this.state.pos); + if (next === 46 && !isOctal) { + ++this.state.pos; + this.readInt(10); + isFloat = true; + next = this.input.charCodeAt(this.state.pos); + } + if ((next === 69 || next === 101) && !isOctal) { + next = this.input.charCodeAt(++this.state.pos); + if (next === 43 || next === 45) { + ++this.state.pos; + } + if (this.readInt(10) === null) { + this.raise(Errors.InvalidOrMissingExponent, { + at: startLoc + }); + } + isFloat = true; + hasExponent = true; + next = this.input.charCodeAt(this.state.pos); + } + if (next === 110) { + if (isFloat || hasLeadingZero) { + this.raise(Errors.InvalidBigIntLiteral, { + at: startLoc + }); + } + ++this.state.pos; + isBigInt = true; + } + if (next === 109) { + this.expectPlugin("decimal", this.state.curPosition()); + if (hasExponent || hasLeadingZero) { + this.raise(Errors.InvalidDecimal, { + at: startLoc + }); + } + ++this.state.pos; + isDecimal = true; + } + if (isIdentifierStart(this.codePointAtPos(this.state.pos))) { + throw this.raise(Errors.NumberIdentifier, { + at: this.state.curPosition() + }); + } + + const str = this.input.slice(start, this.state.pos).replace(/[_mn]/g, ""); + if (isBigInt) { + this.finishToken(133, str); + return; + } + if (isDecimal) { + this.finishToken(134, str); + return; + } + const val = isOctal ? parseInt(str, 8) : parseFloat(str); + this.finishToken(132, val); + } + + readCodePoint(throwOnInvalid) { + const { + code, + pos + } = readCodePoint(this.input, this.state.pos, this.state.lineStart, this.state.curLine, throwOnInvalid, this.errorHandlers_readCodePoint); + this.state.pos = pos; + return code; + } + readString(quote) { + const { + str, + pos, + curLine, + lineStart + } = readStringContents(quote === 34 ? "double" : "single", this.input, this.state.pos + 1, + this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_string); + this.state.pos = pos + 1; + this.state.lineStart = lineStart; + this.state.curLine = curLine; + this.finishToken(131, str); + } + + readTemplateContinuation() { + if (!this.match(8)) { + this.unexpected(null, 8); + } + this.state.pos--; + this.readTemplateToken(); + } + + readTemplateToken() { + const opening = this.input[this.state.pos]; + const { + str, + firstInvalidLoc, + pos, + curLine, + lineStart + } = readStringContents("template", this.input, this.state.pos + 1, + this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_template); + this.state.pos = pos + 1; + this.state.lineStart = lineStart; + this.state.curLine = curLine; + if (firstInvalidLoc) { + this.state.firstInvalidTemplateEscapePos = new Position(firstInvalidLoc.curLine, firstInvalidLoc.pos - firstInvalidLoc.lineStart, firstInvalidLoc.pos); + } + if (this.input.codePointAt(pos) === 96) { + this.finishToken(24, firstInvalidLoc ? null : opening + str + "`"); + } else { + this.state.pos++; + this.finishToken(25, firstInvalidLoc ? null : opening + str + "${"); + } + } + recordStrictModeErrors(toParseError, { + at + }) { + const index = at.index; + if (this.state.strict && !this.state.strictErrors.has(index)) { + this.raise(toParseError, { + at + }); + } else { + this.state.strictErrors.set(index, [toParseError, at]); + } + } + + readWord1(firstCode) { + this.state.containsEsc = false; + let word = ""; + const start = this.state.pos; + let chunkStart = this.state.pos; + if (firstCode !== undefined) { + this.state.pos += firstCode <= 0xffff ? 1 : 2; + } + while (this.state.pos < this.length) { + const ch = this.codePointAtPos(this.state.pos); + if (isIdentifierChar(ch)) { + this.state.pos += ch <= 0xffff ? 1 : 2; + } else if (ch === 92) { + this.state.containsEsc = true; + word += this.input.slice(chunkStart, this.state.pos); + const escStart = this.state.curPosition(); + const identifierCheck = this.state.pos === start ? isIdentifierStart : isIdentifierChar; + if (this.input.charCodeAt(++this.state.pos) !== 117) { + this.raise(Errors.MissingUnicodeEscape, { + at: this.state.curPosition() + }); + chunkStart = this.state.pos - 1; + continue; + } + ++this.state.pos; + const esc = this.readCodePoint(true); + if (esc !== null) { + if (!identifierCheck(esc)) { + this.raise(Errors.EscapedCharNotAnIdentifier, { + at: escStart + }); + } + word += String.fromCodePoint(esc); + } + chunkStart = this.state.pos; + } else { + break; + } + } + return word + this.input.slice(chunkStart, this.state.pos); + } + + readWord(firstCode) { + const word = this.readWord1(firstCode); + const type = keywords$1.get(word); + if (type !== undefined) { + this.finishToken(type, tokenLabelName(type)); + } else { + this.finishToken(130, word); + } + } + checkKeywordEscapes() { + const { + type + } = this.state; + if (tokenIsKeyword(type) && this.state.containsEsc) { + this.raise(Errors.InvalidEscapedReservedWord, { + at: this.state.startLoc, + reservedWord: tokenLabelName(type) + }); + } + } + + raise(toParseError, raiseProperties) { + const { + at + } = raiseProperties, + details = _objectWithoutPropertiesLoose(raiseProperties, _excluded); + const loc = at instanceof Position ? at : at.loc.start; + const error = toParseError({ + loc, + details + }); + if (!this.options.errorRecovery) throw error; + if (!this.isLookahead) this.state.errors.push(error); + return error; + } + + raiseOverwrite(toParseError, raiseProperties) { + const { + at + } = raiseProperties, + details = _objectWithoutPropertiesLoose(raiseProperties, _excluded2); + const loc = at instanceof Position ? at : at.loc.start; + const pos = loc.index; + const errors = this.state.errors; + for (let i = errors.length - 1; i >= 0; i--) { + const error = errors[i]; + if (error.loc.index === pos) { + return errors[i] = toParseError({ + loc, + details + }); + } + if (error.loc.index < pos) break; + } + return this.raise(toParseError, raiseProperties); + } + + updateContext(prevType) {} + + unexpected(loc, type) { + throw this.raise(Errors.UnexpectedToken, { + expected: type ? tokenLabelName(type) : null, + at: loc != null ? loc : this.state.startLoc + }); + } + expectPlugin(pluginName, loc) { + if (this.hasPlugin(pluginName)) { + return true; + } + throw this.raise(Errors.MissingPlugin, { + at: loc != null ? loc : this.state.startLoc, + missingPlugin: [pluginName] + }); + } + expectOnePlugin(pluginNames) { + if (!pluginNames.some(name => this.hasPlugin(name))) { + throw this.raise(Errors.MissingOneOfPlugins, { + at: this.state.startLoc, + missingPlugin: pluginNames + }); + } + } + errorBuilder(error) { + return (pos, lineStart, curLine) => { + this.raise(error, { + at: buildPosition(pos, lineStart, curLine) + }); + }; + } +} + +class ClassScope { + constructor() { + this.privateNames = new Set(); + this.loneAccessors = new Map(); + this.undefinedPrivateNames = new Map(); + } +} +class ClassScopeHandler { + constructor(parser) { + this.parser = void 0; + this.stack = []; + this.undefinedPrivateNames = new Map(); + this.parser = parser; + } + current() { + return this.stack[this.stack.length - 1]; + } + enter() { + this.stack.push(new ClassScope()); + } + exit() { + const oldClassScope = this.stack.pop(); + + const current = this.current(); + + for (const [name, loc] of Array.from(oldClassScope.undefinedPrivateNames)) { + if (current) { + if (!current.undefinedPrivateNames.has(name)) { + current.undefinedPrivateNames.set(name, loc); + } + } else { + this.parser.raise(Errors.InvalidPrivateFieldResolution, { + at: loc, + identifierName: name + }); + } + } + } + declarePrivateName(name, elementType, loc) { + const { + privateNames, + loneAccessors, + undefinedPrivateNames + } = this.current(); + let redefined = privateNames.has(name); + if (elementType & CLASS_ELEMENT_KIND_ACCESSOR) { + const accessor = redefined && loneAccessors.get(name); + if (accessor) { + const oldStatic = accessor & CLASS_ELEMENT_FLAG_STATIC; + const newStatic = elementType & CLASS_ELEMENT_FLAG_STATIC; + const oldKind = accessor & CLASS_ELEMENT_KIND_ACCESSOR; + const newKind = elementType & CLASS_ELEMENT_KIND_ACCESSOR; + + redefined = oldKind === newKind || oldStatic !== newStatic; + if (!redefined) loneAccessors.delete(name); + } else if (!redefined) { + loneAccessors.set(name, elementType); + } + } + if (redefined) { + this.parser.raise(Errors.PrivateNameRedeclaration, { + at: loc, + identifierName: name + }); + } + privateNames.add(name); + undefinedPrivateNames.delete(name); + } + usePrivateName(name, loc) { + let classScope; + for (classScope of this.stack) { + if (classScope.privateNames.has(name)) return; + } + if (classScope) { + classScope.undefinedPrivateNames.set(name, loc); + } else { + this.parser.raise(Errors.InvalidPrivateFieldResolution, { + at: loc, + identifierName: name + }); + } + } +} + +const kExpression = 0, + kMaybeArrowParameterDeclaration = 1, + kMaybeAsyncArrowParameterDeclaration = 2, + kParameterDeclaration = 3; +class ExpressionScope { + constructor(type = kExpression) { + this.type = void 0; + this.type = type; + } + canBeArrowParameterDeclaration() { + return this.type === kMaybeAsyncArrowParameterDeclaration || this.type === kMaybeArrowParameterDeclaration; + } + isCertainlyParameterDeclaration() { + return this.type === kParameterDeclaration; + } +} +class ArrowHeadParsingScope extends ExpressionScope { + constructor(type) { + super(type); + this.declarationErrors = new Map(); + } + recordDeclarationError(ParsingErrorClass, { + at + }) { + const index = at.index; + this.declarationErrors.set(index, [ParsingErrorClass, at]); + } + clearDeclarationError(index) { + this.declarationErrors.delete(index); + } + iterateErrors(iterator) { + this.declarationErrors.forEach(iterator); + } +} +class ExpressionScopeHandler { + constructor(parser) { + this.parser = void 0; + this.stack = [new ExpressionScope()]; + this.parser = parser; + } + enter(scope) { + this.stack.push(scope); + } + exit() { + this.stack.pop(); + } + + recordParameterInitializerError(toParseError, { + at: node + }) { + const origin = { + at: node.loc.start + }; + const { + stack + } = this; + let i = stack.length - 1; + let scope = stack[i]; + while (!scope.isCertainlyParameterDeclaration()) { + if (scope.canBeArrowParameterDeclaration()) { + scope.recordDeclarationError(toParseError, origin); + } else { + return; + } + scope = stack[--i]; + } + this.parser.raise(toParseError, origin); + } + + recordArrowParameterBindingError(error, { + at: node + }) { + const { + stack + } = this; + const scope = stack[stack.length - 1]; + const origin = { + at: node.loc.start + }; + if (scope.isCertainlyParameterDeclaration()) { + this.parser.raise(error, origin); + } else if (scope.canBeArrowParameterDeclaration()) { + scope.recordDeclarationError(error, origin); + } else { + return; + } + } + + recordAsyncArrowParametersError({ + at + }) { + const { + stack + } = this; + let i = stack.length - 1; + let scope = stack[i]; + while (scope.canBeArrowParameterDeclaration()) { + if (scope.type === kMaybeAsyncArrowParameterDeclaration) { + scope.recordDeclarationError(Errors.AwaitBindingIdentifier, { + at + }); + } + scope = stack[--i]; + } + } + validateAsPattern() { + const { + stack + } = this; + const currentScope = stack[stack.length - 1]; + if (!currentScope.canBeArrowParameterDeclaration()) return; + currentScope.iterateErrors(([toParseError, loc]) => { + this.parser.raise(toParseError, { + at: loc + }); + let i = stack.length - 2; + let scope = stack[i]; + while (scope.canBeArrowParameterDeclaration()) { + scope.clearDeclarationError(loc.index); + scope = stack[--i]; + } + }); + } +} +function newParameterDeclarationScope() { + return new ExpressionScope(kParameterDeclaration); +} +function newArrowHeadScope() { + return new ArrowHeadParsingScope(kMaybeArrowParameterDeclaration); +} +function newAsyncArrowScope() { + return new ArrowHeadParsingScope(kMaybeAsyncArrowParameterDeclaration); +} +function newExpressionScope() { + return new ExpressionScope(); +} + +const + PARAM = 0b0000, + PARAM_YIELD = 0b0001, + PARAM_AWAIT = 0b0010, + PARAM_RETURN = 0b0100, + PARAM_IN = 0b1000; + +class ProductionParameterHandler { + constructor() { + this.stacks = []; + } + enter(flags) { + this.stacks.push(flags); + } + exit() { + this.stacks.pop(); + } + currentFlags() { + return this.stacks[this.stacks.length - 1]; + } + get hasAwait() { + return (this.currentFlags() & PARAM_AWAIT) > 0; + } + get hasYield() { + return (this.currentFlags() & PARAM_YIELD) > 0; + } + get hasReturn() { + return (this.currentFlags() & PARAM_RETURN) > 0; + } + get hasIn() { + return (this.currentFlags() & PARAM_IN) > 0; + } +} +function functionFlags(isAsync, isGenerator) { + return (isAsync ? PARAM_AWAIT : 0) | (isGenerator ? PARAM_YIELD : 0); +} + +class UtilParser extends Tokenizer { + + addExtra(node, key, value, enumerable = true) { + if (!node) return; + const extra = node.extra = node.extra || {}; + if (enumerable) { + extra[key] = value; + } else { + Object.defineProperty(extra, key, { + enumerable, + value + }); + } + } + + isContextual(token) { + return this.state.type === token && !this.state.containsEsc; + } + isUnparsedContextual(nameStart, name) { + const nameEnd = nameStart + name.length; + if (this.input.slice(nameStart, nameEnd) === name) { + const nextCh = this.input.charCodeAt(nameEnd); + return !(isIdentifierChar(nextCh) || + (nextCh & 0xfc00) === 0xd800); + } + return false; + } + isLookaheadContextual(name) { + const next = this.nextTokenStart(); + return this.isUnparsedContextual(next, name); + } + + eatContextual(token) { + if (this.isContextual(token)) { + this.next(); + return true; + } + return false; + } + + expectContextual(token, toParseError) { + if (!this.eatContextual(token)) { + if (toParseError != null) { + throw this.raise(toParseError, { + at: this.state.startLoc + }); + } + throw this.unexpected(null, token); + } + } + + canInsertSemicolon() { + return this.match(137) || this.match(8) || this.hasPrecedingLineBreak(); + } + hasPrecedingLineBreak() { + return lineBreak.test(this.input.slice(this.state.lastTokEndLoc.index, this.state.start)); + } + hasFollowingLineBreak() { + skipWhiteSpaceToLineBreak.lastIndex = this.state.end; + return skipWhiteSpaceToLineBreak.test(this.input); + } + isLineTerminator() { + return this.eat(13) || this.canInsertSemicolon(); + } + + semicolon(allowAsi = true) { + if (allowAsi ? this.isLineTerminator() : this.eat(13)) return; + this.raise(Errors.MissingSemicolon, { + at: this.state.lastTokEndLoc + }); + } + + expect(type, loc) { + this.eat(type) || this.unexpected(loc, type); + } + + tryParse(fn, oldState = this.state.clone()) { + const abortSignal = { + node: null + }; + try { + const node = fn((node = null) => { + abortSignal.node = node; + throw abortSignal; + }); + if (this.state.errors.length > oldState.errors.length) { + const failState = this.state; + this.state = oldState; + this.state.tokensLength = failState.tokensLength; + return { + node, + error: failState.errors[oldState.errors.length], + thrown: false, + aborted: false, + failState + }; + } + return { + node, + error: null, + thrown: false, + aborted: false, + failState: null + }; + } catch (error) { + const failState = this.state; + this.state = oldState; + if (error instanceof SyntaxError) { + return { + node: null, + error, + thrown: true, + aborted: false, + failState + }; + } + if (error === abortSignal) { + return { + node: abortSignal.node, + error: null, + thrown: false, + aborted: true, + failState + }; + } + throw error; + } + } + checkExpressionErrors(refExpressionErrors, andThrow) { + if (!refExpressionErrors) return false; + const { + shorthandAssignLoc, + doubleProtoLoc, + privateKeyLoc, + optionalParametersLoc + } = refExpressionErrors; + const hasErrors = !!shorthandAssignLoc || !!doubleProtoLoc || !!optionalParametersLoc || !!privateKeyLoc; + if (!andThrow) { + return hasErrors; + } + if (shorthandAssignLoc != null) { + this.raise(Errors.InvalidCoverInitializedName, { + at: shorthandAssignLoc + }); + } + if (doubleProtoLoc != null) { + this.raise(Errors.DuplicateProto, { + at: doubleProtoLoc + }); + } + if (privateKeyLoc != null) { + this.raise(Errors.UnexpectedPrivateField, { + at: privateKeyLoc + }); + } + if (optionalParametersLoc != null) { + this.unexpected(optionalParametersLoc); + } + } + + isLiteralPropertyName() { + return tokenIsLiteralPropertyName(this.state.type); + } + + isPrivateName(node) { + return node.type === "PrivateName"; + } + + getPrivateNameSV(node) { + return node.id.name; + } + + hasPropertyAsPrivateName(node) { + return (node.type === "MemberExpression" || node.type === "OptionalMemberExpression") && this.isPrivateName(node.property); + } + isOptionalChain(node) { + return node.type === "OptionalMemberExpression" || node.type === "OptionalCallExpression"; + } + isObjectProperty(node) { + return node.type === "ObjectProperty"; + } + isObjectMethod(node) { + return node.type === "ObjectMethod"; + } + initializeScopes(inModule = this.options.sourceType === "module") { + const oldLabels = this.state.labels; + this.state.labels = []; + const oldExportedIdentifiers = this.exportedIdentifiers; + this.exportedIdentifiers = new Set(); + + const oldInModule = this.inModule; + this.inModule = inModule; + const oldScope = this.scope; + const ScopeHandler = this.getScopeHandler(); + this.scope = new ScopeHandler(this, inModule); + const oldProdParam = this.prodParam; + this.prodParam = new ProductionParameterHandler(); + const oldClassScope = this.classScope; + this.classScope = new ClassScopeHandler(this); + const oldExpressionScope = this.expressionScope; + this.expressionScope = new ExpressionScopeHandler(this); + return () => { + this.state.labels = oldLabels; + this.exportedIdentifiers = oldExportedIdentifiers; + + this.inModule = oldInModule; + this.scope = oldScope; + this.prodParam = oldProdParam; + this.classScope = oldClassScope; + this.expressionScope = oldExpressionScope; + }; + } + enterInitialScopes() { + let paramFlags = PARAM; + if (this.inModule) { + paramFlags |= PARAM_AWAIT; + } + this.scope.enter(SCOPE_PROGRAM); + this.prodParam.enter(paramFlags); + } + checkDestructuringPrivate(refExpressionErrors) { + const { + privateKeyLoc + } = refExpressionErrors; + if (privateKeyLoc !== null) { + this.expectPlugin("destructuringPrivate", privateKeyLoc); + } + } +} + +class ExpressionErrors { + constructor() { + this.shorthandAssignLoc = null; + this.doubleProtoLoc = null; + this.privateKeyLoc = null; + this.optionalParametersLoc = null; + } +} + +class Node { + constructor(parser, pos, loc) { + this.type = ""; + this.start = pos; + this.end = 0; + this.loc = new SourceLocation(loc); + if (parser != null && parser.options.ranges) this.range = [pos, 0]; + if (parser != null && parser.filename) this.loc.filename = parser.filename; + } +} +const NodePrototype = Node.prototype; +{ + NodePrototype.__clone = function () { + const newNode = new Node(undefined, this.start, this.loc.start); + const keys = Object.keys(this); + for (let i = 0, length = keys.length; i < length; i++) { + const key = keys[i]; + if (key !== "leadingComments" && key !== "trailingComments" && key !== "innerComments") { + newNode[key] = this[key]; + } + } + return newNode; + }; +} +function clonePlaceholder(node) { + return cloneIdentifier(node); +} +function cloneIdentifier(node) { + const { + type, + start, + end, + loc, + range, + extra, + name + } = node; + const cloned = Object.create(NodePrototype); + cloned.type = type; + cloned.start = start; + cloned.end = end; + cloned.loc = loc; + cloned.range = range; + cloned.extra = extra; + cloned.name = name; + if (type === "Placeholder") { + cloned.expectedNode = node.expectedNode; + } + return cloned; +} +function cloneStringLiteral(node) { + const { + type, + start, + end, + loc, + range, + extra + } = node; + if (type === "Placeholder") { + return clonePlaceholder(node); + } + const cloned = Object.create(NodePrototype); + cloned.type = type; + cloned.start = start; + cloned.end = end; + cloned.loc = loc; + cloned.range = range; + if (node.raw !== undefined) { + cloned.raw = node.raw; + } else { + cloned.extra = extra; + } + cloned.value = node.value; + return cloned; +} +class NodeUtils extends UtilParser { + startNode() { + return new Node(this, this.state.start, this.state.startLoc); + } + startNodeAt(loc) { + return new Node(this, loc.index, loc); + } + + startNodeAtNode(type) { + return this.startNodeAt(type.loc.start); + } + + finishNode(node, type) { + return this.finishNodeAt(node, type, this.state.lastTokEndLoc); + } + + finishNodeAt(node, type, endLoc) { + node.type = type; + node.end = endLoc.index; + node.loc.end = endLoc; + if (this.options.ranges) node.range[1] = endLoc.index; + if (this.options.attachComment) this.processComment(node); + return node; + } + resetStartLocation(node, startLoc) { + node.start = startLoc.index; + node.loc.start = startLoc; + if (this.options.ranges) node.range[0] = startLoc.index; + } + resetEndLocation(node, endLoc = this.state.lastTokEndLoc) { + node.end = endLoc.index; + node.loc.end = endLoc; + if (this.options.ranges) node.range[1] = endLoc.index; + } + + resetStartLocationFromNode(node, locationNode) { + this.resetStartLocation(node, locationNode.loc.start); + } +} + +const reservedTypes = new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "static", "string", "true", "typeof", "void"]); + +const FlowErrors = ParseErrorEnum`flow`({ + AmbiguousConditionalArrow: "Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.", + AmbiguousDeclareModuleKind: "Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.", + AssignReservedType: ({ + reservedType + }) => `Cannot overwrite reserved type ${reservedType}.`, + DeclareClassElement: "The `declare` modifier can only appear on class fields.", + DeclareClassFieldInitializer: "Initializers are not allowed in fields with the `declare` modifier.", + DuplicateDeclareModuleExports: "Duplicate `declare module.exports` statement.", + EnumBooleanMemberNotInitialized: ({ + memberName, + enumName + }) => `Boolean enum members need to be initialized. Use either \`${memberName} = true,\` or \`${memberName} = false,\` in enum \`${enumName}\`.`, + EnumDuplicateMemberName: ({ + memberName, + enumName + }) => `Enum member names need to be unique, but the name \`${memberName}\` has already been used before in enum \`${enumName}\`.`, + EnumInconsistentMemberValues: ({ + enumName + }) => `Enum \`${enumName}\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.`, + EnumInvalidExplicitType: ({ + invalidEnumType, + enumName + }) => `Enum type \`${invalidEnumType}\` is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${enumName}\`.`, + EnumInvalidExplicitTypeUnknownSupplied: ({ + enumName + }) => `Supplied enum type is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${enumName}\`.`, + EnumInvalidMemberInitializerPrimaryType: ({ + enumName, + memberName, + explicitType + }) => `Enum \`${enumName}\` has type \`${explicitType}\`, so the initializer of \`${memberName}\` needs to be a ${explicitType} literal.`, + EnumInvalidMemberInitializerSymbolType: ({ + enumName, + memberName + }) => `Symbol enum members cannot be initialized. Use \`${memberName},\` in enum \`${enumName}\`.`, + EnumInvalidMemberInitializerUnknownType: ({ + enumName, + memberName + }) => `The enum member initializer for \`${memberName}\` needs to be a literal (either a boolean, number, or string) in enum \`${enumName}\`.`, + EnumInvalidMemberName: ({ + enumName, + memberName, + suggestion + }) => `Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \`${memberName}\`, consider using \`${suggestion}\`, in enum \`${enumName}\`.`, + EnumNumberMemberNotInitialized: ({ + enumName, + memberName + }) => `Number enum members need to be initialized, e.g. \`${memberName} = 1\` in enum \`${enumName}\`.`, + EnumStringMemberInconsistentlyInitailized: ({ + enumName + }) => `String enum members need to consistently either all use initializers, or use no initializers, in enum \`${enumName}\`.`, + GetterMayNotHaveThisParam: "A getter cannot have a `this` parameter.", + ImportReflectionHasImportType: "An `import module` declaration can not use `type` or `typeof` keyword.", + ImportTypeShorthandOnlyInPureImport: "The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.", + InexactInsideExact: "Explicit inexact syntax cannot appear inside an explicit exact object type.", + InexactInsideNonObject: "Explicit inexact syntax cannot appear in class or interface definitions.", + InexactVariance: "Explicit inexact syntax cannot have variance.", + InvalidNonTypeImportInDeclareModule: "Imports within a `declare module` body must always be `import type` or `import typeof`.", + MissingTypeParamDefault: "Type parameter declaration needs a default, since a preceding type parameter declaration has a default.", + NestedDeclareModule: "`declare module` cannot be used inside another `declare module`.", + NestedFlowComment: "Cannot have a flow comment inside another flow comment.", + PatternIsOptional: Object.assign({ + message: "A binding pattern parameter cannot be optional in an implementation signature." + }, { + reasonCode: "OptionalBindingPattern" + }), + SetterMayNotHaveThisParam: "A setter cannot have a `this` parameter.", + SpreadVariance: "Spread properties cannot have variance.", + ThisParamAnnotationRequired: "A type annotation is required for the `this` parameter.", + ThisParamBannedInConstructor: "Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.", + ThisParamMayNotBeOptional: "The `this` parameter cannot be optional.", + ThisParamMustBeFirst: "The `this` parameter must be the first function parameter.", + ThisParamNoDefault: "The `this` parameter may not have a default value.", + TypeBeforeInitializer: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.", + TypeCastInPattern: "The type cast expression is expected to be wrapped with parenthesis.", + UnexpectedExplicitInexactInObject: "Explicit inexact syntax must appear at the end of an inexact object.", + UnexpectedReservedType: ({ + reservedType + }) => `Unexpected reserved type ${reservedType}.`, + UnexpectedReservedUnderscore: "`_` is only allowed as a type argument to call or new.", + UnexpectedSpaceBetweenModuloChecks: "Spaces between `%` and `checks` are not allowed here.", + UnexpectedSpreadType: "Spread operator cannot appear in class or interface definitions.", + UnexpectedSubtractionOperand: 'Unexpected token, expected "number" or "bigint".', + UnexpectedTokenAfterTypeParameter: "Expected an arrow function after this type parameter declaration.", + UnexpectedTypeParameterBeforeAsyncArrowFunction: "Type parameters must come after the async keyword, e.g. instead of ` async () => {}`, use `async () => {}`.", + UnsupportedDeclareExportKind: ({ + unsupportedExportKind, + suggestion + }) => `\`declare export ${unsupportedExportKind}\` is not supported. Use \`${suggestion}\` instead.`, + UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module.", + UnterminatedFlowComment: "Unterminated flow-comment." +}); + +function isEsModuleType(bodyElement) { + return bodyElement.type === "DeclareExportAllDeclaration" || bodyElement.type === "DeclareExportDeclaration" && (!bodyElement.declaration || bodyElement.declaration.type !== "TypeAlias" && bodyElement.declaration.type !== "InterfaceDeclaration"); +} +function hasTypeImportKind(node) { + return node.importKind === "type" || node.importKind === "typeof"; +} +function isMaybeDefaultImport(type) { + return tokenIsKeywordOrIdentifier(type) && type !== 97; +} +const exportSuggestions = { + const: "declare export var", + let: "declare export var", + type: "export type", + interface: "export interface" +}; + +function partition(list, test) { + const list1 = []; + const list2 = []; + for (let i = 0; i < list.length; i++) { + (test(list[i], i, list) ? list1 : list2).push(list[i]); + } + return [list1, list2]; +} +const FLOW_PRAGMA_REGEX = /\*?\s*@((?:no)?flow)\b/; + +var flow = (superClass => class FlowParserMixin extends superClass { + constructor(...args) { + super(...args); + this.flowPragma = undefined; + } + getScopeHandler() { + return FlowScopeHandler; + } + shouldParseTypes() { + return this.getPluginOption("flow", "all") || this.flowPragma === "flow"; + } + shouldParseEnums() { + return !!this.getPluginOption("flow", "enums"); + } + finishToken(type, val) { + if (type !== 131 && type !== 13 && type !== 28) { + if (this.flowPragma === undefined) { + this.flowPragma = null; + } + } + return super.finishToken(type, val); + } + addComment(comment) { + if (this.flowPragma === undefined) { + const matches = FLOW_PRAGMA_REGEX.exec(comment.value); + if (!matches) ; else if (matches[1] === "flow") { + this.flowPragma = "flow"; + } else if (matches[1] === "noflow") { + this.flowPragma = "noflow"; + } else { + throw new Error("Unexpected flow pragma"); + } + } + return super.addComment(comment); + } + flowParseTypeInitialiser(tok) { + const oldInType = this.state.inType; + this.state.inType = true; + this.expect(tok || 14); + const type = this.flowParseType(); + this.state.inType = oldInType; + return type; + } + flowParsePredicate() { + const node = this.startNode(); + const moduloLoc = this.state.startLoc; + this.next(); + this.expectContextual(108); + if (this.state.lastTokStart > moduloLoc.index + 1) { + this.raise(FlowErrors.UnexpectedSpaceBetweenModuloChecks, { + at: moduloLoc + }); + } + if (this.eat(10)) { + node.value = super.parseExpression(); + this.expect(11); + return this.finishNode(node, "DeclaredPredicate"); + } else { + return this.finishNode(node, "InferredPredicate"); + } + } + flowParseTypeAndPredicateInitialiser() { + const oldInType = this.state.inType; + this.state.inType = true; + this.expect(14); + let type = null; + let predicate = null; + if (this.match(54)) { + this.state.inType = oldInType; + predicate = this.flowParsePredicate(); + } else { + type = this.flowParseType(); + this.state.inType = oldInType; + if (this.match(54)) { + predicate = this.flowParsePredicate(); + } + } + return [type, predicate]; + } + flowParseDeclareClass(node) { + this.next(); + this.flowParseInterfaceish(node, true); + return this.finishNode(node, "DeclareClass"); + } + flowParseDeclareFunction(node) { + this.next(); + const id = node.id = this.parseIdentifier(); + const typeNode = this.startNode(); + const typeContainer = this.startNode(); + if (this.match(47)) { + typeNode.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + typeNode.typeParameters = null; + } + this.expect(10); + const tmp = this.flowParseFunctionTypeParams(); + typeNode.params = tmp.params; + typeNode.rest = tmp.rest; + typeNode.this = tmp._this; + this.expect(11); + [typeNode.returnType, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); + typeContainer.typeAnnotation = this.finishNode(typeNode, "FunctionTypeAnnotation"); + id.typeAnnotation = this.finishNode(typeContainer, "TypeAnnotation"); + this.resetEndLocation(id); + this.semicolon(); + this.scope.declareName(node.id.name, BIND_FLOW_DECLARE_FN, node.id.loc.start); + return this.finishNode(node, "DeclareFunction"); + } + flowParseDeclare(node, insideModule) { + if (this.match(80)) { + return this.flowParseDeclareClass(node); + } else if (this.match(68)) { + return this.flowParseDeclareFunction(node); + } else if (this.match(74)) { + return this.flowParseDeclareVariable(node); + } else if (this.eatContextual(125)) { + if (this.match(16)) { + return this.flowParseDeclareModuleExports(node); + } else { + if (insideModule) { + this.raise(FlowErrors.NestedDeclareModule, { + at: this.state.lastTokStartLoc + }); + } + return this.flowParseDeclareModule(node); + } + } else if (this.isContextual(128)) { + return this.flowParseDeclareTypeAlias(node); + } else if (this.isContextual(129)) { + return this.flowParseDeclareOpaqueType(node); + } else if (this.isContextual(127)) { + return this.flowParseDeclareInterface(node); + } else if (this.match(82)) { + return this.flowParseDeclareExportDeclaration(node, insideModule); + } else { + throw this.unexpected(); + } + } + flowParseDeclareVariable(node) { + this.next(); + node.id = this.flowParseTypeAnnotatableIdentifier(true); + this.scope.declareName(node.id.name, BIND_VAR, node.id.loc.start); + this.semicolon(); + return this.finishNode(node, "DeclareVariable"); + } + flowParseDeclareModule(node) { + this.scope.enter(SCOPE_OTHER); + if (this.match(131)) { + node.id = super.parseExprAtom(); + } else { + node.id = this.parseIdentifier(); + } + const bodyNode = node.body = this.startNode(); + const body = bodyNode.body = []; + this.expect(5); + while (!this.match(8)) { + let bodyNode = this.startNode(); + if (this.match(83)) { + this.next(); + if (!this.isContextual(128) && !this.match(87)) { + this.raise(FlowErrors.InvalidNonTypeImportInDeclareModule, { + at: this.state.lastTokStartLoc + }); + } + super.parseImport(bodyNode); + } else { + this.expectContextual(123, FlowErrors.UnsupportedStatementInDeclareModule); + bodyNode = this.flowParseDeclare(bodyNode, true); + } + body.push(bodyNode); + } + this.scope.exit(); + this.expect(8); + this.finishNode(bodyNode, "BlockStatement"); + let kind = null; + let hasModuleExport = false; + body.forEach(bodyElement => { + if (isEsModuleType(bodyElement)) { + if (kind === "CommonJS") { + this.raise(FlowErrors.AmbiguousDeclareModuleKind, { + at: bodyElement + }); + } + kind = "ES"; + } else if (bodyElement.type === "DeclareModuleExports") { + if (hasModuleExport) { + this.raise(FlowErrors.DuplicateDeclareModuleExports, { + at: bodyElement + }); + } + if (kind === "ES") { + this.raise(FlowErrors.AmbiguousDeclareModuleKind, { + at: bodyElement + }); + } + kind = "CommonJS"; + hasModuleExport = true; + } + }); + node.kind = kind || "CommonJS"; + return this.finishNode(node, "DeclareModule"); + } + flowParseDeclareExportDeclaration(node, insideModule) { + this.expect(82); + if (this.eat(65)) { + if (this.match(68) || this.match(80)) { + node.declaration = this.flowParseDeclare(this.startNode()); + } else { + node.declaration = this.flowParseType(); + this.semicolon(); + } + node.default = true; + return this.finishNode(node, "DeclareExportDeclaration"); + } else { + if (this.match(75) || this.isLet() || (this.isContextual(128) || this.isContextual(127)) && !insideModule) { + const label = this.state.value; + throw this.raise(FlowErrors.UnsupportedDeclareExportKind, { + at: this.state.startLoc, + unsupportedExportKind: label, + suggestion: exportSuggestions[label] + }); + } + if (this.match(74) || + this.match(68) || + this.match(80) || + this.isContextual(129)) { + node.declaration = this.flowParseDeclare(this.startNode()); + node.default = false; + return this.finishNode(node, "DeclareExportDeclaration"); + } else if (this.match(55) || + this.match(5) || + this.isContextual(127) || + this.isContextual(128) || + this.isContextual(129)) { + node = this.parseExport(node, null); + if (node.type === "ExportNamedDeclaration") { + node.type = "ExportDeclaration"; + node.default = false; + delete node.exportKind; + } + node.type = "Declare" + node.type; + return node; + } + } + throw this.unexpected(); + } + flowParseDeclareModuleExports(node) { + this.next(); + this.expectContextual(109); + node.typeAnnotation = this.flowParseTypeAnnotation(); + this.semicolon(); + return this.finishNode(node, "DeclareModuleExports"); + } + flowParseDeclareTypeAlias(node) { + this.next(); + const finished = this.flowParseTypeAlias(node); + finished.type = "DeclareTypeAlias"; + return finished; + } + flowParseDeclareOpaqueType(node) { + this.next(); + const finished = this.flowParseOpaqueType(node, true); + finished.type = "DeclareOpaqueType"; + return finished; + } + flowParseDeclareInterface(node) { + this.next(); + this.flowParseInterfaceish(node); + return this.finishNode(node, "DeclareInterface"); + } + + flowParseInterfaceish(node, isClass = false) { + node.id = this.flowParseRestrictedIdentifier(!isClass, true); + this.scope.declareName(node.id.name, isClass ? BIND_FUNCTION : BIND_LEXICAL, node.id.loc.start); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + node.typeParameters = null; + } + node.extends = []; + node.implements = []; + node.mixins = []; + if (this.eat(81)) { + do { + node.extends.push(this.flowParseInterfaceExtends()); + } while (!isClass && this.eat(12)); + } + if (this.isContextual(115)) { + this.next(); + do { + node.mixins.push(this.flowParseInterfaceExtends()); + } while (this.eat(12)); + } + if (this.isContextual(111)) { + this.next(); + do { + node.implements.push(this.flowParseInterfaceExtends()); + } while (this.eat(12)); + } + node.body = this.flowParseObjectType({ + allowStatic: isClass, + allowExact: false, + allowSpread: false, + allowProto: isClass, + allowInexact: false + }); + } + flowParseInterfaceExtends() { + const node = this.startNode(); + node.id = this.flowParseQualifiedTypeIdentifier(); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterInstantiation(); + } else { + node.typeParameters = null; + } + return this.finishNode(node, "InterfaceExtends"); + } + flowParseInterface(node) { + this.flowParseInterfaceish(node); + return this.finishNode(node, "InterfaceDeclaration"); + } + checkNotUnderscore(word) { + if (word === "_") { + this.raise(FlowErrors.UnexpectedReservedUnderscore, { + at: this.state.startLoc + }); + } + } + checkReservedType(word, startLoc, declaration) { + if (!reservedTypes.has(word)) return; + this.raise(declaration ? FlowErrors.AssignReservedType : FlowErrors.UnexpectedReservedType, { + at: startLoc, + reservedType: word + }); + } + flowParseRestrictedIdentifier(liberal, declaration) { + this.checkReservedType(this.state.value, this.state.startLoc, declaration); + return this.parseIdentifier(liberal); + } + + flowParseTypeAlias(node) { + node.id = this.flowParseRestrictedIdentifier(false, true); + this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.loc.start); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + node.typeParameters = null; + } + node.right = this.flowParseTypeInitialiser(29); + this.semicolon(); + return this.finishNode(node, "TypeAlias"); + } + flowParseOpaqueType(node, declare) { + this.expectContextual(128); + node.id = this.flowParseRestrictedIdentifier(true, true); + this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.loc.start); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + node.typeParameters = null; + } + + node.supertype = null; + if (this.match(14)) { + node.supertype = this.flowParseTypeInitialiser(14); + } + node.impltype = null; + if (!declare) { + node.impltype = this.flowParseTypeInitialiser(29); + } + this.semicolon(); + return this.finishNode(node, "OpaqueType"); + } + + flowParseTypeParameter(requireDefault = false) { + const nodeStartLoc = this.state.startLoc; + const node = this.startNode(); + const variance = this.flowParseVariance(); + const ident = this.flowParseTypeAnnotatableIdentifier(); + node.name = ident.name; + node.variance = variance; + node.bound = ident.typeAnnotation; + if (this.match(29)) { + this.eat(29); + node.default = this.flowParseType(); + } else { + if (requireDefault) { + this.raise(FlowErrors.MissingTypeParamDefault, { + at: nodeStartLoc + }); + } + } + return this.finishNode(node, "TypeParameter"); + } + flowParseTypeParameterDeclaration() { + const oldInType = this.state.inType; + const node = this.startNode(); + node.params = []; + this.state.inType = true; + + if (this.match(47) || this.match(140)) { + this.next(); + } else { + this.unexpected(); + } + let defaultRequired = false; + do { + const typeParameter = this.flowParseTypeParameter(defaultRequired); + node.params.push(typeParameter); + if (typeParameter.default) { + defaultRequired = true; + } + if (!this.match(48)) { + this.expect(12); + } + } while (!this.match(48)); + this.expect(48); + this.state.inType = oldInType; + return this.finishNode(node, "TypeParameterDeclaration"); + } + flowParseTypeParameterInstantiation() { + const node = this.startNode(); + const oldInType = this.state.inType; + node.params = []; + this.state.inType = true; + this.expect(47); + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + this.state.noAnonFunctionType = false; + while (!this.match(48)) { + node.params.push(this.flowParseType()); + if (!this.match(48)) { + this.expect(12); + } + } + this.state.noAnonFunctionType = oldNoAnonFunctionType; + this.expect(48); + this.state.inType = oldInType; + return this.finishNode(node, "TypeParameterInstantiation"); + } + flowParseTypeParameterInstantiationCallOrNew() { + const node = this.startNode(); + const oldInType = this.state.inType; + node.params = []; + this.state.inType = true; + this.expect(47); + while (!this.match(48)) { + node.params.push(this.flowParseTypeOrImplicitInstantiation()); + if (!this.match(48)) { + this.expect(12); + } + } + this.expect(48); + this.state.inType = oldInType; + return this.finishNode(node, "TypeParameterInstantiation"); + } + flowParseInterfaceType() { + const node = this.startNode(); + this.expectContextual(127); + node.extends = []; + if (this.eat(81)) { + do { + node.extends.push(this.flowParseInterfaceExtends()); + } while (this.eat(12)); + } + node.body = this.flowParseObjectType({ + allowStatic: false, + allowExact: false, + allowSpread: false, + allowProto: false, + allowInexact: false + }); + return this.finishNode(node, "InterfaceTypeAnnotation"); + } + flowParseObjectPropertyKey() { + return this.match(132) || this.match(131) ? super.parseExprAtom() : this.parseIdentifier(true); + } + flowParseObjectTypeIndexer(node, isStatic, variance) { + node.static = isStatic; + + if (this.lookahead().type === 14) { + node.id = this.flowParseObjectPropertyKey(); + node.key = this.flowParseTypeInitialiser(); + } else { + node.id = null; + node.key = this.flowParseType(); + } + this.expect(3); + node.value = this.flowParseTypeInitialiser(); + node.variance = variance; + return this.finishNode(node, "ObjectTypeIndexer"); + } + flowParseObjectTypeInternalSlot(node, isStatic) { + node.static = isStatic; + node.id = this.flowParseObjectPropertyKey(); + this.expect(3); + this.expect(3); + if (this.match(47) || this.match(10)) { + node.method = true; + node.optional = false; + node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.loc.start)); + } else { + node.method = false; + if (this.eat(17)) { + node.optional = true; + } + node.value = this.flowParseTypeInitialiser(); + } + return this.finishNode(node, "ObjectTypeInternalSlot"); + } + flowParseObjectTypeMethodish(node) { + node.params = []; + node.rest = null; + node.typeParameters = null; + node.this = null; + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } + this.expect(10); + if (this.match(78)) { + node.this = this.flowParseFunctionTypeParam(true); + node.this.name = null; + if (!this.match(11)) { + this.expect(12); + } + } + while (!this.match(11) && !this.match(21)) { + node.params.push(this.flowParseFunctionTypeParam(false)); + if (!this.match(11)) { + this.expect(12); + } + } + if (this.eat(21)) { + node.rest = this.flowParseFunctionTypeParam(false); + } + this.expect(11); + node.returnType = this.flowParseTypeInitialiser(); + return this.finishNode(node, "FunctionTypeAnnotation"); + } + flowParseObjectTypeCallProperty(node, isStatic) { + const valueNode = this.startNode(); + node.static = isStatic; + node.value = this.flowParseObjectTypeMethodish(valueNode); + return this.finishNode(node, "ObjectTypeCallProperty"); + } + flowParseObjectType({ + allowStatic, + allowExact, + allowSpread, + allowProto, + allowInexact + }) { + const oldInType = this.state.inType; + this.state.inType = true; + const nodeStart = this.startNode(); + nodeStart.callProperties = []; + nodeStart.properties = []; + nodeStart.indexers = []; + nodeStart.internalSlots = []; + let endDelim; + let exact; + let inexact = false; + if (allowExact && this.match(6)) { + this.expect(6); + endDelim = 9; + exact = true; + } else { + this.expect(5); + endDelim = 8; + exact = false; + } + nodeStart.exact = exact; + while (!this.match(endDelim)) { + let isStatic = false; + let protoStartLoc = null; + let inexactStartLoc = null; + const node = this.startNode(); + if (allowProto && this.isContextual(116)) { + const lookahead = this.lookahead(); + if (lookahead.type !== 14 && lookahead.type !== 17) { + this.next(); + protoStartLoc = this.state.startLoc; + allowStatic = false; + } + } + if (allowStatic && this.isContextual(104)) { + const lookahead = this.lookahead(); + + if (lookahead.type !== 14 && lookahead.type !== 17) { + this.next(); + isStatic = true; + } + } + const variance = this.flowParseVariance(); + if (this.eat(0)) { + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (this.eat(0)) { + if (variance) { + this.unexpected(variance.loc.start); + } + nodeStart.internalSlots.push(this.flowParseObjectTypeInternalSlot(node, isStatic)); + } else { + nodeStart.indexers.push(this.flowParseObjectTypeIndexer(node, isStatic, variance)); + } + } else if (this.match(10) || this.match(47)) { + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (variance) { + this.unexpected(variance.loc.start); + } + nodeStart.callProperties.push(this.flowParseObjectTypeCallProperty(node, isStatic)); + } else { + let kind = "init"; + if (this.isContextual(98) || this.isContextual(103)) { + const lookahead = this.lookahead(); + if (tokenIsLiteralPropertyName(lookahead.type)) { + kind = this.state.value; + this.next(); + } + } + const propOrInexact = this.flowParseObjectTypeProperty(node, isStatic, protoStartLoc, variance, kind, allowSpread, allowInexact != null ? allowInexact : !exact); + if (propOrInexact === null) { + inexact = true; + inexactStartLoc = this.state.lastTokStartLoc; + } else { + nodeStart.properties.push(propOrInexact); + } + } + this.flowObjectTypeSemicolon(); + if (inexactStartLoc && !this.match(8) && !this.match(9)) { + this.raise(FlowErrors.UnexpectedExplicitInexactInObject, { + at: inexactStartLoc + }); + } + } + this.expect(endDelim); + + if (allowSpread) { + nodeStart.inexact = inexact; + } + const out = this.finishNode(nodeStart, "ObjectTypeAnnotation"); + this.state.inType = oldInType; + return out; + } + flowParseObjectTypeProperty(node, isStatic, protoStartLoc, variance, kind, allowSpread, allowInexact) { + if (this.eat(21)) { + const isInexactToken = this.match(12) || this.match(13) || this.match(8) || this.match(9); + if (isInexactToken) { + if (!allowSpread) { + this.raise(FlowErrors.InexactInsideNonObject, { + at: this.state.lastTokStartLoc + }); + } else if (!allowInexact) { + this.raise(FlowErrors.InexactInsideExact, { + at: this.state.lastTokStartLoc + }); + } + if (variance) { + this.raise(FlowErrors.InexactVariance, { + at: variance + }); + } + return null; + } + if (!allowSpread) { + this.raise(FlowErrors.UnexpectedSpreadType, { + at: this.state.lastTokStartLoc + }); + } + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (variance) { + this.raise(FlowErrors.SpreadVariance, { + at: variance + }); + } + node.argument = this.flowParseType(); + return this.finishNode(node, "ObjectTypeSpreadProperty"); + } else { + node.key = this.flowParseObjectPropertyKey(); + node.static = isStatic; + node.proto = protoStartLoc != null; + node.kind = kind; + let optional = false; + if (this.match(47) || this.match(10)) { + node.method = true; + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (variance) { + this.unexpected(variance.loc.start); + } + node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.loc.start)); + if (kind === "get" || kind === "set") { + this.flowCheckGetterSetterParams(node); + } + if (!allowSpread && node.key.name === "constructor" && node.value.this) { + this.raise(FlowErrors.ThisParamBannedInConstructor, { + at: node.value.this + }); + } + } else { + if (kind !== "init") this.unexpected(); + node.method = false; + if (this.eat(17)) { + optional = true; + } + node.value = this.flowParseTypeInitialiser(); + node.variance = variance; + } + node.optional = optional; + return this.finishNode(node, "ObjectTypeProperty"); + } + } + + flowCheckGetterSetterParams(property) { + const paramCount = property.kind === "get" ? 0 : 1; + const length = property.value.params.length + (property.value.rest ? 1 : 0); + if (property.value.this) { + this.raise(property.kind === "get" ? FlowErrors.GetterMayNotHaveThisParam : FlowErrors.SetterMayNotHaveThisParam, { + at: property.value.this + }); + } + if (length !== paramCount) { + this.raise(property.kind === "get" ? Errors.BadGetterArity : Errors.BadSetterArity, { + at: property + }); + } + if (property.kind === "set" && property.value.rest) { + this.raise(Errors.BadSetterRestParameter, { + at: property + }); + } + } + flowObjectTypeSemicolon() { + if (!this.eat(13) && !this.eat(12) && !this.match(8) && !this.match(9)) { + this.unexpected(); + } + } + flowParseQualifiedTypeIdentifier(startLoc, id) { + var _startLoc; + (_startLoc = startLoc) != null ? _startLoc : startLoc = this.state.startLoc; + let node = id || this.flowParseRestrictedIdentifier(true); + while (this.eat(16)) { + const node2 = this.startNodeAt(startLoc); + node2.qualification = node; + node2.id = this.flowParseRestrictedIdentifier(true); + node = this.finishNode(node2, "QualifiedTypeIdentifier"); + } + return node; + } + flowParseGenericType(startLoc, id) { + const node = this.startNodeAt(startLoc); + node.typeParameters = null; + node.id = this.flowParseQualifiedTypeIdentifier(startLoc, id); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterInstantiation(); + } + return this.finishNode(node, "GenericTypeAnnotation"); + } + flowParseTypeofType() { + const node = this.startNode(); + this.expect(87); + node.argument = this.flowParsePrimaryType(); + return this.finishNode(node, "TypeofTypeAnnotation"); + } + flowParseTupleType() { + const node = this.startNode(); + node.types = []; + this.expect(0); + while (this.state.pos < this.length && !this.match(3)) { + node.types.push(this.flowParseType()); + if (this.match(3)) break; + this.expect(12); + } + this.expect(3); + return this.finishNode(node, "TupleTypeAnnotation"); + } + flowParseFunctionTypeParam(first) { + let name = null; + let optional = false; + let typeAnnotation = null; + const node = this.startNode(); + const lh = this.lookahead(); + const isThis = this.state.type === 78; + if (lh.type === 14 || lh.type === 17) { + if (isThis && !first) { + this.raise(FlowErrors.ThisParamMustBeFirst, { + at: node + }); + } + name = this.parseIdentifier(isThis); + if (this.eat(17)) { + optional = true; + if (isThis) { + this.raise(FlowErrors.ThisParamMayNotBeOptional, { + at: node + }); + } + } + typeAnnotation = this.flowParseTypeInitialiser(); + } else { + typeAnnotation = this.flowParseType(); + } + node.name = name; + node.optional = optional; + node.typeAnnotation = typeAnnotation; + return this.finishNode(node, "FunctionTypeParam"); + } + reinterpretTypeAsFunctionTypeParam(type) { + const node = this.startNodeAt(type.loc.start); + node.name = null; + node.optional = false; + node.typeAnnotation = type; + return this.finishNode(node, "FunctionTypeParam"); + } + flowParseFunctionTypeParams(params = []) { + let rest = null; + let _this = null; + if (this.match(78)) { + _this = this.flowParseFunctionTypeParam(true); + _this.name = null; + if (!this.match(11)) { + this.expect(12); + } + } + while (!this.match(11) && !this.match(21)) { + params.push(this.flowParseFunctionTypeParam(false)); + if (!this.match(11)) { + this.expect(12); + } + } + if (this.eat(21)) { + rest = this.flowParseFunctionTypeParam(false); + } + return { + params, + rest, + _this + }; + } + flowIdentToTypeAnnotation(startLoc, node, id) { + switch (id.name) { + case "any": + return this.finishNode(node, "AnyTypeAnnotation"); + case "bool": + case "boolean": + return this.finishNode(node, "BooleanTypeAnnotation"); + case "mixed": + return this.finishNode(node, "MixedTypeAnnotation"); + case "empty": + return this.finishNode(node, "EmptyTypeAnnotation"); + case "number": + return this.finishNode(node, "NumberTypeAnnotation"); + case "string": + return this.finishNode(node, "StringTypeAnnotation"); + case "symbol": + return this.finishNode(node, "SymbolTypeAnnotation"); + default: + this.checkNotUnderscore(id.name); + return this.flowParseGenericType(startLoc, id); + } + } + + flowParsePrimaryType() { + const startLoc = this.state.startLoc; + const node = this.startNode(); + let tmp; + let type; + let isGroupedType = false; + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + switch (this.state.type) { + case 5: + return this.flowParseObjectType({ + allowStatic: false, + allowExact: false, + allowSpread: true, + allowProto: false, + allowInexact: true + }); + case 6: + return this.flowParseObjectType({ + allowStatic: false, + allowExact: true, + allowSpread: true, + allowProto: false, + allowInexact: false + }); + case 0: + this.state.noAnonFunctionType = false; + type = this.flowParseTupleType(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + return type; + case 47: + node.typeParameters = this.flowParseTypeParameterDeclaration(); + this.expect(10); + tmp = this.flowParseFunctionTypeParams(); + node.params = tmp.params; + node.rest = tmp.rest; + node.this = tmp._this; + this.expect(11); + this.expect(19); + node.returnType = this.flowParseType(); + return this.finishNode(node, "FunctionTypeAnnotation"); + case 10: + this.next(); + + if (!this.match(11) && !this.match(21)) { + if (tokenIsIdentifier(this.state.type) || this.match(78)) { + const token = this.lookahead().type; + isGroupedType = token !== 17 && token !== 14; + } else { + isGroupedType = true; + } + } + if (isGroupedType) { + this.state.noAnonFunctionType = false; + type = this.flowParseType(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + + if (this.state.noAnonFunctionType || !(this.match(12) || this.match(11) && this.lookahead().type === 19)) { + this.expect(11); + return type; + } else { + this.eat(12); + } + } + if (type) { + tmp = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(type)]); + } else { + tmp = this.flowParseFunctionTypeParams(); + } + node.params = tmp.params; + node.rest = tmp.rest; + node.this = tmp._this; + this.expect(11); + this.expect(19); + node.returnType = this.flowParseType(); + node.typeParameters = null; + return this.finishNode(node, "FunctionTypeAnnotation"); + case 131: + return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation"); + case 85: + case 86: + node.value = this.match(85); + this.next(); + return this.finishNode(node, "BooleanLiteralTypeAnnotation"); + case 53: + if (this.state.value === "-") { + this.next(); + if (this.match(132)) { + return this.parseLiteralAtNode(-this.state.value, "NumberLiteralTypeAnnotation", node); + } + if (this.match(133)) { + return this.parseLiteralAtNode(-this.state.value, "BigIntLiteralTypeAnnotation", node); + } + throw this.raise(FlowErrors.UnexpectedSubtractionOperand, { + at: this.state.startLoc + }); + } + throw this.unexpected(); + case 132: + return this.parseLiteral(this.state.value, "NumberLiteralTypeAnnotation"); + case 133: + return this.parseLiteral(this.state.value, "BigIntLiteralTypeAnnotation"); + case 88: + this.next(); + return this.finishNode(node, "VoidTypeAnnotation"); + case 84: + this.next(); + return this.finishNode(node, "NullLiteralTypeAnnotation"); + case 78: + this.next(); + return this.finishNode(node, "ThisTypeAnnotation"); + case 55: + this.next(); + return this.finishNode(node, "ExistsTypeAnnotation"); + case 87: + return this.flowParseTypeofType(); + default: + if (tokenIsKeyword(this.state.type)) { + const label = tokenLabelName(this.state.type); + this.next(); + return super.createIdentifier(node, label); + } else if (tokenIsIdentifier(this.state.type)) { + if (this.isContextual(127)) { + return this.flowParseInterfaceType(); + } + return this.flowIdentToTypeAnnotation(startLoc, node, this.parseIdentifier()); + } + } + throw this.unexpected(); + } + flowParsePostfixType() { + const startLoc = this.state.startLoc; + let type = this.flowParsePrimaryType(); + let seenOptionalIndexedAccess = false; + while ((this.match(0) || this.match(18)) && !this.canInsertSemicolon()) { + const node = this.startNodeAt(startLoc); + const optional = this.eat(18); + seenOptionalIndexedAccess = seenOptionalIndexedAccess || optional; + this.expect(0); + if (!optional && this.match(3)) { + node.elementType = type; + this.next(); + type = this.finishNode(node, "ArrayTypeAnnotation"); + } else { + node.objectType = type; + node.indexType = this.flowParseType(); + this.expect(3); + if (seenOptionalIndexedAccess) { + node.optional = optional; + type = this.finishNode( + node, "OptionalIndexedAccessType"); + } else { + type = this.finishNode( + node, "IndexedAccessType"); + } + } + } + return type; + } + flowParsePrefixType() { + const node = this.startNode(); + if (this.eat(17)) { + node.typeAnnotation = this.flowParsePrefixType(); + return this.finishNode(node, "NullableTypeAnnotation"); + } else { + return this.flowParsePostfixType(); + } + } + flowParseAnonFunctionWithoutParens() { + const param = this.flowParsePrefixType(); + if (!this.state.noAnonFunctionType && this.eat(19)) { + const node = this.startNodeAt(param.loc.start); + node.params = [this.reinterpretTypeAsFunctionTypeParam(param)]; + node.rest = null; + node.this = null; + node.returnType = this.flowParseType(); + node.typeParameters = null; + return this.finishNode(node, "FunctionTypeAnnotation"); + } + return param; + } + flowParseIntersectionType() { + const node = this.startNode(); + this.eat(45); + const type = this.flowParseAnonFunctionWithoutParens(); + node.types = [type]; + while (this.eat(45)) { + node.types.push(this.flowParseAnonFunctionWithoutParens()); + } + return node.types.length === 1 ? type : this.finishNode(node, "IntersectionTypeAnnotation"); + } + flowParseUnionType() { + const node = this.startNode(); + this.eat(43); + const type = this.flowParseIntersectionType(); + node.types = [type]; + while (this.eat(43)) { + node.types.push(this.flowParseIntersectionType()); + } + return node.types.length === 1 ? type : this.finishNode(node, "UnionTypeAnnotation"); + } + flowParseType() { + const oldInType = this.state.inType; + this.state.inType = true; + const type = this.flowParseUnionType(); + this.state.inType = oldInType; + return type; + } + flowParseTypeOrImplicitInstantiation() { + if (this.state.type === 130 && this.state.value === "_") { + const startLoc = this.state.startLoc; + const node = this.parseIdentifier(); + return this.flowParseGenericType(startLoc, node); + } else { + return this.flowParseType(); + } + } + flowParseTypeAnnotation() { + const node = this.startNode(); + node.typeAnnotation = this.flowParseTypeInitialiser(); + return this.finishNode(node, "TypeAnnotation"); + } + flowParseTypeAnnotatableIdentifier(allowPrimitiveOverride) { + const ident = allowPrimitiveOverride ? this.parseIdentifier() : this.flowParseRestrictedIdentifier(); + if (this.match(14)) { + ident.typeAnnotation = this.flowParseTypeAnnotation(); + this.resetEndLocation(ident); + } + return ident; + } + typeCastToParameter(node) { + node.expression.typeAnnotation = node.typeAnnotation; + this.resetEndLocation(node.expression, node.typeAnnotation.loc.end); + return node.expression; + } + flowParseVariance() { + let variance = null; + if (this.match(53)) { + variance = this.startNode(); + if (this.state.value === "+") { + variance.kind = "plus"; + } else { + variance.kind = "minus"; + } + this.next(); + return this.finishNode(variance, "Variance"); + } + return variance; + } + + parseFunctionBody(node, allowExpressionBody, isMethod = false) { + if (allowExpressionBody) { + return this.forwardNoArrowParamsConversionAt(node, () => super.parseFunctionBody(node, true, isMethod)); + } + return super.parseFunctionBody(node, false, isMethod); + } + parseFunctionBodyAndFinish(node, type, isMethod = false) { + if (this.match(14)) { + const typeNode = this.startNode(); + [typeNode.typeAnnotation, + node.predicate] = this.flowParseTypeAndPredicateInitialiser(); + node.returnType = typeNode.typeAnnotation ? this.finishNode(typeNode, "TypeAnnotation") : null; + } + return super.parseFunctionBodyAndFinish(node, type, isMethod); + } + + parseStatementLike(flags) { + if (this.state.strict && this.isContextual(127)) { + const lookahead = this.lookahead(); + if (tokenIsKeywordOrIdentifier(lookahead.type)) { + const node = this.startNode(); + this.next(); + return this.flowParseInterface(node); + } + } else if (this.shouldParseEnums() && this.isContextual(124)) { + const node = this.startNode(); + this.next(); + return this.flowParseEnumDeclaration(node); + } + const stmt = super.parseStatementLike(flags); + if (this.flowPragma === undefined && !this.isValidDirective(stmt)) { + this.flowPragma = null; + } + return stmt; + } + + parseExpressionStatement(node, expr, decorators) { + if (expr.type === "Identifier") { + if (expr.name === "declare") { + if (this.match(80) || tokenIsIdentifier(this.state.type) || this.match(68) || this.match(74) || this.match(82)) { + return this.flowParseDeclare(node); + } + } else if (tokenIsIdentifier(this.state.type)) { + if (expr.name === "interface") { + return this.flowParseInterface(node); + } else if (expr.name === "type") { + return this.flowParseTypeAlias(node); + } else if (expr.name === "opaque") { + return this.flowParseOpaqueType(node, false); + } + } + } + return super.parseExpressionStatement(node, expr, decorators); + } + + shouldParseExportDeclaration() { + const { + type + } = this.state; + if (tokenIsFlowInterfaceOrTypeOrOpaque(type) || this.shouldParseEnums() && type === 124) { + return !this.state.containsEsc; + } + return super.shouldParseExportDeclaration(); + } + isExportDefaultSpecifier() { + const { + type + } = this.state; + if (tokenIsFlowInterfaceOrTypeOrOpaque(type) || this.shouldParseEnums() && type === 124) { + return this.state.containsEsc; + } + return super.isExportDefaultSpecifier(); + } + parseExportDefaultExpression() { + if (this.shouldParseEnums() && this.isContextual(124)) { + const node = this.startNode(); + this.next(); + return this.flowParseEnumDeclaration(node); + } + return super.parseExportDefaultExpression(); + } + parseConditional(expr, startLoc, refExpressionErrors) { + if (!this.match(17)) return expr; + if (this.state.maybeInArrowParameters) { + const nextCh = this.lookaheadCharCode(); + if (nextCh === 44 || + nextCh === 61 || + nextCh === 58 || + nextCh === 41) { + this.setOptionalParametersError(refExpressionErrors); + return expr; + } + } + this.expect(17); + const state = this.state.clone(); + const originalNoArrowAt = this.state.noArrowAt; + const node = this.startNodeAt(startLoc); + let { + consequent, + failed + } = this.tryParseConditionalConsequent(); + let [valid, invalid] = this.getArrowLikeExpressions(consequent); + if (failed || invalid.length > 0) { + const noArrowAt = [...originalNoArrowAt]; + if (invalid.length > 0) { + this.state = state; + this.state.noArrowAt = noArrowAt; + for (let i = 0; i < invalid.length; i++) { + noArrowAt.push(invalid[i].start); + } + ({ + consequent, + failed + } = this.tryParseConditionalConsequent()); + [valid, invalid] = this.getArrowLikeExpressions(consequent); + } + if (failed && valid.length > 1) { + this.raise(FlowErrors.AmbiguousConditionalArrow, { + at: state.startLoc + }); + } + if (failed && valid.length === 1) { + this.state = state; + noArrowAt.push(valid[0].start); + this.state.noArrowAt = noArrowAt; + ({ + consequent, + failed + } = this.tryParseConditionalConsequent()); + } + } + this.getArrowLikeExpressions(consequent, true); + this.state.noArrowAt = originalNoArrowAt; + this.expect(14); + node.test = expr; + node.consequent = consequent; + node.alternate = this.forwardNoArrowParamsConversionAt(node, () => this.parseMaybeAssign(undefined, undefined)); + return this.finishNode(node, "ConditionalExpression"); + } + tryParseConditionalConsequent() { + this.state.noArrowParamsConversionAt.push(this.state.start); + const consequent = this.parseMaybeAssignAllowIn(); + const failed = !this.match(14); + this.state.noArrowParamsConversionAt.pop(); + return { + consequent, + failed + }; + } + + getArrowLikeExpressions(node, disallowInvalid) { + const stack = [node]; + const arrows = []; + while (stack.length !== 0) { + const node = stack.pop(); + if (node.type === "ArrowFunctionExpression") { + if (node.typeParameters || !node.returnType) { + this.finishArrowValidation(node); + } else { + arrows.push(node); + } + stack.push(node.body); + } else if (node.type === "ConditionalExpression") { + stack.push(node.consequent); + stack.push(node.alternate); + } + } + if (disallowInvalid) { + arrows.forEach(node => this.finishArrowValidation(node)); + return [arrows, []]; + } + return partition(arrows, node => node.params.every(param => this.isAssignable(param, true))); + } + finishArrowValidation(node) { + var _node$extra; + this.toAssignableList( + node.params, (_node$extra = node.extra) == null ? void 0 : _node$extra.trailingCommaLoc, false); + this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW); + super.checkParams(node, false, true); + this.scope.exit(); + } + forwardNoArrowParamsConversionAt(node, parse) { + let result; + if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) { + this.state.noArrowParamsConversionAt.push(this.state.start); + result = parse(); + this.state.noArrowParamsConversionAt.pop(); + } else { + result = parse(); + } + return result; + } + parseParenItem(node, startLoc) { + node = super.parseParenItem(node, startLoc); + if (this.eat(17)) { + node.optional = true; + this.resetEndLocation(node); + } + if (this.match(14)) { + const typeCastNode = this.startNodeAt(startLoc); + typeCastNode.expression = node; + typeCastNode.typeAnnotation = this.flowParseTypeAnnotation(); + return this.finishNode(typeCastNode, "TypeCastExpression"); + } + return node; + } + assertModuleNodeAllowed(node) { + if (node.type === "ImportDeclaration" && (node.importKind === "type" || node.importKind === "typeof") || node.type === "ExportNamedDeclaration" && node.exportKind === "type" || node.type === "ExportAllDeclaration" && node.exportKind === "type") { + return; + } + super.assertModuleNodeAllowed(node); + } + parseExport(node, decorators) { + const decl = super.parseExport(node, decorators); + if (decl.type === "ExportNamedDeclaration" || decl.type === "ExportAllDeclaration") { + decl.exportKind = decl.exportKind || "value"; + } + return decl; + } + parseExportDeclaration(node) { + if (this.isContextual(128)) { + node.exportKind = "type"; + const declarationNode = this.startNode(); + this.next(); + if (this.match(5)) { + node.specifiers = this.parseExportSpecifiers(true); + super.parseExportFrom(node); + return null; + } else { + return this.flowParseTypeAlias(declarationNode); + } + } else if (this.isContextual(129)) { + node.exportKind = "type"; + const declarationNode = this.startNode(); + this.next(); + return this.flowParseOpaqueType(declarationNode, false); + } else if (this.isContextual(127)) { + node.exportKind = "type"; + const declarationNode = this.startNode(); + this.next(); + return this.flowParseInterface(declarationNode); + } else if (this.shouldParseEnums() && this.isContextual(124)) { + node.exportKind = "value"; + const declarationNode = this.startNode(); + this.next(); + return this.flowParseEnumDeclaration(declarationNode); + } else { + return super.parseExportDeclaration(node); + } + } + eatExportStar(node) { + if (super.eatExportStar(node)) return true; + if (this.isContextual(128) && this.lookahead().type === 55) { + node.exportKind = "type"; + this.next(); + this.next(); + return true; + } + return false; + } + maybeParseExportNamespaceSpecifier(node) { + const { + startLoc + } = this.state; + const hasNamespace = super.maybeParseExportNamespaceSpecifier(node); + if (hasNamespace && node.exportKind === "type") { + this.unexpected(startLoc); + } + return hasNamespace; + } + parseClassId(node, isStatement, optionalId) { + super.parseClassId(node, isStatement, optionalId); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } + } + parseClassMember(classBody, member, state) { + const { + startLoc + } = this.state; + if (this.isContextual(123)) { + if (super.parseClassMemberFromModifier(classBody, member)) { + return; + } + member.declare = true; + } + super.parseClassMember(classBody, member, state); + if (member.declare) { + if (member.type !== "ClassProperty" && member.type !== "ClassPrivateProperty" && member.type !== "PropertyDefinition") { + this.raise(FlowErrors.DeclareClassElement, { + at: startLoc + }); + } else if (member.value) { + this.raise(FlowErrors.DeclareClassFieldInitializer, { + at: member.value + }); + } + } + } + isIterator(word) { + return word === "iterator" || word === "asyncIterator"; + } + readIterator() { + const word = super.readWord1(); + const fullWord = "@@" + word; + + if (!this.isIterator(word) || !this.state.inType) { + this.raise(Errors.InvalidIdentifier, { + at: this.state.curPosition(), + identifierName: fullWord + }); + } + this.finishToken(130, fullWord); + } + + getTokenFromCode(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (code === 123 && next === 124) { + return this.finishOp(6, 2); + } else if (this.state.inType && (code === 62 || code === 60)) { + return this.finishOp(code === 62 ? 48 : 47, 1); + } else if (this.state.inType && code === 63) { + if (next === 46) { + return this.finishOp(18, 2); + } + return this.finishOp(17, 1); + } else if (isIteratorStart(code, next, this.input.charCodeAt(this.state.pos + 2))) { + this.state.pos += 2; + return this.readIterator(); + } else { + return super.getTokenFromCode(code); + } + } + isAssignable(node, isBinding) { + if (node.type === "TypeCastExpression") { + return this.isAssignable(node.expression, isBinding); + } else { + return super.isAssignable(node, isBinding); + } + } + toAssignable(node, isLHS = false) { + if (!isLHS && node.type === "AssignmentExpression" && node.left.type === "TypeCastExpression") { + node.left = this.typeCastToParameter(node.left); + } + super.toAssignable(node, isLHS); + } + + toAssignableList(exprList, trailingCommaLoc, isLHS) { + for (let i = 0; i < exprList.length; i++) { + const expr = exprList[i]; + if ((expr == null ? void 0 : expr.type) === "TypeCastExpression") { + exprList[i] = this.typeCastToParameter(expr); + } + } + super.toAssignableList(exprList, trailingCommaLoc, isLHS); + } + + toReferencedList(exprList, isParenthesizedExpr) { + for (let i = 0; i < exprList.length; i++) { + var _expr$extra; + const expr = exprList[i]; + if (expr && expr.type === "TypeCastExpression" && !((_expr$extra = expr.extra) != null && _expr$extra.parenthesized) && (exprList.length > 1 || !isParenthesizedExpr)) { + this.raise(FlowErrors.TypeCastInPattern, { + at: expr.typeAnnotation + }); + } + } + return exprList; + } + parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) { + const node = super.parseArrayLike(close, canBePattern, isTuple, refExpressionErrors); + + if (canBePattern && !this.state.maybeInArrowParameters) { + this.toReferencedList(node.elements); + } + return node; + } + isValidLVal(type, isParenthesized, binding) { + return type === "TypeCastExpression" || super.isValidLVal(type, isParenthesized, binding); + } + + parseClassProperty(node) { + if (this.match(14)) { + node.typeAnnotation = this.flowParseTypeAnnotation(); + } + return super.parseClassProperty(node); + } + parseClassPrivateProperty(node) { + if (this.match(14)) { + node.typeAnnotation = this.flowParseTypeAnnotation(); + } + return super.parseClassPrivateProperty(node); + } + + isClassMethod() { + return this.match(47) || super.isClassMethod(); + } + + isClassProperty() { + return this.match(14) || super.isClassProperty(); + } + isNonstaticConstructor(method) { + return !this.match(14) && super.isNonstaticConstructor(method); + } + + pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { + if (method.variance) { + this.unexpected(method.variance.loc.start); + } + delete method.variance; + if (this.match(47)) { + method.typeParameters = this.flowParseTypeParameterDeclaration(); + } + super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper); + if (method.params && isConstructor) { + const params = method.params; + if (params.length > 0 && this.isThisParam(params[0])) { + this.raise(FlowErrors.ThisParamBannedInConstructor, { + at: method + }); + } + } else if ( + method.type === "MethodDefinition" && isConstructor && + method.value.params) { + const params = method.value.params; + if (params.length > 0 && this.isThisParam(params[0])) { + this.raise(FlowErrors.ThisParamBannedInConstructor, { + at: method + }); + } + } + } + pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { + if (method.variance) { + this.unexpected(method.variance.loc.start); + } + delete method.variance; + if (this.match(47)) { + method.typeParameters = this.flowParseTypeParameterDeclaration(); + } + super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync); + } + + parseClassSuper(node) { + super.parseClassSuper(node); + if (node.superClass && this.match(47)) { + node.superTypeParameters = this.flowParseTypeParameterInstantiation(); + } + if (this.isContextual(111)) { + this.next(); + const implemented = node.implements = []; + do { + const node = this.startNode(); + node.id = this.flowParseRestrictedIdentifier(true); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterInstantiation(); + } else { + node.typeParameters = null; + } + implemented.push(this.finishNode(node, "ClassImplements")); + } while (this.eat(12)); + } + } + checkGetterSetterParams(method) { + super.checkGetterSetterParams(method); + const params = this.getObjectOrClassMethodParams(method); + if (params.length > 0) { + const param = params[0]; + if (this.isThisParam(param) && method.kind === "get") { + this.raise(FlowErrors.GetterMayNotHaveThisParam, { + at: param + }); + } else if (this.isThisParam(param)) { + this.raise(FlowErrors.SetterMayNotHaveThisParam, { + at: param + }); + } + } + } + parsePropertyNamePrefixOperator(node) { + node.variance = this.flowParseVariance(); + } + + parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { + if (prop.variance) { + this.unexpected(prop.variance.loc.start); + } + delete prop.variance; + let typeParameters; + + if (this.match(47) && !isAccessor) { + typeParameters = this.flowParseTypeParameterDeclaration(); + if (!this.match(10)) this.unexpected(); + } + const result = super.parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors); + + if (typeParameters) { + (result.value || result).typeParameters = typeParameters; + } + return result; + } + parseAssignableListItemTypes(param) { + if (this.eat(17)) { + if (param.type !== "Identifier") { + this.raise(FlowErrors.PatternIsOptional, { + at: param + }); + } + if (this.isThisParam(param)) { + this.raise(FlowErrors.ThisParamMayNotBeOptional, { + at: param + }); + } + param.optional = true; + } + if (this.match(14)) { + param.typeAnnotation = this.flowParseTypeAnnotation(); + } else if (this.isThisParam(param)) { + this.raise(FlowErrors.ThisParamAnnotationRequired, { + at: param + }); + } + if (this.match(29) && this.isThisParam(param)) { + this.raise(FlowErrors.ThisParamNoDefault, { + at: param + }); + } + this.resetEndLocation(param); + return param; + } + parseMaybeDefault(startLoc, left) { + const node = super.parseMaybeDefault(startLoc, left); + if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) { + this.raise(FlowErrors.TypeBeforeInitializer, { + at: node.typeAnnotation + }); + } + return node; + } + shouldParseDefaultImport(node) { + if (!hasTypeImportKind(node)) { + return super.shouldParseDefaultImport(node); + } + return isMaybeDefaultImport(this.state.type); + } + checkImportReflection(node) { + super.checkImportReflection(node); + if (node.module && node.importKind !== "value") { + this.raise(FlowErrors.ImportReflectionHasImportType, { + at: node.specifiers[0].loc.start + }); + } + } + parseImportSpecifierLocal(node, specifier, type) { + specifier.local = hasTypeImportKind(node) ? this.flowParseRestrictedIdentifier(true, true) : this.parseIdentifier(); + node.specifiers.push(this.finishImportSpecifier(specifier, type)); + } + + maybeParseDefaultImportSpecifier(node) { + node.importKind = "value"; + let kind = null; + if (this.match(87)) { + kind = "typeof"; + } else if (this.isContextual(128)) { + kind = "type"; + } + if (kind) { + const lh = this.lookahead(); + const { + type + } = lh; + + if (kind === "type" && type === 55) { + this.unexpected(null, lh.type); + } + if (isMaybeDefaultImport(type) || type === 5 || type === 55) { + this.next(); + node.importKind = kind; + } + } + return super.maybeParseDefaultImportSpecifier(node); + } + + parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, + isMaybeTypeOnly, + bindingType) { + const firstIdent = specifier.imported; + let specifierTypeKind = null; + if (firstIdent.type === "Identifier") { + if (firstIdent.name === "type") { + specifierTypeKind = "type"; + } else if (firstIdent.name === "typeof") { + specifierTypeKind = "typeof"; + } + } + let isBinding = false; + if (this.isContextual(93) && !this.isLookaheadContextual("as")) { + const as_ident = this.parseIdentifier(true); + if (specifierTypeKind !== null && !tokenIsKeywordOrIdentifier(this.state.type)) { + specifier.imported = as_ident; + specifier.importKind = specifierTypeKind; + specifier.local = cloneIdentifier(as_ident); + } else { + specifier.imported = firstIdent; + specifier.importKind = null; + specifier.local = this.parseIdentifier(); + } + } else { + if (specifierTypeKind !== null && tokenIsKeywordOrIdentifier(this.state.type)) { + specifier.imported = this.parseIdentifier(true); + specifier.importKind = specifierTypeKind; + } else { + if (importedIsString) { + throw this.raise(Errors.ImportBindingIsString, { + at: specifier, + importName: firstIdent.value + }); + } + specifier.imported = firstIdent; + specifier.importKind = null; + } + if (this.eatContextual(93)) { + specifier.local = this.parseIdentifier(); + } else { + isBinding = true; + specifier.local = cloneIdentifier(specifier.imported); + } + } + const specifierIsTypeImport = hasTypeImportKind(specifier); + if (isInTypeOnlyImport && specifierIsTypeImport) { + this.raise(FlowErrors.ImportTypeShorthandOnlyInPureImport, { + at: specifier + }); + } + if (isInTypeOnlyImport || specifierIsTypeImport) { + this.checkReservedType(specifier.local.name, specifier.local.loc.start, true); + } + if (isBinding && !isInTypeOnlyImport && !specifierIsTypeImport) { + this.checkReservedWord(specifier.local.name, specifier.loc.start, true, true); + } + return this.finishImportSpecifier(specifier, "ImportSpecifier"); + } + parseBindingAtom() { + switch (this.state.type) { + case 78: + return this.parseIdentifier(true); + default: + return super.parseBindingAtom(); + } + } + + parseFunctionParams(node, allowModifiers) { + const kind = node.kind; + if (kind !== "get" && kind !== "set" && this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } + super.parseFunctionParams(node, allowModifiers); + } + + parseVarId(decl, kind) { + super.parseVarId(decl, kind); + if (this.match(14)) { + decl.id.typeAnnotation = this.flowParseTypeAnnotation(); + this.resetEndLocation(decl.id); + } + } + + parseAsyncArrowFromCallExpression(node, call) { + if (this.match(14)) { + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + this.state.noAnonFunctionType = true; + node.returnType = this.flowParseTypeAnnotation(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + } + return super.parseAsyncArrowFromCallExpression(node, call); + } + + shouldParseAsyncArrow() { + return this.match(14) || super.shouldParseAsyncArrow(); + } + + parseMaybeAssign(refExpressionErrors, afterLeftParse) { + var _jsx; + let state = null; + let jsx; + if (this.hasPlugin("jsx") && (this.match(140) || this.match(47))) { + state = this.state.clone(); + jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state); + + if (!jsx.error) return jsx.node; + + const { + context + } = this.state; + const currentContext = context[context.length - 1]; + if (currentContext === types.j_oTag || currentContext === types.j_expr) { + context.pop(); + } + } + if ((_jsx = jsx) != null && _jsx.error || this.match(47)) { + var _jsx2, _jsx3; + state = state || this.state.clone(); + let typeParameters; + const arrow = this.tryParse(abort => { + var _arrowExpression$extr; + typeParameters = this.flowParseTypeParameterDeclaration(); + const arrowExpression = this.forwardNoArrowParamsConversionAt(typeParameters, () => { + const result = super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + this.resetStartLocationFromNode(result, typeParameters); + return result; + }); + + if ((_arrowExpression$extr = arrowExpression.extra) != null && _arrowExpression$extr.parenthesized) abort(); + + const expr = this.maybeUnwrapTypeCastExpression(arrowExpression); + if (expr.type !== "ArrowFunctionExpression") abort(); + expr.typeParameters = typeParameters; + this.resetStartLocationFromNode(expr, typeParameters); + return arrowExpression; + }, state); + let arrowExpression = null; + if (arrow.node && + this.maybeUnwrapTypeCastExpression(arrow.node).type === "ArrowFunctionExpression") { + if (!arrow.error && !arrow.aborted) { + if (arrow.node.async) { + this.raise(FlowErrors.UnexpectedTypeParameterBeforeAsyncArrowFunction, { + at: typeParameters + }); + } + return arrow.node; + } + + arrowExpression = arrow.node; + } + + if ((_jsx2 = jsx) != null && _jsx2.node) { + this.state = jsx.failState; + return jsx.node; + } + if (arrowExpression) { + this.state = arrow.failState; + return arrowExpression; + } + if ((_jsx3 = jsx) != null && _jsx3.thrown) throw jsx.error; + if (arrow.thrown) throw arrow.error; + + throw this.raise(FlowErrors.UnexpectedTokenAfterTypeParameter, { + at: typeParameters + }); + } + return super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + } + + parseArrow(node) { + if (this.match(14)) { + const result = this.tryParse(() => { + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + this.state.noAnonFunctionType = true; + const typeNode = this.startNode(); + [typeNode.typeAnnotation, + node.predicate] = this.flowParseTypeAndPredicateInitialiser(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + if (this.canInsertSemicolon()) this.unexpected(); + if (!this.match(19)) this.unexpected(); + return typeNode; + }); + if (result.thrown) return null; + + if (result.error) this.state = result.failState; + + node.returnType = result.node.typeAnnotation ? this.finishNode(result.node, "TypeAnnotation") : null; + } + return super.parseArrow(node); + } + shouldParseArrow(params) { + return this.match(14) || super.shouldParseArrow(params); + } + setArrowFunctionParameters(node, params) { + if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) { + node.params = params; + } else { + super.setArrowFunctionParameters(node, params); + } + } + checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged = true) { + if (isArrowFunction && this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) { + return; + } + + for (let i = 0; i < node.params.length; i++) { + if (this.isThisParam(node.params[i]) && i > 0) { + this.raise(FlowErrors.ThisParamMustBeFirst, { + at: node.params[i] + }); + } + } + return super.checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged); + } + parseParenAndDistinguishExpression(canBeArrow) { + return super.parseParenAndDistinguishExpression(canBeArrow && this.state.noArrowAt.indexOf(this.state.start) === -1); + } + parseSubscripts(base, startLoc, noCalls) { + if (base.type === "Identifier" && base.name === "async" && this.state.noArrowAt.indexOf(startLoc.index) !== -1) { + this.next(); + const node = this.startNodeAt(startLoc); + node.callee = base; + node.arguments = super.parseCallExpressionArguments(11, false); + base = this.finishNode(node, "CallExpression"); + } else if (base.type === "Identifier" && base.name === "async" && this.match(47)) { + const state = this.state.clone(); + const arrow = this.tryParse(abort => this.parseAsyncArrowWithTypeParameters(startLoc) || abort(), state); + + if (!arrow.error && !arrow.aborted) return arrow.node; + const result = this.tryParse(() => super.parseSubscripts(base, startLoc, noCalls), state); + if (result.node && !result.error) return result.node; + if (arrow.node) { + this.state = arrow.failState; + return arrow.node; + } + if (result.node) { + this.state = result.failState; + return result.node; + } + throw arrow.error || result.error; + } + return super.parseSubscripts(base, startLoc, noCalls); + } + parseSubscript(base, startLoc, noCalls, subscriptState) { + if (this.match(18) && this.isLookaheadToken_lt()) { + subscriptState.optionalChainMember = true; + if (noCalls) { + subscriptState.stop = true; + return base; + } + this.next(); + const node = this.startNodeAt(startLoc); + node.callee = base; + node.typeArguments = this.flowParseTypeParameterInstantiation(); + this.expect(10); + node.arguments = this.parseCallExpressionArguments(11, false); + node.optional = true; + return this.finishCallExpression(node, true); + } else if (!noCalls && this.shouldParseTypes() && this.match(47)) { + const node = this.startNodeAt(startLoc); + node.callee = base; + const result = this.tryParse(() => { + node.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew(); + this.expect(10); + node.arguments = super.parseCallExpressionArguments(11, false); + if (subscriptState.optionalChainMember) { + node.optional = false; + } + return this.finishCallExpression(node, subscriptState.optionalChainMember); + }); + if (result.node) { + if (result.error) this.state = result.failState; + return result.node; + } + } + return super.parseSubscript(base, startLoc, noCalls, subscriptState); + } + parseNewCallee(node) { + super.parseNewCallee(node); + let targs = null; + if (this.shouldParseTypes() && this.match(47)) { + targs = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node; + } + node.typeArguments = targs; + } + parseAsyncArrowWithTypeParameters(startLoc) { + const node = this.startNodeAt(startLoc); + this.parseFunctionParams(node); + if (!this.parseArrow(node)) return; + return super.parseArrowExpression(node, undefined, true); + } + readToken_mult_modulo(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (code === 42 && next === 47 && this.state.hasFlowComment) { + this.state.hasFlowComment = false; + this.state.pos += 2; + this.nextToken(); + return; + } + super.readToken_mult_modulo(code); + } + readToken_pipe_amp(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (code === 124 && next === 125) { + this.finishOp(9, 2); + return; + } + super.readToken_pipe_amp(code); + } + parseTopLevel(file, program) { + const fileNode = super.parseTopLevel(file, program); + if (this.state.hasFlowComment) { + this.raise(FlowErrors.UnterminatedFlowComment, { + at: this.state.curPosition() + }); + } + return fileNode; + } + skipBlockComment() { + if (this.hasPlugin("flowComments") && this.skipFlowComment()) { + if (this.state.hasFlowComment) { + throw this.raise(FlowErrors.NestedFlowComment, { + at: this.state.startLoc + }); + } + this.hasFlowCommentCompletion(); + const commentSkip = this.skipFlowComment(); + if (commentSkip) { + this.state.pos += commentSkip; + this.state.hasFlowComment = true; + } + return; + } + return super.skipBlockComment(this.state.hasFlowComment ? "*-/" : "*/"); + } + skipFlowComment() { + const { + pos + } = this.state; + let shiftToFirstNonWhiteSpace = 2; + while ([32, 9].includes( + this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace))) { + shiftToFirstNonWhiteSpace++; + } + const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos); + const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1); + if (ch2 === 58 && ch3 === 58) { + return shiftToFirstNonWhiteSpace + 2; + } + + if (this.input.slice(shiftToFirstNonWhiteSpace + pos, shiftToFirstNonWhiteSpace + pos + 12) === "flow-include") { + return shiftToFirstNonWhiteSpace + 12; + } + + if (ch2 === 58 && ch3 !== 58) { + return shiftToFirstNonWhiteSpace; + } + + return false; + } + hasFlowCommentCompletion() { + const end = this.input.indexOf("*/", this.state.pos); + if (end === -1) { + throw this.raise(Errors.UnterminatedComment, { + at: this.state.curPosition() + }); + } + } + + flowEnumErrorBooleanMemberNotInitialized(loc, { + enumName, + memberName + }) { + this.raise(FlowErrors.EnumBooleanMemberNotInitialized, { + at: loc, + memberName, + enumName + }); + } + flowEnumErrorInvalidMemberInitializer(loc, enumContext) { + return this.raise(!enumContext.explicitType ? FlowErrors.EnumInvalidMemberInitializerUnknownType : enumContext.explicitType === "symbol" ? FlowErrors.EnumInvalidMemberInitializerSymbolType : FlowErrors.EnumInvalidMemberInitializerPrimaryType, Object.assign({ + at: loc + }, enumContext)); + } + flowEnumErrorNumberMemberNotInitialized(loc, { + enumName, + memberName + }) { + this.raise(FlowErrors.EnumNumberMemberNotInitialized, { + at: loc, + enumName, + memberName + }); + } + flowEnumErrorStringMemberInconsistentlyInitailized(node, { + enumName + }) { + this.raise(FlowErrors.EnumStringMemberInconsistentlyInitailized, { + at: node, + enumName + }); + } + flowEnumMemberInit() { + const startLoc = this.state.startLoc; + const endOfInit = () => this.match(12) || this.match(8); + switch (this.state.type) { + case 132: + { + const literal = this.parseNumericLiteral(this.state.value); + if (endOfInit()) { + return { + type: "number", + loc: literal.loc.start, + value: literal + }; + } + return { + type: "invalid", + loc: startLoc + }; + } + case 131: + { + const literal = this.parseStringLiteral(this.state.value); + if (endOfInit()) { + return { + type: "string", + loc: literal.loc.start, + value: literal + }; + } + return { + type: "invalid", + loc: startLoc + }; + } + case 85: + case 86: + { + const literal = this.parseBooleanLiteral(this.match(85)); + if (endOfInit()) { + return { + type: "boolean", + loc: literal.loc.start, + value: literal + }; + } + return { + type: "invalid", + loc: startLoc + }; + } + default: + return { + type: "invalid", + loc: startLoc + }; + } + } + flowEnumMemberRaw() { + const loc = this.state.startLoc; + const id = this.parseIdentifier(true); + const init = this.eat(29) ? this.flowEnumMemberInit() : { + type: "none", + loc + }; + return { + id, + init + }; + } + flowEnumCheckExplicitTypeMismatch(loc, context, expectedType) { + const { + explicitType + } = context; + if (explicitType === null) { + return; + } + if (explicitType !== expectedType) { + this.flowEnumErrorInvalidMemberInitializer(loc, context); + } + } + flowEnumMembers({ + enumName, + explicitType + }) { + const seenNames = new Set(); + const members = { + booleanMembers: [], + numberMembers: [], + stringMembers: [], + defaultedMembers: [] + }; + let hasUnknownMembers = false; + while (!this.match(8)) { + if (this.eat(21)) { + hasUnknownMembers = true; + break; + } + const memberNode = this.startNode(); + const { + id, + init + } = this.flowEnumMemberRaw(); + const memberName = id.name; + if (memberName === "") { + continue; + } + if (/^[a-z]/.test(memberName)) { + this.raise(FlowErrors.EnumInvalidMemberName, { + at: id, + memberName, + suggestion: memberName[0].toUpperCase() + memberName.slice(1), + enumName + }); + } + if (seenNames.has(memberName)) { + this.raise(FlowErrors.EnumDuplicateMemberName, { + at: id, + memberName, + enumName + }); + } + seenNames.add(memberName); + const context = { + enumName, + explicitType, + memberName + }; + memberNode.id = id; + switch (init.type) { + case "boolean": + { + this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "boolean"); + memberNode.init = init.value; + members.booleanMembers.push(this.finishNode(memberNode, "EnumBooleanMember")); + break; + } + case "number": + { + this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "number"); + memberNode.init = init.value; + members.numberMembers.push(this.finishNode(memberNode, "EnumNumberMember")); + break; + } + case "string": + { + this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "string"); + memberNode.init = init.value; + members.stringMembers.push(this.finishNode(memberNode, "EnumStringMember")); + break; + } + case "invalid": + { + throw this.flowEnumErrorInvalidMemberInitializer(init.loc, context); + } + case "none": + { + switch (explicitType) { + case "boolean": + this.flowEnumErrorBooleanMemberNotInitialized(init.loc, context); + break; + case "number": + this.flowEnumErrorNumberMemberNotInitialized(init.loc, context); + break; + default: + members.defaultedMembers.push(this.finishNode(memberNode, "EnumDefaultedMember")); + } + } + } + if (!this.match(8)) { + this.expect(12); + } + } + return { + members, + hasUnknownMembers + }; + } + flowEnumStringMembers(initializedMembers, defaultedMembers, { + enumName + }) { + if (initializedMembers.length === 0) { + return defaultedMembers; + } else if (defaultedMembers.length === 0) { + return initializedMembers; + } else if (defaultedMembers.length > initializedMembers.length) { + for (const member of initializedMembers) { + this.flowEnumErrorStringMemberInconsistentlyInitailized(member, { + enumName + }); + } + return defaultedMembers; + } else { + for (const member of defaultedMembers) { + this.flowEnumErrorStringMemberInconsistentlyInitailized(member, { + enumName + }); + } + return initializedMembers; + } + } + flowEnumParseExplicitType({ + enumName + }) { + if (!this.eatContextual(101)) return null; + if (!tokenIsIdentifier(this.state.type)) { + throw this.raise(FlowErrors.EnumInvalidExplicitTypeUnknownSupplied, { + at: this.state.startLoc, + enumName + }); + } + const { + value + } = this.state; + this.next(); + if (value !== "boolean" && value !== "number" && value !== "string" && value !== "symbol") { + this.raise(FlowErrors.EnumInvalidExplicitType, { + at: this.state.startLoc, + enumName, + invalidEnumType: value + }); + } + return value; + } + flowEnumBody(node, id) { + const enumName = id.name; + const nameLoc = id.loc.start; + const explicitType = this.flowEnumParseExplicitType({ + enumName + }); + this.expect(5); + const { + members, + hasUnknownMembers + } = this.flowEnumMembers({ + enumName, + explicitType + }); + node.hasUnknownMembers = hasUnknownMembers; + switch (explicitType) { + case "boolean": + node.explicitType = true; + node.members = members.booleanMembers; + this.expect(8); + return this.finishNode(node, "EnumBooleanBody"); + case "number": + node.explicitType = true; + node.members = members.numberMembers; + this.expect(8); + return this.finishNode(node, "EnumNumberBody"); + case "string": + node.explicitType = true; + node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, { + enumName + }); + this.expect(8); + return this.finishNode(node, "EnumStringBody"); + case "symbol": + node.members = members.defaultedMembers; + this.expect(8); + return this.finishNode(node, "EnumSymbolBody"); + default: + { + const empty = () => { + node.members = []; + this.expect(8); + return this.finishNode(node, "EnumStringBody"); + }; + node.explicitType = false; + const boolsLen = members.booleanMembers.length; + const numsLen = members.numberMembers.length; + const strsLen = members.stringMembers.length; + const defaultedLen = members.defaultedMembers.length; + if (!boolsLen && !numsLen && !strsLen && !defaultedLen) { + return empty(); + } else if (!boolsLen && !numsLen) { + node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, { + enumName + }); + this.expect(8); + return this.finishNode(node, "EnumStringBody"); + } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) { + for (const member of members.defaultedMembers) { + this.flowEnumErrorBooleanMemberNotInitialized(member.loc.start, { + enumName, + memberName: member.id.name + }); + } + node.members = members.booleanMembers; + this.expect(8); + return this.finishNode(node, "EnumBooleanBody"); + } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) { + for (const member of members.defaultedMembers) { + this.flowEnumErrorNumberMemberNotInitialized(member.loc.start, { + enumName, + memberName: member.id.name + }); + } + node.members = members.numberMembers; + this.expect(8); + return this.finishNode(node, "EnumNumberBody"); + } else { + this.raise(FlowErrors.EnumInconsistentMemberValues, { + at: nameLoc, + enumName + }); + return empty(); + } + } + } + } + flowParseEnumDeclaration(node) { + const id = this.parseIdentifier(); + node.id = id; + node.body = this.flowEnumBody(this.startNode(), id); + return this.finishNode(node, "EnumDeclaration"); + } + + isLookaheadToken_lt() { + const next = this.nextTokenStart(); + if (this.input.charCodeAt(next) === 60) { + const afterNext = this.input.charCodeAt(next + 1); + return afterNext !== 60 && afterNext !== 61; + } + return false; + } + maybeUnwrapTypeCastExpression(node) { + return node.type === "TypeCastExpression" ? node.expression : node; + } +}); + +const entities = { + __proto__: null, + quot: "\u0022", + amp: "&", + apos: "\u0027", + lt: "<", + gt: ">", + nbsp: "\u00A0", + iexcl: "\u00A1", + cent: "\u00A2", + pound: "\u00A3", + curren: "\u00A4", + yen: "\u00A5", + brvbar: "\u00A6", + sect: "\u00A7", + uml: "\u00A8", + copy: "\u00A9", + ordf: "\u00AA", + laquo: "\u00AB", + not: "\u00AC", + shy: "\u00AD", + reg: "\u00AE", + macr: "\u00AF", + deg: "\u00B0", + plusmn: "\u00B1", + sup2: "\u00B2", + sup3: "\u00B3", + acute: "\u00B4", + micro: "\u00B5", + para: "\u00B6", + middot: "\u00B7", + cedil: "\u00B8", + sup1: "\u00B9", + ordm: "\u00BA", + raquo: "\u00BB", + frac14: "\u00BC", + frac12: "\u00BD", + frac34: "\u00BE", + iquest: "\u00BF", + Agrave: "\u00C0", + Aacute: "\u00C1", + Acirc: "\u00C2", + Atilde: "\u00C3", + Auml: "\u00C4", + Aring: "\u00C5", + AElig: "\u00C6", + Ccedil: "\u00C7", + Egrave: "\u00C8", + Eacute: "\u00C9", + Ecirc: "\u00CA", + Euml: "\u00CB", + Igrave: "\u00CC", + Iacute: "\u00CD", + Icirc: "\u00CE", + Iuml: "\u00CF", + ETH: "\u00D0", + Ntilde: "\u00D1", + Ograve: "\u00D2", + Oacute: "\u00D3", + Ocirc: "\u00D4", + Otilde: "\u00D5", + Ouml: "\u00D6", + times: "\u00D7", + Oslash: "\u00D8", + Ugrave: "\u00D9", + Uacute: "\u00DA", + Ucirc: "\u00DB", + Uuml: "\u00DC", + Yacute: "\u00DD", + THORN: "\u00DE", + szlig: "\u00DF", + agrave: "\u00E0", + aacute: "\u00E1", + acirc: "\u00E2", + atilde: "\u00E3", + auml: "\u00E4", + aring: "\u00E5", + aelig: "\u00E6", + ccedil: "\u00E7", + egrave: "\u00E8", + eacute: "\u00E9", + ecirc: "\u00EA", + euml: "\u00EB", + igrave: "\u00EC", + iacute: "\u00ED", + icirc: "\u00EE", + iuml: "\u00EF", + eth: "\u00F0", + ntilde: "\u00F1", + ograve: "\u00F2", + oacute: "\u00F3", + ocirc: "\u00F4", + otilde: "\u00F5", + ouml: "\u00F6", + divide: "\u00F7", + oslash: "\u00F8", + ugrave: "\u00F9", + uacute: "\u00FA", + ucirc: "\u00FB", + uuml: "\u00FC", + yacute: "\u00FD", + thorn: "\u00FE", + yuml: "\u00FF", + OElig: "\u0152", + oelig: "\u0153", + Scaron: "\u0160", + scaron: "\u0161", + Yuml: "\u0178", + fnof: "\u0192", + circ: "\u02C6", + tilde: "\u02DC", + Alpha: "\u0391", + Beta: "\u0392", + Gamma: "\u0393", + Delta: "\u0394", + Epsilon: "\u0395", + Zeta: "\u0396", + Eta: "\u0397", + Theta: "\u0398", + Iota: "\u0399", + Kappa: "\u039A", + Lambda: "\u039B", + Mu: "\u039C", + Nu: "\u039D", + Xi: "\u039E", + Omicron: "\u039F", + Pi: "\u03A0", + Rho: "\u03A1", + Sigma: "\u03A3", + Tau: "\u03A4", + Upsilon: "\u03A5", + Phi: "\u03A6", + Chi: "\u03A7", + Psi: "\u03A8", + Omega: "\u03A9", + alpha: "\u03B1", + beta: "\u03B2", + gamma: "\u03B3", + delta: "\u03B4", + epsilon: "\u03B5", + zeta: "\u03B6", + eta: "\u03B7", + theta: "\u03B8", + iota: "\u03B9", + kappa: "\u03BA", + lambda: "\u03BB", + mu: "\u03BC", + nu: "\u03BD", + xi: "\u03BE", + omicron: "\u03BF", + pi: "\u03C0", + rho: "\u03C1", + sigmaf: "\u03C2", + sigma: "\u03C3", + tau: "\u03C4", + upsilon: "\u03C5", + phi: "\u03C6", + chi: "\u03C7", + psi: "\u03C8", + omega: "\u03C9", + thetasym: "\u03D1", + upsih: "\u03D2", + piv: "\u03D6", + ensp: "\u2002", + emsp: "\u2003", + thinsp: "\u2009", + zwnj: "\u200C", + zwj: "\u200D", + lrm: "\u200E", + rlm: "\u200F", + ndash: "\u2013", + mdash: "\u2014", + lsquo: "\u2018", + rsquo: "\u2019", + sbquo: "\u201A", + ldquo: "\u201C", + rdquo: "\u201D", + bdquo: "\u201E", + dagger: "\u2020", + Dagger: "\u2021", + bull: "\u2022", + hellip: "\u2026", + permil: "\u2030", + prime: "\u2032", + Prime: "\u2033", + lsaquo: "\u2039", + rsaquo: "\u203A", + oline: "\u203E", + frasl: "\u2044", + euro: "\u20AC", + image: "\u2111", + weierp: "\u2118", + real: "\u211C", + trade: "\u2122", + alefsym: "\u2135", + larr: "\u2190", + uarr: "\u2191", + rarr: "\u2192", + darr: "\u2193", + harr: "\u2194", + crarr: "\u21B5", + lArr: "\u21D0", + uArr: "\u21D1", + rArr: "\u21D2", + dArr: "\u21D3", + hArr: "\u21D4", + forall: "\u2200", + part: "\u2202", + exist: "\u2203", + empty: "\u2205", + nabla: "\u2207", + isin: "\u2208", + notin: "\u2209", + ni: "\u220B", + prod: "\u220F", + sum: "\u2211", + minus: "\u2212", + lowast: "\u2217", + radic: "\u221A", + prop: "\u221D", + infin: "\u221E", + ang: "\u2220", + and: "\u2227", + or: "\u2228", + cap: "\u2229", + cup: "\u222A", + int: "\u222B", + there4: "\u2234", + sim: "\u223C", + cong: "\u2245", + asymp: "\u2248", + ne: "\u2260", + equiv: "\u2261", + le: "\u2264", + ge: "\u2265", + sub: "\u2282", + sup: "\u2283", + nsub: "\u2284", + sube: "\u2286", + supe: "\u2287", + oplus: "\u2295", + otimes: "\u2297", + perp: "\u22A5", + sdot: "\u22C5", + lceil: "\u2308", + rceil: "\u2309", + lfloor: "\u230A", + rfloor: "\u230B", + lang: "\u2329", + rang: "\u232A", + loz: "\u25CA", + spades: "\u2660", + clubs: "\u2663", + hearts: "\u2665", + diams: "\u2666" +}; + +const JsxErrors = ParseErrorEnum`jsx`({ + AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression.", + MissingClosingTagElement: ({ + openingTagName + }) => `Expected corresponding JSX closing tag for <${openingTagName}>.`, + MissingClosingTagFragment: "Expected corresponding JSX closing tag for <>.", + UnexpectedSequenceExpression: "Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?", + UnexpectedToken: ({ + unexpected, + HTMLEntity + }) => `Unexpected token \`${unexpected}\`. Did you mean \`${HTMLEntity}\` or \`{'${unexpected}'}\`?`, + UnsupportedJsxValue: "JSX value should be either an expression or a quoted JSX text.", + UnterminatedJsxContent: "Unterminated JSX contents.", + UnwrappedAdjacentJSXElements: "Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...?" +}); + +function isFragment(object) { + return object ? object.type === "JSXOpeningFragment" || object.type === "JSXClosingFragment" : false; +} + +function getQualifiedJSXName(object) { + if (object.type === "JSXIdentifier") { + return object.name; + } + if (object.type === "JSXNamespacedName") { + return object.namespace.name + ":" + object.name.name; + } + if (object.type === "JSXMemberExpression") { + return getQualifiedJSXName(object.object) + "." + getQualifiedJSXName(object.property); + } + + throw new Error("Node had unexpected type: " + object.type); +} +var jsx = (superClass => class JSXParserMixin extends superClass { + + jsxReadToken() { + let out = ""; + let chunkStart = this.state.pos; + for (;;) { + if (this.state.pos >= this.length) { + throw this.raise(JsxErrors.UnterminatedJsxContent, { + at: this.state.startLoc + }); + } + const ch = this.input.charCodeAt(this.state.pos); + switch (ch) { + case 60: + case 123: + if (this.state.pos === this.state.start) { + if (ch === 60 && this.state.canStartJSXElement) { + ++this.state.pos; + return this.finishToken(140); + } + return super.getTokenFromCode(ch); + } + out += this.input.slice(chunkStart, this.state.pos); + return this.finishToken(139, out); + case 38: + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadEntity(); + chunkStart = this.state.pos; + break; + case 62: + case 125: + + default: + if (isNewLine(ch)) { + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadNewLine(true); + chunkStart = this.state.pos; + } else { + ++this.state.pos; + } + } + } + } + jsxReadNewLine(normalizeCRLF) { + const ch = this.input.charCodeAt(this.state.pos); + let out; + ++this.state.pos; + if (ch === 13 && this.input.charCodeAt(this.state.pos) === 10) { + ++this.state.pos; + out = normalizeCRLF ? "\n" : "\r\n"; + } else { + out = String.fromCharCode(ch); + } + ++this.state.curLine; + this.state.lineStart = this.state.pos; + return out; + } + jsxReadString(quote) { + let out = ""; + let chunkStart = ++this.state.pos; + for (;;) { + if (this.state.pos >= this.length) { + throw this.raise(Errors.UnterminatedString, { + at: this.state.startLoc + }); + } + const ch = this.input.charCodeAt(this.state.pos); + if (ch === quote) break; + if (ch === 38) { + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadEntity(); + chunkStart = this.state.pos; + } else if (isNewLine(ch)) { + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadNewLine(false); + chunkStart = this.state.pos; + } else { + ++this.state.pos; + } + } + out += this.input.slice(chunkStart, this.state.pos++); + return this.finishToken(131, out); + } + jsxReadEntity() { + const startPos = ++this.state.pos; + if (this.codePointAtPos(this.state.pos) === 35) { + ++this.state.pos; + let radix = 10; + if (this.codePointAtPos(this.state.pos) === 120) { + radix = 16; + ++this.state.pos; + } + const codePoint = this.readInt(radix, undefined, false, "bail"); + if (codePoint !== null && this.codePointAtPos(this.state.pos) === 59) { + ++this.state.pos; + return String.fromCodePoint(codePoint); + } + } else { + let count = 0; + let semi = false; + while (count++ < 10 && this.state.pos < this.length && !(semi = this.codePointAtPos(this.state.pos) == 59)) { + ++this.state.pos; + } + if (semi) { + const desc = this.input.slice(startPos, this.state.pos); + const entity = entities[desc]; + ++this.state.pos; + if (entity) { + return entity; + } + } + } + + this.state.pos = startPos; + return "&"; + } + + jsxReadWord() { + let ch; + const start = this.state.pos; + do { + ch = this.input.charCodeAt(++this.state.pos); + } while (isIdentifierChar(ch) || ch === 45); + return this.finishToken(138, this.input.slice(start, this.state.pos)); + } + + jsxParseIdentifier() { + const node = this.startNode(); + if (this.match(138)) { + node.name = this.state.value; + } else if (tokenIsKeyword(this.state.type)) { + node.name = tokenLabelName(this.state.type); + } else { + this.unexpected(); + } + this.next(); + return this.finishNode(node, "JSXIdentifier"); + } + + jsxParseNamespacedName() { + const startLoc = this.state.startLoc; + const name = this.jsxParseIdentifier(); + if (!this.eat(14)) return name; + const node = this.startNodeAt(startLoc); + node.namespace = name; + node.name = this.jsxParseIdentifier(); + return this.finishNode(node, "JSXNamespacedName"); + } + + jsxParseElementName() { + const startLoc = this.state.startLoc; + let node = this.jsxParseNamespacedName(); + if (node.type === "JSXNamespacedName") { + return node; + } + while (this.eat(16)) { + const newNode = this.startNodeAt(startLoc); + newNode.object = node; + newNode.property = this.jsxParseIdentifier(); + node = this.finishNode(newNode, "JSXMemberExpression"); + } + return node; + } + + jsxParseAttributeValue() { + let node; + switch (this.state.type) { + case 5: + node = this.startNode(); + this.setContext(types.brace); + this.next(); + node = this.jsxParseExpressionContainer(node, types.j_oTag); + if (node.expression.type === "JSXEmptyExpression") { + this.raise(JsxErrors.AttributeIsEmpty, { + at: node + }); + } + return node; + case 140: + case 131: + return this.parseExprAtom(); + default: + throw this.raise(JsxErrors.UnsupportedJsxValue, { + at: this.state.startLoc + }); + } + } + + jsxParseEmptyExpression() { + const node = this.startNodeAt(this.state.lastTokEndLoc); + return this.finishNodeAt(node, "JSXEmptyExpression", this.state.startLoc); + } + + jsxParseSpreadChild(node) { + this.next(); + node.expression = this.parseExpression(); + this.setContext(types.j_expr); + this.state.canStartJSXElement = true; + this.expect(8); + return this.finishNode(node, "JSXSpreadChild"); + } + + jsxParseExpressionContainer(node, previousContext) { + if (this.match(8)) { + node.expression = this.jsxParseEmptyExpression(); + } else { + const expression = this.parseExpression(); + node.expression = expression; + } + this.setContext(previousContext); + this.state.canStartJSXElement = true; + this.expect(8); + return this.finishNode(node, "JSXExpressionContainer"); + } + + jsxParseAttribute() { + const node = this.startNode(); + if (this.match(5)) { + this.setContext(types.brace); + this.next(); + this.expect(21); + node.argument = this.parseMaybeAssignAllowIn(); + this.setContext(types.j_oTag); + this.state.canStartJSXElement = true; + this.expect(8); + return this.finishNode(node, "JSXSpreadAttribute"); + } + node.name = this.jsxParseNamespacedName(); + node.value = this.eat(29) ? this.jsxParseAttributeValue() : null; + return this.finishNode(node, "JSXAttribute"); + } + + jsxParseOpeningElementAt(startLoc) { + const node = this.startNodeAt(startLoc); + if (this.eat(141)) { + return this.finishNode(node, "JSXOpeningFragment"); + } + node.name = this.jsxParseElementName(); + return this.jsxParseOpeningElementAfterName(node); + } + jsxParseOpeningElementAfterName(node) { + const attributes = []; + while (!this.match(56) && !this.match(141)) { + attributes.push(this.jsxParseAttribute()); + } + node.attributes = attributes; + node.selfClosing = this.eat(56); + this.expect(141); + return this.finishNode(node, "JSXOpeningElement"); + } + + jsxParseClosingElementAt(startLoc) { + const node = this.startNodeAt(startLoc); + if (this.eat(141)) { + return this.finishNode(node, "JSXClosingFragment"); + } + node.name = this.jsxParseElementName(); + this.expect(141); + return this.finishNode(node, "JSXClosingElement"); + } + + jsxParseElementAt(startLoc) { + const node = this.startNodeAt(startLoc); + const children = []; + const openingElement = this.jsxParseOpeningElementAt(startLoc); + let closingElement = null; + if (!openingElement.selfClosing) { + contents: for (;;) { + switch (this.state.type) { + case 140: + startLoc = this.state.startLoc; + this.next(); + if (this.eat(56)) { + closingElement = this.jsxParseClosingElementAt(startLoc); + break contents; + } + children.push(this.jsxParseElementAt(startLoc)); + break; + case 139: + children.push(this.parseExprAtom()); + break; + case 5: + { + const node = this.startNode(); + this.setContext(types.brace); + this.next(); + if (this.match(21)) { + children.push(this.jsxParseSpreadChild(node)); + } else { + children.push(this.jsxParseExpressionContainer(node, types.j_expr)); + } + break; + } + default: + throw this.unexpected(); + } + } + if (isFragment(openingElement) && !isFragment(closingElement) && closingElement !== null) { + this.raise(JsxErrors.MissingClosingTagFragment, { + at: closingElement + }); + } else if (!isFragment(openingElement) && isFragment(closingElement)) { + this.raise(JsxErrors.MissingClosingTagElement, { + at: closingElement, + openingTagName: getQualifiedJSXName(openingElement.name) + }); + } else if (!isFragment(openingElement) && !isFragment(closingElement)) { + if (getQualifiedJSXName(closingElement.name) !== getQualifiedJSXName(openingElement.name)) { + this.raise(JsxErrors.MissingClosingTagElement, { + at: closingElement, + openingTagName: getQualifiedJSXName(openingElement.name) + }); + } + } + } + if (isFragment(openingElement)) { + node.openingFragment = openingElement; + node.closingFragment = closingElement; + } else { + node.openingElement = openingElement; + node.closingElement = closingElement; + } + node.children = children; + if (this.match(47)) { + throw this.raise(JsxErrors.UnwrappedAdjacentJSXElements, { + at: this.state.startLoc + }); + } + return isFragment(openingElement) ? this.finishNode(node, "JSXFragment") : this.finishNode(node, "JSXElement"); + } + + jsxParseElement() { + const startLoc = this.state.startLoc; + this.next(); + return this.jsxParseElementAt(startLoc); + } + setContext(newContext) { + const { + context + } = this.state; + context[context.length - 1] = newContext; + } + + parseExprAtom(refExpressionErrors) { + if (this.match(139)) { + return this.parseLiteral(this.state.value, "JSXText"); + } else if (this.match(140)) { + return this.jsxParseElement(); + } else if (this.match(47) && this.input.charCodeAt(this.state.pos) !== 33) { + this.replaceToken(140); + return this.jsxParseElement(); + } else { + return super.parseExprAtom(refExpressionErrors); + } + } + skipSpace() { + const curContext = this.curContext(); + if (!curContext.preserveSpace) super.skipSpace(); + } + getTokenFromCode(code) { + const context = this.curContext(); + if (context === types.j_expr) { + return this.jsxReadToken(); + } + if (context === types.j_oTag || context === types.j_cTag) { + if (isIdentifierStart(code)) { + return this.jsxReadWord(); + } + if (code === 62) { + ++this.state.pos; + return this.finishToken(141); + } + if ((code === 34 || code === 39) && context === types.j_oTag) { + return this.jsxReadString(code); + } + } + if (code === 60 && this.state.canStartJSXElement && this.input.charCodeAt(this.state.pos + 1) !== 33) { + ++this.state.pos; + return this.finishToken(140); + } + return super.getTokenFromCode(code); + } + updateContext(prevType) { + const { + context, + type + } = this.state; + if (type === 56 && prevType === 140) { + context.splice(-2, 2, types.j_cTag); + this.state.canStartJSXElement = false; + } else if (type === 140) { + context.push(types.j_oTag); + } else if (type === 141) { + const out = context[context.length - 1]; + if (out === types.j_oTag && prevType === 56 || out === types.j_cTag) { + context.pop(); + this.state.canStartJSXElement = context[context.length - 1] === types.j_expr; + } else { + this.setContext(types.j_expr); + this.state.canStartJSXElement = true; + } + } else { + this.state.canStartJSXElement = tokenComesBeforeExpression(type); + } + } +}); + +class TypeScriptScope extends Scope { + constructor(...args) { + super(...args); + this.types = new Set(); + this.enums = new Set(); + this.constEnums = new Set(); + this.classes = new Set(); + this.exportOnlyBindings = new Set(); + } +} + +class TypeScriptScopeHandler extends ScopeHandler { + constructor(...args) { + super(...args); + this.importsStack = []; + } + createScope(flags) { + this.importsStack.push(new Set()); + + return new TypeScriptScope(flags); + } + enter(flags) { + if (flags == SCOPE_TS_MODULE) { + this.importsStack.push(new Set()); + } + super.enter(flags); + } + exit() { + const flags = super.exit(); + if (flags == SCOPE_TS_MODULE) { + this.importsStack.pop(); + } + return flags; + } + hasImport(name, allowShadow) { + const len = this.importsStack.length; + if (this.importsStack[len - 1].has(name)) { + return true; + } + if (!allowShadow && len > 1) { + for (let i = 0; i < len - 1; i++) { + if (this.importsStack[i].has(name)) return true; + } + } + return false; + } + declareName(name, bindingType, loc) { + if (bindingType & BIND_FLAGS_TS_IMPORT) { + if (this.hasImport(name, true)) { + this.parser.raise(Errors.VarRedeclaration, { + at: loc, + identifierName: name + }); + } + this.importsStack[this.importsStack.length - 1].add(name); + return; + } + const scope = this.currentScope(); + if (bindingType & BIND_FLAGS_TS_EXPORT_ONLY) { + this.maybeExportDefined(scope, name); + scope.exportOnlyBindings.add(name); + return; + } + super.declareName(name, bindingType, loc); + if (bindingType & BIND_KIND_TYPE) { + if (!(bindingType & BIND_KIND_VALUE)) { + this.checkRedeclarationInScope(scope, name, bindingType, loc); + this.maybeExportDefined(scope, name); + } + scope.types.add(name); + } + if (bindingType & BIND_FLAGS_TS_ENUM) scope.enums.add(name); + if (bindingType & BIND_FLAGS_TS_CONST_ENUM) scope.constEnums.add(name); + if (bindingType & BIND_FLAGS_CLASS) scope.classes.add(name); + } + isRedeclaredInScope(scope, name, bindingType) { + if (scope.enums.has(name)) { + if (bindingType & BIND_FLAGS_TS_ENUM) { + const isConst = !!(bindingType & BIND_FLAGS_TS_CONST_ENUM); + const wasConst = scope.constEnums.has(name); + return isConst !== wasConst; + } + return true; + } + if (bindingType & BIND_FLAGS_CLASS && scope.classes.has(name)) { + if (scope.lexical.has(name)) { + return !!(bindingType & BIND_KIND_VALUE); + } else { + return false; + } + } + if (bindingType & BIND_KIND_TYPE && scope.types.has(name)) { + return true; + } + return super.isRedeclaredInScope(scope, name, bindingType); + } + checkLocalExport(id) { + const { + name + } = id; + if (this.hasImport(name)) return; + const len = this.scopeStack.length; + for (let i = len - 1; i >= 0; i--) { + const scope = this.scopeStack[i]; + if (scope.types.has(name) || scope.exportOnlyBindings.has(name)) return; + } + super.checkLocalExport(id); + } +} + +const getOwn$1 = (object, key) => Object.hasOwnProperty.call(object, key) && object[key]; +function nonNull(x) { + if (x == null) { + throw new Error(`Unexpected ${x} value.`); + } + return x; +} +function assert(x) { + if (!x) { + throw new Error("Assert fail"); + } +} +const TSErrors = ParseErrorEnum`typescript`({ + AbstractMethodHasImplementation: ({ + methodName + }) => `Method '${methodName}' cannot have an implementation because it is marked abstract.`, + AbstractPropertyHasInitializer: ({ + propertyName + }) => `Property '${propertyName}' cannot have an initializer because it is marked abstract.`, + AccesorCannotDeclareThisParameter: "'get' and 'set' accessors cannot declare 'this' parameters.", + AccesorCannotHaveTypeParameters: "An accessor cannot have type parameters.", + AccessorCannotBeOptional: "An 'accessor' property cannot be declared optional.", + ClassMethodHasDeclare: "Class methods cannot have the 'declare' modifier.", + ClassMethodHasReadonly: "Class methods cannot have the 'readonly' modifier.", + ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference: "A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.", + ConstructorHasTypeParameters: "Type parameters cannot appear on a constructor declaration.", + DeclareAccessor: ({ + kind + }) => `'declare' is not allowed in ${kind}ters.`, + DeclareClassFieldHasInitializer: "Initializers are not allowed in ambient contexts.", + DeclareFunctionHasImplementation: "An implementation cannot be declared in ambient contexts.", + DuplicateAccessibilityModifier: + ({ + modifier + }) => `Accessibility modifier already seen.`, + DuplicateModifier: ({ + modifier + }) => `Duplicate modifier: '${modifier}'.`, + EmptyHeritageClauseType: ({ + token + }) => `'${token}' list cannot be empty.`, + EmptyTypeArguments: "Type argument list cannot be empty.", + EmptyTypeParameters: "Type parameter list cannot be empty.", + ExpectedAmbientAfterExportDeclare: "'export declare' must be followed by an ambient declaration.", + ImportAliasHasImportType: "An import alias can not use 'import type'.", + ImportReflectionHasImportType: "An `import module` declaration can not use `type` modifier", + IncompatibleModifiers: ({ + modifiers + }) => `'${modifiers[0]}' modifier cannot be used with '${modifiers[1]}' modifier.`, + IndexSignatureHasAbstract: "Index signatures cannot have the 'abstract' modifier.", + IndexSignatureHasAccessibility: ({ + modifier + }) => `Index signatures cannot have an accessibility modifier ('${modifier}').`, + IndexSignatureHasDeclare: "Index signatures cannot have the 'declare' modifier.", + IndexSignatureHasOverride: "'override' modifier cannot appear on an index signature.", + IndexSignatureHasStatic: "Index signatures cannot have the 'static' modifier.", + InitializerNotAllowedInAmbientContext: "Initializers are not allowed in ambient contexts.", + InvalidModifierOnTypeMember: ({ + modifier + }) => `'${modifier}' modifier cannot appear on a type member.`, + InvalidModifierOnTypeParameter: ({ + modifier + }) => `'${modifier}' modifier cannot appear on a type parameter.`, + InvalidModifierOnTypeParameterPositions: ({ + modifier + }) => `'${modifier}' modifier can only appear on a type parameter of a class, interface or type alias.`, + InvalidModifiersOrder: ({ + orderedModifiers + }) => `'${orderedModifiers[0]}' modifier must precede '${orderedModifiers[1]}' modifier.`, + InvalidPropertyAccessAfterInstantiationExpression: "Invalid property access after an instantiation expression. " + "You can either wrap the instantiation expression in parentheses, or delete the type arguments.", + InvalidTupleMemberLabel: "Tuple members must be labeled with a simple identifier.", + MissingInterfaceName: "'interface' declarations must be followed by an identifier.", + MixedLabeledAndUnlabeledElements: "Tuple members must all have names or all not have names.", + NonAbstractClassHasAbstractMethod: "Abstract methods can only appear within an abstract class.", + NonClassMethodPropertyHasAbstractModifer: "'abstract' modifier can only appear on a class, method, or property declaration.", + OptionalTypeBeforeRequired: "A required element cannot follow an optional element.", + OverrideNotInSubClass: "This member cannot have an 'override' modifier because its containing class does not extend another class.", + PatternIsOptional: "A binding pattern parameter cannot be optional in an implementation signature.", + PrivateElementHasAbstract: "Private elements cannot have the 'abstract' modifier.", + PrivateElementHasAccessibility: ({ + modifier + }) => `Private elements cannot have an accessibility modifier ('${modifier}').`, + ReadonlyForMethodSignature: "'readonly' modifier can only appear on a property declaration or index signature.", + ReservedArrowTypeParam: "This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `() => ...`.", + ReservedTypeAssertion: "This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.", + SetAccesorCannotHaveOptionalParameter: "A 'set' accessor cannot have an optional parameter.", + SetAccesorCannotHaveRestParameter: "A 'set' accessor cannot have rest parameter.", + SetAccesorCannotHaveReturnType: "A 'set' accessor cannot have a return type annotation.", + SingleTypeParameterWithoutTrailingComma: ({ + typeParameterName + }) => `Single type parameter ${typeParameterName} should have a trailing comma. Example usage: <${typeParameterName},>.`, + StaticBlockCannotHaveModifier: "Static class blocks cannot have any modifier.", + TypeAnnotationAfterAssign: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.", + TypeImportCannotSpecifyDefaultAndNamed: "A type-only import can specify a default import or named bindings, but not both.", + TypeModifierIsUsedInTypeExports: "The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.", + TypeModifierIsUsedInTypeImports: "The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.", + UnexpectedParameterModifier: "A parameter property is only allowed in a constructor implementation.", + UnexpectedReadonly: "'readonly' type modifier is only permitted on array and tuple literal types.", + UnexpectedTypeAnnotation: "Did not expect a type annotation here.", + UnexpectedTypeCastInParameter: "Unexpected type cast in parameter position.", + UnsupportedImportTypeArgument: "Argument in a type import must be a string literal.", + UnsupportedParameterPropertyKind: "A parameter property may not be declared using a binding pattern.", + UnsupportedSignatureParameterKind: ({ + type + }) => `Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${type}.` +}); + +function keywordTypeFromName(value) { + switch (value) { + case "any": + return "TSAnyKeyword"; + case "boolean": + return "TSBooleanKeyword"; + case "bigint": + return "TSBigIntKeyword"; + case "never": + return "TSNeverKeyword"; + case "number": + return "TSNumberKeyword"; + case "object": + return "TSObjectKeyword"; + case "string": + return "TSStringKeyword"; + case "symbol": + return "TSSymbolKeyword"; + case "undefined": + return "TSUndefinedKeyword"; + case "unknown": + return "TSUnknownKeyword"; + default: + return undefined; + } +} +function tsIsAccessModifier(modifier) { + return modifier === "private" || modifier === "public" || modifier === "protected"; +} +function tsIsVarianceAnnotations(modifier) { + return modifier === "in" || modifier === "out"; +} +var typescript = (superClass => class TypeScriptParserMixin extends superClass { + getScopeHandler() { + return TypeScriptScopeHandler; + } + tsIsIdentifier() { + return tokenIsIdentifier(this.state.type); + } + tsTokenCanFollowModifier() { + return (this.match(0) || this.match(5) || this.match(55) || this.match(21) || this.match(136) || this.isLiteralPropertyName()) && !this.hasPrecedingLineBreak(); + } + tsNextTokenCanFollowModifier() { + this.next(); + return this.tsTokenCanFollowModifier(); + } + + tsParseModifier(allowedModifiers, stopOnStartOfClassStaticBlock) { + if (!tokenIsIdentifier(this.state.type) && this.state.type !== 58) { + return undefined; + } + const modifier = this.state.value; + if (allowedModifiers.indexOf(modifier) !== -1) { + if (stopOnStartOfClassStaticBlock && this.tsIsStartOfStaticBlocks()) { + return undefined; + } + if (this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this))) { + return modifier; + } + } + return undefined; + } + + tsParseModifiers({ + modified, + allowedModifiers, + disallowedModifiers, + stopOnStartOfClassStaticBlock, + errorTemplate = TSErrors.InvalidModifierOnTypeMember + }) { + const enforceOrder = (loc, modifier, before, after) => { + if (modifier === before && modified[after]) { + this.raise(TSErrors.InvalidModifiersOrder, { + at: loc, + orderedModifiers: [before, after] + }); + } + }; + const incompatible = (loc, modifier, mod1, mod2) => { + if (modified[mod1] && modifier === mod2 || modified[mod2] && modifier === mod1) { + this.raise(TSErrors.IncompatibleModifiers, { + at: loc, + modifiers: [mod1, mod2] + }); + } + }; + for (;;) { + const { + startLoc + } = this.state; + const modifier = this.tsParseModifier(allowedModifiers.concat(disallowedModifiers != null ? disallowedModifiers : []), stopOnStartOfClassStaticBlock); + if (!modifier) break; + if (tsIsAccessModifier(modifier)) { + if (modified.accessibility) { + this.raise(TSErrors.DuplicateAccessibilityModifier, { + at: startLoc, + modifier + }); + } else { + enforceOrder(startLoc, modifier, modifier, "override"); + enforceOrder(startLoc, modifier, modifier, "static"); + enforceOrder(startLoc, modifier, modifier, "readonly"); + modified.accessibility = modifier; + } + } else if (tsIsVarianceAnnotations(modifier)) { + if (modified[modifier]) { + this.raise(TSErrors.DuplicateModifier, { + at: startLoc, + modifier + }); + } + modified[modifier] = true; + enforceOrder(startLoc, modifier, "in", "out"); + } else { + if (Object.hasOwnProperty.call(modified, modifier)) { + this.raise(TSErrors.DuplicateModifier, { + at: startLoc, + modifier + }); + } else { + enforceOrder(startLoc, modifier, "static", "readonly"); + enforceOrder(startLoc, modifier, "static", "override"); + enforceOrder(startLoc, modifier, "override", "readonly"); + enforceOrder(startLoc, modifier, "abstract", "override"); + incompatible(startLoc, modifier, "declare", "override"); + incompatible(startLoc, modifier, "static", "abstract"); + } + modified[modifier] = true; + } + if (disallowedModifiers != null && disallowedModifiers.includes(modifier)) { + this.raise(errorTemplate, { + at: startLoc, + modifier + }); + } + } + } + tsIsListTerminator(kind) { + switch (kind) { + case "EnumMembers": + case "TypeMembers": + return this.match(8); + case "HeritageClauseElement": + return this.match(5); + case "TupleElementTypes": + return this.match(3); + case "TypeParametersOrArguments": + return this.match(48); + } + throw new Error("Unreachable"); + } + tsParseList(kind, parseElement) { + const result = []; + while (!this.tsIsListTerminator(kind)) { + result.push(parseElement()); + } + return result; + } + tsParseDelimitedList(kind, parseElement, refTrailingCommaPos) { + return nonNull(this.tsParseDelimitedListWorker(kind, parseElement, true, refTrailingCommaPos)); + } + + tsParseDelimitedListWorker(kind, parseElement, expectSuccess, refTrailingCommaPos) { + const result = []; + let trailingCommaPos = -1; + for (;;) { + if (this.tsIsListTerminator(kind)) { + break; + } + trailingCommaPos = -1; + const element = parseElement(); + if (element == null) { + return undefined; + } + result.push(element); + if (this.eat(12)) { + trailingCommaPos = this.state.lastTokStart; + continue; + } + if (this.tsIsListTerminator(kind)) { + break; + } + if (expectSuccess) { + this.expect(12); + } + return undefined; + } + if (refTrailingCommaPos) { + refTrailingCommaPos.value = trailingCommaPos; + } + return result; + } + tsParseBracketedList(kind, parseElement, bracket, skipFirstToken, refTrailingCommaPos) { + if (!skipFirstToken) { + if (bracket) { + this.expect(0); + } else { + this.expect(47); + } + } + const result = this.tsParseDelimitedList(kind, parseElement, refTrailingCommaPos); + if (bracket) { + this.expect(3); + } else { + this.expect(48); + } + return result; + } + tsParseImportType() { + const node = this.startNode(); + this.expect(83); + this.expect(10); + if (!this.match(131)) { + this.raise(TSErrors.UnsupportedImportTypeArgument, { + at: this.state.startLoc + }); + } + + node.argument = super.parseExprAtom(); + this.expect(11); + if (this.eat(16)) { + node.qualifier = this.tsParseEntityName(); + } + if (this.match(47)) { + node.typeParameters = this.tsParseTypeArguments(); + } + return this.finishNode(node, "TSImportType"); + } + tsParseEntityName(allowReservedWords = true) { + let entity = this.parseIdentifier(allowReservedWords); + while (this.eat(16)) { + const node = this.startNodeAtNode(entity); + node.left = entity; + node.right = this.parseIdentifier(allowReservedWords); + entity = this.finishNode(node, "TSQualifiedName"); + } + return entity; + } + tsParseTypeReference() { + const node = this.startNode(); + node.typeName = this.tsParseEntityName(); + if (!this.hasPrecedingLineBreak() && this.match(47)) { + node.typeParameters = this.tsParseTypeArguments(); + } + return this.finishNode(node, "TSTypeReference"); + } + tsParseThisTypePredicate(lhs) { + this.next(); + const node = this.startNodeAtNode(lhs); + node.parameterName = lhs; + node.typeAnnotation = this.tsParseTypeAnnotation(false); + node.asserts = false; + return this.finishNode(node, "TSTypePredicate"); + } + tsParseThisTypeNode() { + const node = this.startNode(); + this.next(); + return this.finishNode(node, "TSThisType"); + } + tsParseTypeQuery() { + const node = this.startNode(); + this.expect(87); + if (this.match(83)) { + node.exprName = this.tsParseImportType(); + } else { + node.exprName = this.tsParseEntityName(); + } + if (!this.hasPrecedingLineBreak() && this.match(47)) { + node.typeParameters = this.tsParseTypeArguments(); + } + return this.finishNode(node, "TSTypeQuery"); + } + tsParseInOutModifiers(node) { + this.tsParseModifiers({ + modified: node, + allowedModifiers: ["in", "out"], + disallowedModifiers: ["public", "private", "protected", "readonly", "declare", "abstract", "override"], + errorTemplate: TSErrors.InvalidModifierOnTypeParameter + }); + } + + tsParseNoneModifiers(node) { + this.tsParseModifiers({ + modified: node, + allowedModifiers: [], + disallowedModifiers: ["in", "out"], + errorTemplate: TSErrors.InvalidModifierOnTypeParameterPositions + }); + } + tsParseTypeParameter(parseModifiers = this.tsParseNoneModifiers.bind(this)) { + const node = this.startNode(); + parseModifiers(node); + node.name = this.tsParseTypeParameterName(); + node.constraint = this.tsEatThenParseType(81); + node.default = this.tsEatThenParseType(29); + return this.finishNode(node, "TSTypeParameter"); + } + tsTryParseTypeParameters(parseModifiers) { + if (this.match(47)) { + return this.tsParseTypeParameters(parseModifiers); + } + } + tsParseTypeParameters(parseModifiers) { + const node = this.startNode(); + if (this.match(47) || this.match(140)) { + this.next(); + } else { + this.unexpected(); + } + const refTrailingCommaPos = { + value: -1 + }; + node.params = this.tsParseBracketedList("TypeParametersOrArguments", + this.tsParseTypeParameter.bind(this, parseModifiers), false, true, refTrailingCommaPos); + if (node.params.length === 0) { + this.raise(TSErrors.EmptyTypeParameters, { + at: node + }); + } + if (refTrailingCommaPos.value !== -1) { + this.addExtra(node, "trailingComma", refTrailingCommaPos.value); + } + return this.finishNode(node, "TSTypeParameterDeclaration"); + } + + tsFillSignature(returnToken, signature) { + const returnTokenRequired = returnToken === 19; + + const paramsKey = "parameters"; + const returnTypeKey = "typeAnnotation"; + signature.typeParameters = this.tsTryParseTypeParameters(); + this.expect(10); + signature[paramsKey] = this.tsParseBindingListForSignature(); + if (returnTokenRequired) { + signature[returnTypeKey] = this.tsParseTypeOrTypePredicateAnnotation(returnToken); + } else if (this.match(returnToken)) { + signature[returnTypeKey] = this.tsParseTypeOrTypePredicateAnnotation(returnToken); + } + } + tsParseBindingListForSignature() { + return super.parseBindingList(11, 41).map(pattern => { + if (pattern.type !== "Identifier" && pattern.type !== "RestElement" && pattern.type !== "ObjectPattern" && pattern.type !== "ArrayPattern") { + this.raise(TSErrors.UnsupportedSignatureParameterKind, { + at: pattern, + type: pattern.type + }); + } + return pattern; + }); + } + tsParseTypeMemberSemicolon() { + if (!this.eat(12) && !this.isLineTerminator()) { + this.expect(13); + } + } + tsParseSignatureMember(kind, node) { + this.tsFillSignature(14, node); + this.tsParseTypeMemberSemicolon(); + return this.finishNode(node, kind); + } + tsIsUnambiguouslyIndexSignature() { + this.next(); + if (tokenIsIdentifier(this.state.type)) { + this.next(); + return this.match(14); + } + return false; + } + tsTryParseIndexSignature(node) { + if (!(this.match(0) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this)))) { + return undefined; + } + this.expect(0); + const id = this.parseIdentifier(); + id.typeAnnotation = this.tsParseTypeAnnotation(); + this.resetEndLocation(id); + + this.expect(3); + node.parameters = [id]; + const type = this.tsTryParseTypeAnnotation(); + if (type) node.typeAnnotation = type; + this.tsParseTypeMemberSemicolon(); + return this.finishNode(node, "TSIndexSignature"); + } + tsParsePropertyOrMethodSignature(node, readonly) { + if (this.eat(17)) node.optional = true; + const nodeAny = node; + if (this.match(10) || this.match(47)) { + if (readonly) { + this.raise(TSErrors.ReadonlyForMethodSignature, { + at: node + }); + } + const method = nodeAny; + if (method.kind && this.match(47)) { + this.raise(TSErrors.AccesorCannotHaveTypeParameters, { + at: this.state.curPosition() + }); + } + this.tsFillSignature(14, method); + this.tsParseTypeMemberSemicolon(); + const paramsKey = "parameters"; + const returnTypeKey = "typeAnnotation"; + if (method.kind === "get") { + if (method[paramsKey].length > 0) { + this.raise(Errors.BadGetterArity, { + at: this.state.curPosition() + }); + if (this.isThisParam(method[paramsKey][0])) { + this.raise(TSErrors.AccesorCannotDeclareThisParameter, { + at: this.state.curPosition() + }); + } + } + } else if (method.kind === "set") { + if (method[paramsKey].length !== 1) { + this.raise(Errors.BadSetterArity, { + at: this.state.curPosition() + }); + } else { + const firstParameter = method[paramsKey][0]; + if (this.isThisParam(firstParameter)) { + this.raise(TSErrors.AccesorCannotDeclareThisParameter, { + at: this.state.curPosition() + }); + } + if (firstParameter.type === "Identifier" && firstParameter.optional) { + this.raise(TSErrors.SetAccesorCannotHaveOptionalParameter, { + at: this.state.curPosition() + }); + } + if (firstParameter.type === "RestElement") { + this.raise(TSErrors.SetAccesorCannotHaveRestParameter, { + at: this.state.curPosition() + }); + } + } + if (method[returnTypeKey]) { + this.raise(TSErrors.SetAccesorCannotHaveReturnType, { + at: method[returnTypeKey] + }); + } + } else { + method.kind = "method"; + } + return this.finishNode(method, "TSMethodSignature"); + } else { + const property = nodeAny; + if (readonly) property.readonly = true; + const type = this.tsTryParseTypeAnnotation(); + if (type) property.typeAnnotation = type; + this.tsParseTypeMemberSemicolon(); + return this.finishNode(property, "TSPropertySignature"); + } + } + tsParseTypeMember() { + const node = this.startNode(); + if (this.match(10) || this.match(47)) { + return this.tsParseSignatureMember("TSCallSignatureDeclaration", node); + } + if (this.match(77)) { + const id = this.startNode(); + this.next(); + if (this.match(10) || this.match(47)) { + return this.tsParseSignatureMember("TSConstructSignatureDeclaration", node); + } else { + node.key = this.createIdentifier(id, "new"); + return this.tsParsePropertyOrMethodSignature(node, false); + } + } + this.tsParseModifiers({ + modified: node, + allowedModifiers: ["readonly"], + disallowedModifiers: ["declare", "abstract", "private", "protected", "public", "static", "override"] + }); + const idx = this.tsTryParseIndexSignature(node); + if (idx) { + return idx; + } + super.parsePropertyName(node); + if (!node.computed && node.key.type === "Identifier" && (node.key.name === "get" || node.key.name === "set") && this.tsTokenCanFollowModifier()) { + node.kind = node.key.name; + super.parsePropertyName(node); + } + return this.tsParsePropertyOrMethodSignature(node, !!node.readonly); + } + tsParseTypeLiteral() { + const node = this.startNode(); + node.members = this.tsParseObjectTypeMembers(); + return this.finishNode(node, "TSTypeLiteral"); + } + tsParseObjectTypeMembers() { + this.expect(5); + const members = this.tsParseList("TypeMembers", this.tsParseTypeMember.bind(this)); + this.expect(8); + return members; + } + tsIsStartOfMappedType() { + this.next(); + if (this.eat(53)) { + return this.isContextual(120); + } + if (this.isContextual(120)) { + this.next(); + } + if (!this.match(0)) { + return false; + } + this.next(); + if (!this.tsIsIdentifier()) { + return false; + } + this.next(); + return this.match(58); + } + tsParseMappedTypeParameter() { + const node = this.startNode(); + node.name = this.tsParseTypeParameterName(); + node.constraint = this.tsExpectThenParseType(58); + return this.finishNode(node, "TSTypeParameter"); + } + tsParseMappedType() { + const node = this.startNode(); + this.expect(5); + if (this.match(53)) { + node.readonly = this.state.value; + this.next(); + this.expectContextual(120); + } else if (this.eatContextual(120)) { + node.readonly = true; + } + this.expect(0); + node.typeParameter = this.tsParseMappedTypeParameter(); + node.nameType = this.eatContextual(93) ? this.tsParseType() : null; + this.expect(3); + if (this.match(53)) { + node.optional = this.state.value; + this.next(); + this.expect(17); + } else if (this.eat(17)) { + node.optional = true; + } + node.typeAnnotation = this.tsTryParseType(); + this.semicolon(); + this.expect(8); + return this.finishNode(node, "TSMappedType"); + } + tsParseTupleType() { + const node = this.startNode(); + node.elementTypes = this.tsParseBracketedList("TupleElementTypes", this.tsParseTupleElementType.bind(this), true, false); + + let seenOptionalElement = false; + let labeledElements = null; + node.elementTypes.forEach(elementNode => { + var _labeledElements; + const { + type + } = elementNode; + if (seenOptionalElement && type !== "TSRestType" && type !== "TSOptionalType" && !(type === "TSNamedTupleMember" && elementNode.optional)) { + this.raise(TSErrors.OptionalTypeBeforeRequired, { + at: elementNode + }); + } + seenOptionalElement || (seenOptionalElement = type === "TSNamedTupleMember" && elementNode.optional || type === "TSOptionalType"); + + let checkType = type; + if (type === "TSRestType") { + elementNode = elementNode.typeAnnotation; + checkType = elementNode.type; + } + const isLabeled = checkType === "TSNamedTupleMember"; + (_labeledElements = labeledElements) != null ? _labeledElements : labeledElements = isLabeled; + if (labeledElements !== isLabeled) { + this.raise(TSErrors.MixedLabeledAndUnlabeledElements, { + at: elementNode + }); + } + }); + return this.finishNode(node, "TSTupleType"); + } + tsParseTupleElementType() { + + const { + startLoc + } = this.state; + const rest = this.eat(21); + let type = this.tsParseType(); + const optional = this.eat(17); + const labeled = this.eat(14); + if (labeled) { + const labeledNode = this.startNodeAtNode(type); + labeledNode.optional = optional; + if (type.type === "TSTypeReference" && !type.typeParameters && type.typeName.type === "Identifier") { + labeledNode.label = type.typeName; + } else { + this.raise(TSErrors.InvalidTupleMemberLabel, { + at: type + }); + labeledNode.label = type; + } + labeledNode.elementType = this.tsParseType(); + type = this.finishNode(labeledNode, "TSNamedTupleMember"); + } else if (optional) { + const optionalTypeNode = this.startNodeAtNode(type); + optionalTypeNode.typeAnnotation = type; + type = this.finishNode(optionalTypeNode, "TSOptionalType"); + } + if (rest) { + const restNode = this.startNodeAt(startLoc); + restNode.typeAnnotation = type; + type = this.finishNode(restNode, "TSRestType"); + } + return type; + } + tsParseParenthesizedType() { + const node = this.startNode(); + this.expect(10); + node.typeAnnotation = this.tsParseType(); + this.expect(11); + return this.finishNode(node, "TSParenthesizedType"); + } + tsParseFunctionOrConstructorType(type, abstract) { + const node = this.startNode(); + if (type === "TSConstructorType") { + node.abstract = !!abstract; + if (abstract) this.next(); + this.next(); + } + + this.tsInAllowConditionalTypesContext(() => this.tsFillSignature(19, node)); + return this.finishNode(node, type); + } + tsParseLiteralTypeNode() { + const node = this.startNode(); + node.literal = (() => { + switch (this.state.type) { + case 132: + case 133: + case 131: + case 85: + case 86: + return super.parseExprAtom(); + default: + throw this.unexpected(); + } + })(); + return this.finishNode(node, "TSLiteralType"); + } + tsParseTemplateLiteralType() { + const node = this.startNode(); + node.literal = super.parseTemplate(false); + return this.finishNode(node, "TSLiteralType"); + } + parseTemplateSubstitution() { + if (this.state.inType) return this.tsParseType(); + return super.parseTemplateSubstitution(); + } + tsParseThisTypeOrThisTypePredicate() { + const thisKeyword = this.tsParseThisTypeNode(); + if (this.isContextual(114) && !this.hasPrecedingLineBreak()) { + return this.tsParseThisTypePredicate(thisKeyword); + } else { + return thisKeyword; + } + } + tsParseNonArrayType() { + switch (this.state.type) { + case 131: + case 132: + case 133: + case 85: + case 86: + return this.tsParseLiteralTypeNode(); + case 53: + if (this.state.value === "-") { + const node = this.startNode(); + const nextToken = this.lookahead(); + if (nextToken.type !== 132 && nextToken.type !== 133) { + throw this.unexpected(); + } + node.literal = this.parseMaybeUnary(); + return this.finishNode(node, "TSLiteralType"); + } + break; + case 78: + return this.tsParseThisTypeOrThisTypePredicate(); + case 87: + return this.tsParseTypeQuery(); + case 83: + return this.tsParseImportType(); + case 5: + return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this)) ? this.tsParseMappedType() : this.tsParseTypeLiteral(); + case 0: + return this.tsParseTupleType(); + case 10: + return this.tsParseParenthesizedType(); + case 25: + case 24: + return this.tsParseTemplateLiteralType(); + default: + { + const { + type + } = this.state; + if (tokenIsIdentifier(type) || type === 88 || type === 84) { + const nodeType = type === 88 ? "TSVoidKeyword" : type === 84 ? "TSNullKeyword" : keywordTypeFromName(this.state.value); + if (nodeType !== undefined && this.lookaheadCharCode() !== 46) { + const node = this.startNode(); + this.next(); + return this.finishNode(node, nodeType); + } + return this.tsParseTypeReference(); + } + } + } + throw this.unexpected(); + } + tsParseArrayTypeOrHigher() { + let type = this.tsParseNonArrayType(); + while (!this.hasPrecedingLineBreak() && this.eat(0)) { + if (this.match(3)) { + const node = this.startNodeAtNode(type); + node.elementType = type; + this.expect(3); + type = this.finishNode(node, "TSArrayType"); + } else { + const node = this.startNodeAtNode(type); + node.objectType = type; + node.indexType = this.tsParseType(); + this.expect(3); + type = this.finishNode(node, "TSIndexedAccessType"); + } + } + return type; + } + tsParseTypeOperator() { + const node = this.startNode(); + const operator = this.state.value; + this.next(); + node.operator = operator; + node.typeAnnotation = this.tsParseTypeOperatorOrHigher(); + if (operator === "readonly") { + this.tsCheckTypeAnnotationForReadOnly( + node); + } + return this.finishNode(node, "TSTypeOperator"); + } + tsCheckTypeAnnotationForReadOnly(node) { + switch (node.typeAnnotation.type) { + case "TSTupleType": + case "TSArrayType": + return; + default: + this.raise(TSErrors.UnexpectedReadonly, { + at: node + }); + } + } + tsParseInferType() { + const node = this.startNode(); + this.expectContextual(113); + const typeParameter = this.startNode(); + typeParameter.name = this.tsParseTypeParameterName(); + typeParameter.constraint = this.tsTryParse(() => this.tsParseConstraintForInferType()); + node.typeParameter = this.finishNode(typeParameter, "TSTypeParameter"); + return this.finishNode(node, "TSInferType"); + } + tsParseConstraintForInferType() { + if (this.eat(81)) { + const constraint = this.tsInDisallowConditionalTypesContext(() => this.tsParseType()); + if (this.state.inDisallowConditionalTypesContext || !this.match(17)) { + return constraint; + } + } + } + tsParseTypeOperatorOrHigher() { + const isTypeOperator = tokenIsTSTypeOperator(this.state.type) && !this.state.containsEsc; + return isTypeOperator ? this.tsParseTypeOperator() : this.isContextual(113) ? this.tsParseInferType() : this.tsInAllowConditionalTypesContext(() => this.tsParseArrayTypeOrHigher()); + } + tsParseUnionOrIntersectionType(kind, parseConstituentType, operator) { + const node = this.startNode(); + const hasLeadingOperator = this.eat(operator); + const types = []; + do { + types.push(parseConstituentType()); + } while (this.eat(operator)); + if (types.length === 1 && !hasLeadingOperator) { + return types[0]; + } + node.types = types; + return this.finishNode(node, kind); + } + tsParseIntersectionTypeOrHigher() { + return this.tsParseUnionOrIntersectionType("TSIntersectionType", this.tsParseTypeOperatorOrHigher.bind(this), 45); + } + tsParseUnionTypeOrHigher() { + return this.tsParseUnionOrIntersectionType("TSUnionType", this.tsParseIntersectionTypeOrHigher.bind(this), 43); + } + tsIsStartOfFunctionType() { + if (this.match(47)) { + return true; + } + return this.match(10) && this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this)); + } + tsSkipParameterStart() { + if (tokenIsIdentifier(this.state.type) || this.match(78)) { + this.next(); + return true; + } + if (this.match(5)) { + const { + errors + } = this.state; + const previousErrorCount = errors.length; + try { + this.parseObjectLike(8, true); + return errors.length === previousErrorCount; + } catch (_unused) { + return false; + } + } + if (this.match(0)) { + this.next(); + const { + errors + } = this.state; + const previousErrorCount = errors.length; + try { + super.parseBindingList(3, 93, true); + return errors.length === previousErrorCount; + } catch (_unused2) { + return false; + } + } + return false; + } + tsIsUnambiguouslyStartOfFunctionType() { + this.next(); + if (this.match(11) || this.match(21)) { + return true; + } + if (this.tsSkipParameterStart()) { + if (this.match(14) || this.match(12) || this.match(17) || this.match(29)) { + return true; + } + if (this.match(11)) { + this.next(); + if (this.match(19)) { + return true; + } + } + } + return false; + } + tsParseTypeOrTypePredicateAnnotation(returnToken) { + return this.tsInType(() => { + const t = this.startNode(); + this.expect(returnToken); + const node = this.startNode(); + const asserts = !!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this)); + if (asserts && this.match(78)) { + let thisTypePredicate = this.tsParseThisTypeOrThisTypePredicate(); + if (thisTypePredicate.type === "TSThisType") { + node.parameterName = thisTypePredicate; + node.asserts = true; + node.typeAnnotation = null; + thisTypePredicate = this.finishNode(node, "TSTypePredicate"); + } else { + this.resetStartLocationFromNode(thisTypePredicate, node); + thisTypePredicate.asserts = true; + } + t.typeAnnotation = thisTypePredicate; + return this.finishNode(t, "TSTypeAnnotation"); + } + const typePredicateVariable = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this)); + if (!typePredicateVariable) { + if (!asserts) { + return this.tsParseTypeAnnotation(false, t); + } + + node.parameterName = this.parseIdentifier(); + node.asserts = asserts; + node.typeAnnotation = null; + t.typeAnnotation = this.finishNode(node, "TSTypePredicate"); + return this.finishNode(t, "TSTypeAnnotation"); + } + + const type = this.tsParseTypeAnnotation(false); + node.parameterName = typePredicateVariable; + node.typeAnnotation = type; + node.asserts = asserts; + t.typeAnnotation = this.finishNode(node, "TSTypePredicate"); + return this.finishNode(t, "TSTypeAnnotation"); + }); + } + tsTryParseTypeOrTypePredicateAnnotation() { + return this.match(14) ? this.tsParseTypeOrTypePredicateAnnotation(14) : undefined; + } + tsTryParseTypeAnnotation() { + return this.match(14) ? this.tsParseTypeAnnotation() : undefined; + } + tsTryParseType() { + return this.tsEatThenParseType(14); + } + tsParseTypePredicatePrefix() { + const id = this.parseIdentifier(); + if (this.isContextual(114) && !this.hasPrecedingLineBreak()) { + this.next(); + return id; + } + } + tsParseTypePredicateAsserts() { + if (this.state.type !== 107) { + return false; + } + const containsEsc = this.state.containsEsc; + this.next(); + if (!tokenIsIdentifier(this.state.type) && !this.match(78)) { + return false; + } + if (containsEsc) { + this.raise(Errors.InvalidEscapedReservedWord, { + at: this.state.lastTokStartLoc, + reservedWord: "asserts" + }); + } + return true; + } + tsParseTypeAnnotation(eatColon = true, t = this.startNode()) { + this.tsInType(() => { + if (eatColon) this.expect(14); + t.typeAnnotation = this.tsParseType(); + }); + return this.finishNode(t, "TSTypeAnnotation"); + } + + tsParseType() { + assert(this.state.inType); + const type = this.tsParseNonConditionalType(); + if (this.state.inDisallowConditionalTypesContext || this.hasPrecedingLineBreak() || !this.eat(81)) { + return type; + } + const node = this.startNodeAtNode(type); + node.checkType = type; + node.extendsType = this.tsInDisallowConditionalTypesContext(() => this.tsParseNonConditionalType()); + this.expect(17); + node.trueType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()); + this.expect(14); + node.falseType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()); + return this.finishNode(node, "TSConditionalType"); + } + isAbstractConstructorSignature() { + return this.isContextual(122) && this.lookahead().type === 77; + } + tsParseNonConditionalType() { + if (this.tsIsStartOfFunctionType()) { + return this.tsParseFunctionOrConstructorType("TSFunctionType"); + } + if (this.match(77)) { + return this.tsParseFunctionOrConstructorType("TSConstructorType"); + } else if (this.isAbstractConstructorSignature()) { + return this.tsParseFunctionOrConstructorType("TSConstructorType", true); + } + return this.tsParseUnionTypeOrHigher(); + } + tsParseTypeAssertion() { + if (this.getPluginOption("typescript", "disallowAmbiguousJSXLike")) { + this.raise(TSErrors.ReservedTypeAssertion, { + at: this.state.startLoc + }); + } + const node = this.startNode(); + node.typeAnnotation = this.tsInType(() => { + this.next(); + return this.match(75) ? this.tsParseTypeReference() : this.tsParseType(); + }); + this.expect(48); + node.expression = this.parseMaybeUnary(); + return this.finishNode(node, "TSTypeAssertion"); + } + tsParseHeritageClause(token) { + const originalStartLoc = this.state.startLoc; + const delimitedList = this.tsParseDelimitedList("HeritageClauseElement", () => { + const node = this.startNode(); + node.expression = this.tsParseEntityName(); + if (this.match(47)) { + node.typeParameters = this.tsParseTypeArguments(); + } + return this.finishNode(node, "TSExpressionWithTypeArguments"); + }); + if (!delimitedList.length) { + this.raise(TSErrors.EmptyHeritageClauseType, { + at: originalStartLoc, + token + }); + } + return delimitedList; + } + tsParseInterfaceDeclaration(node, properties = {}) { + if (this.hasFollowingLineBreak()) return null; + this.expectContextual(127); + if (properties.declare) node.declare = true; + if (tokenIsIdentifier(this.state.type)) { + node.id = this.parseIdentifier(); + this.checkIdentifier(node.id, BIND_TS_INTERFACE); + } else { + node.id = null; + this.raise(TSErrors.MissingInterfaceName, { + at: this.state.startLoc + }); + } + node.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers.bind(this)); + if (this.eat(81)) { + node.extends = this.tsParseHeritageClause("extends"); + } + const body = this.startNode(); + body.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this)); + node.body = this.finishNode(body, "TSInterfaceBody"); + return this.finishNode(node, "TSInterfaceDeclaration"); + } + tsParseTypeAliasDeclaration(node) { + node.id = this.parseIdentifier(); + this.checkIdentifier(node.id, BIND_TS_TYPE); + node.typeAnnotation = this.tsInType(() => { + node.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers.bind(this)); + this.expect(29); + if (this.isContextual(112) && this.lookahead().type !== 16) { + const node = this.startNode(); + this.next(); + return this.finishNode(node, "TSIntrinsicKeyword"); + } + return this.tsParseType(); + }); + this.semicolon(); + return this.finishNode(node, "TSTypeAliasDeclaration"); + } + tsInNoContext(cb) { + const oldContext = this.state.context; + this.state.context = [oldContext[0]]; + try { + return cb(); + } finally { + this.state.context = oldContext; + } + } + + tsInType(cb) { + const oldInType = this.state.inType; + this.state.inType = true; + try { + return cb(); + } finally { + this.state.inType = oldInType; + } + } + tsInDisallowConditionalTypesContext(cb) { + const oldInDisallowConditionalTypesContext = this.state.inDisallowConditionalTypesContext; + this.state.inDisallowConditionalTypesContext = true; + try { + return cb(); + } finally { + this.state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext; + } + } + tsInAllowConditionalTypesContext(cb) { + const oldInDisallowConditionalTypesContext = this.state.inDisallowConditionalTypesContext; + this.state.inDisallowConditionalTypesContext = false; + try { + return cb(); + } finally { + this.state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext; + } + } + tsEatThenParseType(token) { + return !this.match(token) ? undefined : this.tsNextThenParseType(); + } + tsExpectThenParseType(token) { + return this.tsDoThenParseType(() => this.expect(token)); + } + tsNextThenParseType() { + return this.tsDoThenParseType(() => this.next()); + } + tsDoThenParseType(cb) { + return this.tsInType(() => { + cb(); + return this.tsParseType(); + }); + } + tsParseEnumMember() { + const node = this.startNode(); + node.id = this.match(131) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(true); + if (this.eat(29)) { + node.initializer = super.parseMaybeAssignAllowIn(); + } + return this.finishNode(node, "TSEnumMember"); + } + tsParseEnumDeclaration(node, properties = {}) { + if (properties.const) node.const = true; + if (properties.declare) node.declare = true; + this.expectContextual(124); + node.id = this.parseIdentifier(); + this.checkIdentifier(node.id, node.const ? BIND_TS_CONST_ENUM : BIND_TS_ENUM); + this.expect(5); + node.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)); + this.expect(8); + return this.finishNode(node, "TSEnumDeclaration"); + } + tsParseModuleBlock() { + const node = this.startNode(); + this.scope.enter(SCOPE_OTHER); + this.expect(5); + super.parseBlockOrModuleBlockBody(node.body = [], undefined, true, 8); + this.scope.exit(); + return this.finishNode(node, "TSModuleBlock"); + } + tsParseModuleOrNamespaceDeclaration(node, nested = false) { + node.id = this.parseIdentifier(); + if (!nested) { + this.checkIdentifier(node.id, BIND_TS_NAMESPACE); + } + if (this.eat(16)) { + const inner = this.startNode(); + this.tsParseModuleOrNamespaceDeclaration(inner, true); + node.body = inner; + } else { + this.scope.enter(SCOPE_TS_MODULE); + this.prodParam.enter(PARAM); + node.body = this.tsParseModuleBlock(); + this.prodParam.exit(); + this.scope.exit(); + } + return this.finishNode(node, "TSModuleDeclaration"); + } + tsParseAmbientExternalModuleDeclaration(node) { + if (this.isContextual(110)) { + node.global = true; + node.id = this.parseIdentifier(); + } else if (this.match(131)) { + node.id = super.parseStringLiteral(this.state.value); + } else { + this.unexpected(); + } + if (this.match(5)) { + this.scope.enter(SCOPE_TS_MODULE); + this.prodParam.enter(PARAM); + node.body = this.tsParseModuleBlock(); + this.prodParam.exit(); + this.scope.exit(); + } else { + this.semicolon(); + } + return this.finishNode(node, "TSModuleDeclaration"); + } + tsParseImportEqualsDeclaration(node, isExport) { + node.isExport = isExport || false; + node.id = this.parseIdentifier(); + this.checkIdentifier(node.id, BIND_FLAGS_TS_IMPORT); + this.expect(29); + const moduleReference = this.tsParseModuleReference(); + if (node.importKind === "type" && moduleReference.type !== "TSExternalModuleReference") { + this.raise(TSErrors.ImportAliasHasImportType, { + at: moduleReference + }); + } + node.moduleReference = moduleReference; + this.semicolon(); + return this.finishNode(node, "TSImportEqualsDeclaration"); + } + tsIsExternalModuleReference() { + return this.isContextual(117) && this.lookaheadCharCode() === 40; + } + tsParseModuleReference() { + return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(false); + } + tsParseExternalModuleReference() { + const node = this.startNode(); + this.expectContextual(117); + this.expect(10); + if (!this.match(131)) { + throw this.unexpected(); + } + node.expression = super.parseExprAtom(); + this.expect(11); + return this.finishNode(node, "TSExternalModuleReference"); + } + + tsLookAhead(f) { + const state = this.state.clone(); + const res = f(); + this.state = state; + return res; + } + tsTryParseAndCatch(f) { + const result = this.tryParse(abort => + f() || abort()); + if (result.aborted || !result.node) return undefined; + if (result.error) this.state = result.failState; + return result.node; + } + tsTryParse(f) { + const state = this.state.clone(); + const result = f(); + if (result !== undefined && result !== false) { + return result; + } else { + this.state = state; + return undefined; + } + } + tsTryParseDeclare(nany) { + if (this.isLineTerminator()) { + return; + } + let starttype = this.state.type; + let kind; + if (this.isContextual(99)) { + starttype = 74; + kind = "let"; + } + + return this.tsInAmbientContext(() => { + if (starttype === 68) { + nany.declare = true; + return super.parseFunctionStatement(nany, false, false); + } + if (starttype === 80) { + nany.declare = true; + return this.parseClass(nany, true, false); + } + if (starttype === 124) { + return this.tsParseEnumDeclaration(nany, { + declare: true + }); + } + if (starttype === 110) { + return this.tsParseAmbientExternalModuleDeclaration(nany); + } + if (starttype === 75 || starttype === 74) { + if (!this.match(75) || !this.isLookaheadContextual("enum")) { + nany.declare = true; + return this.parseVarStatement(nany, kind || this.state.value, true); + } + + this.expect(75); + return this.tsParseEnumDeclaration(nany, { + const: true, + declare: true + }); + } + if (starttype === 127) { + const result = this.tsParseInterfaceDeclaration(nany, { + declare: true + }); + if (result) return result; + } + if (tokenIsIdentifier(starttype)) { + return this.tsParseDeclaration(nany, this.state.value, true, null); + } + }); + } + + tsTryParseExportDeclaration() { + return this.tsParseDeclaration(this.startNode(), this.state.value, true, null); + } + tsParseExpressionStatement(node, expr, decorators) { + switch (expr.name) { + case "declare": + { + const declaration = this.tsTryParseDeclare(node); + if (declaration) { + declaration.declare = true; + return declaration; + } + break; + } + case "global": + if (this.match(5)) { + this.scope.enter(SCOPE_TS_MODULE); + this.prodParam.enter(PARAM); + const mod = node; + mod.global = true; + mod.id = expr; + mod.body = this.tsParseModuleBlock(); + this.scope.exit(); + this.prodParam.exit(); + return this.finishNode(mod, "TSModuleDeclaration"); + } + break; + default: + return this.tsParseDeclaration(node, expr.name, false, decorators); + } + } + + tsParseDeclaration(node, value, next, decorators) { + switch (value) { + case "abstract": + if (this.tsCheckLineTerminator(next) && (this.match(80) || tokenIsIdentifier(this.state.type))) { + return this.tsParseAbstractDeclaration(node, decorators); + } + break; + case "module": + if (this.tsCheckLineTerminator(next)) { + if (this.match(131)) { + return this.tsParseAmbientExternalModuleDeclaration(node); + } else if (tokenIsIdentifier(this.state.type)) { + return this.tsParseModuleOrNamespaceDeclaration(node); + } + } + break; + case "namespace": + if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) { + return this.tsParseModuleOrNamespaceDeclaration(node); + } + break; + case "type": + if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) { + return this.tsParseTypeAliasDeclaration(node); + } + break; + } + } + tsCheckLineTerminator(next) { + if (next) { + if (this.hasFollowingLineBreak()) return false; + this.next(); + return true; + } + return !this.isLineTerminator(); + } + tsTryParseGenericAsyncArrowFunction(startLoc) { + if (!this.match(47)) { + return undefined; + } + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + this.state.maybeInArrowParameters = true; + const res = this.tsTryParseAndCatch(() => { + const node = this.startNodeAt(startLoc); + node.typeParameters = this.tsParseTypeParameters(); + super.parseFunctionParams(node); + node.returnType = this.tsTryParseTypeOrTypePredicateAnnotation(); + this.expect(19); + return node; + }); + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + if (!res) { + return undefined; + } + return super.parseArrowExpression(res, null, true); + } + + tsParseTypeArgumentsInExpression() { + if (this.reScan_lt() !== 47) { + return undefined; + } + return this.tsParseTypeArguments(); + } + tsParseTypeArguments() { + const node = this.startNode(); + node.params = this.tsInType(() => + this.tsInNoContext(() => { + this.expect(47); + return this.tsParseDelimitedList("TypeParametersOrArguments", this.tsParseType.bind(this)); + })); + if (node.params.length === 0) { + this.raise(TSErrors.EmptyTypeArguments, { + at: node + }); + } + this.expect(48); + return this.finishNode(node, "TSTypeParameterInstantiation"); + } + tsIsDeclarationStart() { + return tokenIsTSDeclarationStart(this.state.type); + } + + isExportDefaultSpecifier() { + if (this.tsIsDeclarationStart()) return false; + return super.isExportDefaultSpecifier(); + } + parseAssignableListItem(allowModifiers, decorators) { + const startLoc = this.state.startLoc; + let accessibility; + let readonly = false; + let override = false; + if (allowModifiers !== undefined) { + const modified = {}; + this.tsParseModifiers({ + modified, + allowedModifiers: ["public", "private", "protected", "override", "readonly"] + }); + accessibility = modified.accessibility; + override = modified.override; + readonly = modified.readonly; + if (allowModifiers === false && (accessibility || readonly || override)) { + this.raise(TSErrors.UnexpectedParameterModifier, { + at: startLoc + }); + } + } + const left = this.parseMaybeDefault(); + this.parseAssignableListItemTypes(left); + const elt = this.parseMaybeDefault(left.loc.start, left); + if (accessibility || readonly || override) { + const pp = this.startNodeAt(startLoc); + if (decorators.length) { + pp.decorators = decorators; + } + if (accessibility) pp.accessibility = accessibility; + if (readonly) pp.readonly = readonly; + if (override) pp.override = override; + if (elt.type !== "Identifier" && elt.type !== "AssignmentPattern") { + this.raise(TSErrors.UnsupportedParameterPropertyKind, { + at: pp + }); + } + pp.parameter = elt; + return this.finishNode(pp, "TSParameterProperty"); + } + if (decorators.length) { + left.decorators = decorators; + } + return elt; + } + isSimpleParameter(node) { + return node.type === "TSParameterProperty" && super.isSimpleParameter(node.parameter) || super.isSimpleParameter(node); + } + parseFunctionBodyAndFinish(node, type, isMethod = false) { + if (this.match(14)) { + node.returnType = this.tsParseTypeOrTypePredicateAnnotation(14); + } + const bodilessType = type === "FunctionDeclaration" ? "TSDeclareFunction" : type === "ClassMethod" || type === "ClassPrivateMethod" ? "TSDeclareMethod" : undefined; + if (bodilessType && !this.match(5) && this.isLineTerminator()) { + return this.finishNode(node, bodilessType); + } + if (bodilessType === "TSDeclareFunction" && this.state.isAmbientContext) { + this.raise(TSErrors.DeclareFunctionHasImplementation, { + at: node + }); + if (node.declare) { + return super.parseFunctionBodyAndFinish(node, bodilessType, isMethod); + } + } + return super.parseFunctionBodyAndFinish(node, type, isMethod); + } + registerFunctionStatementId(node) { + if (!node.body && node.id) { + this.checkIdentifier(node.id, BIND_TS_AMBIENT); + } else { + super.registerFunctionStatementId(node); + } + } + tsCheckForInvalidTypeCasts(items) { + items.forEach(node => { + if ((node == null ? void 0 : node.type) === "TSTypeCastExpression") { + this.raise(TSErrors.UnexpectedTypeAnnotation, { + at: node.typeAnnotation + }); + } + }); + } + toReferencedList(exprList, + isInParens) { + this.tsCheckForInvalidTypeCasts(exprList); + return exprList; + } + parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) { + const node = super.parseArrayLike(close, canBePattern, isTuple, refExpressionErrors); + if (node.type === "ArrayExpression") { + this.tsCheckForInvalidTypeCasts(node.elements); + } + return node; + } + parseSubscript(base, startLoc, noCalls, state) { + if (!this.hasPrecedingLineBreak() && this.match(35)) { + this.state.canStartJSXElement = false; + this.next(); + const nonNullExpression = this.startNodeAt(startLoc); + nonNullExpression.expression = base; + return this.finishNode(nonNullExpression, "TSNonNullExpression"); + } + let isOptionalCall = false; + if (this.match(18) && this.lookaheadCharCode() === 60) { + if (noCalls) { + state.stop = true; + return base; + } + state.optionalChainMember = isOptionalCall = true; + this.next(); + } + + if (this.match(47) || this.match(51)) { + let missingParenErrorLoc; + const result = this.tsTryParseAndCatch(() => { + if (!noCalls && this.atPossibleAsyncArrow(base)) { + const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction(startLoc); + if (asyncArrowFn) { + return asyncArrowFn; + } + } + const typeArguments = this.tsParseTypeArgumentsInExpression(); + if (!typeArguments) return; + if (isOptionalCall && !this.match(10)) { + missingParenErrorLoc = this.state.curPosition(); + return; + } + if (tokenIsTemplate(this.state.type)) { + const result = super.parseTaggedTemplateExpression(base, startLoc, state); + result.typeParameters = typeArguments; + return result; + } + if (!noCalls && this.eat(10)) { + const node = this.startNodeAt(startLoc); + node.callee = base; + node.arguments = this.parseCallExpressionArguments(11, false); + + this.tsCheckForInvalidTypeCasts(node.arguments); + node.typeParameters = typeArguments; + if (state.optionalChainMember) { + node.optional = isOptionalCall; + } + return this.finishCallExpression(node, state.optionalChainMember); + } + const tokenType = this.state.type; + if ( + tokenType === 48 || + tokenType === 52 || + tokenType !== 10 && tokenCanStartExpression(tokenType) && !this.hasPrecedingLineBreak()) { + return; + } + const node = this.startNodeAt(startLoc); + node.expression = base; + node.typeParameters = typeArguments; + return this.finishNode(node, "TSInstantiationExpression"); + }); + if (missingParenErrorLoc) { + this.unexpected(missingParenErrorLoc, 10); + } + if (result) { + if (result.type === "TSInstantiationExpression" && (this.match(16) || this.match(18) && this.lookaheadCharCode() !== 40)) { + this.raise(TSErrors.InvalidPropertyAccessAfterInstantiationExpression, { + at: this.state.startLoc + }); + } + return result; + } + } + return super.parseSubscript(base, startLoc, noCalls, state); + } + parseNewCallee(node) { + var _callee$extra; + super.parseNewCallee(node); + const { + callee + } = node; + if (callee.type === "TSInstantiationExpression" && !((_callee$extra = callee.extra) != null && _callee$extra.parenthesized)) { + node.typeParameters = callee.typeParameters; + node.callee = callee.expression; + } + } + parseExprOp(left, leftStartLoc, minPrec) { + let isSatisfies; + if (tokenOperatorPrecedence(58) > minPrec && !this.hasPrecedingLineBreak() && (this.isContextual(93) || (isSatisfies = this.isContextual(118)))) { + const node = this.startNodeAt(leftStartLoc); + node.expression = left; + node.typeAnnotation = this.tsInType(() => { + this.next(); + if (this.match(75)) { + if (isSatisfies) { + this.raise(Errors.UnexpectedKeyword, { + at: this.state.startLoc, + keyword: "const" + }); + } + return this.tsParseTypeReference(); + } + return this.tsParseType(); + }); + this.finishNode(node, isSatisfies ? "TSSatisfiesExpression" : "TSAsExpression"); + this.reScan_lt_gt(); + return this.parseExprOp( + node, leftStartLoc, minPrec); + } + return super.parseExprOp(left, leftStartLoc, minPrec); + } + checkReservedWord(word, startLoc, checkKeywords, isBinding) { + if (!this.state.isAmbientContext) { + super.checkReservedWord(word, startLoc, checkKeywords, isBinding); + } + } + checkImportReflection(node) { + super.checkImportReflection(node); + if (node.module && node.importKind !== "value") { + this.raise(TSErrors.ImportReflectionHasImportType, { + at: node.specifiers[0].loc.start + }); + } + } + + checkDuplicateExports() {} + parseImport(node) { + node.importKind = "value"; + if (tokenIsIdentifier(this.state.type) || this.match(55) || this.match(5)) { + let ahead = this.lookahead(); + if (this.isContextual(128) && + ahead.type !== 12 && + ahead.type !== 97 && + ahead.type !== 29) { + node.importKind = "type"; + this.next(); + ahead = this.lookahead(); + } + if (tokenIsIdentifier(this.state.type) && ahead.type === 29) { + return this.tsParseImportEqualsDeclaration(node); + } + } + const importNode = super.parseImport(node); + + if (importNode.importKind === "type" && + importNode.specifiers.length > 1 && + importNode.specifiers[0].type === "ImportDefaultSpecifier") { + this.raise(TSErrors.TypeImportCannotSpecifyDefaultAndNamed, { + at: importNode + }); + } + return importNode; + } + parseExport(node, decorators) { + if (this.match(83)) { + this.next(); + if (this.isContextual(128) && this.lookaheadCharCode() !== 61) { + node.importKind = "type"; + this.next(); + } else { + node.importKind = "value"; + } + return this.tsParseImportEqualsDeclaration(node, true); + } else if (this.eat(29)) { + const assign = node; + assign.expression = super.parseExpression(); + this.semicolon(); + return this.finishNode(assign, "TSExportAssignment"); + } else if (this.eatContextual(93)) { + const decl = node; + this.expectContextual(126); + decl.id = this.parseIdentifier(); + this.semicolon(); + return this.finishNode(decl, "TSNamespaceExportDeclaration"); + } else { + if (this.isContextual(128) && this.lookahead().type === 5) { + this.next(); + node.exportKind = "type"; + } else { + node.exportKind = "value"; + } + return super.parseExport(node, decorators); + } + } + isAbstractClass() { + return this.isContextual(122) && this.lookahead().type === 80; + } + parseExportDefaultExpression() { + if (this.isAbstractClass()) { + const cls = this.startNode(); + this.next(); + cls.abstract = true; + return this.parseClass(cls, true, true); + } + + if (this.match(127)) { + const result = this.tsParseInterfaceDeclaration(this.startNode()); + if (result) return result; + } + return super.parseExportDefaultExpression(); + } + parseVarStatement(node, kind, allowMissingInitializer = false) { + const { + isAmbientContext + } = this.state; + const declaration = super.parseVarStatement(node, kind, allowMissingInitializer || isAmbientContext); + if (!isAmbientContext) return declaration; + for (const { + id, + init + } of declaration.declarations) { + if (!init) continue; + + if (kind !== "const" || !!id.typeAnnotation) { + this.raise(TSErrors.InitializerNotAllowedInAmbientContext, { + at: init + }); + } else if (init.type !== "StringLiteral" && init.type !== "BooleanLiteral" && init.type !== "NumericLiteral" && init.type !== "BigIntLiteral" && (init.type !== "TemplateLiteral" || init.expressions.length > 0) && !isPossiblyLiteralEnum(init)) { + this.raise(TSErrors.ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference, { + at: init + }); + } + } + return declaration; + } + parseStatementContent(flags, decorators) { + if (this.match(75) && this.isLookaheadContextual("enum")) { + const node = this.startNode(); + this.expect(75); + return this.tsParseEnumDeclaration(node, { + const: true + }); + } + if (this.isContextual(124)) { + return this.tsParseEnumDeclaration(this.startNode()); + } + if (this.isContextual(127)) { + const result = this.tsParseInterfaceDeclaration(this.startNode()); + if (result) return result; + } + return super.parseStatementContent(flags, decorators); + } + parseAccessModifier() { + return this.tsParseModifier(["public", "protected", "private"]); + } + tsHasSomeModifiers(member, modifiers) { + return modifiers.some(modifier => { + if (tsIsAccessModifier(modifier)) { + return member.accessibility === modifier; + } + return !!member[modifier]; + }); + } + tsIsStartOfStaticBlocks() { + return this.isContextual(104) && this.lookaheadCharCode() === 123; + } + parseClassMember(classBody, member, state) { + const modifiers = ["declare", "private", "public", "protected", "override", "abstract", "readonly", "static"]; + this.tsParseModifiers({ + modified: member, + allowedModifiers: modifiers, + disallowedModifiers: ["in", "out"], + stopOnStartOfClassStaticBlock: true, + errorTemplate: TSErrors.InvalidModifierOnTypeParameterPositions + }); + const callParseClassMemberWithIsStatic = () => { + if (this.tsIsStartOfStaticBlocks()) { + this.next(); + this.next(); + if (this.tsHasSomeModifiers(member, modifiers)) { + this.raise(TSErrors.StaticBlockCannotHaveModifier, { + at: this.state.curPosition() + }); + } + super.parseClassStaticBlock(classBody, member); + } else { + this.parseClassMemberWithIsStatic(classBody, member, state, !!member.static); + } + }; + if (member.declare) { + this.tsInAmbientContext(callParseClassMemberWithIsStatic); + } else { + callParseClassMemberWithIsStatic(); + } + } + parseClassMemberWithIsStatic(classBody, member, state, isStatic) { + const idx = this.tsTryParseIndexSignature(member); + if (idx) { + classBody.body.push(idx); + if (member.abstract) { + this.raise(TSErrors.IndexSignatureHasAbstract, { + at: member + }); + } + if (member.accessibility) { + this.raise(TSErrors.IndexSignatureHasAccessibility, { + at: member, + modifier: member.accessibility + }); + } + if (member.declare) { + this.raise(TSErrors.IndexSignatureHasDeclare, { + at: member + }); + } + if (member.override) { + this.raise(TSErrors.IndexSignatureHasOverride, { + at: member + }); + } + return; + } + if (!this.state.inAbstractClass && member.abstract) { + this.raise(TSErrors.NonAbstractClassHasAbstractMethod, { + at: member + }); + } + if (member.override) { + if (!state.hadSuperClass) { + this.raise(TSErrors.OverrideNotInSubClass, { + at: member + }); + } + } + + super.parseClassMemberWithIsStatic(classBody, member, state, isStatic); + } + parsePostMemberNameModifiers(methodOrProp) { + const optional = this.eat(17); + if (optional) methodOrProp.optional = true; + if (methodOrProp.readonly && this.match(10)) { + this.raise(TSErrors.ClassMethodHasReadonly, { + at: methodOrProp + }); + } + if (methodOrProp.declare && this.match(10)) { + this.raise(TSErrors.ClassMethodHasDeclare, { + at: methodOrProp + }); + } + } + + parseExpressionStatement(node, expr, decorators) { + const decl = expr.type === "Identifier" ? + this.tsParseExpressionStatement(node, expr, decorators) : undefined; + return decl || super.parseExpressionStatement(node, expr, decorators); + } + + shouldParseExportDeclaration() { + if (this.tsIsDeclarationStart()) return true; + return super.shouldParseExportDeclaration(); + } + + parseConditional(expr, startLoc, refExpressionErrors) { + if (!this.state.maybeInArrowParameters || !this.match(17)) { + return super.parseConditional(expr, startLoc, refExpressionErrors); + } + const result = this.tryParse(() => super.parseConditional(expr, startLoc)); + if (!result.node) { + if (result.error) { + super.setOptionalParametersError(refExpressionErrors, result.error); + } + return expr; + } + if (result.error) this.state = result.failState; + return result.node; + } + + parseParenItem(node, startLoc) { + node = super.parseParenItem(node, startLoc); + if (this.eat(17)) { + node.optional = true; + this.resetEndLocation(node); + } + if (this.match(14)) { + const typeCastNode = this.startNodeAt(startLoc); + typeCastNode.expression = node; + typeCastNode.typeAnnotation = this.tsParseTypeAnnotation(); + return this.finishNode(typeCastNode, "TSTypeCastExpression"); + } + return node; + } + parseExportDeclaration(node) { + if (!this.state.isAmbientContext && this.isContextual(123)) { + return this.tsInAmbientContext(() => this.parseExportDeclaration(node)); + } + + const startLoc = this.state.startLoc; + const isDeclare = this.eatContextual(123); + if (isDeclare && (this.isContextual(123) || !this.shouldParseExportDeclaration())) { + throw this.raise(TSErrors.ExpectedAmbientAfterExportDeclare, { + at: this.state.startLoc + }); + } + const isIdentifier = tokenIsIdentifier(this.state.type); + const declaration = isIdentifier && this.tsTryParseExportDeclaration() || super.parseExportDeclaration(node); + if (!declaration) return null; + if (declaration.type === "TSInterfaceDeclaration" || declaration.type === "TSTypeAliasDeclaration" || isDeclare) { + node.exportKind = "type"; + } + if (isDeclare) { + this.resetStartLocation(declaration, startLoc); + declaration.declare = true; + } + return declaration; + } + parseClassId(node, isStatement, optionalId, + bindingType) { + if ((!isStatement || optionalId) && this.isContextual(111)) { + return; + } + super.parseClassId(node, isStatement, optionalId, node.declare ? BIND_TS_AMBIENT : BIND_CLASS); + const typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers.bind(this)); + if (typeParameters) node.typeParameters = typeParameters; + } + parseClassPropertyAnnotation(node) { + if (!node.optional) { + if (this.eat(35)) { + node.definite = true; + } else if (this.eat(17)) { + node.optional = true; + } + } + const type = this.tsTryParseTypeAnnotation(); + if (type) node.typeAnnotation = type; + } + parseClassProperty(node) { + this.parseClassPropertyAnnotation(node); + if (this.state.isAmbientContext && !(node.readonly && !node.typeAnnotation) && this.match(29)) { + this.raise(TSErrors.DeclareClassFieldHasInitializer, { + at: this.state.startLoc + }); + } + if (node.abstract && this.match(29)) { + const { + key + } = node; + this.raise(TSErrors.AbstractPropertyHasInitializer, { + at: this.state.startLoc, + propertyName: key.type === "Identifier" && !node.computed ? key.name : `[${this.input.slice(key.start, key.end)}]` + }); + } + return super.parseClassProperty(node); + } + parseClassPrivateProperty(node) { + if (node.abstract) { + this.raise(TSErrors.PrivateElementHasAbstract, { + at: node + }); + } + + if (node.accessibility) { + this.raise(TSErrors.PrivateElementHasAccessibility, { + at: node, + modifier: node.accessibility + }); + } + this.parseClassPropertyAnnotation(node); + return super.parseClassPrivateProperty(node); + } + parseClassAccessorProperty(node) { + this.parseClassPropertyAnnotation(node); + if (node.optional) { + this.raise(TSErrors.AccessorCannotBeOptional, { + at: node + }); + } + return super.parseClassAccessorProperty(node); + } + pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { + const typeParameters = this.tsTryParseTypeParameters(); + if (typeParameters && isConstructor) { + this.raise(TSErrors.ConstructorHasTypeParameters, { + at: typeParameters + }); + } + + const { + declare = false, + kind + } = method; + if (declare && (kind === "get" || kind === "set")) { + this.raise(TSErrors.DeclareAccessor, { + at: method, + kind + }); + } + if (typeParameters) method.typeParameters = typeParameters; + super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper); + } + pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { + const typeParameters = this.tsTryParseTypeParameters(); + if (typeParameters) method.typeParameters = typeParameters; + super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync); + } + declareClassPrivateMethodInScope(node, kind) { + if (node.type === "TSDeclareMethod") return; + if (node.type === "MethodDefinition" && !node.value.body) return; + super.declareClassPrivateMethodInScope(node, kind); + } + parseClassSuper(node) { + super.parseClassSuper(node); + if (node.superClass && (this.match(47) || this.match(51))) { + node.superTypeParameters = this.tsParseTypeArgumentsInExpression(); + } + if (this.eatContextual(111)) { + node.implements = this.tsParseHeritageClause("implements"); + } + } + parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { + const typeParameters = this.tsTryParseTypeParameters(); + if (typeParameters) prop.typeParameters = typeParameters; + return super.parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors); + } + parseFunctionParams(node, allowModifiers) { + const typeParameters = this.tsTryParseTypeParameters(); + if (typeParameters) node.typeParameters = typeParameters; + super.parseFunctionParams(node, allowModifiers); + } + + parseVarId(decl, kind) { + super.parseVarId(decl, kind); + if (decl.id.type === "Identifier" && !this.hasPrecedingLineBreak() && this.eat(35)) { + decl.definite = true; + } + const type = this.tsTryParseTypeAnnotation(); + if (type) { + decl.id.typeAnnotation = type; + this.resetEndLocation(decl.id); + } + } + + parseAsyncArrowFromCallExpression(node, call) { + if (this.match(14)) { + node.returnType = this.tsParseTypeAnnotation(); + } + return super.parseAsyncArrowFromCallExpression(node, call); + } + parseMaybeAssign(refExpressionErrors, afterLeftParse) { + var _jsx, _jsx2, _typeCast, _jsx3, _typeCast2, _jsx4, _typeCast3; + + let state; + let jsx; + let typeCast; + if (this.hasPlugin("jsx") && (this.match(140) || this.match(47))) { + state = this.state.clone(); + jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state); + + if (!jsx.error) return jsx.node; + + const { + context + } = this.state; + const currentContext = context[context.length - 1]; + if (currentContext === types.j_oTag || currentContext === types.j_expr) { + context.pop(); + } + } + if (!((_jsx = jsx) != null && _jsx.error) && !this.match(47)) { + return super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + } + + if (!state || state === this.state) state = this.state.clone(); + let typeParameters; + const arrow = this.tryParse(abort => { + var _expr$extra, _typeParameters; + typeParameters = this.tsParseTypeParameters(); + const expr = super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + if (expr.type !== "ArrowFunctionExpression" || (_expr$extra = expr.extra) != null && _expr$extra.parenthesized) { + abort(); + } + + if (((_typeParameters = typeParameters) == null ? void 0 : _typeParameters.params.length) !== 0) { + this.resetStartLocationFromNode(expr, typeParameters); + } + expr.typeParameters = typeParameters; + return expr; + }, state); + + if (!arrow.error && !arrow.aborted) { + if (typeParameters) this.reportReservedArrowTypeParam(typeParameters); + return arrow.node; + } + if (!jsx) { + assert(!this.hasPlugin("jsx")); + + typeCast = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state); + if (!typeCast.error) return typeCast.node; + } + if ((_jsx2 = jsx) != null && _jsx2.node) { + this.state = jsx.failState; + return jsx.node; + } + if (arrow.node) { + this.state = arrow.failState; + if (typeParameters) this.reportReservedArrowTypeParam(typeParameters); + return arrow.node; + } + if ((_typeCast = typeCast) != null && _typeCast.node) { + this.state = typeCast.failState; + return typeCast.node; + } + if ((_jsx3 = jsx) != null && _jsx3.thrown) throw jsx.error; + if (arrow.thrown) throw arrow.error; + if ((_typeCast2 = typeCast) != null && _typeCast2.thrown) throw typeCast.error; + throw ((_jsx4 = jsx) == null ? void 0 : _jsx4.error) || arrow.error || ((_typeCast3 = typeCast) == null ? void 0 : _typeCast3.error); + } + reportReservedArrowTypeParam(node) { + var _node$extra; + if (node.params.length === 1 && !((_node$extra = node.extra) != null && _node$extra.trailingComma) && this.getPluginOption("typescript", "disallowAmbiguousJSXLike")) { + this.raise(TSErrors.ReservedArrowTypeParam, { + at: node + }); + } + } + + parseMaybeUnary(refExpressionErrors, sawUnary) { + if (!this.hasPlugin("jsx") && this.match(47)) { + return this.tsParseTypeAssertion(); + } else { + return super.parseMaybeUnary(refExpressionErrors, sawUnary); + } + } + parseArrow(node) { + if (this.match(14)) { + + const result = this.tryParse(abort => { + const returnType = this.tsParseTypeOrTypePredicateAnnotation(14); + if (this.canInsertSemicolon() || !this.match(19)) abort(); + return returnType; + }); + if (result.aborted) return; + if (!result.thrown) { + if (result.error) this.state = result.failState; + node.returnType = result.node; + } + } + return super.parseArrow(node); + } + + parseAssignableListItemTypes(param) { + if (this.eat(17)) { + if (param.type !== "Identifier" && !this.state.isAmbientContext && !this.state.inType) { + this.raise(TSErrors.PatternIsOptional, { + at: param + }); + } + param.optional = true; + } + const type = this.tsTryParseTypeAnnotation(); + if (type) param.typeAnnotation = type; + this.resetEndLocation(param); + return param; + } + isAssignable(node, isBinding) { + switch (node.type) { + case "TSTypeCastExpression": + return this.isAssignable(node.expression, isBinding); + case "TSParameterProperty": + return true; + default: + return super.isAssignable(node, isBinding); + } + } + toAssignable(node, isLHS = false) { + switch (node.type) { + case "ParenthesizedExpression": + this.toAssignableParenthesizedExpression(node, isLHS); + break; + case "TSAsExpression": + case "TSSatisfiesExpression": + case "TSNonNullExpression": + case "TSTypeAssertion": + if (isLHS) { + this.expressionScope.recordArrowParameterBindingError(TSErrors.UnexpectedTypeCastInParameter, { + at: node + }); + } else { + this.raise(TSErrors.UnexpectedTypeCastInParameter, { + at: node + }); + } + this.toAssignable(node.expression, isLHS); + break; + case "AssignmentExpression": + if (!isLHS && node.left.type === "TSTypeCastExpression") { + node.left = this.typeCastToParameter(node.left); + } + default: + super.toAssignable(node, isLHS); + } + } + toAssignableParenthesizedExpression(node, isLHS) { + switch (node.expression.type) { + case "TSAsExpression": + case "TSSatisfiesExpression": + case "TSNonNullExpression": + case "TSTypeAssertion": + case "ParenthesizedExpression": + this.toAssignable(node.expression, isLHS); + break; + default: + super.toAssignable(node, isLHS); + } + } + checkToRestConversion(node, allowPattern) { + switch (node.type) { + case "TSAsExpression": + case "TSSatisfiesExpression": + case "TSTypeAssertion": + case "TSNonNullExpression": + this.checkToRestConversion(node.expression, false); + break; + default: + super.checkToRestConversion(node, allowPattern); + } + } + + isValidLVal(type, isUnparenthesizedInAssign, binding) { + return getOwn$1({ + TSTypeCastExpression: true, + TSParameterProperty: "parameter", + TSNonNullExpression: "expression", + TSAsExpression: (binding !== BIND_NONE || !isUnparenthesizedInAssign) && ["expression", true], + TSSatisfiesExpression: (binding !== BIND_NONE || !isUnparenthesizedInAssign) && ["expression", true], + TSTypeAssertion: (binding !== BIND_NONE || !isUnparenthesizedInAssign) && ["expression", true] + }, type) || super.isValidLVal(type, isUnparenthesizedInAssign, binding); + } + parseBindingAtom() { + switch (this.state.type) { + case 78: + return this.parseIdentifier(true); + default: + return super.parseBindingAtom(); + } + } + parseMaybeDecoratorArguments(expr) { + if (this.match(47) || this.match(51)) { + const typeArguments = this.tsParseTypeArgumentsInExpression(); + if (this.match(10)) { + const call = super.parseMaybeDecoratorArguments(expr); + call.typeParameters = typeArguments; + return call; + } + this.unexpected(null, 10); + } + return super.parseMaybeDecoratorArguments(expr); + } + checkCommaAfterRest(close) { + if (this.state.isAmbientContext && this.match(12) && this.lookaheadCharCode() === close) { + this.next(); + return false; + } else { + return super.checkCommaAfterRest(close); + } + } + + isClassMethod() { + return this.match(47) || super.isClassMethod(); + } + isClassProperty() { + return this.match(35) || this.match(14) || super.isClassProperty(); + } + parseMaybeDefault(startLoc, left) { + const node = super.parseMaybeDefault(startLoc, left); + if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) { + this.raise(TSErrors.TypeAnnotationAfterAssign, { + at: node.typeAnnotation + }); + } + return node; + } + + getTokenFromCode(code) { + if (this.state.inType) { + if (code === 62) { + return this.finishOp(48, 1); + } + if (code === 60) { + return this.finishOp(47, 1); + } + } + return super.getTokenFromCode(code); + } + + reScan_lt_gt() { + const { + type + } = this.state; + if (type === 47) { + this.state.pos -= 1; + this.readToken_lt(); + } else if (type === 48) { + this.state.pos -= 1; + this.readToken_gt(); + } + } + reScan_lt() { + const { + type + } = this.state; + if (type === 51) { + this.state.pos -= 2; + this.finishOp(47, 1); + return 47; + } + return type; + } + toAssignableList(exprList, trailingCommaLoc, isLHS) { + for (let i = 0; i < exprList.length; i++) { + const expr = exprList[i]; + if ((expr == null ? void 0 : expr.type) === "TSTypeCastExpression") { + exprList[i] = this.typeCastToParameter(expr); + } + } + super.toAssignableList(exprList, trailingCommaLoc, isLHS); + } + typeCastToParameter(node) { + node.expression.typeAnnotation = node.typeAnnotation; + this.resetEndLocation(node.expression, node.typeAnnotation.loc.end); + return node.expression; + } + shouldParseArrow(params) { + if (this.match(14)) { + return params.every(expr => this.isAssignable(expr, true)); + } + return super.shouldParseArrow(params); + } + shouldParseAsyncArrow() { + return this.match(14) || super.shouldParseAsyncArrow(); + } + canHaveLeadingDecorator() { + return super.canHaveLeadingDecorator() || this.isAbstractClass(); + } + jsxParseOpeningElementAfterName(node) { + if (this.match(47) || this.match(51)) { + const typeArguments = this.tsTryParseAndCatch(() => + this.tsParseTypeArgumentsInExpression()); + if (typeArguments) node.typeParameters = typeArguments; + } + return super.jsxParseOpeningElementAfterName(node); + } + getGetterSetterExpectedParamCount(method) { + const baseCount = super.getGetterSetterExpectedParamCount(method); + const params = this.getObjectOrClassMethodParams(method); + const firstParam = params[0]; + const hasContextParam = firstParam && this.isThisParam(firstParam); + return hasContextParam ? baseCount + 1 : baseCount; + } + parseCatchClauseParam() { + const param = super.parseCatchClauseParam(); + const type = this.tsTryParseTypeAnnotation(); + if (type) { + param.typeAnnotation = type; + this.resetEndLocation(param); + } + return param; + } + tsInAmbientContext(cb) { + const oldIsAmbientContext = this.state.isAmbientContext; + this.state.isAmbientContext = true; + try { + return cb(); + } finally { + this.state.isAmbientContext = oldIsAmbientContext; + } + } + parseClass(node, isStatement, optionalId) { + const oldInAbstractClass = this.state.inAbstractClass; + this.state.inAbstractClass = !!node.abstract; + try { + return super.parseClass(node, isStatement, optionalId); + } finally { + this.state.inAbstractClass = oldInAbstractClass; + } + } + tsParseAbstractDeclaration(node, decorators) { + if (this.match(80)) { + node.abstract = true; + return this.maybeTakeDecorators(decorators, this.parseClass(node, true, false)); + } else if (this.isContextual(127)) { + + if (!this.hasFollowingLineBreak()) { + node.abstract = true; + this.raise(TSErrors.NonClassMethodPropertyHasAbstractModifer, { + at: node + }); + return this.tsParseInterfaceDeclaration(node); + } + } else { + this.unexpected(null, 80); + } + } + parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope) { + const method = super.parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope); + if (method.abstract) { + const hasBody = this.hasPlugin("estree") ? + !!method.value.body : !!method.body; + if (hasBody) { + const { + key + } = method; + this.raise(TSErrors.AbstractMethodHasImplementation, { + at: method, + methodName: key.type === "Identifier" && !method.computed ? key.name : `[${this.input.slice(key.start, key.end)}]` + }); + } + } + return method; + } + tsParseTypeParameterName() { + const typeName = this.parseIdentifier(); + return typeName.name; + } + shouldParseAsAmbientContext() { + return !!this.getPluginOption("typescript", "dts"); + } + parse() { + if (this.shouldParseAsAmbientContext()) { + this.state.isAmbientContext = true; + } + return super.parse(); + } + getExpression() { + if (this.shouldParseAsAmbientContext()) { + this.state.isAmbientContext = true; + } + return super.getExpression(); + } + parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly) { + if (!isString && isMaybeTypeOnly) { + this.parseTypeOnlyImportExportSpecifier(node, false, isInTypeExport); + return this.finishNode(node, "ExportSpecifier"); + } + node.exportKind = "value"; + return super.parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly); + } + parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, + bindingType) { + if (!importedIsString && isMaybeTypeOnly) { + this.parseTypeOnlyImportExportSpecifier(specifier, true, isInTypeOnlyImport); + return this.finishNode(specifier, "ImportSpecifier"); + } + specifier.importKind = "value"; + return super.parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, isInTypeOnlyImport ? BIND_TS_TYPE_IMPORT : BIND_FLAGS_TS_IMPORT); + } + parseTypeOnlyImportExportSpecifier(node, isImport, isInTypeOnlyImportExport) { + const leftOfAsKey = isImport ? "imported" : "local"; + const rightOfAsKey = isImport ? "local" : "exported"; + let leftOfAs = node[leftOfAsKey]; + let rightOfAs; + let hasTypeSpecifier = false; + let canParseAsKeyword = true; + const loc = leftOfAs.loc.start; + + if (this.isContextual(93)) { + const firstAs = this.parseIdentifier(); + if (this.isContextual(93)) { + const secondAs = this.parseIdentifier(); + if (tokenIsKeywordOrIdentifier(this.state.type)) { + hasTypeSpecifier = true; + leftOfAs = firstAs; + rightOfAs = isImport ? this.parseIdentifier() : this.parseModuleExportName(); + canParseAsKeyword = false; + } else { + rightOfAs = secondAs; + canParseAsKeyword = false; + } + } else if (tokenIsKeywordOrIdentifier(this.state.type)) { + canParseAsKeyword = false; + rightOfAs = isImport ? this.parseIdentifier() : this.parseModuleExportName(); + } else { + hasTypeSpecifier = true; + leftOfAs = firstAs; + } + } else if (tokenIsKeywordOrIdentifier(this.state.type)) { + hasTypeSpecifier = true; + if (isImport) { + leftOfAs = this.parseIdentifier(true); + if (!this.isContextual(93)) { + this.checkReservedWord(leftOfAs.name, leftOfAs.loc.start, true, true); + } + } else { + leftOfAs = this.parseModuleExportName(); + } + } + if (hasTypeSpecifier && isInTypeOnlyImportExport) { + this.raise(isImport ? TSErrors.TypeModifierIsUsedInTypeImports : TSErrors.TypeModifierIsUsedInTypeExports, { + at: loc + }); + } + node[leftOfAsKey] = leftOfAs; + node[rightOfAsKey] = rightOfAs; + const kindKey = isImport ? "importKind" : "exportKind"; + node[kindKey] = hasTypeSpecifier ? "type" : "value"; + if (canParseAsKeyword && this.eatContextual(93)) { + node[rightOfAsKey] = isImport ? this.parseIdentifier() : this.parseModuleExportName(); + } + if (!node[rightOfAsKey]) { + node[rightOfAsKey] = cloneIdentifier(node[leftOfAsKey]); + } + if (isImport) { + this.checkIdentifier(node[rightOfAsKey], hasTypeSpecifier ? BIND_TS_TYPE_IMPORT : BIND_FLAGS_TS_IMPORT); + } + } +}); +function isPossiblyLiteralEnum(expression) { + if (expression.type !== "MemberExpression") return false; + const { + computed, + property + } = expression; + if (computed && property.type !== "StringLiteral" && (property.type !== "TemplateLiteral" || property.expressions.length > 0)) { + return false; + } + return isUncomputedMemberExpressionChain(expression.object); +} +function isUncomputedMemberExpressionChain(expression) { + if (expression.type === "Identifier") return true; + if (expression.type !== "MemberExpression") return false; + if (expression.computed) return false; + return isUncomputedMemberExpressionChain(expression.object); +} + +const PlaceholderErrors = ParseErrorEnum`placeholders`({ + ClassNameIsRequired: "A class name is required.", + UnexpectedSpace: "Unexpected space in placeholder." +}); + +var placeholders = (superClass => class PlaceholdersParserMixin extends superClass { + parsePlaceholder(expectedNode) { + if (this.match(142)) { + const node = this.startNode(); + this.next(); + this.assertNoSpace(); + + node.name = super.parseIdentifier(true); + this.assertNoSpace(); + this.expect(142); + return this.finishPlaceholder(node, expectedNode); + } + } + finishPlaceholder(node, expectedNode) { + const isFinished = !!(node.expectedNode && node.type === "Placeholder"); + node.expectedNode = expectedNode; + + return isFinished ? node : this.finishNode(node, "Placeholder"); + } + + getTokenFromCode(code) { + if (code === 37 && this.input.charCodeAt(this.state.pos + 1) === 37) { + return this.finishOp(142, 2); + } + return super.getTokenFromCode(code); + } + + parseExprAtom(refExpressionErrors) { + return this.parsePlaceholder("Expression") || super.parseExprAtom(refExpressionErrors); + } + parseIdentifier(liberal) { + return this.parsePlaceholder("Identifier") || super.parseIdentifier(liberal); + } + checkReservedWord(word, startLoc, checkKeywords, isBinding) { + if (word !== undefined) { + super.checkReservedWord(word, startLoc, checkKeywords, isBinding); + } + } + + parseBindingAtom() { + return this.parsePlaceholder("Pattern") || super.parseBindingAtom(); + } + isValidLVal(type, isParenthesized, binding) { + return type === "Placeholder" || super.isValidLVal(type, isParenthesized, binding); + } + toAssignable(node, isLHS) { + if (node && node.type === "Placeholder" && node.expectedNode === "Expression") { + node.expectedNode = "Pattern"; + } else { + super.toAssignable(node, isLHS); + } + } + + chStartsBindingIdentifier(ch, pos) { + if (super.chStartsBindingIdentifier(ch, pos)) { + return true; + } + + const nextToken = this.lookahead(); + if (nextToken.type === 142) { + return true; + } + return false; + } + verifyBreakContinue(node, isBreak) { + if (node.label && node.label.type === "Placeholder") return; + super.verifyBreakContinue(node, isBreak); + } + + parseExpressionStatement(node, expr) { + if (expr.type !== "Placeholder" || expr.extra && expr.extra.parenthesized) { + return super.parseExpressionStatement(node, expr); + } + if (this.match(14)) { + const stmt = node; + stmt.label = this.finishPlaceholder(expr, "Identifier"); + this.next(); + stmt.body = super.parseStatementOrFunctionDeclaration(false); + return this.finishNode(stmt, "LabeledStatement"); + } + this.semicolon(); + node.name = expr.name; + return this.finishPlaceholder(node, "Statement"); + } + parseBlock(allowDirectives, createNewLexicalScope, afterBlockParse) { + return this.parsePlaceholder("BlockStatement") || super.parseBlock(allowDirectives, createNewLexicalScope, afterBlockParse); + } + parseFunctionId(requireId) { + return this.parsePlaceholder("Identifier") || super.parseFunctionId(requireId); + } + parseClass(node, isStatement, optionalId) { + const type = isStatement ? "ClassDeclaration" : "ClassExpression"; + this.next(); + const oldStrict = this.state.strict; + const placeholder = this.parsePlaceholder("Identifier"); + if (placeholder) { + if (this.match(81) || this.match(142) || this.match(5)) { + node.id = placeholder; + } else if (optionalId || !isStatement) { + node.id = null; + node.body = this.finishPlaceholder(placeholder, "ClassBody"); + return this.finishNode(node, type); + } else { + throw this.raise(PlaceholderErrors.ClassNameIsRequired, { + at: this.state.startLoc + }); + } + } else { + this.parseClassId(node, isStatement, optionalId); + } + super.parseClassSuper(node); + node.body = this.parsePlaceholder("ClassBody") || super.parseClassBody(!!node.superClass, oldStrict); + return this.finishNode(node, type); + } + parseExport(node, decorators) { + const placeholder = this.parsePlaceholder("Identifier"); + if (!placeholder) return super.parseExport(node, decorators); + if (!this.isContextual(97) && !this.match(12)) { + node.specifiers = []; + node.source = null; + node.declaration = this.finishPlaceholder(placeholder, "Declaration"); + return this.finishNode(node, "ExportNamedDeclaration"); + } + + this.expectPlugin("exportDefaultFrom"); + const specifier = this.startNode(); + specifier.exported = placeholder; + node.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")]; + return super.parseExport(node, decorators); + } + isExportDefaultSpecifier() { + if (this.match(65)) { + const next = this.nextTokenStart(); + if (this.isUnparsedContextual(next, "from")) { + if (this.input.startsWith(tokenLabelName(142), this.nextTokenStartSince(next + 4))) { + return true; + } + } + } + return super.isExportDefaultSpecifier(); + } + maybeParseExportDefaultSpecifier(node) { + if (node.specifiers && node.specifiers.length > 0) { + return true; + } + return super.maybeParseExportDefaultSpecifier(node); + } + checkExport(node) { + const { + specifiers + } = node; + if (specifiers != null && specifiers.length) { + node.specifiers = specifiers.filter( + node => node.exported.type === "Placeholder"); + } + super.checkExport(node); + node.specifiers = specifiers; + } + parseImport(node) { + const placeholder = this.parsePlaceholder("Identifier"); + if (!placeholder) return super.parseImport(node); + node.specifiers = []; + if (!this.isContextual(97) && !this.match(12)) { + node.source = this.finishPlaceholder(placeholder, "StringLiteral"); + this.semicolon(); + return this.finishNode(node, "ImportDeclaration"); + } + + const specifier = this.startNodeAtNode(placeholder); + specifier.local = placeholder; + node.specifiers.push(this.finishNode(specifier, "ImportDefaultSpecifier")); + if (this.eat(12)) { + const hasStarImport = this.maybeParseStarImportSpecifier(node); + + if (!hasStarImport) this.parseNamedImportSpecifiers(node); + } + this.expectContextual(97); + node.source = this.parseImportSource(); + this.semicolon(); + return this.finishNode(node, "ImportDeclaration"); + } + parseImportSource() { + + return this.parsePlaceholder("StringLiteral") || super.parseImportSource(); + } + + assertNoSpace() { + if (this.state.start > this.state.lastTokEndLoc.index) { + this.raise(PlaceholderErrors.UnexpectedSpace, { + at: this.state.lastTokEndLoc + }); + } + } +}); + +var v8intrinsic = (superClass => class V8IntrinsicMixin extends superClass { + parseV8Intrinsic() { + if (this.match(54)) { + const v8IntrinsicStartLoc = this.state.startLoc; + const node = this.startNode(); + this.next(); + if (tokenIsIdentifier(this.state.type)) { + const name = this.parseIdentifierName(); + const identifier = this.createIdentifier(node, name); + identifier.type = "V8IntrinsicIdentifier"; + if (this.match(10)) { + return identifier; + } + } + this.unexpected(v8IntrinsicStartLoc); + } + } + + parseExprAtom(refExpressionErrors) { + return this.parseV8Intrinsic() || super.parseExprAtom(refExpressionErrors); + } +}); + +function hasPlugin(plugins, expectedConfig) { + const [expectedName, expectedOptions] = typeof expectedConfig === "string" ? [expectedConfig, {}] : expectedConfig; + const expectedKeys = Object.keys(expectedOptions); + const expectedOptionsIsEmpty = expectedKeys.length === 0; + return plugins.some(p => { + if (typeof p === "string") { + return expectedOptionsIsEmpty && p === expectedName; + } else { + const [pluginName, pluginOptions] = p; + if (pluginName !== expectedName) { + return false; + } + for (const key of expectedKeys) { + if (pluginOptions[key] !== expectedOptions[key]) { + return false; + } + } + return true; + } + }); +} +function getPluginOption(plugins, name, option) { + const plugin = plugins.find(plugin => { + if (Array.isArray(plugin)) { + return plugin[0] === name; + } else { + return plugin === name; + } + }); + if (plugin && Array.isArray(plugin) && plugin.length > 1) { + return plugin[1][option]; + } + return null; +} +const PIPELINE_PROPOSALS = ["minimal", "fsharp", "hack", "smart"]; +const TOPIC_TOKENS = ["^^", "@@", "^", "%", "#"]; +const RECORD_AND_TUPLE_SYNTAX_TYPES = ["hash", "bar"]; +function validatePlugins(plugins) { + if (hasPlugin(plugins, "decorators")) { + if (hasPlugin(plugins, "decorators-legacy")) { + throw new Error("Cannot use the decorators and decorators-legacy plugin together"); + } + const decoratorsBeforeExport = getPluginOption(plugins, "decorators", "decoratorsBeforeExport"); + if (decoratorsBeforeExport != null && typeof decoratorsBeforeExport !== "boolean") { + throw new Error("'decoratorsBeforeExport' must be a boolean."); + } + const allowCallParenthesized = getPluginOption(plugins, "decorators", "allowCallParenthesized"); + if (allowCallParenthesized != null && typeof allowCallParenthesized !== "boolean") { + throw new Error("'allowCallParenthesized' must be a boolean."); + } + } + if (hasPlugin(plugins, "flow") && hasPlugin(plugins, "typescript")) { + throw new Error("Cannot combine flow and typescript plugins."); + } + if (hasPlugin(plugins, "placeholders") && hasPlugin(plugins, "v8intrinsic")) { + throw new Error("Cannot combine placeholders and v8intrinsic plugins."); + } + if (hasPlugin(plugins, "pipelineOperator")) { + const proposal = getPluginOption(plugins, "pipelineOperator", "proposal"); + if (!PIPELINE_PROPOSALS.includes(proposal)) { + const proposalList = PIPELINE_PROPOSALS.map(p => `"${p}"`).join(", "); + throw new Error(`"pipelineOperator" requires "proposal" option whose value must be one of: ${proposalList}.`); + } + const tupleSyntaxIsHash = hasPlugin(plugins, ["recordAndTuple", { + syntaxType: "hash" + }]); + if (proposal === "hack") { + if (hasPlugin(plugins, "placeholders")) { + throw new Error("Cannot combine placeholders plugin and Hack-style pipes."); + } + if (hasPlugin(plugins, "v8intrinsic")) { + throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes."); + } + const topicToken = getPluginOption(plugins, "pipelineOperator", "topicToken"); + if (!TOPIC_TOKENS.includes(topicToken)) { + const tokenList = TOPIC_TOKENS.map(t => `"${t}"`).join(", "); + throw new Error(`"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: ${tokenList}.`); + } + if (topicToken === "#" && tupleSyntaxIsHash) { + throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "hack", topicToken: "#" }]` and `["recordAndtuple", { syntaxType: "hash"}]`.'); + } + } else if (proposal === "smart" && tupleSyntaxIsHash) { + throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "smart" }]` and `["recordAndtuple", { syntaxType: "hash"}]`.'); + } + } + if (hasPlugin(plugins, "moduleAttributes")) { + { + if (hasPlugin(plugins, "importAssertions")) { + throw new Error("Cannot combine importAssertions and moduleAttributes plugins."); + } + const moduleAttributesVersionPluginOption = getPluginOption(plugins, "moduleAttributes", "version"); + if (moduleAttributesVersionPluginOption !== "may-2020") { + throw new Error("The 'moduleAttributes' plugin requires a 'version' option," + " representing the last proposal update. Currently, the" + " only supported value is 'may-2020'."); + } + } + } + if (hasPlugin(plugins, "recordAndTuple") && getPluginOption(plugins, "recordAndTuple", "syntaxType") != null && !RECORD_AND_TUPLE_SYNTAX_TYPES.includes(getPluginOption(plugins, "recordAndTuple", "syntaxType"))) { + throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: " + RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(", ")); + } + if (hasPlugin(plugins, "asyncDoExpressions") && !hasPlugin(plugins, "doExpressions")) { + const error = new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins."); + error.missingPlugins = "doExpressions"; + throw error; + } +} + +const mixinPlugins = { + estree, + jsx, + flow, + typescript, + v8intrinsic, + placeholders +}; +const mixinPluginNames = Object.keys(mixinPlugins); + +const defaultOptions = { + sourceType: "script", + sourceFilename: undefined, + startColumn: 0, + startLine: 1, + allowAwaitOutsideFunction: false, + allowReturnOutsideFunction: false, + allowImportExportEverywhere: false, + allowSuperOutsideMethod: false, + allowUndeclaredExports: false, + plugins: [], + strictMode: null, + ranges: false, + tokens: false, + createParenthesizedExpressions: false, + errorRecovery: false, + attachComment: true +}; + +function getOptions(opts) { + const options = {}; + for (const key of Object.keys(defaultOptions)) { + options[key] = opts && opts[key] != null ? opts[key] : defaultOptions[key]; + } + return options; +} + +const getOwn = (object, key) => Object.hasOwnProperty.call(object, key) && object[key]; +const unwrapParenthesizedExpression = node => { + return node.type === "ParenthesizedExpression" ? unwrapParenthesizedExpression(node.expression) : node; +}; +class LValParser extends NodeUtils { + + toAssignable(node, isLHS = false) { + var _node$extra, _node$extra3; + let parenthesized = undefined; + if (node.type === "ParenthesizedExpression" || (_node$extra = node.extra) != null && _node$extra.parenthesized) { + parenthesized = unwrapParenthesizedExpression(node); + if (isLHS) { + if (parenthesized.type === "Identifier") { + this.expressionScope.recordArrowParameterBindingError(Errors.InvalidParenthesizedAssignment, { + at: node + }); + } else if (parenthesized.type !== "MemberExpression") { + this.raise(Errors.InvalidParenthesizedAssignment, { + at: node + }); + } + } else { + this.raise(Errors.InvalidParenthesizedAssignment, { + at: node + }); + } + } + switch (node.type) { + case "Identifier": + case "ObjectPattern": + case "ArrayPattern": + case "AssignmentPattern": + case "RestElement": + break; + case "ObjectExpression": + node.type = "ObjectPattern"; + for (let i = 0, length = node.properties.length, last = length - 1; i < length; i++) { + var _node$extra2; + const prop = node.properties[i]; + const isLast = i === last; + this.toAssignableObjectExpressionProp(prop, isLast, isLHS); + if (isLast && prop.type === "RestElement" && (_node$extra2 = node.extra) != null && _node$extra2.trailingCommaLoc) { + this.raise(Errors.RestTrailingComma, { + at: node.extra.trailingCommaLoc + }); + } + } + break; + case "ObjectProperty": + { + const { + key, + value + } = node; + if (this.isPrivateName(key)) { + this.classScope.usePrivateName(this.getPrivateNameSV(key), key.loc.start); + } + this.toAssignable(value, isLHS); + break; + } + case "SpreadElement": + { + throw new Error("Internal @babel/parser error (this is a bug, please report it)." + " SpreadElement should be converted by .toAssignable's caller."); + } + case "ArrayExpression": + node.type = "ArrayPattern"; + this.toAssignableList(node.elements, (_node$extra3 = node.extra) == null ? void 0 : _node$extra3.trailingCommaLoc, isLHS); + break; + case "AssignmentExpression": + if (node.operator !== "=") { + this.raise(Errors.MissingEqInAssignment, { + at: node.left.loc.end + }); + } + node.type = "AssignmentPattern"; + delete node.operator; + this.toAssignable(node.left, isLHS); + break; + case "ParenthesizedExpression": + this.toAssignable(parenthesized, isLHS); + break; + } + } + + toAssignableObjectExpressionProp(prop, isLast, isLHS) { + if (prop.type === "ObjectMethod") { + this.raise(prop.kind === "get" || prop.kind === "set" ? Errors.PatternHasAccessor : Errors.PatternHasMethod, { + at: prop.key + }); + } else if (prop.type === "SpreadElement") { + prop.type = "RestElement"; + const arg = prop.argument; + this.checkToRestConversion(arg, false); + this.toAssignable(arg, isLHS); + if (!isLast) { + this.raise(Errors.RestTrailingComma, { + at: prop + }); + } + } else { + this.toAssignable(prop, isLHS); + } + } + + toAssignableList(exprList, trailingCommaLoc, isLHS) { + const end = exprList.length - 1; + for (let i = 0; i <= end; i++) { + const elt = exprList[i]; + if (!elt) continue; + if (elt.type === "SpreadElement") { + elt.type = "RestElement"; + const arg = elt.argument; + this.checkToRestConversion(arg, true); + this.toAssignable(arg, isLHS); + } else { + this.toAssignable(elt, isLHS); + } + if (elt.type === "RestElement") { + if (i < end) { + this.raise(Errors.RestTrailingComma, { + at: elt + }); + } else if (trailingCommaLoc) { + this.raise(Errors.RestTrailingComma, { + at: trailingCommaLoc + }); + } + } + } + } + isAssignable(node, isBinding) { + switch (node.type) { + case "Identifier": + case "ObjectPattern": + case "ArrayPattern": + case "AssignmentPattern": + case "RestElement": + return true; + case "ObjectExpression": + { + const last = node.properties.length - 1; + return node.properties.every((prop, i) => { + return prop.type !== "ObjectMethod" && (i === last || prop.type !== "SpreadElement") && this.isAssignable(prop); + }); + } + case "ObjectProperty": + return this.isAssignable(node.value); + case "SpreadElement": + return this.isAssignable(node.argument); + case "ArrayExpression": + return node.elements.every(element => element === null || this.isAssignable(element)); + case "AssignmentExpression": + return node.operator === "="; + case "ParenthesizedExpression": + return this.isAssignable(node.expression); + case "MemberExpression": + case "OptionalMemberExpression": + return !isBinding; + default: + return false; + } + } + + toReferencedList(exprList, + isParenthesizedExpr) { + return exprList; + } + toReferencedListDeep(exprList, isParenthesizedExpr) { + this.toReferencedList(exprList, isParenthesizedExpr); + for (const expr of exprList) { + if ((expr == null ? void 0 : expr.type) === "ArrayExpression") { + this.toReferencedListDeep(expr.elements); + } + } + } + + parseSpread(refExpressionErrors) { + const node = this.startNode(); + this.next(); + node.argument = this.parseMaybeAssignAllowIn(refExpressionErrors, undefined); + return this.finishNode(node, "SpreadElement"); + } + + parseRestBinding() { + const node = this.startNode(); + this.next(); + node.argument = this.parseBindingAtom(); + return this.finishNode(node, "RestElement"); + } + + parseBindingAtom() { + switch (this.state.type) { + case 0: + { + const node = this.startNode(); + this.next(); + node.elements = this.parseBindingList(3, 93, true); + return this.finishNode(node, "ArrayPattern"); + } + case 5: + return this.parseObjectLike(8, true); + } + + return this.parseIdentifier(); + } + + parseBindingList(close, closeCharCode, allowEmpty, allowModifiers) { + const elts = []; + let first = true; + while (!this.eat(close)) { + if (first) { + first = false; + } else { + this.expect(12); + } + if (allowEmpty && this.match(12)) { + elts.push(null); + } else if (this.eat(close)) { + break; + } else if (this.match(21)) { + elts.push(this.parseAssignableListItemTypes(this.parseRestBinding())); + if (!this.checkCommaAfterRest(closeCharCode)) { + this.expect(close); + break; + } + } else { + const decorators = []; + if (this.match(26) && this.hasPlugin("decorators")) { + this.raise(Errors.UnsupportedParameterDecorator, { + at: this.state.startLoc + }); + } + while (this.match(26)) { + decorators.push(this.parseDecorator()); + } + elts.push(this.parseAssignableListItem(allowModifiers, decorators)); + } + } + return elts; + } + + parseBindingRestProperty(prop) { + this.next(); + prop.argument = this.parseIdentifier(); + this.checkCommaAfterRest(125); + return this.finishNode(prop, "RestElement"); + } + + parseBindingProperty() { + const prop = this.startNode(); + const { + type, + startLoc + } = this.state; + if (type === 21) { + return this.parseBindingRestProperty(prop); + } else if (type === 136) { + this.expectPlugin("destructuringPrivate", startLoc); + this.classScope.usePrivateName(this.state.value, startLoc); + prop.key = this.parsePrivateName(); + } else { + this.parsePropertyName(prop); + } + prop.method = false; + return this.parseObjPropValue(prop, startLoc, false, false, true, false); + } + + parseAssignableListItem(allowModifiers, decorators) { + const left = this.parseMaybeDefault(); + this.parseAssignableListItemTypes(left); + const elt = this.parseMaybeDefault(left.loc.start, left); + if (decorators.length) { + left.decorators = decorators; + } + return elt; + } + + parseAssignableListItemTypes(param) { + return param; + } + + parseMaybeDefault(startLoc, left) { + var _startLoc, _left; + (_startLoc = startLoc) != null ? _startLoc : startLoc = this.state.startLoc; + left = (_left = left) != null ? _left : this.parseBindingAtom(); + if (!this.eat(29)) return left; + const node = this.startNodeAt(startLoc); + node.left = left; + node.right = this.parseMaybeAssignAllowIn(); + return this.finishNode(node, "AssignmentPattern"); + } + isValidLVal(type, + isUnparenthesizedInAssign, + binding) { + return getOwn({ + AssignmentPattern: "left", + RestElement: "argument", + ObjectProperty: "value", + ParenthesizedExpression: "expression", + ArrayPattern: "elements", + ObjectPattern: "properties" + }, + type); + } + + checkLVal(expression, { + in: ancestor, + binding = BIND_NONE, + checkClashes = false, + strictModeChanged = false, + allowingSloppyLetBinding = !(binding & BIND_SCOPE_LEXICAL), + hasParenthesizedAncestor = false + }) { + var _expression$extra; + const type = expression.type; + + if (this.isObjectMethod(expression)) return; + if (type === "MemberExpression") { + if (binding !== BIND_NONE) { + this.raise(Errors.InvalidPropertyBindingPattern, { + at: expression + }); + } + return; + } + if (expression.type === "Identifier") { + this.checkIdentifier(expression, binding, strictModeChanged, allowingSloppyLetBinding); + const { + name + } = expression; + if (checkClashes) { + if (checkClashes.has(name)) { + this.raise(Errors.ParamDupe, { + at: expression + }); + } else { + checkClashes.add(name); + } + } + return; + } + const validity = this.isValidLVal(expression.type, !(hasParenthesizedAncestor || (_expression$extra = expression.extra) != null && _expression$extra.parenthesized) && ancestor.type === "AssignmentExpression", binding); + if (validity === true) return; + if (validity === false) { + const ParseErrorClass = binding === BIND_NONE ? Errors.InvalidLhs : Errors.InvalidLhsBinding; + this.raise(ParseErrorClass, { + at: expression, + ancestor: ancestor.type === "UpdateExpression" ? { + type: "UpdateExpression", + prefix: ancestor.prefix + } : { + type: ancestor.type + } + }); + return; + } + const [key, isParenthesizedExpression] = Array.isArray(validity) ? validity : [validity, type === "ParenthesizedExpression"]; + const nextAncestor = expression.type === "ArrayPattern" || expression.type === "ObjectPattern" || expression.type === "ParenthesizedExpression" ? expression : ancestor; + + for (const child of [].concat(expression[key])) { + if (child) { + this.checkLVal(child, { + in: nextAncestor, + binding, + checkClashes, + allowingSloppyLetBinding, + strictModeChanged, + hasParenthesizedAncestor: isParenthesizedExpression + }); + } + } + } + checkIdentifier(at, bindingType, strictModeChanged = false, allowLetBinding = !(bindingType & BIND_SCOPE_LEXICAL)) { + if (this.state.strict && (strictModeChanged ? isStrictBindReservedWord(at.name, this.inModule) : isStrictBindOnlyReservedWord(at.name))) { + if (bindingType === BIND_NONE) { + this.raise(Errors.StrictEvalArguments, { + at, + referenceName: at.name + }); + } else { + this.raise(Errors.StrictEvalArgumentsBinding, { + at, + bindingName: at.name + }); + } + } + if (!allowLetBinding && at.name === "let") { + this.raise(Errors.LetInLexicalBinding, { + at + }); + } + if (!(bindingType & BIND_NONE)) { + this.declareNameFromIdentifier(at, bindingType); + } + } + declareNameFromIdentifier(identifier, binding) { + this.scope.declareName(identifier.name, binding, identifier.loc.start); + } + checkToRestConversion(node, allowPattern) { + switch (node.type) { + case "ParenthesizedExpression": + this.checkToRestConversion(node.expression, allowPattern); + break; + case "Identifier": + case "MemberExpression": + break; + case "ArrayExpression": + case "ObjectExpression": + if (allowPattern) break; + default: + this.raise(Errors.InvalidRestAssignmentPattern, { + at: node + }); + } + } + checkCommaAfterRest(close) { + if (!this.match(12)) { + return false; + } + this.raise(this.lookaheadCharCode() === close ? Errors.RestTrailingComma : Errors.ElementAfterRest, { + at: this.state.startLoc + }); + return true; + } +} + +class ExpressionParser extends LValParser { + + checkProto(prop, isRecord, protoRef, refExpressionErrors) { + if (prop.type === "SpreadElement" || this.isObjectMethod(prop) || prop.computed || + prop.shorthand) { + return; + } + const key = prop.key; + const name = key.type === "Identifier" ? key.name : key.value; + if (name === "__proto__") { + if (isRecord) { + this.raise(Errors.RecordNoProto, { + at: key + }); + return; + } + if (protoRef.used) { + if (refExpressionErrors) { + if (refExpressionErrors.doubleProtoLoc === null) { + refExpressionErrors.doubleProtoLoc = key.loc.start; + } + } else { + this.raise(Errors.DuplicateProto, { + at: key + }); + } + } + protoRef.used = true; + } + } + shouldExitDescending(expr, potentialArrowAt) { + return expr.type === "ArrowFunctionExpression" && expr.start === potentialArrowAt; + } + + getExpression() { + this.enterInitialScopes(); + this.nextToken(); + const expr = this.parseExpression(); + if (!this.match(137)) { + this.unexpected(); + } + this.finalizeRemainingComments(); + expr.comments = this.state.comments; + expr.errors = this.state.errors; + if (this.options.tokens) { + expr.tokens = this.tokens; + } + return expr; + } + + parseExpression(disallowIn, refExpressionErrors) { + if (disallowIn) { + return this.disallowInAnd(() => this.parseExpressionBase(refExpressionErrors)); + } + return this.allowInAnd(() => this.parseExpressionBase(refExpressionErrors)); + } + + parseExpressionBase(refExpressionErrors) { + const startLoc = this.state.startLoc; + const expr = this.parseMaybeAssign(refExpressionErrors); + if (this.match(12)) { + const node = this.startNodeAt(startLoc); + node.expressions = [expr]; + while (this.eat(12)) { + node.expressions.push(this.parseMaybeAssign(refExpressionErrors)); + } + this.toReferencedList(node.expressions); + return this.finishNode(node, "SequenceExpression"); + } + return expr; + } + + parseMaybeAssignDisallowIn(refExpressionErrors, afterLeftParse) { + return this.disallowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse)); + } + + parseMaybeAssignAllowIn(refExpressionErrors, afterLeftParse) { + return this.allowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse)); + } + + setOptionalParametersError(refExpressionErrors, resultError) { + var _resultError$loc; + refExpressionErrors.optionalParametersLoc = (_resultError$loc = resultError == null ? void 0 : resultError.loc) != null ? _resultError$loc : this.state.startLoc; + } + + parseMaybeAssign(refExpressionErrors, afterLeftParse) { + const startLoc = this.state.startLoc; + if (this.isContextual(106)) { + if (this.prodParam.hasYield) { + let left = this.parseYield(); + if (afterLeftParse) { + left = afterLeftParse.call(this, left, startLoc); + } + return left; + } + } + let ownExpressionErrors; + if (refExpressionErrors) { + ownExpressionErrors = false; + } else { + refExpressionErrors = new ExpressionErrors(); + ownExpressionErrors = true; + } + const { + type + } = this.state; + if (type === 10 || tokenIsIdentifier(type)) { + this.state.potentialArrowAt = this.state.start; + } + let left = this.parseMaybeConditional(refExpressionErrors); + if (afterLeftParse) { + left = afterLeftParse.call(this, left, startLoc); + } + if (tokenIsAssignment(this.state.type)) { + const node = this.startNodeAt(startLoc); + const operator = this.state.value; + node.operator = operator; + if (this.match(29)) { + this.toAssignable(left, true); + node.left = left; + const startIndex = startLoc.index; + if (refExpressionErrors.doubleProtoLoc != null && refExpressionErrors.doubleProtoLoc.index >= startIndex) { + refExpressionErrors.doubleProtoLoc = null; + } + + if (refExpressionErrors.shorthandAssignLoc != null && refExpressionErrors.shorthandAssignLoc.index >= startIndex) { + refExpressionErrors.shorthandAssignLoc = null; + } + + if (refExpressionErrors.privateKeyLoc != null && refExpressionErrors.privateKeyLoc.index >= startIndex) { + this.checkDestructuringPrivate(refExpressionErrors); + refExpressionErrors.privateKeyLoc = null; + } + } else { + node.left = left; + } + this.next(); + node.right = this.parseMaybeAssign(); + this.checkLVal(left, { + in: this.finishNode(node, "AssignmentExpression") + }); + return node; + } else if (ownExpressionErrors) { + this.checkExpressionErrors(refExpressionErrors, true); + } + return left; + } + + parseMaybeConditional(refExpressionErrors) { + const startLoc = this.state.startLoc; + const potentialArrowAt = this.state.potentialArrowAt; + const expr = this.parseExprOps(refExpressionErrors); + if (this.shouldExitDescending(expr, potentialArrowAt)) { + return expr; + } + return this.parseConditional(expr, startLoc, refExpressionErrors); + } + parseConditional(expr, startLoc, + refExpressionErrors) { + if (this.eat(17)) { + const node = this.startNodeAt(startLoc); + node.test = expr; + node.consequent = this.parseMaybeAssignAllowIn(); + this.expect(14); + node.alternate = this.parseMaybeAssign(); + return this.finishNode(node, "ConditionalExpression"); + } + return expr; + } + parseMaybeUnaryOrPrivate(refExpressionErrors) { + return this.match(136) ? this.parsePrivateName() : this.parseMaybeUnary(refExpressionErrors); + } + + parseExprOps(refExpressionErrors) { + const startLoc = this.state.startLoc; + const potentialArrowAt = this.state.potentialArrowAt; + const expr = this.parseMaybeUnaryOrPrivate(refExpressionErrors); + if (this.shouldExitDescending(expr, potentialArrowAt)) { + return expr; + } + return this.parseExprOp(expr, startLoc, -1); + } + + parseExprOp(left, leftStartLoc, minPrec) { + if (this.isPrivateName(left)) { + + const value = this.getPrivateNameSV(left); + if (minPrec >= tokenOperatorPrecedence(58) || !this.prodParam.hasIn || !this.match(58)) { + this.raise(Errors.PrivateInExpectedIn, { + at: left, + identifierName: value + }); + } + this.classScope.usePrivateName(value, left.loc.start); + } + const op = this.state.type; + if (tokenIsOperator(op) && (this.prodParam.hasIn || !this.match(58))) { + let prec = tokenOperatorPrecedence(op); + if (prec > minPrec) { + if (op === 39) { + this.expectPlugin("pipelineOperator"); + if (this.state.inFSharpPipelineDirectBody) { + return left; + } + this.checkPipelineAtInfixOperator(left, leftStartLoc); + } + const node = this.startNodeAt(leftStartLoc); + node.left = left; + node.operator = this.state.value; + const logical = op === 41 || op === 42; + const coalesce = op === 40; + if (coalesce) { + prec = tokenOperatorPrecedence(42); + } + this.next(); + if (op === 39 && this.hasPlugin(["pipelineOperator", { + proposal: "minimal" + }])) { + if (this.state.type === 96 && this.prodParam.hasAwait) { + throw this.raise(Errors.UnexpectedAwaitAfterPipelineBody, { + at: this.state.startLoc + }); + } + } + node.right = this.parseExprOpRightExpr(op, prec); + const finishedNode = this.finishNode(node, logical || coalesce ? "LogicalExpression" : "BinaryExpression"); + const nextOp = this.state.type; + if (coalesce && (nextOp === 41 || nextOp === 42) || logical && nextOp === 40) { + throw this.raise(Errors.MixingCoalesceWithLogical, { + at: this.state.startLoc + }); + } + return this.parseExprOp(finishedNode, leftStartLoc, minPrec); + } + } + return left; + } + + parseExprOpRightExpr(op, prec) { + const startLoc = this.state.startLoc; + switch (op) { + case 39: + switch (this.getPluginOption("pipelineOperator", "proposal")) { + case "hack": + return this.withTopicBindingContext(() => { + return this.parseHackPipeBody(); + }); + case "smart": + return this.withTopicBindingContext(() => { + if (this.prodParam.hasYield && this.isContextual(106)) { + throw this.raise(Errors.PipeBodyIsTighter, { + at: this.state.startLoc + }); + } + return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(op, prec), startLoc); + }); + case "fsharp": + return this.withSoloAwaitPermittingContext(() => { + return this.parseFSharpPipelineBody(prec); + }); + } + + default: + return this.parseExprOpBaseRightExpr(op, prec); + } + } + + parseExprOpBaseRightExpr(op, prec) { + const startLoc = this.state.startLoc; + return this.parseExprOp(this.parseMaybeUnaryOrPrivate(), startLoc, tokenIsRightAssociative(op) ? prec - 1 : prec); + } + parseHackPipeBody() { + var _body$extra; + const { + startLoc + } = this.state; + const body = this.parseMaybeAssign(); + const requiredParentheses = UnparenthesizedPipeBodyDescriptions.has( + body.type); + + if (requiredParentheses && !((_body$extra = body.extra) != null && _body$extra.parenthesized)) { + this.raise(Errors.PipeUnparenthesizedBody, { + at: startLoc, + type: body.type + }); + } + if (!this.topicReferenceWasUsedInCurrentContext()) { + this.raise(Errors.PipeTopicUnused, { + at: startLoc + }); + } + return body; + } + checkExponentialAfterUnary(node) { + if (this.match(57)) { + this.raise(Errors.UnexpectedTokenUnaryExponentiation, { + at: node.argument + }); + } + } + + parseMaybeUnary(refExpressionErrors, sawUnary) { + const startLoc = this.state.startLoc; + const isAwait = this.isContextual(96); + if (isAwait && this.isAwaitAllowed()) { + this.next(); + const expr = this.parseAwait(startLoc); + if (!sawUnary) this.checkExponentialAfterUnary(expr); + return expr; + } + const update = this.match(34); + const node = this.startNode(); + if (tokenIsPrefix(this.state.type)) { + node.operator = this.state.value; + node.prefix = true; + if (this.match(72)) { + this.expectPlugin("throwExpressions"); + } + const isDelete = this.match(89); + this.next(); + node.argument = this.parseMaybeUnary(null, true); + this.checkExpressionErrors(refExpressionErrors, true); + if (this.state.strict && isDelete) { + const arg = node.argument; + if (arg.type === "Identifier") { + this.raise(Errors.StrictDelete, { + at: node + }); + } else if (this.hasPropertyAsPrivateName(arg)) { + this.raise(Errors.DeletePrivateField, { + at: node + }); + } + } + if (!update) { + if (!sawUnary) { + this.checkExponentialAfterUnary(node); + } + return this.finishNode(node, "UnaryExpression"); + } + } + const expr = this.parseUpdate( + node, update, refExpressionErrors); + if (isAwait) { + const { + type + } = this.state; + const startsExpr = this.hasPlugin("v8intrinsic") ? tokenCanStartExpression(type) : tokenCanStartExpression(type) && !this.match(54); + if (startsExpr && !this.isAmbiguousAwait()) { + this.raiseOverwrite(Errors.AwaitNotInAsyncContext, { + at: startLoc + }); + return this.parseAwait(startLoc); + } + } + return expr; + } + + parseUpdate(node, update, refExpressionErrors) { + if (update) { + const updateExpressionNode = node; + this.checkLVal(updateExpressionNode.argument, { + in: this.finishNode(updateExpressionNode, "UpdateExpression") + }); + return node; + } + const startLoc = this.state.startLoc; + let expr = this.parseExprSubscripts(refExpressionErrors); + if (this.checkExpressionErrors(refExpressionErrors, false)) return expr; + while (tokenIsPostfix(this.state.type) && !this.canInsertSemicolon()) { + const node = this.startNodeAt(startLoc); + node.operator = this.state.value; + node.prefix = false; + node.argument = expr; + this.next(); + this.checkLVal(expr, { + in: expr = this.finishNode(node, "UpdateExpression") + }); + } + return expr; + } + + parseExprSubscripts(refExpressionErrors) { + const startLoc = this.state.startLoc; + const potentialArrowAt = this.state.potentialArrowAt; + const expr = this.parseExprAtom(refExpressionErrors); + if (this.shouldExitDescending(expr, potentialArrowAt)) { + return expr; + } + return this.parseSubscripts(expr, startLoc); + } + parseSubscripts(base, startLoc, noCalls) { + const state = { + optionalChainMember: false, + maybeAsyncArrow: this.atPossibleAsyncArrow(base), + stop: false + }; + do { + base = this.parseSubscript(base, startLoc, noCalls, state); + + state.maybeAsyncArrow = false; + } while (!state.stop); + return base; + } + + parseSubscript(base, startLoc, noCalls, state) { + const { + type + } = this.state; + if (!noCalls && type === 15) { + return this.parseBind(base, startLoc, noCalls, state); + } else if (tokenIsTemplate(type)) { + return this.parseTaggedTemplateExpression(base, startLoc, state); + } + let optional = false; + if (type === 18) { + if (noCalls && this.lookaheadCharCode() === 40) { + state.stop = true; + return base; + } + state.optionalChainMember = optional = true; + this.next(); + } + if (!noCalls && this.match(10)) { + return this.parseCoverCallAndAsyncArrowHead(base, startLoc, state, optional); + } else { + const computed = this.eat(0); + if (computed || optional || this.eat(16)) { + return this.parseMember(base, startLoc, state, computed, optional); + } else { + state.stop = true; + return base; + } + } + } + + parseMember(base, startLoc, state, computed, optional) { + const node = this.startNodeAt(startLoc); + node.object = base; + node.computed = computed; + if (computed) { + node.property = this.parseExpression(); + this.expect(3); + } else if (this.match(136)) { + if (base.type === "Super") { + this.raise(Errors.SuperPrivateField, { + at: startLoc + }); + } + this.classScope.usePrivateName(this.state.value, this.state.startLoc); + node.property = this.parsePrivateName(); + } else { + node.property = this.parseIdentifier(true); + } + if (state.optionalChainMember) { + node.optional = optional; + return this.finishNode(node, "OptionalMemberExpression"); + } else { + return this.finishNode(node, "MemberExpression"); + } + } + + parseBind(base, startLoc, noCalls, state) { + const node = this.startNodeAt(startLoc); + node.object = base; + this.next(); + node.callee = this.parseNoCallExpr(); + state.stop = true; + return this.parseSubscripts(this.finishNode(node, "BindExpression"), startLoc, noCalls); + } + + parseCoverCallAndAsyncArrowHead(base, startLoc, state, optional) { + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + let refExpressionErrors = null; + this.state.maybeInArrowParameters = true; + this.next(); + + const node = this.startNodeAt(startLoc); + node.callee = base; + const { + maybeAsyncArrow, + optionalChainMember + } = state; + if (maybeAsyncArrow) { + this.expressionScope.enter(newAsyncArrowScope()); + refExpressionErrors = new ExpressionErrors(); + } + if (optionalChainMember) { + node.optional = optional; + } + if (optional) { + node.arguments = this.parseCallExpressionArguments(11); + } else { + node.arguments = this.parseCallExpressionArguments(11, base.type === "Import", base.type !== "Super", + node, refExpressionErrors); + } + let finishedNode = this.finishCallExpression(node, optionalChainMember); + if (maybeAsyncArrow && this.shouldParseAsyncArrow() && !optional) { + state.stop = true; + this.checkDestructuringPrivate(refExpressionErrors); + this.expressionScope.validateAsPattern(); + this.expressionScope.exit(); + finishedNode = this.parseAsyncArrowFromCallExpression(this.startNodeAt(startLoc), finishedNode); + } else { + if (maybeAsyncArrow) { + this.checkExpressionErrors(refExpressionErrors, true); + this.expressionScope.exit(); + } + this.toReferencedArguments(finishedNode); + } + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + return finishedNode; + } + toReferencedArguments(node, isParenthesizedExpr) { + this.toReferencedListDeep(node.arguments, isParenthesizedExpr); + } + + parseTaggedTemplateExpression(base, startLoc, state) { + const node = this.startNodeAt(startLoc); + node.tag = base; + node.quasi = this.parseTemplate(true); + if (state.optionalChainMember) { + this.raise(Errors.OptionalChainingNoTemplate, { + at: startLoc + }); + } + return this.finishNode(node, "TaggedTemplateExpression"); + } + atPossibleAsyncArrow(base) { + return base.type === "Identifier" && base.name === "async" && this.state.lastTokEndLoc.index === base.end && !this.canInsertSemicolon() && + base.end - base.start === 5 && base.start === this.state.potentialArrowAt; + } + finishCallExpression(node, optional) { + if (node.callee.type === "Import") { + if (node.arguments.length === 2) { + { + if (!this.hasPlugin("moduleAttributes")) { + this.expectPlugin("importAssertions"); + } + } + } + if (node.arguments.length === 0 || node.arguments.length > 2) { + this.raise(Errors.ImportCallArity, { + at: node, + maxArgumentCount: this.hasPlugin("importAssertions") || this.hasPlugin("moduleAttributes") ? 2 : 1 + }); + } else { + for (const arg of node.arguments) { + if (arg.type === "SpreadElement") { + this.raise(Errors.ImportCallSpreadArgument, { + at: arg + }); + } + } + } + } + return this.finishNode(node, optional ? "OptionalCallExpression" : "CallExpression"); + } + parseCallExpressionArguments(close, dynamicImport, allowPlaceholder, nodeForExtra, refExpressionErrors) { + const elts = []; + let first = true; + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = false; + while (!this.eat(close)) { + if (first) { + first = false; + } else { + this.expect(12); + if (this.match(close)) { + if (dynamicImport && !this.hasPlugin("importAssertions") && !this.hasPlugin("moduleAttributes")) { + this.raise(Errors.ImportCallArgumentTrailingComma, { + at: this.state.lastTokStartLoc + }); + } + if (nodeForExtra) { + this.addTrailingCommaExtraToNode(nodeForExtra); + } + this.next(); + break; + } + } + elts.push(this.parseExprListItem(false, refExpressionErrors, allowPlaceholder)); + } + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + return elts; + } + shouldParseAsyncArrow() { + return this.match(19) && !this.canInsertSemicolon(); + } + parseAsyncArrowFromCallExpression(node, call) { + var _call$extra; + this.resetPreviousNodeTrailingComments(call); + this.expect(19); + this.parseArrowExpression(node, call.arguments, true, (_call$extra = call.extra) == null ? void 0 : _call$extra.trailingCommaLoc); + if (call.innerComments) { + setInnerComments(node, call.innerComments); + } + if (call.callee.trailingComments) { + setInnerComments(node, call.callee.trailingComments); + } + return node; + } + + parseNoCallExpr() { + const startLoc = this.state.startLoc; + return this.parseSubscripts(this.parseExprAtom(), startLoc, true); + } + + parseExprAtom(refExpressionErrors) { + let node; + let decorators = null; + const { + type + } = this.state; + switch (type) { + case 79: + return this.parseSuper(); + case 83: + node = this.startNode(); + this.next(); + if (this.match(16)) { + return this.parseImportMetaProperty(node); + } + if (!this.match(10)) { + this.raise(Errors.UnsupportedImport, { + at: this.state.lastTokStartLoc + }); + } + return this.finishNode(node, "Import"); + case 78: + node = this.startNode(); + this.next(); + return this.finishNode(node, "ThisExpression"); + case 90: + { + return this.parseDo(this.startNode(), false); + } + case 56: + case 31: + { + this.readRegexp(); + return this.parseRegExpLiteral(this.state.value); + } + case 132: + return this.parseNumericLiteral(this.state.value); + case 133: + return this.parseBigIntLiteral(this.state.value); + case 134: + return this.parseDecimalLiteral(this.state.value); + case 131: + return this.parseStringLiteral(this.state.value); + case 84: + return this.parseNullLiteral(); + case 85: + return this.parseBooleanLiteral(true); + case 86: + return this.parseBooleanLiteral(false); + case 10: + { + const canBeArrow = this.state.potentialArrowAt === this.state.start; + return this.parseParenAndDistinguishExpression(canBeArrow); + } + case 2: + case 1: + { + return this.parseArrayLike(this.state.type === 2 ? 4 : 3, false, true); + } + case 0: + { + return this.parseArrayLike(3, true, false, refExpressionErrors); + } + case 6: + case 7: + { + return this.parseObjectLike(this.state.type === 6 ? 9 : 8, false, true); + } + case 5: + { + return this.parseObjectLike(8, false, false, refExpressionErrors); + } + case 68: + return this.parseFunctionOrFunctionSent(); + case 26: + decorators = this.parseDecorators(); + case 80: + return this.parseClass(this.maybeTakeDecorators(decorators, this.startNode()), false); + case 77: + return this.parseNewOrNewTarget(); + case 25: + case 24: + return this.parseTemplate(false); + + case 15: + { + node = this.startNode(); + this.next(); + node.object = null; + const callee = node.callee = this.parseNoCallExpr(); + if (callee.type === "MemberExpression") { + return this.finishNode(node, "BindExpression"); + } else { + throw this.raise(Errors.UnsupportedBind, { + at: callee + }); + } + } + case 136: + { + this.raise(Errors.PrivateInExpectedIn, { + at: this.state.startLoc, + identifierName: this.state.value + }); + return this.parsePrivateName(); + } + case 33: + { + return this.parseTopicReferenceThenEqualsSign(54, "%"); + } + case 32: + { + return this.parseTopicReferenceThenEqualsSign(44, "^"); + } + case 37: + case 38: + { + return this.parseTopicReference("hack"); + } + case 44: + case 54: + case 27: + { + const pipeProposal = this.getPluginOption("pipelineOperator", "proposal"); + if (pipeProposal) { + return this.parseTopicReference(pipeProposal); + } else { + throw this.unexpected(); + } + } + case 47: + { + const lookaheadCh = this.input.codePointAt(this.nextTokenStart()); + if (isIdentifierStart(lookaheadCh) || + lookaheadCh === 62) { + this.expectOnePlugin(["jsx", "flow", "typescript"]); + break; + } else { + throw this.unexpected(); + } + } + default: + if (tokenIsIdentifier(type)) { + if (this.isContextual(125) && this.lookaheadCharCode() === 123 && !this.hasFollowingLineBreak()) { + return this.parseModuleExpression(); + } + const canBeArrow = this.state.potentialArrowAt === this.state.start; + const containsEsc = this.state.containsEsc; + const id = this.parseIdentifier(); + if (!containsEsc && id.name === "async" && !this.canInsertSemicolon()) { + const { + type + } = this.state; + if (type === 68) { + this.resetPreviousNodeTrailingComments(id); + this.next(); + return this.parseAsyncFunctionExpression(this.startNodeAtNode(id)); + } else if (tokenIsIdentifier(type)) { + if (this.lookaheadCharCode() === 61) { + return this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(id)); + } else { + return id; + } + } else if (type === 90) { + this.resetPreviousNodeTrailingComments(id); + return this.parseDo(this.startNodeAtNode(id), true); + } + } + if (canBeArrow && this.match(19) && !this.canInsertSemicolon()) { + this.next(); + return this.parseArrowExpression(this.startNodeAtNode(id), [id], false); + } + return id; + } else { + throw this.unexpected(); + } + } + } + + parseTopicReferenceThenEqualsSign(topicTokenType, topicTokenValue) { + const pipeProposal = this.getPluginOption("pipelineOperator", "proposal"); + if (pipeProposal) { + this.state.type = topicTokenType; + this.state.value = topicTokenValue; + this.state.pos--; + this.state.end--; + this.state.endLoc = createPositionWithColumnOffset(this.state.endLoc, -1); + return this.parseTopicReference(pipeProposal); + } else { + throw this.unexpected(); + } + } + + parseTopicReference(pipeProposal) { + const node = this.startNode(); + const startLoc = this.state.startLoc; + const tokenType = this.state.type; + + this.next(); + + return this.finishTopicReference(node, startLoc, pipeProposal, tokenType); + } + + finishTopicReference(node, startLoc, pipeProposal, tokenType) { + if (this.testTopicReferenceConfiguration(pipeProposal, startLoc, tokenType)) { + + const nodeType = pipeProposal === "smart" ? "PipelinePrimaryTopicReference" : + "TopicReference"; + if (!this.topicReferenceIsAllowedInCurrentContext()) { + this.raise( + pipeProposal === "smart" ? Errors.PrimaryTopicNotAllowed : + Errors.PipeTopicUnbound, { + at: startLoc + }); + } + + this.registerTopicReference(); + return this.finishNode(node, nodeType); + } else { + throw this.raise(Errors.PipeTopicUnconfiguredToken, { + at: startLoc, + token: tokenLabelName(tokenType) + }); + } + } + + testTopicReferenceConfiguration(pipeProposal, startLoc, tokenType) { + switch (pipeProposal) { + case "hack": + { + return this.hasPlugin(["pipelineOperator", { + topicToken: tokenLabelName(tokenType) + }]); + } + case "smart": + return tokenType === 27; + default: + throw this.raise(Errors.PipeTopicRequiresHackPipes, { + at: startLoc + }); + } + } + + parseAsyncArrowUnaryFunction(node) { + this.prodParam.enter(functionFlags(true, this.prodParam.hasYield)); + const params = [this.parseIdentifier()]; + this.prodParam.exit(); + if (this.hasPrecedingLineBreak()) { + this.raise(Errors.LineTerminatorBeforeArrow, { + at: this.state.curPosition() + }); + } + this.expect(19); + return this.parseArrowExpression(node, params, true); + } + + parseDo(node, isAsync) { + this.expectPlugin("doExpressions"); + if (isAsync) { + this.expectPlugin("asyncDoExpressions"); + } + node.async = isAsync; + this.next(); + const oldLabels = this.state.labels; + this.state.labels = []; + if (isAsync) { + this.prodParam.enter(PARAM_AWAIT); + node.body = this.parseBlock(); + this.prodParam.exit(); + } else { + node.body = this.parseBlock(); + } + this.state.labels = oldLabels; + return this.finishNode(node, "DoExpression"); + } + + parseSuper() { + const node = this.startNode(); + this.next(); + if (this.match(10) && !this.scope.allowDirectSuper && !this.options.allowSuperOutsideMethod) { + this.raise(Errors.SuperNotAllowed, { + at: node + }); + } else if (!this.scope.allowSuper && !this.options.allowSuperOutsideMethod) { + this.raise(Errors.UnexpectedSuper, { + at: node + }); + } + if (!this.match(10) && !this.match(0) && !this.match(16)) { + this.raise(Errors.UnsupportedSuper, { + at: node + }); + } + return this.finishNode(node, "Super"); + } + parsePrivateName() { + const node = this.startNode(); + const id = this.startNodeAt( + createPositionWithColumnOffset(this.state.startLoc, 1)); + const name = this.state.value; + this.next(); + node.id = this.createIdentifier(id, name); + return this.finishNode(node, "PrivateName"); + } + parseFunctionOrFunctionSent() { + const node = this.startNode(); + + this.next(); + + if (this.prodParam.hasYield && this.match(16)) { + const meta = this.createIdentifier(this.startNodeAtNode(node), "function"); + this.next(); + if (this.match(102)) { + this.expectPlugin("functionSent"); + } else if (!this.hasPlugin("functionSent")) { + this.unexpected(); + } + return this.parseMetaProperty(node, meta, "sent"); + } + return this.parseFunction(node); + } + parseMetaProperty(node, meta, propertyName) { + node.meta = meta; + const containsEsc = this.state.containsEsc; + node.property = this.parseIdentifier(true); + if (node.property.name !== propertyName || containsEsc) { + this.raise(Errors.UnsupportedMetaProperty, { + at: node.property, + target: meta.name, + onlyValidPropertyName: propertyName + }); + } + return this.finishNode(node, "MetaProperty"); + } + + parseImportMetaProperty(node) { + const id = this.createIdentifier(this.startNodeAtNode(node), "import"); + this.next(); + + if (this.isContextual(100)) { + if (!this.inModule) { + this.raise(Errors.ImportMetaOutsideModule, { + at: id + }); + } + this.sawUnambiguousESM = true; + } + return this.parseMetaProperty(node, id, "meta"); + } + parseLiteralAtNode(value, type, node) { + this.addExtra(node, "rawValue", value); + this.addExtra(node, "raw", this.input.slice(node.start, this.state.end)); + node.value = value; + this.next(); + return this.finishNode(node, type); + } + parseLiteral(value, type) { + const node = this.startNode(); + return this.parseLiteralAtNode(value, type, node); + } + parseStringLiteral(value) { + return this.parseLiteral(value, "StringLiteral"); + } + parseNumericLiteral(value) { + return this.parseLiteral(value, "NumericLiteral"); + } + parseBigIntLiteral(value) { + return this.parseLiteral(value, "BigIntLiteral"); + } + parseDecimalLiteral(value) { + return this.parseLiteral(value, "DecimalLiteral"); + } + parseRegExpLiteral(value) { + const node = this.parseLiteral(value.value, "RegExpLiteral"); + node.pattern = value.pattern; + node.flags = value.flags; + return node; + } + parseBooleanLiteral(value) { + const node = this.startNode(); + node.value = value; + this.next(); + return this.finishNode(node, "BooleanLiteral"); + } + parseNullLiteral() { + const node = this.startNode(); + this.next(); + return this.finishNode(node, "NullLiteral"); + } + + parseParenAndDistinguishExpression(canBeArrow) { + const startLoc = this.state.startLoc; + let val; + this.next(); + this.expressionScope.enter(newArrowHeadScope()); + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.maybeInArrowParameters = true; + this.state.inFSharpPipelineDirectBody = false; + const innerStartLoc = this.state.startLoc; + const exprList = []; + const refExpressionErrors = new ExpressionErrors(); + let first = true; + let spreadStartLoc; + let optionalCommaStartLoc; + while (!this.match(11)) { + if (first) { + first = false; + } else { + this.expect(12, refExpressionErrors.optionalParametersLoc === null ? null : refExpressionErrors.optionalParametersLoc); + if (this.match(11)) { + optionalCommaStartLoc = this.state.startLoc; + break; + } + } + if (this.match(21)) { + const spreadNodeStartLoc = this.state.startLoc; + spreadStartLoc = this.state.startLoc; + exprList.push(this.parseParenItem(this.parseRestBinding(), spreadNodeStartLoc)); + if (!this.checkCommaAfterRest(41)) { + break; + } + } else { + exprList.push(this.parseMaybeAssignAllowIn(refExpressionErrors, this.parseParenItem)); + } + } + const innerEndLoc = this.state.lastTokEndLoc; + this.expect(11); + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + let arrowNode = this.startNodeAt(startLoc); + if (canBeArrow && this.shouldParseArrow(exprList) && (arrowNode = this.parseArrow(arrowNode))) { + this.checkDestructuringPrivate(refExpressionErrors); + this.expressionScope.validateAsPattern(); + this.expressionScope.exit(); + this.parseArrowExpression(arrowNode, exprList, false); + return arrowNode; + } + this.expressionScope.exit(); + if (!exprList.length) { + this.unexpected(this.state.lastTokStartLoc); + } + if (optionalCommaStartLoc) this.unexpected(optionalCommaStartLoc); + if (spreadStartLoc) this.unexpected(spreadStartLoc); + this.checkExpressionErrors(refExpressionErrors, true); + this.toReferencedListDeep(exprList, true); + if (exprList.length > 1) { + val = this.startNodeAt(innerStartLoc); + val.expressions = exprList; + this.finishNode(val, "SequenceExpression"); + this.resetEndLocation(val, innerEndLoc); + } else { + val = exprList[0]; + } + return this.wrapParenthesis(startLoc, + val); + } + wrapParenthesis(startLoc, expression) { + if (!this.options.createParenthesizedExpressions) { + this.addExtra(expression, "parenthesized", true); + this.addExtra(expression, "parenStart", startLoc.index); + this.takeSurroundingComments(expression, startLoc.index, this.state.lastTokEndLoc.index); + return expression; + } + const parenExpression = this.startNodeAt(startLoc); + parenExpression.expression = expression; + return this.finishNode(parenExpression, "ParenthesizedExpression"); + } + + shouldParseArrow(params) { + return !this.canInsertSemicolon(); + } + parseArrow(node) { + if (this.eat(19)) { + return node; + } + } + parseParenItem(node, + startLoc) { + return node; + } + parseNewOrNewTarget() { + const node = this.startNode(); + this.next(); + if (this.match(16)) { + const meta = this.createIdentifier(this.startNodeAtNode(node), "new"); + this.next(); + const metaProp = this.parseMetaProperty(node, meta, "target"); + if (!this.scope.inNonArrowFunction && !this.scope.inClass) { + this.raise(Errors.UnexpectedNewTarget, { + at: metaProp + }); + } + return metaProp; + } + return this.parseNew(node); + } + + parseNew(node) { + this.parseNewCallee(node); + if (this.eat(10)) { + const args = this.parseExprList(11); + this.toReferencedList(args); + node.arguments = args; + } else { + node.arguments = []; + } + return this.finishNode(node, "NewExpression"); + } + parseNewCallee(node) { + node.callee = this.parseNoCallExpr(); + if (node.callee.type === "Import") { + this.raise(Errors.ImportCallNotNewExpression, { + at: node.callee + }); + } else if (this.isOptionalChain(node.callee)) { + this.raise(Errors.OptionalChainingNoNew, { + at: this.state.lastTokEndLoc + }); + } else if (this.eat(18)) { + this.raise(Errors.OptionalChainingNoNew, { + at: this.state.startLoc + }); + } + } + + parseTemplateElement(isTagged) { + const { + start, + startLoc, + end, + value + } = this.state; + const elemStart = start + 1; + const elem = this.startNodeAt(createPositionWithColumnOffset(startLoc, 1)); + if (value === null) { + if (!isTagged) { + this.raise(Errors.InvalidEscapeSequenceTemplate, { + at: createPositionWithColumnOffset(this.state.firstInvalidTemplateEscapePos, 1) + }); + } + } + const isTail = this.match(24); + const endOffset = isTail ? -1 : -2; + const elemEnd = end + endOffset; + elem.value = { + raw: this.input.slice(elemStart, elemEnd).replace(/\r\n?/g, "\n"), + cooked: value === null ? null : value.slice(1, endOffset) + }; + elem.tail = isTail; + this.next(); + const finishedNode = this.finishNode(elem, "TemplateElement"); + this.resetEndLocation(finishedNode, createPositionWithColumnOffset(this.state.lastTokEndLoc, endOffset)); + return finishedNode; + } + + parseTemplate(isTagged) { + const node = this.startNode(); + node.expressions = []; + let curElt = this.parseTemplateElement(isTagged); + node.quasis = [curElt]; + while (!curElt.tail) { + node.expressions.push(this.parseTemplateSubstitution()); + this.readTemplateContinuation(); + node.quasis.push(curElt = this.parseTemplateElement(isTagged)); + } + return this.finishNode(node, "TemplateLiteral"); + } + + parseTemplateSubstitution() { + return this.parseExpression(); + } + + parseObjectLike(close, isPattern, isRecord, refExpressionErrors) { + if (isRecord) { + this.expectPlugin("recordAndTuple"); + } + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = false; + const propHash = Object.create(null); + let first = true; + const node = this.startNode(); + node.properties = []; + this.next(); + while (!this.match(close)) { + if (first) { + first = false; + } else { + this.expect(12); + if (this.match(close)) { + this.addTrailingCommaExtraToNode( + node); + break; + } + } + let prop; + if (isPattern) { + prop = this.parseBindingProperty(); + } else { + prop = this.parsePropertyDefinition(refExpressionErrors); + this.checkProto(prop, isRecord, propHash, refExpressionErrors); + } + if (isRecord && !this.isObjectProperty(prop) && prop.type !== "SpreadElement") { + this.raise(Errors.InvalidRecordProperty, { + at: prop + }); + } + + if (prop.shorthand) { + this.addExtra(prop, "shorthand", true); + } + + node.properties.push(prop); + } + this.next(); + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + let type = "ObjectExpression"; + if (isPattern) { + type = "ObjectPattern"; + } else if (isRecord) { + type = "RecordExpression"; + } + return this.finishNode(node, type); + } + addTrailingCommaExtraToNode(node) { + this.addExtra(node, "trailingComma", this.state.lastTokStart); + this.addExtra(node, "trailingCommaLoc", this.state.lastTokStartLoc, false); + } + + maybeAsyncOrAccessorProp(prop) { + return !prop.computed && prop.key.type === "Identifier" && (this.isLiteralPropertyName() || this.match(0) || this.match(55)); + } + + parsePropertyDefinition(refExpressionErrors) { + let decorators = []; + if (this.match(26)) { + if (this.hasPlugin("decorators")) { + this.raise(Errors.UnsupportedPropertyDecorator, { + at: this.state.startLoc + }); + } + + while (this.match(26)) { + decorators.push(this.parseDecorator()); + } + } + const prop = this.startNode(); + let isAsync = false; + let isAccessor = false; + let startLoc; + if (this.match(21)) { + if (decorators.length) this.unexpected(); + return this.parseSpread(); + } + if (decorators.length) { + prop.decorators = decorators; + decorators = []; + } + prop.method = false; + if (refExpressionErrors) { + startLoc = this.state.startLoc; + } + let isGenerator = this.eat(55); + this.parsePropertyNamePrefixOperator(prop); + const containsEsc = this.state.containsEsc; + const key = this.parsePropertyName(prop, refExpressionErrors); + if (!isGenerator && !containsEsc && this.maybeAsyncOrAccessorProp(prop)) { + const keyName = key.name; + if (keyName === "async" && !this.hasPrecedingLineBreak()) { + isAsync = true; + this.resetPreviousNodeTrailingComments(key); + isGenerator = this.eat(55); + this.parsePropertyName(prop); + } + if (keyName === "get" || keyName === "set") { + isAccessor = true; + this.resetPreviousNodeTrailingComments(key); + prop.kind = keyName; + if (this.match(55)) { + isGenerator = true; + this.raise(Errors.AccessorIsGenerator, { + at: this.state.curPosition(), + kind: keyName + }); + this.next(); + } + this.parsePropertyName(prop); + } + } + return this.parseObjPropValue(prop, startLoc, isGenerator, isAsync, false, isAccessor, refExpressionErrors); + } + getGetterSetterExpectedParamCount(method) { + return method.kind === "get" ? 0 : 1; + } + + getObjectOrClassMethodParams(method) { + return method.params; + } + + checkGetterSetterParams(method) { + var _params; + const paramCount = this.getGetterSetterExpectedParamCount(method); + const params = this.getObjectOrClassMethodParams(method); + if (params.length !== paramCount) { + this.raise(method.kind === "get" ? Errors.BadGetterArity : Errors.BadSetterArity, { + at: method + }); + } + if (method.kind === "set" && ((_params = params[params.length - 1]) == null ? void 0 : _params.type) === "RestElement") { + this.raise(Errors.BadSetterRestParameter, { + at: method + }); + } + } + + parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) { + if (isAccessor) { + const finishedProp = this.parseMethod(prop, + isGenerator, false, false, false, "ObjectMethod"); + this.checkGetterSetterParams(finishedProp); + return finishedProp; + } + if (isAsync || isGenerator || this.match(10)) { + if (isPattern) this.unexpected(); + prop.kind = "method"; + prop.method = true; + return this.parseMethod(prop, isGenerator, isAsync, false, false, "ObjectMethod"); + } + } + + parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors) { + prop.shorthand = false; + if (this.eat(14)) { + prop.value = isPattern ? this.parseMaybeDefault(this.state.startLoc) : this.parseMaybeAssignAllowIn(refExpressionErrors); + return this.finishNode(prop, "ObjectProperty"); + } + if (!prop.computed && prop.key.type === "Identifier") { + this.checkReservedWord(prop.key.name, prop.key.loc.start, true, false); + if (isPattern) { + prop.value = this.parseMaybeDefault(startLoc, cloneIdentifier(prop.key)); + } else if (this.match(29)) { + const shorthandAssignLoc = this.state.startLoc; + if (refExpressionErrors != null) { + if (refExpressionErrors.shorthandAssignLoc === null) { + refExpressionErrors.shorthandAssignLoc = shorthandAssignLoc; + } + } else { + this.raise(Errors.InvalidCoverInitializedName, { + at: shorthandAssignLoc + }); + } + prop.value = this.parseMaybeDefault(startLoc, cloneIdentifier(prop.key)); + } else { + prop.value = cloneIdentifier(prop.key); + } + prop.shorthand = true; + return this.finishNode(prop, "ObjectProperty"); + } + } + parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { + const node = this.parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) || this.parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors); + if (!node) this.unexpected(); + return node; + } + + parsePropertyName(prop, refExpressionErrors) { + if (this.eat(0)) { + prop.computed = true; + prop.key = this.parseMaybeAssignAllowIn(); + this.expect(3); + } else { + const { + type, + value + } = this.state; + let key; + if (tokenIsKeywordOrIdentifier(type)) { + key = this.parseIdentifier(true); + } else { + switch (type) { + case 132: + key = this.parseNumericLiteral(value); + break; + case 131: + key = this.parseStringLiteral(value); + break; + case 133: + key = this.parseBigIntLiteral(value); + break; + case 134: + key = this.parseDecimalLiteral(value); + break; + case 136: + { + const privateKeyLoc = this.state.startLoc; + if (refExpressionErrors != null) { + if (refExpressionErrors.privateKeyLoc === null) { + refExpressionErrors.privateKeyLoc = privateKeyLoc; + } + } else { + this.raise(Errors.UnexpectedPrivateField, { + at: privateKeyLoc + }); + } + key = this.parsePrivateName(); + break; + } + default: + throw this.unexpected(); + } + } + prop.key = key; + if (type !== 136) { + prop.computed = false; + } + } + return prop.key; + } + + initFunction(node, isAsync) { + node.id = null; + node.generator = false; + node.async = isAsync; + } + + parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope = false) { + this.initFunction(node, isAsync); + node.generator = isGenerator; + const allowModifiers = isConstructor; + this.scope.enter(SCOPE_FUNCTION | SCOPE_SUPER | (inClassScope ? SCOPE_CLASS : 0) | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0)); + this.prodParam.enter(functionFlags(isAsync, node.generator)); + this.parseFunctionParams(node, allowModifiers); + const finishedNode = this.parseFunctionBodyAndFinish(node, type, true); + this.prodParam.exit(); + this.scope.exit(); + return finishedNode; + } + + parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) { + if (isTuple) { + this.expectPlugin("recordAndTuple"); + } + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = false; + const node = this.startNode(); + this.next(); + node.elements = this.parseExprList(close, !isTuple, refExpressionErrors, + node); + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + return this.finishNode(node, isTuple ? "TupleExpression" : "ArrayExpression"); + } + + parseArrowExpression(node, params, isAsync, trailingCommaLoc) { + this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW); + let flags = functionFlags(isAsync, false); + if (!this.match(5) && this.prodParam.hasIn) { + flags |= PARAM_IN; + } + this.prodParam.enter(flags); + this.initFunction(node, isAsync); + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + if (params) { + this.state.maybeInArrowParameters = true; + this.setArrowFunctionParameters(node, params, trailingCommaLoc); + } + this.state.maybeInArrowParameters = false; + this.parseFunctionBody(node, true); + this.prodParam.exit(); + this.scope.exit(); + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + return this.finishNode(node, "ArrowFunctionExpression"); + } + setArrowFunctionParameters(node, params, trailingCommaLoc) { + this.toAssignableList(params, trailingCommaLoc, false); + node.params = params; + } + parseFunctionBodyAndFinish(node, type, isMethod = false) { + this.parseFunctionBody(node, false, isMethod); + return this.finishNode(node, type); + } + + parseFunctionBody(node, allowExpression, isMethod = false) { + const isExpression = allowExpression && !this.match(5); + this.expressionScope.enter(newExpressionScope()); + if (isExpression) { + node.body = this.parseMaybeAssign(); + this.checkParams(node, false, allowExpression, false); + } else { + const oldStrict = this.state.strict; + const oldLabels = this.state.labels; + this.state.labels = []; + + this.prodParam.enter(this.prodParam.currentFlags() | PARAM_RETURN); + node.body = this.parseBlock(true, false, + hasStrictModeDirective => { + const nonSimple = !this.isSimpleParamList(node.params); + if (hasStrictModeDirective && nonSimple) { + this.raise(Errors.IllegalLanguageModeDirective, { + at: + (node.kind === "method" || node.kind === "constructor") && + !!node.key ? + node.key.loc.end : node + }); + } + const strictModeChanged = !oldStrict && this.state.strict; + + this.checkParams(node, !this.state.strict && !allowExpression && !isMethod && !nonSimple, allowExpression, strictModeChanged); + + if (this.state.strict && node.id) { + this.checkIdentifier(node.id, BIND_OUTSIDE, strictModeChanged); + } + }); + this.prodParam.exit(); + this.state.labels = oldLabels; + } + this.expressionScope.exit(); + } + isSimpleParameter(node) { + return node.type === "Identifier"; + } + isSimpleParamList(params) { + for (let i = 0, len = params.length; i < len; i++) { + if (!this.isSimpleParameter(params[i])) return false; + } + return true; + } + checkParams(node, allowDuplicates, + isArrowFunction, strictModeChanged = true) { + const checkClashes = !allowDuplicates && new Set(); + const formalParameters = { + type: "FormalParameters" + }; + for (const param of node.params) { + this.checkLVal(param, { + in: formalParameters, + binding: BIND_VAR, + checkClashes, + strictModeChanged + }); + } + } + + parseExprList(close, allowEmpty, refExpressionErrors, nodeForExtra) { + const elts = []; + let first = true; + while (!this.eat(close)) { + if (first) { + first = false; + } else { + this.expect(12); + if (this.match(close)) { + if (nodeForExtra) { + this.addTrailingCommaExtraToNode(nodeForExtra); + } + this.next(); + break; + } + } + elts.push(this.parseExprListItem(allowEmpty, refExpressionErrors)); + } + return elts; + } + parseExprListItem(allowEmpty, refExpressionErrors, allowPlaceholder) { + let elt; + if (this.match(12)) { + if (!allowEmpty) { + this.raise(Errors.UnexpectedToken, { + at: this.state.curPosition(), + unexpected: "," + }); + } + elt = null; + } else if (this.match(21)) { + const spreadNodeStartLoc = this.state.startLoc; + elt = this.parseParenItem(this.parseSpread(refExpressionErrors), spreadNodeStartLoc); + } else if (this.match(17)) { + this.expectPlugin("partialApplication"); + if (!allowPlaceholder) { + this.raise(Errors.UnexpectedArgumentPlaceholder, { + at: this.state.startLoc + }); + } + const node = this.startNode(); + this.next(); + elt = this.finishNode(node, "ArgumentPlaceholder"); + } else { + elt = this.parseMaybeAssignAllowIn(refExpressionErrors, this.parseParenItem); + } + return elt; + } + + parseIdentifier(liberal) { + const node = this.startNode(); + const name = this.parseIdentifierName(liberal); + return this.createIdentifier(node, name); + } + createIdentifier(node, name) { + node.name = name; + node.loc.identifierName = name; + return this.finishNode(node, "Identifier"); + } + parseIdentifierName(liberal) { + let name; + const { + startLoc, + type + } = this.state; + if (tokenIsKeywordOrIdentifier(type)) { + name = this.state.value; + } else { + throw this.unexpected(); + } + const tokenIsKeyword = tokenKeywordOrIdentifierIsKeyword(type); + if (liberal) { + if (tokenIsKeyword) { + this.replaceToken(130); + } + } else { + this.checkReservedWord(name, startLoc, tokenIsKeyword, false); + } + this.next(); + return name; + } + checkReservedWord(word, startLoc, checkKeywords, isBinding) { + if (word.length > 10) { + return; + } + if (!canBeReservedWord(word)) { + return; + } + if (word === "yield") { + if (this.prodParam.hasYield) { + this.raise(Errors.YieldBindingIdentifier, { + at: startLoc + }); + return; + } + } else if (word === "await") { + if (this.prodParam.hasAwait) { + this.raise(Errors.AwaitBindingIdentifier, { + at: startLoc + }); + return; + } + if (this.scope.inStaticBlock) { + this.raise(Errors.AwaitBindingIdentifierInStaticBlock, { + at: startLoc + }); + return; + } + this.expressionScope.recordAsyncArrowParametersError({ + at: startLoc + }); + } else if (word === "arguments") { + if (this.scope.inClassAndNotInNonArrowFunction) { + this.raise(Errors.ArgumentsInClass, { + at: startLoc + }); + return; + } + } + if (checkKeywords && isKeyword(word)) { + this.raise(Errors.UnexpectedKeyword, { + at: startLoc, + keyword: word + }); + return; + } + const reservedTest = !this.state.strict ? isReservedWord : isBinding ? isStrictBindReservedWord : isStrictReservedWord; + if (reservedTest(word, this.inModule)) { + this.raise(Errors.UnexpectedReservedWord, { + at: startLoc, + reservedWord: word + }); + } + } + isAwaitAllowed() { + if (this.prodParam.hasAwait) return true; + if (this.options.allowAwaitOutsideFunction && !this.scope.inFunction) { + return true; + } + return false; + } + + parseAwait(startLoc) { + const node = this.startNodeAt(startLoc); + this.expressionScope.recordParameterInitializerError(Errors.AwaitExpressionFormalParameter, { + at: node + }); + if (this.eat(55)) { + this.raise(Errors.ObsoleteAwaitStar, { + at: node + }); + } + if (!this.scope.inFunction && !this.options.allowAwaitOutsideFunction) { + if (this.isAmbiguousAwait()) { + this.ambiguousScriptDifferentAst = true; + } else { + this.sawUnambiguousESM = true; + } + } + if (!this.state.soloAwait) { + node.argument = this.parseMaybeUnary(null, true); + } + return this.finishNode(node, "AwaitExpression"); + } + isAmbiguousAwait() { + if (this.hasPrecedingLineBreak()) return true; + const { + type + } = this.state; + return ( + type === 53 || type === 10 || type === 0 || tokenIsTemplate(type) || type === 101 && !this.state.containsEsc || + type === 135 || type === 56 || + this.hasPlugin("v8intrinsic") && type === 54 + ); + } + + parseYield() { + const node = this.startNode(); + this.expressionScope.recordParameterInitializerError(Errors.YieldInParameter, { + at: node + }); + this.next(); + let delegating = false; + let argument = null; + if (!this.hasPrecedingLineBreak()) { + delegating = this.eat(55); + switch (this.state.type) { + case 13: + case 137: + case 8: + case 11: + case 3: + case 9: + case 14: + case 12: + if (!delegating) break; + default: + argument = this.parseMaybeAssign(); + } + } + node.delegate = delegating; + node.argument = argument; + return this.finishNode(node, "YieldExpression"); + } + + checkPipelineAtInfixOperator(left, leftStartLoc) { + if (this.hasPlugin(["pipelineOperator", { + proposal: "smart" + }])) { + if (left.type === "SequenceExpression") { + this.raise(Errors.PipelineHeadSequenceExpression, { + at: leftStartLoc + }); + } + } + } + parseSmartPipelineBodyInStyle(childExpr, startLoc) { + if (this.isSimpleReference(childExpr)) { + const bodyNode = this.startNodeAt(startLoc); + bodyNode.callee = childExpr; + return this.finishNode(bodyNode, "PipelineBareFunction"); + } else { + const bodyNode = this.startNodeAt(startLoc); + this.checkSmartPipeTopicBodyEarlyErrors(startLoc); + bodyNode.expression = childExpr; + return this.finishNode(bodyNode, "PipelineTopicExpression"); + } + } + isSimpleReference(expression) { + switch (expression.type) { + case "MemberExpression": + return !expression.computed && this.isSimpleReference(expression.object); + case "Identifier": + return true; + default: + return false; + } + } + + checkSmartPipeTopicBodyEarlyErrors(startLoc) { + if (this.match(19)) { + throw this.raise(Errors.PipelineBodyNoArrow, { + at: this.state.startLoc + }); + } + + if (!this.topicReferenceWasUsedInCurrentContext()) { + this.raise(Errors.PipelineTopicUnused, { + at: startLoc + }); + } + } + + withTopicBindingContext(callback) { + const outerContextTopicState = this.state.topicContext; + this.state.topicContext = { + maxNumOfResolvableTopics: 1, + maxTopicIndex: null + }; + try { + return callback(); + } finally { + this.state.topicContext = outerContextTopicState; + } + } + + withSmartMixTopicForbiddingContext(callback) { + if (this.hasPlugin(["pipelineOperator", { + proposal: "smart" + }])) { + const outerContextTopicState = this.state.topicContext; + this.state.topicContext = { + maxNumOfResolvableTopics: 0, + maxTopicIndex: null + }; + try { + return callback(); + } finally { + this.state.topicContext = outerContextTopicState; + } + } else { + return callback(); + } + } + withSoloAwaitPermittingContext(callback) { + const outerContextSoloAwaitState = this.state.soloAwait; + this.state.soloAwait = true; + try { + return callback(); + } finally { + this.state.soloAwait = outerContextSoloAwaitState; + } + } + allowInAnd(callback) { + const flags = this.prodParam.currentFlags(); + const prodParamToSet = PARAM_IN & ~flags; + if (prodParamToSet) { + this.prodParam.enter(flags | PARAM_IN); + try { + return callback(); + } finally { + this.prodParam.exit(); + } + } + return callback(); + } + disallowInAnd(callback) { + const flags = this.prodParam.currentFlags(); + const prodParamToClear = PARAM_IN & flags; + if (prodParamToClear) { + this.prodParam.enter(flags & ~PARAM_IN); + try { + return callback(); + } finally { + this.prodParam.exit(); + } + } + return callback(); + } + + registerTopicReference() { + this.state.topicContext.maxTopicIndex = 0; + } + topicReferenceIsAllowedInCurrentContext() { + return this.state.topicContext.maxNumOfResolvableTopics >= 1; + } + topicReferenceWasUsedInCurrentContext() { + return this.state.topicContext.maxTopicIndex != null && this.state.topicContext.maxTopicIndex >= 0; + } + parseFSharpPipelineBody(prec) { + const startLoc = this.state.startLoc; + this.state.potentialArrowAt = this.state.start; + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = true; + const ret = this.parseExprOp(this.parseMaybeUnaryOrPrivate(), startLoc, prec); + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + return ret; + } + + parseModuleExpression() { + this.expectPlugin("moduleBlocks"); + const node = this.startNode(); + this.next(); + if (!this.match(5)) { + this.unexpected(null, 5); + } + const program = this.startNodeAt(this.state.endLoc); + this.next(); + + const revertScopes = this.initializeScopes(true); + this.enterInitialScopes(); + try { + node.body = this.parseProgram(program, 8, "module"); + } finally { + revertScopes(); + } + return this.finishNode(node, "ModuleExpression"); + } + + parsePropertyNamePrefixOperator( + prop) {} +} + +const loopLabel = { + kind: "loop" + }, + switchLabel = { + kind: "switch" + }; +var ParseFunctionFlag = { + Expression: 0, + Declaration: 1, + HangingDeclaration: 2, + NullableId: 4, + Async: 8 +}; +var ParseStatementFlag = { + StatementOnly: 0, + AllowImportExport: 1, + AllowDeclaration: 2, + AllowFunctionDeclaration: 4, + AllowLabeledFunction: 8 +}; +const loneSurrogate = /[\uD800-\uDFFF]/u; +const keywordRelationalOperator = /in(?:stanceof)?/y; + +function babel7CompatTokens(tokens, input) { + for (let i = 0; i < tokens.length; i++) { + const token = tokens[i]; + const { + type + } = token; + if (typeof type === "number") { + { + if (type === 136) { + const { + loc, + start, + value, + end + } = token; + const hashEndPos = start + 1; + const hashEndLoc = createPositionWithColumnOffset(loc.start, 1); + tokens.splice(i, 1, new Token({ + type: getExportedToken(27), + value: "#", + start: start, + end: hashEndPos, + startLoc: loc.start, + endLoc: hashEndLoc + }), new Token({ + type: getExportedToken(130), + value: value, + start: hashEndPos, + end: end, + startLoc: hashEndLoc, + endLoc: loc.end + })); + i++; + continue; + } + if (tokenIsTemplate(type)) { + const { + loc, + start, + value, + end + } = token; + const backquoteEnd = start + 1; + const backquoteEndLoc = createPositionWithColumnOffset(loc.start, 1); + let startToken; + if (input.charCodeAt(start) === 96) { + startToken = new Token({ + type: getExportedToken(22), + value: "`", + start: start, + end: backquoteEnd, + startLoc: loc.start, + endLoc: backquoteEndLoc + }); + } else { + startToken = new Token({ + type: getExportedToken(8), + value: "}", + start: start, + end: backquoteEnd, + startLoc: loc.start, + endLoc: backquoteEndLoc + }); + } + let templateValue, templateElementEnd, templateElementEndLoc, endToken; + if (type === 24) { + templateElementEnd = end - 1; + templateElementEndLoc = createPositionWithColumnOffset(loc.end, -1); + templateValue = value === null ? null : value.slice(1, -1); + endToken = new Token({ + type: getExportedToken(22), + value: "`", + start: templateElementEnd, + end: end, + startLoc: templateElementEndLoc, + endLoc: loc.end + }); + } else { + templateElementEnd = end - 2; + templateElementEndLoc = createPositionWithColumnOffset(loc.end, -2); + templateValue = value === null ? null : value.slice(1, -2); + endToken = new Token({ + type: getExportedToken(23), + value: "${", + start: templateElementEnd, + end: end, + startLoc: templateElementEndLoc, + endLoc: loc.end + }); + } + tokens.splice(i, 1, startToken, new Token({ + type: getExportedToken(20), + value: templateValue, + start: backquoteEnd, + end: templateElementEnd, + startLoc: backquoteEndLoc, + endLoc: templateElementEndLoc + }), endToken); + i += 2; + continue; + } + } + token.type = getExportedToken(type); + } + } + return tokens; +} +class StatementParser extends ExpressionParser { + + parseTopLevel(file, program) { + file.program = this.parseProgram(program); + file.comments = this.state.comments; + if (this.options.tokens) { + file.tokens = babel7CompatTokens(this.tokens, this.input); + } + return this.finishNode(file, "File"); + } + parseProgram(program, end = 137, sourceType = this.options.sourceType) { + program.sourceType = sourceType; + program.interpreter = this.parseInterpreterDirective(); + this.parseBlockBody(program, true, true, end); + if (this.inModule && !this.options.allowUndeclaredExports && this.scope.undefinedExports.size > 0) { + for (const [localName, at] of Array.from(this.scope.undefinedExports)) { + this.raise(Errors.ModuleExportUndefined, { + at, + localName + }); + } + } + let finishedProgram; + if (end === 137) { + finishedProgram = this.finishNode(program, "Program"); + } else { + finishedProgram = this.finishNodeAt(program, "Program", createPositionWithColumnOffset(this.state.startLoc, -1)); + } + return finishedProgram; + } + + stmtToDirective(stmt) { + const directive = stmt; + directive.type = "Directive"; + directive.value = directive.expression; + delete directive.expression; + const directiveLiteral = directive.value; + const expressionValue = directiveLiteral.value; + const raw = this.input.slice(directiveLiteral.start, directiveLiteral.end); + const val = directiveLiteral.value = raw.slice(1, -1); + + this.addExtra(directiveLiteral, "raw", raw); + this.addExtra(directiveLiteral, "rawValue", val); + this.addExtra(directiveLiteral, "expressionValue", expressionValue); + directiveLiteral.type = "DirectiveLiteral"; + return directive; + } + parseInterpreterDirective() { + if (!this.match(28)) { + return null; + } + const node = this.startNode(); + node.value = this.state.value; + this.next(); + return this.finishNode(node, "InterpreterDirective"); + } + isLet() { + if (!this.isContextual(99)) { + return false; + } + return this.hasFollowingBindingAtom(); + } + chStartsBindingIdentifier(ch, pos) { + if (isIdentifierStart(ch)) { + keywordRelationalOperator.lastIndex = pos; + if (keywordRelationalOperator.test(this.input)) { + const endCh = this.codePointAtPos(keywordRelationalOperator.lastIndex); + if (!isIdentifierChar(endCh) && endCh !== 92) { + return false; + } + } + return true; + } else if (ch === 92) { + return true; + } else { + return false; + } + } + chStartsBindingPattern(ch) { + return ch === 91 || ch === 123; + } + + hasFollowingBindingAtom() { + const next = this.nextTokenStart(); + const nextCh = this.codePointAtPos(next); + return this.chStartsBindingPattern(nextCh) || this.chStartsBindingIdentifier(nextCh, next); + } + + hasFollowingBindingIdentifier() { + const next = this.nextTokenStart(); + const nextCh = this.codePointAtPos(next); + return this.chStartsBindingIdentifier(nextCh, next); + } + startsUsingForOf() { + const lookahead = this.lookahead(); + if (lookahead.type === 101 && !lookahead.containsEsc) { + return false; + } else { + this.expectPlugin("explicitResourceManagement"); + return true; + } + } + + parseModuleItem() { + return this.parseStatementLike(ParseStatementFlag.AllowImportExport | ParseStatementFlag.AllowDeclaration | ParseStatementFlag.AllowFunctionDeclaration | ParseStatementFlag.AllowLabeledFunction); + } + + parseStatementListItem() { + return this.parseStatementLike(ParseStatementFlag.AllowDeclaration | ParseStatementFlag.AllowFunctionDeclaration | ParseStatementFlag.AllowLabeledFunction); + } + parseStatementOrFunctionDeclaration(disallowLabeledFunction) { + return this.parseStatementLike(ParseStatementFlag.AllowFunctionDeclaration | (disallowLabeledFunction ? 0 : ParseStatementFlag.AllowLabeledFunction)); + } + + parseStatement() { + return this.parseStatementLike(ParseStatementFlag.StatementOnly); + } + + parseStatementLike(flags) { + let decorators = null; + if (this.match(26)) { + decorators = this.parseDecorators(true); + } + return this.parseStatementContent(flags, decorators); + } + parseStatementContent(flags, decorators) { + const starttype = this.state.type; + const node = this.startNode(); + const allowDeclaration = !!(flags & ParseStatementFlag.AllowDeclaration); + const allowFunctionDeclaration = !!(flags & ParseStatementFlag.AllowFunctionDeclaration); + const topLevel = flags & ParseStatementFlag.AllowImportExport; + + switch (starttype) { + case 60: + return this.parseBreakContinueStatement(node, true); + case 63: + return this.parseBreakContinueStatement(node, false); + case 64: + return this.parseDebuggerStatement(node); + case 90: + return this.parseDoWhileStatement(node); + case 91: + return this.parseForStatement(node); + case 68: + if (this.lookaheadCharCode() === 46) break; + if (!allowDeclaration) { + if (this.state.strict) { + this.raise(Errors.StrictFunction, { + at: this.state.startLoc + }); + } else if (!allowFunctionDeclaration) { + this.raise(Errors.SloppyFunction, { + at: this.state.startLoc + }); + } + } + return this.parseFunctionStatement(node, false, !allowDeclaration && allowFunctionDeclaration); + case 80: + if (!allowDeclaration) this.unexpected(); + return this.parseClass(this.maybeTakeDecorators(decorators, node), true); + case 69: + return this.parseIfStatement(node); + case 70: + return this.parseReturnStatement(node); + case 71: + return this.parseSwitchStatement(node); + case 72: + return this.parseThrowStatement(node); + case 73: + return this.parseTryStatement(node); + case 105: + if (this.hasFollowingLineBreak() || this.state.containsEsc || !this.hasFollowingBindingIdentifier()) { + break; + } + this.expectPlugin("explicitResourceManagement"); + if (!this.scope.inModule && this.scope.inTopLevel) { + this.raise(Errors.UnexpectedUsingDeclaration, { + at: this.state.startLoc + }); + } else if (!allowDeclaration) { + this.raise(Errors.UnexpectedLexicalDeclaration, { + at: this.state.startLoc + }); + } + return this.parseVarStatement(node, "using"); + case 99: + { + if (this.state.containsEsc) { + break; + } + const next = this.nextTokenStart(); + const nextCh = this.codePointAtPos(next); + if (nextCh !== 91) { + if (!allowDeclaration && this.hasFollowingLineBreak()) break; + if (!this.chStartsBindingIdentifier(nextCh, next) && nextCh !== 123) { + break; + } + } + } + case 75: + { + if (!allowDeclaration) { + this.raise(Errors.UnexpectedLexicalDeclaration, { + at: this.state.startLoc + }); + } + } + case 74: + { + const kind = this.state.value; + return this.parseVarStatement(node, kind); + } + case 92: + return this.parseWhileStatement(node); + case 76: + return this.parseWithStatement(node); + case 5: + return this.parseBlock(); + case 13: + return this.parseEmptyStatement(node); + case 83: + { + const nextTokenCharCode = this.lookaheadCharCode(); + if (nextTokenCharCode === 40 || + nextTokenCharCode === 46) { + break; + } + } + case 82: + { + if (!this.options.allowImportExportEverywhere && !topLevel) { + this.raise(Errors.UnexpectedImportExport, { + at: this.state.startLoc + }); + } + this.next(); + + let result; + if (starttype === 83) { + result = this.parseImport(node); + if (result.type === "ImportDeclaration" && (!result.importKind || result.importKind === "value")) { + this.sawUnambiguousESM = true; + } + } else { + result = this.parseExport(node, decorators); + if (result.type === "ExportNamedDeclaration" && (!result.exportKind || result.exportKind === "value") || result.type === "ExportAllDeclaration" && (!result.exportKind || result.exportKind === "value") || result.type === "ExportDefaultDeclaration") { + this.sawUnambiguousESM = true; + } + } + this.assertModuleNodeAllowed(result); + return result; + } + default: + { + if (this.isAsyncFunction()) { + if (!allowDeclaration) { + this.raise(Errors.AsyncFunctionInSingleStatementContext, { + at: this.state.startLoc + }); + } + this.next(); + return this.parseFunctionStatement(node, true, !allowDeclaration && allowFunctionDeclaration); + } + } + } + + const maybeName = this.state.value; + const expr = this.parseExpression(); + if (tokenIsIdentifier(starttype) && expr.type === "Identifier" && this.eat(14)) { + return this.parseLabeledStatement(node, maybeName, + expr, flags); + } else { + return this.parseExpressionStatement(node, expr, decorators); + } + } + assertModuleNodeAllowed(node) { + if (!this.options.allowImportExportEverywhere && !this.inModule) { + this.raise(Errors.ImportOutsideModule, { + at: node + }); + } + } + decoratorsEnabledBeforeExport() { + if (this.hasPlugin("decorators-legacy")) return true; + return this.hasPlugin("decorators") && !!this.getPluginOption("decorators", "decoratorsBeforeExport"); + } + + maybeTakeDecorators(maybeDecorators, classNode, exportNode) { + if (maybeDecorators) { + classNode.decorators = maybeDecorators; + this.resetStartLocationFromNode(classNode, maybeDecorators[0]); + if (exportNode) this.resetStartLocationFromNode(exportNode, classNode); + } + return classNode; + } + canHaveLeadingDecorator() { + return this.match(80); + } + parseDecorators(allowExport) { + const decorators = []; + do { + decorators.push(this.parseDecorator()); + } while (this.match(26)); + if (this.match(82)) { + if (!allowExport) { + this.unexpected(); + } + if (!this.decoratorsEnabledBeforeExport()) { + this.raise(Errors.DecoratorExportClass, { + at: this.state.startLoc + }); + } + } else if (!this.canHaveLeadingDecorator()) { + throw this.raise(Errors.UnexpectedLeadingDecorator, { + at: this.state.startLoc + }); + } + return decorators; + } + parseDecorator() { + this.expectOnePlugin(["decorators", "decorators-legacy"]); + const node = this.startNode(); + this.next(); + if (this.hasPlugin("decorators")) { + const startLoc = this.state.startLoc; + let expr; + if (this.match(10)) { + const startLoc = this.state.startLoc; + this.next(); + expr = this.parseExpression(); + this.expect(11); + expr = this.wrapParenthesis(startLoc, expr); + const paramsStartLoc = this.state.startLoc; + node.expression = this.parseMaybeDecoratorArguments(expr); + if (this.getPluginOption("decorators", "allowCallParenthesized") === false && node.expression !== expr) { + this.raise(Errors.DecoratorArgumentsOutsideParentheses, { + at: paramsStartLoc + }); + } + } else { + expr = this.parseIdentifier(false); + while (this.eat(16)) { + const node = this.startNodeAt(startLoc); + node.object = expr; + if (this.match(136)) { + this.classScope.usePrivateName(this.state.value, this.state.startLoc); + node.property = this.parsePrivateName(); + } else { + node.property = this.parseIdentifier(true); + } + node.computed = false; + expr = this.finishNode(node, "MemberExpression"); + } + node.expression = this.parseMaybeDecoratorArguments(expr); + } + } else { + node.expression = this.parseExprSubscripts(); + } + return this.finishNode(node, "Decorator"); + } + parseMaybeDecoratorArguments(expr) { + if (this.eat(10)) { + const node = this.startNodeAtNode(expr); + node.callee = expr; + node.arguments = this.parseCallExpressionArguments(11, false); + this.toReferencedList(node.arguments); + return this.finishNode(node, "CallExpression"); + } + return expr; + } + parseBreakContinueStatement(node, isBreak) { + this.next(); + if (this.isLineTerminator()) { + node.label = null; + } else { + node.label = this.parseIdentifier(); + this.semicolon(); + } + this.verifyBreakContinue(node, isBreak); + return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement"); + } + verifyBreakContinue(node, isBreak) { + let i; + for (i = 0; i < this.state.labels.length; ++i) { + const lab = this.state.labels[i]; + if (node.label == null || lab.name === node.label.name) { + if (lab.kind != null && (isBreak || lab.kind === "loop")) break; + if (node.label && isBreak) break; + } + } + if (i === this.state.labels.length) { + const type = isBreak ? "BreakStatement" : "ContinueStatement"; + this.raise(Errors.IllegalBreakContinue, { + at: node, + type + }); + } + } + parseDebuggerStatement(node) { + this.next(); + this.semicolon(); + return this.finishNode(node, "DebuggerStatement"); + } + parseHeaderExpression() { + this.expect(10); + const val = this.parseExpression(); + this.expect(11); + return val; + } + + parseDoWhileStatement(node) { + this.next(); + this.state.labels.push(loopLabel); + + node.body = + this.withSmartMixTopicForbiddingContext(() => + this.parseStatement()); + this.state.labels.pop(); + this.expect(92); + node.test = this.parseHeaderExpression(); + this.eat(13); + return this.finishNode(node, "DoWhileStatement"); + } + + parseForStatement(node) { + this.next(); + this.state.labels.push(loopLabel); + let awaitAt = null; + if (this.isAwaitAllowed() && this.eatContextual(96)) { + awaitAt = this.state.lastTokStartLoc; + } + this.scope.enter(SCOPE_OTHER); + this.expect(10); + if (this.match(13)) { + if (awaitAt !== null) { + this.unexpected(awaitAt); + } + return this.parseFor(node, null); + } + const startsWithLet = this.isContextual(99); + const startsWithUsing = this.isContextual(105) && !this.hasFollowingLineBreak(); + const isLetOrUsing = startsWithLet && this.hasFollowingBindingAtom() || startsWithUsing && this.hasFollowingBindingIdentifier() && this.startsUsingForOf(); + if (this.match(74) || this.match(75) || isLetOrUsing) { + const initNode = this.startNode(); + const kind = this.state.value; + this.next(); + this.parseVar(initNode, true, kind); + const init = this.finishNode(initNode, "VariableDeclaration"); + const isForIn = this.match(58); + if (isForIn && startsWithUsing) { + this.raise(Errors.ForInUsing, { + at: init + }); + } + if ((isForIn || this.isContextual(101)) && init.declarations.length === 1) { + return this.parseForIn(node, init, awaitAt); + } + if (awaitAt !== null) { + this.unexpected(awaitAt); + } + return this.parseFor(node, init); + } + + const startsWithAsync = this.isContextual(95); + const refExpressionErrors = new ExpressionErrors(); + const init = this.parseExpression(true, refExpressionErrors); + const isForOf = this.isContextual(101); + if (isForOf) { + if (startsWithLet) { + this.raise(Errors.ForOfLet, { + at: init + }); + } + if ( + awaitAt === null && startsWithAsync && init.type === "Identifier") { + this.raise(Errors.ForOfAsync, { + at: init + }); + } + } + if (isForOf || this.match(58)) { + this.checkDestructuringPrivate(refExpressionErrors); + this.toAssignable(init, true); + const type = isForOf ? "ForOfStatement" : "ForInStatement"; + this.checkLVal(init, { + in: { + type + } + }); + return this.parseForIn(node, + init, awaitAt); + } else { + this.checkExpressionErrors(refExpressionErrors, true); + } + if (awaitAt !== null) { + this.unexpected(awaitAt); + } + return this.parseFor(node, init); + } + + parseFunctionStatement(node, isAsync, isHangingDeclaration) { + this.next(); + return this.parseFunction(node, ParseFunctionFlag.Declaration | (isHangingDeclaration ? ParseFunctionFlag.HangingDeclaration : 0) | (isAsync ? ParseFunctionFlag.Async : 0)); + } + + parseIfStatement(node) { + this.next(); + node.test = this.parseHeaderExpression(); + node.consequent = this.parseStatementOrFunctionDeclaration( + true); + node.alternate = this.eat(66) ? this.parseStatementOrFunctionDeclaration(true) : null; + return this.finishNode(node, "IfStatement"); + } + parseReturnStatement(node) { + if (!this.prodParam.hasReturn && !this.options.allowReturnOutsideFunction) { + this.raise(Errors.IllegalReturn, { + at: this.state.startLoc + }); + } + this.next(); + + if (this.isLineTerminator()) { + node.argument = null; + } else { + node.argument = this.parseExpression(); + this.semicolon(); + } + return this.finishNode(node, "ReturnStatement"); + } + + parseSwitchStatement(node) { + this.next(); + node.discriminant = this.parseHeaderExpression(); + const cases = node.cases = []; + this.expect(5); + this.state.labels.push(switchLabel); + this.scope.enter(SCOPE_OTHER); + + let cur; + for (let sawDefault; !this.match(8);) { + if (this.match(61) || this.match(65)) { + const isCase = this.match(61); + if (cur) this.finishNode(cur, "SwitchCase"); + cases.push(cur = this.startNode()); + cur.consequent = []; + this.next(); + if (isCase) { + cur.test = this.parseExpression(); + } else { + if (sawDefault) { + this.raise(Errors.MultipleDefaultsInSwitch, { + at: this.state.lastTokStartLoc + }); + } + sawDefault = true; + cur.test = null; + } + this.expect(14); + } else { + if (cur) { + cur.consequent.push(this.parseStatementListItem()); + } else { + this.unexpected(); + } + } + } + this.scope.exit(); + if (cur) this.finishNode(cur, "SwitchCase"); + this.next(); + this.state.labels.pop(); + return this.finishNode(node, "SwitchStatement"); + } + parseThrowStatement(node) { + this.next(); + if (this.hasPrecedingLineBreak()) { + this.raise(Errors.NewlineAfterThrow, { + at: this.state.lastTokEndLoc + }); + } + node.argument = this.parseExpression(); + this.semicolon(); + return this.finishNode(node, "ThrowStatement"); + } + parseCatchClauseParam() { + const param = this.parseBindingAtom(); + const simple = param.type === "Identifier"; + this.scope.enter(simple ? SCOPE_SIMPLE_CATCH : 0); + this.checkLVal(param, { + in: { + type: "CatchClause" + }, + binding: BIND_LEXICAL, + allowingSloppyLetBinding: true + }); + return param; + } + parseTryStatement(node) { + this.next(); + node.block = this.parseBlock(); + node.handler = null; + if (this.match(62)) { + const clause = this.startNode(); + this.next(); + if (this.match(10)) { + this.expect(10); + clause.param = this.parseCatchClauseParam(); + this.expect(11); + } else { + clause.param = null; + this.scope.enter(SCOPE_OTHER); + } + + clause.body = + this.withSmartMixTopicForbiddingContext(() => + this.parseBlock(false, false)); + this.scope.exit(); + node.handler = this.finishNode(clause, "CatchClause"); + } + node.finalizer = this.eat(67) ? this.parseBlock() : null; + if (!node.handler && !node.finalizer) { + this.raise(Errors.NoCatchOrFinally, { + at: node + }); + } + return this.finishNode(node, "TryStatement"); + } + + parseVarStatement(node, kind, allowMissingInitializer = false) { + this.next(); + this.parseVar(node, false, kind, allowMissingInitializer); + this.semicolon(); + return this.finishNode(node, "VariableDeclaration"); + } + + parseWhileStatement(node) { + this.next(); + node.test = this.parseHeaderExpression(); + this.state.labels.push(loopLabel); + + node.body = + this.withSmartMixTopicForbiddingContext(() => + this.parseStatement()); + this.state.labels.pop(); + return this.finishNode(node, "WhileStatement"); + } + parseWithStatement(node) { + if (this.state.strict) { + this.raise(Errors.StrictWith, { + at: this.state.startLoc + }); + } + this.next(); + node.object = this.parseHeaderExpression(); + + node.body = + this.withSmartMixTopicForbiddingContext(() => + this.parseStatement()); + return this.finishNode(node, "WithStatement"); + } + parseEmptyStatement(node) { + this.next(); + return this.finishNode(node, "EmptyStatement"); + } + + parseLabeledStatement(node, maybeName, expr, flags) { + for (const label of this.state.labels) { + if (label.name === maybeName) { + this.raise(Errors.LabelRedeclaration, { + at: expr, + labelName: maybeName + }); + } + } + const kind = tokenIsLoop(this.state.type) ? "loop" : this.match(71) ? "switch" : null; + for (let i = this.state.labels.length - 1; i >= 0; i--) { + const label = this.state.labels[i]; + if (label.statementStart === node.start) { + label.statementStart = this.state.start; + label.kind = kind; + } else { + break; + } + } + this.state.labels.push({ + name: maybeName, + kind: kind, + statementStart: this.state.start + }); + node.body = flags & ParseStatementFlag.AllowLabeledFunction ? this.parseStatementOrFunctionDeclaration(false) : this.parseStatement(); + this.state.labels.pop(); + node.label = expr; + return this.finishNode(node, "LabeledStatement"); + } + parseExpressionStatement(node, expr, + decorators) { + node.expression = expr; + this.semicolon(); + return this.finishNode(node, "ExpressionStatement"); + } + + parseBlock(allowDirectives = false, createNewLexicalScope = true, afterBlockParse) { + const node = this.startNode(); + if (allowDirectives) { + this.state.strictErrors.clear(); + } + this.expect(5); + if (createNewLexicalScope) { + this.scope.enter(SCOPE_OTHER); + } + this.parseBlockBody(node, allowDirectives, false, 8, afterBlockParse); + if (createNewLexicalScope) { + this.scope.exit(); + } + return this.finishNode(node, "BlockStatement"); + } + isValidDirective(stmt) { + return stmt.type === "ExpressionStatement" && stmt.expression.type === "StringLiteral" && !stmt.expression.extra.parenthesized; + } + parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse) { + const body = node.body = []; + const directives = node.directives = []; + this.parseBlockOrModuleBlockBody(body, allowDirectives ? directives : undefined, topLevel, end, afterBlockParse); + } + + parseBlockOrModuleBlockBody(body, directives, topLevel, end, afterBlockParse) { + const oldStrict = this.state.strict; + let hasStrictModeDirective = false; + let parsedNonDirective = false; + while (!this.match(end)) { + const stmt = topLevel ? this.parseModuleItem() : this.parseStatementListItem(); + if (directives && !parsedNonDirective) { + if (this.isValidDirective(stmt)) { + const directive = this.stmtToDirective(stmt); + directives.push(directive); + if (!hasStrictModeDirective && directive.value.value === "use strict") { + hasStrictModeDirective = true; + this.setStrict(true); + } + continue; + } + parsedNonDirective = true; + this.state.strictErrors.clear(); + } + body.push(stmt); + } + if (afterBlockParse) { + afterBlockParse.call(this, hasStrictModeDirective); + } + if (!oldStrict) { + this.setStrict(false); + } + this.next(); + } + + parseFor(node, init) { + node.init = init; + this.semicolon(false); + node.test = this.match(13) ? null : this.parseExpression(); + this.semicolon(false); + node.update = this.match(11) ? null : this.parseExpression(); + this.expect(11); + + node.body = + this.withSmartMixTopicForbiddingContext(() => + this.parseStatement()); + this.scope.exit(); + this.state.labels.pop(); + return this.finishNode(node, "ForStatement"); + } + + parseForIn(node, init, awaitAt) { + const isForIn = this.match(58); + this.next(); + if (isForIn) { + if (awaitAt !== null) this.unexpected(awaitAt); + } else { + node.await = awaitAt !== null; + } + if (init.type === "VariableDeclaration" && init.declarations[0].init != null && (!isForIn || this.state.strict || init.kind !== "var" || init.declarations[0].id.type !== "Identifier")) { + this.raise(Errors.ForInOfLoopInitializer, { + at: init, + type: isForIn ? "ForInStatement" : "ForOfStatement" + }); + } + if (init.type === "AssignmentPattern") { + this.raise(Errors.InvalidLhs, { + at: init, + ancestor: { + type: "ForStatement" + } + }); + } + node.left = init; + node.right = isForIn ? this.parseExpression() : this.parseMaybeAssignAllowIn(); + this.expect(11); + + node.body = + this.withSmartMixTopicForbiddingContext(() => + this.parseStatement()); + this.scope.exit(); + this.state.labels.pop(); + return this.finishNode(node, isForIn ? "ForInStatement" : "ForOfStatement"); + } + + parseVar(node, isFor, kind, allowMissingInitializer = false) { + const declarations = node.declarations = []; + node.kind = kind; + for (;;) { + const decl = this.startNode(); + this.parseVarId(decl, kind); + decl.init = !this.eat(29) ? null : isFor ? this.parseMaybeAssignDisallowIn() : this.parseMaybeAssignAllowIn(); + if (decl.init === null && !allowMissingInitializer) { + if (decl.id.type !== "Identifier" && !(isFor && (this.match(58) || this.isContextual(101)))) { + this.raise(Errors.DeclarationMissingInitializer, { + at: this.state.lastTokEndLoc, + kind: "destructuring" + }); + } else if (kind === "const" && !(this.match(58) || this.isContextual(101))) { + this.raise(Errors.DeclarationMissingInitializer, { + at: this.state.lastTokEndLoc, + kind: "const" + }); + } + } + declarations.push(this.finishNode(decl, "VariableDeclarator")); + if (!this.eat(12)) break; + } + return node; + } + parseVarId(decl, kind) { + const id = this.parseBindingAtom(); + this.checkLVal(id, { + in: { + type: "VariableDeclarator" + }, + binding: kind === "var" ? BIND_VAR : BIND_LEXICAL + }); + decl.id = id; + } + + parseAsyncFunctionExpression(node) { + return this.parseFunction(node, ParseFunctionFlag.Async); + } + + parseFunction(node, flags = ParseFunctionFlag.Expression) { + const hangingDeclaration = flags & ParseFunctionFlag.HangingDeclaration; + const isDeclaration = !!(flags & ParseFunctionFlag.Declaration); + const requireId = isDeclaration && !(flags & ParseFunctionFlag.NullableId); + const isAsync = !!(flags & ParseFunctionFlag.Async); + this.initFunction(node, isAsync); + if (this.match(55)) { + if (hangingDeclaration) { + this.raise(Errors.GeneratorInSingleStatementContext, { + at: this.state.startLoc + }); + } + this.next(); + node.generator = true; + } + if (isDeclaration) { + node.id = this.parseFunctionId(requireId); + } + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + this.state.maybeInArrowParameters = false; + this.scope.enter(SCOPE_FUNCTION); + this.prodParam.enter(functionFlags(isAsync, node.generator)); + if (!isDeclaration) { + node.id = this.parseFunctionId(); + } + this.parseFunctionParams(node, false); + + this.withSmartMixTopicForbiddingContext(() => { + this.parseFunctionBodyAndFinish(node, isDeclaration ? "FunctionDeclaration" : "FunctionExpression"); + }); + this.prodParam.exit(); + this.scope.exit(); + if (isDeclaration && !hangingDeclaration) { + this.registerFunctionStatementId(node); + } + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + return node; + } + parseFunctionId(requireId) { + return requireId || tokenIsIdentifier(this.state.type) ? this.parseIdentifier() : null; + } + parseFunctionParams(node, allowModifiers) { + this.expect(10); + this.expressionScope.enter(newParameterDeclarationScope()); + node.params = this.parseBindingList(11, 41, false, allowModifiers); + this.expressionScope.exit(); + } + registerFunctionStatementId(node) { + if (!node.id) return; + + this.scope.declareName(node.id.name, this.state.strict || node.generator || node.async ? this.scope.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION, node.id.loc.start); + } + + parseClass(node, isStatement, optionalId) { + this.next(); + + const oldStrict = this.state.strict; + this.state.strict = true; + this.parseClassId(node, isStatement, optionalId); + this.parseClassSuper(node); + node.body = this.parseClassBody(!!node.superClass, oldStrict); + return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression"); + } + isClassProperty() { + return this.match(29) || this.match(13) || this.match(8); + } + isClassMethod() { + return this.match(10); + } + isNonstaticConstructor(method) { + return !method.computed && !method.static && (method.key.name === "constructor" || + method.key.value === "constructor"); + } + + parseClassBody(hadSuperClass, oldStrict) { + this.classScope.enter(); + const state = { + hadConstructor: false, + hadSuperClass + }; + let decorators = []; + const classBody = this.startNode(); + classBody.body = []; + this.expect(5); + + this.withSmartMixTopicForbiddingContext(() => { + while (!this.match(8)) { + if (this.eat(13)) { + if (decorators.length > 0) { + throw this.raise(Errors.DecoratorSemicolon, { + at: this.state.lastTokEndLoc + }); + } + continue; + } + if (this.match(26)) { + decorators.push(this.parseDecorator()); + continue; + } + const member = this.startNode(); + + if (decorators.length) { + member.decorators = decorators; + this.resetStartLocationFromNode(member, decorators[0]); + decorators = []; + } + this.parseClassMember(classBody, member, state); + if ( + member.kind === "constructor" && + member.decorators && + member.decorators.length > 0) { + this.raise(Errors.DecoratorConstructor, { + at: member + }); + } + } + }); + this.state.strict = oldStrict; + this.next(); + + if (decorators.length) { + throw this.raise(Errors.TrailingDecorator, { + at: this.state.startLoc + }); + } + this.classScope.exit(); + return this.finishNode(classBody, "ClassBody"); + } + + parseClassMemberFromModifier(classBody, member) { + const key = this.parseIdentifier(true); + + if (this.isClassMethod()) { + const method = member; + + method.kind = "method"; + method.computed = false; + method.key = key; + method.static = false; + this.pushClassMethod(classBody, method, false, false, false, false); + return true; + } else if (this.isClassProperty()) { + const prop = member; + + prop.computed = false; + prop.key = key; + prop.static = false; + classBody.body.push(this.parseClassProperty(prop)); + return true; + } + this.resetPreviousNodeTrailingComments(key); + return false; + } + parseClassMember(classBody, member, state) { + const isStatic = this.isContextual(104); + if (isStatic) { + if (this.parseClassMemberFromModifier(classBody, member)) { + return; + } + if (this.eat(5)) { + this.parseClassStaticBlock(classBody, member); + return; + } + } + this.parseClassMemberWithIsStatic(classBody, member, state, isStatic); + } + parseClassMemberWithIsStatic(classBody, member, state, isStatic) { + const publicMethod = member; + const privateMethod = member; + const publicProp = member; + const privateProp = member; + const accessorProp = member; + const method = publicMethod; + const publicMember = publicMethod; + member.static = isStatic; + this.parsePropertyNamePrefixOperator(member); + if (this.eat(55)) { + method.kind = "method"; + const isPrivateName = this.match(136); + this.parseClassElementName(method); + if (isPrivateName) { + this.pushClassPrivateMethod(classBody, privateMethod, true, false); + return; + } + if (this.isNonstaticConstructor(publicMethod)) { + this.raise(Errors.ConstructorIsGenerator, { + at: publicMethod.key + }); + } + this.pushClassMethod(classBody, publicMethod, true, false, false, false); + return; + } + const isContextual = tokenIsIdentifier(this.state.type) && !this.state.containsEsc; + const isPrivate = this.match(136); + const key = this.parseClassElementName(member); + const maybeQuestionTokenStartLoc = this.state.startLoc; + this.parsePostMemberNameModifiers(publicMember); + if (this.isClassMethod()) { + method.kind = "method"; + if (isPrivate) { + this.pushClassPrivateMethod(classBody, privateMethod, false, false); + return; + } + + const isConstructor = this.isNonstaticConstructor(publicMethod); + let allowsDirectSuper = false; + if (isConstructor) { + publicMethod.kind = "constructor"; + + if (state.hadConstructor && !this.hasPlugin("typescript")) { + this.raise(Errors.DuplicateConstructor, { + at: key + }); + } + if (isConstructor && this.hasPlugin("typescript") && member.override) { + this.raise(Errors.OverrideOnConstructor, { + at: key + }); + } + state.hadConstructor = true; + allowsDirectSuper = state.hadSuperClass; + } + this.pushClassMethod(classBody, publicMethod, false, false, isConstructor, allowsDirectSuper); + } else if (this.isClassProperty()) { + if (isPrivate) { + this.pushClassPrivateProperty(classBody, privateProp); + } else { + this.pushClassProperty(classBody, publicProp); + } + } else if (isContextual && key.name === "async" && !this.isLineTerminator()) { + this.resetPreviousNodeTrailingComments(key); + const isGenerator = this.eat(55); + if (publicMember.optional) { + this.unexpected(maybeQuestionTokenStartLoc); + } + method.kind = "method"; + const isPrivate = this.match(136); + this.parseClassElementName(method); + this.parsePostMemberNameModifiers(publicMember); + if (isPrivate) { + this.pushClassPrivateMethod(classBody, privateMethod, isGenerator, true); + } else { + if (this.isNonstaticConstructor(publicMethod)) { + this.raise(Errors.ConstructorIsAsync, { + at: publicMethod.key + }); + } + this.pushClassMethod(classBody, publicMethod, isGenerator, true, false, false); + } + } else if (isContextual && (key.name === "get" || key.name === "set") && !(this.match(55) && this.isLineTerminator())) { + this.resetPreviousNodeTrailingComments(key); + method.kind = key.name; + const isPrivate = this.match(136); + this.parseClassElementName(publicMethod); + if (isPrivate) { + this.pushClassPrivateMethod(classBody, privateMethod, false, false); + } else { + if (this.isNonstaticConstructor(publicMethod)) { + this.raise(Errors.ConstructorIsAccessor, { + at: publicMethod.key + }); + } + this.pushClassMethod(classBody, publicMethod, false, false, false, false); + } + this.checkGetterSetterParams(publicMethod); + } else if (isContextual && key.name === "accessor" && !this.isLineTerminator()) { + this.expectPlugin("decoratorAutoAccessors"); + this.resetPreviousNodeTrailingComments(key); + + const isPrivate = this.match(136); + this.parseClassElementName(publicProp); + this.pushClassAccessorProperty(classBody, accessorProp, isPrivate); + } else if (this.isLineTerminator()) { + if (isPrivate) { + this.pushClassPrivateProperty(classBody, privateProp); + } else { + this.pushClassProperty(classBody, publicProp); + } + } else { + this.unexpected(); + } + } + + parseClassElementName(member) { + const { + type, + value + } = this.state; + if ((type === 130 || type === 131) && member.static && value === "prototype") { + this.raise(Errors.StaticPrototype, { + at: this.state.startLoc + }); + } + if (type === 136) { + if (value === "constructor") { + this.raise(Errors.ConstructorClassPrivateField, { + at: this.state.startLoc + }); + } + const key = this.parsePrivateName(); + member.key = key; + return key; + } + return this.parsePropertyName(member); + } + parseClassStaticBlock(classBody, member) { + var _member$decorators; + this.scope.enter(SCOPE_CLASS | SCOPE_STATIC_BLOCK | SCOPE_SUPER); + const oldLabels = this.state.labels; + this.state.labels = []; + this.prodParam.enter(PARAM); + const body = member.body = []; + this.parseBlockOrModuleBlockBody(body, undefined, false, 8); + this.prodParam.exit(); + this.scope.exit(); + this.state.labels = oldLabels; + classBody.body.push(this.finishNode(member, "StaticBlock")); + if ((_member$decorators = member.decorators) != null && _member$decorators.length) { + this.raise(Errors.DecoratorStaticBlock, { + at: member + }); + } + } + pushClassProperty(classBody, prop) { + if (!prop.computed && (prop.key.name === "constructor" || prop.key.value === "constructor")) { + this.raise(Errors.ConstructorClassField, { + at: prop.key + }); + } + classBody.body.push(this.parseClassProperty(prop)); + } + pushClassPrivateProperty(classBody, prop) { + const node = this.parseClassPrivateProperty(prop); + classBody.body.push(node); + this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), CLASS_ELEMENT_OTHER, node.key.loc.start); + } + pushClassAccessorProperty(classBody, prop, isPrivate) { + if (!isPrivate && !prop.computed) { + const key = prop.key; + if (key.name === "constructor" || key.value === "constructor") { + this.raise(Errors.ConstructorClassField, { + at: key + }); + } + } + const node = this.parseClassAccessorProperty(prop); + classBody.body.push(node); + if (isPrivate) { + this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), CLASS_ELEMENT_OTHER, node.key.loc.start); + } + } + pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { + classBody.body.push(this.parseMethod(method, isGenerator, isAsync, isConstructor, allowsDirectSuper, "ClassMethod", true)); + } + pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { + const node = this.parseMethod(method, isGenerator, isAsync, false, false, "ClassPrivateMethod", true); + classBody.body.push(node); + const kind = node.kind === "get" ? node.static ? CLASS_ELEMENT_STATIC_GETTER : CLASS_ELEMENT_INSTANCE_GETTER : node.kind === "set" ? node.static ? CLASS_ELEMENT_STATIC_SETTER : CLASS_ELEMENT_INSTANCE_SETTER : CLASS_ELEMENT_OTHER; + this.declareClassPrivateMethodInScope(node, kind); + } + declareClassPrivateMethodInScope(node, kind) { + this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), kind, node.key.loc.start); + } + + parsePostMemberNameModifiers( + methodOrProp) {} + + parseClassPrivateProperty(node) { + this.parseInitializer(node); + this.semicolon(); + return this.finishNode(node, "ClassPrivateProperty"); + } + + parseClassProperty(node) { + this.parseInitializer(node); + this.semicolon(); + return this.finishNode(node, "ClassProperty"); + } + parseClassAccessorProperty(node) { + this.parseInitializer(node); + this.semicolon(); + return this.finishNode(node, "ClassAccessorProperty"); + } + + parseInitializer(node) { + this.scope.enter(SCOPE_CLASS | SCOPE_SUPER); + this.expressionScope.enter(newExpressionScope()); + this.prodParam.enter(PARAM); + node.value = this.eat(29) ? this.parseMaybeAssignAllowIn() : null; + this.expressionScope.exit(); + this.prodParam.exit(); + this.scope.exit(); + } + parseClassId(node, isStatement, optionalId, bindingType = BIND_CLASS) { + if (tokenIsIdentifier(this.state.type)) { + node.id = this.parseIdentifier(); + if (isStatement) { + this.declareNameFromIdentifier(node.id, bindingType); + } + } else { + if (optionalId || !isStatement) { + node.id = null; + } else { + throw this.raise(Errors.MissingClassName, { + at: this.state.startLoc + }); + } + } + } + + parseClassSuper(node) { + node.superClass = this.eat(81) ? this.parseExprSubscripts() : null; + } + + parseExport(node, decorators) { + const hasDefault = this.maybeParseExportDefaultSpecifier( + node); + const parseAfterDefault = !hasDefault || this.eat(12); + const hasStar = parseAfterDefault && this.eatExportStar( + node); + const hasNamespace = hasStar && this.maybeParseExportNamespaceSpecifier( + node); + const parseAfterNamespace = parseAfterDefault && (!hasNamespace || this.eat(12)); + const isFromRequired = hasDefault || hasStar; + if (hasStar && !hasNamespace) { + if (hasDefault) this.unexpected(); + if (decorators) { + throw this.raise(Errors.UnsupportedDecoratorExport, { + at: node + }); + } + this.parseExportFrom(node, true); + return this.finishNode(node, "ExportAllDeclaration"); + } + const hasSpecifiers = this.maybeParseExportNamedSpecifiers( + node); + if (hasDefault && parseAfterDefault && !hasStar && !hasSpecifiers || hasNamespace && parseAfterNamespace && !hasSpecifiers) { + throw this.unexpected(null, 5); + } + let hasDeclaration; + if (isFromRequired || hasSpecifiers) { + hasDeclaration = false; + if (decorators) { + throw this.raise(Errors.UnsupportedDecoratorExport, { + at: node + }); + } + this.parseExportFrom(node, isFromRequired); + } else { + hasDeclaration = this.maybeParseExportDeclaration(node); + } + if (isFromRequired || hasSpecifiers || hasDeclaration) { + var _node2$declaration; + const node2 = node; + this.checkExport(node2, true, false, !!node2.source); + if (((_node2$declaration = node2.declaration) == null ? void 0 : _node2$declaration.type) === "ClassDeclaration") { + this.maybeTakeDecorators(decorators, node2.declaration, node2); + } else if (decorators) { + throw this.raise(Errors.UnsupportedDecoratorExport, { + at: node + }); + } + return this.finishNode(node2, "ExportNamedDeclaration"); + } + if (this.eat(65)) { + const node2 = node; + const decl = this.parseExportDefaultExpression(); + node2.declaration = decl; + if (decl.type === "ClassDeclaration") { + this.maybeTakeDecorators(decorators, decl, node2); + } else if (decorators) { + throw this.raise(Errors.UnsupportedDecoratorExport, { + at: node + }); + } + this.checkExport(node2, true, true); + return this.finishNode(node2, "ExportDefaultDeclaration"); + } + throw this.unexpected(null, 5); + } + + eatExportStar(node) { + return this.eat(55); + } + maybeParseExportDefaultSpecifier(node) { + if (this.isExportDefaultSpecifier()) { + this.expectPlugin("exportDefaultFrom"); + const specifier = this.startNode(); + specifier.exported = this.parseIdentifier(true); + node.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")]; + return true; + } + return false; + } + maybeParseExportNamespaceSpecifier(node) { + if (this.isContextual(93)) { + if (!node.specifiers) node.specifiers = []; + const specifier = this.startNodeAt(this.state.lastTokStartLoc); + this.next(); + specifier.exported = this.parseModuleExportName(); + node.specifiers.push(this.finishNode(specifier, "ExportNamespaceSpecifier")); + return true; + } + return false; + } + maybeParseExportNamedSpecifiers(node) { + if (this.match(5)) { + if (!node.specifiers) node.specifiers = []; + const isTypeExport = node.exportKind === "type"; + node.specifiers.push(...this.parseExportSpecifiers(isTypeExport)); + node.source = null; + node.declaration = null; + if (this.hasPlugin("importAssertions")) { + node.assertions = []; + } + return true; + } + return false; + } + maybeParseExportDeclaration(node) { + if (this.shouldParseExportDeclaration()) { + node.specifiers = []; + node.source = null; + if (this.hasPlugin("importAssertions")) { + node.assertions = []; + } + node.declaration = this.parseExportDeclaration(node); + return true; + } + return false; + } + isAsyncFunction() { + if (!this.isContextual(95)) return false; + const next = this.nextTokenStart(); + return !lineBreak.test(this.input.slice(this.state.pos, next)) && this.isUnparsedContextual(next, "function"); + } + parseExportDefaultExpression() { + const expr = this.startNode(); + if (this.match(68)) { + this.next(); + return this.parseFunction(expr, ParseFunctionFlag.Declaration | ParseFunctionFlag.NullableId); + } else if (this.isAsyncFunction()) { + this.next(); + this.next(); + return this.parseFunction(expr, ParseFunctionFlag.Declaration | ParseFunctionFlag.NullableId | ParseFunctionFlag.Async); + } + if (this.match(80)) { + return this.parseClass(expr, true, true); + } + if (this.match(26)) { + if (this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport")) { + this.raise(Errors.DecoratorBeforeExport, { + at: this.state.startLoc + }); + } + return this.parseClass(this.maybeTakeDecorators(this.parseDecorators(false), this.startNode()), true, true); + } + if (this.match(75) || this.match(74) || this.isLet()) { + throw this.raise(Errors.UnsupportedDefaultExport, { + at: this.state.startLoc + }); + } + const res = this.parseMaybeAssignAllowIn(); + this.semicolon(); + return res; + } + + parseExportDeclaration( + node) { + if (this.match(80)) { + const node = this.parseClass(this.startNode(), true, false); + return node; + } + return this.parseStatementListItem(); + } + isExportDefaultSpecifier() { + const { + type + } = this.state; + if (tokenIsIdentifier(type)) { + if (type === 95 && !this.state.containsEsc || type === 99) { + return false; + } + if ((type === 128 || type === 127) && !this.state.containsEsc) { + const { + type: nextType + } = this.lookahead(); + if (tokenIsIdentifier(nextType) && nextType !== 97 || nextType === 5) { + this.expectOnePlugin(["flow", "typescript"]); + return false; + } + } + } else if (!this.match(65)) { + return false; + } + const next = this.nextTokenStart(); + const hasFrom = this.isUnparsedContextual(next, "from"); + if (this.input.charCodeAt(next) === 44 || tokenIsIdentifier(this.state.type) && hasFrom) { + return true; + } + if (this.match(65) && hasFrom) { + const nextAfterFrom = this.input.charCodeAt(this.nextTokenStartSince(next + 4)); + return nextAfterFrom === 34 || nextAfterFrom === 39; + } + return false; + } + parseExportFrom(node, expect) { + if (this.eatContextual(97)) { + node.source = this.parseImportSource(); + this.checkExport(node); + const assertions = this.maybeParseImportAssertions(); + if (assertions) { + node.assertions = assertions; + this.checkJSONModuleImport(node); + } + } else if (expect) { + this.unexpected(); + } + this.semicolon(); + } + shouldParseExportDeclaration() { + const { + type + } = this.state; + if (type === 26) { + this.expectOnePlugin(["decorators", "decorators-legacy"]); + if (this.hasPlugin("decorators")) { + if (this.getPluginOption("decorators", "decoratorsBeforeExport")) { + throw this.raise(Errors.DecoratorBeforeExport, { + at: this.state.startLoc + }); + } + return true; + } + } + return type === 74 || type === 75 || type === 68 || type === 80 || this.isLet() || this.isAsyncFunction(); + } + checkExport(node, checkNames, isDefault, isFrom) { + if (checkNames) { + if (isDefault) { + this.checkDuplicateExports(node, "default"); + if (this.hasPlugin("exportDefaultFrom")) { + var _declaration$extra; + const declaration = node.declaration; + if (declaration.type === "Identifier" && declaration.name === "from" && declaration.end - declaration.start === 4 && + !((_declaration$extra = declaration.extra) != null && _declaration$extra.parenthesized)) { + this.raise(Errors.ExportDefaultFromAsIdentifier, { + at: declaration + }); + } + } + } else if (node.specifiers && node.specifiers.length) { + for (const specifier of node.specifiers) { + const { + exported + } = specifier; + const exportName = exported.type === "Identifier" ? exported.name : exported.value; + this.checkDuplicateExports(specifier, exportName); + if (!isFrom && specifier.local) { + const { + local + } = specifier; + if (local.type !== "Identifier") { + this.raise(Errors.ExportBindingIsString, { + at: specifier, + localName: local.value, + exportName + }); + } else { + this.checkReservedWord(local.name, local.loc.start, true, false); + this.scope.checkLocalExport(local); + } + } + } + } else if (node.declaration) { + if (node.declaration.type === "FunctionDeclaration" || node.declaration.type === "ClassDeclaration") { + const id = node.declaration.id; + if (!id) throw new Error("Assertion failure"); + this.checkDuplicateExports(node, id.name); + } else if (node.declaration.type === "VariableDeclaration") { + for (const declaration of node.declaration.declarations) { + this.checkDeclaration(declaration.id); + } + } + } + } + } + checkDeclaration(node) { + if (node.type === "Identifier") { + this.checkDuplicateExports(node, node.name); + } else if (node.type === "ObjectPattern") { + for (const prop of node.properties) { + this.checkDeclaration(prop); + } + } else if (node.type === "ArrayPattern") { + for (const elem of node.elements) { + if (elem) { + this.checkDeclaration(elem); + } + } + } else if (node.type === "ObjectProperty") { + this.checkDeclaration(node.value); + } else if (node.type === "RestElement") { + this.checkDeclaration(node.argument); + } else if (node.type === "AssignmentPattern") { + this.checkDeclaration(node.left); + } + } + checkDuplicateExports(node, exportName) { + if (this.exportedIdentifiers.has(exportName)) { + if (exportName === "default") { + this.raise(Errors.DuplicateDefaultExport, { + at: node + }); + } else { + this.raise(Errors.DuplicateExport, { + at: node, + exportName + }); + } + } + this.exportedIdentifiers.add(exportName); + } + + parseExportSpecifiers(isInTypeExport) { + const nodes = []; + let first = true; + + this.expect(5); + while (!this.eat(8)) { + if (first) { + first = false; + } else { + this.expect(12); + if (this.eat(8)) break; + } + const isMaybeTypeOnly = this.isContextual(128); + const isString = this.match(131); + const node = this.startNode(); + node.local = this.parseModuleExportName(); + nodes.push(this.parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly)); + } + return nodes; + } + parseExportSpecifier(node, isString, + isInTypeExport, isMaybeTypeOnly + ) { + if (this.eatContextual(93)) { + node.exported = this.parseModuleExportName(); + } else if (isString) { + node.exported = cloneStringLiteral(node.local); + } else if (!node.exported) { + node.exported = cloneIdentifier(node.local); + } + return this.finishNode(node, "ExportSpecifier"); + } + + parseModuleExportName() { + if (this.match(131)) { + const result = this.parseStringLiteral(this.state.value); + const surrogate = result.value.match(loneSurrogate); + if (surrogate) { + this.raise(Errors.ModuleExportNameHasLoneSurrogate, { + at: result, + surrogateCharCode: surrogate[0].charCodeAt(0) + }); + } + return result; + } + return this.parseIdentifier(true); + } + isJSONModuleImport(node) { + if (node.assertions != null) { + return node.assertions.some(({ + key, + value + }) => { + return value.value === "json" && (key.type === "Identifier" ? key.name === "type" : key.value === "type"); + }); + } + return false; + } + checkImportReflection(node) { + if (node.module) { + var _node$assertions; + if (node.specifiers.length !== 1 || node.specifiers[0].type !== "ImportDefaultSpecifier") { + this.raise(Errors.ImportReflectionNotBinding, { + at: node.specifiers[0].loc.start + }); + } + if (((_node$assertions = node.assertions) == null ? void 0 : _node$assertions.length) > 0) { + this.raise(Errors.ImportReflectionHasAssertion, { + at: node.specifiers[0].loc.start + }); + } + } + } + checkJSONModuleImport(node) { + if (this.isJSONModuleImport(node) && node.type !== "ExportAllDeclaration") { + const { + specifiers + } = node; + if (specifiers != null) { + const nonDefaultNamedSpecifier = specifiers.find(specifier => { + let imported; + if (specifier.type === "ExportSpecifier") { + imported = specifier.local; + } else if (specifier.type === "ImportSpecifier") { + imported = specifier.imported; + } + if (imported !== undefined) { + return imported.type === "Identifier" ? imported.name !== "default" : imported.value !== "default"; + } + }); + if (nonDefaultNamedSpecifier !== undefined) { + this.raise(Errors.ImportJSONBindingNotDefault, { + at: nonDefaultNamedSpecifier.loc.start + }); + } + } + } + } + parseMaybeImportReflection(node) { + let isImportReflection = false; + if (this.isContextual(125)) { + const lookahead = this.lookahead(); + const nextType = lookahead.type; + if (tokenIsIdentifier(nextType)) { + if (nextType !== 97) { + isImportReflection = true; + } else { + const nextNextTokenFirstChar = this.input.charCodeAt(this.nextTokenStartSince(lookahead.end)); + if (nextNextTokenFirstChar === 102) { + isImportReflection = true; + } + } + } else if (nextType !== 12) { + isImportReflection = true; + } + } + if (isImportReflection) { + this.expectPlugin("importReflection"); + this.next(); + node.module = true; + } else if (this.hasPlugin("importReflection")) { + node.module = false; + } + } + + parseImport(node) { + node.specifiers = []; + if (!this.match(131)) { + this.parseMaybeImportReflection(node); + const hasDefault = this.maybeParseDefaultImportSpecifier(node); + const parseNext = !hasDefault || this.eat(12); + const hasStar = parseNext && this.maybeParseStarImportSpecifier(node); + if (parseNext && !hasStar) this.parseNamedImportSpecifiers(node); + this.expectContextual(97); + } + node.source = this.parseImportSource(); + const assertions = this.maybeParseImportAssertions(); + if (assertions) { + node.assertions = assertions; + } else { + const attributes = this.maybeParseModuleAttributes(); + if (attributes) { + node.attributes = attributes; + } + } + this.checkImportReflection(node); + this.checkJSONModuleImport(node); + this.semicolon(); + return this.finishNode(node, "ImportDeclaration"); + } + parseImportSource() { + if (!this.match(131)) this.unexpected(); + return this.parseExprAtom(); + } + + shouldParseDefaultImport(node) { + return tokenIsIdentifier(this.state.type); + } + parseImportSpecifierLocal(node, specifier, type) { + specifier.local = this.parseIdentifier(); + node.specifiers.push(this.finishImportSpecifier(specifier, type)); + } + finishImportSpecifier(specifier, type, bindingType = BIND_LEXICAL) { + this.checkLVal(specifier.local, { + in: specifier, + binding: bindingType + }); + return this.finishNode(specifier, type); + } + + parseAssertEntries() { + const attrs = []; + const attrNames = new Set(); + do { + if (this.match(8)) { + break; + } + const node = this.startNode(); + + const keyName = this.state.value; + if (attrNames.has(keyName)) { + this.raise(Errors.ModuleAttributesWithDuplicateKeys, { + at: this.state.startLoc, + key: keyName + }); + } + attrNames.add(keyName); + if (this.match(131)) { + node.key = this.parseStringLiteral(keyName); + } else { + node.key = this.parseIdentifier(true); + } + this.expect(14); + if (!this.match(131)) { + throw this.raise(Errors.ModuleAttributeInvalidValue, { + at: this.state.startLoc + }); + } + node.value = this.parseStringLiteral(this.state.value); + attrs.push(this.finishNode(node, "ImportAttribute")); + } while (this.eat(12)); + return attrs; + } + + maybeParseModuleAttributes() { + if (this.match(76) && !this.hasPrecedingLineBreak()) { + this.expectPlugin("moduleAttributes"); + this.next(); + } else { + if (this.hasPlugin("moduleAttributes")) return []; + return null; + } + const attrs = []; + const attributes = new Set(); + do { + const node = this.startNode(); + node.key = this.parseIdentifier(true); + if (node.key.name !== "type") { + this.raise(Errors.ModuleAttributeDifferentFromType, { + at: node.key + }); + } + if (attributes.has(node.key.name)) { + this.raise(Errors.ModuleAttributesWithDuplicateKeys, { + at: node.key, + key: node.key.name + }); + } + attributes.add(node.key.name); + this.expect(14); + if (!this.match(131)) { + throw this.raise(Errors.ModuleAttributeInvalidValue, { + at: this.state.startLoc + }); + } + node.value = this.parseStringLiteral(this.state.value); + this.finishNode(node, "ImportAttribute"); + attrs.push(node); + } while (this.eat(12)); + return attrs; + } + maybeParseImportAssertions() { + if (this.isContextual(94) && !this.hasPrecedingLineBreak()) { + this.expectPlugin("importAssertions"); + this.next(); + } else { + if (this.hasPlugin("importAssertions")) return []; + return null; + } + this.eat(5); + const attrs = this.parseAssertEntries(); + this.eat(8); + return attrs; + } + maybeParseDefaultImportSpecifier(node) { + if (this.shouldParseDefaultImport(node)) { + this.parseImportSpecifierLocal(node, this.startNode(), "ImportDefaultSpecifier"); + return true; + } + return false; + } + maybeParseStarImportSpecifier(node) { + if (this.match(55)) { + const specifier = this.startNode(); + this.next(); + this.expectContextual(93); + this.parseImportSpecifierLocal(node, specifier, "ImportNamespaceSpecifier"); + return true; + } + return false; + } + parseNamedImportSpecifiers(node) { + let first = true; + this.expect(5); + while (!this.eat(8)) { + if (first) { + first = false; + } else { + if (this.eat(14)) { + throw this.raise(Errors.DestructureNamedImport, { + at: this.state.startLoc + }); + } + this.expect(12); + if (this.eat(8)) break; + } + const specifier = this.startNode(); + const importedIsString = this.match(131); + const isMaybeTypeOnly = this.isContextual(128); + specifier.imported = this.parseModuleExportName(); + const importSpecifier = this.parseImportSpecifier(specifier, importedIsString, node.importKind === "type" || node.importKind === "typeof", isMaybeTypeOnly, undefined); + node.specifiers.push(importSpecifier); + } + } + + parseImportSpecifier(specifier, importedIsString, + isInTypeOnlyImport, isMaybeTypeOnly, bindingType + ) { + if (this.eatContextual(93)) { + specifier.local = this.parseIdentifier(); + } else { + const { + imported + } = specifier; + if (importedIsString) { + throw this.raise(Errors.ImportBindingIsString, { + at: specifier, + importName: imported.value + }); + } + this.checkReservedWord(imported.name, specifier.loc.start, true, true); + if (!specifier.local) { + specifier.local = cloneIdentifier(imported); + } + } + return this.finishImportSpecifier(specifier, "ImportSpecifier", bindingType); + } + + isThisParam(param) { + return param.type === "Identifier" && param.name === "this"; + } +} + +class Parser extends StatementParser { + + constructor(options, input) { + options = getOptions(options); + super(options, input); + this.options = options; + this.initializeScopes(); + this.plugins = pluginsMap(this.options.plugins); + this.filename = options.sourceFilename; + } + + getScopeHandler() { + return ScopeHandler; + } + parse() { + this.enterInitialScopes(); + const file = this.startNode(); + const program = this.startNode(); + this.nextToken(); + file.errors = null; + this.parseTopLevel(file, program); + file.errors = this.state.errors; + return file; + } +} +function pluginsMap(plugins) { + const pluginMap = new Map(); + for (const plugin of plugins) { + const [name, options] = Array.isArray(plugin) ? plugin : [plugin, {}]; + if (!pluginMap.has(name)) pluginMap.set(name, options || {}); + } + return pluginMap; +} + +function parse(input, options) { + var _options; + if (((_options = options) == null ? void 0 : _options.sourceType) === "unambiguous") { + options = Object.assign({}, options); + try { + options.sourceType = "module"; + const parser = getParser(options, input); + const ast = parser.parse(); + if (parser.sawUnambiguousESM) { + return ast; + } + if (parser.ambiguousScriptDifferentAst) { + try { + options.sourceType = "script"; + return getParser(options, input).parse(); + } catch (_unused) {} + } else { + ast.program.sourceType = "script"; + } + return ast; + } catch (moduleError) { + try { + options.sourceType = "script"; + return getParser(options, input).parse(); + } catch (_unused2) {} + throw moduleError; + } + } else { + return getParser(options, input).parse(); + } +} +function parseExpression(input, options) { + const parser = getParser(options, input); + if (parser.options.strictMode) { + parser.state.strict = true; + } + return parser.getExpression(); +} +function generateExportedTokenTypes(internalTokenTypes) { + const tokenTypes = {}; + for (const typeName of Object.keys(internalTokenTypes)) { + tokenTypes[typeName] = getExportedToken(internalTokenTypes[typeName]); + } + return tokenTypes; +} +const tokTypes = generateExportedTokenTypes(tt); +function getParser(options, input) { + let cls = Parser; + if (options != null && options.plugins) { + validatePlugins(options.plugins); + cls = getParserClass(options.plugins); + } + return new cls(options, input); +} +const parserClassCache = {}; + +function getParserClass(pluginsFromOptions) { + const pluginList = mixinPluginNames.filter(name => hasPlugin(pluginsFromOptions, name)); + const key = pluginList.join("/"); + let cls = parserClassCache[key]; + if (!cls) { + cls = Parser; + for (const plugin of pluginList) { + cls = mixinPlugins[plugin](cls); + } + parserClassCache[key] = cls; + } + return cls; +} + +exports.parse = parse; +exports.parseExpression = parseExpression; +exports.tokTypes = tokTypes; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 1804: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = createTemplateBuilder; +var _options = __webpack_require__(7723); +var _string = __webpack_require__(5814); +var _literal = __webpack_require__(1519); +const NO_PLACEHOLDER = (0, _options.validate)({ + placeholderPattern: false +}); +function createTemplateBuilder(formatter, defaultOpts) { + const templateFnCache = new WeakMap(); + const templateAstCache = new WeakMap(); + const cachedOpts = defaultOpts || (0, _options.validate)(null); + return Object.assign((tpl, ...args) => { + if (typeof tpl === "string") { + if (args.length > 1) throw new Error("Unexpected extra params."); + return extendedTrace((0, _string.default)(formatter, tpl, (0, _options.merge)(cachedOpts, (0, _options.validate)(args[0])))); + } else if (Array.isArray(tpl)) { + let builder = templateFnCache.get(tpl); + if (!builder) { + builder = (0, _literal.default)(formatter, tpl, cachedOpts); + templateFnCache.set(tpl, builder); + } + return extendedTrace(builder(args)); + } else if (typeof tpl === "object" && tpl) { + if (args.length > 0) throw new Error("Unexpected extra params."); + return createTemplateBuilder(formatter, (0, _options.merge)(cachedOpts, (0, _options.validate)(tpl))); + } + throw new Error(`Unexpected template param ${typeof tpl}`); + }, { + ast: (tpl, ...args) => { + if (typeof tpl === "string") { + if (args.length > 1) throw new Error("Unexpected extra params."); + return (0, _string.default)(formatter, tpl, (0, _options.merge)((0, _options.merge)(cachedOpts, (0, _options.validate)(args[0])), NO_PLACEHOLDER))(); + } else if (Array.isArray(tpl)) { + let builder = templateAstCache.get(tpl); + if (!builder) { + builder = (0, _literal.default)(formatter, tpl, (0, _options.merge)(cachedOpts, NO_PLACEHOLDER)); + templateAstCache.set(tpl, builder); + } + return builder(args)(); + } + throw new Error(`Unexpected template param ${typeof tpl}`); + } + }); +} +function extendedTrace(fn) { + let rootStack = ""; + try { + throw new Error(); + } catch (error) { + if (error.stack) { + rootStack = error.stack.split("\n").slice(3).join("\n"); + } + } + return arg => { + try { + return fn(arg); + } catch (err) { + err.stack += `\n =============\n${rootStack}`; + throw err; + } + }; +} + +//# sourceMappingURL=builder.js.map + + +/***/ }), + +/***/ 7008: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.statements = exports.statement = exports.smart = exports.program = exports.expression = void 0; +var _t = __webpack_require__(2139); +const { + assertExpressionStatement +} = _t; +function makeStatementFormatter(fn) { + return { + code: str => `/* @babel/template */;\n${str}`, + validate: () => {}, + unwrap: ast => { + return fn(ast.program.body.slice(1)); + } + }; +} +const smart = makeStatementFormatter(body => { + if (body.length > 1) { + return body; + } else { + return body[0]; + } +}); +exports.smart = smart; +const statements = makeStatementFormatter(body => body); +exports.statements = statements; +const statement = makeStatementFormatter(body => { + if (body.length === 0) { + throw new Error("Found nothing to return."); + } + if (body.length > 1) { + throw new Error("Found multiple statements but wanted one"); + } + return body[0]; +}); +exports.statement = statement; +const expression = { + code: str => `(\n${str}\n)`, + validate: ast => { + if (ast.program.body.length > 1) { + throw new Error("Found multiple statements but wanted one"); + } + if (expression.unwrap(ast).start === 0) { + throw new Error("Parse result included parens."); + } + }, + unwrap: ({ + program + }) => { + const [stmt] = program.body; + assertExpressionStatement(stmt); + return stmt.expression; + } +}; +exports.expression = expression; +const program = { + code: str => str, + validate: () => {}, + unwrap: ast => ast.program +}; +exports.program = program; + +//# sourceMappingURL=formatters.js.map + + +/***/ }), + +/***/ 940: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.statements = exports.statement = exports.smart = exports.program = exports.expression = exports["default"] = void 0; +var formatters = __webpack_require__(7008); +var _builder = __webpack_require__(1804); +const smart = (0, _builder.default)(formatters.smart); +exports.smart = smart; +const statement = (0, _builder.default)(formatters.statement); +exports.statement = statement; +const statements = (0, _builder.default)(formatters.statements); +exports.statements = statements; +const expression = (0, _builder.default)(formatters.expression); +exports.expression = expression; +const program = (0, _builder.default)(formatters.program); +exports.program = program; +var _default = Object.assign(smart.bind(undefined), { + smart, + statement, + statements, + expression, + program, + ast: smart.ast +}); +exports["default"] = _default; + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 1519: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = literalTemplate; +var _options = __webpack_require__(7723); +var _parse = __webpack_require__(5140); +var _populate = __webpack_require__(1792); +function literalTemplate(formatter, tpl, opts) { + const { + metadata, + names + } = buildLiteralData(formatter, tpl, opts); + return arg => { + const defaultReplacements = {}; + arg.forEach((replacement, i) => { + defaultReplacements[names[i]] = replacement; + }); + return arg => { + const replacements = (0, _options.normalizeReplacements)(arg); + if (replacements) { + Object.keys(replacements).forEach(key => { + if (Object.prototype.hasOwnProperty.call(defaultReplacements, key)) { + throw new Error("Unexpected replacement overlap."); + } + }); + } + return formatter.unwrap((0, _populate.default)(metadata, replacements ? Object.assign(replacements, defaultReplacements) : defaultReplacements)); + }; + }; +} +function buildLiteralData(formatter, tpl, opts) { + let names; + let nameSet; + let metadata; + let prefix = ""; + do { + prefix += "$"; + const result = buildTemplateCode(tpl, prefix); + names = result.names; + nameSet = new Set(names); + metadata = (0, _parse.default)(formatter, formatter.code(result.code), { + parser: opts.parser, + placeholderWhitelist: new Set(result.names.concat(opts.placeholderWhitelist ? Array.from(opts.placeholderWhitelist) : [])), + placeholderPattern: opts.placeholderPattern, + preserveComments: opts.preserveComments, + syntacticPlaceholders: opts.syntacticPlaceholders + }); + } while (metadata.placeholders.some(placeholder => placeholder.isDuplicate && nameSet.has(placeholder.name))); + return { + metadata, + names + }; +} +function buildTemplateCode(tpl, prefix) { + const names = []; + let code = tpl[0]; + for (let i = 1; i < tpl.length; i++) { + const value = `${prefix}${i - 1}`; + names.push(value); + code += value + tpl[i]; + } + return { + names, + code + }; +} + +//# sourceMappingURL=literal.js.map + + +/***/ }), + +/***/ 7723: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.merge = merge; +exports.normalizeReplacements = normalizeReplacements; +exports.validate = validate; +const _excluded = ["placeholderWhitelist", "placeholderPattern", "preserveComments", "syntacticPlaceholders"]; +function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } + +function merge(a, b) { + const { + placeholderWhitelist = a.placeholderWhitelist, + placeholderPattern = a.placeholderPattern, + preserveComments = a.preserveComments, + syntacticPlaceholders = a.syntacticPlaceholders + } = b; + return { + parser: Object.assign({}, a.parser, b.parser), + placeholderWhitelist, + placeholderPattern, + preserveComments, + syntacticPlaceholders + }; +} +function validate(opts) { + if (opts != null && typeof opts !== "object") { + throw new Error("Unknown template options."); + } + const _ref = opts || {}, + { + placeholderWhitelist, + placeholderPattern, + preserveComments, + syntacticPlaceholders + } = _ref, + parser = _objectWithoutPropertiesLoose(_ref, _excluded); + if (placeholderWhitelist != null && !(placeholderWhitelist instanceof Set)) { + throw new Error("'.placeholderWhitelist' must be a Set, null, or undefined"); + } + if (placeholderPattern != null && !(placeholderPattern instanceof RegExp) && placeholderPattern !== false) { + throw new Error("'.placeholderPattern' must be a RegExp, false, null, or undefined"); + } + if (preserveComments != null && typeof preserveComments !== "boolean") { + throw new Error("'.preserveComments' must be a boolean, null, or undefined"); + } + if (syntacticPlaceholders != null && typeof syntacticPlaceholders !== "boolean") { + throw new Error("'.syntacticPlaceholders' must be a boolean, null, or undefined"); + } + if (syntacticPlaceholders === true && (placeholderWhitelist != null || placeholderPattern != null)) { + throw new Error("'.placeholderWhitelist' and '.placeholderPattern' aren't compatible" + " with '.syntacticPlaceholders: true'"); + } + return { + parser, + placeholderWhitelist: placeholderWhitelist || undefined, + placeholderPattern: placeholderPattern == null ? undefined : placeholderPattern, + preserveComments: preserveComments == null ? undefined : preserveComments, + syntacticPlaceholders: syntacticPlaceholders == null ? undefined : syntacticPlaceholders + }; +} +function normalizeReplacements(replacements) { + if (Array.isArray(replacements)) { + return replacements.reduce((acc, replacement, i) => { + acc["$" + i] = replacement; + return acc; + }, {}); + } else if (typeof replacements === "object" || replacements == null) { + return replacements || undefined; + } + throw new Error("Template replacements must be an array, object, null, or undefined"); +} + +//# sourceMappingURL=options.js.map + + +/***/ }), + +/***/ 5140: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = parseAndBuildMetadata; +var _t = __webpack_require__(2139); +var _parser = __webpack_require__(9249); +var _codeFrame = __webpack_require__(2588); +const { + isCallExpression, + isExpressionStatement, + isFunction, + isIdentifier, + isJSXIdentifier, + isNewExpression, + isPlaceholder, + isStatement, + isStringLiteral, + removePropertiesDeep, + traverse +} = _t; +const PATTERN = /^[_$A-Z0-9]+$/; +function parseAndBuildMetadata(formatter, code, opts) { + const { + placeholderWhitelist, + placeholderPattern, + preserveComments, + syntacticPlaceholders + } = opts; + const ast = parseWithCodeFrame(code, opts.parser, syntacticPlaceholders); + removePropertiesDeep(ast, { + preserveComments + }); + formatter.validate(ast); + const syntactic = { + placeholders: [], + placeholderNames: new Set() + }; + const legacy = { + placeholders: [], + placeholderNames: new Set() + }; + const isLegacyRef = { + value: undefined + }; + traverse(ast, placeholderVisitorHandler, { + syntactic, + legacy, + isLegacyRef, + placeholderWhitelist, + placeholderPattern, + syntacticPlaceholders + }); + return Object.assign({ + ast + }, isLegacyRef.value ? legacy : syntactic); +} +function placeholderVisitorHandler(node, ancestors, state) { + var _state$placeholderWhi; + let name; + if (isPlaceholder(node)) { + if (state.syntacticPlaceholders === false) { + throw new Error("%%foo%%-style placeholders can't be used when " + "'.syntacticPlaceholders' is false."); + } else { + name = node.name.name; + state.isLegacyRef.value = false; + } + } else if (state.isLegacyRef.value === false || state.syntacticPlaceholders) { + return; + } else if (isIdentifier(node) || isJSXIdentifier(node)) { + name = node.name; + state.isLegacyRef.value = true; + } else if (isStringLiteral(node)) { + name = node.value; + state.isLegacyRef.value = true; + } else { + return; + } + if (!state.isLegacyRef.value && (state.placeholderPattern != null || state.placeholderWhitelist != null)) { + throw new Error("'.placeholderWhitelist' and '.placeholderPattern' aren't compatible" + " with '.syntacticPlaceholders: true'"); + } + if (state.isLegacyRef.value && (state.placeholderPattern === false || !(state.placeholderPattern || PATTERN).test(name)) && !((_state$placeholderWhi = state.placeholderWhitelist) != null && _state$placeholderWhi.has(name))) { + return; + } + + ancestors = ancestors.slice(); + const { + node: parent, + key + } = ancestors[ancestors.length - 1]; + let type; + if (isStringLiteral(node) || isPlaceholder(node, { + expectedNode: "StringLiteral" + })) { + type = "string"; + } else if (isNewExpression(parent) && key === "arguments" || isCallExpression(parent) && key === "arguments" || isFunction(parent) && key === "params") { + type = "param"; + } else if (isExpressionStatement(parent) && !isPlaceholder(node)) { + type = "statement"; + ancestors = ancestors.slice(0, -1); + } else if (isStatement(node) && isPlaceholder(node)) { + type = "statement"; + } else { + type = "other"; + } + const { + placeholders, + placeholderNames + } = state.isLegacyRef.value ? state.legacy : state.syntactic; + placeholders.push({ + name, + type, + resolve: ast => resolveAncestors(ast, ancestors), + isDuplicate: placeholderNames.has(name) + }); + placeholderNames.add(name); +} +function resolveAncestors(ast, ancestors) { + let parent = ast; + for (let i = 0; i < ancestors.length - 1; i++) { + const { + key, + index + } = ancestors[i]; + if (index === undefined) { + parent = parent[key]; + } else { + parent = parent[key][index]; + } + } + const { + key, + index + } = ancestors[ancestors.length - 1]; + return { + parent, + key, + index + }; +} +function parseWithCodeFrame(code, parserOpts, syntacticPlaceholders) { + const plugins = (parserOpts.plugins || []).slice(); + if (syntacticPlaceholders !== false) { + plugins.push("placeholders"); + } + parserOpts = Object.assign({ + allowReturnOutsideFunction: true, + allowSuperOutsideMethod: true, + sourceType: "module" + }, parserOpts, { + plugins + }); + try { + return (0, _parser.parse)(code, parserOpts); + } catch (err) { + const loc = err.loc; + if (loc) { + err.message += "\n" + (0, _codeFrame.codeFrameColumns)(code, { + start: loc + }); + err.code = "BABEL_TEMPLATE_PARSE_ERROR"; + } + throw err; + } +} + +//# sourceMappingURL=parse.js.map + + +/***/ }), + +/***/ 1792: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = populatePlaceholders; +var _t = __webpack_require__(2139); +const { + blockStatement, + cloneNode, + emptyStatement, + expressionStatement, + identifier, + isStatement, + isStringLiteral, + stringLiteral, + validate +} = _t; +function populatePlaceholders(metadata, replacements) { + const ast = cloneNode(metadata.ast); + if (replacements) { + metadata.placeholders.forEach(placeholder => { + if (!Object.prototype.hasOwnProperty.call(replacements, placeholder.name)) { + const placeholderName = placeholder.name; + throw new Error(`Error: No substitution given for "${placeholderName}". If this is not meant to be a + placeholder you may want to consider passing one of the following options to @babel/template: + - { placeholderPattern: false, placeholderWhitelist: new Set(['${placeholderName}'])} + - { placeholderPattern: /^${placeholderName}$/ }`); + } + }); + Object.keys(replacements).forEach(key => { + if (!metadata.placeholderNames.has(key)) { + throw new Error(`Unknown substitution "${key}" given`); + } + }); + } + + metadata.placeholders.slice().reverse().forEach(placeholder => { + try { + applyReplacement(placeholder, ast, replacements && replacements[placeholder.name] || null); + } catch (e) { + e.message = `@babel/template placeholder "${placeholder.name}": ${e.message}`; + throw e; + } + }); + return ast; +} +function applyReplacement(placeholder, ast, replacement) { + if (placeholder.isDuplicate) { + if (Array.isArray(replacement)) { + replacement = replacement.map(node => cloneNode(node)); + } else if (typeof replacement === "object") { + replacement = cloneNode(replacement); + } + } + const { + parent, + key, + index + } = placeholder.resolve(ast); + if (placeholder.type === "string") { + if (typeof replacement === "string") { + replacement = stringLiteral(replacement); + } + if (!replacement || !isStringLiteral(replacement)) { + throw new Error("Expected string substitution"); + } + } else if (placeholder.type === "statement") { + if (index === undefined) { + if (!replacement) { + replacement = emptyStatement(); + } else if (Array.isArray(replacement)) { + replacement = blockStatement(replacement); + } else if (typeof replacement === "string") { + replacement = expressionStatement(identifier(replacement)); + } else if (!isStatement(replacement)) { + replacement = expressionStatement(replacement); + } + } else { + if (replacement && !Array.isArray(replacement)) { + if (typeof replacement === "string") { + replacement = identifier(replacement); + } + if (!isStatement(replacement)) { + replacement = expressionStatement(replacement); + } + } + } + } else if (placeholder.type === "param") { + if (typeof replacement === "string") { + replacement = identifier(replacement); + } + if (index === undefined) throw new Error("Assertion failure."); + } else { + if (typeof replacement === "string") { + replacement = identifier(replacement); + } + if (Array.isArray(replacement)) { + throw new Error("Cannot replace single expression with an array."); + } + } + if (index === undefined) { + validate(parent, key, replacement); + parent[key] = replacement; + } else { + const items = parent[key].slice(); + if (placeholder.type === "statement" || placeholder.type === "param") { + if (replacement == null) { + items.splice(index, 1); + } else if (Array.isArray(replacement)) { + items.splice(index, 1, ...replacement); + } else { + items[index] = replacement; + } + } else { + items[index] = replacement; + } + validate(parent, key, items); + parent[key] = items; + } +} + +//# sourceMappingURL=populate.js.map + + +/***/ }), + +/***/ 5814: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = stringTemplate; +var _options = __webpack_require__(7723); +var _parse = __webpack_require__(5140); +var _populate = __webpack_require__(1792); +function stringTemplate(formatter, code, opts) { + code = formatter.code(code); + let metadata; + return arg => { + const replacements = (0, _options.normalizeReplacements)(arg); + if (!metadata) metadata = (0, _parse.default)(formatter, code, opts); + return formatter.unwrap((0, _populate.default)(metadata, replacements)); + }; +} + +//# sourceMappingURL=string.js.map + + +/***/ }), + +/***/ 5262: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.clear = clear; +exports.clearPath = clearPath; +exports.clearScope = clearScope; +exports.scope = exports.path = void 0; +let path = new WeakMap(); +exports.path = path; +let scope = new WeakMap(); +exports.scope = scope; +function clear() { + clearPath(); + clearScope(); +} +function clearPath() { + exports.path = path = new WeakMap(); +} +function clearScope() { + exports.scope = scope = new WeakMap(); +} + +//# sourceMappingURL=cache.js.map + + +/***/ }), + +/***/ 9368: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +var _path = __webpack_require__(2694); +var _t = __webpack_require__(2139); +const { + VISITOR_KEYS +} = _t; +class TraversalContext { + constructor(scope, opts, state, parentPath) { + this.queue = null; + this.priorityQueue = null; + this.parentPath = parentPath; + this.scope = scope; + this.state = state; + this.opts = opts; + } + shouldVisit(node) { + const opts = this.opts; + if (opts.enter || opts.exit) return true; + if (opts[node.type]) return true; + const keys = VISITOR_KEYS[node.type]; + if (!(keys != null && keys.length)) return false; + for (const key of keys) { + if (node[key]) { + return true; + } + } + return false; + } + create(node, container, key, listKey) { + return _path.default.get({ + parentPath: this.parentPath, + parent: node, + container, + key: key, + listKey + }); + } + maybeQueue(path, notPriority) { + if (this.queue) { + if (notPriority) { + this.queue.push(path); + } else { + this.priorityQueue.push(path); + } + } + } + visitMultiple(container, parent, listKey) { + if (container.length === 0) return false; + const queue = []; + for (let key = 0; key < container.length; key++) { + const node = container[key]; + if (node && this.shouldVisit(node)) { + queue.push(this.create(parent, container, key, listKey)); + } + } + return this.visitQueue(queue); + } + visitSingle(node, key) { + if (this.shouldVisit(node[key])) { + return this.visitQueue([this.create(node, node, key)]); + } else { + return false; + } + } + visitQueue(queue) { + this.queue = queue; + this.priorityQueue = []; + const visited = new WeakSet(); + let stop = false; + for (const path of queue) { + path.resync(); + if (path.contexts.length === 0 || path.contexts[path.contexts.length - 1] !== this) { + path.pushContext(this); + } + if (path.key === null) continue; + const { + node + } = path; + if (visited.has(node)) continue; + if (node) visited.add(node); + if (path.visit()) { + stop = true; + break; + } + if (this.priorityQueue.length) { + stop = this.visitQueue(this.priorityQueue); + this.priorityQueue = []; + this.queue = queue; + if (stop) break; + } + } + for (const path of queue) { + path.popContext(); + } + this.queue = null; + return stop; + } + visit(node, key) { + const nodes = node[key]; + if (!nodes) return false; + if (Array.isArray(nodes)) { + return this.visitMultiple(nodes, node, key); + } else { + return this.visitSingle(node, key); + } + } +} +exports["default"] = TraversalContext; + +//# sourceMappingURL=context.js.map + + +/***/ }), + +/***/ 65: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +class Hub { + getCode() {} + getScope() {} + addHelper() { + throw new Error("Helpers are not supported by the default hub."); + } + buildError(node, msg, Error = TypeError) { + return new Error(msg); + } +} +exports["default"] = Hub; + +//# sourceMappingURL=hub.js.map + + +/***/ }), + +/***/ 5845: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +Object.defineProperty(exports, "Hub", ({ + enumerable: true, + get: function () { + return _hub.default; + } +})); +Object.defineProperty(exports, "NodePath", ({ + enumerable: true, + get: function () { + return _path.default; + } +})); +Object.defineProperty(exports, "Scope", ({ + enumerable: true, + get: function () { + return _scope.default; + } +})); +exports.visitors = exports["default"] = void 0; +var visitors = __webpack_require__(8275); +exports.visitors = visitors; +var _t = __webpack_require__(2139); +var cache = __webpack_require__(5262); +var _traverseNode = __webpack_require__(645); +var _path = __webpack_require__(2694); +var _scope = __webpack_require__(9254); +var _hub = __webpack_require__(65); +const { + VISITOR_KEYS, + removeProperties, + traverseFast +} = _t; +function traverse(parent, opts = {}, scope, state, parentPath) { + if (!parent) return; + if (!opts.noScope && !scope) { + if (parent.type !== "Program" && parent.type !== "File") { + throw new Error("You must pass a scope and parentPath unless traversing a Program/File. " + `Instead of that you tried to traverse a ${parent.type} node without ` + "passing scope and parentPath."); + } + } + if (!VISITOR_KEYS[parent.type]) { + return; + } + visitors.explode(opts); + (0, _traverseNode.traverseNode)(parent, opts, scope, state, parentPath); +} +var _default = traverse; +exports["default"] = _default; +traverse.visitors = visitors; +traverse.verify = visitors.verify; +traverse.explode = visitors.explode; +traverse.cheap = function (node, enter) { + return traverseFast(node, enter); +}; +traverse.node = function (node, opts, scope, state, path, skipKeys) { + (0, _traverseNode.traverseNode)(node, opts, scope, state, path, skipKeys); +}; +traverse.clearNode = function (node, opts) { + removeProperties(node, opts); + cache.path.delete(node); +}; +traverse.removeProperties = function (tree, opts) { + traverseFast(tree, traverse.clearNode, opts); + return tree; +}; +function hasDenylistedType(path, state) { + if (path.node.type === state.type) { + state.has = true; + path.stop(); + } +} +traverse.hasType = function (tree, type, denylistTypes) { + if (denylistTypes != null && denylistTypes.includes(tree.type)) return false; + if (tree.type === type) return true; + const state = { + has: false, + type: type + }; + traverse(tree, { + noScope: true, + denylist: denylistTypes, + enter: hasDenylistedType + }, null, state); + return state.has; +}; +traverse.cache = cache; + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 2459: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.find = find; +exports.findParent = findParent; +exports.getAncestry = getAncestry; +exports.getDeepestCommonAncestorFrom = getDeepestCommonAncestorFrom; +exports.getEarliestCommonAncestorFrom = getEarliestCommonAncestorFrom; +exports.getFunctionParent = getFunctionParent; +exports.getStatementParent = getStatementParent; +exports.inType = inType; +exports.isAncestor = isAncestor; +exports.isDescendant = isDescendant; +var _t = __webpack_require__(2139); +const { + VISITOR_KEYS +} = _t; +function findParent(callback) { + let path = this; + while (path = path.parentPath) { + if (callback(path)) return path; + } + return null; +} +function find(callback) { + let path = this; + do { + if (callback(path)) return path; + } while (path = path.parentPath); + return null; +} +function getFunctionParent() { + return this.findParent(p => p.isFunction()); +} +function getStatementParent() { + let path = this; + do { + if (!path.parentPath || Array.isArray(path.container) && path.isStatement()) { + break; + } else { + path = path.parentPath; + } + } while (path); + if (path && (path.isProgram() || path.isFile())) { + throw new Error("File/Program node, we can't possibly find a statement parent to this"); + } + return path; +} +function getEarliestCommonAncestorFrom(paths) { + return this.getDeepestCommonAncestorFrom(paths, function (deepest, i, ancestries) { + let earliest; + const keys = VISITOR_KEYS[deepest.type]; + for (const ancestry of ancestries) { + const path = ancestry[i + 1]; + if (!earliest) { + earliest = path; + continue; + } + if (path.listKey && earliest.listKey === path.listKey) { + if (path.key < earliest.key) { + earliest = path; + continue; + } + } + const earliestKeyIndex = keys.indexOf(earliest.parentKey); + const currentKeyIndex = keys.indexOf(path.parentKey); + if (earliestKeyIndex > currentKeyIndex) { + earliest = path; + } + } + return earliest; + }); +} +function getDeepestCommonAncestorFrom(paths, filter) { + if (!paths.length) { + return this; + } + if (paths.length === 1) { + return paths[0]; + } + let minDepth = Infinity; + let lastCommonIndex, lastCommon; + const ancestries = paths.map(path => { + const ancestry = []; + do { + ancestry.unshift(path); + } while ((path = path.parentPath) && path !== this); + if (ancestry.length < minDepth) { + minDepth = ancestry.length; + } + return ancestry; + }); + const first = ancestries[0]; + depthLoop: for (let i = 0; i < minDepth; i++) { + const shouldMatch = first[i]; + for (const ancestry of ancestries) { + if (ancestry[i] !== shouldMatch) { + break depthLoop; + } + } + lastCommonIndex = i; + lastCommon = shouldMatch; + } + if (lastCommon) { + if (filter) { + return filter(lastCommon, lastCommonIndex, ancestries); + } else { + return lastCommon; + } + } else { + throw new Error("Couldn't find intersection"); + } +} +function getAncestry() { + let path = this; + const paths = []; + do { + paths.push(path); + } while (path = path.parentPath); + return paths; +} +function isAncestor(maybeDescendant) { + return maybeDescendant.isDescendant(this); +} +function isDescendant(maybeAncestor) { + return !!this.findParent(parent => parent === maybeAncestor); +} +function inType(...candidateTypes) { + let path = this; + while (path) { + for (const type of candidateTypes) { + if (path.node.type === type) return true; + } + path = path.parentPath; + } + return false; +} + +//# sourceMappingURL=ancestry.js.map + + +/***/ }), + +/***/ 3947: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.addComment = addComment; +exports.addComments = addComments; +exports.shareCommentsWithSiblings = shareCommentsWithSiblings; +var _t = __webpack_require__(2139); +const { + addComment: _addComment, + addComments: _addComments +} = _t; +function shareCommentsWithSiblings() { + if (typeof this.key === "string") return; + const node = this.node; + if (!node) return; + const trailing = node.trailingComments; + const leading = node.leadingComments; + if (!trailing && !leading) return; + const prev = this.getSibling(this.key - 1); + const next = this.getSibling(this.key + 1); + const hasPrev = Boolean(prev.node); + const hasNext = Boolean(next.node); + if (hasPrev && !hasNext) { + prev.addComments("trailing", trailing); + } else if (hasNext && !hasPrev) { + next.addComments("leading", leading); + } +} +function addComment(type, content, line) { + _addComment(this.node, type, content, line); +} +function addComments(type, comments) { + _addComments(this.node, type, comments); +} + +//# sourceMappingURL=comments.js.map + + +/***/ }), + +/***/ 6534: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports._call = _call; +exports._getQueueContexts = _getQueueContexts; +exports._resyncKey = _resyncKey; +exports._resyncList = _resyncList; +exports._resyncParent = _resyncParent; +exports._resyncRemoved = _resyncRemoved; +exports.call = call; +exports.isBlacklisted = exports.isDenylisted = isDenylisted; +exports.popContext = popContext; +exports.pushContext = pushContext; +exports.requeue = requeue; +exports.resync = resync; +exports.setContext = setContext; +exports.setKey = setKey; +exports.setScope = setScope; +exports.setup = setup; +exports.skip = skip; +exports.skipKey = skipKey; +exports.stop = stop; +exports.visit = visit; +var _traverseNode = __webpack_require__(645); +var _index = __webpack_require__(2694); +function call(key) { + const opts = this.opts; + this.debug(key); + if (this.node) { + if (this._call(opts[key])) return true; + } + if (this.node) { + return this._call(opts[this.node.type] && opts[this.node.type][key]); + } + return false; +} +function _call(fns) { + if (!fns) return false; + for (const fn of fns) { + if (!fn) continue; + const node = this.node; + if (!node) return true; + const ret = fn.call(this.state, this, this.state); + if (ret && typeof ret === "object" && typeof ret.then === "function") { + throw new Error(`You appear to be using a plugin with an async traversal visitor, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, you may need to upgrade ` + `your @babel/core version.`); + } + if (ret) { + throw new Error(`Unexpected return value from visitor method ${fn}`); + } + if (this.node !== node) return true; + if (this._traverseFlags > 0) return true; + } + return false; +} +function isDenylisted() { + var _this$opts$denylist; + const denylist = (_this$opts$denylist = this.opts.denylist) != null ? _this$opts$denylist : this.opts.blacklist; + return denylist && denylist.indexOf(this.node.type) > -1; +} +function restoreContext(path, context) { + if (path.context !== context) { + path.context = context; + path.state = context.state; + path.opts = context.opts; + } +} +function visit() { + if (!this.node) { + return false; + } + if (this.isDenylisted()) { + return false; + } + if (this.opts.shouldSkip && this.opts.shouldSkip(this)) { + return false; + } + const currentContext = this.context; + if (this.shouldSkip || this.call("enter")) { + this.debug("Skip..."); + return this.shouldStop; + } + restoreContext(this, currentContext); + this.debug("Recursing into..."); + this.shouldStop = (0, _traverseNode.traverseNode)(this.node, this.opts, this.scope, this.state, this, this.skipKeys); + restoreContext(this, currentContext); + this.call("exit"); + return this.shouldStop; +} +function skip() { + this.shouldSkip = true; +} +function skipKey(key) { + if (this.skipKeys == null) { + this.skipKeys = {}; + } + this.skipKeys[key] = true; +} +function stop() { + this._traverseFlags |= _index.SHOULD_SKIP | _index.SHOULD_STOP; +} +function setScope() { + if (this.opts && this.opts.noScope) return; + let path = this.parentPath; + if ((this.key === "key" || this.listKey === "decorators") && path.isMethod() || this.key === "discriminant" && path.isSwitchStatement()) { + path = path.parentPath; + } + let target; + while (path && !target) { + if (path.opts && path.opts.noScope) return; + target = path.scope; + path = path.parentPath; + } + this.scope = this.getScope(target); + if (this.scope) this.scope.init(); +} +function setContext(context) { + if (this.skipKeys != null) { + this.skipKeys = {}; + } + this._traverseFlags = 0; + if (context) { + this.context = context; + this.state = context.state; + this.opts = context.opts; + } + this.setScope(); + return this; +} +function resync() { + if (this.removed) return; + this._resyncParent(); + this._resyncList(); + this._resyncKey(); +} +function _resyncParent() { + if (this.parentPath) { + this.parent = this.parentPath.node; + } +} +function _resyncKey() { + if (!this.container) return; + if (this.node === this.container[this.key]) { + return; + } + if (Array.isArray(this.container)) { + for (let i = 0; i < this.container.length; i++) { + if (this.container[i] === this.node) { + return this.setKey(i); + } + } + } else { + for (const key of Object.keys(this.container)) { + if (this.container[key] === this.node) { + return this.setKey(key); + } + } + } + this.key = null; +} +function _resyncList() { + if (!this.parent || !this.inList) return; + const newContainer = this.parent[this.listKey]; + if (this.container === newContainer) return; + this.container = newContainer || null; +} +function _resyncRemoved() { + if (this.key == null || !this.container || this.container[this.key] !== this.node) { + this._markRemoved(); + } +} +function popContext() { + this.contexts.pop(); + if (this.contexts.length > 0) { + this.setContext(this.contexts[this.contexts.length - 1]); + } else { + this.setContext(undefined); + } +} +function pushContext(context) { + this.contexts.push(context); + this.setContext(context); +} +function setup(parentPath, container, listKey, key) { + this.listKey = listKey; + this.container = container; + this.parentPath = parentPath || this.parentPath; + this.setKey(key); +} +function setKey(key) { + var _this$node; + this.key = key; + this.node = this.container[this.key]; + this.type = (_this$node = this.node) == null ? void 0 : _this$node.type; +} +function requeue(pathToQueue = this) { + if (pathToQueue.removed) return; + ; + const contexts = this.contexts; + for (const context of contexts) { + context.maybeQueue(pathToQueue); + } +} +function _getQueueContexts() { + let path = this; + let contexts = this.contexts; + while (!contexts.length) { + path = path.parentPath; + if (!path) break; + contexts = path.contexts; + } + return contexts; +} + +//# sourceMappingURL=context.js.map + + +/***/ }), + +/***/ 5856: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.arrowFunctionToExpression = arrowFunctionToExpression; +exports.arrowFunctionToShadowed = arrowFunctionToShadowed; +exports.ensureBlock = ensureBlock; +exports.toComputedKey = toComputedKey; +exports.unwrapFunctionEnvironment = unwrapFunctionEnvironment; +var _t = __webpack_require__(2139); +var _helperEnvironmentVisitor = __webpack_require__(6371); +var _helperFunctionName = __webpack_require__(7988); +var _visitors = __webpack_require__(8275); +const { + arrowFunctionExpression, + assignmentExpression, + binaryExpression, + blockStatement, + callExpression, + conditionalExpression, + expressionStatement, + identifier, + isIdentifier, + jsxIdentifier, + logicalExpression, + LOGICAL_OPERATORS, + memberExpression, + metaProperty, + numericLiteral, + objectExpression, + restElement, + returnStatement, + sequenceExpression, + spreadElement, + stringLiteral, + super: _super, + thisExpression, + toExpression, + unaryExpression +} = _t; +function toComputedKey() { + let key; + if (this.isMemberExpression()) { + key = this.node.property; + } else if (this.isProperty() || this.isMethod()) { + key = this.node.key; + } else { + throw new ReferenceError("todo"); + } + if (!this.node.computed) { + if (isIdentifier(key)) key = stringLiteral(key.name); + } + return key; +} +function ensureBlock() { + const body = this.get("body"); + const bodyNode = body.node; + if (Array.isArray(body)) { + throw new Error("Can't convert array path to a block statement"); + } + if (!bodyNode) { + throw new Error("Can't convert node without a body"); + } + if (body.isBlockStatement()) { + return bodyNode; + } + const statements = []; + let stringPath = "body"; + let key; + let listKey; + if (body.isStatement()) { + listKey = "body"; + key = 0; + statements.push(body.node); + } else { + stringPath += ".body.0"; + if (this.isFunction()) { + key = "argument"; + statements.push(returnStatement(body.node)); + } else { + key = "expression"; + statements.push(expressionStatement(body.node)); + } + } + this.node.body = blockStatement(statements); + const parentPath = this.get(stringPath); + body.setup(parentPath, listKey ? parentPath.node[listKey] : parentPath.node, listKey, key); + return this.node; +} +function arrowFunctionToShadowed() { + if (!this.isArrowFunctionExpression()) return; + this.arrowFunctionToExpression(); +} +function unwrapFunctionEnvironment() { + if (!this.isArrowFunctionExpression() && !this.isFunctionExpression() && !this.isFunctionDeclaration()) { + throw this.buildCodeFrameError("Can only unwrap the environment of a function."); + } + hoistFunctionEnvironment(this); +} +function setType(path, type) { + path.node.type = type; +} +function arrowFunctionToExpression({ + allowInsertArrow = true, + allowInsertArrowWithRest = allowInsertArrow, + specCompliant = false, + noNewArrows = !specCompliant +} = {}) { + if (!this.isArrowFunctionExpression()) { + throw this.buildCodeFrameError("Cannot convert non-arrow function to a function expression."); + } + const { + thisBinding, + fnPath: fn + } = hoistFunctionEnvironment(this, noNewArrows, allowInsertArrow, allowInsertArrowWithRest); + fn.ensureBlock(); + setType(fn, "FunctionExpression"); + if (!noNewArrows) { + const checkBinding = thisBinding ? null : fn.scope.generateUidIdentifier("arrowCheckId"); + if (checkBinding) { + fn.parentPath.scope.push({ + id: checkBinding, + init: objectExpression([]) + }); + } + fn.get("body").unshiftContainer("body", expressionStatement(callExpression(this.hub.addHelper("newArrowCheck"), [thisExpression(), checkBinding ? identifier(checkBinding.name) : identifier(thisBinding)]))); + fn.replaceWith(callExpression(memberExpression((0, _helperFunctionName.default)(this, true) || fn.node, identifier("bind")), [checkBinding ? identifier(checkBinding.name) : thisExpression()])); + return fn.get("callee.object"); + } + return fn; +} +const getSuperCallsVisitor = (0, _visitors.merge)([{ + CallExpression(child, { + allSuperCalls + }) { + if (!child.get("callee").isSuper()) return; + allSuperCalls.push(child); + } +}, _helperEnvironmentVisitor.default]); +function hoistFunctionEnvironment(fnPath, noNewArrows = true, allowInsertArrow = true, allowInsertArrowWithRest = true) { + let arrowParent; + let thisEnvFn = fnPath.findParent(p => { + if (p.isArrowFunctionExpression()) { + var _arrowParent; + (_arrowParent = arrowParent) != null ? _arrowParent : arrowParent = p; + return false; + } + return p.isFunction() || p.isProgram() || p.isClassProperty({ + static: false + }) || p.isClassPrivateProperty({ + static: false + }); + }); + const inConstructor = thisEnvFn.isClassMethod({ + kind: "constructor" + }); + if (thisEnvFn.isClassProperty() || thisEnvFn.isClassPrivateProperty()) { + if (arrowParent) { + thisEnvFn = arrowParent; + } else if (allowInsertArrow) { + fnPath.replaceWith(callExpression(arrowFunctionExpression([], toExpression(fnPath.node)), [])); + thisEnvFn = fnPath.get("callee"); + fnPath = thisEnvFn.get("body"); + } else { + throw fnPath.buildCodeFrameError("Unable to transform arrow inside class property"); + } + } + const { + thisPaths, + argumentsPaths, + newTargetPaths, + superProps, + superCalls + } = getScopeInformation(fnPath); + if (inConstructor && superCalls.length > 0) { + if (!allowInsertArrow) { + throw superCalls[0].buildCodeFrameError("When using '@babel/plugin-transform-arrow-functions', " + "it's not possible to compile `super()` in an arrow function without compiling classes.\n" + "Please add '@babel/plugin-transform-classes' to your Babel configuration."); + } + if (!allowInsertArrowWithRest) { + throw superCalls[0].buildCodeFrameError("When using '@babel/plugin-transform-parameters', " + "it's not possible to compile `super()` in an arrow function with default or rest parameters without compiling classes.\n" + "Please add '@babel/plugin-transform-classes' to your Babel configuration."); + } + const allSuperCalls = []; + thisEnvFn.traverse(getSuperCallsVisitor, { + allSuperCalls + }); + const superBinding = getSuperBinding(thisEnvFn); + allSuperCalls.forEach(superCall => { + const callee = identifier(superBinding); + callee.loc = superCall.node.callee.loc; + superCall.get("callee").replaceWith(callee); + }); + } + if (argumentsPaths.length > 0) { + const argumentsBinding = getBinding(thisEnvFn, "arguments", () => { + const args = () => identifier("arguments"); + if (thisEnvFn.scope.path.isProgram()) { + return conditionalExpression(binaryExpression("===", unaryExpression("typeof", args()), stringLiteral("undefined")), thisEnvFn.scope.buildUndefinedNode(), args()); + } else { + return args(); + } + }); + argumentsPaths.forEach(argumentsChild => { + const argsRef = identifier(argumentsBinding); + argsRef.loc = argumentsChild.node.loc; + argumentsChild.replaceWith(argsRef); + }); + } + if (newTargetPaths.length > 0) { + const newTargetBinding = getBinding(thisEnvFn, "newtarget", () => metaProperty(identifier("new"), identifier("target"))); + newTargetPaths.forEach(targetChild => { + const targetRef = identifier(newTargetBinding); + targetRef.loc = targetChild.node.loc; + targetChild.replaceWith(targetRef); + }); + } + if (superProps.length > 0) { + if (!allowInsertArrow) { + throw superProps[0].buildCodeFrameError("When using '@babel/plugin-transform-arrow-functions', " + "it's not possible to compile `super.prop` in an arrow function without compiling classes.\n" + "Please add '@babel/plugin-transform-classes' to your Babel configuration."); + } + const flatSuperProps = superProps.reduce((acc, superProp) => acc.concat(standardizeSuperProperty(superProp)), []); + flatSuperProps.forEach(superProp => { + const key = superProp.node.computed ? "" : superProp.get("property").node.name; + const superParentPath = superProp.parentPath; + const isAssignment = superParentPath.isAssignmentExpression({ + left: superProp.node + }); + const isCall = superParentPath.isCallExpression({ + callee: superProp.node + }); + const isTaggedTemplate = superParentPath.isTaggedTemplateExpression({ + tag: superProp.node + }); + const superBinding = getSuperPropBinding(thisEnvFn, isAssignment, key); + const args = []; + if (superProp.node.computed) { + args.push(superProp.get("property").node); + } + if (isAssignment) { + const value = superParentPath.node.right; + args.push(value); + } + const call = callExpression(identifier(superBinding), args); + if (isCall) { + superParentPath.unshiftContainer("arguments", thisExpression()); + superProp.replaceWith(memberExpression(call, identifier("call"))); + thisPaths.push(superParentPath.get("arguments.0")); + } else if (isAssignment) { + superParentPath.replaceWith(call); + } else if (isTaggedTemplate) { + superProp.replaceWith(callExpression(memberExpression(call, identifier("bind"), false), [thisExpression()])); + thisPaths.push(superProp.get("arguments.0")); + } else { + superProp.replaceWith(call); + } + }); + } + let thisBinding; + if (thisPaths.length > 0 || !noNewArrows) { + thisBinding = getThisBinding(thisEnvFn, inConstructor); + if (noNewArrows || inConstructor && hasSuperClass(thisEnvFn)) { + thisPaths.forEach(thisChild => { + const thisRef = thisChild.isJSX() ? jsxIdentifier(thisBinding) : identifier(thisBinding); + thisRef.loc = thisChild.node.loc; + thisChild.replaceWith(thisRef); + }); + if (!noNewArrows) thisBinding = null; + } + } + return { + thisBinding, + fnPath + }; +} +function isLogicalOp(op) { + return LOGICAL_OPERATORS.includes(op); +} +function standardizeSuperProperty(superProp) { + if (superProp.parentPath.isAssignmentExpression() && superProp.parentPath.node.operator !== "=") { + const assignmentPath = superProp.parentPath; + const op = assignmentPath.node.operator.slice(0, -1); + const value = assignmentPath.node.right; + const isLogicalAssignment = isLogicalOp(op); + if (superProp.node.computed) { + const tmp = superProp.scope.generateDeclaredUidIdentifier("tmp"); + const object = superProp.node.object; + const property = superProp.node.property; + assignmentPath.get("left").replaceWith(memberExpression(object, assignmentExpression("=", tmp, property), true)); + assignmentPath.get("right").replaceWith(rightExpression(isLogicalAssignment ? "=" : op, memberExpression(object, identifier(tmp.name), true), value)); + } else { + const object = superProp.node.object; + const property = superProp.node.property; + assignmentPath.get("left").replaceWith(memberExpression(object, property)); + assignmentPath.get("right").replaceWith(rightExpression(isLogicalAssignment ? "=" : op, memberExpression(object, identifier(property.name)), value)); + } + if (isLogicalAssignment) { + assignmentPath.replaceWith(logicalExpression(op, assignmentPath.node.left, assignmentPath.node.right)); + } else { + assignmentPath.node.operator = "="; + } + return [assignmentPath.get("left"), assignmentPath.get("right").get("left")]; + } else if (superProp.parentPath.isUpdateExpression()) { + const updateExpr = superProp.parentPath; + const tmp = superProp.scope.generateDeclaredUidIdentifier("tmp"); + const computedKey = superProp.node.computed ? superProp.scope.generateDeclaredUidIdentifier("prop") : null; + const parts = [assignmentExpression("=", tmp, memberExpression(superProp.node.object, computedKey ? assignmentExpression("=", computedKey, superProp.node.property) : superProp.node.property, superProp.node.computed)), assignmentExpression("=", memberExpression(superProp.node.object, computedKey ? identifier(computedKey.name) : superProp.node.property, superProp.node.computed), binaryExpression(superProp.parentPath.node.operator[0], identifier(tmp.name), numericLiteral(1)))]; + if (!superProp.parentPath.node.prefix) { + parts.push(identifier(tmp.name)); + } + updateExpr.replaceWith(sequenceExpression(parts)); + const left = updateExpr.get("expressions.0.right"); + const right = updateExpr.get("expressions.1.left"); + return [left, right]; + } + return [superProp]; + function rightExpression(op, left, right) { + if (op === "=") { + return assignmentExpression("=", left, right); + } else { + return binaryExpression(op, left, right); + } + } +} +function hasSuperClass(thisEnvFn) { + return thisEnvFn.isClassMethod() && !!thisEnvFn.parentPath.parentPath.node.superClass; +} +const assignSuperThisVisitor = (0, _visitors.merge)([{ + CallExpression(child, { + supers, + thisBinding + }) { + if (!child.get("callee").isSuper()) return; + if (supers.has(child.node)) return; + supers.add(child.node); + child.replaceWithMultiple([child.node, assignmentExpression("=", identifier(thisBinding), identifier("this"))]); + } +}, _helperEnvironmentVisitor.default]); +function getThisBinding(thisEnvFn, inConstructor) { + return getBinding(thisEnvFn, "this", thisBinding => { + if (!inConstructor || !hasSuperClass(thisEnvFn)) return thisExpression(); + thisEnvFn.traverse(assignSuperThisVisitor, { + supers: new WeakSet(), + thisBinding + }); + }); +} +function getSuperBinding(thisEnvFn) { + return getBinding(thisEnvFn, "supercall", () => { + const argsBinding = thisEnvFn.scope.generateUidIdentifier("args"); + return arrowFunctionExpression([restElement(argsBinding)], callExpression(_super(), [spreadElement(identifier(argsBinding.name))])); + }); +} +function getSuperPropBinding(thisEnvFn, isAssignment, propName) { + const op = isAssignment ? "set" : "get"; + return getBinding(thisEnvFn, `superprop_${op}:${propName || ""}`, () => { + const argsList = []; + let fnBody; + if (propName) { + fnBody = memberExpression(_super(), identifier(propName)); + } else { + const method = thisEnvFn.scope.generateUidIdentifier("prop"); + argsList.unshift(method); + fnBody = memberExpression(_super(), identifier(method.name), true); + } + if (isAssignment) { + const valueIdent = thisEnvFn.scope.generateUidIdentifier("value"); + argsList.push(valueIdent); + fnBody = assignmentExpression("=", fnBody, identifier(valueIdent.name)); + } + return arrowFunctionExpression(argsList, fnBody); + }); +} +function getBinding(thisEnvFn, key, init) { + const cacheKey = "binding:" + key; + let data = thisEnvFn.getData(cacheKey); + if (!data) { + const id = thisEnvFn.scope.generateUidIdentifier(key); + data = id.name; + thisEnvFn.setData(cacheKey, data); + thisEnvFn.scope.push({ + id: id, + init: init(data) + }); + } + return data; +} +const getScopeInformationVisitor = (0, _visitors.merge)([{ + ThisExpression(child, { + thisPaths + }) { + thisPaths.push(child); + }, + JSXIdentifier(child, { + thisPaths + }) { + if (child.node.name !== "this") return; + if (!child.parentPath.isJSXMemberExpression({ + object: child.node + }) && !child.parentPath.isJSXOpeningElement({ + name: child.node + })) { + return; + } + thisPaths.push(child); + }, + CallExpression(child, { + superCalls + }) { + if (child.get("callee").isSuper()) superCalls.push(child); + }, + MemberExpression(child, { + superProps + }) { + if (child.get("object").isSuper()) superProps.push(child); + }, + Identifier(child, { + argumentsPaths + }) { + if (!child.isReferencedIdentifier({ + name: "arguments" + })) return; + let curr = child.scope; + do { + if (curr.hasOwnBinding("arguments")) { + curr.rename("arguments"); + return; + } + if (curr.path.isFunction() && !curr.path.isArrowFunctionExpression()) { + break; + } + } while (curr = curr.parent); + argumentsPaths.push(child); + }, + MetaProperty(child, { + newTargetPaths + }) { + if (!child.get("meta").isIdentifier({ + name: "new" + })) return; + if (!child.get("property").isIdentifier({ + name: "target" + })) return; + newTargetPaths.push(child); + } +}, _helperEnvironmentVisitor.default]); +function getScopeInformation(fnPath) { + const thisPaths = []; + const argumentsPaths = []; + const newTargetPaths = []; + const superProps = []; + const superCalls = []; + fnPath.traverse(getScopeInformationVisitor, { + thisPaths, + argumentsPaths, + newTargetPaths, + superProps, + superCalls + }); + return { + thisPaths, + argumentsPaths, + newTargetPaths, + superProps, + superCalls + }; +} + +//# sourceMappingURL=conversion.js.map + + +/***/ }), + +/***/ 3745: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.evaluate = evaluate; +exports.evaluateTruthy = evaluateTruthy; +const VALID_CALLEES = ["String", "Number", "Math"]; +const INVALID_METHODS = ["random"]; +function isValidCallee(val) { + return VALID_CALLEES.includes(val); +} +function isInvalidMethod(val) { + return INVALID_METHODS.includes(val); +} +function evaluateTruthy() { + const res = this.evaluate(); + if (res.confident) return !!res.value; +} +function deopt(path, state) { + if (!state.confident) return; + state.deoptPath = path; + state.confident = false; +} +function evaluateCached(path, state) { + const { + node + } = path; + const { + seen + } = state; + if (seen.has(node)) { + const existing = seen.get(node); + if (existing.resolved) { + return existing.value; + } else { + deopt(path, state); + return; + } + } else { + const item = { + resolved: false + }; + seen.set(node, item); + const val = _evaluate(path, state); + if (state.confident) { + item.resolved = true; + item.value = val; + } + return val; + } +} +function _evaluate(path, state) { + if (!state.confident) return; + if (path.isSequenceExpression()) { + const exprs = path.get("expressions"); + return evaluateCached(exprs[exprs.length - 1], state); + } + if (path.isStringLiteral() || path.isNumericLiteral() || path.isBooleanLiteral()) { + return path.node.value; + } + if (path.isNullLiteral()) { + return null; + } + if (path.isTemplateLiteral()) { + return evaluateQuasis(path, path.node.quasis, state); + } + if (path.isTaggedTemplateExpression() && path.get("tag").isMemberExpression()) { + const object = path.get("tag.object"); + const { + node: { + name + } + } = object; + const property = path.get("tag.property"); + if (object.isIdentifier() && name === "String" && !path.scope.getBinding(name) && property.isIdentifier() && property.node.name === "raw") { + return evaluateQuasis(path, path.node.quasi.quasis, state, true); + } + } + if (path.isConditionalExpression()) { + const testResult = evaluateCached(path.get("test"), state); + if (!state.confident) return; + if (testResult) { + return evaluateCached(path.get("consequent"), state); + } else { + return evaluateCached(path.get("alternate"), state); + } + } + if (path.isExpressionWrapper()) { + return evaluateCached(path.get("expression"), state); + } + if (path.isMemberExpression() && !path.parentPath.isCallExpression({ + callee: path.node + })) { + const property = path.get("property"); + const object = path.get("object"); + if (object.isLiteral()) { + const value = object.node.value; + const type = typeof value; + let key = null; + if (path.node.computed) { + key = evaluateCached(property, state); + if (!state.confident) return; + } else if (property.isIdentifier()) { + key = property.node.name; + } + if ((type === "number" || type === "string") && key != null && (typeof key === "number" || typeof key === "string")) { + return value[key]; + } + } + } + if (path.isReferencedIdentifier()) { + const binding = path.scope.getBinding(path.node.name); + if (binding && binding.constantViolations.length > 0) { + return deopt(binding.path, state); + } + if (binding && path.node.start < binding.path.node.end) { + return deopt(binding.path, state); + } + if (binding != null && binding.hasValue) { + return binding.value; + } else { + if (path.node.name === "undefined") { + return binding ? deopt(binding.path, state) : undefined; + } else if (path.node.name === "Infinity") { + return binding ? deopt(binding.path, state) : Infinity; + } else if (path.node.name === "NaN") { + return binding ? deopt(binding.path, state) : NaN; + } + const resolved = path.resolve(); + if (resolved === path) { + return deopt(path, state); + } else { + return evaluateCached(resolved, state); + } + } + } + if (path.isUnaryExpression({ + prefix: true + })) { + if (path.node.operator === "void") { + return undefined; + } + const argument = path.get("argument"); + if (path.node.operator === "typeof" && (argument.isFunction() || argument.isClass())) { + return "function"; + } + const arg = evaluateCached(argument, state); + if (!state.confident) return; + switch (path.node.operator) { + case "!": + return !arg; + case "+": + return +arg; + case "-": + return -arg; + case "~": + return ~arg; + case "typeof": + return typeof arg; + } + } + if (path.isArrayExpression()) { + const arr = []; + const elems = path.get("elements"); + for (const elem of elems) { + const elemValue = elem.evaluate(); + if (elemValue.confident) { + arr.push(elemValue.value); + } else { + return deopt(elemValue.deopt, state); + } + } + return arr; + } + if (path.isObjectExpression()) { + const obj = {}; + const props = path.get("properties"); + for (const prop of props) { + if (prop.isObjectMethod() || prop.isSpreadElement()) { + return deopt(prop, state); + } + const keyPath = prop.get("key"); + let key; + if (prop.node.computed) { + key = keyPath.evaluate(); + if (!key.confident) { + return deopt(key.deopt, state); + } + key = key.value; + } else if (keyPath.isIdentifier()) { + key = keyPath.node.name; + } else { + key = keyPath.node.value; + } + const valuePath = prop.get("value"); + let value = valuePath.evaluate(); + if (!value.confident) { + return deopt(value.deopt, state); + } + value = value.value; + obj[key] = value; + } + return obj; + } + if (path.isLogicalExpression()) { + const wasConfident = state.confident; + const left = evaluateCached(path.get("left"), state); + const leftConfident = state.confident; + state.confident = wasConfident; + const right = evaluateCached(path.get("right"), state); + const rightConfident = state.confident; + switch (path.node.operator) { + case "||": + state.confident = leftConfident && (!!left || rightConfident); + if (!state.confident) return; + return left || right; + case "&&": + state.confident = leftConfident && (!left || rightConfident); + if (!state.confident) return; + return left && right; + case "??": + state.confident = leftConfident && (left != null || rightConfident); + if (!state.confident) return; + return left != null ? left : right; + } + } + if (path.isBinaryExpression()) { + const left = evaluateCached(path.get("left"), state); + if (!state.confident) return; + const right = evaluateCached(path.get("right"), state); + if (!state.confident) return; + switch (path.node.operator) { + case "-": + return left - right; + case "+": + return left + right; + case "/": + return left / right; + case "*": + return left * right; + case "%": + return left % right; + case "**": + return Math.pow(left, right); + case "<": + return left < right; + case ">": + return left > right; + case "<=": + return left <= right; + case ">=": + return left >= right; + case "==": + return left == right; + case "!=": + return left != right; + case "===": + return left === right; + case "!==": + return left !== right; + case "|": + return left | right; + case "&": + return left & right; + case "^": + return left ^ right; + case "<<": + return left << right; + case ">>": + return left >> right; + case ">>>": + return left >>> right; + } + } + if (path.isCallExpression()) { + const callee = path.get("callee"); + let context; + let func; + if (callee.isIdentifier() && !path.scope.getBinding(callee.node.name) && isValidCallee(callee.node.name)) { + func = global[callee.node.name]; + } + if (callee.isMemberExpression()) { + const object = callee.get("object"); + const property = callee.get("property"); + if (object.isIdentifier() && property.isIdentifier() && isValidCallee(object.node.name) && !isInvalidMethod(property.node.name)) { + context = global[object.node.name]; + func = context[property.node.name]; + } + if (object.isLiteral() && property.isIdentifier()) { + const type = typeof object.node.value; + if (type === "string" || type === "number") { + context = object.node.value; + func = context[property.node.name]; + } + } + } + if (func) { + const args = path.get("arguments").map(arg => evaluateCached(arg, state)); + if (!state.confident) return; + return func.apply(context, args); + } + } + deopt(path, state); +} +function evaluateQuasis(path, quasis, state, raw = false) { + let str = ""; + let i = 0; + const exprs = path.isTemplateLiteral() ? path.get("expressions") : path.get("quasi.expressions"); + for (const elem of quasis) { + if (!state.confident) break; + str += raw ? elem.value.raw : elem.value.cooked; + const expr = exprs[i++]; + if (expr) str += String(evaluateCached(expr, state)); + } + if (!state.confident) return; + return str; +} +function evaluate() { + const state = { + confident: true, + deoptPath: null, + seen: new Map() + }; + let value = evaluateCached(this, state); + if (!state.confident) value = undefined; + return { + confident: state.confident, + deopt: state.deoptPath, + value: value + }; +} + +//# sourceMappingURL=evaluation.js.map + + +/***/ }), + +/***/ 6486: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports._getKey = _getKey; +exports._getPattern = _getPattern; +exports.get = get; +exports.getAllNextSiblings = getAllNextSiblings; +exports.getAllPrevSiblings = getAllPrevSiblings; +exports.getBindingIdentifierPaths = getBindingIdentifierPaths; +exports.getBindingIdentifiers = getBindingIdentifiers; +exports.getCompletionRecords = getCompletionRecords; +exports.getNextSibling = getNextSibling; +exports.getOpposite = getOpposite; +exports.getOuterBindingIdentifierPaths = getOuterBindingIdentifierPaths; +exports.getOuterBindingIdentifiers = getOuterBindingIdentifiers; +exports.getPrevSibling = getPrevSibling; +exports.getSibling = getSibling; +var _index = __webpack_require__(2694); +var _t = __webpack_require__(2139); +const { + getBindingIdentifiers: _getBindingIdentifiers, + getOuterBindingIdentifiers: _getOuterBindingIdentifiers, + isDeclaration, + numericLiteral, + unaryExpression +} = _t; +const NORMAL_COMPLETION = 0; +const BREAK_COMPLETION = 1; +function NormalCompletion(path) { + return { + type: NORMAL_COMPLETION, + path + }; +} +function BreakCompletion(path) { + return { + type: BREAK_COMPLETION, + path + }; +} +function getOpposite() { + if (this.key === "left") { + return this.getSibling("right"); + } else if (this.key === "right") { + return this.getSibling("left"); + } + return null; +} +function addCompletionRecords(path, records, context) { + if (path) { + records.push(..._getCompletionRecords(path, context)); + } + return records; +} +function completionRecordForSwitch(cases, records, context) { + let lastNormalCompletions = []; + for (let i = 0; i < cases.length; i++) { + const casePath = cases[i]; + const caseCompletions = _getCompletionRecords(casePath, context); + const normalCompletions = []; + const breakCompletions = []; + for (const c of caseCompletions) { + if (c.type === NORMAL_COMPLETION) { + normalCompletions.push(c); + } + if (c.type === BREAK_COMPLETION) { + breakCompletions.push(c); + } + } + if (normalCompletions.length) { + lastNormalCompletions = normalCompletions; + } + records.push(...breakCompletions); + } + records.push(...lastNormalCompletions); + return records; +} +function normalCompletionToBreak(completions) { + completions.forEach(c => { + c.type = BREAK_COMPLETION; + }); +} +function replaceBreakStatementInBreakCompletion(completions, reachable) { + completions.forEach(c => { + if (c.path.isBreakStatement({ + label: null + })) { + if (reachable) { + c.path.replaceWith(unaryExpression("void", numericLiteral(0))); + } else { + c.path.remove(); + } + } + }); +} +function getStatementListCompletion(paths, context) { + const completions = []; + if (context.canHaveBreak) { + let lastNormalCompletions = []; + for (let i = 0; i < paths.length; i++) { + const path = paths[i]; + const newContext = Object.assign({}, context, { + inCaseClause: false + }); + if (path.isBlockStatement() && (context.inCaseClause || context.shouldPopulateBreak)) { + newContext.shouldPopulateBreak = true; + } else { + newContext.shouldPopulateBreak = false; + } + const statementCompletions = _getCompletionRecords(path, newContext); + if (statementCompletions.length > 0 && statementCompletions.every(c => c.type === BREAK_COMPLETION)) { + if (lastNormalCompletions.length > 0 && statementCompletions.every(c => c.path.isBreakStatement({ + label: null + }))) { + normalCompletionToBreak(lastNormalCompletions); + completions.push(...lastNormalCompletions); + if (lastNormalCompletions.some(c => c.path.isDeclaration())) { + completions.push(...statementCompletions); + replaceBreakStatementInBreakCompletion(statementCompletions, true); + } + replaceBreakStatementInBreakCompletion(statementCompletions, false); + } else { + completions.push(...statementCompletions); + if (!context.shouldPopulateBreak) { + replaceBreakStatementInBreakCompletion(statementCompletions, true); + } + } + break; + } + if (i === paths.length - 1) { + completions.push(...statementCompletions); + } else { + lastNormalCompletions = []; + for (let i = 0; i < statementCompletions.length; i++) { + const c = statementCompletions[i]; + if (c.type === BREAK_COMPLETION) { + completions.push(c); + } + if (c.type === NORMAL_COMPLETION) { + lastNormalCompletions.push(c); + } + } + } + } + } else if (paths.length) { + for (let i = paths.length - 1; i >= 0; i--) { + const pathCompletions = _getCompletionRecords(paths[i], context); + if (pathCompletions.length > 1 || pathCompletions.length === 1 && !pathCompletions[0].path.isVariableDeclaration()) { + completions.push(...pathCompletions); + break; + } + } + } + return completions; +} +function _getCompletionRecords(path, context) { + let records = []; + if (path.isIfStatement()) { + records = addCompletionRecords(path.get("consequent"), records, context); + records = addCompletionRecords(path.get("alternate"), records, context); + } else if (path.isDoExpression() || path.isFor() || path.isWhile() || path.isLabeledStatement()) { + return addCompletionRecords(path.get("body"), records, context); + } else if (path.isProgram() || path.isBlockStatement()) { + return getStatementListCompletion(path.get("body"), context); + } else if (path.isFunction()) { + return _getCompletionRecords(path.get("body"), context); + } else if (path.isTryStatement()) { + records = addCompletionRecords(path.get("block"), records, context); + records = addCompletionRecords(path.get("handler"), records, context); + } else if (path.isCatchClause()) { + return addCompletionRecords(path.get("body"), records, context); + } else if (path.isSwitchStatement()) { + return completionRecordForSwitch(path.get("cases"), records, context); + } else if (path.isSwitchCase()) { + return getStatementListCompletion(path.get("consequent"), { + canHaveBreak: true, + shouldPopulateBreak: false, + inCaseClause: true + }); + } else if (path.isBreakStatement()) { + records.push(BreakCompletion(path)); + } else { + records.push(NormalCompletion(path)); + } + return records; +} +function getCompletionRecords() { + const records = _getCompletionRecords(this, { + canHaveBreak: false, + shouldPopulateBreak: false, + inCaseClause: false + }); + return records.map(r => r.path); +} +function getSibling(key) { + return _index.default.get({ + parentPath: this.parentPath, + parent: this.parent, + container: this.container, + listKey: this.listKey, + key: key + }).setContext(this.context); +} +function getPrevSibling() { + return this.getSibling(this.key - 1); +} +function getNextSibling() { + return this.getSibling(this.key + 1); +} +function getAllNextSiblings() { + let _key = this.key; + let sibling = this.getSibling(++_key); + const siblings = []; + while (sibling.node) { + siblings.push(sibling); + sibling = this.getSibling(++_key); + } + return siblings; +} +function getAllPrevSiblings() { + let _key = this.key; + let sibling = this.getSibling(--_key); + const siblings = []; + while (sibling.node) { + siblings.push(sibling); + sibling = this.getSibling(--_key); + } + return siblings; +} +function get(key, context = true) { + if (context === true) context = this.context; + const parts = key.split("."); + if (parts.length === 1) { + return this._getKey(key, context); + } else { + return this._getPattern(parts, context); + } +} +function _getKey(key, context) { + const node = this.node; + const container = node[key]; + if (Array.isArray(container)) { + return container.map((_, i) => { + return _index.default.get({ + listKey: key, + parentPath: this, + parent: node, + container: container, + key: i + }).setContext(context); + }); + } else { + return _index.default.get({ + parentPath: this, + parent: node, + container: node, + key: key + }).setContext(context); + } +} +function _getPattern(parts, context) { + let path = this; + for (const part of parts) { + if (part === ".") { + path = path.parentPath; + } else { + if (Array.isArray(path)) { + path = path[part]; + } else { + path = path.get(part, context); + } + } + } + return path; +} +function getBindingIdentifiers(duplicates) { + return _getBindingIdentifiers(this.node, duplicates); +} +function getOuterBindingIdentifiers(duplicates) { + return _getOuterBindingIdentifiers(this.node, duplicates); +} +function getBindingIdentifierPaths(duplicates = false, outerOnly = false) { + const path = this; + const search = [path]; + const ids = Object.create(null); + while (search.length) { + const id = search.shift(); + if (!id) continue; + if (!id.node) continue; + const keys = _getBindingIdentifiers.keys[id.node.type]; + if (id.isIdentifier()) { + if (duplicates) { + const _ids = ids[id.node.name] = ids[id.node.name] || []; + _ids.push(id); + } else { + ids[id.node.name] = id; + } + continue; + } + if (id.isExportDeclaration()) { + const declaration = id.get("declaration"); + if (isDeclaration(declaration)) { + search.push(declaration); + } + continue; + } + if (outerOnly) { + if (id.isFunctionDeclaration()) { + search.push(id.get("id")); + continue; + } + if (id.isFunctionExpression()) { + continue; + } + } + if (keys) { + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + const child = id.get(key); + if (Array.isArray(child)) { + search.push(...child); + } else if (child.node) { + search.push(child); + } + } + } + } + return ids; +} +function getOuterBindingIdentifierPaths(duplicates = false) { + return this.getBindingIdentifierPaths(duplicates, true); +} + +//# sourceMappingURL=family.js.map + + +/***/ }), + +/***/ 2694: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = exports.SHOULD_STOP = exports.SHOULD_SKIP = exports.REMOVED = void 0; +var virtualTypes = __webpack_require__(5788); +var _debug = __webpack_require__(2731); +var _index = __webpack_require__(5845); +var _scope = __webpack_require__(9254); +var _t = __webpack_require__(2139); +var t = _t; +var _cache = __webpack_require__(5262); +var _generator = __webpack_require__(4426); +var NodePath_ancestry = __webpack_require__(2459); +var NodePath_inference = __webpack_require__(2477); +var NodePath_replacement = __webpack_require__(2086); +var NodePath_evaluation = __webpack_require__(3745); +var NodePath_conversion = __webpack_require__(5856); +var NodePath_introspection = __webpack_require__(3646); +var NodePath_context = __webpack_require__(6534); +var NodePath_removal = __webpack_require__(8130); +var NodePath_modification = __webpack_require__(9659); +var NodePath_family = __webpack_require__(6486); +var NodePath_comments = __webpack_require__(3947); +var NodePath_virtual_types_validator = __webpack_require__(2618); +const { + validate +} = _t; +const debug = _debug("babel"); +const REMOVED = 1 << 0; +exports.REMOVED = REMOVED; +const SHOULD_STOP = 1 << 1; +exports.SHOULD_STOP = SHOULD_STOP; +const SHOULD_SKIP = 1 << 2; +exports.SHOULD_SKIP = SHOULD_SKIP; +class NodePath { + constructor(hub, parent) { + this.contexts = []; + this.state = null; + this.opts = null; + this._traverseFlags = 0; + this.skipKeys = null; + this.parentPath = null; + this.container = null; + this.listKey = null; + this.key = null; + this.node = null; + this.type = null; + this.parent = parent; + this.hub = hub; + this.data = null; + this.context = null; + this.scope = null; + } + static get({ + hub, + parentPath, + parent, + container, + listKey, + key + }) { + if (!hub && parentPath) { + hub = parentPath.hub; + } + if (!parent) { + throw new Error("To get a node path the parent needs to exist"); + } + const targetNode = container[key]; + let paths = _cache.path.get(parent); + if (!paths) { + paths = new Map(); + _cache.path.set(parent, paths); + } + let path = paths.get(targetNode); + if (!path) { + path = new NodePath(hub, parent); + if (targetNode) paths.set(targetNode, path); + } + path.setup(parentPath, container, listKey, key); + return path; + } + getScope(scope) { + return this.isScope() ? new _scope.default(this) : scope; + } + setData(key, val) { + if (this.data == null) { + this.data = Object.create(null); + } + return this.data[key] = val; + } + getData(key, def) { + if (this.data == null) { + this.data = Object.create(null); + } + let val = this.data[key]; + if (val === undefined && def !== undefined) val = this.data[key] = def; + return val; + } + hasNode() { + return this.node != null; + } + buildCodeFrameError(msg, Error = SyntaxError) { + return this.hub.buildError(this.node, msg, Error); + } + traverse(visitor, state) { + (0, _index.default)(this.node, visitor, this.scope, state, this); + } + set(key, node) { + validate(this.node, key, node); + this.node[key] = node; + } + getPathLocation() { + const parts = []; + let path = this; + do { + let key = path.key; + if (path.inList) key = `${path.listKey}[${key}]`; + parts.unshift(key); + } while (path = path.parentPath); + return parts.join("."); + } + debug(message) { + if (!debug.enabled) return; + debug(`${this.getPathLocation()} ${this.type}: ${message}`); + } + toString() { + return (0, _generator.default)(this.node).code; + } + get inList() { + return !!this.listKey; + } + set inList(inList) { + if (!inList) { + this.listKey = null; + } + } + get parentKey() { + return this.listKey || this.key; + } + get shouldSkip() { + return !!(this._traverseFlags & SHOULD_SKIP); + } + set shouldSkip(v) { + if (v) { + this._traverseFlags |= SHOULD_SKIP; + } else { + this._traverseFlags &= ~SHOULD_SKIP; + } + } + get shouldStop() { + return !!(this._traverseFlags & SHOULD_STOP); + } + set shouldStop(v) { + if (v) { + this._traverseFlags |= SHOULD_STOP; + } else { + this._traverseFlags &= ~SHOULD_STOP; + } + } + get removed() { + return !!(this._traverseFlags & REMOVED); + } + set removed(v) { + if (v) { + this._traverseFlags |= REMOVED; + } else { + this._traverseFlags &= ~REMOVED; + } + } +} +Object.assign(NodePath.prototype, NodePath_ancestry, NodePath_inference, NodePath_replacement, NodePath_evaluation, NodePath_conversion, NodePath_introspection, NodePath_context, NodePath_removal, NodePath_modification, NodePath_family, NodePath_comments); +{ + NodePath.prototype._guessExecutionStatusRelativeToDifferentFunctions = NodePath_introspection._guessExecutionStatusRelativeTo; +} +for (const type of t.TYPES) { + const typeKey = `is${type}`; + const fn = t[typeKey]; + NodePath.prototype[typeKey] = function (opts) { + return fn(this.node, opts); + }; + NodePath.prototype[`assert${type}`] = function (opts) { + if (!fn(this.node, opts)) { + throw new TypeError(`Expected node path of type ${type}`); + } + }; +} +Object.assign(NodePath.prototype, NodePath_virtual_types_validator); +for (const type of Object.keys(virtualTypes)) { + if (type[0] === "_") continue; + if (!t.TYPES.includes(type)) t.TYPES.push(type); +} +var _default = NodePath; +exports["default"] = _default; + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 2477: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports._getTypeAnnotation = _getTypeAnnotation; +exports.baseTypeStrictlyMatches = baseTypeStrictlyMatches; +exports.couldBeBaseType = couldBeBaseType; +exports.getTypeAnnotation = getTypeAnnotation; +exports.isBaseType = isBaseType; +exports.isGenericType = isGenericType; +var inferers = __webpack_require__(4551); +var _t = __webpack_require__(2139); +const { + anyTypeAnnotation, + isAnyTypeAnnotation, + isArrayTypeAnnotation, + isBooleanTypeAnnotation, + isEmptyTypeAnnotation, + isFlowBaseAnnotation, + isGenericTypeAnnotation, + isIdentifier, + isMixedTypeAnnotation, + isNumberTypeAnnotation, + isStringTypeAnnotation, + isTSArrayType, + isTSTypeAnnotation, + isTSTypeReference, + isTupleTypeAnnotation, + isTypeAnnotation, + isUnionTypeAnnotation, + isVoidTypeAnnotation, + stringTypeAnnotation, + voidTypeAnnotation +} = _t; +function getTypeAnnotation() { + let type = this.getData("typeAnnotation"); + if (type != null) { + return type; + } + type = this._getTypeAnnotation() || anyTypeAnnotation(); + if (isTypeAnnotation(type) || isTSTypeAnnotation(type)) { + type = type.typeAnnotation; + } + this.setData("typeAnnotation", type); + return type; +} +const typeAnnotationInferringNodes = new WeakSet(); +function _getTypeAnnotation() { + const node = this.node; + if (!node) { + if (this.key === "init" && this.parentPath.isVariableDeclarator()) { + const declar = this.parentPath.parentPath; + const declarParent = declar.parentPath; + if (declar.key === "left" && declarParent.isForInStatement()) { + return stringTypeAnnotation(); + } + if (declar.key === "left" && declarParent.isForOfStatement()) { + return anyTypeAnnotation(); + } + return voidTypeAnnotation(); + } else { + return; + } + } + if (node.typeAnnotation) { + return node.typeAnnotation; + } + if (typeAnnotationInferringNodes.has(node)) { + return; + } + typeAnnotationInferringNodes.add(node); + try { + var _inferer; + let inferer = inferers[node.type]; + if (inferer) { + return inferer.call(this, node); + } + inferer = inferers[this.parentPath.type]; + if ((_inferer = inferer) != null && _inferer.validParent) { + return this.parentPath.getTypeAnnotation(); + } + } finally { + typeAnnotationInferringNodes.delete(node); + } +} +function isBaseType(baseName, soft) { + return _isBaseType(baseName, this.getTypeAnnotation(), soft); +} +function _isBaseType(baseName, type, soft) { + if (baseName === "string") { + return isStringTypeAnnotation(type); + } else if (baseName === "number") { + return isNumberTypeAnnotation(type); + } else if (baseName === "boolean") { + return isBooleanTypeAnnotation(type); + } else if (baseName === "any") { + return isAnyTypeAnnotation(type); + } else if (baseName === "mixed") { + return isMixedTypeAnnotation(type); + } else if (baseName === "empty") { + return isEmptyTypeAnnotation(type); + } else if (baseName === "void") { + return isVoidTypeAnnotation(type); + } else { + if (soft) { + return false; + } else { + throw new Error(`Unknown base type ${baseName}`); + } + } +} +function couldBeBaseType(name) { + const type = this.getTypeAnnotation(); + if (isAnyTypeAnnotation(type)) return true; + if (isUnionTypeAnnotation(type)) { + for (const type2 of type.types) { + if (isAnyTypeAnnotation(type2) || _isBaseType(name, type2, true)) { + return true; + } + } + return false; + } else { + return _isBaseType(name, type, true); + } +} +function baseTypeStrictlyMatches(rightArg) { + const left = this.getTypeAnnotation(); + const right = rightArg.getTypeAnnotation(); + if (!isAnyTypeAnnotation(left) && isFlowBaseAnnotation(left)) { + return right.type === left.type; + } + return false; +} +function isGenericType(genericName) { + const type = this.getTypeAnnotation(); + if (genericName === "Array") { + if (isTSArrayType(type) || isArrayTypeAnnotation(type) || isTupleTypeAnnotation(type)) { + return true; + } + } + return isGenericTypeAnnotation(type) && isIdentifier(type.id, { + name: genericName + }) || isTSTypeReference(type) && isIdentifier(type.typeName, { + name: genericName + }); +} + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 824: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = _default; +var _t = __webpack_require__(2139); +var _util = __webpack_require__(7292); +const { + BOOLEAN_NUMBER_BINARY_OPERATORS, + createTypeAnnotationBasedOnTypeof, + numberTypeAnnotation, + voidTypeAnnotation +} = _t; +function _default(node) { + if (!this.isReferenced()) return; + const binding = this.scope.getBinding(node.name); + if (binding) { + if (binding.identifier.typeAnnotation) { + return binding.identifier.typeAnnotation; + } else { + return getTypeAnnotationBindingConstantViolations(binding, this, node.name); + } + } + if (node.name === "undefined") { + return voidTypeAnnotation(); + } else if (node.name === "NaN" || node.name === "Infinity") { + return numberTypeAnnotation(); + } else if (node.name === "arguments") {} +} +function getTypeAnnotationBindingConstantViolations(binding, path, name) { + const types = []; + const functionConstantViolations = []; + let constantViolations = getConstantViolationsBefore(binding, path, functionConstantViolations); + const testType = getConditionalAnnotation(binding, path, name); + if (testType) { + const testConstantViolations = getConstantViolationsBefore(binding, testType.ifStatement); + constantViolations = constantViolations.filter(path => testConstantViolations.indexOf(path) < 0); + types.push(testType.typeAnnotation); + } + if (constantViolations.length) { + constantViolations.push(...functionConstantViolations); + for (const violation of constantViolations) { + types.push(violation.getTypeAnnotation()); + } + } + if (!types.length) { + return; + } + return (0, _util.createUnionType)(types); +} +function getConstantViolationsBefore(binding, path, functions) { + const violations = binding.constantViolations.slice(); + violations.unshift(binding.path); + return violations.filter(violation => { + violation = violation.resolve(); + const status = violation._guessExecutionStatusRelativeTo(path); + if (functions && status === "unknown") functions.push(violation); + return status === "before"; + }); +} +function inferAnnotationFromBinaryExpression(name, path) { + const operator = path.node.operator; + const right = path.get("right").resolve(); + const left = path.get("left").resolve(); + let target; + if (left.isIdentifier({ + name + })) { + target = right; + } else if (right.isIdentifier({ + name + })) { + target = left; + } + if (target) { + if (operator === "===") { + return target.getTypeAnnotation(); + } + if (BOOLEAN_NUMBER_BINARY_OPERATORS.indexOf(operator) >= 0) { + return numberTypeAnnotation(); + } + return; + } + if (operator !== "===" && operator !== "==") return; + let typeofPath; + let typePath; + if (left.isUnaryExpression({ + operator: "typeof" + })) { + typeofPath = left; + typePath = right; + } else if (right.isUnaryExpression({ + operator: "typeof" + })) { + typeofPath = right; + typePath = left; + } + if (!typeofPath) return; + if (!typeofPath.get("argument").isIdentifier({ + name + })) return; + typePath = typePath.resolve(); + if (!typePath.isLiteral()) return; + const typeValue = typePath.node.value; + if (typeof typeValue !== "string") return; + return createTypeAnnotationBasedOnTypeof(typeValue); +} +function getParentConditionalPath(binding, path, name) { + let parentPath; + while (parentPath = path.parentPath) { + if (parentPath.isIfStatement() || parentPath.isConditionalExpression()) { + if (path.key === "test") { + return; + } + return parentPath; + } + if (parentPath.isFunction()) { + if (parentPath.parentPath.scope.getBinding(name) !== binding) return; + } + path = parentPath; + } +} +function getConditionalAnnotation(binding, path, name) { + const ifStatement = getParentConditionalPath(binding, path, name); + if (!ifStatement) return; + const test = ifStatement.get("test"); + const paths = [test]; + const types = []; + for (let i = 0; i < paths.length; i++) { + const path = paths[i]; + if (path.isLogicalExpression()) { + if (path.node.operator === "&&") { + paths.push(path.get("left")); + paths.push(path.get("right")); + } + } else if (path.isBinaryExpression()) { + const type = inferAnnotationFromBinaryExpression(name, path); + if (type) types.push(type); + } + } + if (types.length) { + return { + typeAnnotation: (0, _util.createUnionType)(types), + ifStatement + }; + } + return getConditionalAnnotation(binding, ifStatement, name); +} + +//# sourceMappingURL=inferer-reference.js.map + + +/***/ }), + +/***/ 4551: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.ArrayExpression = ArrayExpression; +exports.AssignmentExpression = AssignmentExpression; +exports.BinaryExpression = BinaryExpression; +exports.BooleanLiteral = BooleanLiteral; +exports.CallExpression = CallExpression; +exports.ConditionalExpression = ConditionalExpression; +exports.ClassDeclaration = exports.ClassExpression = exports.FunctionDeclaration = exports.ArrowFunctionExpression = exports.FunctionExpression = Func; +Object.defineProperty(exports, "Identifier", ({ + enumerable: true, + get: function () { + return _infererReference.default; + } +})); +exports.LogicalExpression = LogicalExpression; +exports.NewExpression = NewExpression; +exports.NullLiteral = NullLiteral; +exports.NumericLiteral = NumericLiteral; +exports.ObjectExpression = ObjectExpression; +exports.ParenthesizedExpression = ParenthesizedExpression; +exports.RegExpLiteral = RegExpLiteral; +exports.RestElement = RestElement; +exports.SequenceExpression = SequenceExpression; +exports.StringLiteral = StringLiteral; +exports.TSAsExpression = TSAsExpression; +exports.TSNonNullExpression = TSNonNullExpression; +exports.TaggedTemplateExpression = TaggedTemplateExpression; +exports.TemplateLiteral = TemplateLiteral; +exports.TypeCastExpression = TypeCastExpression; +exports.UnaryExpression = UnaryExpression; +exports.UpdateExpression = UpdateExpression; +exports.VariableDeclarator = VariableDeclarator; +var _t = __webpack_require__(2139); +var _infererReference = __webpack_require__(824); +var _util = __webpack_require__(7292); +const { + BOOLEAN_BINARY_OPERATORS, + BOOLEAN_UNARY_OPERATORS, + NUMBER_BINARY_OPERATORS, + NUMBER_UNARY_OPERATORS, + STRING_UNARY_OPERATORS, + anyTypeAnnotation, + arrayTypeAnnotation, + booleanTypeAnnotation, + buildMatchMemberExpression, + genericTypeAnnotation, + identifier, + nullLiteralTypeAnnotation, + numberTypeAnnotation, + stringTypeAnnotation, + tupleTypeAnnotation, + unionTypeAnnotation, + voidTypeAnnotation, + isIdentifier +} = _t; +function VariableDeclarator() { + if (!this.get("id").isIdentifier()) return; + return this.get("init").getTypeAnnotation(); +} +function TypeCastExpression(node) { + return node.typeAnnotation; +} +TypeCastExpression.validParent = true; +function TSAsExpression(node) { + return node.typeAnnotation; +} +TSAsExpression.validParent = true; +function TSNonNullExpression() { + return this.get("expression").getTypeAnnotation(); +} +function NewExpression(node) { + if (node.callee.type === "Identifier") { + return genericTypeAnnotation(node.callee); + } +} +function TemplateLiteral() { + return stringTypeAnnotation(); +} +function UnaryExpression(node) { + const operator = node.operator; + if (operator === "void") { + return voidTypeAnnotation(); + } else if (NUMBER_UNARY_OPERATORS.indexOf(operator) >= 0) { + return numberTypeAnnotation(); + } else if (STRING_UNARY_OPERATORS.indexOf(operator) >= 0) { + return stringTypeAnnotation(); + } else if (BOOLEAN_UNARY_OPERATORS.indexOf(operator) >= 0) { + return booleanTypeAnnotation(); + } +} +function BinaryExpression(node) { + const operator = node.operator; + if (NUMBER_BINARY_OPERATORS.indexOf(operator) >= 0) { + return numberTypeAnnotation(); + } else if (BOOLEAN_BINARY_OPERATORS.indexOf(operator) >= 0) { + return booleanTypeAnnotation(); + } else if (operator === "+") { + const right = this.get("right"); + const left = this.get("left"); + if (left.isBaseType("number") && right.isBaseType("number")) { + return numberTypeAnnotation(); + } else if (left.isBaseType("string") || right.isBaseType("string")) { + return stringTypeAnnotation(); + } + return unionTypeAnnotation([stringTypeAnnotation(), numberTypeAnnotation()]); + } +} +function LogicalExpression() { + const argumentTypes = [this.get("left").getTypeAnnotation(), this.get("right").getTypeAnnotation()]; + return (0, _util.createUnionType)(argumentTypes); +} +function ConditionalExpression() { + const argumentTypes = [this.get("consequent").getTypeAnnotation(), this.get("alternate").getTypeAnnotation()]; + return (0, _util.createUnionType)(argumentTypes); +} +function SequenceExpression() { + return this.get("expressions").pop().getTypeAnnotation(); +} +function ParenthesizedExpression() { + return this.get("expression").getTypeAnnotation(); +} +function AssignmentExpression() { + return this.get("right").getTypeAnnotation(); +} +function UpdateExpression(node) { + const operator = node.operator; + if (operator === "++" || operator === "--") { + return numberTypeAnnotation(); + } +} +function StringLiteral() { + return stringTypeAnnotation(); +} +function NumericLiteral() { + return numberTypeAnnotation(); +} +function BooleanLiteral() { + return booleanTypeAnnotation(); +} +function NullLiteral() { + return nullLiteralTypeAnnotation(); +} +function RegExpLiteral() { + return genericTypeAnnotation(identifier("RegExp")); +} +function ObjectExpression() { + return genericTypeAnnotation(identifier("Object")); +} +function ArrayExpression() { + return genericTypeAnnotation(identifier("Array")); +} +function RestElement() { + return ArrayExpression(); +} +RestElement.validParent = true; +function Func() { + return genericTypeAnnotation(identifier("Function")); +} +const isArrayFrom = buildMatchMemberExpression("Array.from"); +const isObjectKeys = buildMatchMemberExpression("Object.keys"); +const isObjectValues = buildMatchMemberExpression("Object.values"); +const isObjectEntries = buildMatchMemberExpression("Object.entries"); +function CallExpression() { + const { + callee + } = this.node; + if (isObjectKeys(callee)) { + return arrayTypeAnnotation(stringTypeAnnotation()); + } else if (isArrayFrom(callee) || isObjectValues(callee) || isIdentifier(callee, { + name: "Array" + })) { + return arrayTypeAnnotation(anyTypeAnnotation()); + } else if (isObjectEntries(callee)) { + return arrayTypeAnnotation(tupleTypeAnnotation([stringTypeAnnotation(), anyTypeAnnotation()])); + } + return resolveCall(this.get("callee")); +} +function TaggedTemplateExpression() { + return resolveCall(this.get("tag")); +} +function resolveCall(callee) { + callee = callee.resolve(); + if (callee.isFunction()) { + const { + node + } = callee; + if (node.async) { + if (node.generator) { + return genericTypeAnnotation(identifier("AsyncIterator")); + } else { + return genericTypeAnnotation(identifier("Promise")); + } + } else { + if (node.generator) { + return genericTypeAnnotation(identifier("Iterator")); + } else if (callee.node.returnType) { + return callee.node.returnType; + } else {} + } + } +} + +//# sourceMappingURL=inferers.js.map + + +/***/ }), + +/***/ 7292: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.createUnionType = createUnionType; +var _t = __webpack_require__(2139); +const { + createFlowUnionType, + createTSUnionType, + createUnionTypeAnnotation, + isFlowType, + isTSType +} = _t; +function createUnionType(types) { + { + if (isFlowType(types[0])) { + if (createFlowUnionType) { + return createFlowUnionType(types); + } + return createUnionTypeAnnotation(types); + } else { + if (createTSUnionType) { + return createTSUnionType(types); + } + } + } +} + +//# sourceMappingURL=util.js.map + + +/***/ }), + +/***/ 3646: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports._guessExecutionStatusRelativeTo = _guessExecutionStatusRelativeTo; +exports._resolve = _resolve; +exports.canHaveVariableDeclarationOrExpression = canHaveVariableDeclarationOrExpression; +exports.canSwapBetweenExpressionAndStatement = canSwapBetweenExpressionAndStatement; +exports.equals = equals; +exports.getSource = getSource; +exports.has = has; +exports.is = void 0; +exports.isCompletionRecord = isCompletionRecord; +exports.isConstantExpression = isConstantExpression; +exports.isInStrictMode = isInStrictMode; +exports.isNodeType = isNodeType; +exports.isStatementOrBlock = isStatementOrBlock; +exports.isStatic = isStatic; +exports.isnt = isnt; +exports.matchesPattern = matchesPattern; +exports.referencesImport = referencesImport; +exports.resolve = resolve; +exports.willIMaybeExecuteBefore = willIMaybeExecuteBefore; +var _t = __webpack_require__(2139); +const { + STATEMENT_OR_BLOCK_KEYS, + VISITOR_KEYS, + isBlockStatement, + isExpression, + isIdentifier, + isLiteral, + isStringLiteral, + isType, + matchesPattern: _matchesPattern +} = _t; +function matchesPattern(pattern, allowPartial) { + return _matchesPattern(this.node, pattern, allowPartial); +} +function has(key) { + const val = this.node && this.node[key]; + if (val && Array.isArray(val)) { + return !!val.length; + } else { + return !!val; + } +} +function isStatic() { + return this.scope.isStatic(this.node); +} +const is = has; +exports.is = is; +function isnt(key) { + return !this.has(key); +} +function equals(key, value) { + return this.node[key] === value; +} +function isNodeType(type) { + return isType(this.type, type); +} +function canHaveVariableDeclarationOrExpression() { + return (this.key === "init" || this.key === "left") && this.parentPath.isFor(); +} +function canSwapBetweenExpressionAndStatement(replacement) { + if (this.key !== "body" || !this.parentPath.isArrowFunctionExpression()) { + return false; + } + if (this.isExpression()) { + return isBlockStatement(replacement); + } else if (this.isBlockStatement()) { + return isExpression(replacement); + } + return false; +} +function isCompletionRecord(allowInsideFunction) { + let path = this; + let first = true; + do { + const { + type, + container + } = path; + if (!first && (path.isFunction() || type === "StaticBlock")) { + return !!allowInsideFunction; + } + first = false; + if (Array.isArray(container) && path.key !== container.length - 1) { + return false; + } + } while ((path = path.parentPath) && !path.isProgram() && !path.isDoExpression()); + return true; +} +function isStatementOrBlock() { + if (this.parentPath.isLabeledStatement() || isBlockStatement(this.container)) { + return false; + } else { + return STATEMENT_OR_BLOCK_KEYS.includes(this.key); + } +} +function referencesImport(moduleSource, importName) { + if (!this.isReferencedIdentifier()) { + if (this.isJSXMemberExpression() && this.node.property.name === importName || (this.isMemberExpression() || this.isOptionalMemberExpression()) && (this.node.computed ? isStringLiteral(this.node.property, { + value: importName + }) : this.node.property.name === importName)) { + const object = this.get("object"); + return object.isReferencedIdentifier() && object.referencesImport(moduleSource, "*"); + } + return false; + } + const binding = this.scope.getBinding(this.node.name); + if (!binding || binding.kind !== "module") return false; + const path = binding.path; + const parent = path.parentPath; + if (!parent.isImportDeclaration()) return false; + if (parent.node.source.value === moduleSource) { + if (!importName) return true; + } else { + return false; + } + if (path.isImportDefaultSpecifier() && importName === "default") { + return true; + } + if (path.isImportNamespaceSpecifier() && importName === "*") { + return true; + } + if (path.isImportSpecifier() && isIdentifier(path.node.imported, { + name: importName + })) { + return true; + } + return false; +} +function getSource() { + const node = this.node; + if (node.end) { + const code = this.hub.getCode(); + if (code) return code.slice(node.start, node.end); + } + return ""; +} +function willIMaybeExecuteBefore(target) { + return this._guessExecutionStatusRelativeTo(target) !== "after"; +} +function getOuterFunction(path) { + return path.isProgram() ? path : (path.parentPath.scope.getFunctionParent() || path.parentPath.scope.getProgramParent()).path; +} +function isExecutionUncertain(type, key) { + switch (type) { + case "LogicalExpression": + return key === "right"; + case "ConditionalExpression": + case "IfStatement": + return key === "consequent" || key === "alternate"; + case "WhileStatement": + case "DoWhileStatement": + case "ForInStatement": + case "ForOfStatement": + return key === "body"; + case "ForStatement": + return key === "body" || key === "update"; + case "SwitchStatement": + return key === "cases"; + case "TryStatement": + return key === "handler"; + case "AssignmentPattern": + return key === "right"; + case "OptionalMemberExpression": + return key === "property"; + case "OptionalCallExpression": + return key === "arguments"; + default: + return false; + } +} +function isExecutionUncertainInList(paths, maxIndex) { + for (let i = 0; i < maxIndex; i++) { + const path = paths[i]; + if (isExecutionUncertain(path.parent.type, path.parentKey)) { + return true; + } + } + return false; +} +const SYMBOL_CHECKING = Symbol(); +function _guessExecutionStatusRelativeTo(target) { + return _guessExecutionStatusRelativeToCached(this, target, new Map()); +} +function _guessExecutionStatusRelativeToCached(base, target, cache) { + const funcParent = { + this: getOuterFunction(base), + target: getOuterFunction(target) + }; + if (funcParent.target.node !== funcParent.this.node) { + return _guessExecutionStatusRelativeToDifferentFunctionsCached(base, funcParent.target, cache); + } + const paths = { + target: target.getAncestry(), + this: base.getAncestry() + }; + if (paths.target.indexOf(base) >= 0) return "after"; + if (paths.this.indexOf(target) >= 0) return "before"; + let commonPath; + const commonIndex = { + target: 0, + this: 0 + }; + while (!commonPath && commonIndex.this < paths.this.length) { + const path = paths.this[commonIndex.this]; + commonIndex.target = paths.target.indexOf(path); + if (commonIndex.target >= 0) { + commonPath = path; + } else { + commonIndex.this++; + } + } + if (!commonPath) { + throw new Error("Internal Babel error - The two compared nodes" + " don't appear to belong to the same program."); + } + if (isExecutionUncertainInList(paths.this, commonIndex.this - 1) || isExecutionUncertainInList(paths.target, commonIndex.target - 1)) { + return "unknown"; + } + const divergence = { + this: paths.this[commonIndex.this - 1], + target: paths.target[commonIndex.target - 1] + }; + if (divergence.target.listKey && divergence.this.listKey && divergence.target.container === divergence.this.container) { + return divergence.target.key > divergence.this.key ? "before" : "after"; + } + const keys = VISITOR_KEYS[commonPath.type]; + const keyPosition = { + this: keys.indexOf(divergence.this.parentKey), + target: keys.indexOf(divergence.target.parentKey) + }; + return keyPosition.target > keyPosition.this ? "before" : "after"; +} +function _guessExecutionStatusRelativeToDifferentFunctionsInternal(base, target, cache) { + if (!target.isFunctionDeclaration()) { + if (_guessExecutionStatusRelativeToCached(base, target, cache) === "before") { + return "before"; + } + return "unknown"; + } else if (target.parentPath.isExportDeclaration()) { + return "unknown"; + } + const binding = target.scope.getBinding(target.node.id.name); + if (!binding.references) return "before"; + const referencePaths = binding.referencePaths; + let allStatus; + for (const path of referencePaths) { + const childOfFunction = !!path.find(path => path.node === target.node); + if (childOfFunction) continue; + if (path.key !== "callee" || !path.parentPath.isCallExpression()) { + return "unknown"; + } + const status = _guessExecutionStatusRelativeToCached(base, path, cache); + if (allStatus && allStatus !== status) { + return "unknown"; + } else { + allStatus = status; + } + } + return allStatus; +} +function _guessExecutionStatusRelativeToDifferentFunctionsCached(base, target, cache) { + let nodeMap = cache.get(base.node); + let cached; + if (!nodeMap) { + cache.set(base.node, nodeMap = new Map()); + } else if (cached = nodeMap.get(target.node)) { + if (cached === SYMBOL_CHECKING) { + return "unknown"; + } + return cached; + } + nodeMap.set(target.node, SYMBOL_CHECKING); + const result = _guessExecutionStatusRelativeToDifferentFunctionsInternal(base, target, cache); + nodeMap.set(target.node, result); + return result; +} +function resolve(dangerous, resolved) { + return this._resolve(dangerous, resolved) || this; +} +function _resolve(dangerous, resolved) { + if (resolved && resolved.indexOf(this) >= 0) return; + resolved = resolved || []; + resolved.push(this); + if (this.isVariableDeclarator()) { + if (this.get("id").isIdentifier()) { + return this.get("init").resolve(dangerous, resolved); + } else {} + } else if (this.isReferencedIdentifier()) { + const binding = this.scope.getBinding(this.node.name); + if (!binding) return; + if (!binding.constant) return; + if (binding.kind === "module") return; + if (binding.path !== this) { + const ret = binding.path.resolve(dangerous, resolved); + if (this.find(parent => parent.node === ret.node)) return; + return ret; + } + } else if (this.isTypeCastExpression()) { + return this.get("expression").resolve(dangerous, resolved); + } else if (dangerous && this.isMemberExpression()) { + const targetKey = this.toComputedKey(); + if (!isLiteral(targetKey)) return; + const targetName = targetKey.value; + const target = this.get("object").resolve(dangerous, resolved); + if (target.isObjectExpression()) { + const props = target.get("properties"); + for (const prop of props) { + if (!prop.isProperty()) continue; + const key = prop.get("key"); + let match = prop.isnt("computed") && key.isIdentifier({ + name: targetName + }); + match = match || key.isLiteral({ + value: targetName + }); + if (match) return prop.get("value").resolve(dangerous, resolved); + } + } else if (target.isArrayExpression() && !isNaN(+targetName)) { + const elems = target.get("elements"); + const elem = elems[targetName]; + if (elem) return elem.resolve(dangerous, resolved); + } + } +} +function isConstantExpression() { + if (this.isIdentifier()) { + const binding = this.scope.getBinding(this.node.name); + if (!binding) return false; + return binding.constant; + } + if (this.isLiteral()) { + if (this.isRegExpLiteral()) { + return false; + } + if (this.isTemplateLiteral()) { + return this.get("expressions").every(expression => expression.isConstantExpression()); + } + return true; + } + if (this.isUnaryExpression()) { + if (this.node.operator !== "void") { + return false; + } + return this.get("argument").isConstantExpression(); + } + if (this.isBinaryExpression()) { + const { + operator + } = this.node; + return operator !== "in" && operator !== "instanceof" && this.get("left").isConstantExpression() && this.get("right").isConstantExpression(); + } + return false; +} +function isInStrictMode() { + const start = this.isProgram() ? this : this.parentPath; + const strictParent = start.find(path => { + if (path.isProgram({ + sourceType: "module" + })) return true; + if (path.isClass()) return true; + if (path.isArrowFunctionExpression() && !path.get("body").isBlockStatement()) { + return false; + } + let body; + if (path.isFunction()) { + body = path.node.body; + } else if (path.isProgram()) { + body = path.node; + } else { + return false; + } + for (const directive of body.directives) { + if (directive.value.value === "use strict") { + return true; + } + } + }); + return !!strictParent; +} + +//# sourceMappingURL=introspection.js.map + + +/***/ }), + +/***/ 8380: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +var _t = __webpack_require__(2139); +var _t2 = _t; +const { + react +} = _t; +const { + cloneNode, + jsxExpressionContainer, + variableDeclaration, + variableDeclarator +} = _t2; +const referenceVisitor = { + ReferencedIdentifier(path, state) { + if (path.isJSXIdentifier() && react.isCompatTag(path.node.name) && !path.parentPath.isJSXMemberExpression()) { + return; + } + if (path.node.name === "this") { + let scope = path.scope; + do { + if (scope.path.isFunction() && !scope.path.isArrowFunctionExpression()) { + break; + } + } while (scope = scope.parent); + if (scope) state.breakOnScopePaths.push(scope.path); + } + const binding = path.scope.getBinding(path.node.name); + if (!binding) return; + for (const violation of binding.constantViolations) { + if (violation.scope !== binding.path.scope) { + state.mutableBinding = true; + path.stop(); + return; + } + } + if (binding !== state.scope.getBinding(path.node.name)) return; + state.bindings[path.node.name] = binding; + } +}; +class PathHoister { + constructor(path, scope) { + this.breakOnScopePaths = void 0; + this.bindings = void 0; + this.mutableBinding = void 0; + this.scopes = void 0; + this.scope = void 0; + this.path = void 0; + this.attachAfter = void 0; + this.breakOnScopePaths = []; + this.bindings = {}; + this.mutableBinding = false; + this.scopes = []; + this.scope = scope; + this.path = path; + this.attachAfter = false; + } + isCompatibleScope(scope) { + for (const key of Object.keys(this.bindings)) { + const binding = this.bindings[key]; + if (!scope.bindingIdentifierEquals(key, binding.identifier)) { + return false; + } + } + return true; + } + getCompatibleScopes() { + let scope = this.path.scope; + do { + if (this.isCompatibleScope(scope)) { + this.scopes.push(scope); + } else { + break; + } + if (this.breakOnScopePaths.indexOf(scope.path) >= 0) { + break; + } + } while (scope = scope.parent); + } + getAttachmentPath() { + let path = this._getAttachmentPath(); + if (!path) return; + let targetScope = path.scope; + if (targetScope.path === path) { + targetScope = path.scope.parent; + } + if (targetScope.path.isProgram() || targetScope.path.isFunction()) { + for (const name of Object.keys(this.bindings)) { + if (!targetScope.hasOwnBinding(name)) continue; + const binding = this.bindings[name]; + if (binding.kind === "param" || binding.path.parentKey === "params") { + continue; + } + const bindingParentPath = this.getAttachmentParentForPath(binding.path); + if (bindingParentPath.key >= path.key) { + this.attachAfter = true; + path = binding.path; + for (const violationPath of binding.constantViolations) { + if (this.getAttachmentParentForPath(violationPath).key > path.key) { + path = violationPath; + } + } + } + } + } + return path; + } + _getAttachmentPath() { + const scopes = this.scopes; + const scope = scopes.pop(); + if (!scope) return; + if (scope.path.isFunction()) { + if (this.hasOwnParamBindings(scope)) { + if (this.scope === scope) return; + const bodies = scope.path.get("body").get("body"); + for (let i = 0; i < bodies.length; i++) { + if (bodies[i].node._blockHoist) continue; + return bodies[i]; + } + } else { + return this.getNextScopeAttachmentParent(); + } + } else if (scope.path.isProgram()) { + return this.getNextScopeAttachmentParent(); + } + } + getNextScopeAttachmentParent() { + const scope = this.scopes.pop(); + if (scope) return this.getAttachmentParentForPath(scope.path); + } + getAttachmentParentForPath(path) { + do { + if (!path.parentPath || Array.isArray(path.container) && path.isStatement()) { + return path; + } + } while (path = path.parentPath); + } + hasOwnParamBindings(scope) { + for (const name of Object.keys(this.bindings)) { + if (!scope.hasOwnBinding(name)) continue; + const binding = this.bindings[name]; + if (binding.kind === "param" && binding.constant) return true; + } + return false; + } + run() { + this.path.traverse(referenceVisitor, this); + if (this.mutableBinding) return; + this.getCompatibleScopes(); + const attachTo = this.getAttachmentPath(); + if (!attachTo) return; + if (attachTo.getFunctionParent() === this.path.getFunctionParent()) return; + let uid = attachTo.scope.generateUidIdentifier("ref"); + const declarator = variableDeclarator(uid, this.path.node); + const insertFn = this.attachAfter ? "insertAfter" : "insertBefore"; + const [attached] = attachTo[insertFn]([attachTo.isVariableDeclarator() ? declarator : variableDeclaration("var", [declarator])]); + const parent = this.path.parentPath; + if (parent.isJSXElement() && this.path.container === parent.node.children) { + uid = jsxExpressionContainer(uid); + } + this.path.replaceWith(cloneNode(uid)); + return attachTo.isVariableDeclarator() ? attached.get("init") : attached.get("declarations.0.init"); + } +} +exports["default"] = PathHoister; + +//# sourceMappingURL=hoister.js.map + + +/***/ }), + +/***/ 9843: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.hooks = void 0; +const hooks = [function (self, parent) { + const removeParent = self.key === "test" && (parent.isWhile() || parent.isSwitchCase()) || self.key === "declaration" && parent.isExportDeclaration() || self.key === "body" && parent.isLabeledStatement() || self.listKey === "declarations" && parent.isVariableDeclaration() && parent.node.declarations.length === 1 || self.key === "expression" && parent.isExpressionStatement(); + if (removeParent) { + parent.remove(); + return true; + } +}, function (self, parent) { + if (parent.isSequenceExpression() && parent.node.expressions.length === 1) { + parent.replaceWith(parent.node.expressions[0]); + return true; + } +}, function (self, parent) { + if (parent.isBinary()) { + if (self.key === "left") { + parent.replaceWith(parent.node.right); + } else { + parent.replaceWith(parent.node.left); + } + return true; + } +}, function (self, parent) { + if (parent.isIfStatement() && self.key === "consequent" || self.key === "body" && (parent.isLoop() || parent.isArrowFunctionExpression())) { + self.replaceWith({ + type: "BlockStatement", + body: [] + }); + return true; + } +}]; +exports.hooks = hooks; + +//# sourceMappingURL=removal-hooks.js.map + + +/***/ }), + +/***/ 2618: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.isBindingIdentifier = isBindingIdentifier; +exports.isBlockScoped = isBlockScoped; +exports.isExistentialTypeParam = isExistentialTypeParam; +exports.isExpression = isExpression; +exports.isFlow = isFlow; +exports.isForAwaitStatement = isForAwaitStatement; +exports.isGenerated = isGenerated; +exports.isNumericLiteralTypeAnnotation = isNumericLiteralTypeAnnotation; +exports.isPure = isPure; +exports.isReferenced = isReferenced; +exports.isReferencedIdentifier = isReferencedIdentifier; +exports.isReferencedMemberExpression = isReferencedMemberExpression; +exports.isRestProperty = isRestProperty; +exports.isScope = isScope; +exports.isSpreadProperty = isSpreadProperty; +exports.isStatement = isStatement; +exports.isUser = isUser; +exports.isVar = isVar; +var _t = __webpack_require__(2139); +const { + isBinding, + isBlockScoped: nodeIsBlockScoped, + isExportDeclaration, + isExpression: nodeIsExpression, + isFlow: nodeIsFlow, + isForStatement, + isForXStatement, + isIdentifier, + isImportDeclaration, + isImportSpecifier, + isJSXIdentifier, + isJSXMemberExpression, + isMemberExpression, + isRestElement: nodeIsRestElement, + isReferenced: nodeIsReferenced, + isScope: nodeIsScope, + isStatement: nodeIsStatement, + isVar: nodeIsVar, + isVariableDeclaration, + react, + isForOfStatement +} = _t; +const { + isCompatTag +} = react; +function isReferencedIdentifier(opts) { + const { + node, + parent + } = this; + if (!isIdentifier(node, opts) && !isJSXMemberExpression(parent, opts)) { + if (isJSXIdentifier(node, opts)) { + if (isCompatTag(node.name)) return false; + } else { + return false; + } + } + return nodeIsReferenced(node, parent, this.parentPath.parent); +} +function isReferencedMemberExpression() { + const { + node, + parent + } = this; + return isMemberExpression(node) && nodeIsReferenced(node, parent); +} +function isBindingIdentifier() { + const { + node, + parent + } = this; + const grandparent = this.parentPath.parent; + return isIdentifier(node) && isBinding(node, parent, grandparent); +} +function isStatement() { + const { + node, + parent + } = this; + if (nodeIsStatement(node)) { + if (isVariableDeclaration(node)) { + if (isForXStatement(parent, { + left: node + })) return false; + if (isForStatement(parent, { + init: node + })) return false; + } + return true; + } else { + return false; + } +} +function isExpression() { + if (this.isIdentifier()) { + return this.isReferencedIdentifier(); + } else { + return nodeIsExpression(this.node); + } +} +function isScope() { + return nodeIsScope(this.node, this.parent); +} +function isReferenced() { + return nodeIsReferenced(this.node, this.parent); +} +function isBlockScoped() { + return nodeIsBlockScoped(this.node); +} +function isVar() { + return nodeIsVar(this.node); +} +function isUser() { + return this.node && !!this.node.loc; +} +function isGenerated() { + return !this.isUser(); +} +function isPure(constantsOnly) { + return this.scope.isPure(this.node, constantsOnly); +} +function isFlow() { + const { + node + } = this; + if (nodeIsFlow(node)) { + return true; + } else if (isImportDeclaration(node)) { + return node.importKind === "type" || node.importKind === "typeof"; + } else if (isExportDeclaration(node)) { + return node.exportKind === "type"; + } else if (isImportSpecifier(node)) { + return node.importKind === "type" || node.importKind === "typeof"; + } else { + return false; + } +} +function isRestProperty() { + return nodeIsRestElement(this.node) && this.parentPath && this.parentPath.isObjectPattern(); +} +function isSpreadProperty() { + return nodeIsRestElement(this.node) && this.parentPath && this.parentPath.isObjectExpression(); +} +function isForAwaitStatement() { + return isForOfStatement(this.node, { + await: true + }); +} +function isExistentialTypeParam() { + throw new Error("`path.isExistentialTypeParam` has been renamed to `path.isExistsTypeAnnotation()` in Babel 7."); +} +function isNumericLiteralTypeAnnotation() { + throw new Error("`path.isNumericLiteralTypeAnnotation()` has been renamed to `path.isNumberLiteralTypeAnnotation()` in Babel 7."); +} + +//# sourceMappingURL=virtual-types-validator.js.map + + +/***/ }), + +/***/ 5788: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.Var = exports.User = exports.Statement = exports.SpreadProperty = exports.Scope = exports.RestProperty = exports.ReferencedMemberExpression = exports.ReferencedIdentifier = exports.Referenced = exports.Pure = exports.NumericLiteralTypeAnnotation = exports.Generated = exports.ForAwaitStatement = exports.Flow = exports.Expression = exports.ExistentialTypeParam = exports.BlockScoped = exports.BindingIdentifier = void 0; +const ReferencedIdentifier = ["Identifier", "JSXIdentifier"]; +exports.ReferencedIdentifier = ReferencedIdentifier; +const ReferencedMemberExpression = ["MemberExpression"]; +exports.ReferencedMemberExpression = ReferencedMemberExpression; +const BindingIdentifier = ["Identifier"]; +exports.BindingIdentifier = BindingIdentifier; +const Statement = ["Statement"]; +exports.Statement = Statement; +const Expression = ["Expression"]; +exports.Expression = Expression; +const Scope = ["Scopable", "Pattern"]; +exports.Scope = Scope; +const Referenced = null; +exports.Referenced = Referenced; +const BlockScoped = null; +exports.BlockScoped = BlockScoped; +const Var = ["VariableDeclaration"]; +exports.Var = Var; +const User = null; +exports.User = User; +const Generated = null; +exports.Generated = Generated; +const Pure = null; +exports.Pure = Pure; +const Flow = ["Flow", "ImportDeclaration", "ExportDeclaration", "ImportSpecifier"]; +exports.Flow = Flow; +const RestProperty = ["RestElement"]; +exports.RestProperty = RestProperty; +const SpreadProperty = ["RestElement"]; +exports.SpreadProperty = SpreadProperty; +const ExistentialTypeParam = ["ExistsTypeAnnotation"]; +exports.ExistentialTypeParam = ExistentialTypeParam; +const NumericLiteralTypeAnnotation = ["NumberLiteralTypeAnnotation"]; +exports.NumericLiteralTypeAnnotation = NumericLiteralTypeAnnotation; +const ForAwaitStatement = ["ForOfStatement"]; +exports.ForAwaitStatement = ForAwaitStatement; + +//# sourceMappingURL=virtual-types.js.map + + +/***/ }), + +/***/ 9659: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports._containerInsert = _containerInsert; +exports._containerInsertAfter = _containerInsertAfter; +exports._containerInsertBefore = _containerInsertBefore; +exports._verifyNodeList = _verifyNodeList; +exports.hoist = hoist; +exports.insertAfter = insertAfter; +exports.insertBefore = insertBefore; +exports.pushContainer = pushContainer; +exports.unshiftContainer = unshiftContainer; +exports.updateSiblingKeys = updateSiblingKeys; +var _cache = __webpack_require__(5262); +var _hoister = __webpack_require__(8380); +var _index = __webpack_require__(2694); +var _t = __webpack_require__(2139); +const { + arrowFunctionExpression, + assertExpression, + assignmentExpression, + blockStatement, + callExpression, + cloneNode, + expressionStatement, + isAssignmentExpression, + isCallExpression, + isExportNamedDeclaration, + isExpression, + isIdentifier, + isSequenceExpression, + isSuper, + thisExpression +} = _t; +function insertBefore(nodes_) { + this._assertUnremoved(); + const nodes = this._verifyNodeList(nodes_); + const { + parentPath, + parent + } = this; + if (parentPath.isExpressionStatement() || parentPath.isLabeledStatement() || isExportNamedDeclaration(parent) || parentPath.isExportDefaultDeclaration() && this.isDeclaration()) { + return parentPath.insertBefore(nodes); + } else if (this.isNodeType("Expression") && !this.isJSXElement() || parentPath.isForStatement() && this.key === "init") { + if (this.node) nodes.push(this.node); + return this.replaceExpressionWithStatements(nodes); + } else if (Array.isArray(this.container)) { + return this._containerInsertBefore(nodes); + } else if (this.isStatementOrBlock()) { + const node = this.node; + const shouldInsertCurrentNode = node && (!this.isExpressionStatement() || node.expression != null); + this.replaceWith(blockStatement(shouldInsertCurrentNode ? [node] : [])); + return this.unshiftContainer("body", nodes); + } else { + throw new Error("We don't know what to do with this node type. " + "We were previously a Statement but we can't fit in here?"); + } +} +function _containerInsert(from, nodes) { + this.updateSiblingKeys(from, nodes.length); + const paths = []; + this.container.splice(from, 0, ...nodes); + for (let i = 0; i < nodes.length; i++) { + const to = from + i; + const path = this.getSibling(to); + paths.push(path); + if (this.context && this.context.queue) { + path.pushContext(this.context); + } + } + const contexts = this._getQueueContexts(); + for (const path of paths) { + path.setScope(); + path.debug("Inserted."); + for (const context of contexts) { + context.maybeQueue(path, true); + } + } + return paths; +} +function _containerInsertBefore(nodes) { + return this._containerInsert(this.key, nodes); +} +function _containerInsertAfter(nodes) { + return this._containerInsert(this.key + 1, nodes); +} +const last = arr => arr[arr.length - 1]; +function isHiddenInSequenceExpression(path) { + return isSequenceExpression(path.parent) && (last(path.parent.expressions) !== path.node || isHiddenInSequenceExpression(path.parentPath)); +} +function isAlmostConstantAssignment(node, scope) { + if (!isAssignmentExpression(node) || !isIdentifier(node.left)) { + return false; + } + const blockScope = scope.getBlockParent(); + return blockScope.hasOwnBinding(node.left.name) && blockScope.getOwnBinding(node.left.name).constantViolations.length <= 1; +} +function insertAfter(nodes_) { + this._assertUnremoved(); + if (this.isSequenceExpression()) { + return last(this.get("expressions")).insertAfter(nodes_); + } + const nodes = this._verifyNodeList(nodes_); + const { + parentPath, + parent + } = this; + if (parentPath.isExpressionStatement() || parentPath.isLabeledStatement() || isExportNamedDeclaration(parent) || parentPath.isExportDefaultDeclaration() && this.isDeclaration()) { + return parentPath.insertAfter(nodes.map(node => { + return isExpression(node) ? expressionStatement(node) : node; + })); + } else if (this.isNodeType("Expression") && !this.isJSXElement() && !parentPath.isJSXElement() || parentPath.isForStatement() && this.key === "init") { + if (this.node) { + const node = this.node; + let { + scope + } = this; + if (scope.path.isPattern()) { + assertExpression(node); + this.replaceWith(callExpression(arrowFunctionExpression([], node), [])); + this.get("callee.body").insertAfter(nodes); + return [this]; + } + if (isHiddenInSequenceExpression(this)) { + nodes.unshift(node); + } else if (isCallExpression(node) && isSuper(node.callee)) { + nodes.unshift(node); + nodes.push(thisExpression()); + } else if (isAlmostConstantAssignment(node, scope)) { + nodes.unshift(node); + nodes.push(cloneNode(node.left)); + } else if (scope.isPure(node, true)) { + nodes.push(node); + } else { + if (parentPath.isMethod({ + computed: true, + key: node + })) { + scope = scope.parent; + } + const temp = scope.generateDeclaredUidIdentifier(); + nodes.unshift(expressionStatement(assignmentExpression("=", cloneNode(temp), node))); + nodes.push(expressionStatement(cloneNode(temp))); + } + } + return this.replaceExpressionWithStatements(nodes); + } else if (Array.isArray(this.container)) { + return this._containerInsertAfter(nodes); + } else if (this.isStatementOrBlock()) { + const node = this.node; + const shouldInsertCurrentNode = node && (!this.isExpressionStatement() || node.expression != null); + this.replaceWith(blockStatement(shouldInsertCurrentNode ? [node] : [])); + return this.pushContainer("body", nodes); + } else { + throw new Error("We don't know what to do with this node type. " + "We were previously a Statement but we can't fit in here?"); + } +} +function updateSiblingKeys(fromIndex, incrementBy) { + if (!this.parent) return; + const paths = _cache.path.get(this.parent); + for (const [, path] of paths) { + if (path.key >= fromIndex) { + path.key += incrementBy; + } + } +} +function _verifyNodeList(nodes) { + if (!nodes) { + return []; + } + if (!Array.isArray(nodes)) { + nodes = [nodes]; + } + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + let msg; + if (!node) { + msg = "has falsy node"; + } else if (typeof node !== "object") { + msg = "contains a non-object node"; + } else if (!node.type) { + msg = "without a type"; + } else if (node instanceof _index.default) { + msg = "has a NodePath when it expected a raw object"; + } + if (msg) { + const type = Array.isArray(node) ? "array" : typeof node; + throw new Error(`Node list ${msg} with the index of ${i} and type of ${type}`); + } + } + return nodes; +} +function unshiftContainer(listKey, nodes) { + this._assertUnremoved(); + nodes = this._verifyNodeList(nodes); + const path = _index.default.get({ + parentPath: this, + parent: this.node, + container: this.node[listKey], + listKey, + key: 0 + }).setContext(this.context); + return path._containerInsertBefore(nodes); +} +function pushContainer(listKey, nodes) { + this._assertUnremoved(); + const verifiedNodes = this._verifyNodeList(nodes); + const container = this.node[listKey]; + const path = _index.default.get({ + parentPath: this, + parent: this.node, + container: container, + listKey, + key: container.length + }).setContext(this.context); + return path.replaceWithMultiple(verifiedNodes); +} +function hoist(scope = this.scope) { + const hoister = new _hoister.default(this, scope); + return hoister.run(); +} + +//# sourceMappingURL=modification.js.map + + +/***/ }), + +/***/ 8130: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports._assertUnremoved = _assertUnremoved; +exports._callRemovalHooks = _callRemovalHooks; +exports._markRemoved = _markRemoved; +exports._remove = _remove; +exports._removeFromScope = _removeFromScope; +exports.remove = remove; +var _removalHooks = __webpack_require__(9843); +var _cache = __webpack_require__(5262); +var _index = __webpack_require__(2694); +function remove() { + var _this$opts; + this._assertUnremoved(); + this.resync(); + if (!((_this$opts = this.opts) != null && _this$opts.noScope)) { + this._removeFromScope(); + } + if (this._callRemovalHooks()) { + this._markRemoved(); + return; + } + this.shareCommentsWithSiblings(); + this._remove(); + this._markRemoved(); +} +function _removeFromScope() { + const bindings = this.getBindingIdentifiers(); + Object.keys(bindings).forEach(name => this.scope.removeBinding(name)); +} +function _callRemovalHooks() { + for (const fn of _removalHooks.hooks) { + if (fn(this, this.parentPath)) return true; + } +} +function _remove() { + if (Array.isArray(this.container)) { + this.container.splice(this.key, 1); + this.updateSiblingKeys(this.key, -1); + } else { + this._replaceWith(null); + } +} +function _markRemoved() { + this._traverseFlags |= _index.SHOULD_SKIP | _index.REMOVED; + if (this.parent) _cache.path.get(this.parent).delete(this.node); + this.node = null; +} +function _assertUnremoved() { + if (this.removed) { + throw this.buildCodeFrameError("NodePath has been removed so is read-only."); + } +} + +//# sourceMappingURL=removal.js.map + + +/***/ }), + +/***/ 2086: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports._replaceWith = _replaceWith; +exports.replaceExpressionWithStatements = replaceExpressionWithStatements; +exports.replaceInline = replaceInline; +exports.replaceWith = replaceWith; +exports.replaceWithMultiple = replaceWithMultiple; +exports.replaceWithSourceString = replaceWithSourceString; +var _codeFrame = __webpack_require__(2588); +var _index = __webpack_require__(5845); +var _index2 = __webpack_require__(2694); +var _cache = __webpack_require__(5262); +var _parser = __webpack_require__(9249); +var _t = __webpack_require__(2139); +var _helperHoistVariables = __webpack_require__(3672); +const { + FUNCTION_TYPES, + arrowFunctionExpression, + assignmentExpression, + awaitExpression, + blockStatement, + callExpression, + cloneNode, + expressionStatement, + identifier, + inheritLeadingComments, + inheritTrailingComments, + inheritsComments, + isExpression, + isProgram, + isStatement, + removeComments, + returnStatement, + toSequenceExpression, + validate, + yieldExpression +} = _t; +function replaceWithMultiple(nodes) { + var _pathCache$get; + this.resync(); + nodes = this._verifyNodeList(nodes); + inheritLeadingComments(nodes[0], this.node); + inheritTrailingComments(nodes[nodes.length - 1], this.node); + (_pathCache$get = _cache.path.get(this.parent)) == null ? void 0 : _pathCache$get.delete(this.node); + this.node = this.container[this.key] = null; + const paths = this.insertAfter(nodes); + if (this.node) { + this.requeue(); + } else { + this.remove(); + } + return paths; +} +function replaceWithSourceString(replacement) { + this.resync(); + let ast; + try { + replacement = `(${replacement})`; + ast = (0, _parser.parse)(replacement); + } catch (err) { + const loc = err.loc; + if (loc) { + err.message += " - make sure this is an expression.\n" + (0, _codeFrame.codeFrameColumns)(replacement, { + start: { + line: loc.line, + column: loc.column + 1 + } + }); + err.code = "BABEL_REPLACE_SOURCE_ERROR"; + } + throw err; + } + const expressionAST = ast.program.body[0].expression; + _index.default.removeProperties(expressionAST); + return this.replaceWith(expressionAST); +} +function replaceWith(replacementPath) { + this.resync(); + if (this.removed) { + throw new Error("You can't replace this node, we've already removed it"); + } + let replacement = replacementPath instanceof _index2.default ? replacementPath.node : replacementPath; + if (!replacement) { + throw new Error("You passed `path.replaceWith()` a falsy node, use `path.remove()` instead"); + } + if (this.node === replacement) { + return [this]; + } + if (this.isProgram() && !isProgram(replacement)) { + throw new Error("You can only replace a Program root node with another Program node"); + } + if (Array.isArray(replacement)) { + throw new Error("Don't use `path.replaceWith()` with an array of nodes, use `path.replaceWithMultiple()`"); + } + if (typeof replacement === "string") { + throw new Error("Don't use `path.replaceWith()` with a source string, use `path.replaceWithSourceString()`"); + } + let nodePath = ""; + if (this.isNodeType("Statement") && isExpression(replacement)) { + if (!this.canHaveVariableDeclarationOrExpression() && !this.canSwapBetweenExpressionAndStatement(replacement) && !this.parentPath.isExportDefaultDeclaration()) { + replacement = expressionStatement(replacement); + nodePath = "expression"; + } + } + if (this.isNodeType("Expression") && isStatement(replacement)) { + if (!this.canHaveVariableDeclarationOrExpression() && !this.canSwapBetweenExpressionAndStatement(replacement)) { + return this.replaceExpressionWithStatements([replacement]); + } + } + const oldNode = this.node; + if (oldNode) { + inheritsComments(replacement, oldNode); + removeComments(oldNode); + } + this._replaceWith(replacement); + this.type = replacement.type; + this.setScope(); + this.requeue(); + return [nodePath ? this.get(nodePath) : this]; +} +function _replaceWith(node) { + var _pathCache$get2; + if (!this.container) { + throw new ReferenceError("Container is falsy"); + } + if (this.inList) { + validate(this.parent, this.key, [node]); + } else { + validate(this.parent, this.key, node); + } + this.debug(`Replace with ${node == null ? void 0 : node.type}`); + (_pathCache$get2 = _cache.path.get(this.parent)) == null ? void 0 : _pathCache$get2.set(node, this).delete(this.node); + this.node = this.container[this.key] = node; +} +function replaceExpressionWithStatements(nodes) { + this.resync(); + const nodesAsSequenceExpression = toSequenceExpression(nodes, this.scope); + if (nodesAsSequenceExpression) { + return this.replaceWith(nodesAsSequenceExpression)[0].get("expressions"); + } + const functionParent = this.getFunctionParent(); + const isParentAsync = functionParent == null ? void 0 : functionParent.is("async"); + const isParentGenerator = functionParent == null ? void 0 : functionParent.is("generator"); + const container = arrowFunctionExpression([], blockStatement(nodes)); + this.replaceWith(callExpression(container, [])); + const callee = this.get("callee"); + (0, _helperHoistVariables.default)(callee.get("body"), id => { + this.scope.push({ + id + }); + }, "var"); + const completionRecords = this.get("callee").getCompletionRecords(); + for (const path of completionRecords) { + if (!path.isExpressionStatement()) continue; + const loop = path.findParent(path => path.isLoop()); + if (loop) { + let uid = loop.getData("expressionReplacementReturnUid"); + if (!uid) { + uid = callee.scope.generateDeclaredUidIdentifier("ret"); + callee.get("body").pushContainer("body", returnStatement(cloneNode(uid))); + loop.setData("expressionReplacementReturnUid", uid); + } else { + uid = identifier(uid.name); + } + path.get("expression").replaceWith(assignmentExpression("=", cloneNode(uid), path.node.expression)); + } else { + path.replaceWith(returnStatement(path.node.expression)); + } + } + callee.arrowFunctionToExpression(); + const newCallee = callee; + const needToAwaitFunction = isParentAsync && _index.default.hasType(this.get("callee.body").node, "AwaitExpression", FUNCTION_TYPES); + const needToYieldFunction = isParentGenerator && _index.default.hasType(this.get("callee.body").node, "YieldExpression", FUNCTION_TYPES); + if (needToAwaitFunction) { + newCallee.set("async", true); + if (!needToYieldFunction) { + this.replaceWith(awaitExpression(this.node)); + } + } + if (needToYieldFunction) { + newCallee.set("generator", true); + this.replaceWith(yieldExpression(this.node, true)); + } + return newCallee.get("body.body"); +} +function replaceInline(nodes) { + this.resync(); + if (Array.isArray(nodes)) { + if (Array.isArray(this.container)) { + nodes = this._verifyNodeList(nodes); + const paths = this._containerInsertAfter(nodes); + this.remove(); + return paths; + } else { + return this.replaceWithMultiple(nodes); + } + } else { + return this.replaceWith(nodes); + } +} + +//# sourceMappingURL=replacement.js.map + + +/***/ }), + +/***/ 181: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +class Binding { + constructor({ + identifier, + scope, + path, + kind + }) { + this.identifier = void 0; + this.scope = void 0; + this.path = void 0; + this.kind = void 0; + this.constantViolations = []; + this.constant = true; + this.referencePaths = []; + this.referenced = false; + this.references = 0; + this.identifier = identifier; + this.scope = scope; + this.path = path; + this.kind = kind; + if ((kind === "var" || kind === "hoisted") && isDeclaredInLoop(path || (() => { + throw new Error("Internal Babel error: unreachable "); + })())) { + this.reassign(path); + } + this.clearValue(); + } + deoptValue() { + this.clearValue(); + this.hasDeoptedValue = true; + } + setValue(value) { + if (this.hasDeoptedValue) return; + this.hasValue = true; + this.value = value; + } + clearValue() { + this.hasDeoptedValue = false; + this.hasValue = false; + this.value = null; + } + reassign(path) { + this.constant = false; + if (this.constantViolations.indexOf(path) !== -1) { + return; + } + this.constantViolations.push(path); + } + reference(path) { + if (this.referencePaths.indexOf(path) !== -1) { + return; + } + this.referenced = true; + this.references++; + this.referencePaths.push(path); + } + dereference() { + this.references--; + this.referenced = !!this.references; + } +} +exports["default"] = Binding; +function isDeclaredInLoop(path) { + for (let { + parentPath, + key + } = path; parentPath; ({ + parentPath, + key + } = parentPath)) { + if (parentPath.isFunctionParent()) return false; + if (parentPath.isWhile() || parentPath.isForXStatement() || parentPath.isForStatement() && key === "body") { + return true; + } + } + return false; +} + +//# sourceMappingURL=binding.js.map + + +/***/ }), + +/***/ 9254: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +var _renamer = __webpack_require__(1927); +var _index = __webpack_require__(5845); +var _binding = __webpack_require__(181); +var _globals = __webpack_require__(7629); +var _t = __webpack_require__(2139); +var _cache = __webpack_require__(5262); +const { + NOT_LOCAL_BINDING, + callExpression, + cloneNode, + getBindingIdentifiers, + identifier, + isArrayExpression, + isBinary, + isClass, + isClassBody, + isClassDeclaration, + isExportAllDeclaration, + isExportDefaultDeclaration, + isExportNamedDeclaration, + isFunctionDeclaration, + isIdentifier, + isImportDeclaration, + isLiteral, + isMethod, + isModuleSpecifier, + isNullLiteral, + isObjectExpression, + isProperty, + isPureish, + isRegExpLiteral, + isSuper, + isTaggedTemplateExpression, + isTemplateLiteral, + isThisExpression, + isUnaryExpression, + isVariableDeclaration, + matchesPattern, + memberExpression, + numericLiteral, + toIdentifier, + unaryExpression, + variableDeclaration, + variableDeclarator, + isRecordExpression, + isTupleExpression, + isObjectProperty, + isTopicReference, + isMetaProperty, + isPrivateName, + isExportDeclaration +} = _t; +function gatherNodeParts(node, parts) { + switch (node == null ? void 0 : node.type) { + default: + if (isImportDeclaration(node) || isExportDeclaration(node)) { + if ((isExportAllDeclaration(node) || isExportNamedDeclaration(node) || isImportDeclaration(node)) && node.source) { + gatherNodeParts(node.source, parts); + } else if ((isExportNamedDeclaration(node) || isImportDeclaration(node)) && node.specifiers && node.specifiers.length) { + for (const e of node.specifiers) gatherNodeParts(e, parts); + } else if ((isExportDefaultDeclaration(node) || isExportNamedDeclaration(node)) && node.declaration) { + gatherNodeParts(node.declaration, parts); + } + } else if (isModuleSpecifier(node)) { + gatherNodeParts(node.local, parts); + } else if (isLiteral(node) && !isNullLiteral(node) && !isRegExpLiteral(node) && !isTemplateLiteral(node)) { + parts.push(node.value); + } + break; + case "MemberExpression": + case "OptionalMemberExpression": + case "JSXMemberExpression": + gatherNodeParts(node.object, parts); + gatherNodeParts(node.property, parts); + break; + case "Identifier": + case "JSXIdentifier": + parts.push(node.name); + break; + case "CallExpression": + case "OptionalCallExpression": + case "NewExpression": + gatherNodeParts(node.callee, parts); + break; + case "ObjectExpression": + case "ObjectPattern": + for (const e of node.properties) { + gatherNodeParts(e, parts); + } + break; + case "SpreadElement": + case "RestElement": + gatherNodeParts(node.argument, parts); + break; + case "ObjectProperty": + case "ObjectMethod": + case "ClassProperty": + case "ClassMethod": + case "ClassPrivateProperty": + case "ClassPrivateMethod": + gatherNodeParts(node.key, parts); + break; + case "ThisExpression": + parts.push("this"); + break; + case "Super": + parts.push("super"); + break; + case "Import": + parts.push("import"); + break; + case "DoExpression": + parts.push("do"); + break; + case "YieldExpression": + parts.push("yield"); + gatherNodeParts(node.argument, parts); + break; + case "AwaitExpression": + parts.push("await"); + gatherNodeParts(node.argument, parts); + break; + case "AssignmentExpression": + gatherNodeParts(node.left, parts); + break; + case "VariableDeclarator": + gatherNodeParts(node.id, parts); + break; + case "FunctionExpression": + case "FunctionDeclaration": + case "ClassExpression": + case "ClassDeclaration": + gatherNodeParts(node.id, parts); + break; + case "PrivateName": + gatherNodeParts(node.id, parts); + break; + case "ParenthesizedExpression": + gatherNodeParts(node.expression, parts); + break; + case "UnaryExpression": + case "UpdateExpression": + gatherNodeParts(node.argument, parts); + break; + case "MetaProperty": + gatherNodeParts(node.meta, parts); + gatherNodeParts(node.property, parts); + break; + case "JSXElement": + gatherNodeParts(node.openingElement, parts); + break; + case "JSXOpeningElement": + gatherNodeParts(node.name, parts); + break; + case "JSXFragment": + gatherNodeParts(node.openingFragment, parts); + break; + case "JSXOpeningFragment": + parts.push("Fragment"); + break; + case "JSXNamespacedName": + gatherNodeParts(node.namespace, parts); + gatherNodeParts(node.name, parts); + break; + } +} +const collectorVisitor = { + ForStatement(path) { + const declar = path.get("init"); + if (declar.isVar()) { + const { + scope + } = path; + const parentScope = scope.getFunctionParent() || scope.getProgramParent(); + parentScope.registerBinding("var", declar); + } + }, + Declaration(path) { + if (path.isBlockScoped()) return; + if (path.isImportDeclaration()) return; + if (path.isExportDeclaration()) return; + const parent = path.scope.getFunctionParent() || path.scope.getProgramParent(); + parent.registerDeclaration(path); + }, + ImportDeclaration(path) { + const parent = path.scope.getBlockParent(); + parent.registerDeclaration(path); + }, + ReferencedIdentifier(path, state) { + state.references.push(path); + }, + ForXStatement(path, state) { + const left = path.get("left"); + if (left.isPattern() || left.isIdentifier()) { + state.constantViolations.push(path); + } else if (left.isVar()) { + const { + scope + } = path; + const parentScope = scope.getFunctionParent() || scope.getProgramParent(); + parentScope.registerBinding("var", left); + } + }, + ExportDeclaration: { + exit(path) { + const { + node, + scope + } = path; + if (isExportAllDeclaration(node)) return; + const declar = node.declaration; + if (isClassDeclaration(declar) || isFunctionDeclaration(declar)) { + const id = declar.id; + if (!id) return; + const binding = scope.getBinding(id.name); + binding == null ? void 0 : binding.reference(path); + } else if (isVariableDeclaration(declar)) { + for (const decl of declar.declarations) { + for (const name of Object.keys(getBindingIdentifiers(decl))) { + const binding = scope.getBinding(name); + binding == null ? void 0 : binding.reference(path); + } + } + } + } + }, + LabeledStatement(path) { + path.scope.getBlockParent().registerDeclaration(path); + }, + AssignmentExpression(path, state) { + state.assignments.push(path); + }, + UpdateExpression(path, state) { + state.constantViolations.push(path); + }, + UnaryExpression(path, state) { + if (path.node.operator === "delete") { + state.constantViolations.push(path); + } + }, + BlockScoped(path) { + let scope = path.scope; + if (scope.path === path) scope = scope.parent; + const parent = scope.getBlockParent(); + parent.registerDeclaration(path); + if (path.isClassDeclaration() && path.node.id) { + const id = path.node.id; + const name = id.name; + path.scope.bindings[name] = path.scope.parent.getBinding(name); + } + }, + CatchClause(path) { + path.scope.registerBinding("let", path); + }, + Function(path) { + const params = path.get("params"); + for (const param of params) { + path.scope.registerBinding("param", param); + } + if (path.isFunctionExpression() && path.has("id") && !path.get("id").node[NOT_LOCAL_BINDING]) { + path.scope.registerBinding("local", path.get("id"), path); + } + }, + ClassExpression(path) { + if (path.has("id") && !path.get("id").node[NOT_LOCAL_BINDING]) { + path.scope.registerBinding("local", path); + } + } +}; +let uid = 0; +class Scope { + constructor(path) { + this.uid = void 0; + this.path = void 0; + this.block = void 0; + this.labels = void 0; + this.inited = void 0; + this.bindings = void 0; + this.references = void 0; + this.globals = void 0; + this.uids = void 0; + this.data = void 0; + this.crawling = void 0; + const { + node + } = path; + const cached = _cache.scope.get(node); + if ((cached == null ? void 0 : cached.path) === path) { + return cached; + } + _cache.scope.set(node, this); + this.uid = uid++; + this.block = node; + this.path = path; + this.labels = new Map(); + this.inited = false; + } + get parent() { + var _parent; + let parent, + path = this.path; + do { + const shouldSkip = path.key === "key" || path.listKey === "decorators"; + path = path.parentPath; + if (shouldSkip && path.isMethod()) path = path.parentPath; + if (path && path.isScope()) parent = path; + } while (path && !parent); + return (_parent = parent) == null ? void 0 : _parent.scope; + } + get parentBlock() { + return this.path.parent; + } + get hub() { + return this.path.hub; + } + traverse(node, opts, state) { + (0, _index.default)(node, opts, this, state, this.path); + } + generateDeclaredUidIdentifier(name) { + const id = this.generateUidIdentifier(name); + this.push({ + id + }); + return cloneNode(id); + } + generateUidIdentifier(name) { + return identifier(this.generateUid(name)); + } + generateUid(name = "temp") { + name = toIdentifier(name).replace(/^_+/, "").replace(/[0-9]+$/g, ""); + let uid; + let i = 1; + do { + uid = this._generateUid(name, i); + i++; + } while (this.hasLabel(uid) || this.hasBinding(uid) || this.hasGlobal(uid) || this.hasReference(uid)); + const program = this.getProgramParent(); + program.references[uid] = true; + program.uids[uid] = true; + return uid; + } + _generateUid(name, i) { + let id = name; + if (i > 1) id += i; + return `_${id}`; + } + generateUidBasedOnNode(node, defaultName) { + const parts = []; + gatherNodeParts(node, parts); + let id = parts.join("$"); + id = id.replace(/^_/, "") || defaultName || "ref"; + return this.generateUid(id.slice(0, 20)); + } + generateUidIdentifierBasedOnNode(node, defaultName) { + return identifier(this.generateUidBasedOnNode(node, defaultName)); + } + isStatic(node) { + if (isThisExpression(node) || isSuper(node) || isTopicReference(node)) { + return true; + } + if (isIdentifier(node)) { + const binding = this.getBinding(node.name); + if (binding) { + return binding.constant; + } else { + return this.hasBinding(node.name); + } + } + return false; + } + maybeGenerateMemoised(node, dontPush) { + if (this.isStatic(node)) { + return null; + } else { + const id = this.generateUidIdentifierBasedOnNode(node); + if (!dontPush) { + this.push({ + id + }); + return cloneNode(id); + } + return id; + } + } + checkBlockScopedCollisions(local, kind, name, id) { + if (kind === "param") return; + if (local.kind === "local") return; + const duplicate = kind === "let" || local.kind === "let" || local.kind === "const" || local.kind === "module" || local.kind === "param" && kind === "const"; + if (duplicate) { + throw this.hub.buildError(id, `Duplicate declaration "${name}"`, TypeError); + } + } + rename(oldName, newName, block) { + const binding = this.getBinding(oldName); + if (binding) { + newName = newName || this.generateUidIdentifier(oldName).name; + return new _renamer.default(binding, oldName, newName).rename(block); + } + } + _renameFromMap(map, oldName, newName, value) { + if (map[oldName]) { + map[newName] = value; + map[oldName] = null; + } + } + dump() { + const sep = "-".repeat(60); + console.log(sep); + let scope = this; + do { + console.log("#", scope.block.type); + for (const name of Object.keys(scope.bindings)) { + const binding = scope.bindings[name]; + console.log(" -", name, { + constant: binding.constant, + references: binding.references, + violations: binding.constantViolations.length, + kind: binding.kind + }); + } + } while (scope = scope.parent); + console.log(sep); + } + toArray(node, i, arrayLikeIsIterable) { + if (isIdentifier(node)) { + const binding = this.getBinding(node.name); + if (binding != null && binding.constant && binding.path.isGenericType("Array")) { + return node; + } + } + if (isArrayExpression(node)) { + return node; + } + if (isIdentifier(node, { + name: "arguments" + })) { + return callExpression(memberExpression(memberExpression(memberExpression(identifier("Array"), identifier("prototype")), identifier("slice")), identifier("call")), [node]); + } + let helperName; + const args = [node]; + if (i === true) { + helperName = "toConsumableArray"; + } else if (typeof i === "number") { + args.push(numericLiteral(i)); + helperName = "slicedToArray"; + } else { + helperName = "toArray"; + } + if (arrayLikeIsIterable) { + args.unshift(this.hub.addHelper(helperName)); + helperName = "maybeArrayLike"; + } + return callExpression(this.hub.addHelper(helperName), args); + } + hasLabel(name) { + return !!this.getLabel(name); + } + getLabel(name) { + return this.labels.get(name); + } + registerLabel(path) { + this.labels.set(path.node.label.name, path); + } + registerDeclaration(path) { + if (path.isLabeledStatement()) { + this.registerLabel(path); + } else if (path.isFunctionDeclaration()) { + this.registerBinding("hoisted", path.get("id"), path); + } else if (path.isVariableDeclaration()) { + const declarations = path.get("declarations"); + const { + kind + } = path.node; + for (const declar of declarations) { + this.registerBinding(kind === "using" ? "const" : kind, declar); + } + } else if (path.isClassDeclaration()) { + if (path.node.declare) return; + this.registerBinding("let", path); + } else if (path.isImportDeclaration()) { + const isTypeDeclaration = path.node.importKind === "type" || path.node.importKind === "typeof"; + const specifiers = path.get("specifiers"); + for (const specifier of specifiers) { + const isTypeSpecifier = isTypeDeclaration || specifier.isImportSpecifier() && (specifier.node.importKind === "type" || specifier.node.importKind === "typeof"); + this.registerBinding(isTypeSpecifier ? "unknown" : "module", specifier); + } + } else if (path.isExportDeclaration()) { + const declar = path.get("declaration"); + if (declar.isClassDeclaration() || declar.isFunctionDeclaration() || declar.isVariableDeclaration()) { + this.registerDeclaration(declar); + } + } else { + this.registerBinding("unknown", path); + } + } + buildUndefinedNode() { + return unaryExpression("void", numericLiteral(0), true); + } + registerConstantViolation(path) { + const ids = path.getBindingIdentifiers(); + for (const name of Object.keys(ids)) { + const binding = this.getBinding(name); + if (binding) binding.reassign(path); + } + } + registerBinding(kind, path, bindingPath = path) { + if (!kind) throw new ReferenceError("no `kind`"); + if (path.isVariableDeclaration()) { + const declarators = path.get("declarations"); + for (const declar of declarators) { + this.registerBinding(kind, declar); + } + return; + } + const parent = this.getProgramParent(); + const ids = path.getOuterBindingIdentifiers(true); + for (const name of Object.keys(ids)) { + parent.references[name] = true; + for (const id of ids[name]) { + const local = this.getOwnBinding(name); + if (local) { + if (local.identifier === id) continue; + this.checkBlockScopedCollisions(local, kind, name, id); + } + if (local) { + this.registerConstantViolation(bindingPath); + } else { + this.bindings[name] = new _binding.default({ + identifier: id, + scope: this, + path: bindingPath, + kind: kind + }); + } + } + } + } + addGlobal(node) { + this.globals[node.name] = node; + } + hasUid(name) { + let scope = this; + do { + if (scope.uids[name]) return true; + } while (scope = scope.parent); + return false; + } + hasGlobal(name) { + let scope = this; + do { + if (scope.globals[name]) return true; + } while (scope = scope.parent); + return false; + } + hasReference(name) { + return !!this.getProgramParent().references[name]; + } + isPure(node, constantsOnly) { + if (isIdentifier(node)) { + const binding = this.getBinding(node.name); + if (!binding) return false; + if (constantsOnly) return binding.constant; + return true; + } else if (isThisExpression(node) || isMetaProperty(node) || isTopicReference(node) || isPrivateName(node)) { + return true; + } else if (isClass(node)) { + var _node$decorators; + if (node.superClass && !this.isPure(node.superClass, constantsOnly)) { + return false; + } + if (((_node$decorators = node.decorators) == null ? void 0 : _node$decorators.length) > 0) { + return false; + } + return this.isPure(node.body, constantsOnly); + } else if (isClassBody(node)) { + for (const method of node.body) { + if (!this.isPure(method, constantsOnly)) return false; + } + return true; + } else if (isBinary(node)) { + return this.isPure(node.left, constantsOnly) && this.isPure(node.right, constantsOnly); + } else if (isArrayExpression(node) || isTupleExpression(node)) { + for (const elem of node.elements) { + if (elem !== null && !this.isPure(elem, constantsOnly)) return false; + } + return true; + } else if (isObjectExpression(node) || isRecordExpression(node)) { + for (const prop of node.properties) { + if (!this.isPure(prop, constantsOnly)) return false; + } + return true; + } else if (isMethod(node)) { + var _node$decorators2; + if (node.computed && !this.isPure(node.key, constantsOnly)) return false; + if (((_node$decorators2 = node.decorators) == null ? void 0 : _node$decorators2.length) > 0) { + return false; + } + return true; + } else if (isProperty(node)) { + var _node$decorators3; + if (node.computed && !this.isPure(node.key, constantsOnly)) return false; + if (((_node$decorators3 = node.decorators) == null ? void 0 : _node$decorators3.length) > 0) { + return false; + } + if (isObjectProperty(node) || node.static) { + if (node.value !== null && !this.isPure(node.value, constantsOnly)) { + return false; + } + } + return true; + } else if (isUnaryExpression(node)) { + return this.isPure(node.argument, constantsOnly); + } else if (isTaggedTemplateExpression(node)) { + return matchesPattern(node.tag, "String.raw") && !this.hasBinding("String", true) && this.isPure(node.quasi, constantsOnly); + } else if (isTemplateLiteral(node)) { + for (const expression of node.expressions) { + if (!this.isPure(expression, constantsOnly)) return false; + } + return true; + } else { + return isPureish(node); + } + } + setData(key, val) { + return this.data[key] = val; + } + getData(key) { + let scope = this; + do { + const data = scope.data[key]; + if (data != null) return data; + } while (scope = scope.parent); + } + removeData(key) { + let scope = this; + do { + const data = scope.data[key]; + if (data != null) scope.data[key] = null; + } while (scope = scope.parent); + } + init() { + if (!this.inited) { + this.inited = true; + this.crawl(); + } + } + crawl() { + const path = this.path; + this.references = Object.create(null); + this.bindings = Object.create(null); + this.globals = Object.create(null); + this.uids = Object.create(null); + this.data = Object.create(null); + const programParent = this.getProgramParent(); + if (programParent.crawling) return; + const state = { + references: [], + constantViolations: [], + assignments: [] + }; + this.crawling = true; + if (path.type !== "Program" && collectorVisitor._exploded) { + for (const visit of collectorVisitor.enter) { + visit(path, state); + } + const typeVisitors = collectorVisitor[path.type]; + if (typeVisitors) { + for (const visit of typeVisitors.enter) { + visit(path, state); + } + } + } + path.traverse(collectorVisitor, state); + this.crawling = false; + for (const path of state.assignments) { + const ids = path.getBindingIdentifiers(); + for (const name of Object.keys(ids)) { + if (path.scope.getBinding(name)) continue; + programParent.addGlobal(ids[name]); + } + path.scope.registerConstantViolation(path); + } + for (const ref of state.references) { + const binding = ref.scope.getBinding(ref.node.name); + if (binding) { + binding.reference(ref); + } else { + programParent.addGlobal(ref.node); + } + } + for (const path of state.constantViolations) { + path.scope.registerConstantViolation(path); + } + } + push(opts) { + let path = this.path; + if (path.isPattern()) { + path = this.getPatternParent().path; + } else if (!path.isBlockStatement() && !path.isProgram()) { + path = this.getBlockParent().path; + } + if (path.isSwitchStatement()) { + path = (this.getFunctionParent() || this.getProgramParent()).path; + } + if (path.isLoop() || path.isCatchClause() || path.isFunction()) { + path.ensureBlock(); + path = path.get("body"); + } + const unique = opts.unique; + const kind = opts.kind || "var"; + const blockHoist = opts._blockHoist == null ? 2 : opts._blockHoist; + const dataKey = `declaration:${kind}:${blockHoist}`; + let declarPath = !unique && path.getData(dataKey); + if (!declarPath) { + const declar = variableDeclaration(kind, []); + declar._blockHoist = blockHoist; + [declarPath] = path.unshiftContainer("body", [declar]); + if (!unique) path.setData(dataKey, declarPath); + } + const declarator = variableDeclarator(opts.id, opts.init); + const len = declarPath.node.declarations.push(declarator); + path.scope.registerBinding(kind, declarPath.get("declarations")[len - 1]); + } + getProgramParent() { + let scope = this; + do { + if (scope.path.isProgram()) { + return scope; + } + } while (scope = scope.parent); + throw new Error("Couldn't find a Program"); + } + getFunctionParent() { + let scope = this; + do { + if (scope.path.isFunctionParent()) { + return scope; + } + } while (scope = scope.parent); + return null; + } + getBlockParent() { + let scope = this; + do { + if (scope.path.isBlockParent()) { + return scope; + } + } while (scope = scope.parent); + throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program..."); + } + getPatternParent() { + let scope = this; + do { + if (!scope.path.isPattern()) { + return scope.getBlockParent(); + } + } while (scope = scope.parent.parent); + throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program..."); + } + getAllBindings() { + const ids = Object.create(null); + let scope = this; + do { + for (const key of Object.keys(scope.bindings)) { + if (key in ids === false) { + ids[key] = scope.bindings[key]; + } + } + scope = scope.parent; + } while (scope); + return ids; + } + getAllBindingsOfKind(...kinds) { + const ids = Object.create(null); + for (const kind of kinds) { + let scope = this; + do { + for (const name of Object.keys(scope.bindings)) { + const binding = scope.bindings[name]; + if (binding.kind === kind) ids[name] = binding; + } + scope = scope.parent; + } while (scope); + } + return ids; + } + bindingIdentifierEquals(name, node) { + return this.getBindingIdentifier(name) === node; + } + getBinding(name) { + let scope = this; + let previousPath; + do { + const binding = scope.getOwnBinding(name); + if (binding) { + var _previousPath; + if ((_previousPath = previousPath) != null && _previousPath.isPattern() && binding.kind !== "param" && binding.kind !== "local") {} else { + return binding; + } + } else if (!binding && name === "arguments" && scope.path.isFunction() && !scope.path.isArrowFunctionExpression()) { + break; + } + previousPath = scope.path; + } while (scope = scope.parent); + } + getOwnBinding(name) { + return this.bindings[name]; + } + getBindingIdentifier(name) { + var _this$getBinding; + return (_this$getBinding = this.getBinding(name)) == null ? void 0 : _this$getBinding.identifier; + } + getOwnBindingIdentifier(name) { + const binding = this.bindings[name]; + return binding == null ? void 0 : binding.identifier; + } + hasOwnBinding(name) { + return !!this.getOwnBinding(name); + } + hasBinding(name, opts) { + var _opts, _opts2, _opts3; + if (!name) return false; + if (this.hasOwnBinding(name)) return true; + { + if (typeof opts === "boolean") opts = { + noGlobals: opts + }; + } + if (this.parentHasBinding(name, opts)) return true; + if (!((_opts = opts) != null && _opts.noUids) && this.hasUid(name)) return true; + if (!((_opts2 = opts) != null && _opts2.noGlobals) && Scope.globals.includes(name)) return true; + if (!((_opts3 = opts) != null && _opts3.noGlobals) && Scope.contextVariables.includes(name)) return true; + return false; + } + parentHasBinding(name, opts) { + var _this$parent; + return (_this$parent = this.parent) == null ? void 0 : _this$parent.hasBinding(name, opts); + } + moveBindingTo(name, scope) { + const info = this.getBinding(name); + if (info) { + info.scope.removeOwnBinding(name); + info.scope = scope; + scope.bindings[name] = info; + } + } + removeOwnBinding(name) { + delete this.bindings[name]; + } + removeBinding(name) { + var _this$getBinding2; + (_this$getBinding2 = this.getBinding(name)) == null ? void 0 : _this$getBinding2.scope.removeOwnBinding(name); + let scope = this; + do { + if (scope.uids[name]) { + scope.uids[name] = false; + } + } while (scope = scope.parent); + } +} +exports["default"] = Scope; +Scope.globals = Object.keys(_globals.builtin); +Scope.contextVariables = ["arguments", "undefined", "Infinity", "NaN"]; + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 1927: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +var _helperSplitExportDeclaration = __webpack_require__(4254); +var t = __webpack_require__(2139); +var _helperEnvironmentVisitor = __webpack_require__(6371); +var _traverseNode = __webpack_require__(645); +var _visitors = __webpack_require__(8275); +const renameVisitor = { + ReferencedIdentifier({ + node + }, state) { + if (node.name === state.oldName) { + node.name = state.newName; + } + }, + Scope(path, state) { + if (!path.scope.bindingIdentifierEquals(state.oldName, state.binding.identifier)) { + path.skip(); + if (path.isMethod()) { + (0, _helperEnvironmentVisitor.requeueComputedKeyAndDecorators)(path); + } + } + }, + "AssignmentExpression|Declaration|VariableDeclarator"(path, state) { + if (path.isVariableDeclaration()) return; + const ids = path.getOuterBindingIdentifiers(); + for (const name in ids) { + if (name === state.oldName) ids[name].name = state.newName; + } + } +}; +class Renamer { + constructor(binding, oldName, newName) { + this.newName = newName; + this.oldName = oldName; + this.binding = binding; + } + maybeConvertFromExportDeclaration(parentDeclar) { + const maybeExportDeclar = parentDeclar.parentPath; + if (!maybeExportDeclar.isExportDeclaration()) { + return; + } + if (maybeExportDeclar.isExportDefaultDeclaration()) { + const { + declaration + } = maybeExportDeclar.node; + if (t.isDeclaration(declaration) && !declaration.id) { + return; + } + } + if (maybeExportDeclar.isExportAllDeclaration()) { + return; + } + (0, _helperSplitExportDeclaration.default)(maybeExportDeclar); + } + maybeConvertFromClassFunctionDeclaration(path) { + return path; + } + maybeConvertFromClassFunctionExpression(path) { + return path; + } + rename(block) { + const { + binding, + oldName, + newName + } = this; + const { + scope, + path + } = binding; + const parentDeclar = path.find(path => path.isDeclaration() || path.isFunctionExpression() || path.isClassExpression()); + if (parentDeclar) { + const bindingIds = parentDeclar.getOuterBindingIdentifiers(); + if (bindingIds[oldName] === binding.identifier) { + this.maybeConvertFromExportDeclaration(parentDeclar); + } + } + (0, _traverseNode.traverseNode)(block || scope.block, (0, _visitors.explode)(renameVisitor), scope, this, scope.path, { + discriminant: true + }); + if (!block) { + scope.removeOwnBinding(oldName); + scope.bindings[newName] = binding; + this.binding.identifier.name = newName; + } + if (parentDeclar) { + this.maybeConvertFromClassFunctionDeclaration(path); + this.maybeConvertFromClassFunctionExpression(path); + } + } +} +exports["default"] = Renamer; + +//# sourceMappingURL=renamer.js.map + + +/***/ }), + +/***/ 645: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.traverseNode = traverseNode; +var _context = __webpack_require__(9368); +var _t = __webpack_require__(2139); +const { + VISITOR_KEYS +} = _t; +function traverseNode(node, opts, scope, state, path, skipKeys) { + const keys = VISITOR_KEYS[node.type]; + if (!keys) return false; + const context = new _context.default(scope, opts, state, path); + for (const key of keys) { + if (skipKeys && skipKeys[key]) continue; + if (context.visit(node, key)) { + return true; + } + } + return false; +} + +//# sourceMappingURL=traverse-node.js.map + + +/***/ }), + +/***/ 8275: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.explode = explode; +exports.merge = merge; +exports.verify = verify; +var virtualTypes = __webpack_require__(5788); +var _t = __webpack_require__(2139); +const { + DEPRECATED_KEYS, + FLIPPED_ALIAS_KEYS, + TYPES +} = _t; +function isVirtualType(type) { + return type in virtualTypes; +} +function explode(visitor) { + if (visitor._exploded) return visitor; + visitor._exploded = true; + for (const nodeType of Object.keys(visitor)) { + if (shouldIgnoreKey(nodeType)) continue; + const parts = nodeType.split("|"); + if (parts.length === 1) continue; + const fns = visitor[nodeType]; + delete visitor[nodeType]; + for (const part of parts) { + visitor[part] = fns; + } + } + verify(visitor); + delete visitor.__esModule; + ensureEntranceObjects(visitor); + ensureCallbackArrays(visitor); + for (const nodeType of Object.keys(visitor)) { + if (shouldIgnoreKey(nodeType)) continue; + if (!isVirtualType(nodeType)) continue; + const fns = visitor[nodeType]; + for (const type of Object.keys(fns)) { + fns[type] = wrapCheck(nodeType, fns[type]); + } + delete visitor[nodeType]; + const types = virtualTypes[nodeType]; + if (types !== null) { + for (const type of types) { + if (visitor[type]) { + mergePair(visitor[type], fns); + } else { + visitor[type] = fns; + } + } + } else { + mergePair(visitor, fns); + } + } + for (const nodeType of Object.keys(visitor)) { + if (shouldIgnoreKey(nodeType)) continue; + const fns = visitor[nodeType]; + let aliases = FLIPPED_ALIAS_KEYS[nodeType]; + const deprecatedKey = DEPRECATED_KEYS[nodeType]; + if (deprecatedKey) { + console.trace(`Visitor defined for ${nodeType} but it has been renamed to ${deprecatedKey}`); + aliases = [deprecatedKey]; + } + if (!aliases) continue; + delete visitor[nodeType]; + for (const alias of aliases) { + const existing = visitor[alias]; + if (existing) { + mergePair(existing, fns); + } else { + visitor[alias] = Object.assign({}, fns); + } + } + } + for (const nodeType of Object.keys(visitor)) { + if (shouldIgnoreKey(nodeType)) continue; + ensureCallbackArrays(visitor[nodeType]); + } + return visitor; +} +function verify(visitor) { + if (visitor._verified) return; + if (typeof visitor === "function") { + throw new Error("You passed `traverse()` a function when it expected a visitor object, " + "are you sure you didn't mean `{ enter: Function }`?"); + } + for (const nodeType of Object.keys(visitor)) { + if (nodeType === "enter" || nodeType === "exit") { + validateVisitorMethods(nodeType, visitor[nodeType]); + } + if (shouldIgnoreKey(nodeType)) continue; + if (TYPES.indexOf(nodeType) < 0) { + throw new Error(`You gave us a visitor for the node type ${nodeType} but it's not a valid type`); + } + const visitors = visitor[nodeType]; + if (typeof visitors === "object") { + for (const visitorKey of Object.keys(visitors)) { + if (visitorKey === "enter" || visitorKey === "exit") { + validateVisitorMethods(`${nodeType}.${visitorKey}`, visitors[visitorKey]); + } else { + throw new Error("You passed `traverse()` a visitor object with the property " + `${nodeType} that has the invalid property ${visitorKey}`); + } + } + } + } + visitor._verified = true; +} +function validateVisitorMethods(path, val) { + const fns = [].concat(val); + for (const fn of fns) { + if (typeof fn !== "function") { + throw new TypeError(`Non-function found defined in ${path} with type ${typeof fn}`); + } + } +} +function merge(visitors, states = [], wrapper) { + const rootVisitor = {}; + for (let i = 0; i < visitors.length; i++) { + const visitor = visitors[i]; + const state = states[i]; + explode(visitor); + for (const type of Object.keys(visitor)) { + let visitorType = visitor[type]; + if (state || wrapper) { + visitorType = wrapWithStateOrWrapper(visitorType, state, wrapper); + } + const nodeVisitor = rootVisitor[type] || (rootVisitor[type] = {}); + mergePair(nodeVisitor, visitorType); + } + } + return rootVisitor; +} +function wrapWithStateOrWrapper(oldVisitor, state, wrapper) { + const newVisitor = {}; + for (const key of Object.keys(oldVisitor)) { + let fns = oldVisitor[key]; + if (!Array.isArray(fns)) continue; + fns = fns.map(function (fn) { + let newFn = fn; + if (state) { + newFn = function (path) { + return fn.call(state, path, state); + }; + } + if (wrapper) { + newFn = wrapper(state.key, key, newFn); + } + if (newFn !== fn) { + newFn.toString = () => fn.toString(); + } + return newFn; + }); + newVisitor[key] = fns; + } + return newVisitor; +} +function ensureEntranceObjects(obj) { + for (const key of Object.keys(obj)) { + if (shouldIgnoreKey(key)) continue; + const fns = obj[key]; + if (typeof fns === "function") { + obj[key] = { + enter: fns + }; + } + } +} +function ensureCallbackArrays(obj) { + if (obj.enter && !Array.isArray(obj.enter)) obj.enter = [obj.enter]; + if (obj.exit && !Array.isArray(obj.exit)) obj.exit = [obj.exit]; +} +function wrapCheck(nodeType, fn) { + const newFn = function (path) { + if (path[`is${nodeType}`]()) { + return fn.apply(this, arguments); + } + }; + newFn.toString = () => fn.toString(); + return newFn; +} +function shouldIgnoreKey(key) { + if (key[0] === "_") return true; + if (key === "enter" || key === "exit" || key === "shouldSkip") return true; + if (key === "denylist" || key === "noScope" || key === "skipKeys" || key === "blacklist") { + return true; + } + return false; +} +function mergePair(dest, src) { + for (const key of Object.keys(src)) { + dest[key] = [].concat(dest[key] || [], src[key]); + } +} + +//# sourceMappingURL=visitors.js.map + + +/***/ }), + +/***/ 9161: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = assertNode; +var _isNode = __webpack_require__(1832); +function assertNode(node) { + if (!(0, _isNode.default)(node)) { + var _node$type; + const type = (_node$type = node == null ? void 0 : node.type) != null ? _node$type : JSON.stringify(node); + throw new TypeError(`Not a valid node of type "${type}"`); + } +} + +//# sourceMappingURL=assertNode.js.map + + +/***/ }), + +/***/ 8717: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.assertAccessor = assertAccessor; +exports.assertAnyTypeAnnotation = assertAnyTypeAnnotation; +exports.assertArgumentPlaceholder = assertArgumentPlaceholder; +exports.assertArrayExpression = assertArrayExpression; +exports.assertArrayPattern = assertArrayPattern; +exports.assertArrayTypeAnnotation = assertArrayTypeAnnotation; +exports.assertArrowFunctionExpression = assertArrowFunctionExpression; +exports.assertAssignmentExpression = assertAssignmentExpression; +exports.assertAssignmentPattern = assertAssignmentPattern; +exports.assertAwaitExpression = assertAwaitExpression; +exports.assertBigIntLiteral = assertBigIntLiteral; +exports.assertBinary = assertBinary; +exports.assertBinaryExpression = assertBinaryExpression; +exports.assertBindExpression = assertBindExpression; +exports.assertBlock = assertBlock; +exports.assertBlockParent = assertBlockParent; +exports.assertBlockStatement = assertBlockStatement; +exports.assertBooleanLiteral = assertBooleanLiteral; +exports.assertBooleanLiteralTypeAnnotation = assertBooleanLiteralTypeAnnotation; +exports.assertBooleanTypeAnnotation = assertBooleanTypeAnnotation; +exports.assertBreakStatement = assertBreakStatement; +exports.assertCallExpression = assertCallExpression; +exports.assertCatchClause = assertCatchClause; +exports.assertClass = assertClass; +exports.assertClassAccessorProperty = assertClassAccessorProperty; +exports.assertClassBody = assertClassBody; +exports.assertClassDeclaration = assertClassDeclaration; +exports.assertClassExpression = assertClassExpression; +exports.assertClassImplements = assertClassImplements; +exports.assertClassMethod = assertClassMethod; +exports.assertClassPrivateMethod = assertClassPrivateMethod; +exports.assertClassPrivateProperty = assertClassPrivateProperty; +exports.assertClassProperty = assertClassProperty; +exports.assertCompletionStatement = assertCompletionStatement; +exports.assertConditional = assertConditional; +exports.assertConditionalExpression = assertConditionalExpression; +exports.assertContinueStatement = assertContinueStatement; +exports.assertDebuggerStatement = assertDebuggerStatement; +exports.assertDecimalLiteral = assertDecimalLiteral; +exports.assertDeclaration = assertDeclaration; +exports.assertDeclareClass = assertDeclareClass; +exports.assertDeclareExportAllDeclaration = assertDeclareExportAllDeclaration; +exports.assertDeclareExportDeclaration = assertDeclareExportDeclaration; +exports.assertDeclareFunction = assertDeclareFunction; +exports.assertDeclareInterface = assertDeclareInterface; +exports.assertDeclareModule = assertDeclareModule; +exports.assertDeclareModuleExports = assertDeclareModuleExports; +exports.assertDeclareOpaqueType = assertDeclareOpaqueType; +exports.assertDeclareTypeAlias = assertDeclareTypeAlias; +exports.assertDeclareVariable = assertDeclareVariable; +exports.assertDeclaredPredicate = assertDeclaredPredicate; +exports.assertDecorator = assertDecorator; +exports.assertDirective = assertDirective; +exports.assertDirectiveLiteral = assertDirectiveLiteral; +exports.assertDoExpression = assertDoExpression; +exports.assertDoWhileStatement = assertDoWhileStatement; +exports.assertEmptyStatement = assertEmptyStatement; +exports.assertEmptyTypeAnnotation = assertEmptyTypeAnnotation; +exports.assertEnumBody = assertEnumBody; +exports.assertEnumBooleanBody = assertEnumBooleanBody; +exports.assertEnumBooleanMember = assertEnumBooleanMember; +exports.assertEnumDeclaration = assertEnumDeclaration; +exports.assertEnumDefaultedMember = assertEnumDefaultedMember; +exports.assertEnumMember = assertEnumMember; +exports.assertEnumNumberBody = assertEnumNumberBody; +exports.assertEnumNumberMember = assertEnumNumberMember; +exports.assertEnumStringBody = assertEnumStringBody; +exports.assertEnumStringMember = assertEnumStringMember; +exports.assertEnumSymbolBody = assertEnumSymbolBody; +exports.assertExistsTypeAnnotation = assertExistsTypeAnnotation; +exports.assertExportAllDeclaration = assertExportAllDeclaration; +exports.assertExportDeclaration = assertExportDeclaration; +exports.assertExportDefaultDeclaration = assertExportDefaultDeclaration; +exports.assertExportDefaultSpecifier = assertExportDefaultSpecifier; +exports.assertExportNamedDeclaration = assertExportNamedDeclaration; +exports.assertExportNamespaceSpecifier = assertExportNamespaceSpecifier; +exports.assertExportSpecifier = assertExportSpecifier; +exports.assertExpression = assertExpression; +exports.assertExpressionStatement = assertExpressionStatement; +exports.assertExpressionWrapper = assertExpressionWrapper; +exports.assertFile = assertFile; +exports.assertFlow = assertFlow; +exports.assertFlowBaseAnnotation = assertFlowBaseAnnotation; +exports.assertFlowDeclaration = assertFlowDeclaration; +exports.assertFlowPredicate = assertFlowPredicate; +exports.assertFlowType = assertFlowType; +exports.assertFor = assertFor; +exports.assertForInStatement = assertForInStatement; +exports.assertForOfStatement = assertForOfStatement; +exports.assertForStatement = assertForStatement; +exports.assertForXStatement = assertForXStatement; +exports.assertFunction = assertFunction; +exports.assertFunctionDeclaration = assertFunctionDeclaration; +exports.assertFunctionExpression = assertFunctionExpression; +exports.assertFunctionParent = assertFunctionParent; +exports.assertFunctionTypeAnnotation = assertFunctionTypeAnnotation; +exports.assertFunctionTypeParam = assertFunctionTypeParam; +exports.assertGenericTypeAnnotation = assertGenericTypeAnnotation; +exports.assertIdentifier = assertIdentifier; +exports.assertIfStatement = assertIfStatement; +exports.assertImmutable = assertImmutable; +exports.assertImport = assertImport; +exports.assertImportAttribute = assertImportAttribute; +exports.assertImportDeclaration = assertImportDeclaration; +exports.assertImportDefaultSpecifier = assertImportDefaultSpecifier; +exports.assertImportNamespaceSpecifier = assertImportNamespaceSpecifier; +exports.assertImportSpecifier = assertImportSpecifier; +exports.assertIndexedAccessType = assertIndexedAccessType; +exports.assertInferredPredicate = assertInferredPredicate; +exports.assertInterfaceDeclaration = assertInterfaceDeclaration; +exports.assertInterfaceExtends = assertInterfaceExtends; +exports.assertInterfaceTypeAnnotation = assertInterfaceTypeAnnotation; +exports.assertInterpreterDirective = assertInterpreterDirective; +exports.assertIntersectionTypeAnnotation = assertIntersectionTypeAnnotation; +exports.assertJSX = assertJSX; +exports.assertJSXAttribute = assertJSXAttribute; +exports.assertJSXClosingElement = assertJSXClosingElement; +exports.assertJSXClosingFragment = assertJSXClosingFragment; +exports.assertJSXElement = assertJSXElement; +exports.assertJSXEmptyExpression = assertJSXEmptyExpression; +exports.assertJSXExpressionContainer = assertJSXExpressionContainer; +exports.assertJSXFragment = assertJSXFragment; +exports.assertJSXIdentifier = assertJSXIdentifier; +exports.assertJSXMemberExpression = assertJSXMemberExpression; +exports.assertJSXNamespacedName = assertJSXNamespacedName; +exports.assertJSXOpeningElement = assertJSXOpeningElement; +exports.assertJSXOpeningFragment = assertJSXOpeningFragment; +exports.assertJSXSpreadAttribute = assertJSXSpreadAttribute; +exports.assertJSXSpreadChild = assertJSXSpreadChild; +exports.assertJSXText = assertJSXText; +exports.assertLVal = assertLVal; +exports.assertLabeledStatement = assertLabeledStatement; +exports.assertLiteral = assertLiteral; +exports.assertLogicalExpression = assertLogicalExpression; +exports.assertLoop = assertLoop; +exports.assertMemberExpression = assertMemberExpression; +exports.assertMetaProperty = assertMetaProperty; +exports.assertMethod = assertMethod; +exports.assertMiscellaneous = assertMiscellaneous; +exports.assertMixedTypeAnnotation = assertMixedTypeAnnotation; +exports.assertModuleDeclaration = assertModuleDeclaration; +exports.assertModuleExpression = assertModuleExpression; +exports.assertModuleSpecifier = assertModuleSpecifier; +exports.assertNewExpression = assertNewExpression; +exports.assertNoop = assertNoop; +exports.assertNullLiteral = assertNullLiteral; +exports.assertNullLiteralTypeAnnotation = assertNullLiteralTypeAnnotation; +exports.assertNullableTypeAnnotation = assertNullableTypeAnnotation; +exports.assertNumberLiteral = assertNumberLiteral; +exports.assertNumberLiteralTypeAnnotation = assertNumberLiteralTypeAnnotation; +exports.assertNumberTypeAnnotation = assertNumberTypeAnnotation; +exports.assertNumericLiteral = assertNumericLiteral; +exports.assertObjectExpression = assertObjectExpression; +exports.assertObjectMember = assertObjectMember; +exports.assertObjectMethod = assertObjectMethod; +exports.assertObjectPattern = assertObjectPattern; +exports.assertObjectProperty = assertObjectProperty; +exports.assertObjectTypeAnnotation = assertObjectTypeAnnotation; +exports.assertObjectTypeCallProperty = assertObjectTypeCallProperty; +exports.assertObjectTypeIndexer = assertObjectTypeIndexer; +exports.assertObjectTypeInternalSlot = assertObjectTypeInternalSlot; +exports.assertObjectTypeProperty = assertObjectTypeProperty; +exports.assertObjectTypeSpreadProperty = assertObjectTypeSpreadProperty; +exports.assertOpaqueType = assertOpaqueType; +exports.assertOptionalCallExpression = assertOptionalCallExpression; +exports.assertOptionalIndexedAccessType = assertOptionalIndexedAccessType; +exports.assertOptionalMemberExpression = assertOptionalMemberExpression; +exports.assertParenthesizedExpression = assertParenthesizedExpression; +exports.assertPattern = assertPattern; +exports.assertPatternLike = assertPatternLike; +exports.assertPipelineBareFunction = assertPipelineBareFunction; +exports.assertPipelinePrimaryTopicReference = assertPipelinePrimaryTopicReference; +exports.assertPipelineTopicExpression = assertPipelineTopicExpression; +exports.assertPlaceholder = assertPlaceholder; +exports.assertPrivate = assertPrivate; +exports.assertPrivateName = assertPrivateName; +exports.assertProgram = assertProgram; +exports.assertProperty = assertProperty; +exports.assertPureish = assertPureish; +exports.assertQualifiedTypeIdentifier = assertQualifiedTypeIdentifier; +exports.assertRecordExpression = assertRecordExpression; +exports.assertRegExpLiteral = assertRegExpLiteral; +exports.assertRegexLiteral = assertRegexLiteral; +exports.assertRestElement = assertRestElement; +exports.assertRestProperty = assertRestProperty; +exports.assertReturnStatement = assertReturnStatement; +exports.assertScopable = assertScopable; +exports.assertSequenceExpression = assertSequenceExpression; +exports.assertSpreadElement = assertSpreadElement; +exports.assertSpreadProperty = assertSpreadProperty; +exports.assertStandardized = assertStandardized; +exports.assertStatement = assertStatement; +exports.assertStaticBlock = assertStaticBlock; +exports.assertStringLiteral = assertStringLiteral; +exports.assertStringLiteralTypeAnnotation = assertStringLiteralTypeAnnotation; +exports.assertStringTypeAnnotation = assertStringTypeAnnotation; +exports.assertSuper = assertSuper; +exports.assertSwitchCase = assertSwitchCase; +exports.assertSwitchStatement = assertSwitchStatement; +exports.assertSymbolTypeAnnotation = assertSymbolTypeAnnotation; +exports.assertTSAnyKeyword = assertTSAnyKeyword; +exports.assertTSArrayType = assertTSArrayType; +exports.assertTSAsExpression = assertTSAsExpression; +exports.assertTSBaseType = assertTSBaseType; +exports.assertTSBigIntKeyword = assertTSBigIntKeyword; +exports.assertTSBooleanKeyword = assertTSBooleanKeyword; +exports.assertTSCallSignatureDeclaration = assertTSCallSignatureDeclaration; +exports.assertTSConditionalType = assertTSConditionalType; +exports.assertTSConstructSignatureDeclaration = assertTSConstructSignatureDeclaration; +exports.assertTSConstructorType = assertTSConstructorType; +exports.assertTSDeclareFunction = assertTSDeclareFunction; +exports.assertTSDeclareMethod = assertTSDeclareMethod; +exports.assertTSEntityName = assertTSEntityName; +exports.assertTSEnumDeclaration = assertTSEnumDeclaration; +exports.assertTSEnumMember = assertTSEnumMember; +exports.assertTSExportAssignment = assertTSExportAssignment; +exports.assertTSExpressionWithTypeArguments = assertTSExpressionWithTypeArguments; +exports.assertTSExternalModuleReference = assertTSExternalModuleReference; +exports.assertTSFunctionType = assertTSFunctionType; +exports.assertTSImportEqualsDeclaration = assertTSImportEqualsDeclaration; +exports.assertTSImportType = assertTSImportType; +exports.assertTSIndexSignature = assertTSIndexSignature; +exports.assertTSIndexedAccessType = assertTSIndexedAccessType; +exports.assertTSInferType = assertTSInferType; +exports.assertTSInstantiationExpression = assertTSInstantiationExpression; +exports.assertTSInterfaceBody = assertTSInterfaceBody; +exports.assertTSInterfaceDeclaration = assertTSInterfaceDeclaration; +exports.assertTSIntersectionType = assertTSIntersectionType; +exports.assertTSIntrinsicKeyword = assertTSIntrinsicKeyword; +exports.assertTSLiteralType = assertTSLiteralType; +exports.assertTSMappedType = assertTSMappedType; +exports.assertTSMethodSignature = assertTSMethodSignature; +exports.assertTSModuleBlock = assertTSModuleBlock; +exports.assertTSModuleDeclaration = assertTSModuleDeclaration; +exports.assertTSNamedTupleMember = assertTSNamedTupleMember; +exports.assertTSNamespaceExportDeclaration = assertTSNamespaceExportDeclaration; +exports.assertTSNeverKeyword = assertTSNeverKeyword; +exports.assertTSNonNullExpression = assertTSNonNullExpression; +exports.assertTSNullKeyword = assertTSNullKeyword; +exports.assertTSNumberKeyword = assertTSNumberKeyword; +exports.assertTSObjectKeyword = assertTSObjectKeyword; +exports.assertTSOptionalType = assertTSOptionalType; +exports.assertTSParameterProperty = assertTSParameterProperty; +exports.assertTSParenthesizedType = assertTSParenthesizedType; +exports.assertTSPropertySignature = assertTSPropertySignature; +exports.assertTSQualifiedName = assertTSQualifiedName; +exports.assertTSRestType = assertTSRestType; +exports.assertTSSatisfiesExpression = assertTSSatisfiesExpression; +exports.assertTSStringKeyword = assertTSStringKeyword; +exports.assertTSSymbolKeyword = assertTSSymbolKeyword; +exports.assertTSThisType = assertTSThisType; +exports.assertTSTupleType = assertTSTupleType; +exports.assertTSType = assertTSType; +exports.assertTSTypeAliasDeclaration = assertTSTypeAliasDeclaration; +exports.assertTSTypeAnnotation = assertTSTypeAnnotation; +exports.assertTSTypeAssertion = assertTSTypeAssertion; +exports.assertTSTypeElement = assertTSTypeElement; +exports.assertTSTypeLiteral = assertTSTypeLiteral; +exports.assertTSTypeOperator = assertTSTypeOperator; +exports.assertTSTypeParameter = assertTSTypeParameter; +exports.assertTSTypeParameterDeclaration = assertTSTypeParameterDeclaration; +exports.assertTSTypeParameterInstantiation = assertTSTypeParameterInstantiation; +exports.assertTSTypePredicate = assertTSTypePredicate; +exports.assertTSTypeQuery = assertTSTypeQuery; +exports.assertTSTypeReference = assertTSTypeReference; +exports.assertTSUndefinedKeyword = assertTSUndefinedKeyword; +exports.assertTSUnionType = assertTSUnionType; +exports.assertTSUnknownKeyword = assertTSUnknownKeyword; +exports.assertTSVoidKeyword = assertTSVoidKeyword; +exports.assertTaggedTemplateExpression = assertTaggedTemplateExpression; +exports.assertTemplateElement = assertTemplateElement; +exports.assertTemplateLiteral = assertTemplateLiteral; +exports.assertTerminatorless = assertTerminatorless; +exports.assertThisExpression = assertThisExpression; +exports.assertThisTypeAnnotation = assertThisTypeAnnotation; +exports.assertThrowStatement = assertThrowStatement; +exports.assertTopicReference = assertTopicReference; +exports.assertTryStatement = assertTryStatement; +exports.assertTupleExpression = assertTupleExpression; +exports.assertTupleTypeAnnotation = assertTupleTypeAnnotation; +exports.assertTypeAlias = assertTypeAlias; +exports.assertTypeAnnotation = assertTypeAnnotation; +exports.assertTypeCastExpression = assertTypeCastExpression; +exports.assertTypeParameter = assertTypeParameter; +exports.assertTypeParameterDeclaration = assertTypeParameterDeclaration; +exports.assertTypeParameterInstantiation = assertTypeParameterInstantiation; +exports.assertTypeScript = assertTypeScript; +exports.assertTypeofTypeAnnotation = assertTypeofTypeAnnotation; +exports.assertUnaryExpression = assertUnaryExpression; +exports.assertUnaryLike = assertUnaryLike; +exports.assertUnionTypeAnnotation = assertUnionTypeAnnotation; +exports.assertUpdateExpression = assertUpdateExpression; +exports.assertUserWhitespacable = assertUserWhitespacable; +exports.assertV8IntrinsicIdentifier = assertV8IntrinsicIdentifier; +exports.assertVariableDeclaration = assertVariableDeclaration; +exports.assertVariableDeclarator = assertVariableDeclarator; +exports.assertVariance = assertVariance; +exports.assertVoidTypeAnnotation = assertVoidTypeAnnotation; +exports.assertWhile = assertWhile; +exports.assertWhileStatement = assertWhileStatement; +exports.assertWithStatement = assertWithStatement; +exports.assertYieldExpression = assertYieldExpression; +var _is = __webpack_require__(4477); + +function assert(type, node, opts) { + if (!(0, _is.default)(type, node, opts)) { + throw new Error(`Expected type "${type}" with option ${JSON.stringify(opts)}, ` + `but instead got "${node.type}".`); + } +} +function assertArrayExpression(node, opts) { + assert("ArrayExpression", node, opts); +} +function assertAssignmentExpression(node, opts) { + assert("AssignmentExpression", node, opts); +} +function assertBinaryExpression(node, opts) { + assert("BinaryExpression", node, opts); +} +function assertInterpreterDirective(node, opts) { + assert("InterpreterDirective", node, opts); +} +function assertDirective(node, opts) { + assert("Directive", node, opts); +} +function assertDirectiveLiteral(node, opts) { + assert("DirectiveLiteral", node, opts); +} +function assertBlockStatement(node, opts) { + assert("BlockStatement", node, opts); +} +function assertBreakStatement(node, opts) { + assert("BreakStatement", node, opts); +} +function assertCallExpression(node, opts) { + assert("CallExpression", node, opts); +} +function assertCatchClause(node, opts) { + assert("CatchClause", node, opts); +} +function assertConditionalExpression(node, opts) { + assert("ConditionalExpression", node, opts); +} +function assertContinueStatement(node, opts) { + assert("ContinueStatement", node, opts); +} +function assertDebuggerStatement(node, opts) { + assert("DebuggerStatement", node, opts); +} +function assertDoWhileStatement(node, opts) { + assert("DoWhileStatement", node, opts); +} +function assertEmptyStatement(node, opts) { + assert("EmptyStatement", node, opts); +} +function assertExpressionStatement(node, opts) { + assert("ExpressionStatement", node, opts); +} +function assertFile(node, opts) { + assert("File", node, opts); +} +function assertForInStatement(node, opts) { + assert("ForInStatement", node, opts); +} +function assertForStatement(node, opts) { + assert("ForStatement", node, opts); +} +function assertFunctionDeclaration(node, opts) { + assert("FunctionDeclaration", node, opts); +} +function assertFunctionExpression(node, opts) { + assert("FunctionExpression", node, opts); +} +function assertIdentifier(node, opts) { + assert("Identifier", node, opts); +} +function assertIfStatement(node, opts) { + assert("IfStatement", node, opts); +} +function assertLabeledStatement(node, opts) { + assert("LabeledStatement", node, opts); +} +function assertStringLiteral(node, opts) { + assert("StringLiteral", node, opts); +} +function assertNumericLiteral(node, opts) { + assert("NumericLiteral", node, opts); +} +function assertNullLiteral(node, opts) { + assert("NullLiteral", node, opts); +} +function assertBooleanLiteral(node, opts) { + assert("BooleanLiteral", node, opts); +} +function assertRegExpLiteral(node, opts) { + assert("RegExpLiteral", node, opts); +} +function assertLogicalExpression(node, opts) { + assert("LogicalExpression", node, opts); +} +function assertMemberExpression(node, opts) { + assert("MemberExpression", node, opts); +} +function assertNewExpression(node, opts) { + assert("NewExpression", node, opts); +} +function assertProgram(node, opts) { + assert("Program", node, opts); +} +function assertObjectExpression(node, opts) { + assert("ObjectExpression", node, opts); +} +function assertObjectMethod(node, opts) { + assert("ObjectMethod", node, opts); +} +function assertObjectProperty(node, opts) { + assert("ObjectProperty", node, opts); +} +function assertRestElement(node, opts) { + assert("RestElement", node, opts); +} +function assertReturnStatement(node, opts) { + assert("ReturnStatement", node, opts); +} +function assertSequenceExpression(node, opts) { + assert("SequenceExpression", node, opts); +} +function assertParenthesizedExpression(node, opts) { + assert("ParenthesizedExpression", node, opts); +} +function assertSwitchCase(node, opts) { + assert("SwitchCase", node, opts); +} +function assertSwitchStatement(node, opts) { + assert("SwitchStatement", node, opts); +} +function assertThisExpression(node, opts) { + assert("ThisExpression", node, opts); +} +function assertThrowStatement(node, opts) { + assert("ThrowStatement", node, opts); +} +function assertTryStatement(node, opts) { + assert("TryStatement", node, opts); +} +function assertUnaryExpression(node, opts) { + assert("UnaryExpression", node, opts); +} +function assertUpdateExpression(node, opts) { + assert("UpdateExpression", node, opts); +} +function assertVariableDeclaration(node, opts) { + assert("VariableDeclaration", node, opts); +} +function assertVariableDeclarator(node, opts) { + assert("VariableDeclarator", node, opts); +} +function assertWhileStatement(node, opts) { + assert("WhileStatement", node, opts); +} +function assertWithStatement(node, opts) { + assert("WithStatement", node, opts); +} +function assertAssignmentPattern(node, opts) { + assert("AssignmentPattern", node, opts); +} +function assertArrayPattern(node, opts) { + assert("ArrayPattern", node, opts); +} +function assertArrowFunctionExpression(node, opts) { + assert("ArrowFunctionExpression", node, opts); +} +function assertClassBody(node, opts) { + assert("ClassBody", node, opts); +} +function assertClassExpression(node, opts) { + assert("ClassExpression", node, opts); +} +function assertClassDeclaration(node, opts) { + assert("ClassDeclaration", node, opts); +} +function assertExportAllDeclaration(node, opts) { + assert("ExportAllDeclaration", node, opts); +} +function assertExportDefaultDeclaration(node, opts) { + assert("ExportDefaultDeclaration", node, opts); +} +function assertExportNamedDeclaration(node, opts) { + assert("ExportNamedDeclaration", node, opts); +} +function assertExportSpecifier(node, opts) { + assert("ExportSpecifier", node, opts); +} +function assertForOfStatement(node, opts) { + assert("ForOfStatement", node, opts); +} +function assertImportDeclaration(node, opts) { + assert("ImportDeclaration", node, opts); +} +function assertImportDefaultSpecifier(node, opts) { + assert("ImportDefaultSpecifier", node, opts); +} +function assertImportNamespaceSpecifier(node, opts) { + assert("ImportNamespaceSpecifier", node, opts); +} +function assertImportSpecifier(node, opts) { + assert("ImportSpecifier", node, opts); +} +function assertMetaProperty(node, opts) { + assert("MetaProperty", node, opts); +} +function assertClassMethod(node, opts) { + assert("ClassMethod", node, opts); +} +function assertObjectPattern(node, opts) { + assert("ObjectPattern", node, opts); +} +function assertSpreadElement(node, opts) { + assert("SpreadElement", node, opts); +} +function assertSuper(node, opts) { + assert("Super", node, opts); +} +function assertTaggedTemplateExpression(node, opts) { + assert("TaggedTemplateExpression", node, opts); +} +function assertTemplateElement(node, opts) { + assert("TemplateElement", node, opts); +} +function assertTemplateLiteral(node, opts) { + assert("TemplateLiteral", node, opts); +} +function assertYieldExpression(node, opts) { + assert("YieldExpression", node, opts); +} +function assertAwaitExpression(node, opts) { + assert("AwaitExpression", node, opts); +} +function assertImport(node, opts) { + assert("Import", node, opts); +} +function assertBigIntLiteral(node, opts) { + assert("BigIntLiteral", node, opts); +} +function assertExportNamespaceSpecifier(node, opts) { + assert("ExportNamespaceSpecifier", node, opts); +} +function assertOptionalMemberExpression(node, opts) { + assert("OptionalMemberExpression", node, opts); +} +function assertOptionalCallExpression(node, opts) { + assert("OptionalCallExpression", node, opts); +} +function assertClassProperty(node, opts) { + assert("ClassProperty", node, opts); +} +function assertClassAccessorProperty(node, opts) { + assert("ClassAccessorProperty", node, opts); +} +function assertClassPrivateProperty(node, opts) { + assert("ClassPrivateProperty", node, opts); +} +function assertClassPrivateMethod(node, opts) { + assert("ClassPrivateMethod", node, opts); +} +function assertPrivateName(node, opts) { + assert("PrivateName", node, opts); +} +function assertStaticBlock(node, opts) { + assert("StaticBlock", node, opts); +} +function assertAnyTypeAnnotation(node, opts) { + assert("AnyTypeAnnotation", node, opts); +} +function assertArrayTypeAnnotation(node, opts) { + assert("ArrayTypeAnnotation", node, opts); +} +function assertBooleanTypeAnnotation(node, opts) { + assert("BooleanTypeAnnotation", node, opts); +} +function assertBooleanLiteralTypeAnnotation(node, opts) { + assert("BooleanLiteralTypeAnnotation", node, opts); +} +function assertNullLiteralTypeAnnotation(node, opts) { + assert("NullLiteralTypeAnnotation", node, opts); +} +function assertClassImplements(node, opts) { + assert("ClassImplements", node, opts); +} +function assertDeclareClass(node, opts) { + assert("DeclareClass", node, opts); +} +function assertDeclareFunction(node, opts) { + assert("DeclareFunction", node, opts); +} +function assertDeclareInterface(node, opts) { + assert("DeclareInterface", node, opts); +} +function assertDeclareModule(node, opts) { + assert("DeclareModule", node, opts); +} +function assertDeclareModuleExports(node, opts) { + assert("DeclareModuleExports", node, opts); +} +function assertDeclareTypeAlias(node, opts) { + assert("DeclareTypeAlias", node, opts); +} +function assertDeclareOpaqueType(node, opts) { + assert("DeclareOpaqueType", node, opts); +} +function assertDeclareVariable(node, opts) { + assert("DeclareVariable", node, opts); +} +function assertDeclareExportDeclaration(node, opts) { + assert("DeclareExportDeclaration", node, opts); +} +function assertDeclareExportAllDeclaration(node, opts) { + assert("DeclareExportAllDeclaration", node, opts); +} +function assertDeclaredPredicate(node, opts) { + assert("DeclaredPredicate", node, opts); +} +function assertExistsTypeAnnotation(node, opts) { + assert("ExistsTypeAnnotation", node, opts); +} +function assertFunctionTypeAnnotation(node, opts) { + assert("FunctionTypeAnnotation", node, opts); +} +function assertFunctionTypeParam(node, opts) { + assert("FunctionTypeParam", node, opts); +} +function assertGenericTypeAnnotation(node, opts) { + assert("GenericTypeAnnotation", node, opts); +} +function assertInferredPredicate(node, opts) { + assert("InferredPredicate", node, opts); +} +function assertInterfaceExtends(node, opts) { + assert("InterfaceExtends", node, opts); +} +function assertInterfaceDeclaration(node, opts) { + assert("InterfaceDeclaration", node, opts); +} +function assertInterfaceTypeAnnotation(node, opts) { + assert("InterfaceTypeAnnotation", node, opts); +} +function assertIntersectionTypeAnnotation(node, opts) { + assert("IntersectionTypeAnnotation", node, opts); +} +function assertMixedTypeAnnotation(node, opts) { + assert("MixedTypeAnnotation", node, opts); +} +function assertEmptyTypeAnnotation(node, opts) { + assert("EmptyTypeAnnotation", node, opts); +} +function assertNullableTypeAnnotation(node, opts) { + assert("NullableTypeAnnotation", node, opts); +} +function assertNumberLiteralTypeAnnotation(node, opts) { + assert("NumberLiteralTypeAnnotation", node, opts); +} +function assertNumberTypeAnnotation(node, opts) { + assert("NumberTypeAnnotation", node, opts); +} +function assertObjectTypeAnnotation(node, opts) { + assert("ObjectTypeAnnotation", node, opts); +} +function assertObjectTypeInternalSlot(node, opts) { + assert("ObjectTypeInternalSlot", node, opts); +} +function assertObjectTypeCallProperty(node, opts) { + assert("ObjectTypeCallProperty", node, opts); +} +function assertObjectTypeIndexer(node, opts) { + assert("ObjectTypeIndexer", node, opts); +} +function assertObjectTypeProperty(node, opts) { + assert("ObjectTypeProperty", node, opts); +} +function assertObjectTypeSpreadProperty(node, opts) { + assert("ObjectTypeSpreadProperty", node, opts); +} +function assertOpaqueType(node, opts) { + assert("OpaqueType", node, opts); +} +function assertQualifiedTypeIdentifier(node, opts) { + assert("QualifiedTypeIdentifier", node, opts); +} +function assertStringLiteralTypeAnnotation(node, opts) { + assert("StringLiteralTypeAnnotation", node, opts); +} +function assertStringTypeAnnotation(node, opts) { + assert("StringTypeAnnotation", node, opts); +} +function assertSymbolTypeAnnotation(node, opts) { + assert("SymbolTypeAnnotation", node, opts); +} +function assertThisTypeAnnotation(node, opts) { + assert("ThisTypeAnnotation", node, opts); +} +function assertTupleTypeAnnotation(node, opts) { + assert("TupleTypeAnnotation", node, opts); +} +function assertTypeofTypeAnnotation(node, opts) { + assert("TypeofTypeAnnotation", node, opts); +} +function assertTypeAlias(node, opts) { + assert("TypeAlias", node, opts); +} +function assertTypeAnnotation(node, opts) { + assert("TypeAnnotation", node, opts); +} +function assertTypeCastExpression(node, opts) { + assert("TypeCastExpression", node, opts); +} +function assertTypeParameter(node, opts) { + assert("TypeParameter", node, opts); +} +function assertTypeParameterDeclaration(node, opts) { + assert("TypeParameterDeclaration", node, opts); +} +function assertTypeParameterInstantiation(node, opts) { + assert("TypeParameterInstantiation", node, opts); +} +function assertUnionTypeAnnotation(node, opts) { + assert("UnionTypeAnnotation", node, opts); +} +function assertVariance(node, opts) { + assert("Variance", node, opts); +} +function assertVoidTypeAnnotation(node, opts) { + assert("VoidTypeAnnotation", node, opts); +} +function assertEnumDeclaration(node, opts) { + assert("EnumDeclaration", node, opts); +} +function assertEnumBooleanBody(node, opts) { + assert("EnumBooleanBody", node, opts); +} +function assertEnumNumberBody(node, opts) { + assert("EnumNumberBody", node, opts); +} +function assertEnumStringBody(node, opts) { + assert("EnumStringBody", node, opts); +} +function assertEnumSymbolBody(node, opts) { + assert("EnumSymbolBody", node, opts); +} +function assertEnumBooleanMember(node, opts) { + assert("EnumBooleanMember", node, opts); +} +function assertEnumNumberMember(node, opts) { + assert("EnumNumberMember", node, opts); +} +function assertEnumStringMember(node, opts) { + assert("EnumStringMember", node, opts); +} +function assertEnumDefaultedMember(node, opts) { + assert("EnumDefaultedMember", node, opts); +} +function assertIndexedAccessType(node, opts) { + assert("IndexedAccessType", node, opts); +} +function assertOptionalIndexedAccessType(node, opts) { + assert("OptionalIndexedAccessType", node, opts); +} +function assertJSXAttribute(node, opts) { + assert("JSXAttribute", node, opts); +} +function assertJSXClosingElement(node, opts) { + assert("JSXClosingElement", node, opts); +} +function assertJSXElement(node, opts) { + assert("JSXElement", node, opts); +} +function assertJSXEmptyExpression(node, opts) { + assert("JSXEmptyExpression", node, opts); +} +function assertJSXExpressionContainer(node, opts) { + assert("JSXExpressionContainer", node, opts); +} +function assertJSXSpreadChild(node, opts) { + assert("JSXSpreadChild", node, opts); +} +function assertJSXIdentifier(node, opts) { + assert("JSXIdentifier", node, opts); +} +function assertJSXMemberExpression(node, opts) { + assert("JSXMemberExpression", node, opts); +} +function assertJSXNamespacedName(node, opts) { + assert("JSXNamespacedName", node, opts); +} +function assertJSXOpeningElement(node, opts) { + assert("JSXOpeningElement", node, opts); +} +function assertJSXSpreadAttribute(node, opts) { + assert("JSXSpreadAttribute", node, opts); +} +function assertJSXText(node, opts) { + assert("JSXText", node, opts); +} +function assertJSXFragment(node, opts) { + assert("JSXFragment", node, opts); +} +function assertJSXOpeningFragment(node, opts) { + assert("JSXOpeningFragment", node, opts); +} +function assertJSXClosingFragment(node, opts) { + assert("JSXClosingFragment", node, opts); +} +function assertNoop(node, opts) { + assert("Noop", node, opts); +} +function assertPlaceholder(node, opts) { + assert("Placeholder", node, opts); +} +function assertV8IntrinsicIdentifier(node, opts) { + assert("V8IntrinsicIdentifier", node, opts); +} +function assertArgumentPlaceholder(node, opts) { + assert("ArgumentPlaceholder", node, opts); +} +function assertBindExpression(node, opts) { + assert("BindExpression", node, opts); +} +function assertImportAttribute(node, opts) { + assert("ImportAttribute", node, opts); +} +function assertDecorator(node, opts) { + assert("Decorator", node, opts); +} +function assertDoExpression(node, opts) { + assert("DoExpression", node, opts); +} +function assertExportDefaultSpecifier(node, opts) { + assert("ExportDefaultSpecifier", node, opts); +} +function assertRecordExpression(node, opts) { + assert("RecordExpression", node, opts); +} +function assertTupleExpression(node, opts) { + assert("TupleExpression", node, opts); +} +function assertDecimalLiteral(node, opts) { + assert("DecimalLiteral", node, opts); +} +function assertModuleExpression(node, opts) { + assert("ModuleExpression", node, opts); +} +function assertTopicReference(node, opts) { + assert("TopicReference", node, opts); +} +function assertPipelineTopicExpression(node, opts) { + assert("PipelineTopicExpression", node, opts); +} +function assertPipelineBareFunction(node, opts) { + assert("PipelineBareFunction", node, opts); +} +function assertPipelinePrimaryTopicReference(node, opts) { + assert("PipelinePrimaryTopicReference", node, opts); +} +function assertTSParameterProperty(node, opts) { + assert("TSParameterProperty", node, opts); +} +function assertTSDeclareFunction(node, opts) { + assert("TSDeclareFunction", node, opts); +} +function assertTSDeclareMethod(node, opts) { + assert("TSDeclareMethod", node, opts); +} +function assertTSQualifiedName(node, opts) { + assert("TSQualifiedName", node, opts); +} +function assertTSCallSignatureDeclaration(node, opts) { + assert("TSCallSignatureDeclaration", node, opts); +} +function assertTSConstructSignatureDeclaration(node, opts) { + assert("TSConstructSignatureDeclaration", node, opts); +} +function assertTSPropertySignature(node, opts) { + assert("TSPropertySignature", node, opts); +} +function assertTSMethodSignature(node, opts) { + assert("TSMethodSignature", node, opts); +} +function assertTSIndexSignature(node, opts) { + assert("TSIndexSignature", node, opts); +} +function assertTSAnyKeyword(node, opts) { + assert("TSAnyKeyword", node, opts); +} +function assertTSBooleanKeyword(node, opts) { + assert("TSBooleanKeyword", node, opts); +} +function assertTSBigIntKeyword(node, opts) { + assert("TSBigIntKeyword", node, opts); +} +function assertTSIntrinsicKeyword(node, opts) { + assert("TSIntrinsicKeyword", node, opts); +} +function assertTSNeverKeyword(node, opts) { + assert("TSNeverKeyword", node, opts); +} +function assertTSNullKeyword(node, opts) { + assert("TSNullKeyword", node, opts); +} +function assertTSNumberKeyword(node, opts) { + assert("TSNumberKeyword", node, opts); +} +function assertTSObjectKeyword(node, opts) { + assert("TSObjectKeyword", node, opts); +} +function assertTSStringKeyword(node, opts) { + assert("TSStringKeyword", node, opts); +} +function assertTSSymbolKeyword(node, opts) { + assert("TSSymbolKeyword", node, opts); +} +function assertTSUndefinedKeyword(node, opts) { + assert("TSUndefinedKeyword", node, opts); +} +function assertTSUnknownKeyword(node, opts) { + assert("TSUnknownKeyword", node, opts); +} +function assertTSVoidKeyword(node, opts) { + assert("TSVoidKeyword", node, opts); +} +function assertTSThisType(node, opts) { + assert("TSThisType", node, opts); +} +function assertTSFunctionType(node, opts) { + assert("TSFunctionType", node, opts); +} +function assertTSConstructorType(node, opts) { + assert("TSConstructorType", node, opts); +} +function assertTSTypeReference(node, opts) { + assert("TSTypeReference", node, opts); +} +function assertTSTypePredicate(node, opts) { + assert("TSTypePredicate", node, opts); +} +function assertTSTypeQuery(node, opts) { + assert("TSTypeQuery", node, opts); +} +function assertTSTypeLiteral(node, opts) { + assert("TSTypeLiteral", node, opts); +} +function assertTSArrayType(node, opts) { + assert("TSArrayType", node, opts); +} +function assertTSTupleType(node, opts) { + assert("TSTupleType", node, opts); +} +function assertTSOptionalType(node, opts) { + assert("TSOptionalType", node, opts); +} +function assertTSRestType(node, opts) { + assert("TSRestType", node, opts); +} +function assertTSNamedTupleMember(node, opts) { + assert("TSNamedTupleMember", node, opts); +} +function assertTSUnionType(node, opts) { + assert("TSUnionType", node, opts); +} +function assertTSIntersectionType(node, opts) { + assert("TSIntersectionType", node, opts); +} +function assertTSConditionalType(node, opts) { + assert("TSConditionalType", node, opts); +} +function assertTSInferType(node, opts) { + assert("TSInferType", node, opts); +} +function assertTSParenthesizedType(node, opts) { + assert("TSParenthesizedType", node, opts); +} +function assertTSTypeOperator(node, opts) { + assert("TSTypeOperator", node, opts); +} +function assertTSIndexedAccessType(node, opts) { + assert("TSIndexedAccessType", node, opts); +} +function assertTSMappedType(node, opts) { + assert("TSMappedType", node, opts); +} +function assertTSLiteralType(node, opts) { + assert("TSLiteralType", node, opts); +} +function assertTSExpressionWithTypeArguments(node, opts) { + assert("TSExpressionWithTypeArguments", node, opts); +} +function assertTSInterfaceDeclaration(node, opts) { + assert("TSInterfaceDeclaration", node, opts); +} +function assertTSInterfaceBody(node, opts) { + assert("TSInterfaceBody", node, opts); +} +function assertTSTypeAliasDeclaration(node, opts) { + assert("TSTypeAliasDeclaration", node, opts); +} +function assertTSInstantiationExpression(node, opts) { + assert("TSInstantiationExpression", node, opts); +} +function assertTSAsExpression(node, opts) { + assert("TSAsExpression", node, opts); +} +function assertTSSatisfiesExpression(node, opts) { + assert("TSSatisfiesExpression", node, opts); +} +function assertTSTypeAssertion(node, opts) { + assert("TSTypeAssertion", node, opts); +} +function assertTSEnumDeclaration(node, opts) { + assert("TSEnumDeclaration", node, opts); +} +function assertTSEnumMember(node, opts) { + assert("TSEnumMember", node, opts); +} +function assertTSModuleDeclaration(node, opts) { + assert("TSModuleDeclaration", node, opts); +} +function assertTSModuleBlock(node, opts) { + assert("TSModuleBlock", node, opts); +} +function assertTSImportType(node, opts) { + assert("TSImportType", node, opts); +} +function assertTSImportEqualsDeclaration(node, opts) { + assert("TSImportEqualsDeclaration", node, opts); +} +function assertTSExternalModuleReference(node, opts) { + assert("TSExternalModuleReference", node, opts); +} +function assertTSNonNullExpression(node, opts) { + assert("TSNonNullExpression", node, opts); +} +function assertTSExportAssignment(node, opts) { + assert("TSExportAssignment", node, opts); +} +function assertTSNamespaceExportDeclaration(node, opts) { + assert("TSNamespaceExportDeclaration", node, opts); +} +function assertTSTypeAnnotation(node, opts) { + assert("TSTypeAnnotation", node, opts); +} +function assertTSTypeParameterInstantiation(node, opts) { + assert("TSTypeParameterInstantiation", node, opts); +} +function assertTSTypeParameterDeclaration(node, opts) { + assert("TSTypeParameterDeclaration", node, opts); +} +function assertTSTypeParameter(node, opts) { + assert("TSTypeParameter", node, opts); +} +function assertStandardized(node, opts) { + assert("Standardized", node, opts); +} +function assertExpression(node, opts) { + assert("Expression", node, opts); +} +function assertBinary(node, opts) { + assert("Binary", node, opts); +} +function assertScopable(node, opts) { + assert("Scopable", node, opts); +} +function assertBlockParent(node, opts) { + assert("BlockParent", node, opts); +} +function assertBlock(node, opts) { + assert("Block", node, opts); +} +function assertStatement(node, opts) { + assert("Statement", node, opts); +} +function assertTerminatorless(node, opts) { + assert("Terminatorless", node, opts); +} +function assertCompletionStatement(node, opts) { + assert("CompletionStatement", node, opts); +} +function assertConditional(node, opts) { + assert("Conditional", node, opts); +} +function assertLoop(node, opts) { + assert("Loop", node, opts); +} +function assertWhile(node, opts) { + assert("While", node, opts); +} +function assertExpressionWrapper(node, opts) { + assert("ExpressionWrapper", node, opts); +} +function assertFor(node, opts) { + assert("For", node, opts); +} +function assertForXStatement(node, opts) { + assert("ForXStatement", node, opts); +} +function assertFunction(node, opts) { + assert("Function", node, opts); +} +function assertFunctionParent(node, opts) { + assert("FunctionParent", node, opts); +} +function assertPureish(node, opts) { + assert("Pureish", node, opts); +} +function assertDeclaration(node, opts) { + assert("Declaration", node, opts); +} +function assertPatternLike(node, opts) { + assert("PatternLike", node, opts); +} +function assertLVal(node, opts) { + assert("LVal", node, opts); +} +function assertTSEntityName(node, opts) { + assert("TSEntityName", node, opts); +} +function assertLiteral(node, opts) { + assert("Literal", node, opts); +} +function assertImmutable(node, opts) { + assert("Immutable", node, opts); +} +function assertUserWhitespacable(node, opts) { + assert("UserWhitespacable", node, opts); +} +function assertMethod(node, opts) { + assert("Method", node, opts); +} +function assertObjectMember(node, opts) { + assert("ObjectMember", node, opts); +} +function assertProperty(node, opts) { + assert("Property", node, opts); +} +function assertUnaryLike(node, opts) { + assert("UnaryLike", node, opts); +} +function assertPattern(node, opts) { + assert("Pattern", node, opts); +} +function assertClass(node, opts) { + assert("Class", node, opts); +} +function assertModuleDeclaration(node, opts) { + assert("ModuleDeclaration", node, opts); +} +function assertExportDeclaration(node, opts) { + assert("ExportDeclaration", node, opts); +} +function assertModuleSpecifier(node, opts) { + assert("ModuleSpecifier", node, opts); +} +function assertAccessor(node, opts) { + assert("Accessor", node, opts); +} +function assertPrivate(node, opts) { + assert("Private", node, opts); +} +function assertFlow(node, opts) { + assert("Flow", node, opts); +} +function assertFlowType(node, opts) { + assert("FlowType", node, opts); +} +function assertFlowBaseAnnotation(node, opts) { + assert("FlowBaseAnnotation", node, opts); +} +function assertFlowDeclaration(node, opts) { + assert("FlowDeclaration", node, opts); +} +function assertFlowPredicate(node, opts) { + assert("FlowPredicate", node, opts); +} +function assertEnumBody(node, opts) { + assert("EnumBody", node, opts); +} +function assertEnumMember(node, opts) { + assert("EnumMember", node, opts); +} +function assertJSX(node, opts) { + assert("JSX", node, opts); +} +function assertMiscellaneous(node, opts) { + assert("Miscellaneous", node, opts); +} +function assertTypeScript(node, opts) { + assert("TypeScript", node, opts); +} +function assertTSTypeElement(node, opts) { + assert("TSTypeElement", node, opts); +} +function assertTSType(node, opts) { + assert("TSType", node, opts); +} +function assertTSBaseType(node, opts) { + assert("TSBaseType", node, opts); +} +function assertNumberLiteral(node, opts) { + console.trace("The node type NumberLiteral has been renamed to NumericLiteral"); + assert("NumberLiteral", node, opts); +} +function assertRegexLiteral(node, opts) { + console.trace("The node type RegexLiteral has been renamed to RegExpLiteral"); + assert("RegexLiteral", node, opts); +} +function assertRestProperty(node, opts) { + console.trace("The node type RestProperty has been renamed to RestElement"); + assert("RestProperty", node, opts); +} +function assertSpreadProperty(node, opts) { + console.trace("The node type SpreadProperty has been renamed to SpreadElement"); + assert("SpreadProperty", node, opts); +} + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 2640: +/***/ (function() { + + + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 2230: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = createFlowUnionType; +var _generated = __webpack_require__(4204); +var _removeTypeDuplicates = __webpack_require__(6099); +function createFlowUnionType(types) { + const flattened = (0, _removeTypeDuplicates.default)(types); + if (flattened.length === 1) { + return flattened[0]; + } else { + return (0, _generated.unionTypeAnnotation)(flattened); + } +} + +//# sourceMappingURL=createFlowUnionType.js.map + + +/***/ }), + +/***/ 6833: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +var _generated = __webpack_require__(4204); +var _default = createTypeAnnotationBasedOnTypeof; +exports["default"] = _default; +function createTypeAnnotationBasedOnTypeof(type) { + switch (type) { + case "string": + return (0, _generated.stringTypeAnnotation)(); + case "number": + return (0, _generated.numberTypeAnnotation)(); + case "undefined": + return (0, _generated.voidTypeAnnotation)(); + case "boolean": + return (0, _generated.booleanTypeAnnotation)(); + case "function": + return (0, _generated.genericTypeAnnotation)((0, _generated.identifier)("Function")); + case "object": + return (0, _generated.genericTypeAnnotation)((0, _generated.identifier)("Object")); + case "symbol": + return (0, _generated.genericTypeAnnotation)((0, _generated.identifier)("Symbol")); + case "bigint": + return (0, _generated.anyTypeAnnotation)(); + } + throw new Error("Invalid typeof value: " + type); +} + +//# sourceMappingURL=createTypeAnnotationBasedOnTypeof.js.map + + +/***/ }), + +/***/ 4204: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.anyTypeAnnotation = anyTypeAnnotation; +exports.argumentPlaceholder = argumentPlaceholder; +exports.arrayExpression = arrayExpression; +exports.arrayPattern = arrayPattern; +exports.arrayTypeAnnotation = arrayTypeAnnotation; +exports.arrowFunctionExpression = arrowFunctionExpression; +exports.assignmentExpression = assignmentExpression; +exports.assignmentPattern = assignmentPattern; +exports.awaitExpression = awaitExpression; +exports.bigIntLiteral = bigIntLiteral; +exports.binaryExpression = binaryExpression; +exports.bindExpression = bindExpression; +exports.blockStatement = blockStatement; +exports.booleanLiteral = booleanLiteral; +exports.booleanLiteralTypeAnnotation = booleanLiteralTypeAnnotation; +exports.booleanTypeAnnotation = booleanTypeAnnotation; +exports.breakStatement = breakStatement; +exports.callExpression = callExpression; +exports.catchClause = catchClause; +exports.classAccessorProperty = classAccessorProperty; +exports.classBody = classBody; +exports.classDeclaration = classDeclaration; +exports.classExpression = classExpression; +exports.classImplements = classImplements; +exports.classMethod = classMethod; +exports.classPrivateMethod = classPrivateMethod; +exports.classPrivateProperty = classPrivateProperty; +exports.classProperty = classProperty; +exports.conditionalExpression = conditionalExpression; +exports.continueStatement = continueStatement; +exports.debuggerStatement = debuggerStatement; +exports.decimalLiteral = decimalLiteral; +exports.declareClass = declareClass; +exports.declareExportAllDeclaration = declareExportAllDeclaration; +exports.declareExportDeclaration = declareExportDeclaration; +exports.declareFunction = declareFunction; +exports.declareInterface = declareInterface; +exports.declareModule = declareModule; +exports.declareModuleExports = declareModuleExports; +exports.declareOpaqueType = declareOpaqueType; +exports.declareTypeAlias = declareTypeAlias; +exports.declareVariable = declareVariable; +exports.declaredPredicate = declaredPredicate; +exports.decorator = decorator; +exports.directive = directive; +exports.directiveLiteral = directiveLiteral; +exports.doExpression = doExpression; +exports.doWhileStatement = doWhileStatement; +exports.emptyStatement = emptyStatement; +exports.emptyTypeAnnotation = emptyTypeAnnotation; +exports.enumBooleanBody = enumBooleanBody; +exports.enumBooleanMember = enumBooleanMember; +exports.enumDeclaration = enumDeclaration; +exports.enumDefaultedMember = enumDefaultedMember; +exports.enumNumberBody = enumNumberBody; +exports.enumNumberMember = enumNumberMember; +exports.enumStringBody = enumStringBody; +exports.enumStringMember = enumStringMember; +exports.enumSymbolBody = enumSymbolBody; +exports.existsTypeAnnotation = existsTypeAnnotation; +exports.exportAllDeclaration = exportAllDeclaration; +exports.exportDefaultDeclaration = exportDefaultDeclaration; +exports.exportDefaultSpecifier = exportDefaultSpecifier; +exports.exportNamedDeclaration = exportNamedDeclaration; +exports.exportNamespaceSpecifier = exportNamespaceSpecifier; +exports.exportSpecifier = exportSpecifier; +exports.expressionStatement = expressionStatement; +exports.file = file; +exports.forInStatement = forInStatement; +exports.forOfStatement = forOfStatement; +exports.forStatement = forStatement; +exports.functionDeclaration = functionDeclaration; +exports.functionExpression = functionExpression; +exports.functionTypeAnnotation = functionTypeAnnotation; +exports.functionTypeParam = functionTypeParam; +exports.genericTypeAnnotation = genericTypeAnnotation; +exports.identifier = identifier; +exports.ifStatement = ifStatement; +exports["import"] = _import; +exports.importAttribute = importAttribute; +exports.importDeclaration = importDeclaration; +exports.importDefaultSpecifier = importDefaultSpecifier; +exports.importNamespaceSpecifier = importNamespaceSpecifier; +exports.importSpecifier = importSpecifier; +exports.indexedAccessType = indexedAccessType; +exports.inferredPredicate = inferredPredicate; +exports.interfaceDeclaration = interfaceDeclaration; +exports.interfaceExtends = interfaceExtends; +exports.interfaceTypeAnnotation = interfaceTypeAnnotation; +exports.interpreterDirective = interpreterDirective; +exports.intersectionTypeAnnotation = intersectionTypeAnnotation; +exports.jSXAttribute = exports.jsxAttribute = jsxAttribute; +exports.jSXClosingElement = exports.jsxClosingElement = jsxClosingElement; +exports.jSXClosingFragment = exports.jsxClosingFragment = jsxClosingFragment; +exports.jSXElement = exports.jsxElement = jsxElement; +exports.jSXEmptyExpression = exports.jsxEmptyExpression = jsxEmptyExpression; +exports.jSXExpressionContainer = exports.jsxExpressionContainer = jsxExpressionContainer; +exports.jSXFragment = exports.jsxFragment = jsxFragment; +exports.jSXIdentifier = exports.jsxIdentifier = jsxIdentifier; +exports.jSXMemberExpression = exports.jsxMemberExpression = jsxMemberExpression; +exports.jSXNamespacedName = exports.jsxNamespacedName = jsxNamespacedName; +exports.jSXOpeningElement = exports.jsxOpeningElement = jsxOpeningElement; +exports.jSXOpeningFragment = exports.jsxOpeningFragment = jsxOpeningFragment; +exports.jSXSpreadAttribute = exports.jsxSpreadAttribute = jsxSpreadAttribute; +exports.jSXSpreadChild = exports.jsxSpreadChild = jsxSpreadChild; +exports.jSXText = exports.jsxText = jsxText; +exports.labeledStatement = labeledStatement; +exports.logicalExpression = logicalExpression; +exports.memberExpression = memberExpression; +exports.metaProperty = metaProperty; +exports.mixedTypeAnnotation = mixedTypeAnnotation; +exports.moduleExpression = moduleExpression; +exports.newExpression = newExpression; +exports.noop = noop; +exports.nullLiteral = nullLiteral; +exports.nullLiteralTypeAnnotation = nullLiteralTypeAnnotation; +exports.nullableTypeAnnotation = nullableTypeAnnotation; +exports.numberLiteral = NumberLiteral; +exports.numberLiteralTypeAnnotation = numberLiteralTypeAnnotation; +exports.numberTypeAnnotation = numberTypeAnnotation; +exports.numericLiteral = numericLiteral; +exports.objectExpression = objectExpression; +exports.objectMethod = objectMethod; +exports.objectPattern = objectPattern; +exports.objectProperty = objectProperty; +exports.objectTypeAnnotation = objectTypeAnnotation; +exports.objectTypeCallProperty = objectTypeCallProperty; +exports.objectTypeIndexer = objectTypeIndexer; +exports.objectTypeInternalSlot = objectTypeInternalSlot; +exports.objectTypeProperty = objectTypeProperty; +exports.objectTypeSpreadProperty = objectTypeSpreadProperty; +exports.opaqueType = opaqueType; +exports.optionalCallExpression = optionalCallExpression; +exports.optionalIndexedAccessType = optionalIndexedAccessType; +exports.optionalMemberExpression = optionalMemberExpression; +exports.parenthesizedExpression = parenthesizedExpression; +exports.pipelineBareFunction = pipelineBareFunction; +exports.pipelinePrimaryTopicReference = pipelinePrimaryTopicReference; +exports.pipelineTopicExpression = pipelineTopicExpression; +exports.placeholder = placeholder; +exports.privateName = privateName; +exports.program = program; +exports.qualifiedTypeIdentifier = qualifiedTypeIdentifier; +exports.recordExpression = recordExpression; +exports.regExpLiteral = regExpLiteral; +exports.regexLiteral = RegexLiteral; +exports.restElement = restElement; +exports.restProperty = RestProperty; +exports.returnStatement = returnStatement; +exports.sequenceExpression = sequenceExpression; +exports.spreadElement = spreadElement; +exports.spreadProperty = SpreadProperty; +exports.staticBlock = staticBlock; +exports.stringLiteral = stringLiteral; +exports.stringLiteralTypeAnnotation = stringLiteralTypeAnnotation; +exports.stringTypeAnnotation = stringTypeAnnotation; +exports["super"] = _super; +exports.switchCase = switchCase; +exports.switchStatement = switchStatement; +exports.symbolTypeAnnotation = symbolTypeAnnotation; +exports.taggedTemplateExpression = taggedTemplateExpression; +exports.templateElement = templateElement; +exports.templateLiteral = templateLiteral; +exports.thisExpression = thisExpression; +exports.thisTypeAnnotation = thisTypeAnnotation; +exports.throwStatement = throwStatement; +exports.topicReference = topicReference; +exports.tryStatement = tryStatement; +exports.tSAnyKeyword = exports.tsAnyKeyword = tsAnyKeyword; +exports.tSArrayType = exports.tsArrayType = tsArrayType; +exports.tSAsExpression = exports.tsAsExpression = tsAsExpression; +exports.tSBigIntKeyword = exports.tsBigIntKeyword = tsBigIntKeyword; +exports.tSBooleanKeyword = exports.tsBooleanKeyword = tsBooleanKeyword; +exports.tSCallSignatureDeclaration = exports.tsCallSignatureDeclaration = tsCallSignatureDeclaration; +exports.tSConditionalType = exports.tsConditionalType = tsConditionalType; +exports.tSConstructSignatureDeclaration = exports.tsConstructSignatureDeclaration = tsConstructSignatureDeclaration; +exports.tSConstructorType = exports.tsConstructorType = tsConstructorType; +exports.tSDeclareFunction = exports.tsDeclareFunction = tsDeclareFunction; +exports.tSDeclareMethod = exports.tsDeclareMethod = tsDeclareMethod; +exports.tSEnumDeclaration = exports.tsEnumDeclaration = tsEnumDeclaration; +exports.tSEnumMember = exports.tsEnumMember = tsEnumMember; +exports.tSExportAssignment = exports.tsExportAssignment = tsExportAssignment; +exports.tSExpressionWithTypeArguments = exports.tsExpressionWithTypeArguments = tsExpressionWithTypeArguments; +exports.tSExternalModuleReference = exports.tsExternalModuleReference = tsExternalModuleReference; +exports.tSFunctionType = exports.tsFunctionType = tsFunctionType; +exports.tSImportEqualsDeclaration = exports.tsImportEqualsDeclaration = tsImportEqualsDeclaration; +exports.tSImportType = exports.tsImportType = tsImportType; +exports.tSIndexSignature = exports.tsIndexSignature = tsIndexSignature; +exports.tSIndexedAccessType = exports.tsIndexedAccessType = tsIndexedAccessType; +exports.tSInferType = exports.tsInferType = tsInferType; +exports.tSInstantiationExpression = exports.tsInstantiationExpression = tsInstantiationExpression; +exports.tSInterfaceBody = exports.tsInterfaceBody = tsInterfaceBody; +exports.tSInterfaceDeclaration = exports.tsInterfaceDeclaration = tsInterfaceDeclaration; +exports.tSIntersectionType = exports.tsIntersectionType = tsIntersectionType; +exports.tSIntrinsicKeyword = exports.tsIntrinsicKeyword = tsIntrinsicKeyword; +exports.tSLiteralType = exports.tsLiteralType = tsLiteralType; +exports.tSMappedType = exports.tsMappedType = tsMappedType; +exports.tSMethodSignature = exports.tsMethodSignature = tsMethodSignature; +exports.tSModuleBlock = exports.tsModuleBlock = tsModuleBlock; +exports.tSModuleDeclaration = exports.tsModuleDeclaration = tsModuleDeclaration; +exports.tSNamedTupleMember = exports.tsNamedTupleMember = tsNamedTupleMember; +exports.tSNamespaceExportDeclaration = exports.tsNamespaceExportDeclaration = tsNamespaceExportDeclaration; +exports.tSNeverKeyword = exports.tsNeverKeyword = tsNeverKeyword; +exports.tSNonNullExpression = exports.tsNonNullExpression = tsNonNullExpression; +exports.tSNullKeyword = exports.tsNullKeyword = tsNullKeyword; +exports.tSNumberKeyword = exports.tsNumberKeyword = tsNumberKeyword; +exports.tSObjectKeyword = exports.tsObjectKeyword = tsObjectKeyword; +exports.tSOptionalType = exports.tsOptionalType = tsOptionalType; +exports.tSParameterProperty = exports.tsParameterProperty = tsParameterProperty; +exports.tSParenthesizedType = exports.tsParenthesizedType = tsParenthesizedType; +exports.tSPropertySignature = exports.tsPropertySignature = tsPropertySignature; +exports.tSQualifiedName = exports.tsQualifiedName = tsQualifiedName; +exports.tSRestType = exports.tsRestType = tsRestType; +exports.tSSatisfiesExpression = exports.tsSatisfiesExpression = tsSatisfiesExpression; +exports.tSStringKeyword = exports.tsStringKeyword = tsStringKeyword; +exports.tSSymbolKeyword = exports.tsSymbolKeyword = tsSymbolKeyword; +exports.tSThisType = exports.tsThisType = tsThisType; +exports.tSTupleType = exports.tsTupleType = tsTupleType; +exports.tSTypeAliasDeclaration = exports.tsTypeAliasDeclaration = tsTypeAliasDeclaration; +exports.tSTypeAnnotation = exports.tsTypeAnnotation = tsTypeAnnotation; +exports.tSTypeAssertion = exports.tsTypeAssertion = tsTypeAssertion; +exports.tSTypeLiteral = exports.tsTypeLiteral = tsTypeLiteral; +exports.tSTypeOperator = exports.tsTypeOperator = tsTypeOperator; +exports.tSTypeParameter = exports.tsTypeParameter = tsTypeParameter; +exports.tSTypeParameterDeclaration = exports.tsTypeParameterDeclaration = tsTypeParameterDeclaration; +exports.tSTypeParameterInstantiation = exports.tsTypeParameterInstantiation = tsTypeParameterInstantiation; +exports.tSTypePredicate = exports.tsTypePredicate = tsTypePredicate; +exports.tSTypeQuery = exports.tsTypeQuery = tsTypeQuery; +exports.tSTypeReference = exports.tsTypeReference = tsTypeReference; +exports.tSUndefinedKeyword = exports.tsUndefinedKeyword = tsUndefinedKeyword; +exports.tSUnionType = exports.tsUnionType = tsUnionType; +exports.tSUnknownKeyword = exports.tsUnknownKeyword = tsUnknownKeyword; +exports.tSVoidKeyword = exports.tsVoidKeyword = tsVoidKeyword; +exports.tupleExpression = tupleExpression; +exports.tupleTypeAnnotation = tupleTypeAnnotation; +exports.typeAlias = typeAlias; +exports.typeAnnotation = typeAnnotation; +exports.typeCastExpression = typeCastExpression; +exports.typeParameter = typeParameter; +exports.typeParameterDeclaration = typeParameterDeclaration; +exports.typeParameterInstantiation = typeParameterInstantiation; +exports.typeofTypeAnnotation = typeofTypeAnnotation; +exports.unaryExpression = unaryExpression; +exports.unionTypeAnnotation = unionTypeAnnotation; +exports.updateExpression = updateExpression; +exports.v8IntrinsicIdentifier = v8IntrinsicIdentifier; +exports.variableDeclaration = variableDeclaration; +exports.variableDeclarator = variableDeclarator; +exports.variance = variance; +exports.voidTypeAnnotation = voidTypeAnnotation; +exports.whileStatement = whileStatement; +exports.withStatement = withStatement; +exports.yieldExpression = yieldExpression; +var _validateNode = __webpack_require__(1013); + +function arrayExpression(elements = []) { + return (0, _validateNode.default)({ + type: "ArrayExpression", + elements + }); +} +function assignmentExpression(operator, left, right) { + return (0, _validateNode.default)({ + type: "AssignmentExpression", + operator, + left, + right + }); +} +function binaryExpression(operator, left, right) { + return (0, _validateNode.default)({ + type: "BinaryExpression", + operator, + left, + right + }); +} +function interpreterDirective(value) { + return (0, _validateNode.default)({ + type: "InterpreterDirective", + value + }); +} +function directive(value) { + return (0, _validateNode.default)({ + type: "Directive", + value + }); +} +function directiveLiteral(value) { + return (0, _validateNode.default)({ + type: "DirectiveLiteral", + value + }); +} +function blockStatement(body, directives = []) { + return (0, _validateNode.default)({ + type: "BlockStatement", + body, + directives + }); +} +function breakStatement(label = null) { + return (0, _validateNode.default)({ + type: "BreakStatement", + label + }); +} +function callExpression(callee, _arguments) { + return (0, _validateNode.default)({ + type: "CallExpression", + callee, + arguments: _arguments + }); +} +function catchClause(param = null, body) { + return (0, _validateNode.default)({ + type: "CatchClause", + param, + body + }); +} +function conditionalExpression(test, consequent, alternate) { + return (0, _validateNode.default)({ + type: "ConditionalExpression", + test, + consequent, + alternate + }); +} +function continueStatement(label = null) { + return (0, _validateNode.default)({ + type: "ContinueStatement", + label + }); +} +function debuggerStatement() { + return { + type: "DebuggerStatement" + }; +} +function doWhileStatement(test, body) { + return (0, _validateNode.default)({ + type: "DoWhileStatement", + test, + body + }); +} +function emptyStatement() { + return { + type: "EmptyStatement" + }; +} +function expressionStatement(expression) { + return (0, _validateNode.default)({ + type: "ExpressionStatement", + expression + }); +} +function file(program, comments = null, tokens = null) { + return (0, _validateNode.default)({ + type: "File", + program, + comments, + tokens + }); +} +function forInStatement(left, right, body) { + return (0, _validateNode.default)({ + type: "ForInStatement", + left, + right, + body + }); +} +function forStatement(init = null, test = null, update = null, body) { + return (0, _validateNode.default)({ + type: "ForStatement", + init, + test, + update, + body + }); +} +function functionDeclaration(id = null, params, body, generator = false, async = false) { + return (0, _validateNode.default)({ + type: "FunctionDeclaration", + id, + params, + body, + generator, + async + }); +} +function functionExpression(id = null, params, body, generator = false, async = false) { + return (0, _validateNode.default)({ + type: "FunctionExpression", + id, + params, + body, + generator, + async + }); +} +function identifier(name) { + return (0, _validateNode.default)({ + type: "Identifier", + name + }); +} +function ifStatement(test, consequent, alternate = null) { + return (0, _validateNode.default)({ + type: "IfStatement", + test, + consequent, + alternate + }); +} +function labeledStatement(label, body) { + return (0, _validateNode.default)({ + type: "LabeledStatement", + label, + body + }); +} +function stringLiteral(value) { + return (0, _validateNode.default)({ + type: "StringLiteral", + value + }); +} +function numericLiteral(value) { + return (0, _validateNode.default)({ + type: "NumericLiteral", + value + }); +} +function nullLiteral() { + return { + type: "NullLiteral" + }; +} +function booleanLiteral(value) { + return (0, _validateNode.default)({ + type: "BooleanLiteral", + value + }); +} +function regExpLiteral(pattern, flags = "") { + return (0, _validateNode.default)({ + type: "RegExpLiteral", + pattern, + flags + }); +} +function logicalExpression(operator, left, right) { + return (0, _validateNode.default)({ + type: "LogicalExpression", + operator, + left, + right + }); +} +function memberExpression(object, property, computed = false, optional = null) { + return (0, _validateNode.default)({ + type: "MemberExpression", + object, + property, + computed, + optional + }); +} +function newExpression(callee, _arguments) { + return (0, _validateNode.default)({ + type: "NewExpression", + callee, + arguments: _arguments + }); +} +function program(body, directives = [], sourceType = "script", interpreter = null) { + return (0, _validateNode.default)({ + type: "Program", + body, + directives, + sourceType, + interpreter, + sourceFile: null + }); +} +function objectExpression(properties) { + return (0, _validateNode.default)({ + type: "ObjectExpression", + properties + }); +} +function objectMethod(kind = "method", key, params, body, computed = false, generator = false, async = false) { + return (0, _validateNode.default)({ + type: "ObjectMethod", + kind, + key, + params, + body, + computed, + generator, + async + }); +} +function objectProperty(key, value, computed = false, shorthand = false, decorators = null) { + return (0, _validateNode.default)({ + type: "ObjectProperty", + key, + value, + computed, + shorthand, + decorators + }); +} +function restElement(argument) { + return (0, _validateNode.default)({ + type: "RestElement", + argument + }); +} +function returnStatement(argument = null) { + return (0, _validateNode.default)({ + type: "ReturnStatement", + argument + }); +} +function sequenceExpression(expressions) { + return (0, _validateNode.default)({ + type: "SequenceExpression", + expressions + }); +} +function parenthesizedExpression(expression) { + return (0, _validateNode.default)({ + type: "ParenthesizedExpression", + expression + }); +} +function switchCase(test = null, consequent) { + return (0, _validateNode.default)({ + type: "SwitchCase", + test, + consequent + }); +} +function switchStatement(discriminant, cases) { + return (0, _validateNode.default)({ + type: "SwitchStatement", + discriminant, + cases + }); +} +function thisExpression() { + return { + type: "ThisExpression" + }; +} +function throwStatement(argument) { + return (0, _validateNode.default)({ + type: "ThrowStatement", + argument + }); +} +function tryStatement(block, handler = null, finalizer = null) { + return (0, _validateNode.default)({ + type: "TryStatement", + block, + handler, + finalizer + }); +} +function unaryExpression(operator, argument, prefix = true) { + return (0, _validateNode.default)({ + type: "UnaryExpression", + operator, + argument, + prefix + }); +} +function updateExpression(operator, argument, prefix = false) { + return (0, _validateNode.default)({ + type: "UpdateExpression", + operator, + argument, + prefix + }); +} +function variableDeclaration(kind, declarations) { + return (0, _validateNode.default)({ + type: "VariableDeclaration", + kind, + declarations + }); +} +function variableDeclarator(id, init = null) { + return (0, _validateNode.default)({ + type: "VariableDeclarator", + id, + init + }); +} +function whileStatement(test, body) { + return (0, _validateNode.default)({ + type: "WhileStatement", + test, + body + }); +} +function withStatement(object, body) { + return (0, _validateNode.default)({ + type: "WithStatement", + object, + body + }); +} +function assignmentPattern(left, right) { + return (0, _validateNode.default)({ + type: "AssignmentPattern", + left, + right + }); +} +function arrayPattern(elements) { + return (0, _validateNode.default)({ + type: "ArrayPattern", + elements + }); +} +function arrowFunctionExpression(params, body, async = false) { + return (0, _validateNode.default)({ + type: "ArrowFunctionExpression", + params, + body, + async, + expression: null + }); +} +function classBody(body) { + return (0, _validateNode.default)({ + type: "ClassBody", + body + }); +} +function classExpression(id = null, superClass = null, body, decorators = null) { + return (0, _validateNode.default)({ + type: "ClassExpression", + id, + superClass, + body, + decorators + }); +} +function classDeclaration(id, superClass = null, body, decorators = null) { + return (0, _validateNode.default)({ + type: "ClassDeclaration", + id, + superClass, + body, + decorators + }); +} +function exportAllDeclaration(source) { + return (0, _validateNode.default)({ + type: "ExportAllDeclaration", + source + }); +} +function exportDefaultDeclaration(declaration) { + return (0, _validateNode.default)({ + type: "ExportDefaultDeclaration", + declaration + }); +} +function exportNamedDeclaration(declaration = null, specifiers = [], source = null) { + return (0, _validateNode.default)({ + type: "ExportNamedDeclaration", + declaration, + specifiers, + source + }); +} +function exportSpecifier(local, exported) { + return (0, _validateNode.default)({ + type: "ExportSpecifier", + local, + exported + }); +} +function forOfStatement(left, right, body, _await = false) { + return (0, _validateNode.default)({ + type: "ForOfStatement", + left, + right, + body, + await: _await + }); +} +function importDeclaration(specifiers, source) { + return (0, _validateNode.default)({ + type: "ImportDeclaration", + specifiers, + source + }); +} +function importDefaultSpecifier(local) { + return (0, _validateNode.default)({ + type: "ImportDefaultSpecifier", + local + }); +} +function importNamespaceSpecifier(local) { + return (0, _validateNode.default)({ + type: "ImportNamespaceSpecifier", + local + }); +} +function importSpecifier(local, imported) { + return (0, _validateNode.default)({ + type: "ImportSpecifier", + local, + imported + }); +} +function metaProperty(meta, property) { + return (0, _validateNode.default)({ + type: "MetaProperty", + meta, + property + }); +} +function classMethod(kind = "method", key, params, body, computed = false, _static = false, generator = false, async = false) { + return (0, _validateNode.default)({ + type: "ClassMethod", + kind, + key, + params, + body, + computed, + static: _static, + generator, + async + }); +} +function objectPattern(properties) { + return (0, _validateNode.default)({ + type: "ObjectPattern", + properties + }); +} +function spreadElement(argument) { + return (0, _validateNode.default)({ + type: "SpreadElement", + argument + }); +} +function _super() { + return { + type: "Super" + }; +} +function taggedTemplateExpression(tag, quasi) { + return (0, _validateNode.default)({ + type: "TaggedTemplateExpression", + tag, + quasi + }); +} +function templateElement(value, tail = false) { + return (0, _validateNode.default)({ + type: "TemplateElement", + value, + tail + }); +} +function templateLiteral(quasis, expressions) { + return (0, _validateNode.default)({ + type: "TemplateLiteral", + quasis, + expressions + }); +} +function yieldExpression(argument = null, delegate = false) { + return (0, _validateNode.default)({ + type: "YieldExpression", + argument, + delegate + }); +} +function awaitExpression(argument) { + return (0, _validateNode.default)({ + type: "AwaitExpression", + argument + }); +} +function _import() { + return { + type: "Import" + }; +} +function bigIntLiteral(value) { + return (0, _validateNode.default)({ + type: "BigIntLiteral", + value + }); +} +function exportNamespaceSpecifier(exported) { + return (0, _validateNode.default)({ + type: "ExportNamespaceSpecifier", + exported + }); +} +function optionalMemberExpression(object, property, computed = false, optional) { + return (0, _validateNode.default)({ + type: "OptionalMemberExpression", + object, + property, + computed, + optional + }); +} +function optionalCallExpression(callee, _arguments, optional) { + return (0, _validateNode.default)({ + type: "OptionalCallExpression", + callee, + arguments: _arguments, + optional + }); +} +function classProperty(key, value = null, typeAnnotation = null, decorators = null, computed = false, _static = false) { + return (0, _validateNode.default)({ + type: "ClassProperty", + key, + value, + typeAnnotation, + decorators, + computed, + static: _static + }); +} +function classAccessorProperty(key, value = null, typeAnnotation = null, decorators = null, computed = false, _static = false) { + return (0, _validateNode.default)({ + type: "ClassAccessorProperty", + key, + value, + typeAnnotation, + decorators, + computed, + static: _static + }); +} +function classPrivateProperty(key, value = null, decorators = null, _static = false) { + return (0, _validateNode.default)({ + type: "ClassPrivateProperty", + key, + value, + decorators, + static: _static + }); +} +function classPrivateMethod(kind = "method", key, params, body, _static = false) { + return (0, _validateNode.default)({ + type: "ClassPrivateMethod", + kind, + key, + params, + body, + static: _static + }); +} +function privateName(id) { + return (0, _validateNode.default)({ + type: "PrivateName", + id + }); +} +function staticBlock(body) { + return (0, _validateNode.default)({ + type: "StaticBlock", + body + }); +} +function anyTypeAnnotation() { + return { + type: "AnyTypeAnnotation" + }; +} +function arrayTypeAnnotation(elementType) { + return (0, _validateNode.default)({ + type: "ArrayTypeAnnotation", + elementType + }); +} +function booleanTypeAnnotation() { + return { + type: "BooleanTypeAnnotation" + }; +} +function booleanLiteralTypeAnnotation(value) { + return (0, _validateNode.default)({ + type: "BooleanLiteralTypeAnnotation", + value + }); +} +function nullLiteralTypeAnnotation() { + return { + type: "NullLiteralTypeAnnotation" + }; +} +function classImplements(id, typeParameters = null) { + return (0, _validateNode.default)({ + type: "ClassImplements", + id, + typeParameters + }); +} +function declareClass(id, typeParameters = null, _extends = null, body) { + return (0, _validateNode.default)({ + type: "DeclareClass", + id, + typeParameters, + extends: _extends, + body + }); +} +function declareFunction(id) { + return (0, _validateNode.default)({ + type: "DeclareFunction", + id + }); +} +function declareInterface(id, typeParameters = null, _extends = null, body) { + return (0, _validateNode.default)({ + type: "DeclareInterface", + id, + typeParameters, + extends: _extends, + body + }); +} +function declareModule(id, body, kind = null) { + return (0, _validateNode.default)({ + type: "DeclareModule", + id, + body, + kind + }); +} +function declareModuleExports(typeAnnotation) { + return (0, _validateNode.default)({ + type: "DeclareModuleExports", + typeAnnotation + }); +} +function declareTypeAlias(id, typeParameters = null, right) { + return (0, _validateNode.default)({ + type: "DeclareTypeAlias", + id, + typeParameters, + right + }); +} +function declareOpaqueType(id, typeParameters = null, supertype = null) { + return (0, _validateNode.default)({ + type: "DeclareOpaqueType", + id, + typeParameters, + supertype + }); +} +function declareVariable(id) { + return (0, _validateNode.default)({ + type: "DeclareVariable", + id + }); +} +function declareExportDeclaration(declaration = null, specifiers = null, source = null) { + return (0, _validateNode.default)({ + type: "DeclareExportDeclaration", + declaration, + specifiers, + source + }); +} +function declareExportAllDeclaration(source) { + return (0, _validateNode.default)({ + type: "DeclareExportAllDeclaration", + source + }); +} +function declaredPredicate(value) { + return (0, _validateNode.default)({ + type: "DeclaredPredicate", + value + }); +} +function existsTypeAnnotation() { + return { + type: "ExistsTypeAnnotation" + }; +} +function functionTypeAnnotation(typeParameters = null, params, rest = null, returnType) { + return (0, _validateNode.default)({ + type: "FunctionTypeAnnotation", + typeParameters, + params, + rest, + returnType + }); +} +function functionTypeParam(name = null, typeAnnotation) { + return (0, _validateNode.default)({ + type: "FunctionTypeParam", + name, + typeAnnotation + }); +} +function genericTypeAnnotation(id, typeParameters = null) { + return (0, _validateNode.default)({ + type: "GenericTypeAnnotation", + id, + typeParameters + }); +} +function inferredPredicate() { + return { + type: "InferredPredicate" + }; +} +function interfaceExtends(id, typeParameters = null) { + return (0, _validateNode.default)({ + type: "InterfaceExtends", + id, + typeParameters + }); +} +function interfaceDeclaration(id, typeParameters = null, _extends = null, body) { + return (0, _validateNode.default)({ + type: "InterfaceDeclaration", + id, + typeParameters, + extends: _extends, + body + }); +} +function interfaceTypeAnnotation(_extends = null, body) { + return (0, _validateNode.default)({ + type: "InterfaceTypeAnnotation", + extends: _extends, + body + }); +} +function intersectionTypeAnnotation(types) { + return (0, _validateNode.default)({ + type: "IntersectionTypeAnnotation", + types + }); +} +function mixedTypeAnnotation() { + return { + type: "MixedTypeAnnotation" + }; +} +function emptyTypeAnnotation() { + return { + type: "EmptyTypeAnnotation" + }; +} +function nullableTypeAnnotation(typeAnnotation) { + return (0, _validateNode.default)({ + type: "NullableTypeAnnotation", + typeAnnotation + }); +} +function numberLiteralTypeAnnotation(value) { + return (0, _validateNode.default)({ + type: "NumberLiteralTypeAnnotation", + value + }); +} +function numberTypeAnnotation() { + return { + type: "NumberTypeAnnotation" + }; +} +function objectTypeAnnotation(properties, indexers = [], callProperties = [], internalSlots = [], exact = false) { + return (0, _validateNode.default)({ + type: "ObjectTypeAnnotation", + properties, + indexers, + callProperties, + internalSlots, + exact + }); +} +function objectTypeInternalSlot(id, value, optional, _static, method) { + return (0, _validateNode.default)({ + type: "ObjectTypeInternalSlot", + id, + value, + optional, + static: _static, + method + }); +} +function objectTypeCallProperty(value) { + return (0, _validateNode.default)({ + type: "ObjectTypeCallProperty", + value, + static: null + }); +} +function objectTypeIndexer(id = null, key, value, variance = null) { + return (0, _validateNode.default)({ + type: "ObjectTypeIndexer", + id, + key, + value, + variance, + static: null + }); +} +function objectTypeProperty(key, value, variance = null) { + return (0, _validateNode.default)({ + type: "ObjectTypeProperty", + key, + value, + variance, + kind: null, + method: null, + optional: null, + proto: null, + static: null + }); +} +function objectTypeSpreadProperty(argument) { + return (0, _validateNode.default)({ + type: "ObjectTypeSpreadProperty", + argument + }); +} +function opaqueType(id, typeParameters = null, supertype = null, impltype) { + return (0, _validateNode.default)({ + type: "OpaqueType", + id, + typeParameters, + supertype, + impltype + }); +} +function qualifiedTypeIdentifier(id, qualification) { + return (0, _validateNode.default)({ + type: "QualifiedTypeIdentifier", + id, + qualification + }); +} +function stringLiteralTypeAnnotation(value) { + return (0, _validateNode.default)({ + type: "StringLiteralTypeAnnotation", + value + }); +} +function stringTypeAnnotation() { + return { + type: "StringTypeAnnotation" + }; +} +function symbolTypeAnnotation() { + return { + type: "SymbolTypeAnnotation" + }; +} +function thisTypeAnnotation() { + return { + type: "ThisTypeAnnotation" + }; +} +function tupleTypeAnnotation(types) { + return (0, _validateNode.default)({ + type: "TupleTypeAnnotation", + types + }); +} +function typeofTypeAnnotation(argument) { + return (0, _validateNode.default)({ + type: "TypeofTypeAnnotation", + argument + }); +} +function typeAlias(id, typeParameters = null, right) { + return (0, _validateNode.default)({ + type: "TypeAlias", + id, + typeParameters, + right + }); +} +function typeAnnotation(typeAnnotation) { + return (0, _validateNode.default)({ + type: "TypeAnnotation", + typeAnnotation + }); +} +function typeCastExpression(expression, typeAnnotation) { + return (0, _validateNode.default)({ + type: "TypeCastExpression", + expression, + typeAnnotation + }); +} +function typeParameter(bound = null, _default = null, variance = null) { + return (0, _validateNode.default)({ + type: "TypeParameter", + bound, + default: _default, + variance, + name: null + }); +} +function typeParameterDeclaration(params) { + return (0, _validateNode.default)({ + type: "TypeParameterDeclaration", + params + }); +} +function typeParameterInstantiation(params) { + return (0, _validateNode.default)({ + type: "TypeParameterInstantiation", + params + }); +} +function unionTypeAnnotation(types) { + return (0, _validateNode.default)({ + type: "UnionTypeAnnotation", + types + }); +} +function variance(kind) { + return (0, _validateNode.default)({ + type: "Variance", + kind + }); +} +function voidTypeAnnotation() { + return { + type: "VoidTypeAnnotation" + }; +} +function enumDeclaration(id, body) { + return (0, _validateNode.default)({ + type: "EnumDeclaration", + id, + body + }); +} +function enumBooleanBody(members) { + return (0, _validateNode.default)({ + type: "EnumBooleanBody", + members, + explicitType: null, + hasUnknownMembers: null + }); +} +function enumNumberBody(members) { + return (0, _validateNode.default)({ + type: "EnumNumberBody", + members, + explicitType: null, + hasUnknownMembers: null + }); +} +function enumStringBody(members) { + return (0, _validateNode.default)({ + type: "EnumStringBody", + members, + explicitType: null, + hasUnknownMembers: null + }); +} +function enumSymbolBody(members) { + return (0, _validateNode.default)({ + type: "EnumSymbolBody", + members, + hasUnknownMembers: null + }); +} +function enumBooleanMember(id) { + return (0, _validateNode.default)({ + type: "EnumBooleanMember", + id, + init: null + }); +} +function enumNumberMember(id, init) { + return (0, _validateNode.default)({ + type: "EnumNumberMember", + id, + init + }); +} +function enumStringMember(id, init) { + return (0, _validateNode.default)({ + type: "EnumStringMember", + id, + init + }); +} +function enumDefaultedMember(id) { + return (0, _validateNode.default)({ + type: "EnumDefaultedMember", + id + }); +} +function indexedAccessType(objectType, indexType) { + return (0, _validateNode.default)({ + type: "IndexedAccessType", + objectType, + indexType + }); +} +function optionalIndexedAccessType(objectType, indexType) { + return (0, _validateNode.default)({ + type: "OptionalIndexedAccessType", + objectType, + indexType, + optional: null + }); +} +function jsxAttribute(name, value = null) { + return (0, _validateNode.default)({ + type: "JSXAttribute", + name, + value + }); +} +function jsxClosingElement(name) { + return (0, _validateNode.default)({ + type: "JSXClosingElement", + name + }); +} +function jsxElement(openingElement, closingElement = null, children, selfClosing = null) { + return (0, _validateNode.default)({ + type: "JSXElement", + openingElement, + closingElement, + children, + selfClosing + }); +} +function jsxEmptyExpression() { + return { + type: "JSXEmptyExpression" + }; +} +function jsxExpressionContainer(expression) { + return (0, _validateNode.default)({ + type: "JSXExpressionContainer", + expression + }); +} +function jsxSpreadChild(expression) { + return (0, _validateNode.default)({ + type: "JSXSpreadChild", + expression + }); +} +function jsxIdentifier(name) { + return (0, _validateNode.default)({ + type: "JSXIdentifier", + name + }); +} +function jsxMemberExpression(object, property) { + return (0, _validateNode.default)({ + type: "JSXMemberExpression", + object, + property + }); +} +function jsxNamespacedName(namespace, name) { + return (0, _validateNode.default)({ + type: "JSXNamespacedName", + namespace, + name + }); +} +function jsxOpeningElement(name, attributes, selfClosing = false) { + return (0, _validateNode.default)({ + type: "JSXOpeningElement", + name, + attributes, + selfClosing + }); +} +function jsxSpreadAttribute(argument) { + return (0, _validateNode.default)({ + type: "JSXSpreadAttribute", + argument + }); +} +function jsxText(value) { + return (0, _validateNode.default)({ + type: "JSXText", + value + }); +} +function jsxFragment(openingFragment, closingFragment, children) { + return (0, _validateNode.default)({ + type: "JSXFragment", + openingFragment, + closingFragment, + children + }); +} +function jsxOpeningFragment() { + return { + type: "JSXOpeningFragment" + }; +} +function jsxClosingFragment() { + return { + type: "JSXClosingFragment" + }; +} +function noop() { + return { + type: "Noop" + }; +} +function placeholder(expectedNode, name) { + return (0, _validateNode.default)({ + type: "Placeholder", + expectedNode, + name + }); +} +function v8IntrinsicIdentifier(name) { + return (0, _validateNode.default)({ + type: "V8IntrinsicIdentifier", + name + }); +} +function argumentPlaceholder() { + return { + type: "ArgumentPlaceholder" + }; +} +function bindExpression(object, callee) { + return (0, _validateNode.default)({ + type: "BindExpression", + object, + callee + }); +} +function importAttribute(key, value) { + return (0, _validateNode.default)({ + type: "ImportAttribute", + key, + value + }); +} +function decorator(expression) { + return (0, _validateNode.default)({ + type: "Decorator", + expression + }); +} +function doExpression(body, async = false) { + return (0, _validateNode.default)({ + type: "DoExpression", + body, + async + }); +} +function exportDefaultSpecifier(exported) { + return (0, _validateNode.default)({ + type: "ExportDefaultSpecifier", + exported + }); +} +function recordExpression(properties) { + return (0, _validateNode.default)({ + type: "RecordExpression", + properties + }); +} +function tupleExpression(elements = []) { + return (0, _validateNode.default)({ + type: "TupleExpression", + elements + }); +} +function decimalLiteral(value) { + return (0, _validateNode.default)({ + type: "DecimalLiteral", + value + }); +} +function moduleExpression(body) { + return (0, _validateNode.default)({ + type: "ModuleExpression", + body + }); +} +function topicReference() { + return { + type: "TopicReference" + }; +} +function pipelineTopicExpression(expression) { + return (0, _validateNode.default)({ + type: "PipelineTopicExpression", + expression + }); +} +function pipelineBareFunction(callee) { + return (0, _validateNode.default)({ + type: "PipelineBareFunction", + callee + }); +} +function pipelinePrimaryTopicReference() { + return { + type: "PipelinePrimaryTopicReference" + }; +} +function tsParameterProperty(parameter) { + return (0, _validateNode.default)({ + type: "TSParameterProperty", + parameter + }); +} +function tsDeclareFunction(id = null, typeParameters = null, params, returnType = null) { + return (0, _validateNode.default)({ + type: "TSDeclareFunction", + id, + typeParameters, + params, + returnType + }); +} +function tsDeclareMethod(decorators = null, key, typeParameters = null, params, returnType = null) { + return (0, _validateNode.default)({ + type: "TSDeclareMethod", + decorators, + key, + typeParameters, + params, + returnType + }); +} +function tsQualifiedName(left, right) { + return (0, _validateNode.default)({ + type: "TSQualifiedName", + left, + right + }); +} +function tsCallSignatureDeclaration(typeParameters = null, parameters, typeAnnotation = null) { + return (0, _validateNode.default)({ + type: "TSCallSignatureDeclaration", + typeParameters, + parameters, + typeAnnotation + }); +} +function tsConstructSignatureDeclaration(typeParameters = null, parameters, typeAnnotation = null) { + return (0, _validateNode.default)({ + type: "TSConstructSignatureDeclaration", + typeParameters, + parameters, + typeAnnotation + }); +} +function tsPropertySignature(key, typeAnnotation = null, initializer = null) { + return (0, _validateNode.default)({ + type: "TSPropertySignature", + key, + typeAnnotation, + initializer, + kind: null + }); +} +function tsMethodSignature(key, typeParameters = null, parameters, typeAnnotation = null) { + return (0, _validateNode.default)({ + type: "TSMethodSignature", + key, + typeParameters, + parameters, + typeAnnotation, + kind: null + }); +} +function tsIndexSignature(parameters, typeAnnotation = null) { + return (0, _validateNode.default)({ + type: "TSIndexSignature", + parameters, + typeAnnotation + }); +} +function tsAnyKeyword() { + return { + type: "TSAnyKeyword" + }; +} +function tsBooleanKeyword() { + return { + type: "TSBooleanKeyword" + }; +} +function tsBigIntKeyword() { + return { + type: "TSBigIntKeyword" + }; +} +function tsIntrinsicKeyword() { + return { + type: "TSIntrinsicKeyword" + }; +} +function tsNeverKeyword() { + return { + type: "TSNeverKeyword" + }; +} +function tsNullKeyword() { + return { + type: "TSNullKeyword" + }; +} +function tsNumberKeyword() { + return { + type: "TSNumberKeyword" + }; +} +function tsObjectKeyword() { + return { + type: "TSObjectKeyword" + }; +} +function tsStringKeyword() { + return { + type: "TSStringKeyword" + }; +} +function tsSymbolKeyword() { + return { + type: "TSSymbolKeyword" + }; +} +function tsUndefinedKeyword() { + return { + type: "TSUndefinedKeyword" + }; +} +function tsUnknownKeyword() { + return { + type: "TSUnknownKeyword" + }; +} +function tsVoidKeyword() { + return { + type: "TSVoidKeyword" + }; +} +function tsThisType() { + return { + type: "TSThisType" + }; +} +function tsFunctionType(typeParameters = null, parameters, typeAnnotation = null) { + return (0, _validateNode.default)({ + type: "TSFunctionType", + typeParameters, + parameters, + typeAnnotation + }); +} +function tsConstructorType(typeParameters = null, parameters, typeAnnotation = null) { + return (0, _validateNode.default)({ + type: "TSConstructorType", + typeParameters, + parameters, + typeAnnotation + }); +} +function tsTypeReference(typeName, typeParameters = null) { + return (0, _validateNode.default)({ + type: "TSTypeReference", + typeName, + typeParameters + }); +} +function tsTypePredicate(parameterName, typeAnnotation = null, asserts = null) { + return (0, _validateNode.default)({ + type: "TSTypePredicate", + parameterName, + typeAnnotation, + asserts + }); +} +function tsTypeQuery(exprName, typeParameters = null) { + return (0, _validateNode.default)({ + type: "TSTypeQuery", + exprName, + typeParameters + }); +} +function tsTypeLiteral(members) { + return (0, _validateNode.default)({ + type: "TSTypeLiteral", + members + }); +} +function tsArrayType(elementType) { + return (0, _validateNode.default)({ + type: "TSArrayType", + elementType + }); +} +function tsTupleType(elementTypes) { + return (0, _validateNode.default)({ + type: "TSTupleType", + elementTypes + }); +} +function tsOptionalType(typeAnnotation) { + return (0, _validateNode.default)({ + type: "TSOptionalType", + typeAnnotation + }); +} +function tsRestType(typeAnnotation) { + return (0, _validateNode.default)({ + type: "TSRestType", + typeAnnotation + }); +} +function tsNamedTupleMember(label, elementType, optional = false) { + return (0, _validateNode.default)({ + type: "TSNamedTupleMember", + label, + elementType, + optional + }); +} +function tsUnionType(types) { + return (0, _validateNode.default)({ + type: "TSUnionType", + types + }); +} +function tsIntersectionType(types) { + return (0, _validateNode.default)({ + type: "TSIntersectionType", + types + }); +} +function tsConditionalType(checkType, extendsType, trueType, falseType) { + return (0, _validateNode.default)({ + type: "TSConditionalType", + checkType, + extendsType, + trueType, + falseType + }); +} +function tsInferType(typeParameter) { + return (0, _validateNode.default)({ + type: "TSInferType", + typeParameter + }); +} +function tsParenthesizedType(typeAnnotation) { + return (0, _validateNode.default)({ + type: "TSParenthesizedType", + typeAnnotation + }); +} +function tsTypeOperator(typeAnnotation) { + return (0, _validateNode.default)({ + type: "TSTypeOperator", + typeAnnotation, + operator: null + }); +} +function tsIndexedAccessType(objectType, indexType) { + return (0, _validateNode.default)({ + type: "TSIndexedAccessType", + objectType, + indexType + }); +} +function tsMappedType(typeParameter, typeAnnotation = null, nameType = null) { + return (0, _validateNode.default)({ + type: "TSMappedType", + typeParameter, + typeAnnotation, + nameType + }); +} +function tsLiteralType(literal) { + return (0, _validateNode.default)({ + type: "TSLiteralType", + literal + }); +} +function tsExpressionWithTypeArguments(expression, typeParameters = null) { + return (0, _validateNode.default)({ + type: "TSExpressionWithTypeArguments", + expression, + typeParameters + }); +} +function tsInterfaceDeclaration(id, typeParameters = null, _extends = null, body) { + return (0, _validateNode.default)({ + type: "TSInterfaceDeclaration", + id, + typeParameters, + extends: _extends, + body + }); +} +function tsInterfaceBody(body) { + return (0, _validateNode.default)({ + type: "TSInterfaceBody", + body + }); +} +function tsTypeAliasDeclaration(id, typeParameters = null, typeAnnotation) { + return (0, _validateNode.default)({ + type: "TSTypeAliasDeclaration", + id, + typeParameters, + typeAnnotation + }); +} +function tsInstantiationExpression(expression, typeParameters = null) { + return (0, _validateNode.default)({ + type: "TSInstantiationExpression", + expression, + typeParameters + }); +} +function tsAsExpression(expression, typeAnnotation) { + return (0, _validateNode.default)({ + type: "TSAsExpression", + expression, + typeAnnotation + }); +} +function tsSatisfiesExpression(expression, typeAnnotation) { + return (0, _validateNode.default)({ + type: "TSSatisfiesExpression", + expression, + typeAnnotation + }); +} +function tsTypeAssertion(typeAnnotation, expression) { + return (0, _validateNode.default)({ + type: "TSTypeAssertion", + typeAnnotation, + expression + }); +} +function tsEnumDeclaration(id, members) { + return (0, _validateNode.default)({ + type: "TSEnumDeclaration", + id, + members + }); +} +function tsEnumMember(id, initializer = null) { + return (0, _validateNode.default)({ + type: "TSEnumMember", + id, + initializer + }); +} +function tsModuleDeclaration(id, body) { + return (0, _validateNode.default)({ + type: "TSModuleDeclaration", + id, + body + }); +} +function tsModuleBlock(body) { + return (0, _validateNode.default)({ + type: "TSModuleBlock", + body + }); +} +function tsImportType(argument, qualifier = null, typeParameters = null) { + return (0, _validateNode.default)({ + type: "TSImportType", + argument, + qualifier, + typeParameters + }); +} +function tsImportEqualsDeclaration(id, moduleReference) { + return (0, _validateNode.default)({ + type: "TSImportEqualsDeclaration", + id, + moduleReference, + isExport: null + }); +} +function tsExternalModuleReference(expression) { + return (0, _validateNode.default)({ + type: "TSExternalModuleReference", + expression + }); +} +function tsNonNullExpression(expression) { + return (0, _validateNode.default)({ + type: "TSNonNullExpression", + expression + }); +} +function tsExportAssignment(expression) { + return (0, _validateNode.default)({ + type: "TSExportAssignment", + expression + }); +} +function tsNamespaceExportDeclaration(id) { + return (0, _validateNode.default)({ + type: "TSNamespaceExportDeclaration", + id + }); +} +function tsTypeAnnotation(typeAnnotation) { + return (0, _validateNode.default)({ + type: "TSTypeAnnotation", + typeAnnotation + }); +} +function tsTypeParameterInstantiation(params) { + return (0, _validateNode.default)({ + type: "TSTypeParameterInstantiation", + params + }); +} +function tsTypeParameterDeclaration(params) { + return (0, _validateNode.default)({ + type: "TSTypeParameterDeclaration", + params + }); +} +function tsTypeParameter(constraint = null, _default = null, name) { + return (0, _validateNode.default)({ + type: "TSTypeParameter", + constraint, + default: _default, + name + }); +} +function NumberLiteral(value) { + console.trace("The node type NumberLiteral has been renamed to NumericLiteral"); + return numericLiteral(value); +} +function RegexLiteral(pattern, flags = "") { + console.trace("The node type RegexLiteral has been renamed to RegExpLiteral"); + return regExpLiteral(pattern, flags); +} +function RestProperty(argument) { + console.trace("The node type RestProperty has been renamed to RestElement"); + return restElement(argument); +} +function SpreadProperty(argument) { + console.trace("The node type SpreadProperty has been renamed to SpreadElement"); + return spreadElement(argument); +} + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 4694: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +Object.defineProperty(exports, "AnyTypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.anyTypeAnnotation; + } +})); +Object.defineProperty(exports, "ArgumentPlaceholder", ({ + enumerable: true, + get: function () { + return _index.argumentPlaceholder; + } +})); +Object.defineProperty(exports, "ArrayExpression", ({ + enumerable: true, + get: function () { + return _index.arrayExpression; + } +})); +Object.defineProperty(exports, "ArrayPattern", ({ + enumerable: true, + get: function () { + return _index.arrayPattern; + } +})); +Object.defineProperty(exports, "ArrayTypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.arrayTypeAnnotation; + } +})); +Object.defineProperty(exports, "ArrowFunctionExpression", ({ + enumerable: true, + get: function () { + return _index.arrowFunctionExpression; + } +})); +Object.defineProperty(exports, "AssignmentExpression", ({ + enumerable: true, + get: function () { + return _index.assignmentExpression; + } +})); +Object.defineProperty(exports, "AssignmentPattern", ({ + enumerable: true, + get: function () { + return _index.assignmentPattern; + } +})); +Object.defineProperty(exports, "AwaitExpression", ({ + enumerable: true, + get: function () { + return _index.awaitExpression; + } +})); +Object.defineProperty(exports, "BigIntLiteral", ({ + enumerable: true, + get: function () { + return _index.bigIntLiteral; + } +})); +Object.defineProperty(exports, "BinaryExpression", ({ + enumerable: true, + get: function () { + return _index.binaryExpression; + } +})); +Object.defineProperty(exports, "BindExpression", ({ + enumerable: true, + get: function () { + return _index.bindExpression; + } +})); +Object.defineProperty(exports, "BlockStatement", ({ + enumerable: true, + get: function () { + return _index.blockStatement; + } +})); +Object.defineProperty(exports, "BooleanLiteral", ({ + enumerable: true, + get: function () { + return _index.booleanLiteral; + } +})); +Object.defineProperty(exports, "BooleanLiteralTypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.booleanLiteralTypeAnnotation; + } +})); +Object.defineProperty(exports, "BooleanTypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.booleanTypeAnnotation; + } +})); +Object.defineProperty(exports, "BreakStatement", ({ + enumerable: true, + get: function () { + return _index.breakStatement; + } +})); +Object.defineProperty(exports, "CallExpression", ({ + enumerable: true, + get: function () { + return _index.callExpression; + } +})); +Object.defineProperty(exports, "CatchClause", ({ + enumerable: true, + get: function () { + return _index.catchClause; + } +})); +Object.defineProperty(exports, "ClassAccessorProperty", ({ + enumerable: true, + get: function () { + return _index.classAccessorProperty; + } +})); +Object.defineProperty(exports, "ClassBody", ({ + enumerable: true, + get: function () { + return _index.classBody; + } +})); +Object.defineProperty(exports, "ClassDeclaration", ({ + enumerable: true, + get: function () { + return _index.classDeclaration; + } +})); +Object.defineProperty(exports, "ClassExpression", ({ + enumerable: true, + get: function () { + return _index.classExpression; + } +})); +Object.defineProperty(exports, "ClassImplements", ({ + enumerable: true, + get: function () { + return _index.classImplements; + } +})); +Object.defineProperty(exports, "ClassMethod", ({ + enumerable: true, + get: function () { + return _index.classMethod; + } +})); +Object.defineProperty(exports, "ClassPrivateMethod", ({ + enumerable: true, + get: function () { + return _index.classPrivateMethod; + } +})); +Object.defineProperty(exports, "ClassPrivateProperty", ({ + enumerable: true, + get: function () { + return _index.classPrivateProperty; + } +})); +Object.defineProperty(exports, "ClassProperty", ({ + enumerable: true, + get: function () { + return _index.classProperty; + } +})); +Object.defineProperty(exports, "ConditionalExpression", ({ + enumerable: true, + get: function () { + return _index.conditionalExpression; + } +})); +Object.defineProperty(exports, "ContinueStatement", ({ + enumerable: true, + get: function () { + return _index.continueStatement; + } +})); +Object.defineProperty(exports, "DebuggerStatement", ({ + enumerable: true, + get: function () { + return _index.debuggerStatement; + } +})); +Object.defineProperty(exports, "DecimalLiteral", ({ + enumerable: true, + get: function () { + return _index.decimalLiteral; + } +})); +Object.defineProperty(exports, "DeclareClass", ({ + enumerable: true, + get: function () { + return _index.declareClass; + } +})); +Object.defineProperty(exports, "DeclareExportAllDeclaration", ({ + enumerable: true, + get: function () { + return _index.declareExportAllDeclaration; + } +})); +Object.defineProperty(exports, "DeclareExportDeclaration", ({ + enumerable: true, + get: function () { + return _index.declareExportDeclaration; + } +})); +Object.defineProperty(exports, "DeclareFunction", ({ + enumerable: true, + get: function () { + return _index.declareFunction; + } +})); +Object.defineProperty(exports, "DeclareInterface", ({ + enumerable: true, + get: function () { + return _index.declareInterface; + } +})); +Object.defineProperty(exports, "DeclareModule", ({ + enumerable: true, + get: function () { + return _index.declareModule; + } +})); +Object.defineProperty(exports, "DeclareModuleExports", ({ + enumerable: true, + get: function () { + return _index.declareModuleExports; + } +})); +Object.defineProperty(exports, "DeclareOpaqueType", ({ + enumerable: true, + get: function () { + return _index.declareOpaqueType; + } +})); +Object.defineProperty(exports, "DeclareTypeAlias", ({ + enumerable: true, + get: function () { + return _index.declareTypeAlias; + } +})); +Object.defineProperty(exports, "DeclareVariable", ({ + enumerable: true, + get: function () { + return _index.declareVariable; + } +})); +Object.defineProperty(exports, "DeclaredPredicate", ({ + enumerable: true, + get: function () { + return _index.declaredPredicate; + } +})); +Object.defineProperty(exports, "Decorator", ({ + enumerable: true, + get: function () { + return _index.decorator; + } +})); +Object.defineProperty(exports, "Directive", ({ + enumerable: true, + get: function () { + return _index.directive; + } +})); +Object.defineProperty(exports, "DirectiveLiteral", ({ + enumerable: true, + get: function () { + return _index.directiveLiteral; + } +})); +Object.defineProperty(exports, "DoExpression", ({ + enumerable: true, + get: function () { + return _index.doExpression; + } +})); +Object.defineProperty(exports, "DoWhileStatement", ({ + enumerable: true, + get: function () { + return _index.doWhileStatement; + } +})); +Object.defineProperty(exports, "EmptyStatement", ({ + enumerable: true, + get: function () { + return _index.emptyStatement; + } +})); +Object.defineProperty(exports, "EmptyTypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.emptyTypeAnnotation; + } +})); +Object.defineProperty(exports, "EnumBooleanBody", ({ + enumerable: true, + get: function () { + return _index.enumBooleanBody; + } +})); +Object.defineProperty(exports, "EnumBooleanMember", ({ + enumerable: true, + get: function () { + return _index.enumBooleanMember; + } +})); +Object.defineProperty(exports, "EnumDeclaration", ({ + enumerable: true, + get: function () { + return _index.enumDeclaration; + } +})); +Object.defineProperty(exports, "EnumDefaultedMember", ({ + enumerable: true, + get: function () { + return _index.enumDefaultedMember; + } +})); +Object.defineProperty(exports, "EnumNumberBody", ({ + enumerable: true, + get: function () { + return _index.enumNumberBody; + } +})); +Object.defineProperty(exports, "EnumNumberMember", ({ + enumerable: true, + get: function () { + return _index.enumNumberMember; + } +})); +Object.defineProperty(exports, "EnumStringBody", ({ + enumerable: true, + get: function () { + return _index.enumStringBody; + } +})); +Object.defineProperty(exports, "EnumStringMember", ({ + enumerable: true, + get: function () { + return _index.enumStringMember; + } +})); +Object.defineProperty(exports, "EnumSymbolBody", ({ + enumerable: true, + get: function () { + return _index.enumSymbolBody; + } +})); +Object.defineProperty(exports, "ExistsTypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.existsTypeAnnotation; + } +})); +Object.defineProperty(exports, "ExportAllDeclaration", ({ + enumerable: true, + get: function () { + return _index.exportAllDeclaration; + } +})); +Object.defineProperty(exports, "ExportDefaultDeclaration", ({ + enumerable: true, + get: function () { + return _index.exportDefaultDeclaration; + } +})); +Object.defineProperty(exports, "ExportDefaultSpecifier", ({ + enumerable: true, + get: function () { + return _index.exportDefaultSpecifier; + } +})); +Object.defineProperty(exports, "ExportNamedDeclaration", ({ + enumerable: true, + get: function () { + return _index.exportNamedDeclaration; + } +})); +Object.defineProperty(exports, "ExportNamespaceSpecifier", ({ + enumerable: true, + get: function () { + return _index.exportNamespaceSpecifier; + } +})); +Object.defineProperty(exports, "ExportSpecifier", ({ + enumerable: true, + get: function () { + return _index.exportSpecifier; + } +})); +Object.defineProperty(exports, "ExpressionStatement", ({ + enumerable: true, + get: function () { + return _index.expressionStatement; + } +})); +Object.defineProperty(exports, "File", ({ + enumerable: true, + get: function () { + return _index.file; + } +})); +Object.defineProperty(exports, "ForInStatement", ({ + enumerable: true, + get: function () { + return _index.forInStatement; + } +})); +Object.defineProperty(exports, "ForOfStatement", ({ + enumerable: true, + get: function () { + return _index.forOfStatement; + } +})); +Object.defineProperty(exports, "ForStatement", ({ + enumerable: true, + get: function () { + return _index.forStatement; + } +})); +Object.defineProperty(exports, "FunctionDeclaration", ({ + enumerable: true, + get: function () { + return _index.functionDeclaration; + } +})); +Object.defineProperty(exports, "FunctionExpression", ({ + enumerable: true, + get: function () { + return _index.functionExpression; + } +})); +Object.defineProperty(exports, "FunctionTypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.functionTypeAnnotation; + } +})); +Object.defineProperty(exports, "FunctionTypeParam", ({ + enumerable: true, + get: function () { + return _index.functionTypeParam; + } +})); +Object.defineProperty(exports, "GenericTypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.genericTypeAnnotation; + } +})); +Object.defineProperty(exports, "Identifier", ({ + enumerable: true, + get: function () { + return _index.identifier; + } +})); +Object.defineProperty(exports, "IfStatement", ({ + enumerable: true, + get: function () { + return _index.ifStatement; + } +})); +Object.defineProperty(exports, "Import", ({ + enumerable: true, + get: function () { + return _index.import; + } +})); +Object.defineProperty(exports, "ImportAttribute", ({ + enumerable: true, + get: function () { + return _index.importAttribute; + } +})); +Object.defineProperty(exports, "ImportDeclaration", ({ + enumerable: true, + get: function () { + return _index.importDeclaration; + } +})); +Object.defineProperty(exports, "ImportDefaultSpecifier", ({ + enumerable: true, + get: function () { + return _index.importDefaultSpecifier; + } +})); +Object.defineProperty(exports, "ImportNamespaceSpecifier", ({ + enumerable: true, + get: function () { + return _index.importNamespaceSpecifier; + } +})); +Object.defineProperty(exports, "ImportSpecifier", ({ + enumerable: true, + get: function () { + return _index.importSpecifier; + } +})); +Object.defineProperty(exports, "IndexedAccessType", ({ + enumerable: true, + get: function () { + return _index.indexedAccessType; + } +})); +Object.defineProperty(exports, "InferredPredicate", ({ + enumerable: true, + get: function () { + return _index.inferredPredicate; + } +})); +Object.defineProperty(exports, "InterfaceDeclaration", ({ + enumerable: true, + get: function () { + return _index.interfaceDeclaration; + } +})); +Object.defineProperty(exports, "InterfaceExtends", ({ + enumerable: true, + get: function () { + return _index.interfaceExtends; + } +})); +Object.defineProperty(exports, "InterfaceTypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.interfaceTypeAnnotation; + } +})); +Object.defineProperty(exports, "InterpreterDirective", ({ + enumerable: true, + get: function () { + return _index.interpreterDirective; + } +})); +Object.defineProperty(exports, "IntersectionTypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.intersectionTypeAnnotation; + } +})); +Object.defineProperty(exports, "JSXAttribute", ({ + enumerable: true, + get: function () { + return _index.jsxAttribute; + } +})); +Object.defineProperty(exports, "JSXClosingElement", ({ + enumerable: true, + get: function () { + return _index.jsxClosingElement; + } +})); +Object.defineProperty(exports, "JSXClosingFragment", ({ + enumerable: true, + get: function () { + return _index.jsxClosingFragment; + } +})); +Object.defineProperty(exports, "JSXElement", ({ + enumerable: true, + get: function () { + return _index.jsxElement; + } +})); +Object.defineProperty(exports, "JSXEmptyExpression", ({ + enumerable: true, + get: function () { + return _index.jsxEmptyExpression; + } +})); +Object.defineProperty(exports, "JSXExpressionContainer", ({ + enumerable: true, + get: function () { + return _index.jsxExpressionContainer; + } +})); +Object.defineProperty(exports, "JSXFragment", ({ + enumerable: true, + get: function () { + return _index.jsxFragment; + } +})); +Object.defineProperty(exports, "JSXIdentifier", ({ + enumerable: true, + get: function () { + return _index.jsxIdentifier; + } +})); +Object.defineProperty(exports, "JSXMemberExpression", ({ + enumerable: true, + get: function () { + return _index.jsxMemberExpression; + } +})); +Object.defineProperty(exports, "JSXNamespacedName", ({ + enumerable: true, + get: function () { + return _index.jsxNamespacedName; + } +})); +Object.defineProperty(exports, "JSXOpeningElement", ({ + enumerable: true, + get: function () { + return _index.jsxOpeningElement; + } +})); +Object.defineProperty(exports, "JSXOpeningFragment", ({ + enumerable: true, + get: function () { + return _index.jsxOpeningFragment; + } +})); +Object.defineProperty(exports, "JSXSpreadAttribute", ({ + enumerable: true, + get: function () { + return _index.jsxSpreadAttribute; + } +})); +Object.defineProperty(exports, "JSXSpreadChild", ({ + enumerable: true, + get: function () { + return _index.jsxSpreadChild; + } +})); +Object.defineProperty(exports, "JSXText", ({ + enumerable: true, + get: function () { + return _index.jsxText; + } +})); +Object.defineProperty(exports, "LabeledStatement", ({ + enumerable: true, + get: function () { + return _index.labeledStatement; + } +})); +Object.defineProperty(exports, "LogicalExpression", ({ + enumerable: true, + get: function () { + return _index.logicalExpression; + } +})); +Object.defineProperty(exports, "MemberExpression", ({ + enumerable: true, + get: function () { + return _index.memberExpression; + } +})); +Object.defineProperty(exports, "MetaProperty", ({ + enumerable: true, + get: function () { + return _index.metaProperty; + } +})); +Object.defineProperty(exports, "MixedTypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.mixedTypeAnnotation; + } +})); +Object.defineProperty(exports, "ModuleExpression", ({ + enumerable: true, + get: function () { + return _index.moduleExpression; + } +})); +Object.defineProperty(exports, "NewExpression", ({ + enumerable: true, + get: function () { + return _index.newExpression; + } +})); +Object.defineProperty(exports, "Noop", ({ + enumerable: true, + get: function () { + return _index.noop; + } +})); +Object.defineProperty(exports, "NullLiteral", ({ + enumerable: true, + get: function () { + return _index.nullLiteral; + } +})); +Object.defineProperty(exports, "NullLiteralTypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.nullLiteralTypeAnnotation; + } +})); +Object.defineProperty(exports, "NullableTypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.nullableTypeAnnotation; + } +})); +Object.defineProperty(exports, "NumberLiteral", ({ + enumerable: true, + get: function () { + return _index.numberLiteral; + } +})); +Object.defineProperty(exports, "NumberLiteralTypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.numberLiteralTypeAnnotation; + } +})); +Object.defineProperty(exports, "NumberTypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.numberTypeAnnotation; + } +})); +Object.defineProperty(exports, "NumericLiteral", ({ + enumerable: true, + get: function () { + return _index.numericLiteral; + } +})); +Object.defineProperty(exports, "ObjectExpression", ({ + enumerable: true, + get: function () { + return _index.objectExpression; + } +})); +Object.defineProperty(exports, "ObjectMethod", ({ + enumerable: true, + get: function () { + return _index.objectMethod; + } +})); +Object.defineProperty(exports, "ObjectPattern", ({ + enumerable: true, + get: function () { + return _index.objectPattern; + } +})); +Object.defineProperty(exports, "ObjectProperty", ({ + enumerable: true, + get: function () { + return _index.objectProperty; + } +})); +Object.defineProperty(exports, "ObjectTypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.objectTypeAnnotation; + } +})); +Object.defineProperty(exports, "ObjectTypeCallProperty", ({ + enumerable: true, + get: function () { + return _index.objectTypeCallProperty; + } +})); +Object.defineProperty(exports, "ObjectTypeIndexer", ({ + enumerable: true, + get: function () { + return _index.objectTypeIndexer; + } +})); +Object.defineProperty(exports, "ObjectTypeInternalSlot", ({ + enumerable: true, + get: function () { + return _index.objectTypeInternalSlot; + } +})); +Object.defineProperty(exports, "ObjectTypeProperty", ({ + enumerable: true, + get: function () { + return _index.objectTypeProperty; + } +})); +Object.defineProperty(exports, "ObjectTypeSpreadProperty", ({ + enumerable: true, + get: function () { + return _index.objectTypeSpreadProperty; + } +})); +Object.defineProperty(exports, "OpaqueType", ({ + enumerable: true, + get: function () { + return _index.opaqueType; + } +})); +Object.defineProperty(exports, "OptionalCallExpression", ({ + enumerable: true, + get: function () { + return _index.optionalCallExpression; + } +})); +Object.defineProperty(exports, "OptionalIndexedAccessType", ({ + enumerable: true, + get: function () { + return _index.optionalIndexedAccessType; + } +})); +Object.defineProperty(exports, "OptionalMemberExpression", ({ + enumerable: true, + get: function () { + return _index.optionalMemberExpression; + } +})); +Object.defineProperty(exports, "ParenthesizedExpression", ({ + enumerable: true, + get: function () { + return _index.parenthesizedExpression; + } +})); +Object.defineProperty(exports, "PipelineBareFunction", ({ + enumerable: true, + get: function () { + return _index.pipelineBareFunction; + } +})); +Object.defineProperty(exports, "PipelinePrimaryTopicReference", ({ + enumerable: true, + get: function () { + return _index.pipelinePrimaryTopicReference; + } +})); +Object.defineProperty(exports, "PipelineTopicExpression", ({ + enumerable: true, + get: function () { + return _index.pipelineTopicExpression; + } +})); +Object.defineProperty(exports, "Placeholder", ({ + enumerable: true, + get: function () { + return _index.placeholder; + } +})); +Object.defineProperty(exports, "PrivateName", ({ + enumerable: true, + get: function () { + return _index.privateName; + } +})); +Object.defineProperty(exports, "Program", ({ + enumerable: true, + get: function () { + return _index.program; + } +})); +Object.defineProperty(exports, "QualifiedTypeIdentifier", ({ + enumerable: true, + get: function () { + return _index.qualifiedTypeIdentifier; + } +})); +Object.defineProperty(exports, "RecordExpression", ({ + enumerable: true, + get: function () { + return _index.recordExpression; + } +})); +Object.defineProperty(exports, "RegExpLiteral", ({ + enumerable: true, + get: function () { + return _index.regExpLiteral; + } +})); +Object.defineProperty(exports, "RegexLiteral", ({ + enumerable: true, + get: function () { + return _index.regexLiteral; + } +})); +Object.defineProperty(exports, "RestElement", ({ + enumerable: true, + get: function () { + return _index.restElement; + } +})); +Object.defineProperty(exports, "RestProperty", ({ + enumerable: true, + get: function () { + return _index.restProperty; + } +})); +Object.defineProperty(exports, "ReturnStatement", ({ + enumerable: true, + get: function () { + return _index.returnStatement; + } +})); +Object.defineProperty(exports, "SequenceExpression", ({ + enumerable: true, + get: function () { + return _index.sequenceExpression; + } +})); +Object.defineProperty(exports, "SpreadElement", ({ + enumerable: true, + get: function () { + return _index.spreadElement; + } +})); +Object.defineProperty(exports, "SpreadProperty", ({ + enumerable: true, + get: function () { + return _index.spreadProperty; + } +})); +Object.defineProperty(exports, "StaticBlock", ({ + enumerable: true, + get: function () { + return _index.staticBlock; + } +})); +Object.defineProperty(exports, "StringLiteral", ({ + enumerable: true, + get: function () { + return _index.stringLiteral; + } +})); +Object.defineProperty(exports, "StringLiteralTypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.stringLiteralTypeAnnotation; + } +})); +Object.defineProperty(exports, "StringTypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.stringTypeAnnotation; + } +})); +Object.defineProperty(exports, "Super", ({ + enumerable: true, + get: function () { + return _index.super; + } +})); +Object.defineProperty(exports, "SwitchCase", ({ + enumerable: true, + get: function () { + return _index.switchCase; + } +})); +Object.defineProperty(exports, "SwitchStatement", ({ + enumerable: true, + get: function () { + return _index.switchStatement; + } +})); +Object.defineProperty(exports, "SymbolTypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.symbolTypeAnnotation; + } +})); +Object.defineProperty(exports, "TSAnyKeyword", ({ + enumerable: true, + get: function () { + return _index.tsAnyKeyword; + } +})); +Object.defineProperty(exports, "TSArrayType", ({ + enumerable: true, + get: function () { + return _index.tsArrayType; + } +})); +Object.defineProperty(exports, "TSAsExpression", ({ + enumerable: true, + get: function () { + return _index.tsAsExpression; + } +})); +Object.defineProperty(exports, "TSBigIntKeyword", ({ + enumerable: true, + get: function () { + return _index.tsBigIntKeyword; + } +})); +Object.defineProperty(exports, "TSBooleanKeyword", ({ + enumerable: true, + get: function () { + return _index.tsBooleanKeyword; + } +})); +Object.defineProperty(exports, "TSCallSignatureDeclaration", ({ + enumerable: true, + get: function () { + return _index.tsCallSignatureDeclaration; + } +})); +Object.defineProperty(exports, "TSConditionalType", ({ + enumerable: true, + get: function () { + return _index.tsConditionalType; + } +})); +Object.defineProperty(exports, "TSConstructSignatureDeclaration", ({ + enumerable: true, + get: function () { + return _index.tsConstructSignatureDeclaration; + } +})); +Object.defineProperty(exports, "TSConstructorType", ({ + enumerable: true, + get: function () { + return _index.tsConstructorType; + } +})); +Object.defineProperty(exports, "TSDeclareFunction", ({ + enumerable: true, + get: function () { + return _index.tsDeclareFunction; + } +})); +Object.defineProperty(exports, "TSDeclareMethod", ({ + enumerable: true, + get: function () { + return _index.tsDeclareMethod; + } +})); +Object.defineProperty(exports, "TSEnumDeclaration", ({ + enumerable: true, + get: function () { + return _index.tsEnumDeclaration; + } +})); +Object.defineProperty(exports, "TSEnumMember", ({ + enumerable: true, + get: function () { + return _index.tsEnumMember; + } +})); +Object.defineProperty(exports, "TSExportAssignment", ({ + enumerable: true, + get: function () { + return _index.tsExportAssignment; + } +})); +Object.defineProperty(exports, "TSExpressionWithTypeArguments", ({ + enumerable: true, + get: function () { + return _index.tsExpressionWithTypeArguments; + } +})); +Object.defineProperty(exports, "TSExternalModuleReference", ({ + enumerable: true, + get: function () { + return _index.tsExternalModuleReference; + } +})); +Object.defineProperty(exports, "TSFunctionType", ({ + enumerable: true, + get: function () { + return _index.tsFunctionType; + } +})); +Object.defineProperty(exports, "TSImportEqualsDeclaration", ({ + enumerable: true, + get: function () { + return _index.tsImportEqualsDeclaration; + } +})); +Object.defineProperty(exports, "TSImportType", ({ + enumerable: true, + get: function () { + return _index.tsImportType; + } +})); +Object.defineProperty(exports, "TSIndexSignature", ({ + enumerable: true, + get: function () { + return _index.tsIndexSignature; + } +})); +Object.defineProperty(exports, "TSIndexedAccessType", ({ + enumerable: true, + get: function () { + return _index.tsIndexedAccessType; + } +})); +Object.defineProperty(exports, "TSInferType", ({ + enumerable: true, + get: function () { + return _index.tsInferType; + } +})); +Object.defineProperty(exports, "TSInstantiationExpression", ({ + enumerable: true, + get: function () { + return _index.tsInstantiationExpression; + } +})); +Object.defineProperty(exports, "TSInterfaceBody", ({ + enumerable: true, + get: function () { + return _index.tsInterfaceBody; + } +})); +Object.defineProperty(exports, "TSInterfaceDeclaration", ({ + enumerable: true, + get: function () { + return _index.tsInterfaceDeclaration; + } +})); +Object.defineProperty(exports, "TSIntersectionType", ({ + enumerable: true, + get: function () { + return _index.tsIntersectionType; + } +})); +Object.defineProperty(exports, "TSIntrinsicKeyword", ({ + enumerable: true, + get: function () { + return _index.tsIntrinsicKeyword; + } +})); +Object.defineProperty(exports, "TSLiteralType", ({ + enumerable: true, + get: function () { + return _index.tsLiteralType; + } +})); +Object.defineProperty(exports, "TSMappedType", ({ + enumerable: true, + get: function () { + return _index.tsMappedType; + } +})); +Object.defineProperty(exports, "TSMethodSignature", ({ + enumerable: true, + get: function () { + return _index.tsMethodSignature; + } +})); +Object.defineProperty(exports, "TSModuleBlock", ({ + enumerable: true, + get: function () { + return _index.tsModuleBlock; + } +})); +Object.defineProperty(exports, "TSModuleDeclaration", ({ + enumerable: true, + get: function () { + return _index.tsModuleDeclaration; + } +})); +Object.defineProperty(exports, "TSNamedTupleMember", ({ + enumerable: true, + get: function () { + return _index.tsNamedTupleMember; + } +})); +Object.defineProperty(exports, "TSNamespaceExportDeclaration", ({ + enumerable: true, + get: function () { + return _index.tsNamespaceExportDeclaration; + } +})); +Object.defineProperty(exports, "TSNeverKeyword", ({ + enumerable: true, + get: function () { + return _index.tsNeverKeyword; + } +})); +Object.defineProperty(exports, "TSNonNullExpression", ({ + enumerable: true, + get: function () { + return _index.tsNonNullExpression; + } +})); +Object.defineProperty(exports, "TSNullKeyword", ({ + enumerable: true, + get: function () { + return _index.tsNullKeyword; + } +})); +Object.defineProperty(exports, "TSNumberKeyword", ({ + enumerable: true, + get: function () { + return _index.tsNumberKeyword; + } +})); +Object.defineProperty(exports, "TSObjectKeyword", ({ + enumerable: true, + get: function () { + return _index.tsObjectKeyword; + } +})); +Object.defineProperty(exports, "TSOptionalType", ({ + enumerable: true, + get: function () { + return _index.tsOptionalType; + } +})); +Object.defineProperty(exports, "TSParameterProperty", ({ + enumerable: true, + get: function () { + return _index.tsParameterProperty; + } +})); +Object.defineProperty(exports, "TSParenthesizedType", ({ + enumerable: true, + get: function () { + return _index.tsParenthesizedType; + } +})); +Object.defineProperty(exports, "TSPropertySignature", ({ + enumerable: true, + get: function () { + return _index.tsPropertySignature; + } +})); +Object.defineProperty(exports, "TSQualifiedName", ({ + enumerable: true, + get: function () { + return _index.tsQualifiedName; + } +})); +Object.defineProperty(exports, "TSRestType", ({ + enumerable: true, + get: function () { + return _index.tsRestType; + } +})); +Object.defineProperty(exports, "TSSatisfiesExpression", ({ + enumerable: true, + get: function () { + return _index.tsSatisfiesExpression; + } +})); +Object.defineProperty(exports, "TSStringKeyword", ({ + enumerable: true, + get: function () { + return _index.tsStringKeyword; + } +})); +Object.defineProperty(exports, "TSSymbolKeyword", ({ + enumerable: true, + get: function () { + return _index.tsSymbolKeyword; + } +})); +Object.defineProperty(exports, "TSThisType", ({ + enumerable: true, + get: function () { + return _index.tsThisType; + } +})); +Object.defineProperty(exports, "TSTupleType", ({ + enumerable: true, + get: function () { + return _index.tsTupleType; + } +})); +Object.defineProperty(exports, "TSTypeAliasDeclaration", ({ + enumerable: true, + get: function () { + return _index.tsTypeAliasDeclaration; + } +})); +Object.defineProperty(exports, "TSTypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.tsTypeAnnotation; + } +})); +Object.defineProperty(exports, "TSTypeAssertion", ({ + enumerable: true, + get: function () { + return _index.tsTypeAssertion; + } +})); +Object.defineProperty(exports, "TSTypeLiteral", ({ + enumerable: true, + get: function () { + return _index.tsTypeLiteral; + } +})); +Object.defineProperty(exports, "TSTypeOperator", ({ + enumerable: true, + get: function () { + return _index.tsTypeOperator; + } +})); +Object.defineProperty(exports, "TSTypeParameter", ({ + enumerable: true, + get: function () { + return _index.tsTypeParameter; + } +})); +Object.defineProperty(exports, "TSTypeParameterDeclaration", ({ + enumerable: true, + get: function () { + return _index.tsTypeParameterDeclaration; + } +})); +Object.defineProperty(exports, "TSTypeParameterInstantiation", ({ + enumerable: true, + get: function () { + return _index.tsTypeParameterInstantiation; + } +})); +Object.defineProperty(exports, "TSTypePredicate", ({ + enumerable: true, + get: function () { + return _index.tsTypePredicate; + } +})); +Object.defineProperty(exports, "TSTypeQuery", ({ + enumerable: true, + get: function () { + return _index.tsTypeQuery; + } +})); +Object.defineProperty(exports, "TSTypeReference", ({ + enumerable: true, + get: function () { + return _index.tsTypeReference; + } +})); +Object.defineProperty(exports, "TSUndefinedKeyword", ({ + enumerable: true, + get: function () { + return _index.tsUndefinedKeyword; + } +})); +Object.defineProperty(exports, "TSUnionType", ({ + enumerable: true, + get: function () { + return _index.tsUnionType; + } +})); +Object.defineProperty(exports, "TSUnknownKeyword", ({ + enumerable: true, + get: function () { + return _index.tsUnknownKeyword; + } +})); +Object.defineProperty(exports, "TSVoidKeyword", ({ + enumerable: true, + get: function () { + return _index.tsVoidKeyword; + } +})); +Object.defineProperty(exports, "TaggedTemplateExpression", ({ + enumerable: true, + get: function () { + return _index.taggedTemplateExpression; + } +})); +Object.defineProperty(exports, "TemplateElement", ({ + enumerable: true, + get: function () { + return _index.templateElement; + } +})); +Object.defineProperty(exports, "TemplateLiteral", ({ + enumerable: true, + get: function () { + return _index.templateLiteral; + } +})); +Object.defineProperty(exports, "ThisExpression", ({ + enumerable: true, + get: function () { + return _index.thisExpression; + } +})); +Object.defineProperty(exports, "ThisTypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.thisTypeAnnotation; + } +})); +Object.defineProperty(exports, "ThrowStatement", ({ + enumerable: true, + get: function () { + return _index.throwStatement; + } +})); +Object.defineProperty(exports, "TopicReference", ({ + enumerable: true, + get: function () { + return _index.topicReference; + } +})); +Object.defineProperty(exports, "TryStatement", ({ + enumerable: true, + get: function () { + return _index.tryStatement; + } +})); +Object.defineProperty(exports, "TupleExpression", ({ + enumerable: true, + get: function () { + return _index.tupleExpression; + } +})); +Object.defineProperty(exports, "TupleTypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.tupleTypeAnnotation; + } +})); +Object.defineProperty(exports, "TypeAlias", ({ + enumerable: true, + get: function () { + return _index.typeAlias; + } +})); +Object.defineProperty(exports, "TypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.typeAnnotation; + } +})); +Object.defineProperty(exports, "TypeCastExpression", ({ + enumerable: true, + get: function () { + return _index.typeCastExpression; + } +})); +Object.defineProperty(exports, "TypeParameter", ({ + enumerable: true, + get: function () { + return _index.typeParameter; + } +})); +Object.defineProperty(exports, "TypeParameterDeclaration", ({ + enumerable: true, + get: function () { + return _index.typeParameterDeclaration; + } +})); +Object.defineProperty(exports, "TypeParameterInstantiation", ({ + enumerable: true, + get: function () { + return _index.typeParameterInstantiation; + } +})); +Object.defineProperty(exports, "TypeofTypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.typeofTypeAnnotation; + } +})); +Object.defineProperty(exports, "UnaryExpression", ({ + enumerable: true, + get: function () { + return _index.unaryExpression; + } +})); +Object.defineProperty(exports, "UnionTypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.unionTypeAnnotation; + } +})); +Object.defineProperty(exports, "UpdateExpression", ({ + enumerable: true, + get: function () { + return _index.updateExpression; + } +})); +Object.defineProperty(exports, "V8IntrinsicIdentifier", ({ + enumerable: true, + get: function () { + return _index.v8IntrinsicIdentifier; + } +})); +Object.defineProperty(exports, "VariableDeclaration", ({ + enumerable: true, + get: function () { + return _index.variableDeclaration; + } +})); +Object.defineProperty(exports, "VariableDeclarator", ({ + enumerable: true, + get: function () { + return _index.variableDeclarator; + } +})); +Object.defineProperty(exports, "Variance", ({ + enumerable: true, + get: function () { + return _index.variance; + } +})); +Object.defineProperty(exports, "VoidTypeAnnotation", ({ + enumerable: true, + get: function () { + return _index.voidTypeAnnotation; + } +})); +Object.defineProperty(exports, "WhileStatement", ({ + enumerable: true, + get: function () { + return _index.whileStatement; + } +})); +Object.defineProperty(exports, "WithStatement", ({ + enumerable: true, + get: function () { + return _index.withStatement; + } +})); +Object.defineProperty(exports, "YieldExpression", ({ + enumerable: true, + get: function () { + return _index.yieldExpression; + } +})); +var _index = __webpack_require__(4204); + +//# sourceMappingURL=uppercase.js.map + + +/***/ }), + +/***/ 3923: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = buildChildren; +var _generated = __webpack_require__(8202); +var _cleanJSXElementLiteralChild = __webpack_require__(5772); +function buildChildren(node) { + const elements = []; + for (let i = 0; i < node.children.length; i++) { + let child = node.children[i]; + if ((0, _generated.isJSXText)(child)) { + (0, _cleanJSXElementLiteralChild.default)(child, elements); + continue; + } + if ((0, _generated.isJSXExpressionContainer)(child)) child = child.expression; + if ((0, _generated.isJSXEmptyExpression)(child)) continue; + elements.push(child); + } + return elements; +} + +//# sourceMappingURL=buildChildren.js.map + + +/***/ }), + +/***/ 4502: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = createTSUnionType; +var _generated = __webpack_require__(4204); +var _removeTypeDuplicates = __webpack_require__(1866); +var _index = __webpack_require__(8202); +function createTSUnionType(typeAnnotations) { + const types = typeAnnotations.map(type => { + return (0, _index.isTSTypeAnnotation)(type) ? type.typeAnnotation : type; + }); + const flattened = (0, _removeTypeDuplicates.default)(types); + if (flattened.length === 1) { + return flattened[0]; + } else { + return (0, _generated.tsUnionType)(flattened); + } +} + +//# sourceMappingURL=createTSUnionType.js.map + + +/***/ }), + +/***/ 1013: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = validateNode; +var _validate = __webpack_require__(8741); +var _ = __webpack_require__(2139); +function validateNode(node) { + const keys = _.BUILDER_KEYS[node.type]; + for (const key of keys) { + (0, _validate.default)(node, key, node[key]); + } + return node; +} + +//# sourceMappingURL=validateNode.js.map + + +/***/ }), + +/***/ 1391: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = clone; +var _cloneNode = __webpack_require__(2389); +function clone(node) { + return (0, _cloneNode.default)(node, false); +} + +//# sourceMappingURL=clone.js.map + + +/***/ }), + +/***/ 9347: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = cloneDeep; +var _cloneNode = __webpack_require__(2389); +function cloneDeep(node) { + return (0, _cloneNode.default)(node); +} + +//# sourceMappingURL=cloneDeep.js.map + + +/***/ }), + +/***/ 6553: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = cloneDeepWithoutLoc; +var _cloneNode = __webpack_require__(2389); +function cloneDeepWithoutLoc(node) { + return (0, _cloneNode.default)(node, true, true); +} + +//# sourceMappingURL=cloneDeepWithoutLoc.js.map + + +/***/ }), + +/***/ 2389: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = cloneNode; +var _definitions = __webpack_require__(2886); +var _generated = __webpack_require__(8202); +const has = Function.call.bind(Object.prototype.hasOwnProperty); +function cloneIfNode(obj, deep, withoutLoc, commentsCache) { + if (obj && typeof obj.type === "string") { + return cloneNodeInternal(obj, deep, withoutLoc, commentsCache); + } + return obj; +} +function cloneIfNodeOrArray(obj, deep, withoutLoc, commentsCache) { + if (Array.isArray(obj)) { + return obj.map(node => cloneIfNode(node, deep, withoutLoc, commentsCache)); + } + return cloneIfNode(obj, deep, withoutLoc, commentsCache); +} + +function cloneNode(node, deep = true, withoutLoc = false) { + return cloneNodeInternal(node, deep, withoutLoc, new Map()); +} +function cloneNodeInternal(node, deep = true, withoutLoc = false, commentsCache) { + if (!node) return node; + const { + type + } = node; + const newNode = { + type: node.type + }; + + if ((0, _generated.isIdentifier)(node)) { + newNode.name = node.name; + if (has(node, "optional") && typeof node.optional === "boolean") { + newNode.optional = node.optional; + } + if (has(node, "typeAnnotation")) { + newNode.typeAnnotation = deep ? cloneIfNodeOrArray(node.typeAnnotation, true, withoutLoc, commentsCache) : node.typeAnnotation; + } + } else if (!has(_definitions.NODE_FIELDS, type)) { + throw new Error(`Unknown node type: "${type}"`); + } else { + for (const field of Object.keys(_definitions.NODE_FIELDS[type])) { + if (has(node, field)) { + if (deep) { + newNode[field] = (0, _generated.isFile)(node) && field === "comments" ? maybeCloneComments(node.comments, deep, withoutLoc, commentsCache) : cloneIfNodeOrArray( + node[field], true, withoutLoc, commentsCache); + } else { + newNode[field] = + node[field]; + } + } + } + } + if (has(node, "loc")) { + if (withoutLoc) { + newNode.loc = null; + } else { + newNode.loc = node.loc; + } + } + if (has(node, "leadingComments")) { + newNode.leadingComments = maybeCloneComments(node.leadingComments, deep, withoutLoc, commentsCache); + } + if (has(node, "innerComments")) { + newNode.innerComments = maybeCloneComments(node.innerComments, deep, withoutLoc, commentsCache); + } + if (has(node, "trailingComments")) { + newNode.trailingComments = maybeCloneComments(node.trailingComments, deep, withoutLoc, commentsCache); + } + if (has(node, "extra")) { + newNode.extra = Object.assign({}, node.extra); + } + return newNode; +} +function maybeCloneComments(comments, deep, withoutLoc, commentsCache) { + if (!comments || !deep) { + return comments; + } + return comments.map(comment => { + const cache = commentsCache.get(comment); + if (cache) return cache; + const { + type, + value, + loc + } = comment; + const ret = { + type, + value, + loc + }; + if (withoutLoc) { + ret.loc = null; + } + commentsCache.set(comment, ret); + return ret; + }); +} + +//# sourceMappingURL=cloneNode.js.map + + +/***/ }), + +/***/ 495: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = cloneWithoutLoc; +var _cloneNode = __webpack_require__(2389); +function cloneWithoutLoc(node) { + return (0, _cloneNode.default)(node, false, true); +} + +//# sourceMappingURL=cloneWithoutLoc.js.map + + +/***/ }), + +/***/ 9607: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = addComment; +var _addComments = __webpack_require__(1758); +function addComment(node, type, content, line) { + return (0, _addComments.default)(node, type, [{ + type: line ? "CommentLine" : "CommentBlock", + value: content + }]); +} + +//# sourceMappingURL=addComment.js.map + + +/***/ }), + +/***/ 1758: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = addComments; +function addComments(node, type, comments) { + if (!comments || !node) return node; + const key = `${type}Comments`; + if (node[key]) { + if (type === "leading") { + node[key] = comments.concat(node[key]); + } else { + node[key].push(...comments); + } + } else { + node[key] = comments; + } + return node; +} + +//# sourceMappingURL=addComments.js.map + + +/***/ }), + +/***/ 298: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = inheritInnerComments; +var _inherit = __webpack_require__(8515); +function inheritInnerComments(child, parent) { + (0, _inherit.default)("innerComments", child, parent); +} + +//# sourceMappingURL=inheritInnerComments.js.map + + +/***/ }), + +/***/ 2746: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = inheritLeadingComments; +var _inherit = __webpack_require__(8515); +function inheritLeadingComments(child, parent) { + (0, _inherit.default)("leadingComments", child, parent); +} + +//# sourceMappingURL=inheritLeadingComments.js.map + + +/***/ }), + +/***/ 8368: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = inheritTrailingComments; +var _inherit = __webpack_require__(8515); +function inheritTrailingComments(child, parent) { + (0, _inherit.default)("trailingComments", child, parent); +} + +//# sourceMappingURL=inheritTrailingComments.js.map + + +/***/ }), + +/***/ 3084: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = inheritsComments; +var _inheritTrailingComments = __webpack_require__(8368); +var _inheritLeadingComments = __webpack_require__(2746); +var _inheritInnerComments = __webpack_require__(298); +function inheritsComments(child, parent) { + (0, _inheritTrailingComments.default)(child, parent); + (0, _inheritLeadingComments.default)(child, parent); + (0, _inheritInnerComments.default)(child, parent); + return child; +} + +//# sourceMappingURL=inheritsComments.js.map + + +/***/ }), + +/***/ 4021: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = removeComments; +var _constants = __webpack_require__(8503); +function removeComments(node) { + _constants.COMMENT_KEYS.forEach(key => { + node[key] = null; + }); + return node; +} + +//# sourceMappingURL=removeComments.js.map + + +/***/ }), + +/***/ 2476: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.WHILE_TYPES = exports.USERWHITESPACABLE_TYPES = exports.UNARYLIKE_TYPES = exports.TYPESCRIPT_TYPES = exports.TSTYPE_TYPES = exports.TSTYPEELEMENT_TYPES = exports.TSENTITYNAME_TYPES = exports.TSBASETYPE_TYPES = exports.TERMINATORLESS_TYPES = exports.STATEMENT_TYPES = exports.STANDARDIZED_TYPES = exports.SCOPABLE_TYPES = exports.PUREISH_TYPES = exports.PROPERTY_TYPES = exports.PRIVATE_TYPES = exports.PATTERN_TYPES = exports.PATTERNLIKE_TYPES = exports.OBJECTMEMBER_TYPES = exports.MODULESPECIFIER_TYPES = exports.MODULEDECLARATION_TYPES = exports.MISCELLANEOUS_TYPES = exports.METHOD_TYPES = exports.LVAL_TYPES = exports.LOOP_TYPES = exports.LITERAL_TYPES = exports.JSX_TYPES = exports.IMMUTABLE_TYPES = exports.FUNCTION_TYPES = exports.FUNCTIONPARENT_TYPES = exports.FOR_TYPES = exports.FORXSTATEMENT_TYPES = exports.FLOW_TYPES = exports.FLOWTYPE_TYPES = exports.FLOWPREDICATE_TYPES = exports.FLOWDECLARATION_TYPES = exports.FLOWBASEANNOTATION_TYPES = exports.EXPRESSION_TYPES = exports.EXPRESSIONWRAPPER_TYPES = exports.EXPORTDECLARATION_TYPES = exports.ENUMMEMBER_TYPES = exports.ENUMBODY_TYPES = exports.DECLARATION_TYPES = exports.CONDITIONAL_TYPES = exports.COMPLETIONSTATEMENT_TYPES = exports.CLASS_TYPES = exports.BLOCK_TYPES = exports.BLOCKPARENT_TYPES = exports.BINARY_TYPES = exports.ACCESSOR_TYPES = void 0; +var _definitions = __webpack_require__(2886); + +const STANDARDIZED_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Standardized"]; +exports.STANDARDIZED_TYPES = STANDARDIZED_TYPES; +const EXPRESSION_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Expression"]; +exports.EXPRESSION_TYPES = EXPRESSION_TYPES; +const BINARY_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Binary"]; +exports.BINARY_TYPES = BINARY_TYPES; +const SCOPABLE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Scopable"]; +exports.SCOPABLE_TYPES = SCOPABLE_TYPES; +const BLOCKPARENT_TYPES = _definitions.FLIPPED_ALIAS_KEYS["BlockParent"]; +exports.BLOCKPARENT_TYPES = BLOCKPARENT_TYPES; +const BLOCK_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Block"]; +exports.BLOCK_TYPES = BLOCK_TYPES; +const STATEMENT_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Statement"]; +exports.STATEMENT_TYPES = STATEMENT_TYPES; +const TERMINATORLESS_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Terminatorless"]; +exports.TERMINATORLESS_TYPES = TERMINATORLESS_TYPES; +const COMPLETIONSTATEMENT_TYPES = _definitions.FLIPPED_ALIAS_KEYS["CompletionStatement"]; +exports.COMPLETIONSTATEMENT_TYPES = COMPLETIONSTATEMENT_TYPES; +const CONDITIONAL_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Conditional"]; +exports.CONDITIONAL_TYPES = CONDITIONAL_TYPES; +const LOOP_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Loop"]; +exports.LOOP_TYPES = LOOP_TYPES; +const WHILE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["While"]; +exports.WHILE_TYPES = WHILE_TYPES; +const EXPRESSIONWRAPPER_TYPES = _definitions.FLIPPED_ALIAS_KEYS["ExpressionWrapper"]; +exports.EXPRESSIONWRAPPER_TYPES = EXPRESSIONWRAPPER_TYPES; +const FOR_TYPES = _definitions.FLIPPED_ALIAS_KEYS["For"]; +exports.FOR_TYPES = FOR_TYPES; +const FORXSTATEMENT_TYPES = _definitions.FLIPPED_ALIAS_KEYS["ForXStatement"]; +exports.FORXSTATEMENT_TYPES = FORXSTATEMENT_TYPES; +const FUNCTION_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Function"]; +exports.FUNCTION_TYPES = FUNCTION_TYPES; +const FUNCTIONPARENT_TYPES = _definitions.FLIPPED_ALIAS_KEYS["FunctionParent"]; +exports.FUNCTIONPARENT_TYPES = FUNCTIONPARENT_TYPES; +const PUREISH_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Pureish"]; +exports.PUREISH_TYPES = PUREISH_TYPES; +const DECLARATION_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Declaration"]; +exports.DECLARATION_TYPES = DECLARATION_TYPES; +const PATTERNLIKE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["PatternLike"]; +exports.PATTERNLIKE_TYPES = PATTERNLIKE_TYPES; +const LVAL_TYPES = _definitions.FLIPPED_ALIAS_KEYS["LVal"]; +exports.LVAL_TYPES = LVAL_TYPES; +const TSENTITYNAME_TYPES = _definitions.FLIPPED_ALIAS_KEYS["TSEntityName"]; +exports.TSENTITYNAME_TYPES = TSENTITYNAME_TYPES; +const LITERAL_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Literal"]; +exports.LITERAL_TYPES = LITERAL_TYPES; +const IMMUTABLE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Immutable"]; +exports.IMMUTABLE_TYPES = IMMUTABLE_TYPES; +const USERWHITESPACABLE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["UserWhitespacable"]; +exports.USERWHITESPACABLE_TYPES = USERWHITESPACABLE_TYPES; +const METHOD_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Method"]; +exports.METHOD_TYPES = METHOD_TYPES; +const OBJECTMEMBER_TYPES = _definitions.FLIPPED_ALIAS_KEYS["ObjectMember"]; +exports.OBJECTMEMBER_TYPES = OBJECTMEMBER_TYPES; +const PROPERTY_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Property"]; +exports.PROPERTY_TYPES = PROPERTY_TYPES; +const UNARYLIKE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["UnaryLike"]; +exports.UNARYLIKE_TYPES = UNARYLIKE_TYPES; +const PATTERN_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Pattern"]; +exports.PATTERN_TYPES = PATTERN_TYPES; +const CLASS_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Class"]; +exports.CLASS_TYPES = CLASS_TYPES; +const MODULEDECLARATION_TYPES = _definitions.FLIPPED_ALIAS_KEYS["ModuleDeclaration"]; +exports.MODULEDECLARATION_TYPES = MODULEDECLARATION_TYPES; +const EXPORTDECLARATION_TYPES = _definitions.FLIPPED_ALIAS_KEYS["ExportDeclaration"]; +exports.EXPORTDECLARATION_TYPES = EXPORTDECLARATION_TYPES; +const MODULESPECIFIER_TYPES = _definitions.FLIPPED_ALIAS_KEYS["ModuleSpecifier"]; +exports.MODULESPECIFIER_TYPES = MODULESPECIFIER_TYPES; +const ACCESSOR_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Accessor"]; +exports.ACCESSOR_TYPES = ACCESSOR_TYPES; +const PRIVATE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Private"]; +exports.PRIVATE_TYPES = PRIVATE_TYPES; +const FLOW_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Flow"]; +exports.FLOW_TYPES = FLOW_TYPES; +const FLOWTYPE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["FlowType"]; +exports.FLOWTYPE_TYPES = FLOWTYPE_TYPES; +const FLOWBASEANNOTATION_TYPES = _definitions.FLIPPED_ALIAS_KEYS["FlowBaseAnnotation"]; +exports.FLOWBASEANNOTATION_TYPES = FLOWBASEANNOTATION_TYPES; +const FLOWDECLARATION_TYPES = _definitions.FLIPPED_ALIAS_KEYS["FlowDeclaration"]; +exports.FLOWDECLARATION_TYPES = FLOWDECLARATION_TYPES; +const FLOWPREDICATE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["FlowPredicate"]; +exports.FLOWPREDICATE_TYPES = FLOWPREDICATE_TYPES; +const ENUMBODY_TYPES = _definitions.FLIPPED_ALIAS_KEYS["EnumBody"]; +exports.ENUMBODY_TYPES = ENUMBODY_TYPES; +const ENUMMEMBER_TYPES = _definitions.FLIPPED_ALIAS_KEYS["EnumMember"]; +exports.ENUMMEMBER_TYPES = ENUMMEMBER_TYPES; +const JSX_TYPES = _definitions.FLIPPED_ALIAS_KEYS["JSX"]; +exports.JSX_TYPES = JSX_TYPES; +const MISCELLANEOUS_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Miscellaneous"]; +exports.MISCELLANEOUS_TYPES = MISCELLANEOUS_TYPES; +const TYPESCRIPT_TYPES = _definitions.FLIPPED_ALIAS_KEYS["TypeScript"]; +exports.TYPESCRIPT_TYPES = TYPESCRIPT_TYPES; +const TSTYPEELEMENT_TYPES = _definitions.FLIPPED_ALIAS_KEYS["TSTypeElement"]; +exports.TSTYPEELEMENT_TYPES = TSTYPEELEMENT_TYPES; +const TSTYPE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["TSType"]; +exports.TSTYPE_TYPES = TSTYPE_TYPES; +const TSBASETYPE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["TSBaseType"]; +exports.TSBASETYPE_TYPES = TSBASETYPE_TYPES; + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 8503: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.UPDATE_OPERATORS = exports.UNARY_OPERATORS = exports.STRING_UNARY_OPERATORS = exports.STATEMENT_OR_BLOCK_KEYS = exports.NUMBER_UNARY_OPERATORS = exports.NUMBER_BINARY_OPERATORS = exports.NOT_LOCAL_BINDING = exports.LOGICAL_OPERATORS = exports.INHERIT_KEYS = exports.FOR_INIT_KEYS = exports.FLATTENABLE_KEYS = exports.EQUALITY_BINARY_OPERATORS = exports.COMPARISON_BINARY_OPERATORS = exports.COMMENT_KEYS = exports.BOOLEAN_UNARY_OPERATORS = exports.BOOLEAN_NUMBER_BINARY_OPERATORS = exports.BOOLEAN_BINARY_OPERATORS = exports.BLOCK_SCOPED_SYMBOL = exports.BINARY_OPERATORS = exports.ASSIGNMENT_OPERATORS = void 0; +const STATEMENT_OR_BLOCK_KEYS = ["consequent", "body", "alternate"]; +exports.STATEMENT_OR_BLOCK_KEYS = STATEMENT_OR_BLOCK_KEYS; +const FLATTENABLE_KEYS = ["body", "expressions"]; +exports.FLATTENABLE_KEYS = FLATTENABLE_KEYS; +const FOR_INIT_KEYS = ["left", "init"]; +exports.FOR_INIT_KEYS = FOR_INIT_KEYS; +const COMMENT_KEYS = ["leadingComments", "trailingComments", "innerComments"]; +exports.COMMENT_KEYS = COMMENT_KEYS; +const LOGICAL_OPERATORS = ["||", "&&", "??"]; +exports.LOGICAL_OPERATORS = LOGICAL_OPERATORS; +const UPDATE_OPERATORS = ["++", "--"]; +exports.UPDATE_OPERATORS = UPDATE_OPERATORS; +const BOOLEAN_NUMBER_BINARY_OPERATORS = [">", "<", ">=", "<="]; +exports.BOOLEAN_NUMBER_BINARY_OPERATORS = BOOLEAN_NUMBER_BINARY_OPERATORS; +const EQUALITY_BINARY_OPERATORS = ["==", "===", "!=", "!=="]; +exports.EQUALITY_BINARY_OPERATORS = EQUALITY_BINARY_OPERATORS; +const COMPARISON_BINARY_OPERATORS = [...EQUALITY_BINARY_OPERATORS, "in", "instanceof"]; +exports.COMPARISON_BINARY_OPERATORS = COMPARISON_BINARY_OPERATORS; +const BOOLEAN_BINARY_OPERATORS = [...COMPARISON_BINARY_OPERATORS, ...BOOLEAN_NUMBER_BINARY_OPERATORS]; +exports.BOOLEAN_BINARY_OPERATORS = BOOLEAN_BINARY_OPERATORS; +const NUMBER_BINARY_OPERATORS = ["-", "/", "%", "*", "**", "&", "|", ">>", ">>>", "<<", "^"]; +exports.NUMBER_BINARY_OPERATORS = NUMBER_BINARY_OPERATORS; +const BINARY_OPERATORS = ["+", ...NUMBER_BINARY_OPERATORS, ...BOOLEAN_BINARY_OPERATORS, "|>"]; +exports.BINARY_OPERATORS = BINARY_OPERATORS; +const ASSIGNMENT_OPERATORS = ["=", "+=", ...NUMBER_BINARY_OPERATORS.map(op => op + "="), ...LOGICAL_OPERATORS.map(op => op + "=")]; +exports.ASSIGNMENT_OPERATORS = ASSIGNMENT_OPERATORS; +const BOOLEAN_UNARY_OPERATORS = ["delete", "!"]; +exports.BOOLEAN_UNARY_OPERATORS = BOOLEAN_UNARY_OPERATORS; +const NUMBER_UNARY_OPERATORS = ["+", "-", "~"]; +exports.NUMBER_UNARY_OPERATORS = NUMBER_UNARY_OPERATORS; +const STRING_UNARY_OPERATORS = ["typeof"]; +exports.STRING_UNARY_OPERATORS = STRING_UNARY_OPERATORS; +const UNARY_OPERATORS = ["void", "throw", ...BOOLEAN_UNARY_OPERATORS, ...NUMBER_UNARY_OPERATORS, ...STRING_UNARY_OPERATORS]; +exports.UNARY_OPERATORS = UNARY_OPERATORS; +const INHERIT_KEYS = { + optional: ["typeAnnotation", "typeParameters", "returnType"], + force: ["start", "loc", "end"] +}; +exports.INHERIT_KEYS = INHERIT_KEYS; +const BLOCK_SCOPED_SYMBOL = Symbol.for("var used to be block scoped"); +exports.BLOCK_SCOPED_SYMBOL = BLOCK_SCOPED_SYMBOL; +const NOT_LOCAL_BINDING = Symbol.for("should not be considered a local binding"); +exports.NOT_LOCAL_BINDING = NOT_LOCAL_BINDING; + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 6447: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = ensureBlock; +var _toBlock = __webpack_require__(59); +function ensureBlock(node, key = "body") { + const result = (0, _toBlock.default)(node[key], node); + node[key] = result; + return result; +} + +//# sourceMappingURL=ensureBlock.js.map + + +/***/ }), + +/***/ 9170: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = gatherSequenceExpressions; +var _getBindingIdentifiers = __webpack_require__(9565); +var _generated = __webpack_require__(8202); +var _generated2 = __webpack_require__(4204); +var _cloneNode = __webpack_require__(2389); +function gatherSequenceExpressions(nodes, scope, declars) { + const exprs = []; + let ensureLastUndefined = true; + for (const node of nodes) { + if (!(0, _generated.isEmptyStatement)(node)) { + ensureLastUndefined = false; + } + if ((0, _generated.isExpression)(node)) { + exprs.push(node); + } else if ((0, _generated.isExpressionStatement)(node)) { + exprs.push(node.expression); + } else if ((0, _generated.isVariableDeclaration)(node)) { + if (node.kind !== "var") return; + + for (const declar of node.declarations) { + const bindings = (0, _getBindingIdentifiers.default)(declar); + for (const key of Object.keys(bindings)) { + declars.push({ + kind: node.kind, + id: (0, _cloneNode.default)(bindings[key]) + }); + } + if (declar.init) { + exprs.push((0, _generated2.assignmentExpression)("=", declar.id, declar.init)); + } + } + ensureLastUndefined = true; + } else if ((0, _generated.isIfStatement)(node)) { + const consequent = node.consequent ? gatherSequenceExpressions([node.consequent], scope, declars) : scope.buildUndefinedNode(); + const alternate = node.alternate ? gatherSequenceExpressions([node.alternate], scope, declars) : scope.buildUndefinedNode(); + if (!consequent || !alternate) return; + + exprs.push((0, _generated2.conditionalExpression)(node.test, consequent, alternate)); + } else if ((0, _generated.isBlockStatement)(node)) { + const body = gatherSequenceExpressions(node.body, scope, declars); + if (!body) return; + + exprs.push(body); + } else if ((0, _generated.isEmptyStatement)(node)) { + if (nodes.indexOf(node) === 0) { + ensureLastUndefined = true; + } + } else { + return; + } + } + if (ensureLastUndefined) { + exprs.push(scope.buildUndefinedNode()); + } + if (exprs.length === 1) { + return exprs[0]; + } else { + return (0, _generated2.sequenceExpression)(exprs); + } +} + +//# sourceMappingURL=gatherSequenceExpressions.js.map + + +/***/ }), + +/***/ 5680: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = toBindingIdentifierName; +var _toIdentifier = __webpack_require__(6000); +function toBindingIdentifierName(name) { + name = (0, _toIdentifier.default)(name); + if (name === "eval" || name === "arguments") name = "_" + name; + return name; +} + +//# sourceMappingURL=toBindingIdentifierName.js.map + + +/***/ }), + +/***/ 59: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = toBlock; +var _generated = __webpack_require__(8202); +var _generated2 = __webpack_require__(4204); +function toBlock(node, parent) { + if ((0, _generated.isBlockStatement)(node)) { + return node; + } + let blockNodes = []; + if ((0, _generated.isEmptyStatement)(node)) { + blockNodes = []; + } else { + if (!(0, _generated.isStatement)(node)) { + if ((0, _generated.isFunction)(parent)) { + node = (0, _generated2.returnStatement)(node); + } else { + node = (0, _generated2.expressionStatement)(node); + } + } + blockNodes = [node]; + } + return (0, _generated2.blockStatement)(blockNodes); +} + +//# sourceMappingURL=toBlock.js.map + + +/***/ }), + +/***/ 631: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = toComputedKey; +var _generated = __webpack_require__(8202); +var _generated2 = __webpack_require__(4204); +function toComputedKey(node, +key = node.key || node.property) { + if (!node.computed && (0, _generated.isIdentifier)(key)) key = (0, _generated2.stringLiteral)(key.name); + return key; +} + +//# sourceMappingURL=toComputedKey.js.map + + +/***/ }), + +/***/ 9005: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +var _generated = __webpack_require__(8202); +var _default = toExpression; +exports["default"] = _default; +function toExpression(node) { + if ((0, _generated.isExpressionStatement)(node)) { + node = node.expression; + } + + if ((0, _generated.isExpression)(node)) { + return node; + } + + if ((0, _generated.isClass)(node)) { + node.type = "ClassExpression"; + } else if ((0, _generated.isFunction)(node)) { + node.type = "FunctionExpression"; + } + + if (!(0, _generated.isExpression)(node)) { + throw new Error(`cannot turn ${node.type} to an expression`); + } + return node; +} + +//# sourceMappingURL=toExpression.js.map + + +/***/ }), + +/***/ 6000: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = toIdentifier; +var _isValidIdentifier = __webpack_require__(6111); +var _helperValidatorIdentifier = __webpack_require__(8740); +function toIdentifier(input) { + input = input + ""; + + let name = ""; + for (const c of input) { + name += (0, _helperValidatorIdentifier.isIdentifierChar)(c.codePointAt(0)) ? c : "-"; + } + + name = name.replace(/^[-0-9]+/, ""); + + name = name.replace(/[-\s]+(.)?/g, function (match, c) { + return c ? c.toUpperCase() : ""; + }); + if (!(0, _isValidIdentifier.default)(name)) { + name = `_${name}`; + } + return name || "_"; +} + +//# sourceMappingURL=toIdentifier.js.map + + +/***/ }), + +/***/ 4485: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = toKeyAlias; +var _generated = __webpack_require__(8202); +var _cloneNode = __webpack_require__(2389); +var _removePropertiesDeep = __webpack_require__(9069); +function toKeyAlias(node, key = node.key) { + let alias; + + if (node.kind === "method") { + return toKeyAlias.increment() + ""; + } else if ((0, _generated.isIdentifier)(key)) { + alias = key.name; + } else if ((0, _generated.isStringLiteral)(key)) { + alias = JSON.stringify(key.value); + } else { + alias = JSON.stringify((0, _removePropertiesDeep.default)((0, _cloneNode.default)(key))); + } + + if (node.computed) { + alias = `[${alias}]`; + } + + if (node.static) { + alias = `static:${alias}`; + } + return alias; +} +toKeyAlias.uid = 0; +toKeyAlias.increment = function () { + if (toKeyAlias.uid >= Number.MAX_SAFE_INTEGER) { + return toKeyAlias.uid = 0; + } else { + return toKeyAlias.uid++; + } +}; + +//# sourceMappingURL=toKeyAlias.js.map + + +/***/ }), + +/***/ 3264: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = toSequenceExpression; +var _gatherSequenceExpressions = __webpack_require__(9170); +function toSequenceExpression(nodes, scope) { + if (!(nodes != null && nodes.length)) return; + const declars = []; + const result = (0, _gatherSequenceExpressions.default)(nodes, scope, declars); + if (!result) return; + for (const declar of declars) { + scope.push(declar); + } + + return result; +} + +//# sourceMappingURL=toSequenceExpression.js.map + + +/***/ }), + +/***/ 5027: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +var _generated = __webpack_require__(8202); +var _generated2 = __webpack_require__(4204); +var _default = toStatement; +exports["default"] = _default; +function toStatement(node, ignore) { + if ((0, _generated.isStatement)(node)) { + return node; + } + let mustHaveId = false; + let newType; + if ((0, _generated.isClass)(node)) { + mustHaveId = true; + newType = "ClassDeclaration"; + } else if ((0, _generated.isFunction)(node)) { + mustHaveId = true; + newType = "FunctionDeclaration"; + } else if ((0, _generated.isAssignmentExpression)(node)) { + return (0, _generated2.expressionStatement)(node); + } + + if (mustHaveId && !node.id) { + newType = false; + } + if (!newType) { + if (ignore) { + return false; + } else { + throw new Error(`cannot turn ${node.type} to a statement`); + } + } + + node.type = newType; + + return node; +} + +//# sourceMappingURL=toStatement.js.map + + +/***/ }), + +/***/ 6387: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +var _isValidIdentifier = __webpack_require__(6111); +var _generated = __webpack_require__(4204); +var _default = valueToNode; +exports["default"] = _default; +const objectToString = Function.call.bind(Object.prototype.toString); +function isRegExp(value) { + return objectToString(value) === "[object RegExp]"; +} +function isPlainObject(value) { + if (typeof value !== "object" || value === null || Object.prototype.toString.call(value) !== "[object Object]") { + return false; + } + const proto = Object.getPrototypeOf(value); + return proto === null || Object.getPrototypeOf(proto) === null; +} +function valueToNode(value) { + if (value === undefined) { + return (0, _generated.identifier)("undefined"); + } + + if (value === true || value === false) { + return (0, _generated.booleanLiteral)(value); + } + + if (value === null) { + return (0, _generated.nullLiteral)(); + } + + if (typeof value === "string") { + return (0, _generated.stringLiteral)(value); + } + + if (typeof value === "number") { + let result; + if (Number.isFinite(value)) { + result = (0, _generated.numericLiteral)(Math.abs(value)); + } else { + let numerator; + if (Number.isNaN(value)) { + numerator = (0, _generated.numericLiteral)(0); + } else { + numerator = (0, _generated.numericLiteral)(1); + } + result = (0, _generated.binaryExpression)("/", numerator, (0, _generated.numericLiteral)(0)); + } + if (value < 0 || Object.is(value, -0)) { + result = (0, _generated.unaryExpression)("-", result); + } + return result; + } + + if (isRegExp(value)) { + const pattern = value.source; + const flags = value.toString().match(/\/([a-z]+|)$/)[1]; + return (0, _generated.regExpLiteral)(pattern, flags); + } + + if (Array.isArray(value)) { + return (0, _generated.arrayExpression)(value.map(valueToNode)); + } + + if (isPlainObject(value)) { + const props = []; + for (const key of Object.keys(value)) { + let nodeKey; + if ((0, _isValidIdentifier.default)(key)) { + nodeKey = (0, _generated.identifier)(key); + } else { + nodeKey = (0, _generated.stringLiteral)(key); + } + props.push((0, _generated.objectProperty)(nodeKey, valueToNode( + value[key]))); + } + return (0, _generated.objectExpression)(props); + } + throw new Error("don't know how to turn this value into a node"); +} + +//# sourceMappingURL=valueToNode.js.map + + +/***/ }), + +/***/ 4904: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.patternLikeCommon = exports.functionTypeAnnotationCommon = exports.functionDeclarationCommon = exports.functionCommon = exports.classMethodOrPropertyCommon = exports.classMethodOrDeclareMethodCommon = void 0; +var _is = __webpack_require__(4477); +var _isValidIdentifier = __webpack_require__(6111); +var _helperValidatorIdentifier = __webpack_require__(8740); +var _helperStringParser = __webpack_require__(6904); +var _constants = __webpack_require__(8503); +var _utils = __webpack_require__(2882); +const defineType = (0, _utils.defineAliasedType)("Standardized"); +defineType("ArrayExpression", { + fields: { + elements: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeOrValueType)("null", "Expression", "SpreadElement"))), + default: !process.env.BABEL_TYPES_8_BREAKING ? [] : undefined + } + }, + visitor: ["elements"], + aliases: ["Expression"] +}); +defineType("AssignmentExpression", { + fields: { + operator: { + validate: function () { + if (!process.env.BABEL_TYPES_8_BREAKING) { + return (0, _utils.assertValueType)("string"); + } + const identifier = (0, _utils.assertOneOf)(..._constants.ASSIGNMENT_OPERATORS); + const pattern = (0, _utils.assertOneOf)("="); + return function (node, key, val) { + const validator = (0, _is.default)("Pattern", node.left) ? pattern : identifier; + validator(node, key, val); + }; + }() + }, + left: { + validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)("LVal") : (0, _utils.assertNodeType)("Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") + }, + right: { + validate: (0, _utils.assertNodeType)("Expression") + } + }, + builder: ["operator", "left", "right"], + visitor: ["left", "right"], + aliases: ["Expression"] +}); +defineType("BinaryExpression", { + builder: ["operator", "left", "right"], + fields: { + operator: { + validate: (0, _utils.assertOneOf)(..._constants.BINARY_OPERATORS) + }, + left: { + validate: function () { + const expression = (0, _utils.assertNodeType)("Expression"); + const inOp = (0, _utils.assertNodeType)("Expression", "PrivateName"); + const validator = Object.assign(function (node, key, val) { + const validator = node.operator === "in" ? inOp : expression; + validator(node, key, val); + }, + { + oneOfNodeTypes: ["Expression", "PrivateName"] + }); + return validator; + }() + }, + right: { + validate: (0, _utils.assertNodeType)("Expression") + } + }, + visitor: ["left", "right"], + aliases: ["Binary", "Expression"] +}); +defineType("InterpreterDirective", { + builder: ["value"], + fields: { + value: { + validate: (0, _utils.assertValueType)("string") + } + } +}); +defineType("Directive", { + visitor: ["value"], + fields: { + value: { + validate: (0, _utils.assertNodeType)("DirectiveLiteral") + } + } +}); +defineType("DirectiveLiteral", { + builder: ["value"], + fields: { + value: { + validate: (0, _utils.assertValueType)("string") + } + } +}); +defineType("BlockStatement", { + builder: ["body", "directives"], + visitor: ["directives", "body"], + fields: { + directives: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Directive"))), + default: [] + }, + body: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Statement"))) + } + }, + aliases: ["Scopable", "BlockParent", "Block", "Statement"] +}); +defineType("BreakStatement", { + visitor: ["label"], + fields: { + label: { + validate: (0, _utils.assertNodeType)("Identifier"), + optional: true + } + }, + aliases: ["Statement", "Terminatorless", "CompletionStatement"] +}); +defineType("CallExpression", { + visitor: ["callee", "arguments", "typeParameters", "typeArguments"], + builder: ["callee", "arguments"], + aliases: ["Expression"], + fields: Object.assign({ + callee: { + validate: (0, _utils.assertNodeType)("Expression", "Super", "V8IntrinsicIdentifier") + }, + arguments: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Expression", "SpreadElement", "JSXNamespacedName", "ArgumentPlaceholder"))) + } + }, !process.env.BABEL_TYPES_8_BREAKING ? { + optional: { + validate: (0, _utils.assertOneOf)(true, false), + optional: true + } + } : {}, { + typeArguments: { + validate: (0, _utils.assertNodeType)("TypeParameterInstantiation"), + optional: true + }, + typeParameters: { + validate: (0, _utils.assertNodeType)("TSTypeParameterInstantiation"), + optional: true + } + }) +}); +defineType("CatchClause", { + visitor: ["param", "body"], + fields: { + param: { + validate: (0, _utils.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern"), + optional: true + }, + body: { + validate: (0, _utils.assertNodeType)("BlockStatement") + } + }, + aliases: ["Scopable", "BlockParent"] +}); +defineType("ConditionalExpression", { + visitor: ["test", "consequent", "alternate"], + fields: { + test: { + validate: (0, _utils.assertNodeType)("Expression") + }, + consequent: { + validate: (0, _utils.assertNodeType)("Expression") + }, + alternate: { + validate: (0, _utils.assertNodeType)("Expression") + } + }, + aliases: ["Expression", "Conditional"] +}); +defineType("ContinueStatement", { + visitor: ["label"], + fields: { + label: { + validate: (0, _utils.assertNodeType)("Identifier"), + optional: true + } + }, + aliases: ["Statement", "Terminatorless", "CompletionStatement"] +}); +defineType("DebuggerStatement", { + aliases: ["Statement"] +}); +defineType("DoWhileStatement", { + visitor: ["test", "body"], + fields: { + test: { + validate: (0, _utils.assertNodeType)("Expression") + }, + body: { + validate: (0, _utils.assertNodeType)("Statement") + } + }, + aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"] +}); +defineType("EmptyStatement", { + aliases: ["Statement"] +}); +defineType("ExpressionStatement", { + visitor: ["expression"], + fields: { + expression: { + validate: (0, _utils.assertNodeType)("Expression") + } + }, + aliases: ["Statement", "ExpressionWrapper"] +}); +defineType("File", { + builder: ["program", "comments", "tokens"], + visitor: ["program"], + fields: { + program: { + validate: (0, _utils.assertNodeType)("Program") + }, + comments: { + validate: !process.env.BABEL_TYPES_8_BREAKING ? Object.assign(() => {}, { + each: { + oneOfNodeTypes: ["CommentBlock", "CommentLine"] + } + }) : (0, _utils.assertEach)((0, _utils.assertNodeType)("CommentBlock", "CommentLine")), + optional: true + }, + tokens: { + validate: (0, _utils.assertEach)(Object.assign(() => {}, { + type: "any" + })), + optional: true + } + } +}); +defineType("ForInStatement", { + visitor: ["left", "right", "body"], + aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"], + fields: { + left: { + validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)("VariableDeclaration", "LVal") : (0, _utils.assertNodeType)("VariableDeclaration", "Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") + }, + right: { + validate: (0, _utils.assertNodeType)("Expression") + }, + body: { + validate: (0, _utils.assertNodeType)("Statement") + } + } +}); +defineType("ForStatement", { + visitor: ["init", "test", "update", "body"], + aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop"], + fields: { + init: { + validate: (0, _utils.assertNodeType)("VariableDeclaration", "Expression"), + optional: true + }, + test: { + validate: (0, _utils.assertNodeType)("Expression"), + optional: true + }, + update: { + validate: (0, _utils.assertNodeType)("Expression"), + optional: true + }, + body: { + validate: (0, _utils.assertNodeType)("Statement") + } + } +}); +const functionCommon = () => ({ + params: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Identifier", "Pattern", "RestElement"))) + }, + generator: { + default: false + }, + async: { + default: false + } +}); +exports.functionCommon = functionCommon; +const functionTypeAnnotationCommon = () => ({ + returnType: { + validate: (0, _utils.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", + "Noop"), + optional: true + }, + typeParameters: { + validate: (0, _utils.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", + "Noop"), + optional: true + } +}); +exports.functionTypeAnnotationCommon = functionTypeAnnotationCommon; +const functionDeclarationCommon = () => Object.assign({}, functionCommon(), { + declare: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + }, + id: { + validate: (0, _utils.assertNodeType)("Identifier"), + optional: true + } +}); +exports.functionDeclarationCommon = functionDeclarationCommon; +defineType("FunctionDeclaration", { + builder: ["id", "params", "body", "generator", "async"], + visitor: ["id", "params", "body", "returnType", "typeParameters"], + fields: Object.assign({}, functionDeclarationCommon(), functionTypeAnnotationCommon(), { + body: { + validate: (0, _utils.assertNodeType)("BlockStatement") + }, + predicate: { + validate: (0, _utils.assertNodeType)("DeclaredPredicate", "InferredPredicate"), + optional: true + } + }), + aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Statement", "Pureish", "Declaration"], + validate: function () { + if (!process.env.BABEL_TYPES_8_BREAKING) return () => {}; + const identifier = (0, _utils.assertNodeType)("Identifier"); + return function (parent, key, node) { + if (!(0, _is.default)("ExportDefaultDeclaration", parent)) { + identifier(node, "id", node.id); + } + }; + }() +}); +defineType("FunctionExpression", { + inherits: "FunctionDeclaration", + aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pureish"], + fields: Object.assign({}, functionCommon(), functionTypeAnnotationCommon(), { + id: { + validate: (0, _utils.assertNodeType)("Identifier"), + optional: true + }, + body: { + validate: (0, _utils.assertNodeType)("BlockStatement") + }, + predicate: { + validate: (0, _utils.assertNodeType)("DeclaredPredicate", "InferredPredicate"), + optional: true + } + }) +}); +const patternLikeCommon = () => ({ + typeAnnotation: { + validate: (0, _utils.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", + "Noop"), + optional: true + }, + decorators: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), + optional: true + } +}); +exports.patternLikeCommon = patternLikeCommon; +defineType("Identifier", { + builder: ["name"], + visitor: ["typeAnnotation", "decorators"], + aliases: ["Expression", "PatternLike", "LVal", "TSEntityName"], + fields: Object.assign({}, patternLikeCommon(), { + name: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("string"), Object.assign(function (node, key, val) { + if (!process.env.BABEL_TYPES_8_BREAKING) return; + if (!(0, _isValidIdentifier.default)(val, false)) { + throw new TypeError(`"${val}" is not a valid identifier name`); + } + }, { + type: "string" + })) + }, + optional: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + } + }), + validate(parent, key, node) { + if (!process.env.BABEL_TYPES_8_BREAKING) return; + const match = /\.(\w+)$/.exec(key); + if (!match) return; + const [, parentKey] = match; + const nonComp = { + computed: false + }; + + if (parentKey === "property") { + if ((0, _is.default)("MemberExpression", parent, nonComp)) return; + if ((0, _is.default)("OptionalMemberExpression", parent, nonComp)) return; + } else if (parentKey === "key") { + if ((0, _is.default)("Property", parent, nonComp)) return; + if ((0, _is.default)("Method", parent, nonComp)) return; + } else if (parentKey === "exported") { + if ((0, _is.default)("ExportSpecifier", parent)) return; + } else if (parentKey === "imported") { + if ((0, _is.default)("ImportSpecifier", parent, { + imported: node + })) return; + } else if (parentKey === "meta") { + if ((0, _is.default)("MetaProperty", parent, { + meta: node + })) return; + } + if ( + ((0, _helperValidatorIdentifier.isKeyword)(node.name) || (0, _helperValidatorIdentifier.isReservedWord)(node.name, false)) && + node.name !== "this") { + throw new TypeError(`"${node.name}" is not a valid identifier`); + } + } +}); +defineType("IfStatement", { + visitor: ["test", "consequent", "alternate"], + aliases: ["Statement", "Conditional"], + fields: { + test: { + validate: (0, _utils.assertNodeType)("Expression") + }, + consequent: { + validate: (0, _utils.assertNodeType)("Statement") + }, + alternate: { + optional: true, + validate: (0, _utils.assertNodeType)("Statement") + } + } +}); +defineType("LabeledStatement", { + visitor: ["label", "body"], + aliases: ["Statement"], + fields: { + label: { + validate: (0, _utils.assertNodeType)("Identifier") + }, + body: { + validate: (0, _utils.assertNodeType)("Statement") + } + } +}); +defineType("StringLiteral", { + builder: ["value"], + fields: { + value: { + validate: (0, _utils.assertValueType)("string") + } + }, + aliases: ["Expression", "Pureish", "Literal", "Immutable"] +}); +defineType("NumericLiteral", { + builder: ["value"], + deprecatedAlias: "NumberLiteral", + fields: { + value: { + validate: (0, _utils.assertValueType)("number") + } + }, + aliases: ["Expression", "Pureish", "Literal", "Immutable"] +}); +defineType("NullLiteral", { + aliases: ["Expression", "Pureish", "Literal", "Immutable"] +}); +defineType("BooleanLiteral", { + builder: ["value"], + fields: { + value: { + validate: (0, _utils.assertValueType)("boolean") + } + }, + aliases: ["Expression", "Pureish", "Literal", "Immutable"] +}); +defineType("RegExpLiteral", { + builder: ["pattern", "flags"], + deprecatedAlias: "RegexLiteral", + aliases: ["Expression", "Pureish", "Literal"], + fields: { + pattern: { + validate: (0, _utils.assertValueType)("string") + }, + flags: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("string"), Object.assign(function (node, key, val) { + if (!process.env.BABEL_TYPES_8_BREAKING) return; + const invalid = /[^gimsuy]/.exec(val); + if (invalid) { + throw new TypeError(`"${invalid[0]}" is not a valid RegExp flag`); + } + }, { + type: "string" + })), + default: "" + } + } +}); +defineType("LogicalExpression", { + builder: ["operator", "left", "right"], + visitor: ["left", "right"], + aliases: ["Binary", "Expression"], + fields: { + operator: { + validate: (0, _utils.assertOneOf)(..._constants.LOGICAL_OPERATORS) + }, + left: { + validate: (0, _utils.assertNodeType)("Expression") + }, + right: { + validate: (0, _utils.assertNodeType)("Expression") + } + } +}); +defineType("MemberExpression", { + builder: ["object", "property", "computed", ...(!process.env.BABEL_TYPES_8_BREAKING ? ["optional"] : [])], + visitor: ["object", "property"], + aliases: ["Expression", "LVal"], + fields: Object.assign({ + object: { + validate: (0, _utils.assertNodeType)("Expression", "Super") + }, + property: { + validate: function () { + const normal = (0, _utils.assertNodeType)("Identifier", "PrivateName"); + const computed = (0, _utils.assertNodeType)("Expression"); + const validator = function (node, key, val) { + const validator = node.computed ? computed : normal; + validator(node, key, val); + }; + validator.oneOfNodeTypes = ["Expression", "Identifier", "PrivateName"]; + return validator; + }() + }, + computed: { + default: false + } + }, !process.env.BABEL_TYPES_8_BREAKING ? { + optional: { + validate: (0, _utils.assertOneOf)(true, false), + optional: true + } + } : {}) +}); +defineType("NewExpression", { + inherits: "CallExpression" +}); +defineType("Program", { + visitor: ["directives", "body"], + builder: ["body", "directives", "sourceType", "interpreter"], + fields: { + sourceFile: { + validate: (0, _utils.assertValueType)("string") + }, + sourceType: { + validate: (0, _utils.assertOneOf)("script", "module"), + default: "script" + }, + interpreter: { + validate: (0, _utils.assertNodeType)("InterpreterDirective"), + default: null, + optional: true + }, + directives: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Directive"))), + default: [] + }, + body: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Statement"))) + } + }, + aliases: ["Scopable", "BlockParent", "Block"] +}); +defineType("ObjectExpression", { + visitor: ["properties"], + aliases: ["Expression"], + fields: { + properties: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("ObjectMethod", "ObjectProperty", "SpreadElement"))) + } + } +}); +defineType("ObjectMethod", { + builder: ["kind", "key", "params", "body", "computed", "generator", "async"], + fields: Object.assign({}, functionCommon(), functionTypeAnnotationCommon(), { + kind: Object.assign({ + validate: (0, _utils.assertOneOf)("method", "get", "set") + }, !process.env.BABEL_TYPES_8_BREAKING ? { + default: "method" + } : {}), + computed: { + default: false + }, + key: { + validate: function () { + const normal = (0, _utils.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral"); + const computed = (0, _utils.assertNodeType)("Expression"); + const validator = function (node, key, val) { + const validator = node.computed ? computed : normal; + validator(node, key, val); + }; + validator.oneOfNodeTypes = ["Expression", "Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral"]; + return validator; + }() + }, + decorators: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), + optional: true + }, + body: { + validate: (0, _utils.assertNodeType)("BlockStatement") + } + }), + visitor: ["key", "params", "body", "decorators", "returnType", "typeParameters"], + aliases: ["UserWhitespacable", "Function", "Scopable", "BlockParent", "FunctionParent", "Method", "ObjectMember"] +}); +defineType("ObjectProperty", { + builder: ["key", "value", "computed", "shorthand", ...(!process.env.BABEL_TYPES_8_BREAKING ? ["decorators"] : [])], + fields: { + computed: { + default: false + }, + key: { + validate: function () { + const normal = (0, _utils.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "DecimalLiteral", "PrivateName"); + const computed = (0, _utils.assertNodeType)("Expression"); + const validator = Object.assign(function (node, key, val) { + const validator = node.computed ? computed : normal; + validator(node, key, val); + }, { + oneOfNodeTypes: ["Expression", "Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "DecimalLiteral", "PrivateName"] + }); + return validator; + }() + }, + value: { + validate: (0, _utils.assertNodeType)("Expression", "PatternLike") + }, + shorthand: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("boolean"), Object.assign(function (node, key, val) { + if (!process.env.BABEL_TYPES_8_BREAKING) return; + if (val && node.computed) { + throw new TypeError("Property shorthand of ObjectProperty cannot be true if computed is true"); + } + }, { + type: "boolean" + }), function (node, key, val) { + if (!process.env.BABEL_TYPES_8_BREAKING) return; + if (val && !(0, _is.default)("Identifier", node.key)) { + throw new TypeError("Property shorthand of ObjectProperty cannot be true if key is not an Identifier"); + } + }), + default: false + }, + decorators: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), + optional: true + } + }, + visitor: ["key", "value", "decorators"], + aliases: ["UserWhitespacable", "Property", "ObjectMember"], + validate: function () { + const pattern = (0, _utils.assertNodeType)("Identifier", "Pattern", "TSAsExpression", "TSSatisfiesExpression", "TSNonNullExpression", "TSTypeAssertion"); + const expression = (0, _utils.assertNodeType)("Expression"); + return function (parent, key, node) { + if (!process.env.BABEL_TYPES_8_BREAKING) return; + const validator = (0, _is.default)("ObjectPattern", parent) ? pattern : expression; + validator(node, "value", node.value); + }; + }() +}); +defineType("RestElement", { + visitor: ["argument", "typeAnnotation"], + builder: ["argument"], + aliases: ["LVal", "PatternLike"], + deprecatedAlias: "RestProperty", + fields: Object.assign({}, patternLikeCommon(), { + argument: { + validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)("LVal") : (0, _utils.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern", "MemberExpression", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") + }, + optional: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + } + }), + validate(parent, key) { + if (!process.env.BABEL_TYPES_8_BREAKING) return; + const match = /(\w+)\[(\d+)\]/.exec(key); + if (!match) throw new Error("Internal Babel error: malformed key."); + const [, listKey, index] = match; + if (parent[listKey].length > +index + 1) { + throw new TypeError(`RestElement must be last element of ${listKey}`); + } + } +}); +defineType("ReturnStatement", { + visitor: ["argument"], + aliases: ["Statement", "Terminatorless", "CompletionStatement"], + fields: { + argument: { + validate: (0, _utils.assertNodeType)("Expression"), + optional: true + } + } +}); +defineType("SequenceExpression", { + visitor: ["expressions"], + fields: { + expressions: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Expression"))) + } + }, + aliases: ["Expression"] +}); +defineType("ParenthesizedExpression", { + visitor: ["expression"], + aliases: ["Expression", "ExpressionWrapper"], + fields: { + expression: { + validate: (0, _utils.assertNodeType)("Expression") + } + } +}); +defineType("SwitchCase", { + visitor: ["test", "consequent"], + fields: { + test: { + validate: (0, _utils.assertNodeType)("Expression"), + optional: true + }, + consequent: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Statement"))) + } + } +}); +defineType("SwitchStatement", { + visitor: ["discriminant", "cases"], + aliases: ["Statement", "BlockParent", "Scopable"], + fields: { + discriminant: { + validate: (0, _utils.assertNodeType)("Expression") + }, + cases: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("SwitchCase"))) + } + } +}); +defineType("ThisExpression", { + aliases: ["Expression"] +}); +defineType("ThrowStatement", { + visitor: ["argument"], + aliases: ["Statement", "Terminatorless", "CompletionStatement"], + fields: { + argument: { + validate: (0, _utils.assertNodeType)("Expression") + } + } +}); +defineType("TryStatement", { + visitor: ["block", "handler", "finalizer"], + aliases: ["Statement"], + fields: { + block: { + validate: (0, _utils.chain)((0, _utils.assertNodeType)("BlockStatement"), Object.assign(function (node) { + if (!process.env.BABEL_TYPES_8_BREAKING) return; + + if (!node.handler && !node.finalizer) { + throw new TypeError("TryStatement expects either a handler or finalizer, or both"); + } + }, { + oneOfNodeTypes: ["BlockStatement"] + })) + }, + handler: { + optional: true, + validate: (0, _utils.assertNodeType)("CatchClause") + }, + finalizer: { + optional: true, + validate: (0, _utils.assertNodeType)("BlockStatement") + } + } +}); +defineType("UnaryExpression", { + builder: ["operator", "argument", "prefix"], + fields: { + prefix: { + default: true + }, + argument: { + validate: (0, _utils.assertNodeType)("Expression") + }, + operator: { + validate: (0, _utils.assertOneOf)(..._constants.UNARY_OPERATORS) + } + }, + visitor: ["argument"], + aliases: ["UnaryLike", "Expression"] +}); +defineType("UpdateExpression", { + builder: ["operator", "argument", "prefix"], + fields: { + prefix: { + default: false + }, + argument: { + validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)("Expression") : (0, _utils.assertNodeType)("Identifier", "MemberExpression") + }, + operator: { + validate: (0, _utils.assertOneOf)(..._constants.UPDATE_OPERATORS) + } + }, + visitor: ["argument"], + aliases: ["Expression"] +}); +defineType("VariableDeclaration", { + builder: ["kind", "declarations"], + visitor: ["declarations"], + aliases: ["Statement", "Declaration"], + fields: { + declare: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + }, + kind: { + validate: (0, _utils.assertOneOf)("var", "let", "const", + "using") + }, + declarations: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("VariableDeclarator"))) + } + }, + validate(parent, key, node) { + if (!process.env.BABEL_TYPES_8_BREAKING) return; + if (!(0, _is.default)("ForXStatement", parent, { + left: node + })) return; + if (node.declarations.length !== 1) { + throw new TypeError(`Exactly one VariableDeclarator is required in the VariableDeclaration of a ${parent.type}`); + } + } +}); +defineType("VariableDeclarator", { + visitor: ["id", "init"], + fields: { + id: { + validate: function () { + if (!process.env.BABEL_TYPES_8_BREAKING) { + return (0, _utils.assertNodeType)("LVal"); + } + const normal = (0, _utils.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern"); + const without = (0, _utils.assertNodeType)("Identifier"); + return function (node, key, val) { + const validator = node.init ? normal : without; + validator(node, key, val); + }; + }() + }, + definite: { + optional: true, + validate: (0, _utils.assertValueType)("boolean") + }, + init: { + optional: true, + validate: (0, _utils.assertNodeType)("Expression") + } + } +}); +defineType("WhileStatement", { + visitor: ["test", "body"], + aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"], + fields: { + test: { + validate: (0, _utils.assertNodeType)("Expression") + }, + body: { + validate: (0, _utils.assertNodeType)("Statement") + } + } +}); +defineType("WithStatement", { + visitor: ["object", "body"], + aliases: ["Statement"], + fields: { + object: { + validate: (0, _utils.assertNodeType)("Expression") + }, + body: { + validate: (0, _utils.assertNodeType)("Statement") + } + } +}); + +defineType("AssignmentPattern", { + visitor: ["left", "right", "decorators"], + builder: ["left", "right"], + aliases: ["Pattern", "PatternLike", "LVal"], + fields: Object.assign({}, patternLikeCommon(), { + left: { + validate: (0, _utils.assertNodeType)("Identifier", "ObjectPattern", "ArrayPattern", "MemberExpression", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") + }, + right: { + validate: (0, _utils.assertNodeType)("Expression") + }, + decorators: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), + optional: true + } + }) +}); +defineType("ArrayPattern", { + visitor: ["elements", "typeAnnotation"], + builder: ["elements"], + aliases: ["Pattern", "PatternLike", "LVal"], + fields: Object.assign({}, patternLikeCommon(), { + elements: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeOrValueType)("null", "PatternLike", "LVal"))) + }, + decorators: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), + optional: true + }, + optional: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + } + }) +}); +defineType("ArrowFunctionExpression", { + builder: ["params", "body", "async"], + visitor: ["params", "body", "returnType", "typeParameters"], + aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pureish"], + fields: Object.assign({}, functionCommon(), functionTypeAnnotationCommon(), { + expression: { + validate: (0, _utils.assertValueType)("boolean") + }, + body: { + validate: (0, _utils.assertNodeType)("BlockStatement", "Expression") + }, + predicate: { + validate: (0, _utils.assertNodeType)("DeclaredPredicate", "InferredPredicate"), + optional: true + } + }) +}); +defineType("ClassBody", { + visitor: ["body"], + fields: { + body: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("ClassMethod", "ClassPrivateMethod", "ClassProperty", "ClassPrivateProperty", "ClassAccessorProperty", "TSDeclareMethod", "TSIndexSignature", "StaticBlock"))) + } + } +}); +defineType("ClassExpression", { + builder: ["id", "superClass", "body", "decorators"], + visitor: ["id", "body", "superClass", "mixins", "typeParameters", "superTypeParameters", "implements", "decorators"], + aliases: ["Scopable", "Class", "Expression"], + fields: { + id: { + validate: (0, _utils.assertNodeType)("Identifier"), + optional: true + }, + typeParameters: { + validate: (0, _utils.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", + "Noop"), + optional: true + }, + body: { + validate: (0, _utils.assertNodeType)("ClassBody") + }, + superClass: { + optional: true, + validate: (0, _utils.assertNodeType)("Expression") + }, + superTypeParameters: { + validate: (0, _utils.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"), + optional: true + }, + implements: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("TSExpressionWithTypeArguments", "ClassImplements"))), + optional: true + }, + decorators: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), + optional: true + }, + mixins: { + validate: (0, _utils.assertNodeType)("InterfaceExtends"), + optional: true + } + } +}); +defineType("ClassDeclaration", { + inherits: "ClassExpression", + aliases: ["Scopable", "Class", "Statement", "Declaration"], + fields: { + id: { + validate: (0, _utils.assertNodeType)("Identifier") + }, + typeParameters: { + validate: (0, _utils.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", + "Noop"), + optional: true + }, + body: { + validate: (0, _utils.assertNodeType)("ClassBody") + }, + superClass: { + optional: true, + validate: (0, _utils.assertNodeType)("Expression") + }, + superTypeParameters: { + validate: (0, _utils.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"), + optional: true + }, + implements: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("TSExpressionWithTypeArguments", "ClassImplements"))), + optional: true + }, + decorators: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), + optional: true + }, + mixins: { + validate: (0, _utils.assertNodeType)("InterfaceExtends"), + optional: true + }, + declare: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + }, + abstract: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + } + }, + validate: function () { + const identifier = (0, _utils.assertNodeType)("Identifier"); + return function (parent, key, node) { + if (!process.env.BABEL_TYPES_8_BREAKING) return; + if (!(0, _is.default)("ExportDefaultDeclaration", parent)) { + identifier(node, "id", node.id); + } + }; + }() +}); +defineType("ExportAllDeclaration", { + visitor: ["source"], + aliases: ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"], + fields: { + source: { + validate: (0, _utils.assertNodeType)("StringLiteral") + }, + exportKind: (0, _utils.validateOptional)((0, _utils.assertOneOf)("type", "value")), + assertions: { + optional: true, + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("ImportAttribute"))) + } + } +}); +defineType("ExportDefaultDeclaration", { + visitor: ["declaration"], + aliases: ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"], + fields: { + declaration: { + validate: (0, _utils.assertNodeType)("TSDeclareFunction", "FunctionDeclaration", "ClassDeclaration", "Expression") + }, + exportKind: (0, _utils.validateOptional)((0, _utils.assertOneOf)("value")) + } +}); +defineType("ExportNamedDeclaration", { + visitor: ["declaration", "specifiers", "source"], + aliases: ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"], + fields: { + declaration: { + optional: true, + validate: (0, _utils.chain)((0, _utils.assertNodeType)("Declaration"), Object.assign(function (node, key, val) { + if (!process.env.BABEL_TYPES_8_BREAKING) return; + + if (val && node.specifiers.length) { + throw new TypeError("Only declaration or specifiers is allowed on ExportNamedDeclaration"); + } + }, { + oneOfNodeTypes: ["Declaration"] + }), function (node, key, val) { + if (!process.env.BABEL_TYPES_8_BREAKING) return; + + if (val && node.source) { + throw new TypeError("Cannot export a declaration from a source"); + } + }) + }, + assertions: { + optional: true, + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("ImportAttribute"))) + }, + specifiers: { + default: [], + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)(function () { + const sourced = (0, _utils.assertNodeType)("ExportSpecifier", "ExportDefaultSpecifier", "ExportNamespaceSpecifier"); + const sourceless = (0, _utils.assertNodeType)("ExportSpecifier"); + if (!process.env.BABEL_TYPES_8_BREAKING) return sourced; + return function (node, key, val) { + const validator = node.source ? sourced : sourceless; + validator(node, key, val); + }; + }())) + }, + source: { + validate: (0, _utils.assertNodeType)("StringLiteral"), + optional: true + }, + exportKind: (0, _utils.validateOptional)((0, _utils.assertOneOf)("type", "value")) + } +}); +defineType("ExportSpecifier", { + visitor: ["local", "exported"], + aliases: ["ModuleSpecifier"], + fields: { + local: { + validate: (0, _utils.assertNodeType)("Identifier") + }, + exported: { + validate: (0, _utils.assertNodeType)("Identifier", "StringLiteral") + }, + exportKind: { + validate: (0, _utils.assertOneOf)("type", "value"), + optional: true + } + } +}); +defineType("ForOfStatement", { + visitor: ["left", "right", "body"], + builder: ["left", "right", "body", "await"], + aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"], + fields: { + left: { + validate: function () { + if (!process.env.BABEL_TYPES_8_BREAKING) { + return (0, _utils.assertNodeType)("VariableDeclaration", "LVal"); + } + const declaration = (0, _utils.assertNodeType)("VariableDeclaration"); + const lval = (0, _utils.assertNodeType)("Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression"); + return function (node, key, val) { + if ((0, _is.default)("VariableDeclaration", val)) { + declaration(node, key, val); + } else { + lval(node, key, val); + } + }; + }() + }, + right: { + validate: (0, _utils.assertNodeType)("Expression") + }, + body: { + validate: (0, _utils.assertNodeType)("Statement") + }, + await: { + default: false + } + } +}); +defineType("ImportDeclaration", { + visitor: ["specifiers", "source"], + aliases: ["Statement", "Declaration", "ModuleDeclaration"], + fields: { + assertions: { + optional: true, + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("ImportAttribute"))) + }, + module: { + optional: true, + validate: (0, _utils.assertValueType)("boolean") + }, + specifiers: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("ImportSpecifier", "ImportDefaultSpecifier", "ImportNamespaceSpecifier"))) + }, + source: { + validate: (0, _utils.assertNodeType)("StringLiteral") + }, + importKind: { + validate: (0, _utils.assertOneOf)("type", "typeof", "value"), + optional: true + } + } +}); +defineType("ImportDefaultSpecifier", { + visitor: ["local"], + aliases: ["ModuleSpecifier"], + fields: { + local: { + validate: (0, _utils.assertNodeType)("Identifier") + } + } +}); +defineType("ImportNamespaceSpecifier", { + visitor: ["local"], + aliases: ["ModuleSpecifier"], + fields: { + local: { + validate: (0, _utils.assertNodeType)("Identifier") + } + } +}); +defineType("ImportSpecifier", { + visitor: ["local", "imported"], + aliases: ["ModuleSpecifier"], + fields: { + local: { + validate: (0, _utils.assertNodeType)("Identifier") + }, + imported: { + validate: (0, _utils.assertNodeType)("Identifier", "StringLiteral") + }, + importKind: { + validate: (0, _utils.assertOneOf)("type", "typeof", "value"), + optional: true + } + } +}); +defineType("MetaProperty", { + visitor: ["meta", "property"], + aliases: ["Expression"], + fields: { + meta: { + validate: (0, _utils.chain)((0, _utils.assertNodeType)("Identifier"), Object.assign(function (node, key, val) { + if (!process.env.BABEL_TYPES_8_BREAKING) return; + let property; + switch (val.name) { + case "function": + property = "sent"; + break; + case "new": + property = "target"; + break; + case "import": + property = "meta"; + break; + } + if (!(0, _is.default)("Identifier", node.property, { + name: property + })) { + throw new TypeError("Unrecognised MetaProperty"); + } + }, { + oneOfNodeTypes: ["Identifier"] + })) + }, + property: { + validate: (0, _utils.assertNodeType)("Identifier") + } + } +}); +const classMethodOrPropertyCommon = () => ({ + abstract: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + }, + accessibility: { + validate: (0, _utils.assertOneOf)("public", "private", "protected"), + optional: true + }, + static: { + default: false + }, + override: { + default: false + }, + computed: { + default: false + }, + optional: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + }, + key: { + validate: (0, _utils.chain)(function () { + const normal = (0, _utils.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral"); + const computed = (0, _utils.assertNodeType)("Expression"); + return function (node, key, val) { + const validator = node.computed ? computed : normal; + validator(node, key, val); + }; + }(), (0, _utils.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "Expression")) + } +}); +exports.classMethodOrPropertyCommon = classMethodOrPropertyCommon; +const classMethodOrDeclareMethodCommon = () => Object.assign({}, functionCommon(), classMethodOrPropertyCommon(), { + params: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Identifier", "Pattern", "RestElement", "TSParameterProperty"))) + }, + kind: { + validate: (0, _utils.assertOneOf)("get", "set", "method", "constructor"), + default: "method" + }, + access: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("string"), (0, _utils.assertOneOf)("public", "private", "protected")), + optional: true + }, + decorators: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), + optional: true + } +}); +exports.classMethodOrDeclareMethodCommon = classMethodOrDeclareMethodCommon; +defineType("ClassMethod", { + aliases: ["Function", "Scopable", "BlockParent", "FunctionParent", "Method"], + builder: ["kind", "key", "params", "body", "computed", "static", "generator", "async"], + visitor: ["key", "params", "body", "decorators", "returnType", "typeParameters"], + fields: Object.assign({}, classMethodOrDeclareMethodCommon(), functionTypeAnnotationCommon(), { + body: { + validate: (0, _utils.assertNodeType)("BlockStatement") + } + }) +}); +defineType("ObjectPattern", { + visitor: ["properties", "typeAnnotation", "decorators"], + + builder: ["properties"], + aliases: ["Pattern", "PatternLike", "LVal"], + fields: Object.assign({}, patternLikeCommon(), { + properties: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("RestElement", "ObjectProperty"))) + } + }) +}); +defineType("SpreadElement", { + visitor: ["argument"], + aliases: ["UnaryLike"], + deprecatedAlias: "SpreadProperty", + fields: { + argument: { + validate: (0, _utils.assertNodeType)("Expression") + } + } +}); +defineType("Super", { + aliases: ["Expression"] +}); +defineType("TaggedTemplateExpression", { + visitor: ["tag", "quasi", "typeParameters"], + builder: ["tag", "quasi"], + aliases: ["Expression"], + fields: { + tag: { + validate: (0, _utils.assertNodeType)("Expression") + }, + quasi: { + validate: (0, _utils.assertNodeType)("TemplateLiteral") + }, + typeParameters: { + validate: (0, _utils.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"), + optional: true + } + } +}); +defineType("TemplateElement", { + builder: ["value", "tail"], + fields: { + value: { + validate: (0, _utils.chain)((0, _utils.assertShape)({ + raw: { + validate: (0, _utils.assertValueType)("string") + }, + cooked: { + validate: (0, _utils.assertValueType)("string"), + optional: true + } + }), function templateElementCookedValidator(node) { + const raw = node.value.raw; + let unterminatedCalled = false; + const error = () => { + throw new Error("Internal @babel/types error."); + }; + const { + str, + firstInvalidLoc + } = (0, _helperStringParser.readStringContents)("template", raw, 0, 0, 0, { + unterminated() { + unterminatedCalled = true; + }, + strictNumericEscape: error, + invalidEscapeSequence: error, + numericSeparatorInEscapeSequence: error, + unexpectedNumericSeparator: error, + invalidDigit: error, + invalidCodePoint: error + }); + if (!unterminatedCalled) throw new Error("Invalid raw"); + node.value.cooked = firstInvalidLoc ? null : str; + }) + }, + tail: { + default: false + } + } +}); +defineType("TemplateLiteral", { + visitor: ["quasis", "expressions"], + aliases: ["Expression", "Literal"], + fields: { + quasis: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("TemplateElement"))) + }, + expressions: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Expression", + "TSType")), function (node, key, val) { + if (node.quasis.length !== val.length + 1) { + throw new TypeError(`Number of ${node.type} quasis should be exactly one more than the number of expressions.\nExpected ${val.length + 1} quasis but got ${node.quasis.length}`); + } + }) + } + } +}); +defineType("YieldExpression", { + builder: ["argument", "delegate"], + visitor: ["argument"], + aliases: ["Expression", "Terminatorless"], + fields: { + delegate: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("boolean"), Object.assign(function (node, key, val) { + if (!process.env.BABEL_TYPES_8_BREAKING) return; + if (val && !node.argument) { + throw new TypeError("Property delegate of YieldExpression cannot be true if there is no argument"); + } + }, { + type: "boolean" + })), + default: false + }, + argument: { + optional: true, + validate: (0, _utils.assertNodeType)("Expression") + } + } +}); + +defineType("AwaitExpression", { + builder: ["argument"], + visitor: ["argument"], + aliases: ["Expression", "Terminatorless"], + fields: { + argument: { + validate: (0, _utils.assertNodeType)("Expression") + } + } +}); + +defineType("Import", { + aliases: ["Expression"] +}); + +defineType("BigIntLiteral", { + builder: ["value"], + fields: { + value: { + validate: (0, _utils.assertValueType)("string") + } + }, + aliases: ["Expression", "Pureish", "Literal", "Immutable"] +}); +defineType("ExportNamespaceSpecifier", { + visitor: ["exported"], + aliases: ["ModuleSpecifier"], + fields: { + exported: { + validate: (0, _utils.assertNodeType)("Identifier") + } + } +}); +defineType("OptionalMemberExpression", { + builder: ["object", "property", "computed", "optional"], + visitor: ["object", "property"], + aliases: ["Expression"], + fields: { + object: { + validate: (0, _utils.assertNodeType)("Expression") + }, + property: { + validate: function () { + const normal = (0, _utils.assertNodeType)("Identifier"); + const computed = (0, _utils.assertNodeType)("Expression"); + const validator = Object.assign(function (node, key, val) { + const validator = node.computed ? computed : normal; + validator(node, key, val); + }, + { + oneOfNodeTypes: ["Expression", "Identifier"] + }); + return validator; + }() + }, + computed: { + default: false + }, + optional: { + validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertValueType)("boolean") : (0, _utils.chain)((0, _utils.assertValueType)("boolean"), (0, _utils.assertOptionalChainStart)()) + } + } +}); +defineType("OptionalCallExpression", { + visitor: ["callee", "arguments", "typeParameters", "typeArguments"], + builder: ["callee", "arguments", "optional"], + aliases: ["Expression"], + fields: { + callee: { + validate: (0, _utils.assertNodeType)("Expression") + }, + arguments: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Expression", "SpreadElement", "JSXNamespacedName", "ArgumentPlaceholder"))) + }, + optional: { + validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertValueType)("boolean") : (0, _utils.chain)((0, _utils.assertValueType)("boolean"), (0, _utils.assertOptionalChainStart)()) + }, + typeArguments: { + validate: (0, _utils.assertNodeType)("TypeParameterInstantiation"), + optional: true + }, + typeParameters: { + validate: (0, _utils.assertNodeType)("TSTypeParameterInstantiation"), + optional: true + } + } +}); + +defineType("ClassProperty", { + visitor: ["key", "value", "typeAnnotation", "decorators"], + builder: ["key", "value", "typeAnnotation", "decorators", "computed", "static"], + aliases: ["Property"], + fields: Object.assign({}, classMethodOrPropertyCommon(), { + value: { + validate: (0, _utils.assertNodeType)("Expression"), + optional: true + }, + definite: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + }, + typeAnnotation: { + validate: (0, _utils.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", + "Noop"), + optional: true + }, + decorators: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), + optional: true + }, + readonly: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + }, + declare: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + }, + variance: { + validate: (0, _utils.assertNodeType)("Variance"), + optional: true + } + }) +}); +defineType("ClassAccessorProperty", { + visitor: ["key", "value", "typeAnnotation", "decorators"], + builder: ["key", "value", "typeAnnotation", "decorators", "computed", "static"], + aliases: ["Property", "Accessor"], + fields: Object.assign({}, classMethodOrPropertyCommon(), { + key: { + validate: (0, _utils.chain)(function () { + const normal = (0, _utils.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "PrivateName"); + const computed = (0, _utils.assertNodeType)("Expression"); + return function (node, key, val) { + const validator = node.computed ? computed : normal; + validator(node, key, val); + }; + }(), (0, _utils.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "Expression", "PrivateName")) + }, + value: { + validate: (0, _utils.assertNodeType)("Expression"), + optional: true + }, + definite: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + }, + typeAnnotation: { + validate: (0, _utils.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", + "Noop"), + optional: true + }, + decorators: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), + optional: true + }, + readonly: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + }, + declare: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + }, + variance: { + validate: (0, _utils.assertNodeType)("Variance"), + optional: true + } + }) +}); +defineType("ClassPrivateProperty", { + visitor: ["key", "value", "decorators", "typeAnnotation"], + builder: ["key", "value", "decorators", "static"], + aliases: ["Property", "Private"], + fields: { + key: { + validate: (0, _utils.assertNodeType)("PrivateName") + }, + value: { + validate: (0, _utils.assertNodeType)("Expression"), + optional: true + }, + typeAnnotation: { + validate: (0, _utils.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", + "Noop"), + optional: true + }, + decorators: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), + optional: true + }, + static: { + validate: (0, _utils.assertValueType)("boolean"), + default: false + }, + readonly: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + }, + definite: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + }, + variance: { + validate: (0, _utils.assertNodeType)("Variance"), + optional: true + } + } +}); +defineType("ClassPrivateMethod", { + builder: ["kind", "key", "params", "body", "static"], + visitor: ["key", "params", "body", "decorators", "returnType", "typeParameters"], + aliases: ["Function", "Scopable", "BlockParent", "FunctionParent", "Method", "Private"], + fields: Object.assign({}, classMethodOrDeclareMethodCommon(), functionTypeAnnotationCommon(), { + kind: { + validate: (0, _utils.assertOneOf)("get", "set", "method"), + default: "method" + }, + key: { + validate: (0, _utils.assertNodeType)("PrivateName") + }, + body: { + validate: (0, _utils.assertNodeType)("BlockStatement") + } + }) +}); +defineType("PrivateName", { + visitor: ["id"], + aliases: ["Private"], + fields: { + id: { + validate: (0, _utils.assertNodeType)("Identifier") + } + } +}); +defineType("StaticBlock", { + visitor: ["body"], + fields: { + body: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Statement"))) + } + }, + aliases: ["Scopable", "BlockParent", "FunctionParent"] +}); + +//# sourceMappingURL=core.js.map + + +/***/ }), + +/***/ 1775: +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +var _utils = __webpack_require__(2882); +(0, _utils.default)("ArgumentPlaceholder", {}); +(0, _utils.default)("BindExpression", { + visitor: ["object", "callee"], + aliases: ["Expression"], + fields: !process.env.BABEL_TYPES_8_BREAKING ? { + object: { + validate: Object.assign(() => {}, { + oneOfNodeTypes: ["Expression"] + }) + }, + callee: { + validate: Object.assign(() => {}, { + oneOfNodeTypes: ["Expression"] + }) + } + } : { + object: { + validate: (0, _utils.assertNodeType)("Expression") + }, + callee: { + validate: (0, _utils.assertNodeType)("Expression") + } + } +}); +(0, _utils.default)("ImportAttribute", { + visitor: ["key", "value"], + fields: { + key: { + validate: (0, _utils.assertNodeType)("Identifier", "StringLiteral") + }, + value: { + validate: (0, _utils.assertNodeType)("StringLiteral") + } + } +}); +(0, _utils.default)("Decorator", { + visitor: ["expression"], + fields: { + expression: { + validate: (0, _utils.assertNodeType)("Expression") + } + } +}); +(0, _utils.default)("DoExpression", { + visitor: ["body"], + builder: ["body", "async"], + aliases: ["Expression"], + fields: { + body: { + validate: (0, _utils.assertNodeType)("BlockStatement") + }, + async: { + validate: (0, _utils.assertValueType)("boolean"), + default: false + } + } +}); +(0, _utils.default)("ExportDefaultSpecifier", { + visitor: ["exported"], + aliases: ["ModuleSpecifier"], + fields: { + exported: { + validate: (0, _utils.assertNodeType)("Identifier") + } + } +}); +(0, _utils.default)("RecordExpression", { + visitor: ["properties"], + aliases: ["Expression"], + fields: { + properties: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("ObjectProperty", "SpreadElement"))) + } + } +}); +(0, _utils.default)("TupleExpression", { + fields: { + elements: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Expression", "SpreadElement"))), + default: [] + } + }, + visitor: ["elements"], + aliases: ["Expression"] +}); +(0, _utils.default)("DecimalLiteral", { + builder: ["value"], + fields: { + value: { + validate: (0, _utils.assertValueType)("string") + } + }, + aliases: ["Expression", "Pureish", "Literal", "Immutable"] +}); + +(0, _utils.default)("ModuleExpression", { + visitor: ["body"], + fields: { + body: { + validate: (0, _utils.assertNodeType)("Program") + } + }, + aliases: ["Expression"] +}); + +(0, _utils.default)("TopicReference", { + aliases: ["Expression"] +}); + +(0, _utils.default)("PipelineTopicExpression", { + builder: ["expression"], + visitor: ["expression"], + fields: { + expression: { + validate: (0, _utils.assertNodeType)("Expression") + } + }, + aliases: ["Expression"] +}); +(0, _utils.default)("PipelineBareFunction", { + builder: ["callee"], + visitor: ["callee"], + fields: { + callee: { + validate: (0, _utils.assertNodeType)("Expression") + } + }, + aliases: ["Expression"] +}); +(0, _utils.default)("PipelinePrimaryTopicReference", { + aliases: ["Expression"] +}); + +//# sourceMappingURL=experimental.js.map + + +/***/ }), + +/***/ 8580: +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +var _utils = __webpack_require__(2882); +const defineType = (0, _utils.defineAliasedType)("Flow"); +const defineInterfaceishType = name => { + defineType(name, { + builder: ["id", "typeParameters", "extends", "body"], + visitor: ["id", "typeParameters", "extends", "mixins", "implements", "body"], + aliases: ["FlowDeclaration", "Statement", "Declaration"], + fields: { + id: (0, _utils.validateType)("Identifier"), + typeParameters: (0, _utils.validateOptionalType)("TypeParameterDeclaration"), + extends: (0, _utils.validateOptional)((0, _utils.arrayOfType)("InterfaceExtends")), + mixins: (0, _utils.validateOptional)((0, _utils.arrayOfType)("InterfaceExtends")), + implements: (0, _utils.validateOptional)((0, _utils.arrayOfType)("ClassImplements")), + body: (0, _utils.validateType)("ObjectTypeAnnotation") + } + }); +}; +defineType("AnyTypeAnnotation", { + aliases: ["FlowType", "FlowBaseAnnotation"] +}); +defineType("ArrayTypeAnnotation", { + visitor: ["elementType"], + aliases: ["FlowType"], + fields: { + elementType: (0, _utils.validateType)("FlowType") + } +}); +defineType("BooleanTypeAnnotation", { + aliases: ["FlowType", "FlowBaseAnnotation"] +}); +defineType("BooleanLiteralTypeAnnotation", { + builder: ["value"], + aliases: ["FlowType"], + fields: { + value: (0, _utils.validate)((0, _utils.assertValueType)("boolean")) + } +}); +defineType("NullLiteralTypeAnnotation", { + aliases: ["FlowType", "FlowBaseAnnotation"] +}); +defineType("ClassImplements", { + visitor: ["id", "typeParameters"], + fields: { + id: (0, _utils.validateType)("Identifier"), + typeParameters: (0, _utils.validateOptionalType)("TypeParameterInstantiation") + } +}); +defineInterfaceishType("DeclareClass"); +defineType("DeclareFunction", { + visitor: ["id"], + aliases: ["FlowDeclaration", "Statement", "Declaration"], + fields: { + id: (0, _utils.validateType)("Identifier"), + predicate: (0, _utils.validateOptionalType)("DeclaredPredicate") + } +}); +defineInterfaceishType("DeclareInterface"); +defineType("DeclareModule", { + builder: ["id", "body", "kind"], + visitor: ["id", "body"], + aliases: ["FlowDeclaration", "Statement", "Declaration"], + fields: { + id: (0, _utils.validateType)(["Identifier", "StringLiteral"]), + body: (0, _utils.validateType)("BlockStatement"), + kind: (0, _utils.validateOptional)((0, _utils.assertOneOf)("CommonJS", "ES")) + } +}); +defineType("DeclareModuleExports", { + visitor: ["typeAnnotation"], + aliases: ["FlowDeclaration", "Statement", "Declaration"], + fields: { + typeAnnotation: (0, _utils.validateType)("TypeAnnotation") + } +}); +defineType("DeclareTypeAlias", { + visitor: ["id", "typeParameters", "right"], + aliases: ["FlowDeclaration", "Statement", "Declaration"], + fields: { + id: (0, _utils.validateType)("Identifier"), + typeParameters: (0, _utils.validateOptionalType)("TypeParameterDeclaration"), + right: (0, _utils.validateType)("FlowType") + } +}); +defineType("DeclareOpaqueType", { + visitor: ["id", "typeParameters", "supertype"], + aliases: ["FlowDeclaration", "Statement", "Declaration"], + fields: { + id: (0, _utils.validateType)("Identifier"), + typeParameters: (0, _utils.validateOptionalType)("TypeParameterDeclaration"), + supertype: (0, _utils.validateOptionalType)("FlowType"), + impltype: (0, _utils.validateOptionalType)("FlowType") + } +}); +defineType("DeclareVariable", { + visitor: ["id"], + aliases: ["FlowDeclaration", "Statement", "Declaration"], + fields: { + id: (0, _utils.validateType)("Identifier") + } +}); +defineType("DeclareExportDeclaration", { + visitor: ["declaration", "specifiers", "source"], + aliases: ["FlowDeclaration", "Statement", "Declaration"], + fields: { + declaration: (0, _utils.validateOptionalType)("Flow"), + specifiers: (0, _utils.validateOptional)((0, _utils.arrayOfType)(["ExportSpecifier", "ExportNamespaceSpecifier"])), + source: (0, _utils.validateOptionalType)("StringLiteral"), + default: (0, _utils.validateOptional)((0, _utils.assertValueType)("boolean")) + } +}); +defineType("DeclareExportAllDeclaration", { + visitor: ["source"], + aliases: ["FlowDeclaration", "Statement", "Declaration"], + fields: { + source: (0, _utils.validateType)("StringLiteral"), + exportKind: (0, _utils.validateOptional)((0, _utils.assertOneOf)("type", "value")) + } +}); +defineType("DeclaredPredicate", { + visitor: ["value"], + aliases: ["FlowPredicate"], + fields: { + value: (0, _utils.validateType)("Flow") + } +}); +defineType("ExistsTypeAnnotation", { + aliases: ["FlowType"] +}); +defineType("FunctionTypeAnnotation", { + visitor: ["typeParameters", "params", "rest", "returnType"], + aliases: ["FlowType"], + fields: { + typeParameters: (0, _utils.validateOptionalType)("TypeParameterDeclaration"), + params: (0, _utils.validate)((0, _utils.arrayOfType)("FunctionTypeParam")), + rest: (0, _utils.validateOptionalType)("FunctionTypeParam"), + this: (0, _utils.validateOptionalType)("FunctionTypeParam"), + returnType: (0, _utils.validateType)("FlowType") + } +}); +defineType("FunctionTypeParam", { + visitor: ["name", "typeAnnotation"], + fields: { + name: (0, _utils.validateOptionalType)("Identifier"), + typeAnnotation: (0, _utils.validateType)("FlowType"), + optional: (0, _utils.validateOptional)((0, _utils.assertValueType)("boolean")) + } +}); +defineType("GenericTypeAnnotation", { + visitor: ["id", "typeParameters"], + aliases: ["FlowType"], + fields: { + id: (0, _utils.validateType)(["Identifier", "QualifiedTypeIdentifier"]), + typeParameters: (0, _utils.validateOptionalType)("TypeParameterInstantiation") + } +}); +defineType("InferredPredicate", { + aliases: ["FlowPredicate"] +}); +defineType("InterfaceExtends", { + visitor: ["id", "typeParameters"], + fields: { + id: (0, _utils.validateType)(["Identifier", "QualifiedTypeIdentifier"]), + typeParameters: (0, _utils.validateOptionalType)("TypeParameterInstantiation") + } +}); +defineInterfaceishType("InterfaceDeclaration"); +defineType("InterfaceTypeAnnotation", { + visitor: ["extends", "body"], + aliases: ["FlowType"], + fields: { + extends: (0, _utils.validateOptional)((0, _utils.arrayOfType)("InterfaceExtends")), + body: (0, _utils.validateType)("ObjectTypeAnnotation") + } +}); +defineType("IntersectionTypeAnnotation", { + visitor: ["types"], + aliases: ["FlowType"], + fields: { + types: (0, _utils.validate)((0, _utils.arrayOfType)("FlowType")) + } +}); +defineType("MixedTypeAnnotation", { + aliases: ["FlowType", "FlowBaseAnnotation"] +}); +defineType("EmptyTypeAnnotation", { + aliases: ["FlowType", "FlowBaseAnnotation"] +}); +defineType("NullableTypeAnnotation", { + visitor: ["typeAnnotation"], + aliases: ["FlowType"], + fields: { + typeAnnotation: (0, _utils.validateType)("FlowType") + } +}); +defineType("NumberLiteralTypeAnnotation", { + builder: ["value"], + aliases: ["FlowType"], + fields: { + value: (0, _utils.validate)((0, _utils.assertValueType)("number")) + } +}); +defineType("NumberTypeAnnotation", { + aliases: ["FlowType", "FlowBaseAnnotation"] +}); +defineType("ObjectTypeAnnotation", { + visitor: ["properties", "indexers", "callProperties", "internalSlots"], + aliases: ["FlowType"], + builder: ["properties", "indexers", "callProperties", "internalSlots", "exact"], + fields: { + properties: (0, _utils.validate)((0, _utils.arrayOfType)(["ObjectTypeProperty", "ObjectTypeSpreadProperty"])), + indexers: { + validate: (0, _utils.arrayOfType)("ObjectTypeIndexer"), + optional: true, + default: [] + }, + callProperties: { + validate: (0, _utils.arrayOfType)("ObjectTypeCallProperty"), + optional: true, + default: [] + }, + internalSlots: { + validate: (0, _utils.arrayOfType)("ObjectTypeInternalSlot"), + optional: true, + default: [] + }, + exact: { + validate: (0, _utils.assertValueType)("boolean"), + default: false + }, + inexact: (0, _utils.validateOptional)((0, _utils.assertValueType)("boolean")) + } +}); +defineType("ObjectTypeInternalSlot", { + visitor: ["id", "value", "optional", "static", "method"], + aliases: ["UserWhitespacable"], + fields: { + id: (0, _utils.validateType)("Identifier"), + value: (0, _utils.validateType)("FlowType"), + optional: (0, _utils.validate)((0, _utils.assertValueType)("boolean")), + static: (0, _utils.validate)((0, _utils.assertValueType)("boolean")), + method: (0, _utils.validate)((0, _utils.assertValueType)("boolean")) + } +}); +defineType("ObjectTypeCallProperty", { + visitor: ["value"], + aliases: ["UserWhitespacable"], + fields: { + value: (0, _utils.validateType)("FlowType"), + static: (0, _utils.validate)((0, _utils.assertValueType)("boolean")) + } +}); +defineType("ObjectTypeIndexer", { + visitor: ["id", "key", "value", "variance"], + aliases: ["UserWhitespacable"], + fields: { + id: (0, _utils.validateOptionalType)("Identifier"), + key: (0, _utils.validateType)("FlowType"), + value: (0, _utils.validateType)("FlowType"), + static: (0, _utils.validate)((0, _utils.assertValueType)("boolean")), + variance: (0, _utils.validateOptionalType)("Variance") + } +}); +defineType("ObjectTypeProperty", { + visitor: ["key", "value", "variance"], + aliases: ["UserWhitespacable"], + fields: { + key: (0, _utils.validateType)(["Identifier", "StringLiteral"]), + value: (0, _utils.validateType)("FlowType"), + kind: (0, _utils.validate)((0, _utils.assertOneOf)("init", "get", "set")), + static: (0, _utils.validate)((0, _utils.assertValueType)("boolean")), + proto: (0, _utils.validate)((0, _utils.assertValueType)("boolean")), + optional: (0, _utils.validate)((0, _utils.assertValueType)("boolean")), + variance: (0, _utils.validateOptionalType)("Variance"), + method: (0, _utils.validate)((0, _utils.assertValueType)("boolean")) + } +}); +defineType("ObjectTypeSpreadProperty", { + visitor: ["argument"], + aliases: ["UserWhitespacable"], + fields: { + argument: (0, _utils.validateType)("FlowType") + } +}); +defineType("OpaqueType", { + visitor: ["id", "typeParameters", "supertype", "impltype"], + aliases: ["FlowDeclaration", "Statement", "Declaration"], + fields: { + id: (0, _utils.validateType)("Identifier"), + typeParameters: (0, _utils.validateOptionalType)("TypeParameterDeclaration"), + supertype: (0, _utils.validateOptionalType)("FlowType"), + impltype: (0, _utils.validateType)("FlowType") + } +}); +defineType("QualifiedTypeIdentifier", { + visitor: ["id", "qualification"], + fields: { + id: (0, _utils.validateType)("Identifier"), + qualification: (0, _utils.validateType)(["Identifier", "QualifiedTypeIdentifier"]) + } +}); +defineType("StringLiteralTypeAnnotation", { + builder: ["value"], + aliases: ["FlowType"], + fields: { + value: (0, _utils.validate)((0, _utils.assertValueType)("string")) + } +}); +defineType("StringTypeAnnotation", { + aliases: ["FlowType", "FlowBaseAnnotation"] +}); +defineType("SymbolTypeAnnotation", { + aliases: ["FlowType", "FlowBaseAnnotation"] +}); +defineType("ThisTypeAnnotation", { + aliases: ["FlowType", "FlowBaseAnnotation"] +}); +defineType("TupleTypeAnnotation", { + visitor: ["types"], + aliases: ["FlowType"], + fields: { + types: (0, _utils.validate)((0, _utils.arrayOfType)("FlowType")) + } +}); +defineType("TypeofTypeAnnotation", { + visitor: ["argument"], + aliases: ["FlowType"], + fields: { + argument: (0, _utils.validateType)("FlowType") + } +}); +defineType("TypeAlias", { + visitor: ["id", "typeParameters", "right"], + aliases: ["FlowDeclaration", "Statement", "Declaration"], + fields: { + id: (0, _utils.validateType)("Identifier"), + typeParameters: (0, _utils.validateOptionalType)("TypeParameterDeclaration"), + right: (0, _utils.validateType)("FlowType") + } +}); +defineType("TypeAnnotation", { + visitor: ["typeAnnotation"], + fields: { + typeAnnotation: (0, _utils.validateType)("FlowType") + } +}); +defineType("TypeCastExpression", { + visitor: ["expression", "typeAnnotation"], + aliases: ["ExpressionWrapper", "Expression"], + fields: { + expression: (0, _utils.validateType)("Expression"), + typeAnnotation: (0, _utils.validateType)("TypeAnnotation") + } +}); +defineType("TypeParameter", { + visitor: ["bound", "default", "variance"], + fields: { + name: (0, _utils.validate)((0, _utils.assertValueType)("string")), + bound: (0, _utils.validateOptionalType)("TypeAnnotation"), + default: (0, _utils.validateOptionalType)("FlowType"), + variance: (0, _utils.validateOptionalType)("Variance") + } +}); +defineType("TypeParameterDeclaration", { + visitor: ["params"], + fields: { + params: (0, _utils.validate)((0, _utils.arrayOfType)("TypeParameter")) + } +}); +defineType("TypeParameterInstantiation", { + visitor: ["params"], + fields: { + params: (0, _utils.validate)((0, _utils.arrayOfType)("FlowType")) + } +}); +defineType("UnionTypeAnnotation", { + visitor: ["types"], + aliases: ["FlowType"], + fields: { + types: (0, _utils.validate)((0, _utils.arrayOfType)("FlowType")) + } +}); +defineType("Variance", { + builder: ["kind"], + fields: { + kind: (0, _utils.validate)((0, _utils.assertOneOf)("minus", "plus")) + } +}); +defineType("VoidTypeAnnotation", { + aliases: ["FlowType", "FlowBaseAnnotation"] +}); + +defineType("EnumDeclaration", { + aliases: ["Statement", "Declaration"], + visitor: ["id", "body"], + fields: { + id: (0, _utils.validateType)("Identifier"), + body: (0, _utils.validateType)(["EnumBooleanBody", "EnumNumberBody", "EnumStringBody", "EnumSymbolBody"]) + } +}); +defineType("EnumBooleanBody", { + aliases: ["EnumBody"], + visitor: ["members"], + fields: { + explicitType: (0, _utils.validate)((0, _utils.assertValueType)("boolean")), + members: (0, _utils.validateArrayOfType)("EnumBooleanMember"), + hasUnknownMembers: (0, _utils.validate)((0, _utils.assertValueType)("boolean")) + } +}); +defineType("EnumNumberBody", { + aliases: ["EnumBody"], + visitor: ["members"], + fields: { + explicitType: (0, _utils.validate)((0, _utils.assertValueType)("boolean")), + members: (0, _utils.validateArrayOfType)("EnumNumberMember"), + hasUnknownMembers: (0, _utils.validate)((0, _utils.assertValueType)("boolean")) + } +}); +defineType("EnumStringBody", { + aliases: ["EnumBody"], + visitor: ["members"], + fields: { + explicitType: (0, _utils.validate)((0, _utils.assertValueType)("boolean")), + members: (0, _utils.validateArrayOfType)(["EnumStringMember", "EnumDefaultedMember"]), + hasUnknownMembers: (0, _utils.validate)((0, _utils.assertValueType)("boolean")) + } +}); +defineType("EnumSymbolBody", { + aliases: ["EnumBody"], + visitor: ["members"], + fields: { + members: (0, _utils.validateArrayOfType)("EnumDefaultedMember"), + hasUnknownMembers: (0, _utils.validate)((0, _utils.assertValueType)("boolean")) + } +}); +defineType("EnumBooleanMember", { + aliases: ["EnumMember"], + visitor: ["id"], + fields: { + id: (0, _utils.validateType)("Identifier"), + init: (0, _utils.validateType)("BooleanLiteral") + } +}); +defineType("EnumNumberMember", { + aliases: ["EnumMember"], + visitor: ["id", "init"], + fields: { + id: (0, _utils.validateType)("Identifier"), + init: (0, _utils.validateType)("NumericLiteral") + } +}); +defineType("EnumStringMember", { + aliases: ["EnumMember"], + visitor: ["id", "init"], + fields: { + id: (0, _utils.validateType)("Identifier"), + init: (0, _utils.validateType)("StringLiteral") + } +}); +defineType("EnumDefaultedMember", { + aliases: ["EnumMember"], + visitor: ["id"], + fields: { + id: (0, _utils.validateType)("Identifier") + } +}); +defineType("IndexedAccessType", { + visitor: ["objectType", "indexType"], + aliases: ["FlowType"], + fields: { + objectType: (0, _utils.validateType)("FlowType"), + indexType: (0, _utils.validateType)("FlowType") + } +}); +defineType("OptionalIndexedAccessType", { + visitor: ["objectType", "indexType"], + aliases: ["FlowType"], + fields: { + objectType: (0, _utils.validateType)("FlowType"), + indexType: (0, _utils.validateType)("FlowType"), + optional: (0, _utils.validate)((0, _utils.assertValueType)("boolean")) + } +}); + +//# sourceMappingURL=flow.js.map + + +/***/ }), + +/***/ 2886: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +Object.defineProperty(exports, "ALIAS_KEYS", ({ + enumerable: true, + get: function () { + return _utils.ALIAS_KEYS; + } +})); +Object.defineProperty(exports, "BUILDER_KEYS", ({ + enumerable: true, + get: function () { + return _utils.BUILDER_KEYS; + } +})); +Object.defineProperty(exports, "DEPRECATED_KEYS", ({ + enumerable: true, + get: function () { + return _utils.DEPRECATED_KEYS; + } +})); +Object.defineProperty(exports, "FLIPPED_ALIAS_KEYS", ({ + enumerable: true, + get: function () { + return _utils.FLIPPED_ALIAS_KEYS; + } +})); +Object.defineProperty(exports, "NODE_FIELDS", ({ + enumerable: true, + get: function () { + return _utils.NODE_FIELDS; + } +})); +Object.defineProperty(exports, "NODE_PARENT_VALIDATIONS", ({ + enumerable: true, + get: function () { + return _utils.NODE_PARENT_VALIDATIONS; + } +})); +Object.defineProperty(exports, "PLACEHOLDERS", ({ + enumerable: true, + get: function () { + return _placeholders.PLACEHOLDERS; + } +})); +Object.defineProperty(exports, "PLACEHOLDERS_ALIAS", ({ + enumerable: true, + get: function () { + return _placeholders.PLACEHOLDERS_ALIAS; + } +})); +Object.defineProperty(exports, "PLACEHOLDERS_FLIPPED_ALIAS", ({ + enumerable: true, + get: function () { + return _placeholders.PLACEHOLDERS_FLIPPED_ALIAS; + } +})); +exports.TYPES = void 0; +Object.defineProperty(exports, "VISITOR_KEYS", ({ + enumerable: true, + get: function () { + return _utils.VISITOR_KEYS; + } +})); +var _toFastProperties = __webpack_require__(6802); +__webpack_require__(4904); +__webpack_require__(8580); +__webpack_require__(1973); +__webpack_require__(8479); +__webpack_require__(1775); +__webpack_require__(468); +var _utils = __webpack_require__(2882); +var _placeholders = __webpack_require__(6121); +_toFastProperties(_utils.VISITOR_KEYS); +_toFastProperties(_utils.ALIAS_KEYS); +_toFastProperties(_utils.FLIPPED_ALIAS_KEYS); +_toFastProperties(_utils.NODE_FIELDS); +_toFastProperties(_utils.BUILDER_KEYS); +_toFastProperties(_utils.DEPRECATED_KEYS); +_toFastProperties(_placeholders.PLACEHOLDERS_ALIAS); +_toFastProperties(_placeholders.PLACEHOLDERS_FLIPPED_ALIAS); +const TYPES = [].concat(Object.keys(_utils.VISITOR_KEYS), Object.keys(_utils.FLIPPED_ALIAS_KEYS), Object.keys(_utils.DEPRECATED_KEYS)); +exports.TYPES = TYPES; + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 1973: +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +var _utils = __webpack_require__(2882); +const defineType = (0, _utils.defineAliasedType)("JSX"); +defineType("JSXAttribute", { + visitor: ["name", "value"], + aliases: ["Immutable"], + fields: { + name: { + validate: (0, _utils.assertNodeType)("JSXIdentifier", "JSXNamespacedName") + }, + value: { + optional: true, + validate: (0, _utils.assertNodeType)("JSXElement", "JSXFragment", "StringLiteral", "JSXExpressionContainer") + } + } +}); +defineType("JSXClosingElement", { + visitor: ["name"], + aliases: ["Immutable"], + fields: { + name: { + validate: (0, _utils.assertNodeType)("JSXIdentifier", "JSXMemberExpression", "JSXNamespacedName") + } + } +}); +defineType("JSXElement", { + builder: ["openingElement", "closingElement", "children", "selfClosing"], + visitor: ["openingElement", "children", "closingElement"], + aliases: ["Immutable", "Expression"], + fields: Object.assign({ + openingElement: { + validate: (0, _utils.assertNodeType)("JSXOpeningElement") + }, + closingElement: { + optional: true, + validate: (0, _utils.assertNodeType)("JSXClosingElement") + }, + children: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("JSXText", "JSXExpressionContainer", "JSXSpreadChild", "JSXElement", "JSXFragment"))) + } + }, { + selfClosing: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + } + }) +}); +defineType("JSXEmptyExpression", {}); +defineType("JSXExpressionContainer", { + visitor: ["expression"], + aliases: ["Immutable"], + fields: { + expression: { + validate: (0, _utils.assertNodeType)("Expression", "JSXEmptyExpression") + } + } +}); +defineType("JSXSpreadChild", { + visitor: ["expression"], + aliases: ["Immutable"], + fields: { + expression: { + validate: (0, _utils.assertNodeType)("Expression") + } + } +}); +defineType("JSXIdentifier", { + builder: ["name"], + fields: { + name: { + validate: (0, _utils.assertValueType)("string") + } + } +}); +defineType("JSXMemberExpression", { + visitor: ["object", "property"], + fields: { + object: { + validate: (0, _utils.assertNodeType)("JSXMemberExpression", "JSXIdentifier") + }, + property: { + validate: (0, _utils.assertNodeType)("JSXIdentifier") + } + } +}); +defineType("JSXNamespacedName", { + visitor: ["namespace", "name"], + fields: { + namespace: { + validate: (0, _utils.assertNodeType)("JSXIdentifier") + }, + name: { + validate: (0, _utils.assertNodeType)("JSXIdentifier") + } + } +}); +defineType("JSXOpeningElement", { + builder: ["name", "attributes", "selfClosing"], + visitor: ["name", "attributes"], + aliases: ["Immutable"], + fields: { + name: { + validate: (0, _utils.assertNodeType)("JSXIdentifier", "JSXMemberExpression", "JSXNamespacedName") + }, + selfClosing: { + default: false + }, + attributes: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("JSXAttribute", "JSXSpreadAttribute"))) + }, + typeParameters: { + validate: (0, _utils.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"), + optional: true + } + } +}); +defineType("JSXSpreadAttribute", { + visitor: ["argument"], + fields: { + argument: { + validate: (0, _utils.assertNodeType)("Expression") + } + } +}); +defineType("JSXText", { + aliases: ["Immutable"], + builder: ["value"], + fields: { + value: { + validate: (0, _utils.assertValueType)("string") + } + } +}); +defineType("JSXFragment", { + builder: ["openingFragment", "closingFragment", "children"], + visitor: ["openingFragment", "children", "closingFragment"], + aliases: ["Immutable", "Expression"], + fields: { + openingFragment: { + validate: (0, _utils.assertNodeType)("JSXOpeningFragment") + }, + closingFragment: { + validate: (0, _utils.assertNodeType)("JSXClosingFragment") + }, + children: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("JSXText", "JSXExpressionContainer", "JSXSpreadChild", "JSXElement", "JSXFragment"))) + } + } +}); +defineType("JSXOpeningFragment", { + aliases: ["Immutable"] +}); +defineType("JSXClosingFragment", { + aliases: ["Immutable"] +}); + +//# sourceMappingURL=jsx.js.map + + +/***/ }), + +/***/ 8479: +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +var _utils = __webpack_require__(2882); +var _placeholders = __webpack_require__(6121); +const defineType = (0, _utils.defineAliasedType)("Miscellaneous"); +{ + defineType("Noop", { + visitor: [] + }); +} +defineType("Placeholder", { + visitor: [], + builder: ["expectedNode", "name"], + fields: { + name: { + validate: (0, _utils.assertNodeType)("Identifier") + }, + expectedNode: { + validate: (0, _utils.assertOneOf)(..._placeholders.PLACEHOLDERS) + } + } +}); +defineType("V8IntrinsicIdentifier", { + builder: ["name"], + fields: { + name: { + validate: (0, _utils.assertValueType)("string") + } + } +}); + +//# sourceMappingURL=misc.js.map + + +/***/ }), + +/***/ 6121: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PLACEHOLDERS_FLIPPED_ALIAS = exports.PLACEHOLDERS_ALIAS = exports.PLACEHOLDERS = void 0; +var _utils = __webpack_require__(2882); +const PLACEHOLDERS = ["Identifier", "StringLiteral", "Expression", "Statement", "Declaration", "BlockStatement", "ClassBody", "Pattern"]; +exports.PLACEHOLDERS = PLACEHOLDERS; +const PLACEHOLDERS_ALIAS = { + Declaration: ["Statement"], + Pattern: ["PatternLike", "LVal"] +}; +exports.PLACEHOLDERS_ALIAS = PLACEHOLDERS_ALIAS; +for (const type of PLACEHOLDERS) { + const alias = _utils.ALIAS_KEYS[type]; + if (alias != null && alias.length) PLACEHOLDERS_ALIAS[type] = alias; +} +const PLACEHOLDERS_FLIPPED_ALIAS = {}; +exports.PLACEHOLDERS_FLIPPED_ALIAS = PLACEHOLDERS_FLIPPED_ALIAS; +Object.keys(PLACEHOLDERS_ALIAS).forEach(type => { + PLACEHOLDERS_ALIAS[type].forEach(alias => { + if (!Object.hasOwnProperty.call(PLACEHOLDERS_FLIPPED_ALIAS, alias)) { + PLACEHOLDERS_FLIPPED_ALIAS[alias] = []; + } + PLACEHOLDERS_FLIPPED_ALIAS[alias].push(type); + }); +}); + +//# sourceMappingURL=placeholders.js.map + + +/***/ }), + +/***/ 468: +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + + +var _utils = __webpack_require__(2882); +var _core = __webpack_require__(4904); +var _is = __webpack_require__(4477); +const defineType = (0, _utils.defineAliasedType)("TypeScript"); +const bool = (0, _utils.assertValueType)("boolean"); +const tSFunctionTypeAnnotationCommon = () => ({ + returnType: { + validate: + (0, _utils.assertNodeType)("TSTypeAnnotation", "Noop"), + optional: true + }, + typeParameters: { + validate: + (0, _utils.assertNodeType)("TSTypeParameterDeclaration", "Noop"), + optional: true + } +}); +defineType("TSParameterProperty", { + aliases: ["LVal"], + visitor: ["parameter"], + fields: { + accessibility: { + validate: (0, _utils.assertOneOf)("public", "private", "protected"), + optional: true + }, + readonly: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + }, + parameter: { + validate: (0, _utils.assertNodeType)("Identifier", "AssignmentPattern") + }, + override: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + }, + decorators: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), + optional: true + } + } +}); +defineType("TSDeclareFunction", { + aliases: ["Statement", "Declaration"], + visitor: ["id", "typeParameters", "params", "returnType"], + fields: Object.assign({}, (0, _core.functionDeclarationCommon)(), tSFunctionTypeAnnotationCommon()) +}); +defineType("TSDeclareMethod", { + visitor: ["decorators", "key", "typeParameters", "params", "returnType"], + fields: Object.assign({}, (0, _core.classMethodOrDeclareMethodCommon)(), tSFunctionTypeAnnotationCommon()) +}); +defineType("TSQualifiedName", { + aliases: ["TSEntityName"], + visitor: ["left", "right"], + fields: { + left: (0, _utils.validateType)("TSEntityName"), + right: (0, _utils.validateType)("Identifier") + } +}); +const signatureDeclarationCommon = () => ({ + typeParameters: (0, _utils.validateOptionalType)("TSTypeParameterDeclaration"), + ["parameters"]: (0, _utils.validateArrayOfType)(["Identifier", "RestElement"]), + ["typeAnnotation"]: (0, _utils.validateOptionalType)("TSTypeAnnotation") +}); +const callConstructSignatureDeclaration = { + aliases: ["TSTypeElement"], + visitor: ["typeParameters", "parameters", "typeAnnotation"], + fields: signatureDeclarationCommon() +}; +defineType("TSCallSignatureDeclaration", callConstructSignatureDeclaration); +defineType("TSConstructSignatureDeclaration", callConstructSignatureDeclaration); +const namedTypeElementCommon = () => ({ + key: (0, _utils.validateType)("Expression"), + computed: { + default: false + }, + optional: (0, _utils.validateOptional)(bool) +}); +defineType("TSPropertySignature", { + aliases: ["TSTypeElement"], + visitor: ["key", "typeAnnotation", "initializer"], + fields: Object.assign({}, namedTypeElementCommon(), { + readonly: (0, _utils.validateOptional)(bool), + typeAnnotation: (0, _utils.validateOptionalType)("TSTypeAnnotation"), + initializer: (0, _utils.validateOptionalType)("Expression"), + kind: { + validate: (0, _utils.assertOneOf)("get", "set") + } + }) +}); +defineType("TSMethodSignature", { + aliases: ["TSTypeElement"], + visitor: ["key", "typeParameters", "parameters", "typeAnnotation"], + fields: Object.assign({}, signatureDeclarationCommon(), namedTypeElementCommon(), { + kind: { + validate: (0, _utils.assertOneOf)("method", "get", "set") + } + }) +}); +defineType("TSIndexSignature", { + aliases: ["TSTypeElement"], + visitor: ["parameters", "typeAnnotation"], + fields: { + readonly: (0, _utils.validateOptional)(bool), + static: (0, _utils.validateOptional)(bool), + parameters: (0, _utils.validateArrayOfType)("Identifier"), + typeAnnotation: (0, _utils.validateOptionalType)("TSTypeAnnotation") + } +}); +const tsKeywordTypes = ["TSAnyKeyword", "TSBooleanKeyword", "TSBigIntKeyword", "TSIntrinsicKeyword", "TSNeverKeyword", "TSNullKeyword", "TSNumberKeyword", "TSObjectKeyword", "TSStringKeyword", "TSSymbolKeyword", "TSUndefinedKeyword", "TSUnknownKeyword", "TSVoidKeyword"]; +for (const type of tsKeywordTypes) { + defineType(type, { + aliases: ["TSType", "TSBaseType"], + visitor: [], + fields: {} + }); +} +defineType("TSThisType", { + aliases: ["TSType", "TSBaseType"], + visitor: [], + fields: {} +}); +const fnOrCtrBase = { + aliases: ["TSType"], + visitor: ["typeParameters", "parameters", "typeAnnotation"] +}; +defineType("TSFunctionType", Object.assign({}, fnOrCtrBase, { + fields: signatureDeclarationCommon() +})); +defineType("TSConstructorType", Object.assign({}, fnOrCtrBase, { + fields: Object.assign({}, signatureDeclarationCommon(), { + abstract: (0, _utils.validateOptional)(bool) + }) +})); +defineType("TSTypeReference", { + aliases: ["TSType"], + visitor: ["typeName", "typeParameters"], + fields: { + typeName: (0, _utils.validateType)("TSEntityName"), + typeParameters: (0, _utils.validateOptionalType)("TSTypeParameterInstantiation") + } +}); +defineType("TSTypePredicate", { + aliases: ["TSType"], + visitor: ["parameterName", "typeAnnotation"], + builder: ["parameterName", "typeAnnotation", "asserts"], + fields: { + parameterName: (0, _utils.validateType)(["Identifier", "TSThisType"]), + typeAnnotation: (0, _utils.validateOptionalType)("TSTypeAnnotation"), + asserts: (0, _utils.validateOptional)(bool) + } +}); +defineType("TSTypeQuery", { + aliases: ["TSType"], + visitor: ["exprName", "typeParameters"], + fields: { + exprName: (0, _utils.validateType)(["TSEntityName", "TSImportType"]), + typeParameters: (0, _utils.validateOptionalType)("TSTypeParameterInstantiation") + } +}); +defineType("TSTypeLiteral", { + aliases: ["TSType"], + visitor: ["members"], + fields: { + members: (0, _utils.validateArrayOfType)("TSTypeElement") + } +}); +defineType("TSArrayType", { + aliases: ["TSType"], + visitor: ["elementType"], + fields: { + elementType: (0, _utils.validateType)("TSType") + } +}); +defineType("TSTupleType", { + aliases: ["TSType"], + visitor: ["elementTypes"], + fields: { + elementTypes: (0, _utils.validateArrayOfType)(["TSType", "TSNamedTupleMember"]) + } +}); +defineType("TSOptionalType", { + aliases: ["TSType"], + visitor: ["typeAnnotation"], + fields: { + typeAnnotation: (0, _utils.validateType)("TSType") + } +}); +defineType("TSRestType", { + aliases: ["TSType"], + visitor: ["typeAnnotation"], + fields: { + typeAnnotation: (0, _utils.validateType)("TSType") + } +}); +defineType("TSNamedTupleMember", { + visitor: ["label", "elementType"], + builder: ["label", "elementType", "optional"], + fields: { + label: (0, _utils.validateType)("Identifier"), + optional: { + validate: bool, + default: false + }, + elementType: (0, _utils.validateType)("TSType") + } +}); +const unionOrIntersection = { + aliases: ["TSType"], + visitor: ["types"], + fields: { + types: (0, _utils.validateArrayOfType)("TSType") + } +}; +defineType("TSUnionType", unionOrIntersection); +defineType("TSIntersectionType", unionOrIntersection); +defineType("TSConditionalType", { + aliases: ["TSType"], + visitor: ["checkType", "extendsType", "trueType", "falseType"], + fields: { + checkType: (0, _utils.validateType)("TSType"), + extendsType: (0, _utils.validateType)("TSType"), + trueType: (0, _utils.validateType)("TSType"), + falseType: (0, _utils.validateType)("TSType") + } +}); +defineType("TSInferType", { + aliases: ["TSType"], + visitor: ["typeParameter"], + fields: { + typeParameter: (0, _utils.validateType)("TSTypeParameter") + } +}); +defineType("TSParenthesizedType", { + aliases: ["TSType"], + visitor: ["typeAnnotation"], + fields: { + typeAnnotation: (0, _utils.validateType)("TSType") + } +}); +defineType("TSTypeOperator", { + aliases: ["TSType"], + visitor: ["typeAnnotation"], + fields: { + operator: (0, _utils.validate)((0, _utils.assertValueType)("string")), + typeAnnotation: (0, _utils.validateType)("TSType") + } +}); +defineType("TSIndexedAccessType", { + aliases: ["TSType"], + visitor: ["objectType", "indexType"], + fields: { + objectType: (0, _utils.validateType)("TSType"), + indexType: (0, _utils.validateType)("TSType") + } +}); +defineType("TSMappedType", { + aliases: ["TSType"], + visitor: ["typeParameter", "typeAnnotation", "nameType"], + fields: { + readonly: (0, _utils.validateOptional)((0, _utils.assertOneOf)(true, false, "+", "-")), + typeParameter: (0, _utils.validateType)("TSTypeParameter"), + optional: (0, _utils.validateOptional)((0, _utils.assertOneOf)(true, false, "+", "-")), + typeAnnotation: (0, _utils.validateOptionalType)("TSType"), + nameType: (0, _utils.validateOptionalType)("TSType") + } +}); +defineType("TSLiteralType", { + aliases: ["TSType", "TSBaseType"], + visitor: ["literal"], + fields: { + literal: { + validate: function () { + const unaryExpression = (0, _utils.assertNodeType)("NumericLiteral", "BigIntLiteral"); + const unaryOperator = (0, _utils.assertOneOf)("-"); + const literal = (0, _utils.assertNodeType)("NumericLiteral", "StringLiteral", "BooleanLiteral", "BigIntLiteral", "TemplateLiteral"); + function validator(parent, key, node) { + if ((0, _is.default)("UnaryExpression", node)) { + unaryOperator(node, "operator", node.operator); + unaryExpression(node, "argument", node.argument); + } else { + literal(parent, key, node); + } + } + validator.oneOfNodeTypes = ["NumericLiteral", "StringLiteral", "BooleanLiteral", "BigIntLiteral", "TemplateLiteral", "UnaryExpression"]; + return validator; + }() + } + } +}); +defineType("TSExpressionWithTypeArguments", { + aliases: ["TSType"], + visitor: ["expression", "typeParameters"], + fields: { + expression: (0, _utils.validateType)("TSEntityName"), + typeParameters: (0, _utils.validateOptionalType)("TSTypeParameterInstantiation") + } +}); +defineType("TSInterfaceDeclaration", { + aliases: ["Statement", "Declaration"], + visitor: ["id", "typeParameters", "extends", "body"], + fields: { + declare: (0, _utils.validateOptional)(bool), + id: (0, _utils.validateType)("Identifier"), + typeParameters: (0, _utils.validateOptionalType)("TSTypeParameterDeclaration"), + extends: (0, _utils.validateOptional)((0, _utils.arrayOfType)("TSExpressionWithTypeArguments")), + body: (0, _utils.validateType)("TSInterfaceBody") + } +}); +defineType("TSInterfaceBody", { + visitor: ["body"], + fields: { + body: (0, _utils.validateArrayOfType)("TSTypeElement") + } +}); +defineType("TSTypeAliasDeclaration", { + aliases: ["Statement", "Declaration"], + visitor: ["id", "typeParameters", "typeAnnotation"], + fields: { + declare: (0, _utils.validateOptional)(bool), + id: (0, _utils.validateType)("Identifier"), + typeParameters: (0, _utils.validateOptionalType)("TSTypeParameterDeclaration"), + typeAnnotation: (0, _utils.validateType)("TSType") + } +}); +defineType("TSInstantiationExpression", { + aliases: ["Expression"], + visitor: ["expression", "typeParameters"], + fields: { + expression: (0, _utils.validateType)("Expression"), + typeParameters: (0, _utils.validateOptionalType)("TSTypeParameterInstantiation") + } +}); +const TSTypeExpression = { + aliases: ["Expression", "LVal", "PatternLike"], + visitor: ["expression", "typeAnnotation"], + fields: { + expression: (0, _utils.validateType)("Expression"), + typeAnnotation: (0, _utils.validateType)("TSType") + } +}; +defineType("TSAsExpression", TSTypeExpression); +defineType("TSSatisfiesExpression", TSTypeExpression); +defineType("TSTypeAssertion", { + aliases: ["Expression", "LVal", "PatternLike"], + visitor: ["typeAnnotation", "expression"], + fields: { + typeAnnotation: (0, _utils.validateType)("TSType"), + expression: (0, _utils.validateType)("Expression") + } +}); +defineType("TSEnumDeclaration", { + aliases: ["Statement", "Declaration"], + visitor: ["id", "members"], + fields: { + declare: (0, _utils.validateOptional)(bool), + const: (0, _utils.validateOptional)(bool), + id: (0, _utils.validateType)("Identifier"), + members: (0, _utils.validateArrayOfType)("TSEnumMember"), + initializer: (0, _utils.validateOptionalType)("Expression") + } +}); +defineType("TSEnumMember", { + visitor: ["id", "initializer"], + fields: { + id: (0, _utils.validateType)(["Identifier", "StringLiteral"]), + initializer: (0, _utils.validateOptionalType)("Expression") + } +}); +defineType("TSModuleDeclaration", { + aliases: ["Statement", "Declaration"], + visitor: ["id", "body"], + fields: { + declare: (0, _utils.validateOptional)(bool), + global: (0, _utils.validateOptional)(bool), + id: (0, _utils.validateType)(["Identifier", "StringLiteral"]), + body: (0, _utils.validateType)(["TSModuleBlock", "TSModuleDeclaration"]) + } +}); +defineType("TSModuleBlock", { + aliases: ["Scopable", "Block", "BlockParent", "FunctionParent"], + visitor: ["body"], + fields: { + body: (0, _utils.validateArrayOfType)("Statement") + } +}); +defineType("TSImportType", { + aliases: ["TSType"], + visitor: ["argument", "qualifier", "typeParameters"], + fields: { + argument: (0, _utils.validateType)("StringLiteral"), + qualifier: (0, _utils.validateOptionalType)("TSEntityName"), + typeParameters: (0, _utils.validateOptionalType)("TSTypeParameterInstantiation") + } +}); +defineType("TSImportEqualsDeclaration", { + aliases: ["Statement"], + visitor: ["id", "moduleReference"], + fields: { + isExport: (0, _utils.validate)(bool), + id: (0, _utils.validateType)("Identifier"), + moduleReference: (0, _utils.validateType)(["TSEntityName", "TSExternalModuleReference"]), + importKind: { + validate: (0, _utils.assertOneOf)("type", "value"), + optional: true + } + } +}); +defineType("TSExternalModuleReference", { + visitor: ["expression"], + fields: { + expression: (0, _utils.validateType)("StringLiteral") + } +}); +defineType("TSNonNullExpression", { + aliases: ["Expression", "LVal", "PatternLike"], + visitor: ["expression"], + fields: { + expression: (0, _utils.validateType)("Expression") + } +}); +defineType("TSExportAssignment", { + aliases: ["Statement"], + visitor: ["expression"], + fields: { + expression: (0, _utils.validateType)("Expression") + } +}); +defineType("TSNamespaceExportDeclaration", { + aliases: ["Statement"], + visitor: ["id"], + fields: { + id: (0, _utils.validateType)("Identifier") + } +}); +defineType("TSTypeAnnotation", { + visitor: ["typeAnnotation"], + fields: { + typeAnnotation: { + validate: (0, _utils.assertNodeType)("TSType") + } + } +}); +defineType("TSTypeParameterInstantiation", { + visitor: ["params"], + fields: { + params: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("TSType"))) + } + } +}); +defineType("TSTypeParameterDeclaration", { + visitor: ["params"], + fields: { + params: { + validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("TSTypeParameter"))) + } + } +}); +defineType("TSTypeParameter", { + builder: ["constraint", "default", "name"], + visitor: ["constraint", "default"], + fields: { + name: { + validate: (0, _utils.assertValueType)("string") + }, + in: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + }, + out: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + }, + constraint: { + validate: (0, _utils.assertNodeType)("TSType"), + optional: true + }, + default: { + validate: (0, _utils.assertNodeType)("TSType"), + optional: true + } + } +}); + +//# sourceMappingURL=typescript.js.map + + +/***/ }), + +/***/ 2882: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.VISITOR_KEYS = exports.NODE_PARENT_VALIDATIONS = exports.NODE_FIELDS = exports.FLIPPED_ALIAS_KEYS = exports.DEPRECATED_KEYS = exports.BUILDER_KEYS = exports.ALIAS_KEYS = void 0; +exports.arrayOf = arrayOf; +exports.arrayOfType = arrayOfType; +exports.assertEach = assertEach; +exports.assertNodeOrValueType = assertNodeOrValueType; +exports.assertNodeType = assertNodeType; +exports.assertOneOf = assertOneOf; +exports.assertOptionalChainStart = assertOptionalChainStart; +exports.assertShape = assertShape; +exports.assertValueType = assertValueType; +exports.chain = chain; +exports["default"] = defineType; +exports.defineAliasedType = defineAliasedType; +exports.typeIs = typeIs; +exports.validate = validate; +exports.validateArrayOfType = validateArrayOfType; +exports.validateOptional = validateOptional; +exports.validateOptionalType = validateOptionalType; +exports.validateType = validateType; +var _is = __webpack_require__(4477); +var _validate = __webpack_require__(8741); +const VISITOR_KEYS = {}; +exports.VISITOR_KEYS = VISITOR_KEYS; +const ALIAS_KEYS = {}; +exports.ALIAS_KEYS = ALIAS_KEYS; +const FLIPPED_ALIAS_KEYS = {}; +exports.FLIPPED_ALIAS_KEYS = FLIPPED_ALIAS_KEYS; +const NODE_FIELDS = {}; +exports.NODE_FIELDS = NODE_FIELDS; +const BUILDER_KEYS = {}; +exports.BUILDER_KEYS = BUILDER_KEYS; +const DEPRECATED_KEYS = {}; +exports.DEPRECATED_KEYS = DEPRECATED_KEYS; +const NODE_PARENT_VALIDATIONS = {}; +exports.NODE_PARENT_VALIDATIONS = NODE_PARENT_VALIDATIONS; +function getType(val) { + if (Array.isArray(val)) { + return "array"; + } else if (val === null) { + return "null"; + } else { + return typeof val; + } +} +function validate(validate) { + return { + validate + }; +} +function typeIs(typeName) { + return typeof typeName === "string" ? assertNodeType(typeName) : assertNodeType(...typeName); +} +function validateType(typeName) { + return validate(typeIs(typeName)); +} +function validateOptional(validate) { + return { + validate, + optional: true + }; +} +function validateOptionalType(typeName) { + return { + validate: typeIs(typeName), + optional: true + }; +} +function arrayOf(elementType) { + return chain(assertValueType("array"), assertEach(elementType)); +} +function arrayOfType(typeName) { + return arrayOf(typeIs(typeName)); +} +function validateArrayOfType(typeName) { + return validate(arrayOfType(typeName)); +} +function assertEach(callback) { + function validator(node, key, val) { + if (!Array.isArray(val)) return; + for (let i = 0; i < val.length; i++) { + const subkey = `${key}[${i}]`; + const v = val[i]; + callback(node, subkey, v); + if (process.env.BABEL_TYPES_8_BREAKING) (0, _validate.validateChild)(node, subkey, v); + } + } + validator.each = callback; + return validator; +} +function assertOneOf(...values) { + function validate(node, key, val) { + if (values.indexOf(val) < 0) { + throw new TypeError(`Property ${key} expected value to be one of ${JSON.stringify(values)} but got ${JSON.stringify(val)}`); + } + } + validate.oneOf = values; + return validate; +} +function assertNodeType(...types) { + function validate(node, key, val) { + for (const type of types) { + if ((0, _is.default)(type, val)) { + (0, _validate.validateChild)(node, key, val); + return; + } + } + throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val == null ? void 0 : val.type)}`); + } + validate.oneOfNodeTypes = types; + return validate; +} +function assertNodeOrValueType(...types) { + function validate(node, key, val) { + for (const type of types) { + if (getType(val) === type || (0, _is.default)(type, val)) { + (0, _validate.validateChild)(node, key, val); + return; + } + } + throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val == null ? void 0 : val.type)}`); + } + validate.oneOfNodeOrValueTypes = types; + return validate; +} +function assertValueType(type) { + function validate(node, key, val) { + const valid = getType(val) === type; + if (!valid) { + throw new TypeError(`Property ${key} expected type of ${type} but got ${getType(val)}`); + } + } + validate.type = type; + return validate; +} +function assertShape(shape) { + function validate(node, key, val) { + const errors = []; + for (const property of Object.keys(shape)) { + try { + (0, _validate.validateField)(node, property, val[property], shape[property]); + } catch (error) { + if (error instanceof TypeError) { + errors.push(error.message); + continue; + } + throw error; + } + } + if (errors.length) { + throw new TypeError(`Property ${key} of ${node.type} expected to have the following:\n${errors.join("\n")}`); + } + } + validate.shapeOf = shape; + return validate; +} +function assertOptionalChainStart() { + function validate(node) { + var _current; + let current = node; + while (node) { + const { + type + } = current; + if (type === "OptionalCallExpression") { + if (current.optional) return; + current = current.callee; + continue; + } + if (type === "OptionalMemberExpression") { + if (current.optional) return; + current = current.object; + continue; + } + break; + } + throw new TypeError(`Non-optional ${node.type} must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from ${(_current = current) == null ? void 0 : _current.type}`); + } + return validate; +} +function chain(...fns) { + function validate(...args) { + for (const fn of fns) { + fn(...args); + } + } + validate.chainOf = fns; + if (fns.length >= 2 && "type" in fns[0] && fns[0].type === "array" && !("each" in fns[1])) { + throw new Error(`An assertValueType("array") validator can only be followed by an assertEach(...) validator.`); + } + return validate; +} +const validTypeOpts = ["aliases", "builder", "deprecatedAlias", "fields", "inherits", "visitor", "validate"]; +const validFieldKeys = ["default", "optional", "validate"]; +const store = {}; + +function defineAliasedType(...aliases) { + return (type, opts = {}) => { + let defined = opts.aliases; + if (!defined) { + var _store$opts$inherits$, _defined; + if (opts.inherits) defined = (_store$opts$inherits$ = store[opts.inherits].aliases) == null ? void 0 : _store$opts$inherits$.slice(); + (_defined = defined) != null ? _defined : defined = []; + opts.aliases = defined; + } + const additional = aliases.filter(a => !defined.includes(a)); + defined.unshift(...additional); + return defineType(type, opts); + }; +} +function defineType(type, opts = {}) { + const inherits = opts.inherits && store[opts.inherits] || {}; + let fields = opts.fields; + if (!fields) { + fields = {}; + if (inherits.fields) { + const keys = Object.getOwnPropertyNames(inherits.fields); + for (const key of keys) { + const field = inherits.fields[key]; + const def = field.default; + if (Array.isArray(def) ? def.length > 0 : def && typeof def === "object") { + throw new Error("field defaults can only be primitives or empty arrays currently"); + } + fields[key] = { + default: Array.isArray(def) ? [] : def, + optional: field.optional, + validate: field.validate + }; + } + } + } + const visitor = opts.visitor || inherits.visitor || []; + const aliases = opts.aliases || inherits.aliases || []; + const builder = opts.builder || inherits.builder || opts.visitor || []; + for (const k of Object.keys(opts)) { + if (validTypeOpts.indexOf(k) === -1) { + throw new Error(`Unknown type option "${k}" on ${type}`); + } + } + if (opts.deprecatedAlias) { + DEPRECATED_KEYS[opts.deprecatedAlias] = type; + } + + for (const key of visitor.concat(builder)) { + fields[key] = fields[key] || {}; + } + for (const key of Object.keys(fields)) { + const field = fields[key]; + if (field.default !== undefined && builder.indexOf(key) === -1) { + field.optional = true; + } + if (field.default === undefined) { + field.default = null; + } else if (!field.validate && field.default != null) { + field.validate = assertValueType(getType(field.default)); + } + for (const k of Object.keys(field)) { + if (validFieldKeys.indexOf(k) === -1) { + throw new Error(`Unknown field key "${k}" on ${type}.${key}`); + } + } + } + VISITOR_KEYS[type] = opts.visitor = visitor; + BUILDER_KEYS[type] = opts.builder = builder; + NODE_FIELDS[type] = opts.fields = fields; + ALIAS_KEYS[type] = opts.aliases = aliases; + aliases.forEach(alias => { + FLIPPED_ALIAS_KEYS[alias] = FLIPPED_ALIAS_KEYS[alias] || []; + FLIPPED_ALIAS_KEYS[alias].push(type); + }); + if (opts.validate) { + NODE_PARENT_VALIDATIONS[type] = opts.validate; + } + store[type] = opts; +} + +//# sourceMappingURL=utils.js.map + + +/***/ }), + +/***/ 2139: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +var _exportNames = { + react: true, + assertNode: true, + createTypeAnnotationBasedOnTypeof: true, + createUnionTypeAnnotation: true, + createFlowUnionType: true, + createTSUnionType: true, + cloneNode: true, + clone: true, + cloneDeep: true, + cloneDeepWithoutLoc: true, + cloneWithoutLoc: true, + addComment: true, + addComments: true, + inheritInnerComments: true, + inheritLeadingComments: true, + inheritsComments: true, + inheritTrailingComments: true, + removeComments: true, + ensureBlock: true, + toBindingIdentifierName: true, + toBlock: true, + toComputedKey: true, + toExpression: true, + toIdentifier: true, + toKeyAlias: true, + toSequenceExpression: true, + toStatement: true, + valueToNode: true, + appendToMemberExpression: true, + inherits: true, + prependToMemberExpression: true, + removeProperties: true, + removePropertiesDeep: true, + removeTypeDuplicates: true, + getBindingIdentifiers: true, + getOuterBindingIdentifiers: true, + traverse: true, + traverseFast: true, + shallowEqual: true, + is: true, + isBinding: true, + isBlockScoped: true, + isImmutable: true, + isLet: true, + isNode: true, + isNodesEquivalent: true, + isPlaceholderType: true, + isReferenced: true, + isScope: true, + isSpecifierDefault: true, + isType: true, + isValidES3Identifier: true, + isValidIdentifier: true, + isVar: true, + matchesPattern: true, + validate: true, + buildMatchMemberExpression: true +}; +Object.defineProperty(exports, "addComment", ({ + enumerable: true, + get: function () { + return _addComment.default; + } +})); +Object.defineProperty(exports, "addComments", ({ + enumerable: true, + get: function () { + return _addComments.default; + } +})); +Object.defineProperty(exports, "appendToMemberExpression", ({ + enumerable: true, + get: function () { + return _appendToMemberExpression.default; + } +})); +Object.defineProperty(exports, "assertNode", ({ + enumerable: true, + get: function () { + return _assertNode.default; + } +})); +Object.defineProperty(exports, "buildMatchMemberExpression", ({ + enumerable: true, + get: function () { + return _buildMatchMemberExpression.default; + } +})); +Object.defineProperty(exports, "clone", ({ + enumerable: true, + get: function () { + return _clone.default; + } +})); +Object.defineProperty(exports, "cloneDeep", ({ + enumerable: true, + get: function () { + return _cloneDeep.default; + } +})); +Object.defineProperty(exports, "cloneDeepWithoutLoc", ({ + enumerable: true, + get: function () { + return _cloneDeepWithoutLoc.default; + } +})); +Object.defineProperty(exports, "cloneNode", ({ + enumerable: true, + get: function () { + return _cloneNode.default; + } +})); +Object.defineProperty(exports, "cloneWithoutLoc", ({ + enumerable: true, + get: function () { + return _cloneWithoutLoc.default; + } +})); +Object.defineProperty(exports, "createFlowUnionType", ({ + enumerable: true, + get: function () { + return _createFlowUnionType.default; + } +})); +Object.defineProperty(exports, "createTSUnionType", ({ + enumerable: true, + get: function () { + return _createTSUnionType.default; + } +})); +Object.defineProperty(exports, "createTypeAnnotationBasedOnTypeof", ({ + enumerable: true, + get: function () { + return _createTypeAnnotationBasedOnTypeof.default; + } +})); +Object.defineProperty(exports, "createUnionTypeAnnotation", ({ + enumerable: true, + get: function () { + return _createFlowUnionType.default; + } +})); +Object.defineProperty(exports, "ensureBlock", ({ + enumerable: true, + get: function () { + return _ensureBlock.default; + } +})); +Object.defineProperty(exports, "getBindingIdentifiers", ({ + enumerable: true, + get: function () { + return _getBindingIdentifiers.default; + } +})); +Object.defineProperty(exports, "getOuterBindingIdentifiers", ({ + enumerable: true, + get: function () { + return _getOuterBindingIdentifiers.default; + } +})); +Object.defineProperty(exports, "inheritInnerComments", ({ + enumerable: true, + get: function () { + return _inheritInnerComments.default; + } +})); +Object.defineProperty(exports, "inheritLeadingComments", ({ + enumerable: true, + get: function () { + return _inheritLeadingComments.default; + } +})); +Object.defineProperty(exports, "inheritTrailingComments", ({ + enumerable: true, + get: function () { + return _inheritTrailingComments.default; + } +})); +Object.defineProperty(exports, "inherits", ({ + enumerable: true, + get: function () { + return _inherits.default; + } +})); +Object.defineProperty(exports, "inheritsComments", ({ + enumerable: true, + get: function () { + return _inheritsComments.default; + } +})); +Object.defineProperty(exports, "is", ({ + enumerable: true, + get: function () { + return _is.default; + } +})); +Object.defineProperty(exports, "isBinding", ({ + enumerable: true, + get: function () { + return _isBinding.default; + } +})); +Object.defineProperty(exports, "isBlockScoped", ({ + enumerable: true, + get: function () { + return _isBlockScoped.default; + } +})); +Object.defineProperty(exports, "isImmutable", ({ + enumerable: true, + get: function () { + return _isImmutable.default; + } +})); +Object.defineProperty(exports, "isLet", ({ + enumerable: true, + get: function () { + return _isLet.default; + } +})); +Object.defineProperty(exports, "isNode", ({ + enumerable: true, + get: function () { + return _isNode.default; + } +})); +Object.defineProperty(exports, "isNodesEquivalent", ({ + enumerable: true, + get: function () { + return _isNodesEquivalent.default; + } +})); +Object.defineProperty(exports, "isPlaceholderType", ({ + enumerable: true, + get: function () { + return _isPlaceholderType.default; + } +})); +Object.defineProperty(exports, "isReferenced", ({ + enumerable: true, + get: function () { + return _isReferenced.default; + } +})); +Object.defineProperty(exports, "isScope", ({ + enumerable: true, + get: function () { + return _isScope.default; + } +})); +Object.defineProperty(exports, "isSpecifierDefault", ({ + enumerable: true, + get: function () { + return _isSpecifierDefault.default; + } +})); +Object.defineProperty(exports, "isType", ({ + enumerable: true, + get: function () { + return _isType.default; + } +})); +Object.defineProperty(exports, "isValidES3Identifier", ({ + enumerable: true, + get: function () { + return _isValidES3Identifier.default; + } +})); +Object.defineProperty(exports, "isValidIdentifier", ({ + enumerable: true, + get: function () { + return _isValidIdentifier.default; + } +})); +Object.defineProperty(exports, "isVar", ({ + enumerable: true, + get: function () { + return _isVar.default; + } +})); +Object.defineProperty(exports, "matchesPattern", ({ + enumerable: true, + get: function () { + return _matchesPattern.default; + } +})); +Object.defineProperty(exports, "prependToMemberExpression", ({ + enumerable: true, + get: function () { + return _prependToMemberExpression.default; + } +})); +exports.react = void 0; +Object.defineProperty(exports, "removeComments", ({ + enumerable: true, + get: function () { + return _removeComments.default; + } +})); +Object.defineProperty(exports, "removeProperties", ({ + enumerable: true, + get: function () { + return _removeProperties.default; + } +})); +Object.defineProperty(exports, "removePropertiesDeep", ({ + enumerable: true, + get: function () { + return _removePropertiesDeep.default; + } +})); +Object.defineProperty(exports, "removeTypeDuplicates", ({ + enumerable: true, + get: function () { + return _removeTypeDuplicates.default; + } +})); +Object.defineProperty(exports, "shallowEqual", ({ + enumerable: true, + get: function () { + return _shallowEqual.default; + } +})); +Object.defineProperty(exports, "toBindingIdentifierName", ({ + enumerable: true, + get: function () { + return _toBindingIdentifierName.default; + } +})); +Object.defineProperty(exports, "toBlock", ({ + enumerable: true, + get: function () { + return _toBlock.default; + } +})); +Object.defineProperty(exports, "toComputedKey", ({ + enumerable: true, + get: function () { + return _toComputedKey.default; + } +})); +Object.defineProperty(exports, "toExpression", ({ + enumerable: true, + get: function () { + return _toExpression.default; + } +})); +Object.defineProperty(exports, "toIdentifier", ({ + enumerable: true, + get: function () { + return _toIdentifier.default; + } +})); +Object.defineProperty(exports, "toKeyAlias", ({ + enumerable: true, + get: function () { + return _toKeyAlias.default; + } +})); +Object.defineProperty(exports, "toSequenceExpression", ({ + enumerable: true, + get: function () { + return _toSequenceExpression.default; + } +})); +Object.defineProperty(exports, "toStatement", ({ + enumerable: true, + get: function () { + return _toStatement.default; + } +})); +Object.defineProperty(exports, "traverse", ({ + enumerable: true, + get: function () { + return _traverse.default; + } +})); +Object.defineProperty(exports, "traverseFast", ({ + enumerable: true, + get: function () { + return _traverseFast.default; + } +})); +Object.defineProperty(exports, "validate", ({ + enumerable: true, + get: function () { + return _validate.default; + } +})); +Object.defineProperty(exports, "valueToNode", ({ + enumerable: true, + get: function () { + return _valueToNode.default; + } +})); +var _isReactComponent = __webpack_require__(4605); +var _isCompatTag = __webpack_require__(6462); +var _buildChildren = __webpack_require__(3923); +var _assertNode = __webpack_require__(9161); +var _generated = __webpack_require__(8717); +Object.keys(_generated).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; + if (key in exports && exports[key] === _generated[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _generated[key]; + } + }); +}); +var _createTypeAnnotationBasedOnTypeof = __webpack_require__(6833); +var _createFlowUnionType = __webpack_require__(2230); +var _createTSUnionType = __webpack_require__(4502); +var _generated2 = __webpack_require__(4204); +Object.keys(_generated2).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; + if (key in exports && exports[key] === _generated2[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _generated2[key]; + } + }); +}); +var _uppercase = __webpack_require__(4694); +Object.keys(_uppercase).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; + if (key in exports && exports[key] === _uppercase[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _uppercase[key]; + } + }); +}); +var _cloneNode = __webpack_require__(2389); +var _clone = __webpack_require__(1391); +var _cloneDeep = __webpack_require__(9347); +var _cloneDeepWithoutLoc = __webpack_require__(6553); +var _cloneWithoutLoc = __webpack_require__(495); +var _addComment = __webpack_require__(9607); +var _addComments = __webpack_require__(1758); +var _inheritInnerComments = __webpack_require__(298); +var _inheritLeadingComments = __webpack_require__(2746); +var _inheritsComments = __webpack_require__(3084); +var _inheritTrailingComments = __webpack_require__(8368); +var _removeComments = __webpack_require__(4021); +var _generated3 = __webpack_require__(2476); +Object.keys(_generated3).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; + if (key in exports && exports[key] === _generated3[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _generated3[key]; + } + }); +}); +var _constants = __webpack_require__(8503); +Object.keys(_constants).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; + if (key in exports && exports[key] === _constants[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _constants[key]; + } + }); +}); +var _ensureBlock = __webpack_require__(6447); +var _toBindingIdentifierName = __webpack_require__(5680); +var _toBlock = __webpack_require__(59); +var _toComputedKey = __webpack_require__(631); +var _toExpression = __webpack_require__(9005); +var _toIdentifier = __webpack_require__(6000); +var _toKeyAlias = __webpack_require__(4485); +var _toSequenceExpression = __webpack_require__(3264); +var _toStatement = __webpack_require__(5027); +var _valueToNode = __webpack_require__(6387); +var _definitions = __webpack_require__(2886); +Object.keys(_definitions).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; + if (key in exports && exports[key] === _definitions[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _definitions[key]; + } + }); +}); +var _appendToMemberExpression = __webpack_require__(2207); +var _inherits = __webpack_require__(3693); +var _prependToMemberExpression = __webpack_require__(4536); +var _removeProperties = __webpack_require__(5123); +var _removePropertiesDeep = __webpack_require__(9069); +var _removeTypeDuplicates = __webpack_require__(6099); +var _getBindingIdentifiers = __webpack_require__(9565); +var _getOuterBindingIdentifiers = __webpack_require__(716); +var _traverse = __webpack_require__(1491); +Object.keys(_traverse).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; + if (key in exports && exports[key] === _traverse[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _traverse[key]; + } + }); +}); +var _traverseFast = __webpack_require__(6953); +var _shallowEqual = __webpack_require__(6051); +var _is = __webpack_require__(4477); +var _isBinding = __webpack_require__(5025); +var _isBlockScoped = __webpack_require__(5065); +var _isImmutable = __webpack_require__(5062); +var _isLet = __webpack_require__(1295); +var _isNode = __webpack_require__(1832); +var _isNodesEquivalent = __webpack_require__(8847); +var _isPlaceholderType = __webpack_require__(9092); +var _isReferenced = __webpack_require__(723); +var _isScope = __webpack_require__(6126); +var _isSpecifierDefault = __webpack_require__(579); +var _isType = __webpack_require__(5434); +var _isValidES3Identifier = __webpack_require__(581); +var _isValidIdentifier = __webpack_require__(6111); +var _isVar = __webpack_require__(4360); +var _matchesPattern = __webpack_require__(6192); +var _validate = __webpack_require__(8741); +var _buildMatchMemberExpression = __webpack_require__(6475); +var _generated4 = __webpack_require__(8202); +Object.keys(_generated4).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; + if (key in exports && exports[key] === _generated4[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _generated4[key]; + } + }); +}); +var _generated5 = __webpack_require__(2640); +Object.keys(_generated5).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; + if (key in exports && exports[key] === _generated5[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _generated5[key]; + } + }); +}); + +const react = { + isReactComponent: _isReactComponent.default, + isCompatTag: _isCompatTag.default, + buildChildren: _buildChildren.default +}; +exports.react = react; + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 2207: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = appendToMemberExpression; +var _generated = __webpack_require__(4204); +function appendToMemberExpression(member, append, computed = false) { + member.object = (0, _generated.memberExpression)(member.object, member.property, member.computed); + member.property = append; + member.computed = !!computed; + return member; +} + +//# sourceMappingURL=appendToMemberExpression.js.map + + +/***/ }), + +/***/ 6099: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = removeTypeDuplicates; +var _generated = __webpack_require__(8202); +function getQualifiedName(node) { + return (0, _generated.isIdentifier)(node) ? node.name : `${node.id.name}.${getQualifiedName(node.qualification)}`; +} + +function removeTypeDuplicates( +nodes) { + const generics = new Map(); + const bases = new Map(); + + const typeGroups = new Set(); + const types = []; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (!node) continue; + + if (types.indexOf(node) >= 0) { + continue; + } + + if ((0, _generated.isAnyTypeAnnotation)(node)) { + return [node]; + } + if ((0, _generated.isFlowBaseAnnotation)(node)) { + bases.set(node.type, node); + continue; + } + if ((0, _generated.isUnionTypeAnnotation)(node)) { + if (!typeGroups.has(node.types)) { + nodes = nodes.concat(node.types); + typeGroups.add(node.types); + } + continue; + } + + if ((0, _generated.isGenericTypeAnnotation)(node)) { + const name = getQualifiedName(node.id); + if (generics.has(name)) { + let existing = generics.get(name); + if (existing.typeParameters) { + if (node.typeParameters) { + existing.typeParameters.params = removeTypeDuplicates(existing.typeParameters.params.concat(node.typeParameters.params)); + } + } else { + existing = node.typeParameters; + } + } else { + generics.set(name, node); + } + continue; + } + types.push(node); + } + + for (const [, baseType] of bases) { + types.push(baseType); + } + + for (const [, genericName] of generics) { + types.push(genericName); + } + return types; +} + +//# sourceMappingURL=removeTypeDuplicates.js.map + + +/***/ }), + +/***/ 3693: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = inherits; +var _constants = __webpack_require__(8503); +var _inheritsComments = __webpack_require__(3084); +function inherits(child, parent) { + if (!child || !parent) return child; + + for (const key of _constants.INHERIT_KEYS.optional) { + if (child[key] == null) { + child[key] = parent[key]; + } + } + + for (const key of Object.keys(parent)) { + if (key[0] === "_" && key !== "__clone") { + child[key] = parent[key]; + } + } + + for (const key of _constants.INHERIT_KEYS.force) { + child[key] = parent[key]; + } + (0, _inheritsComments.default)(child, parent); + return child; +} + +//# sourceMappingURL=inherits.js.map + + +/***/ }), + +/***/ 4536: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = prependToMemberExpression; +var _generated = __webpack_require__(4204); +var _ = __webpack_require__(2139); +function prependToMemberExpression(member, prepend) { + if ((0, _.isSuper)(member.object)) { + throw new Error("Cannot prepend node to super property access (`super.foo`)."); + } + member.object = (0, _generated.memberExpression)(prepend, member.object); + return member; +} + +//# sourceMappingURL=prependToMemberExpression.js.map + + +/***/ }), + +/***/ 5123: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = removeProperties; +var _constants = __webpack_require__(8503); +const CLEAR_KEYS = ["tokens", +"start", "end", "loc", +"raw", "rawValue"]; +const CLEAR_KEYS_PLUS_COMMENTS = [..._constants.COMMENT_KEYS, "comments", ...CLEAR_KEYS]; +function removeProperties(node, opts = {}) { + const map = opts.preserveComments ? CLEAR_KEYS : CLEAR_KEYS_PLUS_COMMENTS; + for (const key of map) { + if (node[key] != null) node[key] = undefined; + } + for (const key of Object.keys(node)) { + if (key[0] === "_" && node[key] != null) node[key] = undefined; + } + const symbols = Object.getOwnPropertySymbols(node); + for (const sym of symbols) { + node[sym] = null; + } +} + +//# sourceMappingURL=removeProperties.js.map + + +/***/ }), + +/***/ 9069: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = removePropertiesDeep; +var _traverseFast = __webpack_require__(6953); +var _removeProperties = __webpack_require__(5123); +function removePropertiesDeep(tree, opts) { + (0, _traverseFast.default)(tree, _removeProperties.default, opts); + return tree; +} + +//# sourceMappingURL=removePropertiesDeep.js.map + + +/***/ }), + +/***/ 1866: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = removeTypeDuplicates; +var _generated = __webpack_require__(8202); +function getQualifiedName(node) { + return (0, _generated.isIdentifier)(node) ? node.name : `${node.right.name}.${getQualifiedName(node.left)}`; +} + +function removeTypeDuplicates(nodes) { + const generics = new Map(); + const bases = new Map(); + + const typeGroups = new Set(); + const types = []; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (!node) continue; + + if (types.indexOf(node) >= 0) { + continue; + } + + if ((0, _generated.isTSAnyKeyword)(node)) { + return [node]; + } + + if ((0, _generated.isTSBaseType)(node)) { + bases.set(node.type, node); + continue; + } + if ((0, _generated.isTSUnionType)(node)) { + if (!typeGroups.has(node.types)) { + nodes.push(...node.types); + typeGroups.add(node.types); + } + continue; + } + + if ((0, _generated.isTSTypeReference)(node) && node.typeParameters) { + const name = getQualifiedName(node.typeName); + if (generics.has(name)) { + let existing = generics.get(name); + if (existing.typeParameters) { + if (node.typeParameters) { + existing.typeParameters.params = removeTypeDuplicates(existing.typeParameters.params.concat(node.typeParameters.params)); + } + } else { + existing = node.typeParameters; + } + } else { + generics.set(name, node); + } + continue; + } + types.push(node); + } + + for (const [, baseType] of bases) { + types.push(baseType); + } + + for (const [, genericName] of generics) { + types.push(genericName); + } + return types; +} + +//# sourceMappingURL=removeTypeDuplicates.js.map + + +/***/ }), + +/***/ 9565: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = getBindingIdentifiers; +var _generated = __webpack_require__(8202); +function getBindingIdentifiers(node, duplicates, outerOnly) { + const search = [].concat(node); + const ids = Object.create(null); + while (search.length) { + const id = search.shift(); + if (!id) continue; + const keys = + getBindingIdentifiers.keys[id.type]; + if ((0, _generated.isIdentifier)(id)) { + if (duplicates) { + const _ids = ids[id.name] = ids[id.name] || []; + _ids.push(id); + } else { + ids[id.name] = id; + } + continue; + } + if ((0, _generated.isExportDeclaration)(id) && !(0, _generated.isExportAllDeclaration)(id)) { + if ((0, _generated.isDeclaration)(id.declaration)) { + search.push(id.declaration); + } + continue; + } + if (outerOnly) { + if ((0, _generated.isFunctionDeclaration)(id)) { + search.push(id.id); + continue; + } + if ((0, _generated.isFunctionExpression)(id)) { + continue; + } + } + if (keys) { + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + const nodes = + id[key]; + if (nodes) { + Array.isArray(nodes) ? search.push(...nodes) : search.push(nodes); + } + } + } + } + + return ids; +} + +getBindingIdentifiers.keys = { + DeclareClass: ["id"], + DeclareFunction: ["id"], + DeclareModule: ["id"], + DeclareVariable: ["id"], + DeclareInterface: ["id"], + DeclareTypeAlias: ["id"], + DeclareOpaqueType: ["id"], + InterfaceDeclaration: ["id"], + TypeAlias: ["id"], + OpaqueType: ["id"], + CatchClause: ["param"], + LabeledStatement: ["label"], + UnaryExpression: ["argument"], + AssignmentExpression: ["left"], + ImportSpecifier: ["local"], + ImportNamespaceSpecifier: ["local"], + ImportDefaultSpecifier: ["local"], + ImportDeclaration: ["specifiers"], + ExportSpecifier: ["exported"], + ExportNamespaceSpecifier: ["exported"], + ExportDefaultSpecifier: ["exported"], + FunctionDeclaration: ["id", "params"], + FunctionExpression: ["id", "params"], + ArrowFunctionExpression: ["params"], + ObjectMethod: ["params"], + ClassMethod: ["params"], + ClassPrivateMethod: ["params"], + ForInStatement: ["left"], + ForOfStatement: ["left"], + ClassDeclaration: ["id"], + ClassExpression: ["id"], + RestElement: ["argument"], + UpdateExpression: ["argument"], + ObjectProperty: ["value"], + AssignmentPattern: ["left"], + ArrayPattern: ["elements"], + ObjectPattern: ["properties"], + VariableDeclaration: ["declarations"], + VariableDeclarator: ["id"] +}; + +//# sourceMappingURL=getBindingIdentifiers.js.map + + +/***/ }), + +/***/ 716: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +var _getBindingIdentifiers = __webpack_require__(9565); +var _default = getOuterBindingIdentifiers; +exports["default"] = _default; +function getOuterBindingIdentifiers(node, duplicates) { + return (0, _getBindingIdentifiers.default)(node, duplicates, true); +} + +//# sourceMappingURL=getOuterBindingIdentifiers.js.map + + +/***/ }), + +/***/ 1491: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = traverse; +var _definitions = __webpack_require__(2886); +function traverse(node, handlers, state) { + if (typeof handlers === "function") { + handlers = { + enter: handlers + }; + } + const { + enter, + exit + } = handlers; + traverseSimpleImpl(node, enter, exit, state, []); +} +function traverseSimpleImpl(node, enter, exit, state, ancestors) { + const keys = _definitions.VISITOR_KEYS[node.type]; + if (!keys) return; + if (enter) enter(node, ancestors, state); + for (const key of keys) { + const subNode = node[key]; + if (Array.isArray(subNode)) { + for (let i = 0; i < subNode.length; i++) { + const child = subNode[i]; + if (!child) continue; + ancestors.push({ + node, + key, + index: i + }); + traverseSimpleImpl(child, enter, exit, state, ancestors); + ancestors.pop(); + } + } else if (subNode) { + ancestors.push({ + node, + key + }); + traverseSimpleImpl(subNode, enter, exit, state, ancestors); + ancestors.pop(); + } + } + if (exit) exit(node, ancestors, state); +} + +//# sourceMappingURL=traverse.js.map + + +/***/ }), + +/***/ 6953: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = traverseFast; +var _definitions = __webpack_require__(2886); +function traverseFast(node, enter, opts) { + if (!node) return; + const keys = _definitions.VISITOR_KEYS[node.type]; + if (!keys) return; + opts = opts || {}; + enter(node, opts); + for (const key of keys) { + const subNode = + node[key]; + if (Array.isArray(subNode)) { + for (const node of subNode) { + traverseFast(node, enter, opts); + } + } else { + traverseFast(subNode, enter, opts); + } + } +} + +//# sourceMappingURL=traverseFast.js.map + + +/***/ }), + +/***/ 8515: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = inherit; +function inherit(key, child, parent) { + if (child && parent) { + child[key] = Array.from(new Set([].concat(child[key], parent[key]).filter(Boolean))); + } +} + +//# sourceMappingURL=inherit.js.map + + +/***/ }), + +/***/ 5772: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = cleanJSXElementLiteralChild; +var _generated = __webpack_require__(4204); +var _ = __webpack_require__(2139); +function cleanJSXElementLiteralChild(child, args) { + const lines = child.value.split(/\r\n|\n|\r/); + let lastNonEmptyLine = 0; + for (let i = 0; i < lines.length; i++) { + if (lines[i].match(/[^ \t]/)) { + lastNonEmptyLine = i; + } + } + let str = ""; + for (let i = 0; i < lines.length; i++) { + const line = lines[i]; + const isFirstLine = i === 0; + const isLastLine = i === lines.length - 1; + const isLastNonEmptyLine = i === lastNonEmptyLine; + + let trimmedLine = line.replace(/\t/g, " "); + + if (!isFirstLine) { + trimmedLine = trimmedLine.replace(/^[ ]+/, ""); + } + + if (!isLastLine) { + trimmedLine = trimmedLine.replace(/[ ]+$/, ""); + } + if (trimmedLine) { + if (!isLastNonEmptyLine) { + trimmedLine += " "; + } + str += trimmedLine; + } + } + if (str) args.push((0, _.inherits)((0, _generated.stringLiteral)(str), child)); +} + +//# sourceMappingURL=cleanJSXElementLiteralChild.js.map + + +/***/ }), + +/***/ 6051: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = shallowEqual; +function shallowEqual(actual, expected) { + const keys = Object.keys(expected); + for (const key of keys) { + if ( + actual[key] !== expected[key]) { + return false; + } + } + return true; +} + +//# sourceMappingURL=shallowEqual.js.map + + +/***/ }), + +/***/ 6475: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = buildMatchMemberExpression; +var _matchesPattern = __webpack_require__(6192); +function buildMatchMemberExpression(match, allowPartial) { + const parts = match.split("."); + return member => (0, _matchesPattern.default)(member, parts, allowPartial); +} + +//# sourceMappingURL=buildMatchMemberExpression.js.map + + +/***/ }), + +/***/ 8202: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.isAccessor = isAccessor; +exports.isAnyTypeAnnotation = isAnyTypeAnnotation; +exports.isArgumentPlaceholder = isArgumentPlaceholder; +exports.isArrayExpression = isArrayExpression; +exports.isArrayPattern = isArrayPattern; +exports.isArrayTypeAnnotation = isArrayTypeAnnotation; +exports.isArrowFunctionExpression = isArrowFunctionExpression; +exports.isAssignmentExpression = isAssignmentExpression; +exports.isAssignmentPattern = isAssignmentPattern; +exports.isAwaitExpression = isAwaitExpression; +exports.isBigIntLiteral = isBigIntLiteral; +exports.isBinary = isBinary; +exports.isBinaryExpression = isBinaryExpression; +exports.isBindExpression = isBindExpression; +exports.isBlock = isBlock; +exports.isBlockParent = isBlockParent; +exports.isBlockStatement = isBlockStatement; +exports.isBooleanLiteral = isBooleanLiteral; +exports.isBooleanLiteralTypeAnnotation = isBooleanLiteralTypeAnnotation; +exports.isBooleanTypeAnnotation = isBooleanTypeAnnotation; +exports.isBreakStatement = isBreakStatement; +exports.isCallExpression = isCallExpression; +exports.isCatchClause = isCatchClause; +exports.isClass = isClass; +exports.isClassAccessorProperty = isClassAccessorProperty; +exports.isClassBody = isClassBody; +exports.isClassDeclaration = isClassDeclaration; +exports.isClassExpression = isClassExpression; +exports.isClassImplements = isClassImplements; +exports.isClassMethod = isClassMethod; +exports.isClassPrivateMethod = isClassPrivateMethod; +exports.isClassPrivateProperty = isClassPrivateProperty; +exports.isClassProperty = isClassProperty; +exports.isCompletionStatement = isCompletionStatement; +exports.isConditional = isConditional; +exports.isConditionalExpression = isConditionalExpression; +exports.isContinueStatement = isContinueStatement; +exports.isDebuggerStatement = isDebuggerStatement; +exports.isDecimalLiteral = isDecimalLiteral; +exports.isDeclaration = isDeclaration; +exports.isDeclareClass = isDeclareClass; +exports.isDeclareExportAllDeclaration = isDeclareExportAllDeclaration; +exports.isDeclareExportDeclaration = isDeclareExportDeclaration; +exports.isDeclareFunction = isDeclareFunction; +exports.isDeclareInterface = isDeclareInterface; +exports.isDeclareModule = isDeclareModule; +exports.isDeclareModuleExports = isDeclareModuleExports; +exports.isDeclareOpaqueType = isDeclareOpaqueType; +exports.isDeclareTypeAlias = isDeclareTypeAlias; +exports.isDeclareVariable = isDeclareVariable; +exports.isDeclaredPredicate = isDeclaredPredicate; +exports.isDecorator = isDecorator; +exports.isDirective = isDirective; +exports.isDirectiveLiteral = isDirectiveLiteral; +exports.isDoExpression = isDoExpression; +exports.isDoWhileStatement = isDoWhileStatement; +exports.isEmptyStatement = isEmptyStatement; +exports.isEmptyTypeAnnotation = isEmptyTypeAnnotation; +exports.isEnumBody = isEnumBody; +exports.isEnumBooleanBody = isEnumBooleanBody; +exports.isEnumBooleanMember = isEnumBooleanMember; +exports.isEnumDeclaration = isEnumDeclaration; +exports.isEnumDefaultedMember = isEnumDefaultedMember; +exports.isEnumMember = isEnumMember; +exports.isEnumNumberBody = isEnumNumberBody; +exports.isEnumNumberMember = isEnumNumberMember; +exports.isEnumStringBody = isEnumStringBody; +exports.isEnumStringMember = isEnumStringMember; +exports.isEnumSymbolBody = isEnumSymbolBody; +exports.isExistsTypeAnnotation = isExistsTypeAnnotation; +exports.isExportAllDeclaration = isExportAllDeclaration; +exports.isExportDeclaration = isExportDeclaration; +exports.isExportDefaultDeclaration = isExportDefaultDeclaration; +exports.isExportDefaultSpecifier = isExportDefaultSpecifier; +exports.isExportNamedDeclaration = isExportNamedDeclaration; +exports.isExportNamespaceSpecifier = isExportNamespaceSpecifier; +exports.isExportSpecifier = isExportSpecifier; +exports.isExpression = isExpression; +exports.isExpressionStatement = isExpressionStatement; +exports.isExpressionWrapper = isExpressionWrapper; +exports.isFile = isFile; +exports.isFlow = isFlow; +exports.isFlowBaseAnnotation = isFlowBaseAnnotation; +exports.isFlowDeclaration = isFlowDeclaration; +exports.isFlowPredicate = isFlowPredicate; +exports.isFlowType = isFlowType; +exports.isFor = isFor; +exports.isForInStatement = isForInStatement; +exports.isForOfStatement = isForOfStatement; +exports.isForStatement = isForStatement; +exports.isForXStatement = isForXStatement; +exports.isFunction = isFunction; +exports.isFunctionDeclaration = isFunctionDeclaration; +exports.isFunctionExpression = isFunctionExpression; +exports.isFunctionParent = isFunctionParent; +exports.isFunctionTypeAnnotation = isFunctionTypeAnnotation; +exports.isFunctionTypeParam = isFunctionTypeParam; +exports.isGenericTypeAnnotation = isGenericTypeAnnotation; +exports.isIdentifier = isIdentifier; +exports.isIfStatement = isIfStatement; +exports.isImmutable = isImmutable; +exports.isImport = isImport; +exports.isImportAttribute = isImportAttribute; +exports.isImportDeclaration = isImportDeclaration; +exports.isImportDefaultSpecifier = isImportDefaultSpecifier; +exports.isImportNamespaceSpecifier = isImportNamespaceSpecifier; +exports.isImportSpecifier = isImportSpecifier; +exports.isIndexedAccessType = isIndexedAccessType; +exports.isInferredPredicate = isInferredPredicate; +exports.isInterfaceDeclaration = isInterfaceDeclaration; +exports.isInterfaceExtends = isInterfaceExtends; +exports.isInterfaceTypeAnnotation = isInterfaceTypeAnnotation; +exports.isInterpreterDirective = isInterpreterDirective; +exports.isIntersectionTypeAnnotation = isIntersectionTypeAnnotation; +exports.isJSX = isJSX; +exports.isJSXAttribute = isJSXAttribute; +exports.isJSXClosingElement = isJSXClosingElement; +exports.isJSXClosingFragment = isJSXClosingFragment; +exports.isJSXElement = isJSXElement; +exports.isJSXEmptyExpression = isJSXEmptyExpression; +exports.isJSXExpressionContainer = isJSXExpressionContainer; +exports.isJSXFragment = isJSXFragment; +exports.isJSXIdentifier = isJSXIdentifier; +exports.isJSXMemberExpression = isJSXMemberExpression; +exports.isJSXNamespacedName = isJSXNamespacedName; +exports.isJSXOpeningElement = isJSXOpeningElement; +exports.isJSXOpeningFragment = isJSXOpeningFragment; +exports.isJSXSpreadAttribute = isJSXSpreadAttribute; +exports.isJSXSpreadChild = isJSXSpreadChild; +exports.isJSXText = isJSXText; +exports.isLVal = isLVal; +exports.isLabeledStatement = isLabeledStatement; +exports.isLiteral = isLiteral; +exports.isLogicalExpression = isLogicalExpression; +exports.isLoop = isLoop; +exports.isMemberExpression = isMemberExpression; +exports.isMetaProperty = isMetaProperty; +exports.isMethod = isMethod; +exports.isMiscellaneous = isMiscellaneous; +exports.isMixedTypeAnnotation = isMixedTypeAnnotation; +exports.isModuleDeclaration = isModuleDeclaration; +exports.isModuleExpression = isModuleExpression; +exports.isModuleSpecifier = isModuleSpecifier; +exports.isNewExpression = isNewExpression; +exports.isNoop = isNoop; +exports.isNullLiteral = isNullLiteral; +exports.isNullLiteralTypeAnnotation = isNullLiteralTypeAnnotation; +exports.isNullableTypeAnnotation = isNullableTypeAnnotation; +exports.isNumberLiteral = isNumberLiteral; +exports.isNumberLiteralTypeAnnotation = isNumberLiteralTypeAnnotation; +exports.isNumberTypeAnnotation = isNumberTypeAnnotation; +exports.isNumericLiteral = isNumericLiteral; +exports.isObjectExpression = isObjectExpression; +exports.isObjectMember = isObjectMember; +exports.isObjectMethod = isObjectMethod; +exports.isObjectPattern = isObjectPattern; +exports.isObjectProperty = isObjectProperty; +exports.isObjectTypeAnnotation = isObjectTypeAnnotation; +exports.isObjectTypeCallProperty = isObjectTypeCallProperty; +exports.isObjectTypeIndexer = isObjectTypeIndexer; +exports.isObjectTypeInternalSlot = isObjectTypeInternalSlot; +exports.isObjectTypeProperty = isObjectTypeProperty; +exports.isObjectTypeSpreadProperty = isObjectTypeSpreadProperty; +exports.isOpaqueType = isOpaqueType; +exports.isOptionalCallExpression = isOptionalCallExpression; +exports.isOptionalIndexedAccessType = isOptionalIndexedAccessType; +exports.isOptionalMemberExpression = isOptionalMemberExpression; +exports.isParenthesizedExpression = isParenthesizedExpression; +exports.isPattern = isPattern; +exports.isPatternLike = isPatternLike; +exports.isPipelineBareFunction = isPipelineBareFunction; +exports.isPipelinePrimaryTopicReference = isPipelinePrimaryTopicReference; +exports.isPipelineTopicExpression = isPipelineTopicExpression; +exports.isPlaceholder = isPlaceholder; +exports.isPrivate = isPrivate; +exports.isPrivateName = isPrivateName; +exports.isProgram = isProgram; +exports.isProperty = isProperty; +exports.isPureish = isPureish; +exports.isQualifiedTypeIdentifier = isQualifiedTypeIdentifier; +exports.isRecordExpression = isRecordExpression; +exports.isRegExpLiteral = isRegExpLiteral; +exports.isRegexLiteral = isRegexLiteral; +exports.isRestElement = isRestElement; +exports.isRestProperty = isRestProperty; +exports.isReturnStatement = isReturnStatement; +exports.isScopable = isScopable; +exports.isSequenceExpression = isSequenceExpression; +exports.isSpreadElement = isSpreadElement; +exports.isSpreadProperty = isSpreadProperty; +exports.isStandardized = isStandardized; +exports.isStatement = isStatement; +exports.isStaticBlock = isStaticBlock; +exports.isStringLiteral = isStringLiteral; +exports.isStringLiteralTypeAnnotation = isStringLiteralTypeAnnotation; +exports.isStringTypeAnnotation = isStringTypeAnnotation; +exports.isSuper = isSuper; +exports.isSwitchCase = isSwitchCase; +exports.isSwitchStatement = isSwitchStatement; +exports.isSymbolTypeAnnotation = isSymbolTypeAnnotation; +exports.isTSAnyKeyword = isTSAnyKeyword; +exports.isTSArrayType = isTSArrayType; +exports.isTSAsExpression = isTSAsExpression; +exports.isTSBaseType = isTSBaseType; +exports.isTSBigIntKeyword = isTSBigIntKeyword; +exports.isTSBooleanKeyword = isTSBooleanKeyword; +exports.isTSCallSignatureDeclaration = isTSCallSignatureDeclaration; +exports.isTSConditionalType = isTSConditionalType; +exports.isTSConstructSignatureDeclaration = isTSConstructSignatureDeclaration; +exports.isTSConstructorType = isTSConstructorType; +exports.isTSDeclareFunction = isTSDeclareFunction; +exports.isTSDeclareMethod = isTSDeclareMethod; +exports.isTSEntityName = isTSEntityName; +exports.isTSEnumDeclaration = isTSEnumDeclaration; +exports.isTSEnumMember = isTSEnumMember; +exports.isTSExportAssignment = isTSExportAssignment; +exports.isTSExpressionWithTypeArguments = isTSExpressionWithTypeArguments; +exports.isTSExternalModuleReference = isTSExternalModuleReference; +exports.isTSFunctionType = isTSFunctionType; +exports.isTSImportEqualsDeclaration = isTSImportEqualsDeclaration; +exports.isTSImportType = isTSImportType; +exports.isTSIndexSignature = isTSIndexSignature; +exports.isTSIndexedAccessType = isTSIndexedAccessType; +exports.isTSInferType = isTSInferType; +exports.isTSInstantiationExpression = isTSInstantiationExpression; +exports.isTSInterfaceBody = isTSInterfaceBody; +exports.isTSInterfaceDeclaration = isTSInterfaceDeclaration; +exports.isTSIntersectionType = isTSIntersectionType; +exports.isTSIntrinsicKeyword = isTSIntrinsicKeyword; +exports.isTSLiteralType = isTSLiteralType; +exports.isTSMappedType = isTSMappedType; +exports.isTSMethodSignature = isTSMethodSignature; +exports.isTSModuleBlock = isTSModuleBlock; +exports.isTSModuleDeclaration = isTSModuleDeclaration; +exports.isTSNamedTupleMember = isTSNamedTupleMember; +exports.isTSNamespaceExportDeclaration = isTSNamespaceExportDeclaration; +exports.isTSNeverKeyword = isTSNeverKeyword; +exports.isTSNonNullExpression = isTSNonNullExpression; +exports.isTSNullKeyword = isTSNullKeyword; +exports.isTSNumberKeyword = isTSNumberKeyword; +exports.isTSObjectKeyword = isTSObjectKeyword; +exports.isTSOptionalType = isTSOptionalType; +exports.isTSParameterProperty = isTSParameterProperty; +exports.isTSParenthesizedType = isTSParenthesizedType; +exports.isTSPropertySignature = isTSPropertySignature; +exports.isTSQualifiedName = isTSQualifiedName; +exports.isTSRestType = isTSRestType; +exports.isTSSatisfiesExpression = isTSSatisfiesExpression; +exports.isTSStringKeyword = isTSStringKeyword; +exports.isTSSymbolKeyword = isTSSymbolKeyword; +exports.isTSThisType = isTSThisType; +exports.isTSTupleType = isTSTupleType; +exports.isTSType = isTSType; +exports.isTSTypeAliasDeclaration = isTSTypeAliasDeclaration; +exports.isTSTypeAnnotation = isTSTypeAnnotation; +exports.isTSTypeAssertion = isTSTypeAssertion; +exports.isTSTypeElement = isTSTypeElement; +exports.isTSTypeLiteral = isTSTypeLiteral; +exports.isTSTypeOperator = isTSTypeOperator; +exports.isTSTypeParameter = isTSTypeParameter; +exports.isTSTypeParameterDeclaration = isTSTypeParameterDeclaration; +exports.isTSTypeParameterInstantiation = isTSTypeParameterInstantiation; +exports.isTSTypePredicate = isTSTypePredicate; +exports.isTSTypeQuery = isTSTypeQuery; +exports.isTSTypeReference = isTSTypeReference; +exports.isTSUndefinedKeyword = isTSUndefinedKeyword; +exports.isTSUnionType = isTSUnionType; +exports.isTSUnknownKeyword = isTSUnknownKeyword; +exports.isTSVoidKeyword = isTSVoidKeyword; +exports.isTaggedTemplateExpression = isTaggedTemplateExpression; +exports.isTemplateElement = isTemplateElement; +exports.isTemplateLiteral = isTemplateLiteral; +exports.isTerminatorless = isTerminatorless; +exports.isThisExpression = isThisExpression; +exports.isThisTypeAnnotation = isThisTypeAnnotation; +exports.isThrowStatement = isThrowStatement; +exports.isTopicReference = isTopicReference; +exports.isTryStatement = isTryStatement; +exports.isTupleExpression = isTupleExpression; +exports.isTupleTypeAnnotation = isTupleTypeAnnotation; +exports.isTypeAlias = isTypeAlias; +exports.isTypeAnnotation = isTypeAnnotation; +exports.isTypeCastExpression = isTypeCastExpression; +exports.isTypeParameter = isTypeParameter; +exports.isTypeParameterDeclaration = isTypeParameterDeclaration; +exports.isTypeParameterInstantiation = isTypeParameterInstantiation; +exports.isTypeScript = isTypeScript; +exports.isTypeofTypeAnnotation = isTypeofTypeAnnotation; +exports.isUnaryExpression = isUnaryExpression; +exports.isUnaryLike = isUnaryLike; +exports.isUnionTypeAnnotation = isUnionTypeAnnotation; +exports.isUpdateExpression = isUpdateExpression; +exports.isUserWhitespacable = isUserWhitespacable; +exports.isV8IntrinsicIdentifier = isV8IntrinsicIdentifier; +exports.isVariableDeclaration = isVariableDeclaration; +exports.isVariableDeclarator = isVariableDeclarator; +exports.isVariance = isVariance; +exports.isVoidTypeAnnotation = isVoidTypeAnnotation; +exports.isWhile = isWhile; +exports.isWhileStatement = isWhileStatement; +exports.isWithStatement = isWithStatement; +exports.isYieldExpression = isYieldExpression; +var _shallowEqual = __webpack_require__(6051); + +function isArrayExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ArrayExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isAssignmentExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "AssignmentExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isBinaryExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "BinaryExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isInterpreterDirective(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "InterpreterDirective") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isDirective(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "Directive") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isDirectiveLiteral(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "DirectiveLiteral") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isBlockStatement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "BlockStatement") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isBreakStatement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "BreakStatement") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isCallExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "CallExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isCatchClause(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "CatchClause") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isConditionalExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ConditionalExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isContinueStatement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ContinueStatement") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isDebuggerStatement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "DebuggerStatement") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isDoWhileStatement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "DoWhileStatement") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isEmptyStatement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "EmptyStatement") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isExpressionStatement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ExpressionStatement") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isFile(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "File") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isForInStatement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ForInStatement") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isForStatement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ForStatement") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isFunctionDeclaration(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "FunctionDeclaration") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isFunctionExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "FunctionExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isIdentifier(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "Identifier") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isIfStatement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "IfStatement") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isLabeledStatement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "LabeledStatement") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isStringLiteral(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "StringLiteral") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isNumericLiteral(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "NumericLiteral") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isNullLiteral(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "NullLiteral") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isBooleanLiteral(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "BooleanLiteral") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isRegExpLiteral(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "RegExpLiteral") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isLogicalExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "LogicalExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isMemberExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "MemberExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isNewExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "NewExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isProgram(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "Program") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isObjectExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ObjectExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isObjectMethod(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ObjectMethod") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isObjectProperty(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ObjectProperty") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isRestElement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "RestElement") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isReturnStatement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ReturnStatement") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isSequenceExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "SequenceExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isParenthesizedExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ParenthesizedExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isSwitchCase(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "SwitchCase") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isSwitchStatement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "SwitchStatement") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isThisExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ThisExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isThrowStatement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ThrowStatement") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTryStatement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TryStatement") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isUnaryExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "UnaryExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isUpdateExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "UpdateExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isVariableDeclaration(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "VariableDeclaration") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isVariableDeclarator(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "VariableDeclarator") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isWhileStatement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "WhileStatement") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isWithStatement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "WithStatement") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isAssignmentPattern(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "AssignmentPattern") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isArrayPattern(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ArrayPattern") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isArrowFunctionExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ArrowFunctionExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isClassBody(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ClassBody") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isClassExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ClassExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isClassDeclaration(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ClassDeclaration") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isExportAllDeclaration(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ExportAllDeclaration") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isExportDefaultDeclaration(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ExportDefaultDeclaration") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isExportNamedDeclaration(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ExportNamedDeclaration") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isExportSpecifier(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ExportSpecifier") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isForOfStatement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ForOfStatement") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isImportDeclaration(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ImportDeclaration") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isImportDefaultSpecifier(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ImportDefaultSpecifier") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isImportNamespaceSpecifier(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ImportNamespaceSpecifier") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isImportSpecifier(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ImportSpecifier") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isMetaProperty(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "MetaProperty") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isClassMethod(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ClassMethod") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isObjectPattern(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ObjectPattern") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isSpreadElement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "SpreadElement") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isSuper(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "Super") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTaggedTemplateExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TaggedTemplateExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTemplateElement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TemplateElement") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTemplateLiteral(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TemplateLiteral") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isYieldExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "YieldExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isAwaitExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "AwaitExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isImport(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "Import") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isBigIntLiteral(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "BigIntLiteral") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isExportNamespaceSpecifier(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ExportNamespaceSpecifier") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isOptionalMemberExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "OptionalMemberExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isOptionalCallExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "OptionalCallExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isClassProperty(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ClassProperty") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isClassAccessorProperty(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ClassAccessorProperty") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isClassPrivateProperty(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ClassPrivateProperty") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isClassPrivateMethod(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ClassPrivateMethod") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isPrivateName(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "PrivateName") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isStaticBlock(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "StaticBlock") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isAnyTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "AnyTypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isArrayTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ArrayTypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isBooleanTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "BooleanTypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isBooleanLiteralTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "BooleanLiteralTypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isNullLiteralTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "NullLiteralTypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isClassImplements(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ClassImplements") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isDeclareClass(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "DeclareClass") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isDeclareFunction(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "DeclareFunction") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isDeclareInterface(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "DeclareInterface") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isDeclareModule(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "DeclareModule") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isDeclareModuleExports(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "DeclareModuleExports") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isDeclareTypeAlias(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "DeclareTypeAlias") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isDeclareOpaqueType(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "DeclareOpaqueType") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isDeclareVariable(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "DeclareVariable") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isDeclareExportDeclaration(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "DeclareExportDeclaration") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isDeclareExportAllDeclaration(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "DeclareExportAllDeclaration") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isDeclaredPredicate(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "DeclaredPredicate") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isExistsTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ExistsTypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isFunctionTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "FunctionTypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isFunctionTypeParam(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "FunctionTypeParam") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isGenericTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "GenericTypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isInferredPredicate(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "InferredPredicate") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isInterfaceExtends(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "InterfaceExtends") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isInterfaceDeclaration(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "InterfaceDeclaration") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isInterfaceTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "InterfaceTypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isIntersectionTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "IntersectionTypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isMixedTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "MixedTypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isEmptyTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "EmptyTypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isNullableTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "NullableTypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isNumberLiteralTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "NumberLiteralTypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isNumberTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "NumberTypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isObjectTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ObjectTypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isObjectTypeInternalSlot(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ObjectTypeInternalSlot") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isObjectTypeCallProperty(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ObjectTypeCallProperty") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isObjectTypeIndexer(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ObjectTypeIndexer") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isObjectTypeProperty(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ObjectTypeProperty") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isObjectTypeSpreadProperty(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ObjectTypeSpreadProperty") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isOpaqueType(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "OpaqueType") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isQualifiedTypeIdentifier(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "QualifiedTypeIdentifier") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isStringLiteralTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "StringLiteralTypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isStringTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "StringTypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isSymbolTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "SymbolTypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isThisTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ThisTypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTupleTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TupleTypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTypeofTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TypeofTypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTypeAlias(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TypeAlias") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTypeCastExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TypeCastExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTypeParameter(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TypeParameter") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTypeParameterDeclaration(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TypeParameterDeclaration") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTypeParameterInstantiation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TypeParameterInstantiation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isUnionTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "UnionTypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isVariance(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "Variance") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isVoidTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "VoidTypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isEnumDeclaration(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "EnumDeclaration") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isEnumBooleanBody(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "EnumBooleanBody") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isEnumNumberBody(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "EnumNumberBody") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isEnumStringBody(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "EnumStringBody") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isEnumSymbolBody(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "EnumSymbolBody") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isEnumBooleanMember(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "EnumBooleanMember") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isEnumNumberMember(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "EnumNumberMember") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isEnumStringMember(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "EnumStringMember") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isEnumDefaultedMember(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "EnumDefaultedMember") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isIndexedAccessType(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "IndexedAccessType") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isOptionalIndexedAccessType(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "OptionalIndexedAccessType") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isJSXAttribute(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "JSXAttribute") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isJSXClosingElement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "JSXClosingElement") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isJSXElement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "JSXElement") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isJSXEmptyExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "JSXEmptyExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isJSXExpressionContainer(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "JSXExpressionContainer") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isJSXSpreadChild(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "JSXSpreadChild") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isJSXIdentifier(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "JSXIdentifier") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isJSXMemberExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "JSXMemberExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isJSXNamespacedName(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "JSXNamespacedName") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isJSXOpeningElement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "JSXOpeningElement") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isJSXSpreadAttribute(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "JSXSpreadAttribute") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isJSXText(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "JSXText") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isJSXFragment(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "JSXFragment") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isJSXOpeningFragment(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "JSXOpeningFragment") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isJSXClosingFragment(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "JSXClosingFragment") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isNoop(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "Noop") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isPlaceholder(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "Placeholder") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isV8IntrinsicIdentifier(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "V8IntrinsicIdentifier") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isArgumentPlaceholder(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ArgumentPlaceholder") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isBindExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "BindExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isImportAttribute(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ImportAttribute") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isDecorator(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "Decorator") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isDoExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "DoExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isExportDefaultSpecifier(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ExportDefaultSpecifier") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isRecordExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "RecordExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTupleExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TupleExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isDecimalLiteral(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "DecimalLiteral") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isModuleExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "ModuleExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTopicReference(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TopicReference") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isPipelineTopicExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "PipelineTopicExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isPipelineBareFunction(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "PipelineBareFunction") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isPipelinePrimaryTopicReference(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "PipelinePrimaryTopicReference") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSParameterProperty(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSParameterProperty") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSDeclareFunction(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSDeclareFunction") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSDeclareMethod(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSDeclareMethod") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSQualifiedName(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSQualifiedName") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSCallSignatureDeclaration(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSCallSignatureDeclaration") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSConstructSignatureDeclaration(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSConstructSignatureDeclaration") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSPropertySignature(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSPropertySignature") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSMethodSignature(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSMethodSignature") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSIndexSignature(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSIndexSignature") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSAnyKeyword(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSAnyKeyword") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSBooleanKeyword(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSBooleanKeyword") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSBigIntKeyword(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSBigIntKeyword") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSIntrinsicKeyword(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSIntrinsicKeyword") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSNeverKeyword(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSNeverKeyword") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSNullKeyword(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSNullKeyword") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSNumberKeyword(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSNumberKeyword") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSObjectKeyword(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSObjectKeyword") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSStringKeyword(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSStringKeyword") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSSymbolKeyword(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSSymbolKeyword") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSUndefinedKeyword(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSUndefinedKeyword") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSUnknownKeyword(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSUnknownKeyword") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSVoidKeyword(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSVoidKeyword") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSThisType(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSThisType") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSFunctionType(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSFunctionType") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSConstructorType(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSConstructorType") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSTypeReference(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSTypeReference") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSTypePredicate(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSTypePredicate") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSTypeQuery(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSTypeQuery") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSTypeLiteral(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSTypeLiteral") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSArrayType(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSArrayType") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSTupleType(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSTupleType") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSOptionalType(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSOptionalType") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSRestType(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSRestType") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSNamedTupleMember(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSNamedTupleMember") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSUnionType(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSUnionType") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSIntersectionType(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSIntersectionType") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSConditionalType(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSConditionalType") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSInferType(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSInferType") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSParenthesizedType(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSParenthesizedType") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSTypeOperator(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSTypeOperator") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSIndexedAccessType(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSIndexedAccessType") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSMappedType(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSMappedType") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSLiteralType(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSLiteralType") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSExpressionWithTypeArguments(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSExpressionWithTypeArguments") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSInterfaceDeclaration(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSInterfaceDeclaration") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSInterfaceBody(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSInterfaceBody") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSTypeAliasDeclaration(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSTypeAliasDeclaration") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSInstantiationExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSInstantiationExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSAsExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSAsExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSSatisfiesExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSSatisfiesExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSTypeAssertion(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSTypeAssertion") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSEnumDeclaration(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSEnumDeclaration") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSEnumMember(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSEnumMember") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSModuleDeclaration(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSModuleDeclaration") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSModuleBlock(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSModuleBlock") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSImportType(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSImportType") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSImportEqualsDeclaration(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSImportEqualsDeclaration") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSExternalModuleReference(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSExternalModuleReference") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSNonNullExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSNonNullExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSExportAssignment(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSExportAssignment") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSNamespaceExportDeclaration(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSNamespaceExportDeclaration") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSTypeAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSTypeAnnotation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSTypeParameterInstantiation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSTypeParameterInstantiation") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSTypeParameterDeclaration(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSTypeParameterDeclaration") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSTypeParameter(node, opts) { + if (!node) return false; + const nodeType = node.type; + if (nodeType === "TSTypeParameter") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isStandardized(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("ArrayExpression" === nodeType || "AssignmentExpression" === nodeType || "BinaryExpression" === nodeType || "InterpreterDirective" === nodeType || "Directive" === nodeType || "DirectiveLiteral" === nodeType || "BlockStatement" === nodeType || "BreakStatement" === nodeType || "CallExpression" === nodeType || "CatchClause" === nodeType || "ConditionalExpression" === nodeType || "ContinueStatement" === nodeType || "DebuggerStatement" === nodeType || "DoWhileStatement" === nodeType || "EmptyStatement" === nodeType || "ExpressionStatement" === nodeType || "File" === nodeType || "ForInStatement" === nodeType || "ForStatement" === nodeType || "FunctionDeclaration" === nodeType || "FunctionExpression" === nodeType || "Identifier" === nodeType || "IfStatement" === nodeType || "LabeledStatement" === nodeType || "StringLiteral" === nodeType || "NumericLiteral" === nodeType || "NullLiteral" === nodeType || "BooleanLiteral" === nodeType || "RegExpLiteral" === nodeType || "LogicalExpression" === nodeType || "MemberExpression" === nodeType || "NewExpression" === nodeType || "Program" === nodeType || "ObjectExpression" === nodeType || "ObjectMethod" === nodeType || "ObjectProperty" === nodeType || "RestElement" === nodeType || "ReturnStatement" === nodeType || "SequenceExpression" === nodeType || "ParenthesizedExpression" === nodeType || "SwitchCase" === nodeType || "SwitchStatement" === nodeType || "ThisExpression" === nodeType || "ThrowStatement" === nodeType || "TryStatement" === nodeType || "UnaryExpression" === nodeType || "UpdateExpression" === nodeType || "VariableDeclaration" === nodeType || "VariableDeclarator" === nodeType || "WhileStatement" === nodeType || "WithStatement" === nodeType || "AssignmentPattern" === nodeType || "ArrayPattern" === nodeType || "ArrowFunctionExpression" === nodeType || "ClassBody" === nodeType || "ClassExpression" === nodeType || "ClassDeclaration" === nodeType || "ExportAllDeclaration" === nodeType || "ExportDefaultDeclaration" === nodeType || "ExportNamedDeclaration" === nodeType || "ExportSpecifier" === nodeType || "ForOfStatement" === nodeType || "ImportDeclaration" === nodeType || "ImportDefaultSpecifier" === nodeType || "ImportNamespaceSpecifier" === nodeType || "ImportSpecifier" === nodeType || "MetaProperty" === nodeType || "ClassMethod" === nodeType || "ObjectPattern" === nodeType || "SpreadElement" === nodeType || "Super" === nodeType || "TaggedTemplateExpression" === nodeType || "TemplateElement" === nodeType || "TemplateLiteral" === nodeType || "YieldExpression" === nodeType || "AwaitExpression" === nodeType || "Import" === nodeType || "BigIntLiteral" === nodeType || "ExportNamespaceSpecifier" === nodeType || "OptionalMemberExpression" === nodeType || "OptionalCallExpression" === nodeType || "ClassProperty" === nodeType || "ClassAccessorProperty" === nodeType || "ClassPrivateProperty" === nodeType || "ClassPrivateMethod" === nodeType || "PrivateName" === nodeType || "StaticBlock" === nodeType || nodeType === "Placeholder" && ("Identifier" === node.expectedNode || "StringLiteral" === node.expectedNode || "BlockStatement" === node.expectedNode || "ClassBody" === node.expectedNode)) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("ArrayExpression" === nodeType || "AssignmentExpression" === nodeType || "BinaryExpression" === nodeType || "CallExpression" === nodeType || "ConditionalExpression" === nodeType || "FunctionExpression" === nodeType || "Identifier" === nodeType || "StringLiteral" === nodeType || "NumericLiteral" === nodeType || "NullLiteral" === nodeType || "BooleanLiteral" === nodeType || "RegExpLiteral" === nodeType || "LogicalExpression" === nodeType || "MemberExpression" === nodeType || "NewExpression" === nodeType || "ObjectExpression" === nodeType || "SequenceExpression" === nodeType || "ParenthesizedExpression" === nodeType || "ThisExpression" === nodeType || "UnaryExpression" === nodeType || "UpdateExpression" === nodeType || "ArrowFunctionExpression" === nodeType || "ClassExpression" === nodeType || "MetaProperty" === nodeType || "Super" === nodeType || "TaggedTemplateExpression" === nodeType || "TemplateLiteral" === nodeType || "YieldExpression" === nodeType || "AwaitExpression" === nodeType || "Import" === nodeType || "BigIntLiteral" === nodeType || "OptionalMemberExpression" === nodeType || "OptionalCallExpression" === nodeType || "TypeCastExpression" === nodeType || "JSXElement" === nodeType || "JSXFragment" === nodeType || "BindExpression" === nodeType || "DoExpression" === nodeType || "RecordExpression" === nodeType || "TupleExpression" === nodeType || "DecimalLiteral" === nodeType || "ModuleExpression" === nodeType || "TopicReference" === nodeType || "PipelineTopicExpression" === nodeType || "PipelineBareFunction" === nodeType || "PipelinePrimaryTopicReference" === nodeType || "TSInstantiationExpression" === nodeType || "TSAsExpression" === nodeType || "TSSatisfiesExpression" === nodeType || "TSTypeAssertion" === nodeType || "TSNonNullExpression" === nodeType || nodeType === "Placeholder" && ("Expression" === node.expectedNode || "Identifier" === node.expectedNode || "StringLiteral" === node.expectedNode)) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isBinary(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("BinaryExpression" === nodeType || "LogicalExpression" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isScopable(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("BlockStatement" === nodeType || "CatchClause" === nodeType || "DoWhileStatement" === nodeType || "ForInStatement" === nodeType || "ForStatement" === nodeType || "FunctionDeclaration" === nodeType || "FunctionExpression" === nodeType || "Program" === nodeType || "ObjectMethod" === nodeType || "SwitchStatement" === nodeType || "WhileStatement" === nodeType || "ArrowFunctionExpression" === nodeType || "ClassExpression" === nodeType || "ClassDeclaration" === nodeType || "ForOfStatement" === nodeType || "ClassMethod" === nodeType || "ClassPrivateMethod" === nodeType || "StaticBlock" === nodeType || "TSModuleBlock" === nodeType || nodeType === "Placeholder" && "BlockStatement" === node.expectedNode) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isBlockParent(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("BlockStatement" === nodeType || "CatchClause" === nodeType || "DoWhileStatement" === nodeType || "ForInStatement" === nodeType || "ForStatement" === nodeType || "FunctionDeclaration" === nodeType || "FunctionExpression" === nodeType || "Program" === nodeType || "ObjectMethod" === nodeType || "SwitchStatement" === nodeType || "WhileStatement" === nodeType || "ArrowFunctionExpression" === nodeType || "ForOfStatement" === nodeType || "ClassMethod" === nodeType || "ClassPrivateMethod" === nodeType || "StaticBlock" === nodeType || "TSModuleBlock" === nodeType || nodeType === "Placeholder" && "BlockStatement" === node.expectedNode) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isBlock(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("BlockStatement" === nodeType || "Program" === nodeType || "TSModuleBlock" === nodeType || nodeType === "Placeholder" && "BlockStatement" === node.expectedNode) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isStatement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("BlockStatement" === nodeType || "BreakStatement" === nodeType || "ContinueStatement" === nodeType || "DebuggerStatement" === nodeType || "DoWhileStatement" === nodeType || "EmptyStatement" === nodeType || "ExpressionStatement" === nodeType || "ForInStatement" === nodeType || "ForStatement" === nodeType || "FunctionDeclaration" === nodeType || "IfStatement" === nodeType || "LabeledStatement" === nodeType || "ReturnStatement" === nodeType || "SwitchStatement" === nodeType || "ThrowStatement" === nodeType || "TryStatement" === nodeType || "VariableDeclaration" === nodeType || "WhileStatement" === nodeType || "WithStatement" === nodeType || "ClassDeclaration" === nodeType || "ExportAllDeclaration" === nodeType || "ExportDefaultDeclaration" === nodeType || "ExportNamedDeclaration" === nodeType || "ForOfStatement" === nodeType || "ImportDeclaration" === nodeType || "DeclareClass" === nodeType || "DeclareFunction" === nodeType || "DeclareInterface" === nodeType || "DeclareModule" === nodeType || "DeclareModuleExports" === nodeType || "DeclareTypeAlias" === nodeType || "DeclareOpaqueType" === nodeType || "DeclareVariable" === nodeType || "DeclareExportDeclaration" === nodeType || "DeclareExportAllDeclaration" === nodeType || "InterfaceDeclaration" === nodeType || "OpaqueType" === nodeType || "TypeAlias" === nodeType || "EnumDeclaration" === nodeType || "TSDeclareFunction" === nodeType || "TSInterfaceDeclaration" === nodeType || "TSTypeAliasDeclaration" === nodeType || "TSEnumDeclaration" === nodeType || "TSModuleDeclaration" === nodeType || "TSImportEqualsDeclaration" === nodeType || "TSExportAssignment" === nodeType || "TSNamespaceExportDeclaration" === nodeType || nodeType === "Placeholder" && ("Statement" === node.expectedNode || "Declaration" === node.expectedNode || "BlockStatement" === node.expectedNode)) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTerminatorless(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("BreakStatement" === nodeType || "ContinueStatement" === nodeType || "ReturnStatement" === nodeType || "ThrowStatement" === nodeType || "YieldExpression" === nodeType || "AwaitExpression" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isCompletionStatement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("BreakStatement" === nodeType || "ContinueStatement" === nodeType || "ReturnStatement" === nodeType || "ThrowStatement" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isConditional(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("ConditionalExpression" === nodeType || "IfStatement" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isLoop(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("DoWhileStatement" === nodeType || "ForInStatement" === nodeType || "ForStatement" === nodeType || "WhileStatement" === nodeType || "ForOfStatement" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isWhile(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("DoWhileStatement" === nodeType || "WhileStatement" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isExpressionWrapper(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("ExpressionStatement" === nodeType || "ParenthesizedExpression" === nodeType || "TypeCastExpression" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isFor(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("ForInStatement" === nodeType || "ForStatement" === nodeType || "ForOfStatement" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isForXStatement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("ForInStatement" === nodeType || "ForOfStatement" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isFunction(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("FunctionDeclaration" === nodeType || "FunctionExpression" === nodeType || "ObjectMethod" === nodeType || "ArrowFunctionExpression" === nodeType || "ClassMethod" === nodeType || "ClassPrivateMethod" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isFunctionParent(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("FunctionDeclaration" === nodeType || "FunctionExpression" === nodeType || "ObjectMethod" === nodeType || "ArrowFunctionExpression" === nodeType || "ClassMethod" === nodeType || "ClassPrivateMethod" === nodeType || "StaticBlock" === nodeType || "TSModuleBlock" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isPureish(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("FunctionDeclaration" === nodeType || "FunctionExpression" === nodeType || "StringLiteral" === nodeType || "NumericLiteral" === nodeType || "NullLiteral" === nodeType || "BooleanLiteral" === nodeType || "RegExpLiteral" === nodeType || "ArrowFunctionExpression" === nodeType || "BigIntLiteral" === nodeType || "DecimalLiteral" === nodeType || nodeType === "Placeholder" && "StringLiteral" === node.expectedNode) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isDeclaration(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("FunctionDeclaration" === nodeType || "VariableDeclaration" === nodeType || "ClassDeclaration" === nodeType || "ExportAllDeclaration" === nodeType || "ExportDefaultDeclaration" === nodeType || "ExportNamedDeclaration" === nodeType || "ImportDeclaration" === nodeType || "DeclareClass" === nodeType || "DeclareFunction" === nodeType || "DeclareInterface" === nodeType || "DeclareModule" === nodeType || "DeclareModuleExports" === nodeType || "DeclareTypeAlias" === nodeType || "DeclareOpaqueType" === nodeType || "DeclareVariable" === nodeType || "DeclareExportDeclaration" === nodeType || "DeclareExportAllDeclaration" === nodeType || "InterfaceDeclaration" === nodeType || "OpaqueType" === nodeType || "TypeAlias" === nodeType || "EnumDeclaration" === nodeType || "TSDeclareFunction" === nodeType || "TSInterfaceDeclaration" === nodeType || "TSTypeAliasDeclaration" === nodeType || "TSEnumDeclaration" === nodeType || "TSModuleDeclaration" === nodeType || nodeType === "Placeholder" && "Declaration" === node.expectedNode) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isPatternLike(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("Identifier" === nodeType || "RestElement" === nodeType || "AssignmentPattern" === nodeType || "ArrayPattern" === nodeType || "ObjectPattern" === nodeType || "TSAsExpression" === nodeType || "TSSatisfiesExpression" === nodeType || "TSTypeAssertion" === nodeType || "TSNonNullExpression" === nodeType || nodeType === "Placeholder" && ("Pattern" === node.expectedNode || "Identifier" === node.expectedNode)) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isLVal(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("Identifier" === nodeType || "MemberExpression" === nodeType || "RestElement" === nodeType || "AssignmentPattern" === nodeType || "ArrayPattern" === nodeType || "ObjectPattern" === nodeType || "TSParameterProperty" === nodeType || "TSAsExpression" === nodeType || "TSSatisfiesExpression" === nodeType || "TSTypeAssertion" === nodeType || "TSNonNullExpression" === nodeType || nodeType === "Placeholder" && ("Pattern" === node.expectedNode || "Identifier" === node.expectedNode)) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSEntityName(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("Identifier" === nodeType || "TSQualifiedName" === nodeType || nodeType === "Placeholder" && "Identifier" === node.expectedNode) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isLiteral(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("StringLiteral" === nodeType || "NumericLiteral" === nodeType || "NullLiteral" === nodeType || "BooleanLiteral" === nodeType || "RegExpLiteral" === nodeType || "TemplateLiteral" === nodeType || "BigIntLiteral" === nodeType || "DecimalLiteral" === nodeType || nodeType === "Placeholder" && "StringLiteral" === node.expectedNode) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isImmutable(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("StringLiteral" === nodeType || "NumericLiteral" === nodeType || "NullLiteral" === nodeType || "BooleanLiteral" === nodeType || "BigIntLiteral" === nodeType || "JSXAttribute" === nodeType || "JSXClosingElement" === nodeType || "JSXElement" === nodeType || "JSXExpressionContainer" === nodeType || "JSXSpreadChild" === nodeType || "JSXOpeningElement" === nodeType || "JSXText" === nodeType || "JSXFragment" === nodeType || "JSXOpeningFragment" === nodeType || "JSXClosingFragment" === nodeType || "DecimalLiteral" === nodeType || nodeType === "Placeholder" && "StringLiteral" === node.expectedNode) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isUserWhitespacable(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("ObjectMethod" === nodeType || "ObjectProperty" === nodeType || "ObjectTypeInternalSlot" === nodeType || "ObjectTypeCallProperty" === nodeType || "ObjectTypeIndexer" === nodeType || "ObjectTypeProperty" === nodeType || "ObjectTypeSpreadProperty" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isMethod(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("ObjectMethod" === nodeType || "ClassMethod" === nodeType || "ClassPrivateMethod" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isObjectMember(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("ObjectMethod" === nodeType || "ObjectProperty" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isProperty(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("ObjectProperty" === nodeType || "ClassProperty" === nodeType || "ClassAccessorProperty" === nodeType || "ClassPrivateProperty" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isUnaryLike(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("UnaryExpression" === nodeType || "SpreadElement" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isPattern(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("AssignmentPattern" === nodeType || "ArrayPattern" === nodeType || "ObjectPattern" === nodeType || nodeType === "Placeholder" && "Pattern" === node.expectedNode) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isClass(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("ClassExpression" === nodeType || "ClassDeclaration" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isModuleDeclaration(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("ExportAllDeclaration" === nodeType || "ExportDefaultDeclaration" === nodeType || "ExportNamedDeclaration" === nodeType || "ImportDeclaration" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isExportDeclaration(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("ExportAllDeclaration" === nodeType || "ExportDefaultDeclaration" === nodeType || "ExportNamedDeclaration" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isModuleSpecifier(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("ExportSpecifier" === nodeType || "ImportDefaultSpecifier" === nodeType || "ImportNamespaceSpecifier" === nodeType || "ImportSpecifier" === nodeType || "ExportNamespaceSpecifier" === nodeType || "ExportDefaultSpecifier" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isAccessor(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("ClassAccessorProperty" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isPrivate(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("ClassPrivateProperty" === nodeType || "ClassPrivateMethod" === nodeType || "PrivateName" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isFlow(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("AnyTypeAnnotation" === nodeType || "ArrayTypeAnnotation" === nodeType || "BooleanTypeAnnotation" === nodeType || "BooleanLiteralTypeAnnotation" === nodeType || "NullLiteralTypeAnnotation" === nodeType || "ClassImplements" === nodeType || "DeclareClass" === nodeType || "DeclareFunction" === nodeType || "DeclareInterface" === nodeType || "DeclareModule" === nodeType || "DeclareModuleExports" === nodeType || "DeclareTypeAlias" === nodeType || "DeclareOpaqueType" === nodeType || "DeclareVariable" === nodeType || "DeclareExportDeclaration" === nodeType || "DeclareExportAllDeclaration" === nodeType || "DeclaredPredicate" === nodeType || "ExistsTypeAnnotation" === nodeType || "FunctionTypeAnnotation" === nodeType || "FunctionTypeParam" === nodeType || "GenericTypeAnnotation" === nodeType || "InferredPredicate" === nodeType || "InterfaceExtends" === nodeType || "InterfaceDeclaration" === nodeType || "InterfaceTypeAnnotation" === nodeType || "IntersectionTypeAnnotation" === nodeType || "MixedTypeAnnotation" === nodeType || "EmptyTypeAnnotation" === nodeType || "NullableTypeAnnotation" === nodeType || "NumberLiteralTypeAnnotation" === nodeType || "NumberTypeAnnotation" === nodeType || "ObjectTypeAnnotation" === nodeType || "ObjectTypeInternalSlot" === nodeType || "ObjectTypeCallProperty" === nodeType || "ObjectTypeIndexer" === nodeType || "ObjectTypeProperty" === nodeType || "ObjectTypeSpreadProperty" === nodeType || "OpaqueType" === nodeType || "QualifiedTypeIdentifier" === nodeType || "StringLiteralTypeAnnotation" === nodeType || "StringTypeAnnotation" === nodeType || "SymbolTypeAnnotation" === nodeType || "ThisTypeAnnotation" === nodeType || "TupleTypeAnnotation" === nodeType || "TypeofTypeAnnotation" === nodeType || "TypeAlias" === nodeType || "TypeAnnotation" === nodeType || "TypeCastExpression" === nodeType || "TypeParameter" === nodeType || "TypeParameterDeclaration" === nodeType || "TypeParameterInstantiation" === nodeType || "UnionTypeAnnotation" === nodeType || "Variance" === nodeType || "VoidTypeAnnotation" === nodeType || "EnumDeclaration" === nodeType || "EnumBooleanBody" === nodeType || "EnumNumberBody" === nodeType || "EnumStringBody" === nodeType || "EnumSymbolBody" === nodeType || "EnumBooleanMember" === nodeType || "EnumNumberMember" === nodeType || "EnumStringMember" === nodeType || "EnumDefaultedMember" === nodeType || "IndexedAccessType" === nodeType || "OptionalIndexedAccessType" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isFlowType(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("AnyTypeAnnotation" === nodeType || "ArrayTypeAnnotation" === nodeType || "BooleanTypeAnnotation" === nodeType || "BooleanLiteralTypeAnnotation" === nodeType || "NullLiteralTypeAnnotation" === nodeType || "ExistsTypeAnnotation" === nodeType || "FunctionTypeAnnotation" === nodeType || "GenericTypeAnnotation" === nodeType || "InterfaceTypeAnnotation" === nodeType || "IntersectionTypeAnnotation" === nodeType || "MixedTypeAnnotation" === nodeType || "EmptyTypeAnnotation" === nodeType || "NullableTypeAnnotation" === nodeType || "NumberLiteralTypeAnnotation" === nodeType || "NumberTypeAnnotation" === nodeType || "ObjectTypeAnnotation" === nodeType || "StringLiteralTypeAnnotation" === nodeType || "StringTypeAnnotation" === nodeType || "SymbolTypeAnnotation" === nodeType || "ThisTypeAnnotation" === nodeType || "TupleTypeAnnotation" === nodeType || "TypeofTypeAnnotation" === nodeType || "UnionTypeAnnotation" === nodeType || "VoidTypeAnnotation" === nodeType || "IndexedAccessType" === nodeType || "OptionalIndexedAccessType" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isFlowBaseAnnotation(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("AnyTypeAnnotation" === nodeType || "BooleanTypeAnnotation" === nodeType || "NullLiteralTypeAnnotation" === nodeType || "MixedTypeAnnotation" === nodeType || "EmptyTypeAnnotation" === nodeType || "NumberTypeAnnotation" === nodeType || "StringTypeAnnotation" === nodeType || "SymbolTypeAnnotation" === nodeType || "ThisTypeAnnotation" === nodeType || "VoidTypeAnnotation" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isFlowDeclaration(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("DeclareClass" === nodeType || "DeclareFunction" === nodeType || "DeclareInterface" === nodeType || "DeclareModule" === nodeType || "DeclareModuleExports" === nodeType || "DeclareTypeAlias" === nodeType || "DeclareOpaqueType" === nodeType || "DeclareVariable" === nodeType || "DeclareExportDeclaration" === nodeType || "DeclareExportAllDeclaration" === nodeType || "InterfaceDeclaration" === nodeType || "OpaqueType" === nodeType || "TypeAlias" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isFlowPredicate(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("DeclaredPredicate" === nodeType || "InferredPredicate" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isEnumBody(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("EnumBooleanBody" === nodeType || "EnumNumberBody" === nodeType || "EnumStringBody" === nodeType || "EnumSymbolBody" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isEnumMember(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("EnumBooleanMember" === nodeType || "EnumNumberMember" === nodeType || "EnumStringMember" === nodeType || "EnumDefaultedMember" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isJSX(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("JSXAttribute" === nodeType || "JSXClosingElement" === nodeType || "JSXElement" === nodeType || "JSXEmptyExpression" === nodeType || "JSXExpressionContainer" === nodeType || "JSXSpreadChild" === nodeType || "JSXIdentifier" === nodeType || "JSXMemberExpression" === nodeType || "JSXNamespacedName" === nodeType || "JSXOpeningElement" === nodeType || "JSXSpreadAttribute" === nodeType || "JSXText" === nodeType || "JSXFragment" === nodeType || "JSXOpeningFragment" === nodeType || "JSXClosingFragment" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isMiscellaneous(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("Noop" === nodeType || "Placeholder" === nodeType || "V8IntrinsicIdentifier" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTypeScript(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("TSParameterProperty" === nodeType || "TSDeclareFunction" === nodeType || "TSDeclareMethod" === nodeType || "TSQualifiedName" === nodeType || "TSCallSignatureDeclaration" === nodeType || "TSConstructSignatureDeclaration" === nodeType || "TSPropertySignature" === nodeType || "TSMethodSignature" === nodeType || "TSIndexSignature" === nodeType || "TSAnyKeyword" === nodeType || "TSBooleanKeyword" === nodeType || "TSBigIntKeyword" === nodeType || "TSIntrinsicKeyword" === nodeType || "TSNeverKeyword" === nodeType || "TSNullKeyword" === nodeType || "TSNumberKeyword" === nodeType || "TSObjectKeyword" === nodeType || "TSStringKeyword" === nodeType || "TSSymbolKeyword" === nodeType || "TSUndefinedKeyword" === nodeType || "TSUnknownKeyword" === nodeType || "TSVoidKeyword" === nodeType || "TSThisType" === nodeType || "TSFunctionType" === nodeType || "TSConstructorType" === nodeType || "TSTypeReference" === nodeType || "TSTypePredicate" === nodeType || "TSTypeQuery" === nodeType || "TSTypeLiteral" === nodeType || "TSArrayType" === nodeType || "TSTupleType" === nodeType || "TSOptionalType" === nodeType || "TSRestType" === nodeType || "TSNamedTupleMember" === nodeType || "TSUnionType" === nodeType || "TSIntersectionType" === nodeType || "TSConditionalType" === nodeType || "TSInferType" === nodeType || "TSParenthesizedType" === nodeType || "TSTypeOperator" === nodeType || "TSIndexedAccessType" === nodeType || "TSMappedType" === nodeType || "TSLiteralType" === nodeType || "TSExpressionWithTypeArguments" === nodeType || "TSInterfaceDeclaration" === nodeType || "TSInterfaceBody" === nodeType || "TSTypeAliasDeclaration" === nodeType || "TSInstantiationExpression" === nodeType || "TSAsExpression" === nodeType || "TSSatisfiesExpression" === nodeType || "TSTypeAssertion" === nodeType || "TSEnumDeclaration" === nodeType || "TSEnumMember" === nodeType || "TSModuleDeclaration" === nodeType || "TSModuleBlock" === nodeType || "TSImportType" === nodeType || "TSImportEqualsDeclaration" === nodeType || "TSExternalModuleReference" === nodeType || "TSNonNullExpression" === nodeType || "TSExportAssignment" === nodeType || "TSNamespaceExportDeclaration" === nodeType || "TSTypeAnnotation" === nodeType || "TSTypeParameterInstantiation" === nodeType || "TSTypeParameterDeclaration" === nodeType || "TSTypeParameter" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSTypeElement(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("TSCallSignatureDeclaration" === nodeType || "TSConstructSignatureDeclaration" === nodeType || "TSPropertySignature" === nodeType || "TSMethodSignature" === nodeType || "TSIndexSignature" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSType(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("TSAnyKeyword" === nodeType || "TSBooleanKeyword" === nodeType || "TSBigIntKeyword" === nodeType || "TSIntrinsicKeyword" === nodeType || "TSNeverKeyword" === nodeType || "TSNullKeyword" === nodeType || "TSNumberKeyword" === nodeType || "TSObjectKeyword" === nodeType || "TSStringKeyword" === nodeType || "TSSymbolKeyword" === nodeType || "TSUndefinedKeyword" === nodeType || "TSUnknownKeyword" === nodeType || "TSVoidKeyword" === nodeType || "TSThisType" === nodeType || "TSFunctionType" === nodeType || "TSConstructorType" === nodeType || "TSTypeReference" === nodeType || "TSTypePredicate" === nodeType || "TSTypeQuery" === nodeType || "TSTypeLiteral" === nodeType || "TSArrayType" === nodeType || "TSTupleType" === nodeType || "TSOptionalType" === nodeType || "TSRestType" === nodeType || "TSUnionType" === nodeType || "TSIntersectionType" === nodeType || "TSConditionalType" === nodeType || "TSInferType" === nodeType || "TSParenthesizedType" === nodeType || "TSTypeOperator" === nodeType || "TSIndexedAccessType" === nodeType || "TSMappedType" === nodeType || "TSLiteralType" === nodeType || "TSExpressionWithTypeArguments" === nodeType || "TSImportType" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isTSBaseType(node, opts) { + if (!node) return false; + const nodeType = node.type; + if ("TSAnyKeyword" === nodeType || "TSBooleanKeyword" === nodeType || "TSBigIntKeyword" === nodeType || "TSIntrinsicKeyword" === nodeType || "TSNeverKeyword" === nodeType || "TSNullKeyword" === nodeType || "TSNumberKeyword" === nodeType || "TSObjectKeyword" === nodeType || "TSStringKeyword" === nodeType || "TSSymbolKeyword" === nodeType || "TSUndefinedKeyword" === nodeType || "TSUnknownKeyword" === nodeType || "TSVoidKeyword" === nodeType || "TSThisType" === nodeType || "TSLiteralType" === nodeType) { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isNumberLiteral(node, opts) { + console.trace("The node type NumberLiteral has been renamed to NumericLiteral"); + if (!node) return false; + const nodeType = node.type; + if (nodeType === "NumberLiteral") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isRegexLiteral(node, opts) { + console.trace("The node type RegexLiteral has been renamed to RegExpLiteral"); + if (!node) return false; + const nodeType = node.type; + if (nodeType === "RegexLiteral") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isRestProperty(node, opts) { + console.trace("The node type RestProperty has been renamed to RestElement"); + if (!node) return false; + const nodeType = node.type; + if (nodeType === "RestProperty") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} +function isSpreadProperty(node, opts) { + console.trace("The node type SpreadProperty has been renamed to SpreadElement"); + if (!node) return false; + const nodeType = node.type; + if (nodeType === "SpreadProperty") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + return false; +} + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 4477: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = is; +var _shallowEqual = __webpack_require__(6051); +var _isType = __webpack_require__(5434); +var _isPlaceholderType = __webpack_require__(9092); +var _definitions = __webpack_require__(2886); +function is(type, node, opts) { + if (!node) return false; + const matches = (0, _isType.default)(node.type, type); + if (!matches) { + if (!opts && node.type === "Placeholder" && type in _definitions.FLIPPED_ALIAS_KEYS) { + return (0, _isPlaceholderType.default)(node.expectedNode, type); + } + return false; + } + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } +} + +//# sourceMappingURL=is.js.map + + +/***/ }), + +/***/ 5025: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = isBinding; +var _getBindingIdentifiers = __webpack_require__(9565); +function isBinding(node, parent, grandparent) { + if (grandparent && node.type === "Identifier" && parent.type === "ObjectProperty" && grandparent.type === "ObjectExpression") { + return false; + } + const keys = + _getBindingIdentifiers.default.keys[parent.type]; + if (keys) { + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + const val = + parent[key]; + if (Array.isArray(val)) { + if (val.indexOf(node) >= 0) return true; + } else { + if (val === node) return true; + } + } + } + return false; +} + +//# sourceMappingURL=isBinding.js.map + + +/***/ }), + +/***/ 5065: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = isBlockScoped; +var _generated = __webpack_require__(8202); +var _isLet = __webpack_require__(1295); +function isBlockScoped(node) { + return (0, _generated.isFunctionDeclaration)(node) || (0, _generated.isClassDeclaration)(node) || (0, _isLet.default)(node); +} + +//# sourceMappingURL=isBlockScoped.js.map + + +/***/ }), + +/***/ 5062: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = isImmutable; +var _isType = __webpack_require__(5434); +var _generated = __webpack_require__(8202); +function isImmutable(node) { + if ((0, _isType.default)(node.type, "Immutable")) return true; + if ((0, _generated.isIdentifier)(node)) { + if (node.name === "undefined") { + return true; + } else { + return false; + } + } + return false; +} + +//# sourceMappingURL=isImmutable.js.map + + +/***/ }), + +/***/ 1295: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = isLet; +var _generated = __webpack_require__(8202); +var _constants = __webpack_require__(8503); +function isLet(node) { + return (0, _generated.isVariableDeclaration)(node) && (node.kind !== "var" || + node[_constants.BLOCK_SCOPED_SYMBOL]); +} + +//# sourceMappingURL=isLet.js.map + + +/***/ }), + +/***/ 1832: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = isNode; +var _definitions = __webpack_require__(2886); +function isNode(node) { + return !!(node && _definitions.VISITOR_KEYS[node.type]); +} + +//# sourceMappingURL=isNode.js.map + + +/***/ }), + +/***/ 8847: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = isNodesEquivalent; +var _definitions = __webpack_require__(2886); +function isNodesEquivalent(a, b) { + if (typeof a !== "object" || typeof b !== "object" || a == null || b == null) { + return a === b; + } + if (a.type !== b.type) { + return false; + } + const fields = Object.keys(_definitions.NODE_FIELDS[a.type] || a.type); + const visitorKeys = _definitions.VISITOR_KEYS[a.type]; + for (const field of fields) { + const val_a = + a[field]; + const val_b = b[field]; + if (typeof val_a !== typeof val_b) { + return false; + } + if (val_a == null && val_b == null) { + continue; + } else if (val_a == null || val_b == null) { + return false; + } + if (Array.isArray(val_a)) { + if (!Array.isArray(val_b)) { + return false; + } + if (val_a.length !== val_b.length) { + return false; + } + for (let i = 0; i < val_a.length; i++) { + if (!isNodesEquivalent(val_a[i], val_b[i])) { + return false; + } + } + continue; + } + if (typeof val_a === "object" && !(visitorKeys != null && visitorKeys.includes(field))) { + for (const key of Object.keys(val_a)) { + if (val_a[key] !== val_b[key]) { + return false; + } + } + continue; + } + if (!isNodesEquivalent(val_a, val_b)) { + return false; + } + } + return true; +} + +//# sourceMappingURL=isNodesEquivalent.js.map + + +/***/ }), + +/***/ 9092: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = isPlaceholderType; +var _definitions = __webpack_require__(2886); +function isPlaceholderType(placeholderType, targetType) { + if (placeholderType === targetType) return true; + const aliases = _definitions.PLACEHOLDERS_ALIAS[placeholderType]; + if (aliases) { + for (const alias of aliases) { + if (targetType === alias) return true; + } + } + return false; +} + +//# sourceMappingURL=isPlaceholderType.js.map + + +/***/ }), + +/***/ 723: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = isReferenced; +function isReferenced(node, parent, grandparent) { + switch (parent.type) { + case "MemberExpression": + case "OptionalMemberExpression": + if (parent.property === node) { + return !!parent.computed; + } + return parent.object === node; + case "JSXMemberExpression": + return parent.object === node; + case "VariableDeclarator": + return parent.init === node; + + case "ArrowFunctionExpression": + return parent.body === node; + + case "PrivateName": + return false; + + case "ClassMethod": + case "ClassPrivateMethod": + case "ObjectMethod": + if (parent.key === node) { + return !!parent.computed; + } + return false; + + case "ObjectProperty": + if (parent.key === node) { + return !!parent.computed; + } + return !grandparent || grandparent.type !== "ObjectPattern"; + case "ClassProperty": + case "ClassAccessorProperty": + if (parent.key === node) { + return !!parent.computed; + } + return true; + case "ClassPrivateProperty": + return parent.key !== node; + + case "ClassDeclaration": + case "ClassExpression": + return parent.superClass === node; + + case "AssignmentExpression": + return parent.right === node; + + case "AssignmentPattern": + return parent.right === node; + + case "LabeledStatement": + return false; + + case "CatchClause": + return false; + + case "RestElement": + return false; + case "BreakStatement": + case "ContinueStatement": + return false; + + case "FunctionDeclaration": + case "FunctionExpression": + return false; + + case "ExportNamespaceSpecifier": + case "ExportDefaultSpecifier": + return false; + + case "ExportSpecifier": + if (grandparent != null && grandparent.source) { + return false; + } + return parent.local === node; + + case "ImportDefaultSpecifier": + case "ImportNamespaceSpecifier": + case "ImportSpecifier": + return false; + + case "ImportAttribute": + return false; + + case "JSXAttribute": + return false; + + case "ObjectPattern": + case "ArrayPattern": + return false; + + case "MetaProperty": + return false; + + case "ObjectTypeProperty": + return parent.key !== node; + + case "TSEnumMember": + return parent.id !== node; + + case "TSPropertySignature": + if (parent.key === node) { + return !!parent.computed; + } + return true; + } + return true; +} + +//# sourceMappingURL=isReferenced.js.map + + +/***/ }), + +/***/ 6126: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = isScope; +var _generated = __webpack_require__(8202); +function isScope(node, parent) { + if ((0, _generated.isBlockStatement)(node) && ((0, _generated.isFunction)(parent) || (0, _generated.isCatchClause)(parent))) { + return false; + } + + if ((0, _generated.isPattern)(node) && ((0, _generated.isFunction)(parent) || (0, _generated.isCatchClause)(parent))) { + return true; + } + return (0, _generated.isScopable)(node); +} + +//# sourceMappingURL=isScope.js.map + + +/***/ }), + +/***/ 579: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = isSpecifierDefault; +var _generated = __webpack_require__(8202); +function isSpecifierDefault(specifier) { + return (0, _generated.isImportDefaultSpecifier)(specifier) || + (0, _generated.isIdentifier)(specifier.imported || specifier.exported, { + name: "default" + }); +} + +//# sourceMappingURL=isSpecifierDefault.js.map + + +/***/ }), + +/***/ 5434: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = isType; +var _definitions = __webpack_require__(2886); +function isType(nodeType, targetType) { + if (nodeType === targetType) return true; + + if (_definitions.ALIAS_KEYS[targetType]) return false; + const aliases = _definitions.FLIPPED_ALIAS_KEYS[targetType]; + if (aliases) { + if (aliases[0] === nodeType) return true; + for (const alias of aliases) { + if (nodeType === alias) return true; + } + } + return false; +} + +//# sourceMappingURL=isType.js.map + + +/***/ }), + +/***/ 581: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = isValidES3Identifier; +var _isValidIdentifier = __webpack_require__(6111); +const RESERVED_WORDS_ES3_ONLY = new Set(["abstract", "boolean", "byte", "char", "double", "enum", "final", "float", "goto", "implements", "int", "interface", "long", "native", "package", "private", "protected", "public", "short", "static", "synchronized", "throws", "transient", "volatile"]); + +function isValidES3Identifier(name) { + return (0, _isValidIdentifier.default)(name) && !RESERVED_WORDS_ES3_ONLY.has(name); +} + +//# sourceMappingURL=isValidES3Identifier.js.map + + +/***/ }), + +/***/ 6111: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = isValidIdentifier; +var _helperValidatorIdentifier = __webpack_require__(8740); +function isValidIdentifier(name, reserved = true) { + if (typeof name !== "string") return false; + if (reserved) { + if ((0, _helperValidatorIdentifier.isKeyword)(name) || (0, _helperValidatorIdentifier.isStrictReservedWord)(name, true)) { + return false; + } + } + return (0, _helperValidatorIdentifier.isIdentifierName)(name); +} + +//# sourceMappingURL=isValidIdentifier.js.map + + +/***/ }), + +/***/ 4360: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = isVar; +var _generated = __webpack_require__(8202); +var _constants = __webpack_require__(8503); +function isVar(node) { + return (0, _generated.isVariableDeclaration)(node, { + kind: "var" + }) && ! + node[_constants.BLOCK_SCOPED_SYMBOL]; +} + +//# sourceMappingURL=isVar.js.map + + +/***/ }), + +/***/ 6192: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = matchesPattern; +var _generated = __webpack_require__(8202); +function matchesPattern(member, match, allowPartial) { + if (!(0, _generated.isMemberExpression)(member)) return false; + const parts = Array.isArray(match) ? match : match.split("."); + const nodes = []; + let node; + for (node = member; (0, _generated.isMemberExpression)(node); node = node.object) { + nodes.push(node.property); + } + nodes.push(node); + if (nodes.length < parts.length) return false; + if (!allowPartial && nodes.length > parts.length) return false; + for (let i = 0, j = nodes.length - 1; i < parts.length; i++, j--) { + const node = nodes[j]; + let value; + if ((0, _generated.isIdentifier)(node)) { + value = node.name; + } else if ((0, _generated.isStringLiteral)(node)) { + value = node.value; + } else if ((0, _generated.isThisExpression)(node)) { + value = "this"; + } else { + return false; + } + if (parts[i] !== value) return false; + } + return true; +} + +//# sourceMappingURL=matchesPattern.js.map + + +/***/ }), + +/***/ 6462: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = isCompatTag; +function isCompatTag(tagName) { + return !!tagName && /^[a-z]/.test(tagName); +} + +//# sourceMappingURL=isCompatTag.js.map + + +/***/ }), + +/***/ 4605: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +var _buildMatchMemberExpression = __webpack_require__(6475); +const isReactComponent = (0, _buildMatchMemberExpression.default)("React.Component"); +var _default = isReactComponent; +exports["default"] = _default; + +//# sourceMappingURL=isReactComponent.js.map + + +/***/ }), + +/***/ 8741: +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = validate; +exports.validateChild = validateChild; +exports.validateField = validateField; +var _definitions = __webpack_require__(2886); +function validate(node, key, val) { + if (!node) return; + const fields = _definitions.NODE_FIELDS[node.type]; + if (!fields) return; + const field = fields[key]; + validateField(node, key, val, field); + validateChild(node, key, val); +} +function validateField(node, key, val, field) { + if (!(field != null && field.validate)) return; + if (field.optional && val == null) return; + field.validate(node, key, val); +} +function validateChild(node, key, val) { + if (val == null) return; + const validate = _definitions.NODE_PARENT_VALIDATIONS[val.type]; + if (!validate) return; + validate(node, key, val); +} + +//# sourceMappingURL=validate.js.map + + +/***/ }), + +/***/ 7463: +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +module.exports = function import_(filepath) { + return __webpack_require__(8569)(filepath); +}; +0 && 0; + +//# sourceMappingURL=import.cjs.map + + +/***/ }), + +/***/ 9633: +/***/ (function(module) { + +"use strict"; +module.exports = JSON.parse('{"es6.module":{"chrome":"61","and_chr":"61","edge":"16","firefox":"60","and_ff":"60","node":"13.2.0","opera":"48","op_mob":"48","safari":"10.1","ios":"10.3","samsung":"8.2","android":"61","electron":"2.0","ios_saf":"10.3"}}'); + +/***/ }), + +/***/ 2787: +/***/ (function(module) { + +"use strict"; +module.exports = JSON.parse('{"transform-class-static-block":{"chrome":"94","opera":"80","edge":"94","firefox":"93","node":"16.11","deno":"1.14","samsung":"17","electron":"15.0"},"proposal-class-static-block":{"chrome":"94","opera":"80","edge":"94","firefox":"93","node":"16.11","deno":"1.14","samsung":"17","electron":"15.0"},"transform-private-property-in-object":{"chrome":"91","opera":"77","edge":"91","firefox":"90","safari":"15","node":"16.9","deno":"1.9","ios":"15","samsung":"16","electron":"13.0"},"proposal-private-property-in-object":{"chrome":"91","opera":"77","edge":"91","firefox":"90","safari":"15","node":"16.9","deno":"1.9","ios":"15","samsung":"16","electron":"13.0"},"transform-class-properties":{"chrome":"74","opera":"62","edge":"79","firefox":"90","safari":"14.1","node":"12","deno":"1","ios":"15","samsung":"11","electron":"6.0"},"proposal-class-properties":{"chrome":"74","opera":"62","edge":"79","firefox":"90","safari":"14.1","node":"12","deno":"1","ios":"15","samsung":"11","electron":"6.0"},"transform-private-methods":{"chrome":"84","opera":"70","edge":"84","firefox":"90","safari":"15","node":"14.6","deno":"1","ios":"15","samsung":"14","electron":"10.0"},"proposal-private-methods":{"chrome":"84","opera":"70","edge":"84","firefox":"90","safari":"15","node":"14.6","deno":"1","ios":"15","samsung":"14","electron":"10.0"},"transform-numeric-separator":{"chrome":"75","opera":"62","edge":"79","firefox":"70","safari":"13","node":"12.5","deno":"1","ios":"13","samsung":"11","rhino":"1.7.14","electron":"6.0"},"proposal-numeric-separator":{"chrome":"75","opera":"62","edge":"79","firefox":"70","safari":"13","node":"12.5","deno":"1","ios":"13","samsung":"11","rhino":"1.7.14","electron":"6.0"},"transform-logical-assignment-operators":{"chrome":"85","opera":"71","edge":"85","firefox":"79","safari":"14","node":"15","deno":"1.2","ios":"14","samsung":"14","electron":"10.0"},"proposal-logical-assignment-operators":{"chrome":"85","opera":"71","edge":"85","firefox":"79","safari":"14","node":"15","deno":"1.2","ios":"14","samsung":"14","electron":"10.0"},"transform-nullish-coalescing-operator":{"chrome":"80","opera":"67","edge":"80","firefox":"72","safari":"13.1","node":"14","deno":"1","ios":"13.4","samsung":"13","electron":"8.0"},"proposal-nullish-coalescing-operator":{"chrome":"80","opera":"67","edge":"80","firefox":"72","safari":"13.1","node":"14","deno":"1","ios":"13.4","samsung":"13","electron":"8.0"},"transform-optional-chaining":{"chrome":"91","opera":"77","edge":"91","firefox":"74","safari":"13.1","node":"16.9","deno":"1.9","ios":"13.4","samsung":"16","electron":"13.0"},"proposal-optional-chaining":{"chrome":"91","opera":"77","edge":"91","firefox":"74","safari":"13.1","node":"16.9","deno":"1.9","ios":"13.4","samsung":"16","electron":"13.0"},"transform-json-strings":{"chrome":"66","opera":"53","edge":"79","firefox":"62","safari":"12","node":"10","deno":"1","ios":"12","samsung":"9","rhino":"1.7.14","electron":"3.0"},"proposal-json-strings":{"chrome":"66","opera":"53","edge":"79","firefox":"62","safari":"12","node":"10","deno":"1","ios":"12","samsung":"9","rhino":"1.7.14","electron":"3.0"},"transform-optional-catch-binding":{"chrome":"66","opera":"53","edge":"79","firefox":"58","safari":"11.1","node":"10","deno":"1","ios":"11.3","samsung":"9","electron":"3.0"},"proposal-optional-catch-binding":{"chrome":"66","opera":"53","edge":"79","firefox":"58","safari":"11.1","node":"10","deno":"1","ios":"11.3","samsung":"9","electron":"3.0"},"transform-parameters":{"chrome":"49","opera":"36","edge":"18","firefox":"53","node":"6","deno":"1","samsung":"5","electron":"0.37"},"transform-async-generator-functions":{"chrome":"63","opera":"50","edge":"79","firefox":"57","safari":"12","node":"10","deno":"1","ios":"12","samsung":"8","electron":"3.0"},"proposal-async-generator-functions":{"chrome":"63","opera":"50","edge":"79","firefox":"57","safari":"12","node":"10","deno":"1","ios":"12","samsung":"8","electron":"3.0"},"transform-object-rest-spread":{"chrome":"60","opera":"47","edge":"79","firefox":"55","safari":"11.1","node":"8.3","deno":"1","ios":"11.3","samsung":"8","electron":"2.0"},"proposal-object-rest-spread":{"chrome":"60","opera":"47","edge":"79","firefox":"55","safari":"11.1","node":"8.3","deno":"1","ios":"11.3","samsung":"8","electron":"2.0"},"transform-dotall-regex":{"chrome":"62","opera":"49","edge":"79","firefox":"78","safari":"11.1","node":"8.10","deno":"1","ios":"11.3","samsung":"8","electron":"3.0"},"transform-unicode-property-regex":{"chrome":"64","opera":"51","edge":"79","firefox":"78","safari":"11.1","node":"10","deno":"1","ios":"11.3","samsung":"9","electron":"3.0"},"proposal-unicode-property-regex":{"chrome":"64","opera":"51","edge":"79","firefox":"78","safari":"11.1","node":"10","deno":"1","ios":"11.3","samsung":"9","electron":"3.0"},"transform-named-capturing-groups-regex":{"chrome":"64","opera":"51","edge":"79","firefox":"78","safari":"11.1","node":"10","deno":"1","ios":"11.3","samsung":"9","electron":"3.0"},"transform-async-to-generator":{"chrome":"55","opera":"42","edge":"15","firefox":"52","safari":"11","node":"7.6","deno":"1","ios":"11","samsung":"6","electron":"1.6"},"transform-exponentiation-operator":{"chrome":"52","opera":"39","edge":"14","firefox":"52","safari":"10.1","node":"7","deno":"1","ios":"10.3","samsung":"6","rhino":"1.7.14","electron":"1.3"},"transform-template-literals":{"chrome":"41","opera":"28","edge":"13","firefox":"34","safari":"13","node":"4","deno":"1","ios":"13","samsung":"3.4","electron":"0.21"},"transform-literals":{"chrome":"44","opera":"31","edge":"12","firefox":"53","safari":"9","node":"4","deno":"1","ios":"9","samsung":"4","electron":"0.30"},"transform-function-name":{"chrome":"51","opera":"38","edge":"79","firefox":"53","safari":"10","node":"6.5","deno":"1","ios":"10","samsung":"5","electron":"1.2"},"transform-arrow-functions":{"chrome":"47","opera":"34","edge":"13","firefox":"43","safari":"10","node":"6","deno":"1","ios":"10","samsung":"5","rhino":"1.7.13","electron":"0.36"},"transform-block-scoped-functions":{"chrome":"41","opera":"28","edge":"12","firefox":"46","safari":"10","node":"4","deno":"1","ie":"11","ios":"10","samsung":"3.4","electron":"0.21"},"transform-classes":{"chrome":"46","opera":"33","edge":"13","firefox":"45","safari":"10","node":"5","deno":"1","ios":"10","samsung":"5","electron":"0.36"},"transform-object-super":{"chrome":"46","opera":"33","edge":"13","firefox":"45","safari":"10","node":"5","deno":"1","ios":"10","samsung":"5","electron":"0.36"},"transform-shorthand-properties":{"chrome":"43","opera":"30","edge":"12","firefox":"33","safari":"9","node":"4","deno":"1","ios":"9","samsung":"4","rhino":"1.7.14","electron":"0.27"},"transform-duplicate-keys":{"chrome":"42","opera":"29","edge":"12","firefox":"34","safari":"9","node":"4","deno":"1","ios":"9","samsung":"3.4","electron":"0.25"},"transform-computed-properties":{"chrome":"44","opera":"31","edge":"12","firefox":"34","safari":"7.1","node":"4","deno":"1","ios":"8","samsung":"4","electron":"0.30"},"transform-for-of":{"chrome":"51","opera":"38","edge":"15","firefox":"53","safari":"10","node":"6.5","deno":"1","ios":"10","samsung":"5","electron":"1.2"},"transform-sticky-regex":{"chrome":"49","opera":"36","edge":"13","firefox":"3","safari":"10","node":"6","deno":"1","ios":"10","samsung":"5","electron":"0.37"},"transform-unicode-escapes":{"chrome":"44","opera":"31","edge":"12","firefox":"53","safari":"9","node":"4","deno":"1","ios":"9","samsung":"4","electron":"0.30"},"transform-unicode-regex":{"chrome":"50","opera":"37","edge":"13","firefox":"46","safari":"12","node":"6","deno":"1","ios":"12","samsung":"5","electron":"1.1"},"transform-spread":{"chrome":"46","opera":"33","edge":"13","firefox":"45","safari":"10","node":"5","deno":"1","ios":"10","samsung":"5","electron":"0.36"},"transform-destructuring":{"chrome":"51","opera":"38","edge":"15","firefox":"53","safari":"10","node":"6.5","deno":"1","ios":"10","samsung":"5","electron":"1.2"},"transform-block-scoping":{"chrome":"49","opera":"36","edge":"14","firefox":"51","safari":"11","node":"6","deno":"1","ios":"11","samsung":"5","electron":"0.37"},"transform-typeof-symbol":{"chrome":"38","opera":"25","edge":"12","firefox":"36","safari":"9","node":"0.12","deno":"1","ios":"9","samsung":"3","rhino":"1.7.13","electron":"0.20"},"transform-new-target":{"chrome":"46","opera":"33","edge":"14","firefox":"41","safari":"10","node":"5","deno":"1","ios":"10","samsung":"5","electron":"0.36"},"transform-regenerator":{"chrome":"50","opera":"37","edge":"13","firefox":"53","safari":"10","node":"6","deno":"1","ios":"10","samsung":"5","electron":"1.1"},"transform-member-expression-literals":{"chrome":"7","opera":"12","edge":"12","firefox":"2","safari":"5.1","node":"0.4","deno":"1","ie":"9","android":"4","ios":"6","phantom":"1.9","samsung":"1","rhino":"1.7.13","electron":"0.20"},"transform-property-literals":{"chrome":"7","opera":"12","edge":"12","firefox":"2","safari":"5.1","node":"0.4","deno":"1","ie":"9","android":"4","ios":"6","phantom":"1.9","samsung":"1","rhino":"1.7.13","electron":"0.20"},"transform-reserved-words":{"chrome":"13","opera":"10.50","edge":"12","firefox":"2","safari":"3.1","node":"0.6","deno":"1","ie":"9","android":"4.4","ios":"6","phantom":"1.9","samsung":"1","rhino":"1.7.13","electron":"0.20"},"transform-export-namespace-from":{"chrome":"72","and_chr":"72","edge":"79","firefox":"80","and_ff":"80","node":"13.2","opera":"60","op_mob":"51","samsung":"11.0","android":"72","electron":"5.0"},"proposal-export-namespace-from":{"chrome":"72","and_chr":"72","edge":"79","firefox":"80","and_ff":"80","node":"13.2","opera":"60","op_mob":"51","samsung":"11.0","android":"72","electron":"5.0"}}'); + +/***/ }), + +/***/ 3676: +/***/ (function(module) { + +"use strict"; +module.exports = JSON.parse('{"builtin":{"Array":false,"ArrayBuffer":false,"Atomics":false,"BigInt":false,"BigInt64Array":false,"BigUint64Array":false,"Boolean":false,"constructor":false,"DataView":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Float32Array":false,"Float64Array":false,"Function":false,"globalThis":false,"hasOwnProperty":false,"Infinity":false,"Int16Array":false,"Int32Array":false,"Int8Array":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Map":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"Promise":false,"propertyIsEnumerable":false,"Proxy":false,"RangeError":false,"ReferenceError":false,"Reflect":false,"RegExp":false,"Set":false,"SharedArrayBuffer":false,"String":false,"Symbol":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"Uint16Array":false,"Uint32Array":false,"Uint8Array":false,"Uint8ClampedArray":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false,"WeakMap":false,"WeakSet":false},"es5":{"Array":false,"Boolean":false,"constructor":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Function":false,"hasOwnProperty":false,"Infinity":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"propertyIsEnumerable":false,"RangeError":false,"ReferenceError":false,"RegExp":false,"String":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false},"es2015":{"Array":false,"ArrayBuffer":false,"Boolean":false,"constructor":false,"DataView":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Float32Array":false,"Float64Array":false,"Function":false,"hasOwnProperty":false,"Infinity":false,"Int16Array":false,"Int32Array":false,"Int8Array":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Map":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"Promise":false,"propertyIsEnumerable":false,"Proxy":false,"RangeError":false,"ReferenceError":false,"Reflect":false,"RegExp":false,"Set":false,"String":false,"Symbol":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"Uint16Array":false,"Uint32Array":false,"Uint8Array":false,"Uint8ClampedArray":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false,"WeakMap":false,"WeakSet":false},"es2017":{"Array":false,"ArrayBuffer":false,"Atomics":false,"Boolean":false,"constructor":false,"DataView":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Float32Array":false,"Float64Array":false,"Function":false,"hasOwnProperty":false,"Infinity":false,"Int16Array":false,"Int32Array":false,"Int8Array":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Map":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"Promise":false,"propertyIsEnumerable":false,"Proxy":false,"RangeError":false,"ReferenceError":false,"Reflect":false,"RegExp":false,"Set":false,"SharedArrayBuffer":false,"String":false,"Symbol":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"Uint16Array":false,"Uint32Array":false,"Uint8Array":false,"Uint8ClampedArray":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false,"WeakMap":false,"WeakSet":false},"browser":{"AbortController":false,"AbortSignal":false,"addEventListener":false,"alert":false,"AnalyserNode":false,"Animation":false,"AnimationEffectReadOnly":false,"AnimationEffectTiming":false,"AnimationEffectTimingReadOnly":false,"AnimationEvent":false,"AnimationPlaybackEvent":false,"AnimationTimeline":false,"applicationCache":false,"ApplicationCache":false,"ApplicationCacheErrorEvent":false,"atob":false,"Attr":false,"Audio":false,"AudioBuffer":false,"AudioBufferSourceNode":false,"AudioContext":false,"AudioDestinationNode":false,"AudioListener":false,"AudioNode":false,"AudioParam":false,"AudioProcessingEvent":false,"AudioScheduledSourceNode":false,"AudioWorkletGlobalScope ":false,"AudioWorkletNode":false,"AudioWorkletProcessor":false,"BarProp":false,"BaseAudioContext":false,"BatteryManager":false,"BeforeUnloadEvent":false,"BiquadFilterNode":false,"Blob":false,"BlobEvent":false,"blur":false,"BroadcastChannel":false,"btoa":false,"BudgetService":false,"ByteLengthQueuingStrategy":false,"Cache":false,"caches":false,"CacheStorage":false,"cancelAnimationFrame":false,"cancelIdleCallback":false,"CanvasCaptureMediaStreamTrack":false,"CanvasGradient":false,"CanvasPattern":false,"CanvasRenderingContext2D":false,"ChannelMergerNode":false,"ChannelSplitterNode":false,"CharacterData":false,"clearInterval":false,"clearTimeout":false,"clientInformation":false,"ClipboardEvent":false,"close":false,"closed":false,"CloseEvent":false,"Comment":false,"CompositionEvent":false,"confirm":false,"console":false,"ConstantSourceNode":false,"ConvolverNode":false,"CountQueuingStrategy":false,"createImageBitmap":false,"Credential":false,"CredentialsContainer":false,"crypto":false,"Crypto":false,"CryptoKey":false,"CSS":false,"CSSConditionRule":false,"CSSFontFaceRule":false,"CSSGroupingRule":false,"CSSImportRule":false,"CSSKeyframeRule":false,"CSSKeyframesRule":false,"CSSMediaRule":false,"CSSNamespaceRule":false,"CSSPageRule":false,"CSSRule":false,"CSSRuleList":false,"CSSStyleDeclaration":false,"CSSStyleRule":false,"CSSStyleSheet":false,"CSSSupportsRule":false,"CustomElementRegistry":false,"customElements":false,"CustomEvent":false,"DataTransfer":false,"DataTransferItem":false,"DataTransferItemList":false,"defaultstatus":false,"defaultStatus":false,"DelayNode":false,"DeviceMotionEvent":false,"DeviceOrientationEvent":false,"devicePixelRatio":false,"dispatchEvent":false,"document":false,"Document":false,"DocumentFragment":false,"DocumentType":false,"DOMError":false,"DOMException":false,"DOMImplementation":false,"DOMMatrix":false,"DOMMatrixReadOnly":false,"DOMParser":false,"DOMPoint":false,"DOMPointReadOnly":false,"DOMQuad":false,"DOMRect":false,"DOMRectReadOnly":false,"DOMStringList":false,"DOMStringMap":false,"DOMTokenList":false,"DragEvent":false,"DynamicsCompressorNode":false,"Element":false,"ErrorEvent":false,"event":false,"Event":false,"EventSource":false,"EventTarget":false,"external":false,"fetch":false,"File":false,"FileList":false,"FileReader":false,"find":false,"focus":false,"FocusEvent":false,"FontFace":false,"FontFaceSetLoadEvent":false,"FormData":false,"frameElement":false,"frames":false,"GainNode":false,"Gamepad":false,"GamepadButton":false,"GamepadEvent":false,"getComputedStyle":false,"getSelection":false,"HashChangeEvent":false,"Headers":false,"history":false,"History":false,"HTMLAllCollection":false,"HTMLAnchorElement":false,"HTMLAreaElement":false,"HTMLAudioElement":false,"HTMLBaseElement":false,"HTMLBodyElement":false,"HTMLBRElement":false,"HTMLButtonElement":false,"HTMLCanvasElement":false,"HTMLCollection":false,"HTMLContentElement":false,"HTMLDataElement":false,"HTMLDataListElement":false,"HTMLDetailsElement":false,"HTMLDialogElement":false,"HTMLDirectoryElement":false,"HTMLDivElement":false,"HTMLDListElement":false,"HTMLDocument":false,"HTMLElement":false,"HTMLEmbedElement":false,"HTMLFieldSetElement":false,"HTMLFontElement":false,"HTMLFormControlsCollection":false,"HTMLFormElement":false,"HTMLFrameElement":false,"HTMLFrameSetElement":false,"HTMLHeadElement":false,"HTMLHeadingElement":false,"HTMLHRElement":false,"HTMLHtmlElement":false,"HTMLIFrameElement":false,"HTMLImageElement":false,"HTMLInputElement":false,"HTMLLabelElement":false,"HTMLLegendElement":false,"HTMLLIElement":false,"HTMLLinkElement":false,"HTMLMapElement":false,"HTMLMarqueeElement":false,"HTMLMediaElement":false,"HTMLMenuElement":false,"HTMLMetaElement":false,"HTMLMeterElement":false,"HTMLModElement":false,"HTMLObjectElement":false,"HTMLOListElement":false,"HTMLOptGroupElement":false,"HTMLOptionElement":false,"HTMLOptionsCollection":false,"HTMLOutputElement":false,"HTMLParagraphElement":false,"HTMLParamElement":false,"HTMLPictureElement":false,"HTMLPreElement":false,"HTMLProgressElement":false,"HTMLQuoteElement":false,"HTMLScriptElement":false,"HTMLSelectElement":false,"HTMLShadowElement":false,"HTMLSlotElement":false,"HTMLSourceElement":false,"HTMLSpanElement":false,"HTMLStyleElement":false,"HTMLTableCaptionElement":false,"HTMLTableCellElement":false,"HTMLTableColElement":false,"HTMLTableElement":false,"HTMLTableRowElement":false,"HTMLTableSectionElement":false,"HTMLTemplateElement":false,"HTMLTextAreaElement":false,"HTMLTimeElement":false,"HTMLTitleElement":false,"HTMLTrackElement":false,"HTMLUListElement":false,"HTMLUnknownElement":false,"HTMLVideoElement":false,"IDBCursor":false,"IDBCursorWithValue":false,"IDBDatabase":false,"IDBFactory":false,"IDBIndex":false,"IDBKeyRange":false,"IDBObjectStore":false,"IDBOpenDBRequest":false,"IDBRequest":false,"IDBTransaction":false,"IDBVersionChangeEvent":false,"IdleDeadline":false,"IIRFilterNode":false,"Image":false,"ImageBitmap":false,"ImageBitmapRenderingContext":false,"ImageCapture":false,"ImageData":false,"indexedDB":false,"innerHeight":false,"innerWidth":false,"InputEvent":false,"IntersectionObserver":false,"IntersectionObserverEntry":false,"Intl":false,"isSecureContext":false,"KeyboardEvent":false,"KeyframeEffect":false,"KeyframeEffectReadOnly":false,"length":false,"localStorage":false,"location":true,"Location":false,"locationbar":false,"matchMedia":false,"MediaDeviceInfo":false,"MediaDevices":false,"MediaElementAudioSourceNode":false,"MediaEncryptedEvent":false,"MediaError":false,"MediaKeyMessageEvent":false,"MediaKeySession":false,"MediaKeyStatusMap":false,"MediaKeySystemAccess":false,"MediaList":false,"MediaQueryList":false,"MediaQueryListEvent":false,"MediaRecorder":false,"MediaSettingsRange":false,"MediaSource":false,"MediaStream":false,"MediaStreamAudioDestinationNode":false,"MediaStreamAudioSourceNode":false,"MediaStreamEvent":false,"MediaStreamTrack":false,"MediaStreamTrackEvent":false,"menubar":false,"MessageChannel":false,"MessageEvent":false,"MessagePort":false,"MIDIAccess":false,"MIDIConnectionEvent":false,"MIDIInput":false,"MIDIInputMap":false,"MIDIMessageEvent":false,"MIDIOutput":false,"MIDIOutputMap":false,"MIDIPort":false,"MimeType":false,"MimeTypeArray":false,"MouseEvent":false,"moveBy":false,"moveTo":false,"MutationEvent":false,"MutationObserver":false,"MutationRecord":false,"name":false,"NamedNodeMap":false,"NavigationPreloadManager":false,"navigator":false,"Navigator":false,"NetworkInformation":false,"Node":false,"NodeFilter":false,"NodeIterator":false,"NodeList":false,"Notification":false,"OfflineAudioCompletionEvent":false,"OfflineAudioContext":false,"offscreenBuffering":false,"OffscreenCanvas":true,"onabort":true,"onafterprint":true,"onanimationend":true,"onanimationiteration":true,"onanimationstart":true,"onappinstalled":true,"onauxclick":true,"onbeforeinstallprompt":true,"onbeforeprint":true,"onbeforeunload":true,"onblur":true,"oncancel":true,"oncanplay":true,"oncanplaythrough":true,"onchange":true,"onclick":true,"onclose":true,"oncontextmenu":true,"oncuechange":true,"ondblclick":true,"ondevicemotion":true,"ondeviceorientation":true,"ondeviceorientationabsolute":true,"ondrag":true,"ondragend":true,"ondragenter":true,"ondragleave":true,"ondragover":true,"ondragstart":true,"ondrop":true,"ondurationchange":true,"onemptied":true,"onended":true,"onerror":true,"onfocus":true,"ongotpointercapture":true,"onhashchange":true,"oninput":true,"oninvalid":true,"onkeydown":true,"onkeypress":true,"onkeyup":true,"onlanguagechange":true,"onload":true,"onloadeddata":true,"onloadedmetadata":true,"onloadstart":true,"onlostpointercapture":true,"onmessage":true,"onmessageerror":true,"onmousedown":true,"onmouseenter":true,"onmouseleave":true,"onmousemove":true,"onmouseout":true,"onmouseover":true,"onmouseup":true,"onmousewheel":true,"onoffline":true,"ononline":true,"onpagehide":true,"onpageshow":true,"onpause":true,"onplay":true,"onplaying":true,"onpointercancel":true,"onpointerdown":true,"onpointerenter":true,"onpointerleave":true,"onpointermove":true,"onpointerout":true,"onpointerover":true,"onpointerup":true,"onpopstate":true,"onprogress":true,"onratechange":true,"onrejectionhandled":true,"onreset":true,"onresize":true,"onscroll":true,"onsearch":true,"onseeked":true,"onseeking":true,"onselect":true,"onstalled":true,"onstorage":true,"onsubmit":true,"onsuspend":true,"ontimeupdate":true,"ontoggle":true,"ontransitionend":true,"onunhandledrejection":true,"onunload":true,"onvolumechange":true,"onwaiting":true,"onwheel":true,"open":false,"openDatabase":false,"opener":false,"Option":false,"origin":false,"OscillatorNode":false,"outerHeight":false,"outerWidth":false,"PageTransitionEvent":false,"pageXOffset":false,"pageYOffset":false,"PannerNode":false,"parent":false,"Path2D":false,"PaymentAddress":false,"PaymentRequest":false,"PaymentRequestUpdateEvent":false,"PaymentResponse":false,"performance":false,"Performance":false,"PerformanceEntry":false,"PerformanceLongTaskTiming":false,"PerformanceMark":false,"PerformanceMeasure":false,"PerformanceNavigation":false,"PerformanceNavigationTiming":false,"PerformanceObserver":false,"PerformanceObserverEntryList":false,"PerformancePaintTiming":false,"PerformanceResourceTiming":false,"PerformanceTiming":false,"PeriodicWave":false,"Permissions":false,"PermissionStatus":false,"personalbar":false,"PhotoCapabilities":false,"Plugin":false,"PluginArray":false,"PointerEvent":false,"PopStateEvent":false,"postMessage":false,"Presentation":false,"PresentationAvailability":false,"PresentationConnection":false,"PresentationConnectionAvailableEvent":false,"PresentationConnectionCloseEvent":false,"PresentationConnectionList":false,"PresentationReceiver":false,"PresentationRequest":false,"print":false,"ProcessingInstruction":false,"ProgressEvent":false,"PromiseRejectionEvent":false,"prompt":false,"PushManager":false,"PushSubscription":false,"PushSubscriptionOptions":false,"queueMicrotask":false,"RadioNodeList":false,"Range":false,"ReadableStream":false,"registerProcessor":false,"RemotePlayback":false,"removeEventListener":false,"Request":false,"requestAnimationFrame":false,"requestIdleCallback":false,"resizeBy":false,"ResizeObserver":false,"ResizeObserverEntry":false,"resizeTo":false,"Response":false,"RTCCertificate":false,"RTCDataChannel":false,"RTCDataChannelEvent":false,"RTCDtlsTransport":false,"RTCIceCandidate":false,"RTCIceGatherer":false,"RTCIceTransport":false,"RTCPeerConnection":false,"RTCPeerConnectionIceEvent":false,"RTCRtpContributingSource":false,"RTCRtpReceiver":false,"RTCRtpSender":false,"RTCSctpTransport":false,"RTCSessionDescription":false,"RTCStatsReport":false,"RTCTrackEvent":false,"screen":false,"Screen":false,"screenLeft":false,"ScreenOrientation":false,"screenTop":false,"screenX":false,"screenY":false,"ScriptProcessorNode":false,"scroll":false,"scrollbars":false,"scrollBy":false,"scrollTo":false,"scrollX":false,"scrollY":false,"SecurityPolicyViolationEvent":false,"Selection":false,"self":false,"ServiceWorker":false,"ServiceWorkerContainer":false,"ServiceWorkerRegistration":false,"sessionStorage":false,"setInterval":false,"setTimeout":false,"ShadowRoot":false,"SharedWorker":false,"SourceBuffer":false,"SourceBufferList":false,"speechSynthesis":false,"SpeechSynthesisEvent":false,"SpeechSynthesisUtterance":false,"StaticRange":false,"status":false,"statusbar":false,"StereoPannerNode":false,"stop":false,"Storage":false,"StorageEvent":false,"StorageManager":false,"styleMedia":false,"StyleSheet":false,"StyleSheetList":false,"SubtleCrypto":false,"SVGAElement":false,"SVGAngle":false,"SVGAnimatedAngle":false,"SVGAnimatedBoolean":false,"SVGAnimatedEnumeration":false,"SVGAnimatedInteger":false,"SVGAnimatedLength":false,"SVGAnimatedLengthList":false,"SVGAnimatedNumber":false,"SVGAnimatedNumberList":false,"SVGAnimatedPreserveAspectRatio":false,"SVGAnimatedRect":false,"SVGAnimatedString":false,"SVGAnimatedTransformList":false,"SVGAnimateElement":false,"SVGAnimateMotionElement":false,"SVGAnimateTransformElement":false,"SVGAnimationElement":false,"SVGCircleElement":false,"SVGClipPathElement":false,"SVGComponentTransferFunctionElement":false,"SVGDefsElement":false,"SVGDescElement":false,"SVGDiscardElement":false,"SVGElement":false,"SVGEllipseElement":false,"SVGFEBlendElement":false,"SVGFEColorMatrixElement":false,"SVGFEComponentTransferElement":false,"SVGFECompositeElement":false,"SVGFEConvolveMatrixElement":false,"SVGFEDiffuseLightingElement":false,"SVGFEDisplacementMapElement":false,"SVGFEDistantLightElement":false,"SVGFEDropShadowElement":false,"SVGFEFloodElement":false,"SVGFEFuncAElement":false,"SVGFEFuncBElement":false,"SVGFEFuncGElement":false,"SVGFEFuncRElement":false,"SVGFEGaussianBlurElement":false,"SVGFEImageElement":false,"SVGFEMergeElement":false,"SVGFEMergeNodeElement":false,"SVGFEMorphologyElement":false,"SVGFEOffsetElement":false,"SVGFEPointLightElement":false,"SVGFESpecularLightingElement":false,"SVGFESpotLightElement":false,"SVGFETileElement":false,"SVGFETurbulenceElement":false,"SVGFilterElement":false,"SVGForeignObjectElement":false,"SVGGElement":false,"SVGGeometryElement":false,"SVGGradientElement":false,"SVGGraphicsElement":false,"SVGImageElement":false,"SVGLength":false,"SVGLengthList":false,"SVGLinearGradientElement":false,"SVGLineElement":false,"SVGMarkerElement":false,"SVGMaskElement":false,"SVGMatrix":false,"SVGMetadataElement":false,"SVGMPathElement":false,"SVGNumber":false,"SVGNumberList":false,"SVGPathElement":false,"SVGPatternElement":false,"SVGPoint":false,"SVGPointList":false,"SVGPolygonElement":false,"SVGPolylineElement":false,"SVGPreserveAspectRatio":false,"SVGRadialGradientElement":false,"SVGRect":false,"SVGRectElement":false,"SVGScriptElement":false,"SVGSetElement":false,"SVGStopElement":false,"SVGStringList":false,"SVGStyleElement":false,"SVGSVGElement":false,"SVGSwitchElement":false,"SVGSymbolElement":false,"SVGTextContentElement":false,"SVGTextElement":false,"SVGTextPathElement":false,"SVGTextPositioningElement":false,"SVGTitleElement":false,"SVGTransform":false,"SVGTransformList":false,"SVGTSpanElement":false,"SVGUnitTypes":false,"SVGUseElement":false,"SVGViewElement":false,"TaskAttributionTiming":false,"Text":false,"TextDecoder":false,"TextEncoder":false,"TextEvent":false,"TextMetrics":false,"TextTrack":false,"TextTrackCue":false,"TextTrackCueList":false,"TextTrackList":false,"TimeRanges":false,"toolbar":false,"top":false,"Touch":false,"TouchEvent":false,"TouchList":false,"TrackEvent":false,"TransitionEvent":false,"TreeWalker":false,"UIEvent":false,"URL":false,"URLSearchParams":false,"ValidityState":false,"visualViewport":false,"VisualViewport":false,"VTTCue":false,"WaveShaperNode":false,"WebAssembly":false,"WebGL2RenderingContext":false,"WebGLActiveInfo":false,"WebGLBuffer":false,"WebGLContextEvent":false,"WebGLFramebuffer":false,"WebGLProgram":false,"WebGLQuery":false,"WebGLRenderbuffer":false,"WebGLRenderingContext":false,"WebGLSampler":false,"WebGLShader":false,"WebGLShaderPrecisionFormat":false,"WebGLSync":false,"WebGLTexture":false,"WebGLTransformFeedback":false,"WebGLUniformLocation":false,"WebGLVertexArrayObject":false,"WebSocket":false,"WheelEvent":false,"window":false,"Window":false,"Worker":false,"WritableStream":false,"XMLDocument":false,"XMLHttpRequest":false,"XMLHttpRequestEventTarget":false,"XMLHttpRequestUpload":false,"XMLSerializer":false,"XPathEvaluator":false,"XPathExpression":false,"XPathResult":false,"XSLTProcessor":false},"worker":{"addEventListener":false,"applicationCache":false,"atob":false,"Blob":false,"BroadcastChannel":false,"btoa":false,"Cache":false,"caches":false,"clearInterval":false,"clearTimeout":false,"close":true,"console":false,"fetch":false,"FileReaderSync":false,"FormData":false,"Headers":false,"IDBCursor":false,"IDBCursorWithValue":false,"IDBDatabase":false,"IDBFactory":false,"IDBIndex":false,"IDBKeyRange":false,"IDBObjectStore":false,"IDBOpenDBRequest":false,"IDBRequest":false,"IDBTransaction":false,"IDBVersionChangeEvent":false,"ImageData":false,"importScripts":true,"indexedDB":false,"location":false,"MessageChannel":false,"MessagePort":false,"name":false,"navigator":false,"Notification":false,"onclose":true,"onconnect":true,"onerror":true,"onlanguagechange":true,"onmessage":true,"onoffline":true,"ononline":true,"onrejectionhandled":true,"onunhandledrejection":true,"performance":false,"Performance":false,"PerformanceEntry":false,"PerformanceMark":false,"PerformanceMeasure":false,"PerformanceNavigation":false,"PerformanceResourceTiming":false,"PerformanceTiming":false,"postMessage":true,"Promise":false,"queueMicrotask":false,"removeEventListener":false,"Request":false,"Response":false,"self":true,"ServiceWorkerRegistration":false,"setInterval":false,"setTimeout":false,"TextDecoder":false,"TextEncoder":false,"URL":false,"URLSearchParams":false,"WebSocket":false,"Worker":false,"WorkerGlobalScope":false,"XMLHttpRequest":false},"node":{"__dirname":false,"__filename":false,"Buffer":false,"clearImmediate":false,"clearInterval":false,"clearTimeout":false,"console":false,"exports":true,"global":false,"Intl":false,"module":false,"process":false,"queueMicrotask":false,"require":false,"setImmediate":false,"setInterval":false,"setTimeout":false,"TextDecoder":false,"TextEncoder":false,"URL":false,"URLSearchParams":false},"commonjs":{"exports":true,"global":false,"module":false,"require":false},"amd":{"define":false,"require":false},"mocha":{"after":false,"afterEach":false,"before":false,"beforeEach":false,"context":false,"describe":false,"it":false,"mocha":false,"run":false,"setup":false,"specify":false,"suite":false,"suiteSetup":false,"suiteTeardown":false,"teardown":false,"test":false,"xcontext":false,"xdescribe":false,"xit":false,"xspecify":false},"jasmine":{"afterAll":false,"afterEach":false,"beforeAll":false,"beforeEach":false,"describe":false,"expect":false,"fail":false,"fdescribe":false,"fit":false,"it":false,"jasmine":false,"pending":false,"runs":false,"spyOn":false,"spyOnProperty":false,"waits":false,"waitsFor":false,"xdescribe":false,"xit":false},"jest":{"afterAll":false,"afterEach":false,"beforeAll":false,"beforeEach":false,"describe":false,"expect":false,"fdescribe":false,"fit":false,"it":false,"jest":false,"pit":false,"require":false,"test":false,"xdescribe":false,"xit":false,"xtest":false},"qunit":{"asyncTest":false,"deepEqual":false,"equal":false,"expect":false,"module":false,"notDeepEqual":false,"notEqual":false,"notOk":false,"notPropEqual":false,"notStrictEqual":false,"ok":false,"propEqual":false,"QUnit":false,"raises":false,"start":false,"stop":false,"strictEqual":false,"test":false,"throws":false},"phantomjs":{"console":true,"exports":true,"phantom":true,"require":true,"WebPage":true},"couch":{"emit":false,"exports":false,"getRow":false,"log":false,"module":false,"provides":false,"require":false,"respond":false,"send":false,"start":false,"sum":false},"rhino":{"defineClass":false,"deserialize":false,"gc":false,"help":false,"importClass":false,"importPackage":false,"java":false,"load":false,"loadClass":false,"Packages":false,"print":false,"quit":false,"readFile":false,"readUrl":false,"runCommand":false,"seal":false,"serialize":false,"spawn":false,"sync":false,"toint32":false,"version":false},"nashorn":{"__DIR__":false,"__FILE__":false,"__LINE__":false,"com":false,"edu":false,"exit":false,"java":false,"Java":false,"javafx":false,"JavaImporter":false,"javax":false,"JSAdapter":false,"load":false,"loadWithNewGlobal":false,"org":false,"Packages":false,"print":false,"quit":false},"wsh":{"ActiveXObject":true,"Enumerator":true,"GetObject":true,"ScriptEngine":true,"ScriptEngineBuildVersion":true,"ScriptEngineMajorVersion":true,"ScriptEngineMinorVersion":true,"VBArray":true,"WScript":true,"WSH":true,"XDomainRequest":true},"jquery":{"$":false,"jQuery":false},"yui":{"YAHOO":false,"YAHOO_config":false,"YUI":false,"YUI_config":false},"shelljs":{"cat":false,"cd":false,"chmod":false,"config":false,"cp":false,"dirs":false,"echo":false,"env":false,"error":false,"exec":false,"exit":false,"find":false,"grep":false,"ln":false,"ls":false,"mkdir":false,"mv":false,"popd":false,"pushd":false,"pwd":false,"rm":false,"sed":false,"set":false,"target":false,"tempdir":false,"test":false,"touch":false,"which":false},"prototypejs":{"$":false,"$$":false,"$A":false,"$break":false,"$continue":false,"$F":false,"$H":false,"$R":false,"$w":false,"Abstract":false,"Ajax":false,"Autocompleter":false,"Builder":false,"Class":false,"Control":false,"Draggable":false,"Draggables":false,"Droppables":false,"Effect":false,"Element":false,"Enumerable":false,"Event":false,"Field":false,"Form":false,"Hash":false,"Insertion":false,"ObjectRange":false,"PeriodicalExecuter":false,"Position":false,"Prototype":false,"Scriptaculous":false,"Selector":false,"Sortable":false,"SortableObserver":false,"Sound":false,"Template":false,"Toggle":false,"Try":false},"meteor":{"_":false,"$":false,"Accounts":false,"AccountsClient":false,"AccountsCommon":false,"AccountsServer":false,"App":false,"Assets":false,"Blaze":false,"check":false,"Cordova":false,"DDP":false,"DDPRateLimiter":false,"DDPServer":false,"Deps":false,"EJSON":false,"Email":false,"HTTP":false,"Log":false,"Match":false,"Meteor":false,"Mongo":false,"MongoInternals":false,"Npm":false,"Package":false,"Plugin":false,"process":false,"Random":false,"ReactiveDict":false,"ReactiveVar":false,"Router":false,"ServiceConfiguration":false,"Session":false,"share":false,"Spacebars":false,"Template":false,"Tinytest":false,"Tracker":false,"UI":false,"Utils":false,"WebApp":false,"WebAppInternals":false},"mongo":{"_isWindows":false,"_rand":false,"BulkWriteResult":false,"cat":false,"cd":false,"connect":false,"db":false,"getHostName":false,"getMemInfo":false,"hostname":false,"ISODate":false,"listFiles":false,"load":false,"ls":false,"md5sumFile":false,"mkdir":false,"Mongo":false,"NumberInt":false,"NumberLong":false,"ObjectId":false,"PlanCache":false,"print":false,"printjson":false,"pwd":false,"quit":false,"removeFile":false,"rs":false,"sh":false,"UUID":false,"version":false,"WriteResult":false},"applescript":{"$":false,"Application":false,"Automation":false,"console":false,"delay":false,"Library":false,"ObjC":false,"ObjectSpecifier":false,"Path":false,"Progress":false,"Ref":false},"serviceworker":{"addEventListener":false,"applicationCache":false,"atob":false,"Blob":false,"BroadcastChannel":false,"btoa":false,"Cache":false,"caches":false,"CacheStorage":false,"clearInterval":false,"clearTimeout":false,"Client":false,"clients":false,"Clients":false,"close":true,"console":false,"ExtendableEvent":false,"ExtendableMessageEvent":false,"fetch":false,"FetchEvent":false,"FileReaderSync":false,"FormData":false,"Headers":false,"IDBCursor":false,"IDBCursorWithValue":false,"IDBDatabase":false,"IDBFactory":false,"IDBIndex":false,"IDBKeyRange":false,"IDBObjectStore":false,"IDBOpenDBRequest":false,"IDBRequest":false,"IDBTransaction":false,"IDBVersionChangeEvent":false,"ImageData":false,"importScripts":false,"indexedDB":false,"location":false,"MessageChannel":false,"MessagePort":false,"name":false,"navigator":false,"Notification":false,"onclose":true,"onconnect":true,"onerror":true,"onfetch":true,"oninstall":true,"onlanguagechange":true,"onmessage":true,"onmessageerror":true,"onnotificationclick":true,"onnotificationclose":true,"onoffline":true,"ononline":true,"onpush":true,"onpushsubscriptionchange":true,"onrejectionhandled":true,"onsync":true,"onunhandledrejection":true,"performance":false,"Performance":false,"PerformanceEntry":false,"PerformanceMark":false,"PerformanceMeasure":false,"PerformanceNavigation":false,"PerformanceResourceTiming":false,"PerformanceTiming":false,"postMessage":true,"Promise":false,"queueMicrotask":false,"registration":false,"removeEventListener":false,"Request":false,"Response":false,"self":false,"ServiceWorker":false,"ServiceWorkerContainer":false,"ServiceWorkerGlobalScope":false,"ServiceWorkerMessageEvent":false,"ServiceWorkerRegistration":false,"setInterval":false,"setTimeout":false,"skipWaiting":false,"TextDecoder":false,"TextEncoder":false,"URL":false,"URLSearchParams":false,"WebSocket":false,"WindowClient":false,"Worker":false,"WorkerGlobalScope":false,"XMLHttpRequest":false},"atomtest":{"advanceClock":false,"fakeClearInterval":false,"fakeClearTimeout":false,"fakeSetInterval":false,"fakeSetTimeout":false,"resetTimeouts":false,"waitsForPromise":false},"embertest":{"andThen":false,"click":false,"currentPath":false,"currentRouteName":false,"currentURL":false,"fillIn":false,"find":false,"findAll":false,"findWithAssert":false,"keyEvent":false,"pauseTest":false,"resumeTest":false,"triggerEvent":false,"visit":false,"wait":false},"protractor":{"$":false,"$$":false,"browser":false,"by":false,"By":false,"DartObject":false,"element":false,"protractor":false},"shared-node-browser":{"clearInterval":false,"clearTimeout":false,"console":false,"setInterval":false,"setTimeout":false,"URL":false,"URLSearchParams":false},"webextensions":{"browser":false,"chrome":false,"opr":false},"greasemonkey":{"cloneInto":false,"createObjectIn":false,"exportFunction":false,"GM":false,"GM_addStyle":false,"GM_deleteValue":false,"GM_getResourceText":false,"GM_getResourceURL":false,"GM_getValue":false,"GM_info":false,"GM_listValues":false,"GM_log":false,"GM_openInTab":false,"GM_registerMenuCommand":false,"GM_setClipboard":false,"GM_setValue":false,"GM_xmlhttpRequest":false,"unsafeWindow":false},"devtools":{"$":false,"$_":false,"$$":false,"$0":false,"$1":false,"$2":false,"$3":false,"$4":false,"$x":false,"chrome":false,"clear":false,"copy":false,"debug":false,"dir":false,"dirxml":false,"getEventListeners":false,"inspect":false,"keys":false,"monitor":false,"monitorEvents":false,"profile":false,"profileEnd":false,"queryObjects":false,"table":false,"undebug":false,"unmonitor":false,"unmonitorEvents":false,"values":false}}'); + +/***/ }) + +}; +; \ No newline at end of file diff --git a/packages/bundler-vite/compiled/@vitejs/plugin-legacy/index.d.ts b/packages/bundler-vite/compiled/@vitejs/plugin-legacy/index.d.ts deleted file mode 100644 index b2d20b819216..000000000000 --- a/packages/bundler-vite/compiled/@vitejs/plugin-legacy/index.d.ts +++ /dev/null @@ -1,35 +0,0 @@ -import type { Plugin } from '../vite' - -export interface Options { - /** - * default: 'defaults' - */ - targets?: string | string[] | { [key: string]: string } - /** - * default: false - */ - ignoreBrowserslistConfig?: boolean - /** - * default: true - */ - polyfills?: boolean | string[] - additionalLegacyPolyfills?: string[] - /** - * default: false - */ - modernPolyfills?: boolean | string[] - /** - * default: true - */ - renderLegacyChunks?: boolean - /** - * default: false - */ - externalSystemJS?: boolean -} - -declare function createPlugin(options?: Options): Plugin - -export default createPlugin - -export const cspHashes: string[] diff --git a/packages/bundler-vite/compiled/@vitejs/plugin-legacy/index.js b/packages/bundler-vite/compiled/@vitejs/plugin-legacy/index.js index 8ec79183102f..35965a8c310a 100644 --- a/packages/bundler-vite/compiled/@vitejs/plugin-legacy/index.js +++ b/packages/bundler-vite/compiled/@vitejs/plugin-legacy/index.js @@ -1 +1 @@ -(function(){var e={877:function(e,t,n){"use strict";var r=n(417);class BitSet{constructor(e){this.bits=e instanceof BitSet?e.bits.slice():[]}add(e){this.bits[e>>5]|=1<<(e&31)}has(e){return!!(this.bits[e>>5]&1<<(e&31))}}class Chunk{constructor(e,t,n){this.start=e;this.end=t;this.original=n;this.intro="";this.outro="";this.content=n;this.storeName=false;this.edited=false;{this.previous=null;this.next=null}}appendLeft(e){this.outro+=e}appendRight(e){this.intro=this.intro+e}clone(){const e=new Chunk(this.start,this.end,this.original);e.intro=this.intro;e.outro=this.outro;e.content=this.content;e.storeName=this.storeName;e.edited=this.edited;return e}contains(e){return this.startwindow.btoa(unescape(encodeURIComponent(e)))}else if(typeof Buffer==="function"){return e=>Buffer.from(e,"utf-8").toString("base64")}else{return()=>{throw new Error("Unsupported environment: `window.btoa` or `Buffer` should be supported.")}}}const i=getBtoa();class SourceMap{constructor(e){this.version=3;this.file=e.file;this.sources=e.sources;this.sourcesContent=e.sourcesContent;this.names=e.names;this.mappings=r.encode(e.mappings)}toString(){return JSON.stringify(this)}toUrl(){return"data:application/json;charset=utf-8;base64,"+i(this.toString())}}function guessIndent(e){const t=e.split("\n");const n=t.filter((e=>/^\t+/.test(e)));const r=t.filter((e=>/^ {2,}/.test(e)));if(n.length===0&&r.length===0){return null}if(n.length>=r.length){return"\t"}const i=r.reduce(((e,t)=>{const n=/^ +/.exec(t)[0].length;return Math.min(n,e)}),Infinity);return new Array(i+1).join(" ")}function getRelativePath(e,t){const n=e.split(/[/\\]/);const r=t.split(/[/\\]/);n.pop();while(n[0]===r[0]){n.shift();r.shift()}if(n.length){let e=n.length;while(e--)n[e]=".."}return n.concat(r).join("/")}const s=Object.prototype.toString;function isObject(e){return s.call(e)==="[object Object]"}function getLocator(e){const t=e.split("\n");const n=[];for(let e=0,r=0;e>1;if(e=0){t.push(r)}this.rawSegments.push(t)}else if(this.pending){this.rawSegments.push(this.pending)}this.advance(t);this.pending=null}addUneditedChunk(e,t,n,r,i){let s=t.start;let o=true;while(s1){for(let e=0;e{const s=i(e.start);if(e.intro.length)r.advance(e.intro);if(e.edited){r.addEdit(t,e.content,s,e.storeName?n.indexOf(e.original):-1)}else{r.addUneditedChunk(t,e,this.original,s,this.sourcemapLocations)}if(e.outro.length)r.advance(e.outro)}));return{file:e.file?e.file.split(/[/\\]/).pop():null,sources:[e.source?getRelativePath(e.file||"",e.source):null],sourcesContent:e.includeContent?[this.original]:[null],names:n,mappings:r.raw}}generateMap(e){return new SourceMap(this.generateDecodedMap(e))}_ensureindentStr(){if(this.indentStr===undefined){this.indentStr=guessIndent(this.original)}}_getRawIndentString(){this._ensureindentStr();return this.indentStr}getIndentString(){this._ensureindentStr();return this.indentStr===null?"\t":this.indentStr}indent(e,t){const n=/^[^\r\n]/gm;if(isObject(e)){t=e;e=undefined}if(e===undefined){this._ensureindentStr();e=this.indentStr||"\t"}if(e==="")return this;t=t||{};const r={};if(t.exclude){const e=typeof t.exclude[0]==="number"?[t.exclude]:t.exclude;e.forEach((e=>{for(let t=e[0];t{if(i)return`${e}${t}`;i=true;return t};this.intro=this.intro.replace(n,replacer);let s=0;let o=this.firstChunk;while(o){const t=o.end;if(o.edited){if(!r[s]){o.content=o.content.replace(n,replacer);if(o.content.length){i=o.content[o.content.length-1]==="\n"}}}else{s=o.start;while(s=e&&n<=t)throw new Error("Cannot move a selection inside itself");this._split(e);this._split(t);this._split(n);const r=this.byStart[e];const i=this.byEnd[t];const s=r.previous;const o=i.next;const a=this.byStart[n];if(!a&&i===this.lastChunk)return this;const l=a?a.previous:this.lastChunk;if(s)s.next=o;if(o)o.previous=s;if(l)l.next=r;if(a)a.previous=i;if(!r.previous)this.firstChunk=i.next;if(!i.next){this.lastChunk=r.previous;this.lastChunk.next=null}r.previous=l;i.next=a||null;if(!l)this.firstChunk=r;if(!a)this.lastChunk=i;return this}overwrite(e,t,n,r){r=r||{};return this.update(e,t,n,{...r,overwrite:!r.contentOnly})}update(e,t,n,r){if(typeof n!=="string")throw new TypeError("replacement content must be a string");while(e<0)e+=this.original.length;while(t<0)t+=this.original.length;if(t>this.original.length)throw new Error("end is out of bounds");if(e===t)throw new Error("Cannot overwrite a zero-length range – use appendLeft or prependRight instead");this._split(e);this._split(t);if(r===true){if(!a.storeName){console.warn("The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string");a.storeName=true}r={storeName:true}}const i=r!==undefined?r.storeName:false;const s=r!==undefined?r.overwrite:false;if(i){const n=this.original.slice(e,t);Object.defineProperty(this.storedNames,n,{writable:true,value:true,enumerable:true})}const o=this.byStart[e];const l=this.byEnd[t];if(o){let e=o;while(e!==l){if(e.next!==this.byStart[e.end]){throw new Error("Cannot overwrite across a split point")}e=e.next;e.edit("",false)}o.edit(n,i,!s)}else{const r=new Chunk(e,t,"").edit(n,i);l.next=r;r.previous=l}return this}prepend(e){if(typeof e!=="string")throw new TypeError("outro content must be a string");this.intro=e+this.intro;return this}prependLeft(e,t){if(typeof t!=="string")throw new TypeError("inserted content must be a string");this._split(e);const n=this.byEnd[e];if(n){n.prependLeft(t)}else{this.intro=t+this.intro}return this}prependRight(e,t){if(typeof t!=="string")throw new TypeError("inserted content must be a string");this._split(e);const n=this.byStart[e];if(n){n.prependRight(t)}else{this.outro=t+this.outro}return this}remove(e,t){while(e<0)e+=this.original.length;while(t<0)t+=this.original.length;if(e===t)return this;if(e<0||t>this.original.length)throw new Error("Character is out of bounds");if(e>t)throw new Error("end must be greater than start");this._split(e);this._split(t);let n=this.byStart[e];while(n){n.intro="";n.outro="";n.edit("");n=t>n.end?this.byStart[n.end]:null}return this}lastChar(){if(this.outro.length)return this.outro[this.outro.length-1];let e=this.lastChunk;do{if(e.outro.length)return e.outro[e.outro.length-1];if(e.content.length)return e.content[e.content.length-1];if(e.intro.length)return e.intro[e.intro.length-1]}while(e=e.previous);if(this.intro.length)return this.intro[this.intro.length-1];return""}lastLine(){let e=this.outro.lastIndexOf(o);if(e!==-1)return this.outro.substr(e+1);let t=this.outro;let n=this.lastChunk;do{if(n.outro.length>0){e=n.outro.lastIndexOf(o);if(e!==-1)return n.outro.substr(e+1)+t;t=n.outro+t}if(n.content.length>0){e=n.content.lastIndexOf(o);if(e!==-1)return n.content.substr(e+1)+t;t=n.content+t}if(n.intro.length>0){e=n.intro.lastIndexOf(o);if(e!==-1)return n.intro.substr(e+1)+t;t=n.intro+t}}while(n=n.previous);e=this.intro.lastIndexOf(o);if(e!==-1)return this.intro.substr(e+1)+t;return this.intro+t}slice(e=0,t=this.original.length){while(e<0)e+=this.original.length;while(t<0)t+=this.original.length;let n="";let r=this.firstChunk;while(r&&(r.start>e||r.end<=e)){if(r.start=t){return n}r=r.next}if(r&&r.edited&&r.start!==e)throw new Error(`Cannot use replaced character ${e} as slice start anchor.`);const i=r;while(r){if(r.intro&&(i!==r||r.start===e)){n+=r.intro}const s=r.start=t;if(s&&r.edited&&r.end!==t)throw new Error(`Cannot use replaced character ${t} as slice end anchor.`);const o=i===r?e-r.start:0;const a=s?r.content.length+t-r.end:r.content.length;n+=r.content.slice(o,a);if(r.outro&&(!s||r.end===t)){n+=r.outro}if(s){break}r=r.next}return n}snip(e,t){const n=this.clone();n.remove(0,e);n.remove(t,n.original.length);return n}_split(e){if(this.byStart[e]||this.byEnd[e])return;let t=this.lastSearchedChunk;const n=e>t.end;while(t){if(t.contains(e))return this._splitChunk(t,e);t=n?this.byStart[t.end]:this.byEnd[t.start]}}_splitChunk(e,t){if(e.edited&&e.content.length){const n=getLocator(this.original)(t);throw new Error(`Cannot split a chunk that has already been edited (${n.line}:${n.column} – "${e.original}")`)}const n=e.split(t);this.byEnd[t]=e;this.byStart[t]=n;this.byEnd[n.end]=n;if(e===this.lastChunk)this.lastChunk=n;this.lastSearchedChunk=e;return true}toString(){let e=this.intro;let t=this.firstChunk;while(t){e+=t.toString();t=t.next}return e+this.outro}isEmpty(){let e=this.firstChunk;do{if(e.intro.length&&e.intro.trim()||e.content.length&&e.content.trim()||e.outro.length&&e.outro.trim())return false}while(e=e.next);return true}length(){let e=this.firstChunk;let t=0;do{t+=e.intro.length+e.content.length+e.outro.length}while(e=e.next);return t}trimLines(){return this.trim("[\\r\\n]")}trim(e){return this.trimStart(e).trimEnd(e)}trimEndAborted(e){const t=new RegExp((e||"\\s")+"+$");this.outro=this.outro.replace(t,"");if(this.outro.length)return true;let n=this.lastChunk;do{const e=n.end;const r=n.trimEnd(t);if(n.end!==e){if(this.lastChunk===n){this.lastChunk=n.next}this.byEnd[n.end]=n;this.byStart[n.next.start]=n.next;this.byEnd[n.next.end]=n.next}if(r)return true;n=n.previous}while(n);return false}trimEnd(e){this.trimEndAborted(e);return this}trimStartAborted(e){const t=new RegExp("^"+(e||"\\s")+"+");this.intro=this.intro.replace(t,"");if(this.intro.length)return true;let n=this.firstChunk;do{const e=n.end;const r=n.trimStart(t);if(n.end!==e){if(n===this.lastChunk)this.lastChunk=n.next;this.byEnd[n.end]=n;this.byStart[n.next.start]=n.next;this.byEnd[n.next.end]=n.next}if(r)return true;n=n.next}while(n);return false}trimStart(e){this.trimStartAborted(e);return this}hasChanged(){return this.original!==this.toString()}_replaceRegexp(e,t){function getReplacement(e,n){if(typeof t==="string"){return t.replace(/\$(\$|&|\d+)/g,((t,n)=>{if(n==="$")return"$";if(n==="&")return e[0];const r=+n;if(r{if(e.index!=null)this.overwrite(e.index,e.index+e[0].length,getReplacement(e,this.original))}))}else{const t=this.original.match(e);if(t&&t.index!=null)this.overwrite(t.index,t.index+t[0].length,getReplacement(t,this.original))}return this}_replaceString(e,t){const{original:n}=this;const r=n.indexOf(e);if(r!==-1){this.overwrite(r,r+e.length,t)}return this}replace(e,t){if(typeof e==="string"){return this._replaceString(e,t)}return this._replaceRegexp(e,t)}_replaceAllString(e,t){const{original:n}=this;const r=e.length;for(let i=n.indexOf(e);i!==-1;i=n.indexOf(e,i+r)){this.overwrite(i,i+r,t)}return this}replaceAll(e,t){if(typeof e==="string"){return this._replaceAllString(e,t)}if(!e.global){throw new TypeError("MagicString.prototype.replaceAll called with a non-global RegExp argument")}return this._replaceRegexp(e,t)}}const l=Object.prototype.hasOwnProperty;class Bundle{constructor(e={}){this.intro=e.intro||"";this.separator=e.separator!==undefined?e.separator:"\n";this.sources=[];this.uniqueSources=[];this.uniqueSourceIndexByFilename={}}addSource(e){if(e instanceof MagicString){return this.addSource({content:e,filename:e.filename,separator:this.separator})}if(!isObject(e)||!e.content){throw new Error("bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`")}["filename","indentExclusionRanges","separator"].forEach((t=>{if(!l.call(e,t))e[t]=e.content[t]}));if(e.separator===undefined){e.separator=this.separator}if(e.filename){if(!l.call(this.uniqueSourceIndexByFilename,e.filename)){this.uniqueSourceIndexByFilename[e.filename]=this.uniqueSources.length;this.uniqueSources.push({filename:e.filename,content:e.content.original})}else{const t=this.uniqueSources[this.uniqueSourceIndexByFilename[e.filename]];if(e.content.original!==t.content){throw new Error(`Illegal source: same filename (${e.filename}), different contents`)}}}this.sources.push(e);return this}append(e,t){this.addSource({content:new MagicString(e),separator:t&&t.separator||""});return this}clone(){const e=new Bundle({intro:this.intro,separator:this.separator});this.sources.forEach((t=>{e.addSource({filename:t.filename,content:t.content.clone(),separator:t.separator})}));return e}generateDecodedMap(e={}){const t=[];this.sources.forEach((e=>{Object.keys(e.content.storedNames).forEach((e=>{if(!~t.indexOf(e))t.push(e)}))}));const n=new Mappings(e.hires);if(this.intro){n.advance(this.intro)}this.sources.forEach(((e,r)=>{if(r>0){n.advance(this.separator)}const i=e.filename?this.uniqueSourceIndexByFilename[e.filename]:-1;const s=e.content;const o=getLocator(s.original);if(s.intro){n.advance(s.intro)}s.firstChunk.eachNext((r=>{const a=o(r.start);if(r.intro.length)n.advance(r.intro);if(e.filename){if(r.edited){n.addEdit(i,r.content,a,r.storeName?t.indexOf(r.original):-1)}else{n.addUneditedChunk(i,r,s.original,a,s.sourcemapLocations)}}else{n.advance(r.content)}if(r.outro.length)n.advance(r.outro)}));if(s.outro){n.advance(s.outro)}}));return{file:e.file?e.file.split(/[/\\]/).pop():null,sources:this.uniqueSources.map((t=>e.file?getRelativePath(e.file,t.filename):t.filename)),sourcesContent:this.uniqueSources.map((t=>e.includeContent?t.content:null)),names:t,mappings:n.raw}}generateMap(e){return new SourceMap(this.generateDecodedMap(e))}getIndentString(){const e={};this.sources.forEach((t=>{const n=t.content._getRawIndentString();if(n===null)return;if(!e[n])e[n]=0;e[n]+=1}));return Object.keys(e).sort(((t,n)=>e[t]-e[n]))[0]||"\t"}indent(e){if(!arguments.length){e=this.getIndentString()}if(e==="")return this;let t=!this.intro||this.intro.slice(-1)==="\n";this.sources.forEach(((n,r)=>{const i=n.separator!==undefined?n.separator:this.separator;const s=t||r>0&&/\r?\n$/.test(i);n.content.indent(e,{exclude:n.indentExclusionRanges,indentStart:s});t=n.content.lastChar()==="\n"}));if(this.intro){this.intro=e+this.intro.replace(/^[^\n]/gm,((t,n)=>n>0?e+t:t))}return this}prepend(e){this.intro=e+this.intro;return this}toString(){const e=this.sources.map(((e,t)=>{const n=e.separator!==undefined?e.separator:this.separator;const r=(t>0?n:"")+e.content.toString();return r})).join("");return this.intro+e}isEmpty(){if(this.intro.length&&this.intro.trim())return false;if(this.sources.some((e=>!e.content.isEmpty())))return false;return true}length(){return this.sources.reduce(((e,t)=>e+t.content.length()),this.intro.length)}trimLines(){return this.trim("[\\r\\n]")}trim(e){return this.trimStart(e).trimEnd(e)}trimStart(e){const t=new RegExp("^"+(e||"\\s")+"+");this.intro=this.intro.replace(t,"");if(!this.intro){let t;let n=0;do{t=this.sources[n++];if(!t){break}}while(!t.content.trimStartAborted(e))}return this}trimEnd(e){const t=new RegExp((e||"\\s")+"+$");let n;let r=this.sources.length-1;do{n=this.sources[r--];if(!n){this.intro=this.intro.replace(t,"");break}}while(!n.content.trimEndAborted(e));return this}}MagicString.Bundle=Bundle;MagicString.SourceMap=SourceMap;MagicString.default=MagicString;e.exports=MagicString},417:function(e,t){(function(e,n){true?n(t):0})(this,(function(e){"use strict";var t={};var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";for(var r=0;r>>=1;if(d){l=l===0?-2147483648:-l}i[s]+=l;s++;l=a=0}}}segmentify(r,i,s);n.push(r);return n}function segmentify(e,t,n){if(n===4)e.push([t[0],t[1],t[2],t[3]]);else if(n===5)e.push([t[0],t[1],t[2],t[3],t[4]]);else if(n===1)e.push([t[0]])}function encode(e){var t=0;var n=0;var r=0;var i=0;var s="";for(var o=0;o0)s+=";";if(a.length===0)continue;var l=0;var u=[];for(var c=0,h=a;c1){f+=encodeInteger(d[1]-t)+encodeInteger(d[2]-n)+encodeInteger(d[3]-r);t=d[1];n=d[2];r=d[3]}if(d.length===5){f+=encodeInteger(d[4]-i);i=d[4]}u.push(f)}s+=u.join(",")}return s}function encodeInteger(e){var t="";e=e<0?-e<<1|1:e<<1;do{var r=e&31;e>>>=5;if(e>0){r|=32}t+=n[r]}while(e>0);return t}e.decode=decode;e.encode=encode;Object.defineProperty(e,"__esModule",{value:true})}))},5:function(e){"use strict";e.exports=require("crypto")},33:function(e){"use strict";e.exports=require("module")},411:function(e){"use strict";e.exports=require("path")},41:function(e){"use strict";e.exports=require("url")},224:function(e){"use strict";e.exports=require("tty")},310:function(e){"use strict";e.exports=require("url")},203:function(e){"use strict";e.exports=require("vite")},274:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:true});const r=n(411);const i=n(5);const s=n(33);const o=n(41);const a=n(203);const l=n(877);const u=n(224);var c={exports:{}};let h=u;let d=!("NO_COLOR"in process.env||process.argv.includes("--no-color"))&&("FORCE_COLOR"in process.env||process.argv.includes("--color")||process.platform==="win32"||h.isatty(1)&&process.env.TERM!=="dumb"||"CI"in process.env);let formatter=(e,t,n=e)=>r=>{let i=""+r;let s=i.indexOf(t,e.length);return~s?e+replaceClose(i,t,n,s)+t:e+i+t};let replaceClose=(e,t,n,r)=>{let i=e.substring(0,r)+n;let s=e.substring(r+t.length);let o=s.indexOf(t);return~o?i+replaceClose(s,t,n,o):i+s};let createColors=(e=d)=>({isColorSupported:e,reset:e?e=>`${e}`:String,bold:e?formatter("","",""):String,dim:e?formatter("","",""):String,italic:e?formatter("",""):String,underline:e?formatter("",""):String,inverse:e?formatter("",""):String,hidden:e?formatter("",""):String,strikethrough:e?formatter("",""):String,black:e?formatter("",""):String,red:e?formatter("",""):String,green:e?formatter("",""):String,yellow:e?formatter("",""):String,blue:e?formatter("",""):String,magenta:e?formatter("",""):String,cyan:e?formatter("",""):String,white:e?formatter("",""):String,gray:e?formatter("",""):String,bgBlack:e?formatter("",""):String,bgRed:e?formatter("",""):String,bgGreen:e?formatter("",""):String,bgYellow:e?formatter("",""):String,bgBlue:e?formatter("",""):String,bgMagenta:e?formatter("",""):String,bgCyan:e?formatter("",""):String,bgWhite:e?formatter("",""):String});c.exports=createColors();c.exports.createColors=createColors;let f;async function loadBabel(){if(!f){f=await n.e(186).then(n.t.bind(n,186,23))}return f}function toOutputFilePathInHtml(e,t,n,r,i,s){const{renderBuiltUrl:o}=i.experimental;let a=i.base===""||i.base==="./";if(o){const s=o(e,{hostId:n,hostType:r,type:t,ssr:!!i.build.ssr});if(typeof s==="object"){if(s.runtime){throw new Error(`{ runtime: "${s.runtime}" } is not supported for assets in ${r} files: ${e}`)}if(typeof s.relative==="boolean"){a=s.relative}}else if(s){return s}}if(a&&!i.build.ssr){return s(e,n)}else{return i.base+e}}function getBaseInHTML(e,t){return t.base==="./"||t.base===""?r.posix.join(r.posix.relative(e,"").slice(0,-2),"./"):t.base}function toAssetPathFromHtml(e,t,n){const i=a.normalizePath(r.relative(n.root,t));const toRelative=(e,t)=>getBaseInHTML(i,n)+e;return toOutputFilePathInHtml(e,"asset",t,"html",n,toRelative)}const p=`!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",(function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()}),!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();`;const g="vite-legacy-polyfill";const m="vite-legacy-entry";const y=`System.import(document.getElementById('${m}').getAttribute('data-src'))`;const b="__vite_is_modern_browser";const w=`try{import.meta.url;import("_").catch(()=>1);}catch(e){}window.${b}=true;`;const _=`!function(){if(window.${b})return;console.warn("vite: loading legacy build because dynamic import or import.meta.url is unsupported, syntax error above should be ignored");var e=document.getElementById("${g}"),n=document.createElement("script");n.src=e.src,n.onload=function(){${y}},document.body.appendChild(n)}();`;const v=`export function __vite_legacy_guard(){import('data:text/javascript,')};`;const S=`__VITE_IS_LEGACY__`;const x=s.createRequire(typeof document==="undefined"?new(n(310).URL)("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("index.cjs",document.baseURI).href);function viteLegacyPlugin(e={}){let t;const n=e.targets||"defaults";const i=e.renderLegacyChunks!==false;const s=i;const o=(process.env.DEBUG||"").split(",");const a=o.includes("vite:*")||o.includes("vite:legacy");const u=new Map;const h=new Map;const d=new Map;const f=new Set;const b=new Set;if(Array.isArray(e.modernPolyfills)){e.modernPolyfills.forEach((e=>{f.add(e.includes("/")?`core-js/${e}`:`core-js/modules/${e}.js`)}))}if(Array.isArray(e.polyfills)){e.polyfills.forEach((e=>{if(e.startsWith(`regenerator`)){b.add(`regenerator-runtime/runtime.js`)}else{b.add(e.includes("/")?`core-js/${e}`:`core-js/modules/${e}.js`)}}))}if(Array.isArray(e.additionalLegacyPolyfills)){e.additionalLegacyPolyfills.forEach((e=>{b.add(e)}))}let x=false;const C={name:"vite:legacy-config",config(e,t){if(t.command==="build"){if(!e.build){e.build={}}if(!e.build.cssTarget){e.build.cssTarget="chrome61"}if(i){x=e.build.target!==void 0;e.build.target=["es2020","edge79","firefox67","chrome64","safari11.1"]}}return{define:{"import.meta.env.LEGACY":t.command==="serve"||e.build?.ssr?false:S}}},configResolved(e){if(x){e.logger.warn(c.exports.yellow(`plugin-legacy overrode 'build.target'. You should pass 'targets' as an option to this plugin with the list of legacy browsers to support instead.`))}}};const E={name:"vite:legacy-generate-polyfill-chunk",apply:"build",async generateBundle(r,o){if(t.build.ssr){return}if(!isLegacyBundle(o,r)){if(!f.size){return}a&&console.log(`[@vitejs/plugin-legacy] modern polyfills:`,f);await buildPolyfillChunk(t.mode,f,o,d,t.build,"es",r,true);return}if(!i){return}if(b.size||s){await detectPolyfills(`Promise.resolve(); Promise.all();`,n,b);a&&console.log(`[@vitejs/plugin-legacy] legacy polyfills:`,b);await buildPolyfillChunk(t.mode,b,o,h,t.build,"iife",r,e.externalSystemJS)}}};const k={name:"vite:legacy-post-process",enforce:"post",apply:"build",configResolved(e){if(e.build.lib){throw new Error("@vitejs/plugin-legacy does not support library mode.")}t=e;if(!i||t.build.ssr){return}const getLegacyOutputFileName=(e,n="[name]-legacy.[hash].js")=>{if(!e){return r.posix.join(t.build.assetsDir,n)}return t=>{let n=typeof e==="function"?e(t):e;if(n.includes("[name]")){n=n.replace("[name]","[name]-legacy")}else{n=n.replace(/(.+)\.(.+)/,"$1-legacy.$2")}return n}};const createLegacyOutput=(e={})=>({...e,format:"system",entryFileNames:getLegacyOutputFileName(e.entryFileNames),chunkFileNames:getLegacyOutputFileName(e.chunkFileNames)});const{rollupOptions:n}=t.build;const{output:s}=n;if(Array.isArray(s)){n.output=[...s.map(createLegacyOutput),...s]}else{n.output=[createLegacyOutput(s),s||{}]}},async renderChunk(r,o,a){if(t.build.ssr){return null}if(!isLegacyChunk(o,a)){if(e.modernPolyfills&&!Array.isArray(e.modernPolyfills)){await detectPolyfills(r,{esmodules:true},f)}const n=new l(r);if(s&&o.isEntry){n.prepend(v)}if(r.includes(S)){const e=new RegExp(S,"g");let t;while(t=e.exec(r)){n.overwrite(t.index,t.index+S.length,`false`)}}if(t.build.sourcemap){return{code:n.toString(),map:n.generateMap({hires:true})}}return{code:n.toString()}}if(!i){return null}a.__vite_skip_esbuild__=true;a.__vite_force_terser__=true;a.__vite_skip_asset_emit__=true;const u=e.polyfills!==false&&!Array.isArray(e.polyfills);const c=!!t.build.sourcemap;const h=await loadBabel();const{code:d,map:p}=h.transform(r,{babelrc:false,configFile:false,compact:!!t.build.minify,sourceMaps:c,inputSourceMap:c?o.map:void 0,presets:[[()=>({plugins:[recordAndRemovePolyfillBabelPlugin(b),replaceLegacyEnvBabelPlugin(),wrapIIFEBabelPlugin()]})],["env",createBabelPresetEnvOptions(n,{needPolyfills:u,ignoreBrowserslistConfig:e.ignoreBrowserslistConfig})]]});if(d)return{code:d,map:p};return null},transformIndexHtml(e,{chunk:n}){if(t.build.ssr)return;if(!n)return;if(n.fileName.includes("-legacy")){u.set(n.facadeModuleId,n.fileName);return}const r=[];const o=n.facadeModuleId?.replace(/\?.*$/,"");const a=d.get(n.facadeModuleId);if(a){r.push({tag:"script",attrs:{type:"module",crossorigin:true,src:toAssetPathFromHtml(a,n.facadeModuleId,t)}})}else if(f.size){throw new Error(`No corresponding modern polyfill chunk found for ${o}`)}if(!i){return{html:e,tags:r}}r.push({tag:"script",attrs:{nomodule:true},children:p,injectTo:"body"});const l=h.get(n.facadeModuleId);if(l){r.push({tag:"script",attrs:{nomodule:true,crossorigin:true,id:g,src:toAssetPathFromHtml(l,n.facadeModuleId,t)},injectTo:"body"})}else if(b.size){throw new Error(`No corresponding legacy polyfill chunk found for ${o}`)}const c=u.get(n.facadeModuleId);if(c){r.push({tag:"script",attrs:{nomodule:true,crossorigin:true,id:m,"data-src":toAssetPathFromHtml(c,n.facadeModuleId,t)},children:y,injectTo:"body"})}else{throw new Error(`No corresponding legacy entry chunk found for ${o}`)}if(s&&l&&c){r.push({tag:"script",attrs:{type:"module"},children:w,injectTo:"head"});r.push({tag:"script",attrs:{type:"module"},children:_,injectTo:"head"})}return{html:e,tags:r}},generateBundle(e,n){if(t.build.ssr){return}if(isLegacyBundle(n,e)){for(const e in n){if(n[e].type==="asset"){delete n[e]}}}}};return[C,E,k]}async function detectPolyfills(e,t,n){const r=await loadBabel();const{ast:i}=r.transform(e,{ast:true,babelrc:false,configFile:false,presets:[["env",createBabelPresetEnvOptions(t,{ignoreBrowserslistConfig:true})]]});for(const e of i.program.body){if(e.type==="ImportDeclaration"){const t=e.source.value;if(t.startsWith("core-js/")||t.startsWith("regenerator-runtime/")){n.add(t)}}}}function createBabelPresetEnvOptions(e,{needPolyfills:t=true,ignoreBrowserslistConfig:n}){return{targets:e,bugfixes:true,loose:false,modules:false,useBuiltIns:t?"usage":false,corejs:t?{version:x("core-js/package.json").version,proposals:false}:void 0,shippedProposals:true,ignoreBrowserslistConfig:n}}async function buildPolyfillChunk(e,t,i,s,l,u,c,h){let{minify:d,assetsDir:f}=l;d=d?"terser":false;const p=await a.build({mode:e,root:r.dirname(o.fileURLToPath(typeof document==="undefined"?new(n(310).URL)("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("index.cjs",document.baseURI).href)),configFile:false,logLevel:"error",plugins:[polyfillsPlugin(t,h)],build:{write:false,minify:d,assetsDir:f,rollupOptions:{input:{polyfills:C},output:{format:u,entryFileNames:c.entryFileNames}}},esbuild:false,optimizeDeps:{esbuildOptions:{target:"es5"}}});const g=Array.isArray(p)?p[0]:p;if(!("output"in g))return;const m=g.output[0];for(const e in i){const t=i[e];if(t.type==="chunk"&&t.facadeModuleId){s.set(t.facadeModuleId,m.fileName)}}i[m.fileName]=m}const C="\0vite/legacy-polyfills";function polyfillsPlugin(e,t){return{name:"vite:legacy-polyfills",resolveId(e){if(e===C){return e}},load(n){if(n===C){return[...e].map((e=>`import "${e}";`)).join("")+(t?"":`import "systemjs/dist/s.min.js";`)}}}}function isLegacyChunk(e,t){return t.format==="system"&&e.fileName.includes("-legacy")}function isLegacyBundle(e,t){if(t.format==="system"){const t=Object.values(e).find((e=>e.type==="chunk"&&e.isEntry));return!!t&&t.fileName.includes("-legacy")}return false}function recordAndRemovePolyfillBabelPlugin(e){return({types:t})=>({name:"vite-remove-polyfill-import",post({path:n}){n.get("body").forEach((n=>{if(t.isImportDeclaration(n)){e.add(n.node.source.value);n.remove()}}))}})}function replaceLegacyEnvBabelPlugin(){return({types:e})=>({name:"vite-replace-env-legacy",visitor:{Identifier(t){if(t.node.name===S){t.replaceWith(e.booleanLiteral(true))}}}})}function wrapIIFEBabelPlugin(){return({types:e,template:t})=>{const n=t(";(function(){%%body%%})();");return{name:"vite-wrap-iife",post({path:t}){if(!this.isWrapped){this.isWrapped=true;t.replaceWith(e.program(n({body:t.node.body})))}}}}}const E=[i.createHash("sha256").update(p).digest("base64"),i.createHash("sha256").update(y).digest("base64"),i.createHash("sha256").update(w).digest("base64"),i.createHash("sha256").update(_).digest("base64")];e.exports=viteLegacyPlugin;e.exports.cspHashes=E;e.exports["default"]=viteLegacyPlugin;e.exports.detectPolyfills=detectPolyfills}};var t={};function __nccwpck_require__(n){var r=t[n];if(r!==undefined){return r.exports}var i=t[n]={exports:{}};var s=true;try{e[n].call(i.exports,i,i.exports,__nccwpck_require__);s=false}finally{if(s)delete t[n]}return i.exports}__nccwpck_require__.m=e;!function(){var e=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};var t;__nccwpck_require__.t=function(n,r){if(r&1)n=this(n);if(r&8)return n;if(typeof n==="object"&&n){if(r&4&&n.__esModule)return n;if(r&16&&typeof n.then==="function")return n}var i=Object.create(null);__nccwpck_require__.r(i);var s={};t=t||[null,e({}),e([]),e(e)];for(var o=r&2&&n;typeof o=="object"&&!~t.indexOf(o);o=e(o)){Object.getOwnPropertyNames(o).forEach((function(e){s[e]=function(){return n[e]}}))}s["default"]=function(){return n};__nccwpck_require__.d(i,s);return i}}();!function(){__nccwpck_require__.d=function(e,t){for(var n in t){if(__nccwpck_require__.o(t,n)&&!__nccwpck_require__.o(e,n)){Object.defineProperty(e,n,{enumerable:true,get:t[n]})}}}}();!function(){__nccwpck_require__.f={};__nccwpck_require__.e=function(e){return Promise.all(Object.keys(__nccwpck_require__.f).reduce((function(t,n){__nccwpck_require__.f[n](e,t);return t}),[]))}}();!function(){__nccwpck_require__.u=function(e){return""+e+".index.cjs.js"}}();!function(){__nccwpck_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}();!function(){__nccwpck_require__.r=function(e){if(typeof Symbol!=="undefined"&&Symbol.toStringTag){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}Object.defineProperty(e,"__esModule",{value:true})}}();if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";!function(){var e={179:1};var installChunk=function(t){var n=t.modules,r=t.ids,i=t.runtime;for(var s in n){if(__nccwpck_require__.o(n,s)){__nccwpck_require__.m[s]=n[s]}}if(i)i(__nccwpck_require__);for(var o=0;o>>=1;if(l){n=-2147483648|-n}s[r]+=n;return t}function hasMoreVlq(e,s,r){if(s>=r)return false;return e.charCodeAt(s)!==t}function sort(e){e.sort(sortComparator)}function sortComparator(e,t){return e[0]-t[0]}function encode(e){const r=new Int32Array(5);const n=1024*16;const i=n-36;const a=new Uint8Array(n);const l=a.subarray(0,i);let u=0;let c="";for(let f=0;f0){if(u===n){c+=o.decode(a);u=0}a[u++]=s}if(d.length===0)continue;r[0]=0;for(let e=0;ei){c+=o.decode(l);a.copyWithin(0,i,u);u-=i}if(e>0)a[u++]=t;u=encodeInteger(a,u,r,s,0);if(s.length===1)continue;u=encodeInteger(a,u,r,s,1);u=encodeInteger(a,u,r,s,2);u=encodeInteger(a,u,r,s,3);if(s.length===4)continue;u=encodeInteger(a,u,r,s,4)}}return c+o.decode(a.subarray(0,u))}function encodeInteger(e,t,s,r,i){const o=r[i];let a=o-s[i];s[i]=o;a=a<0?-a<<1|1:a<<1;do{let s=a&31;a>>>=5;if(a>0)s|=32;e[t++]=n[s]}while(a>0);return t}e.decode=decode;e.encode=encode;Object.defineProperty(e,"__esModule",{value:true})}))},8769:function(e){function BrowserslistError(e){this.name="BrowserslistError";this.message=e;this.browserslist=true;if(Error.captureStackTrace){Error.captureStackTrace(this,BrowserslistError)}}BrowserslistError.prototype=Error.prototype;e.exports=BrowserslistError},2333:function(e,t,s){var r=s(8074);var n=s(4562).D;var i=s(1660);var o=s(1017);var a=s(9476);var l=s(8769);var u=s(6621);var c=s(8477);var f=365.259641*24*60*60*1e3;var d=37;function isVersionsMatch(e,t){return(e+".").indexOf(t+".")===0}function isEolReleased(e){var t=e.slice(1);return browserslist.nodeVersions.some((function(e){return isVersionsMatch(e,t)}))}function normalize(e){return e.filter((function(e){return typeof e==="string"}))}function normalizeElectron(e){var t=e;if(e.split(".").length===3){t=e.split(".").slice(0,-1).join(".")}return t}function nameMapper(e){return function mapName(t){return e+" "+t}}function getMajor(e){return parseInt(e.split(".")[0])}function getMajorVersions(e,t){if(e.length===0)return[];var s=uniq(e.map(getMajor));var r=s[s.length-t];if(!r){return e}var n=[];for(var i=e.length-1;i>=0;i--){if(r>getMajor(e[i]))break;n.unshift(e[i])}return n}function uniq(e){var t=[];for(var s=0;s"){return function(e){return parseFloat(e)>t}}else if(e===">="){return function(e){return parseFloat(e)>=t}}else if(e==="<"){return function(e){return parseFloat(e)"){return function(e){e=e.split(".").map(parseSimpleInt);return compareSemver(e,t)>0}}else if(e===">="){return function(e){e=e.split(".").map(parseSimpleInt);return compareSemver(e,t)>=0}}else if(e==="<"){return function(e){e=e.split(".").map(parseSimpleInt);return compareSemver(t,e)>0}}else{return function(e){e=e.split(".").map(parseSimpleInt);return compareSemver(t,e)>=0}}}function parseSimpleInt(e){return parseInt(e)}function compare(e,t){if(et)return+1;return 0}function compareSemver(e,t){return compare(parseInt(e[0]),parseInt(t[0]))||compare(parseInt(e[1]||"0"),parseInt(t[1]||"0"))||compare(parseInt(e[2]||"0"),parseInt(t[2]||"0"))}function semverFilterLoose(e,t){t=t.split(".").map(parseSimpleInt);if(typeof t[1]==="undefined"){t[1]="x"}switch(e){case"<=":return function(e){e=e.split(".").map(parseSimpleInt);return compareSemverLoose(e,t)<=0};case">=":default:return function(e){e=e.split(".").map(parseSimpleInt);return compareSemverLoose(e,t)>=0}}}function compareSemverLoose(e,t){if(e[0]!==t[0]){return e[0]=e}));return s.concat(i.map(nameMapper(n.name)))}),[])}function cloneData(e){return{name:e.name,versions:e.versions,released:e.released,releaseDate:e.releaseDate}}function mapVersions(e,t){e.versions=e.versions.map((function(e){return t[e]||e}));e.released=e.released.map((function(e){return t[e]||e}));var s={};for(var r in e.releaseDate){s[t[r]||r]=e.releaseDate[r]}e.releaseDate=s;return e}function byName(e,t){e=e.toLowerCase();e=browserslist.aliases[e]||e;if(t.mobileToDesktop&&browserslist.desktopNames[e]){var s=browserslist.data[browserslist.desktopNames[e]];if(e==="android"){return normalizeAndroidData(cloneData(browserslist.data[e]),s)}else{var r=cloneData(s);r.name=e;if(e==="op_mob"){r=mapVersions(r,{"10.0-10.1":"10"})}return r}}return browserslist.data[e]}function normalizeAndroidVersions(e,t){var s=d;var r=t[t.length-1];return e.filter((function(e){return/^(?:[2-4]\.|[34]$)/.test(e)})).concat(t.slice(s-r-1))}function normalizeAndroidData(e,t){e.released=normalizeAndroidVersions(e.released,t.released);e.versions=normalizeAndroidVersions(e.versions,t.versions);return e}function checkName(e,t){var s=byName(e,t);if(!s)throw new l("Unknown browser "+e);return s}function unknownQuery(e){return new l("Unknown browser query `"+e+"`. "+"Maybe you are using old Browserslist or made typo in query.")}function filterAndroid(e,t,s){if(s.mobileToDesktop)return e;var r=browserslist.data.android.released;var n=r[r.length-1];var i=n-d-t;if(i>0){return e.slice(-1)}else{return e.slice(i-1)}}function resolve(e,t){return u(p,e).reduce((function(e,s,r){if(s.not&&r===0){throw new l("Write any browsers query (for instance, `defaults`) "+"before `"+s.query+"`")}var n=p[s.type];var i=n.select.call(browserslist,t,s).map((function(e){var s=e.split(" ");if(s[1]==="0"){return s[0]+" "+byName(s[0],t).versions[0]}else{return e}}));if(s.compose==="and"){if(s.not){return e.filter((function(e){return i.indexOf(e)===-1}))}else{return e.filter((function(e){return i.indexOf(e)!==-1}))}}else{if(s.not){var o={};i.forEach((function(e){o[e]=true}));return e.filter((function(e){return!o[e]}))}return e.concat(i)}}),[])}function prepareOpts(e){if(typeof e==="undefined")e={};if(typeof e.path==="undefined"){e.path=o.resolve?o.resolve("."):"."}return e}function prepareQueries(e,t){if(typeof e==="undefined"||e===null){var s=browserslist.loadConfig(t);if(s){e=s}else{e=browserslist.defaults}}return e}function checkQueries(e){if(!(typeof e==="string"||Array.isArray(e))){throw new l("Browser queries must be an array or string. Got "+typeof e+".")}}var m={};function browserslist(e,t){t=prepareOpts(t);e=prepareQueries(e,t);checkQueries(e);var s={ignoreUnknownVersions:t.ignoreUnknownVersions,dangerousExtend:t.dangerousExtend,mobileToDesktop:t.mobileToDesktop,path:t.path,env:t.env};c.oldDataWarning(browserslist.data);var r=c.getStat(t,browserslist.data);if(r){s.customUsage={};for(var n in r){fillUsage(s.customUsage,n,r[n])}}var i=JSON.stringify([e,s]);if(m[i])return m[i];var o=uniq(resolve(e,s)).sort((function(e,t){e=e.split(" ");t=t.split(" ");if(e[0]===t[0]){var s=e[1].split("-")[0];var r=t[1].split("-")[0];return compareSemver(r.split("."),s.split("."))}else{return compare(e[0],t[0])}}));if(!c.env.BROWSERSLIST_DISABLE_CACHE){m[i]=o}return o}browserslist.parse=function(e,t){t=prepareOpts(t);e=prepareQueries(e,t);checkQueries(e);return u(p,e)};browserslist.cache={};browserslist.data={};browserslist.usage={global:{},custom:null};browserslist.defaults=["> 0.5%","last 2 versions","Firefox ESR","not dead"];browserslist.aliases={fx:"firefox",ff:"firefox",ios:"ios_saf",explorer:"ie",blackberry:"bb",explorermobile:"ie_mob",operamini:"op_mini",operamobile:"op_mob",chromeandroid:"and_chr",firefoxandroid:"and_ff",ucandroid:"and_uc",qqandroid:"and_qq"};browserslist.desktopNames={and_chr:"chrome",and_ff:"firefox",ie_mob:"ie",op_mob:"opera",android:"chrome"};browserslist.versionAliases={};browserslist.clearCaches=c.clearCaches;browserslist.parseConfig=c.parseConfig;browserslist.readConfig=c.readConfig;browserslist.findConfig=c.findConfig;browserslist.loadConfig=c.loadConfig;browserslist.coverage=function(e,t){var s;if(typeof t==="undefined"){s=browserslist.usage.global}else if(t==="my stats"){var r={};r.path=o.resolve?o.resolve("."):".";var n=c.getStat(r);if(!n){throw new l("Custom usage statistics was not provided")}s={};for(var i in n){fillUsage(s,i,n[i])}}else if(typeof t==="string"){if(t.length>2){t=t.toLowerCase()}else{t=t.toUpperCase()}c.loadCountry(browserslist.usage,t,browserslist.data);s=browserslist.usage[t]}else{if("dataByBrowser"in t){t=t.dataByBrowser}s={};for(var a in t){for(var u in t[a]){s[a+" "+u]=t[a][u]}}}return e.reduce((function(e,t){var r=s[t];if(r===undefined){r=s[t.replace(/ \S+$/," 0")]}return e+(r||0)}),0)};function nodeQuery(e,t){var s=browserslist.nodeVersions.filter((function(e){return isVersionsMatch(e,t.version)}));if(s.length===0){if(e.ignoreUnknownVersions){return[]}else{throw new l("Unknown version "+t.version+" of Node.js")}}return["node "+s[s.length-1]]}function sinceQuery(e,t){var s=parseInt(t.year);var r=parseInt(t.month||"01")-1;var n=parseInt(t.day||"01");return filterByYear(Date.UTC(s,r,n,0,0,0),e)}function coverQuery(e,t){var s=parseFloat(t.coverage);var r=browserslist.usage.global;if(t.place){if(t.place.match(/^my\s+stats$/i)){if(!e.customUsage){throw new l("Custom usage statistics was not provided")}r=e.customUsage}else{var n;if(t.place.length===2){n=t.place.toUpperCase()}else{n=t.place.toLowerCase()}c.loadCountry(browserslist.usage,n,browserslist.data);r=browserslist.usage[n]}}var i=Object.keys(r).sort((function(e,t){return r[t]-r[e]}));var o=0;var a=[];var u;for(var f=0;f=s)break}return a}var p={last_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+major\s+versions?$/i,select:function(e,t){return Object.keys(n).reduce((function(s,r){var n=byName(r,e);if(!n)return s;var i=getMajorVersions(n.released,t.versions);i=i.map(nameMapper(n.name));if(n.name==="android"){i=filterAndroid(i,t.versions,e)}return s.concat(i)}),[])}},last_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+versions?$/i,select:function(e,t){return Object.keys(n).reduce((function(s,r){var n=byName(r,e);if(!n)return s;var i=n.released.slice(-t.versions);i=i.map(nameMapper(n.name));if(n.name==="android"){i=filterAndroid(i,t.versions,e)}return s.concat(i)}),[])}},last_electron_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+electron\s+major\s+versions?$/i,select:function(e,t){var s=getMajorVersions(Object.keys(a),t.versions);return s.map((function(e){return"chrome "+a[e]}))}},last_node_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+node\s+major\s+versions?$/i,select:function(e,t){return getMajorVersions(browserslist.nodeVersions,t.versions).map((function(e){return"node "+e}))}},last_browser_major_versions:{matches:["versions","browser"],regexp:/^last\s+(\d+)\s+(\w+)\s+major\s+versions?$/i,select:function(e,t){var s=checkName(t.browser,e);var r=getMajorVersions(s.released,t.versions);var n=r.map(nameMapper(s.name));if(s.name==="android"){n=filterAndroid(n,t.versions,e)}return n}},last_electron_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+electron\s+versions?$/i,select:function(e,t){return Object.keys(a).slice(-t.versions).map((function(e){return"chrome "+a[e]}))}},last_node_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+node\s+versions?$/i,select:function(e,t){return browserslist.nodeVersions.slice(-t.versions).map((function(e){return"node "+e}))}},last_browser_versions:{matches:["versions","browser"],regexp:/^last\s+(\d+)\s+(\w+)\s+versions?$/i,select:function(e,t){var s=checkName(t.browser,e);var r=s.released.slice(-t.versions).map(nameMapper(s.name));if(s.name==="android"){r=filterAndroid(r,t.versions,e)}return r}},unreleased_versions:{matches:[],regexp:/^unreleased\s+versions$/i,select:function(e){return Object.keys(n).reduce((function(t,s){var r=byName(s,e);if(!r)return t;var n=r.versions.filter((function(e){return r.released.indexOf(e)===-1}));n=n.map(nameMapper(r.name));return t.concat(n)}),[])}},unreleased_electron_versions:{matches:[],regexp:/^unreleased\s+electron\s+versions?$/i,select:function(){return[]}},unreleased_browser_versions:{matches:["browser"],regexp:/^unreleased\s+(\w+)\s+versions?$/i,select:function(e,t){var s=checkName(t.browser,e);return s.versions.filter((function(e){return s.released.indexOf(e)===-1})).map(nameMapper(s.name))}},last_years:{matches:["years"],regexp:/^last\s+(\d*.?\d+)\s+years?$/i,select:function(e,t){return filterByYear(Date.now()-f*t.years,e)}},since_y:{matches:["year"],regexp:/^since (\d+)$/i,select:sinceQuery},since_y_m:{matches:["year","month"],regexp:/^since (\d+)-(\d+)$/i,select:sinceQuery},since_y_m_d:{matches:["year","month","day"],regexp:/^since (\d+)-(\d+)-(\d+)$/i,select:sinceQuery},popularity:{matches:["sign","popularity"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%$/,select:function(e,t){var s=parseFloat(t.popularity);var r=browserslist.usage.global;return Object.keys(r).reduce((function(e,n){if(t.sign===">"){if(r[n]>s){e.push(n)}}else if(t.sign==="<"){if(r[n]=s){e.push(n)}return e}),[])}},popularity_in_my_stats:{matches:["sign","popularity"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+my\s+stats$/,select:function(e,t){var s=parseFloat(t.popularity);if(!e.customUsage){throw new l("Custom usage statistics was not provided")}var r=e.customUsage;return Object.keys(r).reduce((function(e,n){var i=r[n];if(i==null){return e}if(t.sign===">"){if(i>s){e.push(n)}}else if(t.sign==="<"){if(i=s){e.push(n)}return e}),[])}},popularity_in_config_stats:{matches:["sign","popularity","config"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/,select:function(e,t){var s=parseFloat(t.popularity);var r=c.loadStat(e,t.config,browserslist.data);if(r){e.customUsage={};for(var n in r){fillUsage(e.customUsage,n,r[n])}}if(!e.customUsage){throw new l("Custom usage statistics was not provided")}var i=e.customUsage;return Object.keys(i).reduce((function(e,r){var n=i[r];if(n==null){return e}if(t.sign===">"){if(n>s){e.push(r)}}else if(t.sign==="<"){if(n=s){e.push(r)}return e}),[])}},popularity_in_place:{matches:["sign","popularity","place"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+((alt-)?\w\w)$/,select:function(e,t){var s=parseFloat(t.popularity);var r=t.place;if(r.length===2){r=r.toUpperCase()}else{r=r.toLowerCase()}c.loadCountry(browserslist.usage,r,browserslist.data);var n=browserslist.usage[r];return Object.keys(n).reduce((function(e,r){var i=n[r];if(i==null){return e}if(t.sign===">"){if(i>s){e.push(r)}}else if(t.sign==="<"){if(i=s){e.push(r)}return e}),[])}},cover:{matches:["coverage"],regexp:/^cover\s+(\d+|\d+\.\d+|\.\d+)%$/i,select:coverQuery},cover_in:{matches:["coverage","place"],regexp:/^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(my\s+stats|(alt-)?\w\w)$/i,select:coverQuery},supports:{matches:["feature"],regexp:/^supports\s+([\w-]+)$/,select:function(e,t){c.loadFeature(browserslist.cache,t.feature);var s=browserslist.cache[t.feature];return Object.keys(s).reduce((function(e,t){var r=s[t];if(r.indexOf("y")>=0||r.indexOf("a")>=0){e.push(t)}return e}),[])}},electron_range:{matches:["from","to"],regexp:/^electron\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,t){var s=normalizeElectron(t.from);var r=normalizeElectron(t.to);var n=parseFloat(t.from);var i=parseFloat(t.to);if(!a[s]){throw new l("Unknown version "+n+" of electron")}if(!a[r]){throw new l("Unknown version "+i+" of electron")}return Object.keys(a).filter((function(e){var t=parseFloat(e);return t>=n&&t<=i})).map((function(e){return"chrome "+a[e]}))}},node_range:{matches:["from","to"],regexp:/^node\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,t){return browserslist.nodeVersions.filter(semverFilterLoose(">=",t.from)).filter(semverFilterLoose("<=",t.to)).map((function(e){return"node "+e}))}},browser_range:{matches:["browser","from","to"],regexp:/^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,t){var s=checkName(t.browser,e);var r=parseFloat(normalizeVersion(s,t.from)||t.from);var n=parseFloat(normalizeVersion(s,t.to)||t.to);function filter(e){var t=parseFloat(e);return t>=r&&t<=n}return s.released.filter(filter).map(nameMapper(s.name))}},electron_ray:{matches:["sign","version"],regexp:/^electron\s*(>=?|<=?)\s*([\d.]+)$/i,select:function(e,t){var s=normalizeElectron(t.version);return Object.keys(a).filter(generateFilter(t.sign,s)).map((function(e){return"chrome "+a[e]}))}},node_ray:{matches:["sign","version"],regexp:/^node\s*(>=?|<=?)\s*([\d.]+)$/i,select:function(e,t){return browserslist.nodeVersions.filter(generateSemverFilter(t.sign,t.version)).map((function(e){return"node "+e}))}},browser_ray:{matches:["browser","sign","version"],regexp:/^(\w+)\s*(>=?|<=?)\s*([\d.]+)$/,select:function(e,t){var s=t.version;var r=checkName(t.browser,e);var n=browserslist.versionAliases[r.name][s];if(n)s=n;return r.released.filter(generateFilter(t.sign,s)).map((function(e){return r.name+" "+e}))}},firefox_esr:{matches:[],regexp:/^(firefox|ff|fx)\s+esr$/i,select:function(){return["firefox 102"]}},opera_mini_all:{matches:[],regexp:/(operamini|op_mini)\s+all/i,select:function(){return["op_mini all"]}},electron_version:{matches:["version"],regexp:/^electron\s+([\d.]+)$/i,select:function(e,t){var s=normalizeElectron(t.version);var r=a[s];if(!r){throw new l("Unknown version "+t.version+" of electron")}return["chrome "+r]}},node_major_version:{matches:["version"],regexp:/^node\s+(\d+)$/i,select:nodeQuery},node_minor_version:{matches:["version"],regexp:/^node\s+(\d+\.\d+)$/i,select:nodeQuery},node_patch_version:{matches:["version"],regexp:/^node\s+(\d+\.\d+\.\d+)$/i,select:nodeQuery},current_node:{matches:[],regexp:/^current\s+node$/i,select:function(e){return[c.currentNode(resolve,e)]}},maintained_node:{matches:[],regexp:/^maintained\s+node\s+versions$/i,select:function(e){var t=Date.now();var s=Object.keys(i).filter((function(e){return tDate.parse(i[e].start)&&isEolReleased(e)})).map((function(e){return"node "+e.slice(1)}));return resolve(s,e)}},phantomjs_1_9:{matches:[],regexp:/^phantomjs\s+1.9$/i,select:function(){return["safari 5"]}},phantomjs_2_1:{matches:[],regexp:/^phantomjs\s+2.1$/i,select:function(){return["safari 6"]}},browser_version:{matches:["browser","version"],regexp:/^(\w+)\s+(tp|[\d.]+)$/i,select:function(e,t){var s=t.version;if(/^tp$/i.test(s))s="TP";var r=checkName(t.browser,e);var n=normalizeVersion(r,s);if(n){s=n}else{if(s.indexOf(".")===-1){n=s+".0"}else{n=s.replace(/\.0$/,"")}n=normalizeVersion(r,n);if(n){s=n}else if(e.ignoreUnknownVersions){return[]}else{throw new l("Unknown version "+s+" of "+t.browser)}}return[r.name+" "+s]}},browserslist_config:{matches:[],regexp:/^browserslist config$/i,select:function(e){return browserslist(undefined,e)}},extends:{matches:["config"],regexp:/^extends (.+)$/i,select:function(e,t){return resolve(c.loadQueries(e,t.config),e)}},defaults:{matches:[],regexp:/^defaults$/i,select:function(e){return resolve(browserslist.defaults,e)}},dead:{matches:[],regexp:/^dead$/i,select:function(e){var t=["Baidu >= 0","ie <= 11","ie_mob <= 11","bb <= 10","op_mob <= 12.1","samsung 4"];return resolve(t,e)}},unknown:{matches:[],regexp:/^(\w+)$/i,select:function(e,t){if(byName(t.query,e)){throw new l("Specify versions in Browserslist query for browser "+t.query)}else{throw unknownQuery(t.query)}}}};(function(){for(var e in n){var t=n[e];browserslist.data[e]={name:e,versions:normalize(n[e].versions),released:normalize(n[e].versions.slice(0,-3)),releaseDate:n[e].release_date};fillUsage(browserslist.usage.global,e,t.usage_global);browserslist.versionAliases[e]={};for(var s=0;s{t[n[s]]=e[s];return t}),{})}e.exports.D=Object.keys(i).reduce(((e,t)=>{let s=i[t];e[r[t]]=Object.keys(s).reduce(((e,t)=>{if(t==="A"){e.usage_global=unpackBrowserVersions(s[t])}else if(t==="C"){e.versions=s[t].reduce(((e,t)=>{if(t===""){e.push(null)}else{e.push(n[t])}return e}),[])}else if(t==="D"){e.prefix_exceptions=unpackBrowserVersions(s[t])}else if(t==="E"){e.browser=s[t]}else if(t==="F"){e.release_date=Object.keys(s[t]).reduce(((e,r)=>{e[n[r]]=s[t][r];return e}),{})}else{e.prefix=s[t]}return e}),{});return e}),{})},9964:function(e,t,s){e.exports.browserVersions=s(7534)},9219:function(e,t,s){e.exports.browsers=s(483)},3501:function(e,t,s){"use strict";const r=s(6359);const n=s(3391);const i=s(9219).browsers;const o=s(9964).browserVersions;const a=Math.log(2);function unpackSupport(e){let t=Object.keys(n).reduce(((t,s)=>{if(e&n[s])t.push(s);return t}),[]);let s=e>>7;let r=[];while(s){let e=Math.floor(Math.log(s)/a)+1;r.unshift(`#${e}`);s-=Math.pow(2,e-1)}return t.concat(r).join(" ")}function unpackFeature(e){let t={status:r[e.B],title:e.C};t.stats=Object.keys(e.A).reduce(((t,s)=>{let r=e.A[s];t[i[s]]=Object.keys(r).reduce(((e,t)=>{let s=r[t].split(" ");let n=unpackSupport(t);s.forEach((t=>e[o[t]]=n));return e}),{});return t}),{});return t}e.exports=unpackFeature;e.exports["default"]=unpackFeature},6777:function(e,t,s){"use strict";const r=s(9219).browsers;function unpackRegion(e){return Object.keys(e).reduce(((t,s)=>{let n=e[s];t[r[s]]=Object.keys(n).reduce(((e,t)=>{let s=n[t];if(t==="_"){s.split(" ").forEach((t=>e[t]=null))}else{e[t]=s}return e}),{});return t}),{})}e.exports=unpackRegion;e.exports["default"]=unpackRegion},9476:function(e){e.exports={"0.20":"39",.21:"41",.22:"41",.23:"41",.24:"41",.25:"42",.26:"42",.27:"43",.28:"43",.29:"43","0.30":"44",.31:"45",.32:"45",.33:"45",.34:"45",.35:"45",.36:"47",.37:"49","1.0":"49",1.1:"50",1.2:"51",1.3:"52",1.4:"53",1.5:"54",1.6:"56",1.7:"58",1.8:"59","2.0":"61",2.1:"61","3.0":"66",3.1:"66","4.0":"69",4.1:"69",4.2:"69","5.0":"73","6.0":"76",6.1:"76","7.0":"78",7.1:"78",7.2:"78",7.3:"78","8.0":"80",8.1:"80",8.2:"80",8.3:"80",8.4:"80",8.5:"80","9.0":"83",9.1:"83",9.2:"83",9.3:"83",9.4:"83","10.0":"85",10.1:"85",10.2:"85",10.3:"85",10.4:"85","11.0":"87",11.1:"87",11.2:"87",11.3:"87",11.4:"87",11.5:"87","12.0":"89",12.1:"89",12.2:"89","13.0":"91",13.1:"91",13.2:"91",13.3:"91",13.4:"91",13.5:"91",13.6:"91","14.0":"93",14.1:"93",14.2:"93","15.0":"94",15.1:"94",15.2:"94",15.3:"94",15.4:"94",15.5:"94","16.0":"96",16.1:"96",16.2:"96","17.0":"98",17.1:"98",17.2:"98",17.3:"98",17.4:"98","18.0":"100",18.1:"100",18.2:"100",18.3:"100","19.0":"102",19.1:"102","20.0":"104",20.1:"104",20.2:"104",20.3:"104","21.0":"106",21.1:"106","22.0":"108"}},9712:function(e,t,s){"use strict";var r=s(1961);class BitSet{constructor(e){this.bits=e instanceof BitSet?e.bits.slice():[]}add(e){this.bits[e>>5]|=1<<(e&31)}has(e){return!!(this.bits[e>>5]&1<<(e&31))}}class Chunk{constructor(e,t,s){this.start=e;this.end=t;this.original=s;this.intro="";this.outro="";this.content=s;this.storeName=false;this.edited=false;{this.previous=null;this.next=null}}appendLeft(e){this.outro+=e}appendRight(e){this.intro=this.intro+e}clone(){const e=new Chunk(this.start,this.end,this.original);e.intro=this.intro;e.outro=this.outro;e.content=this.content;e.storeName=this.storeName;e.edited=this.edited;return e}contains(e){return this.startwindow.btoa(unescape(encodeURIComponent(e)))}else if(typeof Buffer==="function"){return e=>Buffer.from(e,"utf-8").toString("base64")}else{return()=>{throw new Error("Unsupported environment: `window.btoa` or `Buffer` should be supported.")}}}const n=getBtoa();class SourceMap{constructor(e){this.version=3;this.file=e.file;this.sources=e.sources;this.sourcesContent=e.sourcesContent;this.names=e.names;this.mappings=r.encode(e.mappings)}toString(){return JSON.stringify(this)}toUrl(){return"data:application/json;charset=utf-8;base64,"+n(this.toString())}}function guessIndent(e){const t=e.split("\n");const s=t.filter((e=>/^\t+/.test(e)));const r=t.filter((e=>/^ {2,}/.test(e)));if(s.length===0&&r.length===0){return null}if(s.length>=r.length){return"\t"}const n=r.reduce(((e,t)=>{const s=/^ +/.exec(t)[0].length;return Math.min(s,e)}),Infinity);return new Array(n+1).join(" ")}function getRelativePath(e,t){const s=e.split(/[/\\]/);const r=t.split(/[/\\]/);s.pop();while(s[0]===r[0]){s.shift();r.shift()}if(s.length){let e=s.length;while(e--)s[e]=".."}return s.concat(r).join("/")}const i=Object.prototype.toString;function isObject(e){return i.call(e)==="[object Object]"}function getLocator(e){const t=e.split("\n");const s=[];for(let e=0,r=0;e>1;if(e=0){t.push(r)}this.rawSegments.push(t)}else if(this.pending){this.rawSegments.push(this.pending)}this.advance(t);this.pending=null}addUneditedChunk(e,t,s,r,n){let i=t.start;let o=true;while(i1){for(let e=0;e{const i=n(e.start);if(e.intro.length)r.advance(e.intro);if(e.edited){r.addEdit(t,e.content,i,e.storeName?s.indexOf(e.original):-1)}else{r.addUneditedChunk(t,e,this.original,i,this.sourcemapLocations)}if(e.outro.length)r.advance(e.outro)}));return{file:e.file?e.file.split(/[/\\]/).pop():null,sources:[e.source?getRelativePath(e.file||"",e.source):null],sourcesContent:e.includeContent?[this.original]:[null],names:s,mappings:r.raw}}generateMap(e){return new SourceMap(this.generateDecodedMap(e))}_ensureindentStr(){if(this.indentStr===undefined){this.indentStr=guessIndent(this.original)}}_getRawIndentString(){this._ensureindentStr();return this.indentStr}getIndentString(){this._ensureindentStr();return this.indentStr===null?"\t":this.indentStr}indent(e,t){const s=/^[^\r\n]/gm;if(isObject(e)){t=e;e=undefined}if(e===undefined){this._ensureindentStr();e=this.indentStr||"\t"}if(e==="")return this;t=t||{};const r={};if(t.exclude){const e=typeof t.exclude[0]==="number"?[t.exclude]:t.exclude;e.forEach((e=>{for(let t=e[0];t{if(n)return`${e}${t}`;n=true;return t};this.intro=this.intro.replace(s,replacer);let i=0;let o=this.firstChunk;while(o){const t=o.end;if(o.edited){if(!r[i]){o.content=o.content.replace(s,replacer);if(o.content.length){n=o.content[o.content.length-1]==="\n"}}}else{i=o.start;while(i=e&&s<=t)throw new Error("Cannot move a selection inside itself");this._split(e);this._split(t);this._split(s);const r=this.byStart[e];const n=this.byEnd[t];const i=r.previous;const o=n.next;const a=this.byStart[s];if(!a&&n===this.lastChunk)return this;const l=a?a.previous:this.lastChunk;if(i)i.next=o;if(o)o.previous=i;if(l)l.next=r;if(a)a.previous=n;if(!r.previous)this.firstChunk=n.next;if(!n.next){this.lastChunk=r.previous;this.lastChunk.next=null}r.previous=l;n.next=a||null;if(!l)this.firstChunk=r;if(!a)this.lastChunk=n;return this}overwrite(e,t,s,r){r=r||{};return this.update(e,t,s,{...r,overwrite:!r.contentOnly})}update(e,t,s,r){if(typeof s!=="string")throw new TypeError("replacement content must be a string");while(e<0)e+=this.original.length;while(t<0)t+=this.original.length;if(t>this.original.length)throw new Error("end is out of bounds");if(e===t)throw new Error("Cannot overwrite a zero-length range – use appendLeft or prependRight instead");this._split(e);this._split(t);if(r===true){if(!a.storeName){console.warn("The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string");a.storeName=true}r={storeName:true}}const n=r!==undefined?r.storeName:false;const i=r!==undefined?r.overwrite:false;if(n){const s=this.original.slice(e,t);Object.defineProperty(this.storedNames,s,{writable:true,value:true,enumerable:true})}const o=this.byStart[e];const l=this.byEnd[t];if(o){let e=o;while(e!==l){if(e.next!==this.byStart[e.end]){throw new Error("Cannot overwrite across a split point")}e=e.next;e.edit("",false)}o.edit(s,n,!i)}else{const r=new Chunk(e,t,"").edit(s,n);l.next=r;r.previous=l}return this}prepend(e){if(typeof e!=="string")throw new TypeError("outro content must be a string");this.intro=e+this.intro;return this}prependLeft(e,t){if(typeof t!=="string")throw new TypeError("inserted content must be a string");this._split(e);const s=this.byEnd[e];if(s){s.prependLeft(t)}else{this.intro=t+this.intro}return this}prependRight(e,t){if(typeof t!=="string")throw new TypeError("inserted content must be a string");this._split(e);const s=this.byStart[e];if(s){s.prependRight(t)}else{this.outro=t+this.outro}return this}remove(e,t){while(e<0)e+=this.original.length;while(t<0)t+=this.original.length;if(e===t)return this;if(e<0||t>this.original.length)throw new Error("Character is out of bounds");if(e>t)throw new Error("end must be greater than start");this._split(e);this._split(t);let s=this.byStart[e];while(s){s.intro="";s.outro="";s.edit("");s=t>s.end?this.byStart[s.end]:null}return this}lastChar(){if(this.outro.length)return this.outro[this.outro.length-1];let e=this.lastChunk;do{if(e.outro.length)return e.outro[e.outro.length-1];if(e.content.length)return e.content[e.content.length-1];if(e.intro.length)return e.intro[e.intro.length-1]}while(e=e.previous);if(this.intro.length)return this.intro[this.intro.length-1];return""}lastLine(){let e=this.outro.lastIndexOf(o);if(e!==-1)return this.outro.substr(e+1);let t=this.outro;let s=this.lastChunk;do{if(s.outro.length>0){e=s.outro.lastIndexOf(o);if(e!==-1)return s.outro.substr(e+1)+t;t=s.outro+t}if(s.content.length>0){e=s.content.lastIndexOf(o);if(e!==-1)return s.content.substr(e+1)+t;t=s.content+t}if(s.intro.length>0){e=s.intro.lastIndexOf(o);if(e!==-1)return s.intro.substr(e+1)+t;t=s.intro+t}}while(s=s.previous);e=this.intro.lastIndexOf(o);if(e!==-1)return this.intro.substr(e+1)+t;return this.intro+t}slice(e=0,t=this.original.length){while(e<0)e+=this.original.length;while(t<0)t+=this.original.length;let s="";let r=this.firstChunk;while(r&&(r.start>e||r.end<=e)){if(r.start=t){return s}r=r.next}if(r&&r.edited&&r.start!==e)throw new Error(`Cannot use replaced character ${e} as slice start anchor.`);const n=r;while(r){if(r.intro&&(n!==r||r.start===e)){s+=r.intro}const i=r.start=t;if(i&&r.edited&&r.end!==t)throw new Error(`Cannot use replaced character ${t} as slice end anchor.`);const o=n===r?e-r.start:0;const a=i?r.content.length+t-r.end:r.content.length;s+=r.content.slice(o,a);if(r.outro&&(!i||r.end===t)){s+=r.outro}if(i){break}r=r.next}return s}snip(e,t){const s=this.clone();s.remove(0,e);s.remove(t,s.original.length);return s}_split(e){if(this.byStart[e]||this.byEnd[e])return;let t=this.lastSearchedChunk;const s=e>t.end;while(t){if(t.contains(e))return this._splitChunk(t,e);t=s?this.byStart[t.end]:this.byEnd[t.start]}}_splitChunk(e,t){if(e.edited&&e.content.length){const s=getLocator(this.original)(t);throw new Error(`Cannot split a chunk that has already been edited (${s.line}:${s.column} – "${e.original}")`)}const s=e.split(t);this.byEnd[t]=e;this.byStart[t]=s;this.byEnd[s.end]=s;if(e===this.lastChunk)this.lastChunk=s;this.lastSearchedChunk=e;return true}toString(){let e=this.intro;let t=this.firstChunk;while(t){e+=t.toString();t=t.next}return e+this.outro}isEmpty(){let e=this.firstChunk;do{if(e.intro.length&&e.intro.trim()||e.content.length&&e.content.trim()||e.outro.length&&e.outro.trim())return false}while(e=e.next);return true}length(){let e=this.firstChunk;let t=0;do{t+=e.intro.length+e.content.length+e.outro.length}while(e=e.next);return t}trimLines(){return this.trim("[\\r\\n]")}trim(e){return this.trimStart(e).trimEnd(e)}trimEndAborted(e){const t=new RegExp((e||"\\s")+"+$");this.outro=this.outro.replace(t,"");if(this.outro.length)return true;let s=this.lastChunk;do{const e=s.end;const r=s.trimEnd(t);if(s.end!==e){if(this.lastChunk===s){this.lastChunk=s.next}this.byEnd[s.end]=s;this.byStart[s.next.start]=s.next;this.byEnd[s.next.end]=s.next}if(r)return true;s=s.previous}while(s);return false}trimEnd(e){this.trimEndAborted(e);return this}trimStartAborted(e){const t=new RegExp("^"+(e||"\\s")+"+");this.intro=this.intro.replace(t,"");if(this.intro.length)return true;let s=this.firstChunk;do{const e=s.end;const r=s.trimStart(t);if(s.end!==e){if(s===this.lastChunk)this.lastChunk=s.next;this.byEnd[s.end]=s;this.byStart[s.next.start]=s.next;this.byEnd[s.next.end]=s.next}if(r)return true;s=s.next}while(s);return false}trimStart(e){this.trimStartAborted(e);return this}hasChanged(){return this.original!==this.toString()}_replaceRegexp(e,t){function getReplacement(e,s){if(typeof t==="string"){return t.replace(/\$(\$|&|\d+)/g,((t,s)=>{if(s==="$")return"$";if(s==="&")return e[0];const r=+s;if(r{if(e.index!=null)this.overwrite(e.index,e.index+e[0].length,getReplacement(e,this.original))}))}else{const t=this.original.match(e);if(t&&t.index!=null)this.overwrite(t.index,t.index+t[0].length,getReplacement(t,this.original))}return this}_replaceString(e,t){const{original:s}=this;const r=s.indexOf(e);if(r!==-1){this.overwrite(r,r+e.length,t)}return this}replace(e,t){if(typeof e==="string"){return this._replaceString(e,t)}return this._replaceRegexp(e,t)}_replaceAllString(e,t){const{original:s}=this;const r=e.length;for(let n=s.indexOf(e);n!==-1;n=s.indexOf(e,n+r)){this.overwrite(n,n+r,t)}return this}replaceAll(e,t){if(typeof e==="string"){return this._replaceAllString(e,t)}if(!e.global){throw new TypeError("MagicString.prototype.replaceAll called with a non-global RegExp argument")}return this._replaceRegexp(e,t)}}const l=Object.prototype.hasOwnProperty;class Bundle{constructor(e={}){this.intro=e.intro||"";this.separator=e.separator!==undefined?e.separator:"\n";this.sources=[];this.uniqueSources=[];this.uniqueSourceIndexByFilename={}}addSource(e){if(e instanceof MagicString){return this.addSource({content:e,filename:e.filename,separator:this.separator})}if(!isObject(e)||!e.content){throw new Error("bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`")}["filename","indentExclusionRanges","separator"].forEach((t=>{if(!l.call(e,t))e[t]=e.content[t]}));if(e.separator===undefined){e.separator=this.separator}if(e.filename){if(!l.call(this.uniqueSourceIndexByFilename,e.filename)){this.uniqueSourceIndexByFilename[e.filename]=this.uniqueSources.length;this.uniqueSources.push({filename:e.filename,content:e.content.original})}else{const t=this.uniqueSources[this.uniqueSourceIndexByFilename[e.filename]];if(e.content.original!==t.content){throw new Error(`Illegal source: same filename (${e.filename}), different contents`)}}}this.sources.push(e);return this}append(e,t){this.addSource({content:new MagicString(e),separator:t&&t.separator||""});return this}clone(){const e=new Bundle({intro:this.intro,separator:this.separator});this.sources.forEach((t=>{e.addSource({filename:t.filename,content:t.content.clone(),separator:t.separator})}));return e}generateDecodedMap(e={}){const t=[];this.sources.forEach((e=>{Object.keys(e.content.storedNames).forEach((e=>{if(!~t.indexOf(e))t.push(e)}))}));const s=new Mappings(e.hires);if(this.intro){s.advance(this.intro)}this.sources.forEach(((e,r)=>{if(r>0){s.advance(this.separator)}const n=e.filename?this.uniqueSourceIndexByFilename[e.filename]:-1;const i=e.content;const o=getLocator(i.original);if(i.intro){s.advance(i.intro)}i.firstChunk.eachNext((r=>{const a=o(r.start);if(r.intro.length)s.advance(r.intro);if(e.filename){if(r.edited){s.addEdit(n,r.content,a,r.storeName?t.indexOf(r.original):-1)}else{s.addUneditedChunk(n,r,i.original,a,i.sourcemapLocations)}}else{s.advance(r.content)}if(r.outro.length)s.advance(r.outro)}));if(i.outro){s.advance(i.outro)}}));return{file:e.file?e.file.split(/[/\\]/).pop():null,sources:this.uniqueSources.map((t=>e.file?getRelativePath(e.file,t.filename):t.filename)),sourcesContent:this.uniqueSources.map((t=>e.includeContent?t.content:null)),names:t,mappings:s.raw}}generateMap(e){return new SourceMap(this.generateDecodedMap(e))}getIndentString(){const e={};this.sources.forEach((t=>{const s=t.content._getRawIndentString();if(s===null)return;if(!e[s])e[s]=0;e[s]+=1}));return Object.keys(e).sort(((t,s)=>e[t]-e[s]))[0]||"\t"}indent(e){if(!arguments.length){e=this.getIndentString()}if(e==="")return this;let t=!this.intro||this.intro.slice(-1)==="\n";this.sources.forEach(((s,r)=>{const n=s.separator!==undefined?s.separator:this.separator;const i=t||r>0&&/\r?\n$/.test(n);s.content.indent(e,{exclude:s.indentExclusionRanges,indentStart:i});t=s.content.lastChar()==="\n"}));if(this.intro){this.intro=e+this.intro.replace(/^[^\n]/gm,((t,s)=>s>0?e+t:t))}return this}prepend(e){this.intro=e+this.intro;return this}toString(){const e=this.sources.map(((e,t)=>{const s=e.separator!==undefined?e.separator:this.separator;const r=(t>0?s:"")+e.content.toString();return r})).join("");return this.intro+e}isEmpty(){if(this.intro.length&&this.intro.trim())return false;if(this.sources.some((e=>!e.content.isEmpty())))return false;return true}length(){return this.sources.reduce(((e,t)=>e+t.content.length()),this.intro.length)}trimLines(){return this.trim("[\\r\\n]")}trim(e){return this.trimStart(e).trimEnd(e)}trimStart(e){const t=new RegExp("^"+(e||"\\s")+"+");this.intro=this.intro.replace(t,"");if(!this.intro){let t;let s=0;do{t=this.sources[s++];if(!t){break}}while(!t.content.trimStartAborted(e))}return this}trimEnd(e){const t=new RegExp((e||"\\s")+"+$");let s;let r=this.sources.length-1;do{s=this.sources[r--];if(!s){this.intro=this.intro.replace(t,"");break}}while(!s.content.trimEndAborted(e));return this}}MagicString.Bundle=Bundle;MagicString.SourceMap=SourceMap;MagicString.default=MagicString;e.exports=MagicString},4634:function(e){function webpackEmptyContext(e){var t=new Error("Cannot find module '"+e+"'");t.code="MODULE_NOT_FOUND";throw t}webpackEmptyContext.keys=function(){return[]};webpackEmptyContext.resolve=webpackEmptyContext;webpackEmptyContext.id=4634;e.exports=webpackEmptyContext},9491:function(e){"use strict";e.exports=require("assert")},4300:function(e){"use strict";e.exports=require("buffer")},7147:function(e){"use strict";e.exports=require("fs")},8188:function(e){"use strict";e.exports=require("module")},6005:function(e){"use strict";e.exports=require("crypto")},2033:function(e){"use strict";e.exports=require("module")},9411:function(e){"use strict";e.exports=require("path")},1041:function(e){"use strict";e.exports=require("url")},2037:function(e){"use strict";e.exports=require("os")},1017:function(e){"use strict";e.exports=require("path")},6224:function(e){"use strict";e.exports=require("tty")},7310:function(e){"use strict";e.exports=require("url")},3837:function(e){"use strict";e.exports=require("util")},9203:function(e){"use strict";e.exports=require("vite")},2310:function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:true});const r=s(9411);const n=s(6005);const i=s(2033);const o=s(1041);const a=s(9203);const l=s(9712);const u=s(6224);const c=s(2333);var f={};var d={get exports(){return f},set exports(e){f=e}};let m=u;let p=!("NO_COLOR"in process.env||process.argv.includes("--no-color"))&&("FORCE_COLOR"in process.env||process.argv.includes("--color")||process.platform==="win32"||m.isatty(1)&&process.env.TERM!=="dumb"||"CI"in process.env);let formatter=(e,t,s=e)=>r=>{let n=""+r;let i=n.indexOf(t,e.length);return~i?e+replaceClose(n,t,s,i)+t:e+n+t};let replaceClose=(e,t,s,r)=>{let n=e.substring(0,r)+s;let i=e.substring(r+t.length);let o=i.indexOf(t);return~o?n+replaceClose(i,t,s,o):n+i};let createColors=(e=p)=>({isColorSupported:e,reset:e?e=>`${e}`:String,bold:e?formatter("","",""):String,dim:e?formatter("","",""):String,italic:e?formatter("",""):String,underline:e?formatter("",""):String,inverse:e?formatter("",""):String,hidden:e?formatter("",""):String,strikethrough:e?formatter("",""):String,black:e?formatter("",""):String,red:e?formatter("",""):String,green:e?formatter("",""):String,yellow:e?formatter("",""):String,blue:e?formatter("",""):String,magenta:e?formatter("",""):String,cyan:e?formatter("",""):String,white:e?formatter("",""):String,gray:e?formatter("",""):String,bgBlack:e?formatter("",""):String,bgRed:e?formatter("",""):String,bgGreen:e?formatter("",""):String,bgYellow:e?formatter("",""):String,bgBlue:e?formatter("",""):String,bgMagenta:e?formatter("",""):String,bgCyan:e?formatter("",""):String,bgWhite:e?formatter("",""):String});d.exports=createColors();f.createColors=createColors;const h=`!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",(function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()}),!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();`;const v="vite-legacy-polyfill";const g="vite-legacy-entry";const B=`System.import(document.getElementById('${g}').getAttribute('data-src'))`;const y="__vite_is_modern_browser";const b='import.meta.url;import("_").catch(()=>1);async function* g(){};';const w=`${b}window.${y}=true;`;const C=`!function(){if(window.${y})return;console.warn("vite: loading legacy chunks, syntax error above and the same error below should be ignored");var e=document.getElementById("${v}"),n=document.createElement("script");n.src=e.src,n.onload=function(){${B}},document.body.appendChild(n)}();`;const j=`export function __vite_legacy_guard(){${b}};`;let _;async function loadBabel(){if(!_){_=await Promise.all([s.e(866),s.e(569)]).then(s.t.bind(s,6246,23))}return _}const{loadConfig:S}=c;function toOutputFilePathInHtml(e,t,s,r,n,i){const{renderBuiltUrl:o}=n.experimental;let a=n.base===""||n.base==="./";if(o){const i=o(e,{hostId:s,hostType:r,type:t,ssr:!!n.build.ssr});if(typeof i==="object"){if(i.runtime){throw new Error(`{ runtime: "${i.runtime}" } is not supported for assets in ${r} files: ${e}`)}if(typeof i.relative==="boolean"){a=i.relative}}else if(i){return i}}if(a&&!n.build.ssr){return i(e,s)}else{return n.base+e}}function getBaseInHTML(e,t){return t.base==="./"||t.base===""?r.posix.join(r.posix.relative(e,"").slice(0,-2),"./"):t.base}function toAssetPathFromHtml(e,t,s){const n=a.normalizePath(r.relative(s.root,t));const toRelative=(e,t)=>getBaseInHTML(n,s)+e;return toOutputFilePathInHtml(e,"asset",t,"html",s,toRelative)}const x=`__VITE_IS_LEGACY__`;const E=i.createRequire(typeof document==="undefined"?new(s(7310).URL)("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("index.cjs",document.baseURI).href);function viteLegacyPlugin(e={}){let t;let s;const n=e.renderLegacyChunks!==false;const i=(process.env.DEBUG||"").split(",");const o=i.includes("vite:*")||i.includes("vite:legacy");const a=new Map;const u=new Map;const c=new Map;const d=new Set;const m=new Set;if(Array.isArray(e.modernPolyfills)){e.modernPolyfills.forEach((e=>{d.add(e.includes("/")?`core-js/${e}`:`core-js/modules/${e}.js`)}))}if(Array.isArray(e.polyfills)){e.polyfills.forEach((e=>{if(e.startsWith(`regenerator`)){m.add(`regenerator-runtime/runtime.js`)}else{m.add(e.includes("/")?`core-js/${e}`:`core-js/modules/${e}.js`)}}))}if(Array.isArray(e.additionalLegacyPolyfills)){e.additionalLegacyPolyfills.forEach((e=>{m.add(e)}))}let p=false;const y={name:"vite:legacy-config",config(e,t){if(t.command==="build"){if(!e.build){e.build={}}if(!e.build.cssTarget){e.build.cssTarget="chrome61"}if(n){p=e.build.target!==void 0;e.build.target=["es2020","edge79","firefox67","chrome64","safari12"]}}return{define:{"import.meta.env.LEGACY":t.command==="serve"||e.build?.ssr?false:x}}},configResolved(e){if(p){e.logger.warn(f.yellow(`plugin-legacy overrode 'build.target'. You should pass 'targets' as an option to this plugin with the list of legacy browsers to support instead.`))}}};const b={name:"vite:legacy-generate-polyfill-chunk",apply:"build",async generateBundle(r,i){if(t.build.ssr){return}if(!isLegacyBundle(i,r)){if(!d.size){return}o&&console.log(`[@vitejs/plugin-legacy] modern polyfills:`,d);await buildPolyfillChunk(t.mode,d,i,c,t.build,"es",r,true);return}if(!n){return}if(m.size){await (()=>{})(`Promise.resolve(); Promise.all();`,s,m);o&&console.log(`[@vitejs/plugin-legacy] legacy polyfills:`,m);await buildPolyfillChunk(t.mode,m,i,u,t.build,"iife",r,e.externalSystemJS)}}};const _={name:"vite:legacy-post-process",enforce:"post",apply:"build",configResolved(i){if(i.build.lib){throw new Error("@vitejs/plugin-legacy does not support library mode.")}t=i;if(!n||t.build.ssr){return}s=e.targets||S({path:t.root})||"last 2 versions and not dead, > 0.3%, Firefox ESR";o&&console.log(`[@vitejs/plugin-legacy] targets:`,s);const getLegacyOutputFileName=(e,s="[name]-legacy-[hash].js")=>{if(!e){return r.posix.join(t.build.assetsDir,s)}return t=>{let s=typeof e==="function"?e(t):e;if(s.includes("[name]")){s=s.replace("[name]","[name]-legacy")}else{s=s.replace(/(.+)\.(.+)/,"$1-legacy.$2")}return s}};const createLegacyOutput=(e={})=>({...e,format:"system",entryFileNames:getLegacyOutputFileName(e.entryFileNames),chunkFileNames:getLegacyOutputFileName(e.chunkFileNames)});const{rollupOptions:a}=t.build;const{output:l}=a;if(Array.isArray(l)){a.output=[...l.map(createLegacyOutput),...l]}else{a.output=[createLegacyOutput(l),l||{}]}},async renderChunk(r,i,o){if(t.build.ssr){return null}if(!isLegacyChunk(i,o)){if(e.modernPolyfills&&!Array.isArray(e.modernPolyfills)){await detectPolyfills(r,{esmodules:true},d)}const s=new l(r);if(n&&i.isEntry){s.prepend(j)}if(r.includes(x)){const e=new RegExp(x,"g");let t;while(t=e.exec(r)){s.overwrite(t.index,t.index+x.length,`false`)}}if(t.build.sourcemap){return{code:s.toString(),map:s.generateMap({hires:true})}}return{code:s.toString()}}if(!n){return null}o.__vite_skip_esbuild__=true;o.__vite_force_terser__=true;o.__vite_skip_asset_emit__=true;const a=e.polyfills!==false&&!Array.isArray(e.polyfills);const u=!!t.build.sourcemap;const c=await loadBabel();const f=c.transform(r,{babelrc:false,configFile:false,compact:!!t.build.minify,sourceMaps:u,inputSourceMap:void 0,presets:[[()=>({plugins:[recordAndRemovePolyfillBabelPlugin(m),replaceLegacyEnvBabelPlugin(),wrapIIFEBabelPlugin()]})],["@babel/preset-env",createBabelPresetEnvOptions(s,{needPolyfills:a,ignoreBrowserslistConfig:e.ignoreBrowserslistConfig})]]});if(f)return{code:f.code,map:f.map};return null},transformIndexHtml(e,{chunk:s}){if(t.build.ssr)return;if(!s)return;if(s.fileName.includes("-legacy")){a.set(s.facadeModuleId,s.fileName);return}const r=[];const i=s.facadeModuleId?.replace(/\?.*$/,"");const o=c.get(s.facadeModuleId);if(o){r.push({tag:"script",attrs:{type:"module",crossorigin:true,src:toAssetPathFromHtml(o,s.facadeModuleId,t)}})}else if(d.size){throw new Error(`No corresponding modern polyfill chunk found for ${i}`)}if(!n){return{html:e,tags:r}}r.push({tag:"script",attrs:{nomodule:true},children:h,injectTo:"body"});const l=u.get(s.facadeModuleId);if(l){r.push({tag:"script",attrs:{nomodule:true,crossorigin:true,id:v,src:toAssetPathFromHtml(l,s.facadeModuleId,t)},injectTo:"body"})}else if(m.size){throw new Error(`No corresponding legacy polyfill chunk found for ${i}`)}const f=a.get(s.facadeModuleId);if(f){r.push({tag:"script",attrs:{nomodule:true,crossorigin:true,id:g,"data-src":toAssetPathFromHtml(f,s.facadeModuleId,t)},children:B,injectTo:"body"})}else{throw new Error(`No corresponding legacy entry chunk found for ${i}`)}if(n&&l&&f){r.push({tag:"script",attrs:{type:"module"},children:w,injectTo:"head"});r.push({tag:"script",attrs:{type:"module"},children:C,injectTo:"head"})}return{html:e,tags:r}},generateBundle(e,s){if(t.build.ssr){return}if(isLegacyBundle(s,e)){for(const e in s){if(s[e].type==="asset"&&!/.+\.map$/.test(e)){delete s[e]}}}}};return[y,b,_]}async function detectPolyfills(e,t,s){const r=await loadBabel();const n=r.transform(e,{ast:true,babelrc:false,configFile:false,presets:[["@babel/preset-env",createBabelPresetEnvOptions(t,{ignoreBrowserslistConfig:true})]]});for(const e of n.ast.program.body){if(e.type==="ImportDeclaration"){const t=e.source.value;if(t.startsWith("core-js/")||t.startsWith("regenerator-runtime/")){s.add(t)}}}}function createBabelPresetEnvOptions(e,{needPolyfills:t=true,ignoreBrowserslistConfig:s}){return{targets:e,bugfixes:true,loose:false,modules:false,useBuiltIns:t?"usage":false,corejs:t?{version:E("core-js/package.json").version,proposals:false}:void 0,shippedProposals:true,ignoreBrowserslistConfig:s}}async function buildPolyfillChunk(e,t,n,i,l,u,c,f){let{minify:d,assetsDir:m}=l;d=d?"terser":false;const p=await a.build({mode:e,root:r.dirname(o.fileURLToPath(typeof document==="undefined"?new(s(7310).URL)("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("index.cjs",document.baseURI).href)),configFile:false,logLevel:"error",plugins:[polyfillsPlugin(t,f)],build:{write:false,minify:d,assetsDir:m,rollupOptions:{input:{polyfills:k},output:{format:u,entryFileNames:c.entryFileNames}}},esbuild:false,optimizeDeps:{esbuildOptions:{target:"es5"}}});const h=Array.isArray(p)?p[0]:p;if(!("output"in h))return;const v=h.output[0];for(const e in n){const t=n[e];if(t.type==="chunk"&&t.facadeModuleId){i.set(t.facadeModuleId,v.fileName)}}n[v.fileName]=v}const k="\0vite/legacy-polyfills";function polyfillsPlugin(e,t){return{name:"vite:legacy-polyfills",resolveId(e){if(e===k){return e}},load(s){if(s===k){return[...e].map((e=>`import ${JSON.stringify(e)};`)).join("")+(t?"":`import "systemjs/dist/s.min.js";`)}}}}function isLegacyChunk(e,t){return t.format==="system"&&e.fileName.includes("-legacy")}function isLegacyBundle(e,t){if(t.format==="system"){const t=Object.values(e).find((e=>e.type==="chunk"&&e.isEntry));return!!t&&t.fileName.includes("-legacy")}return false}function recordAndRemovePolyfillBabelPlugin(e){return({types:t})=>({name:"vite-remove-polyfill-import",post({path:s}){s.get("body").forEach((s=>{if(t.isImportDeclaration(s.node)){e.add(s.node.source.value);s.remove()}}))}})}function replaceLegacyEnvBabelPlugin(){return({types:e})=>({name:"vite-replace-env-legacy",visitor:{Identifier(t){if(t.node.name===x){t.replaceWith(e.booleanLiteral(true))}}}})}function wrapIIFEBabelPlugin(){return({types:e,template:t})=>{const s=t(";(function(){%%body%%})();");return{name:"vite-wrap-iife",post({path:t}){if(!this.isWrapped){this.isWrapped=true;t.replaceWith(e.program(s({body:t.node.body})))}}}}}const O=[h,B,w,C].map((e=>n.createHash("sha256").update(e).digest("base64")));e.exports=viteLegacyPlugin;e.exports.cspHashes=O;e.exports["default"]=viteLegacyPlugin;e.exports.detectPolyfills=detectPolyfills},8074:function(e){"use strict";e.exports=JSON.parse('[{"name":"nodejs","version":"0.2.0","date":"2011-08-26","lts":false,"security":false},{"name":"nodejs","version":"0.3.0","date":"2011-08-26","lts":false,"security":false},{"name":"nodejs","version":"0.4.0","date":"2011-08-26","lts":false,"security":false},{"name":"nodejs","version":"0.5.0","date":"2011-08-26","lts":false,"security":false},{"name":"nodejs","version":"0.6.0","date":"2011-11-04","lts":false,"security":false},{"name":"nodejs","version":"0.7.0","date":"2012-01-17","lts":false,"security":false},{"name":"nodejs","version":"0.8.0","date":"2012-06-22","lts":false,"security":false},{"name":"nodejs","version":"0.9.0","date":"2012-07-20","lts":false,"security":false},{"name":"nodejs","version":"0.10.0","date":"2013-03-11","lts":false,"security":false},{"name":"nodejs","version":"0.11.0","date":"2013-03-28","lts":false,"security":false},{"name":"nodejs","version":"0.12.0","date":"2015-02-06","lts":false,"security":false},{"name":"nodejs","version":"4.0.0","date":"2015-09-08","lts":false,"security":false},{"name":"nodejs","version":"4.1.0","date":"2015-09-17","lts":false,"security":false},{"name":"nodejs","version":"4.2.0","date":"2015-10-12","lts":"Argon","security":false},{"name":"nodejs","version":"4.3.0","date":"2016-02-09","lts":"Argon","security":false},{"name":"nodejs","version":"4.4.0","date":"2016-03-08","lts":"Argon","security":false},{"name":"nodejs","version":"4.5.0","date":"2016-08-16","lts":"Argon","security":false},{"name":"nodejs","version":"4.6.0","date":"2016-09-27","lts":"Argon","security":true},{"name":"nodejs","version":"4.7.0","date":"2016-12-06","lts":"Argon","security":false},{"name":"nodejs","version":"4.8.0","date":"2017-02-21","lts":"Argon","security":false},{"name":"nodejs","version":"4.9.0","date":"2018-03-28","lts":"Argon","security":true},{"name":"nodejs","version":"5.0.0","date":"2015-10-29","lts":false,"security":false},{"name":"nodejs","version":"5.1.0","date":"2015-11-17","lts":false,"security":false},{"name":"nodejs","version":"5.2.0","date":"2015-12-09","lts":false,"security":false},{"name":"nodejs","version":"5.3.0","date":"2015-12-15","lts":false,"security":false},{"name":"nodejs","version":"5.4.0","date":"2016-01-06","lts":false,"security":false},{"name":"nodejs","version":"5.5.0","date":"2016-01-21","lts":false,"security":false},{"name":"nodejs","version":"5.6.0","date":"2016-02-09","lts":false,"security":false},{"name":"nodejs","version":"5.7.0","date":"2016-02-23","lts":false,"security":false},{"name":"nodejs","version":"5.8.0","date":"2016-03-09","lts":false,"security":false},{"name":"nodejs","version":"5.9.0","date":"2016-03-16","lts":false,"security":false},{"name":"nodejs","version":"5.10.0","date":"2016-04-01","lts":false,"security":false},{"name":"nodejs","version":"5.11.0","date":"2016-04-21","lts":false,"security":false},{"name":"nodejs","version":"5.12.0","date":"2016-06-23","lts":false,"security":false},{"name":"nodejs","version":"6.0.0","date":"2016-04-26","lts":false,"security":false},{"name":"nodejs","version":"6.1.0","date":"2016-05-05","lts":false,"security":false},{"name":"nodejs","version":"6.2.0","date":"2016-05-17","lts":false,"security":false},{"name":"nodejs","version":"6.3.0","date":"2016-07-06","lts":false,"security":false},{"name":"nodejs","version":"6.4.0","date":"2016-08-12","lts":false,"security":false},{"name":"nodejs","version":"6.5.0","date":"2016-08-26","lts":false,"security":false},{"name":"nodejs","version":"6.6.0","date":"2016-09-14","lts":false,"security":false},{"name":"nodejs","version":"6.7.0","date":"2016-09-27","lts":false,"security":true},{"name":"nodejs","version":"6.8.0","date":"2016-10-12","lts":false,"security":false},{"name":"nodejs","version":"6.9.0","date":"2016-10-18","lts":"Boron","security":false},{"name":"nodejs","version":"6.10.0","date":"2017-02-21","lts":"Boron","security":false},{"name":"nodejs","version":"6.11.0","date":"2017-06-06","lts":"Boron","security":false},{"name":"nodejs","version":"6.12.0","date":"2017-11-06","lts":"Boron","security":false},{"name":"nodejs","version":"6.13.0","date":"2018-02-10","lts":"Boron","security":false},{"name":"nodejs","version":"6.14.0","date":"2018-03-28","lts":"Boron","security":true},{"name":"nodejs","version":"6.15.0","date":"2018-11-27","lts":"Boron","security":true},{"name":"nodejs","version":"6.16.0","date":"2018-12-26","lts":"Boron","security":false},{"name":"nodejs","version":"6.17.0","date":"2019-02-28","lts":"Boron","security":true},{"name":"nodejs","version":"7.0.0","date":"2016-10-25","lts":false,"security":false},{"name":"nodejs","version":"7.1.0","date":"2016-11-08","lts":false,"security":false},{"name":"nodejs","version":"7.2.0","date":"2016-11-22","lts":false,"security":false},{"name":"nodejs","version":"7.3.0","date":"2016-12-20","lts":false,"security":false},{"name":"nodejs","version":"7.4.0","date":"2017-01-04","lts":false,"security":false},{"name":"nodejs","version":"7.5.0","date":"2017-01-31","lts":false,"security":false},{"name":"nodejs","version":"7.6.0","date":"2017-02-21","lts":false,"security":false},{"name":"nodejs","version":"7.7.0","date":"2017-02-28","lts":false,"security":false},{"name":"nodejs","version":"7.8.0","date":"2017-03-29","lts":false,"security":false},{"name":"nodejs","version":"7.9.0","date":"2017-04-11","lts":false,"security":false},{"name":"nodejs","version":"7.10.0","date":"2017-05-02","lts":false,"security":false},{"name":"nodejs","version":"8.0.0","date":"2017-05-30","lts":false,"security":false},{"name":"nodejs","version":"8.1.0","date":"2017-06-08","lts":false,"security":false},{"name":"nodejs","version":"8.2.0","date":"2017-07-19","lts":false,"security":false},{"name":"nodejs","version":"8.3.0","date":"2017-08-08","lts":false,"security":false},{"name":"nodejs","version":"8.4.0","date":"2017-08-15","lts":false,"security":false},{"name":"nodejs","version":"8.5.0","date":"2017-09-12","lts":false,"security":false},{"name":"nodejs","version":"8.6.0","date":"2017-09-26","lts":false,"security":false},{"name":"nodejs","version":"8.7.0","date":"2017-10-11","lts":false,"security":false},{"name":"nodejs","version":"8.8.0","date":"2017-10-24","lts":false,"security":false},{"name":"nodejs","version":"8.9.0","date":"2017-10-31","lts":"Carbon","security":false},{"name":"nodejs","version":"8.10.0","date":"2018-03-06","lts":"Carbon","security":false},{"name":"nodejs","version":"8.11.0","date":"2018-03-28","lts":"Carbon","security":true},{"name":"nodejs","version":"8.12.0","date":"2018-09-10","lts":"Carbon","security":false},{"name":"nodejs","version":"8.13.0","date":"2018-11-20","lts":"Carbon","security":false},{"name":"nodejs","version":"8.14.0","date":"2018-11-27","lts":"Carbon","security":true},{"name":"nodejs","version":"8.15.0","date":"2018-12-26","lts":"Carbon","security":false},{"name":"nodejs","version":"8.16.0","date":"2019-04-16","lts":"Carbon","security":false},{"name":"nodejs","version":"8.17.0","date":"2019-12-17","lts":"Carbon","security":true},{"name":"nodejs","version":"9.0.0","date":"2017-10-31","lts":false,"security":false},{"name":"nodejs","version":"9.1.0","date":"2017-11-07","lts":false,"security":false},{"name":"nodejs","version":"9.2.0","date":"2017-11-14","lts":false,"security":false},{"name":"nodejs","version":"9.3.0","date":"2017-12-12","lts":false,"security":false},{"name":"nodejs","version":"9.4.0","date":"2018-01-10","lts":false,"security":false},{"name":"nodejs","version":"9.5.0","date":"2018-01-31","lts":false,"security":false},{"name":"nodejs","version":"9.6.0","date":"2018-02-21","lts":false,"security":false},{"name":"nodejs","version":"9.7.0","date":"2018-03-01","lts":false,"security":false},{"name":"nodejs","version":"9.8.0","date":"2018-03-07","lts":false,"security":false},{"name":"nodejs","version":"9.9.0","date":"2018-03-21","lts":false,"security":false},{"name":"nodejs","version":"9.10.0","date":"2018-03-28","lts":false,"security":true},{"name":"nodejs","version":"9.11.0","date":"2018-04-04","lts":false,"security":false},{"name":"nodejs","version":"10.0.0","date":"2018-04-24","lts":false,"security":false},{"name":"nodejs","version":"10.1.0","date":"2018-05-08","lts":false,"security":false},{"name":"nodejs","version":"10.2.0","date":"2018-05-23","lts":false,"security":false},{"name":"nodejs","version":"10.3.0","date":"2018-05-29","lts":false,"security":false},{"name":"nodejs","version":"10.4.0","date":"2018-06-06","lts":false,"security":false},{"name":"nodejs","version":"10.5.0","date":"2018-06-20","lts":false,"security":false},{"name":"nodejs","version":"10.6.0","date":"2018-07-04","lts":false,"security":false},{"name":"nodejs","version":"10.7.0","date":"2018-07-18","lts":false,"security":false},{"name":"nodejs","version":"10.8.0","date":"2018-08-01","lts":false,"security":false},{"name":"nodejs","version":"10.9.0","date":"2018-08-15","lts":false,"security":false},{"name":"nodejs","version":"10.10.0","date":"2018-09-06","lts":false,"security":false},{"name":"nodejs","version":"10.11.0","date":"2018-09-19","lts":false,"security":false},{"name":"nodejs","version":"10.12.0","date":"2018-10-10","lts":false,"security":false},{"name":"nodejs","version":"10.13.0","date":"2018-10-30","lts":"Dubnium","security":false},{"name":"nodejs","version":"10.14.0","date":"2018-11-27","lts":"Dubnium","security":true},{"name":"nodejs","version":"10.15.0","date":"2018-12-26","lts":"Dubnium","security":false},{"name":"nodejs","version":"10.16.0","date":"2019-05-28","lts":"Dubnium","security":false},{"name":"nodejs","version":"10.17.0","date":"2019-10-22","lts":"Dubnium","security":false},{"name":"nodejs","version":"10.18.0","date":"2019-12-17","lts":"Dubnium","security":true},{"name":"nodejs","version":"10.19.0","date":"2020-02-05","lts":"Dubnium","security":true},{"name":"nodejs","version":"10.20.0","date":"2020-03-26","lts":"Dubnium","security":false},{"name":"nodejs","version":"10.21.0","date":"2020-06-02","lts":"Dubnium","security":true},{"name":"nodejs","version":"10.22.0","date":"2020-07-21","lts":"Dubnium","security":false},{"name":"nodejs","version":"10.23.0","date":"2020-10-27","lts":"Dubnium","security":false},{"name":"nodejs","version":"10.24.0","date":"2021-02-23","lts":"Dubnium","security":true},{"name":"nodejs","version":"11.0.0","date":"2018-10-23","lts":false,"security":false},{"name":"nodejs","version":"11.1.0","date":"2018-10-30","lts":false,"security":false},{"name":"nodejs","version":"11.2.0","date":"2018-11-15","lts":false,"security":false},{"name":"nodejs","version":"11.3.0","date":"2018-11-27","lts":false,"security":true},{"name":"nodejs","version":"11.4.0","date":"2018-12-07","lts":false,"security":false},{"name":"nodejs","version":"11.5.0","date":"2018-12-18","lts":false,"security":false},{"name":"nodejs","version":"11.6.0","date":"2018-12-26","lts":false,"security":false},{"name":"nodejs","version":"11.7.0","date":"2019-01-17","lts":false,"security":false},{"name":"nodejs","version":"11.8.0","date":"2019-01-24","lts":false,"security":false},{"name":"nodejs","version":"11.9.0","date":"2019-01-30","lts":false,"security":false},{"name":"nodejs","version":"11.10.0","date":"2019-02-14","lts":false,"security":false},{"name":"nodejs","version":"11.11.0","date":"2019-03-05","lts":false,"security":false},{"name":"nodejs","version":"11.12.0","date":"2019-03-14","lts":false,"security":false},{"name":"nodejs","version":"11.13.0","date":"2019-03-28","lts":false,"security":false},{"name":"nodejs","version":"11.14.0","date":"2019-04-10","lts":false,"security":false},{"name":"nodejs","version":"11.15.0","date":"2019-04-30","lts":false,"security":false},{"name":"nodejs","version":"12.0.0","date":"2019-04-23","lts":false,"security":false},{"name":"nodejs","version":"12.1.0","date":"2019-04-29","lts":false,"security":false},{"name":"nodejs","version":"12.2.0","date":"2019-05-07","lts":false,"security":false},{"name":"nodejs","version":"12.3.0","date":"2019-05-21","lts":false,"security":false},{"name":"nodejs","version":"12.4.0","date":"2019-06-04","lts":false,"security":false},{"name":"nodejs","version":"12.5.0","date":"2019-06-26","lts":false,"security":false},{"name":"nodejs","version":"12.6.0","date":"2019-07-03","lts":false,"security":false},{"name":"nodejs","version":"12.7.0","date":"2019-07-23","lts":false,"security":false},{"name":"nodejs","version":"12.8.0","date":"2019-08-06","lts":false,"security":false},{"name":"nodejs","version":"12.9.0","date":"2019-08-20","lts":false,"security":false},{"name":"nodejs","version":"12.10.0","date":"2019-09-04","lts":false,"security":false},{"name":"nodejs","version":"12.11.0","date":"2019-09-25","lts":false,"security":false},{"name":"nodejs","version":"12.12.0","date":"2019-10-11","lts":false,"security":false},{"name":"nodejs","version":"12.13.0","date":"2019-10-21","lts":"Erbium","security":false},{"name":"nodejs","version":"12.14.0","date":"2019-12-17","lts":"Erbium","security":true},{"name":"nodejs","version":"12.15.0","date":"2020-02-05","lts":"Erbium","security":true},{"name":"nodejs","version":"12.16.0","date":"2020-02-11","lts":"Erbium","security":false},{"name":"nodejs","version":"12.17.0","date":"2020-05-26","lts":"Erbium","security":false},{"name":"nodejs","version":"12.18.0","date":"2020-06-02","lts":"Erbium","security":true},{"name":"nodejs","version":"12.19.0","date":"2020-10-06","lts":"Erbium","security":false},{"name":"nodejs","version":"12.20.0","date":"2020-11-24","lts":"Erbium","security":false},{"name":"nodejs","version":"12.21.0","date":"2021-02-23","lts":"Erbium","security":true},{"name":"nodejs","version":"12.22.0","date":"2021-03-30","lts":"Erbium","security":false},{"name":"nodejs","version":"13.0.0","date":"2019-10-22","lts":false,"security":false},{"name":"nodejs","version":"13.1.0","date":"2019-11-05","lts":false,"security":false},{"name":"nodejs","version":"13.2.0","date":"2019-11-21","lts":false,"security":false},{"name":"nodejs","version":"13.3.0","date":"2019-12-03","lts":false,"security":false},{"name":"nodejs","version":"13.4.0","date":"2019-12-17","lts":false,"security":true},{"name":"nodejs","version":"13.5.0","date":"2019-12-18","lts":false,"security":false},{"name":"nodejs","version":"13.6.0","date":"2020-01-07","lts":false,"security":false},{"name":"nodejs","version":"13.7.0","date":"2020-01-21","lts":false,"security":false},{"name":"nodejs","version":"13.8.0","date":"2020-02-05","lts":false,"security":true},{"name":"nodejs","version":"13.9.0","date":"2020-02-18","lts":false,"security":false},{"name":"nodejs","version":"13.10.0","date":"2020-03-04","lts":false,"security":false},{"name":"nodejs","version":"13.11.0","date":"2020-03-12","lts":false,"security":false},{"name":"nodejs","version":"13.12.0","date":"2020-03-26","lts":false,"security":false},{"name":"nodejs","version":"13.13.0","date":"2020-04-14","lts":false,"security":false},{"name":"nodejs","version":"13.14.0","date":"2020-04-29","lts":false,"security":false},{"name":"nodejs","version":"14.0.0","date":"2020-04-21","lts":false,"security":false},{"name":"nodejs","version":"14.1.0","date":"2020-04-29","lts":false,"security":false},{"name":"nodejs","version":"14.2.0","date":"2020-05-05","lts":false,"security":false},{"name":"nodejs","version":"14.3.0","date":"2020-05-19","lts":false,"security":false},{"name":"nodejs","version":"14.4.0","date":"2020-06-02","lts":false,"security":true},{"name":"nodejs","version":"14.5.0","date":"2020-06-30","lts":false,"security":false},{"name":"nodejs","version":"14.6.0","date":"2020-07-20","lts":false,"security":false},{"name":"nodejs","version":"14.7.0","date":"2020-07-29","lts":false,"security":false},{"name":"nodejs","version":"14.8.0","date":"2020-08-11","lts":false,"security":false},{"name":"nodejs","version":"14.9.0","date":"2020-08-27","lts":false,"security":false},{"name":"nodejs","version":"14.10.0","date":"2020-09-08","lts":false,"security":false},{"name":"nodejs","version":"14.11.0","date":"2020-09-15","lts":false,"security":true},{"name":"nodejs","version":"14.12.0","date":"2020-09-22","lts":false,"security":false},{"name":"nodejs","version":"14.13.0","date":"2020-09-29","lts":false,"security":false},{"name":"nodejs","version":"14.14.0","date":"2020-10-15","lts":false,"security":false},{"name":"nodejs","version":"14.15.0","date":"2020-10-27","lts":"Fermium","security":false},{"name":"nodejs","version":"14.16.0","date":"2021-02-23","lts":"Fermium","security":true},{"name":"nodejs","version":"14.17.0","date":"2021-05-11","lts":"Fermium","security":false},{"name":"nodejs","version":"14.18.0","date":"2021-09-28","lts":"Fermium","security":false},{"name":"nodejs","version":"14.19.0","date":"2022-02-01","lts":"Fermium","security":false},{"name":"nodejs","version":"14.20.0","date":"2022-07-07","lts":"Fermium","security":true},{"name":"nodejs","version":"14.21.0","date":"2022-11-01","lts":"Fermium","security":false},{"name":"nodejs","version":"15.0.0","date":"2020-10-20","lts":false,"security":false},{"name":"nodejs","version":"15.1.0","date":"2020-11-04","lts":false,"security":false},{"name":"nodejs","version":"15.2.0","date":"2020-11-10","lts":false,"security":false},{"name":"nodejs","version":"15.3.0","date":"2020-11-24","lts":false,"security":false},{"name":"nodejs","version":"15.4.0","date":"2020-12-09","lts":false,"security":false},{"name":"nodejs","version":"15.5.0","date":"2020-12-22","lts":false,"security":false},{"name":"nodejs","version":"15.6.0","date":"2021-01-14","lts":false,"security":false},{"name":"nodejs","version":"15.7.0","date":"2021-01-25","lts":false,"security":false},{"name":"nodejs","version":"15.8.0","date":"2021-02-02","lts":false,"security":false},{"name":"nodejs","version":"15.9.0","date":"2021-02-18","lts":false,"security":false},{"name":"nodejs","version":"15.10.0","date":"2021-02-23","lts":false,"security":true},{"name":"nodejs","version":"15.11.0","date":"2021-03-03","lts":false,"security":false},{"name":"nodejs","version":"15.12.0","date":"2021-03-17","lts":false,"security":false},{"name":"nodejs","version":"15.13.0","date":"2021-03-31","lts":false,"security":false},{"name":"nodejs","version":"15.14.0","date":"2021-04-06","lts":false,"security":false},{"name":"nodejs","version":"16.0.0","date":"2021-04-20","lts":false,"security":false},{"name":"nodejs","version":"16.1.0","date":"2021-05-04","lts":false,"security":false},{"name":"nodejs","version":"16.2.0","date":"2021-05-19","lts":false,"security":false},{"name":"nodejs","version":"16.3.0","date":"2021-06-03","lts":false,"security":false},{"name":"nodejs","version":"16.4.0","date":"2021-06-23","lts":false,"security":false},{"name":"nodejs","version":"16.5.0","date":"2021-07-14","lts":false,"security":false},{"name":"nodejs","version":"16.6.0","date":"2021-07-29","lts":false,"security":true},{"name":"nodejs","version":"16.7.0","date":"2021-08-18","lts":false,"security":false},{"name":"nodejs","version":"16.8.0","date":"2021-08-25","lts":false,"security":false},{"name":"nodejs","version":"16.9.0","date":"2021-09-07","lts":false,"security":false},{"name":"nodejs","version":"16.10.0","date":"2021-09-22","lts":false,"security":false},{"name":"nodejs","version":"16.11.0","date":"2021-10-08","lts":false,"security":false},{"name":"nodejs","version":"16.12.0","date":"2021-10-20","lts":false,"security":false},{"name":"nodejs","version":"16.13.0","date":"2021-10-26","lts":"Gallium","security":false},{"name":"nodejs","version":"16.14.0","date":"2022-02-08","lts":"Gallium","security":false},{"name":"nodejs","version":"16.15.0","date":"2022-04-26","lts":"Gallium","security":false},{"name":"nodejs","version":"16.16.0","date":"2022-07-07","lts":"Gallium","security":true},{"name":"nodejs","version":"16.17.0","date":"2022-08-16","lts":"Gallium","security":false},{"name":"nodejs","version":"16.18.0","date":"2022-10-12","lts":"Gallium","security":false},{"name":"nodejs","version":"16.19.0","date":"2022-12-13","lts":"Gallium","security":false},{"name":"nodejs","version":"17.0.0","date":"2021-10-19","lts":false,"security":false},{"name":"nodejs","version":"17.1.0","date":"2021-11-09","lts":false,"security":false},{"name":"nodejs","version":"17.2.0","date":"2021-11-30","lts":false,"security":false},{"name":"nodejs","version":"17.3.0","date":"2021-12-17","lts":false,"security":false},{"name":"nodejs","version":"17.4.0","date":"2022-01-18","lts":false,"security":false},{"name":"nodejs","version":"17.5.0","date":"2022-02-10","lts":false,"security":false},{"name":"nodejs","version":"17.6.0","date":"2022-02-22","lts":false,"security":false},{"name":"nodejs","version":"17.7.0","date":"2022-03-09","lts":false,"security":false},{"name":"nodejs","version":"17.8.0","date":"2022-03-22","lts":false,"security":false},{"name":"nodejs","version":"17.9.0","date":"2022-04-07","lts":false,"security":false},{"name":"nodejs","version":"18.0.0","date":"2022-04-18","lts":false,"security":false},{"name":"nodejs","version":"18.1.0","date":"2022-05-03","lts":false,"security":false},{"name":"nodejs","version":"18.2.0","date":"2022-05-17","lts":false,"security":false},{"name":"nodejs","version":"18.3.0","date":"2022-06-02","lts":false,"security":false},{"name":"nodejs","version":"18.4.0","date":"2022-06-16","lts":false,"security":false},{"name":"nodejs","version":"18.5.0","date":"2022-07-06","lts":false,"security":true},{"name":"nodejs","version":"18.6.0","date":"2022-07-13","lts":false,"security":false},{"name":"nodejs","version":"18.7.0","date":"2022-07-26","lts":false,"security":false},{"name":"nodejs","version":"18.8.0","date":"2022-08-24","lts":false,"security":false},{"name":"nodejs","version":"18.9.0","date":"2022-09-07","lts":false,"security":false},{"name":"nodejs","version":"18.10.0","date":"2022-09-28","lts":false,"security":false},{"name":"nodejs","version":"18.11.0","date":"2022-10-13","lts":false,"security":false},{"name":"nodejs","version":"18.12.0","date":"2022-10-25","lts":"Hydrogen","security":false},{"name":"nodejs","version":"18.13.0","date":"2023-01-05","lts":"Hydrogen","security":false},{"name":"nodejs","version":"19.0.0","date":"2022-10-17","lts":false,"security":false},{"name":"nodejs","version":"19.1.0","date":"2022-11-14","lts":false,"security":false},{"name":"nodejs","version":"19.2.0","date":"2022-11-29","lts":false,"security":false},{"name":"nodejs","version":"19.3.0","date":"2022-12-14","lts":false,"security":false},{"name":"nodejs","version":"19.4.0","date":"2023-01-05","lts":false,"security":false},{"name":"nodejs","version":"19.5.0","date":"2023-01-24","lts":false,"security":false}]')},1660:function(e){"use strict";e.exports=JSON.parse('{"v0.8":{"start":"2012-06-25","end":"2014-07-31"},"v0.10":{"start":"2013-03-11","end":"2016-10-31"},"v0.12":{"start":"2015-02-06","end":"2016-12-31"},"v4":{"start":"2015-09-08","lts":"2015-10-12","maintenance":"2017-04-01","end":"2018-04-30","codename":"Argon"},"v5":{"start":"2015-10-29","maintenance":"2016-04-30","end":"2016-06-30"},"v6":{"start":"2016-04-26","lts":"2016-10-18","maintenance":"2018-04-30","end":"2019-04-30","codename":"Boron"},"v7":{"start":"2016-10-25","maintenance":"2017-04-30","end":"2017-06-30"},"v8":{"start":"2017-05-30","lts":"2017-10-31","maintenance":"2019-01-01","end":"2019-12-31","codename":"Carbon"},"v9":{"start":"2017-10-01","maintenance":"2018-04-01","end":"2018-06-30"},"v10":{"start":"2018-04-24","lts":"2018-10-30","maintenance":"2020-05-19","end":"2021-04-30","codename":"Dubnium"},"v11":{"start":"2018-10-23","maintenance":"2019-04-22","end":"2019-06-01"},"v12":{"start":"2019-04-23","lts":"2019-10-21","maintenance":"2020-11-30","end":"2022-04-30","codename":"Erbium"},"v13":{"start":"2019-10-22","maintenance":"2020-04-01","end":"2020-06-01"},"v14":{"start":"2020-04-21","lts":"2020-10-27","maintenance":"2021-10-19","end":"2023-04-30","codename":"Fermium"},"v15":{"start":"2020-10-20","maintenance":"2021-04-01","end":"2021-06-01"},"v16":{"start":"2021-04-20","lts":"2021-10-26","maintenance":"2022-10-18","end":"2023-09-11","codename":"Gallium"},"v17":{"start":"2021-10-19","maintenance":"2022-04-01","end":"2022-06-01"},"v18":{"start":"2022-04-19","lts":"2022-10-25","maintenance":"2023-10-18","end":"2025-04-30","codename":"Hydrogen"},"v19":{"start":"2022-10-18","maintenance":"2023-04-01","end":"2023-06-01"},"v20":{"start":"2023-04-18","lts":"2023-10-24","maintenance":"2024-10-22","end":"2026-04-30","codename":""}}')}};var t={};function __nccwpck_require__(s){var r=t[s];if(r!==undefined){return r.exports}var n=t[s]={id:s,loaded:false,exports:{}};var i=true;try{e[s].call(n.exports,n,n.exports,__nccwpck_require__);i=false}finally{if(i)delete t[s]}n.loaded=true;return n.exports}__nccwpck_require__.m=e;!function(){var e=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};var t;__nccwpck_require__.t=function(s,r){if(r&1)s=this(s);if(r&8)return s;if(typeof s==="object"&&s){if(r&4&&s.__esModule)return s;if(r&16&&typeof s.then==="function")return s}var n=Object.create(null);__nccwpck_require__.r(n);var i={};t=t||[null,e({}),e([]),e(e)];for(var o=r&2&&s;typeof o=="object"&&!~t.indexOf(o);o=e(o)){Object.getOwnPropertyNames(o).forEach((function(e){i[e]=function(){return s[e]}}))}i["default"]=function(){return s};__nccwpck_require__.d(n,i);return n}}();!function(){__nccwpck_require__.d=function(e,t){for(var s in t){if(__nccwpck_require__.o(t,s)&&!__nccwpck_require__.o(e,s)){Object.defineProperty(e,s,{enumerable:true,get:t[s]})}}}}();!function(){__nccwpck_require__.f={};__nccwpck_require__.e=function(e){return Promise.all(Object.keys(__nccwpck_require__.f).reduce((function(t,s){__nccwpck_require__.f[s](e,t);return t}),[]))}}();!function(){__nccwpck_require__.u=function(e){return""+e+".index.cjs.js"}}();!function(){__nccwpck_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}();!function(){__nccwpck_require__.r=function(e){if(typeof Symbol!=="undefined"&&Symbol.toStringTag){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}Object.defineProperty(e,"__esModule",{value:true})}}();!function(){__nccwpck_require__.nmd=function(e){e.paths=[];if(!e.children)e.children=[];return e}}();if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";!function(){var e={179:1};var installChunk=function(t){var s=t.modules,r=t.ids,n=t.runtime;for(var i in s){if(__nccwpck_require__.o(s,i)){__nccwpck_require__.m[i]=s[i]}}if(n)n(__nccwpck_require__);for(var o=0;o { diff --git a/packages/bundler-vite/src/config/transformer/target.ts b/packages/bundler-vite/src/config/transformer/target.ts index 9f350ae86d2d..423f49c99faf 100644 --- a/packages/bundler-vite/src/config/transformer/target.ts +++ b/packages/bundler-vite/src/config/transformer/target.ts @@ -39,6 +39,7 @@ export default (function target(userConfig) { targets: getBrowserlist(userConfig.targets), polyfills: false, ignoreBrowserslistConfig: true, + externalSystemJS: true, }; config.plugins!.push(legacyPlugin(legacyOpts)); diff --git a/packages/mfsu/src/mfsu/mfsu.ts b/packages/mfsu/src/mfsu/mfsu.ts index 4a659ec18ee2..4e8ac33beef9 100644 --- a/packages/mfsu/src/mfsu/mfsu.ts +++ b/packages/mfsu/src/mfsu/mfsu.ts @@ -7,7 +7,7 @@ import type { import express from '@umijs/bundler-utils/compiled/express'; import { lodash, logger, printHelp, winPath } from '@umijs/utils'; import assert from 'assert'; -import { readFileSync, existsSync } from 'fs'; +import { existsSync, readFileSync } from 'fs'; import { extname, join } from 'path'; import webpack, { Configuration } from 'webpack'; import type { Worker } from 'worker_threads'; diff --git a/packages/preset-umi/package.json b/packages/preset-umi/package.json index bee61988389b..d713df995a89 100644 --- a/packages/preset-umi/package.json +++ b/packages/preset-umi/package.json @@ -67,7 +67,7 @@ "multer": "1.4.4", "os-locale": "^6.0.2", "sirv": "2.0.2", - "vite": "2.9.1" + "vite": "4.0.4" }, "publishConfig": { "access": "public" diff --git a/packages/preset-umi/src/features/esmi/esmi.ts b/packages/preset-umi/src/features/esmi/esmi.ts index 3b000ae5d010..7ce34c94cdf9 100644 --- a/packages/preset-umi/src/features/esmi/esmi.ts +++ b/packages/preset-umi/src/features/esmi/esmi.ts @@ -1,7 +1,7 @@ import { parse as parseImports } from '@umijs/bundler-utils/compiled/es-module-lexer'; import MagicString from 'magic-string'; import { join } from 'path'; -import type { Plugin, ResolvedConfig } from 'vite'; +import type { HmrContext, Plugin, ResolvedConfig } from 'vite'; import { createResolver } from '../../libs/scan'; import type { IApi } from '../../types'; import requireToImport from './esbuildPlugins/requireToImport'; @@ -15,7 +15,7 @@ let importmatches: Record = {}; * esmi vite plugin */ function esmi(opts: { - handleHotUpdate?: Plugin['handleHotUpdate']; + handleHotUpdate?: (ctx: HmrContext) => void; resolver: ReturnType; }): Plugin { return { diff --git a/packages/preset-vue/compiled/@vitejs/plugin-vue/index.js b/packages/preset-vue/compiled/@vitejs/plugin-vue/index.js index 2175689d9424..d7326227a39a 100644 --- a/packages/preset-vue/compiled/@vitejs/plugin-vue/index.js +++ b/packages/preset-vue/compiled/@vitejs/plugin-vue/index.js @@ -1 +1 @@ -(function(){"use strict";var e={975:function(e){e.exports=(e,t=process.argv)=>{const r=e.startsWith("-")?"":e.length===1?"-":"--";const n=t.indexOf(r+e);const s=t.indexOf("--");return n!==-1&&(s===-1||n=2,has16m:e>=3}}function supportsColor(e,t){if(i===0){return 0}if(o("color=16m")||o("color=full")||o("color=truecolor")){return 3}if(o("color=256")){return 2}if(e&&!t&&i===undefined){return 0}const r=i||0;if(c.TERM==="dumb"){return r}if(process.platform==="win32"){const e=n.release().split(".");if(Number(e[0])>=10&&Number(e[2])>=10586){return Number(e[2])>=14931?3:2}return 1}if("CI"in c){if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some((e=>e in c))||c.CI_NAME==="codeship"){return 1}return r}if("TEAMCITY_VERSION"in c){return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(c.TEAMCITY_VERSION)?1:0}if(c.COLORTERM==="truecolor"){return 3}if("TERM_PROGRAM"in c){const e=parseInt((c.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(c.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(c.TERM)){return 2}if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(c.TERM)){return 1}if("COLORTERM"in c){return 1}return r}function getSupportLevel(e){const t=supportsColor(e,e&&e.isTTY);return translateLevel(t)}e.exports={supportsColor:getSupportLevel,stdout:translateLevel(supportsColor(true,s.isatty(1))),stderr:translateLevel(supportsColor(true,s.isatty(2)))}},291:function(e){e.exports=require("@umijs/bundler-vite/compiled/vite")},5:function(e){e.exports=require("crypto")},561:function(e){e.exports=require("fs")},33:function(e){e.exports=require("module")},411:function(e){e.exports=require("path")},37:function(e){e.exports=require("os")},224:function(e){e.exports=require("tty")},310:function(e){e.exports=require("url")},837:function(e){e.exports=require("util")},655:function(e,t,r){Object.defineProperty(t,"__esModule",{value:true});const n=r(561);const s=r(291);const o=r(33);const c=r(411);const i=r(5);const a=r(224);const l=r(837);function resolveCompiler(e){const t=tryRequire("vue/compiler-sfc",e)||tryRequire("vue/compiler-sfc");if(!t){throw new Error(`Failed to resolve vue/compiler-sfc.\n@vitejs/plugin-vue requires vue (>=3.2.25) to be present in the dependency tree.`)}return t}const u=o.createRequire(typeof document==="undefined"?new(r(310).URL)("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("index.cjs",document.baseURI).href);function tryRequire(e,t){try{return t?u(u.resolve(e,{paths:[t]})):u(e)}catch(e){}}function parseVueRequest(e){const[t,r]=e.split(`?`,2);const n=Object.fromEntries(new URLSearchParams(r));if(n.vue!=null){n.vue=true}if(n.index!=null){n.index=Number(n.index)}if(n.raw!=null){n.raw=true}if(n.scoped!=null){n.scoped=true}return{filename:t,query:n}}function slash(e){const t=/^\\\\\?\\/.test(e);if(t){return e}return e.replace(/\\/g,"/")}const f=new Map;const p=new Map;function createDescriptor(e,t,{root:r,isProduction:n,sourceMap:s,compiler:o}){const{descriptor:i,errors:a}=o.parse(t,{filename:e,sourceMap:s});const l=slash(c.normalize(c.relative(r,e)));i.id=getHash(l+(n?t:""));f.set(e,i);return{descriptor:i,errors:a}}function getPrevDescriptor(e){return p.get(e)}function setPrevDescriptor(e,t){p.set(e,t)}function getDescriptor(e,t,r=true){if(f.has(e)){return f.get(e)}if(r){const{descriptor:r,errors:s}=createDescriptor(e,n.readFileSync(e,"utf-8"),t);if(s.length){throw s[0]}return r}}function getSrcDescriptor(e,t){if(t.scoped){return f.get(`${e}?src=${t.src}`)}return f.get(e)}function setSrcDescriptor(e,t,r){if(r){f.set(`${e}?src=${t.id}`,t);return}f.set(e,t)}function getHash(e){return i.createHash("sha256").update(e).digest("hex").substring(0,8)}function createRollupError(e,t){const{message:r,name:n,stack:s}=t;const o={id:e,plugin:"vue",message:r,name:n,stack:s};if("code"in t&&t.loc){o.loc={file:e,line:t.loc.start.line,column:t.loc.start.column}}return o}async function transformTemplateAsModule(e,t,r,n,s){const o=compile(e,t,r,n,s);let c=o.code;if(r.devServer&&r.devServer.config.server.hmr!==false&&!s&&!r.isProduction){c+=`\nimport.meta.hot.accept(({ render }) => {\n __VUE_HMR_RUNTIME__.rerender(${JSON.stringify(t.id)}, render)\n })`}return{code:c,map:o.map}}function transformTemplateInMain(e,t,r,n,s){const o=compile(e,t,r,n,s);return{...o,code:o.code.replace(/\nexport (function|const) (render|ssrRender)/,"\n$1 _sfc_$2")}}function compile(e,t,r,n,s){const o=t.filename;const c=r.compiler.compileTemplate({...resolveTemplateCompilerOptions(t,r,s),source:e});if(c.errors.length){c.errors.forEach((e=>n.error(typeof e==="string"?{id:o,message:e}:createRollupError(o,e))))}if(c.tips.length){c.tips.forEach((e=>n.warn({id:o,message:e})))}return c}function resolveTemplateCompilerOptions(e,t,r){const n=e.template;if(!n){return}const s=getResolvedScript(e,r);const o=e.styles.some((e=>e.scoped));const{id:i,filename:a,cssVars:l}=e;let u=t.template?.transformAssetUrls;let f;if(t.devServer){if(a.startsWith(t.root)){const e=t.devServer.config.base;f={base:(t.devServer.config.server?.origin??"")+e+slash(c.relative(t.root,c.dirname(a)))}}}else if(u!==false){f={includeAbsolute:true}}if(u&&typeof u==="object"){if(Object.values(u).some((e=>Array.isArray(e)))){u={...f,tags:u}}else{u={...f,...u}}}else{u=f}let p=n.lang&&t.template?.preprocessOptions;if(n.lang==="pug"){p={doctype:"html",...p}}const d=t.template?.compilerOptions?.expressionPlugins||[];const m=e.scriptSetup?.lang||e.script?.lang;if(m&&/tsx?$/.test(m)&&!d.includes("typescript")){d.push("typescript")}return{...t.template,id:i,filename:a,scoped:o,slotted:e.slotted,isProd:t.isProduction,inMap:n.src?void 0:n.map,ssr:r,ssrCssVars:l,transformAssetUrls:u,preprocessLang:n.lang,preprocessOptions:p,compilerOptions:{...t.template?.compilerOptions,scopeId:o?`data-v-${i}`:void 0,bindingMetadata:s?s.bindings:void 0,expressionPlugins:d,sourceMap:t.sourceMap}}}const d=new WeakMap;const m=new WeakMap;function getResolvedScript(e,t){return(t?m:d).get(e)}function setResolvedScript(e,t,r){(r?m:d).set(e,t)}function isUseInlineTemplate(e,t){return t&&!!e.scriptSetup&&!e.template?.src}function resolveScript(e,t,r){if(!e.script&&!e.scriptSetup){return null}const n=r?m:d;const s=n.get(e);if(s){return s}let o=null;o=t.compiler.compileScript(e,{...t.script,id:e.id,isProd:t.isProduction,inlineTemplate:isUseInlineTemplate(e,!t.devServer),reactivityTransform:t.reactivityTransform!==false,templateOptions:resolveTemplateCompilerOptions(e,t,r),sourceMap:t.sourceMap});n.set(e,o);return o}const g=",".charCodeAt(0);const h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";const y=new Uint8Array(64);const C=new Uint8Array(128);for(let e=0;e>>=1;if(i){s=-2147483648|-s}r[n]+=s;return t}function hasMoreVlq(e,t,r){if(t>=r)return false;return e.charCodeAt(t)!==g}function sort(e){e.sort(sortComparator$1)}function sortComparator$1(e,t){return e[0]-t[0]}const _=/^[\w+.-]+:\/\//;const v=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/;const b=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;var S;(function(e){e[e["Empty"]=1]="Empty";e[e["Hash"]=2]="Hash";e[e["Query"]=3]="Query";e[e["RelativePath"]=4]="RelativePath";e[e["AbsolutePath"]=5]="AbsolutePath";e[e["SchemeRelative"]=6]="SchemeRelative";e[e["Absolute"]=7]="Absolute"})(S||(S={}));function isAbsoluteUrl(e){return _.test(e)}function isSchemeRelativeUrl(e){return e.startsWith("//")}function isAbsolutePath(e){return e.startsWith("/")}function isFileUrl(e){return e.startsWith("file:")}function isRelative(e){return/^[.?#]/.test(e)}function parseAbsoluteUrl(e){const t=v.exec(e);return makeUrl(t[1],t[2]||"",t[3],t[4]||"",t[5]||"/",t[6]||"",t[7]||"")}function parseFileUrl(e){const t=b.exec(e);const r=t[2];return makeUrl("file:","",t[1]||"","",isAbsolutePath(r)?r:"/"+r,t[3]||"",t[4]||"")}function makeUrl(e,t,r,n,s,o,c){return{scheme:e,user:t,host:r,port:n,path:s,query:o,hash:c,type:S.Absolute}}function parseUrl(e){if(isSchemeRelativeUrl(e)){const t=parseAbsoluteUrl("http:"+e);t.scheme="";t.type=S.SchemeRelative;return t}if(isAbsolutePath(e)){const t=parseAbsoluteUrl("http://foo.com"+e);t.scheme="";t.host="";t.type=S.AbsolutePath;return t}if(isFileUrl(e))return parseFileUrl(e);if(isAbsoluteUrl(e))return parseAbsoluteUrl(e);const t=parseAbsoluteUrl("http://foo.com/"+e);t.scheme="";t.host="";t.type=e?e.startsWith("?")?S.Query:e.startsWith("#")?S.Hash:S.RelativePath:S.Empty;return t}function stripPathFilename(e){if(e.endsWith("/.."))return e;const t=e.lastIndexOf("/");return e.slice(0,t+1)}function mergePaths(e,t){normalizePath(t,t.type);if(e.path==="/"){e.path=t.path}else{e.path=stripPathFilename(t.path)+e.path}}function normalizePath(e,t){const r=t<=S.RelativePath;const n=e.path.split("/");let s=1;let o=0;let c=false;for(let e=1;en)n=s}normalizePath(r,n);const s=r.query+r.hash;switch(n){case S.Hash:case S.Query:return s;case S.RelativePath:{const n=r.path.slice(1);if(!n)return s||".";if(isRelative(t||e)&&!isRelative(n)){return"./"+n+s}return n+s}case S.AbsolutePath:return r.path+s;default:return r.scheme+"//"+r.user+r.host+r.port+r.path+s}}function resolve(e,t){if(t&&!t.endsWith("/"))t+="/";return resolve$1(e,t)}function stripFilename(e){if(!e)return"";const t=e.lastIndexOf("/");return e.slice(0,t+1)}const x=0;function maybeSort(e,t){const r=nextUnsortedSegmentLine(e,0);if(r===e.length)return e;if(!t)e=e.slice();for(let n=r;nresolve(e||"",u)));const{mappings:f}=n;if(typeof f==="string"){this._encoded=f;this._decoded=undefined}else{this._encoded=undefined;this._decoded=maybeSort(f,r)}this._decodedMemo=memoizedState();this._bySources=undefined;this._bySourceMemos=undefined}}(()=>{w=e=>e._decoded||(e._decoded=decode(e._encoded));R=(e,t)=>{const r=w(e);const{names:n,resolvedSources:s}=e;for(let e=0;e{O=(e,t)=>e._indexes[t];F=(e,t)=>{const r=O(e,t);if(r!==undefined)return r;const{array:n,_indexes:s}=e;return s[t]=n.push(t)-1}})();const E=",".charCodeAt(0);const D=";".charCodeAt(0);const $="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";const M=new Uint8Array(64);const A=new Uint8Array(128);for(let e=0;e<$.length;e++){const t=$.charCodeAt(e);M[e]=t;A[t]=e}const I=typeof TextDecoder!=="undefined"?new TextDecoder:typeof Buffer!=="undefined"?{decode(e){const t=Buffer.from(e.buffer,e.byteOffset,e.byteLength);return t.toString()}}:{decode(e){let t="";for(let r=0;r0){if(c===r){i+=I.decode(s);c=0}s[c++]=D}if(l.length===0)continue;t[0]=0;for(let e=0;en){i+=I.decode(o);s.copyWithin(0,n,c);c-=n}if(e>0)s[c++]=E;c=encodeInteger(s,c,t,r,0);if(r.length===1)continue;c=encodeInteger(s,c,t,r,1);c=encodeInteger(s,c,t,r,2);c=encodeInteger(s,c,t,r,3);if(r.length===4)continue;c=encodeInteger(s,c,t,r,4)}}return i+I.decode(s.subarray(0,c))}function encodeInteger(e,t,r,n,s){const o=n[s];let c=o-r[s];r[s]=o;c=c<0?-c<<1|1:c<<1;do{let r=c&31;c>>>=5;if(c>0)r|=32;e[t++]=M[r]}while(c>0);return t}const T=0;const k=1;const P=2;const U=3;const q=4;const N=-1;let L;let j;let B;let V;let H;class GenMapping{constructor({file:e,sourceRoot:t}={}){this._names=new SetArray;this._sources=new SetArray;this._sourcesContent=[];this._mappings=[];this.file=e;this.sourceRoot=t}}(()=>{L=(e,t)=>addMappingInternal(false,e,t);j=e=>{const{file:t,sourceRoot:r,_mappings:n,_sources:s,_sourcesContent:o,_names:c}=e;removeEmptyFinalLines(n);return{version:3,file:t||undefined,names:c.array,sourceRoot:r||undefined,sources:s.array,sourcesContent:o,mappings:n}};B=e=>{const t=j(e);return Object.assign(Object.assign({},t),{mappings:encode(t.mappings)})};V=e=>{const t=new TraceMap(e);const r=new GenMapping({file:t.file,sourceRoot:t.sourceRoot});putAll(r._names,t.names);putAll(r._sources,t.sources);r._sourcesContent=t.sourcesContent||t.sources.map((()=>null));r._mappings=w(t);return r};H=(e,t,r,n,s,o,c,i,a)=>{const{_mappings:l,_sources:u,_sourcesContent:f,_names:p}=t;const d=getLine(l,r);const m=getColumnIndex(d,n);if(!s){if(e&&skipSourceless(d,m))return;return insert(d,m,[n])}const g=F(u,s);const h=i?F(p,i):N;if(g===f.length)f[g]=a!==null&&a!==void 0?a:null;if(e&&skipSource(d,m,g,o,c,h)){return}return insert(d,m,i?[n,g,o,c,h]:[n,g,o,c])}})();function getLine(e,t){for(let r=e.length;r<=t;r++){e[r]=[]}return e[t]}function getColumnIndex(e,t){let r=e.length;for(let n=r-1;n>=0;r=n--){const r=e[n];if(t>=r[T])break}return r}function insert(e,t,r){for(let r=e.length;r>t;r--){e[r]=e[r-1]}e[t]=r}function removeEmptyFinalLines(e){const{length:t}=e;let r=t;for(let t=r-1;t>=0;r=t,t--){if(e[t].length>0)break}if(r0){return parse(e)}else if(r==="number"&&isFinite(e)){return t.long?fmtLong(e):fmtShort(e)}throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function parse(c){c=String(c);if(c.length>100){return}var i=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(c);if(!i){return}var a=parseFloat(i[1]);var l=(i[2]||"ms").toLowerCase();switch(l){case"years":case"year":case"yrs":case"yr":case"y":return a*o;case"weeks":case"week":case"w":return a*s;case"days":case"day":case"d":return a*n;case"hours":case"hour":case"hrs":case"hr":case"h":return a*r;case"minutes":case"minute":case"mins":case"min":case"m":return a*t;case"seconds":case"second":case"secs":case"sec":case"s":return a*e;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return a;default:return undefined}}function fmtShort(s){var o=Math.abs(s);if(o>=n){return Math.round(s/n)+"d"}if(o>=r){return Math.round(s/r)+"h"}if(o>=t){return Math.round(s/t)+"m"}if(o>=e){return Math.round(s/e)+"s"}return s+"ms"}function fmtLong(s){var o=Math.abs(s);if(o>=n){return plural(s,o,n,"day")}if(o>=r){return plural(s,o,r,"hour")}if(o>=t){return plural(s,o,t,"minute")}if(o>=e){return plural(s,o,e,"second")}return s+" ms"}function plural(e,t,r,n){var s=t>=r*1.5;return Math.round(e/r)+" "+n+(s?"s":"")}return z}var Q;var Y;function requireCommon(){if(Y)return Q;Y=1;function setup(e){createDebug.debug=createDebug;createDebug.default=createDebug;createDebug.coerce=coerce;createDebug.disable=disable;createDebug.enable=enable;createDebug.enabled=enabled;createDebug.humanize=requireMs();createDebug.destroy=destroy;Object.keys(e).forEach((t=>{createDebug[t]=e[t]}));createDebug.names=[];createDebug.skips=[];createDebug.formatters={};function selectColor(e){let t=0;for(let r=0;r{if(t==="%%"){return"%"}o++;const s=createDebug.formatters[n];if(typeof s==="function"){const n=e[o];t=s.call(r,n);e.splice(o,1);o--}return t}));createDebug.formatArgs.call(r,e);const c=r.log||createDebug.log;c.apply(r,e)}debug.namespace=e;debug.useColors=createDebug.useColors();debug.color=createDebug.selectColor(e);debug.extend=extend;debug.destroy=createDebug.destroy;Object.defineProperty(debug,"enabled",{enumerable:true,configurable:false,get:()=>{if(r!==null){return r}if(n!==createDebug.namespaces){n=createDebug.namespaces;s=createDebug.enabled(e)}return s},set:e=>{r=e}});if(typeof createDebug.init==="function"){createDebug.init(debug)}return debug}function extend(e,t){const r=createDebug(this.namespace+(typeof t==="undefined"?":":t)+e);r.log=this.log;return r}function enable(e){createDebug.save(e);createDebug.namespaces=e;createDebug.names=[];createDebug.skips=[];let t;const r=(typeof e==="string"?e:"").split(/[\s,]+/);const n=r.length;for(t=0;t"-"+e))].join(",");createDebug.enable("");return e}function enabled(e){if(e[e.length-1]==="*"){return true}let t;let r;for(t=0,r=createDebug.skips.length;t{let e=false;return()=>{if(!e){e=true;console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}}})();t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function useColors(){if(typeof window!=="undefined"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)){return true}if(typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)){return false}return typeof document!=="undefined"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window!=="undefined"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function formatArgs(t){t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff);if(!this.useColors){return}const r="color: "+this.color;t.splice(1,0,r,"color: inherit");let n=0;let s=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{if(e==="%%"){return}n++;if(e==="%c"){s=n}}));t.splice(s,0,r)}t.log=console.debug||console.log||(()=>{});function save(e){try{if(e){t.storage.setItem("debug",e)}else{t.storage.removeItem("debug")}}catch(e){}}function load(){let e;try{e=t.storage.getItem("debug")}catch(e){}if(!e&&typeof process!=="undefined"&&"env"in process){e=process.env.DEBUG}return e}function localstorage(){try{return localStorage}catch(e){}}e.exports=requireCommon()(t);const{formatters:r}=e.exports;r.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}})(J,J.exports);return J.exports}var Z={exports:{}};var X;function requireNode(){if(X)return Z.exports;X=1;(function(e,t){const n=a;const s=l;t.init=init;t.log=log;t.formatArgs=formatArgs;t.save=save;t.load=load;t.useColors=useColors;t.destroy=s.deprecate((()=>{}),"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");t.colors=[6,2,3,4,5,1];try{const e=r(242);if(e&&(e.stderr||e).level>=2){t.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}}catch(e){}t.inspectOpts=Object.keys(process.env).filter((e=>/^debug_/i.test(e))).reduce(((e,t)=>{const r=t.substring(6).toLowerCase().replace(/_([a-z])/g,((e,t)=>t.toUpperCase()));let n=process.env[t];if(/^(yes|on|true|enabled)$/i.test(n)){n=true}else if(/^(no|off|false|disabled)$/i.test(n)){n=false}else if(n==="null"){n=null}else{n=Number(n)}e[r]=n;return e}),{});function useColors(){return"colors"in t.inspectOpts?Boolean(t.inspectOpts.colors):n.isatty(process.stderr.fd)}function formatArgs(t){const{namespace:r,useColors:n}=this;if(n){const n=this.color;const s="[3"+(n<8?n:"8;5;"+n);const o=` ${s};1m${r} `;t[0]=o+t[0].split("\n").join("\n"+o);t.push(s+"m+"+e.exports.humanize(this.diff)+"")}else{t[0]=getDate()+r+" "+t[0]}}function getDate(){if(t.inspectOpts.hideDate){return""}return(new Date).toISOString()+" "}function log(...e){return process.stderr.write(s.format(...e)+"\n")}function save(e){if(e){process.env.DEBUG=e}else{delete process.env.DEBUG}}function load(){return process.env.DEBUG}function init(e){e.inspectOpts={};const r=Object.keys(t.inspectOpts);for(let n=0;ne.trim())).join(" ")};o.O=function(e){this.inspectOpts.colors=this.useColors;return s.inspect(e,this.inspectOpts)}})(Z,Z.exports);return Z.exports}(function(e){if(typeof process==="undefined"||process.type==="renderer"||process.browser===true||process.__nwjs){e.exports=requireBrowser()}else{e.exports=requireNode()}})(W);const ee=getDefaultExportFromCjs(W.exports);const te=ee("vite:hmr");const re=/(\?|&)direct\b/;async function handleHotUpdate({file:e,modules:t,read:r,server:n},s){const o=getDescriptor(e,s,false);if(!o){return}setPrevDescriptor(e,o);const c=await r();const{descriptor:i}=createDescriptor(e,c,s);let a=false;const l=new Set;const u=t.find((e=>!/type=/.test(e.url)||/type=script/.test(e.url)));const f=t.find((e=>/type=template/.test(e.url)));if(hasScriptChanged(o,i)){let e;if(i.scriptSetup?.lang&&!i.scriptSetup.src||i.script?.lang&&!i.script.src){const r=new RegExp(`type=script.*&lang.${i.scriptSetup?.lang||i.script?.lang}$`);e=t.find((e=>r.test(e.url)))}l.add(e||u)}if(!isEqualBlock(i.template,o.template)){if(u&&!l.has(u)){setResolvedScript(i,getResolvedScript(o,false),false)}l.add(f);a=true}let p=false;const d=o.styles||[];const m=i.styles||[];if(o.cssVars.join("")!==i.cssVars.join("")){l.add(u)}if(d.some((e=>e.scoped))!==m.some((e=>e.scoped))){l.add(f);l.add(u)}for(let e=0;et.url.includes(`type=style&index=${e}`)&&t.url.endsWith(`.${n.lang||"css"}`)&&!re.test(t.url)));if(r){l.add(r);if(r.url.includes("&inline")){l.add(u)}}else{l.add(u)}}}if(d.length>m.length){l.add(u)}const g=o.customBlocks||[];const h=i.customBlocks||[];if(g.length!==h.length){l.add(u)}else{for(let e=0;et.url.includes(`type=${r.type}&index=${e}`)));if(n){l.add(n)}else{l.add(u)}}}}const y=[];if(a){y.push(`template`);if(!f){l.add(u)}else if(u&&!l.has(u)){const e=[...u.importers].filter((e=>/\.css($|\?)/.test(e.url)));e.forEach((e=>l.add(e)))}}if(p){y.push(`style`)}if(y.length){te(`[vue:update(${y.join("&")})] ${e}`)}return[...l].filter(Boolean)}function isEqualBlock(e,t){if(!e&&!t)return true;if(!e||!t)return false;if(e.src&&t.src&&e.src===t.src)return true;if(e.content!==t.content)return false;const r=Object.keys(e.attrs);const n=Object.keys(t.attrs);if(r.length!==n.length){return false}return r.every((r=>e.attrs[r]===t.attrs[r]))}function isOnlyTemplateChanged(e,t){return!hasScriptChanged(e,t)&&e.styles.length===t.styles.length&&e.styles.every(((e,r)=>isEqualBlock(e,t.styles[r])))&&e.customBlocks.length===t.customBlocks.length&&e.customBlocks.every(((e,r)=>isEqualBlock(e,t.customBlocks[r])))}function hasScriptChanged(e,t){if(!isEqualBlock(e.script,t.script)){return true}if(!isEqualBlock(e.scriptSetup,t.scriptSetup)){return true}const r=getResolvedScript(e,false);const n=r?.imports;if(n){return t.shouldForceReload(n)}return false}const ne="\0plugin-vue:export-helper";const se=`\nexport default (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n}\n`;async function transformMain(e,t,r,n,o,i){const{devServer:a,isProduction:l,devToolsEnabled:u}=r;const f=getPrevDescriptor(t);const{descriptor:p,errors:d}=createDescriptor(t,e,r);if(d.length){d.forEach((e=>n.error(createRollupError(t,e))));return null}const m=[];const g=p.styles.some((e=>e.scoped));const{code:h,map:y}=await genScriptCode(p,r,n,o);const C=p.template&&!isUseInlineTemplate(p,!a);let _="";let v=void 0;if(C){({code:_,map:v}=await genTemplateCode(p,r,n,o))}if(C){m.push(o?["ssrRender","_sfc_ssrRender"]:["render","_sfc_render"])}else{if(f&&!isEqualBlock(p.template,f.template)){m.push([o?"ssrRender":"render","() => {}"])}}const b=await genStyleCode(p,n,i,m);const S=await genCustomBlockCode(p,n);const x=[h,_,b,S];if(g){m.push([`__scopeId`,JSON.stringify(`data-v-${p.id}`)])}if(u||a&&!l){m.push([`__file`,JSON.stringify(l?c.basename(t):t)])}if(a&&a.config.server.hmr!==false&&!o&&!l){x.push(`_sfc_main.__hmrId = ${JSON.stringify(p.id)}`);x.push(`typeof __VUE_HMR_RUNTIME__ !== 'undefined' && __VUE_HMR_RUNTIME__.createRecord(_sfc_main.__hmrId, _sfc_main)`);if(f&&isOnlyTemplateChanged(f,p)){x.push(`export const _rerender_only = true`)}x.push(`import.meta.hot.accept(mod => {`,` if (!mod) return`,` const { default: updated, _rerender_only } = mod`,` if (_rerender_only) {`,` __VUE_HMR_RUNTIME__.rerender(updated.__hmrId, updated.render)`,` } else {`,` __VUE_HMR_RUNTIME__.reload(updated.__hmrId, updated)`,` }`,`})`)}if(o){const e=s.normalizePath(c.relative(r.root,t));x.push(`import { useSSRContext as __vite_useSSRContext } from 'vue'`,`const _sfc_setup = _sfc_main.setup`,`_sfc_main.setup = (props, ctx) => {`,` const ssrContext = __vite_useSSRContext()`,` ;(ssrContext.modules || (ssrContext.modules = new Set())).add(${JSON.stringify(e)})`,` return _sfc_setup ? _sfc_setup(props, ctx) : undefined`,`}`)}let w=void 0;if(r.sourceMap){if(y&&v){const e=V(y);const t=new TraceMap(v);const r=(h.match(/\r?\n/g)?.length??0)+1;R(t,(t=>{if(t.source==null)return;L(e,{source:t.source,original:{line:t.originalLine,column:t.originalColumn},generated:{line:t.generatedLine+r,column:t.generatedColumn}})}));w=B(e);w.sourcesContent=v.sourcesContent}else{w=y??v}}if(!m.length){x.push(`export default _sfc_main`)}else{x.push(`import _export_sfc from '${ne}'`,`export default /*#__PURE__*/_export_sfc(_sfc_main, [${m.map((([e,t])=>`['${e}',${t}]`)).join(",")}])`)}let O=x.join("\n");const F=p.scriptSetup?.lang||p.script?.lang;if(F&&/tsx?$/.test(F)&&!p.script?.src){const{code:e,map:n}=await s.transformWithEsbuild(O,t,{loader:"ts",target:"esnext",sourcemap:r.sourceMap},w);O=e;w=w?n:w}return{code:O,map:w||{mappings:""},meta:{vite:{lang:p.script?.lang||p.scriptSetup?.lang||"js"}}}}async function genTemplateCode(e,t,r,n){const s=e.template;const o=e.styles.some((e=>e.scoped));if(!s.lang&&!s.src){return transformTemplateInMain(s.content,e,t,r,n)}else{if(s.src){await linkSrcToDescriptor(s.src,e,r,o)}const t=s.src||e.filename;const c=s.src?o?`&src=${e.id}`:"&src=true":"";const i=o?`&scoped=${e.id}`:``;const a=attrsToQuery(s.attrs,"js",true);const l=`?vue&type=template${c}${i}${a}`;const u=JSON.stringify(t+l);const f=n?"ssrRender":"render";return{code:`import { ${f} as _sfc_${f} } from ${u}`,map:void 0}}}async function genScriptCode(e,t,r,n){let s=`const _sfc_main = {}`;let o;const i=resolveScript(e,t,n);if(i){if((!i.lang||i.lang==="ts"&&t.devServer)&&!i.src){const e=t.script?.babelParserPlugins||[];const r=i.lang==="ts"?e.includes("decorators")?["typescript"]:["typescript","decorators-legacy"]:[];s=t.compiler.rewriteDefault(i.content,"_sfc_main",[...r,...e]);o=i.map}else{if(i.src){await linkSrcToDescriptor(i.src,e,r,false)}const t=i.src||e.filename;const n=i.src&&c.extname(t).slice(1)||"js";const o=attrsToQuery(i.attrs,n);const a=i.src?`&src=true`:``;const l=`?vue&type=script${a}${o}`;const u=JSON.stringify(t+l);s=`import _sfc_main from ${u}\nexport * from ${u}`}}return{code:s,map:o}}async function genStyleCode(e,t,r,n){let s=``;let o;if(e.styles.length){for(let n=0;n is not supported in custom elements mode.`)}const[e,t]=genCSSModulesCode(n,d,c.module);s+=e;Object.assign(o||(o={}),t)}else{if(r){s+=`\nimport _style_${n} from ${JSON.stringify(d)}`}else{s+=`\nimport ${JSON.stringify(d)}`}}}if(r){n.push([`styles`,`[${e.styles.map(((e,t)=>`_style_${t}`)).join(",")}]`])}}if(o){const e=Object.entries(o).reduce(((e,[t,r])=>e+`"${t}":${r},\n`),"{\n")+"}";s+=`\nconst cssModules = ${e}`;n.push([`__cssModules`,`cssModules`])}return s}function genCSSModulesCode(e,t,r){const n=`style${e}`;const s=typeof r==="string"?r:"$style";const o=t.replace(/\.(\w+)$/,".module.$1");return[`\nimport ${n} from ${JSON.stringify(o)}`,{[s]:n}]}async function genCustomBlockCode(e,t){let r="";for(let n=0;n{if(e.line&&e.column){e.loc={file:t.filename,line:e.line+i.loc.start.line,column:e.column}}o.error(e)}));return null}const l=a.map?await s.formatPostcssSourceMap(a.map,c):{mappings:""};return{code:a.code,map:l}}function vuePlugin(e={}){const{include:t=/\.vue$/,exclude:r,customElement:o=/\.ce\.vue$/,reactivityTransform:c=false}=e;const i=s.createFilter(t,r);const a=typeof o==="boolean"?()=>o:s.createFilter(o);const l=c===false?()=>false:c===true?s.createFilter(/\.(j|t)sx?$/,/node_modules/):s.createFilter(c);let u={isProduction:process.env.NODE_ENV==="production",compiler:null,...e,include:t,exclude:r,customElement:o,reactivityTransform:c,root:process.cwd(),sourceMap:true,cssDevSourcemap:false,devToolsEnabled:process.env.NODE_ENV!=="production"};return{name:"vite:vue",handleHotUpdate(e){if(!i(e.file)){return}return handleHotUpdate(e,u)},config(e){return{define:{__VUE_OPTIONS_API__:e.define?.__VUE_OPTIONS_API__??true,__VUE_PROD_DEVTOOLS__:e.define?.__VUE_PROD_DEVTOOLS__??false},ssr:{external:e.legacy?.buildSsrCjsExternalHeuristics?["vue","@vue/server-renderer"]:[]}}},configResolved(e){u={...u,root:e.root,sourceMap:e.command==="build"?!!e.build.sourcemap:true,cssDevSourcemap:e.css?.devSourcemap??false,isProduction:e.isProduction,devToolsEnabled:!!e.define.__VUE_PROD_DEVTOOLS__||!e.isProduction}},configureServer(e){u.devServer=e},buildStart(){u.compiler=u.compiler||resolveCompiler(u.root)},async resolveId(e){if(e===ne){return e}if(parseVueRequest(e).query.vue){return e}},load(e,t){const r=t?.ssr===true;if(e===ne){return se}const{filename:s,query:o}=parseVueRequest(e);if(o.vue){if(o.src){return n.readFileSync(s,"utf-8")}const e=getDescriptor(s,u);let t;if(o.type==="script"){t=getResolvedScript(e,r)}else if(o.type==="template"){t=e.template}else if(o.type==="style"){t=e.styles[o.index]}else if(o.index!=null){t=e.customBlocks[o.index]}if(t){return{code:t.content,map:t.map}}}},transform(e,t,r){const n=r?.ssr===true;const{filename:s,query:o}=parseVueRequest(t);if(o.raw){return}if(!i(s)&&!o.vue){if(!o.vue&&l(s)&&u.compiler.shouldTransformRef(e)){return u.compiler.transformRef(e,{filename:s,sourceMap:true})}return}if(!o.vue){return transformMain(e,s,u,this,n,a(s))}else{const t=o.src?getSrcDescriptor(s,o):getDescriptor(s,u);if(o.type==="template"){return transformTemplateAsModule(e,t,u,this,n)}else if(o.type==="style"){return transformStyle(e,t,Number(o.index),u,this,s)}}}}}e.exports=vuePlugin;e.exports["default"]=vuePlugin;e.exports.parseVueRequest=parseVueRequest}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var s=t[r]={exports:{}};var o=true;try{e[r](s,s.exports,__nccwpck_require__);o=false}finally{if(o)delete t[r]}return s.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var r=__nccwpck_require__(655);module.exports=r})(); \ No newline at end of file +(function(){"use strict";var e={975:function(e){e.exports=(e,t=process.argv)=>{const r=e.startsWith("-")?"":e.length===1?"-":"--";const s=t.indexOf(r+e);const n=t.indexOf("--");return s!==-1&&(n===-1||s=2,has16m:e>=3}}function supportsColor(e,t){if(i===0){return 0}if(o("color=16m")||o("color=full")||o("color=truecolor")){return 3}if(o("color=256")){return 2}if(e&&!t&&i===undefined){return 0}const r=i||0;if(c.TERM==="dumb"){return r}if(process.platform==="win32"){const e=s.release().split(".");if(Number(e[0])>=10&&Number(e[2])>=10586){return Number(e[2])>=14931?3:2}return 1}if("CI"in c){if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some((e=>e in c))||c.CI_NAME==="codeship"){return 1}return r}if("TEAMCITY_VERSION"in c){return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(c.TEAMCITY_VERSION)?1:0}if(c.COLORTERM==="truecolor"){return 3}if("TERM_PROGRAM"in c){const e=parseInt((c.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(c.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(c.TERM)){return 2}if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(c.TERM)){return 1}if("COLORTERM"in c){return 1}return r}function getSupportLevel(e){const t=supportsColor(e,e&&e.isTTY);return translateLevel(t)}e.exports={supportsColor:getSupportLevel,stdout:translateLevel(supportsColor(true,n.isatty(1))),stderr:translateLevel(supportsColor(true,n.isatty(2)))}},291:function(e){e.exports=require("@umijs/bundler-vite/compiled/vite")},5:function(e){e.exports=require("crypto")},561:function(e){e.exports=require("fs")},33:function(e){e.exports=require("module")},411:function(e){e.exports=require("path")},37:function(e){e.exports=require("os")},224:function(e){e.exports=require("tty")},310:function(e){e.exports=require("url")},837:function(e){e.exports=require("util")},632:function(e,t,r){Object.defineProperty(t,"__esModule",{value:true});const s=r(561);const n=r(291);const o=r(33);const c=r(411);const i=r(5);const l=r(224);const u=r(837);function resolveCompiler(e){const t=tryRequire("vue/compiler-sfc",e)||tryRequire("vue/compiler-sfc");if(!t){throw new Error(`Failed to resolve vue/compiler-sfc.\n@vitejs/plugin-vue requires vue (>=3.2.25) to be present in the dependency tree.`)}return t}const a=o.createRequire(typeof document==="undefined"?new(r(310).URL)("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("index.cjs",document.baseURI).href);function tryRequire(e,t){try{return t?a(a.resolve(e,{paths:[t]})):a(e)}catch(e){}}function parseVueRequest(e){const[t,r]=e.split(`?`,2);const s=Object.fromEntries(new URLSearchParams(r));if(s.vue!=null){s.vue=true}if(s.index!=null){s.index=Number(s.index)}if(s.raw!=null){s.raw=true}if(s.url!=null){s.url=true}if(s.scoped!=null){s.scoped=true}return{filename:t,query:s}}function slash(e){const t=/^\\\\\?\\/.test(e);if(t){return e}return e.replace(/\\/g,"/")}const f=new Map;const p=new Map;function createDescriptor(e,t,{root:r,isProduction:s,sourceMap:n,compiler:o}){const{descriptor:i,errors:l}=o.parse(t,{filename:e,sourceMap:n});const u=slash(c.normalize(c.relative(r,e)));i.id=getHash(u+(s?t:""));f.set(e,i);return{descriptor:i,errors:l}}function getPrevDescriptor(e){return p.get(e)}function setPrevDescriptor(e,t){p.set(e,t)}function getDescriptor(e,t,r=true){if(f.has(e)){return f.get(e)}if(r){const{descriptor:r,errors:n}=createDescriptor(e,s.readFileSync(e,"utf-8"),t);if(n.length){throw n[0]}return r}}function getSrcDescriptor(e,t){if(t.scoped){return f.get(`${e}?src=${t.src}`)}return f.get(e)}function setSrcDescriptor(e,t,r){if(r){f.set(`${e}?src=${t.id}`,t);return}f.set(e,t)}function getHash(e){return i.createHash("sha256").update(e).digest("hex").substring(0,8)}function createRollupError(e,t){const{message:r,name:s,stack:n}=t;const o={id:e,plugin:"vue",message:r,name:s,stack:n};if("code"in t&&t.loc){o.loc={file:e,line:t.loc.start.line,column:t.loc.start.column}}return o}async function transformTemplateAsModule(e,t,r,s,n){const o=compile(e,t,r,s,n);let c=o.code;if(r.devServer&&r.devServer.config.server.hmr!==false&&!n&&!r.isProduction){c+=`\nimport.meta.hot.accept(({ render }) => {\n __VUE_HMR_RUNTIME__.rerender(${JSON.stringify(t.id)}, render)\n })`}return{code:c,map:o.map}}function transformTemplateInMain(e,t,r,s,n){const o=compile(e,t,r,s,n);return{...o,code:o.code.replace(/\nexport (function|const) (render|ssrRender)/,"\n$1 _sfc_$2")}}function compile(e,t,r,s,n){const o=t.filename;const c=r.compiler.compileTemplate({...resolveTemplateCompilerOptions(t,r,n),source:e});if(c.errors.length){c.errors.forEach((e=>s.error(typeof e==="string"?{id:o,message:e}:createRollupError(o,e))))}if(c.tips.length){c.tips.forEach((e=>s.warn({id:o,message:e})))}return c}function resolveTemplateCompilerOptions(e,t,r){const s=e.template;if(!s){return}const n=getResolvedScript(e,r);const o=e.styles.some((e=>e.scoped));const{id:i,filename:l,cssVars:u}=e;let a=t.template?.transformAssetUrls;let f;if(t.devServer){if(l.startsWith(t.root)){const e=t.devServer.config.base;f={base:(t.devServer.config.server?.origin??"")+e+slash(c.relative(t.root,c.dirname(l)))}}}else if(a!==false){f={includeAbsolute:true}}if(a&&typeof a==="object"){if(Object.values(a).some((e=>Array.isArray(e)))){a={...f,tags:a}}else{a={...f,...a}}}else{a=f}let p=s.lang&&t.template?.preprocessOptions;if(s.lang==="pug"){p={doctype:"html",...p}}const d=t.template?.compilerOptions?.expressionPlugins||[];const m=e.scriptSetup?.lang||e.script?.lang;if(m&&/tsx?$/.test(m)&&!d.includes("typescript")){d.push("typescript")}return{...t.template,id:i,filename:l,scoped:o,slotted:e.slotted,isProd:t.isProduction,inMap:s.src?void 0:s.map,ssr:r,ssrCssVars:u,transformAssetUrls:a,preprocessLang:s.lang,preprocessOptions:p,compilerOptions:{...t.template?.compilerOptions,scopeId:o?`data-v-${i}`:void 0,bindingMetadata:n?n.bindings:void 0,expressionPlugins:d,sourceMap:t.sourceMap}}}const d=new WeakMap;const m=new WeakMap;function getResolvedScript(e,t){return(t?m:d).get(e)}function setResolvedScript(e,t,r){(r?m:d).set(e,t)}function isUseInlineTemplate(e,t){return t&&!!e.scriptSetup&&!e.template?.src}function resolveScript(e,t,r){if(!e.script&&!e.scriptSetup){return null}const s=r?m:d;const n=s.get(e);if(n){return n}let o=null;o=t.compiler.compileScript(e,{...t.script,id:e.id,isProd:t.isProduction,inlineTemplate:isUseInlineTemplate(e,!t.devServer),reactivityTransform:t.reactivityTransform!==false,templateOptions:resolveTemplateCompilerOptions(e,t,r),sourceMap:t.sourceMap});s.set(e,o);return o}const g=",".charCodeAt(0);const h=";".charCodeAt(0);const y="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";const C=new Uint8Array(64);const _=new Uint8Array(128);for(let e=0;e>>=1;if(i){n=-2147483648|-n}r[s]+=n;return t}function hasMoreVlq(e,t,r){if(t>=r)return false;return e.charCodeAt(t)!==g}function sort(e){e.sort(sortComparator$1)}function sortComparator$1(e,t){return e[0]-t[0]}function encode(e){const t=new Int32Array(5);const r=1024*16;const s=r-36;const n=new Uint8Array(r);const o=n.subarray(0,s);let c=0;let i="";for(let l=0;l0){if(c===r){i+=v.decode(n);c=0}n[c++]=h}if(u.length===0)continue;t[0]=0;for(let e=0;es){i+=v.decode(o);n.copyWithin(0,s,c);c-=s}if(e>0)n[c++]=g;c=encodeInteger(n,c,t,r,0);if(r.length===1)continue;c=encodeInteger(n,c,t,r,1);c=encodeInteger(n,c,t,r,2);c=encodeInteger(n,c,t,r,3);if(r.length===4)continue;c=encodeInteger(n,c,t,r,4)}}return i+v.decode(n.subarray(0,c))}function encodeInteger(e,t,r,s,n){const o=s[n];let c=o-r[n];r[n]=o;c=c<0?-c<<1|1:c<<1;do{let r=c&31;c>>>=5;if(c>0)r|=32;e[t++]=C[r]}while(c>0);return t}const b=/^[\w+.-]+:\/\//;const S=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/;const x=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;var R;(function(e){e[e["Empty"]=1]="Empty";e[e["Hash"]=2]="Hash";e[e["Query"]=3]="Query";e[e["RelativePath"]=4]="RelativePath";e[e["AbsolutePath"]=5]="AbsolutePath";e[e["SchemeRelative"]=6]="SchemeRelative";e[e["Absolute"]=7]="Absolute"})(R||(R={}));function isAbsoluteUrl(e){return b.test(e)}function isSchemeRelativeUrl(e){return e.startsWith("//")}function isAbsolutePath(e){return e.startsWith("/")}function isFileUrl(e){return e.startsWith("file:")}function isRelative(e){return/^[.?#]/.test(e)}function parseAbsoluteUrl(e){const t=S.exec(e);return makeUrl(t[1],t[2]||"",t[3],t[4]||"",t[5]||"/",t[6]||"",t[7]||"")}function parseFileUrl(e){const t=x.exec(e);const r=t[2];return makeUrl("file:","",t[1]||"","",isAbsolutePath(r)?r:"/"+r,t[3]||"",t[4]||"")}function makeUrl(e,t,r,s,n,o,c){return{scheme:e,user:t,host:r,port:s,path:n,query:o,hash:c,type:R.Absolute}}function parseUrl(e){if(isSchemeRelativeUrl(e)){const t=parseAbsoluteUrl("http:"+e);t.scheme="";t.type=R.SchemeRelative;return t}if(isAbsolutePath(e)){const t=parseAbsoluteUrl("http://foo.com"+e);t.scheme="";t.host="";t.type=R.AbsolutePath;return t}if(isFileUrl(e))return parseFileUrl(e);if(isAbsoluteUrl(e))return parseAbsoluteUrl(e);const t=parseAbsoluteUrl("http://foo.com/"+e);t.scheme="";t.host="";t.type=e?e.startsWith("?")?R.Query:e.startsWith("#")?R.Hash:R.RelativePath:R.Empty;return t}function stripPathFilename(e){if(e.endsWith("/.."))return e;const t=e.lastIndexOf("/");return e.slice(0,t+1)}function mergePaths(e,t){normalizePath(t,t.type);if(e.path==="/"){e.path=t.path}else{e.path=stripPathFilename(t.path)+e.path}}function normalizePath(e,t){const r=t<=R.RelativePath;const s=e.path.split("/");let n=1;let o=0;let c=false;for(let e=1;es)s=n}normalizePath(r,s);const n=r.query+r.hash;switch(s){case R.Hash:case R.Query:return n;case R.RelativePath:{const s=r.path.slice(1);if(!s)return n||".";if(isRelative(t||e)&&!isRelative(s)){return"./"+s+n}return s+n}case R.AbsolutePath:return r.path+n;default:return r.scheme+"//"+r.user+r.host+r.port+r.path+n}}function resolve(e,t){if(t&&!t.endsWith("/"))t+="/";return resolve$1(e,t)}function stripFilename(e){if(!e)return"";const t=e.lastIndexOf("/");return e.slice(0,t+1)}const w=0;function maybeSort(e,t){const r=nextUnsortedSegmentLine(e,0);if(r===e.length)return e;if(!t)e=e.slice();for(let s=r;sresolve(e||"",a)));const{mappings:f}=s;if(typeof f==="string"){this._encoded=f;this._decoded=undefined}else{this._encoded=undefined;this._decoded=maybeSort(f,r)}this._decodedMemo=memoizedState();this._bySources=undefined;this._bySourceMemos=undefined}}(()=>{O=e=>e._decoded||(e._decoded=decode(e._encoded));F=(e,t)=>{const r=O(e);const{names:s,resolvedSources:n}=e;for(let e=0;e{E=(e,t)=>e._indexes[t];D=(e,t)=>{const r=E(e,t);if(r!==undefined)return r;const{array:s,_indexes:n}=e;return n[t]=s.push(t)-1}})();const $=0;const M=1;const I=2;const A=3;const T=4;const k=-1;let P;let U;let q;let N;let L;class GenMapping{constructor({file:e,sourceRoot:t}={}){this._names=new SetArray;this._sources=new SetArray;this._sourcesContent=[];this._mappings=[];this.file=e;this.sourceRoot=t}}(()=>{P=(e,t)=>addMappingInternal(false,e,t);U=e=>{const{file:t,sourceRoot:r,_mappings:s,_sources:n,_sourcesContent:o,_names:c}=e;removeEmptyFinalLines(s);return{version:3,file:t||undefined,names:c.array,sourceRoot:r||undefined,sources:n.array,sourcesContent:o,mappings:s}};q=e=>{const t=U(e);return Object.assign(Object.assign({},t),{mappings:encode(t.mappings)})};N=e=>{const t=new TraceMap(e);const r=new GenMapping({file:t.file,sourceRoot:t.sourceRoot});putAll(r._names,t.names);putAll(r._sources,t.sources);r._sourcesContent=t.sourcesContent||t.sources.map((()=>null));r._mappings=O(t);return r};L=(e,t,r,s,n,o,c,i,l)=>{const{_mappings:u,_sources:a,_sourcesContent:f,_names:p}=t;const d=getLine(u,r);const m=getColumnIndex(d,s);if(!n){if(e&&skipSourceless(d,m))return;return insert(d,m,[s])}const g=D(a,n);const h=i?D(p,i):k;if(g===f.length)f[g]=l!==null&&l!==void 0?l:null;if(e&&skipSource(d,m,g,o,c,h)){return}return insert(d,m,i?[s,g,o,c,h]:[s,g,o,c])}})();function getLine(e,t){for(let r=e.length;r<=t;r++){e[r]=[]}return e[t]}function getColumnIndex(e,t){let r=e.length;for(let s=r-1;s>=0;r=s--){const r=e[s];if(t>=r[$])break}return r}function insert(e,t,r){for(let r=e.length;r>t;r--){e[r]=e[r-1]}e[t]=r}function removeEmptyFinalLines(e){const{length:t}=e;let r=t;for(let t=r-1;t>=0;r=t,t--){if(e[t].length>0)break}if(r0){return parse(e)}else if(r==="number"&&isFinite(e)){return t.long?fmtLong(e):fmtShort(e)}throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function parse(c){c=String(c);if(c.length>100){return}var i=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(c);if(!i){return}var l=parseFloat(i[1]);var u=(i[2]||"ms").toLowerCase();switch(u){case"years":case"year":case"yrs":case"yr":case"y":return l*o;case"weeks":case"week":case"w":return l*n;case"days":case"day":case"d":return l*s;case"hours":case"hour":case"hrs":case"hr":case"h":return l*r;case"minutes":case"minute":case"mins":case"min":case"m":return l*t;case"seconds":case"second":case"secs":case"sec":case"s":return l*e;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return l;default:return undefined}}function fmtShort(n){var o=Math.abs(n);if(o>=s){return Math.round(n/s)+"d"}if(o>=r){return Math.round(n/r)+"h"}if(o>=t){return Math.round(n/t)+"m"}if(o>=e){return Math.round(n/e)+"s"}return n+"ms"}function fmtLong(n){var o=Math.abs(n);if(o>=s){return plural(n,o,s,"day")}if(o>=r){return plural(n,o,r,"hour")}if(o>=t){return plural(n,o,t,"minute")}if(o>=e){return plural(n,o,e,"second")}return n+" ms"}function plural(e,t,r,s){var n=t>=r*1.5;return Math.round(e/r)+" "+s+(n?"s":"")}return V}var W;var J;function requireCommon(){if(J)return W;J=1;function setup(e){createDebug.debug=createDebug;createDebug.default=createDebug;createDebug.coerce=coerce;createDebug.disable=disable;createDebug.enable=enable;createDebug.enabled=enabled;createDebug.humanize=requireMs();createDebug.destroy=destroy;Object.keys(e).forEach((t=>{createDebug[t]=e[t]}));createDebug.names=[];createDebug.skips=[];createDebug.formatters={};function selectColor(e){let t=0;for(let r=0;r{if(t==="%%"){return"%"}o++;const n=createDebug.formatters[s];if(typeof n==="function"){const s=e[o];t=n.call(r,s);e.splice(o,1);o--}return t}));createDebug.formatArgs.call(r,e);const c=r.log||createDebug.log;c.apply(r,e)}debug.namespace=e;debug.useColors=createDebug.useColors();debug.color=createDebug.selectColor(e);debug.extend=extend;debug.destroy=createDebug.destroy;Object.defineProperty(debug,"enabled",{enumerable:true,configurable:false,get:()=>{if(r!==null){return r}if(s!==createDebug.namespaces){s=createDebug.namespaces;n=createDebug.enabled(e)}return n},set:e=>{r=e}});if(typeof createDebug.init==="function"){createDebug.init(debug)}return debug}function extend(e,t){const r=createDebug(this.namespace+(typeof t==="undefined"?":":t)+e);r.log=this.log;return r}function enable(e){createDebug.save(e);createDebug.namespaces=e;createDebug.names=[];createDebug.skips=[];let t;const r=(typeof e==="string"?e:"").split(/[\s,]+/);const s=r.length;for(t=0;t"-"+e))].join(",");createDebug.enable("");return e}function enabled(e){if(e[e.length-1]==="*"){return true}let t;let r;for(t=0,r=createDebug.skips.length;t{let e=false;return()=>{if(!e){e=true;console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}}})();t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function useColors(){if(typeof window!=="undefined"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)){return true}if(typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)){return false}return typeof document!=="undefined"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window!=="undefined"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function formatArgs(t){t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff);if(!this.useColors){return}const r="color: "+this.color;t.splice(1,0,r,"color: inherit");let s=0;let n=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{if(e==="%%"){return}s++;if(e==="%c"){n=s}}));t.splice(n,0,r)}t.log=console.debug||console.log||(()=>{});function save(e){try{if(e){t.storage.setItem("debug",e)}else{t.storage.removeItem("debug")}}catch(e){}}function load(){let e;try{e=t.storage.getItem("debug")}catch(e){}if(!e&&typeof process!=="undefined"&&"env"in process){e=process.env.DEBUG}return e}function localstorage(){try{return localStorage}catch(e){}}e.exports=requireCommon()(t);const{formatters:r}=e.exports;r.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}})(B,B.exports);return B.exports}var G={exports:{}};var Q;function requireNode(){if(Q)return G.exports;Q=1;(function(e,t){const s=l;const n=u;t.init=init;t.log=log;t.formatArgs=formatArgs;t.save=save;t.load=load;t.useColors=useColors;t.destroy=n.deprecate((()=>{}),"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");t.colors=[6,2,3,4,5,1];try{const e=r(242);if(e&&(e.stderr||e).level>=2){t.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}}catch(e){}t.inspectOpts=Object.keys(process.env).filter((e=>/^debug_/i.test(e))).reduce(((e,t)=>{const r=t.substring(6).toLowerCase().replace(/_([a-z])/g,((e,t)=>t.toUpperCase()));let s=process.env[t];if(/^(yes|on|true|enabled)$/i.test(s)){s=true}else if(/^(no|off|false|disabled)$/i.test(s)){s=false}else if(s==="null"){s=null}else{s=Number(s)}e[r]=s;return e}),{});function useColors(){return"colors"in t.inspectOpts?Boolean(t.inspectOpts.colors):s.isatty(process.stderr.fd)}function formatArgs(t){const{namespace:r,useColors:s}=this;if(s){const s=this.color;const n="[3"+(s<8?s:"8;5;"+s);const o=` ${n};1m${r} `;t[0]=o+t[0].split("\n").join("\n"+o);t.push(n+"m+"+e.exports.humanize(this.diff)+"")}else{t[0]=getDate()+r+" "+t[0]}}function getDate(){if(t.inspectOpts.hideDate){return""}return(new Date).toISOString()+" "}function log(...e){return process.stderr.write(n.format(...e)+"\n")}function save(e){if(e){process.env.DEBUG=e}else{delete process.env.DEBUG}}function load(){return process.env.DEBUG}function init(e){e.inspectOpts={};const r=Object.keys(t.inspectOpts);for(let s=0;se.trim())).join(" ")};o.O=function(e){this.inspectOpts.colors=this.useColors;return n.inspect(e,this.inspectOpts)}})(G,G.exports);return G.exports}(function(e){if(typeof process==="undefined"||process.type==="renderer"||process.browser===true||process.__nwjs){e.exports=requireBrowser()}else{e.exports=requireNode()}})(j);const Y=getDefaultExportFromCjs(j.exports);const K=Y("vite:hmr");const Z=/(?:\?|&)direct\b/;async function handleHotUpdate({file:e,modules:t,read:r,server:s},o){const c=getDescriptor(e,o,false);if(!c){return}setPrevDescriptor(e,c);const i=await r();const{descriptor:l}=createDescriptor(e,i,o);let u=false;const a=new Set;const f=t.filter((e=>!/type=/.test(e.url)||/type=script/.test(e.url))).sort(((e,t)=>e.url.length-t.url.length))[0];const p=t.find((e=>/type=template/.test(e.url)));const d=hasScriptChanged(c,l);if(d){let e;if(l.scriptSetup?.lang&&!l.scriptSetup.src||l.script?.lang&&!l.script.src){const r=new RegExp(`type=script.*&lang.${l.scriptSetup?.lang||l.script?.lang}$`);e=t.find((e=>r.test(e.url)))}a.add(e||f)}if(!isEqualBlock(l.template,c.template)){if(!d){setResolvedScript(l,getResolvedScript(c,false),false)}a.add(p);u=true}let m=false;const g=c.styles||[];const h=l.styles||[];if(c.cssVars.join("")!==l.cssVars.join("")){a.add(f)}if(g.some((e=>e.scoped))!==h.some((e=>e.scoped))){a.add(p);a.add(f)}for(let e=0;et.url.includes(`type=style&index=${e}`)&&t.url.endsWith(`.${s.lang||"css"}`)&&!Z.test(t.url)));if(r){a.add(r);if(r.url.includes("&inline")){a.add(f)}}else{a.add(f)}}}if(g.length>h.length){a.add(f)}const y=c.customBlocks||[];const C=l.customBlocks||[];if(y.length!==C.length){a.add(f)}else{for(let e=0;et.url.includes(`type=${r.type}&index=${e}`)));if(s){a.add(s)}else{a.add(f)}}}}const _=[];if(u){_.push(`template`);if(!p){a.add(f)}else if(f&&!a.has(f)){const e=[...f.importers].filter((e=>n.isCSSRequest(e.url)));e.forEach((e=>a.add(e)))}}if(m){_.push(`style`)}if(_.length){K(`[vue:update(${_.join("&")})] ${e}`)}return[...a].filter(Boolean)}function isEqualBlock(e,t){if(!e&&!t)return true;if(!e||!t)return false;if(e.src&&t.src&&e.src===t.src)return true;if(e.content!==t.content)return false;const r=Object.keys(e.attrs);const s=Object.keys(t.attrs);if(r.length!==s.length){return false}return r.every((r=>e.attrs[r]===t.attrs[r]))}function isOnlyTemplateChanged(e,t){return!hasScriptChanged(e,t)&&e.styles.length===t.styles.length&&e.styles.every(((e,r)=>isEqualBlock(e,t.styles[r])))&&e.customBlocks.length===t.customBlocks.length&&e.customBlocks.every(((e,r)=>isEqualBlock(e,t.customBlocks[r])))}function hasScriptChanged(e,t){if(!isEqualBlock(e.script,t.script)){return true}if(!isEqualBlock(e.scriptSetup,t.scriptSetup)){return true}const r=getResolvedScript(e,false);const s=r?.imports;if(s){return!t.template||t.shouldForceReload(s)}return false}const X="\0plugin-vue:export-helper";const ee=`\nexport default (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n}\n`;async function transformMain(e,t,r,s,o,i){const{devServer:l,isProduction:u,devToolsEnabled:a}=r;const f=getPrevDescriptor(t);const{descriptor:p,errors:d}=createDescriptor(t,e,r);if(d.length){d.forEach((e=>s.error(createRollupError(t,e))));return null}const m=[];const g=p.styles.some((e=>e.scoped));const{code:h,map:y}=await genScriptCode(p,r,s,o);const C=p.template&&!isUseInlineTemplate(p,!l);let _="";let v=void 0;if(C){({code:_,map:v}=await genTemplateCode(p,r,s,o))}if(C){m.push(o?["ssrRender","_sfc_ssrRender"]:["render","_sfc_render"])}else{if(f&&!isEqualBlock(p.template,f.template)){m.push([o?"ssrRender":"render","() => {}"])}}const b=await genStyleCode(p,s,i,m);const S=await genCustomBlockCode(p,s);const x=[h,_,b,S];if(g){m.push([`__scopeId`,JSON.stringify(`data-v-${p.id}`)])}if(a||l&&!u){m.push([`__file`,JSON.stringify(u?c.basename(t):t)])}if(l&&l.config.server.hmr!==false&&!o&&!u){x.push(`_sfc_main.__hmrId = ${JSON.stringify(p.id)}`);x.push(`typeof __VUE_HMR_RUNTIME__ !== 'undefined' && __VUE_HMR_RUNTIME__.createRecord(_sfc_main.__hmrId, _sfc_main)`);if(f&&isOnlyTemplateChanged(f,p)){x.push(`export const _rerender_only = true`)}x.push(`import.meta.hot.accept(mod => {`,` if (!mod) return`,` const { default: updated, _rerender_only } = mod`,` if (_rerender_only) {`,` __VUE_HMR_RUNTIME__.rerender(updated.__hmrId, updated.render)`,` } else {`,` __VUE_HMR_RUNTIME__.reload(updated.__hmrId, updated)`,` }`,`})`)}if(o){const e=n.normalizePath(c.relative(r.root,t));x.push(`import { useSSRContext as __vite_useSSRContext } from 'vue'`,`const _sfc_setup = _sfc_main.setup`,`_sfc_main.setup = (props, ctx) => {`,` const ssrContext = __vite_useSSRContext()`,` ;(ssrContext.modules || (ssrContext.modules = new Set())).add(${JSON.stringify(e)})`,` return _sfc_setup ? _sfc_setup(props, ctx) : undefined`,`}`)}let R=void 0;if(r.sourceMap){if(y&&v){const e=N(y);const t=new TraceMap(v);const r=(h.match(/\r?\n/g)?.length??0)+1;F(t,(t=>{if(t.source==null)return;P(e,{source:t.source,original:{line:t.originalLine,column:t.originalColumn},generated:{line:t.generatedLine+r,column:t.generatedColumn}})}));R=q(e);R.sourcesContent=v.sourcesContent}else{R=y??v}}if(!m.length){x.push(`export default _sfc_main`)}else{x.push(`import _export_sfc from '${X}'`,`export default /*#__PURE__*/_export_sfc(_sfc_main, [${m.map((([e,t])=>`['${e}',${t}]`)).join(",")}])`)}let w=x.join("\n");const O=p.scriptSetup?.lang||p.script?.lang;if(O&&/tsx?$/.test(O)&&!p.script?.src){const{code:e,map:s}=await n.transformWithEsbuild(w,t,{loader:"ts",target:"esnext",sourcemap:r.sourceMap},R);w=e;R=R?s:R}return{code:w,map:R||{mappings:""},meta:{vite:{lang:p.script?.lang||p.scriptSetup?.lang||"js"}}}}async function genTemplateCode(e,t,r,s){const n=e.template;const o=e.styles.some((e=>e.scoped));if(!n.lang&&!n.src){return transformTemplateInMain(n.content,e,t,r,s)}else{if(n.src){await linkSrcToDescriptor(n.src,e,r,o)}const t=n.src||e.filename;const c=n.src?o?`&src=${e.id}`:"&src=true":"";const i=o?`&scoped=${e.id}`:``;const l=attrsToQuery(n.attrs,"js",true);const u=`?vue&type=template${c}${i}${l}`;const a=JSON.stringify(t+u);const f=s?"ssrRender":"render";return{code:`import { ${f} as _sfc_${f} } from ${a}`,map:void 0}}}async function genScriptCode(e,t,r,s){let n=`const _sfc_main = {}`;let o;const i=resolveScript(e,t,s);if(i){if((!i.lang||i.lang==="ts"&&t.devServer)&&!i.src){const e=t.script?.babelParserPlugins||[];const r=i.lang==="ts"?e.includes("decorators")?["typescript"]:["typescript","decorators-legacy"]:[];n=t.compiler.rewriteDefault(i.content,"_sfc_main",[...r,...e]);o=i.map}else{if(i.src){await linkSrcToDescriptor(i.src,e,r,false)}const t=i.src||e.filename;const s=i.src&&c.extname(t).slice(1)||"js";const o=attrsToQuery(i.attrs,s);const l=i.src?`&src=true`:``;const u=`?vue&type=script${l}${o}`;const a=JSON.stringify(t+u);n=`import _sfc_main from ${a}\nexport * from ${a}`}}return{code:n,map:o}}async function genStyleCode(e,t,r,s){let n=``;let o;if(e.styles.length){for(let s=0;s is not supported in custom elements mode.`)}const[e,t]=genCSSModulesCode(s,d,c.module);n+=e;Object.assign(o||(o={}),t)}else{if(r){n+=`\nimport _style_${s} from ${JSON.stringify(d)}`}else{n+=`\nimport ${JSON.stringify(d)}`}}}if(r){s.push([`styles`,`[${e.styles.map(((e,t)=>`_style_${t}`)).join(",")}]`])}}if(o){const e=Object.entries(o).reduce(((e,[t,r])=>e+`"${t}":${r},\n`),"{\n")+"}";n+=`\nconst cssModules = ${e}`;s.push([`__cssModules`,`cssModules`])}return n}function genCSSModulesCode(e,t,r){const s=`style${e}`;const n=typeof r==="string"?r:"$style";const o=t.replace(/\.(\w+)$/,".module.$1");return[`\nimport ${s} from ${JSON.stringify(o)}`,{[n]:s}]}async function genCustomBlockCode(e,t){let r="";for(let s=0;s{if(e.line&&e.column){e.loc={file:t.filename,line:e.line+i.loc.start.line,column:e.column}}o.error(e)}));return null}const u=l.map?await n.formatPostcssSourceMap(l.map,c):{mappings:""};return{code:l.code,map:u}}function vuePlugin(e={}){const{include:t=/\.vue$/,exclude:r,customElement:o=/\.ce\.vue$/,reactivityTransform:c=false}=e;const i=n.createFilter(t,r);const l=typeof o==="boolean"?()=>o:n.createFilter(o);const u=c===false?()=>false:c===true?n.createFilter(/\.(j|t)sx?$/,/node_modules/):n.createFilter(c);let a={isProduction:process.env.NODE_ENV==="production",compiler:null,...e,include:t,exclude:r,customElement:o,reactivityTransform:c,root:process.cwd(),sourceMap:true,cssDevSourcemap:false,devToolsEnabled:process.env.NODE_ENV!=="production"};return{name:"vite:vue",handleHotUpdate(e){if(!i(e.file)){return}return handleHotUpdate(e,a)},config(e){return{resolve:{dedupe:e.build?.ssr?[]:["vue"]},define:{__VUE_OPTIONS_API__:e.define?.__VUE_OPTIONS_API__??true,__VUE_PROD_DEVTOOLS__:e.define?.__VUE_PROD_DEVTOOLS__??false},ssr:{external:e.legacy?.buildSsrCjsExternalHeuristics?["vue","@vue/server-renderer"]:[]}}},configResolved(e){a={...a,root:e.root,sourceMap:e.command==="build"?!!e.build.sourcemap:true,cssDevSourcemap:e.css?.devSourcemap??false,isProduction:e.isProduction,devToolsEnabled:!!e.define.__VUE_PROD_DEVTOOLS__||!e.isProduction}},configureServer(e){a.devServer=e},buildStart(){a.compiler=a.compiler||resolveCompiler(a.root)},async resolveId(e){if(e===X){return e}if(parseVueRequest(e).query.vue){return e}},load(e,t){const r=t?.ssr===true;if(e===X){return ee}const{filename:n,query:o}=parseVueRequest(e);if(o.vue){if(o.src){return s.readFileSync(n,"utf-8")}const e=getDescriptor(n,a);let t;if(o.type==="script"){t=getResolvedScript(e,r)}else if(o.type==="template"){t=e.template}else if(o.type==="style"){t=e.styles[o.index]}else if(o.index!=null){t=e.customBlocks[o.index]}if(t){return{code:t.content,map:t.map}}}},transform(e,t,r){const s=r?.ssr===true;const{filename:n,query:o}=parseVueRequest(t);if(o.raw||o.url){return}if(!i(n)&&!o.vue){if(!o.vue&&u(n)&&a.compiler.shouldTransformRef(e)){return a.compiler.transformRef(e,{filename:n,sourceMap:true})}return}if(!o.vue){return transformMain(e,n,a,this,s,l(n))}else{const t=o.src?getSrcDescriptor(n,o):getDescriptor(n,a);if(o.type==="template"){return transformTemplateAsModule(e,t,a,this,s)}else if(o.type==="style"){return transformStyle(e,t,Number(o.index),a,this,n)}}}}}e.exports=vuePlugin;e.exports["default"]=vuePlugin;e.exports.parseVueRequest=parseVueRequest}};var t={};function __nccwpck_require__(r){var s=t[r];if(s!==undefined){return s.exports}var n=t[r]={exports:{}};var o=true;try{e[r](n,n.exports,__nccwpck_require__);o=false}finally{if(o)delete t[r]}return n.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var r=__nccwpck_require__(632);module.exports=r})(); \ No newline at end of file diff --git a/packages/preset-vue/compiled/@vitejs/plugin-vue/package.json b/packages/preset-vue/compiled/@vitejs/plugin-vue/package.json index 3b4c61496687..b0aece0a7e6f 100644 --- a/packages/preset-vue/compiled/@vitejs/plugin-vue/package.json +++ b/packages/preset-vue/compiled/@vitejs/plugin-vue/package.json @@ -1 +1 @@ -{"name":"@vitejs/plugin-vue","version":"3.2.0","author":"Evan You","license":"MIT","types":"./dist/index.d.ts"} +{"name":"@vitejs/plugin-vue","version":"4.0.0","author":"Evan You","license":"MIT","types":"./dist/index.d.ts"} diff --git a/packages/preset-vue/package.json b/packages/preset-vue/package.json index 5d50d46b96b5..e9727c44062b 100644 --- a/packages/preset-vue/package.json +++ b/packages/preset-vue/package.json @@ -28,7 +28,7 @@ "vue-router": "4.1.6" }, "devDependencies": { - "@vitejs/plugin-vue": "2.3.1", + "@vitejs/plugin-vue": "4.0.0", "umi": "4.0.0-canary.20230213.1" }, "publishConfig": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f2a870ef9cf5..fba95da92bae 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -800,7 +800,7 @@ importers: examples/test-vitest: specifiers: '@types/react-test-renderer': ^18.0.0 - '@vitejs/plugin-react': 1.2.0 + '@vitejs/plugin-react': 3.0.1 react-test-renderer: ^18.2.0 typescript: ^4.9.4 umi: 4.0.0-canary.20230213.1 @@ -809,7 +809,7 @@ importers: umi: link:../../packages/umi devDependencies: '@types/react-test-renderer': 18.0.0 - '@vitejs/plugin-react': 1.2.0 + '@vitejs/plugin-react': 3.0.1 react-test-renderer: 18.2.0 typescript: 4.9.4 vitest: 0.16.0 @@ -1293,30 +1293,30 @@ importers: '@types/svgo': 3.0.0 '@umijs/bundler-utils': 4.0.0-canary.20230213.1 '@umijs/utils': 4.0.0-canary.20230213.1 - '@vitejs/plugin-legacy': 2.3.1 - '@vitejs/plugin-react': 2.2.0 + '@vitejs/plugin-legacy': 4.0.1 + '@vitejs/plugin-react': 3.1.0 caniuse-lite: 1.0.30001441 less: 4.1.3 postcss-preset-env: 7.5.0 - rollup: 2.79.1 + rollup: 3.7.0 rollup-plugin-copy: 3.4.0 rollup-plugin-visualizer: 5.9.0 - vite: 3.2.5 + vite: 4.1.1 dependencies: '@svgr/core': 6.2.1 '@umijs/bundler-utils': link:../bundler-utils '@umijs/utils': link:../utils - '@vitejs/plugin-react': 2.2.0_vite@3.2.5 + '@vitejs/plugin-react': 3.1.0_vite@4.1.1 less: 4.1.3 postcss-preset-env: 7.5.0 - rollup-plugin-visualizer: 5.9.0_rollup@2.79.1 - vite: 3.2.5_less@4.1.3 + rollup-plugin-visualizer: 5.9.0_rollup@3.7.0 + vite: 4.1.1_less@4.1.3 devDependencies: '@types/caniuse-lite': 1.0.1 '@types/svgo': 3.0.0 - '@vitejs/plugin-legacy': 2.3.1_vite@3.2.5 + '@vitejs/plugin-legacy': 4.0.1_vite@4.1.1 caniuse-lite: 1.0.30001441 - rollup: 2.79.1 + rollup: 3.7.0 rollup-plugin-copy: 3.4.0 packages/bundler-webpack: @@ -1679,7 +1679,7 @@ importers: react-router-dom: 6.3.0 regenerator-runtime: 0.13.11 sirv: 2.0.2 - vite: 2.9.1 + vite: 4.0.4 dependencies: '@iconify/utils': 2.1.1 '@svgr/core': 6.2.1 @@ -1722,12 +1722,12 @@ importers: multer: 1.4.4 os-locale: 6.0.2 sirv: 2.0.2 - vite: 2.9.1 + vite: 4.0.4 packages/preset-vue: specifiers: '@umijs/renderer-vue': 4.0.0-canary.20230213.1 - '@vitejs/plugin-vue': 2.3.1 + '@vitejs/plugin-vue': 4.0.0 umi: 4.0.0-canary.20230213.1 vue: 3.2.45 vue-loader: 17.0.1 @@ -1738,7 +1738,7 @@ importers: vue-loader: 17.0.1_vue@3.2.45 vue-router: 4.1.6_vue@3.2.45 devDependencies: - '@vitejs/plugin-vue': 2.3.1_vue@3.2.45 + '@vitejs/plugin-vue': 4.0.0_vue@3.2.45 umi: link:../umi packages/renderer-react: @@ -6281,18 +6281,17 @@ packages: '@babel/core': 7.20.12 '@babel/plugin-transform-react-jsx': 7.18.6_@babel+core@7.20.12 - /@babel/plugin-transform-react-jsx-self/7.17.12_@babel+core@7.20.12: - resolution: {integrity: sha512-7S9G2B44EnYOx74mue02t1uD8ckWZ/ee6Uz/qfdzc35uWHX5NgRy9i+iJSb2LFRgMd+QV9zNcStQaazzzZ3n3Q==} + /@babel/plugin-transform-react-jsx-self/7.18.6_@babel+core@7.20.12: + resolution: {integrity: sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 - dev: true - /@babel/plugin-transform-react-jsx-self/7.17.12_@babel+core@7.4.5: - resolution: {integrity: sha512-7S9G2B44EnYOx74mue02t1uD8ckWZ/ee6Uz/qfdzc35uWHX5NgRy9i+iJSb2LFRgMd+QV9zNcStQaazzzZ3n3Q==} + /@babel/plugin-transform-react-jsx-self/7.18.6_@babel+core@7.4.5: + resolution: {integrity: sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -6301,28 +6300,17 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-react-jsx-self/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false - - /@babel/plugin-transform-react-jsx-source/7.16.7_@babel+core@7.20.12: - resolution: {integrity: sha512-rONFiQz9vgbsnaMtQlZCjIRwhJvlrPET8TabIUK2hzlXw9B9s2Ieaxte1SCOOXMbWRHodbKixNf3BLcWVOQ8Bw==} + /@babel/plugin-transform-react-jsx-source/7.19.6_@babel+core@7.20.12: + resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 - dev: true - /@babel/plugin-transform-react-jsx-source/7.16.7_@babel+core@7.4.5: - resolution: {integrity: sha512-rONFiQz9vgbsnaMtQlZCjIRwhJvlrPET8TabIUK2hzlXw9B9s2Ieaxte1SCOOXMbWRHodbKixNf3BLcWVOQ8Bw==} + /@babel/plugin-transform-react-jsx-source/7.19.6_@babel+core@7.4.5: + resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -6331,16 +6319,6 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-react-jsx-source/7.19.6_@babel+core@7.20.12: - resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: false - /@babel/plugin-transform-react-jsx/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-Mz7xMPxoy9kPS/JScj6fJs03TZ/fZ1dJPlMjRAgTaxaS0fUBk8FV/A2rRgfPsVCZqALNwMexD+0Uaf5zlcKPpw==} engines: {node: '>=6.9.0'} @@ -6368,20 +6346,6 @@ packages: '@babel/types': 7.20.7 dev: true - /@babel/plugin-transform-react-jsx/7.19.0_@babel+core@7.20.12: - resolution: {integrity: sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-module-imports': 7.18.6 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.20.12 - '@babel/types': 7.20.7 - dev: false - /@babel/plugin-transform-react-pure-annotations/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==} engines: {node: '>=6.9.0'} @@ -6794,8 +6758,8 @@ packages: '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-transform-react-display-name': 7.18.6_@babel+core@7.4.5 '@babel/plugin-transform-react-jsx': 7.18.6_@babel+core@7.4.5 - '@babel/plugin-transform-react-jsx-self': 7.17.12_@babel+core@7.4.5 - '@babel/plugin-transform-react-jsx-source': 7.16.7_@babel+core@7.4.5 + '@babel/plugin-transform-react-jsx-self': 7.18.6_@babel+core@7.4.5 + '@babel/plugin-transform-react-jsx-source': 7.19.6_@babel+core@7.4.5 dev: true /@babel/preset-react/7.18.6_@babel+core@7.20.12: @@ -6855,7 +6819,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - core-js: 3.27.1 + core-js: 3.27.2 find-cache-dir: 2.1.0 lodash: 4.17.21 mkdirp: 0.5.6 @@ -6894,11 +6858,6 @@ packages: regenerator-runtime: 0.13.11 dev: true - /@babel/standalone/7.20.6: - resolution: {integrity: sha512-u5at/CbBLETf7kx2LOY4XdhseD79Y099WZKAOMXeT8qvd9OSR515my2UNBBLY4qIht/Qi9KySeQHQwQwxJN4Sw==} - engines: {node: '>=6.9.0'} - dev: true - /@babel/template/7.18.6: resolution: {integrity: sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==} engines: {node: '>=6.9.0'} @@ -12872,6 +12831,18 @@ packages: - supports-color dev: true + /@umijs/bundler-utils/4.0.47: + resolution: {integrity: sha512-TgpsAo6+gYa0mytNUBXP0LSOxGUNLzuxsBg0jSdqcAVTHNBkMic72JMo8hgXa8TDx7f4Pb6GSngWj5Jgh/Pq1w==} + dependencies: + '@umijs/utils': 4.0.47 + esbuild: 0.16.17 + regenerate: 1.4.2 + regenerate-unicode-properties: 10.0.1 + spdy: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: true + /@umijs/bundler-utils/4.0.7: resolution: {integrity: sha512-GBQGhtuPvd/5IAolqZyZyeo1H1yMUFLdVXIQWcqqDIINPeEZCXrXGCLYF9kxSI3ovjc5g0Q5xhS25Sov6uDuFg==} dependencies: @@ -13681,6 +13652,13 @@ packages: pino: 7.11.0 dev: true + /@umijs/utils/4.0.47: + resolution: {integrity: sha512-FLaLqutlCUPPb8EihUXd3Un8ycNTAqA0tYYQ81AF1UNon51EEhvnKpnICkLx7loNeenXaprM+fn/xDWQWsD3LA==} + dependencies: + chokidar: 3.5.3 + pino: 7.11.0 + dev: true + /@umijs/utils/4.0.7: resolution: {integrity: sha512-KKzVwPa5CjowCOJr88sxxkPaenBfA8FiLcSD8Y1/97Uv+fhTKPsoTyn/D9Cj/CQl4GWYh2/CF96Vq2daxkor6w==} dependencies: @@ -13973,19 +13951,23 @@ packages: hasBin: true dev: true - /@vitejs/plugin-legacy/2.3.1_vite@3.2.5: - resolution: {integrity: sha512-J5KaGBlSt2tEYPVjM/C8dA6DkRzkFkbPe+Xb4IX5G+XOV5OGbVAfkMjKywdrkO3gGynO8S98i71Lmsff4cWkCQ==} + /@vitejs/plugin-legacy/4.0.1_vite@4.1.1: + resolution: {integrity: sha512-/ZV63NagI1c9TB5E4ijGmycY//fNm/2L02nsnXXxACwYaF9W+/OyVlgIW24jYUIS+g0yQRtn+N5hzBc8RLNhGA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: terser: ^5.4.0 - vite: ^3.0.0 + vite: ^4.0.0 dependencies: - '@babel/standalone': 7.20.6 - core-js: 3.27.1 - magic-string: 0.26.7 + '@babel/core': 7.20.12 + '@babel/preset-env': 7.20.2_@babel+core@7.20.12 + browserslist: 4.21.5 + core-js: 3.27.2 + magic-string: 0.27.0 regenerator-runtime: 0.13.11 systemjs: 6.13.0 - vite: 3.2.5_less@4.1.3 + vite: 4.1.1_less@4.1.3 + transitivePeerDependencies: + - supports-color dev: true /@vitejs/plugin-react/1.2.0: @@ -13995,8 +13977,8 @@ packages: '@babel/core': 7.20.12 '@babel/plugin-transform-react-jsx': 7.18.6_@babel+core@7.20.12 '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-react-jsx-self': 7.17.12_@babel+core@7.20.12 - '@babel/plugin-transform-react-jsx-source': 7.16.7_@babel+core@7.20.12 + '@babel/plugin-transform-react-jsx-self': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-react-jsx-source': 7.19.6_@babel+core@7.20.12 '@rollup/pluginutils': 4.2.1 react-refresh: 0.11.0 resolve: 1.22.1 @@ -14004,29 +13986,42 @@ packages: - supports-color dev: true - /@vitejs/plugin-react/2.2.0_vite@3.2.5: - resolution: {integrity: sha512-FFpefhvExd1toVRlokZgxgy2JtnBOdp4ZDsq7ldCWaqGSGn9UhWMAVm/1lxPL14JfNS5yGz+s9yFrQY6shoStA==} + /@vitejs/plugin-react/3.0.1: + resolution: {integrity: sha512-mx+QvYwIbbpOIJw+hypjnW1lAbKDHtWK5ibkF/V1/oMBu8HU/chb+SnqJDAsLq1+7rGqjktCEomMTM5KShzUKQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: ^3.0.0 + vite: ^4.0.0 dependencies: '@babel/core': 7.20.12 - '@babel/plugin-transform-react-jsx': 7.19.0_@babel+core@7.20.12 - '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.20.12 '@babel/plugin-transform-react-jsx-self': 7.18.6_@babel+core@7.20.12 '@babel/plugin-transform-react-jsx-source': 7.19.6_@babel+core@7.20.12 - magic-string: 0.26.7 + magic-string: 0.27.0 react-refresh: 0.14.0 - vite: 3.2.5_less@4.1.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@vitejs/plugin-react/3.1.0_vite@4.1.1: + resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.1.0-beta.0 + dependencies: + '@babel/core': 7.20.12 + '@babel/plugin-transform-react-jsx-self': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-react-jsx-source': 7.19.6_@babel+core@7.20.12 + magic-string: 0.27.0 + react-refresh: 0.14.0 + vite: 4.1.1_less@4.1.3 transitivePeerDependencies: - supports-color dev: false - /@vitejs/plugin-vue/2.3.1_vue@3.2.45: - resolution: {integrity: sha512-YNzBt8+jt6bSwpt7LP890U1UcTOIZZxfpE5WOJ638PNxSEKOqAi0+FSKS0nVeukfdZ0Ai/H7AFd6k3hayfGZqQ==} - engines: {node: '>=12.0.0'} + /@vitejs/plugin-vue/4.0.0_vue@3.2.45: + resolution: {integrity: sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: ^2.5.10 + vite: ^4.0.0 vue: ^3.2.25 dependencies: vue: 3.2.45 @@ -17562,11 +17557,18 @@ packages: /core-js/3.22.4: resolution: {integrity: sha512-1uLykR+iOfYja+6Jn/57743gc9n73EWiOnSJJ4ba3B4fOEYDBv25MagmEZBxTp5cWq4b/KPx/l77zgsp28ju4w==} + deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. requiresBuild: true /core-js/3.27.1: resolution: {integrity: sha512-GutwJLBChfGCpwwhbYoqfv03LAfmiz7e7D/BNxzeMxwQf10GRSzqiOjx7AmtEk+heiD/JWmBuyBPgFtx0Sg1ww==} requiresBuild: true + dev: false + + /core-js/3.27.2: + resolution: {integrity: sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w==} + requiresBuild: true + dev: true /core-util-is/1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} @@ -21145,10 +21147,10 @@ packages: dependencies: '@microsoft/api-extractor': 7.29.5 '@umijs/babel-preset-umi': 4.0.42 - '@umijs/bundler-utils': 4.0.42 + '@umijs/bundler-utils': 4.0.47 '@umijs/bundler-webpack': 4.0.42_typescript@4.7.4 '@umijs/core': 4.0.42 - '@umijs/utils': 4.0.42 + '@umijs/utils': 4.0.47 '@vercel/ncc': 0.33.3 babel-plugin-dynamic-import-node: 2.3.3 babel-plugin-module-resolver: 4.1.0 @@ -25537,13 +25539,13 @@ packages: engines: {node: '>=12'} dependencies: sourcemap-codec: 1.4.8 + dev: false /magic-string/0.27.0: resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.13 - dev: false /make-dir/1.3.0: resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==} @@ -34943,7 +34945,7 @@ packages: yargs: 17.5.1 dev: true - /rollup-plugin-visualizer/5.9.0_rollup@2.79.1: + /rollup-plugin-visualizer/5.9.0_rollup@3.7.0: resolution: {integrity: sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==} engines: {node: '>=14'} hasBin: true @@ -34955,7 +34957,7 @@ packages: dependencies: open: 8.4.0 picomatch: 2.3.1 - rollup: 2.79.1 + rollup: 3.7.0 source-map: 0.7.4 yargs: 17.5.1 dev: false @@ -34977,9 +34979,16 @@ packages: fsevents: 2.3.2 dev: true - /rollup/2.79.1: - resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} - engines: {node: '>=10.0.0'} + /rollup/3.11.0: + resolution: {integrity: sha512-+uWPPkpWQ2H3Qi7sNBcRfhhHJyUNgBYhG4wKe5wuGRj2m55kpo+0p5jubKNBjQODyPe6tSBE3tNpdDwEisQvAQ==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + + /rollup/3.7.0: + resolution: {integrity: sha512-FIJe0msW9P7L9BTfvaJyvn1U1BVCNTL3w8O+PKIrCyiMLg+rIUGb4MbcgVZ10Lnm1uWXOTOWRNARjfXC1+M12Q==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: fsevents: 2.3.2 @@ -38442,8 +38451,8 @@ packages: pathe: 0.2.0 dev: true - /vite/2.9.1: - resolution: {integrity: sha512-vSlsSdOYGcYEJfkQ/NeLXgnRv5zZfpAsdztkIrs7AZHV8RCMZQkwjo4DS5BnrYTqoWqLoUe1Cah4aVO4oNNqCQ==} + /vite/2.9.15: + resolution: {integrity: sha512-fzMt2jK4vQ3yK56te3Kqpkaeq9DkcZfBbzHwYpobasvgYmP2SoAr6Aic05CsB4CzCZbsDv4sujX3pkEGhLabVQ==} engines: {node: '>=12.2.0'} hasBin: true peerDependencies: @@ -38461,37 +38470,46 @@ packages: esbuild: 0.14.51 postcss: 8.4.21 resolve: 1.22.1 - rollup: 2.79.1 + rollup: 2.77.3 optionalDependencies: fsevents: 2.3.2 dev: true - /vite/2.9.15: - resolution: {integrity: sha512-fzMt2jK4vQ3yK56te3Kqpkaeq9DkcZfBbzHwYpobasvgYmP2SoAr6Aic05CsB4CzCZbsDv4sujX3pkEGhLabVQ==} - engines: {node: '>=12.2.0'} + /vite/4.0.4: + resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==} + engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: + '@types/node': '>= 14' less: '*' sass: '*' stylus: '*' + sugarss: '*' + terser: ^5.4.0 peerDependenciesMeta: + '@types/node': + optional: true less: optional: true sass: optional: true stylus: optional: true + sugarss: + optional: true + terser: + optional: true dependencies: - esbuild: 0.14.51 + esbuild: 0.16.17 postcss: 8.4.21 resolve: 1.22.1 - rollup: 2.77.3 + rollup: 3.11.0 optionalDependencies: fsevents: 2.3.2 dev: true - /vite/3.2.5_less@4.1.3: - resolution: {integrity: sha512-4mVEpXpSOgrssFZAOmGIr85wPHKvaDAcXqxVxVRZhljkJOMZi1ibLibzjLHzJvcok8BMguLc7g1W6W/GqZbLdQ==} + /vite/4.1.1_less@4.1.3: + resolution: {integrity: sha512-LM9WWea8vsxhr782r9ntg+bhSFS06FJgCvvB0+8hf8UWtvaiDagKYWXndjfX6kGl74keHJUcpzrQliDXZlF5yg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -38515,11 +38533,11 @@ packages: terser: optional: true dependencies: - esbuild: 0.15.18 + esbuild: 0.16.17 less: 4.1.3 postcss: 8.4.21 resolve: 1.22.1 - rollup: 2.79.1 + rollup: 3.11.0 optionalDependencies: fsevents: 2.3.2 diff --git a/scripts/bundleDeps.ts b/scripts/bundleDeps.ts index 4e614684997b..91f63c5c6b70 100644 --- a/scripts/bundleDeps.ts +++ b/scripts/bundleDeps.ts @@ -161,6 +161,17 @@ Object.keys(exported).forEach(function (key) { ) { code = code.replace(/require\("node:/g, 'require("'); } + + // in production, we have the global all `core-js` polyfill (feature/polyfill.ts) + // don't need the polyfill added by vite + // https://github.com/vitejs/vite/blob/d953536aae448e2bea0f3a7cb3c0062b16d45597/packages/plugin-legacy/src/index.ts#L257 + if (opts.pkgName === '@vitejs/plugin-legacy') { + code = code.replace( + 'await detectPolyfills(`Promise.resolve(); Promise.all();`', + 'await (()=>{})(`Promise.resolve(); Promise.all();`', + ); + } + if ( code.includes('"node:') && opts.pkgName && // skip local file bundle like babel/bundle.js