react-code-locator 0.1.18 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +86 -38
  2. package/dist/client.cjs +1 -399
  3. package/dist/client.cjs.map +1 -1
  4. package/dist/client.d.cts +1 -1
  5. package/dist/client.d.ts +1 -1
  6. package/dist/client.js +1 -371
  7. package/dist/client.js.map +1 -1
  8. package/dist/esbuild.cjs +29 -7149
  9. package/dist/esbuild.cjs.map +1 -1
  10. package/dist/esbuild.d.cts +1 -1
  11. package/dist/esbuild.d.ts +1 -1
  12. package/dist/esbuild.js +29 -7122
  13. package/dist/esbuild.js.map +1 -1
  14. package/dist/index.cjs +37 -7504
  15. package/dist/index.cjs.map +1 -1
  16. package/dist/index.d.cts +2 -3
  17. package/dist/index.d.ts +2 -3
  18. package/dist/index.js +37 -7471
  19. package/dist/index.js.map +1 -1
  20. package/dist/swc.cjs +29 -7119
  21. package/dist/swc.cjs.map +1 -1
  22. package/dist/swc.d.cts +1 -1
  23. package/dist/swc.d.ts +1 -1
  24. package/dist/swc.js +29 -7090
  25. package/dist/swc.js.map +1 -1
  26. package/dist/{transform-CXh-m5Ez.d.cts → transform-z2n_1yc5.d.cts} +2 -2
  27. package/dist/{transform-CXh-m5Ez.d.ts → transform-z2n_1yc5.d.ts} +2 -2
  28. package/dist/unplugin.cjs +37 -7138
  29. package/dist/unplugin.cjs.map +1 -1
  30. package/dist/unplugin.d.cts +15 -6
  31. package/dist/unplugin.d.ts +15 -6
  32. package/dist/unplugin.js +37 -7108
  33. package/dist/unplugin.js.map +1 -1
  34. package/dist/webpack.cjs +45 -0
  35. package/dist/webpack.cjs.map +1 -0
  36. package/dist/webpack.d.cts +16 -0
  37. package/dist/webpack.d.ts +16 -0
  38. package/dist/webpack.js +45 -0
  39. package/dist/webpack.js.map +1 -0
  40. package/package.json +13 -10
  41. package/dist/vite.cjs +0 -7200
  42. package/dist/vite.cjs.map +0 -1
  43. package/dist/vite.d.cts +0 -52
  44. package/dist/vite.d.ts +0 -52
  45. package/dist/vite.js +0 -7169
  46. package/dist/vite.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/unplugin.ts","../node_modules/acorn/dist/acorn.mjs","../node_modules/astring/dist/astring.mjs","../node_modules/estree-walker/src/walker.js","../node_modules/estree-walker/src/sync.js","../node_modules/estree-walker/src/index.js","../src/constants.ts","../src/core/transform.ts"],"sourcesContent":["/**\n * Unplugin-based universal adapter for all build tools\n * Supports: Vite, Webpack, Rollup, esbuild, Rspack\n * \n * Zero-dependency transform using acorn instead of Babel\n */\n\nimport { createUnplugin, type UnpluginInstance, type UnpluginOptions } from \"unplugin\";\nimport { transformSource, type TransformOptions } from \"./core/transform\";\n\nexport interface ReactCodeLocatorOptions extends Omit<TransformOptions, 'filename'> {\n /** \n * Enable source transform for component definitions\n * @default true\n */\n injectComponentSource?: boolean;\n \n /** \n * Enable source transform for JSX call sites\n * @default true\n */\n injectJsxSource?: boolean;\n \n /**\n * Project root for relative path calculation\n * @default process.cwd()\n */\n projectRoot?: string;\n \n /**\n * Include filter for file paths\n * @default /\\.[jt]sx$/\n */\n include?: RegExp | RegExp[];\n \n /**\n * Exclude filter for file paths\n * @default /node_modules/\n */\n exclude?: RegExp | RegExp[];\n}\n\nexport type { TransformOptions };\n\nconst DEFAULT_INCLUDE = /\\.([jt]sx)$/;\nconst DEFAULT_EXCLUDE = /node_modules/;\n\nfunction shouldTransform(id: string, include: RegExp | RegExp[], exclude: RegExp | RegExp[]): boolean {\n const includePatterns = Array.isArray(include) ? include : [include];\n const excludePatterns = Array.isArray(exclude) ? exclude : [exclude];\n \n // Check exclude first\n if (excludePatterns.some(pattern => pattern.test(id))) {\n return false;\n }\n \n // Then check include\n return includePatterns.some(pattern => pattern.test(id));\n}\n\nexport const unplugin: UnpluginInstance<ReactCodeLocatorOptions | undefined, false> = \n createUnplugin((options = {}) => {\n const {\n include = DEFAULT_INCLUDE,\n exclude = DEFAULT_EXCLUDE,\n projectRoot = process.cwd(),\n injectComponentSource = true,\n injectJsxSource = true,\n } = options;\n\n return {\n name: \"react-code-locator\",\n \n transform(code, id) {\n // Skip if doesn't match patterns\n if (!shouldTransform(id, include, exclude)) {\n return null;\n }\n\n // Perform transform using acorn (zero-dependency)\n const result = transformSource(code, {\n filename: id,\n projectRoot,\n injectComponentSource,\n injectJsxSource,\n });\n\n return result;\n },\n } as UnpluginOptions;\n });\n\n// Export individual build tool adapters\nexport const vitePlugin = unplugin.vite;\nexport const webpackPlugin = unplugin.webpack;\nexport const rollupPlugin = unplugin.rollup;\nexport const esbuildPlugin = unplugin.esbuild;\nexport const rspackPlugin = unplugin.rspack;\n\n// Default export for direct usage\nexport default unplugin;\n","// This file was generated. Do not modify manually!\nvar 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, 7, 9, 32, 4, 318, 1, 78, 5, 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, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 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, 199, 7, 137, 9, 54, 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, 55, 9, 266, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 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, 245, 1, 2, 9, 233, 0, 3, 0, 8, 1, 6, 0, 475, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];\n\n// This file was generated. Do not modify manually!\nvar 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, 4, 51, 13, 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, 7, 25, 39, 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, 39, 27, 10, 22, 251, 41, 7, 1, 17, 5, 57, 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, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 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, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 24, 43, 261, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 33, 24, 3, 24, 45, 74, 6, 0, 67, 12, 65, 1, 2, 0, 15, 4, 10, 7381, 42, 31, 98, 114, 8702, 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, 229, 29, 3, 0, 208, 30, 2, 2, 2, 1, 2, 6, 3, 4, 10, 1, 225, 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, 4381, 3, 5773, 3, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 8489];\n\n// This file was generated. Do not modify manually!\nvar 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\\u0897-\\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-\\u1add\\u1ae0-\\u1aeb\\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\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\u30fb\\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\\uff65\";\n\n// This file was generated. Do not modify manually!\nvar 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-\\u088f\\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\\u0c5c\\u0c5d\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cdc-\\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-\\u1c8a\\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-\\ua7dc\\ua7f1-\\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\";\n\n// These are a run-length and offset encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range.\n\n// Reserved word lists for various dialects of the language\n\nvar reservedWords = {\n 3: \"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile\",\n 5: \"class enum extends super const export import\",\n 6: \"enum\",\n strict: \"implements interface let package private protected public static yield\",\n strictBind: \"eval arguments\"\n};\n\n// And the keywords\n\nvar ecma5AndLessKeywords = \"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this\";\n\nvar keywords$1 = {\n 5: ecma5AndLessKeywords,\n \"5module\": ecma5AndLessKeywords + \" export import\",\n 6: ecma5AndLessKeywords + \" const class extends export import super\"\n};\n\nvar keywordRelationalOperator = /^in(stanceof)?$/;\n\n// ## Character categories\n\nvar nonASCIIidentifierStart = new RegExp(\"[\" + nonASCIIidentifierStartChars + \"]\");\nvar nonASCIIidentifier = new RegExp(\"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\");\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code, set) {\n var pos = 0x10000;\n for (var i = 0; i < set.length; i += 2) {\n pos += set[i];\n if (pos > code) { return false }\n pos += set[i + 1];\n if (pos >= code) { return true }\n }\n return false\n}\n\n// Test whether a given character code starts an identifier.\n\nfunction isIdentifierStart(code, astral) {\n if (code < 65) { return code === 36 }\n if (code < 91) { return true }\n if (code < 97) { return code === 95 }\n if (code < 123) { return true }\n if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)) }\n if (astral === false) { return false }\n return isInAstralSet(code, astralIdentifierStartCodes)\n}\n\n// Test whether a given character is part of an identifier.\n\nfunction isIdentifierChar(code, astral) {\n if (code < 48) { return code === 36 }\n if (code < 58) { return true }\n if (code < 65) { return false }\n if (code < 91) { return true }\n if (code < 97) { return code === 95 }\n if (code < 123) { return true }\n if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)) }\n if (astral === false) { return false }\n return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes)\n}\n\n// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between regular\n// expressions and divisions. It is set on all token types that can\n// be followed by an expression (thus, a slash after them would be a\n// regular expression).\n//\n// The `startsExpr` property is used to check if the token ends a\n// `yield` expression. It is set on all token types that either can\n// directly start an expression (like a quotation mark) or can\n// continue an expression (like the body of a string).\n//\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nvar TokenType = function TokenType(label, conf) {\n if ( conf === void 0 ) conf = {};\n\n this.label = label;\n this.keyword = conf.keyword;\n this.beforeExpr = !!conf.beforeExpr;\n this.startsExpr = !!conf.startsExpr;\n this.isLoop = !!conf.isLoop;\n this.isAssign = !!conf.isAssign;\n this.prefix = !!conf.prefix;\n this.postfix = !!conf.postfix;\n this.binop = conf.binop || null;\n this.updateContext = null;\n};\n\nfunction binop(name, prec) {\n return new TokenType(name, {beforeExpr: true, binop: prec})\n}\nvar beforeExpr = {beforeExpr: true}, startsExpr = {startsExpr: true};\n\n// Map keyword names to token types.\n\nvar keywords = {};\n\n// Succinct definitions of keyword token types\nfunction kw(name, options) {\n if ( options === void 0 ) options = {};\n\n options.keyword = name;\n return keywords[name] = new TokenType(name, options)\n}\n\nvar types$1 = {\n num: new TokenType(\"num\", startsExpr),\n regexp: new TokenType(\"regexp\", startsExpr),\n string: new TokenType(\"string\", startsExpr),\n name: new TokenType(\"name\", startsExpr),\n privateId: new TokenType(\"privateId\", startsExpr),\n eof: new TokenType(\"eof\"),\n\n // Punctuation token types.\n bracketL: new TokenType(\"[\", {beforeExpr: true, startsExpr: true}),\n bracketR: new TokenType(\"]\"),\n braceL: new TokenType(\"{\", {beforeExpr: true, startsExpr: true}),\n braceR: new TokenType(\"}\"),\n parenL: new TokenType(\"(\", {beforeExpr: true, startsExpr: true}),\n parenR: new TokenType(\")\"),\n comma: new TokenType(\",\", beforeExpr),\n semi: new TokenType(\";\", beforeExpr),\n colon: new TokenType(\":\", beforeExpr),\n dot: new TokenType(\".\"),\n question: new TokenType(\"?\", beforeExpr),\n questionDot: new TokenType(\"?.\"),\n arrow: new TokenType(\"=>\", beforeExpr),\n template: new TokenType(\"template\"),\n invalidTemplate: new TokenType(\"invalidTemplate\"),\n ellipsis: new TokenType(\"...\", beforeExpr),\n backQuote: new TokenType(\"`\", startsExpr),\n dollarBraceL: new TokenType(\"${\", {beforeExpr: true, startsExpr: true}),\n\n // Operators. These carry several kinds of properties to help the\n // parser use them properly (the presence of these properties is\n // what categorizes them as operators).\n //\n // `binop`, when present, specifies that this operator is a binary\n // operator, and will refer to its precedence.\n //\n // `prefix` and `postfix` mark the operator as a prefix or postfix\n // unary operator.\n //\n // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n // binary operators with a very low precedence, that should result\n // in AssignmentExpression nodes.\n\n eq: new TokenType(\"=\", {beforeExpr: true, isAssign: true}),\n assign: new TokenType(\"_=\", {beforeExpr: true, isAssign: true}),\n incDec: new TokenType(\"++/--\", {prefix: true, postfix: true, startsExpr: true}),\n prefix: new TokenType(\"!/~\", {beforeExpr: true, prefix: true, startsExpr: true}),\n logicalOR: binop(\"||\", 1),\n logicalAND: binop(\"&&\", 2),\n bitwiseOR: binop(\"|\", 3),\n bitwiseXOR: binop(\"^\", 4),\n bitwiseAND: binop(\"&\", 5),\n equality: binop(\"==/!=/===/!==\", 6),\n relational: binop(\"</>/<=/>=\", 7),\n bitShift: binop(\"<</>>/>>>\", 8),\n plusMin: new TokenType(\"+/-\", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}),\n modulo: binop(\"%\", 10),\n star: binop(\"*\", 10),\n slash: binop(\"/\", 10),\n starstar: new TokenType(\"**\", {beforeExpr: true}),\n coalesce: binop(\"??\", 1),\n\n // Keyword token types.\n _break: kw(\"break\"),\n _case: kw(\"case\", beforeExpr),\n _catch: kw(\"catch\"),\n _continue: kw(\"continue\"),\n _debugger: kw(\"debugger\"),\n _default: kw(\"default\", beforeExpr),\n _do: kw(\"do\", {isLoop: true, beforeExpr: true}),\n _else: kw(\"else\", beforeExpr),\n _finally: kw(\"finally\"),\n _for: kw(\"for\", {isLoop: true}),\n _function: kw(\"function\", startsExpr),\n _if: kw(\"if\"),\n _return: kw(\"return\", beforeExpr),\n _switch: kw(\"switch\"),\n _throw: kw(\"throw\", beforeExpr),\n _try: kw(\"try\"),\n _var: kw(\"var\"),\n _const: kw(\"const\"),\n _while: kw(\"while\", {isLoop: true}),\n _with: kw(\"with\"),\n _new: kw(\"new\", {beforeExpr: true, startsExpr: true}),\n _this: kw(\"this\", startsExpr),\n _super: kw(\"super\", startsExpr),\n _class: kw(\"class\", startsExpr),\n _extends: kw(\"extends\", beforeExpr),\n _export: kw(\"export\"),\n _import: kw(\"import\", startsExpr),\n _null: kw(\"null\", startsExpr),\n _true: kw(\"true\", startsExpr),\n _false: kw(\"false\", startsExpr),\n _in: kw(\"in\", {beforeExpr: true, binop: 7}),\n _instanceof: kw(\"instanceof\", {beforeExpr: true, binop: 7}),\n _typeof: kw(\"typeof\", {beforeExpr: true, prefix: true, startsExpr: true}),\n _void: kw(\"void\", {beforeExpr: true, prefix: true, startsExpr: true}),\n _delete: kw(\"delete\", {beforeExpr: true, prefix: true, startsExpr: true})\n};\n\n// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\n\nvar lineBreak = /\\r\\n?|\\n|\\u2028|\\u2029/;\nvar lineBreakG = new RegExp(lineBreak.source, \"g\");\n\nfunction isNewLine(code) {\n return code === 10 || code === 13 || code === 0x2028 || code === 0x2029\n}\n\nfunction nextLineBreak(code, from, end) {\n if ( end === void 0 ) end = code.length;\n\n for (var i = from; i < end; i++) {\n var next = code.charCodeAt(i);\n if (isNewLine(next))\n { return i < end - 1 && next === 13 && code.charCodeAt(i + 1) === 10 ? i + 2 : i + 1 }\n }\n return -1\n}\n\nvar nonASCIIwhitespace = /[\\u1680\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]/;\n\nvar skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\n\nvar ref = Object.prototype;\nvar hasOwnProperty = ref.hasOwnProperty;\nvar toString = ref.toString;\n\nvar hasOwn = Object.hasOwn || (function (obj, propName) { return (\n hasOwnProperty.call(obj, propName)\n); });\n\nvar isArray = Array.isArray || (function (obj) { return (\n toString.call(obj) === \"[object Array]\"\n); });\n\nvar regexpCache = Object.create(null);\n\nfunction wordsRegexp(words) {\n return regexpCache[words] || (regexpCache[words] = new RegExp(\"^(?:\" + words.replace(/ /g, \"|\") + \")$\"))\n}\n\nfunction codePointToString(code) {\n // UTF-16 Decoding\n if (code <= 0xFFFF) { return String.fromCharCode(code) }\n code -= 0x10000;\n return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00)\n}\n\nvar loneSurrogate = /(?:[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])/;\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nvar Position = function Position(line, col) {\n this.line = line;\n this.column = col;\n};\n\nPosition.prototype.offset = function offset (n) {\n return new Position(this.line, this.column + n)\n};\n\nvar SourceLocation = function SourceLocation(p, start, end) {\n this.start = start;\n this.end = end;\n if (p.sourceFile !== null) { this.source = p.sourceFile; }\n};\n\n// The `getLineInfo` function is mostly useful when the\n// `locations` option is off (for performance reasons) and you\n// want to find the line/column position for a given character\n// offset. `input` should be the code string that the offset refers\n// into.\n\nfunction getLineInfo(input, offset) {\n for (var line = 1, cur = 0;;) {\n var nextBreak = nextLineBreak(input, cur, offset);\n if (nextBreak < 0) { return new Position(line, offset - cur) }\n ++line;\n cur = nextBreak;\n }\n}\n\n// A second argument must be given to configure the parser process.\n// These options are recognized (only `ecmaVersion` is required):\n\nvar defaultOptions = {\n // `ecmaVersion` indicates the ECMAScript version to parse. Must be\n // either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10\n // (2019), 11 (2020), 12 (2021), 13 (2022), 14 (2023), or `\"latest\"`\n // (the latest version the library supports). This influences\n // support for strict mode, the set of reserved words, and support\n // for new syntax features.\n ecmaVersion: null,\n // `sourceType` indicates the mode the code should be parsed in.\n // Can be either `\"script\"`, `\"module\"` or `\"commonjs\"`. This influences global\n // strict mode and parsing of `import` and `export` declarations.\n sourceType: \"script\",\n // `onInsertedSemicolon` can be a callback that will be called when\n // a semicolon is automatically inserted. It will be passed the\n // position of the inserted semicolon as an offset, and if\n // `locations` is enabled, it is given the location as a `{line,\n // column}` object as second argument.\n onInsertedSemicolon: null,\n // `onTrailingComma` is similar to `onInsertedSemicolon`, but for\n // trailing commas.\n onTrailingComma: null,\n // By default, reserved words are only enforced if ecmaVersion >= 5.\n // Set `allowReserved` to a boolean value to explicitly turn this on\n // an off. When this option has the value \"never\", reserved words\n // and keywords can also not be used as property names.\n allowReserved: null,\n // When enabled, a return at the top level is not considered an\n // error.\n allowReturnOutsideFunction: false,\n // When enabled, import/export statements are not constrained to\n // appearing at the top of the program, and an import.meta expression\n // in a script isn't considered an error.\n allowImportExportEverywhere: false,\n // By default, await identifiers are allowed to appear at the top-level scope only if ecmaVersion >= 2022.\n // When enabled, await identifiers are allowed to appear at the top-level scope,\n // but they are still not allowed in non-async functions.\n allowAwaitOutsideFunction: null,\n // When enabled, super identifiers are not constrained to\n // appearing in methods and do not raise an error when they appear elsewhere.\n allowSuperOutsideMethod: null,\n // When enabled, hashbang directive in the beginning of file is\n // allowed and treated as a line comment. Enabled by default when\n // `ecmaVersion` >= 2023.\n allowHashBang: false,\n // By default, the parser will verify that private properties are\n // only used in places where they are valid and have been declared.\n // Set this to false to turn such checks off.\n checkPrivateFields: true,\n // When `locations` is on, `loc` properties holding objects with\n // `start` and `end` properties in `{line, column}` form (with\n // line being 1-based and column 0-based) will be attached to the\n // nodes.\n locations: false,\n // A function can be passed as `onToken` option, which will\n // cause Acorn to call that function with object in the same\n // format as tokens returned from `tokenizer().getToken()`. Note\n // that you are not allowed to call the parser from the\n // callback—that will corrupt its internal state.\n onToken: null,\n // A function can be passed as `onComment` option, which will\n // cause Acorn to call that function with `(block, text, start,\n // end)` parameters whenever a comment is skipped. `block` is a\n // boolean indicating whether this is a block (`/* */`) comment,\n // `text` is the content of the comment, and `start` and `end` are\n // character offsets that denote the start and end of the comment.\n // When the `locations` option is on, two more parameters are\n // passed, the full `{line, column}` locations of the start and\n // end of the comments. Note that you are not allowed to call the\n // parser from the callback—that will corrupt its internal state.\n // When this option has an array as value, objects representing the\n // comments are pushed to it.\n onComment: null,\n // Nodes have their start and end characters offsets recorded in\n // `start` and `end` properties (directly on the node, rather than\n // the `loc` object, which holds line/column data. To also add a\n // [semi-standardized][range] `range` property holding a `[start,\n // end]` array with the same numbers, set the `ranges` option to\n // `true`.\n //\n // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n ranges: false,\n // It is possible to parse multiple files into a single AST by\n // passing the tree produced by parsing the first file as\n // `program` option in subsequent parses. This will add the\n // toplevel forms of the parsed file to the `Program` (top) node\n // of an existing parse tree.\n program: null,\n // When `locations` is on, you can pass this to record the source\n // file in every node's `loc` object.\n sourceFile: null,\n // This value, if given, is stored in every node, whether\n // `locations` is on or off.\n directSourceFile: null,\n // When enabled, parenthesized expressions are represented by\n // (non-standard) ParenthesizedExpression nodes\n preserveParens: false\n};\n\n// Interpret and default an options object\n\nvar warnedAboutEcmaVersion = false;\n\nfunction getOptions(opts) {\n var options = {};\n\n for (var opt in defaultOptions)\n { options[opt] = opts && hasOwn(opts, opt) ? opts[opt] : defaultOptions[opt]; }\n\n if (options.ecmaVersion === \"latest\") {\n options.ecmaVersion = 1e8;\n } else if (options.ecmaVersion == null) {\n if (!warnedAboutEcmaVersion && typeof console === \"object\" && console.warn) {\n warnedAboutEcmaVersion = true;\n console.warn(\"Since Acorn 8.0.0, options.ecmaVersion is required.\\nDefaulting to 2020, but this will stop working in the future.\");\n }\n options.ecmaVersion = 11;\n } else if (options.ecmaVersion >= 2015) {\n options.ecmaVersion -= 2009;\n }\n\n if (options.allowReserved == null)\n { options.allowReserved = options.ecmaVersion < 5; }\n\n if (!opts || opts.allowHashBang == null)\n { options.allowHashBang = options.ecmaVersion >= 14; }\n\n if (isArray(options.onToken)) {\n var tokens = options.onToken;\n options.onToken = function (token) { return tokens.push(token); };\n }\n if (isArray(options.onComment))\n { options.onComment = pushComment(options, options.onComment); }\n\n if (options.sourceType === \"commonjs\" && options.allowAwaitOutsideFunction)\n { throw new Error(\"Cannot use allowAwaitOutsideFunction with sourceType: commonjs\") }\n\n return options\n}\n\nfunction pushComment(options, array) {\n return function(block, text, start, end, startLoc, endLoc) {\n var comment = {\n type: block ? \"Block\" : \"Line\",\n value: text,\n start: start,\n end: end\n };\n if (options.locations)\n { comment.loc = new SourceLocation(this, startLoc, endLoc); }\n if (options.ranges)\n { comment.range = [start, end]; }\n array.push(comment);\n }\n}\n\n// Each scope gets a bitset that may contain these flags\nvar\n SCOPE_TOP = 1,\n SCOPE_FUNCTION = 2,\n SCOPE_ASYNC = 4,\n SCOPE_GENERATOR = 8,\n SCOPE_ARROW = 16,\n SCOPE_SIMPLE_CATCH = 32,\n SCOPE_SUPER = 64,\n SCOPE_DIRECT_SUPER = 128,\n SCOPE_CLASS_STATIC_BLOCK = 256,\n SCOPE_CLASS_FIELD_INIT = 512,\n SCOPE_SWITCH = 1024,\n SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK;\n\nfunction functionFlags(async, generator) {\n return SCOPE_FUNCTION | (async ? SCOPE_ASYNC : 0) | (generator ? SCOPE_GENERATOR : 0)\n}\n\n// Used in checkLVal* and declareName to determine the type of a binding\nvar\n BIND_NONE = 0, // Not a binding\n BIND_VAR = 1, // Var-style binding\n BIND_LEXICAL = 2, // Let- or const-style binding\n BIND_FUNCTION = 3, // Function declaration\n BIND_SIMPLE_CATCH = 4, // Simple (identifier pattern) catch binding\n BIND_OUTSIDE = 5; // Special case for function names as bound inside the function\n\nvar Parser = function Parser(options, input, startPos) {\n this.options = options = getOptions(options);\n this.sourceFile = options.sourceFile;\n this.keywords = wordsRegexp(keywords$1[options.ecmaVersion >= 6 ? 6 : options.sourceType === \"module\" ? \"5module\" : 5]);\n var reserved = \"\";\n if (options.allowReserved !== true) {\n reserved = reservedWords[options.ecmaVersion >= 6 ? 6 : options.ecmaVersion === 5 ? 5 : 3];\n if (options.sourceType === \"module\") { reserved += \" await\"; }\n }\n this.reservedWords = wordsRegexp(reserved);\n var reservedStrict = (reserved ? reserved + \" \" : \"\") + reservedWords.strict;\n this.reservedWordsStrict = wordsRegexp(reservedStrict);\n this.reservedWordsStrictBind = wordsRegexp(reservedStrict + \" \" + reservedWords.strictBind);\n this.input = String(input);\n\n // Used to signal to callers of `readWord1` whether the word\n // contained any escape sequences. This is needed because words with\n // escape sequences must not be interpreted as keywords.\n this.containsEsc = false;\n\n // Set up token state\n\n // The current position of the tokenizer in the input.\n if (startPos) {\n this.pos = startPos;\n this.lineStart = this.input.lastIndexOf(\"\\n\", startPos - 1) + 1;\n this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length;\n } else {\n this.pos = this.lineStart = 0;\n this.curLine = 1;\n }\n\n // Properties of the current token:\n // Its type\n this.type = types$1.eof;\n // For tokens that include more information than their type, the value\n this.value = null;\n // Its start and end offset\n this.start = this.end = this.pos;\n // And, if locations are used, the {line, column} object\n // corresponding to those offsets\n this.startLoc = this.endLoc = this.curPosition();\n\n // Position information for the previous token\n this.lastTokEndLoc = this.lastTokStartLoc = null;\n this.lastTokStart = this.lastTokEnd = this.pos;\n\n // The context stack is used to superficially track syntactic\n // context to predict whether a regular expression is allowed in a\n // given position.\n this.context = this.initialContext();\n this.exprAllowed = true;\n\n // Figure out if it's a module code.\n this.inModule = options.sourceType === \"module\";\n this.strict = this.inModule || this.strictDirective(this.pos);\n\n // Used to signify the start of a potential arrow function\n this.potentialArrowAt = -1;\n this.potentialArrowInForAwait = false;\n\n // Positions to delayed-check that yield/await does not exist in default parameters.\n this.yieldPos = this.awaitPos = this.awaitIdentPos = 0;\n // Labels in scope.\n this.labels = [];\n // Thus-far undefined exports.\n this.undefinedExports = Object.create(null);\n\n // If enabled, skip leading hashbang line.\n if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === \"#!\")\n { this.skipLineComment(2); }\n\n // Scope tracking for duplicate variable names (see scope.js)\n this.scopeStack = [];\n this.enterScope(\n this.options.sourceType === \"commonjs\"\n // In commonjs, the top-level scope behaves like a function scope\n ? SCOPE_FUNCTION\n : SCOPE_TOP\n );\n\n // For RegExp validation\n this.regexpState = null;\n\n // The stack of private names.\n // Each element has two properties: 'declared' and 'used'.\n // When it exited from the outermost class definition, all used private names must be declared.\n this.privateNameStack = [];\n};\n\nvar prototypeAccessors = { inFunction: { configurable: true },inGenerator: { configurable: true },inAsync: { configurable: true },canAwait: { configurable: true },allowReturn: { configurable: true },allowSuper: { configurable: true },allowDirectSuper: { configurable: true },treatFunctionsAsVar: { configurable: true },allowNewDotTarget: { configurable: true },allowUsing: { configurable: true },inClassStaticBlock: { configurable: true } };\n\nParser.prototype.parse = function parse () {\n var node = this.options.program || this.startNode();\n this.nextToken();\n return this.parseTopLevel(node)\n};\n\nprototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 };\n\nprototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 };\n\nprototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 };\n\nprototypeAccessors.canAwait.get = function () {\n for (var i = this.scopeStack.length - 1; i >= 0; i--) {\n var ref = this.scopeStack[i];\n var flags = ref.flags;\n if (flags & (SCOPE_CLASS_STATIC_BLOCK | SCOPE_CLASS_FIELD_INIT)) { return false }\n if (flags & SCOPE_FUNCTION) { return (flags & SCOPE_ASYNC) > 0 }\n }\n return (this.inModule && this.options.ecmaVersion >= 13) || this.options.allowAwaitOutsideFunction\n};\n\nprototypeAccessors.allowReturn.get = function () {\n if (this.inFunction) { return true }\n if (this.options.allowReturnOutsideFunction && this.currentVarScope().flags & SCOPE_TOP) { return true }\n return false\n};\n\nprototypeAccessors.allowSuper.get = function () {\n var ref = this.currentThisScope();\n var flags = ref.flags;\n return (flags & SCOPE_SUPER) > 0 || this.options.allowSuperOutsideMethod\n};\n\nprototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 };\n\nprototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) };\n\nprototypeAccessors.allowNewDotTarget.get = function () {\n for (var i = this.scopeStack.length - 1; i >= 0; i--) {\n var ref = this.scopeStack[i];\n var flags = ref.flags;\n if (flags & (SCOPE_CLASS_STATIC_BLOCK | SCOPE_CLASS_FIELD_INIT) ||\n ((flags & SCOPE_FUNCTION) && !(flags & SCOPE_ARROW))) { return true }\n }\n return false\n};\n\nprototypeAccessors.allowUsing.get = function () {\n var ref = this.currentScope();\n var flags = ref.flags;\n if (flags & SCOPE_SWITCH) { return false }\n if (!this.inModule && flags & SCOPE_TOP) { return false }\n return true\n};\n\nprototypeAccessors.inClassStaticBlock.get = function () {\n return (this.currentVarScope().flags & SCOPE_CLASS_STATIC_BLOCK) > 0\n};\n\nParser.extend = function extend () {\n var plugins = [], len = arguments.length;\n while ( len-- ) plugins[ len ] = arguments[ len ];\n\n var cls = this;\n for (var i = 0; i < plugins.length; i++) { cls = plugins[i](cls); }\n return cls\n};\n\nParser.parse = function parse (input, options) {\n return new this(options, input).parse()\n};\n\nParser.parseExpressionAt = function parseExpressionAt (input, pos, options) {\n var parser = new this(options, input, pos);\n parser.nextToken();\n return parser.parseExpression()\n};\n\nParser.tokenizer = function tokenizer (input, options) {\n return new this(options, input)\n};\n\nObject.defineProperties( Parser.prototype, prototypeAccessors );\n\nvar pp$9 = Parser.prototype;\n\n// ## Parser utilities\n\nvar literal = /^(?:'((?:\\\\[^]|[^'\\\\])*?)'|\"((?:\\\\[^]|[^\"\\\\])*?)\")/;\npp$9.strictDirective = function(start) {\n if (this.options.ecmaVersion < 5) { return false }\n for (;;) {\n // Try to find string literal.\n skipWhiteSpace.lastIndex = start;\n start += skipWhiteSpace.exec(this.input)[0].length;\n var match = literal.exec(this.input.slice(start));\n if (!match) { return false }\n if ((match[1] || match[2]) === \"use strict\") {\n skipWhiteSpace.lastIndex = start + match[0].length;\n var spaceAfter = skipWhiteSpace.exec(this.input), end = spaceAfter.index + spaceAfter[0].length;\n var next = this.input.charAt(end);\n return next === \";\" || next === \"}\" ||\n (lineBreak.test(spaceAfter[0]) &&\n !(/[(`.[+\\-/*%<>=,?^&]/.test(next) || next === \"!\" && this.input.charAt(end + 1) === \"=\"))\n }\n start += match[0].length;\n\n // Skip semicolon, if any.\n skipWhiteSpace.lastIndex = start;\n start += skipWhiteSpace.exec(this.input)[0].length;\n if (this.input[start] === \";\")\n { start++; }\n }\n};\n\n// Predicate that tests whether the next token is of the given\n// type, and if yes, consumes it as a side effect.\n\npp$9.eat = function(type) {\n if (this.type === type) {\n this.next();\n return true\n } else {\n return false\n }\n};\n\n// Tests whether parsed token is a contextual keyword.\n\npp$9.isContextual = function(name) {\n return this.type === types$1.name && this.value === name && !this.containsEsc\n};\n\n// Consumes contextual keyword if possible.\n\npp$9.eatContextual = function(name) {\n if (!this.isContextual(name)) { return false }\n this.next();\n return true\n};\n\n// Asserts that following token is given contextual keyword.\n\npp$9.expectContextual = function(name) {\n if (!this.eatContextual(name)) { this.unexpected(); }\n};\n\n// Test whether a semicolon can be inserted at the current position.\n\npp$9.canInsertSemicolon = function() {\n return this.type === types$1.eof ||\n this.type === types$1.braceR ||\n lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n};\n\npp$9.insertSemicolon = function() {\n if (this.canInsertSemicolon()) {\n if (this.options.onInsertedSemicolon)\n { this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc); }\n return true\n }\n};\n\n// Consume a semicolon, or, failing that, see if we are allowed to\n// pretend that there is a semicolon at this position.\n\npp$9.semicolon = function() {\n if (!this.eat(types$1.semi) && !this.insertSemicolon()) { this.unexpected(); }\n};\n\npp$9.afterTrailingComma = function(tokType, notNext) {\n if (this.type === tokType) {\n if (this.options.onTrailingComma)\n { this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc); }\n if (!notNext)\n { this.next(); }\n return true\n }\n};\n\n// Expect a token of a given type. If found, consume it, otherwise,\n// raise an unexpected token error.\n\npp$9.expect = function(type) {\n this.eat(type) || this.unexpected();\n};\n\n// Raise an unexpected token error.\n\npp$9.unexpected = function(pos) {\n this.raise(pos != null ? pos : this.start, \"Unexpected token\");\n};\n\nvar DestructuringErrors = function DestructuringErrors() {\n this.shorthandAssign =\n this.trailingComma =\n this.parenthesizedAssign =\n this.parenthesizedBind =\n this.doubleProto =\n -1;\n};\n\npp$9.checkPatternErrors = function(refDestructuringErrors, isAssign) {\n if (!refDestructuringErrors) { return }\n if (refDestructuringErrors.trailingComma > -1)\n { this.raiseRecoverable(refDestructuringErrors.trailingComma, \"Comma is not permitted after the rest element\"); }\n var parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind;\n if (parens > -1) { this.raiseRecoverable(parens, isAssign ? \"Assigning to rvalue\" : \"Parenthesized pattern\"); }\n};\n\npp$9.checkExpressionErrors = function(refDestructuringErrors, andThrow) {\n if (!refDestructuringErrors) { return false }\n var shorthandAssign = refDestructuringErrors.shorthandAssign;\n var doubleProto = refDestructuringErrors.doubleProto;\n if (!andThrow) { return shorthandAssign >= 0 || doubleProto >= 0 }\n if (shorthandAssign >= 0)\n { this.raise(shorthandAssign, \"Shorthand property assignments are valid only in destructuring patterns\"); }\n if (doubleProto >= 0)\n { this.raiseRecoverable(doubleProto, \"Redefinition of __proto__ property\"); }\n};\n\npp$9.checkYieldAwaitInDefaultParams = function() {\n if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos))\n { this.raise(this.yieldPos, \"Yield expression cannot be a default value\"); }\n if (this.awaitPos)\n { this.raise(this.awaitPos, \"Await expression cannot be a default value\"); }\n};\n\npp$9.isSimpleAssignTarget = function(expr) {\n if (expr.type === \"ParenthesizedExpression\")\n { return this.isSimpleAssignTarget(expr.expression) }\n return expr.type === \"Identifier\" || expr.type === \"MemberExpression\"\n};\n\nvar pp$8 = Parser.prototype;\n\n// ### Statement parsing\n\n// Parse a program. Initializes the parser, reads any number of\n// statements, and wraps them in a Program node. Optionally takes a\n// `program` argument. If present, the statements will be appended\n// to its body instead of creating a new node.\n\npp$8.parseTopLevel = function(node) {\n var exports = Object.create(null);\n if (!node.body) { node.body = []; }\n while (this.type !== types$1.eof) {\n var stmt = this.parseStatement(null, true, exports);\n node.body.push(stmt);\n }\n if (this.inModule)\n { for (var i = 0, list = Object.keys(this.undefinedExports); i < list.length; i += 1)\n {\n var name = list[i];\n\n this.raiseRecoverable(this.undefinedExports[name].start, (\"Export '\" + name + \"' is not defined\"));\n } }\n this.adaptDirectivePrologue(node.body);\n this.next();\n node.sourceType = this.options.sourceType === \"commonjs\" ? \"script\" : this.options.sourceType;\n return this.finishNode(node, \"Program\")\n};\n\nvar loopLabel = {kind: \"loop\"}, switchLabel = {kind: \"switch\"};\n\npp$8.isLet = function(context) {\n if (this.options.ecmaVersion < 6 || !this.isContextual(\"let\")) { return false }\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, nextCh = this.fullCharCodeAt(next);\n // For ambiguous cases, determine if a LexicalDeclaration (or only a\n // Statement) is allowed here. If context is not empty then only a Statement\n // is allowed. However, `let [` is an explicit negative lookahead for\n // ExpressionStatement, so special-case it first.\n if (nextCh === 91 || nextCh === 92) { return true } // '[', '\\'\n if (context) { return false }\n\n if (nextCh === 123) { return true } // '{'\n if (isIdentifierStart(nextCh)) {\n var start = next;\n do { next += nextCh <= 0xffff ? 1 : 2; }\n while (isIdentifierChar(nextCh = this.fullCharCodeAt(next)))\n if (nextCh === 92) { return true }\n var ident = this.input.slice(start, next);\n if (!keywordRelationalOperator.test(ident)) { return true }\n }\n return false\n};\n\n// check 'async [no LineTerminator here] function'\n// - 'async /*foo*/ function' is OK.\n// - 'async /*\\n*/ function' is invalid.\npp$8.isAsyncFunction = function() {\n if (this.options.ecmaVersion < 8 || !this.isContextual(\"async\"))\n { return false }\n\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, after;\n return !lineBreak.test(this.input.slice(this.pos, next)) &&\n this.input.slice(next, next + 8) === \"function\" &&\n (next + 8 === this.input.length ||\n !(isIdentifierChar(after = this.fullCharCodeAt(next + 8)) || after === 92 /* '\\' */))\n};\n\npp$8.isUsingKeyword = function(isAwaitUsing, isFor) {\n if (this.options.ecmaVersion < 17 || !this.isContextual(isAwaitUsing ? \"await\" : \"using\"))\n { return false }\n\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length;\n\n if (lineBreak.test(this.input.slice(this.pos, next))) { return false }\n\n if (isAwaitUsing) {\n var usingEndPos = next + 5 /* using */, after;\n if (this.input.slice(next, usingEndPos) !== \"using\" ||\n usingEndPos === this.input.length ||\n isIdentifierChar(after = this.fullCharCodeAt(usingEndPos)) ||\n after === 92 /* '\\' */\n ) { return false }\n\n skipWhiteSpace.lastIndex = usingEndPos;\n var skipAfterUsing = skipWhiteSpace.exec(this.input);\n next = usingEndPos + skipAfterUsing[0].length;\n if (skipAfterUsing && lineBreak.test(this.input.slice(usingEndPos, next))) { return false }\n }\n\n var ch = this.fullCharCodeAt(next);\n if (!isIdentifierStart(ch) && ch !== 92 /* '\\' */) { return false }\n var idStart = next;\n do { next += ch <= 0xffff ? 1 : 2; }\n while (isIdentifierChar(ch = this.fullCharCodeAt(next)))\n if (ch === 92) { return true }\n var id = this.input.slice(idStart, next);\n if (keywordRelationalOperator.test(id) || isFor && id === \"of\") { return false }\n return true\n};\n\npp$8.isAwaitUsing = function(isFor) {\n return this.isUsingKeyword(true, isFor)\n};\n\npp$8.isUsing = function(isFor) {\n return this.isUsingKeyword(false, isFor)\n};\n\n// Parse a single statement.\n//\n// If expecting a statement and finding a slash operator, parse a\n// regular expression literal. This is to handle cases like\n// `if (foo) /blah/.exec(foo)`, where looking at the previous token\n// does not help.\n\npp$8.parseStatement = function(context, topLevel, exports) {\n var starttype = this.type, node = this.startNode(), kind;\n\n if (this.isLet(context)) {\n starttype = types$1._var;\n kind = \"let\";\n }\n\n // Most types of statements are recognized by the keyword they\n // start with. Many are trivial to parse, some require a bit of\n // complexity.\n\n switch (starttype) {\n case types$1._break: case types$1._continue: return this.parseBreakContinueStatement(node, starttype.keyword)\n case types$1._debugger: return this.parseDebuggerStatement(node)\n case types$1._do: return this.parseDoStatement(node)\n case types$1._for: return this.parseForStatement(node)\n case types$1._function:\n // Function as sole body of either an if statement or a labeled statement\n // works, but not when it is part of a labeled statement that is the sole\n // body of an if statement.\n if ((context && (this.strict || context !== \"if\" && context !== \"label\")) && this.options.ecmaVersion >= 6) { this.unexpected(); }\n return this.parseFunctionStatement(node, false, !context)\n case types$1._class:\n if (context) { this.unexpected(); }\n return this.parseClass(node, true)\n case types$1._if: return this.parseIfStatement(node)\n case types$1._return: return this.parseReturnStatement(node)\n case types$1._switch: return this.parseSwitchStatement(node)\n case types$1._throw: return this.parseThrowStatement(node)\n case types$1._try: return this.parseTryStatement(node)\n case types$1._const: case types$1._var:\n kind = kind || this.value;\n if (context && kind !== \"var\") { this.unexpected(); }\n return this.parseVarStatement(node, kind)\n case types$1._while: return this.parseWhileStatement(node)\n case types$1._with: return this.parseWithStatement(node)\n case types$1.braceL: return this.parseBlock(true, node)\n case types$1.semi: return this.parseEmptyStatement(node)\n case types$1._export:\n case types$1._import:\n if (this.options.ecmaVersion > 10 && starttype === types$1._import) {\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next);\n if (nextCh === 40 || nextCh === 46) // '(' or '.'\n { return this.parseExpressionStatement(node, this.parseExpression()) }\n }\n\n if (!this.options.allowImportExportEverywhere) {\n if (!topLevel)\n { this.raise(this.start, \"'import' and 'export' may only appear at the top level\"); }\n if (!this.inModule)\n { this.raise(this.start, \"'import' and 'export' may appear only with 'sourceType: module'\"); }\n }\n return starttype === types$1._import ? this.parseImport(node) : this.parseExport(node, exports)\n\n // If the statement does not start with a statement keyword or a\n // brace, it's an ExpressionStatement or LabeledStatement. We\n // simply start parsing an expression, and afterwards, if the\n // next token is a colon and the expression was a simple\n // Identifier node, we switch to interpreting it as a label.\n default:\n if (this.isAsyncFunction()) {\n if (context) { this.unexpected(); }\n this.next();\n return this.parseFunctionStatement(node, true, !context)\n }\n\n var usingKind = this.isAwaitUsing(false) ? \"await using\" : this.isUsing(false) ? \"using\" : null;\n if (usingKind) {\n if (!this.allowUsing) {\n this.raise(this.start, \"Using declaration cannot appear in the top level when source type is `script` or in the bare case statement\");\n }\n if (usingKind === \"await using\") {\n if (!this.canAwait) {\n this.raise(this.start, \"Await using cannot appear outside of async function\");\n }\n this.next();\n }\n this.next();\n this.parseVar(node, false, usingKind);\n this.semicolon();\n return this.finishNode(node, \"VariableDeclaration\")\n }\n\n var maybeName = this.value, expr = this.parseExpression();\n if (starttype === types$1.name && expr.type === \"Identifier\" && this.eat(types$1.colon))\n { return this.parseLabeledStatement(node, maybeName, expr, context) }\n else { return this.parseExpressionStatement(node, expr) }\n }\n};\n\npp$8.parseBreakContinueStatement = function(node, keyword) {\n var isBreak = keyword === \"break\";\n this.next();\n if (this.eat(types$1.semi) || this.insertSemicolon()) { node.label = null; }\n else if (this.type !== types$1.name) { this.unexpected(); }\n else {\n node.label = this.parseIdent();\n this.semicolon();\n }\n\n // Verify that there is an actual destination to break or\n // continue to.\n var i = 0;\n for (; i < this.labels.length; ++i) {\n var lab = this.labels[i];\n if (node.label == null || lab.name === node.label.name) {\n if (lab.kind != null && (isBreak || lab.kind === \"loop\")) { break }\n if (node.label && isBreak) { break }\n }\n }\n if (i === this.labels.length) { this.raise(node.start, \"Unsyntactic \" + keyword); }\n return this.finishNode(node, isBreak ? \"BreakStatement\" : \"ContinueStatement\")\n};\n\npp$8.parseDebuggerStatement = function(node) {\n this.next();\n this.semicolon();\n return this.finishNode(node, \"DebuggerStatement\")\n};\n\npp$8.parseDoStatement = function(node) {\n this.next();\n this.labels.push(loopLabel);\n node.body = this.parseStatement(\"do\");\n this.labels.pop();\n this.expect(types$1._while);\n node.test = this.parseParenExpression();\n if (this.options.ecmaVersion >= 6)\n { this.eat(types$1.semi); }\n else\n { this.semicolon(); }\n return this.finishNode(node, \"DoWhileStatement\")\n};\n\n// Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n// loop is non-trivial. Basically, we have to parse the init `var`\n// statement or expression, disallowing the `in` operator (see\n// the second parameter to `parseExpression`), and then check\n// whether the next token is `in` or `of`. When there is no init\n// part (semicolon immediately after the opening parenthesis), it\n// is a regular `for` loop.\n\npp$8.parseForStatement = function(node) {\n this.next();\n var awaitAt = (this.options.ecmaVersion >= 9 && this.canAwait && this.eatContextual(\"await\")) ? this.lastTokStart : -1;\n this.labels.push(loopLabel);\n this.enterScope(0);\n this.expect(types$1.parenL);\n if (this.type === types$1.semi) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, null)\n }\n var isLet = this.isLet();\n if (this.type === types$1._var || this.type === types$1._const || isLet) {\n var init$1 = this.startNode(), kind = isLet ? \"let\" : this.value;\n this.next();\n this.parseVar(init$1, true, kind);\n this.finishNode(init$1, \"VariableDeclaration\");\n return this.parseForAfterInit(node, init$1, awaitAt)\n }\n var startsWithLet = this.isContextual(\"let\"), isForOf = false;\n\n var usingKind = this.isUsing(true) ? \"using\" : this.isAwaitUsing(true) ? \"await using\" : null;\n if (usingKind) {\n var init$2 = this.startNode();\n this.next();\n if (usingKind === \"await using\") {\n if (!this.canAwait) {\n this.raise(this.start, \"Await using cannot appear outside of async function\");\n }\n this.next();\n }\n this.parseVar(init$2, true, usingKind);\n this.finishNode(init$2, \"VariableDeclaration\");\n return this.parseForAfterInit(node, init$2, awaitAt)\n }\n var containsEsc = this.containsEsc;\n var refDestructuringErrors = new DestructuringErrors;\n var initPos = this.start;\n var init = awaitAt > -1\n ? this.parseExprSubscripts(refDestructuringErrors, \"await\")\n : this.parseExpression(true, refDestructuringErrors);\n if (this.type === types$1._in || (isForOf = this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) {\n if (awaitAt > -1) { // implies `ecmaVersion >= 9` (see declaration of awaitAt)\n if (this.type === types$1._in) { this.unexpected(awaitAt); }\n node.await = true;\n } else if (isForOf && this.options.ecmaVersion >= 8) {\n if (init.start === initPos && !containsEsc && init.type === \"Identifier\" && init.name === \"async\") { this.unexpected(); }\n else if (this.options.ecmaVersion >= 9) { node.await = false; }\n }\n if (startsWithLet && isForOf) { this.raise(init.start, \"The left-hand side of a for-of loop may not start with 'let'.\"); }\n this.toAssignable(init, false, refDestructuringErrors);\n this.checkLValPattern(init);\n return this.parseForIn(node, init)\n } else {\n this.checkExpressionErrors(refDestructuringErrors, true);\n }\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, init)\n};\n\n// Helper method to parse for loop after variable initialization\npp$8.parseForAfterInit = function(node, init, awaitAt) {\n if ((this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) && init.declarations.length === 1) {\n if (this.options.ecmaVersion >= 9) {\n if (this.type === types$1._in) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n } else { node.await = awaitAt > -1; }\n }\n return this.parseForIn(node, init)\n }\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, init)\n};\n\npp$8.parseFunctionStatement = function(node, isAsync, declarationPosition) {\n this.next();\n return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync)\n};\n\npp$8.parseIfStatement = function(node) {\n this.next();\n node.test = this.parseParenExpression();\n // allow function declarations in branches, but only in non-strict mode\n node.consequent = this.parseStatement(\"if\");\n node.alternate = this.eat(types$1._else) ? this.parseStatement(\"if\") : null;\n return this.finishNode(node, \"IfStatement\")\n};\n\npp$8.parseReturnStatement = function(node) {\n if (!this.allowReturn)\n { this.raise(this.start, \"'return' outside of function\"); }\n this.next();\n\n // In `return` (and `break`/`continue`), the keywords with\n // optional arguments, we eagerly look for a semicolon or the\n // possibility to insert one.\n\n if (this.eat(types$1.semi) || this.insertSemicolon()) { node.argument = null; }\n else { node.argument = this.parseExpression(); this.semicolon(); }\n return this.finishNode(node, \"ReturnStatement\")\n};\n\npp$8.parseSwitchStatement = function(node) {\n this.next();\n node.discriminant = this.parseParenExpression();\n node.cases = [];\n this.expect(types$1.braceL);\n this.labels.push(switchLabel);\n this.enterScope(SCOPE_SWITCH);\n\n // Statements under must be grouped (by label) in SwitchCase\n // nodes. `cur` is used to keep the node that we are currently\n // adding statements to.\n\n var cur;\n for (var sawDefault = false; this.type !== types$1.braceR;) {\n if (this.type === types$1._case || this.type === types$1._default) {\n var isCase = this.type === types$1._case;\n if (cur) { this.finishNode(cur, \"SwitchCase\"); }\n node.cases.push(cur = this.startNode());\n cur.consequent = [];\n this.next();\n if (isCase) {\n cur.test = this.parseExpression();\n } else {\n if (sawDefault) { this.raiseRecoverable(this.lastTokStart, \"Multiple default clauses\"); }\n sawDefault = true;\n cur.test = null;\n }\n this.expect(types$1.colon);\n } else {\n if (!cur) { this.unexpected(); }\n cur.consequent.push(this.parseStatement(null));\n }\n }\n this.exitScope();\n if (cur) { this.finishNode(cur, \"SwitchCase\"); }\n this.next(); // Closing brace\n this.labels.pop();\n return this.finishNode(node, \"SwitchStatement\")\n};\n\npp$8.parseThrowStatement = function(node) {\n this.next();\n if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start)))\n { this.raise(this.lastTokEnd, \"Illegal newline after throw\"); }\n node.argument = this.parseExpression();\n this.semicolon();\n return this.finishNode(node, \"ThrowStatement\")\n};\n\n// Reused empty array added for node fields that are always empty.\n\nvar empty$1 = [];\n\npp$8.parseCatchClauseParam = function() {\n var param = this.parseBindingAtom();\n var simple = param.type === \"Identifier\";\n this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0);\n this.checkLValPattern(param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL);\n this.expect(types$1.parenR);\n\n return param\n};\n\npp$8.parseTryStatement = function(node) {\n this.next();\n node.block = this.parseBlock();\n node.handler = null;\n if (this.type === types$1._catch) {\n var clause = this.startNode();\n this.next();\n if (this.eat(types$1.parenL)) {\n clause.param = this.parseCatchClauseParam();\n } else {\n if (this.options.ecmaVersion < 10) { this.unexpected(); }\n clause.param = null;\n this.enterScope(0);\n }\n clause.body = this.parseBlock(false);\n this.exitScope();\n node.handler = this.finishNode(clause, \"CatchClause\");\n }\n node.finalizer = this.eat(types$1._finally) ? this.parseBlock() : null;\n if (!node.handler && !node.finalizer)\n { this.raise(node.start, \"Missing catch or finally clause\"); }\n return this.finishNode(node, \"TryStatement\")\n};\n\npp$8.parseVarStatement = function(node, kind, allowMissingInitializer) {\n this.next();\n this.parseVar(node, false, kind, allowMissingInitializer);\n this.semicolon();\n return this.finishNode(node, \"VariableDeclaration\")\n};\n\npp$8.parseWhileStatement = function(node) {\n this.next();\n node.test = this.parseParenExpression();\n this.labels.push(loopLabel);\n node.body = this.parseStatement(\"while\");\n this.labels.pop();\n return this.finishNode(node, \"WhileStatement\")\n};\n\npp$8.parseWithStatement = function(node) {\n if (this.strict) { this.raise(this.start, \"'with' in strict mode\"); }\n this.next();\n node.object = this.parseParenExpression();\n node.body = this.parseStatement(\"with\");\n return this.finishNode(node, \"WithStatement\")\n};\n\npp$8.parseEmptyStatement = function(node) {\n this.next();\n return this.finishNode(node, \"EmptyStatement\")\n};\n\npp$8.parseLabeledStatement = function(node, maybeName, expr, context) {\n for (var i$1 = 0, list = this.labels; i$1 < list.length; i$1 += 1)\n {\n var label = list[i$1];\n\n if (label.name === maybeName)\n { this.raise(expr.start, \"Label '\" + maybeName + \"' is already declared\");\n } }\n var kind = this.type.isLoop ? \"loop\" : this.type === types$1._switch ? \"switch\" : null;\n for (var i = this.labels.length - 1; i >= 0; i--) {\n var label$1 = this.labels[i];\n if (label$1.statementStart === node.start) {\n // Update information about previous labels on this node\n label$1.statementStart = this.start;\n label$1.kind = kind;\n } else { break }\n }\n this.labels.push({name: maybeName, kind: kind, statementStart: this.start});\n node.body = this.parseStatement(context ? context.indexOf(\"label\") === -1 ? context + \"label\" : context : \"label\");\n this.labels.pop();\n node.label = expr;\n return this.finishNode(node, \"LabeledStatement\")\n};\n\npp$8.parseExpressionStatement = function(node, expr) {\n node.expression = expr;\n this.semicolon();\n return this.finishNode(node, \"ExpressionStatement\")\n};\n\n// Parse a semicolon-enclosed block of statements, handling `\"use\n// strict\"` declarations when `allowStrict` is true (used for\n// function bodies).\n\npp$8.parseBlock = function(createNewLexicalScope, node, exitStrict) {\n if ( createNewLexicalScope === void 0 ) createNewLexicalScope = true;\n if ( node === void 0 ) node = this.startNode();\n\n node.body = [];\n this.expect(types$1.braceL);\n if (createNewLexicalScope) { this.enterScope(0); }\n while (this.type !== types$1.braceR) {\n var stmt = this.parseStatement(null);\n node.body.push(stmt);\n }\n if (exitStrict) { this.strict = false; }\n this.next();\n if (createNewLexicalScope) { this.exitScope(); }\n return this.finishNode(node, \"BlockStatement\")\n};\n\n// Parse a regular `for` loop. The disambiguation code in\n// `parseStatement` will already have parsed the init statement or\n// expression.\n\npp$8.parseFor = function(node, init) {\n node.init = init;\n this.expect(types$1.semi);\n node.test = this.type === types$1.semi ? null : this.parseExpression();\n this.expect(types$1.semi);\n node.update = this.type === types$1.parenR ? null : this.parseExpression();\n this.expect(types$1.parenR);\n node.body = this.parseStatement(\"for\");\n this.exitScope();\n this.labels.pop();\n return this.finishNode(node, \"ForStatement\")\n};\n\n// Parse a `for`/`in` and `for`/`of` loop, which are almost\n// same from parser's perspective.\n\npp$8.parseForIn = function(node, init) {\n var isForIn = this.type === types$1._in;\n this.next();\n\n if (\n init.type === \"VariableDeclaration\" &&\n init.declarations[0].init != null &&\n (\n !isForIn ||\n this.options.ecmaVersion < 8 ||\n this.strict ||\n init.kind !== \"var\" ||\n init.declarations[0].id.type !== \"Identifier\"\n )\n ) {\n this.raise(\n init.start,\n ((isForIn ? \"for-in\" : \"for-of\") + \" loop variable declaration may not have an initializer\")\n );\n }\n node.left = init;\n node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign();\n this.expect(types$1.parenR);\n node.body = this.parseStatement(\"for\");\n this.exitScope();\n this.labels.pop();\n return this.finishNode(node, isForIn ? \"ForInStatement\" : \"ForOfStatement\")\n};\n\n// Parse a list of variable declarations.\n\npp$8.parseVar = function(node, isFor, kind, allowMissingInitializer) {\n node.declarations = [];\n node.kind = kind;\n for (;;) {\n var decl = this.startNode();\n this.parseVarId(decl, kind);\n if (this.eat(types$1.eq)) {\n decl.init = this.parseMaybeAssign(isFor);\n } else if (!allowMissingInitializer && kind === \"const\" && !(this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\")))) {\n this.unexpected();\n } else if (!allowMissingInitializer && (kind === \"using\" || kind === \"await using\") && this.options.ecmaVersion >= 17 && this.type !== types$1._in && !this.isContextual(\"of\")) {\n this.raise(this.lastTokEnd, (\"Missing initializer in \" + kind + \" declaration\"));\n } else if (!allowMissingInitializer && decl.id.type !== \"Identifier\" && !(isFor && (this.type === types$1._in || this.isContextual(\"of\")))) {\n this.raise(this.lastTokEnd, \"Complex binding patterns require an initialization value\");\n } else {\n decl.init = null;\n }\n node.declarations.push(this.finishNode(decl, \"VariableDeclarator\"));\n if (!this.eat(types$1.comma)) { break }\n }\n return node\n};\n\npp$8.parseVarId = function(decl, kind) {\n decl.id = kind === \"using\" || kind === \"await using\"\n ? this.parseIdent()\n : this.parseBindingAtom();\n\n this.checkLValPattern(decl.id, kind === \"var\" ? BIND_VAR : BIND_LEXICAL, false);\n};\n\nvar FUNC_STATEMENT = 1, FUNC_HANGING_STATEMENT = 2, FUNC_NULLABLE_ID = 4;\n\n// Parse a function declaration or literal (depending on the\n// `statement & FUNC_STATEMENT`).\n\n// Remove `allowExpressionBody` for 7.0.0, as it is only called with false\npp$8.parseFunction = function(node, statement, allowExpressionBody, isAsync, forInit) {\n this.initFunction(node);\n if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) {\n if (this.type === types$1.star && (statement & FUNC_HANGING_STATEMENT))\n { this.unexpected(); }\n node.generator = this.eat(types$1.star);\n }\n if (this.options.ecmaVersion >= 8)\n { node.async = !!isAsync; }\n\n if (statement & FUNC_STATEMENT) {\n node.id = (statement & FUNC_NULLABLE_ID) && this.type !== types$1.name ? null : this.parseIdent();\n if (node.id && !(statement & FUNC_HANGING_STATEMENT))\n // If it is a regular function declaration in sloppy mode, then it is\n // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding\n // mode depends on properties of the current scope (see\n // treatFunctionsAsVar).\n { this.checkLValSimple(node.id, (this.strict || node.generator || node.async) ? this.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION); }\n }\n\n var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n this.enterScope(functionFlags(node.async, node.generator));\n\n if (!(statement & FUNC_STATEMENT))\n { node.id = this.type === types$1.name ? this.parseIdent() : null; }\n\n this.parseFunctionParams(node);\n this.parseFunctionBody(node, allowExpressionBody, false, forInit);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, (statement & FUNC_STATEMENT) ? \"FunctionDeclaration\" : \"FunctionExpression\")\n};\n\npp$8.parseFunctionParams = function(node) {\n this.expect(types$1.parenL);\n node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8);\n this.checkYieldAwaitInDefaultParams();\n};\n\n// Parse a class declaration or literal (depending on the\n// `isStatement` parameter).\n\npp$8.parseClass = function(node, isStatement) {\n this.next();\n\n // ecma-262 14.6 Class Definitions\n // A class definition is always strict mode code.\n var oldStrict = this.strict;\n this.strict = true;\n\n this.parseClassId(node, isStatement);\n this.parseClassSuper(node);\n var privateNameMap = this.enterClassBody();\n var classBody = this.startNode();\n var hadConstructor = false;\n classBody.body = [];\n this.expect(types$1.braceL);\n while (this.type !== types$1.braceR) {\n var element = this.parseClassElement(node.superClass !== null);\n if (element) {\n classBody.body.push(element);\n if (element.type === \"MethodDefinition\" && element.kind === \"constructor\") {\n if (hadConstructor) { this.raiseRecoverable(element.start, \"Duplicate constructor in the same class\"); }\n hadConstructor = true;\n } else if (element.key && element.key.type === \"PrivateIdentifier\" && isPrivateNameConflicted(privateNameMap, element)) {\n this.raiseRecoverable(element.key.start, (\"Identifier '#\" + (element.key.name) + \"' has already been declared\"));\n }\n }\n }\n this.strict = oldStrict;\n this.next();\n node.body = this.finishNode(classBody, \"ClassBody\");\n this.exitClassBody();\n return this.finishNode(node, isStatement ? \"ClassDeclaration\" : \"ClassExpression\")\n};\n\npp$8.parseClassElement = function(constructorAllowsSuper) {\n if (this.eat(types$1.semi)) { return null }\n\n var ecmaVersion = this.options.ecmaVersion;\n var node = this.startNode();\n var keyName = \"\";\n var isGenerator = false;\n var isAsync = false;\n var kind = \"method\";\n var isStatic = false;\n\n if (this.eatContextual(\"static\")) {\n // Parse static init block\n if (ecmaVersion >= 13 && this.eat(types$1.braceL)) {\n this.parseClassStaticBlock(node);\n return node\n }\n if (this.isClassElementNameStart() || this.type === types$1.star) {\n isStatic = true;\n } else {\n keyName = \"static\";\n }\n }\n node.static = isStatic;\n if (!keyName && ecmaVersion >= 8 && this.eatContextual(\"async\")) {\n if ((this.isClassElementNameStart() || this.type === types$1.star) && !this.canInsertSemicolon()) {\n isAsync = true;\n } else {\n keyName = \"async\";\n }\n }\n if (!keyName && (ecmaVersion >= 9 || !isAsync) && this.eat(types$1.star)) {\n isGenerator = true;\n }\n if (!keyName && !isAsync && !isGenerator) {\n var lastValue = this.value;\n if (this.eatContextual(\"get\") || this.eatContextual(\"set\")) {\n if (this.isClassElementNameStart()) {\n kind = lastValue;\n } else {\n keyName = lastValue;\n }\n }\n }\n\n // Parse element name\n if (keyName) {\n // 'async', 'get', 'set', or 'static' were not a keyword contextually.\n // The last token is any of those. Make it the element name.\n node.computed = false;\n node.key = this.startNodeAt(this.lastTokStart, this.lastTokStartLoc);\n node.key.name = keyName;\n this.finishNode(node.key, \"Identifier\");\n } else {\n this.parseClassElementName(node);\n }\n\n // Parse element value\n if (ecmaVersion < 13 || this.type === types$1.parenL || kind !== \"method\" || isGenerator || isAsync) {\n var isConstructor = !node.static && checkKeyName(node, \"constructor\");\n var allowsDirectSuper = isConstructor && constructorAllowsSuper;\n // Couldn't move this check into the 'parseClassMethod' method for backward compatibility.\n if (isConstructor && kind !== \"method\") { this.raise(node.key.start, \"Constructor can't have get/set modifier\"); }\n node.kind = isConstructor ? \"constructor\" : kind;\n this.parseClassMethod(node, isGenerator, isAsync, allowsDirectSuper);\n } else {\n this.parseClassField(node);\n }\n\n return node\n};\n\npp$8.isClassElementNameStart = function() {\n return (\n this.type === types$1.name ||\n this.type === types$1.privateId ||\n this.type === types$1.num ||\n this.type === types$1.string ||\n this.type === types$1.bracketL ||\n this.type.keyword\n )\n};\n\npp$8.parseClassElementName = function(element) {\n if (this.type === types$1.privateId) {\n if (this.value === \"constructor\") {\n this.raise(this.start, \"Classes can't have an element named '#constructor'\");\n }\n element.computed = false;\n element.key = this.parsePrivateIdent();\n } else {\n this.parsePropertyName(element);\n }\n};\n\npp$8.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) {\n // Check key and flags\n var key = method.key;\n if (method.kind === \"constructor\") {\n if (isGenerator) { this.raise(key.start, \"Constructor can't be a generator\"); }\n if (isAsync) { this.raise(key.start, \"Constructor can't be an async method\"); }\n } else if (method.static && checkKeyName(method, \"prototype\")) {\n this.raise(key.start, \"Classes may not have a static property named prototype\");\n }\n\n // Parse value\n var value = method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper);\n\n // Check value\n if (method.kind === \"get\" && value.params.length !== 0)\n { this.raiseRecoverable(value.start, \"getter should have no params\"); }\n if (method.kind === \"set\" && value.params.length !== 1)\n { this.raiseRecoverable(value.start, \"setter should have exactly one param\"); }\n if (method.kind === \"set\" && value.params[0].type === \"RestElement\")\n { this.raiseRecoverable(value.params[0].start, \"Setter cannot use rest params\"); }\n\n return this.finishNode(method, \"MethodDefinition\")\n};\n\npp$8.parseClassField = function(field) {\n if (checkKeyName(field, \"constructor\")) {\n this.raise(field.key.start, \"Classes can't have a field named 'constructor'\");\n } else if (field.static && checkKeyName(field, \"prototype\")) {\n this.raise(field.key.start, \"Classes can't have a static field named 'prototype'\");\n }\n\n if (this.eat(types$1.eq)) {\n // To raise SyntaxError if 'arguments' exists in the initializer.\n this.enterScope(SCOPE_CLASS_FIELD_INIT | SCOPE_SUPER);\n field.value = this.parseMaybeAssign();\n this.exitScope();\n } else {\n field.value = null;\n }\n this.semicolon();\n\n return this.finishNode(field, \"PropertyDefinition\")\n};\n\npp$8.parseClassStaticBlock = function(node) {\n node.body = [];\n\n var oldLabels = this.labels;\n this.labels = [];\n this.enterScope(SCOPE_CLASS_STATIC_BLOCK | SCOPE_SUPER);\n while (this.type !== types$1.braceR) {\n var stmt = this.parseStatement(null);\n node.body.push(stmt);\n }\n this.next();\n this.exitScope();\n this.labels = oldLabels;\n\n return this.finishNode(node, \"StaticBlock\")\n};\n\npp$8.parseClassId = function(node, isStatement) {\n if (this.type === types$1.name) {\n node.id = this.parseIdent();\n if (isStatement)\n { this.checkLValSimple(node.id, BIND_LEXICAL, false); }\n } else {\n if (isStatement === true)\n { this.unexpected(); }\n node.id = null;\n }\n};\n\npp$8.parseClassSuper = function(node) {\n node.superClass = this.eat(types$1._extends) ? this.parseExprSubscripts(null, false) : null;\n};\n\npp$8.enterClassBody = function() {\n var element = {declared: Object.create(null), used: []};\n this.privateNameStack.push(element);\n return element.declared\n};\n\npp$8.exitClassBody = function() {\n var ref = this.privateNameStack.pop();\n var declared = ref.declared;\n var used = ref.used;\n if (!this.options.checkPrivateFields) { return }\n var len = this.privateNameStack.length;\n var parent = len === 0 ? null : this.privateNameStack[len - 1];\n for (var i = 0; i < used.length; ++i) {\n var id = used[i];\n if (!hasOwn(declared, id.name)) {\n if (parent) {\n parent.used.push(id);\n } else {\n this.raiseRecoverable(id.start, (\"Private field '#\" + (id.name) + \"' must be declared in an enclosing class\"));\n }\n }\n }\n};\n\nfunction isPrivateNameConflicted(privateNameMap, element) {\n var name = element.key.name;\n var curr = privateNameMap[name];\n\n var next = \"true\";\n if (element.type === \"MethodDefinition\" && (element.kind === \"get\" || element.kind === \"set\")) {\n next = (element.static ? \"s\" : \"i\") + element.kind;\n }\n\n // `class { get #a(){}; static set #a(_){} }` is also conflict.\n if (\n curr === \"iget\" && next === \"iset\" ||\n curr === \"iset\" && next === \"iget\" ||\n curr === \"sget\" && next === \"sset\" ||\n curr === \"sset\" && next === \"sget\"\n ) {\n privateNameMap[name] = \"true\";\n return false\n } else if (!curr) {\n privateNameMap[name] = next;\n return false\n } else {\n return true\n }\n}\n\nfunction checkKeyName(node, name) {\n var computed = node.computed;\n var key = node.key;\n return !computed && (\n key.type === \"Identifier\" && key.name === name ||\n key.type === \"Literal\" && key.value === name\n )\n}\n\n// Parses module export declaration.\n\npp$8.parseExportAllDeclaration = function(node, exports) {\n if (this.options.ecmaVersion >= 11) {\n if (this.eatContextual(\"as\")) {\n node.exported = this.parseModuleExportName();\n this.checkExport(exports, node.exported, this.lastTokStart);\n } else {\n node.exported = null;\n }\n }\n this.expectContextual(\"from\");\n if (this.type !== types$1.string) { this.unexpected(); }\n node.source = this.parseExprAtom();\n if (this.options.ecmaVersion >= 16)\n { node.attributes = this.parseWithClause(); }\n this.semicolon();\n return this.finishNode(node, \"ExportAllDeclaration\")\n};\n\npp$8.parseExport = function(node, exports) {\n this.next();\n // export * from '...'\n if (this.eat(types$1.star)) {\n return this.parseExportAllDeclaration(node, exports)\n }\n if (this.eat(types$1._default)) { // export default ...\n this.checkExport(exports, \"default\", this.lastTokStart);\n node.declaration = this.parseExportDefaultDeclaration();\n return this.finishNode(node, \"ExportDefaultDeclaration\")\n }\n // export var|const|let|function|class ...\n if (this.shouldParseExportStatement()) {\n node.declaration = this.parseExportDeclaration(node);\n if (node.declaration.type === \"VariableDeclaration\")\n { this.checkVariableExport(exports, node.declaration.declarations); }\n else\n { this.checkExport(exports, node.declaration.id, node.declaration.id.start); }\n node.specifiers = [];\n node.source = null;\n if (this.options.ecmaVersion >= 16)\n { node.attributes = []; }\n } else { // export { x, y as z } [from '...']\n node.declaration = null;\n node.specifiers = this.parseExportSpecifiers(exports);\n if (this.eatContextual(\"from\")) {\n if (this.type !== types$1.string) { this.unexpected(); }\n node.source = this.parseExprAtom();\n if (this.options.ecmaVersion >= 16)\n { node.attributes = this.parseWithClause(); }\n } else {\n for (var i = 0, list = node.specifiers; i < list.length; i += 1) {\n // check for keywords used as local names\n var spec = list[i];\n\n this.checkUnreserved(spec.local);\n // check if export is defined\n this.checkLocalExport(spec.local);\n\n if (spec.local.type === \"Literal\") {\n this.raise(spec.local.start, \"A string literal cannot be used as an exported binding without `from`.\");\n }\n }\n\n node.source = null;\n if (this.options.ecmaVersion >= 16)\n { node.attributes = []; }\n }\n this.semicolon();\n }\n return this.finishNode(node, \"ExportNamedDeclaration\")\n};\n\npp$8.parseExportDeclaration = function(node) {\n return this.parseStatement(null)\n};\n\npp$8.parseExportDefaultDeclaration = function() {\n var isAsync;\n if (this.type === types$1._function || (isAsync = this.isAsyncFunction())) {\n var fNode = this.startNode();\n this.next();\n if (isAsync) { this.next(); }\n return this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync)\n } else if (this.type === types$1._class) {\n var cNode = this.startNode();\n return this.parseClass(cNode, \"nullableID\")\n } else {\n var declaration = this.parseMaybeAssign();\n this.semicolon();\n return declaration\n }\n};\n\npp$8.checkExport = function(exports, name, pos) {\n if (!exports) { return }\n if (typeof name !== \"string\")\n { name = name.type === \"Identifier\" ? name.name : name.value; }\n if (hasOwn(exports, name))\n { this.raiseRecoverable(pos, \"Duplicate export '\" + name + \"'\"); }\n exports[name] = true;\n};\n\npp$8.checkPatternExport = function(exports, pat) {\n var type = pat.type;\n if (type === \"Identifier\")\n { this.checkExport(exports, pat, pat.start); }\n else if (type === \"ObjectPattern\")\n { for (var i = 0, list = pat.properties; i < list.length; i += 1)\n {\n var prop = list[i];\n\n this.checkPatternExport(exports, prop);\n } }\n else if (type === \"ArrayPattern\")\n { for (var i$1 = 0, list$1 = pat.elements; i$1 < list$1.length; i$1 += 1) {\n var elt = list$1[i$1];\n\n if (elt) { this.checkPatternExport(exports, elt); }\n } }\n else if (type === \"Property\")\n { this.checkPatternExport(exports, pat.value); }\n else if (type === \"AssignmentPattern\")\n { this.checkPatternExport(exports, pat.left); }\n else if (type === \"RestElement\")\n { this.checkPatternExport(exports, pat.argument); }\n};\n\npp$8.checkVariableExport = function(exports, decls) {\n if (!exports) { return }\n for (var i = 0, list = decls; i < list.length; i += 1)\n {\n var decl = list[i];\n\n this.checkPatternExport(exports, decl.id);\n }\n};\n\npp$8.shouldParseExportStatement = function() {\n return this.type.keyword === \"var\" ||\n this.type.keyword === \"const\" ||\n this.type.keyword === \"class\" ||\n this.type.keyword === \"function\" ||\n this.isLet() ||\n this.isAsyncFunction()\n};\n\n// Parses a comma-separated list of module exports.\n\npp$8.parseExportSpecifier = function(exports) {\n var node = this.startNode();\n node.local = this.parseModuleExportName();\n\n node.exported = this.eatContextual(\"as\") ? this.parseModuleExportName() : node.local;\n this.checkExport(\n exports,\n node.exported,\n node.exported.start\n );\n\n return this.finishNode(node, \"ExportSpecifier\")\n};\n\npp$8.parseExportSpecifiers = function(exports) {\n var nodes = [], first = true;\n // export { x, y as z } [from '...']\n this.expect(types$1.braceL);\n while (!this.eat(types$1.braceR)) {\n if (!first) {\n this.expect(types$1.comma);\n if (this.afterTrailingComma(types$1.braceR)) { break }\n } else { first = false; }\n\n nodes.push(this.parseExportSpecifier(exports));\n }\n return nodes\n};\n\n// Parses import declaration.\n\npp$8.parseImport = function(node) {\n this.next();\n\n // import '...'\n if (this.type === types$1.string) {\n node.specifiers = empty$1;\n node.source = this.parseExprAtom();\n } else {\n node.specifiers = this.parseImportSpecifiers();\n this.expectContextual(\"from\");\n node.source = this.type === types$1.string ? this.parseExprAtom() : this.unexpected();\n }\n if (this.options.ecmaVersion >= 16)\n { node.attributes = this.parseWithClause(); }\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\")\n};\n\n// Parses a comma-separated list of module imports.\n\npp$8.parseImportSpecifier = function() {\n var node = this.startNode();\n node.imported = this.parseModuleExportName();\n\n if (this.eatContextual(\"as\")) {\n node.local = this.parseIdent();\n } else {\n this.checkUnreserved(node.imported);\n node.local = node.imported;\n }\n this.checkLValSimple(node.local, BIND_LEXICAL);\n\n return this.finishNode(node, \"ImportSpecifier\")\n};\n\npp$8.parseImportDefaultSpecifier = function() {\n // import defaultObj, { x, y as z } from '...'\n var node = this.startNode();\n node.local = this.parseIdent();\n this.checkLValSimple(node.local, BIND_LEXICAL);\n return this.finishNode(node, \"ImportDefaultSpecifier\")\n};\n\npp$8.parseImportNamespaceSpecifier = function() {\n var node = this.startNode();\n this.next();\n this.expectContextual(\"as\");\n node.local = this.parseIdent();\n this.checkLValSimple(node.local, BIND_LEXICAL);\n return this.finishNode(node, \"ImportNamespaceSpecifier\")\n};\n\npp$8.parseImportSpecifiers = function() {\n var nodes = [], first = true;\n if (this.type === types$1.name) {\n nodes.push(this.parseImportDefaultSpecifier());\n if (!this.eat(types$1.comma)) { return nodes }\n }\n if (this.type === types$1.star) {\n nodes.push(this.parseImportNamespaceSpecifier());\n return nodes\n }\n this.expect(types$1.braceL);\n while (!this.eat(types$1.braceR)) {\n if (!first) {\n this.expect(types$1.comma);\n if (this.afterTrailingComma(types$1.braceR)) { break }\n } else { first = false; }\n\n nodes.push(this.parseImportSpecifier());\n }\n return nodes\n};\n\npp$8.parseWithClause = function() {\n var nodes = [];\n if (!this.eat(types$1._with)) {\n return nodes\n }\n this.expect(types$1.braceL);\n var attributeKeys = {};\n var first = true;\n while (!this.eat(types$1.braceR)) {\n if (!first) {\n this.expect(types$1.comma);\n if (this.afterTrailingComma(types$1.braceR)) { break }\n } else { first = false; }\n\n var attr = this.parseImportAttribute();\n var keyName = attr.key.type === \"Identifier\" ? attr.key.name : attr.key.value;\n if (hasOwn(attributeKeys, keyName))\n { this.raiseRecoverable(attr.key.start, \"Duplicate attribute key '\" + keyName + \"'\"); }\n attributeKeys[keyName] = true;\n nodes.push(attr);\n }\n return nodes\n};\n\npp$8.parseImportAttribute = function() {\n var node = this.startNode();\n node.key = this.type === types$1.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== \"never\");\n this.expect(types$1.colon);\n if (this.type !== types$1.string) {\n this.unexpected();\n }\n node.value = this.parseExprAtom();\n return this.finishNode(node, \"ImportAttribute\")\n};\n\npp$8.parseModuleExportName = function() {\n if (this.options.ecmaVersion >= 13 && this.type === types$1.string) {\n var stringLiteral = this.parseLiteral(this.value);\n if (loneSurrogate.test(stringLiteral.value)) {\n this.raise(stringLiteral.start, \"An export name cannot include a lone surrogate.\");\n }\n return stringLiteral\n }\n return this.parseIdent(true)\n};\n\n// Set `ExpressionStatement#directive` property for directive prologues.\npp$8.adaptDirectivePrologue = function(statements) {\n for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) {\n statements[i].directive = statements[i].expression.raw.slice(1, -1);\n }\n};\npp$8.isDirectiveCandidate = function(statement) {\n return (\n this.options.ecmaVersion >= 5 &&\n statement.type === \"ExpressionStatement\" &&\n statement.expression.type === \"Literal\" &&\n typeof statement.expression.value === \"string\" &&\n // Reject parenthesized strings.\n (this.input[statement.start] === \"\\\"\" || this.input[statement.start] === \"'\")\n )\n};\n\nvar pp$7 = Parser.prototype;\n\n// Convert existing expression atom to assignable pattern\n// if possible.\n\npp$7.toAssignable = function(node, isBinding, refDestructuringErrors) {\n if (this.options.ecmaVersion >= 6 && node) {\n switch (node.type) {\n case \"Identifier\":\n if (this.inAsync && node.name === \"await\")\n { this.raise(node.start, \"Cannot use 'await' as identifier inside an async function\"); }\n break\n\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n case \"AssignmentPattern\":\n case \"RestElement\":\n break\n\n case \"ObjectExpression\":\n node.type = \"ObjectPattern\";\n if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n for (var i = 0, list = node.properties; i < list.length; i += 1) {\n var prop = list[i];\n\n this.toAssignable(prop, isBinding);\n // Early error:\n // AssignmentRestProperty[Yield, Await] :\n // `...` DestructuringAssignmentTarget[Yield, Await]\n //\n // It is a Syntax Error if |DestructuringAssignmentTarget| is an |ArrayLiteral| or an |ObjectLiteral|.\n if (\n prop.type === \"RestElement\" &&\n (prop.argument.type === \"ArrayPattern\" || prop.argument.type === \"ObjectPattern\")\n ) {\n this.raise(prop.argument.start, \"Unexpected token\");\n }\n }\n break\n\n case \"Property\":\n // AssignmentProperty has type === \"Property\"\n if (node.kind !== \"init\") { this.raise(node.key.start, \"Object pattern can't contain getter or setter\"); }\n this.toAssignable(node.value, isBinding);\n break\n\n case \"ArrayExpression\":\n node.type = \"ArrayPattern\";\n if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n this.toAssignableList(node.elements, isBinding);\n break\n\n case \"SpreadElement\":\n node.type = \"RestElement\";\n this.toAssignable(node.argument, isBinding);\n if (node.argument.type === \"AssignmentPattern\")\n { this.raise(node.argument.start, \"Rest elements cannot have a default value\"); }\n break\n\n case \"AssignmentExpression\":\n if (node.operator !== \"=\") { this.raise(node.left.end, \"Only '=' operator can be used for specifying default value.\"); }\n node.type = \"AssignmentPattern\";\n delete node.operator;\n this.toAssignable(node.left, isBinding);\n break\n\n case \"ParenthesizedExpression\":\n this.toAssignable(node.expression, isBinding, refDestructuringErrors);\n break\n\n case \"ChainExpression\":\n this.raiseRecoverable(node.start, \"Optional chaining cannot appear in left-hand side\");\n break\n\n case \"MemberExpression\":\n if (!isBinding) { break }\n\n default:\n this.raise(node.start, \"Assigning to rvalue\");\n }\n } else if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n return node\n};\n\n// Convert list of expression atoms to binding list.\n\npp$7.toAssignableList = function(exprList, isBinding) {\n var end = exprList.length;\n for (var i = 0; i < end; i++) {\n var elt = exprList[i];\n if (elt) { this.toAssignable(elt, isBinding); }\n }\n if (end) {\n var last = exprList[end - 1];\n if (this.options.ecmaVersion === 6 && isBinding && last && last.type === \"RestElement\" && last.argument.type !== \"Identifier\")\n { this.unexpected(last.argument.start); }\n }\n return exprList\n};\n\n// Parses spread element.\n\npp$7.parseSpread = function(refDestructuringErrors) {\n var node = this.startNode();\n this.next();\n node.argument = this.parseMaybeAssign(false, refDestructuringErrors);\n return this.finishNode(node, \"SpreadElement\")\n};\n\npp$7.parseRestBinding = function() {\n var node = this.startNode();\n this.next();\n\n // RestElement inside of a function parameter must be an identifier\n if (this.options.ecmaVersion === 6 && this.type !== types$1.name)\n { this.unexpected(); }\n\n node.argument = this.parseBindingAtom();\n\n return this.finishNode(node, \"RestElement\")\n};\n\n// Parses lvalue (assignable) atom.\n\npp$7.parseBindingAtom = function() {\n if (this.options.ecmaVersion >= 6) {\n switch (this.type) {\n case types$1.bracketL:\n var node = this.startNode();\n this.next();\n node.elements = this.parseBindingList(types$1.bracketR, true, true);\n return this.finishNode(node, \"ArrayPattern\")\n\n case types$1.braceL:\n return this.parseObj(true)\n }\n }\n return this.parseIdent()\n};\n\npp$7.parseBindingList = function(close, allowEmpty, allowTrailingComma, allowModifiers) {\n var elts = [], first = true;\n while (!this.eat(close)) {\n if (first) { first = false; }\n else { this.expect(types$1.comma); }\n if (allowEmpty && this.type === types$1.comma) {\n elts.push(null);\n } else if (allowTrailingComma && this.afterTrailingComma(close)) {\n break\n } else if (this.type === types$1.ellipsis) {\n var rest = this.parseRestBinding();\n this.parseBindingListItem(rest);\n elts.push(rest);\n if (this.type === types$1.comma) { this.raiseRecoverable(this.start, \"Comma is not permitted after the rest element\"); }\n this.expect(close);\n break\n } else {\n elts.push(this.parseAssignableListItem(allowModifiers));\n }\n }\n return elts\n};\n\npp$7.parseAssignableListItem = function(allowModifiers) {\n var elem = this.parseMaybeDefault(this.start, this.startLoc);\n this.parseBindingListItem(elem);\n return elem\n};\n\npp$7.parseBindingListItem = function(param) {\n return param\n};\n\n// Parses assignment pattern around given atom if possible.\n\npp$7.parseMaybeDefault = function(startPos, startLoc, left) {\n left = left || this.parseBindingAtom();\n if (this.options.ecmaVersion < 6 || !this.eat(types$1.eq)) { return left }\n var node = this.startNodeAt(startPos, startLoc);\n node.left = left;\n node.right = this.parseMaybeAssign();\n return this.finishNode(node, \"AssignmentPattern\")\n};\n\n// The following three functions all verify that a node is an lvalue —\n// something that can be bound, or assigned to. In order to do so, they perform\n// a variety of checks:\n//\n// - Check that none of the bound/assigned-to identifiers are reserved words.\n// - Record name declarations for bindings in the appropriate scope.\n// - Check duplicate argument names, if checkClashes is set.\n//\n// If a complex binding pattern is encountered (e.g., object and array\n// destructuring), the entire pattern is recursively checked.\n//\n// There are three versions of checkLVal*() appropriate for different\n// circumstances:\n//\n// - checkLValSimple() shall be used if the syntactic construct supports\n// nothing other than identifiers and member expressions. Parenthesized\n// expressions are also correctly handled. This is generally appropriate for\n// constructs for which the spec says\n//\n// > It is a Syntax Error if AssignmentTargetType of [the production] is not\n// > simple.\n//\n// It is also appropriate for checking if an identifier is valid and not\n// defined elsewhere, like import declarations or function/class identifiers.\n//\n// Examples where this is used include:\n// a += …;\n// import a from '…';\n// where a is the node to be checked.\n//\n// - checkLValPattern() shall be used if the syntactic construct supports\n// anything checkLValSimple() supports, as well as object and array\n// destructuring patterns. This is generally appropriate for constructs for\n// which the spec says\n//\n// > It is a Syntax Error if [the production] is neither an ObjectLiteral nor\n// > an ArrayLiteral and AssignmentTargetType of [the production] is not\n// > simple.\n//\n// Examples where this is used include:\n// (a = …);\n// const a = …;\n// try { … } catch (a) { … }\n// where a is the node to be checked.\n//\n// - checkLValInnerPattern() shall be used if the syntactic construct supports\n// anything checkLValPattern() supports, as well as default assignment\n// patterns, rest elements, and other constructs that may appear within an\n// object or array destructuring pattern.\n//\n// As a special case, function parameters also use checkLValInnerPattern(),\n// as they also support defaults and rest constructs.\n//\n// These functions deliberately support both assignment and binding constructs,\n// as the logic for both is exceedingly similar. If the node is the target of\n// an assignment, then bindingType should be set to BIND_NONE. Otherwise, it\n// should be set to the appropriate BIND_* constant, like BIND_VAR or\n// BIND_LEXICAL.\n//\n// If the function is called with a non-BIND_NONE bindingType, then\n// additionally a checkClashes object may be specified to allow checking for\n// duplicate argument names. checkClashes is ignored if the provided construct\n// is an assignment (i.e., bindingType is BIND_NONE).\n\npp$7.checkLValSimple = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n var isBind = bindingType !== BIND_NONE;\n\n switch (expr.type) {\n case \"Identifier\":\n if (this.strict && this.reservedWordsStrictBind.test(expr.name))\n { this.raiseRecoverable(expr.start, (isBind ? \"Binding \" : \"Assigning to \") + expr.name + \" in strict mode\"); }\n if (isBind) {\n if (bindingType === BIND_LEXICAL && expr.name === \"let\")\n { this.raiseRecoverable(expr.start, \"let is disallowed as a lexically bound name\"); }\n if (checkClashes) {\n if (hasOwn(checkClashes, expr.name))\n { this.raiseRecoverable(expr.start, \"Argument name clash\"); }\n checkClashes[expr.name] = true;\n }\n if (bindingType !== BIND_OUTSIDE) { this.declareName(expr.name, bindingType, expr.start); }\n }\n break\n\n case \"ChainExpression\":\n this.raiseRecoverable(expr.start, \"Optional chaining cannot appear in left-hand side\");\n break\n\n case \"MemberExpression\":\n if (isBind) { this.raiseRecoverable(expr.start, \"Binding member expression\"); }\n break\n\n case \"ParenthesizedExpression\":\n if (isBind) { this.raiseRecoverable(expr.start, \"Binding parenthesized expression\"); }\n return this.checkLValSimple(expr.expression, bindingType, checkClashes)\n\n default:\n this.raise(expr.start, (isBind ? \"Binding\" : \"Assigning to\") + \" rvalue\");\n }\n};\n\npp$7.checkLValPattern = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n switch (expr.type) {\n case \"ObjectPattern\":\n for (var i = 0, list = expr.properties; i < list.length; i += 1) {\n var prop = list[i];\n\n this.checkLValInnerPattern(prop, bindingType, checkClashes);\n }\n break\n\n case \"ArrayPattern\":\n for (var i$1 = 0, list$1 = expr.elements; i$1 < list$1.length; i$1 += 1) {\n var elem = list$1[i$1];\n\n if (elem) { this.checkLValInnerPattern(elem, bindingType, checkClashes); }\n }\n break\n\n default:\n this.checkLValSimple(expr, bindingType, checkClashes);\n }\n};\n\npp$7.checkLValInnerPattern = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n switch (expr.type) {\n case \"Property\":\n // AssignmentProperty has type === \"Property\"\n this.checkLValInnerPattern(expr.value, bindingType, checkClashes);\n break\n\n case \"AssignmentPattern\":\n this.checkLValPattern(expr.left, bindingType, checkClashes);\n break\n\n case \"RestElement\":\n this.checkLValPattern(expr.argument, bindingType, checkClashes);\n break\n\n default:\n this.checkLValPattern(expr, bindingType, checkClashes);\n }\n};\n\n// The algorithm used to determine whether a regexp can appear at a\n// given point in the program is loosely based on sweet.js' approach.\n// See https://github.com/mozilla/sweet.js/wiki/design\n\n\nvar TokContext = function TokContext(token, isExpr, preserveSpace, override, generator) {\n this.token = token;\n this.isExpr = !!isExpr;\n this.preserveSpace = !!preserveSpace;\n this.override = override;\n this.generator = !!generator;\n};\n\nvar types = {\n b_stat: new TokContext(\"{\", false),\n b_expr: new TokContext(\"{\", true),\n b_tmpl: new TokContext(\"${\", false),\n p_stat: new TokContext(\"(\", false),\n p_expr: new TokContext(\"(\", true),\n q_tmpl: new TokContext(\"`\", true, true, function (p) { return p.tryReadTemplateToken(); }),\n f_stat: new TokContext(\"function\", false),\n f_expr: new TokContext(\"function\", true),\n f_expr_gen: new TokContext(\"function\", true, false, null, true),\n f_gen: new TokContext(\"function\", false, false, null, true)\n};\n\nvar pp$6 = Parser.prototype;\n\npp$6.initialContext = function() {\n return [types.b_stat]\n};\n\npp$6.curContext = function() {\n return this.context[this.context.length - 1]\n};\n\npp$6.braceIsBlock = function(prevType) {\n var parent = this.curContext();\n if (parent === types.f_expr || parent === types.f_stat)\n { return true }\n if (prevType === types$1.colon && (parent === types.b_stat || parent === types.b_expr))\n { return !parent.isExpr }\n\n // The check for `tt.name && exprAllowed` detects whether we are\n // after a `yield` or `of` construct. See the `updateContext` for\n // `tt.name`.\n if (prevType === types$1._return || prevType === types$1.name && this.exprAllowed)\n { return lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) }\n if (prevType === types$1._else || prevType === types$1.semi || prevType === types$1.eof || prevType === types$1.parenR || prevType === types$1.arrow)\n { return true }\n if (prevType === types$1.braceL)\n { return parent === types.b_stat }\n if (prevType === types$1._var || prevType === types$1._const || prevType === types$1.name)\n { return false }\n return !this.exprAllowed\n};\n\npp$6.inGeneratorContext = function() {\n for (var i = this.context.length - 1; i >= 1; i--) {\n var context = this.context[i];\n if (context.token === \"function\")\n { return context.generator }\n }\n return false\n};\n\npp$6.updateContext = function(prevType) {\n var update, type = this.type;\n if (type.keyword && prevType === types$1.dot)\n { this.exprAllowed = false; }\n else if (update = type.updateContext)\n { update.call(this, prevType); }\n else\n { this.exprAllowed = type.beforeExpr; }\n};\n\n// Used to handle edge cases when token context could not be inferred correctly during tokenization phase\n\npp$6.overrideContext = function(tokenCtx) {\n if (this.curContext() !== tokenCtx) {\n this.context[this.context.length - 1] = tokenCtx;\n }\n};\n\n// Token-specific context update code\n\ntypes$1.parenR.updateContext = types$1.braceR.updateContext = function() {\n if (this.context.length === 1) {\n this.exprAllowed = true;\n return\n }\n var out = this.context.pop();\n if (out === types.b_stat && this.curContext().token === \"function\") {\n out = this.context.pop();\n }\n this.exprAllowed = !out.isExpr;\n};\n\ntypes$1.braceL.updateContext = function(prevType) {\n this.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr);\n this.exprAllowed = true;\n};\n\ntypes$1.dollarBraceL.updateContext = function() {\n this.context.push(types.b_tmpl);\n this.exprAllowed = true;\n};\n\ntypes$1.parenL.updateContext = function(prevType) {\n var statementParens = prevType === types$1._if || prevType === types$1._for || prevType === types$1._with || prevType === types$1._while;\n this.context.push(statementParens ? types.p_stat : types.p_expr);\n this.exprAllowed = true;\n};\n\ntypes$1.incDec.updateContext = function() {\n // tokExprAllowed stays unchanged\n};\n\ntypes$1._function.updateContext = types$1._class.updateContext = function(prevType) {\n if (prevType.beforeExpr && prevType !== types$1._else &&\n !(prevType === types$1.semi && this.curContext() !== types.p_stat) &&\n !(prevType === types$1._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) &&\n !((prevType === types$1.colon || prevType === types$1.braceL) && this.curContext() === types.b_stat))\n { this.context.push(types.f_expr); }\n else\n { this.context.push(types.f_stat); }\n this.exprAllowed = false;\n};\n\ntypes$1.colon.updateContext = function() {\n if (this.curContext().token === \"function\") { this.context.pop(); }\n this.exprAllowed = true;\n};\n\ntypes$1.backQuote.updateContext = function() {\n if (this.curContext() === types.q_tmpl)\n { this.context.pop(); }\n else\n { this.context.push(types.q_tmpl); }\n this.exprAllowed = false;\n};\n\ntypes$1.star.updateContext = function(prevType) {\n if (prevType === types$1._function) {\n var index = this.context.length - 1;\n if (this.context[index] === types.f_expr)\n { this.context[index] = types.f_expr_gen; }\n else\n { this.context[index] = types.f_gen; }\n }\n this.exprAllowed = true;\n};\n\ntypes$1.name.updateContext = function(prevType) {\n var allowed = false;\n if (this.options.ecmaVersion >= 6 && prevType !== types$1.dot) {\n if (this.value === \"of\" && !this.exprAllowed ||\n this.value === \"yield\" && this.inGeneratorContext())\n { allowed = true; }\n }\n this.exprAllowed = allowed;\n};\n\n// A recursive descent parser operates by defining functions for all\n// syntactic elements, and recursively calling those, each function\n// advancing the input stream and returning an AST node. Precedence\n// of constructs (for example, the fact that `!x[1]` means `!(x[1])`\n// instead of `(!x)[1]` is handled by the fact that the parser\n// function that parses unary prefix operators is called first, and\n// in turn calls the function that parses `[]` subscripts — that\n// way, it'll receive the node for `x[1]` already parsed, and wraps\n// *that* in the unary operator node.\n//\n// Acorn uses an [operator precedence parser][opp] to handle binary\n// operator precedence, because it is much more compact than using\n// the technique outlined above, which uses different, nesting\n// functions to specify precedence, for all of the ten binary\n// precedence levels that JavaScript defines.\n//\n// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser\n\n\nvar pp$5 = Parser.prototype;\n\n// Check if property name clashes with already added.\n// Object/class getters and setters are not allowed to clash —\n// either with each other or with an init property — and in\n// strict mode, init properties are also not allowed to be repeated.\n\npp$5.checkPropClash = function(prop, propHash, refDestructuringErrors) {\n if (this.options.ecmaVersion >= 9 && prop.type === \"SpreadElement\")\n { return }\n if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand))\n { return }\n var key = prop.key;\n var name;\n switch (key.type) {\n case \"Identifier\": name = key.name; break\n case \"Literal\": name = String(key.value); break\n default: return\n }\n var kind = prop.kind;\n if (this.options.ecmaVersion >= 6) {\n if (name === \"__proto__\" && kind === \"init\") {\n if (propHash.proto) {\n if (refDestructuringErrors) {\n if (refDestructuringErrors.doubleProto < 0) {\n refDestructuringErrors.doubleProto = key.start;\n }\n } else {\n this.raiseRecoverable(key.start, \"Redefinition of __proto__ property\");\n }\n }\n propHash.proto = true;\n }\n return\n }\n name = \"$\" + name;\n var other = propHash[name];\n if (other) {\n var redefinition;\n if (kind === \"init\") {\n redefinition = this.strict && other.init || other.get || other.set;\n } else {\n redefinition = other.init || other[kind];\n }\n if (redefinition)\n { this.raiseRecoverable(key.start, \"Redefinition of property\"); }\n } else {\n other = propHash[name] = {\n init: false,\n get: false,\n set: false\n };\n }\n other[kind] = true;\n};\n\n// ### Expression parsing\n\n// These nest, from the most general expression type at the top to\n// 'atomic', nondivisible expression types at the bottom. Most of\n// the functions will simply let the function(s) below them parse,\n// and, *if* the syntactic construct they handle is present, wrap\n// the AST node that the inner parser gave them in another node.\n\n// Parse a full expression. The optional arguments are used to\n// forbid the `in` operator (in for loops initalization expressions)\n// and provide reference for storing '=' operator inside shorthand\n// property assignment in contexts where both object expression\n// and object pattern might appear (so it's possible to raise\n// delayed syntax error at correct position).\n\npp$5.parseExpression = function(forInit, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseMaybeAssign(forInit, refDestructuringErrors);\n if (this.type === types$1.comma) {\n var node = this.startNodeAt(startPos, startLoc);\n node.expressions = [expr];\n while (this.eat(types$1.comma)) { node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors)); }\n return this.finishNode(node, \"SequenceExpression\")\n }\n return expr\n};\n\n// Parse an assignment expression. This includes applications of\n// operators like `+=`.\n\npp$5.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse) {\n if (this.isContextual(\"yield\")) {\n if (this.inGenerator) { return this.parseYield(forInit) }\n // The tokenizer will assume an expression is allowed after\n // `yield`, but this isn't that kind of yield\n else { this.exprAllowed = false; }\n }\n\n var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1, oldDoubleProto = -1;\n if (refDestructuringErrors) {\n oldParenAssign = refDestructuringErrors.parenthesizedAssign;\n oldTrailingComma = refDestructuringErrors.trailingComma;\n oldDoubleProto = refDestructuringErrors.doubleProto;\n refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = -1;\n } else {\n refDestructuringErrors = new DestructuringErrors;\n ownDestructuringErrors = true;\n }\n\n var startPos = this.start, startLoc = this.startLoc;\n if (this.type === types$1.parenL || this.type === types$1.name) {\n this.potentialArrowAt = this.start;\n this.potentialArrowInForAwait = forInit === \"await\";\n }\n var left = this.parseMaybeConditional(forInit, refDestructuringErrors);\n if (afterLeftParse) { left = afterLeftParse.call(this, left, startPos, startLoc); }\n if (this.type.isAssign) {\n var node = this.startNodeAt(startPos, startLoc);\n node.operator = this.value;\n if (this.type === types$1.eq)\n { left = this.toAssignable(left, false, refDestructuringErrors); }\n if (!ownDestructuringErrors) {\n refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.doubleProto = -1;\n }\n if (refDestructuringErrors.shorthandAssign >= left.start)\n { refDestructuringErrors.shorthandAssign = -1; } // reset because shorthand default was used correctly\n if (this.type === types$1.eq)\n { this.checkLValPattern(left); }\n else\n { this.checkLValSimple(left); }\n node.left = left;\n this.next();\n node.right = this.parseMaybeAssign(forInit);\n if (oldDoubleProto > -1) { refDestructuringErrors.doubleProto = oldDoubleProto; }\n return this.finishNode(node, \"AssignmentExpression\")\n } else {\n if (ownDestructuringErrors) { this.checkExpressionErrors(refDestructuringErrors, true); }\n }\n if (oldParenAssign > -1) { refDestructuringErrors.parenthesizedAssign = oldParenAssign; }\n if (oldTrailingComma > -1) { refDestructuringErrors.trailingComma = oldTrailingComma; }\n return left\n};\n\n// Parse a ternary conditional (`?:`) operator.\n\npp$5.parseMaybeConditional = function(forInit, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseExprOps(forInit, refDestructuringErrors);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n if (this.eat(types$1.question)) {\n var node = this.startNodeAt(startPos, startLoc);\n node.test = expr;\n node.consequent = this.parseMaybeAssign();\n this.expect(types$1.colon);\n node.alternate = this.parseMaybeAssign(forInit);\n return this.finishNode(node, \"ConditionalExpression\")\n }\n return expr\n};\n\n// Start the precedence parser.\n\npp$5.parseExprOps = function(forInit, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseMaybeUnary(refDestructuringErrors, false, false, forInit);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n return expr.start === startPos && expr.type === \"ArrowFunctionExpression\" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, forInit)\n};\n\n// Parse binary operators with the operator precedence parsing\n// algorithm. `left` is the left-hand side of the operator.\n// `minPrec` provides context that allows the function to stop and\n// defer further parser to one of its callers when it encounters an\n// operator that has a lower precedence than the set it is parsing.\n\npp$5.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, forInit) {\n var prec = this.type.binop;\n if (prec != null && (!forInit || this.type !== types$1._in)) {\n if (prec > minPrec) {\n var logical = this.type === types$1.logicalOR || this.type === types$1.logicalAND;\n var coalesce = this.type === types$1.coalesce;\n if (coalesce) {\n // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions.\n // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error.\n prec = types$1.logicalAND.binop;\n }\n var op = this.value;\n this.next();\n var startPos = this.start, startLoc = this.startLoc;\n var right = this.parseExprOp(this.parseMaybeUnary(null, false, false, forInit), startPos, startLoc, prec, forInit);\n var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical || coalesce);\n if ((logical && this.type === types$1.coalesce) || (coalesce && (this.type === types$1.logicalOR || this.type === types$1.logicalAND))) {\n this.raiseRecoverable(this.start, \"Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses\");\n }\n return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, forInit)\n }\n }\n return left\n};\n\npp$5.buildBinary = function(startPos, startLoc, left, right, op, logical) {\n if (right.type === \"PrivateIdentifier\") { this.raise(right.start, \"Private identifier can only be left side of binary expression\"); }\n var node = this.startNodeAt(startPos, startLoc);\n node.left = left;\n node.operator = op;\n node.right = right;\n return this.finishNode(node, logical ? \"LogicalExpression\" : \"BinaryExpression\")\n};\n\n// Parse unary operators, both prefix and postfix.\n\npp$5.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec, forInit) {\n var startPos = this.start, startLoc = this.startLoc, expr;\n if (this.isContextual(\"await\") && this.canAwait) {\n expr = this.parseAwait(forInit);\n sawUnary = true;\n } else if (this.type.prefix) {\n var node = this.startNode(), update = this.type === types$1.incDec;\n node.operator = this.value;\n node.prefix = true;\n this.next();\n node.argument = this.parseMaybeUnary(null, true, update, forInit);\n this.checkExpressionErrors(refDestructuringErrors, true);\n if (update) { this.checkLValSimple(node.argument); }\n else if (this.strict && node.operator === \"delete\" && isLocalVariableAccess(node.argument))\n { this.raiseRecoverable(node.start, \"Deleting local variable in strict mode\"); }\n else if (node.operator === \"delete\" && isPrivateFieldAccess(node.argument))\n { this.raiseRecoverable(node.start, \"Private fields can not be deleted\"); }\n else { sawUnary = true; }\n expr = this.finishNode(node, update ? \"UpdateExpression\" : \"UnaryExpression\");\n } else if (!sawUnary && this.type === types$1.privateId) {\n if ((forInit || this.privateNameStack.length === 0) && this.options.checkPrivateFields) { this.unexpected(); }\n expr = this.parsePrivateIdent();\n // only could be private fields in 'in', such as #x in obj\n if (this.type !== types$1._in) { this.unexpected(); }\n } else {\n expr = this.parseExprSubscripts(refDestructuringErrors, forInit);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n while (this.type.postfix && !this.canInsertSemicolon()) {\n var node$1 = this.startNodeAt(startPos, startLoc);\n node$1.operator = this.value;\n node$1.prefix = false;\n node$1.argument = expr;\n this.checkLValSimple(expr);\n this.next();\n expr = this.finishNode(node$1, \"UpdateExpression\");\n }\n }\n\n if (!incDec && this.eat(types$1.starstar)) {\n if (sawUnary)\n { this.unexpected(this.lastTokStart); }\n else\n { return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false, false, forInit), \"**\", false) }\n } else {\n return expr\n }\n};\n\nfunction isLocalVariableAccess(node) {\n return (\n node.type === \"Identifier\" ||\n node.type === \"ParenthesizedExpression\" && isLocalVariableAccess(node.expression)\n )\n}\n\nfunction isPrivateFieldAccess(node) {\n return (\n node.type === \"MemberExpression\" && node.property.type === \"PrivateIdentifier\" ||\n node.type === \"ChainExpression\" && isPrivateFieldAccess(node.expression) ||\n node.type === \"ParenthesizedExpression\" && isPrivateFieldAccess(node.expression)\n )\n}\n\n// Parse call, dot, and `[]`-subscript expressions.\n\npp$5.parseExprSubscripts = function(refDestructuringErrors, forInit) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseExprAtom(refDestructuringErrors, forInit);\n if (expr.type === \"ArrowFunctionExpression\" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== \")\")\n { return expr }\n var result = this.parseSubscripts(expr, startPos, startLoc, false, forInit);\n if (refDestructuringErrors && result.type === \"MemberExpression\") {\n if (refDestructuringErrors.parenthesizedAssign >= result.start) { refDestructuringErrors.parenthesizedAssign = -1; }\n if (refDestructuringErrors.parenthesizedBind >= result.start) { refDestructuringErrors.parenthesizedBind = -1; }\n if (refDestructuringErrors.trailingComma >= result.start) { refDestructuringErrors.trailingComma = -1; }\n }\n return result\n};\n\npp$5.parseSubscripts = function(base, startPos, startLoc, noCalls, forInit) {\n var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === \"Identifier\" && base.name === \"async\" &&\n this.lastTokEnd === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 &&\n this.potentialArrowAt === base.start;\n var optionalChained = false;\n\n while (true) {\n var element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit);\n\n if (element.optional) { optionalChained = true; }\n if (element === base || element.type === \"ArrowFunctionExpression\") {\n if (optionalChained) {\n var chainNode = this.startNodeAt(startPos, startLoc);\n chainNode.expression = element;\n element = this.finishNode(chainNode, \"ChainExpression\");\n }\n return element\n }\n\n base = element;\n }\n};\n\npp$5.shouldParseAsyncArrow = function() {\n return !this.canInsertSemicolon() && this.eat(types$1.arrow)\n};\n\npp$5.parseSubscriptAsyncArrow = function(startPos, startLoc, exprList, forInit) {\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true, forInit)\n};\n\npp$5.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit) {\n var optionalSupported = this.options.ecmaVersion >= 11;\n var optional = optionalSupported && this.eat(types$1.questionDot);\n if (noCalls && optional) { this.raise(this.lastTokStart, \"Optional chaining cannot appear in the callee of new expressions\"); }\n\n var computed = this.eat(types$1.bracketL);\n if (computed || (optional && this.type !== types$1.parenL && this.type !== types$1.backQuote) || this.eat(types$1.dot)) {\n var node = this.startNodeAt(startPos, startLoc);\n node.object = base;\n if (computed) {\n node.property = this.parseExpression();\n this.expect(types$1.bracketR);\n } else if (this.type === types$1.privateId && base.type !== \"Super\") {\n node.property = this.parsePrivateIdent();\n } else {\n node.property = this.parseIdent(this.options.allowReserved !== \"never\");\n }\n node.computed = !!computed;\n if (optionalSupported) {\n node.optional = optional;\n }\n base = this.finishNode(node, \"MemberExpression\");\n } else if (!noCalls && this.eat(types$1.parenL)) {\n var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n var exprList = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors);\n if (maybeAsyncArrow && !optional && this.shouldParseAsyncArrow()) {\n this.checkPatternErrors(refDestructuringErrors, false);\n this.checkYieldAwaitInDefaultParams();\n if (this.awaitIdentPos > 0)\n { this.raise(this.awaitIdentPos, \"Cannot use 'await' as identifier inside an async function\"); }\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.parseSubscriptAsyncArrow(startPos, startLoc, exprList, forInit)\n }\n this.checkExpressionErrors(refDestructuringErrors, true);\n this.yieldPos = oldYieldPos || this.yieldPos;\n this.awaitPos = oldAwaitPos || this.awaitPos;\n this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos;\n var node$1 = this.startNodeAt(startPos, startLoc);\n node$1.callee = base;\n node$1.arguments = exprList;\n if (optionalSupported) {\n node$1.optional = optional;\n }\n base = this.finishNode(node$1, \"CallExpression\");\n } else if (this.type === types$1.backQuote) {\n if (optional || optionalChained) {\n this.raise(this.start, \"Optional chaining cannot appear in the tag of tagged template expressions\");\n }\n var node$2 = this.startNodeAt(startPos, startLoc);\n node$2.tag = base;\n node$2.quasi = this.parseTemplate({isTagged: true});\n base = this.finishNode(node$2, \"TaggedTemplateExpression\");\n }\n return base\n};\n\n// Parse an atomic expression — either a single token that is an\n// expression, an expression started by a keyword like `function` or\n// `new`, or an expression wrapped in punctuation like `()`, `[]`,\n// or `{}`.\n\npp$5.parseExprAtom = function(refDestructuringErrors, forInit, forNew) {\n // If a division operator appears in an expression position, the\n // tokenizer got confused, and we force it to read a regexp instead.\n if (this.type === types$1.slash) { this.readRegexp(); }\n\n var node, canBeArrow = this.potentialArrowAt === this.start;\n switch (this.type) {\n case types$1._super:\n if (!this.allowSuper)\n { this.raise(this.start, \"'super' keyword outside a method\"); }\n node = this.startNode();\n this.next();\n if (this.type === types$1.parenL && !this.allowDirectSuper)\n { this.raise(node.start, \"super() call outside constructor of a subclass\"); }\n // The `super` keyword can appear at below:\n // SuperProperty:\n // super [ Expression ]\n // super . IdentifierName\n // SuperCall:\n // super ( Arguments )\n if (this.type !== types$1.dot && this.type !== types$1.bracketL && this.type !== types$1.parenL)\n { this.unexpected(); }\n return this.finishNode(node, \"Super\")\n\n case types$1._this:\n node = this.startNode();\n this.next();\n return this.finishNode(node, \"ThisExpression\")\n\n case types$1.name:\n var startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc;\n var id = this.parseIdent(false);\n if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === \"async\" && !this.canInsertSemicolon() && this.eat(types$1._function)) {\n this.overrideContext(types.f_expr);\n return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true, forInit)\n }\n if (canBeArrow && !this.canInsertSemicolon()) {\n if (this.eat(types$1.arrow))\n { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false, forInit) }\n if (this.options.ecmaVersion >= 8 && id.name === \"async\" && this.type === types$1.name && !containsEsc &&\n (!this.potentialArrowInForAwait || this.value !== \"of\" || this.containsEsc)) {\n id = this.parseIdent(false);\n if (this.canInsertSemicolon() || !this.eat(types$1.arrow))\n { this.unexpected(); }\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true, forInit)\n }\n }\n return id\n\n case types$1.regexp:\n var value = this.value;\n node = this.parseLiteral(value.value);\n node.regex = {pattern: value.pattern, flags: value.flags};\n return node\n\n case types$1.num: case types$1.string:\n return this.parseLiteral(this.value)\n\n case types$1._null: case types$1._true: case types$1._false:\n node = this.startNode();\n node.value = this.type === types$1._null ? null : this.type === types$1._true;\n node.raw = this.type.keyword;\n this.next();\n return this.finishNode(node, \"Literal\")\n\n case types$1.parenL:\n var start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow, forInit);\n if (refDestructuringErrors) {\n if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr))\n { refDestructuringErrors.parenthesizedAssign = start; }\n if (refDestructuringErrors.parenthesizedBind < 0)\n { refDestructuringErrors.parenthesizedBind = start; }\n }\n return expr\n\n case types$1.bracketL:\n node = this.startNode();\n this.next();\n node.elements = this.parseExprList(types$1.bracketR, true, true, refDestructuringErrors);\n return this.finishNode(node, \"ArrayExpression\")\n\n case types$1.braceL:\n this.overrideContext(types.b_expr);\n return this.parseObj(false, refDestructuringErrors)\n\n case types$1._function:\n node = this.startNode();\n this.next();\n return this.parseFunction(node, 0)\n\n case types$1._class:\n return this.parseClass(this.startNode(), false)\n\n case types$1._new:\n return this.parseNew()\n\n case types$1.backQuote:\n return this.parseTemplate()\n\n case types$1._import:\n if (this.options.ecmaVersion >= 11) {\n return this.parseExprImport(forNew)\n } else {\n return this.unexpected()\n }\n\n default:\n return this.parseExprAtomDefault()\n }\n};\n\npp$5.parseExprAtomDefault = function() {\n this.unexpected();\n};\n\npp$5.parseExprImport = function(forNew) {\n var node = this.startNode();\n\n // Consume `import` as an identifier for `import.meta`.\n // Because `this.parseIdent(true)` doesn't check escape sequences, it needs the check of `this.containsEsc`.\n if (this.containsEsc) { this.raiseRecoverable(this.start, \"Escape sequence in keyword import\"); }\n this.next();\n\n if (this.type === types$1.parenL && !forNew) {\n return this.parseDynamicImport(node)\n } else if (this.type === types$1.dot) {\n var meta = this.startNodeAt(node.start, node.loc && node.loc.start);\n meta.name = \"import\";\n node.meta = this.finishNode(meta, \"Identifier\");\n return this.parseImportMeta(node)\n } else {\n this.unexpected();\n }\n};\n\npp$5.parseDynamicImport = function(node) {\n this.next(); // skip `(`\n\n // Parse node.source.\n node.source = this.parseMaybeAssign();\n\n if (this.options.ecmaVersion >= 16) {\n if (!this.eat(types$1.parenR)) {\n this.expect(types$1.comma);\n if (!this.afterTrailingComma(types$1.parenR)) {\n node.options = this.parseMaybeAssign();\n if (!this.eat(types$1.parenR)) {\n this.expect(types$1.comma);\n if (!this.afterTrailingComma(types$1.parenR)) {\n this.unexpected();\n }\n }\n } else {\n node.options = null;\n }\n } else {\n node.options = null;\n }\n } else {\n // Verify ending.\n if (!this.eat(types$1.parenR)) {\n var errorPos = this.start;\n if (this.eat(types$1.comma) && this.eat(types$1.parenR)) {\n this.raiseRecoverable(errorPos, \"Trailing comma is not allowed in import()\");\n } else {\n this.unexpected(errorPos);\n }\n }\n }\n\n return this.finishNode(node, \"ImportExpression\")\n};\n\npp$5.parseImportMeta = function(node) {\n this.next(); // skip `.`\n\n var containsEsc = this.containsEsc;\n node.property = this.parseIdent(true);\n\n if (node.property.name !== \"meta\")\n { this.raiseRecoverable(node.property.start, \"The only valid meta property for import is 'import.meta'\"); }\n if (containsEsc)\n { this.raiseRecoverable(node.start, \"'import.meta' must not contain escaped characters\"); }\n if (this.options.sourceType !== \"module\" && !this.options.allowImportExportEverywhere)\n { this.raiseRecoverable(node.start, \"Cannot use 'import.meta' outside a module\"); }\n\n return this.finishNode(node, \"MetaProperty\")\n};\n\npp$5.parseLiteral = function(value) {\n var node = this.startNode();\n node.value = value;\n node.raw = this.input.slice(this.start, this.end);\n if (node.raw.charCodeAt(node.raw.length - 1) === 110)\n { node.bigint = node.value != null ? node.value.toString() : node.raw.slice(0, -1).replace(/_/g, \"\"); }\n this.next();\n return this.finishNode(node, \"Literal\")\n};\n\npp$5.parseParenExpression = function() {\n this.expect(types$1.parenL);\n var val = this.parseExpression();\n this.expect(types$1.parenR);\n return val\n};\n\npp$5.shouldParseArrow = function(exprList) {\n return !this.canInsertSemicolon()\n};\n\npp$5.parseParenAndDistinguishExpression = function(canBeArrow, forInit) {\n var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8;\n if (this.options.ecmaVersion >= 6) {\n this.next();\n\n var innerStartPos = this.start, innerStartLoc = this.startLoc;\n var exprList = [], first = true, lastIsComma = false;\n var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart;\n this.yieldPos = 0;\n this.awaitPos = 0;\n // Do not save awaitIdentPos to allow checking awaits nested in parameters\n while (this.type !== types$1.parenR) {\n first ? first = false : this.expect(types$1.comma);\n if (allowTrailingComma && this.afterTrailingComma(types$1.parenR, true)) {\n lastIsComma = true;\n break\n } else if (this.type === types$1.ellipsis) {\n spreadStart = this.start;\n exprList.push(this.parseParenItem(this.parseRestBinding()));\n if (this.type === types$1.comma) {\n this.raiseRecoverable(\n this.start,\n \"Comma is not permitted after the rest element\"\n );\n }\n break\n } else {\n exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem));\n }\n }\n var innerEndPos = this.lastTokEnd, innerEndLoc = this.lastTokEndLoc;\n this.expect(types$1.parenR);\n\n if (canBeArrow && this.shouldParseArrow(exprList) && this.eat(types$1.arrow)) {\n this.checkPatternErrors(refDestructuringErrors, false);\n this.checkYieldAwaitInDefaultParams();\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n return this.parseParenArrowList(startPos, startLoc, exprList, forInit)\n }\n\n if (!exprList.length || lastIsComma) { this.unexpected(this.lastTokStart); }\n if (spreadStart) { this.unexpected(spreadStart); }\n this.checkExpressionErrors(refDestructuringErrors, true);\n this.yieldPos = oldYieldPos || this.yieldPos;\n this.awaitPos = oldAwaitPos || this.awaitPos;\n\n if (exprList.length > 1) {\n val = this.startNodeAt(innerStartPos, innerStartLoc);\n val.expressions = exprList;\n this.finishNodeAt(val, \"SequenceExpression\", innerEndPos, innerEndLoc);\n } else {\n val = exprList[0];\n }\n } else {\n val = this.parseParenExpression();\n }\n\n if (this.options.preserveParens) {\n var par = this.startNodeAt(startPos, startLoc);\n par.expression = val;\n return this.finishNode(par, \"ParenthesizedExpression\")\n } else {\n return val\n }\n};\n\npp$5.parseParenItem = function(item) {\n return item\n};\n\npp$5.parseParenArrowList = function(startPos, startLoc, exprList, forInit) {\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, false, forInit)\n};\n\n// New's precedence is slightly tricky. It must allow its argument to\n// be a `[]` or dot subscript expression, but not a call — at least,\n// not without wrapping it in parentheses. Thus, it uses the noCalls\n// argument to parseSubscripts to prevent it from consuming the\n// argument list.\n\nvar empty = [];\n\npp$5.parseNew = function() {\n if (this.containsEsc) { this.raiseRecoverable(this.start, \"Escape sequence in keyword new\"); }\n var node = this.startNode();\n this.next();\n if (this.options.ecmaVersion >= 6 && this.type === types$1.dot) {\n var meta = this.startNodeAt(node.start, node.loc && node.loc.start);\n meta.name = \"new\";\n node.meta = this.finishNode(meta, \"Identifier\");\n this.next();\n var containsEsc = this.containsEsc;\n node.property = this.parseIdent(true);\n if (node.property.name !== \"target\")\n { this.raiseRecoverable(node.property.start, \"The only valid meta property for new is 'new.target'\"); }\n if (containsEsc)\n { this.raiseRecoverable(node.start, \"'new.target' must not contain escaped characters\"); }\n if (!this.allowNewDotTarget)\n { this.raiseRecoverable(node.start, \"'new.target' can only be used in functions and class static block\"); }\n return this.finishNode(node, \"MetaProperty\")\n }\n var startPos = this.start, startLoc = this.startLoc;\n node.callee = this.parseSubscripts(this.parseExprAtom(null, false, true), startPos, startLoc, true, false);\n if (this.eat(types$1.parenL)) { node.arguments = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false); }\n else { node.arguments = empty; }\n return this.finishNode(node, \"NewExpression\")\n};\n\n// Parse template expression.\n\npp$5.parseTemplateElement = function(ref) {\n var isTagged = ref.isTagged;\n\n var elem = this.startNode();\n if (this.type === types$1.invalidTemplate) {\n if (!isTagged) {\n this.raiseRecoverable(this.start, \"Bad escape sequence in untagged template literal\");\n }\n elem.value = {\n raw: this.value.replace(/\\r\\n?/g, \"\\n\"),\n cooked: null\n };\n } else {\n elem.value = {\n raw: this.input.slice(this.start, this.end).replace(/\\r\\n?/g, \"\\n\"),\n cooked: this.value\n };\n }\n this.next();\n elem.tail = this.type === types$1.backQuote;\n return this.finishNode(elem, \"TemplateElement\")\n};\n\npp$5.parseTemplate = function(ref) {\n if ( ref === void 0 ) ref = {};\n var isTagged = ref.isTagged; if ( isTagged === void 0 ) isTagged = false;\n\n var node = this.startNode();\n this.next();\n node.expressions = [];\n var curElt = this.parseTemplateElement({isTagged: isTagged});\n node.quasis = [curElt];\n while (!curElt.tail) {\n if (this.type === types$1.eof) { this.raise(this.pos, \"Unterminated template literal\"); }\n this.expect(types$1.dollarBraceL);\n node.expressions.push(this.parseExpression());\n this.expect(types$1.braceR);\n node.quasis.push(curElt = this.parseTemplateElement({isTagged: isTagged}));\n }\n this.next();\n return this.finishNode(node, \"TemplateLiteral\")\n};\n\npp$5.isAsyncProp = function(prop) {\n return !prop.computed && prop.key.type === \"Identifier\" && prop.key.name === \"async\" &&\n (this.type === types$1.name || this.type === types$1.num || this.type === types$1.string || this.type === types$1.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === types$1.star)) &&\n !lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n};\n\n// Parse an object literal or binding pattern.\n\npp$5.parseObj = function(isPattern, refDestructuringErrors) {\n var node = this.startNode(), first = true, propHash = {};\n node.properties = [];\n this.next();\n while (!this.eat(types$1.braceR)) {\n if (!first) {\n this.expect(types$1.comma);\n if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types$1.braceR)) { break }\n } else { first = false; }\n\n var prop = this.parseProperty(isPattern, refDestructuringErrors);\n if (!isPattern) { this.checkPropClash(prop, propHash, refDestructuringErrors); }\n node.properties.push(prop);\n }\n return this.finishNode(node, isPattern ? \"ObjectPattern\" : \"ObjectExpression\")\n};\n\npp$5.parseProperty = function(isPattern, refDestructuringErrors) {\n var prop = this.startNode(), isGenerator, isAsync, startPos, startLoc;\n if (this.options.ecmaVersion >= 9 && this.eat(types$1.ellipsis)) {\n if (isPattern) {\n prop.argument = this.parseIdent(false);\n if (this.type === types$1.comma) {\n this.raiseRecoverable(this.start, \"Comma is not permitted after the rest element\");\n }\n return this.finishNode(prop, \"RestElement\")\n }\n // Parse argument.\n prop.argument = this.parseMaybeAssign(false, refDestructuringErrors);\n // To disallow trailing comma via `this.toAssignable()`.\n if (this.type === types$1.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) {\n refDestructuringErrors.trailingComma = this.start;\n }\n // Finish\n return this.finishNode(prop, \"SpreadElement\")\n }\n if (this.options.ecmaVersion >= 6) {\n prop.method = false;\n prop.shorthand = false;\n if (isPattern || refDestructuringErrors) {\n startPos = this.start;\n startLoc = this.startLoc;\n }\n if (!isPattern)\n { isGenerator = this.eat(types$1.star); }\n }\n var containsEsc = this.containsEsc;\n this.parsePropertyName(prop);\n if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) {\n isAsync = true;\n isGenerator = this.options.ecmaVersion >= 9 && this.eat(types$1.star);\n this.parsePropertyName(prop);\n } else {\n isAsync = false;\n }\n this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc);\n return this.finishNode(prop, \"Property\")\n};\n\npp$5.parseGetterSetter = function(prop) {\n var kind = prop.key.name;\n this.parsePropertyName(prop);\n prop.value = this.parseMethod(false);\n prop.kind = kind;\n var paramCount = prop.kind === \"get\" ? 0 : 1;\n if (prop.value.params.length !== paramCount) {\n var start = prop.value.start;\n if (prop.kind === \"get\")\n { this.raiseRecoverable(start, \"getter should have no params\"); }\n else\n { this.raiseRecoverable(start, \"setter should have exactly one param\"); }\n } else {\n if (prop.kind === \"set\" && prop.value.params[0].type === \"RestElement\")\n { this.raiseRecoverable(prop.value.params[0].start, \"Setter cannot use rest params\"); }\n }\n};\n\npp$5.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) {\n if ((isGenerator || isAsync) && this.type === types$1.colon)\n { this.unexpected(); }\n\n if (this.eat(types$1.colon)) {\n prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors);\n prop.kind = \"init\";\n } else if (this.options.ecmaVersion >= 6 && this.type === types$1.parenL) {\n if (isPattern) { this.unexpected(); }\n prop.method = true;\n prop.value = this.parseMethod(isGenerator, isAsync);\n prop.kind = \"init\";\n } else if (!isPattern && !containsEsc &&\n this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === \"Identifier\" &&\n (prop.key.name === \"get\" || prop.key.name === \"set\") &&\n (this.type !== types$1.comma && this.type !== types$1.braceR && this.type !== types$1.eq)) {\n if (isGenerator || isAsync) { this.unexpected(); }\n this.parseGetterSetter(prop);\n } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === \"Identifier\") {\n if (isGenerator || isAsync) { this.unexpected(); }\n this.checkUnreserved(prop.key);\n if (prop.key.name === \"await\" && !this.awaitIdentPos)\n { this.awaitIdentPos = startPos; }\n if (isPattern) {\n prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));\n } else if (this.type === types$1.eq && refDestructuringErrors) {\n if (refDestructuringErrors.shorthandAssign < 0)\n { refDestructuringErrors.shorthandAssign = this.start; }\n prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));\n } else {\n prop.value = this.copyNode(prop.key);\n }\n prop.kind = \"init\";\n prop.shorthand = true;\n } else { this.unexpected(); }\n};\n\npp$5.parsePropertyName = function(prop) {\n if (this.options.ecmaVersion >= 6) {\n if (this.eat(types$1.bracketL)) {\n prop.computed = true;\n prop.key = this.parseMaybeAssign();\n this.expect(types$1.bracketR);\n return prop.key\n } else {\n prop.computed = false;\n }\n }\n return prop.key = this.type === types$1.num || this.type === types$1.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== \"never\")\n};\n\n// Initialize empty function node.\n\npp$5.initFunction = function(node) {\n node.id = null;\n if (this.options.ecmaVersion >= 6) { node.generator = node.expression = false; }\n if (this.options.ecmaVersion >= 8) { node.async = false; }\n};\n\n// Parse object or class method.\n\npp$5.parseMethod = function(isGenerator, isAsync, allowDirectSuper) {\n var node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n\n this.initFunction(node);\n if (this.options.ecmaVersion >= 6)\n { node.generator = isGenerator; }\n if (this.options.ecmaVersion >= 8)\n { node.async = !!isAsync; }\n\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0));\n\n this.expect(types$1.parenL);\n node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8);\n this.checkYieldAwaitInDefaultParams();\n this.parseFunctionBody(node, false, true, false);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, \"FunctionExpression\")\n};\n\n// Parse arrow function expression with given parameters.\n\npp$5.parseArrowExpression = function(node, params, isAsync, forInit) {\n var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n\n this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW);\n this.initFunction(node);\n if (this.options.ecmaVersion >= 8) { node.async = !!isAsync; }\n\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n\n node.params = this.toAssignableList(params, true);\n this.parseFunctionBody(node, true, false, forInit);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, \"ArrowFunctionExpression\")\n};\n\n// Parse function body and check parameters.\n\npp$5.parseFunctionBody = function(node, isArrowFunction, isMethod, forInit) {\n var isExpression = isArrowFunction && this.type !== types$1.braceL;\n var oldStrict = this.strict, useStrict = false;\n\n if (isExpression) {\n node.body = this.parseMaybeAssign(forInit);\n node.expression = true;\n this.checkParams(node, false);\n } else {\n var nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params);\n if (!oldStrict || nonSimple) {\n useStrict = this.strictDirective(this.end);\n // If this is a strict mode function, verify that argument names\n // are not repeated, and it does not try to bind the words `eval`\n // or `arguments`.\n if (useStrict && nonSimple)\n { this.raiseRecoverable(node.start, \"Illegal 'use strict' directive in function with non-simple parameter list\"); }\n }\n // Start a new scope with regard to labels and the `inFunction`\n // flag (restore them to their old value afterwards).\n var oldLabels = this.labels;\n this.labels = [];\n if (useStrict) { this.strict = true; }\n\n // Add the params to varDeclaredNames to ensure that an error is thrown\n // if a let/const declaration in the function clashes with one of the params.\n this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params));\n // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n if (this.strict && node.id) { this.checkLValSimple(node.id, BIND_OUTSIDE); }\n node.body = this.parseBlock(false, undefined, useStrict && !oldStrict);\n node.expression = false;\n this.adaptDirectivePrologue(node.body.body);\n this.labels = oldLabels;\n }\n this.exitScope();\n};\n\npp$5.isSimpleParamList = function(params) {\n for (var i = 0, list = params; i < list.length; i += 1)\n {\n var param = list[i];\n\n if (param.type !== \"Identifier\") { return false\n } }\n return true\n};\n\n// Checks function params for various disallowed patterns such as using \"eval\"\n// or \"arguments\" and duplicate parameters.\n\npp$5.checkParams = function(node, allowDuplicates) {\n var nameHash = Object.create(null);\n for (var i = 0, list = node.params; i < list.length; i += 1)\n {\n var param = list[i];\n\n this.checkLValInnerPattern(param, BIND_VAR, allowDuplicates ? null : nameHash);\n }\n};\n\n// Parses a comma-separated list of expressions, and returns them as\n// an array. `close` is the token type that ends the list, and\n// `allowEmpty` can be turned on to allow subsequent commas with\n// nothing in between them to be parsed as `null` (which is needed\n// for array literals).\n\npp$5.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {\n var elts = [], first = true;\n while (!this.eat(close)) {\n if (!first) {\n this.expect(types$1.comma);\n if (allowTrailingComma && this.afterTrailingComma(close)) { break }\n } else { first = false; }\n\n var elt = (void 0);\n if (allowEmpty && this.type === types$1.comma)\n { elt = null; }\n else if (this.type === types$1.ellipsis) {\n elt = this.parseSpread(refDestructuringErrors);\n if (refDestructuringErrors && this.type === types$1.comma && refDestructuringErrors.trailingComma < 0)\n { refDestructuringErrors.trailingComma = this.start; }\n } else {\n elt = this.parseMaybeAssign(false, refDestructuringErrors);\n }\n elts.push(elt);\n }\n return elts\n};\n\npp$5.checkUnreserved = function(ref) {\n var start = ref.start;\n var end = ref.end;\n var name = ref.name;\n\n if (this.inGenerator && name === \"yield\")\n { this.raiseRecoverable(start, \"Cannot use 'yield' as identifier inside a generator\"); }\n if (this.inAsync && name === \"await\")\n { this.raiseRecoverable(start, \"Cannot use 'await' as identifier inside an async function\"); }\n if (!(this.currentThisScope().flags & SCOPE_VAR) && name === \"arguments\")\n { this.raiseRecoverable(start, \"Cannot use 'arguments' in class field initializer\"); }\n if (this.inClassStaticBlock && (name === \"arguments\" || name === \"await\"))\n { this.raise(start, (\"Cannot use \" + name + \" in class static initialization block\")); }\n if (this.keywords.test(name))\n { this.raise(start, (\"Unexpected keyword '\" + name + \"'\")); }\n if (this.options.ecmaVersion < 6 &&\n this.input.slice(start, end).indexOf(\"\\\\\") !== -1) { return }\n var re = this.strict ? this.reservedWordsStrict : this.reservedWords;\n if (re.test(name)) {\n if (!this.inAsync && name === \"await\")\n { this.raiseRecoverable(start, \"Cannot use keyword 'await' outside an async function\"); }\n this.raiseRecoverable(start, (\"The keyword '\" + name + \"' is reserved\"));\n }\n};\n\n// Parse the next token as an identifier. If `liberal` is true (used\n// when parsing properties), it will also convert keywords into\n// identifiers.\n\npp$5.parseIdent = function(liberal) {\n var node = this.parseIdentNode();\n this.next(!!liberal);\n this.finishNode(node, \"Identifier\");\n if (!liberal) {\n this.checkUnreserved(node);\n if (node.name === \"await\" && !this.awaitIdentPos)\n { this.awaitIdentPos = node.start; }\n }\n return node\n};\n\npp$5.parseIdentNode = function() {\n var node = this.startNode();\n if (this.type === types$1.name) {\n node.name = this.value;\n } else if (this.type.keyword) {\n node.name = this.type.keyword;\n\n // To fix https://github.com/acornjs/acorn/issues/575\n // `class` and `function` keywords push new context into this.context.\n // But there is no chance to pop the context if the keyword is consumed as an identifier such as a property name.\n // If the previous token is a dot, this does not apply because the context-managing code already ignored the keyword\n if ((node.name === \"class\" || node.name === \"function\") &&\n (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) {\n this.context.pop();\n }\n this.type = types$1.name;\n } else {\n this.unexpected();\n }\n return node\n};\n\npp$5.parsePrivateIdent = function() {\n var node = this.startNode();\n if (this.type === types$1.privateId) {\n node.name = this.value;\n } else {\n this.unexpected();\n }\n this.next();\n this.finishNode(node, \"PrivateIdentifier\");\n\n // For validating existence\n if (this.options.checkPrivateFields) {\n if (this.privateNameStack.length === 0) {\n this.raise(node.start, (\"Private field '#\" + (node.name) + \"' must be declared in an enclosing class\"));\n } else {\n this.privateNameStack[this.privateNameStack.length - 1].used.push(node);\n }\n }\n\n return node\n};\n\n// Parses yield expression inside generator.\n\npp$5.parseYield = function(forInit) {\n if (!this.yieldPos) { this.yieldPos = this.start; }\n\n var node = this.startNode();\n this.next();\n if (this.type === types$1.semi || this.canInsertSemicolon() || (this.type !== types$1.star && !this.type.startsExpr)) {\n node.delegate = false;\n node.argument = null;\n } else {\n node.delegate = this.eat(types$1.star);\n node.argument = this.parseMaybeAssign(forInit);\n }\n return this.finishNode(node, \"YieldExpression\")\n};\n\npp$5.parseAwait = function(forInit) {\n if (!this.awaitPos) { this.awaitPos = this.start; }\n\n var node = this.startNode();\n this.next();\n node.argument = this.parseMaybeUnary(null, true, false, forInit);\n return this.finishNode(node, \"AwaitExpression\")\n};\n\nvar pp$4 = Parser.prototype;\n\n// This function is used to raise exceptions on parse errors. It\n// takes an offset integer (into the current `input`) to indicate\n// the location of the error, attaches the position to the end\n// of the error message, and then raises a `SyntaxError` with that\n// message.\n\npp$4.raise = function(pos, message) {\n var loc = getLineInfo(this.input, pos);\n message += \" (\" + loc.line + \":\" + loc.column + \")\";\n if (this.sourceFile) {\n message += \" in \" + this.sourceFile;\n }\n var err = new SyntaxError(message);\n err.pos = pos; err.loc = loc; err.raisedAt = this.pos;\n throw err\n};\n\npp$4.raiseRecoverable = pp$4.raise;\n\npp$4.curPosition = function() {\n if (this.options.locations) {\n return new Position(this.curLine, this.pos - this.lineStart)\n }\n};\n\nvar pp$3 = Parser.prototype;\n\nvar Scope = function Scope(flags) {\n this.flags = flags;\n // A list of var-declared names in the current lexical scope\n this.var = [];\n // A list of lexically-declared names in the current lexical scope\n this.lexical = [];\n // A list of lexically-declared FunctionDeclaration names in the current lexical scope\n this.functions = [];\n};\n\n// The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names.\n\npp$3.enterScope = function(flags) {\n this.scopeStack.push(new Scope(flags));\n};\n\npp$3.exitScope = function() {\n this.scopeStack.pop();\n};\n\n// The spec says:\n// > At the top level of a function, or script, function declarations are\n// > treated like var declarations rather than like lexical declarations.\npp$3.treatFunctionsAsVarInScope = function(scope) {\n return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP)\n};\n\npp$3.declareName = function(name, bindingType, pos) {\n var redeclared = false;\n if (bindingType === BIND_LEXICAL) {\n var scope = this.currentScope();\n redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1;\n scope.lexical.push(name);\n if (this.inModule && (scope.flags & SCOPE_TOP))\n { delete this.undefinedExports[name]; }\n } else if (bindingType === BIND_SIMPLE_CATCH) {\n var scope$1 = this.currentScope();\n scope$1.lexical.push(name);\n } else if (bindingType === BIND_FUNCTION) {\n var scope$2 = this.currentScope();\n if (this.treatFunctionsAsVar)\n { redeclared = scope$2.lexical.indexOf(name) > -1; }\n else\n { redeclared = scope$2.lexical.indexOf(name) > -1 || scope$2.var.indexOf(name) > -1; }\n scope$2.functions.push(name);\n } else {\n for (var i = this.scopeStack.length - 1; i >= 0; --i) {\n var scope$3 = this.scopeStack[i];\n if (scope$3.lexical.indexOf(name) > -1 && !((scope$3.flags & SCOPE_SIMPLE_CATCH) && scope$3.lexical[0] === name) ||\n !this.treatFunctionsAsVarInScope(scope$3) && scope$3.functions.indexOf(name) > -1) {\n redeclared = true;\n break\n }\n scope$3.var.push(name);\n if (this.inModule && (scope$3.flags & SCOPE_TOP))\n { delete this.undefinedExports[name]; }\n if (scope$3.flags & SCOPE_VAR) { break }\n }\n }\n if (redeclared) { this.raiseRecoverable(pos, (\"Identifier '\" + name + \"' has already been declared\")); }\n};\n\npp$3.checkLocalExport = function(id) {\n // scope.functions must be empty as Module code is always strict.\n if (this.scopeStack[0].lexical.indexOf(id.name) === -1 &&\n this.scopeStack[0].var.indexOf(id.name) === -1) {\n this.undefinedExports[id.name] = id;\n }\n};\n\npp$3.currentScope = function() {\n return this.scopeStack[this.scopeStack.length - 1]\n};\n\npp$3.currentVarScope = function() {\n for (var i = this.scopeStack.length - 1;; i--) {\n var scope = this.scopeStack[i];\n if (scope.flags & (SCOPE_VAR | SCOPE_CLASS_FIELD_INIT | SCOPE_CLASS_STATIC_BLOCK)) { return scope }\n }\n};\n\n// Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\npp$3.currentThisScope = function() {\n for (var i = this.scopeStack.length - 1;; i--) {\n var scope = this.scopeStack[i];\n if (scope.flags & (SCOPE_VAR | SCOPE_CLASS_FIELD_INIT | SCOPE_CLASS_STATIC_BLOCK) &&\n !(scope.flags & SCOPE_ARROW)) { return scope }\n }\n};\n\nvar Node = function Node(parser, pos, loc) {\n this.type = \"\";\n this.start = pos;\n this.end = 0;\n if (parser.options.locations)\n { this.loc = new SourceLocation(parser, loc); }\n if (parser.options.directSourceFile)\n { this.sourceFile = parser.options.directSourceFile; }\n if (parser.options.ranges)\n { this.range = [pos, 0]; }\n};\n\n// Start an AST node, attaching a start offset.\n\nvar pp$2 = Parser.prototype;\n\npp$2.startNode = function() {\n return new Node(this, this.start, this.startLoc)\n};\n\npp$2.startNodeAt = function(pos, loc) {\n return new Node(this, pos, loc)\n};\n\n// Finish an AST node, adding `type` and `end` properties.\n\nfunction finishNodeAt(node, type, pos, loc) {\n node.type = type;\n node.end = pos;\n if (this.options.locations)\n { node.loc.end = loc; }\n if (this.options.ranges)\n { node.range[1] = pos; }\n return node\n}\n\npp$2.finishNode = function(node, type) {\n return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc)\n};\n\n// Finish node at given position\n\npp$2.finishNodeAt = function(node, type, pos, loc) {\n return finishNodeAt.call(this, node, type, pos, loc)\n};\n\npp$2.copyNode = function(node) {\n var newNode = new Node(this, node.start, this.startLoc);\n for (var prop in node) { newNode[prop] = node[prop]; }\n return newNode\n};\n\n// This file was generated by \"bin/generate-unicode-script-values.js\". Do not modify manually!\nvar scriptValuesAddedInUnicode = \"Berf Beria_Erfe Gara Garay Gukh Gurung_Khema Hrkt Katakana_Or_Hiragana Kawi Kirat_Rai Krai Nag_Mundari Nagm Ol_Onal Onao Sidetic Sidt Sunu Sunuwar Tai_Yo Tayo Todhri Todr Tolong_Siki Tols Tulu_Tigalari Tutg Unknown Zzzz\";\n\n// This file contains Unicode properties extracted from the ECMAScript specification.\n// The lists are extracted like so:\n// $$('#table-binary-unicode-properties > figure > table > tbody > tr > td:nth-child(1) code').map(el => el.innerText)\n\n// #table-binary-unicode-properties\nvar ecma9BinaryProperties = \"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS\";\nvar ecma10BinaryProperties = ecma9BinaryProperties + \" Extended_Pictographic\";\nvar ecma11BinaryProperties = ecma10BinaryProperties;\nvar ecma12BinaryProperties = ecma11BinaryProperties + \" EBase EComp EMod EPres ExtPict\";\nvar ecma13BinaryProperties = ecma12BinaryProperties;\nvar ecma14BinaryProperties = ecma13BinaryProperties;\n\nvar unicodeBinaryProperties = {\n 9: ecma9BinaryProperties,\n 10: ecma10BinaryProperties,\n 11: ecma11BinaryProperties,\n 12: ecma12BinaryProperties,\n 13: ecma13BinaryProperties,\n 14: ecma14BinaryProperties\n};\n\n// #table-binary-unicode-properties-of-strings\nvar ecma14BinaryPropertiesOfStrings = \"Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji\";\n\nvar unicodeBinaryPropertiesOfStrings = {\n 9: \"\",\n 10: \"\",\n 11: \"\",\n 12: \"\",\n 13: \"\",\n 14: ecma14BinaryPropertiesOfStrings\n};\n\n// #table-unicode-general-category-values\nvar unicodeGeneralCategoryValues = \"Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu\";\n\n// #table-unicode-script-values\nvar ecma9ScriptValues = \"Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb\";\nvar ecma10ScriptValues = ecma9ScriptValues + \" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd\";\nvar ecma11ScriptValues = ecma10ScriptValues + \" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho\";\nvar ecma12ScriptValues = ecma11ScriptValues + \" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi\";\nvar ecma13ScriptValues = ecma12ScriptValues + \" Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith\";\nvar ecma14ScriptValues = ecma13ScriptValues + \" \" + scriptValuesAddedInUnicode;\n\nvar unicodeScriptValues = {\n 9: ecma9ScriptValues,\n 10: ecma10ScriptValues,\n 11: ecma11ScriptValues,\n 12: ecma12ScriptValues,\n 13: ecma13ScriptValues,\n 14: ecma14ScriptValues\n};\n\nvar data = {};\nfunction buildUnicodeData(ecmaVersion) {\n var d = data[ecmaVersion] = {\n binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion] + \" \" + unicodeGeneralCategoryValues),\n binaryOfStrings: wordsRegexp(unicodeBinaryPropertiesOfStrings[ecmaVersion]),\n nonBinary: {\n General_Category: wordsRegexp(unicodeGeneralCategoryValues),\n Script: wordsRegexp(unicodeScriptValues[ecmaVersion])\n }\n };\n d.nonBinary.Script_Extensions = d.nonBinary.Script;\n\n d.nonBinary.gc = d.nonBinary.General_Category;\n d.nonBinary.sc = d.nonBinary.Script;\n d.nonBinary.scx = d.nonBinary.Script_Extensions;\n}\n\nfor (var i = 0, list = [9, 10, 11, 12, 13, 14]; i < list.length; i += 1) {\n var ecmaVersion = list[i];\n\n buildUnicodeData(ecmaVersion);\n}\n\nvar pp$1 = Parser.prototype;\n\n// Track disjunction structure to determine whether a duplicate\n// capture group name is allowed because it is in a separate branch.\nvar BranchID = function BranchID(parent, base) {\n // Parent disjunction branch\n this.parent = parent;\n // Identifies this set of sibling branches\n this.base = base || this;\n};\n\nBranchID.prototype.separatedFrom = function separatedFrom (alt) {\n // A branch is separate from another branch if they or any of\n // their parents are siblings in a given disjunction\n for (var self = this; self; self = self.parent) {\n for (var other = alt; other; other = other.parent) {\n if (self.base === other.base && self !== other) { return true }\n }\n }\n return false\n};\n\nBranchID.prototype.sibling = function sibling () {\n return new BranchID(this.parent, this.base)\n};\n\nvar RegExpValidationState = function RegExpValidationState(parser) {\n this.parser = parser;\n this.validFlags = \"gim\" + (parser.options.ecmaVersion >= 6 ? \"uy\" : \"\") + (parser.options.ecmaVersion >= 9 ? \"s\" : \"\") + (parser.options.ecmaVersion >= 13 ? \"d\" : \"\") + (parser.options.ecmaVersion >= 15 ? \"v\" : \"\");\n this.unicodeProperties = data[parser.options.ecmaVersion >= 14 ? 14 : parser.options.ecmaVersion];\n this.source = \"\";\n this.flags = \"\";\n this.start = 0;\n this.switchU = false;\n this.switchV = false;\n this.switchN = false;\n this.pos = 0;\n this.lastIntValue = 0;\n this.lastStringValue = \"\";\n this.lastAssertionIsQuantifiable = false;\n this.numCapturingParens = 0;\n this.maxBackReference = 0;\n this.groupNames = Object.create(null);\n this.backReferenceNames = [];\n this.branchID = null;\n};\n\nRegExpValidationState.prototype.reset = function reset (start, pattern, flags) {\n var unicodeSets = flags.indexOf(\"v\") !== -1;\n var unicode = flags.indexOf(\"u\") !== -1;\n this.start = start | 0;\n this.source = pattern + \"\";\n this.flags = flags;\n if (unicodeSets && this.parser.options.ecmaVersion >= 15) {\n this.switchU = true;\n this.switchV = true;\n this.switchN = true;\n } else {\n this.switchU = unicode && this.parser.options.ecmaVersion >= 6;\n this.switchV = false;\n this.switchN = unicode && this.parser.options.ecmaVersion >= 9;\n }\n};\n\nRegExpValidationState.prototype.raise = function raise (message) {\n this.parser.raiseRecoverable(this.start, (\"Invalid regular expression: /\" + (this.source) + \"/: \" + message));\n};\n\n// If u flag is given, this returns the code point at the index (it combines a surrogate pair).\n// Otherwise, this returns the code unit of the index (can be a part of a surrogate pair).\nRegExpValidationState.prototype.at = function at (i, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var s = this.source;\n var l = s.length;\n if (i >= l) {\n return -1\n }\n var c = s.charCodeAt(i);\n if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {\n return c\n }\n var next = s.charCodeAt(i + 1);\n return next >= 0xDC00 && next <= 0xDFFF ? (c << 10) + next - 0x35FDC00 : c\n};\n\nRegExpValidationState.prototype.nextIndex = function nextIndex (i, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var s = this.source;\n var l = s.length;\n if (i >= l) {\n return l\n }\n var c = s.charCodeAt(i), next;\n if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l ||\n (next = s.charCodeAt(i + 1)) < 0xDC00 || next > 0xDFFF) {\n return i + 1\n }\n return i + 2\n};\n\nRegExpValidationState.prototype.current = function current (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n return this.at(this.pos, forceU)\n};\n\nRegExpValidationState.prototype.lookahead = function lookahead (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n return this.at(this.nextIndex(this.pos, forceU), forceU)\n};\n\nRegExpValidationState.prototype.advance = function advance (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n this.pos = this.nextIndex(this.pos, forceU);\n};\n\nRegExpValidationState.prototype.eat = function eat (ch, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n if (this.current(forceU) === ch) {\n this.advance(forceU);\n return true\n }\n return false\n};\n\nRegExpValidationState.prototype.eatChars = function eatChars (chs, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var pos = this.pos;\n for (var i = 0, list = chs; i < list.length; i += 1) {\n var ch = list[i];\n\n var current = this.at(pos, forceU);\n if (current === -1 || current !== ch) {\n return false\n }\n pos = this.nextIndex(pos, forceU);\n }\n this.pos = pos;\n return true\n};\n\n/**\n * Validate the flags part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp$1.validateRegExpFlags = function(state) {\n var validFlags = state.validFlags;\n var flags = state.flags;\n\n var u = false;\n var v = false;\n\n for (var i = 0; i < flags.length; i++) {\n var flag = flags.charAt(i);\n if (validFlags.indexOf(flag) === -1) {\n this.raise(state.start, \"Invalid regular expression flag\");\n }\n if (flags.indexOf(flag, i + 1) > -1) {\n this.raise(state.start, \"Duplicate regular expression flag\");\n }\n if (flag === \"u\") { u = true; }\n if (flag === \"v\") { v = true; }\n }\n if (this.options.ecmaVersion >= 15 && u && v) {\n this.raise(state.start, \"Invalid regular expression flag\");\n }\n};\n\nfunction hasProp(obj) {\n for (var _ in obj) { return true }\n return false\n}\n\n/**\n * Validate the pattern part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp$1.validateRegExpPattern = function(state) {\n this.regexp_pattern(state);\n\n // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of\n // parsing contains a |GroupName|, reparse with the goal symbol\n // |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError*\n // exception if _P_ did not conform to the grammar, if any elements of _P_\n // were not matched by the parse, or if any Early Error conditions exist.\n if (!state.switchN && this.options.ecmaVersion >= 9 && hasProp(state.groupNames)) {\n state.switchN = true;\n this.regexp_pattern(state);\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern\npp$1.regexp_pattern = function(state) {\n state.pos = 0;\n state.lastIntValue = 0;\n state.lastStringValue = \"\";\n state.lastAssertionIsQuantifiable = false;\n state.numCapturingParens = 0;\n state.maxBackReference = 0;\n state.groupNames = Object.create(null);\n state.backReferenceNames.length = 0;\n state.branchID = null;\n\n this.regexp_disjunction(state);\n\n if (state.pos !== state.source.length) {\n // Make the same messages as V8.\n if (state.eat(0x29 /* ) */)) {\n state.raise(\"Unmatched ')'\");\n }\n if (state.eat(0x5D /* ] */) || state.eat(0x7D /* } */)) {\n state.raise(\"Lone quantifier brackets\");\n }\n }\n if (state.maxBackReference > state.numCapturingParens) {\n state.raise(\"Invalid escape\");\n }\n for (var i = 0, list = state.backReferenceNames; i < list.length; i += 1) {\n var name = list[i];\n\n if (!state.groupNames[name]) {\n state.raise(\"Invalid named capture referenced\");\n }\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction\npp$1.regexp_disjunction = function(state) {\n var trackDisjunction = this.options.ecmaVersion >= 16;\n if (trackDisjunction) { state.branchID = new BranchID(state.branchID, null); }\n this.regexp_alternative(state);\n while (state.eat(0x7C /* | */)) {\n if (trackDisjunction) { state.branchID = state.branchID.sibling(); }\n this.regexp_alternative(state);\n }\n if (trackDisjunction) { state.branchID = state.branchID.parent; }\n\n // Make the same message as V8.\n if (this.regexp_eatQuantifier(state, true)) {\n state.raise(\"Nothing to repeat\");\n }\n if (state.eat(0x7B /* { */)) {\n state.raise(\"Lone quantifier brackets\");\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative\npp$1.regexp_alternative = function(state) {\n while (state.pos < state.source.length && this.regexp_eatTerm(state)) {}\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term\npp$1.regexp_eatTerm = function(state) {\n if (this.regexp_eatAssertion(state)) {\n // Handle `QuantifiableAssertion Quantifier` alternative.\n // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion\n // is a QuantifiableAssertion.\n if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) {\n // Make the same message as V8.\n if (state.switchU) {\n state.raise(\"Invalid quantifier\");\n }\n }\n return true\n }\n\n if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) {\n this.regexp_eatQuantifier(state);\n return true\n }\n\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion\npp$1.regexp_eatAssertion = function(state) {\n var start = state.pos;\n state.lastAssertionIsQuantifiable = false;\n\n // ^, $\n if (state.eat(0x5E /* ^ */) || state.eat(0x24 /* $ */)) {\n return true\n }\n\n // \\b \\B\n if (state.eat(0x5C /* \\ */)) {\n if (state.eat(0x42 /* B */) || state.eat(0x62 /* b */)) {\n return true\n }\n state.pos = start;\n }\n\n // Lookahead / Lookbehind\n if (state.eat(0x28 /* ( */) && state.eat(0x3F /* ? */)) {\n var lookbehind = false;\n if (this.options.ecmaVersion >= 9) {\n lookbehind = state.eat(0x3C /* < */);\n }\n if (state.eat(0x3D /* = */) || state.eat(0x21 /* ! */)) {\n this.regexp_disjunction(state);\n if (!state.eat(0x29 /* ) */)) {\n state.raise(\"Unterminated group\");\n }\n state.lastAssertionIsQuantifiable = !lookbehind;\n return true\n }\n }\n\n state.pos = start;\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier\npp$1.regexp_eatQuantifier = function(state, noError) {\n if ( noError === void 0 ) noError = false;\n\n if (this.regexp_eatQuantifierPrefix(state, noError)) {\n state.eat(0x3F /* ? */);\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix\npp$1.regexp_eatQuantifierPrefix = function(state, noError) {\n return (\n state.eat(0x2A /* * */) ||\n state.eat(0x2B /* + */) ||\n state.eat(0x3F /* ? */) ||\n this.regexp_eatBracedQuantifier(state, noError)\n )\n};\npp$1.regexp_eatBracedQuantifier = function(state, noError) {\n var start = state.pos;\n if (state.eat(0x7B /* { */)) {\n var min = 0, max = -1;\n if (this.regexp_eatDecimalDigits(state)) {\n min = state.lastIntValue;\n if (state.eat(0x2C /* , */) && this.regexp_eatDecimalDigits(state)) {\n max = state.lastIntValue;\n }\n if (state.eat(0x7D /* } */)) {\n // SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-term\n if (max !== -1 && max < min && !noError) {\n state.raise(\"numbers out of order in {} quantifier\");\n }\n return true\n }\n }\n if (state.switchU && !noError) {\n state.raise(\"Incomplete quantifier\");\n }\n state.pos = start;\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Atom\npp$1.regexp_eatAtom = function(state) {\n return (\n this.regexp_eatPatternCharacters(state) ||\n state.eat(0x2E /* . */) ||\n this.regexp_eatReverseSolidusAtomEscape(state) ||\n this.regexp_eatCharacterClass(state) ||\n this.regexp_eatUncapturingGroup(state) ||\n this.regexp_eatCapturingGroup(state)\n )\n};\npp$1.regexp_eatReverseSolidusAtomEscape = function(state) {\n var start = state.pos;\n if (state.eat(0x5C /* \\ */)) {\n if (this.regexp_eatAtomEscape(state)) {\n return true\n }\n state.pos = start;\n }\n return false\n};\npp$1.regexp_eatUncapturingGroup = function(state) {\n var start = state.pos;\n if (state.eat(0x28 /* ( */)) {\n if (state.eat(0x3F /* ? */)) {\n if (this.options.ecmaVersion >= 16) {\n var addModifiers = this.regexp_eatModifiers(state);\n var hasHyphen = state.eat(0x2D /* - */);\n if (addModifiers || hasHyphen) {\n for (var i = 0; i < addModifiers.length; i++) {\n var modifier = addModifiers.charAt(i);\n if (addModifiers.indexOf(modifier, i + 1) > -1) {\n state.raise(\"Duplicate regular expression modifiers\");\n }\n }\n if (hasHyphen) {\n var removeModifiers = this.regexp_eatModifiers(state);\n if (!addModifiers && !removeModifiers && state.current() === 0x3A /* : */) {\n state.raise(\"Invalid regular expression modifiers\");\n }\n for (var i$1 = 0; i$1 < removeModifiers.length; i$1++) {\n var modifier$1 = removeModifiers.charAt(i$1);\n if (\n removeModifiers.indexOf(modifier$1, i$1 + 1) > -1 ||\n addModifiers.indexOf(modifier$1) > -1\n ) {\n state.raise(\"Duplicate regular expression modifiers\");\n }\n }\n }\n }\n }\n if (state.eat(0x3A /* : */)) {\n this.regexp_disjunction(state);\n if (state.eat(0x29 /* ) */)) {\n return true\n }\n state.raise(\"Unterminated group\");\n }\n }\n state.pos = start;\n }\n return false\n};\npp$1.regexp_eatCapturingGroup = function(state) {\n if (state.eat(0x28 /* ( */)) {\n if (this.options.ecmaVersion >= 9) {\n this.regexp_groupSpecifier(state);\n } else if (state.current() === 0x3F /* ? */) {\n state.raise(\"Invalid group\");\n }\n this.regexp_disjunction(state);\n if (state.eat(0x29 /* ) */)) {\n state.numCapturingParens += 1;\n return true\n }\n state.raise(\"Unterminated group\");\n }\n return false\n};\n// RegularExpressionModifiers ::\n// [empty]\n// RegularExpressionModifiers RegularExpressionModifier\npp$1.regexp_eatModifiers = function(state) {\n var modifiers = \"\";\n var ch = 0;\n while ((ch = state.current()) !== -1 && isRegularExpressionModifier(ch)) {\n modifiers += codePointToString(ch);\n state.advance();\n }\n return modifiers\n};\n// RegularExpressionModifier :: one of\n// `i` `m` `s`\nfunction isRegularExpressionModifier(ch) {\n return ch === 0x69 /* i */ || ch === 0x6d /* m */ || ch === 0x73 /* s */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom\npp$1.regexp_eatExtendedAtom = function(state) {\n return (\n state.eat(0x2E /* . */) ||\n this.regexp_eatReverseSolidusAtomEscape(state) ||\n this.regexp_eatCharacterClass(state) ||\n this.regexp_eatUncapturingGroup(state) ||\n this.regexp_eatCapturingGroup(state) ||\n this.regexp_eatInvalidBracedQuantifier(state) ||\n this.regexp_eatExtendedPatternCharacter(state)\n )\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier\npp$1.regexp_eatInvalidBracedQuantifier = function(state) {\n if (this.regexp_eatBracedQuantifier(state, true)) {\n state.raise(\"Nothing to repeat\");\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter\npp$1.regexp_eatSyntaxCharacter = function(state) {\n var ch = state.current();\n if (isSyntaxCharacter(ch)) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n return false\n};\nfunction isSyntaxCharacter(ch) {\n return (\n ch === 0x24 /* $ */ ||\n ch >= 0x28 /* ( */ && ch <= 0x2B /* + */ ||\n ch === 0x2E /* . */ ||\n ch === 0x3F /* ? */ ||\n ch >= 0x5B /* [ */ && ch <= 0x5E /* ^ */ ||\n ch >= 0x7B /* { */ && ch <= 0x7D /* } */\n )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter\n// But eat eager.\npp$1.regexp_eatPatternCharacters = function(state) {\n var start = state.pos;\n var ch = 0;\n while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) {\n state.advance();\n }\n return state.pos !== start\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter\npp$1.regexp_eatExtendedPatternCharacter = function(state) {\n var ch = state.current();\n if (\n ch !== -1 &&\n ch !== 0x24 /* $ */ &&\n !(ch >= 0x28 /* ( */ && ch <= 0x2B /* + */) &&\n ch !== 0x2E /* . */ &&\n ch !== 0x3F /* ? */ &&\n ch !== 0x5B /* [ */ &&\n ch !== 0x5E /* ^ */ &&\n ch !== 0x7C /* | */\n ) {\n state.advance();\n return true\n }\n return false\n};\n\n// GroupSpecifier ::\n// [empty]\n// `?` GroupName\npp$1.regexp_groupSpecifier = function(state) {\n if (state.eat(0x3F /* ? */)) {\n if (!this.regexp_eatGroupName(state)) { state.raise(\"Invalid group\"); }\n var trackDisjunction = this.options.ecmaVersion >= 16;\n var known = state.groupNames[state.lastStringValue];\n if (known) {\n if (trackDisjunction) {\n for (var i = 0, list = known; i < list.length; i += 1) {\n var altID = list[i];\n\n if (!altID.separatedFrom(state.branchID))\n { state.raise(\"Duplicate capture group name\"); }\n }\n } else {\n state.raise(\"Duplicate capture group name\");\n }\n }\n if (trackDisjunction) {\n (known || (state.groupNames[state.lastStringValue] = [])).push(state.branchID);\n } else {\n state.groupNames[state.lastStringValue] = true;\n }\n }\n};\n\n// GroupName ::\n// `<` RegExpIdentifierName `>`\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp$1.regexp_eatGroupName = function(state) {\n state.lastStringValue = \"\";\n if (state.eat(0x3C /* < */)) {\n if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) {\n return true\n }\n state.raise(\"Invalid capture group name\");\n }\n return false\n};\n\n// RegExpIdentifierName ::\n// RegExpIdentifierStart\n// RegExpIdentifierName RegExpIdentifierPart\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp$1.regexp_eatRegExpIdentifierName = function(state) {\n state.lastStringValue = \"\";\n if (this.regexp_eatRegExpIdentifierStart(state)) {\n state.lastStringValue += codePointToString(state.lastIntValue);\n while (this.regexp_eatRegExpIdentifierPart(state)) {\n state.lastStringValue += codePointToString(state.lastIntValue);\n }\n return true\n }\n return false\n};\n\n// RegExpIdentifierStart ::\n// UnicodeIDStart\n// `$`\n// `_`\n// `\\` RegExpUnicodeEscapeSequence[+U]\npp$1.regexp_eatRegExpIdentifierStart = function(state) {\n var start = state.pos;\n var forceU = this.options.ecmaVersion >= 11;\n var ch = state.current(forceU);\n state.advance(forceU);\n\n if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {\n ch = state.lastIntValue;\n }\n if (isRegExpIdentifierStart(ch)) {\n state.lastIntValue = ch;\n return true\n }\n\n state.pos = start;\n return false\n};\nfunction isRegExpIdentifierStart(ch) {\n return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */\n}\n\n// RegExpIdentifierPart ::\n// UnicodeIDContinue\n// `$`\n// `_`\n// `\\` RegExpUnicodeEscapeSequence[+U]\n// <ZWNJ>\n// <ZWJ>\npp$1.regexp_eatRegExpIdentifierPart = function(state) {\n var start = state.pos;\n var forceU = this.options.ecmaVersion >= 11;\n var ch = state.current(forceU);\n state.advance(forceU);\n\n if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {\n ch = state.lastIntValue;\n }\n if (isRegExpIdentifierPart(ch)) {\n state.lastIntValue = ch;\n return true\n }\n\n state.pos = start;\n return false\n};\nfunction isRegExpIdentifierPart(ch) {\n return isIdentifierChar(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ || ch === 0x200C /* <ZWNJ> */ || ch === 0x200D /* <ZWJ> */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape\npp$1.regexp_eatAtomEscape = function(state) {\n if (\n this.regexp_eatBackReference(state) ||\n this.regexp_eatCharacterClassEscape(state) ||\n this.regexp_eatCharacterEscape(state) ||\n (state.switchN && this.regexp_eatKGroupName(state))\n ) {\n return true\n }\n if (state.switchU) {\n // Make the same message as V8.\n if (state.current() === 0x63 /* c */) {\n state.raise(\"Invalid unicode escape\");\n }\n state.raise(\"Invalid escape\");\n }\n return false\n};\npp$1.regexp_eatBackReference = function(state) {\n var start = state.pos;\n if (this.regexp_eatDecimalEscape(state)) {\n var n = state.lastIntValue;\n if (state.switchU) {\n // For SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-atomescape\n if (n > state.maxBackReference) {\n state.maxBackReference = n;\n }\n return true\n }\n if (n <= state.numCapturingParens) {\n return true\n }\n state.pos = start;\n }\n return false\n};\npp$1.regexp_eatKGroupName = function(state) {\n if (state.eat(0x6B /* k */)) {\n if (this.regexp_eatGroupName(state)) {\n state.backReferenceNames.push(state.lastStringValue);\n return true\n }\n state.raise(\"Invalid named reference\");\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape\npp$1.regexp_eatCharacterEscape = function(state) {\n return (\n this.regexp_eatControlEscape(state) ||\n this.regexp_eatCControlLetter(state) ||\n this.regexp_eatZero(state) ||\n this.regexp_eatHexEscapeSequence(state) ||\n this.regexp_eatRegExpUnicodeEscapeSequence(state, false) ||\n (!state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state)) ||\n this.regexp_eatIdentityEscape(state)\n )\n};\npp$1.regexp_eatCControlLetter = function(state) {\n var start = state.pos;\n if (state.eat(0x63 /* c */)) {\n if (this.regexp_eatControlLetter(state)) {\n return true\n }\n state.pos = start;\n }\n return false\n};\npp$1.regexp_eatZero = function(state) {\n if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) {\n state.lastIntValue = 0;\n state.advance();\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape\npp$1.regexp_eatControlEscape = function(state) {\n var ch = state.current();\n if (ch === 0x74 /* t */) {\n state.lastIntValue = 0x09; /* \\t */\n state.advance();\n return true\n }\n if (ch === 0x6E /* n */) {\n state.lastIntValue = 0x0A; /* \\n */\n state.advance();\n return true\n }\n if (ch === 0x76 /* v */) {\n state.lastIntValue = 0x0B; /* \\v */\n state.advance();\n return true\n }\n if (ch === 0x66 /* f */) {\n state.lastIntValue = 0x0C; /* \\f */\n state.advance();\n return true\n }\n if (ch === 0x72 /* r */) {\n state.lastIntValue = 0x0D; /* \\r */\n state.advance();\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter\npp$1.regexp_eatControlLetter = function(state) {\n var ch = state.current();\n if (isControlLetter(ch)) {\n state.lastIntValue = ch % 0x20;\n state.advance();\n return true\n }\n return false\n};\nfunction isControlLetter(ch) {\n return (\n (ch >= 0x41 /* A */ && ch <= 0x5A /* Z */) ||\n (ch >= 0x61 /* a */ && ch <= 0x7A /* z */)\n )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence\npp$1.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var start = state.pos;\n var switchU = forceU || state.switchU;\n\n if (state.eat(0x75 /* u */)) {\n if (this.regexp_eatFixedHexDigits(state, 4)) {\n var lead = state.lastIntValue;\n if (switchU && lead >= 0xD800 && lead <= 0xDBFF) {\n var leadSurrogateEnd = state.pos;\n if (state.eat(0x5C /* \\ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) {\n var trail = state.lastIntValue;\n if (trail >= 0xDC00 && trail <= 0xDFFF) {\n state.lastIntValue = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000;\n return true\n }\n }\n state.pos = leadSurrogateEnd;\n state.lastIntValue = lead;\n }\n return true\n }\n if (\n switchU &&\n state.eat(0x7B /* { */) &&\n this.regexp_eatHexDigits(state) &&\n state.eat(0x7D /* } */) &&\n isValidUnicode(state.lastIntValue)\n ) {\n return true\n }\n if (switchU) {\n state.raise(\"Invalid unicode escape\");\n }\n state.pos = start;\n }\n\n return false\n};\nfunction isValidUnicode(ch) {\n return ch >= 0 && ch <= 0x10FFFF\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape\npp$1.regexp_eatIdentityEscape = function(state) {\n if (state.switchU) {\n if (this.regexp_eatSyntaxCharacter(state)) {\n return true\n }\n if (state.eat(0x2F /* / */)) {\n state.lastIntValue = 0x2F; /* / */\n return true\n }\n return false\n }\n\n var ch = state.current();\n if (ch !== 0x63 /* c */ && (!state.switchN || ch !== 0x6B /* k */)) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape\npp$1.regexp_eatDecimalEscape = function(state) {\n state.lastIntValue = 0;\n var ch = state.current();\n if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) {\n do {\n state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);\n state.advance();\n } while ((ch = state.current()) >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */)\n return true\n }\n return false\n};\n\n// Return values used by character set parsing methods, needed to\n// forbid negation of sets that can match strings.\nvar CharSetNone = 0; // Nothing parsed\nvar CharSetOk = 1; // Construct parsed, cannot contain strings\nvar CharSetString = 2; // Construct parsed, can contain strings\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape\npp$1.regexp_eatCharacterClassEscape = function(state) {\n var ch = state.current();\n\n if (isCharacterClassEscape(ch)) {\n state.lastIntValue = -1;\n state.advance();\n return CharSetOk\n }\n\n var negate = false;\n if (\n state.switchU &&\n this.options.ecmaVersion >= 9 &&\n ((negate = ch === 0x50 /* P */) || ch === 0x70 /* p */)\n ) {\n state.lastIntValue = -1;\n state.advance();\n var result;\n if (\n state.eat(0x7B /* { */) &&\n (result = this.regexp_eatUnicodePropertyValueExpression(state)) &&\n state.eat(0x7D /* } */)\n ) {\n if (negate && result === CharSetString) { state.raise(\"Invalid property name\"); }\n return result\n }\n state.raise(\"Invalid property name\");\n }\n\n return CharSetNone\n};\n\nfunction isCharacterClassEscape(ch) {\n return (\n ch === 0x64 /* d */ ||\n ch === 0x44 /* D */ ||\n ch === 0x73 /* s */ ||\n ch === 0x53 /* S */ ||\n ch === 0x77 /* w */ ||\n ch === 0x57 /* W */\n )\n}\n\n// UnicodePropertyValueExpression ::\n// UnicodePropertyName `=` UnicodePropertyValue\n// LoneUnicodePropertyNameOrValue\npp$1.regexp_eatUnicodePropertyValueExpression = function(state) {\n var start = state.pos;\n\n // UnicodePropertyName `=` UnicodePropertyValue\n if (this.regexp_eatUnicodePropertyName(state) && state.eat(0x3D /* = */)) {\n var name = state.lastStringValue;\n if (this.regexp_eatUnicodePropertyValue(state)) {\n var value = state.lastStringValue;\n this.regexp_validateUnicodePropertyNameAndValue(state, name, value);\n return CharSetOk\n }\n }\n state.pos = start;\n\n // LoneUnicodePropertyNameOrValue\n if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) {\n var nameOrValue = state.lastStringValue;\n return this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue)\n }\n return CharSetNone\n};\n\npp$1.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) {\n if (!hasOwn(state.unicodeProperties.nonBinary, name))\n { state.raise(\"Invalid property name\"); }\n if (!state.unicodeProperties.nonBinary[name].test(value))\n { state.raise(\"Invalid property value\"); }\n};\n\npp$1.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) {\n if (state.unicodeProperties.binary.test(nameOrValue)) { return CharSetOk }\n if (state.switchV && state.unicodeProperties.binaryOfStrings.test(nameOrValue)) { return CharSetString }\n state.raise(\"Invalid property name\");\n};\n\n// UnicodePropertyName ::\n// UnicodePropertyNameCharacters\npp$1.regexp_eatUnicodePropertyName = function(state) {\n var ch = 0;\n state.lastStringValue = \"\";\n while (isUnicodePropertyNameCharacter(ch = state.current())) {\n state.lastStringValue += codePointToString(ch);\n state.advance();\n }\n return state.lastStringValue !== \"\"\n};\n\nfunction isUnicodePropertyNameCharacter(ch) {\n return isControlLetter(ch) || ch === 0x5F /* _ */\n}\n\n// UnicodePropertyValue ::\n// UnicodePropertyValueCharacters\npp$1.regexp_eatUnicodePropertyValue = function(state) {\n var ch = 0;\n state.lastStringValue = \"\";\n while (isUnicodePropertyValueCharacter(ch = state.current())) {\n state.lastStringValue += codePointToString(ch);\n state.advance();\n }\n return state.lastStringValue !== \"\"\n};\nfunction isUnicodePropertyValueCharacter(ch) {\n return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch)\n}\n\n// LoneUnicodePropertyNameOrValue ::\n// UnicodePropertyValueCharacters\npp$1.regexp_eatLoneUnicodePropertyNameOrValue = function(state) {\n return this.regexp_eatUnicodePropertyValue(state)\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass\npp$1.regexp_eatCharacterClass = function(state) {\n if (state.eat(0x5B /* [ */)) {\n var negate = state.eat(0x5E /* ^ */);\n var result = this.regexp_classContents(state);\n if (!state.eat(0x5D /* ] */))\n { state.raise(\"Unterminated character class\"); }\n if (negate && result === CharSetString)\n { state.raise(\"Negated character class may contain strings\"); }\n return true\n }\n return false\n};\n\n// https://tc39.es/ecma262/#prod-ClassContents\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges\npp$1.regexp_classContents = function(state) {\n if (state.current() === 0x5D /* ] */) { return CharSetOk }\n if (state.switchV) { return this.regexp_classSetExpression(state) }\n this.regexp_nonEmptyClassRanges(state);\n return CharSetOk\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash\npp$1.regexp_nonEmptyClassRanges = function(state) {\n while (this.regexp_eatClassAtom(state)) {\n var left = state.lastIntValue;\n if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) {\n var right = state.lastIntValue;\n if (state.switchU && (left === -1 || right === -1)) {\n state.raise(\"Invalid character class\");\n }\n if (left !== -1 && right !== -1 && left > right) {\n state.raise(\"Range out of order in character class\");\n }\n }\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash\npp$1.regexp_eatClassAtom = function(state) {\n var start = state.pos;\n\n if (state.eat(0x5C /* \\ */)) {\n if (this.regexp_eatClassEscape(state)) {\n return true\n }\n if (state.switchU) {\n // Make the same message as V8.\n var ch$1 = state.current();\n if (ch$1 === 0x63 /* c */ || isOctalDigit(ch$1)) {\n state.raise(\"Invalid class escape\");\n }\n state.raise(\"Invalid escape\");\n }\n state.pos = start;\n }\n\n var ch = state.current();\n if (ch !== 0x5D /* ] */) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape\npp$1.regexp_eatClassEscape = function(state) {\n var start = state.pos;\n\n if (state.eat(0x62 /* b */)) {\n state.lastIntValue = 0x08; /* <BS> */\n return true\n }\n\n if (state.switchU && state.eat(0x2D /* - */)) {\n state.lastIntValue = 0x2D; /* - */\n return true\n }\n\n if (!state.switchU && state.eat(0x63 /* c */)) {\n if (this.regexp_eatClassControlLetter(state)) {\n return true\n }\n state.pos = start;\n }\n\n return (\n this.regexp_eatCharacterClassEscape(state) ||\n this.regexp_eatCharacterEscape(state)\n )\n};\n\n// https://tc39.es/ecma262/#prod-ClassSetExpression\n// https://tc39.es/ecma262/#prod-ClassUnion\n// https://tc39.es/ecma262/#prod-ClassIntersection\n// https://tc39.es/ecma262/#prod-ClassSubtraction\npp$1.regexp_classSetExpression = function(state) {\n var result = CharSetOk, subResult;\n if (this.regexp_eatClassSetRange(state)) ; else if (subResult = this.regexp_eatClassSetOperand(state)) {\n if (subResult === CharSetString) { result = CharSetString; }\n // https://tc39.es/ecma262/#prod-ClassIntersection\n var start = state.pos;\n while (state.eatChars([0x26, 0x26] /* && */)) {\n if (\n state.current() !== 0x26 /* & */ &&\n (subResult = this.regexp_eatClassSetOperand(state))\n ) {\n if (subResult !== CharSetString) { result = CharSetOk; }\n continue\n }\n state.raise(\"Invalid character in character class\");\n }\n if (start !== state.pos) { return result }\n // https://tc39.es/ecma262/#prod-ClassSubtraction\n while (state.eatChars([0x2D, 0x2D] /* -- */)) {\n if (this.regexp_eatClassSetOperand(state)) { continue }\n state.raise(\"Invalid character in character class\");\n }\n if (start !== state.pos) { return result }\n } else {\n state.raise(\"Invalid character in character class\");\n }\n // https://tc39.es/ecma262/#prod-ClassUnion\n for (;;) {\n if (this.regexp_eatClassSetRange(state)) { continue }\n subResult = this.regexp_eatClassSetOperand(state);\n if (!subResult) { return result }\n if (subResult === CharSetString) { result = CharSetString; }\n }\n};\n\n// https://tc39.es/ecma262/#prod-ClassSetRange\npp$1.regexp_eatClassSetRange = function(state) {\n var start = state.pos;\n if (this.regexp_eatClassSetCharacter(state)) {\n var left = state.lastIntValue;\n if (state.eat(0x2D /* - */) && this.regexp_eatClassSetCharacter(state)) {\n var right = state.lastIntValue;\n if (left !== -1 && right !== -1 && left > right) {\n state.raise(\"Range out of order in character class\");\n }\n return true\n }\n state.pos = start;\n }\n return false\n};\n\n// https://tc39.es/ecma262/#prod-ClassSetOperand\npp$1.regexp_eatClassSetOperand = function(state) {\n if (this.regexp_eatClassSetCharacter(state)) { return CharSetOk }\n return this.regexp_eatClassStringDisjunction(state) || this.regexp_eatNestedClass(state)\n};\n\n// https://tc39.es/ecma262/#prod-NestedClass\npp$1.regexp_eatNestedClass = function(state) {\n var start = state.pos;\n if (state.eat(0x5B /* [ */)) {\n var negate = state.eat(0x5E /* ^ */);\n var result = this.regexp_classContents(state);\n if (state.eat(0x5D /* ] */)) {\n if (negate && result === CharSetString) {\n state.raise(\"Negated character class may contain strings\");\n }\n return result\n }\n state.pos = start;\n }\n if (state.eat(0x5C /* \\ */)) {\n var result$1 = this.regexp_eatCharacterClassEscape(state);\n if (result$1) {\n return result$1\n }\n state.pos = start;\n }\n return null\n};\n\n// https://tc39.es/ecma262/#prod-ClassStringDisjunction\npp$1.regexp_eatClassStringDisjunction = function(state) {\n var start = state.pos;\n if (state.eatChars([0x5C, 0x71] /* \\q */)) {\n if (state.eat(0x7B /* { */)) {\n var result = this.regexp_classStringDisjunctionContents(state);\n if (state.eat(0x7D /* } */)) {\n return result\n }\n } else {\n // Make the same message as V8.\n state.raise(\"Invalid escape\");\n }\n state.pos = start;\n }\n return null\n};\n\n// https://tc39.es/ecma262/#prod-ClassStringDisjunctionContents\npp$1.regexp_classStringDisjunctionContents = function(state) {\n var result = this.regexp_classString(state);\n while (state.eat(0x7C /* | */)) {\n if (this.regexp_classString(state) === CharSetString) { result = CharSetString; }\n }\n return result\n};\n\n// https://tc39.es/ecma262/#prod-ClassString\n// https://tc39.es/ecma262/#prod-NonEmptyClassString\npp$1.regexp_classString = function(state) {\n var count = 0;\n while (this.regexp_eatClassSetCharacter(state)) { count++; }\n return count === 1 ? CharSetOk : CharSetString\n};\n\n// https://tc39.es/ecma262/#prod-ClassSetCharacter\npp$1.regexp_eatClassSetCharacter = function(state) {\n var start = state.pos;\n if (state.eat(0x5C /* \\ */)) {\n if (\n this.regexp_eatCharacterEscape(state) ||\n this.regexp_eatClassSetReservedPunctuator(state)\n ) {\n return true\n }\n if (state.eat(0x62 /* b */)) {\n state.lastIntValue = 0x08; /* <BS> */\n return true\n }\n state.pos = start;\n return false\n }\n var ch = state.current();\n if (ch < 0 || ch === state.lookahead() && isClassSetReservedDoublePunctuatorCharacter(ch)) { return false }\n if (isClassSetSyntaxCharacter(ch)) { return false }\n state.advance();\n state.lastIntValue = ch;\n return true\n};\n\n// https://tc39.es/ecma262/#prod-ClassSetReservedDoublePunctuator\nfunction isClassSetReservedDoublePunctuatorCharacter(ch) {\n return (\n ch === 0x21 /* ! */ ||\n ch >= 0x23 /* # */ && ch <= 0x26 /* & */ ||\n ch >= 0x2A /* * */ && ch <= 0x2C /* , */ ||\n ch === 0x2E /* . */ ||\n ch >= 0x3A /* : */ && ch <= 0x40 /* @ */ ||\n ch === 0x5E /* ^ */ ||\n ch === 0x60 /* ` */ ||\n ch === 0x7E /* ~ */\n )\n}\n\n// https://tc39.es/ecma262/#prod-ClassSetSyntaxCharacter\nfunction isClassSetSyntaxCharacter(ch) {\n return (\n ch === 0x28 /* ( */ ||\n ch === 0x29 /* ) */ ||\n ch === 0x2D /* - */ ||\n ch === 0x2F /* / */ ||\n ch >= 0x5B /* [ */ && ch <= 0x5D /* ] */ ||\n ch >= 0x7B /* { */ && ch <= 0x7D /* } */\n )\n}\n\n// https://tc39.es/ecma262/#prod-ClassSetReservedPunctuator\npp$1.regexp_eatClassSetReservedPunctuator = function(state) {\n var ch = state.current();\n if (isClassSetReservedPunctuator(ch)) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n return false\n};\n\n// https://tc39.es/ecma262/#prod-ClassSetReservedPunctuator\nfunction isClassSetReservedPunctuator(ch) {\n return (\n ch === 0x21 /* ! */ ||\n ch === 0x23 /* # */ ||\n ch === 0x25 /* % */ ||\n ch === 0x26 /* & */ ||\n ch === 0x2C /* , */ ||\n ch === 0x2D /* - */ ||\n ch >= 0x3A /* : */ && ch <= 0x3E /* > */ ||\n ch === 0x40 /* @ */ ||\n ch === 0x60 /* ` */ ||\n ch === 0x7E /* ~ */\n )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter\npp$1.regexp_eatClassControlLetter = function(state) {\n var ch = state.current();\n if (isDecimalDigit(ch) || ch === 0x5F /* _ */) {\n state.lastIntValue = ch % 0x20;\n state.advance();\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp$1.regexp_eatHexEscapeSequence = function(state) {\n var start = state.pos;\n if (state.eat(0x78 /* x */)) {\n if (this.regexp_eatFixedHexDigits(state, 2)) {\n return true\n }\n if (state.switchU) {\n state.raise(\"Invalid escape\");\n }\n state.pos = start;\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits\npp$1.regexp_eatDecimalDigits = function(state) {\n var start = state.pos;\n var ch = 0;\n state.lastIntValue = 0;\n while (isDecimalDigit(ch = state.current())) {\n state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);\n state.advance();\n }\n return state.pos !== start\n};\nfunction isDecimalDigit(ch) {\n return ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits\npp$1.regexp_eatHexDigits = function(state) {\n var start = state.pos;\n var ch = 0;\n state.lastIntValue = 0;\n while (isHexDigit(ch = state.current())) {\n state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);\n state.advance();\n }\n return state.pos !== start\n};\nfunction isHexDigit(ch) {\n return (\n (ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) ||\n (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) ||\n (ch >= 0x61 /* a */ && ch <= 0x66 /* f */)\n )\n}\nfunction hexToInt(ch) {\n if (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) {\n return 10 + (ch - 0x41 /* A */)\n }\n if (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) {\n return 10 + (ch - 0x61 /* a */)\n }\n return ch - 0x30 /* 0 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence\n// Allows only 0-377(octal) i.e. 0-255(decimal).\npp$1.regexp_eatLegacyOctalEscapeSequence = function(state) {\n if (this.regexp_eatOctalDigit(state)) {\n var n1 = state.lastIntValue;\n if (this.regexp_eatOctalDigit(state)) {\n var n2 = state.lastIntValue;\n if (n1 <= 3 && this.regexp_eatOctalDigit(state)) {\n state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue;\n } else {\n state.lastIntValue = n1 * 8 + n2;\n }\n } else {\n state.lastIntValue = n1;\n }\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit\npp$1.regexp_eatOctalDigit = function(state) {\n var ch = state.current();\n if (isOctalDigit(ch)) {\n state.lastIntValue = ch - 0x30; /* 0 */\n state.advance();\n return true\n }\n state.lastIntValue = 0;\n return false\n};\nfunction isOctalDigit(ch) {\n return ch >= 0x30 /* 0 */ && ch <= 0x37 /* 7 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit\n// And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp$1.regexp_eatFixedHexDigits = function(state, length) {\n var start = state.pos;\n state.lastIntValue = 0;\n for (var i = 0; i < length; ++i) {\n var ch = state.current();\n if (!isHexDigit(ch)) {\n state.pos = start;\n return false\n }\n state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);\n state.advance();\n }\n return true\n};\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nvar Token = function Token(p) {\n this.type = p.type;\n this.value = p.value;\n this.start = p.start;\n this.end = p.end;\n if (p.options.locations)\n { this.loc = new SourceLocation(p, p.startLoc, p.endLoc); }\n if (p.options.ranges)\n { this.range = [p.start, p.end]; }\n};\n\n// ## Tokenizer\n\nvar pp = Parser.prototype;\n\n// Move to the next token\n\npp.next = function(ignoreEscapeSequenceInKeyword) {\n if (!ignoreEscapeSequenceInKeyword && this.type.keyword && this.containsEsc)\n { this.raiseRecoverable(this.start, \"Escape sequence in keyword \" + this.type.keyword); }\n if (this.options.onToken)\n { this.options.onToken(new Token(this)); }\n\n this.lastTokEnd = this.end;\n this.lastTokStart = this.start;\n this.lastTokEndLoc = this.endLoc;\n this.lastTokStartLoc = this.startLoc;\n this.nextToken();\n};\n\npp.getToken = function() {\n this.next();\n return new Token(this)\n};\n\n// If we're in an ES6 environment, make parsers iterable\nif (typeof Symbol !== \"undefined\")\n { pp[Symbol.iterator] = function() {\n var this$1$1 = this;\n\n return {\n next: function () {\n var token = this$1$1.getToken();\n return {\n done: token.type === types$1.eof,\n value: token\n }\n }\n }\n }; }\n\n// Toggle strict mode. Re-reads the next number or string to please\n// pedantic tests (`\"use strict\"; 010;` should fail).\n\n// Read a single token, updating the parser object's token-related\n// properties.\n\npp.nextToken = function() {\n var curContext = this.curContext();\n if (!curContext || !curContext.preserveSpace) { this.skipSpace(); }\n\n this.start = this.pos;\n if (this.options.locations) { this.startLoc = this.curPosition(); }\n if (this.pos >= this.input.length) { return this.finishToken(types$1.eof) }\n\n if (curContext.override) { return curContext.override(this) }\n else { this.readToken(this.fullCharCodeAtPos()); }\n};\n\npp.readToken = function(code) {\n // Identifier or keyword. '\\uXXXX' sequences are allowed in\n // identifiers, so '\\' also dispatches to that.\n if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\\' */)\n { return this.readWord() }\n\n return this.getTokenFromCode(code)\n};\n\npp.fullCharCodeAt = function(pos) {\n var code = this.input.charCodeAt(pos);\n if (code <= 0xd7ff || code >= 0xdc00) { return code }\n var next = this.input.charCodeAt(pos + 1);\n return next <= 0xdbff || next >= 0xe000 ? code : (code << 10) + next - 0x35fdc00\n};\n\npp.fullCharCodeAtPos = function() {\n return this.fullCharCodeAt(this.pos)\n};\n\npp.skipBlockComment = function() {\n var startLoc = this.options.onComment && this.curPosition();\n var start = this.pos, end = this.input.indexOf(\"*/\", this.pos += 2);\n if (end === -1) { this.raise(this.pos - 2, \"Unterminated comment\"); }\n this.pos = end + 2;\n if (this.options.locations) {\n for (var nextBreak = (void 0), pos = start; (nextBreak = nextLineBreak(this.input, pos, this.pos)) > -1;) {\n ++this.curLine;\n pos = this.lineStart = nextBreak;\n }\n }\n if (this.options.onComment)\n { this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos,\n startLoc, this.curPosition()); }\n};\n\npp.skipLineComment = function(startSkip) {\n var start = this.pos;\n var startLoc = this.options.onComment && this.curPosition();\n var ch = this.input.charCodeAt(this.pos += startSkip);\n while (this.pos < this.input.length && !isNewLine(ch)) {\n ch = this.input.charCodeAt(++this.pos);\n }\n if (this.options.onComment)\n { this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos,\n startLoc, this.curPosition()); }\n};\n\n// Called at the start of the parse and after every token. Skips\n// whitespace and comments, and.\n\npp.skipSpace = function() {\n loop: while (this.pos < this.input.length) {\n var ch = this.input.charCodeAt(this.pos);\n switch (ch) {\n case 32: case 160: // ' '\n ++this.pos;\n break\n case 13:\n if (this.input.charCodeAt(this.pos + 1) === 10) {\n ++this.pos;\n }\n case 10: case 8232: case 8233:\n ++this.pos;\n if (this.options.locations) {\n ++this.curLine;\n this.lineStart = this.pos;\n }\n break\n case 47: // '/'\n switch (this.input.charCodeAt(this.pos + 1)) {\n case 42: // '*'\n this.skipBlockComment();\n break\n case 47:\n this.skipLineComment(2);\n break\n default:\n break loop\n }\n break\n default:\n if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) {\n ++this.pos;\n } else {\n break loop\n }\n }\n }\n};\n\n// Called at the end of every token. Sets `end`, `val`, and\n// maintains `context` and `exprAllowed`, and skips the space after\n// the token, so that the next one's `start` will point at the\n// right position.\n\npp.finishToken = function(type, val) {\n this.end = this.pos;\n if (this.options.locations) { this.endLoc = this.curPosition(); }\n var prevType = this.type;\n this.type = type;\n this.value = val;\n\n this.updateContext(prevType);\n};\n\n// ### Token reading\n\n// This is the function that is called to fetch the next token. It\n// is somewhat obscure, because it works in character codes rather\n// than characters, and because operator parsing has been inlined\n// into it.\n//\n// All in the name of speed.\n//\npp.readToken_dot = function() {\n var next = this.input.charCodeAt(this.pos + 1);\n if (next >= 48 && next <= 57) { return this.readNumber(true) }\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.'\n this.pos += 3;\n return this.finishToken(types$1.ellipsis)\n } else {\n ++this.pos;\n return this.finishToken(types$1.dot)\n }\n};\n\npp.readToken_slash = function() { // '/'\n var next = this.input.charCodeAt(this.pos + 1);\n if (this.exprAllowed) { ++this.pos; return this.readRegexp() }\n if (next === 61) { return this.finishOp(types$1.assign, 2) }\n return this.finishOp(types$1.slash, 1)\n};\n\npp.readToken_mult_modulo_exp = function(code) { // '%*'\n var next = this.input.charCodeAt(this.pos + 1);\n var size = 1;\n var tokentype = code === 42 ? types$1.star : types$1.modulo;\n\n // exponentiation operator ** and **=\n if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) {\n ++size;\n tokentype = types$1.starstar;\n next = this.input.charCodeAt(this.pos + 2);\n }\n\n if (next === 61) { return this.finishOp(types$1.assign, size + 1) }\n return this.finishOp(tokentype, size)\n};\n\npp.readToken_pipe_amp = function(code) { // '|&'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === code) {\n if (this.options.ecmaVersion >= 12) {\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (next2 === 61) { return this.finishOp(types$1.assign, 3) }\n }\n return this.finishOp(code === 124 ? types$1.logicalOR : types$1.logicalAND, 2)\n }\n if (next === 61) { return this.finishOp(types$1.assign, 2) }\n return this.finishOp(code === 124 ? types$1.bitwiseOR : types$1.bitwiseAND, 1)\n};\n\npp.readToken_caret = function() { // '^'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 61) { return this.finishOp(types$1.assign, 2) }\n return this.finishOp(types$1.bitwiseXOR, 1)\n};\n\npp.readToken_plus_min = function(code) { // '+-'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === code) {\n if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 &&\n (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) {\n // A `-->` line comment\n this.skipLineComment(3);\n this.skipSpace();\n return this.nextToken()\n }\n return this.finishOp(types$1.incDec, 2)\n }\n if (next === 61) { return this.finishOp(types$1.assign, 2) }\n return this.finishOp(types$1.plusMin, 1)\n};\n\npp.readToken_lt_gt = function(code) { // '<>'\n var next = this.input.charCodeAt(this.pos + 1);\n var size = 1;\n if (next === code) {\n size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2;\n if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types$1.assign, size + 1) }\n return this.finishOp(types$1.bitShift, size)\n }\n if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n this.input.charCodeAt(this.pos + 3) === 45) {\n // `<!--`, an XML-style comment that should be interpreted as a line comment\n this.skipLineComment(4);\n this.skipSpace();\n return this.nextToken()\n }\n if (next === 61) { size = 2; }\n return this.finishOp(types$1.relational, size)\n};\n\npp.readToken_eq_excl = function(code) { // '=!'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 61) { return this.finishOp(types$1.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2) }\n if (code === 61 && next === 62 && this.options.ecmaVersion >= 6) { // '=>'\n this.pos += 2;\n return this.finishToken(types$1.arrow)\n }\n return this.finishOp(code === 61 ? types$1.eq : types$1.prefix, 1)\n};\n\npp.readToken_question = function() { // '?'\n var ecmaVersion = this.options.ecmaVersion;\n if (ecmaVersion >= 11) {\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 46) {\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (next2 < 48 || next2 > 57) { return this.finishOp(types$1.questionDot, 2) }\n }\n if (next === 63) {\n if (ecmaVersion >= 12) {\n var next2$1 = this.input.charCodeAt(this.pos + 2);\n if (next2$1 === 61) { return this.finishOp(types$1.assign, 3) }\n }\n return this.finishOp(types$1.coalesce, 2)\n }\n }\n return this.finishOp(types$1.question, 1)\n};\n\npp.readToken_numberSign = function() { // '#'\n var ecmaVersion = this.options.ecmaVersion;\n var code = 35; // '#'\n if (ecmaVersion >= 13) {\n ++this.pos;\n code = this.fullCharCodeAtPos();\n if (isIdentifierStart(code, true) || code === 92 /* '\\' */) {\n return this.finishToken(types$1.privateId, this.readWord1())\n }\n }\n\n this.raise(this.pos, \"Unexpected character '\" + codePointToString(code) + \"'\");\n};\n\npp.getTokenFromCode = function(code) {\n switch (code) {\n // The interpretation of a dot depends on whether it is followed\n // by a digit or another two dots.\n case 46: // '.'\n return this.readToken_dot()\n\n // Punctuation tokens.\n case 40: ++this.pos; return this.finishToken(types$1.parenL)\n case 41: ++this.pos; return this.finishToken(types$1.parenR)\n case 59: ++this.pos; return this.finishToken(types$1.semi)\n case 44: ++this.pos; return this.finishToken(types$1.comma)\n case 91: ++this.pos; return this.finishToken(types$1.bracketL)\n case 93: ++this.pos; return this.finishToken(types$1.bracketR)\n case 123: ++this.pos; return this.finishToken(types$1.braceL)\n case 125: ++this.pos; return this.finishToken(types$1.braceR)\n case 58: ++this.pos; return this.finishToken(types$1.colon)\n\n case 96: // '`'\n if (this.options.ecmaVersion < 6) { break }\n ++this.pos;\n return this.finishToken(types$1.backQuote)\n\n case 48: // '0'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 120 || next === 88) { return this.readRadixNumber(16) } // '0x', '0X' - hex number\n if (this.options.ecmaVersion >= 6) {\n if (next === 111 || next === 79) { return this.readRadixNumber(8) } // '0o', '0O' - octal number\n if (next === 98 || next === 66) { return this.readRadixNumber(2) } // '0b', '0B' - binary number\n }\n\n // Anything else beginning with a digit is an integer, octal\n // number, or float.\n case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: // 1-9\n return this.readNumber(false)\n\n // Quotes produce strings.\n case 34: case 39: // '\"', \"'\"\n return this.readString(code)\n\n // Operators are parsed inline in tiny state machines. '=' (61) is\n // often referred to. `finishOp` simply skips the amount of\n // characters it is given as second argument, and returns a token\n // of the type given by its first argument.\n case 47: // '/'\n return this.readToken_slash()\n\n case 37: case 42: // '%*'\n return this.readToken_mult_modulo_exp(code)\n\n case 124: case 38: // '|&'\n return this.readToken_pipe_amp(code)\n\n case 94: // '^'\n return this.readToken_caret()\n\n case 43: case 45: // '+-'\n return this.readToken_plus_min(code)\n\n case 60: case 62: // '<>'\n return this.readToken_lt_gt(code)\n\n case 61: case 33: // '=!'\n return this.readToken_eq_excl(code)\n\n case 63: // '?'\n return this.readToken_question()\n\n case 126: // '~'\n return this.finishOp(types$1.prefix, 1)\n\n case 35: // '#'\n return this.readToken_numberSign()\n }\n\n this.raise(this.pos, \"Unexpected character '\" + codePointToString(code) + \"'\");\n};\n\npp.finishOp = function(type, size) {\n var str = this.input.slice(this.pos, this.pos + size);\n this.pos += size;\n return this.finishToken(type, str)\n};\n\npp.readRegexp = function() {\n var escaped, inClass, start = this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(start, \"Unterminated regular expression\"); }\n var ch = this.input.charAt(this.pos);\n if (lineBreak.test(ch)) { this.raise(start, \"Unterminated regular expression\"); }\n if (!escaped) {\n if (ch === \"[\") { inClass = true; }\n else if (ch === \"]\" && inClass) { inClass = false; }\n else if (ch === \"/\" && !inClass) { break }\n escaped = ch === \"\\\\\";\n } else { escaped = false; }\n ++this.pos;\n }\n var pattern = this.input.slice(start, this.pos);\n ++this.pos;\n var flagsStart = this.pos;\n var flags = this.readWord1();\n if (this.containsEsc) { this.unexpected(flagsStart); }\n\n // Validate pattern\n var state = this.regexpState || (this.regexpState = new RegExpValidationState(this));\n state.reset(start, pattern, flags);\n this.validateRegExpFlags(state);\n this.validateRegExpPattern(state);\n\n // Create Literal#value property value.\n var value = null;\n try {\n value = new RegExp(pattern, flags);\n } catch (e) {\n // ESTree requires null if it failed to instantiate RegExp object.\n // https://github.com/estree/estree/blob/a27003adf4fd7bfad44de9cef372a2eacd527b1c/es5.md#regexpliteral\n }\n\n return this.finishToken(types$1.regexp, {pattern: pattern, flags: flags, value: value})\n};\n\n// Read an integer in the given radix. Return null if zero digits\n// were read, the integer value otherwise. When `len` is given, this\n// will return `null` unless the integer has exactly `len` digits.\n\npp.readInt = function(radix, len, maybeLegacyOctalNumericLiteral) {\n // `len` is used for character escape sequences. In that case, disallow separators.\n var allowSeparators = this.options.ecmaVersion >= 12 && len === undefined;\n\n // `maybeLegacyOctalNumericLiteral` is true if it doesn't have prefix (0x,0o,0b)\n // and isn't fraction part nor exponent part. In that case, if the first digit\n // is zero then disallow separators.\n var isLegacyOctalNumericLiteral = maybeLegacyOctalNumericLiteral && this.input.charCodeAt(this.pos) === 48;\n\n var start = this.pos, total = 0, lastCode = 0;\n for (var i = 0, e = len == null ? Infinity : len; i < e; ++i, ++this.pos) {\n var code = this.input.charCodeAt(this.pos), val = (void 0);\n\n if (allowSeparators && code === 95) {\n if (isLegacyOctalNumericLiteral) { this.raiseRecoverable(this.pos, \"Numeric separator is not allowed in legacy octal numeric literals\"); }\n if (lastCode === 95) { this.raiseRecoverable(this.pos, \"Numeric separator must be exactly one underscore\"); }\n if (i === 0) { this.raiseRecoverable(this.pos, \"Numeric separator is not allowed at the first of digits\"); }\n lastCode = code;\n continue\n }\n\n if (code >= 97) { val = code - 97 + 10; } // a\n else if (code >= 65) { val = code - 65 + 10; } // A\n else if (code >= 48 && code <= 57) { val = code - 48; } // 0-9\n else { val = Infinity; }\n if (val >= radix) { break }\n lastCode = code;\n total = total * radix + val;\n }\n\n if (allowSeparators && lastCode === 95) { this.raiseRecoverable(this.pos - 1, \"Numeric separator is not allowed at the last of digits\"); }\n if (this.pos === start || len != null && this.pos - start !== len) { return null }\n\n return total\n};\n\nfunction stringToNumber(str, isLegacyOctalNumericLiteral) {\n if (isLegacyOctalNumericLiteral) {\n return parseInt(str, 8)\n }\n\n // `parseFloat(value)` stops parsing at the first numeric separator then returns a wrong value.\n return parseFloat(str.replace(/_/g, \"\"))\n}\n\nfunction stringToBigInt(str) {\n if (typeof BigInt !== \"function\") {\n return null\n }\n\n // `BigInt(value)` throws syntax error if the string contains numeric separators.\n return BigInt(str.replace(/_/g, \"\"))\n}\n\npp.readRadixNumber = function(radix) {\n var start = this.pos;\n this.pos += 2; // 0x\n var val = this.readInt(radix);\n if (val == null) { this.raise(this.start + 2, \"Expected number in radix \" + radix); }\n if (this.options.ecmaVersion >= 11 && this.input.charCodeAt(this.pos) === 110) {\n val = stringToBigInt(this.input.slice(start, this.pos));\n ++this.pos;\n } else if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n return this.finishToken(types$1.num, val)\n};\n\n// Read an integer, octal integer, or floating-point number.\n\npp.readNumber = function(startsWithDot) {\n var start = this.pos;\n if (!startsWithDot && this.readInt(10, undefined, true) === null) { this.raise(start, \"Invalid number\"); }\n var octal = this.pos - start >= 2 && this.input.charCodeAt(start) === 48;\n if (octal && this.strict) { this.raise(start, \"Invalid number\"); }\n var next = this.input.charCodeAt(this.pos);\n if (!octal && !startsWithDot && this.options.ecmaVersion >= 11 && next === 110) {\n var val$1 = stringToBigInt(this.input.slice(start, this.pos));\n ++this.pos;\n if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n return this.finishToken(types$1.num, val$1)\n }\n if (octal && /[89]/.test(this.input.slice(start, this.pos))) { octal = false; }\n if (next === 46 && !octal) { // '.'\n ++this.pos;\n this.readInt(10);\n next = this.input.charCodeAt(this.pos);\n }\n if ((next === 69 || next === 101) && !octal) { // 'eE'\n next = this.input.charCodeAt(++this.pos);\n if (next === 43 || next === 45) { ++this.pos; } // '+-'\n if (this.readInt(10) === null) { this.raise(start, \"Invalid number\"); }\n }\n if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n\n var val = stringToNumber(this.input.slice(start, this.pos), octal);\n return this.finishToken(types$1.num, val)\n};\n\n// Read a string value, interpreting backslash-escapes.\n\npp.readCodePoint = function() {\n var ch = this.input.charCodeAt(this.pos), code;\n\n if (ch === 123) { // '{'\n if (this.options.ecmaVersion < 6) { this.unexpected(); }\n var codePos = ++this.pos;\n code = this.readHexChar(this.input.indexOf(\"}\", this.pos) - this.pos);\n ++this.pos;\n if (code > 0x10FFFF) { this.invalidStringToken(codePos, \"Code point out of bounds\"); }\n } else {\n code = this.readHexChar(4);\n }\n return code\n};\n\npp.readString = function(quote) {\n var out = \"\", chunkStart = ++this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(this.start, \"Unterminated string constant\"); }\n var ch = this.input.charCodeAt(this.pos);\n if (ch === quote) { break }\n if (ch === 92) { // '\\'\n out += this.input.slice(chunkStart, this.pos);\n out += this.readEscapedChar(false);\n chunkStart = this.pos;\n } else if (ch === 0x2028 || ch === 0x2029) {\n if (this.options.ecmaVersion < 10) { this.raise(this.start, \"Unterminated string constant\"); }\n ++this.pos;\n if (this.options.locations) {\n this.curLine++;\n this.lineStart = this.pos;\n }\n } else {\n if (isNewLine(ch)) { this.raise(this.start, \"Unterminated string constant\"); }\n ++this.pos;\n }\n }\n out += this.input.slice(chunkStart, this.pos++);\n return this.finishToken(types$1.string, out)\n};\n\n// Reads template string tokens.\n\nvar INVALID_TEMPLATE_ESCAPE_ERROR = {};\n\npp.tryReadTemplateToken = function() {\n this.inTemplateElement = true;\n try {\n this.readTmplToken();\n } catch (err) {\n if (err === INVALID_TEMPLATE_ESCAPE_ERROR) {\n this.readInvalidTemplateToken();\n } else {\n throw err\n }\n }\n\n this.inTemplateElement = false;\n};\n\npp.invalidStringToken = function(position, message) {\n if (this.inTemplateElement && this.options.ecmaVersion >= 9) {\n throw INVALID_TEMPLATE_ESCAPE_ERROR\n } else {\n this.raise(position, message);\n }\n};\n\npp.readTmplToken = function() {\n var out = \"\", chunkStart = this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(this.start, \"Unterminated template\"); }\n var ch = this.input.charCodeAt(this.pos);\n if (ch === 96 || ch === 36 && this.input.charCodeAt(this.pos + 1) === 123) { // '`', '${'\n if (this.pos === this.start && (this.type === types$1.template || this.type === types$1.invalidTemplate)) {\n if (ch === 36) {\n this.pos += 2;\n return this.finishToken(types$1.dollarBraceL)\n } else {\n ++this.pos;\n return this.finishToken(types$1.backQuote)\n }\n }\n out += this.input.slice(chunkStart, this.pos);\n return this.finishToken(types$1.template, out)\n }\n if (ch === 92) { // '\\'\n out += this.input.slice(chunkStart, this.pos);\n out += this.readEscapedChar(true);\n chunkStart = this.pos;\n } else if (isNewLine(ch)) {\n out += this.input.slice(chunkStart, this.pos);\n ++this.pos;\n switch (ch) {\n case 13:\n if (this.input.charCodeAt(this.pos) === 10) { ++this.pos; }\n case 10:\n out += \"\\n\";\n break\n default:\n out += String.fromCharCode(ch);\n break\n }\n if (this.options.locations) {\n ++this.curLine;\n this.lineStart = this.pos;\n }\n chunkStart = this.pos;\n } else {\n ++this.pos;\n }\n }\n};\n\n// Reads a template token to search for the end, without validating any escape sequences\npp.readInvalidTemplateToken = function() {\n for (; this.pos < this.input.length; this.pos++) {\n switch (this.input[this.pos]) {\n case \"\\\\\":\n ++this.pos;\n break\n\n case \"$\":\n if (this.input[this.pos + 1] !== \"{\") { break }\n // fall through\n case \"`\":\n return this.finishToken(types$1.invalidTemplate, this.input.slice(this.start, this.pos))\n\n case \"\\r\":\n if (this.input[this.pos + 1] === \"\\n\") { ++this.pos; }\n // fall through\n case \"\\n\": case \"\\u2028\": case \"\\u2029\":\n ++this.curLine;\n this.lineStart = this.pos + 1;\n break\n }\n }\n this.raise(this.start, \"Unterminated template\");\n};\n\n// Used to read escaped characters\n\npp.readEscapedChar = function(inTemplate) {\n var ch = this.input.charCodeAt(++this.pos);\n ++this.pos;\n switch (ch) {\n case 110: return \"\\n\" // 'n' -> '\\n'\n case 114: return \"\\r\" // 'r' -> '\\r'\n case 120: return String.fromCharCode(this.readHexChar(2)) // 'x'\n case 117: return codePointToString(this.readCodePoint()) // 'u'\n case 116: return \"\\t\" // 't' -> '\\t'\n case 98: return \"\\b\" // 'b' -> '\\b'\n case 118: return \"\\u000b\" // 'v' -> '\\u000b'\n case 102: return \"\\f\" // 'f' -> '\\f'\n case 13: if (this.input.charCodeAt(this.pos) === 10) { ++this.pos; } // '\\r\\n'\n case 10: // ' \\n'\n if (this.options.locations) { this.lineStart = this.pos; ++this.curLine; }\n return \"\"\n case 56:\n case 57:\n if (this.strict) {\n this.invalidStringToken(\n this.pos - 1,\n \"Invalid escape sequence\"\n );\n }\n if (inTemplate) {\n var codePos = this.pos - 1;\n\n this.invalidStringToken(\n codePos,\n \"Invalid escape sequence in template string\"\n );\n }\n default:\n if (ch >= 48 && ch <= 55) {\n var octalStr = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0];\n var octal = parseInt(octalStr, 8);\n if (octal > 255) {\n octalStr = octalStr.slice(0, -1);\n octal = parseInt(octalStr, 8);\n }\n this.pos += octalStr.length - 1;\n ch = this.input.charCodeAt(this.pos);\n if ((octalStr !== \"0\" || ch === 56 || ch === 57) && (this.strict || inTemplate)) {\n this.invalidStringToken(\n this.pos - 1 - octalStr.length,\n inTemplate\n ? \"Octal literal in template string\"\n : \"Octal literal in strict mode\"\n );\n }\n return String.fromCharCode(octal)\n }\n if (isNewLine(ch)) {\n // Unicode new line characters after \\ get removed from output in both\n // template literals and strings\n if (this.options.locations) { this.lineStart = this.pos; ++this.curLine; }\n return \"\"\n }\n return String.fromCharCode(ch)\n }\n};\n\n// Used to read character escape sequences ('\\x', '\\u', '\\U').\n\npp.readHexChar = function(len) {\n var codePos = this.pos;\n var n = this.readInt(16, len);\n if (n === null) { this.invalidStringToken(codePos, \"Bad character escape sequence\"); }\n return n\n};\n\n// Read an identifier, and return it as a string. Sets `this.containsEsc`\n// to whether the word contained a '\\u' escape.\n//\n// Incrementally adds only escaped chars, adding other chunks as-is\n// as a micro-optimization.\n\npp.readWord1 = function() {\n this.containsEsc = false;\n var word = \"\", first = true, chunkStart = this.pos;\n var astral = this.options.ecmaVersion >= 6;\n while (this.pos < this.input.length) {\n var ch = this.fullCharCodeAtPos();\n if (isIdentifierChar(ch, astral)) {\n this.pos += ch <= 0xffff ? 1 : 2;\n } else if (ch === 92) { // \"\\\"\n this.containsEsc = true;\n word += this.input.slice(chunkStart, this.pos);\n var escStart = this.pos;\n if (this.input.charCodeAt(++this.pos) !== 117) // \"u\"\n { this.invalidStringToken(this.pos, \"Expecting Unicode escape sequence \\\\uXXXX\"); }\n ++this.pos;\n var esc = this.readCodePoint();\n if (!(first ? isIdentifierStart : isIdentifierChar)(esc, astral))\n { this.invalidStringToken(escStart, \"Invalid Unicode escape\"); }\n word += codePointToString(esc);\n chunkStart = this.pos;\n } else {\n break\n }\n first = false;\n }\n return word + this.input.slice(chunkStart, this.pos)\n};\n\n// Read an identifier or keyword token. Will check for reserved\n// words when necessary.\n\npp.readWord = function() {\n var word = this.readWord1();\n var type = types$1.name;\n if (this.keywords.test(word)) {\n type = keywords[word];\n }\n return this.finishToken(type, word)\n};\n\n// Acorn is a tiny, fast JavaScript parser written in JavaScript.\n//\n// Acorn was written by Marijn Haverbeke, Ingvar Stepanyan, and\n// various contributors and released under an MIT license.\n//\n// Git repositories for Acorn are available at\n//\n// http://marijnhaverbeke.nl/git/acorn\n// https://github.com/acornjs/acorn.git\n//\n// Please use the [github bug tracker][ghbt] to report issues.\n//\n// [ghbt]: https://github.com/acornjs/acorn/issues\n\n\nvar version = \"8.16.0\";\n\nParser.acorn = {\n Parser: Parser,\n version: version,\n defaultOptions: defaultOptions,\n Position: Position,\n SourceLocation: SourceLocation,\n getLineInfo: getLineInfo,\n Node: Node,\n TokenType: TokenType,\n tokTypes: types$1,\n keywordTypes: keywords,\n TokContext: TokContext,\n tokContexts: types,\n isIdentifierChar: isIdentifierChar,\n isIdentifierStart: isIdentifierStart,\n Token: Token,\n isNewLine: isNewLine,\n lineBreak: lineBreak,\n lineBreakG: lineBreakG,\n nonASCIIwhitespace: nonASCIIwhitespace\n};\n\n// The main exported interface (under `self.acorn` when in the\n// browser) is a `parse` function that takes a code string and returns\n// an abstract syntax tree as specified by the [ESTree spec][estree].\n//\n// [estree]: https://github.com/estree/estree\n\nfunction parse(input, options) {\n return Parser.parse(input, options)\n}\n\n// This function tries to parse a single expression at a given\n// offset in a string. Useful for parsing mixed-language formats\n// that embed JavaScript expressions.\n\nfunction parseExpressionAt(input, pos, options) {\n return Parser.parseExpressionAt(input, pos, options)\n}\n\n// Acorn is organized as a tokenizer and a recursive-descent parser.\n// The `tokenizer` export provides an interface to the tokenizer.\n\nfunction tokenizer(input, options) {\n return Parser.tokenizer(input, options)\n}\n\nexport { Node, Parser, Position, SourceLocation, TokContext, Token, TokenType, defaultOptions, getLineInfo, isIdentifierChar, isIdentifierStart, isNewLine, keywords as keywordTypes, lineBreak, lineBreakG, nonASCIIwhitespace, parse, parseExpressionAt, types as tokContexts, types$1 as tokTypes, tokenizer, version };\n","// Astring is a tiny and fast JavaScript code generator from an ESTree-compliant AST.\n//\n// Astring was written by David Bonnet and released under an MIT license.\n//\n// The Git repository for Astring is available at:\n// https://github.com/davidbonnet/astring.git\n//\n// Please use the GitHub bug tracker to report issues:\n// https://github.com/davidbonnet/astring/issues\n\nconst { stringify } = JSON\n\n/* c8 ignore if */\nif (!String.prototype.repeat) {\n /* c8 ignore next */\n throw new Error(\n 'String.prototype.repeat is undefined, see https://github.com/davidbonnet/astring#installation',\n )\n}\n\n/* c8 ignore if */\nif (!String.prototype.endsWith) {\n /* c8 ignore next */\n throw new Error(\n 'String.prototype.endsWith is undefined, see https://github.com/davidbonnet/astring#installation',\n )\n}\n\nconst OPERATOR_PRECEDENCE = {\n '||': 2,\n '??': 3,\n '&&': 4,\n '|': 5,\n '^': 6,\n '&': 7,\n '==': 8,\n '!=': 8,\n '===': 8,\n '!==': 8,\n '<': 9,\n '>': 9,\n '<=': 9,\n '>=': 9,\n in: 9,\n instanceof: 9,\n '<<': 10,\n '>>': 10,\n '>>>': 10,\n '+': 11,\n '-': 11,\n '*': 12,\n '%': 12,\n '/': 12,\n '**': 13,\n}\n\n// Enables parenthesis regardless of precedence\nexport const NEEDS_PARENTHESES = 17\n\nexport const EXPRESSIONS_PRECEDENCE = {\n // Definitions\n ArrayExpression: 20,\n TaggedTemplateExpression: 20,\n ThisExpression: 20,\n Identifier: 20,\n PrivateIdentifier: 20,\n Literal: 18,\n TemplateLiteral: 20,\n Super: 20,\n SequenceExpression: 20,\n // Operations\n MemberExpression: 19,\n ChainExpression: 19,\n CallExpression: 19,\n NewExpression: 19,\n // Other definitions\n ArrowFunctionExpression: NEEDS_PARENTHESES,\n ClassExpression: NEEDS_PARENTHESES,\n FunctionExpression: NEEDS_PARENTHESES,\n ObjectExpression: NEEDS_PARENTHESES,\n // Other operations\n UpdateExpression: 16,\n UnaryExpression: 15,\n AwaitExpression: 15,\n BinaryExpression: 14,\n LogicalExpression: 13,\n ConditionalExpression: 4,\n AssignmentExpression: 3,\n YieldExpression: 2,\n RestElement: 1,\n}\n\nfunction formatSequence(state, nodes) {\n /*\n Writes into `state` a sequence of `nodes`.\n */\n const { generator } = state\n state.write('(')\n if (nodes != null && nodes.length > 0) {\n generator[nodes[0].type](nodes[0], state)\n const { length } = nodes\n for (let i = 1; i < length; i++) {\n const param = nodes[i]\n state.write(', ')\n generator[param.type](param, state)\n }\n }\n state.write(')')\n}\n\nfunction expressionNeedsParenthesis(state, node, parentNode, isRightHand) {\n const nodePrecedence = state.expressionsPrecedence[node.type]\n if (nodePrecedence === NEEDS_PARENTHESES) {\n return true\n }\n const parentNodePrecedence = state.expressionsPrecedence[parentNode.type]\n if (nodePrecedence !== parentNodePrecedence) {\n // Different node types\n return (\n (!isRightHand &&\n nodePrecedence === 15 &&\n parentNodePrecedence === 14 &&\n parentNode.operator === '**') ||\n nodePrecedence < parentNodePrecedence\n )\n }\n if (nodePrecedence !== 13 && nodePrecedence !== 14) {\n // Not a `LogicalExpression` or `BinaryExpression`\n return false\n }\n if (node.operator === '**' && parentNode.operator === '**') {\n // Exponentiation operator has right-to-left associativity\n return !isRightHand\n }\n if (\n nodePrecedence === 13 &&\n parentNodePrecedence === 13 &&\n (node.operator === '??' || parentNode.operator === '??')\n ) {\n // Nullish coalescing and boolean operators cannot be combined\n return true\n }\n if (isRightHand) {\n // Parenthesis are used if both operators have the same precedence\n return (\n OPERATOR_PRECEDENCE[node.operator] <=\n OPERATOR_PRECEDENCE[parentNode.operator]\n )\n }\n return (\n OPERATOR_PRECEDENCE[node.operator] <\n OPERATOR_PRECEDENCE[parentNode.operator]\n )\n}\n\nfunction formatExpression(state, node, parentNode, isRightHand) {\n /*\n Writes into `state` the provided `node`, adding parenthesis around if the provided `parentNode` needs it. If `node` is a right-hand argument, the provided `isRightHand` parameter should be `true`.\n */\n const { generator } = state\n if (expressionNeedsParenthesis(state, node, parentNode, isRightHand)) {\n state.write('(')\n generator[node.type](node, state)\n state.write(')')\n } else {\n generator[node.type](node, state)\n }\n}\n\nfunction reindent(state, text, indent, lineEnd) {\n /*\n Writes into `state` the `text` string reindented with the provided `indent`.\n */\n const lines = text.split('\\n')\n const end = lines.length - 1\n state.write(lines[0].trim())\n if (end > 0) {\n state.write(lineEnd)\n for (let i = 1; i < end; i++) {\n state.write(indent + lines[i].trim() + lineEnd)\n }\n state.write(indent + lines[end].trim())\n }\n}\n\nfunction formatComments(state, comments, indent, lineEnd) {\n /*\n Writes into `state` the provided list of `comments`, with the given `indent` and `lineEnd` strings.\n Line comments will end with `\"\\n\"` regardless of the value of `lineEnd`.\n Expects to start on a new unindented line.\n */\n const { length } = comments\n for (let i = 0; i < length; i++) {\n const comment = comments[i]\n state.write(indent)\n if (comment.type[0] === 'L') {\n // Line comment\n state.write('// ' + comment.value.trim() + '\\n', comment)\n } else {\n // Block comment\n state.write('/*')\n reindent(state, comment.value, indent, lineEnd)\n state.write('*/' + lineEnd)\n }\n }\n}\n\nfunction hasCallExpression(node) {\n /*\n Returns `true` if the provided `node` contains a call expression and `false` otherwise.\n */\n let currentNode = node\n while (currentNode != null) {\n const { type } = currentNode\n if (type[0] === 'C' && type[1] === 'a') {\n // Is CallExpression\n return true\n } else if (type[0] === 'M' && type[1] === 'e' && type[2] === 'm') {\n // Is MemberExpression\n currentNode = currentNode.object\n } else {\n return false\n }\n }\n}\n\nfunction formatVariableDeclaration(state, node) {\n /*\n Writes into `state` a variable declaration.\n */\n const { generator } = state\n const { declarations } = node\n state.write(node.kind + ' ')\n const { length } = declarations\n if (length > 0) {\n generator.VariableDeclarator(declarations[0], state)\n for (let i = 1; i < length; i++) {\n state.write(', ')\n generator.VariableDeclarator(declarations[i], state)\n }\n }\n}\n\nlet ForInStatement,\n FunctionDeclaration,\n RestElement,\n BinaryExpression,\n ArrayExpression,\n BlockStatement\n\nexport const GENERATOR = {\n /*\n Default generator.\n */\n Program(node, state) {\n const indent = state.indent.repeat(state.indentLevel)\n const { lineEnd, writeComments } = state\n if (writeComments && node.comments != null) {\n formatComments(state, node.comments, indent, lineEnd)\n }\n const statements = node.body\n const { length } = statements\n for (let i = 0; i < length; i++) {\n const statement = statements[i]\n if (writeComments && statement.comments != null) {\n formatComments(state, statement.comments, indent, lineEnd)\n }\n state.write(indent)\n this[statement.type](statement, state)\n state.write(lineEnd)\n }\n if (writeComments && node.trailingComments != null) {\n formatComments(state, node.trailingComments, indent, lineEnd)\n }\n },\n BlockStatement: (BlockStatement = function (node, state) {\n const indent = state.indent.repeat(state.indentLevel++)\n const { lineEnd, writeComments } = state\n const statementIndent = indent + state.indent\n state.write('{')\n const statements = node.body\n if (statements != null && statements.length > 0) {\n state.write(lineEnd)\n if (writeComments && node.comments != null) {\n formatComments(state, node.comments, statementIndent, lineEnd)\n }\n const { length } = statements\n for (let i = 0; i < length; i++) {\n const statement = statements[i]\n if (writeComments && statement.comments != null) {\n formatComments(state, statement.comments, statementIndent, lineEnd)\n }\n state.write(statementIndent)\n this[statement.type](statement, state)\n state.write(lineEnd)\n }\n state.write(indent)\n } else {\n if (writeComments && node.comments != null) {\n state.write(lineEnd)\n formatComments(state, node.comments, statementIndent, lineEnd)\n state.write(indent)\n }\n }\n if (writeComments && node.trailingComments != null) {\n formatComments(state, node.trailingComments, statementIndent, lineEnd)\n }\n state.write('}')\n state.indentLevel--\n }),\n ClassBody: BlockStatement,\n StaticBlock(node, state) {\n state.write('static ')\n this.BlockStatement(node, state)\n },\n EmptyStatement(node, state) {\n state.write(';')\n },\n ExpressionStatement(node, state) {\n const precedence = state.expressionsPrecedence[node.expression.type]\n if (\n precedence === NEEDS_PARENTHESES ||\n (precedence === 3 && node.expression.left.type[0] === 'O')\n ) {\n // Should always have parentheses or is an AssignmentExpression to an ObjectPattern\n state.write('(')\n this[node.expression.type](node.expression, state)\n state.write(')')\n } else {\n this[node.expression.type](node.expression, state)\n }\n state.write(';')\n },\n IfStatement(node, state) {\n state.write('if (')\n this[node.test.type](node.test, state)\n state.write(') ')\n this[node.consequent.type](node.consequent, state)\n if (node.alternate != null) {\n state.write(' else ')\n this[node.alternate.type](node.alternate, state)\n }\n },\n LabeledStatement(node, state) {\n this[node.label.type](node.label, state)\n state.write(': ')\n this[node.body.type](node.body, state)\n },\n BreakStatement(node, state) {\n state.write('break')\n if (node.label != null) {\n state.write(' ')\n this[node.label.type](node.label, state)\n }\n state.write(';')\n },\n ContinueStatement(node, state) {\n state.write('continue')\n if (node.label != null) {\n state.write(' ')\n this[node.label.type](node.label, state)\n }\n state.write(';')\n },\n WithStatement(node, state) {\n state.write('with (')\n this[node.object.type](node.object, state)\n state.write(') ')\n this[node.body.type](node.body, state)\n },\n SwitchStatement(node, state) {\n const indent = state.indent.repeat(state.indentLevel++)\n const { lineEnd, writeComments } = state\n state.indentLevel++\n const caseIndent = indent + state.indent\n const statementIndent = caseIndent + state.indent\n state.write('switch (')\n this[node.discriminant.type](node.discriminant, state)\n state.write(') {' + lineEnd)\n const { cases: occurences } = node\n const { length: occurencesCount } = occurences\n for (let i = 0; i < occurencesCount; i++) {\n const occurence = occurences[i]\n if (writeComments && occurence.comments != null) {\n formatComments(state, occurence.comments, caseIndent, lineEnd)\n }\n if (occurence.test) {\n state.write(caseIndent + 'case ')\n this[occurence.test.type](occurence.test, state)\n state.write(':' + lineEnd)\n } else {\n state.write(caseIndent + 'default:' + lineEnd)\n }\n const { consequent } = occurence\n const { length: consequentCount } = consequent\n for (let i = 0; i < consequentCount; i++) {\n const statement = consequent[i]\n if (writeComments && statement.comments != null) {\n formatComments(state, statement.comments, statementIndent, lineEnd)\n }\n state.write(statementIndent)\n this[statement.type](statement, state)\n state.write(lineEnd)\n }\n }\n state.indentLevel -= 2\n state.write(indent + '}')\n },\n ReturnStatement(node, state) {\n state.write('return')\n if (node.argument) {\n state.write(' ')\n this[node.argument.type](node.argument, state)\n }\n state.write(';')\n },\n ThrowStatement(node, state) {\n state.write('throw ')\n this[node.argument.type](node.argument, state)\n state.write(';')\n },\n TryStatement(node, state) {\n state.write('try ')\n this[node.block.type](node.block, state)\n if (node.handler) {\n const { handler } = node\n if (handler.param == null) {\n state.write(' catch ')\n } else {\n state.write(' catch (')\n this[handler.param.type](handler.param, state)\n state.write(') ')\n }\n this[handler.body.type](handler.body, state)\n }\n if (node.finalizer) {\n state.write(' finally ')\n this[node.finalizer.type](node.finalizer, state)\n }\n },\n WhileStatement(node, state) {\n state.write('while (')\n this[node.test.type](node.test, state)\n state.write(') ')\n this[node.body.type](node.body, state)\n },\n DoWhileStatement(node, state) {\n state.write('do ')\n this[node.body.type](node.body, state)\n state.write(' while (')\n this[node.test.type](node.test, state)\n state.write(');')\n },\n ForStatement(node, state) {\n state.write('for (')\n if (node.init != null) {\n const { init } = node\n if (init.type[0] === 'V') {\n formatVariableDeclaration(state, init)\n } else {\n this[init.type](init, state)\n }\n }\n state.write('; ')\n if (node.test) {\n this[node.test.type](node.test, state)\n }\n state.write('; ')\n if (node.update) {\n this[node.update.type](node.update, state)\n }\n state.write(') ')\n this[node.body.type](node.body, state)\n },\n ForInStatement: (ForInStatement = function (node, state) {\n state.write(`for ${node.await ? 'await ' : ''}(`)\n const { left } = node\n if (left.type[0] === 'V') {\n formatVariableDeclaration(state, left)\n } else {\n this[left.type](left, state)\n }\n // Identifying whether node.type is `ForInStatement` or `ForOfStatement`\n state.write(node.type[3] === 'I' ? ' in ' : ' of ')\n this[node.right.type](node.right, state)\n state.write(') ')\n this[node.body.type](node.body, state)\n }),\n ForOfStatement: ForInStatement,\n DebuggerStatement(node, state) {\n state.write('debugger;', node)\n },\n FunctionDeclaration: (FunctionDeclaration = function (node, state) {\n state.write(\n (node.async ? 'async ' : '') +\n (node.generator ? 'function* ' : 'function ') +\n (node.id ? node.id.name : ''),\n node,\n )\n formatSequence(state, node.params)\n state.write(' ')\n this[node.body.type](node.body, state)\n }),\n FunctionExpression: FunctionDeclaration,\n VariableDeclaration(node, state) {\n formatVariableDeclaration(state, node)\n state.write(';')\n },\n VariableDeclarator(node, state) {\n this[node.id.type](node.id, state)\n if (node.init != null) {\n state.write(' = ')\n this[node.init.type](node.init, state)\n }\n },\n ClassDeclaration(node, state) {\n state.write('class ' + (node.id ? `${node.id.name} ` : ''), node)\n if (node.superClass) {\n state.write('extends ')\n const { superClass } = node\n const { type } = superClass\n const precedence = state.expressionsPrecedence[type]\n if (\n (type[0] !== 'C' || type[1] !== 'l' || type[5] !== 'E') &&\n (precedence === NEEDS_PARENTHESES ||\n precedence < state.expressionsPrecedence.ClassExpression)\n ) {\n // Not a ClassExpression that needs parentheses\n state.write('(')\n this[node.superClass.type](superClass, state)\n state.write(')')\n } else {\n this[superClass.type](superClass, state)\n }\n state.write(' ')\n }\n this.ClassBody(node.body, state)\n },\n ImportDeclaration(node, state) {\n state.write('import ')\n const { specifiers, attributes } = node\n const { length } = specifiers\n // TODO: Once babili is fixed, put this after condition\n // https://github.com/babel/babili/issues/430\n let i = 0\n if (length > 0) {\n for (; i < length; ) {\n if (i > 0) {\n state.write(', ')\n }\n const specifier = specifiers[i]\n const type = specifier.type[6]\n if (type === 'D') {\n // ImportDefaultSpecifier\n state.write(specifier.local.name, specifier)\n i++\n } else if (type === 'N') {\n // ImportNamespaceSpecifier\n state.write('* as ' + specifier.local.name, specifier)\n i++\n } else {\n // ImportSpecifier\n break\n }\n }\n if (i < length) {\n state.write('{')\n for (;;) {\n const specifier = specifiers[i]\n const { name } = specifier.imported\n state.write(name, specifier)\n if (name !== specifier.local.name) {\n state.write(' as ' + specifier.local.name)\n }\n if (++i < length) {\n state.write(', ')\n } else {\n break\n }\n }\n state.write('}')\n }\n state.write(' from ')\n }\n this.Literal(node.source, state)\n\n if (attributes && attributes.length > 0) {\n state.write(' with { ')\n for (let i = 0; i < attributes.length; i++) {\n this.ImportAttribute(attributes[i], state)\n if (i < attributes.length - 1) state.write(', ')\n }\n\n state.write(' }')\n }\n state.write(';')\n },\n ImportAttribute(node, state) {\n this.Identifier(node.key, state)\n state.write(': ')\n this.Literal(node.value, state)\n },\n ImportExpression(node, state) {\n state.write('import(')\n this[node.source.type](node.source, state)\n state.write(')')\n },\n ExportDefaultDeclaration(node, state) {\n state.write('export default ')\n this[node.declaration.type](node.declaration, state)\n if (\n state.expressionsPrecedence[node.declaration.type] != null &&\n node.declaration.type[0] !== 'F'\n ) {\n // All expression nodes except `FunctionExpression`\n state.write(';')\n }\n },\n ExportNamedDeclaration(node, state) {\n state.write('export ')\n if (node.declaration) {\n this[node.declaration.type](node.declaration, state)\n } else {\n state.write('{')\n const { specifiers } = node,\n { length } = specifiers\n if (length > 0) {\n for (let i = 0; ; ) {\n const specifier = specifiers[i]\n const { name } = specifier.local\n state.write(name, specifier)\n if (name !== specifier.exported.name) {\n state.write(' as ' + specifier.exported.name)\n }\n if (++i < length) {\n state.write(', ')\n } else {\n break\n }\n }\n }\n state.write('}')\n if (node.source) {\n state.write(' from ')\n this.Literal(node.source, state)\n }\n\n if (node.attributes && node.attributes.length > 0) {\n state.write(' with { ')\n for (let i = 0; i < node.attributes.length; i++) {\n this.ImportAttribute(node.attributes[i], state)\n if (i < node.attributes.length - 1) state.write(', ')\n }\n\n state.write(' }')\n }\n\n state.write(';')\n }\n },\n ExportAllDeclaration(node, state) {\n if (node.exported != null) {\n state.write('export * as ' + node.exported.name + ' from ')\n } else {\n state.write('export * from ')\n }\n this.Literal(node.source, state)\n\n if (node.attributes && node.attributes.length > 0) {\n state.write(' with { ')\n for (let i = 0; i < node.attributes.length; i++) {\n this.ImportAttribute(node.attributes[i], state)\n if (i < node.attributes.length - 1) state.write(', ')\n }\n\n state.write(' }')\n }\n\n state.write(';')\n },\n MethodDefinition(node, state) {\n if (node.static) {\n state.write('static ')\n }\n const kind = node.kind[0]\n if (kind === 'g' || kind === 's') {\n // Getter or setter\n state.write(node.kind + ' ')\n }\n if (node.value.async) {\n state.write('async ')\n }\n if (node.value.generator) {\n state.write('*')\n }\n if (node.computed) {\n state.write('[')\n this[node.key.type](node.key, state)\n state.write(']')\n } else {\n this[node.key.type](node.key, state)\n }\n formatSequence(state, node.value.params)\n state.write(' ')\n this[node.value.body.type](node.value.body, state)\n },\n ClassExpression(node, state) {\n this.ClassDeclaration(node, state)\n },\n ArrowFunctionExpression(node, state) {\n state.write(node.async ? 'async ' : '', node)\n const { params } = node\n if (params != null) {\n // Omit parenthesis if only one named parameter\n if (params.length === 1 && params[0].type[0] === 'I') {\n // If params[0].type[0] starts with 'I', it can't be `ImportDeclaration` nor `IfStatement` and thus is `Identifier`\n state.write(params[0].name, params[0])\n } else {\n formatSequence(state, node.params)\n }\n }\n state.write(' => ')\n if (node.body.type[0] === 'O') {\n // Body is an object expression\n state.write('(')\n this.ObjectExpression(node.body, state)\n state.write(')')\n } else {\n this[node.body.type](node.body, state)\n }\n },\n ThisExpression(node, state) {\n state.write('this', node)\n },\n Super(node, state) {\n state.write('super', node)\n },\n RestElement: (RestElement = function (node, state) {\n state.write('...')\n this[node.argument.type](node.argument, state)\n }),\n SpreadElement: RestElement,\n YieldExpression(node, state) {\n state.write(node.delegate ? 'yield*' : 'yield')\n if (node.argument) {\n state.write(' ')\n this[node.argument.type](node.argument, state)\n }\n },\n AwaitExpression(node, state) {\n state.write('await ', node)\n formatExpression(state, node.argument, node)\n },\n TemplateLiteral(node, state) {\n const { quasis, expressions } = node\n state.write('`')\n const { length } = expressions\n for (let i = 0; i < length; i++) {\n const expression = expressions[i]\n const quasi = quasis[i]\n state.write(quasi.value.raw, quasi)\n state.write('${')\n this[expression.type](expression, state)\n state.write('}')\n }\n const quasi = quasis[quasis.length - 1]\n state.write(quasi.value.raw, quasi)\n state.write('`')\n },\n TemplateElement(node, state) {\n state.write(node.value.raw, node)\n },\n TaggedTemplateExpression(node, state) {\n formatExpression(state, node.tag, node)\n this[node.quasi.type](node.quasi, state)\n },\n ArrayExpression: (ArrayExpression = function (node, state) {\n state.write('[')\n if (node.elements.length > 0) {\n const { elements } = node,\n { length } = elements\n for (let i = 0; ; ) {\n const element = elements[i]\n if (element != null) {\n this[element.type](element, state)\n }\n if (++i < length) {\n state.write(', ')\n } else {\n if (element == null) {\n state.write(', ')\n }\n break\n }\n }\n }\n state.write(']')\n }),\n ArrayPattern: ArrayExpression,\n ObjectExpression(node, state) {\n const indent = state.indent.repeat(state.indentLevel++)\n const { lineEnd, writeComments } = state\n const propertyIndent = indent + state.indent\n state.write('{')\n if (node.properties.length > 0) {\n state.write(lineEnd)\n if (writeComments && node.comments != null) {\n formatComments(state, node.comments, propertyIndent, lineEnd)\n }\n const comma = ',' + lineEnd\n const { properties } = node,\n { length } = properties\n for (let i = 0; ; ) {\n const property = properties[i]\n if (writeComments && property.comments != null) {\n formatComments(state, property.comments, propertyIndent, lineEnd)\n }\n state.write(propertyIndent)\n this[property.type](property, state)\n if (++i < length) {\n state.write(comma)\n } else {\n break\n }\n }\n state.write(lineEnd)\n if (writeComments && node.trailingComments != null) {\n formatComments(state, node.trailingComments, propertyIndent, lineEnd)\n }\n state.write(indent + '}')\n } else if (writeComments) {\n if (node.comments != null) {\n state.write(lineEnd)\n formatComments(state, node.comments, propertyIndent, lineEnd)\n if (node.trailingComments != null) {\n formatComments(state, node.trailingComments, propertyIndent, lineEnd)\n }\n state.write(indent + '}')\n } else if (node.trailingComments != null) {\n state.write(lineEnd)\n formatComments(state, node.trailingComments, propertyIndent, lineEnd)\n state.write(indent + '}')\n } else {\n state.write('}')\n }\n } else {\n state.write('}')\n }\n state.indentLevel--\n },\n Property(node, state) {\n if (node.method || node.kind[0] !== 'i') {\n // Either a method or of kind `set` or `get` (not `init`)\n this.MethodDefinition(node, state)\n } else {\n if (!node.shorthand) {\n if (node.computed) {\n state.write('[')\n this[node.key.type](node.key, state)\n state.write(']')\n } else {\n this[node.key.type](node.key, state)\n }\n state.write(': ')\n }\n this[node.value.type](node.value, state)\n }\n },\n PropertyDefinition(node, state) {\n if (node.static) {\n state.write('static ')\n }\n if (node.computed) {\n state.write('[')\n }\n this[node.key.type](node.key, state)\n if (node.computed) {\n state.write(']')\n }\n if (node.value == null) {\n if (node.key.type[0] !== 'F') {\n state.write(';')\n }\n return\n }\n state.write(' = ')\n this[node.value.type](node.value, state)\n state.write(';')\n },\n ObjectPattern(node, state) {\n state.write('{')\n if (node.properties.length > 0) {\n const { properties } = node,\n { length } = properties\n for (let i = 0; ; ) {\n this[properties[i].type](properties[i], state)\n if (++i < length) {\n state.write(', ')\n } else {\n break\n }\n }\n }\n state.write('}')\n },\n SequenceExpression(node, state) {\n formatSequence(state, node.expressions)\n },\n UnaryExpression(node, state) {\n if (node.prefix) {\n const {\n operator,\n argument,\n argument: { type },\n } = node\n state.write(operator)\n const needsParentheses = expressionNeedsParenthesis(state, argument, node)\n if (\n !needsParentheses &&\n (operator.length > 1 ||\n (type[0] === 'U' &&\n (type[1] === 'n' || type[1] === 'p') &&\n argument.prefix &&\n argument.operator[0] === operator &&\n (operator === '+' || operator === '-')))\n ) {\n // Large operator or argument is UnaryExpression or UpdateExpression node\n state.write(' ')\n }\n if (needsParentheses) {\n state.write(operator.length > 1 ? ' (' : '(')\n this[type](argument, state)\n state.write(')')\n } else {\n this[type](argument, state)\n }\n } else {\n // FIXME: This case never occurs\n this[node.argument.type](node.argument, state)\n state.write(node.operator)\n }\n },\n UpdateExpression(node, state) {\n // Always applied to identifiers or members, no parenthesis check needed\n if (node.prefix) {\n state.write(node.operator)\n this[node.argument.type](node.argument, state)\n } else {\n this[node.argument.type](node.argument, state)\n state.write(node.operator)\n }\n },\n AssignmentExpression(node, state) {\n this[node.left.type](node.left, state)\n state.write(' ' + node.operator + ' ')\n this[node.right.type](node.right, state)\n },\n AssignmentPattern(node, state) {\n this[node.left.type](node.left, state)\n state.write(' = ')\n this[node.right.type](node.right, state)\n },\n BinaryExpression: (BinaryExpression = function (node, state) {\n const isIn = node.operator === 'in'\n if (isIn) {\n // Avoids confusion in `for` loops initializers\n state.write('(')\n }\n formatExpression(state, node.left, node, false)\n state.write(' ' + node.operator + ' ')\n formatExpression(state, node.right, node, true)\n if (isIn) {\n state.write(')')\n }\n }),\n LogicalExpression: BinaryExpression,\n ConditionalExpression(node, state) {\n const { test } = node\n const precedence = state.expressionsPrecedence[test.type]\n if (\n precedence === NEEDS_PARENTHESES ||\n precedence <= state.expressionsPrecedence.ConditionalExpression\n ) {\n state.write('(')\n this[test.type](test, state)\n state.write(')')\n } else {\n this[test.type](test, state)\n }\n state.write(' ? ')\n this[node.consequent.type](node.consequent, state)\n state.write(' : ')\n this[node.alternate.type](node.alternate, state)\n },\n NewExpression(node, state) {\n state.write('new ')\n const precedence = state.expressionsPrecedence[node.callee.type]\n if (\n precedence === NEEDS_PARENTHESES ||\n precedence < state.expressionsPrecedence.CallExpression ||\n hasCallExpression(node.callee)\n ) {\n state.write('(')\n this[node.callee.type](node.callee, state)\n state.write(')')\n } else {\n this[node.callee.type](node.callee, state)\n }\n formatSequence(state, node['arguments'])\n },\n CallExpression(node, state) {\n const precedence = state.expressionsPrecedence[node.callee.type]\n if (\n precedence === NEEDS_PARENTHESES ||\n precedence < state.expressionsPrecedence.CallExpression\n ) {\n state.write('(')\n this[node.callee.type](node.callee, state)\n state.write(')')\n } else {\n this[node.callee.type](node.callee, state)\n }\n if (node.optional) {\n state.write('?.')\n }\n formatSequence(state, node['arguments'])\n },\n ChainExpression(node, state) {\n this[node.expression.type](node.expression, state)\n },\n MemberExpression(node, state) {\n const precedence = state.expressionsPrecedence[node.object.type]\n if (\n precedence === NEEDS_PARENTHESES ||\n precedence < state.expressionsPrecedence.MemberExpression\n ) {\n state.write('(')\n this[node.object.type](node.object, state)\n state.write(')')\n } else {\n this[node.object.type](node.object, state)\n }\n if (node.computed) {\n if (node.optional) {\n state.write('?.')\n }\n state.write('[')\n this[node.property.type](node.property, state)\n state.write(']')\n } else {\n if (node.optional) {\n state.write('?.')\n } else {\n state.write('.')\n }\n this[node.property.type](node.property, state)\n }\n },\n MetaProperty(node, state) {\n state.write(node.meta.name + '.' + node.property.name, node)\n },\n Identifier(node, state) {\n state.write(node.name, node)\n },\n PrivateIdentifier(node, state) {\n state.write(`#${node.name}`, node)\n },\n Literal(node, state) {\n if (node.raw != null) {\n // Non-standard property\n state.write(node.raw, node)\n } else if (node.regex != null) {\n this.RegExpLiteral(node, state)\n } else if (node.bigint != null) {\n state.write(node.bigint + 'n', node)\n } else {\n state.write(stringify(node.value), node)\n }\n },\n RegExpLiteral(node, state) {\n const { regex } = node\n state.write(`/${regex.pattern}/${regex.flags}`, node)\n },\n}\n\nconst EMPTY_OBJECT = {}\n\n/*\nDEPRECATED: Alternate export of `GENERATOR`.\n*/\nexport const baseGenerator = GENERATOR\n\nclass State {\n constructor(options) {\n const setup = options == null ? EMPTY_OBJECT : options\n this.output = ''\n // Functional options\n if (setup.output != null) {\n this.output = setup.output\n this.write = this.writeToStream\n } else {\n this.output = ''\n }\n this.generator = setup.generator != null ? setup.generator : GENERATOR\n this.expressionsPrecedence =\n setup.expressionsPrecedence != null\n ? setup.expressionsPrecedence\n : EXPRESSIONS_PRECEDENCE\n // Formating setup\n this.indent = setup.indent != null ? setup.indent : ' '\n this.lineEnd = setup.lineEnd != null ? setup.lineEnd : '\\n'\n this.indentLevel =\n setup.startingIndentLevel != null ? setup.startingIndentLevel : 0\n this.writeComments = setup.comments ? setup.comments : false\n // Source map\n if (setup.sourceMap != null) {\n this.write =\n setup.output == null ? this.writeAndMap : this.writeToStreamAndMap\n this.sourceMap = setup.sourceMap\n this.line = 1\n this.column = 0\n this.lineEndSize = this.lineEnd.split('\\n').length - 1\n this.mapping = {\n original: null,\n // Uses the entire state to avoid generating ephemeral objects\n generated: this,\n name: undefined,\n source: setup.sourceMap.file || setup.sourceMap._file,\n }\n }\n }\n\n write(code) {\n this.output += code\n }\n\n writeToStream(code) {\n this.output.write(code)\n }\n\n writeAndMap(code, node) {\n this.output += code\n this.map(code, node)\n }\n\n writeToStreamAndMap(code, node) {\n this.output.write(code)\n this.map(code, node)\n }\n\n map(code, node) {\n if (node != null) {\n const { type } = node\n if (type[0] === 'L' && type[2] === 'n') {\n // LineComment\n this.column = 0\n this.line++\n return\n }\n if (node.loc != null) {\n const { mapping } = this\n mapping.original = node.loc.start\n mapping.name = node.name\n this.sourceMap.addMapping(mapping)\n }\n if (\n (type[0] === 'T' && type[8] === 'E') ||\n (type[0] === 'L' && type[1] === 'i' && typeof node.value === 'string')\n ) {\n // TemplateElement or Literal string node\n const { length } = code\n let { column, line } = this\n for (let i = 0; i < length; i++) {\n if (code[i] === '\\n') {\n column = 0\n line++\n } else {\n column++\n }\n }\n this.column = column\n this.line = line\n return\n }\n }\n const { length } = code\n const { lineEnd } = this\n if (length > 0) {\n if (\n this.lineEndSize > 0 &&\n (lineEnd.length === 1\n ? code[length - 1] === lineEnd\n : code.endsWith(lineEnd))\n ) {\n this.line += this.lineEndSize\n this.column = 0\n } else {\n this.column += length\n }\n }\n }\n\n toString() {\n return this.output\n }\n}\n\nexport function generate(node, options) {\n /*\n Returns a string representing the rendered code of the provided AST `node`.\n The `options` are:\n\n - `indent`: string to use for indentation (defaults to `␣␣`)\n - `lineEnd`: string to use for line endings (defaults to `\\n`)\n - `startingIndentLevel`: indent level to start from (defaults to `0`)\n - `comments`: generate comments if `true` (defaults to `false`)\n - `output`: output stream to write the rendered code to (defaults to `null`)\n - `generator`: custom code generator (defaults to `GENERATOR`)\n - `expressionsPrecedence`: custom map of node types and their precedence level (defaults to `EXPRESSIONS_PRECEDENCE`)\n */\n const state = new State(options)\n // Travel through the AST node and generate the code\n state.generator[node.type](node, state)\n return state.output\n}\n","/**\n * @typedef { import('estree').Node} Node\n * @typedef {{\n * skip: () => void;\n * remove: () => void;\n * replace: (node: Node) => void;\n * }} WalkerContext\n */\n\nexport class WalkerBase {\n\tconstructor() {\n\t\t/** @type {boolean} */\n\t\tthis.should_skip = false;\n\n\t\t/** @type {boolean} */\n\t\tthis.should_remove = false;\n\n\t\t/** @type {Node | null} */\n\t\tthis.replacement = null;\n\n\t\t/** @type {WalkerContext} */\n\t\tthis.context = {\n\t\t\tskip: () => (this.should_skip = true),\n\t\t\tremove: () => (this.should_remove = true),\n\t\t\treplace: (node) => (this.replacement = node)\n\t\t};\n\t}\n\n\t/**\n\t * @template {Node} Parent\n\t * @param {Parent | null | undefined} parent\n\t * @param {keyof Parent | null | undefined} prop\n\t * @param {number | null | undefined} index\n\t * @param {Node} node\n\t */\n\treplace(parent, prop, index, node) {\n\t\tif (parent && prop) {\n\t\t\tif (index != null) {\n\t\t\t\t/** @type {Array<Node>} */ (parent[prop])[index] = node;\n\t\t\t} else {\n\t\t\t\t/** @type {Node} */ (parent[prop]) = node;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @template {Node} Parent\n\t * @param {Parent | null | undefined} parent\n\t * @param {keyof Parent | null | undefined} prop\n\t * @param {number | null | undefined} index\n\t */\n\tremove(parent, prop, index) {\n\t\tif (parent && prop) {\n\t\t\tif (index !== null && index !== undefined) {\n\t\t\t\t/** @type {Array<Node>} */ (parent[prop]).splice(index, 1);\n\t\t\t} else {\n\t\t\t\tdelete parent[prop];\n\t\t\t}\n\t\t}\n\t}\n}\n","import { WalkerBase } from './walker.js';\n\n/**\n * @typedef { import('estree').Node} Node\n * @typedef { import('./walker.js').WalkerContext} WalkerContext\n * @typedef {(\n * this: WalkerContext,\n * node: Node,\n * parent: Node | null,\n * key: string | number | symbol | null | undefined,\n * index: number | null | undefined\n * ) => void} SyncHandler\n */\n\nexport class SyncWalker extends WalkerBase {\n\t/**\n\t *\n\t * @param {SyncHandler} [enter]\n\t * @param {SyncHandler} [leave]\n\t */\n\tconstructor(enter, leave) {\n\t\tsuper();\n\n\t\t/** @type {boolean} */\n\t\tthis.should_skip = false;\n\n\t\t/** @type {boolean} */\n\t\tthis.should_remove = false;\n\n\t\t/** @type {Node | null} */\n\t\tthis.replacement = null;\n\n\t\t/** @type {WalkerContext} */\n\t\tthis.context = {\n\t\t\tskip: () => (this.should_skip = true),\n\t\t\tremove: () => (this.should_remove = true),\n\t\t\treplace: (node) => (this.replacement = node)\n\t\t};\n\n\t\t/** @type {SyncHandler | undefined} */\n\t\tthis.enter = enter;\n\n\t\t/** @type {SyncHandler | undefined} */\n\t\tthis.leave = leave;\n\t}\n\n\t/**\n\t * @template {Node} Parent\n\t * @param {Node} node\n\t * @param {Parent | null} parent\n\t * @param {keyof Parent} [prop]\n\t * @param {number | null} [index]\n\t * @returns {Node | null}\n\t */\n\tvisit(node, parent, prop, index) {\n\t\tif (node) {\n\t\t\tif (this.enter) {\n\t\t\t\tconst _should_skip = this.should_skip;\n\t\t\t\tconst _should_remove = this.should_remove;\n\t\t\t\tconst _replacement = this.replacement;\n\t\t\t\tthis.should_skip = false;\n\t\t\t\tthis.should_remove = false;\n\t\t\t\tthis.replacement = null;\n\n\t\t\t\tthis.enter.call(this.context, node, parent, prop, index);\n\n\t\t\t\tif (this.replacement) {\n\t\t\t\t\tnode = this.replacement;\n\t\t\t\t\tthis.replace(parent, prop, index, node);\n\t\t\t\t}\n\n\t\t\t\tif (this.should_remove) {\n\t\t\t\t\tthis.remove(parent, prop, index);\n\t\t\t\t}\n\n\t\t\t\tconst skipped = this.should_skip;\n\t\t\t\tconst removed = this.should_remove;\n\n\t\t\t\tthis.should_skip = _should_skip;\n\t\t\t\tthis.should_remove = _should_remove;\n\t\t\t\tthis.replacement = _replacement;\n\n\t\t\t\tif (skipped) return node;\n\t\t\t\tif (removed) return null;\n\t\t\t}\n\n\t\t\t/** @type {keyof Node} */\n\t\t\tlet key;\n\n\t\t\tfor (key in node) {\n\t\t\t\t/** @type {unknown} */\n\t\t\t\tconst value = node[key];\n\n\t\t\t\tif (value && typeof value === 'object') {\n\t\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\t\tconst nodes = /** @type {Array<unknown>} */ (value);\n\t\t\t\t\t\tfor (let i = 0; i < nodes.length; i += 1) {\n\t\t\t\t\t\t\tconst item = nodes[i];\n\t\t\t\t\t\t\tif (isNode(item)) {\n\t\t\t\t\t\t\t\tif (!this.visit(item, node, key, i)) {\n\t\t\t\t\t\t\t\t\t// removed\n\t\t\t\t\t\t\t\t\ti--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (isNode(value)) {\n\t\t\t\t\t\tthis.visit(value, node, key, null);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.leave) {\n\t\t\t\tconst _replacement = this.replacement;\n\t\t\t\tconst _should_remove = this.should_remove;\n\t\t\t\tthis.replacement = null;\n\t\t\t\tthis.should_remove = false;\n\n\t\t\t\tthis.leave.call(this.context, node, parent, prop, index);\n\n\t\t\t\tif (this.replacement) {\n\t\t\t\t\tnode = this.replacement;\n\t\t\t\t\tthis.replace(parent, prop, index, node);\n\t\t\t\t}\n\n\t\t\t\tif (this.should_remove) {\n\t\t\t\t\tthis.remove(parent, prop, index);\n\t\t\t\t}\n\n\t\t\t\tconst removed = this.should_remove;\n\n\t\t\t\tthis.replacement = _replacement;\n\t\t\t\tthis.should_remove = _should_remove;\n\n\t\t\t\tif (removed) return null;\n\t\t\t}\n\t\t}\n\n\t\treturn node;\n\t}\n}\n\n/**\n * Ducktype a node.\n *\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction isNode(value) {\n\treturn (\n\t\tvalue !== null && typeof value === 'object' && 'type' in value && typeof value.type === 'string'\n\t);\n}\n","import { SyncWalker } from './sync.js';\nimport { AsyncWalker } from './async.js';\n\n/**\n * @typedef {import('estree').Node} Node\n * @typedef {import('./sync.js').SyncHandler} SyncHandler\n * @typedef {import('./async.js').AsyncHandler} AsyncHandler\n */\n\n/**\n * @param {Node} ast\n * @param {{\n * enter?: SyncHandler\n * leave?: SyncHandler\n * }} walker\n * @returns {Node | null}\n */\nexport function walk(ast, { enter, leave }) {\n\tconst instance = new SyncWalker(enter, leave);\n\treturn instance.visit(ast, null);\n}\n\n/**\n * @param {Node} ast\n * @param {{\n * enter?: AsyncHandler\n * leave?: AsyncHandler\n * }} walker\n * @returns {Promise<Node | null>}\n */\nexport async function asyncWalk(ast, { enter, leave }) {\n\tconst instance = new AsyncWalker(enter, leave);\n\treturn await instance.visit(ast, null);\n}\n","export const SOURCE_PROP = \"__componentSourceLoc\";\nexport const JSX_SOURCE_PROP = \"$componentSourceLoc\";\nexport const JSX_SOURCE_REGISTRY_SYMBOL = \"react-code-locator.jsxSourceRegistry\";\n","/**\n * Zero-dependency source transform using acorn\n * No Babel required - pure JavaScript AST manipulation\n */\n\nimport { parse, type Node as AcornNode } from \"acorn\";\nimport { generate } from \"astring\";\nimport { walk } from \"estree-walker\";\nimport type {\n Node,\n Program,\n FunctionDeclaration,\n FunctionExpression,\n ArrowFunctionExpression,\n VariableDeclarator,\n CallExpression,\n MemberExpression,\n Identifier,\n ExpressionStatement,\n AssignmentExpression,\n} from \"estree\";\nimport { SOURCE_PROP, JSX_SOURCE_PROP, JSX_SOURCE_REGISTRY_SYMBOL } from \"../constants\";\n\nexport interface TransformOptions {\n filename: string;\n projectRoot?: string;\n injectJsxSource?: boolean;\n injectComponentSource?: boolean;\n}\n\ninterface Location {\n line: number;\n column: number;\n}\n\nfunction toRelativeSource(filename: string, loc: Location, projectRoot?: string): string {\n const root = projectRoot || process.cwd();\n const relativePath = filename.startsWith(root) \n ? filename.slice(root.length + 1) \n : filename;\n return `${relativePath}:${loc.line}:${loc.column + 1}`;\n}\n\nfunction isComponentName(name: string): boolean {\n return /^[A-Z]/.test(name);\n}\n\nfunction isReactElementFactoryCall(node: CallExpression): boolean {\n const callee = node.callee;\n \n if (callee.type === \"Identifier\") {\n const name = callee.name;\n return [\n \"jsx\", \"jsxs\", \"jsxDEV\",\n \"_jsx\", \"_jsxs\", \"_jsxDEV\",\n \"createElement\"\n ].includes(name);\n }\n \n // React.createElement\n if (callee.type === \"MemberExpression\") {\n const obj = callee.object;\n const prop = callee.property;\n if (obj.type === \"Identifier\" && obj.name === \"React\" && \n prop.type === \"Identifier\" && prop.name === \"createElement\") {\n return true;\n }\n }\n \n return false;\n}\n\nfunction isSupportedComponentInit(\n node: Node | null\n): boolean {\n if (!node) return false;\n \n if (node.type === \"ArrowFunctionExpression\" || \n node.type === \"FunctionExpression\") {\n return true;\n }\n \n if (node.type !== \"CallExpression\") return false;\n \n const callee = node.callee;\n if (callee.type === \"Identifier\") {\n return [\"memo\", \"forwardRef\"].includes(callee.name);\n }\n \n // React.memo, React.forwardRef\n if (callee.type === \"MemberExpression\") {\n const obj = callee.object;\n const prop = callee.property;\n if (obj.type === \"Identifier\" && obj.name === \"React\" && \n prop.type === \"Identifier\") {\n return [\"memo\", \"forwardRef\"].includes(prop.name);\n }\n }\n \n return false;\n}\n\nfunction createSourceAssignment(name: string, sourceValue: string): ExpressionStatement {\n return {\n type: \"ExpressionStatement\",\n expression: {\n type: \"AssignmentExpression\",\n operator: \"=\",\n left: {\n type: \"MemberExpression\",\n object: { type: \"Identifier\", name },\n property: { type: \"Identifier\", name: SOURCE_PROP },\n computed: false,\n } as MemberExpression,\n right: { type: \"Literal\", value: sourceValue },\n } as AssignmentExpression,\n };\n}\n\nfunction createMarkElementHelper(): FunctionDeclaration {\n const code = `\nfunction _markReactElementSource(element, source) {\n const registryKey = Symbol.for(\"${JSX_SOURCE_REGISTRY_SYMBOL}\");\n let registry = globalThis[registryKey];\n if (!(registry instanceof WeakMap)) {\n registry = globalThis[registryKey] = new WeakMap();\n }\n if (element && typeof element === \"object\" && typeof element.props === \"object\") {\n registry.set(element.props, source);\n }\n return element;\n}\n`;\n return parse(code, { ecmaVersion: \"latest\" }).body[0] as FunctionDeclaration;\n}\n\nfunction wrapWithMarkElement(\n node: Node,\n sourceValue: string\n): CallExpression {\n return {\n type: \"CallExpression\",\n callee: { type: \"Identifier\", name: \"_markReactElementSource\" },\n arguments: [node as any, { type: \"Literal\", value: sourceValue }],\n optional: false,\n };\n}\n\nexport function transformSource(\n code: string,\n options: TransformOptions\n): { code: string; map?: any } | null {\n const {\n filename,\n projectRoot = process.cwd(),\n injectJsxSource = true,\n injectComponentSource = true,\n } = options;\n\n // Parse with acorn\n let ast: Program;\n try {\n ast = parse(code, {\n ecmaVersion: \"latest\",\n sourceType: \"module\",\n ecmaFeatures: { jsx: true },\n locations: true,\n ranges: true,\n } as any) as Program;\n } catch (err) {\n // Parse error - return null to skip this file\n return null;\n }\n\n let modified = false;\n let needsHelper = false;\n const seenComponents = new Set<string>();\n const assignments: Array<{ node: Node; parent: Node | null; assignment: ExpressionStatement }> = [];\n\n walk(ast as any, {\n enter(node: any, parent: any, key: any, index: any) {\n // Inject JSX source for element factory calls\n if (injectJsxSource && node.type === \"CallExpression\") {\n if (isReactElementFactoryCall(node)) {\n const loc = node.loc;\n if (loc) {\n const sourceValue = toRelativeSource(filename, loc.start, projectRoot);\n const wrapped = wrapWithMarkElement(node, sourceValue);\n \n // Replace the node\n this.replace(wrapped);\n needsHelper = true;\n modified = true;\n }\n }\n }\n\n // Inject JSX source for JSX elements\n if (injectJsxSource && node.type === \"JSXElement\") {\n const opening = node.openingElement;\n const loc = opening.loc;\n \n if (loc) {\n const sourceValue = toRelativeSource(filename, loc.start, projectRoot);\n \n // Check if intrinsic element (lowercase) or component (uppercase)\n const name = opening.name;\n if (name.type === \"JSXIdentifier\") {\n if (name.name[0] === name.name[0].toLowerCase()) {\n // Intrinsic element - use _markReactElementSource\n // This is handled by the CallExpression visitor for jsx()\n // But for JSX syntax directly, we need different handling\n } else {\n // Component - add $componentSourceLoc prop\n const sourceAttr = {\n type: \"JSXAttribute\",\n name: { type: \"JSXIdentifier\", name: JSX_SOURCE_PROP },\n value: { type: \"Literal\", value: sourceValue },\n };\n opening.attributes.push(sourceAttr);\n modified = true;\n }\n }\n }\n }\n\n // Inject component source for function declarations\n if (injectComponentSource && node.type === \"FunctionDeclaration\") {\n const name = node.id?.name;\n if (name && isComponentName(name) && !seenComponents.has(name)) {\n const loc = node.loc;\n if (loc) {\n const sourceValue = toRelativeSource(filename, loc.start, projectRoot);\n const assignment = createSourceAssignment(name, sourceValue);\n assignments.push({ node, parent, assignment });\n seenComponents.add(name);\n modified = true;\n }\n }\n }\n\n // Inject component source for variable declarations\n if (injectComponentSource && node.type === \"VariableDeclarator\") {\n const id = node.id;\n if (id.type === \"Identifier\" && isComponentName(id.name) && !seenComponents.has(id.name)) {\n const init = node.init;\n if (init && isSupportedComponentInit(init)) {\n const loc = node.loc || init.loc;\n if (loc) {\n const sourceValue = toRelativeSource(filename, loc.start, projectRoot);\n const assignment = createSourceAssignment(id.name, sourceValue);\n assignments.push({ node, parent, assignment });\n seenComponents.add(id.name);\n modified = true;\n }\n }\n }\n }\n },\n });\n\n if (!modified) {\n return null;\n }\n\n // Insert helper function if needed\n if (needsHelper) {\n const helper = createMarkElementHelper();\n // Check if already exists\n const exists = ast.body.some(\n (n) => n.type === \"FunctionDeclaration\" && \n n.id?.name === \"_markReactElementSource\"\n );\n if (!exists) {\n ast.body.unshift(helper);\n }\n }\n\n // Insert component source assignments\n // We need to insert after the declaration, so we process in reverse order\n for (const { node, parent, assignment } of assignments.reverse()) {\n if (parent && parent.type === \"Program\") {\n const index = ast.body.indexOf(node as any);\n if (index !== -1) {\n ast.body.splice(index + 1, 0, assignment as any);\n }\n } else if (parent && parent.type === \"ExportNamedDeclaration\") {\n // For export const Component = ...\n // Insert after the export statement\n const exportParent = (ast as any).body.find((n: any) => \n n.type === \"ExportNamedDeclaration\" && n.declaration === parent\n );\n if (exportParent) {\n const index = ast.body.indexOf(exportParent);\n ast.body.splice(index + 1, 0, assignment as any);\n }\n } else if (parent && parent.type === \"ExportDefaultDeclaration\") {\n // For export default function Component() ...\n const index = ast.body.indexOf(parent as any);\n ast.body.splice(index + 1, 0, assignment as any);\n }\n }\n\n // Generate code\n const result = generate(ast as any, { indent: \" \" });\n\n return { code: result };\n}\n"],"mappings":";AAOA,SAAS,sBAAmE;;;ACN5E,IAAI,wBAAwB,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,KAAK,IAAI,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,MAAM,GAAG,GAAG,IAAI,OAAO,IAAI,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,IAAI,GAAG,IAAI,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,MAAM,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,KAAK,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,MAAM,GAAG,QAAQ,GAAG;AAGlrC,IAAI,6BAA6B,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,KAAK,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,KAAK,GAAG,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,MAAM,IAAI,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,KAAK,MAAM,IAAI,MAAM,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,MAAM,IAAI,IAAI,IAAI,KAAK,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,KAAK,MAAM,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,MAAM,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,MAAM,IAAI,GAAG,GAAG,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,GAAG,GAAG,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,GAAG,MAAM,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,MAAM,OAAO,IAAI,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,KAAK,MAAM,KAAK,MAAM,MAAM,GAA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","names":["TokenType","Position","SourceLocation","offset","Parser","ref","parse","DestructuringErrors","TokContext","Scope","Node","BranchID","RegExpValidationState","current","Token","i","quasi","length","parse"]}
1
+ {"version":3,"sources":["../node_modules/picomatch/lib/constants.js","../node_modules/picomatch/lib/utils.js","../node_modules/picomatch/lib/scan.js","../node_modules/picomatch/lib/parse.js","../node_modules/picomatch/lib/picomatch.js","../node_modules/picomatch/index.js","../node_modules/acorn-jsx/xhtml.js","../node_modules/acorn/dist/acorn.js","../node_modules/acorn-jsx/index.js","../node_modules/unplugin/dist/parse-DN2jPtpt.mjs","../node_modules/unplugin/dist/webpack-like-Djrmy9eu.mjs","../node_modules/unplugin/dist/context-CKhLGGrj.mjs","../node_modules/unplugin/dist/utils-BMHLEWml.mjs","../node_modules/unplugin/dist/context-MD-xQmYI.mjs","../node_modules/unplugin/dist/index.mjs","../node_modules/@jridgewell/sourcemap-codec/src/vlq.ts","../node_modules/@jridgewell/sourcemap-codec/src/strings.ts","../node_modules/@jridgewell/sourcemap-codec/src/scopes.ts","../node_modules/@jridgewell/sourcemap-codec/src/sourcemap-codec.ts","../node_modules/@jridgewell/resolve-uri/src/resolve-uri.ts","../node_modules/@jridgewell/trace-mapping/src/trace-mapping.ts","../node_modules/@jridgewell/trace-mapping/src/resolve.ts","../node_modules/@jridgewell/trace-mapping/src/strip-filename.ts","../node_modules/@jridgewell/trace-mapping/src/sourcemap-segment.ts","../node_modules/@jridgewell/trace-mapping/src/sort.ts","../node_modules/@jridgewell/trace-mapping/src/by-source.ts","../node_modules/@jridgewell/trace-mapping/src/binary-search.ts","../node_modules/@jridgewell/trace-mapping/src/types.ts","../node_modules/@jridgewell/trace-mapping/src/flatten-map.ts","../node_modules/@jridgewell/gen-mapping/src/set-array.ts","../node_modules/@jridgewell/gen-mapping/src/gen-mapping.ts","../node_modules/@jridgewell/gen-mapping/src/sourcemap-segment.ts","../node_modules/@jridgewell/remapping/src/build-source-map-tree.ts","../node_modules/@jridgewell/remapping/src/source-map-tree.ts","../node_modules/@jridgewell/remapping/src/source-map.ts","../node_modules/@jridgewell/remapping/src/remapping.ts","../node_modules/acorn/dist/acorn.mjs","../src/core/transform.ts","../node_modules/acorn-typescript/lib/index.mjs","../node_modules/astring/dist/astring.mjs","../node_modules/estree-walker/src/walker.js","../node_modules/estree-walker/src/sync.js","../node_modules/estree-walker/src/index.js","../src/constants.ts","../src/viteClientInjector.ts","../src/unplugin.ts"],"sourcesContent":["'use strict';\n\nconst WIN_SLASH = '\\\\\\\\/';\nconst WIN_NO_SLASH = `[^${WIN_SLASH}]`;\n\n/**\n * Posix glob regex\n */\n\nconst DOT_LITERAL = '\\\\.';\nconst PLUS_LITERAL = '\\\\+';\nconst QMARK_LITERAL = '\\\\?';\nconst SLASH_LITERAL = '\\\\/';\nconst ONE_CHAR = '(?=.)';\nconst QMARK = '[^/]';\nconst END_ANCHOR = `(?:${SLASH_LITERAL}|$)`;\nconst START_ANCHOR = `(?:^|${SLASH_LITERAL})`;\nconst DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`;\nconst NO_DOT = `(?!${DOT_LITERAL})`;\nconst NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;\nconst NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;\nconst NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;\nconst QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;\nconst STAR = `${QMARK}*?`;\nconst SEP = '/';\n\nconst POSIX_CHARS = {\n DOT_LITERAL,\n PLUS_LITERAL,\n QMARK_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n QMARK,\n END_ANCHOR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR,\n SEP\n};\n\n/**\n * Windows glob regex\n */\n\nconst WINDOWS_CHARS = {\n ...POSIX_CHARS,\n\n SLASH_LITERAL: `[${WIN_SLASH}]`,\n QMARK: WIN_NO_SLASH,\n STAR: `${WIN_NO_SLASH}*?`,\n DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`,\n NO_DOT: `(?!${DOT_LITERAL})`,\n NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`,\n NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n QMARK_NO_DOT: `[^.${WIN_SLASH}]`,\n START_ANCHOR: `(?:^|[${WIN_SLASH}])`,\n END_ANCHOR: `(?:[${WIN_SLASH}]|$)`,\n SEP: '\\\\'\n};\n\n/**\n * POSIX Bracket Regex\n */\n\nconst POSIX_REGEX_SOURCE = {\n alnum: 'a-zA-Z0-9',\n alpha: 'a-zA-Z',\n ascii: '\\\\x00-\\\\x7F',\n blank: ' \\\\t',\n cntrl: '\\\\x00-\\\\x1F\\\\x7F',\n digit: '0-9',\n graph: '\\\\x21-\\\\x7E',\n lower: 'a-z',\n print: '\\\\x20-\\\\x7E ',\n punct: '\\\\-!\"#$%&\\'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~',\n space: ' \\\\t\\\\r\\\\n\\\\v\\\\f',\n upper: 'A-Z',\n word: 'A-Za-z0-9_',\n xdigit: 'A-Fa-f0-9'\n};\n\nmodule.exports = {\n MAX_LENGTH: 1024 * 64,\n POSIX_REGEX_SOURCE,\n\n // regular expressions\n REGEX_BACKSLASH: /\\\\(?![*+?^${}(|)[\\]])/g,\n REGEX_NON_SPECIAL_CHARS: /^[^@![\\].,$*+?^{}()|\\\\/]+/,\n REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\\]]/,\n REGEX_SPECIAL_CHARS_BACKREF: /(\\\\?)((\\W)(\\3*))/g,\n REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\\]])/g,\n REGEX_REMOVE_BACKSLASH: /(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,\n\n // Replace globs with equivalent patterns to reduce parsing time.\n REPLACEMENTS: {\n __proto__: null,\n '***': '*',\n '**/**': '**',\n '**/**/**': '**'\n },\n\n // Digits\n CHAR_0: 48, /* 0 */\n CHAR_9: 57, /* 9 */\n\n // Alphabet chars.\n CHAR_UPPERCASE_A: 65, /* A */\n CHAR_LOWERCASE_A: 97, /* a */\n CHAR_UPPERCASE_Z: 90, /* Z */\n CHAR_LOWERCASE_Z: 122, /* z */\n\n CHAR_LEFT_PARENTHESES: 40, /* ( */\n CHAR_RIGHT_PARENTHESES: 41, /* ) */\n\n CHAR_ASTERISK: 42, /* * */\n\n // Non-alphabetic chars.\n CHAR_AMPERSAND: 38, /* & */\n CHAR_AT: 64, /* @ */\n CHAR_BACKWARD_SLASH: 92, /* \\ */\n CHAR_CARRIAGE_RETURN: 13, /* \\r */\n CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */\n CHAR_COLON: 58, /* : */\n CHAR_COMMA: 44, /* , */\n CHAR_DOT: 46, /* . */\n CHAR_DOUBLE_QUOTE: 34, /* \" */\n CHAR_EQUAL: 61, /* = */\n CHAR_EXCLAMATION_MARK: 33, /* ! */\n CHAR_FORM_FEED: 12, /* \\f */\n CHAR_FORWARD_SLASH: 47, /* / */\n CHAR_GRAVE_ACCENT: 96, /* ` */\n CHAR_HASH: 35, /* # */\n CHAR_HYPHEN_MINUS: 45, /* - */\n CHAR_LEFT_ANGLE_BRACKET: 60, /* < */\n CHAR_LEFT_CURLY_BRACE: 123, /* { */\n CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */\n CHAR_LINE_FEED: 10, /* \\n */\n CHAR_NO_BREAK_SPACE: 160, /* \\u00A0 */\n CHAR_PERCENT: 37, /* % */\n CHAR_PLUS: 43, /* + */\n CHAR_QUESTION_MARK: 63, /* ? */\n CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */\n CHAR_RIGHT_CURLY_BRACE: 125, /* } */\n CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */\n CHAR_SEMICOLON: 59, /* ; */\n CHAR_SINGLE_QUOTE: 39, /* ' */\n CHAR_SPACE: 32, /* */\n CHAR_TAB: 9, /* \\t */\n CHAR_UNDERSCORE: 95, /* _ */\n CHAR_VERTICAL_LINE: 124, /* | */\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \\uFEFF */\n\n /**\n * Create EXTGLOB_CHARS\n */\n\n extglobChars(chars) {\n return {\n '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` },\n '?': { type: 'qmark', open: '(?:', close: ')?' },\n '+': { type: 'plus', open: '(?:', close: ')+' },\n '*': { type: 'star', open: '(?:', close: ')*' },\n '@': { type: 'at', open: '(?:', close: ')' }\n };\n },\n\n /**\n * Create GLOB_CHARS\n */\n\n globChars(win32) {\n return win32 === true ? WINDOWS_CHARS : POSIX_CHARS;\n }\n};\n","/*global navigator*/\n'use strict';\n\nconst {\n REGEX_BACKSLASH,\n REGEX_REMOVE_BACKSLASH,\n REGEX_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_GLOBAL\n} = require('./constants');\n\nexports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\nexports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);\nexports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str);\nexports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\\\$1');\nexports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/');\n\nexports.isWindows = () => {\n if (typeof navigator !== 'undefined' && navigator.platform) {\n const platform = navigator.platform.toLowerCase();\n return platform === 'win32' || platform === 'windows';\n }\n\n if (typeof process !== 'undefined' && process.platform) {\n return process.platform === 'win32';\n }\n\n return false;\n};\n\nexports.removeBackslashes = str => {\n return str.replace(REGEX_REMOVE_BACKSLASH, match => {\n return match === '\\\\' ? '' : match;\n });\n};\n\nexports.escapeLast = (input, char, lastIdx) => {\n const idx = input.lastIndexOf(char, lastIdx);\n if (idx === -1) return input;\n if (input[idx - 1] === '\\\\') return exports.escapeLast(input, char, idx - 1);\n return `${input.slice(0, idx)}\\\\${input.slice(idx)}`;\n};\n\nexports.removePrefix = (input, state = {}) => {\n let output = input;\n if (output.startsWith('./')) {\n output = output.slice(2);\n state.prefix = './';\n }\n return output;\n};\n\nexports.wrapOutput = (input, state = {}, options = {}) => {\n const prepend = options.contains ? '' : '^';\n const append = options.contains ? '' : '$';\n\n let output = `${prepend}(?:${input})${append}`;\n if (state.negated === true) {\n output = `(?:^(?!${output}).*$)`;\n }\n return output;\n};\n\nexports.basename = (path, { windows } = {}) => {\n const segs = path.split(windows ? /[\\\\/]/ : '/');\n const last = segs[segs.length - 1];\n\n if (last === '') {\n return segs[segs.length - 2];\n }\n\n return last;\n};\n","'use strict';\n\nconst utils = require('./utils');\nconst {\n CHAR_ASTERISK, /* * */\n CHAR_AT, /* @ */\n CHAR_BACKWARD_SLASH, /* \\ */\n CHAR_COMMA, /* , */\n CHAR_DOT, /* . */\n CHAR_EXCLAMATION_MARK, /* ! */\n CHAR_FORWARD_SLASH, /* / */\n CHAR_LEFT_CURLY_BRACE, /* { */\n CHAR_LEFT_PARENTHESES, /* ( */\n CHAR_LEFT_SQUARE_BRACKET, /* [ */\n CHAR_PLUS, /* + */\n CHAR_QUESTION_MARK, /* ? */\n CHAR_RIGHT_CURLY_BRACE, /* } */\n CHAR_RIGHT_PARENTHESES, /* ) */\n CHAR_RIGHT_SQUARE_BRACKET /* ] */\n} = require('./constants');\n\nconst isPathSeparator = code => {\n return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;\n};\n\nconst depth = token => {\n if (token.isPrefix !== true) {\n token.depth = token.isGlobstar ? Infinity : 1;\n }\n};\n\n/**\n * Quickly scans a glob pattern and returns an object with a handful of\n * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists),\n * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not\n * with `!(`) and `negatedExtglob` (true if the path starts with `!(`).\n *\n * ```js\n * const pm = require('picomatch');\n * console.log(pm.scan('foo/bar/*.js'));\n * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' }\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {Object} Returns an object with tokens and regex source string.\n * @api public\n */\n\nconst scan = (input, options) => {\n const opts = options || {};\n\n const length = input.length - 1;\n const scanToEnd = opts.parts === true || opts.scanToEnd === true;\n const slashes = [];\n const tokens = [];\n const parts = [];\n\n let str = input;\n let index = -1;\n let start = 0;\n let lastIndex = 0;\n let isBrace = false;\n let isBracket = false;\n let isGlob = false;\n let isExtglob = false;\n let isGlobstar = false;\n let braceEscaped = false;\n let backslashes = false;\n let negated = false;\n let negatedExtglob = false;\n let finished = false;\n let braces = 0;\n let prev;\n let code;\n let token = { value: '', depth: 0, isGlob: false };\n\n const eos = () => index >= length;\n const peek = () => str.charCodeAt(index + 1);\n const advance = () => {\n prev = code;\n return str.charCodeAt(++index);\n };\n\n while (index < length) {\n code = advance();\n let next;\n\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braceEscaped = true;\n }\n continue;\n }\n\n if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n continue;\n }\n\n if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (braceEscaped !== true && code === CHAR_COMMA) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_RIGHT_CURLY_BRACE) {\n braces--;\n\n if (braces === 0) {\n braceEscaped = false;\n isBrace = token.isBrace = true;\n finished = true;\n break;\n }\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_FORWARD_SLASH) {\n slashes.push(index);\n tokens.push(token);\n token = { value: '', depth: 0, isGlob: false };\n\n if (finished === true) continue;\n if (prev === CHAR_DOT && index === (start + 1)) {\n start += 2;\n continue;\n }\n\n lastIndex = index + 1;\n continue;\n }\n\n if (opts.noext !== true) {\n const isExtglobChar = code === CHAR_PLUS\n || code === CHAR_AT\n || code === CHAR_ASTERISK\n || code === CHAR_QUESTION_MARK\n || code === CHAR_EXCLAMATION_MARK;\n\n if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n isExtglob = token.isExtglob = true;\n finished = true;\n if (code === CHAR_EXCLAMATION_MARK && index === start) {\n negatedExtglob = true;\n }\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n }\n\n if (code === CHAR_ASTERISK) {\n if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_QUESTION_MARK) {\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_LEFT_SQUARE_BRACKET) {\n while (eos() !== true && (next = advance())) {\n if (next === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n isBracket = token.isBracket = true;\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) {\n negated = token.negated = true;\n start++;\n continue;\n }\n\n if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_LEFT_PARENTHESES) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n\n if (isGlob === true) {\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n }\n\n if (opts.noext === true) {\n isExtglob = false;\n isGlob = false;\n }\n\n let base = str;\n let prefix = '';\n let glob = '';\n\n if (start > 0) {\n prefix = str.slice(0, start);\n str = str.slice(start);\n lastIndex -= start;\n }\n\n if (base && isGlob === true && lastIndex > 0) {\n base = str.slice(0, lastIndex);\n glob = str.slice(lastIndex);\n } else if (isGlob === true) {\n base = '';\n glob = str;\n } else {\n base = str;\n }\n\n if (base && base !== '' && base !== '/' && base !== str) {\n if (isPathSeparator(base.charCodeAt(base.length - 1))) {\n base = base.slice(0, -1);\n }\n }\n\n if (opts.unescape === true) {\n if (glob) glob = utils.removeBackslashes(glob);\n\n if (base && backslashes === true) {\n base = utils.removeBackslashes(base);\n }\n }\n\n const state = {\n prefix,\n input,\n start,\n base,\n glob,\n isBrace,\n isBracket,\n isGlob,\n isExtglob,\n isGlobstar,\n negated,\n negatedExtglob\n };\n\n if (opts.tokens === true) {\n state.maxDepth = 0;\n if (!isPathSeparator(code)) {\n tokens.push(token);\n }\n state.tokens = tokens;\n }\n\n if (opts.parts === true || opts.tokens === true) {\n let prevIndex;\n\n for (let idx = 0; idx < slashes.length; idx++) {\n const n = prevIndex ? prevIndex + 1 : start;\n const i = slashes[idx];\n const value = input.slice(n, i);\n if (opts.tokens) {\n if (idx === 0 && start !== 0) {\n tokens[idx].isPrefix = true;\n tokens[idx].value = prefix;\n } else {\n tokens[idx].value = value;\n }\n depth(tokens[idx]);\n state.maxDepth += tokens[idx].depth;\n }\n if (idx !== 0 || value !== '') {\n parts.push(value);\n }\n prevIndex = i;\n }\n\n if (prevIndex && prevIndex + 1 < input.length) {\n const value = input.slice(prevIndex + 1);\n parts.push(value);\n\n if (opts.tokens) {\n tokens[tokens.length - 1].value = value;\n depth(tokens[tokens.length - 1]);\n state.maxDepth += tokens[tokens.length - 1].depth;\n }\n }\n\n state.slashes = slashes;\n state.parts = parts;\n }\n\n return state;\n};\n\nmodule.exports = scan;\n","'use strict';\n\nconst constants = require('./constants');\nconst utils = require('./utils');\n\n/**\n * Constants\n */\n\nconst {\n MAX_LENGTH,\n POSIX_REGEX_SOURCE,\n REGEX_NON_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_BACKREF,\n REPLACEMENTS\n} = constants;\n\n/**\n * Helpers\n */\n\nconst expandRange = (args, options) => {\n if (typeof options.expandRange === 'function') {\n return options.expandRange(...args, options);\n }\n\n args.sort();\n const value = `[${args.join('-')}]`;\n\n try {\n /* eslint-disable-next-line no-new */\n new RegExp(value);\n } catch (ex) {\n return args.map(v => utils.escapeRegex(v)).join('..');\n }\n\n return value;\n};\n\n/**\n * Create the message for a syntax error\n */\n\nconst syntaxError = (type, char) => {\n return `Missing ${type}: \"${char}\" - use \"\\\\\\\\${char}\" to match literal characters`;\n};\n\n/**\n * Parse the given input string.\n * @param {String} input\n * @param {Object} options\n * @return {Object}\n */\n\nconst parse = (input, options) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n input = REPLACEMENTS[input] || input;\n\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n\n let len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n const bos = { type: 'bos', value: '', output: opts.prepend || '' };\n const tokens = [bos];\n\n const capture = opts.capture ? '' : '?:';\n\n // create constants based on platform, for windows or posix\n const PLATFORM_CHARS = constants.globChars(opts.windows);\n const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS);\n\n const {\n DOT_LITERAL,\n PLUS_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n } = PLATFORM_CHARS;\n\n const globstar = opts => {\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const nodot = opts.dot ? '' : NO_DOT;\n const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT;\n let star = opts.bash === true ? globstar(opts) : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n // minimatch options support\n if (typeof opts.noext === 'boolean') {\n opts.noextglob = opts.noext;\n }\n\n const state = {\n input,\n index: -1,\n start: 0,\n dot: opts.dot === true,\n consumed: '',\n output: '',\n prefix: '',\n backtrack: false,\n negated: false,\n brackets: 0,\n braces: 0,\n parens: 0,\n quotes: 0,\n globstar: false,\n tokens\n };\n\n input = utils.removePrefix(input, state);\n len = input.length;\n\n const extglobs = [];\n const braces = [];\n const stack = [];\n let prev = bos;\n let value;\n\n /**\n * Tokenizing helpers\n */\n\n const eos = () => state.index === len - 1;\n const peek = state.peek = (n = 1) => input[state.index + n];\n const advance = state.advance = () => input[++state.index] || '';\n const remaining = () => input.slice(state.index + 1);\n const consume = (value = '', num = 0) => {\n state.consumed += value;\n state.index += num;\n };\n\n const append = token => {\n state.output += token.output != null ? token.output : token.value;\n consume(token.value);\n };\n\n const negate = () => {\n let count = 1;\n\n while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) {\n advance();\n state.start++;\n count++;\n }\n\n if (count % 2 === 0) {\n return false;\n }\n\n state.negated = true;\n state.start++;\n return true;\n };\n\n const increment = type => {\n state[type]++;\n stack.push(type);\n };\n\n const decrement = type => {\n state[type]--;\n stack.pop();\n };\n\n /**\n * Push tokens onto the tokens array. This helper speeds up\n * tokenizing by 1) helping us avoid backtracking as much as possible,\n * and 2) helping us avoid creating extra tokens when consecutive\n * characters are plain text. This improves performance and simplifies\n * lookbehinds.\n */\n\n const push = tok => {\n if (prev.type === 'globstar') {\n const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace');\n const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren'));\n\n if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) {\n state.output = state.output.slice(0, -prev.output.length);\n prev.type = 'star';\n prev.value = '*';\n prev.output = star;\n state.output += prev.output;\n }\n }\n\n if (extglobs.length && tok.type !== 'paren') {\n extglobs[extglobs.length - 1].inner += tok.value;\n }\n\n if (tok.value || tok.output) append(tok);\n if (prev && prev.type === 'text' && tok.type === 'text') {\n prev.output = (prev.output || prev.value) + tok.value;\n prev.value += tok.value;\n return;\n }\n\n tok.prev = prev;\n tokens.push(tok);\n prev = tok;\n };\n\n const extglobOpen = (type, value) => {\n const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' };\n\n token.prev = prev;\n token.parens = state.parens;\n token.output = state.output;\n const output = (opts.capture ? '(' : '') + token.open;\n\n increment('parens');\n push({ type, value, output: state.output ? '' : ONE_CHAR });\n push({ type: 'paren', extglob: true, value: advance(), output });\n extglobs.push(token);\n };\n\n const extglobClose = token => {\n let output = token.close + (opts.capture ? ')' : '');\n let rest;\n\n if (token.type === 'negate') {\n let extglobStar = star;\n\n if (token.inner && token.inner.length > 1 && token.inner.includes('/')) {\n extglobStar = globstar(opts);\n }\n\n if (extglobStar !== star || eos() || /^\\)+$/.test(remaining())) {\n output = token.close = `)$))${extglobStar}`;\n }\n\n if (token.inner.includes('*') && (rest = remaining()) && /^\\.[^\\\\/.]+$/.test(rest)) {\n // Any non-magical string (`.ts`) or even nested expression (`.{ts,tsx}`) can follow after the closing parenthesis.\n // In this case, we need to parse the string and use it in the output of the original pattern.\n // Suitable patterns: `/!(*.d).ts`, `/!(*.d).{ts,tsx}`, `**/!(*-dbg).@(js)`.\n //\n // Disabling the `fastpaths` option due to a problem with parsing strings as `.ts` in the pattern like `**/!(*.d).ts`.\n const expression = parse(rest, { ...options, fastpaths: false }).output;\n\n output = token.close = `)${expression})${extglobStar})`;\n }\n\n if (token.prev.type === 'bos') {\n state.negatedExtglob = true;\n }\n }\n\n push({ type: 'paren', extglob: true, value, output });\n decrement('parens');\n };\n\n /**\n * Fast paths\n */\n\n if (opts.fastpaths !== false && !/(^[*!]|[/()[\\]{}\"])/.test(input)) {\n let backslashes = false;\n\n let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => {\n if (first === '\\\\') {\n backslashes = true;\n return m;\n }\n\n if (first === '?') {\n if (esc) {\n return esc + first + (rest ? QMARK.repeat(rest.length) : '');\n }\n if (index === 0) {\n return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : '');\n }\n return QMARK.repeat(chars.length);\n }\n\n if (first === '.') {\n return DOT_LITERAL.repeat(chars.length);\n }\n\n if (first === '*') {\n if (esc) {\n return esc + first + (rest ? star : '');\n }\n return star;\n }\n return esc ? m : `\\\\${m}`;\n });\n\n if (backslashes === true) {\n if (opts.unescape === true) {\n output = output.replace(/\\\\/g, '');\n } else {\n output = output.replace(/\\\\+/g, m => {\n return m.length % 2 === 0 ? '\\\\\\\\' : (m ? '\\\\' : '');\n });\n }\n }\n\n if (output === input && opts.contains === true) {\n state.output = input;\n return state;\n }\n\n state.output = utils.wrapOutput(output, state, options);\n return state;\n }\n\n /**\n * Tokenize input until we reach end-of-string\n */\n\n while (!eos()) {\n value = advance();\n\n if (value === '\\u0000') {\n continue;\n }\n\n /**\n * Escaped characters\n */\n\n if (value === '\\\\') {\n const next = peek();\n\n if (next === '/' && opts.bash !== true) {\n continue;\n }\n\n if (next === '.' || next === ';') {\n continue;\n }\n\n if (!next) {\n value += '\\\\';\n push({ type: 'text', value });\n continue;\n }\n\n // collapse slashes to reduce potential for exploits\n const match = /^\\\\+/.exec(remaining());\n let slashes = 0;\n\n if (match && match[0].length > 2) {\n slashes = match[0].length;\n state.index += slashes;\n if (slashes % 2 !== 0) {\n value += '\\\\';\n }\n }\n\n if (opts.unescape === true) {\n value = advance();\n } else {\n value += advance();\n }\n\n if (state.brackets === 0) {\n push({ type: 'text', value });\n continue;\n }\n }\n\n /**\n * If we're inside a regex character class, continue\n * until we reach the closing bracket.\n */\n\n if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) {\n if (opts.posix !== false && value === ':') {\n const inner = prev.value.slice(1);\n if (inner.includes('[')) {\n prev.posix = true;\n\n if (inner.includes(':')) {\n const idx = prev.value.lastIndexOf('[');\n const pre = prev.value.slice(0, idx);\n const rest = prev.value.slice(idx + 2);\n const posix = POSIX_REGEX_SOURCE[rest];\n if (posix) {\n prev.value = pre + posix;\n state.backtrack = true;\n advance();\n\n if (!bos.output && tokens.indexOf(prev) === 1) {\n bos.output = ONE_CHAR;\n }\n continue;\n }\n }\n }\n }\n\n if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) {\n value = `\\\\${value}`;\n }\n\n if (value === ']' && (prev.value === '[' || prev.value === '[^')) {\n value = `\\\\${value}`;\n }\n\n if (opts.posix === true && value === '!' && prev.value === '[') {\n value = '^';\n }\n\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * If we're inside a quoted string, continue\n * until we reach the closing double quote.\n */\n\n if (state.quotes === 1 && value !== '\"') {\n value = utils.escapeRegex(value);\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * Double quotes\n */\n\n if (value === '\"') {\n state.quotes = state.quotes === 1 ? 0 : 1;\n if (opts.keepQuotes === true) {\n push({ type: 'text', value });\n }\n continue;\n }\n\n /**\n * Parentheses\n */\n\n if (value === '(') {\n increment('parens');\n push({ type: 'paren', value });\n continue;\n }\n\n if (value === ')') {\n if (state.parens === 0 && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '('));\n }\n\n const extglob = extglobs[extglobs.length - 1];\n if (extglob && state.parens === extglob.parens + 1) {\n extglobClose(extglobs.pop());\n continue;\n }\n\n push({ type: 'paren', value, output: state.parens ? ')' : '\\\\)' });\n decrement('parens');\n continue;\n }\n\n /**\n * Square brackets\n */\n\n if (value === '[') {\n if (opts.nobracket === true || !remaining().includes(']')) {\n if (opts.nobracket !== true && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('closing', ']'));\n }\n\n value = `\\\\${value}`;\n } else {\n increment('brackets');\n }\n\n push({ type: 'bracket', value });\n continue;\n }\n\n if (value === ']') {\n if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) {\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n if (state.brackets === 0) {\n if (opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '['));\n }\n\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n decrement('brackets');\n\n const prevValue = prev.value.slice(1);\n if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) {\n value = `/${value}`;\n }\n\n prev.value += value;\n append({ value });\n\n // when literal brackets are explicitly disabled\n // assume we should match with a regex character class\n if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) {\n continue;\n }\n\n const escaped = utils.escapeRegex(prev.value);\n state.output = state.output.slice(0, -prev.value.length);\n\n // when literal brackets are explicitly enabled\n // assume we should escape the brackets to match literal characters\n if (opts.literalBrackets === true) {\n state.output += escaped;\n prev.value = escaped;\n continue;\n }\n\n // when the user specifies nothing, try to match both\n prev.value = `(${capture}${escaped}|${prev.value})`;\n state.output += prev.value;\n continue;\n }\n\n /**\n * Braces\n */\n\n if (value === '{' && opts.nobrace !== true) {\n increment('braces');\n\n const open = {\n type: 'brace',\n value,\n output: '(',\n outputIndex: state.output.length,\n tokensIndex: state.tokens.length\n };\n\n braces.push(open);\n push(open);\n continue;\n }\n\n if (value === '}') {\n const brace = braces[braces.length - 1];\n\n if (opts.nobrace === true || !brace) {\n push({ type: 'text', value, output: value });\n continue;\n }\n\n let output = ')';\n\n if (brace.dots === true) {\n const arr = tokens.slice();\n const range = [];\n\n for (let i = arr.length - 1; i >= 0; i--) {\n tokens.pop();\n if (arr[i].type === 'brace') {\n break;\n }\n if (arr[i].type !== 'dots') {\n range.unshift(arr[i].value);\n }\n }\n\n output = expandRange(range, opts);\n state.backtrack = true;\n }\n\n if (brace.comma !== true && brace.dots !== true) {\n const out = state.output.slice(0, brace.outputIndex);\n const toks = state.tokens.slice(brace.tokensIndex);\n brace.value = brace.output = '\\\\{';\n value = output = '\\\\}';\n state.output = out;\n for (const t of toks) {\n state.output += (t.output || t.value);\n }\n }\n\n push({ type: 'brace', value, output });\n decrement('braces');\n braces.pop();\n continue;\n }\n\n /**\n * Pipes\n */\n\n if (value === '|') {\n if (extglobs.length > 0) {\n extglobs[extglobs.length - 1].conditions++;\n }\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Commas\n */\n\n if (value === ',') {\n let output = value;\n\n const brace = braces[braces.length - 1];\n if (brace && stack[stack.length - 1] === 'braces') {\n brace.comma = true;\n output = '|';\n }\n\n push({ type: 'comma', value, output });\n continue;\n }\n\n /**\n * Slashes\n */\n\n if (value === '/') {\n // if the beginning of the glob is \"./\", advance the start\n // to the current index, and don't add the \"./\" characters\n // to the state. This greatly simplifies lookbehinds when\n // checking for BOS characters like \"!\" and \".\" (not \"./\")\n if (prev.type === 'dot' && state.index === state.start + 1) {\n state.start = state.index + 1;\n state.consumed = '';\n state.output = '';\n tokens.pop();\n prev = bos; // reset \"prev\" to the first token\n continue;\n }\n\n push({ type: 'slash', value, output: SLASH_LITERAL });\n continue;\n }\n\n /**\n * Dots\n */\n\n if (value === '.') {\n if (state.braces > 0 && prev.type === 'dot') {\n if (prev.value === '.') prev.output = DOT_LITERAL;\n const brace = braces[braces.length - 1];\n prev.type = 'dots';\n prev.output += value;\n prev.value += value;\n brace.dots = true;\n continue;\n }\n\n if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') {\n push({ type: 'text', value, output: DOT_LITERAL });\n continue;\n }\n\n push({ type: 'dot', value, output: DOT_LITERAL });\n continue;\n }\n\n /**\n * Question marks\n */\n\n if (value === '?') {\n const isGroup = prev && prev.value === '(';\n if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('qmark', value);\n continue;\n }\n\n if (prev && prev.type === 'paren') {\n const next = peek();\n let output = value;\n\n if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\\w+>)/.test(remaining()))) {\n output = `\\\\${value}`;\n }\n\n push({ type: 'text', value, output });\n continue;\n }\n\n if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) {\n push({ type: 'qmark', value, output: QMARK_NO_DOT });\n continue;\n }\n\n push({ type: 'qmark', value, output: QMARK });\n continue;\n }\n\n /**\n * Exclamation\n */\n\n if (value === '!') {\n if (opts.noextglob !== true && peek() === '(') {\n if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) {\n extglobOpen('negate', value);\n continue;\n }\n }\n\n if (opts.nonegate !== true && state.index === 0) {\n negate();\n continue;\n }\n }\n\n /**\n * Plus\n */\n\n if (value === '+') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('plus', value);\n continue;\n }\n\n if ((prev && prev.value === '(') || opts.regex === false) {\n push({ type: 'plus', value, output: PLUS_LITERAL });\n continue;\n }\n\n if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) {\n push({ type: 'plus', value });\n continue;\n }\n\n push({ type: 'plus', value: PLUS_LITERAL });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value === '@') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n push({ type: 'at', extglob: true, value, output: '' });\n continue;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value !== '*') {\n if (value === '$' || value === '^') {\n value = `\\\\${value}`;\n }\n\n const match = REGEX_NON_SPECIAL_CHARS.exec(remaining());\n if (match) {\n value += match[0];\n state.index += match[0].length;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Stars\n */\n\n if (prev && (prev.type === 'globstar' || prev.star === true)) {\n prev.type = 'star';\n prev.star = true;\n prev.value += value;\n prev.output = star;\n state.backtrack = true;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n let rest = remaining();\n if (opts.noextglob !== true && /^\\([^?]/.test(rest)) {\n extglobOpen('star', value);\n continue;\n }\n\n if (prev.type === 'star') {\n if (opts.noglobstar === true) {\n consume(value);\n continue;\n }\n\n const prior = prev.prev;\n const before = prior.prev;\n const isStart = prior.type === 'slash' || prior.type === 'bos';\n const afterStar = before && (before.type === 'star' || before.type === 'globstar');\n\n if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace');\n const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren');\n if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n // strip consecutive `/**/`\n while (rest.slice(0, 3) === '/**') {\n const after = input[state.index + 4];\n if (after && after !== '/') {\n break;\n }\n rest = rest.slice(3);\n consume('/**', 3);\n }\n\n if (prior.type === 'bos' && eos()) {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = globstar(opts);\n state.output = prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) {\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)');\n prev.value += value;\n state.globstar = true;\n state.output += prior.output + prev.output;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') {\n const end = rest[1] !== void 0 ? '|$' : '';\n\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;\n prev.value += value;\n\n state.output += prior.output + prev.output;\n state.globstar = true;\n\n consume(value + advance());\n\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n if (prior.type === 'bos' && rest[0] === '/') {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;\n state.output = prev.output;\n state.globstar = true;\n consume(value + advance());\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n // remove single star from output\n state.output = state.output.slice(0, -prev.output.length);\n\n // reset previous token to globstar\n prev.type = 'globstar';\n prev.output = globstar(opts);\n prev.value += value;\n\n // reset output with globstar\n state.output += prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n const token = { type: 'star', value, output: star };\n\n if (opts.bash === true) {\n token.output = '.*?';\n if (prev.type === 'bos' || prev.type === 'slash') {\n token.output = nodot + token.output;\n }\n push(token);\n continue;\n }\n\n if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) {\n token.output = value;\n push(token);\n continue;\n }\n\n if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') {\n if (prev.type === 'dot') {\n state.output += NO_DOT_SLASH;\n prev.output += NO_DOT_SLASH;\n\n } else if (opts.dot === true) {\n state.output += NO_DOTS_SLASH;\n prev.output += NO_DOTS_SLASH;\n\n } else {\n state.output += nodot;\n prev.output += nodot;\n }\n\n if (peek() !== '*') {\n state.output += ONE_CHAR;\n prev.output += ONE_CHAR;\n }\n }\n\n push(token);\n }\n\n while (state.brackets > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']'));\n state.output = utils.escapeLast(state.output, '[');\n decrement('brackets');\n }\n\n while (state.parens > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')'));\n state.output = utils.escapeLast(state.output, '(');\n decrement('parens');\n }\n\n while (state.braces > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}'));\n state.output = utils.escapeLast(state.output, '{');\n decrement('braces');\n }\n\n if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) {\n push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` });\n }\n\n // rebuild the output if we had to backtrack at any point\n if (state.backtrack === true) {\n state.output = '';\n\n for (const token of state.tokens) {\n state.output += token.output != null ? token.output : token.value;\n\n if (token.suffix) {\n state.output += token.suffix;\n }\n }\n }\n\n return state;\n};\n\n/**\n * Fast paths for creating regular expressions for common glob patterns.\n * This can significantly speed up processing and has very little downside\n * impact when none of the fast paths match.\n */\n\nparse.fastpaths = (input, options) => {\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n const len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n input = REPLACEMENTS[input] || input;\n\n // create constants based on platform, for windows or posix\n const {\n DOT_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOTS_SLASH,\n STAR,\n START_ANCHOR\n } = constants.globChars(opts.windows);\n\n const nodot = opts.dot ? NO_DOTS : NO_DOT;\n const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;\n const capture = opts.capture ? '' : '?:';\n const state = { negated: false, prefix: '' };\n let star = opts.bash === true ? '.*?' : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n const globstar = opts => {\n if (opts.noglobstar === true) return star;\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const create = str => {\n switch (str) {\n case '*':\n return `${nodot}${ONE_CHAR}${star}`;\n\n case '.*':\n return `${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*.*':\n return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*/*':\n return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;\n\n case '**':\n return nodot + globstar(opts);\n\n case '**/*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;\n\n case '**/*.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '**/.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n default: {\n const match = /^(.*?)\\.(\\w+)$/.exec(str);\n if (!match) return;\n\n const source = create(match[1]);\n if (!source) return;\n\n return source + DOT_LITERAL + match[2];\n }\n }\n };\n\n const output = utils.removePrefix(input, state);\n let source = create(output);\n\n if (source && opts.strictSlashes !== true) {\n source += `${SLASH_LITERAL}?`;\n }\n\n return source;\n};\n\nmodule.exports = parse;\n","'use strict';\n\nconst scan = require('./scan');\nconst parse = require('./parse');\nconst utils = require('./utils');\nconst constants = require('./constants');\nconst isObject = val => val && typeof val === 'object' && !Array.isArray(val);\n\n/**\n * Creates a matcher function from one or more glob patterns. The\n * returned function takes a string to match as its first argument,\n * and returns true if the string is a match. The returned matcher\n * function also takes a boolean as the second argument that, when true,\n * returns an object with additional information.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch(glob[, options]);\n *\n * const isMatch = picomatch('*.!(*a)');\n * console.log(isMatch('a.a')); //=> false\n * console.log(isMatch('a.b')); //=> true\n * ```\n * @name picomatch\n * @param {String|Array} `globs` One or more glob patterns.\n * @param {Object=} `options`\n * @return {Function=} Returns a matcher function.\n * @api public\n */\n\nconst picomatch = (glob, options, returnState = false) => {\n if (Array.isArray(glob)) {\n const fns = glob.map(input => picomatch(input, options, returnState));\n const arrayMatcher = str => {\n for (const isMatch of fns) {\n const state = isMatch(str);\n if (state) return state;\n }\n return false;\n };\n return arrayMatcher;\n }\n\n const isState = isObject(glob) && glob.tokens && glob.input;\n\n if (glob === '' || (typeof glob !== 'string' && !isState)) {\n throw new TypeError('Expected pattern to be a non-empty string');\n }\n\n const opts = options || {};\n const posix = opts.windows;\n const regex = isState\n ? picomatch.compileRe(glob, options)\n : picomatch.makeRe(glob, options, false, true);\n\n const state = regex.state;\n delete regex.state;\n\n let isIgnored = () => false;\n if (opts.ignore) {\n const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null };\n isIgnored = picomatch(opts.ignore, ignoreOpts, returnState);\n }\n\n const matcher = (input, returnObject = false) => {\n const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix });\n const result = { glob, state, regex, posix, input, output, match, isMatch };\n\n if (typeof opts.onResult === 'function') {\n opts.onResult(result);\n }\n\n if (isMatch === false) {\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (isIgnored(input)) {\n if (typeof opts.onIgnore === 'function') {\n opts.onIgnore(result);\n }\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (typeof opts.onMatch === 'function') {\n opts.onMatch(result);\n }\n return returnObject ? result : true;\n };\n\n if (returnState) {\n matcher.state = state;\n }\n\n return matcher;\n};\n\n/**\n * Test `input` with the given `regex`. This is used by the main\n * `picomatch()` function to test the input string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.test(input, regex[, options]);\n *\n * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\\/([^/]*?))$/));\n * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' }\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp} `regex`\n * @return {Object} Returns an object with matching info.\n * @api public\n */\n\npicomatch.test = (input, regex, options, { glob, posix } = {}) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected input to be a string');\n }\n\n if (input === '') {\n return { isMatch: false, output: '' };\n }\n\n const opts = options || {};\n const format = opts.format || (posix ? utils.toPosixSlashes : null);\n let match = input === glob;\n let output = (match && format) ? format(input) : input;\n\n if (match === false) {\n output = format ? format(input) : input;\n match = output === glob;\n }\n\n if (match === false || opts.capture === true) {\n if (opts.matchBase === true || opts.basename === true) {\n match = picomatch.matchBase(input, regex, options, posix);\n } else {\n match = regex.exec(output);\n }\n }\n\n return { isMatch: Boolean(match), match, output };\n};\n\n/**\n * Match the basename of a filepath.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.matchBase(input, glob[, options]);\n * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe).\n * @return {Boolean}\n * @api public\n */\n\npicomatch.matchBase = (input, glob, options) => {\n const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options);\n return regex.test(utils.basename(input));\n};\n\n/**\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.isMatch(string, patterns[, options]);\n *\n * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true\n * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false\n * ```\n * @param {String|Array} str The string to test.\n * @param {String|Array} patterns One or more glob patterns to use for matching.\n * @param {Object} [options] See available [options](#options).\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\npicomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\n\n/**\n * Parse a glob pattern to create the source string for a regular\n * expression.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const result = picomatch.parse(pattern[, options]);\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object} Returns an object with useful properties and output to be used as a regex source string.\n * @api public\n */\n\npicomatch.parse = (pattern, options) => {\n if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options));\n return parse(pattern, { ...options, fastpaths: false });\n};\n\n/**\n * Scan a glob pattern to separate the pattern into segments.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.scan(input[, options]);\n *\n * const result = picomatch.scan('!./foo/*.js');\n * console.log(result);\n * { prefix: '!./',\n * input: '!./foo/*.js',\n * start: 3,\n * base: 'foo',\n * glob: '*.js',\n * isBrace: false,\n * isBracket: false,\n * isGlob: true,\n * isExtglob: false,\n * isGlobstar: false,\n * negated: true }\n * ```\n * @param {String} `input` Glob pattern to scan.\n * @param {Object} `options`\n * @return {Object} Returns an object with\n * @api public\n */\n\npicomatch.scan = (input, options) => scan(input, options);\n\n/**\n * Compile a regular expression from the `state` object returned by the\n * [parse()](#parse) method.\n *\n * @param {Object} `state`\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser.\n * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging.\n * @return {RegExp}\n * @api public\n */\n\npicomatch.compileRe = (state, options, returnOutput = false, returnState = false) => {\n if (returnOutput === true) {\n return state.output;\n }\n\n const opts = options || {};\n const prepend = opts.contains ? '' : '^';\n const append = opts.contains ? '' : '$';\n\n let source = `${prepend}(?:${state.output})${append}`;\n if (state && state.negated === true) {\n source = `^(?!${source}).*$`;\n }\n\n const regex = picomatch.toRegex(source, options);\n if (returnState === true) {\n regex.state = state;\n }\n\n return regex;\n};\n\n/**\n * Create a regular expression from a parsed glob pattern.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const state = picomatch.parse('*.js');\n * // picomatch.compileRe(state[, options]);\n *\n * console.log(picomatch.compileRe(state));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `state` The object returned from the `.parse` method.\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result.\n * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression.\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\npicomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => {\n if (!input || typeof input !== 'string') {\n throw new TypeError('Expected a non-empty string');\n }\n\n let parsed = { negated: false, fastpaths: true };\n\n if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) {\n parsed.output = parse.fastpaths(input, options);\n }\n\n if (!parsed.output) {\n parsed = parse(input, options);\n }\n\n return picomatch.compileRe(parsed, options, returnOutput, returnState);\n};\n\n/**\n * Create a regular expression from the given regex source string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.toRegex(source[, options]);\n *\n * const { output } = picomatch.parse('*.js');\n * console.log(picomatch.toRegex(output));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `source` Regular expression source string.\n * @param {Object} `options`\n * @return {RegExp}\n * @api public\n */\n\npicomatch.toRegex = (source, options) => {\n try {\n const opts = options || {};\n return new RegExp(source, opts.flags || (opts.nocase ? 'i' : ''));\n } catch (err) {\n if (options && options.debug === true) throw err;\n return /$^/;\n }\n};\n\n/**\n * Picomatch constants.\n * @return {Object}\n */\n\npicomatch.constants = constants;\n\n/**\n * Expose \"picomatch\"\n */\n\nmodule.exports = picomatch;\n","'use strict';\n\nconst pico = require('./lib/picomatch');\nconst utils = require('./lib/utils');\n\nfunction picomatch(glob, options, returnState = false) {\n // default to os.platform()\n if (options && (options.windows === null || options.windows === undefined)) {\n // don't mutate the original options object\n options = { ...options, windows: utils.isWindows() };\n }\n\n return pico(glob, options, returnState);\n}\n\nObject.assign(picomatch, pico);\nmodule.exports = picomatch;\n","module.exports = {\n quot: '\\u0022',\n amp: '&',\n apos: '\\u0027',\n lt: '<',\n gt: '>',\n nbsp: '\\u00A0',\n iexcl: '\\u00A1',\n cent: '\\u00A2',\n pound: '\\u00A3',\n curren: '\\u00A4',\n yen: '\\u00A5',\n brvbar: '\\u00A6',\n sect: '\\u00A7',\n uml: '\\u00A8',\n copy: '\\u00A9',\n ordf: '\\u00AA',\n laquo: '\\u00AB',\n not: '\\u00AC',\n shy: '\\u00AD',\n reg: '\\u00AE',\n macr: '\\u00AF',\n deg: '\\u00B0',\n plusmn: '\\u00B1',\n sup2: '\\u00B2',\n sup3: '\\u00B3',\n acute: '\\u00B4',\n micro: '\\u00B5',\n para: '\\u00B6',\n middot: '\\u00B7',\n cedil: '\\u00B8',\n sup1: '\\u00B9',\n ordm: '\\u00BA',\n raquo: '\\u00BB',\n frac14: '\\u00BC',\n frac12: '\\u00BD',\n frac34: '\\u00BE',\n iquest: '\\u00BF',\n Agrave: '\\u00C0',\n Aacute: '\\u00C1',\n Acirc: '\\u00C2',\n Atilde: '\\u00C3',\n Auml: '\\u00C4',\n Aring: '\\u00C5',\n AElig: '\\u00C6',\n Ccedil: '\\u00C7',\n Egrave: '\\u00C8',\n Eacute: '\\u00C9',\n Ecirc: '\\u00CA',\n Euml: '\\u00CB',\n Igrave: '\\u00CC',\n Iacute: '\\u00CD',\n Icirc: '\\u00CE',\n Iuml: '\\u00CF',\n ETH: '\\u00D0',\n Ntilde: '\\u00D1',\n Ograve: '\\u00D2',\n Oacute: '\\u00D3',\n Ocirc: '\\u00D4',\n Otilde: '\\u00D5',\n Ouml: '\\u00D6',\n times: '\\u00D7',\n Oslash: '\\u00D8',\n Ugrave: '\\u00D9',\n Uacute: '\\u00DA',\n Ucirc: '\\u00DB',\n Uuml: '\\u00DC',\n Yacute: '\\u00DD',\n THORN: '\\u00DE',\n szlig: '\\u00DF',\n agrave: '\\u00E0',\n aacute: '\\u00E1',\n acirc: '\\u00E2',\n atilde: '\\u00E3',\n auml: '\\u00E4',\n aring: '\\u00E5',\n aelig: '\\u00E6',\n ccedil: '\\u00E7',\n egrave: '\\u00E8',\n eacute: '\\u00E9',\n ecirc: '\\u00EA',\n euml: '\\u00EB',\n igrave: '\\u00EC',\n iacute: '\\u00ED',\n icirc: '\\u00EE',\n iuml: '\\u00EF',\n eth: '\\u00F0',\n ntilde: '\\u00F1',\n ograve: '\\u00F2',\n oacute: '\\u00F3',\n ocirc: '\\u00F4',\n otilde: '\\u00F5',\n ouml: '\\u00F6',\n divide: '\\u00F7',\n oslash: '\\u00F8',\n ugrave: '\\u00F9',\n uacute: '\\u00FA',\n ucirc: '\\u00FB',\n uuml: '\\u00FC',\n yacute: '\\u00FD',\n thorn: '\\u00FE',\n yuml: '\\u00FF',\n OElig: '\\u0152',\n oelig: '\\u0153',\n Scaron: '\\u0160',\n scaron: '\\u0161',\n Yuml: '\\u0178',\n fnof: '\\u0192',\n circ: '\\u02C6',\n tilde: '\\u02DC',\n Alpha: '\\u0391',\n Beta: '\\u0392',\n Gamma: '\\u0393',\n Delta: '\\u0394',\n Epsilon: '\\u0395',\n Zeta: '\\u0396',\n Eta: '\\u0397',\n Theta: '\\u0398',\n Iota: '\\u0399',\n Kappa: '\\u039A',\n Lambda: '\\u039B',\n Mu: '\\u039C',\n Nu: '\\u039D',\n Xi: '\\u039E',\n Omicron: '\\u039F',\n Pi: '\\u03A0',\n Rho: '\\u03A1',\n Sigma: '\\u03A3',\n Tau: '\\u03A4',\n Upsilon: '\\u03A5',\n Phi: '\\u03A6',\n Chi: '\\u03A7',\n Psi: '\\u03A8',\n Omega: '\\u03A9',\n alpha: '\\u03B1',\n beta: '\\u03B2',\n gamma: '\\u03B3',\n delta: '\\u03B4',\n epsilon: '\\u03B5',\n zeta: '\\u03B6',\n eta: '\\u03B7',\n theta: '\\u03B8',\n iota: '\\u03B9',\n kappa: '\\u03BA',\n lambda: '\\u03BB',\n mu: '\\u03BC',\n nu: '\\u03BD',\n xi: '\\u03BE',\n omicron: '\\u03BF',\n pi: '\\u03C0',\n rho: '\\u03C1',\n sigmaf: '\\u03C2',\n sigma: '\\u03C3',\n tau: '\\u03C4',\n upsilon: '\\u03C5',\n phi: '\\u03C6',\n chi: '\\u03C7',\n psi: '\\u03C8',\n omega: '\\u03C9',\n thetasym: '\\u03D1',\n upsih: '\\u03D2',\n piv: '\\u03D6',\n ensp: '\\u2002',\n emsp: '\\u2003',\n thinsp: '\\u2009',\n zwnj: '\\u200C',\n zwj: '\\u200D',\n lrm: '\\u200E',\n rlm: '\\u200F',\n ndash: '\\u2013',\n mdash: '\\u2014',\n lsquo: '\\u2018',\n rsquo: '\\u2019',\n sbquo: '\\u201A',\n ldquo: '\\u201C',\n rdquo: '\\u201D',\n bdquo: '\\u201E',\n dagger: '\\u2020',\n Dagger: '\\u2021',\n bull: '\\u2022',\n hellip: '\\u2026',\n permil: '\\u2030',\n prime: '\\u2032',\n Prime: '\\u2033',\n lsaquo: '\\u2039',\n rsaquo: '\\u203A',\n oline: '\\u203E',\n frasl: '\\u2044',\n euro: '\\u20AC',\n image: '\\u2111',\n weierp: '\\u2118',\n real: '\\u211C',\n trade: '\\u2122',\n alefsym: '\\u2135',\n larr: '\\u2190',\n uarr: '\\u2191',\n rarr: '\\u2192',\n darr: '\\u2193',\n harr: '\\u2194',\n crarr: '\\u21B5',\n lArr: '\\u21D0',\n uArr: '\\u21D1',\n rArr: '\\u21D2',\n dArr: '\\u21D3',\n hArr: '\\u21D4',\n forall: '\\u2200',\n part: '\\u2202',\n exist: '\\u2203',\n empty: '\\u2205',\n nabla: '\\u2207',\n isin: '\\u2208',\n notin: '\\u2209',\n ni: '\\u220B',\n prod: '\\u220F',\n sum: '\\u2211',\n minus: '\\u2212',\n lowast: '\\u2217',\n radic: '\\u221A',\n prop: '\\u221D',\n infin: '\\u221E',\n ang: '\\u2220',\n and: '\\u2227',\n or: '\\u2228',\n cap: '\\u2229',\n cup: '\\u222A',\n 'int': '\\u222B',\n there4: '\\u2234',\n sim: '\\u223C',\n cong: '\\u2245',\n asymp: '\\u2248',\n ne: '\\u2260',\n equiv: '\\u2261',\n le: '\\u2264',\n ge: '\\u2265',\n sub: '\\u2282',\n sup: '\\u2283',\n nsub: '\\u2284',\n sube: '\\u2286',\n supe: '\\u2287',\n oplus: '\\u2295',\n otimes: '\\u2297',\n perp: '\\u22A5',\n sdot: '\\u22C5',\n lceil: '\\u2308',\n rceil: '\\u2309',\n lfloor: '\\u230A',\n rfloor: '\\u230B',\n lang: '\\u2329',\n rang: '\\u232A',\n loz: '\\u25CA',\n spades: '\\u2660',\n clubs: '\\u2663',\n hearts: '\\u2665',\n diams: '\\u2666'\n};\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.acorn = {}));\n})(this, (function (exports) { 'use strict';\n\n // This file was generated. Do not modify manually!\n 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, 7, 9, 32, 4, 318, 1, 78, 5, 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, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 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, 199, 7, 137, 9, 54, 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, 55, 9, 266, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 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, 245, 1, 2, 9, 233, 0, 3, 0, 8, 1, 6, 0, 475, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];\n\n // This file was generated. Do not modify manually!\n 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, 4, 51, 13, 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, 7, 25, 39, 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, 39, 27, 10, 22, 251, 41, 7, 1, 17, 5, 57, 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, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 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, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 24, 43, 261, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 33, 24, 3, 24, 45, 74, 6, 0, 67, 12, 65, 1, 2, 0, 15, 4, 10, 7381, 42, 31, 98, 114, 8702, 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, 229, 29, 3, 0, 208, 30, 2, 2, 2, 1, 2, 6, 3, 4, 10, 1, 225, 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, 4381, 3, 5773, 3, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 8489];\n\n // This file was generated. Do not modify manually!\n 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\\u0897-\\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-\\u1add\\u1ae0-\\u1aeb\\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\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\u30fb\\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\\uff65\";\n\n // This file was generated. Do not modify manually!\n 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-\\u088f\\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\\u0c5c\\u0c5d\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cdc-\\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-\\u1c8a\\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-\\ua7dc\\ua7f1-\\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\";\n\n // These are a run-length and offset encoded representation of the\n // >0xffff code points that are a valid part of identifiers. The\n // offset starts at 0x10000, and each pair of numbers represents an\n // offset to the next range, and then a size of the range.\n\n // Reserved word lists for various dialects of the language\n\n var reservedWords = {\n 3: \"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile\",\n 5: \"class enum extends super const export import\",\n 6: \"enum\",\n strict: \"implements interface let package private protected public static yield\",\n strictBind: \"eval arguments\"\n };\n\n // And the keywords\n\n var ecma5AndLessKeywords = \"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this\";\n\n var keywords$1 = {\n 5: ecma5AndLessKeywords,\n \"5module\": ecma5AndLessKeywords + \" export import\",\n 6: ecma5AndLessKeywords + \" const class extends export import super\"\n };\n\n var keywordRelationalOperator = /^in(stanceof)?$/;\n\n // ## Character categories\n\n var nonASCIIidentifierStart = new RegExp(\"[\" + nonASCIIidentifierStartChars + \"]\");\n var nonASCIIidentifier = new RegExp(\"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\");\n\n // This has a complexity linear to the value of the code. The\n // assumption is that looking up astral identifier characters is\n // rare.\n function isInAstralSet(code, set) {\n var pos = 0x10000;\n for (var i = 0; i < set.length; i += 2) {\n pos += set[i];\n if (pos > code) { return false }\n pos += set[i + 1];\n if (pos >= code) { return true }\n }\n return false\n }\n\n // Test whether a given character code starts an identifier.\n\n function isIdentifierStart(code, astral) {\n if (code < 65) { return code === 36 }\n if (code < 91) { return true }\n if (code < 97) { return code === 95 }\n if (code < 123) { return true }\n if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)) }\n if (astral === false) { return false }\n return isInAstralSet(code, astralIdentifierStartCodes)\n }\n\n // Test whether a given character is part of an identifier.\n\n function isIdentifierChar(code, astral) {\n if (code < 48) { return code === 36 }\n if (code < 58) { return true }\n if (code < 65) { return false }\n if (code < 91) { return true }\n if (code < 97) { return code === 95 }\n if (code < 123) { return true }\n if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)) }\n if (astral === false) { return false }\n return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes)\n }\n\n // ## Token types\n\n // The assignment of fine-grained, information-carrying type objects\n // allows the tokenizer to store the information it has about a\n // token in a way that is very cheap for the parser to look up.\n\n // All token type variables start with an underscore, to make them\n // easy to recognize.\n\n // The `beforeExpr` property is used to disambiguate between regular\n // expressions and divisions. It is set on all token types that can\n // be followed by an expression (thus, a slash after them would be a\n // regular expression).\n //\n // The `startsExpr` property is used to check if the token ends a\n // `yield` expression. It is set on all token types that either can\n // directly start an expression (like a quotation mark) or can\n // continue an expression (like the body of a string).\n //\n // `isLoop` marks a keyword as starting a loop, which is important\n // to know when parsing a label, in order to allow or disallow\n // continue jumps to that label.\n\n var TokenType = function TokenType(label, conf) {\n if ( conf === void 0 ) conf = {};\n\n this.label = label;\n this.keyword = conf.keyword;\n this.beforeExpr = !!conf.beforeExpr;\n this.startsExpr = !!conf.startsExpr;\n this.isLoop = !!conf.isLoop;\n this.isAssign = !!conf.isAssign;\n this.prefix = !!conf.prefix;\n this.postfix = !!conf.postfix;\n this.binop = conf.binop || null;\n this.updateContext = null;\n };\n\n function binop(name, prec) {\n return new TokenType(name, {beforeExpr: true, binop: prec})\n }\n var beforeExpr = {beforeExpr: true}, startsExpr = {startsExpr: true};\n\n // Map keyword names to token types.\n\n var keywords = {};\n\n // Succinct definitions of keyword token types\n function kw(name, options) {\n if ( options === void 0 ) options = {};\n\n options.keyword = name;\n return keywords[name] = new TokenType(name, options)\n }\n\n var types$1 = {\n num: new TokenType(\"num\", startsExpr),\n regexp: new TokenType(\"regexp\", startsExpr),\n string: new TokenType(\"string\", startsExpr),\n name: new TokenType(\"name\", startsExpr),\n privateId: new TokenType(\"privateId\", startsExpr),\n eof: new TokenType(\"eof\"),\n\n // Punctuation token types.\n bracketL: new TokenType(\"[\", {beforeExpr: true, startsExpr: true}),\n bracketR: new TokenType(\"]\"),\n braceL: new TokenType(\"{\", {beforeExpr: true, startsExpr: true}),\n braceR: new TokenType(\"}\"),\n parenL: new TokenType(\"(\", {beforeExpr: true, startsExpr: true}),\n parenR: new TokenType(\")\"),\n comma: new TokenType(\",\", beforeExpr),\n semi: new TokenType(\";\", beforeExpr),\n colon: new TokenType(\":\", beforeExpr),\n dot: new TokenType(\".\"),\n question: new TokenType(\"?\", beforeExpr),\n questionDot: new TokenType(\"?.\"),\n arrow: new TokenType(\"=>\", beforeExpr),\n template: new TokenType(\"template\"),\n invalidTemplate: new TokenType(\"invalidTemplate\"),\n ellipsis: new TokenType(\"...\", beforeExpr),\n backQuote: new TokenType(\"`\", startsExpr),\n dollarBraceL: new TokenType(\"${\", {beforeExpr: true, startsExpr: true}),\n\n // Operators. These carry several kinds of properties to help the\n // parser use them properly (the presence of these properties is\n // what categorizes them as operators).\n //\n // `binop`, when present, specifies that this operator is a binary\n // operator, and will refer to its precedence.\n //\n // `prefix` and `postfix` mark the operator as a prefix or postfix\n // unary operator.\n //\n // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n // binary operators with a very low precedence, that should result\n // in AssignmentExpression nodes.\n\n eq: new TokenType(\"=\", {beforeExpr: true, isAssign: true}),\n assign: new TokenType(\"_=\", {beforeExpr: true, isAssign: true}),\n incDec: new TokenType(\"++/--\", {prefix: true, postfix: true, startsExpr: true}),\n prefix: new TokenType(\"!/~\", {beforeExpr: true, prefix: true, startsExpr: true}),\n logicalOR: binop(\"||\", 1),\n logicalAND: binop(\"&&\", 2),\n bitwiseOR: binop(\"|\", 3),\n bitwiseXOR: binop(\"^\", 4),\n bitwiseAND: binop(\"&\", 5),\n equality: binop(\"==/!=/===/!==\", 6),\n relational: binop(\"</>/<=/>=\", 7),\n bitShift: binop(\"<</>>/>>>\", 8),\n plusMin: new TokenType(\"+/-\", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}),\n modulo: binop(\"%\", 10),\n star: binop(\"*\", 10),\n slash: binop(\"/\", 10),\n starstar: new TokenType(\"**\", {beforeExpr: true}),\n coalesce: binop(\"??\", 1),\n\n // Keyword token types.\n _break: kw(\"break\"),\n _case: kw(\"case\", beforeExpr),\n _catch: kw(\"catch\"),\n _continue: kw(\"continue\"),\n _debugger: kw(\"debugger\"),\n _default: kw(\"default\", beforeExpr),\n _do: kw(\"do\", {isLoop: true, beforeExpr: true}),\n _else: kw(\"else\", beforeExpr),\n _finally: kw(\"finally\"),\n _for: kw(\"for\", {isLoop: true}),\n _function: kw(\"function\", startsExpr),\n _if: kw(\"if\"),\n _return: kw(\"return\", beforeExpr),\n _switch: kw(\"switch\"),\n _throw: kw(\"throw\", beforeExpr),\n _try: kw(\"try\"),\n _var: kw(\"var\"),\n _const: kw(\"const\"),\n _while: kw(\"while\", {isLoop: true}),\n _with: kw(\"with\"),\n _new: kw(\"new\", {beforeExpr: true, startsExpr: true}),\n _this: kw(\"this\", startsExpr),\n _super: kw(\"super\", startsExpr),\n _class: kw(\"class\", startsExpr),\n _extends: kw(\"extends\", beforeExpr),\n _export: kw(\"export\"),\n _import: kw(\"import\", startsExpr),\n _null: kw(\"null\", startsExpr),\n _true: kw(\"true\", startsExpr),\n _false: kw(\"false\", startsExpr),\n _in: kw(\"in\", {beforeExpr: true, binop: 7}),\n _instanceof: kw(\"instanceof\", {beforeExpr: true, binop: 7}),\n _typeof: kw(\"typeof\", {beforeExpr: true, prefix: true, startsExpr: true}),\n _void: kw(\"void\", {beforeExpr: true, prefix: true, startsExpr: true}),\n _delete: kw(\"delete\", {beforeExpr: true, prefix: true, startsExpr: true})\n };\n\n // Matches a whole line break (where CRLF is considered a single\n // line break). Used to count lines.\n\n var lineBreak = /\\r\\n?|\\n|\\u2028|\\u2029/;\n var lineBreakG = new RegExp(lineBreak.source, \"g\");\n\n function isNewLine(code) {\n return code === 10 || code === 13 || code === 0x2028 || code === 0x2029\n }\n\n function nextLineBreak(code, from, end) {\n if ( end === void 0 ) end = code.length;\n\n for (var i = from; i < end; i++) {\n var next = code.charCodeAt(i);\n if (isNewLine(next))\n { return i < end - 1 && next === 13 && code.charCodeAt(i + 1) === 10 ? i + 2 : i + 1 }\n }\n return -1\n }\n\n var nonASCIIwhitespace = /[\\u1680\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]/;\n\n var skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\n\n var ref = Object.prototype;\n var hasOwnProperty = ref.hasOwnProperty;\n var toString = ref.toString;\n\n var hasOwn = Object.hasOwn || (function (obj, propName) { return (\n hasOwnProperty.call(obj, propName)\n ); });\n\n var isArray = Array.isArray || (function (obj) { return (\n toString.call(obj) === \"[object Array]\"\n ); });\n\n var regexpCache = Object.create(null);\n\n function wordsRegexp(words) {\n return regexpCache[words] || (regexpCache[words] = new RegExp(\"^(?:\" + words.replace(/ /g, \"|\") + \")$\"))\n }\n\n function codePointToString(code) {\n // UTF-16 Decoding\n if (code <= 0xFFFF) { return String.fromCharCode(code) }\n code -= 0x10000;\n return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00)\n }\n\n var loneSurrogate = /(?:[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])/;\n\n // These are used when `options.locations` is on, for the\n // `startLoc` and `endLoc` properties.\n\n var Position = function Position(line, col) {\n this.line = line;\n this.column = col;\n };\n\n Position.prototype.offset = function offset (n) {\n return new Position(this.line, this.column + n)\n };\n\n var SourceLocation = function SourceLocation(p, start, end) {\n this.start = start;\n this.end = end;\n if (p.sourceFile !== null) { this.source = p.sourceFile; }\n };\n\n // The `getLineInfo` function is mostly useful when the\n // `locations` option is off (for performance reasons) and you\n // want to find the line/column position for a given character\n // offset. `input` should be the code string that the offset refers\n // into.\n\n function getLineInfo(input, offset) {\n for (var line = 1, cur = 0;;) {\n var nextBreak = nextLineBreak(input, cur, offset);\n if (nextBreak < 0) { return new Position(line, offset - cur) }\n ++line;\n cur = nextBreak;\n }\n }\n\n // A second argument must be given to configure the parser process.\n // These options are recognized (only `ecmaVersion` is required):\n\n var defaultOptions = {\n // `ecmaVersion` indicates the ECMAScript version to parse. Must be\n // either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10\n // (2019), 11 (2020), 12 (2021), 13 (2022), 14 (2023), or `\"latest\"`\n // (the latest version the library supports). This influences\n // support for strict mode, the set of reserved words, and support\n // for new syntax features.\n ecmaVersion: null,\n // `sourceType` indicates the mode the code should be parsed in.\n // Can be either `\"script\"`, `\"module\"` or `\"commonjs\"`. This influences global\n // strict mode and parsing of `import` and `export` declarations.\n sourceType: \"script\",\n // `onInsertedSemicolon` can be a callback that will be called when\n // a semicolon is automatically inserted. It will be passed the\n // position of the inserted semicolon as an offset, and if\n // `locations` is enabled, it is given the location as a `{line,\n // column}` object as second argument.\n onInsertedSemicolon: null,\n // `onTrailingComma` is similar to `onInsertedSemicolon`, but for\n // trailing commas.\n onTrailingComma: null,\n // By default, reserved words are only enforced if ecmaVersion >= 5.\n // Set `allowReserved` to a boolean value to explicitly turn this on\n // an off. When this option has the value \"never\", reserved words\n // and keywords can also not be used as property names.\n allowReserved: null,\n // When enabled, a return at the top level is not considered an\n // error.\n allowReturnOutsideFunction: false,\n // When enabled, import/export statements are not constrained to\n // appearing at the top of the program, and an import.meta expression\n // in a script isn't considered an error.\n allowImportExportEverywhere: false,\n // By default, await identifiers are allowed to appear at the top-level scope only if ecmaVersion >= 2022.\n // When enabled, await identifiers are allowed to appear at the top-level scope,\n // but they are still not allowed in non-async functions.\n allowAwaitOutsideFunction: null,\n // When enabled, super identifiers are not constrained to\n // appearing in methods and do not raise an error when they appear elsewhere.\n allowSuperOutsideMethod: null,\n // When enabled, hashbang directive in the beginning of file is\n // allowed and treated as a line comment. Enabled by default when\n // `ecmaVersion` >= 2023.\n allowHashBang: false,\n // By default, the parser will verify that private properties are\n // only used in places where they are valid and have been declared.\n // Set this to false to turn such checks off.\n checkPrivateFields: true,\n // When `locations` is on, `loc` properties holding objects with\n // `start` and `end` properties in `{line, column}` form (with\n // line being 1-based and column 0-based) will be attached to the\n // nodes.\n locations: false,\n // A function can be passed as `onToken` option, which will\n // cause Acorn to call that function with object in the same\n // format as tokens returned from `tokenizer().getToken()`. Note\n // that you are not allowed to call the parser from the\n // callback—that will corrupt its internal state.\n onToken: null,\n // A function can be passed as `onComment` option, which will\n // cause Acorn to call that function with `(block, text, start,\n // end)` parameters whenever a comment is skipped. `block` is a\n // boolean indicating whether this is a block (`/* */`) comment,\n // `text` is the content of the comment, and `start` and `end` are\n // character offsets that denote the start and end of the comment.\n // When the `locations` option is on, two more parameters are\n // passed, the full `{line, column}` locations of the start and\n // end of the comments. Note that you are not allowed to call the\n // parser from the callback—that will corrupt its internal state.\n // When this option has an array as value, objects representing the\n // comments are pushed to it.\n onComment: null,\n // Nodes have their start and end characters offsets recorded in\n // `start` and `end` properties (directly on the node, rather than\n // the `loc` object, which holds line/column data. To also add a\n // [semi-standardized][range] `range` property holding a `[start,\n // end]` array with the same numbers, set the `ranges` option to\n // `true`.\n //\n // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n ranges: false,\n // It is possible to parse multiple files into a single AST by\n // passing the tree produced by parsing the first file as\n // `program` option in subsequent parses. This will add the\n // toplevel forms of the parsed file to the `Program` (top) node\n // of an existing parse tree.\n program: null,\n // When `locations` is on, you can pass this to record the source\n // file in every node's `loc` object.\n sourceFile: null,\n // This value, if given, is stored in every node, whether\n // `locations` is on or off.\n directSourceFile: null,\n // When enabled, parenthesized expressions are represented by\n // (non-standard) ParenthesizedExpression nodes\n preserveParens: false\n };\n\n // Interpret and default an options object\n\n var warnedAboutEcmaVersion = false;\n\n function getOptions(opts) {\n var options = {};\n\n for (var opt in defaultOptions)\n { options[opt] = opts && hasOwn(opts, opt) ? opts[opt] : defaultOptions[opt]; }\n\n if (options.ecmaVersion === \"latest\") {\n options.ecmaVersion = 1e8;\n } else if (options.ecmaVersion == null) {\n if (!warnedAboutEcmaVersion && typeof console === \"object\" && console.warn) {\n warnedAboutEcmaVersion = true;\n console.warn(\"Since Acorn 8.0.0, options.ecmaVersion is required.\\nDefaulting to 2020, but this will stop working in the future.\");\n }\n options.ecmaVersion = 11;\n } else if (options.ecmaVersion >= 2015) {\n options.ecmaVersion -= 2009;\n }\n\n if (options.allowReserved == null)\n { options.allowReserved = options.ecmaVersion < 5; }\n\n if (!opts || opts.allowHashBang == null)\n { options.allowHashBang = options.ecmaVersion >= 14; }\n\n if (isArray(options.onToken)) {\n var tokens = options.onToken;\n options.onToken = function (token) { return tokens.push(token); };\n }\n if (isArray(options.onComment))\n { options.onComment = pushComment(options, options.onComment); }\n\n if (options.sourceType === \"commonjs\" && options.allowAwaitOutsideFunction)\n { throw new Error(\"Cannot use allowAwaitOutsideFunction with sourceType: commonjs\") }\n\n return options\n }\n\n function pushComment(options, array) {\n return function(block, text, start, end, startLoc, endLoc) {\n var comment = {\n type: block ? \"Block\" : \"Line\",\n value: text,\n start: start,\n end: end\n };\n if (options.locations)\n { comment.loc = new SourceLocation(this, startLoc, endLoc); }\n if (options.ranges)\n { comment.range = [start, end]; }\n array.push(comment);\n }\n }\n\n // Each scope gets a bitset that may contain these flags\n var\n SCOPE_TOP = 1,\n SCOPE_FUNCTION = 2,\n SCOPE_ASYNC = 4,\n SCOPE_GENERATOR = 8,\n SCOPE_ARROW = 16,\n SCOPE_SIMPLE_CATCH = 32,\n SCOPE_SUPER = 64,\n SCOPE_DIRECT_SUPER = 128,\n SCOPE_CLASS_STATIC_BLOCK = 256,\n SCOPE_CLASS_FIELD_INIT = 512,\n SCOPE_SWITCH = 1024,\n SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK;\n\n function functionFlags(async, generator) {\n return SCOPE_FUNCTION | (async ? SCOPE_ASYNC : 0) | (generator ? SCOPE_GENERATOR : 0)\n }\n\n // Used in checkLVal* and declareName to determine the type of a binding\n var\n BIND_NONE = 0, // Not a binding\n BIND_VAR = 1, // Var-style binding\n BIND_LEXICAL = 2, // Let- or const-style binding\n BIND_FUNCTION = 3, // Function declaration\n BIND_SIMPLE_CATCH = 4, // Simple (identifier pattern) catch binding\n BIND_OUTSIDE = 5; // Special case for function names as bound inside the function\n\n var Parser = function Parser(options, input, startPos) {\n this.options = options = getOptions(options);\n this.sourceFile = options.sourceFile;\n this.keywords = wordsRegexp(keywords$1[options.ecmaVersion >= 6 ? 6 : options.sourceType === \"module\" ? \"5module\" : 5]);\n var reserved = \"\";\n if (options.allowReserved !== true) {\n reserved = reservedWords[options.ecmaVersion >= 6 ? 6 : options.ecmaVersion === 5 ? 5 : 3];\n if (options.sourceType === \"module\") { reserved += \" await\"; }\n }\n this.reservedWords = wordsRegexp(reserved);\n var reservedStrict = (reserved ? reserved + \" \" : \"\") + reservedWords.strict;\n this.reservedWordsStrict = wordsRegexp(reservedStrict);\n this.reservedWordsStrictBind = wordsRegexp(reservedStrict + \" \" + reservedWords.strictBind);\n this.input = String(input);\n\n // Used to signal to callers of `readWord1` whether the word\n // contained any escape sequences. This is needed because words with\n // escape sequences must not be interpreted as keywords.\n this.containsEsc = false;\n\n // Set up token state\n\n // The current position of the tokenizer in the input.\n if (startPos) {\n this.pos = startPos;\n this.lineStart = this.input.lastIndexOf(\"\\n\", startPos - 1) + 1;\n this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length;\n } else {\n this.pos = this.lineStart = 0;\n this.curLine = 1;\n }\n\n // Properties of the current token:\n // Its type\n this.type = types$1.eof;\n // For tokens that include more information than their type, the value\n this.value = null;\n // Its start and end offset\n this.start = this.end = this.pos;\n // And, if locations are used, the {line, column} object\n // corresponding to those offsets\n this.startLoc = this.endLoc = this.curPosition();\n\n // Position information for the previous token\n this.lastTokEndLoc = this.lastTokStartLoc = null;\n this.lastTokStart = this.lastTokEnd = this.pos;\n\n // The context stack is used to superficially track syntactic\n // context to predict whether a regular expression is allowed in a\n // given position.\n this.context = this.initialContext();\n this.exprAllowed = true;\n\n // Figure out if it's a module code.\n this.inModule = options.sourceType === \"module\";\n this.strict = this.inModule || this.strictDirective(this.pos);\n\n // Used to signify the start of a potential arrow function\n this.potentialArrowAt = -1;\n this.potentialArrowInForAwait = false;\n\n // Positions to delayed-check that yield/await does not exist in default parameters.\n this.yieldPos = this.awaitPos = this.awaitIdentPos = 0;\n // Labels in scope.\n this.labels = [];\n // Thus-far undefined exports.\n this.undefinedExports = Object.create(null);\n\n // If enabled, skip leading hashbang line.\n if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === \"#!\")\n { this.skipLineComment(2); }\n\n // Scope tracking for duplicate variable names (see scope.js)\n this.scopeStack = [];\n this.enterScope(\n this.options.sourceType === \"commonjs\"\n // In commonjs, the top-level scope behaves like a function scope\n ? SCOPE_FUNCTION\n : SCOPE_TOP\n );\n\n // For RegExp validation\n this.regexpState = null;\n\n // The stack of private names.\n // Each element has two properties: 'declared' and 'used'.\n // When it exited from the outermost class definition, all used private names must be declared.\n this.privateNameStack = [];\n };\n\n var prototypeAccessors = { inFunction: { configurable: true },inGenerator: { configurable: true },inAsync: { configurable: true },canAwait: { configurable: true },allowReturn: { configurable: true },allowSuper: { configurable: true },allowDirectSuper: { configurable: true },treatFunctionsAsVar: { configurable: true },allowNewDotTarget: { configurable: true },allowUsing: { configurable: true },inClassStaticBlock: { configurable: true } };\n\n Parser.prototype.parse = function parse () {\n var node = this.options.program || this.startNode();\n this.nextToken();\n return this.parseTopLevel(node)\n };\n\n prototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 };\n\n prototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 };\n\n prototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 };\n\n prototypeAccessors.canAwait.get = function () {\n for (var i = this.scopeStack.length - 1; i >= 0; i--) {\n var ref = this.scopeStack[i];\n var flags = ref.flags;\n if (flags & (SCOPE_CLASS_STATIC_BLOCK | SCOPE_CLASS_FIELD_INIT)) { return false }\n if (flags & SCOPE_FUNCTION) { return (flags & SCOPE_ASYNC) > 0 }\n }\n return (this.inModule && this.options.ecmaVersion >= 13) || this.options.allowAwaitOutsideFunction\n };\n\n prototypeAccessors.allowReturn.get = function () {\n if (this.inFunction) { return true }\n if (this.options.allowReturnOutsideFunction && this.currentVarScope().flags & SCOPE_TOP) { return true }\n return false\n };\n\n prototypeAccessors.allowSuper.get = function () {\n var ref = this.currentThisScope();\n var flags = ref.flags;\n return (flags & SCOPE_SUPER) > 0 || this.options.allowSuperOutsideMethod\n };\n\n prototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 };\n\n prototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) };\n\n prototypeAccessors.allowNewDotTarget.get = function () {\n for (var i = this.scopeStack.length - 1; i >= 0; i--) {\n var ref = this.scopeStack[i];\n var flags = ref.flags;\n if (flags & (SCOPE_CLASS_STATIC_BLOCK | SCOPE_CLASS_FIELD_INIT) ||\n ((flags & SCOPE_FUNCTION) && !(flags & SCOPE_ARROW))) { return true }\n }\n return false\n };\n\n prototypeAccessors.allowUsing.get = function () {\n var ref = this.currentScope();\n var flags = ref.flags;\n if (flags & SCOPE_SWITCH) { return false }\n if (!this.inModule && flags & SCOPE_TOP) { return false }\n return true\n };\n\n prototypeAccessors.inClassStaticBlock.get = function () {\n return (this.currentVarScope().flags & SCOPE_CLASS_STATIC_BLOCK) > 0\n };\n\n Parser.extend = function extend () {\n var plugins = [], len = arguments.length;\n while ( len-- ) plugins[ len ] = arguments[ len ];\n\n var cls = this;\n for (var i = 0; i < plugins.length; i++) { cls = plugins[i](cls); }\n return cls\n };\n\n Parser.parse = function parse (input, options) {\n return new this(options, input).parse()\n };\n\n Parser.parseExpressionAt = function parseExpressionAt (input, pos, options) {\n var parser = new this(options, input, pos);\n parser.nextToken();\n return parser.parseExpression()\n };\n\n Parser.tokenizer = function tokenizer (input, options) {\n return new this(options, input)\n };\n\n Object.defineProperties( Parser.prototype, prototypeAccessors );\n\n var pp$9 = Parser.prototype;\n\n // ## Parser utilities\n\n var literal = /^(?:'((?:\\\\[^]|[^'\\\\])*?)'|\"((?:\\\\[^]|[^\"\\\\])*?)\")/;\n pp$9.strictDirective = function(start) {\n if (this.options.ecmaVersion < 5) { return false }\n for (;;) {\n // Try to find string literal.\n skipWhiteSpace.lastIndex = start;\n start += skipWhiteSpace.exec(this.input)[0].length;\n var match = literal.exec(this.input.slice(start));\n if (!match) { return false }\n if ((match[1] || match[2]) === \"use strict\") {\n skipWhiteSpace.lastIndex = start + match[0].length;\n var spaceAfter = skipWhiteSpace.exec(this.input), end = spaceAfter.index + spaceAfter[0].length;\n var next = this.input.charAt(end);\n return next === \";\" || next === \"}\" ||\n (lineBreak.test(spaceAfter[0]) &&\n !(/[(`.[+\\-/*%<>=,?^&]/.test(next) || next === \"!\" && this.input.charAt(end + 1) === \"=\"))\n }\n start += match[0].length;\n\n // Skip semicolon, if any.\n skipWhiteSpace.lastIndex = start;\n start += skipWhiteSpace.exec(this.input)[0].length;\n if (this.input[start] === \";\")\n { start++; }\n }\n };\n\n // Predicate that tests whether the next token is of the given\n // type, and if yes, consumes it as a side effect.\n\n pp$9.eat = function(type) {\n if (this.type === type) {\n this.next();\n return true\n } else {\n return false\n }\n };\n\n // Tests whether parsed token is a contextual keyword.\n\n pp$9.isContextual = function(name) {\n return this.type === types$1.name && this.value === name && !this.containsEsc\n };\n\n // Consumes contextual keyword if possible.\n\n pp$9.eatContextual = function(name) {\n if (!this.isContextual(name)) { return false }\n this.next();\n return true\n };\n\n // Asserts that following token is given contextual keyword.\n\n pp$9.expectContextual = function(name) {\n if (!this.eatContextual(name)) { this.unexpected(); }\n };\n\n // Test whether a semicolon can be inserted at the current position.\n\n pp$9.canInsertSemicolon = function() {\n return this.type === types$1.eof ||\n this.type === types$1.braceR ||\n lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n };\n\n pp$9.insertSemicolon = function() {\n if (this.canInsertSemicolon()) {\n if (this.options.onInsertedSemicolon)\n { this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc); }\n return true\n }\n };\n\n // Consume a semicolon, or, failing that, see if we are allowed to\n // pretend that there is a semicolon at this position.\n\n pp$9.semicolon = function() {\n if (!this.eat(types$1.semi) && !this.insertSemicolon()) { this.unexpected(); }\n };\n\n pp$9.afterTrailingComma = function(tokType, notNext) {\n if (this.type === tokType) {\n if (this.options.onTrailingComma)\n { this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc); }\n if (!notNext)\n { this.next(); }\n return true\n }\n };\n\n // Expect a token of a given type. If found, consume it, otherwise,\n // raise an unexpected token error.\n\n pp$9.expect = function(type) {\n this.eat(type) || this.unexpected();\n };\n\n // Raise an unexpected token error.\n\n pp$9.unexpected = function(pos) {\n this.raise(pos != null ? pos : this.start, \"Unexpected token\");\n };\n\n var DestructuringErrors = function DestructuringErrors() {\n this.shorthandAssign =\n this.trailingComma =\n this.parenthesizedAssign =\n this.parenthesizedBind =\n this.doubleProto =\n -1;\n };\n\n pp$9.checkPatternErrors = function(refDestructuringErrors, isAssign) {\n if (!refDestructuringErrors) { return }\n if (refDestructuringErrors.trailingComma > -1)\n { this.raiseRecoverable(refDestructuringErrors.trailingComma, \"Comma is not permitted after the rest element\"); }\n var parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind;\n if (parens > -1) { this.raiseRecoverable(parens, isAssign ? \"Assigning to rvalue\" : \"Parenthesized pattern\"); }\n };\n\n pp$9.checkExpressionErrors = function(refDestructuringErrors, andThrow) {\n if (!refDestructuringErrors) { return false }\n var shorthandAssign = refDestructuringErrors.shorthandAssign;\n var doubleProto = refDestructuringErrors.doubleProto;\n if (!andThrow) { return shorthandAssign >= 0 || doubleProto >= 0 }\n if (shorthandAssign >= 0)\n { this.raise(shorthandAssign, \"Shorthand property assignments are valid only in destructuring patterns\"); }\n if (doubleProto >= 0)\n { this.raiseRecoverable(doubleProto, \"Redefinition of __proto__ property\"); }\n };\n\n pp$9.checkYieldAwaitInDefaultParams = function() {\n if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos))\n { this.raise(this.yieldPos, \"Yield expression cannot be a default value\"); }\n if (this.awaitPos)\n { this.raise(this.awaitPos, \"Await expression cannot be a default value\"); }\n };\n\n pp$9.isSimpleAssignTarget = function(expr) {\n if (expr.type === \"ParenthesizedExpression\")\n { return this.isSimpleAssignTarget(expr.expression) }\n return expr.type === \"Identifier\" || expr.type === \"MemberExpression\"\n };\n\n var pp$8 = Parser.prototype;\n\n // ### Statement parsing\n\n // Parse a program. Initializes the parser, reads any number of\n // statements, and wraps them in a Program node. Optionally takes a\n // `program` argument. If present, the statements will be appended\n // to its body instead of creating a new node.\n\n pp$8.parseTopLevel = function(node) {\n var exports = Object.create(null);\n if (!node.body) { node.body = []; }\n while (this.type !== types$1.eof) {\n var stmt = this.parseStatement(null, true, exports);\n node.body.push(stmt);\n }\n if (this.inModule)\n { for (var i = 0, list = Object.keys(this.undefinedExports); i < list.length; i += 1)\n {\n var name = list[i];\n\n this.raiseRecoverable(this.undefinedExports[name].start, (\"Export '\" + name + \"' is not defined\"));\n } }\n this.adaptDirectivePrologue(node.body);\n this.next();\n node.sourceType = this.options.sourceType === \"commonjs\" ? \"script\" : this.options.sourceType;\n return this.finishNode(node, \"Program\")\n };\n\n var loopLabel = {kind: \"loop\"}, switchLabel = {kind: \"switch\"};\n\n pp$8.isLet = function(context) {\n if (this.options.ecmaVersion < 6 || !this.isContextual(\"let\")) { return false }\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, nextCh = this.fullCharCodeAt(next);\n // For ambiguous cases, determine if a LexicalDeclaration (or only a\n // Statement) is allowed here. If context is not empty then only a Statement\n // is allowed. However, `let [` is an explicit negative lookahead for\n // ExpressionStatement, so special-case it first.\n if (nextCh === 91 || nextCh === 92) { return true } // '[', '\\'\n if (context) { return false }\n\n if (nextCh === 123) { return true } // '{'\n if (isIdentifierStart(nextCh)) {\n var start = next;\n do { next += nextCh <= 0xffff ? 1 : 2; }\n while (isIdentifierChar(nextCh = this.fullCharCodeAt(next)))\n if (nextCh === 92) { return true }\n var ident = this.input.slice(start, next);\n if (!keywordRelationalOperator.test(ident)) { return true }\n }\n return false\n };\n\n // check 'async [no LineTerminator here] function'\n // - 'async /*foo*/ function' is OK.\n // - 'async /*\\n*/ function' is invalid.\n pp$8.isAsyncFunction = function() {\n if (this.options.ecmaVersion < 8 || !this.isContextual(\"async\"))\n { return false }\n\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, after;\n return !lineBreak.test(this.input.slice(this.pos, next)) &&\n this.input.slice(next, next + 8) === \"function\" &&\n (next + 8 === this.input.length ||\n !(isIdentifierChar(after = this.fullCharCodeAt(next + 8)) || after === 92 /* '\\' */))\n };\n\n pp$8.isUsingKeyword = function(isAwaitUsing, isFor) {\n if (this.options.ecmaVersion < 17 || !this.isContextual(isAwaitUsing ? \"await\" : \"using\"))\n { return false }\n\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length;\n\n if (lineBreak.test(this.input.slice(this.pos, next))) { return false }\n\n if (isAwaitUsing) {\n var usingEndPos = next + 5 /* using */, after;\n if (this.input.slice(next, usingEndPos) !== \"using\" ||\n usingEndPos === this.input.length ||\n isIdentifierChar(after = this.fullCharCodeAt(usingEndPos)) ||\n after === 92 /* '\\' */\n ) { return false }\n\n skipWhiteSpace.lastIndex = usingEndPos;\n var skipAfterUsing = skipWhiteSpace.exec(this.input);\n next = usingEndPos + skipAfterUsing[0].length;\n if (skipAfterUsing && lineBreak.test(this.input.slice(usingEndPos, next))) { return false }\n }\n\n var ch = this.fullCharCodeAt(next);\n if (!isIdentifierStart(ch) && ch !== 92 /* '\\' */) { return false }\n var idStart = next;\n do { next += ch <= 0xffff ? 1 : 2; }\n while (isIdentifierChar(ch = this.fullCharCodeAt(next)))\n if (ch === 92) { return true }\n var id = this.input.slice(idStart, next);\n if (keywordRelationalOperator.test(id) || isFor && id === \"of\") { return false }\n return true\n };\n\n pp$8.isAwaitUsing = function(isFor) {\n return this.isUsingKeyword(true, isFor)\n };\n\n pp$8.isUsing = function(isFor) {\n return this.isUsingKeyword(false, isFor)\n };\n\n // Parse a single statement.\n //\n // If expecting a statement and finding a slash operator, parse a\n // regular expression literal. This is to handle cases like\n // `if (foo) /blah/.exec(foo)`, where looking at the previous token\n // does not help.\n\n pp$8.parseStatement = function(context, topLevel, exports) {\n var starttype = this.type, node = this.startNode(), kind;\n\n if (this.isLet(context)) {\n starttype = types$1._var;\n kind = \"let\";\n }\n\n // Most types of statements are recognized by the keyword they\n // start with. Many are trivial to parse, some require a bit of\n // complexity.\n\n switch (starttype) {\n case types$1._break: case types$1._continue: return this.parseBreakContinueStatement(node, starttype.keyword)\n case types$1._debugger: return this.parseDebuggerStatement(node)\n case types$1._do: return this.parseDoStatement(node)\n case types$1._for: return this.parseForStatement(node)\n case types$1._function:\n // Function as sole body of either an if statement or a labeled statement\n // works, but not when it is part of a labeled statement that is the sole\n // body of an if statement.\n if ((context && (this.strict || context !== \"if\" && context !== \"label\")) && this.options.ecmaVersion >= 6) { this.unexpected(); }\n return this.parseFunctionStatement(node, false, !context)\n case types$1._class:\n if (context) { this.unexpected(); }\n return this.parseClass(node, true)\n case types$1._if: return this.parseIfStatement(node)\n case types$1._return: return this.parseReturnStatement(node)\n case types$1._switch: return this.parseSwitchStatement(node)\n case types$1._throw: return this.parseThrowStatement(node)\n case types$1._try: return this.parseTryStatement(node)\n case types$1._const: case types$1._var:\n kind = kind || this.value;\n if (context && kind !== \"var\") { this.unexpected(); }\n return this.parseVarStatement(node, kind)\n case types$1._while: return this.parseWhileStatement(node)\n case types$1._with: return this.parseWithStatement(node)\n case types$1.braceL: return this.parseBlock(true, node)\n case types$1.semi: return this.parseEmptyStatement(node)\n case types$1._export:\n case types$1._import:\n if (this.options.ecmaVersion > 10 && starttype === types$1._import) {\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next);\n if (nextCh === 40 || nextCh === 46) // '(' or '.'\n { return this.parseExpressionStatement(node, this.parseExpression()) }\n }\n\n if (!this.options.allowImportExportEverywhere) {\n if (!topLevel)\n { this.raise(this.start, \"'import' and 'export' may only appear at the top level\"); }\n if (!this.inModule)\n { this.raise(this.start, \"'import' and 'export' may appear only with 'sourceType: module'\"); }\n }\n return starttype === types$1._import ? this.parseImport(node) : this.parseExport(node, exports)\n\n // If the statement does not start with a statement keyword or a\n // brace, it's an ExpressionStatement or LabeledStatement. We\n // simply start parsing an expression, and afterwards, if the\n // next token is a colon and the expression was a simple\n // Identifier node, we switch to interpreting it as a label.\n default:\n if (this.isAsyncFunction()) {\n if (context) { this.unexpected(); }\n this.next();\n return this.parseFunctionStatement(node, true, !context)\n }\n\n var usingKind = this.isAwaitUsing(false) ? \"await using\" : this.isUsing(false) ? \"using\" : null;\n if (usingKind) {\n if (!this.allowUsing) {\n this.raise(this.start, \"Using declaration cannot appear in the top level when source type is `script` or in the bare case statement\");\n }\n if (usingKind === \"await using\") {\n if (!this.canAwait) {\n this.raise(this.start, \"Await using cannot appear outside of async function\");\n }\n this.next();\n }\n this.next();\n this.parseVar(node, false, usingKind);\n this.semicolon();\n return this.finishNode(node, \"VariableDeclaration\")\n }\n\n var maybeName = this.value, expr = this.parseExpression();\n if (starttype === types$1.name && expr.type === \"Identifier\" && this.eat(types$1.colon))\n { return this.parseLabeledStatement(node, maybeName, expr, context) }\n else { return this.parseExpressionStatement(node, expr) }\n }\n };\n\n pp$8.parseBreakContinueStatement = function(node, keyword) {\n var isBreak = keyword === \"break\";\n this.next();\n if (this.eat(types$1.semi) || this.insertSemicolon()) { node.label = null; }\n else if (this.type !== types$1.name) { this.unexpected(); }\n else {\n node.label = this.parseIdent();\n this.semicolon();\n }\n\n // Verify that there is an actual destination to break or\n // continue to.\n var i = 0;\n for (; i < this.labels.length; ++i) {\n var lab = this.labels[i];\n if (node.label == null || lab.name === node.label.name) {\n if (lab.kind != null && (isBreak || lab.kind === \"loop\")) { break }\n if (node.label && isBreak) { break }\n }\n }\n if (i === this.labels.length) { this.raise(node.start, \"Unsyntactic \" + keyword); }\n return this.finishNode(node, isBreak ? \"BreakStatement\" : \"ContinueStatement\")\n };\n\n pp$8.parseDebuggerStatement = function(node) {\n this.next();\n this.semicolon();\n return this.finishNode(node, \"DebuggerStatement\")\n };\n\n pp$8.parseDoStatement = function(node) {\n this.next();\n this.labels.push(loopLabel);\n node.body = this.parseStatement(\"do\");\n this.labels.pop();\n this.expect(types$1._while);\n node.test = this.parseParenExpression();\n if (this.options.ecmaVersion >= 6)\n { this.eat(types$1.semi); }\n else\n { this.semicolon(); }\n return this.finishNode(node, \"DoWhileStatement\")\n };\n\n // Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n // loop is non-trivial. Basically, we have to parse the init `var`\n // statement or expression, disallowing the `in` operator (see\n // the second parameter to `parseExpression`), and then check\n // whether the next token is `in` or `of`. When there is no init\n // part (semicolon immediately after the opening parenthesis), it\n // is a regular `for` loop.\n\n pp$8.parseForStatement = function(node) {\n this.next();\n var awaitAt = (this.options.ecmaVersion >= 9 && this.canAwait && this.eatContextual(\"await\")) ? this.lastTokStart : -1;\n this.labels.push(loopLabel);\n this.enterScope(0);\n this.expect(types$1.parenL);\n if (this.type === types$1.semi) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, null)\n }\n var isLet = this.isLet();\n if (this.type === types$1._var || this.type === types$1._const || isLet) {\n var init$1 = this.startNode(), kind = isLet ? \"let\" : this.value;\n this.next();\n this.parseVar(init$1, true, kind);\n this.finishNode(init$1, \"VariableDeclaration\");\n return this.parseForAfterInit(node, init$1, awaitAt)\n }\n var startsWithLet = this.isContextual(\"let\"), isForOf = false;\n\n var usingKind = this.isUsing(true) ? \"using\" : this.isAwaitUsing(true) ? \"await using\" : null;\n if (usingKind) {\n var init$2 = this.startNode();\n this.next();\n if (usingKind === \"await using\") {\n if (!this.canAwait) {\n this.raise(this.start, \"Await using cannot appear outside of async function\");\n }\n this.next();\n }\n this.parseVar(init$2, true, usingKind);\n this.finishNode(init$2, \"VariableDeclaration\");\n return this.parseForAfterInit(node, init$2, awaitAt)\n }\n var containsEsc = this.containsEsc;\n var refDestructuringErrors = new DestructuringErrors;\n var initPos = this.start;\n var init = awaitAt > -1\n ? this.parseExprSubscripts(refDestructuringErrors, \"await\")\n : this.parseExpression(true, refDestructuringErrors);\n if (this.type === types$1._in || (isForOf = this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) {\n if (awaitAt > -1) { // implies `ecmaVersion >= 9` (see declaration of awaitAt)\n if (this.type === types$1._in) { this.unexpected(awaitAt); }\n node.await = true;\n } else if (isForOf && this.options.ecmaVersion >= 8) {\n if (init.start === initPos && !containsEsc && init.type === \"Identifier\" && init.name === \"async\") { this.unexpected(); }\n else if (this.options.ecmaVersion >= 9) { node.await = false; }\n }\n if (startsWithLet && isForOf) { this.raise(init.start, \"The left-hand side of a for-of loop may not start with 'let'.\"); }\n this.toAssignable(init, false, refDestructuringErrors);\n this.checkLValPattern(init);\n return this.parseForIn(node, init)\n } else {\n this.checkExpressionErrors(refDestructuringErrors, true);\n }\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, init)\n };\n\n // Helper method to parse for loop after variable initialization\n pp$8.parseForAfterInit = function(node, init, awaitAt) {\n if ((this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) && init.declarations.length === 1) {\n if (this.options.ecmaVersion >= 9) {\n if (this.type === types$1._in) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n } else { node.await = awaitAt > -1; }\n }\n return this.parseForIn(node, init)\n }\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, init)\n };\n\n pp$8.parseFunctionStatement = function(node, isAsync, declarationPosition) {\n this.next();\n return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync)\n };\n\n pp$8.parseIfStatement = function(node) {\n this.next();\n node.test = this.parseParenExpression();\n // allow function declarations in branches, but only in non-strict mode\n node.consequent = this.parseStatement(\"if\");\n node.alternate = this.eat(types$1._else) ? this.parseStatement(\"if\") : null;\n return this.finishNode(node, \"IfStatement\")\n };\n\n pp$8.parseReturnStatement = function(node) {\n if (!this.allowReturn)\n { this.raise(this.start, \"'return' outside of function\"); }\n this.next();\n\n // In `return` (and `break`/`continue`), the keywords with\n // optional arguments, we eagerly look for a semicolon or the\n // possibility to insert one.\n\n if (this.eat(types$1.semi) || this.insertSemicolon()) { node.argument = null; }\n else { node.argument = this.parseExpression(); this.semicolon(); }\n return this.finishNode(node, \"ReturnStatement\")\n };\n\n pp$8.parseSwitchStatement = function(node) {\n this.next();\n node.discriminant = this.parseParenExpression();\n node.cases = [];\n this.expect(types$1.braceL);\n this.labels.push(switchLabel);\n this.enterScope(SCOPE_SWITCH);\n\n // Statements under must be grouped (by label) in SwitchCase\n // nodes. `cur` is used to keep the node that we are currently\n // adding statements to.\n\n var cur;\n for (var sawDefault = false; this.type !== types$1.braceR;) {\n if (this.type === types$1._case || this.type === types$1._default) {\n var isCase = this.type === types$1._case;\n if (cur) { this.finishNode(cur, \"SwitchCase\"); }\n node.cases.push(cur = this.startNode());\n cur.consequent = [];\n this.next();\n if (isCase) {\n cur.test = this.parseExpression();\n } else {\n if (sawDefault) { this.raiseRecoverable(this.lastTokStart, \"Multiple default clauses\"); }\n sawDefault = true;\n cur.test = null;\n }\n this.expect(types$1.colon);\n } else {\n if (!cur) { this.unexpected(); }\n cur.consequent.push(this.parseStatement(null));\n }\n }\n this.exitScope();\n if (cur) { this.finishNode(cur, \"SwitchCase\"); }\n this.next(); // Closing brace\n this.labels.pop();\n return this.finishNode(node, \"SwitchStatement\")\n };\n\n pp$8.parseThrowStatement = function(node) {\n this.next();\n if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start)))\n { this.raise(this.lastTokEnd, \"Illegal newline after throw\"); }\n node.argument = this.parseExpression();\n this.semicolon();\n return this.finishNode(node, \"ThrowStatement\")\n };\n\n // Reused empty array added for node fields that are always empty.\n\n var empty$1 = [];\n\n pp$8.parseCatchClauseParam = function() {\n var param = this.parseBindingAtom();\n var simple = param.type === \"Identifier\";\n this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0);\n this.checkLValPattern(param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL);\n this.expect(types$1.parenR);\n\n return param\n };\n\n pp$8.parseTryStatement = function(node) {\n this.next();\n node.block = this.parseBlock();\n node.handler = null;\n if (this.type === types$1._catch) {\n var clause = this.startNode();\n this.next();\n if (this.eat(types$1.parenL)) {\n clause.param = this.parseCatchClauseParam();\n } else {\n if (this.options.ecmaVersion < 10) { this.unexpected(); }\n clause.param = null;\n this.enterScope(0);\n }\n clause.body = this.parseBlock(false);\n this.exitScope();\n node.handler = this.finishNode(clause, \"CatchClause\");\n }\n node.finalizer = this.eat(types$1._finally) ? this.parseBlock() : null;\n if (!node.handler && !node.finalizer)\n { this.raise(node.start, \"Missing catch or finally clause\"); }\n return this.finishNode(node, \"TryStatement\")\n };\n\n pp$8.parseVarStatement = function(node, kind, allowMissingInitializer) {\n this.next();\n this.parseVar(node, false, kind, allowMissingInitializer);\n this.semicolon();\n return this.finishNode(node, \"VariableDeclaration\")\n };\n\n pp$8.parseWhileStatement = function(node) {\n this.next();\n node.test = this.parseParenExpression();\n this.labels.push(loopLabel);\n node.body = this.parseStatement(\"while\");\n this.labels.pop();\n return this.finishNode(node, \"WhileStatement\")\n };\n\n pp$8.parseWithStatement = function(node) {\n if (this.strict) { this.raise(this.start, \"'with' in strict mode\"); }\n this.next();\n node.object = this.parseParenExpression();\n node.body = this.parseStatement(\"with\");\n return this.finishNode(node, \"WithStatement\")\n };\n\n pp$8.parseEmptyStatement = function(node) {\n this.next();\n return this.finishNode(node, \"EmptyStatement\")\n };\n\n pp$8.parseLabeledStatement = function(node, maybeName, expr, context) {\n for (var i$1 = 0, list = this.labels; i$1 < list.length; i$1 += 1)\n {\n var label = list[i$1];\n\n if (label.name === maybeName)\n { this.raise(expr.start, \"Label '\" + maybeName + \"' is already declared\");\n } }\n var kind = this.type.isLoop ? \"loop\" : this.type === types$1._switch ? \"switch\" : null;\n for (var i = this.labels.length - 1; i >= 0; i--) {\n var label$1 = this.labels[i];\n if (label$1.statementStart === node.start) {\n // Update information about previous labels on this node\n label$1.statementStart = this.start;\n label$1.kind = kind;\n } else { break }\n }\n this.labels.push({name: maybeName, kind: kind, statementStart: this.start});\n node.body = this.parseStatement(context ? context.indexOf(\"label\") === -1 ? context + \"label\" : context : \"label\");\n this.labels.pop();\n node.label = expr;\n return this.finishNode(node, \"LabeledStatement\")\n };\n\n pp$8.parseExpressionStatement = function(node, expr) {\n node.expression = expr;\n this.semicolon();\n return this.finishNode(node, \"ExpressionStatement\")\n };\n\n // Parse a semicolon-enclosed block of statements, handling `\"use\n // strict\"` declarations when `allowStrict` is true (used for\n // function bodies).\n\n pp$8.parseBlock = function(createNewLexicalScope, node, exitStrict) {\n if ( createNewLexicalScope === void 0 ) createNewLexicalScope = true;\n if ( node === void 0 ) node = this.startNode();\n\n node.body = [];\n this.expect(types$1.braceL);\n if (createNewLexicalScope) { this.enterScope(0); }\n while (this.type !== types$1.braceR) {\n var stmt = this.parseStatement(null);\n node.body.push(stmt);\n }\n if (exitStrict) { this.strict = false; }\n this.next();\n if (createNewLexicalScope) { this.exitScope(); }\n return this.finishNode(node, \"BlockStatement\")\n };\n\n // Parse a regular `for` loop. The disambiguation code in\n // `parseStatement` will already have parsed the init statement or\n // expression.\n\n pp$8.parseFor = function(node, init) {\n node.init = init;\n this.expect(types$1.semi);\n node.test = this.type === types$1.semi ? null : this.parseExpression();\n this.expect(types$1.semi);\n node.update = this.type === types$1.parenR ? null : this.parseExpression();\n this.expect(types$1.parenR);\n node.body = this.parseStatement(\"for\");\n this.exitScope();\n this.labels.pop();\n return this.finishNode(node, \"ForStatement\")\n };\n\n // Parse a `for`/`in` and `for`/`of` loop, which are almost\n // same from parser's perspective.\n\n pp$8.parseForIn = function(node, init) {\n var isForIn = this.type === types$1._in;\n this.next();\n\n if (\n init.type === \"VariableDeclaration\" &&\n init.declarations[0].init != null &&\n (\n !isForIn ||\n this.options.ecmaVersion < 8 ||\n this.strict ||\n init.kind !== \"var\" ||\n init.declarations[0].id.type !== \"Identifier\"\n )\n ) {\n this.raise(\n init.start,\n ((isForIn ? \"for-in\" : \"for-of\") + \" loop variable declaration may not have an initializer\")\n );\n }\n node.left = init;\n node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign();\n this.expect(types$1.parenR);\n node.body = this.parseStatement(\"for\");\n this.exitScope();\n this.labels.pop();\n return this.finishNode(node, isForIn ? \"ForInStatement\" : \"ForOfStatement\")\n };\n\n // Parse a list of variable declarations.\n\n pp$8.parseVar = function(node, isFor, kind, allowMissingInitializer) {\n node.declarations = [];\n node.kind = kind;\n for (;;) {\n var decl = this.startNode();\n this.parseVarId(decl, kind);\n if (this.eat(types$1.eq)) {\n decl.init = this.parseMaybeAssign(isFor);\n } else if (!allowMissingInitializer && kind === \"const\" && !(this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\")))) {\n this.unexpected();\n } else if (!allowMissingInitializer && (kind === \"using\" || kind === \"await using\") && this.options.ecmaVersion >= 17 && this.type !== types$1._in && !this.isContextual(\"of\")) {\n this.raise(this.lastTokEnd, (\"Missing initializer in \" + kind + \" declaration\"));\n } else if (!allowMissingInitializer && decl.id.type !== \"Identifier\" && !(isFor && (this.type === types$1._in || this.isContextual(\"of\")))) {\n this.raise(this.lastTokEnd, \"Complex binding patterns require an initialization value\");\n } else {\n decl.init = null;\n }\n node.declarations.push(this.finishNode(decl, \"VariableDeclarator\"));\n if (!this.eat(types$1.comma)) { break }\n }\n return node\n };\n\n pp$8.parseVarId = function(decl, kind) {\n decl.id = kind === \"using\" || kind === \"await using\"\n ? this.parseIdent()\n : this.parseBindingAtom();\n\n this.checkLValPattern(decl.id, kind === \"var\" ? BIND_VAR : BIND_LEXICAL, false);\n };\n\n var FUNC_STATEMENT = 1, FUNC_HANGING_STATEMENT = 2, FUNC_NULLABLE_ID = 4;\n\n // Parse a function declaration or literal (depending on the\n // `statement & FUNC_STATEMENT`).\n\n // Remove `allowExpressionBody` for 7.0.0, as it is only called with false\n pp$8.parseFunction = function(node, statement, allowExpressionBody, isAsync, forInit) {\n this.initFunction(node);\n if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) {\n if (this.type === types$1.star && (statement & FUNC_HANGING_STATEMENT))\n { this.unexpected(); }\n node.generator = this.eat(types$1.star);\n }\n if (this.options.ecmaVersion >= 8)\n { node.async = !!isAsync; }\n\n if (statement & FUNC_STATEMENT) {\n node.id = (statement & FUNC_NULLABLE_ID) && this.type !== types$1.name ? null : this.parseIdent();\n if (node.id && !(statement & FUNC_HANGING_STATEMENT))\n // If it is a regular function declaration in sloppy mode, then it is\n // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding\n // mode depends on properties of the current scope (see\n // treatFunctionsAsVar).\n { this.checkLValSimple(node.id, (this.strict || node.generator || node.async) ? this.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION); }\n }\n\n var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n this.enterScope(functionFlags(node.async, node.generator));\n\n if (!(statement & FUNC_STATEMENT))\n { node.id = this.type === types$1.name ? this.parseIdent() : null; }\n\n this.parseFunctionParams(node);\n this.parseFunctionBody(node, allowExpressionBody, false, forInit);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, (statement & FUNC_STATEMENT) ? \"FunctionDeclaration\" : \"FunctionExpression\")\n };\n\n pp$8.parseFunctionParams = function(node) {\n this.expect(types$1.parenL);\n node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8);\n this.checkYieldAwaitInDefaultParams();\n };\n\n // Parse a class declaration or literal (depending on the\n // `isStatement` parameter).\n\n pp$8.parseClass = function(node, isStatement) {\n this.next();\n\n // ecma-262 14.6 Class Definitions\n // A class definition is always strict mode code.\n var oldStrict = this.strict;\n this.strict = true;\n\n this.parseClassId(node, isStatement);\n this.parseClassSuper(node);\n var privateNameMap = this.enterClassBody();\n var classBody = this.startNode();\n var hadConstructor = false;\n classBody.body = [];\n this.expect(types$1.braceL);\n while (this.type !== types$1.braceR) {\n var element = this.parseClassElement(node.superClass !== null);\n if (element) {\n classBody.body.push(element);\n if (element.type === \"MethodDefinition\" && element.kind === \"constructor\") {\n if (hadConstructor) { this.raiseRecoverable(element.start, \"Duplicate constructor in the same class\"); }\n hadConstructor = true;\n } else if (element.key && element.key.type === \"PrivateIdentifier\" && isPrivateNameConflicted(privateNameMap, element)) {\n this.raiseRecoverable(element.key.start, (\"Identifier '#\" + (element.key.name) + \"' has already been declared\"));\n }\n }\n }\n this.strict = oldStrict;\n this.next();\n node.body = this.finishNode(classBody, \"ClassBody\");\n this.exitClassBody();\n return this.finishNode(node, isStatement ? \"ClassDeclaration\" : \"ClassExpression\")\n };\n\n pp$8.parseClassElement = function(constructorAllowsSuper) {\n if (this.eat(types$1.semi)) { return null }\n\n var ecmaVersion = this.options.ecmaVersion;\n var node = this.startNode();\n var keyName = \"\";\n var isGenerator = false;\n var isAsync = false;\n var kind = \"method\";\n var isStatic = false;\n\n if (this.eatContextual(\"static\")) {\n // Parse static init block\n if (ecmaVersion >= 13 && this.eat(types$1.braceL)) {\n this.parseClassStaticBlock(node);\n return node\n }\n if (this.isClassElementNameStart() || this.type === types$1.star) {\n isStatic = true;\n } else {\n keyName = \"static\";\n }\n }\n node.static = isStatic;\n if (!keyName && ecmaVersion >= 8 && this.eatContextual(\"async\")) {\n if ((this.isClassElementNameStart() || this.type === types$1.star) && !this.canInsertSemicolon()) {\n isAsync = true;\n } else {\n keyName = \"async\";\n }\n }\n if (!keyName && (ecmaVersion >= 9 || !isAsync) && this.eat(types$1.star)) {\n isGenerator = true;\n }\n if (!keyName && !isAsync && !isGenerator) {\n var lastValue = this.value;\n if (this.eatContextual(\"get\") || this.eatContextual(\"set\")) {\n if (this.isClassElementNameStart()) {\n kind = lastValue;\n } else {\n keyName = lastValue;\n }\n }\n }\n\n // Parse element name\n if (keyName) {\n // 'async', 'get', 'set', or 'static' were not a keyword contextually.\n // The last token is any of those. Make it the element name.\n node.computed = false;\n node.key = this.startNodeAt(this.lastTokStart, this.lastTokStartLoc);\n node.key.name = keyName;\n this.finishNode(node.key, \"Identifier\");\n } else {\n this.parseClassElementName(node);\n }\n\n // Parse element value\n if (ecmaVersion < 13 || this.type === types$1.parenL || kind !== \"method\" || isGenerator || isAsync) {\n var isConstructor = !node.static && checkKeyName(node, \"constructor\");\n var allowsDirectSuper = isConstructor && constructorAllowsSuper;\n // Couldn't move this check into the 'parseClassMethod' method for backward compatibility.\n if (isConstructor && kind !== \"method\") { this.raise(node.key.start, \"Constructor can't have get/set modifier\"); }\n node.kind = isConstructor ? \"constructor\" : kind;\n this.parseClassMethod(node, isGenerator, isAsync, allowsDirectSuper);\n } else {\n this.parseClassField(node);\n }\n\n return node\n };\n\n pp$8.isClassElementNameStart = function() {\n return (\n this.type === types$1.name ||\n this.type === types$1.privateId ||\n this.type === types$1.num ||\n this.type === types$1.string ||\n this.type === types$1.bracketL ||\n this.type.keyword\n )\n };\n\n pp$8.parseClassElementName = function(element) {\n if (this.type === types$1.privateId) {\n if (this.value === \"constructor\") {\n this.raise(this.start, \"Classes can't have an element named '#constructor'\");\n }\n element.computed = false;\n element.key = this.parsePrivateIdent();\n } else {\n this.parsePropertyName(element);\n }\n };\n\n pp$8.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) {\n // Check key and flags\n var key = method.key;\n if (method.kind === \"constructor\") {\n if (isGenerator) { this.raise(key.start, \"Constructor can't be a generator\"); }\n if (isAsync) { this.raise(key.start, \"Constructor can't be an async method\"); }\n } else if (method.static && checkKeyName(method, \"prototype\")) {\n this.raise(key.start, \"Classes may not have a static property named prototype\");\n }\n\n // Parse value\n var value = method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper);\n\n // Check value\n if (method.kind === \"get\" && value.params.length !== 0)\n { this.raiseRecoverable(value.start, \"getter should have no params\"); }\n if (method.kind === \"set\" && value.params.length !== 1)\n { this.raiseRecoverable(value.start, \"setter should have exactly one param\"); }\n if (method.kind === \"set\" && value.params[0].type === \"RestElement\")\n { this.raiseRecoverable(value.params[0].start, \"Setter cannot use rest params\"); }\n\n return this.finishNode(method, \"MethodDefinition\")\n };\n\n pp$8.parseClassField = function(field) {\n if (checkKeyName(field, \"constructor\")) {\n this.raise(field.key.start, \"Classes can't have a field named 'constructor'\");\n } else if (field.static && checkKeyName(field, \"prototype\")) {\n this.raise(field.key.start, \"Classes can't have a static field named 'prototype'\");\n }\n\n if (this.eat(types$1.eq)) {\n // To raise SyntaxError if 'arguments' exists in the initializer.\n this.enterScope(SCOPE_CLASS_FIELD_INIT | SCOPE_SUPER);\n field.value = this.parseMaybeAssign();\n this.exitScope();\n } else {\n field.value = null;\n }\n this.semicolon();\n\n return this.finishNode(field, \"PropertyDefinition\")\n };\n\n pp$8.parseClassStaticBlock = function(node) {\n node.body = [];\n\n var oldLabels = this.labels;\n this.labels = [];\n this.enterScope(SCOPE_CLASS_STATIC_BLOCK | SCOPE_SUPER);\n while (this.type !== types$1.braceR) {\n var stmt = this.parseStatement(null);\n node.body.push(stmt);\n }\n this.next();\n this.exitScope();\n this.labels = oldLabels;\n\n return this.finishNode(node, \"StaticBlock\")\n };\n\n pp$8.parseClassId = function(node, isStatement) {\n if (this.type === types$1.name) {\n node.id = this.parseIdent();\n if (isStatement)\n { this.checkLValSimple(node.id, BIND_LEXICAL, false); }\n } else {\n if (isStatement === true)\n { this.unexpected(); }\n node.id = null;\n }\n };\n\n pp$8.parseClassSuper = function(node) {\n node.superClass = this.eat(types$1._extends) ? this.parseExprSubscripts(null, false) : null;\n };\n\n pp$8.enterClassBody = function() {\n var element = {declared: Object.create(null), used: []};\n this.privateNameStack.push(element);\n return element.declared\n };\n\n pp$8.exitClassBody = function() {\n var ref = this.privateNameStack.pop();\n var declared = ref.declared;\n var used = ref.used;\n if (!this.options.checkPrivateFields) { return }\n var len = this.privateNameStack.length;\n var parent = len === 0 ? null : this.privateNameStack[len - 1];\n for (var i = 0; i < used.length; ++i) {\n var id = used[i];\n if (!hasOwn(declared, id.name)) {\n if (parent) {\n parent.used.push(id);\n } else {\n this.raiseRecoverable(id.start, (\"Private field '#\" + (id.name) + \"' must be declared in an enclosing class\"));\n }\n }\n }\n };\n\n function isPrivateNameConflicted(privateNameMap, element) {\n var name = element.key.name;\n var curr = privateNameMap[name];\n\n var next = \"true\";\n if (element.type === \"MethodDefinition\" && (element.kind === \"get\" || element.kind === \"set\")) {\n next = (element.static ? \"s\" : \"i\") + element.kind;\n }\n\n // `class { get #a(){}; static set #a(_){} }` is also conflict.\n if (\n curr === \"iget\" && next === \"iset\" ||\n curr === \"iset\" && next === \"iget\" ||\n curr === \"sget\" && next === \"sset\" ||\n curr === \"sset\" && next === \"sget\"\n ) {\n privateNameMap[name] = \"true\";\n return false\n } else if (!curr) {\n privateNameMap[name] = next;\n return false\n } else {\n return true\n }\n }\n\n function checkKeyName(node, name) {\n var computed = node.computed;\n var key = node.key;\n return !computed && (\n key.type === \"Identifier\" && key.name === name ||\n key.type === \"Literal\" && key.value === name\n )\n }\n\n // Parses module export declaration.\n\n pp$8.parseExportAllDeclaration = function(node, exports) {\n if (this.options.ecmaVersion >= 11) {\n if (this.eatContextual(\"as\")) {\n node.exported = this.parseModuleExportName();\n this.checkExport(exports, node.exported, this.lastTokStart);\n } else {\n node.exported = null;\n }\n }\n this.expectContextual(\"from\");\n if (this.type !== types$1.string) { this.unexpected(); }\n node.source = this.parseExprAtom();\n if (this.options.ecmaVersion >= 16)\n { node.attributes = this.parseWithClause(); }\n this.semicolon();\n return this.finishNode(node, \"ExportAllDeclaration\")\n };\n\n pp$8.parseExport = function(node, exports) {\n this.next();\n // export * from '...'\n if (this.eat(types$1.star)) {\n return this.parseExportAllDeclaration(node, exports)\n }\n if (this.eat(types$1._default)) { // export default ...\n this.checkExport(exports, \"default\", this.lastTokStart);\n node.declaration = this.parseExportDefaultDeclaration();\n return this.finishNode(node, \"ExportDefaultDeclaration\")\n }\n // export var|const|let|function|class ...\n if (this.shouldParseExportStatement()) {\n node.declaration = this.parseExportDeclaration(node);\n if (node.declaration.type === \"VariableDeclaration\")\n { this.checkVariableExport(exports, node.declaration.declarations); }\n else\n { this.checkExport(exports, node.declaration.id, node.declaration.id.start); }\n node.specifiers = [];\n node.source = null;\n if (this.options.ecmaVersion >= 16)\n { node.attributes = []; }\n } else { // export { x, y as z } [from '...']\n node.declaration = null;\n node.specifiers = this.parseExportSpecifiers(exports);\n if (this.eatContextual(\"from\")) {\n if (this.type !== types$1.string) { this.unexpected(); }\n node.source = this.parseExprAtom();\n if (this.options.ecmaVersion >= 16)\n { node.attributes = this.parseWithClause(); }\n } else {\n for (var i = 0, list = node.specifiers; i < list.length; i += 1) {\n // check for keywords used as local names\n var spec = list[i];\n\n this.checkUnreserved(spec.local);\n // check if export is defined\n this.checkLocalExport(spec.local);\n\n if (spec.local.type === \"Literal\") {\n this.raise(spec.local.start, \"A string literal cannot be used as an exported binding without `from`.\");\n }\n }\n\n node.source = null;\n if (this.options.ecmaVersion >= 16)\n { node.attributes = []; }\n }\n this.semicolon();\n }\n return this.finishNode(node, \"ExportNamedDeclaration\")\n };\n\n pp$8.parseExportDeclaration = function(node) {\n return this.parseStatement(null)\n };\n\n pp$8.parseExportDefaultDeclaration = function() {\n var isAsync;\n if (this.type === types$1._function || (isAsync = this.isAsyncFunction())) {\n var fNode = this.startNode();\n this.next();\n if (isAsync) { this.next(); }\n return this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync)\n } else if (this.type === types$1._class) {\n var cNode = this.startNode();\n return this.parseClass(cNode, \"nullableID\")\n } else {\n var declaration = this.parseMaybeAssign();\n this.semicolon();\n return declaration\n }\n };\n\n pp$8.checkExport = function(exports, name, pos) {\n if (!exports) { return }\n if (typeof name !== \"string\")\n { name = name.type === \"Identifier\" ? name.name : name.value; }\n if (hasOwn(exports, name))\n { this.raiseRecoverable(pos, \"Duplicate export '\" + name + \"'\"); }\n exports[name] = true;\n };\n\n pp$8.checkPatternExport = function(exports, pat) {\n var type = pat.type;\n if (type === \"Identifier\")\n { this.checkExport(exports, pat, pat.start); }\n else if (type === \"ObjectPattern\")\n { for (var i = 0, list = pat.properties; i < list.length; i += 1)\n {\n var prop = list[i];\n\n this.checkPatternExport(exports, prop);\n } }\n else if (type === \"ArrayPattern\")\n { for (var i$1 = 0, list$1 = pat.elements; i$1 < list$1.length; i$1 += 1) {\n var elt = list$1[i$1];\n\n if (elt) { this.checkPatternExport(exports, elt); }\n } }\n else if (type === \"Property\")\n { this.checkPatternExport(exports, pat.value); }\n else if (type === \"AssignmentPattern\")\n { this.checkPatternExport(exports, pat.left); }\n else if (type === \"RestElement\")\n { this.checkPatternExport(exports, pat.argument); }\n };\n\n pp$8.checkVariableExport = function(exports, decls) {\n if (!exports) { return }\n for (var i = 0, list = decls; i < list.length; i += 1)\n {\n var decl = list[i];\n\n this.checkPatternExport(exports, decl.id);\n }\n };\n\n pp$8.shouldParseExportStatement = function() {\n return this.type.keyword === \"var\" ||\n this.type.keyword === \"const\" ||\n this.type.keyword === \"class\" ||\n this.type.keyword === \"function\" ||\n this.isLet() ||\n this.isAsyncFunction()\n };\n\n // Parses a comma-separated list of module exports.\n\n pp$8.parseExportSpecifier = function(exports) {\n var node = this.startNode();\n node.local = this.parseModuleExportName();\n\n node.exported = this.eatContextual(\"as\") ? this.parseModuleExportName() : node.local;\n this.checkExport(\n exports,\n node.exported,\n node.exported.start\n );\n\n return this.finishNode(node, \"ExportSpecifier\")\n };\n\n pp$8.parseExportSpecifiers = function(exports) {\n var nodes = [], first = true;\n // export { x, y as z } [from '...']\n this.expect(types$1.braceL);\n while (!this.eat(types$1.braceR)) {\n if (!first) {\n this.expect(types$1.comma);\n if (this.afterTrailingComma(types$1.braceR)) { break }\n } else { first = false; }\n\n nodes.push(this.parseExportSpecifier(exports));\n }\n return nodes\n };\n\n // Parses import declaration.\n\n pp$8.parseImport = function(node) {\n this.next();\n\n // import '...'\n if (this.type === types$1.string) {\n node.specifiers = empty$1;\n node.source = this.parseExprAtom();\n } else {\n node.specifiers = this.parseImportSpecifiers();\n this.expectContextual(\"from\");\n node.source = this.type === types$1.string ? this.parseExprAtom() : this.unexpected();\n }\n if (this.options.ecmaVersion >= 16)\n { node.attributes = this.parseWithClause(); }\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\")\n };\n\n // Parses a comma-separated list of module imports.\n\n pp$8.parseImportSpecifier = function() {\n var node = this.startNode();\n node.imported = this.parseModuleExportName();\n\n if (this.eatContextual(\"as\")) {\n node.local = this.parseIdent();\n } else {\n this.checkUnreserved(node.imported);\n node.local = node.imported;\n }\n this.checkLValSimple(node.local, BIND_LEXICAL);\n\n return this.finishNode(node, \"ImportSpecifier\")\n };\n\n pp$8.parseImportDefaultSpecifier = function() {\n // import defaultObj, { x, y as z } from '...'\n var node = this.startNode();\n node.local = this.parseIdent();\n this.checkLValSimple(node.local, BIND_LEXICAL);\n return this.finishNode(node, \"ImportDefaultSpecifier\")\n };\n\n pp$8.parseImportNamespaceSpecifier = function() {\n var node = this.startNode();\n this.next();\n this.expectContextual(\"as\");\n node.local = this.parseIdent();\n this.checkLValSimple(node.local, BIND_LEXICAL);\n return this.finishNode(node, \"ImportNamespaceSpecifier\")\n };\n\n pp$8.parseImportSpecifiers = function() {\n var nodes = [], first = true;\n if (this.type === types$1.name) {\n nodes.push(this.parseImportDefaultSpecifier());\n if (!this.eat(types$1.comma)) { return nodes }\n }\n if (this.type === types$1.star) {\n nodes.push(this.parseImportNamespaceSpecifier());\n return nodes\n }\n this.expect(types$1.braceL);\n while (!this.eat(types$1.braceR)) {\n if (!first) {\n this.expect(types$1.comma);\n if (this.afterTrailingComma(types$1.braceR)) { break }\n } else { first = false; }\n\n nodes.push(this.parseImportSpecifier());\n }\n return nodes\n };\n\n pp$8.parseWithClause = function() {\n var nodes = [];\n if (!this.eat(types$1._with)) {\n return nodes\n }\n this.expect(types$1.braceL);\n var attributeKeys = {};\n var first = true;\n while (!this.eat(types$1.braceR)) {\n if (!first) {\n this.expect(types$1.comma);\n if (this.afterTrailingComma(types$1.braceR)) { break }\n } else { first = false; }\n\n var attr = this.parseImportAttribute();\n var keyName = attr.key.type === \"Identifier\" ? attr.key.name : attr.key.value;\n if (hasOwn(attributeKeys, keyName))\n { this.raiseRecoverable(attr.key.start, \"Duplicate attribute key '\" + keyName + \"'\"); }\n attributeKeys[keyName] = true;\n nodes.push(attr);\n }\n return nodes\n };\n\n pp$8.parseImportAttribute = function() {\n var node = this.startNode();\n node.key = this.type === types$1.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== \"never\");\n this.expect(types$1.colon);\n if (this.type !== types$1.string) {\n this.unexpected();\n }\n node.value = this.parseExprAtom();\n return this.finishNode(node, \"ImportAttribute\")\n };\n\n pp$8.parseModuleExportName = function() {\n if (this.options.ecmaVersion >= 13 && this.type === types$1.string) {\n var stringLiteral = this.parseLiteral(this.value);\n if (loneSurrogate.test(stringLiteral.value)) {\n this.raise(stringLiteral.start, \"An export name cannot include a lone surrogate.\");\n }\n return stringLiteral\n }\n return this.parseIdent(true)\n };\n\n // Set `ExpressionStatement#directive` property for directive prologues.\n pp$8.adaptDirectivePrologue = function(statements) {\n for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) {\n statements[i].directive = statements[i].expression.raw.slice(1, -1);\n }\n };\n pp$8.isDirectiveCandidate = function(statement) {\n return (\n this.options.ecmaVersion >= 5 &&\n statement.type === \"ExpressionStatement\" &&\n statement.expression.type === \"Literal\" &&\n typeof statement.expression.value === \"string\" &&\n // Reject parenthesized strings.\n (this.input[statement.start] === \"\\\"\" || this.input[statement.start] === \"'\")\n )\n };\n\n var pp$7 = Parser.prototype;\n\n // Convert existing expression atom to assignable pattern\n // if possible.\n\n pp$7.toAssignable = function(node, isBinding, refDestructuringErrors) {\n if (this.options.ecmaVersion >= 6 && node) {\n switch (node.type) {\n case \"Identifier\":\n if (this.inAsync && node.name === \"await\")\n { this.raise(node.start, \"Cannot use 'await' as identifier inside an async function\"); }\n break\n\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n case \"AssignmentPattern\":\n case \"RestElement\":\n break\n\n case \"ObjectExpression\":\n node.type = \"ObjectPattern\";\n if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n for (var i = 0, list = node.properties; i < list.length; i += 1) {\n var prop = list[i];\n\n this.toAssignable(prop, isBinding);\n // Early error:\n // AssignmentRestProperty[Yield, Await] :\n // `...` DestructuringAssignmentTarget[Yield, Await]\n //\n // It is a Syntax Error if |DestructuringAssignmentTarget| is an |ArrayLiteral| or an |ObjectLiteral|.\n if (\n prop.type === \"RestElement\" &&\n (prop.argument.type === \"ArrayPattern\" || prop.argument.type === \"ObjectPattern\")\n ) {\n this.raise(prop.argument.start, \"Unexpected token\");\n }\n }\n break\n\n case \"Property\":\n // AssignmentProperty has type === \"Property\"\n if (node.kind !== \"init\") { this.raise(node.key.start, \"Object pattern can't contain getter or setter\"); }\n this.toAssignable(node.value, isBinding);\n break\n\n case \"ArrayExpression\":\n node.type = \"ArrayPattern\";\n if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n this.toAssignableList(node.elements, isBinding);\n break\n\n case \"SpreadElement\":\n node.type = \"RestElement\";\n this.toAssignable(node.argument, isBinding);\n if (node.argument.type === \"AssignmentPattern\")\n { this.raise(node.argument.start, \"Rest elements cannot have a default value\"); }\n break\n\n case \"AssignmentExpression\":\n if (node.operator !== \"=\") { this.raise(node.left.end, \"Only '=' operator can be used for specifying default value.\"); }\n node.type = \"AssignmentPattern\";\n delete node.operator;\n this.toAssignable(node.left, isBinding);\n break\n\n case \"ParenthesizedExpression\":\n this.toAssignable(node.expression, isBinding, refDestructuringErrors);\n break\n\n case \"ChainExpression\":\n this.raiseRecoverable(node.start, \"Optional chaining cannot appear in left-hand side\");\n break\n\n case \"MemberExpression\":\n if (!isBinding) { break }\n\n default:\n this.raise(node.start, \"Assigning to rvalue\");\n }\n } else if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n return node\n };\n\n // Convert list of expression atoms to binding list.\n\n pp$7.toAssignableList = function(exprList, isBinding) {\n var end = exprList.length;\n for (var i = 0; i < end; i++) {\n var elt = exprList[i];\n if (elt) { this.toAssignable(elt, isBinding); }\n }\n if (end) {\n var last = exprList[end - 1];\n if (this.options.ecmaVersion === 6 && isBinding && last && last.type === \"RestElement\" && last.argument.type !== \"Identifier\")\n { this.unexpected(last.argument.start); }\n }\n return exprList\n };\n\n // Parses spread element.\n\n pp$7.parseSpread = function(refDestructuringErrors) {\n var node = this.startNode();\n this.next();\n node.argument = this.parseMaybeAssign(false, refDestructuringErrors);\n return this.finishNode(node, \"SpreadElement\")\n };\n\n pp$7.parseRestBinding = function() {\n var node = this.startNode();\n this.next();\n\n // RestElement inside of a function parameter must be an identifier\n if (this.options.ecmaVersion === 6 && this.type !== types$1.name)\n { this.unexpected(); }\n\n node.argument = this.parseBindingAtom();\n\n return this.finishNode(node, \"RestElement\")\n };\n\n // Parses lvalue (assignable) atom.\n\n pp$7.parseBindingAtom = function() {\n if (this.options.ecmaVersion >= 6) {\n switch (this.type) {\n case types$1.bracketL:\n var node = this.startNode();\n this.next();\n node.elements = this.parseBindingList(types$1.bracketR, true, true);\n return this.finishNode(node, \"ArrayPattern\")\n\n case types$1.braceL:\n return this.parseObj(true)\n }\n }\n return this.parseIdent()\n };\n\n pp$7.parseBindingList = function(close, allowEmpty, allowTrailingComma, allowModifiers) {\n var elts = [], first = true;\n while (!this.eat(close)) {\n if (first) { first = false; }\n else { this.expect(types$1.comma); }\n if (allowEmpty && this.type === types$1.comma) {\n elts.push(null);\n } else if (allowTrailingComma && this.afterTrailingComma(close)) {\n break\n } else if (this.type === types$1.ellipsis) {\n var rest = this.parseRestBinding();\n this.parseBindingListItem(rest);\n elts.push(rest);\n if (this.type === types$1.comma) { this.raiseRecoverable(this.start, \"Comma is not permitted after the rest element\"); }\n this.expect(close);\n break\n } else {\n elts.push(this.parseAssignableListItem(allowModifiers));\n }\n }\n return elts\n };\n\n pp$7.parseAssignableListItem = function(allowModifiers) {\n var elem = this.parseMaybeDefault(this.start, this.startLoc);\n this.parseBindingListItem(elem);\n return elem\n };\n\n pp$7.parseBindingListItem = function(param) {\n return param\n };\n\n // Parses assignment pattern around given atom if possible.\n\n pp$7.parseMaybeDefault = function(startPos, startLoc, left) {\n left = left || this.parseBindingAtom();\n if (this.options.ecmaVersion < 6 || !this.eat(types$1.eq)) { return left }\n var node = this.startNodeAt(startPos, startLoc);\n node.left = left;\n node.right = this.parseMaybeAssign();\n return this.finishNode(node, \"AssignmentPattern\")\n };\n\n // The following three functions all verify that a node is an lvalue —\n // something that can be bound, or assigned to. In order to do so, they perform\n // a variety of checks:\n //\n // - Check that none of the bound/assigned-to identifiers are reserved words.\n // - Record name declarations for bindings in the appropriate scope.\n // - Check duplicate argument names, if checkClashes is set.\n //\n // If a complex binding pattern is encountered (e.g., object and array\n // destructuring), the entire pattern is recursively checked.\n //\n // There are three versions of checkLVal*() appropriate for different\n // circumstances:\n //\n // - checkLValSimple() shall be used if the syntactic construct supports\n // nothing other than identifiers and member expressions. Parenthesized\n // expressions are also correctly handled. This is generally appropriate for\n // constructs for which the spec says\n //\n // > It is a Syntax Error if AssignmentTargetType of [the production] is not\n // > simple.\n //\n // It is also appropriate for checking if an identifier is valid and not\n // defined elsewhere, like import declarations or function/class identifiers.\n //\n // Examples where this is used include:\n // a += …;\n // import a from '…';\n // where a is the node to be checked.\n //\n // - checkLValPattern() shall be used if the syntactic construct supports\n // anything checkLValSimple() supports, as well as object and array\n // destructuring patterns. This is generally appropriate for constructs for\n // which the spec says\n //\n // > It is a Syntax Error if [the production] is neither an ObjectLiteral nor\n // > an ArrayLiteral and AssignmentTargetType of [the production] is not\n // > simple.\n //\n // Examples where this is used include:\n // (a = …);\n // const a = …;\n // try { … } catch (a) { … }\n // where a is the node to be checked.\n //\n // - checkLValInnerPattern() shall be used if the syntactic construct supports\n // anything checkLValPattern() supports, as well as default assignment\n // patterns, rest elements, and other constructs that may appear within an\n // object or array destructuring pattern.\n //\n // As a special case, function parameters also use checkLValInnerPattern(),\n // as they also support defaults and rest constructs.\n //\n // These functions deliberately support both assignment and binding constructs,\n // as the logic for both is exceedingly similar. If the node is the target of\n // an assignment, then bindingType should be set to BIND_NONE. Otherwise, it\n // should be set to the appropriate BIND_* constant, like BIND_VAR or\n // BIND_LEXICAL.\n //\n // If the function is called with a non-BIND_NONE bindingType, then\n // additionally a checkClashes object may be specified to allow checking for\n // duplicate argument names. checkClashes is ignored if the provided construct\n // is an assignment (i.e., bindingType is BIND_NONE).\n\n pp$7.checkLValSimple = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n var isBind = bindingType !== BIND_NONE;\n\n switch (expr.type) {\n case \"Identifier\":\n if (this.strict && this.reservedWordsStrictBind.test(expr.name))\n { this.raiseRecoverable(expr.start, (isBind ? \"Binding \" : \"Assigning to \") + expr.name + \" in strict mode\"); }\n if (isBind) {\n if (bindingType === BIND_LEXICAL && expr.name === \"let\")\n { this.raiseRecoverable(expr.start, \"let is disallowed as a lexically bound name\"); }\n if (checkClashes) {\n if (hasOwn(checkClashes, expr.name))\n { this.raiseRecoverable(expr.start, \"Argument name clash\"); }\n checkClashes[expr.name] = true;\n }\n if (bindingType !== BIND_OUTSIDE) { this.declareName(expr.name, bindingType, expr.start); }\n }\n break\n\n case \"ChainExpression\":\n this.raiseRecoverable(expr.start, \"Optional chaining cannot appear in left-hand side\");\n break\n\n case \"MemberExpression\":\n if (isBind) { this.raiseRecoverable(expr.start, \"Binding member expression\"); }\n break\n\n case \"ParenthesizedExpression\":\n if (isBind) { this.raiseRecoverable(expr.start, \"Binding parenthesized expression\"); }\n return this.checkLValSimple(expr.expression, bindingType, checkClashes)\n\n default:\n this.raise(expr.start, (isBind ? \"Binding\" : \"Assigning to\") + \" rvalue\");\n }\n };\n\n pp$7.checkLValPattern = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n switch (expr.type) {\n case \"ObjectPattern\":\n for (var i = 0, list = expr.properties; i < list.length; i += 1) {\n var prop = list[i];\n\n this.checkLValInnerPattern(prop, bindingType, checkClashes);\n }\n break\n\n case \"ArrayPattern\":\n for (var i$1 = 0, list$1 = expr.elements; i$1 < list$1.length; i$1 += 1) {\n var elem = list$1[i$1];\n\n if (elem) { this.checkLValInnerPattern(elem, bindingType, checkClashes); }\n }\n break\n\n default:\n this.checkLValSimple(expr, bindingType, checkClashes);\n }\n };\n\n pp$7.checkLValInnerPattern = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n switch (expr.type) {\n case \"Property\":\n // AssignmentProperty has type === \"Property\"\n this.checkLValInnerPattern(expr.value, bindingType, checkClashes);\n break\n\n case \"AssignmentPattern\":\n this.checkLValPattern(expr.left, bindingType, checkClashes);\n break\n\n case \"RestElement\":\n this.checkLValPattern(expr.argument, bindingType, checkClashes);\n break\n\n default:\n this.checkLValPattern(expr, bindingType, checkClashes);\n }\n };\n\n // The algorithm used to determine whether a regexp can appear at a\n // given point in the program is loosely based on sweet.js' approach.\n // See https://github.com/mozilla/sweet.js/wiki/design\n\n\n var TokContext = function TokContext(token, isExpr, preserveSpace, override, generator) {\n this.token = token;\n this.isExpr = !!isExpr;\n this.preserveSpace = !!preserveSpace;\n this.override = override;\n this.generator = !!generator;\n };\n\n var types = {\n b_stat: new TokContext(\"{\", false),\n b_expr: new TokContext(\"{\", true),\n b_tmpl: new TokContext(\"${\", false),\n p_stat: new TokContext(\"(\", false),\n p_expr: new TokContext(\"(\", true),\n q_tmpl: new TokContext(\"`\", true, true, function (p) { return p.tryReadTemplateToken(); }),\n f_stat: new TokContext(\"function\", false),\n f_expr: new TokContext(\"function\", true),\n f_expr_gen: new TokContext(\"function\", true, false, null, true),\n f_gen: new TokContext(\"function\", false, false, null, true)\n };\n\n var pp$6 = Parser.prototype;\n\n pp$6.initialContext = function() {\n return [types.b_stat]\n };\n\n pp$6.curContext = function() {\n return this.context[this.context.length - 1]\n };\n\n pp$6.braceIsBlock = function(prevType) {\n var parent = this.curContext();\n if (parent === types.f_expr || parent === types.f_stat)\n { return true }\n if (prevType === types$1.colon && (parent === types.b_stat || parent === types.b_expr))\n { return !parent.isExpr }\n\n // The check for `tt.name && exprAllowed` detects whether we are\n // after a `yield` or `of` construct. See the `updateContext` for\n // `tt.name`.\n if (prevType === types$1._return || prevType === types$1.name && this.exprAllowed)\n { return lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) }\n if (prevType === types$1._else || prevType === types$1.semi || prevType === types$1.eof || prevType === types$1.parenR || prevType === types$1.arrow)\n { return true }\n if (prevType === types$1.braceL)\n { return parent === types.b_stat }\n if (prevType === types$1._var || prevType === types$1._const || prevType === types$1.name)\n { return false }\n return !this.exprAllowed\n };\n\n pp$6.inGeneratorContext = function() {\n for (var i = this.context.length - 1; i >= 1; i--) {\n var context = this.context[i];\n if (context.token === \"function\")\n { return context.generator }\n }\n return false\n };\n\n pp$6.updateContext = function(prevType) {\n var update, type = this.type;\n if (type.keyword && prevType === types$1.dot)\n { this.exprAllowed = false; }\n else if (update = type.updateContext)\n { update.call(this, prevType); }\n else\n { this.exprAllowed = type.beforeExpr; }\n };\n\n // Used to handle edge cases when token context could not be inferred correctly during tokenization phase\n\n pp$6.overrideContext = function(tokenCtx) {\n if (this.curContext() !== tokenCtx) {\n this.context[this.context.length - 1] = tokenCtx;\n }\n };\n\n // Token-specific context update code\n\n types$1.parenR.updateContext = types$1.braceR.updateContext = function() {\n if (this.context.length === 1) {\n this.exprAllowed = true;\n return\n }\n var out = this.context.pop();\n if (out === types.b_stat && this.curContext().token === \"function\") {\n out = this.context.pop();\n }\n this.exprAllowed = !out.isExpr;\n };\n\n types$1.braceL.updateContext = function(prevType) {\n this.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr);\n this.exprAllowed = true;\n };\n\n types$1.dollarBraceL.updateContext = function() {\n this.context.push(types.b_tmpl);\n this.exprAllowed = true;\n };\n\n types$1.parenL.updateContext = function(prevType) {\n var statementParens = prevType === types$1._if || prevType === types$1._for || prevType === types$1._with || prevType === types$1._while;\n this.context.push(statementParens ? types.p_stat : types.p_expr);\n this.exprAllowed = true;\n };\n\n types$1.incDec.updateContext = function() {\n // tokExprAllowed stays unchanged\n };\n\n types$1._function.updateContext = types$1._class.updateContext = function(prevType) {\n if (prevType.beforeExpr && prevType !== types$1._else &&\n !(prevType === types$1.semi && this.curContext() !== types.p_stat) &&\n !(prevType === types$1._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) &&\n !((prevType === types$1.colon || prevType === types$1.braceL) && this.curContext() === types.b_stat))\n { this.context.push(types.f_expr); }\n else\n { this.context.push(types.f_stat); }\n this.exprAllowed = false;\n };\n\n types$1.colon.updateContext = function() {\n if (this.curContext().token === \"function\") { this.context.pop(); }\n this.exprAllowed = true;\n };\n\n types$1.backQuote.updateContext = function() {\n if (this.curContext() === types.q_tmpl)\n { this.context.pop(); }\n else\n { this.context.push(types.q_tmpl); }\n this.exprAllowed = false;\n };\n\n types$1.star.updateContext = function(prevType) {\n if (prevType === types$1._function) {\n var index = this.context.length - 1;\n if (this.context[index] === types.f_expr)\n { this.context[index] = types.f_expr_gen; }\n else\n { this.context[index] = types.f_gen; }\n }\n this.exprAllowed = true;\n };\n\n types$1.name.updateContext = function(prevType) {\n var allowed = false;\n if (this.options.ecmaVersion >= 6 && prevType !== types$1.dot) {\n if (this.value === \"of\" && !this.exprAllowed ||\n this.value === \"yield\" && this.inGeneratorContext())\n { allowed = true; }\n }\n this.exprAllowed = allowed;\n };\n\n // A recursive descent parser operates by defining functions for all\n // syntactic elements, and recursively calling those, each function\n // advancing the input stream and returning an AST node. Precedence\n // of constructs (for example, the fact that `!x[1]` means `!(x[1])`\n // instead of `(!x)[1]` is handled by the fact that the parser\n // function that parses unary prefix operators is called first, and\n // in turn calls the function that parses `[]` subscripts — that\n // way, it'll receive the node for `x[1]` already parsed, and wraps\n // *that* in the unary operator node.\n //\n // Acorn uses an [operator precedence parser][opp] to handle binary\n // operator precedence, because it is much more compact than using\n // the technique outlined above, which uses different, nesting\n // functions to specify precedence, for all of the ten binary\n // precedence levels that JavaScript defines.\n //\n // [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser\n\n\n var pp$5 = Parser.prototype;\n\n // Check if property name clashes with already added.\n // Object/class getters and setters are not allowed to clash —\n // either with each other or with an init property — and in\n // strict mode, init properties are also not allowed to be repeated.\n\n pp$5.checkPropClash = function(prop, propHash, refDestructuringErrors) {\n if (this.options.ecmaVersion >= 9 && prop.type === \"SpreadElement\")\n { return }\n if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand))\n { return }\n var key = prop.key;\n var name;\n switch (key.type) {\n case \"Identifier\": name = key.name; break\n case \"Literal\": name = String(key.value); break\n default: return\n }\n var kind = prop.kind;\n if (this.options.ecmaVersion >= 6) {\n if (name === \"__proto__\" && kind === \"init\") {\n if (propHash.proto) {\n if (refDestructuringErrors) {\n if (refDestructuringErrors.doubleProto < 0) {\n refDestructuringErrors.doubleProto = key.start;\n }\n } else {\n this.raiseRecoverable(key.start, \"Redefinition of __proto__ property\");\n }\n }\n propHash.proto = true;\n }\n return\n }\n name = \"$\" + name;\n var other = propHash[name];\n if (other) {\n var redefinition;\n if (kind === \"init\") {\n redefinition = this.strict && other.init || other.get || other.set;\n } else {\n redefinition = other.init || other[kind];\n }\n if (redefinition)\n { this.raiseRecoverable(key.start, \"Redefinition of property\"); }\n } else {\n other = propHash[name] = {\n init: false,\n get: false,\n set: false\n };\n }\n other[kind] = true;\n };\n\n // ### Expression parsing\n\n // These nest, from the most general expression type at the top to\n // 'atomic', nondivisible expression types at the bottom. Most of\n // the functions will simply let the function(s) below them parse,\n // and, *if* the syntactic construct they handle is present, wrap\n // the AST node that the inner parser gave them in another node.\n\n // Parse a full expression. The optional arguments are used to\n // forbid the `in` operator (in for loops initalization expressions)\n // and provide reference for storing '=' operator inside shorthand\n // property assignment in contexts where both object expression\n // and object pattern might appear (so it's possible to raise\n // delayed syntax error at correct position).\n\n pp$5.parseExpression = function(forInit, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseMaybeAssign(forInit, refDestructuringErrors);\n if (this.type === types$1.comma) {\n var node = this.startNodeAt(startPos, startLoc);\n node.expressions = [expr];\n while (this.eat(types$1.comma)) { node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors)); }\n return this.finishNode(node, \"SequenceExpression\")\n }\n return expr\n };\n\n // Parse an assignment expression. This includes applications of\n // operators like `+=`.\n\n pp$5.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse) {\n if (this.isContextual(\"yield\")) {\n if (this.inGenerator) { return this.parseYield(forInit) }\n // The tokenizer will assume an expression is allowed after\n // `yield`, but this isn't that kind of yield\n else { this.exprAllowed = false; }\n }\n\n var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1, oldDoubleProto = -1;\n if (refDestructuringErrors) {\n oldParenAssign = refDestructuringErrors.parenthesizedAssign;\n oldTrailingComma = refDestructuringErrors.trailingComma;\n oldDoubleProto = refDestructuringErrors.doubleProto;\n refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = -1;\n } else {\n refDestructuringErrors = new DestructuringErrors;\n ownDestructuringErrors = true;\n }\n\n var startPos = this.start, startLoc = this.startLoc;\n if (this.type === types$1.parenL || this.type === types$1.name) {\n this.potentialArrowAt = this.start;\n this.potentialArrowInForAwait = forInit === \"await\";\n }\n var left = this.parseMaybeConditional(forInit, refDestructuringErrors);\n if (afterLeftParse) { left = afterLeftParse.call(this, left, startPos, startLoc); }\n if (this.type.isAssign) {\n var node = this.startNodeAt(startPos, startLoc);\n node.operator = this.value;\n if (this.type === types$1.eq)\n { left = this.toAssignable(left, false, refDestructuringErrors); }\n if (!ownDestructuringErrors) {\n refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.doubleProto = -1;\n }\n if (refDestructuringErrors.shorthandAssign >= left.start)\n { refDestructuringErrors.shorthandAssign = -1; } // reset because shorthand default was used correctly\n if (this.type === types$1.eq)\n { this.checkLValPattern(left); }\n else\n { this.checkLValSimple(left); }\n node.left = left;\n this.next();\n node.right = this.parseMaybeAssign(forInit);\n if (oldDoubleProto > -1) { refDestructuringErrors.doubleProto = oldDoubleProto; }\n return this.finishNode(node, \"AssignmentExpression\")\n } else {\n if (ownDestructuringErrors) { this.checkExpressionErrors(refDestructuringErrors, true); }\n }\n if (oldParenAssign > -1) { refDestructuringErrors.parenthesizedAssign = oldParenAssign; }\n if (oldTrailingComma > -1) { refDestructuringErrors.trailingComma = oldTrailingComma; }\n return left\n };\n\n // Parse a ternary conditional (`?:`) operator.\n\n pp$5.parseMaybeConditional = function(forInit, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseExprOps(forInit, refDestructuringErrors);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n if (this.eat(types$1.question)) {\n var node = this.startNodeAt(startPos, startLoc);\n node.test = expr;\n node.consequent = this.parseMaybeAssign();\n this.expect(types$1.colon);\n node.alternate = this.parseMaybeAssign(forInit);\n return this.finishNode(node, \"ConditionalExpression\")\n }\n return expr\n };\n\n // Start the precedence parser.\n\n pp$5.parseExprOps = function(forInit, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseMaybeUnary(refDestructuringErrors, false, false, forInit);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n return expr.start === startPos && expr.type === \"ArrowFunctionExpression\" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, forInit)\n };\n\n // Parse binary operators with the operator precedence parsing\n // algorithm. `left` is the left-hand side of the operator.\n // `minPrec` provides context that allows the function to stop and\n // defer further parser to one of its callers when it encounters an\n // operator that has a lower precedence than the set it is parsing.\n\n pp$5.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, forInit) {\n var prec = this.type.binop;\n if (prec != null && (!forInit || this.type !== types$1._in)) {\n if (prec > minPrec) {\n var logical = this.type === types$1.logicalOR || this.type === types$1.logicalAND;\n var coalesce = this.type === types$1.coalesce;\n if (coalesce) {\n // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions.\n // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error.\n prec = types$1.logicalAND.binop;\n }\n var op = this.value;\n this.next();\n var startPos = this.start, startLoc = this.startLoc;\n var right = this.parseExprOp(this.parseMaybeUnary(null, false, false, forInit), startPos, startLoc, prec, forInit);\n var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical || coalesce);\n if ((logical && this.type === types$1.coalesce) || (coalesce && (this.type === types$1.logicalOR || this.type === types$1.logicalAND))) {\n this.raiseRecoverable(this.start, \"Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses\");\n }\n return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, forInit)\n }\n }\n return left\n };\n\n pp$5.buildBinary = function(startPos, startLoc, left, right, op, logical) {\n if (right.type === \"PrivateIdentifier\") { this.raise(right.start, \"Private identifier can only be left side of binary expression\"); }\n var node = this.startNodeAt(startPos, startLoc);\n node.left = left;\n node.operator = op;\n node.right = right;\n return this.finishNode(node, logical ? \"LogicalExpression\" : \"BinaryExpression\")\n };\n\n // Parse unary operators, both prefix and postfix.\n\n pp$5.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec, forInit) {\n var startPos = this.start, startLoc = this.startLoc, expr;\n if (this.isContextual(\"await\") && this.canAwait) {\n expr = this.parseAwait(forInit);\n sawUnary = true;\n } else if (this.type.prefix) {\n var node = this.startNode(), update = this.type === types$1.incDec;\n node.operator = this.value;\n node.prefix = true;\n this.next();\n node.argument = this.parseMaybeUnary(null, true, update, forInit);\n this.checkExpressionErrors(refDestructuringErrors, true);\n if (update) { this.checkLValSimple(node.argument); }\n else if (this.strict && node.operator === \"delete\" && isLocalVariableAccess(node.argument))\n { this.raiseRecoverable(node.start, \"Deleting local variable in strict mode\"); }\n else if (node.operator === \"delete\" && isPrivateFieldAccess(node.argument))\n { this.raiseRecoverable(node.start, \"Private fields can not be deleted\"); }\n else { sawUnary = true; }\n expr = this.finishNode(node, update ? \"UpdateExpression\" : \"UnaryExpression\");\n } else if (!sawUnary && this.type === types$1.privateId) {\n if ((forInit || this.privateNameStack.length === 0) && this.options.checkPrivateFields) { this.unexpected(); }\n expr = this.parsePrivateIdent();\n // only could be private fields in 'in', such as #x in obj\n if (this.type !== types$1._in) { this.unexpected(); }\n } else {\n expr = this.parseExprSubscripts(refDestructuringErrors, forInit);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n while (this.type.postfix && !this.canInsertSemicolon()) {\n var node$1 = this.startNodeAt(startPos, startLoc);\n node$1.operator = this.value;\n node$1.prefix = false;\n node$1.argument = expr;\n this.checkLValSimple(expr);\n this.next();\n expr = this.finishNode(node$1, \"UpdateExpression\");\n }\n }\n\n if (!incDec && this.eat(types$1.starstar)) {\n if (sawUnary)\n { this.unexpected(this.lastTokStart); }\n else\n { return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false, false, forInit), \"**\", false) }\n } else {\n return expr\n }\n };\n\n function isLocalVariableAccess(node) {\n return (\n node.type === \"Identifier\" ||\n node.type === \"ParenthesizedExpression\" && isLocalVariableAccess(node.expression)\n )\n }\n\n function isPrivateFieldAccess(node) {\n return (\n node.type === \"MemberExpression\" && node.property.type === \"PrivateIdentifier\" ||\n node.type === \"ChainExpression\" && isPrivateFieldAccess(node.expression) ||\n node.type === \"ParenthesizedExpression\" && isPrivateFieldAccess(node.expression)\n )\n }\n\n // Parse call, dot, and `[]`-subscript expressions.\n\n pp$5.parseExprSubscripts = function(refDestructuringErrors, forInit) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseExprAtom(refDestructuringErrors, forInit);\n if (expr.type === \"ArrowFunctionExpression\" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== \")\")\n { return expr }\n var result = this.parseSubscripts(expr, startPos, startLoc, false, forInit);\n if (refDestructuringErrors && result.type === \"MemberExpression\") {\n if (refDestructuringErrors.parenthesizedAssign >= result.start) { refDestructuringErrors.parenthesizedAssign = -1; }\n if (refDestructuringErrors.parenthesizedBind >= result.start) { refDestructuringErrors.parenthesizedBind = -1; }\n if (refDestructuringErrors.trailingComma >= result.start) { refDestructuringErrors.trailingComma = -1; }\n }\n return result\n };\n\n pp$5.parseSubscripts = function(base, startPos, startLoc, noCalls, forInit) {\n var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === \"Identifier\" && base.name === \"async\" &&\n this.lastTokEnd === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 &&\n this.potentialArrowAt === base.start;\n var optionalChained = false;\n\n while (true) {\n var element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit);\n\n if (element.optional) { optionalChained = true; }\n if (element === base || element.type === \"ArrowFunctionExpression\") {\n if (optionalChained) {\n var chainNode = this.startNodeAt(startPos, startLoc);\n chainNode.expression = element;\n element = this.finishNode(chainNode, \"ChainExpression\");\n }\n return element\n }\n\n base = element;\n }\n };\n\n pp$5.shouldParseAsyncArrow = function() {\n return !this.canInsertSemicolon() && this.eat(types$1.arrow)\n };\n\n pp$5.parseSubscriptAsyncArrow = function(startPos, startLoc, exprList, forInit) {\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true, forInit)\n };\n\n pp$5.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit) {\n var optionalSupported = this.options.ecmaVersion >= 11;\n var optional = optionalSupported && this.eat(types$1.questionDot);\n if (noCalls && optional) { this.raise(this.lastTokStart, \"Optional chaining cannot appear in the callee of new expressions\"); }\n\n var computed = this.eat(types$1.bracketL);\n if (computed || (optional && this.type !== types$1.parenL && this.type !== types$1.backQuote) || this.eat(types$1.dot)) {\n var node = this.startNodeAt(startPos, startLoc);\n node.object = base;\n if (computed) {\n node.property = this.parseExpression();\n this.expect(types$1.bracketR);\n } else if (this.type === types$1.privateId && base.type !== \"Super\") {\n node.property = this.parsePrivateIdent();\n } else {\n node.property = this.parseIdent(this.options.allowReserved !== \"never\");\n }\n node.computed = !!computed;\n if (optionalSupported) {\n node.optional = optional;\n }\n base = this.finishNode(node, \"MemberExpression\");\n } else if (!noCalls && this.eat(types$1.parenL)) {\n var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n var exprList = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors);\n if (maybeAsyncArrow && !optional && this.shouldParseAsyncArrow()) {\n this.checkPatternErrors(refDestructuringErrors, false);\n this.checkYieldAwaitInDefaultParams();\n if (this.awaitIdentPos > 0)\n { this.raise(this.awaitIdentPos, \"Cannot use 'await' as identifier inside an async function\"); }\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.parseSubscriptAsyncArrow(startPos, startLoc, exprList, forInit)\n }\n this.checkExpressionErrors(refDestructuringErrors, true);\n this.yieldPos = oldYieldPos || this.yieldPos;\n this.awaitPos = oldAwaitPos || this.awaitPos;\n this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos;\n var node$1 = this.startNodeAt(startPos, startLoc);\n node$1.callee = base;\n node$1.arguments = exprList;\n if (optionalSupported) {\n node$1.optional = optional;\n }\n base = this.finishNode(node$1, \"CallExpression\");\n } else if (this.type === types$1.backQuote) {\n if (optional || optionalChained) {\n this.raise(this.start, \"Optional chaining cannot appear in the tag of tagged template expressions\");\n }\n var node$2 = this.startNodeAt(startPos, startLoc);\n node$2.tag = base;\n node$2.quasi = this.parseTemplate({isTagged: true});\n base = this.finishNode(node$2, \"TaggedTemplateExpression\");\n }\n return base\n };\n\n // Parse an atomic expression — either a single token that is an\n // expression, an expression started by a keyword like `function` or\n // `new`, or an expression wrapped in punctuation like `()`, `[]`,\n // or `{}`.\n\n pp$5.parseExprAtom = function(refDestructuringErrors, forInit, forNew) {\n // If a division operator appears in an expression position, the\n // tokenizer got confused, and we force it to read a regexp instead.\n if (this.type === types$1.slash) { this.readRegexp(); }\n\n var node, canBeArrow = this.potentialArrowAt === this.start;\n switch (this.type) {\n case types$1._super:\n if (!this.allowSuper)\n { this.raise(this.start, \"'super' keyword outside a method\"); }\n node = this.startNode();\n this.next();\n if (this.type === types$1.parenL && !this.allowDirectSuper)\n { this.raise(node.start, \"super() call outside constructor of a subclass\"); }\n // The `super` keyword can appear at below:\n // SuperProperty:\n // super [ Expression ]\n // super . IdentifierName\n // SuperCall:\n // super ( Arguments )\n if (this.type !== types$1.dot && this.type !== types$1.bracketL && this.type !== types$1.parenL)\n { this.unexpected(); }\n return this.finishNode(node, \"Super\")\n\n case types$1._this:\n node = this.startNode();\n this.next();\n return this.finishNode(node, \"ThisExpression\")\n\n case types$1.name:\n var startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc;\n var id = this.parseIdent(false);\n if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === \"async\" && !this.canInsertSemicolon() && this.eat(types$1._function)) {\n this.overrideContext(types.f_expr);\n return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true, forInit)\n }\n if (canBeArrow && !this.canInsertSemicolon()) {\n if (this.eat(types$1.arrow))\n { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false, forInit) }\n if (this.options.ecmaVersion >= 8 && id.name === \"async\" && this.type === types$1.name && !containsEsc &&\n (!this.potentialArrowInForAwait || this.value !== \"of\" || this.containsEsc)) {\n id = this.parseIdent(false);\n if (this.canInsertSemicolon() || !this.eat(types$1.arrow))\n { this.unexpected(); }\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true, forInit)\n }\n }\n return id\n\n case types$1.regexp:\n var value = this.value;\n node = this.parseLiteral(value.value);\n node.regex = {pattern: value.pattern, flags: value.flags};\n return node\n\n case types$1.num: case types$1.string:\n return this.parseLiteral(this.value)\n\n case types$1._null: case types$1._true: case types$1._false:\n node = this.startNode();\n node.value = this.type === types$1._null ? null : this.type === types$1._true;\n node.raw = this.type.keyword;\n this.next();\n return this.finishNode(node, \"Literal\")\n\n case types$1.parenL:\n var start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow, forInit);\n if (refDestructuringErrors) {\n if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr))\n { refDestructuringErrors.parenthesizedAssign = start; }\n if (refDestructuringErrors.parenthesizedBind < 0)\n { refDestructuringErrors.parenthesizedBind = start; }\n }\n return expr\n\n case types$1.bracketL:\n node = this.startNode();\n this.next();\n node.elements = this.parseExprList(types$1.bracketR, true, true, refDestructuringErrors);\n return this.finishNode(node, \"ArrayExpression\")\n\n case types$1.braceL:\n this.overrideContext(types.b_expr);\n return this.parseObj(false, refDestructuringErrors)\n\n case types$1._function:\n node = this.startNode();\n this.next();\n return this.parseFunction(node, 0)\n\n case types$1._class:\n return this.parseClass(this.startNode(), false)\n\n case types$1._new:\n return this.parseNew()\n\n case types$1.backQuote:\n return this.parseTemplate()\n\n case types$1._import:\n if (this.options.ecmaVersion >= 11) {\n return this.parseExprImport(forNew)\n } else {\n return this.unexpected()\n }\n\n default:\n return this.parseExprAtomDefault()\n }\n };\n\n pp$5.parseExprAtomDefault = function() {\n this.unexpected();\n };\n\n pp$5.parseExprImport = function(forNew) {\n var node = this.startNode();\n\n // Consume `import` as an identifier for `import.meta`.\n // Because `this.parseIdent(true)` doesn't check escape sequences, it needs the check of `this.containsEsc`.\n if (this.containsEsc) { this.raiseRecoverable(this.start, \"Escape sequence in keyword import\"); }\n this.next();\n\n if (this.type === types$1.parenL && !forNew) {\n return this.parseDynamicImport(node)\n } else if (this.type === types$1.dot) {\n var meta = this.startNodeAt(node.start, node.loc && node.loc.start);\n meta.name = \"import\";\n node.meta = this.finishNode(meta, \"Identifier\");\n return this.parseImportMeta(node)\n } else {\n this.unexpected();\n }\n };\n\n pp$5.parseDynamicImport = function(node) {\n this.next(); // skip `(`\n\n // Parse node.source.\n node.source = this.parseMaybeAssign();\n\n if (this.options.ecmaVersion >= 16) {\n if (!this.eat(types$1.parenR)) {\n this.expect(types$1.comma);\n if (!this.afterTrailingComma(types$1.parenR)) {\n node.options = this.parseMaybeAssign();\n if (!this.eat(types$1.parenR)) {\n this.expect(types$1.comma);\n if (!this.afterTrailingComma(types$1.parenR)) {\n this.unexpected();\n }\n }\n } else {\n node.options = null;\n }\n } else {\n node.options = null;\n }\n } else {\n // Verify ending.\n if (!this.eat(types$1.parenR)) {\n var errorPos = this.start;\n if (this.eat(types$1.comma) && this.eat(types$1.parenR)) {\n this.raiseRecoverable(errorPos, \"Trailing comma is not allowed in import()\");\n } else {\n this.unexpected(errorPos);\n }\n }\n }\n\n return this.finishNode(node, \"ImportExpression\")\n };\n\n pp$5.parseImportMeta = function(node) {\n this.next(); // skip `.`\n\n var containsEsc = this.containsEsc;\n node.property = this.parseIdent(true);\n\n if (node.property.name !== \"meta\")\n { this.raiseRecoverable(node.property.start, \"The only valid meta property for import is 'import.meta'\"); }\n if (containsEsc)\n { this.raiseRecoverable(node.start, \"'import.meta' must not contain escaped characters\"); }\n if (this.options.sourceType !== \"module\" && !this.options.allowImportExportEverywhere)\n { this.raiseRecoverable(node.start, \"Cannot use 'import.meta' outside a module\"); }\n\n return this.finishNode(node, \"MetaProperty\")\n };\n\n pp$5.parseLiteral = function(value) {\n var node = this.startNode();\n node.value = value;\n node.raw = this.input.slice(this.start, this.end);\n if (node.raw.charCodeAt(node.raw.length - 1) === 110)\n { node.bigint = node.value != null ? node.value.toString() : node.raw.slice(0, -1).replace(/_/g, \"\"); }\n this.next();\n return this.finishNode(node, \"Literal\")\n };\n\n pp$5.parseParenExpression = function() {\n this.expect(types$1.parenL);\n var val = this.parseExpression();\n this.expect(types$1.parenR);\n return val\n };\n\n pp$5.shouldParseArrow = function(exprList) {\n return !this.canInsertSemicolon()\n };\n\n pp$5.parseParenAndDistinguishExpression = function(canBeArrow, forInit) {\n var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8;\n if (this.options.ecmaVersion >= 6) {\n this.next();\n\n var innerStartPos = this.start, innerStartLoc = this.startLoc;\n var exprList = [], first = true, lastIsComma = false;\n var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart;\n this.yieldPos = 0;\n this.awaitPos = 0;\n // Do not save awaitIdentPos to allow checking awaits nested in parameters\n while (this.type !== types$1.parenR) {\n first ? first = false : this.expect(types$1.comma);\n if (allowTrailingComma && this.afterTrailingComma(types$1.parenR, true)) {\n lastIsComma = true;\n break\n } else if (this.type === types$1.ellipsis) {\n spreadStart = this.start;\n exprList.push(this.parseParenItem(this.parseRestBinding()));\n if (this.type === types$1.comma) {\n this.raiseRecoverable(\n this.start,\n \"Comma is not permitted after the rest element\"\n );\n }\n break\n } else {\n exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem));\n }\n }\n var innerEndPos = this.lastTokEnd, innerEndLoc = this.lastTokEndLoc;\n this.expect(types$1.parenR);\n\n if (canBeArrow && this.shouldParseArrow(exprList) && this.eat(types$1.arrow)) {\n this.checkPatternErrors(refDestructuringErrors, false);\n this.checkYieldAwaitInDefaultParams();\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n return this.parseParenArrowList(startPos, startLoc, exprList, forInit)\n }\n\n if (!exprList.length || lastIsComma) { this.unexpected(this.lastTokStart); }\n if (spreadStart) { this.unexpected(spreadStart); }\n this.checkExpressionErrors(refDestructuringErrors, true);\n this.yieldPos = oldYieldPos || this.yieldPos;\n this.awaitPos = oldAwaitPos || this.awaitPos;\n\n if (exprList.length > 1) {\n val = this.startNodeAt(innerStartPos, innerStartLoc);\n val.expressions = exprList;\n this.finishNodeAt(val, \"SequenceExpression\", innerEndPos, innerEndLoc);\n } else {\n val = exprList[0];\n }\n } else {\n val = this.parseParenExpression();\n }\n\n if (this.options.preserveParens) {\n var par = this.startNodeAt(startPos, startLoc);\n par.expression = val;\n return this.finishNode(par, \"ParenthesizedExpression\")\n } else {\n return val\n }\n };\n\n pp$5.parseParenItem = function(item) {\n return item\n };\n\n pp$5.parseParenArrowList = function(startPos, startLoc, exprList, forInit) {\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, false, forInit)\n };\n\n // New's precedence is slightly tricky. It must allow its argument to\n // be a `[]` or dot subscript expression, but not a call — at least,\n // not without wrapping it in parentheses. Thus, it uses the noCalls\n // argument to parseSubscripts to prevent it from consuming the\n // argument list.\n\n var empty = [];\n\n pp$5.parseNew = function() {\n if (this.containsEsc) { this.raiseRecoverable(this.start, \"Escape sequence in keyword new\"); }\n var node = this.startNode();\n this.next();\n if (this.options.ecmaVersion >= 6 && this.type === types$1.dot) {\n var meta = this.startNodeAt(node.start, node.loc && node.loc.start);\n meta.name = \"new\";\n node.meta = this.finishNode(meta, \"Identifier\");\n this.next();\n var containsEsc = this.containsEsc;\n node.property = this.parseIdent(true);\n if (node.property.name !== \"target\")\n { this.raiseRecoverable(node.property.start, \"The only valid meta property for new is 'new.target'\"); }\n if (containsEsc)\n { this.raiseRecoverable(node.start, \"'new.target' must not contain escaped characters\"); }\n if (!this.allowNewDotTarget)\n { this.raiseRecoverable(node.start, \"'new.target' can only be used in functions and class static block\"); }\n return this.finishNode(node, \"MetaProperty\")\n }\n var startPos = this.start, startLoc = this.startLoc;\n node.callee = this.parseSubscripts(this.parseExprAtom(null, false, true), startPos, startLoc, true, false);\n if (this.eat(types$1.parenL)) { node.arguments = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false); }\n else { node.arguments = empty; }\n return this.finishNode(node, \"NewExpression\")\n };\n\n // Parse template expression.\n\n pp$5.parseTemplateElement = function(ref) {\n var isTagged = ref.isTagged;\n\n var elem = this.startNode();\n if (this.type === types$1.invalidTemplate) {\n if (!isTagged) {\n this.raiseRecoverable(this.start, \"Bad escape sequence in untagged template literal\");\n }\n elem.value = {\n raw: this.value.replace(/\\r\\n?/g, \"\\n\"),\n cooked: null\n };\n } else {\n elem.value = {\n raw: this.input.slice(this.start, this.end).replace(/\\r\\n?/g, \"\\n\"),\n cooked: this.value\n };\n }\n this.next();\n elem.tail = this.type === types$1.backQuote;\n return this.finishNode(elem, \"TemplateElement\")\n };\n\n pp$5.parseTemplate = function(ref) {\n if ( ref === void 0 ) ref = {};\n var isTagged = ref.isTagged; if ( isTagged === void 0 ) isTagged = false;\n\n var node = this.startNode();\n this.next();\n node.expressions = [];\n var curElt = this.parseTemplateElement({isTagged: isTagged});\n node.quasis = [curElt];\n while (!curElt.tail) {\n if (this.type === types$1.eof) { this.raise(this.pos, \"Unterminated template literal\"); }\n this.expect(types$1.dollarBraceL);\n node.expressions.push(this.parseExpression());\n this.expect(types$1.braceR);\n node.quasis.push(curElt = this.parseTemplateElement({isTagged: isTagged}));\n }\n this.next();\n return this.finishNode(node, \"TemplateLiteral\")\n };\n\n pp$5.isAsyncProp = function(prop) {\n return !prop.computed && prop.key.type === \"Identifier\" && prop.key.name === \"async\" &&\n (this.type === types$1.name || this.type === types$1.num || this.type === types$1.string || this.type === types$1.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === types$1.star)) &&\n !lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n };\n\n // Parse an object literal or binding pattern.\n\n pp$5.parseObj = function(isPattern, refDestructuringErrors) {\n var node = this.startNode(), first = true, propHash = {};\n node.properties = [];\n this.next();\n while (!this.eat(types$1.braceR)) {\n if (!first) {\n this.expect(types$1.comma);\n if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types$1.braceR)) { break }\n } else { first = false; }\n\n var prop = this.parseProperty(isPattern, refDestructuringErrors);\n if (!isPattern) { this.checkPropClash(prop, propHash, refDestructuringErrors); }\n node.properties.push(prop);\n }\n return this.finishNode(node, isPattern ? \"ObjectPattern\" : \"ObjectExpression\")\n };\n\n pp$5.parseProperty = function(isPattern, refDestructuringErrors) {\n var prop = this.startNode(), isGenerator, isAsync, startPos, startLoc;\n if (this.options.ecmaVersion >= 9 && this.eat(types$1.ellipsis)) {\n if (isPattern) {\n prop.argument = this.parseIdent(false);\n if (this.type === types$1.comma) {\n this.raiseRecoverable(this.start, \"Comma is not permitted after the rest element\");\n }\n return this.finishNode(prop, \"RestElement\")\n }\n // Parse argument.\n prop.argument = this.parseMaybeAssign(false, refDestructuringErrors);\n // To disallow trailing comma via `this.toAssignable()`.\n if (this.type === types$1.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) {\n refDestructuringErrors.trailingComma = this.start;\n }\n // Finish\n return this.finishNode(prop, \"SpreadElement\")\n }\n if (this.options.ecmaVersion >= 6) {\n prop.method = false;\n prop.shorthand = false;\n if (isPattern || refDestructuringErrors) {\n startPos = this.start;\n startLoc = this.startLoc;\n }\n if (!isPattern)\n { isGenerator = this.eat(types$1.star); }\n }\n var containsEsc = this.containsEsc;\n this.parsePropertyName(prop);\n if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) {\n isAsync = true;\n isGenerator = this.options.ecmaVersion >= 9 && this.eat(types$1.star);\n this.parsePropertyName(prop);\n } else {\n isAsync = false;\n }\n this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc);\n return this.finishNode(prop, \"Property\")\n };\n\n pp$5.parseGetterSetter = function(prop) {\n var kind = prop.key.name;\n this.parsePropertyName(prop);\n prop.value = this.parseMethod(false);\n prop.kind = kind;\n var paramCount = prop.kind === \"get\" ? 0 : 1;\n if (prop.value.params.length !== paramCount) {\n var start = prop.value.start;\n if (prop.kind === \"get\")\n { this.raiseRecoverable(start, \"getter should have no params\"); }\n else\n { this.raiseRecoverable(start, \"setter should have exactly one param\"); }\n } else {\n if (prop.kind === \"set\" && prop.value.params[0].type === \"RestElement\")\n { this.raiseRecoverable(prop.value.params[0].start, \"Setter cannot use rest params\"); }\n }\n };\n\n pp$5.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) {\n if ((isGenerator || isAsync) && this.type === types$1.colon)\n { this.unexpected(); }\n\n if (this.eat(types$1.colon)) {\n prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors);\n prop.kind = \"init\";\n } else if (this.options.ecmaVersion >= 6 && this.type === types$1.parenL) {\n if (isPattern) { this.unexpected(); }\n prop.method = true;\n prop.value = this.parseMethod(isGenerator, isAsync);\n prop.kind = \"init\";\n } else if (!isPattern && !containsEsc &&\n this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === \"Identifier\" &&\n (prop.key.name === \"get\" || prop.key.name === \"set\") &&\n (this.type !== types$1.comma && this.type !== types$1.braceR && this.type !== types$1.eq)) {\n if (isGenerator || isAsync) { this.unexpected(); }\n this.parseGetterSetter(prop);\n } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === \"Identifier\") {\n if (isGenerator || isAsync) { this.unexpected(); }\n this.checkUnreserved(prop.key);\n if (prop.key.name === \"await\" && !this.awaitIdentPos)\n { this.awaitIdentPos = startPos; }\n if (isPattern) {\n prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));\n } else if (this.type === types$1.eq && refDestructuringErrors) {\n if (refDestructuringErrors.shorthandAssign < 0)\n { refDestructuringErrors.shorthandAssign = this.start; }\n prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));\n } else {\n prop.value = this.copyNode(prop.key);\n }\n prop.kind = \"init\";\n prop.shorthand = true;\n } else { this.unexpected(); }\n };\n\n pp$5.parsePropertyName = function(prop) {\n if (this.options.ecmaVersion >= 6) {\n if (this.eat(types$1.bracketL)) {\n prop.computed = true;\n prop.key = this.parseMaybeAssign();\n this.expect(types$1.bracketR);\n return prop.key\n } else {\n prop.computed = false;\n }\n }\n return prop.key = this.type === types$1.num || this.type === types$1.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== \"never\")\n };\n\n // Initialize empty function node.\n\n pp$5.initFunction = function(node) {\n node.id = null;\n if (this.options.ecmaVersion >= 6) { node.generator = node.expression = false; }\n if (this.options.ecmaVersion >= 8) { node.async = false; }\n };\n\n // Parse object or class method.\n\n pp$5.parseMethod = function(isGenerator, isAsync, allowDirectSuper) {\n var node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n\n this.initFunction(node);\n if (this.options.ecmaVersion >= 6)\n { node.generator = isGenerator; }\n if (this.options.ecmaVersion >= 8)\n { node.async = !!isAsync; }\n\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0));\n\n this.expect(types$1.parenL);\n node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8);\n this.checkYieldAwaitInDefaultParams();\n this.parseFunctionBody(node, false, true, false);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, \"FunctionExpression\")\n };\n\n // Parse arrow function expression with given parameters.\n\n pp$5.parseArrowExpression = function(node, params, isAsync, forInit) {\n var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n\n this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW);\n this.initFunction(node);\n if (this.options.ecmaVersion >= 8) { node.async = !!isAsync; }\n\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n\n node.params = this.toAssignableList(params, true);\n this.parseFunctionBody(node, true, false, forInit);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, \"ArrowFunctionExpression\")\n };\n\n // Parse function body and check parameters.\n\n pp$5.parseFunctionBody = function(node, isArrowFunction, isMethod, forInit) {\n var isExpression = isArrowFunction && this.type !== types$1.braceL;\n var oldStrict = this.strict, useStrict = false;\n\n if (isExpression) {\n node.body = this.parseMaybeAssign(forInit);\n node.expression = true;\n this.checkParams(node, false);\n } else {\n var nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params);\n if (!oldStrict || nonSimple) {\n useStrict = this.strictDirective(this.end);\n // If this is a strict mode function, verify that argument names\n // are not repeated, and it does not try to bind the words `eval`\n // or `arguments`.\n if (useStrict && nonSimple)\n { this.raiseRecoverable(node.start, \"Illegal 'use strict' directive in function with non-simple parameter list\"); }\n }\n // Start a new scope with regard to labels and the `inFunction`\n // flag (restore them to their old value afterwards).\n var oldLabels = this.labels;\n this.labels = [];\n if (useStrict) { this.strict = true; }\n\n // Add the params to varDeclaredNames to ensure that an error is thrown\n // if a let/const declaration in the function clashes with one of the params.\n this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params));\n // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n if (this.strict && node.id) { this.checkLValSimple(node.id, BIND_OUTSIDE); }\n node.body = this.parseBlock(false, undefined, useStrict && !oldStrict);\n node.expression = false;\n this.adaptDirectivePrologue(node.body.body);\n this.labels = oldLabels;\n }\n this.exitScope();\n };\n\n pp$5.isSimpleParamList = function(params) {\n for (var i = 0, list = params; i < list.length; i += 1)\n {\n var param = list[i];\n\n if (param.type !== \"Identifier\") { return false\n } }\n return true\n };\n\n // Checks function params for various disallowed patterns such as using \"eval\"\n // or \"arguments\" and duplicate parameters.\n\n pp$5.checkParams = function(node, allowDuplicates) {\n var nameHash = Object.create(null);\n for (var i = 0, list = node.params; i < list.length; i += 1)\n {\n var param = list[i];\n\n this.checkLValInnerPattern(param, BIND_VAR, allowDuplicates ? null : nameHash);\n }\n };\n\n // Parses a comma-separated list of expressions, and returns them as\n // an array. `close` is the token type that ends the list, and\n // `allowEmpty` can be turned on to allow subsequent commas with\n // nothing in between them to be parsed as `null` (which is needed\n // for array literals).\n\n pp$5.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {\n var elts = [], first = true;\n while (!this.eat(close)) {\n if (!first) {\n this.expect(types$1.comma);\n if (allowTrailingComma && this.afterTrailingComma(close)) { break }\n } else { first = false; }\n\n var elt = (void 0);\n if (allowEmpty && this.type === types$1.comma)\n { elt = null; }\n else if (this.type === types$1.ellipsis) {\n elt = this.parseSpread(refDestructuringErrors);\n if (refDestructuringErrors && this.type === types$1.comma && refDestructuringErrors.trailingComma < 0)\n { refDestructuringErrors.trailingComma = this.start; }\n } else {\n elt = this.parseMaybeAssign(false, refDestructuringErrors);\n }\n elts.push(elt);\n }\n return elts\n };\n\n pp$5.checkUnreserved = function(ref) {\n var start = ref.start;\n var end = ref.end;\n var name = ref.name;\n\n if (this.inGenerator && name === \"yield\")\n { this.raiseRecoverable(start, \"Cannot use 'yield' as identifier inside a generator\"); }\n if (this.inAsync && name === \"await\")\n { this.raiseRecoverable(start, \"Cannot use 'await' as identifier inside an async function\"); }\n if (!(this.currentThisScope().flags & SCOPE_VAR) && name === \"arguments\")\n { this.raiseRecoverable(start, \"Cannot use 'arguments' in class field initializer\"); }\n if (this.inClassStaticBlock && (name === \"arguments\" || name === \"await\"))\n { this.raise(start, (\"Cannot use \" + name + \" in class static initialization block\")); }\n if (this.keywords.test(name))\n { this.raise(start, (\"Unexpected keyword '\" + name + \"'\")); }\n if (this.options.ecmaVersion < 6 &&\n this.input.slice(start, end).indexOf(\"\\\\\") !== -1) { return }\n var re = this.strict ? this.reservedWordsStrict : this.reservedWords;\n if (re.test(name)) {\n if (!this.inAsync && name === \"await\")\n { this.raiseRecoverable(start, \"Cannot use keyword 'await' outside an async function\"); }\n this.raiseRecoverable(start, (\"The keyword '\" + name + \"' is reserved\"));\n }\n };\n\n // Parse the next token as an identifier. If `liberal` is true (used\n // when parsing properties), it will also convert keywords into\n // identifiers.\n\n pp$5.parseIdent = function(liberal) {\n var node = this.parseIdentNode();\n this.next(!!liberal);\n this.finishNode(node, \"Identifier\");\n if (!liberal) {\n this.checkUnreserved(node);\n if (node.name === \"await\" && !this.awaitIdentPos)\n { this.awaitIdentPos = node.start; }\n }\n return node\n };\n\n pp$5.parseIdentNode = function() {\n var node = this.startNode();\n if (this.type === types$1.name) {\n node.name = this.value;\n } else if (this.type.keyword) {\n node.name = this.type.keyword;\n\n // To fix https://github.com/acornjs/acorn/issues/575\n // `class` and `function` keywords push new context into this.context.\n // But there is no chance to pop the context if the keyword is consumed as an identifier such as a property name.\n // If the previous token is a dot, this does not apply because the context-managing code already ignored the keyword\n if ((node.name === \"class\" || node.name === \"function\") &&\n (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) {\n this.context.pop();\n }\n this.type = types$1.name;\n } else {\n this.unexpected();\n }\n return node\n };\n\n pp$5.parsePrivateIdent = function() {\n var node = this.startNode();\n if (this.type === types$1.privateId) {\n node.name = this.value;\n } else {\n this.unexpected();\n }\n this.next();\n this.finishNode(node, \"PrivateIdentifier\");\n\n // For validating existence\n if (this.options.checkPrivateFields) {\n if (this.privateNameStack.length === 0) {\n this.raise(node.start, (\"Private field '#\" + (node.name) + \"' must be declared in an enclosing class\"));\n } else {\n this.privateNameStack[this.privateNameStack.length - 1].used.push(node);\n }\n }\n\n return node\n };\n\n // Parses yield expression inside generator.\n\n pp$5.parseYield = function(forInit) {\n if (!this.yieldPos) { this.yieldPos = this.start; }\n\n var node = this.startNode();\n this.next();\n if (this.type === types$1.semi || this.canInsertSemicolon() || (this.type !== types$1.star && !this.type.startsExpr)) {\n node.delegate = false;\n node.argument = null;\n } else {\n node.delegate = this.eat(types$1.star);\n node.argument = this.parseMaybeAssign(forInit);\n }\n return this.finishNode(node, \"YieldExpression\")\n };\n\n pp$5.parseAwait = function(forInit) {\n if (!this.awaitPos) { this.awaitPos = this.start; }\n\n var node = this.startNode();\n this.next();\n node.argument = this.parseMaybeUnary(null, true, false, forInit);\n return this.finishNode(node, \"AwaitExpression\")\n };\n\n var pp$4 = Parser.prototype;\n\n // This function is used to raise exceptions on parse errors. It\n // takes an offset integer (into the current `input`) to indicate\n // the location of the error, attaches the position to the end\n // of the error message, and then raises a `SyntaxError` with that\n // message.\n\n pp$4.raise = function(pos, message) {\n var loc = getLineInfo(this.input, pos);\n message += \" (\" + loc.line + \":\" + loc.column + \")\";\n if (this.sourceFile) {\n message += \" in \" + this.sourceFile;\n }\n var err = new SyntaxError(message);\n err.pos = pos; err.loc = loc; err.raisedAt = this.pos;\n throw err\n };\n\n pp$4.raiseRecoverable = pp$4.raise;\n\n pp$4.curPosition = function() {\n if (this.options.locations) {\n return new Position(this.curLine, this.pos - this.lineStart)\n }\n };\n\n var pp$3 = Parser.prototype;\n\n var Scope = function Scope(flags) {\n this.flags = flags;\n // A list of var-declared names in the current lexical scope\n this.var = [];\n // A list of lexically-declared names in the current lexical scope\n this.lexical = [];\n // A list of lexically-declared FunctionDeclaration names in the current lexical scope\n this.functions = [];\n };\n\n // The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names.\n\n pp$3.enterScope = function(flags) {\n this.scopeStack.push(new Scope(flags));\n };\n\n pp$3.exitScope = function() {\n this.scopeStack.pop();\n };\n\n // The spec says:\n // > At the top level of a function, or script, function declarations are\n // > treated like var declarations rather than like lexical declarations.\n pp$3.treatFunctionsAsVarInScope = function(scope) {\n return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP)\n };\n\n pp$3.declareName = function(name, bindingType, pos) {\n var redeclared = false;\n if (bindingType === BIND_LEXICAL) {\n var scope = this.currentScope();\n redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1;\n scope.lexical.push(name);\n if (this.inModule && (scope.flags & SCOPE_TOP))\n { delete this.undefinedExports[name]; }\n } else if (bindingType === BIND_SIMPLE_CATCH) {\n var scope$1 = this.currentScope();\n scope$1.lexical.push(name);\n } else if (bindingType === BIND_FUNCTION) {\n var scope$2 = this.currentScope();\n if (this.treatFunctionsAsVar)\n { redeclared = scope$2.lexical.indexOf(name) > -1; }\n else\n { redeclared = scope$2.lexical.indexOf(name) > -1 || scope$2.var.indexOf(name) > -1; }\n scope$2.functions.push(name);\n } else {\n for (var i = this.scopeStack.length - 1; i >= 0; --i) {\n var scope$3 = this.scopeStack[i];\n if (scope$3.lexical.indexOf(name) > -1 && !((scope$3.flags & SCOPE_SIMPLE_CATCH) && scope$3.lexical[0] === name) ||\n !this.treatFunctionsAsVarInScope(scope$3) && scope$3.functions.indexOf(name) > -1) {\n redeclared = true;\n break\n }\n scope$3.var.push(name);\n if (this.inModule && (scope$3.flags & SCOPE_TOP))\n { delete this.undefinedExports[name]; }\n if (scope$3.flags & SCOPE_VAR) { break }\n }\n }\n if (redeclared) { this.raiseRecoverable(pos, (\"Identifier '\" + name + \"' has already been declared\")); }\n };\n\n pp$3.checkLocalExport = function(id) {\n // scope.functions must be empty as Module code is always strict.\n if (this.scopeStack[0].lexical.indexOf(id.name) === -1 &&\n this.scopeStack[0].var.indexOf(id.name) === -1) {\n this.undefinedExports[id.name] = id;\n }\n };\n\n pp$3.currentScope = function() {\n return this.scopeStack[this.scopeStack.length - 1]\n };\n\n pp$3.currentVarScope = function() {\n for (var i = this.scopeStack.length - 1;; i--) {\n var scope = this.scopeStack[i];\n if (scope.flags & (SCOPE_VAR | SCOPE_CLASS_FIELD_INIT | SCOPE_CLASS_STATIC_BLOCK)) { return scope }\n }\n };\n\n // Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\n pp$3.currentThisScope = function() {\n for (var i = this.scopeStack.length - 1;; i--) {\n var scope = this.scopeStack[i];\n if (scope.flags & (SCOPE_VAR | SCOPE_CLASS_FIELD_INIT | SCOPE_CLASS_STATIC_BLOCK) &&\n !(scope.flags & SCOPE_ARROW)) { return scope }\n }\n };\n\n var Node = function Node(parser, pos, loc) {\n this.type = \"\";\n this.start = pos;\n this.end = 0;\n if (parser.options.locations)\n { this.loc = new SourceLocation(parser, loc); }\n if (parser.options.directSourceFile)\n { this.sourceFile = parser.options.directSourceFile; }\n if (parser.options.ranges)\n { this.range = [pos, 0]; }\n };\n\n // Start an AST node, attaching a start offset.\n\n var pp$2 = Parser.prototype;\n\n pp$2.startNode = function() {\n return new Node(this, this.start, this.startLoc)\n };\n\n pp$2.startNodeAt = function(pos, loc) {\n return new Node(this, pos, loc)\n };\n\n // Finish an AST node, adding `type` and `end` properties.\n\n function finishNodeAt(node, type, pos, loc) {\n node.type = type;\n node.end = pos;\n if (this.options.locations)\n { node.loc.end = loc; }\n if (this.options.ranges)\n { node.range[1] = pos; }\n return node\n }\n\n pp$2.finishNode = function(node, type) {\n return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc)\n };\n\n // Finish node at given position\n\n pp$2.finishNodeAt = function(node, type, pos, loc) {\n return finishNodeAt.call(this, node, type, pos, loc)\n };\n\n pp$2.copyNode = function(node) {\n var newNode = new Node(this, node.start, this.startLoc);\n for (var prop in node) { newNode[prop] = node[prop]; }\n return newNode\n };\n\n // This file was generated by \"bin/generate-unicode-script-values.js\". Do not modify manually!\n var scriptValuesAddedInUnicode = \"Berf Beria_Erfe Gara Garay Gukh Gurung_Khema Hrkt Katakana_Or_Hiragana Kawi Kirat_Rai Krai Nag_Mundari Nagm Ol_Onal Onao Sidetic Sidt Sunu Sunuwar Tai_Yo Tayo Todhri Todr Tolong_Siki Tols Tulu_Tigalari Tutg Unknown Zzzz\";\n\n // This file contains Unicode properties extracted from the ECMAScript specification.\n // The lists are extracted like so:\n // $$('#table-binary-unicode-properties > figure > table > tbody > tr > td:nth-child(1) code').map(el => el.innerText)\n\n // #table-binary-unicode-properties\n var ecma9BinaryProperties = \"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS\";\n var ecma10BinaryProperties = ecma9BinaryProperties + \" Extended_Pictographic\";\n var ecma11BinaryProperties = ecma10BinaryProperties;\n var ecma12BinaryProperties = ecma11BinaryProperties + \" EBase EComp EMod EPres ExtPict\";\n var ecma13BinaryProperties = ecma12BinaryProperties;\n var ecma14BinaryProperties = ecma13BinaryProperties;\n\n var unicodeBinaryProperties = {\n 9: ecma9BinaryProperties,\n 10: ecma10BinaryProperties,\n 11: ecma11BinaryProperties,\n 12: ecma12BinaryProperties,\n 13: ecma13BinaryProperties,\n 14: ecma14BinaryProperties\n };\n\n // #table-binary-unicode-properties-of-strings\n var ecma14BinaryPropertiesOfStrings = \"Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji\";\n\n var unicodeBinaryPropertiesOfStrings = {\n 9: \"\",\n 10: \"\",\n 11: \"\",\n 12: \"\",\n 13: \"\",\n 14: ecma14BinaryPropertiesOfStrings\n };\n\n // #table-unicode-general-category-values\n var unicodeGeneralCategoryValues = \"Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu\";\n\n // #table-unicode-script-values\n var ecma9ScriptValues = \"Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb\";\n var ecma10ScriptValues = ecma9ScriptValues + \" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd\";\n var ecma11ScriptValues = ecma10ScriptValues + \" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho\";\n var ecma12ScriptValues = ecma11ScriptValues + \" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi\";\n var ecma13ScriptValues = ecma12ScriptValues + \" Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith\";\n var ecma14ScriptValues = ecma13ScriptValues + \" \" + scriptValuesAddedInUnicode;\n\n var unicodeScriptValues = {\n 9: ecma9ScriptValues,\n 10: ecma10ScriptValues,\n 11: ecma11ScriptValues,\n 12: ecma12ScriptValues,\n 13: ecma13ScriptValues,\n 14: ecma14ScriptValues\n };\n\n var data = {};\n function buildUnicodeData(ecmaVersion) {\n var d = data[ecmaVersion] = {\n binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion] + \" \" + unicodeGeneralCategoryValues),\n binaryOfStrings: wordsRegexp(unicodeBinaryPropertiesOfStrings[ecmaVersion]),\n nonBinary: {\n General_Category: wordsRegexp(unicodeGeneralCategoryValues),\n Script: wordsRegexp(unicodeScriptValues[ecmaVersion])\n }\n };\n d.nonBinary.Script_Extensions = d.nonBinary.Script;\n\n d.nonBinary.gc = d.nonBinary.General_Category;\n d.nonBinary.sc = d.nonBinary.Script;\n d.nonBinary.scx = d.nonBinary.Script_Extensions;\n }\n\n for (var i = 0, list = [9, 10, 11, 12, 13, 14]; i < list.length; i += 1) {\n var ecmaVersion = list[i];\n\n buildUnicodeData(ecmaVersion);\n }\n\n var pp$1 = Parser.prototype;\n\n // Track disjunction structure to determine whether a duplicate\n // capture group name is allowed because it is in a separate branch.\n var BranchID = function BranchID(parent, base) {\n // Parent disjunction branch\n this.parent = parent;\n // Identifies this set of sibling branches\n this.base = base || this;\n };\n\n BranchID.prototype.separatedFrom = function separatedFrom (alt) {\n // A branch is separate from another branch if they or any of\n // their parents are siblings in a given disjunction\n for (var self = this; self; self = self.parent) {\n for (var other = alt; other; other = other.parent) {\n if (self.base === other.base && self !== other) { return true }\n }\n }\n return false\n };\n\n BranchID.prototype.sibling = function sibling () {\n return new BranchID(this.parent, this.base)\n };\n\n var RegExpValidationState = function RegExpValidationState(parser) {\n this.parser = parser;\n this.validFlags = \"gim\" + (parser.options.ecmaVersion >= 6 ? \"uy\" : \"\") + (parser.options.ecmaVersion >= 9 ? \"s\" : \"\") + (parser.options.ecmaVersion >= 13 ? \"d\" : \"\") + (parser.options.ecmaVersion >= 15 ? \"v\" : \"\");\n this.unicodeProperties = data[parser.options.ecmaVersion >= 14 ? 14 : parser.options.ecmaVersion];\n this.source = \"\";\n this.flags = \"\";\n this.start = 0;\n this.switchU = false;\n this.switchV = false;\n this.switchN = false;\n this.pos = 0;\n this.lastIntValue = 0;\n this.lastStringValue = \"\";\n this.lastAssertionIsQuantifiable = false;\n this.numCapturingParens = 0;\n this.maxBackReference = 0;\n this.groupNames = Object.create(null);\n this.backReferenceNames = [];\n this.branchID = null;\n };\n\n RegExpValidationState.prototype.reset = function reset (start, pattern, flags) {\n var unicodeSets = flags.indexOf(\"v\") !== -1;\n var unicode = flags.indexOf(\"u\") !== -1;\n this.start = start | 0;\n this.source = pattern + \"\";\n this.flags = flags;\n if (unicodeSets && this.parser.options.ecmaVersion >= 15) {\n this.switchU = true;\n this.switchV = true;\n this.switchN = true;\n } else {\n this.switchU = unicode && this.parser.options.ecmaVersion >= 6;\n this.switchV = false;\n this.switchN = unicode && this.parser.options.ecmaVersion >= 9;\n }\n };\n\n RegExpValidationState.prototype.raise = function raise (message) {\n this.parser.raiseRecoverable(this.start, (\"Invalid regular expression: /\" + (this.source) + \"/: \" + message));\n };\n\n // If u flag is given, this returns the code point at the index (it combines a surrogate pair).\n // Otherwise, this returns the code unit of the index (can be a part of a surrogate pair).\n RegExpValidationState.prototype.at = function at (i, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var s = this.source;\n var l = s.length;\n if (i >= l) {\n return -1\n }\n var c = s.charCodeAt(i);\n if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {\n return c\n }\n var next = s.charCodeAt(i + 1);\n return next >= 0xDC00 && next <= 0xDFFF ? (c << 10) + next - 0x35FDC00 : c\n };\n\n RegExpValidationState.prototype.nextIndex = function nextIndex (i, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var s = this.source;\n var l = s.length;\n if (i >= l) {\n return l\n }\n var c = s.charCodeAt(i), next;\n if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l ||\n (next = s.charCodeAt(i + 1)) < 0xDC00 || next > 0xDFFF) {\n return i + 1\n }\n return i + 2\n };\n\n RegExpValidationState.prototype.current = function current (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n return this.at(this.pos, forceU)\n };\n\n RegExpValidationState.prototype.lookahead = function lookahead (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n return this.at(this.nextIndex(this.pos, forceU), forceU)\n };\n\n RegExpValidationState.prototype.advance = function advance (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n this.pos = this.nextIndex(this.pos, forceU);\n };\n\n RegExpValidationState.prototype.eat = function eat (ch, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n if (this.current(forceU) === ch) {\n this.advance(forceU);\n return true\n }\n return false\n };\n\n RegExpValidationState.prototype.eatChars = function eatChars (chs, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var pos = this.pos;\n for (var i = 0, list = chs; i < list.length; i += 1) {\n var ch = list[i];\n\n var current = this.at(pos, forceU);\n if (current === -1 || current !== ch) {\n return false\n }\n pos = this.nextIndex(pos, forceU);\n }\n this.pos = pos;\n return true\n };\n\n /**\n * Validate the flags part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\n pp$1.validateRegExpFlags = function(state) {\n var validFlags = state.validFlags;\n var flags = state.flags;\n\n var u = false;\n var v = false;\n\n for (var i = 0; i < flags.length; i++) {\n var flag = flags.charAt(i);\n if (validFlags.indexOf(flag) === -1) {\n this.raise(state.start, \"Invalid regular expression flag\");\n }\n if (flags.indexOf(flag, i + 1) > -1) {\n this.raise(state.start, \"Duplicate regular expression flag\");\n }\n if (flag === \"u\") { u = true; }\n if (flag === \"v\") { v = true; }\n }\n if (this.options.ecmaVersion >= 15 && u && v) {\n this.raise(state.start, \"Invalid regular expression flag\");\n }\n };\n\n function hasProp(obj) {\n for (var _ in obj) { return true }\n return false\n }\n\n /**\n * Validate the pattern part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\n pp$1.validateRegExpPattern = function(state) {\n this.regexp_pattern(state);\n\n // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of\n // parsing contains a |GroupName|, reparse with the goal symbol\n // |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError*\n // exception if _P_ did not conform to the grammar, if any elements of _P_\n // were not matched by the parse, or if any Early Error conditions exist.\n if (!state.switchN && this.options.ecmaVersion >= 9 && hasProp(state.groupNames)) {\n state.switchN = true;\n this.regexp_pattern(state);\n }\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern\n pp$1.regexp_pattern = function(state) {\n state.pos = 0;\n state.lastIntValue = 0;\n state.lastStringValue = \"\";\n state.lastAssertionIsQuantifiable = false;\n state.numCapturingParens = 0;\n state.maxBackReference = 0;\n state.groupNames = Object.create(null);\n state.backReferenceNames.length = 0;\n state.branchID = null;\n\n this.regexp_disjunction(state);\n\n if (state.pos !== state.source.length) {\n // Make the same messages as V8.\n if (state.eat(0x29 /* ) */)) {\n state.raise(\"Unmatched ')'\");\n }\n if (state.eat(0x5D /* ] */) || state.eat(0x7D /* } */)) {\n state.raise(\"Lone quantifier brackets\");\n }\n }\n if (state.maxBackReference > state.numCapturingParens) {\n state.raise(\"Invalid escape\");\n }\n for (var i = 0, list = state.backReferenceNames; i < list.length; i += 1) {\n var name = list[i];\n\n if (!state.groupNames[name]) {\n state.raise(\"Invalid named capture referenced\");\n }\n }\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction\n pp$1.regexp_disjunction = function(state) {\n var trackDisjunction = this.options.ecmaVersion >= 16;\n if (trackDisjunction) { state.branchID = new BranchID(state.branchID, null); }\n this.regexp_alternative(state);\n while (state.eat(0x7C /* | */)) {\n if (trackDisjunction) { state.branchID = state.branchID.sibling(); }\n this.regexp_alternative(state);\n }\n if (trackDisjunction) { state.branchID = state.branchID.parent; }\n\n // Make the same message as V8.\n if (this.regexp_eatQuantifier(state, true)) {\n state.raise(\"Nothing to repeat\");\n }\n if (state.eat(0x7B /* { */)) {\n state.raise(\"Lone quantifier brackets\");\n }\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative\n pp$1.regexp_alternative = function(state) {\n while (state.pos < state.source.length && this.regexp_eatTerm(state)) {}\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term\n pp$1.regexp_eatTerm = function(state) {\n if (this.regexp_eatAssertion(state)) {\n // Handle `QuantifiableAssertion Quantifier` alternative.\n // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion\n // is a QuantifiableAssertion.\n if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) {\n // Make the same message as V8.\n if (state.switchU) {\n state.raise(\"Invalid quantifier\");\n }\n }\n return true\n }\n\n if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) {\n this.regexp_eatQuantifier(state);\n return true\n }\n\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion\n pp$1.regexp_eatAssertion = function(state) {\n var start = state.pos;\n state.lastAssertionIsQuantifiable = false;\n\n // ^, $\n if (state.eat(0x5E /* ^ */) || state.eat(0x24 /* $ */)) {\n return true\n }\n\n // \\b \\B\n if (state.eat(0x5C /* \\ */)) {\n if (state.eat(0x42 /* B */) || state.eat(0x62 /* b */)) {\n return true\n }\n state.pos = start;\n }\n\n // Lookahead / Lookbehind\n if (state.eat(0x28 /* ( */) && state.eat(0x3F /* ? */)) {\n var lookbehind = false;\n if (this.options.ecmaVersion >= 9) {\n lookbehind = state.eat(0x3C /* < */);\n }\n if (state.eat(0x3D /* = */) || state.eat(0x21 /* ! */)) {\n this.regexp_disjunction(state);\n if (!state.eat(0x29 /* ) */)) {\n state.raise(\"Unterminated group\");\n }\n state.lastAssertionIsQuantifiable = !lookbehind;\n return true\n }\n }\n\n state.pos = start;\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier\n pp$1.regexp_eatQuantifier = function(state, noError) {\n if ( noError === void 0 ) noError = false;\n\n if (this.regexp_eatQuantifierPrefix(state, noError)) {\n state.eat(0x3F /* ? */);\n return true\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix\n pp$1.regexp_eatQuantifierPrefix = function(state, noError) {\n return (\n state.eat(0x2A /* * */) ||\n state.eat(0x2B /* + */) ||\n state.eat(0x3F /* ? */) ||\n this.regexp_eatBracedQuantifier(state, noError)\n )\n };\n pp$1.regexp_eatBracedQuantifier = function(state, noError) {\n var start = state.pos;\n if (state.eat(0x7B /* { */)) {\n var min = 0, max = -1;\n if (this.regexp_eatDecimalDigits(state)) {\n min = state.lastIntValue;\n if (state.eat(0x2C /* , */) && this.regexp_eatDecimalDigits(state)) {\n max = state.lastIntValue;\n }\n if (state.eat(0x7D /* } */)) {\n // SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-term\n if (max !== -1 && max < min && !noError) {\n state.raise(\"numbers out of order in {} quantifier\");\n }\n return true\n }\n }\n if (state.switchU && !noError) {\n state.raise(\"Incomplete quantifier\");\n }\n state.pos = start;\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Atom\n pp$1.regexp_eatAtom = function(state) {\n return (\n this.regexp_eatPatternCharacters(state) ||\n state.eat(0x2E /* . */) ||\n this.regexp_eatReverseSolidusAtomEscape(state) ||\n this.regexp_eatCharacterClass(state) ||\n this.regexp_eatUncapturingGroup(state) ||\n this.regexp_eatCapturingGroup(state)\n )\n };\n pp$1.regexp_eatReverseSolidusAtomEscape = function(state) {\n var start = state.pos;\n if (state.eat(0x5C /* \\ */)) {\n if (this.regexp_eatAtomEscape(state)) {\n return true\n }\n state.pos = start;\n }\n return false\n };\n pp$1.regexp_eatUncapturingGroup = function(state) {\n var start = state.pos;\n if (state.eat(0x28 /* ( */)) {\n if (state.eat(0x3F /* ? */)) {\n if (this.options.ecmaVersion >= 16) {\n var addModifiers = this.regexp_eatModifiers(state);\n var hasHyphen = state.eat(0x2D /* - */);\n if (addModifiers || hasHyphen) {\n for (var i = 0; i < addModifiers.length; i++) {\n var modifier = addModifiers.charAt(i);\n if (addModifiers.indexOf(modifier, i + 1) > -1) {\n state.raise(\"Duplicate regular expression modifiers\");\n }\n }\n if (hasHyphen) {\n var removeModifiers = this.regexp_eatModifiers(state);\n if (!addModifiers && !removeModifiers && state.current() === 0x3A /* : */) {\n state.raise(\"Invalid regular expression modifiers\");\n }\n for (var i$1 = 0; i$1 < removeModifiers.length; i$1++) {\n var modifier$1 = removeModifiers.charAt(i$1);\n if (\n removeModifiers.indexOf(modifier$1, i$1 + 1) > -1 ||\n addModifiers.indexOf(modifier$1) > -1\n ) {\n state.raise(\"Duplicate regular expression modifiers\");\n }\n }\n }\n }\n }\n if (state.eat(0x3A /* : */)) {\n this.regexp_disjunction(state);\n if (state.eat(0x29 /* ) */)) {\n return true\n }\n state.raise(\"Unterminated group\");\n }\n }\n state.pos = start;\n }\n return false\n };\n pp$1.regexp_eatCapturingGroup = function(state) {\n if (state.eat(0x28 /* ( */)) {\n if (this.options.ecmaVersion >= 9) {\n this.regexp_groupSpecifier(state);\n } else if (state.current() === 0x3F /* ? */) {\n state.raise(\"Invalid group\");\n }\n this.regexp_disjunction(state);\n if (state.eat(0x29 /* ) */)) {\n state.numCapturingParens += 1;\n return true\n }\n state.raise(\"Unterminated group\");\n }\n return false\n };\n // RegularExpressionModifiers ::\n // [empty]\n // RegularExpressionModifiers RegularExpressionModifier\n pp$1.regexp_eatModifiers = function(state) {\n var modifiers = \"\";\n var ch = 0;\n while ((ch = state.current()) !== -1 && isRegularExpressionModifier(ch)) {\n modifiers += codePointToString(ch);\n state.advance();\n }\n return modifiers\n };\n // RegularExpressionModifier :: one of\n // `i` `m` `s`\n function isRegularExpressionModifier(ch) {\n return ch === 0x69 /* i */ || ch === 0x6d /* m */ || ch === 0x73 /* s */\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom\n pp$1.regexp_eatExtendedAtom = function(state) {\n return (\n state.eat(0x2E /* . */) ||\n this.regexp_eatReverseSolidusAtomEscape(state) ||\n this.regexp_eatCharacterClass(state) ||\n this.regexp_eatUncapturingGroup(state) ||\n this.regexp_eatCapturingGroup(state) ||\n this.regexp_eatInvalidBracedQuantifier(state) ||\n this.regexp_eatExtendedPatternCharacter(state)\n )\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier\n pp$1.regexp_eatInvalidBracedQuantifier = function(state) {\n if (this.regexp_eatBracedQuantifier(state, true)) {\n state.raise(\"Nothing to repeat\");\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter\n pp$1.regexp_eatSyntaxCharacter = function(state) {\n var ch = state.current();\n if (isSyntaxCharacter(ch)) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n return false\n };\n function isSyntaxCharacter(ch) {\n return (\n ch === 0x24 /* $ */ ||\n ch >= 0x28 /* ( */ && ch <= 0x2B /* + */ ||\n ch === 0x2E /* . */ ||\n ch === 0x3F /* ? */ ||\n ch >= 0x5B /* [ */ && ch <= 0x5E /* ^ */ ||\n ch >= 0x7B /* { */ && ch <= 0x7D /* } */\n )\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter\n // But eat eager.\n pp$1.regexp_eatPatternCharacters = function(state) {\n var start = state.pos;\n var ch = 0;\n while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) {\n state.advance();\n }\n return state.pos !== start\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter\n pp$1.regexp_eatExtendedPatternCharacter = function(state) {\n var ch = state.current();\n if (\n ch !== -1 &&\n ch !== 0x24 /* $ */ &&\n !(ch >= 0x28 /* ( */ && ch <= 0x2B /* + */) &&\n ch !== 0x2E /* . */ &&\n ch !== 0x3F /* ? */ &&\n ch !== 0x5B /* [ */ &&\n ch !== 0x5E /* ^ */ &&\n ch !== 0x7C /* | */\n ) {\n state.advance();\n return true\n }\n return false\n };\n\n // GroupSpecifier ::\n // [empty]\n // `?` GroupName\n pp$1.regexp_groupSpecifier = function(state) {\n if (state.eat(0x3F /* ? */)) {\n if (!this.regexp_eatGroupName(state)) { state.raise(\"Invalid group\"); }\n var trackDisjunction = this.options.ecmaVersion >= 16;\n var known = state.groupNames[state.lastStringValue];\n if (known) {\n if (trackDisjunction) {\n for (var i = 0, list = known; i < list.length; i += 1) {\n var altID = list[i];\n\n if (!altID.separatedFrom(state.branchID))\n { state.raise(\"Duplicate capture group name\"); }\n }\n } else {\n state.raise(\"Duplicate capture group name\");\n }\n }\n if (trackDisjunction) {\n (known || (state.groupNames[state.lastStringValue] = [])).push(state.branchID);\n } else {\n state.groupNames[state.lastStringValue] = true;\n }\n }\n };\n\n // GroupName ::\n // `<` RegExpIdentifierName `>`\n // Note: this updates `state.lastStringValue` property with the eaten name.\n pp$1.regexp_eatGroupName = function(state) {\n state.lastStringValue = \"\";\n if (state.eat(0x3C /* < */)) {\n if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) {\n return true\n }\n state.raise(\"Invalid capture group name\");\n }\n return false\n };\n\n // RegExpIdentifierName ::\n // RegExpIdentifierStart\n // RegExpIdentifierName RegExpIdentifierPart\n // Note: this updates `state.lastStringValue` property with the eaten name.\n pp$1.regexp_eatRegExpIdentifierName = function(state) {\n state.lastStringValue = \"\";\n if (this.regexp_eatRegExpIdentifierStart(state)) {\n state.lastStringValue += codePointToString(state.lastIntValue);\n while (this.regexp_eatRegExpIdentifierPart(state)) {\n state.lastStringValue += codePointToString(state.lastIntValue);\n }\n return true\n }\n return false\n };\n\n // RegExpIdentifierStart ::\n // UnicodeIDStart\n // `$`\n // `_`\n // `\\` RegExpUnicodeEscapeSequence[+U]\n pp$1.regexp_eatRegExpIdentifierStart = function(state) {\n var start = state.pos;\n var forceU = this.options.ecmaVersion >= 11;\n var ch = state.current(forceU);\n state.advance(forceU);\n\n if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {\n ch = state.lastIntValue;\n }\n if (isRegExpIdentifierStart(ch)) {\n state.lastIntValue = ch;\n return true\n }\n\n state.pos = start;\n return false\n };\n function isRegExpIdentifierStart(ch) {\n return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */\n }\n\n // RegExpIdentifierPart ::\n // UnicodeIDContinue\n // `$`\n // `_`\n // `\\` RegExpUnicodeEscapeSequence[+U]\n // <ZWNJ>\n // <ZWJ>\n pp$1.regexp_eatRegExpIdentifierPart = function(state) {\n var start = state.pos;\n var forceU = this.options.ecmaVersion >= 11;\n var ch = state.current(forceU);\n state.advance(forceU);\n\n if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {\n ch = state.lastIntValue;\n }\n if (isRegExpIdentifierPart(ch)) {\n state.lastIntValue = ch;\n return true\n }\n\n state.pos = start;\n return false\n };\n function isRegExpIdentifierPart(ch) {\n return isIdentifierChar(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ || ch === 0x200C /* <ZWNJ> */ || ch === 0x200D /* <ZWJ> */\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape\n pp$1.regexp_eatAtomEscape = function(state) {\n if (\n this.regexp_eatBackReference(state) ||\n this.regexp_eatCharacterClassEscape(state) ||\n this.regexp_eatCharacterEscape(state) ||\n (state.switchN && this.regexp_eatKGroupName(state))\n ) {\n return true\n }\n if (state.switchU) {\n // Make the same message as V8.\n if (state.current() === 0x63 /* c */) {\n state.raise(\"Invalid unicode escape\");\n }\n state.raise(\"Invalid escape\");\n }\n return false\n };\n pp$1.regexp_eatBackReference = function(state) {\n var start = state.pos;\n if (this.regexp_eatDecimalEscape(state)) {\n var n = state.lastIntValue;\n if (state.switchU) {\n // For SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-atomescape\n if (n > state.maxBackReference) {\n state.maxBackReference = n;\n }\n return true\n }\n if (n <= state.numCapturingParens) {\n return true\n }\n state.pos = start;\n }\n return false\n };\n pp$1.regexp_eatKGroupName = function(state) {\n if (state.eat(0x6B /* k */)) {\n if (this.regexp_eatGroupName(state)) {\n state.backReferenceNames.push(state.lastStringValue);\n return true\n }\n state.raise(\"Invalid named reference\");\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape\n pp$1.regexp_eatCharacterEscape = function(state) {\n return (\n this.regexp_eatControlEscape(state) ||\n this.regexp_eatCControlLetter(state) ||\n this.regexp_eatZero(state) ||\n this.regexp_eatHexEscapeSequence(state) ||\n this.regexp_eatRegExpUnicodeEscapeSequence(state, false) ||\n (!state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state)) ||\n this.regexp_eatIdentityEscape(state)\n )\n };\n pp$1.regexp_eatCControlLetter = function(state) {\n var start = state.pos;\n if (state.eat(0x63 /* c */)) {\n if (this.regexp_eatControlLetter(state)) {\n return true\n }\n state.pos = start;\n }\n return false\n };\n pp$1.regexp_eatZero = function(state) {\n if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) {\n state.lastIntValue = 0;\n state.advance();\n return true\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape\n pp$1.regexp_eatControlEscape = function(state) {\n var ch = state.current();\n if (ch === 0x74 /* t */) {\n state.lastIntValue = 0x09; /* \\t */\n state.advance();\n return true\n }\n if (ch === 0x6E /* n */) {\n state.lastIntValue = 0x0A; /* \\n */\n state.advance();\n return true\n }\n if (ch === 0x76 /* v */) {\n state.lastIntValue = 0x0B; /* \\v */\n state.advance();\n return true\n }\n if (ch === 0x66 /* f */) {\n state.lastIntValue = 0x0C; /* \\f */\n state.advance();\n return true\n }\n if (ch === 0x72 /* r */) {\n state.lastIntValue = 0x0D; /* \\r */\n state.advance();\n return true\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter\n pp$1.regexp_eatControlLetter = function(state) {\n var ch = state.current();\n if (isControlLetter(ch)) {\n state.lastIntValue = ch % 0x20;\n state.advance();\n return true\n }\n return false\n };\n function isControlLetter(ch) {\n return (\n (ch >= 0x41 /* A */ && ch <= 0x5A /* Z */) ||\n (ch >= 0x61 /* a */ && ch <= 0x7A /* z */)\n )\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence\n pp$1.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var start = state.pos;\n var switchU = forceU || state.switchU;\n\n if (state.eat(0x75 /* u */)) {\n if (this.regexp_eatFixedHexDigits(state, 4)) {\n var lead = state.lastIntValue;\n if (switchU && lead >= 0xD800 && lead <= 0xDBFF) {\n var leadSurrogateEnd = state.pos;\n if (state.eat(0x5C /* \\ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) {\n var trail = state.lastIntValue;\n if (trail >= 0xDC00 && trail <= 0xDFFF) {\n state.lastIntValue = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000;\n return true\n }\n }\n state.pos = leadSurrogateEnd;\n state.lastIntValue = lead;\n }\n return true\n }\n if (\n switchU &&\n state.eat(0x7B /* { */) &&\n this.regexp_eatHexDigits(state) &&\n state.eat(0x7D /* } */) &&\n isValidUnicode(state.lastIntValue)\n ) {\n return true\n }\n if (switchU) {\n state.raise(\"Invalid unicode escape\");\n }\n state.pos = start;\n }\n\n return false\n };\n function isValidUnicode(ch) {\n return ch >= 0 && ch <= 0x10FFFF\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape\n pp$1.regexp_eatIdentityEscape = function(state) {\n if (state.switchU) {\n if (this.regexp_eatSyntaxCharacter(state)) {\n return true\n }\n if (state.eat(0x2F /* / */)) {\n state.lastIntValue = 0x2F; /* / */\n return true\n }\n return false\n }\n\n var ch = state.current();\n if (ch !== 0x63 /* c */ && (!state.switchN || ch !== 0x6B /* k */)) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape\n pp$1.regexp_eatDecimalEscape = function(state) {\n state.lastIntValue = 0;\n var ch = state.current();\n if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) {\n do {\n state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);\n state.advance();\n } while ((ch = state.current()) >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */)\n return true\n }\n return false\n };\n\n // Return values used by character set parsing methods, needed to\n // forbid negation of sets that can match strings.\n var CharSetNone = 0; // Nothing parsed\n var CharSetOk = 1; // Construct parsed, cannot contain strings\n var CharSetString = 2; // Construct parsed, can contain strings\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape\n pp$1.regexp_eatCharacterClassEscape = function(state) {\n var ch = state.current();\n\n if (isCharacterClassEscape(ch)) {\n state.lastIntValue = -1;\n state.advance();\n return CharSetOk\n }\n\n var negate = false;\n if (\n state.switchU &&\n this.options.ecmaVersion >= 9 &&\n ((negate = ch === 0x50 /* P */) || ch === 0x70 /* p */)\n ) {\n state.lastIntValue = -1;\n state.advance();\n var result;\n if (\n state.eat(0x7B /* { */) &&\n (result = this.regexp_eatUnicodePropertyValueExpression(state)) &&\n state.eat(0x7D /* } */)\n ) {\n if (negate && result === CharSetString) { state.raise(\"Invalid property name\"); }\n return result\n }\n state.raise(\"Invalid property name\");\n }\n\n return CharSetNone\n };\n\n function isCharacterClassEscape(ch) {\n return (\n ch === 0x64 /* d */ ||\n ch === 0x44 /* D */ ||\n ch === 0x73 /* s */ ||\n ch === 0x53 /* S */ ||\n ch === 0x77 /* w */ ||\n ch === 0x57 /* W */\n )\n }\n\n // UnicodePropertyValueExpression ::\n // UnicodePropertyName `=` UnicodePropertyValue\n // LoneUnicodePropertyNameOrValue\n pp$1.regexp_eatUnicodePropertyValueExpression = function(state) {\n var start = state.pos;\n\n // UnicodePropertyName `=` UnicodePropertyValue\n if (this.regexp_eatUnicodePropertyName(state) && state.eat(0x3D /* = */)) {\n var name = state.lastStringValue;\n if (this.regexp_eatUnicodePropertyValue(state)) {\n var value = state.lastStringValue;\n this.regexp_validateUnicodePropertyNameAndValue(state, name, value);\n return CharSetOk\n }\n }\n state.pos = start;\n\n // LoneUnicodePropertyNameOrValue\n if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) {\n var nameOrValue = state.lastStringValue;\n return this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue)\n }\n return CharSetNone\n };\n\n pp$1.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) {\n if (!hasOwn(state.unicodeProperties.nonBinary, name))\n { state.raise(\"Invalid property name\"); }\n if (!state.unicodeProperties.nonBinary[name].test(value))\n { state.raise(\"Invalid property value\"); }\n };\n\n pp$1.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) {\n if (state.unicodeProperties.binary.test(nameOrValue)) { return CharSetOk }\n if (state.switchV && state.unicodeProperties.binaryOfStrings.test(nameOrValue)) { return CharSetString }\n state.raise(\"Invalid property name\");\n };\n\n // UnicodePropertyName ::\n // UnicodePropertyNameCharacters\n pp$1.regexp_eatUnicodePropertyName = function(state) {\n var ch = 0;\n state.lastStringValue = \"\";\n while (isUnicodePropertyNameCharacter(ch = state.current())) {\n state.lastStringValue += codePointToString(ch);\n state.advance();\n }\n return state.lastStringValue !== \"\"\n };\n\n function isUnicodePropertyNameCharacter(ch) {\n return isControlLetter(ch) || ch === 0x5F /* _ */\n }\n\n // UnicodePropertyValue ::\n // UnicodePropertyValueCharacters\n pp$1.regexp_eatUnicodePropertyValue = function(state) {\n var ch = 0;\n state.lastStringValue = \"\";\n while (isUnicodePropertyValueCharacter(ch = state.current())) {\n state.lastStringValue += codePointToString(ch);\n state.advance();\n }\n return state.lastStringValue !== \"\"\n };\n function isUnicodePropertyValueCharacter(ch) {\n return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch)\n }\n\n // LoneUnicodePropertyNameOrValue ::\n // UnicodePropertyValueCharacters\n pp$1.regexp_eatLoneUnicodePropertyNameOrValue = function(state) {\n return this.regexp_eatUnicodePropertyValue(state)\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass\n pp$1.regexp_eatCharacterClass = function(state) {\n if (state.eat(0x5B /* [ */)) {\n var negate = state.eat(0x5E /* ^ */);\n var result = this.regexp_classContents(state);\n if (!state.eat(0x5D /* ] */))\n { state.raise(\"Unterminated character class\"); }\n if (negate && result === CharSetString)\n { state.raise(\"Negated character class may contain strings\"); }\n return true\n }\n return false\n };\n\n // https://tc39.es/ecma262/#prod-ClassContents\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges\n pp$1.regexp_classContents = function(state) {\n if (state.current() === 0x5D /* ] */) { return CharSetOk }\n if (state.switchV) { return this.regexp_classSetExpression(state) }\n this.regexp_nonEmptyClassRanges(state);\n return CharSetOk\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges\n // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash\n pp$1.regexp_nonEmptyClassRanges = function(state) {\n while (this.regexp_eatClassAtom(state)) {\n var left = state.lastIntValue;\n if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) {\n var right = state.lastIntValue;\n if (state.switchU && (left === -1 || right === -1)) {\n state.raise(\"Invalid character class\");\n }\n if (left !== -1 && right !== -1 && left > right) {\n state.raise(\"Range out of order in character class\");\n }\n }\n }\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom\n // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash\n pp$1.regexp_eatClassAtom = function(state) {\n var start = state.pos;\n\n if (state.eat(0x5C /* \\ */)) {\n if (this.regexp_eatClassEscape(state)) {\n return true\n }\n if (state.switchU) {\n // Make the same message as V8.\n var ch$1 = state.current();\n if (ch$1 === 0x63 /* c */ || isOctalDigit(ch$1)) {\n state.raise(\"Invalid class escape\");\n }\n state.raise(\"Invalid escape\");\n }\n state.pos = start;\n }\n\n var ch = state.current();\n if (ch !== 0x5D /* ] */) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape\n pp$1.regexp_eatClassEscape = function(state) {\n var start = state.pos;\n\n if (state.eat(0x62 /* b */)) {\n state.lastIntValue = 0x08; /* <BS> */\n return true\n }\n\n if (state.switchU && state.eat(0x2D /* - */)) {\n state.lastIntValue = 0x2D; /* - */\n return true\n }\n\n if (!state.switchU && state.eat(0x63 /* c */)) {\n if (this.regexp_eatClassControlLetter(state)) {\n return true\n }\n state.pos = start;\n }\n\n return (\n this.regexp_eatCharacterClassEscape(state) ||\n this.regexp_eatCharacterEscape(state)\n )\n };\n\n // https://tc39.es/ecma262/#prod-ClassSetExpression\n // https://tc39.es/ecma262/#prod-ClassUnion\n // https://tc39.es/ecma262/#prod-ClassIntersection\n // https://tc39.es/ecma262/#prod-ClassSubtraction\n pp$1.regexp_classSetExpression = function(state) {\n var result = CharSetOk, subResult;\n if (this.regexp_eatClassSetRange(state)) ; else if (subResult = this.regexp_eatClassSetOperand(state)) {\n if (subResult === CharSetString) { result = CharSetString; }\n // https://tc39.es/ecma262/#prod-ClassIntersection\n var start = state.pos;\n while (state.eatChars([0x26, 0x26] /* && */)) {\n if (\n state.current() !== 0x26 /* & */ &&\n (subResult = this.regexp_eatClassSetOperand(state))\n ) {\n if (subResult !== CharSetString) { result = CharSetOk; }\n continue\n }\n state.raise(\"Invalid character in character class\");\n }\n if (start !== state.pos) { return result }\n // https://tc39.es/ecma262/#prod-ClassSubtraction\n while (state.eatChars([0x2D, 0x2D] /* -- */)) {\n if (this.regexp_eatClassSetOperand(state)) { continue }\n state.raise(\"Invalid character in character class\");\n }\n if (start !== state.pos) { return result }\n } else {\n state.raise(\"Invalid character in character class\");\n }\n // https://tc39.es/ecma262/#prod-ClassUnion\n for (;;) {\n if (this.regexp_eatClassSetRange(state)) { continue }\n subResult = this.regexp_eatClassSetOperand(state);\n if (!subResult) { return result }\n if (subResult === CharSetString) { result = CharSetString; }\n }\n };\n\n // https://tc39.es/ecma262/#prod-ClassSetRange\n pp$1.regexp_eatClassSetRange = function(state) {\n var start = state.pos;\n if (this.regexp_eatClassSetCharacter(state)) {\n var left = state.lastIntValue;\n if (state.eat(0x2D /* - */) && this.regexp_eatClassSetCharacter(state)) {\n var right = state.lastIntValue;\n if (left !== -1 && right !== -1 && left > right) {\n state.raise(\"Range out of order in character class\");\n }\n return true\n }\n state.pos = start;\n }\n return false\n };\n\n // https://tc39.es/ecma262/#prod-ClassSetOperand\n pp$1.regexp_eatClassSetOperand = function(state) {\n if (this.regexp_eatClassSetCharacter(state)) { return CharSetOk }\n return this.regexp_eatClassStringDisjunction(state) || this.regexp_eatNestedClass(state)\n };\n\n // https://tc39.es/ecma262/#prod-NestedClass\n pp$1.regexp_eatNestedClass = function(state) {\n var start = state.pos;\n if (state.eat(0x5B /* [ */)) {\n var negate = state.eat(0x5E /* ^ */);\n var result = this.regexp_classContents(state);\n if (state.eat(0x5D /* ] */)) {\n if (negate && result === CharSetString) {\n state.raise(\"Negated character class may contain strings\");\n }\n return result\n }\n state.pos = start;\n }\n if (state.eat(0x5C /* \\ */)) {\n var result$1 = this.regexp_eatCharacterClassEscape(state);\n if (result$1) {\n return result$1\n }\n state.pos = start;\n }\n return null\n };\n\n // https://tc39.es/ecma262/#prod-ClassStringDisjunction\n pp$1.regexp_eatClassStringDisjunction = function(state) {\n var start = state.pos;\n if (state.eatChars([0x5C, 0x71] /* \\q */)) {\n if (state.eat(0x7B /* { */)) {\n var result = this.regexp_classStringDisjunctionContents(state);\n if (state.eat(0x7D /* } */)) {\n return result\n }\n } else {\n // Make the same message as V8.\n state.raise(\"Invalid escape\");\n }\n state.pos = start;\n }\n return null\n };\n\n // https://tc39.es/ecma262/#prod-ClassStringDisjunctionContents\n pp$1.regexp_classStringDisjunctionContents = function(state) {\n var result = this.regexp_classString(state);\n while (state.eat(0x7C /* | */)) {\n if (this.regexp_classString(state) === CharSetString) { result = CharSetString; }\n }\n return result\n };\n\n // https://tc39.es/ecma262/#prod-ClassString\n // https://tc39.es/ecma262/#prod-NonEmptyClassString\n pp$1.regexp_classString = function(state) {\n var count = 0;\n while (this.regexp_eatClassSetCharacter(state)) { count++; }\n return count === 1 ? CharSetOk : CharSetString\n };\n\n // https://tc39.es/ecma262/#prod-ClassSetCharacter\n pp$1.regexp_eatClassSetCharacter = function(state) {\n var start = state.pos;\n if (state.eat(0x5C /* \\ */)) {\n if (\n this.regexp_eatCharacterEscape(state) ||\n this.regexp_eatClassSetReservedPunctuator(state)\n ) {\n return true\n }\n if (state.eat(0x62 /* b */)) {\n state.lastIntValue = 0x08; /* <BS> */\n return true\n }\n state.pos = start;\n return false\n }\n var ch = state.current();\n if (ch < 0 || ch === state.lookahead() && isClassSetReservedDoublePunctuatorCharacter(ch)) { return false }\n if (isClassSetSyntaxCharacter(ch)) { return false }\n state.advance();\n state.lastIntValue = ch;\n return true\n };\n\n // https://tc39.es/ecma262/#prod-ClassSetReservedDoublePunctuator\n function isClassSetReservedDoublePunctuatorCharacter(ch) {\n return (\n ch === 0x21 /* ! */ ||\n ch >= 0x23 /* # */ && ch <= 0x26 /* & */ ||\n ch >= 0x2A /* * */ && ch <= 0x2C /* , */ ||\n ch === 0x2E /* . */ ||\n ch >= 0x3A /* : */ && ch <= 0x40 /* @ */ ||\n ch === 0x5E /* ^ */ ||\n ch === 0x60 /* ` */ ||\n ch === 0x7E /* ~ */\n )\n }\n\n // https://tc39.es/ecma262/#prod-ClassSetSyntaxCharacter\n function isClassSetSyntaxCharacter(ch) {\n return (\n ch === 0x28 /* ( */ ||\n ch === 0x29 /* ) */ ||\n ch === 0x2D /* - */ ||\n ch === 0x2F /* / */ ||\n ch >= 0x5B /* [ */ && ch <= 0x5D /* ] */ ||\n ch >= 0x7B /* { */ && ch <= 0x7D /* } */\n )\n }\n\n // https://tc39.es/ecma262/#prod-ClassSetReservedPunctuator\n pp$1.regexp_eatClassSetReservedPunctuator = function(state) {\n var ch = state.current();\n if (isClassSetReservedPunctuator(ch)) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n return false\n };\n\n // https://tc39.es/ecma262/#prod-ClassSetReservedPunctuator\n function isClassSetReservedPunctuator(ch) {\n return (\n ch === 0x21 /* ! */ ||\n ch === 0x23 /* # */ ||\n ch === 0x25 /* % */ ||\n ch === 0x26 /* & */ ||\n ch === 0x2C /* , */ ||\n ch === 0x2D /* - */ ||\n ch >= 0x3A /* : */ && ch <= 0x3E /* > */ ||\n ch === 0x40 /* @ */ ||\n ch === 0x60 /* ` */ ||\n ch === 0x7E /* ~ */\n )\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter\n pp$1.regexp_eatClassControlLetter = function(state) {\n var ch = state.current();\n if (isDecimalDigit(ch) || ch === 0x5F /* _ */) {\n state.lastIntValue = ch % 0x20;\n state.advance();\n return true\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\n pp$1.regexp_eatHexEscapeSequence = function(state) {\n var start = state.pos;\n if (state.eat(0x78 /* x */)) {\n if (this.regexp_eatFixedHexDigits(state, 2)) {\n return true\n }\n if (state.switchU) {\n state.raise(\"Invalid escape\");\n }\n state.pos = start;\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits\n pp$1.regexp_eatDecimalDigits = function(state) {\n var start = state.pos;\n var ch = 0;\n state.lastIntValue = 0;\n while (isDecimalDigit(ch = state.current())) {\n state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);\n state.advance();\n }\n return state.pos !== start\n };\n function isDecimalDigit(ch) {\n return ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits\n pp$1.regexp_eatHexDigits = function(state) {\n var start = state.pos;\n var ch = 0;\n state.lastIntValue = 0;\n while (isHexDigit(ch = state.current())) {\n state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);\n state.advance();\n }\n return state.pos !== start\n };\n function isHexDigit(ch) {\n return (\n (ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) ||\n (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) ||\n (ch >= 0x61 /* a */ && ch <= 0x66 /* f */)\n )\n }\n function hexToInt(ch) {\n if (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) {\n return 10 + (ch - 0x41 /* A */)\n }\n if (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) {\n return 10 + (ch - 0x61 /* a */)\n }\n return ch - 0x30 /* 0 */\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence\n // Allows only 0-377(octal) i.e. 0-255(decimal).\n pp$1.regexp_eatLegacyOctalEscapeSequence = function(state) {\n if (this.regexp_eatOctalDigit(state)) {\n var n1 = state.lastIntValue;\n if (this.regexp_eatOctalDigit(state)) {\n var n2 = state.lastIntValue;\n if (n1 <= 3 && this.regexp_eatOctalDigit(state)) {\n state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue;\n } else {\n state.lastIntValue = n1 * 8 + n2;\n }\n } else {\n state.lastIntValue = n1;\n }\n return true\n }\n return false\n };\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit\n pp$1.regexp_eatOctalDigit = function(state) {\n var ch = state.current();\n if (isOctalDigit(ch)) {\n state.lastIntValue = ch - 0x30; /* 0 */\n state.advance();\n return true\n }\n state.lastIntValue = 0;\n return false\n };\n function isOctalDigit(ch) {\n return ch >= 0x30 /* 0 */ && ch <= 0x37 /* 7 */\n }\n\n // https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits\n // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit\n // And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\n pp$1.regexp_eatFixedHexDigits = function(state, length) {\n var start = state.pos;\n state.lastIntValue = 0;\n for (var i = 0; i < length; ++i) {\n var ch = state.current();\n if (!isHexDigit(ch)) {\n state.pos = start;\n return false\n }\n state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);\n state.advance();\n }\n return true\n };\n\n // Object type used to represent tokens. Note that normally, tokens\n // simply exist as properties on the parser object. This is only\n // used for the onToken callback and the external tokenizer.\n\n var Token = function Token(p) {\n this.type = p.type;\n this.value = p.value;\n this.start = p.start;\n this.end = p.end;\n if (p.options.locations)\n { this.loc = new SourceLocation(p, p.startLoc, p.endLoc); }\n if (p.options.ranges)\n { this.range = [p.start, p.end]; }\n };\n\n // ## Tokenizer\n\n var pp = Parser.prototype;\n\n // Move to the next token\n\n pp.next = function(ignoreEscapeSequenceInKeyword) {\n if (!ignoreEscapeSequenceInKeyword && this.type.keyword && this.containsEsc)\n { this.raiseRecoverable(this.start, \"Escape sequence in keyword \" + this.type.keyword); }\n if (this.options.onToken)\n { this.options.onToken(new Token(this)); }\n\n this.lastTokEnd = this.end;\n this.lastTokStart = this.start;\n this.lastTokEndLoc = this.endLoc;\n this.lastTokStartLoc = this.startLoc;\n this.nextToken();\n };\n\n pp.getToken = function() {\n this.next();\n return new Token(this)\n };\n\n // If we're in an ES6 environment, make parsers iterable\n if (typeof Symbol !== \"undefined\")\n { pp[Symbol.iterator] = function() {\n var this$1$1 = this;\n\n return {\n next: function () {\n var token = this$1$1.getToken();\n return {\n done: token.type === types$1.eof,\n value: token\n }\n }\n }\n }; }\n\n // Toggle strict mode. Re-reads the next number or string to please\n // pedantic tests (`\"use strict\"; 010;` should fail).\n\n // Read a single token, updating the parser object's token-related\n // properties.\n\n pp.nextToken = function() {\n var curContext = this.curContext();\n if (!curContext || !curContext.preserveSpace) { this.skipSpace(); }\n\n this.start = this.pos;\n if (this.options.locations) { this.startLoc = this.curPosition(); }\n if (this.pos >= this.input.length) { return this.finishToken(types$1.eof) }\n\n if (curContext.override) { return curContext.override(this) }\n else { this.readToken(this.fullCharCodeAtPos()); }\n };\n\n pp.readToken = function(code) {\n // Identifier or keyword. '\\uXXXX' sequences are allowed in\n // identifiers, so '\\' also dispatches to that.\n if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\\' */)\n { return this.readWord() }\n\n return this.getTokenFromCode(code)\n };\n\n pp.fullCharCodeAt = function(pos) {\n var code = this.input.charCodeAt(pos);\n if (code <= 0xd7ff || code >= 0xdc00) { return code }\n var next = this.input.charCodeAt(pos + 1);\n return next <= 0xdbff || next >= 0xe000 ? code : (code << 10) + next - 0x35fdc00\n };\n\n pp.fullCharCodeAtPos = function() {\n return this.fullCharCodeAt(this.pos)\n };\n\n pp.skipBlockComment = function() {\n var startLoc = this.options.onComment && this.curPosition();\n var start = this.pos, end = this.input.indexOf(\"*/\", this.pos += 2);\n if (end === -1) { this.raise(this.pos - 2, \"Unterminated comment\"); }\n this.pos = end + 2;\n if (this.options.locations) {\n for (var nextBreak = (void 0), pos = start; (nextBreak = nextLineBreak(this.input, pos, this.pos)) > -1;) {\n ++this.curLine;\n pos = this.lineStart = nextBreak;\n }\n }\n if (this.options.onComment)\n { this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos,\n startLoc, this.curPosition()); }\n };\n\n pp.skipLineComment = function(startSkip) {\n var start = this.pos;\n var startLoc = this.options.onComment && this.curPosition();\n var ch = this.input.charCodeAt(this.pos += startSkip);\n while (this.pos < this.input.length && !isNewLine(ch)) {\n ch = this.input.charCodeAt(++this.pos);\n }\n if (this.options.onComment)\n { this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos,\n startLoc, this.curPosition()); }\n };\n\n // Called at the start of the parse and after every token. Skips\n // whitespace and comments, and.\n\n pp.skipSpace = function() {\n loop: while (this.pos < this.input.length) {\n var ch = this.input.charCodeAt(this.pos);\n switch (ch) {\n case 32: case 160: // ' '\n ++this.pos;\n break\n case 13:\n if (this.input.charCodeAt(this.pos + 1) === 10) {\n ++this.pos;\n }\n case 10: case 8232: case 8233:\n ++this.pos;\n if (this.options.locations) {\n ++this.curLine;\n this.lineStart = this.pos;\n }\n break\n case 47: // '/'\n switch (this.input.charCodeAt(this.pos + 1)) {\n case 42: // '*'\n this.skipBlockComment();\n break\n case 47:\n this.skipLineComment(2);\n break\n default:\n break loop\n }\n break\n default:\n if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) {\n ++this.pos;\n } else {\n break loop\n }\n }\n }\n };\n\n // Called at the end of every token. Sets `end`, `val`, and\n // maintains `context` and `exprAllowed`, and skips the space after\n // the token, so that the next one's `start` will point at the\n // right position.\n\n pp.finishToken = function(type, val) {\n this.end = this.pos;\n if (this.options.locations) { this.endLoc = this.curPosition(); }\n var prevType = this.type;\n this.type = type;\n this.value = val;\n\n this.updateContext(prevType);\n };\n\n // ### Token reading\n\n // This is the function that is called to fetch the next token. It\n // is somewhat obscure, because it works in character codes rather\n // than characters, and because operator parsing has been inlined\n // into it.\n //\n // All in the name of speed.\n //\n pp.readToken_dot = function() {\n var next = this.input.charCodeAt(this.pos + 1);\n if (next >= 48 && next <= 57) { return this.readNumber(true) }\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.'\n this.pos += 3;\n return this.finishToken(types$1.ellipsis)\n } else {\n ++this.pos;\n return this.finishToken(types$1.dot)\n }\n };\n\n pp.readToken_slash = function() { // '/'\n var next = this.input.charCodeAt(this.pos + 1);\n if (this.exprAllowed) { ++this.pos; return this.readRegexp() }\n if (next === 61) { return this.finishOp(types$1.assign, 2) }\n return this.finishOp(types$1.slash, 1)\n };\n\n pp.readToken_mult_modulo_exp = function(code) { // '%*'\n var next = this.input.charCodeAt(this.pos + 1);\n var size = 1;\n var tokentype = code === 42 ? types$1.star : types$1.modulo;\n\n // exponentiation operator ** and **=\n if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) {\n ++size;\n tokentype = types$1.starstar;\n next = this.input.charCodeAt(this.pos + 2);\n }\n\n if (next === 61) { return this.finishOp(types$1.assign, size + 1) }\n return this.finishOp(tokentype, size)\n };\n\n pp.readToken_pipe_amp = function(code) { // '|&'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === code) {\n if (this.options.ecmaVersion >= 12) {\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (next2 === 61) { return this.finishOp(types$1.assign, 3) }\n }\n return this.finishOp(code === 124 ? types$1.logicalOR : types$1.logicalAND, 2)\n }\n if (next === 61) { return this.finishOp(types$1.assign, 2) }\n return this.finishOp(code === 124 ? types$1.bitwiseOR : types$1.bitwiseAND, 1)\n };\n\n pp.readToken_caret = function() { // '^'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 61) { return this.finishOp(types$1.assign, 2) }\n return this.finishOp(types$1.bitwiseXOR, 1)\n };\n\n pp.readToken_plus_min = function(code) { // '+-'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === code) {\n if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 &&\n (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) {\n // A `-->` line comment\n this.skipLineComment(3);\n this.skipSpace();\n return this.nextToken()\n }\n return this.finishOp(types$1.incDec, 2)\n }\n if (next === 61) { return this.finishOp(types$1.assign, 2) }\n return this.finishOp(types$1.plusMin, 1)\n };\n\n pp.readToken_lt_gt = function(code) { // '<>'\n var next = this.input.charCodeAt(this.pos + 1);\n var size = 1;\n if (next === code) {\n size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2;\n if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types$1.assign, size + 1) }\n return this.finishOp(types$1.bitShift, size)\n }\n if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n this.input.charCodeAt(this.pos + 3) === 45) {\n // `<!--`, an XML-style comment that should be interpreted as a line comment\n this.skipLineComment(4);\n this.skipSpace();\n return this.nextToken()\n }\n if (next === 61) { size = 2; }\n return this.finishOp(types$1.relational, size)\n };\n\n pp.readToken_eq_excl = function(code) { // '=!'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 61) { return this.finishOp(types$1.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2) }\n if (code === 61 && next === 62 && this.options.ecmaVersion >= 6) { // '=>'\n this.pos += 2;\n return this.finishToken(types$1.arrow)\n }\n return this.finishOp(code === 61 ? types$1.eq : types$1.prefix, 1)\n };\n\n pp.readToken_question = function() { // '?'\n var ecmaVersion = this.options.ecmaVersion;\n if (ecmaVersion >= 11) {\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 46) {\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (next2 < 48 || next2 > 57) { return this.finishOp(types$1.questionDot, 2) }\n }\n if (next === 63) {\n if (ecmaVersion >= 12) {\n var next2$1 = this.input.charCodeAt(this.pos + 2);\n if (next2$1 === 61) { return this.finishOp(types$1.assign, 3) }\n }\n return this.finishOp(types$1.coalesce, 2)\n }\n }\n return this.finishOp(types$1.question, 1)\n };\n\n pp.readToken_numberSign = function() { // '#'\n var ecmaVersion = this.options.ecmaVersion;\n var code = 35; // '#'\n if (ecmaVersion >= 13) {\n ++this.pos;\n code = this.fullCharCodeAtPos();\n if (isIdentifierStart(code, true) || code === 92 /* '\\' */) {\n return this.finishToken(types$1.privateId, this.readWord1())\n }\n }\n\n this.raise(this.pos, \"Unexpected character '\" + codePointToString(code) + \"'\");\n };\n\n pp.getTokenFromCode = function(code) {\n switch (code) {\n // The interpretation of a dot depends on whether it is followed\n // by a digit or another two dots.\n case 46: // '.'\n return this.readToken_dot()\n\n // Punctuation tokens.\n case 40: ++this.pos; return this.finishToken(types$1.parenL)\n case 41: ++this.pos; return this.finishToken(types$1.parenR)\n case 59: ++this.pos; return this.finishToken(types$1.semi)\n case 44: ++this.pos; return this.finishToken(types$1.comma)\n case 91: ++this.pos; return this.finishToken(types$1.bracketL)\n case 93: ++this.pos; return this.finishToken(types$1.bracketR)\n case 123: ++this.pos; return this.finishToken(types$1.braceL)\n case 125: ++this.pos; return this.finishToken(types$1.braceR)\n case 58: ++this.pos; return this.finishToken(types$1.colon)\n\n case 96: // '`'\n if (this.options.ecmaVersion < 6) { break }\n ++this.pos;\n return this.finishToken(types$1.backQuote)\n\n case 48: // '0'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 120 || next === 88) { return this.readRadixNumber(16) } // '0x', '0X' - hex number\n if (this.options.ecmaVersion >= 6) {\n if (next === 111 || next === 79) { return this.readRadixNumber(8) } // '0o', '0O' - octal number\n if (next === 98 || next === 66) { return this.readRadixNumber(2) } // '0b', '0B' - binary number\n }\n\n // Anything else beginning with a digit is an integer, octal\n // number, or float.\n case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: // 1-9\n return this.readNumber(false)\n\n // Quotes produce strings.\n case 34: case 39: // '\"', \"'\"\n return this.readString(code)\n\n // Operators are parsed inline in tiny state machines. '=' (61) is\n // often referred to. `finishOp` simply skips the amount of\n // characters it is given as second argument, and returns a token\n // of the type given by its first argument.\n case 47: // '/'\n return this.readToken_slash()\n\n case 37: case 42: // '%*'\n return this.readToken_mult_modulo_exp(code)\n\n case 124: case 38: // '|&'\n return this.readToken_pipe_amp(code)\n\n case 94: // '^'\n return this.readToken_caret()\n\n case 43: case 45: // '+-'\n return this.readToken_plus_min(code)\n\n case 60: case 62: // '<>'\n return this.readToken_lt_gt(code)\n\n case 61: case 33: // '=!'\n return this.readToken_eq_excl(code)\n\n case 63: // '?'\n return this.readToken_question()\n\n case 126: // '~'\n return this.finishOp(types$1.prefix, 1)\n\n case 35: // '#'\n return this.readToken_numberSign()\n }\n\n this.raise(this.pos, \"Unexpected character '\" + codePointToString(code) + \"'\");\n };\n\n pp.finishOp = function(type, size) {\n var str = this.input.slice(this.pos, this.pos + size);\n this.pos += size;\n return this.finishToken(type, str)\n };\n\n pp.readRegexp = function() {\n var escaped, inClass, start = this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(start, \"Unterminated regular expression\"); }\n var ch = this.input.charAt(this.pos);\n if (lineBreak.test(ch)) { this.raise(start, \"Unterminated regular expression\"); }\n if (!escaped) {\n if (ch === \"[\") { inClass = true; }\n else if (ch === \"]\" && inClass) { inClass = false; }\n else if (ch === \"/\" && !inClass) { break }\n escaped = ch === \"\\\\\";\n } else { escaped = false; }\n ++this.pos;\n }\n var pattern = this.input.slice(start, this.pos);\n ++this.pos;\n var flagsStart = this.pos;\n var flags = this.readWord1();\n if (this.containsEsc) { this.unexpected(flagsStart); }\n\n // Validate pattern\n var state = this.regexpState || (this.regexpState = new RegExpValidationState(this));\n state.reset(start, pattern, flags);\n this.validateRegExpFlags(state);\n this.validateRegExpPattern(state);\n\n // Create Literal#value property value.\n var value = null;\n try {\n value = new RegExp(pattern, flags);\n } catch (e) {\n // ESTree requires null if it failed to instantiate RegExp object.\n // https://github.com/estree/estree/blob/a27003adf4fd7bfad44de9cef372a2eacd527b1c/es5.md#regexpliteral\n }\n\n return this.finishToken(types$1.regexp, {pattern: pattern, flags: flags, value: value})\n };\n\n // Read an integer in the given radix. Return null if zero digits\n // were read, the integer value otherwise. When `len` is given, this\n // will return `null` unless the integer has exactly `len` digits.\n\n pp.readInt = function(radix, len, maybeLegacyOctalNumericLiteral) {\n // `len` is used for character escape sequences. In that case, disallow separators.\n var allowSeparators = this.options.ecmaVersion >= 12 && len === undefined;\n\n // `maybeLegacyOctalNumericLiteral` is true if it doesn't have prefix (0x,0o,0b)\n // and isn't fraction part nor exponent part. In that case, if the first digit\n // is zero then disallow separators.\n var isLegacyOctalNumericLiteral = maybeLegacyOctalNumericLiteral && this.input.charCodeAt(this.pos) === 48;\n\n var start = this.pos, total = 0, lastCode = 0;\n for (var i = 0, e = len == null ? Infinity : len; i < e; ++i, ++this.pos) {\n var code = this.input.charCodeAt(this.pos), val = (void 0);\n\n if (allowSeparators && code === 95) {\n if (isLegacyOctalNumericLiteral) { this.raiseRecoverable(this.pos, \"Numeric separator is not allowed in legacy octal numeric literals\"); }\n if (lastCode === 95) { this.raiseRecoverable(this.pos, \"Numeric separator must be exactly one underscore\"); }\n if (i === 0) { this.raiseRecoverable(this.pos, \"Numeric separator is not allowed at the first of digits\"); }\n lastCode = code;\n continue\n }\n\n if (code >= 97) { val = code - 97 + 10; } // a\n else if (code >= 65) { val = code - 65 + 10; } // A\n else if (code >= 48 && code <= 57) { val = code - 48; } // 0-9\n else { val = Infinity; }\n if (val >= radix) { break }\n lastCode = code;\n total = total * radix + val;\n }\n\n if (allowSeparators && lastCode === 95) { this.raiseRecoverable(this.pos - 1, \"Numeric separator is not allowed at the last of digits\"); }\n if (this.pos === start || len != null && this.pos - start !== len) { return null }\n\n return total\n };\n\n function stringToNumber(str, isLegacyOctalNumericLiteral) {\n if (isLegacyOctalNumericLiteral) {\n return parseInt(str, 8)\n }\n\n // `parseFloat(value)` stops parsing at the first numeric separator then returns a wrong value.\n return parseFloat(str.replace(/_/g, \"\"))\n }\n\n function stringToBigInt(str) {\n if (typeof BigInt !== \"function\") {\n return null\n }\n\n // `BigInt(value)` throws syntax error if the string contains numeric separators.\n return BigInt(str.replace(/_/g, \"\"))\n }\n\n pp.readRadixNumber = function(radix) {\n var start = this.pos;\n this.pos += 2; // 0x\n var val = this.readInt(radix);\n if (val == null) { this.raise(this.start + 2, \"Expected number in radix \" + radix); }\n if (this.options.ecmaVersion >= 11 && this.input.charCodeAt(this.pos) === 110) {\n val = stringToBigInt(this.input.slice(start, this.pos));\n ++this.pos;\n } else if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n return this.finishToken(types$1.num, val)\n };\n\n // Read an integer, octal integer, or floating-point number.\n\n pp.readNumber = function(startsWithDot) {\n var start = this.pos;\n if (!startsWithDot && this.readInt(10, undefined, true) === null) { this.raise(start, \"Invalid number\"); }\n var octal = this.pos - start >= 2 && this.input.charCodeAt(start) === 48;\n if (octal && this.strict) { this.raise(start, \"Invalid number\"); }\n var next = this.input.charCodeAt(this.pos);\n if (!octal && !startsWithDot && this.options.ecmaVersion >= 11 && next === 110) {\n var val$1 = stringToBigInt(this.input.slice(start, this.pos));\n ++this.pos;\n if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n return this.finishToken(types$1.num, val$1)\n }\n if (octal && /[89]/.test(this.input.slice(start, this.pos))) { octal = false; }\n if (next === 46 && !octal) { // '.'\n ++this.pos;\n this.readInt(10);\n next = this.input.charCodeAt(this.pos);\n }\n if ((next === 69 || next === 101) && !octal) { // 'eE'\n next = this.input.charCodeAt(++this.pos);\n if (next === 43 || next === 45) { ++this.pos; } // '+-'\n if (this.readInt(10) === null) { this.raise(start, \"Invalid number\"); }\n }\n if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n\n var val = stringToNumber(this.input.slice(start, this.pos), octal);\n return this.finishToken(types$1.num, val)\n };\n\n // Read a string value, interpreting backslash-escapes.\n\n pp.readCodePoint = function() {\n var ch = this.input.charCodeAt(this.pos), code;\n\n if (ch === 123) { // '{'\n if (this.options.ecmaVersion < 6) { this.unexpected(); }\n var codePos = ++this.pos;\n code = this.readHexChar(this.input.indexOf(\"}\", this.pos) - this.pos);\n ++this.pos;\n if (code > 0x10FFFF) { this.invalidStringToken(codePos, \"Code point out of bounds\"); }\n } else {\n code = this.readHexChar(4);\n }\n return code\n };\n\n pp.readString = function(quote) {\n var out = \"\", chunkStart = ++this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(this.start, \"Unterminated string constant\"); }\n var ch = this.input.charCodeAt(this.pos);\n if (ch === quote) { break }\n if (ch === 92) { // '\\'\n out += this.input.slice(chunkStart, this.pos);\n out += this.readEscapedChar(false);\n chunkStart = this.pos;\n } else if (ch === 0x2028 || ch === 0x2029) {\n if (this.options.ecmaVersion < 10) { this.raise(this.start, \"Unterminated string constant\"); }\n ++this.pos;\n if (this.options.locations) {\n this.curLine++;\n this.lineStart = this.pos;\n }\n } else {\n if (isNewLine(ch)) { this.raise(this.start, \"Unterminated string constant\"); }\n ++this.pos;\n }\n }\n out += this.input.slice(chunkStart, this.pos++);\n return this.finishToken(types$1.string, out)\n };\n\n // Reads template string tokens.\n\n var INVALID_TEMPLATE_ESCAPE_ERROR = {};\n\n pp.tryReadTemplateToken = function() {\n this.inTemplateElement = true;\n try {\n this.readTmplToken();\n } catch (err) {\n if (err === INVALID_TEMPLATE_ESCAPE_ERROR) {\n this.readInvalidTemplateToken();\n } else {\n throw err\n }\n }\n\n this.inTemplateElement = false;\n };\n\n pp.invalidStringToken = function(position, message) {\n if (this.inTemplateElement && this.options.ecmaVersion >= 9) {\n throw INVALID_TEMPLATE_ESCAPE_ERROR\n } else {\n this.raise(position, message);\n }\n };\n\n pp.readTmplToken = function() {\n var out = \"\", chunkStart = this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(this.start, \"Unterminated template\"); }\n var ch = this.input.charCodeAt(this.pos);\n if (ch === 96 || ch === 36 && this.input.charCodeAt(this.pos + 1) === 123) { // '`', '${'\n if (this.pos === this.start && (this.type === types$1.template || this.type === types$1.invalidTemplate)) {\n if (ch === 36) {\n this.pos += 2;\n return this.finishToken(types$1.dollarBraceL)\n } else {\n ++this.pos;\n return this.finishToken(types$1.backQuote)\n }\n }\n out += this.input.slice(chunkStart, this.pos);\n return this.finishToken(types$1.template, out)\n }\n if (ch === 92) { // '\\'\n out += this.input.slice(chunkStart, this.pos);\n out += this.readEscapedChar(true);\n chunkStart = this.pos;\n } else if (isNewLine(ch)) {\n out += this.input.slice(chunkStart, this.pos);\n ++this.pos;\n switch (ch) {\n case 13:\n if (this.input.charCodeAt(this.pos) === 10) { ++this.pos; }\n case 10:\n out += \"\\n\";\n break\n default:\n out += String.fromCharCode(ch);\n break\n }\n if (this.options.locations) {\n ++this.curLine;\n this.lineStart = this.pos;\n }\n chunkStart = this.pos;\n } else {\n ++this.pos;\n }\n }\n };\n\n // Reads a template token to search for the end, without validating any escape sequences\n pp.readInvalidTemplateToken = function() {\n for (; this.pos < this.input.length; this.pos++) {\n switch (this.input[this.pos]) {\n case \"\\\\\":\n ++this.pos;\n break\n\n case \"$\":\n if (this.input[this.pos + 1] !== \"{\") { break }\n // fall through\n case \"`\":\n return this.finishToken(types$1.invalidTemplate, this.input.slice(this.start, this.pos))\n\n case \"\\r\":\n if (this.input[this.pos + 1] === \"\\n\") { ++this.pos; }\n // fall through\n case \"\\n\": case \"\\u2028\": case \"\\u2029\":\n ++this.curLine;\n this.lineStart = this.pos + 1;\n break\n }\n }\n this.raise(this.start, \"Unterminated template\");\n };\n\n // Used to read escaped characters\n\n pp.readEscapedChar = function(inTemplate) {\n var ch = this.input.charCodeAt(++this.pos);\n ++this.pos;\n switch (ch) {\n case 110: return \"\\n\" // 'n' -> '\\n'\n case 114: return \"\\r\" // 'r' -> '\\r'\n case 120: return String.fromCharCode(this.readHexChar(2)) // 'x'\n case 117: return codePointToString(this.readCodePoint()) // 'u'\n case 116: return \"\\t\" // 't' -> '\\t'\n case 98: return \"\\b\" // 'b' -> '\\b'\n case 118: return \"\\u000b\" // 'v' -> '\\u000b'\n case 102: return \"\\f\" // 'f' -> '\\f'\n case 13: if (this.input.charCodeAt(this.pos) === 10) { ++this.pos; } // '\\r\\n'\n case 10: // ' \\n'\n if (this.options.locations) { this.lineStart = this.pos; ++this.curLine; }\n return \"\"\n case 56:\n case 57:\n if (this.strict) {\n this.invalidStringToken(\n this.pos - 1,\n \"Invalid escape sequence\"\n );\n }\n if (inTemplate) {\n var codePos = this.pos - 1;\n\n this.invalidStringToken(\n codePos,\n \"Invalid escape sequence in template string\"\n );\n }\n default:\n if (ch >= 48 && ch <= 55) {\n var octalStr = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0];\n var octal = parseInt(octalStr, 8);\n if (octal > 255) {\n octalStr = octalStr.slice(0, -1);\n octal = parseInt(octalStr, 8);\n }\n this.pos += octalStr.length - 1;\n ch = this.input.charCodeAt(this.pos);\n if ((octalStr !== \"0\" || ch === 56 || ch === 57) && (this.strict || inTemplate)) {\n this.invalidStringToken(\n this.pos - 1 - octalStr.length,\n inTemplate\n ? \"Octal literal in template string\"\n : \"Octal literal in strict mode\"\n );\n }\n return String.fromCharCode(octal)\n }\n if (isNewLine(ch)) {\n // Unicode new line characters after \\ get removed from output in both\n // template literals and strings\n if (this.options.locations) { this.lineStart = this.pos; ++this.curLine; }\n return \"\"\n }\n return String.fromCharCode(ch)\n }\n };\n\n // Used to read character escape sequences ('\\x', '\\u', '\\U').\n\n pp.readHexChar = function(len) {\n var codePos = this.pos;\n var n = this.readInt(16, len);\n if (n === null) { this.invalidStringToken(codePos, \"Bad character escape sequence\"); }\n return n\n };\n\n // Read an identifier, and return it as a string. Sets `this.containsEsc`\n // to whether the word contained a '\\u' escape.\n //\n // Incrementally adds only escaped chars, adding other chunks as-is\n // as a micro-optimization.\n\n pp.readWord1 = function() {\n this.containsEsc = false;\n var word = \"\", first = true, chunkStart = this.pos;\n var astral = this.options.ecmaVersion >= 6;\n while (this.pos < this.input.length) {\n var ch = this.fullCharCodeAtPos();\n if (isIdentifierChar(ch, astral)) {\n this.pos += ch <= 0xffff ? 1 : 2;\n } else if (ch === 92) { // \"\\\"\n this.containsEsc = true;\n word += this.input.slice(chunkStart, this.pos);\n var escStart = this.pos;\n if (this.input.charCodeAt(++this.pos) !== 117) // \"u\"\n { this.invalidStringToken(this.pos, \"Expecting Unicode escape sequence \\\\uXXXX\"); }\n ++this.pos;\n var esc = this.readCodePoint();\n if (!(first ? isIdentifierStart : isIdentifierChar)(esc, astral))\n { this.invalidStringToken(escStart, \"Invalid Unicode escape\"); }\n word += codePointToString(esc);\n chunkStart = this.pos;\n } else {\n break\n }\n first = false;\n }\n return word + this.input.slice(chunkStart, this.pos)\n };\n\n // Read an identifier or keyword token. Will check for reserved\n // words when necessary.\n\n pp.readWord = function() {\n var word = this.readWord1();\n var type = types$1.name;\n if (this.keywords.test(word)) {\n type = keywords[word];\n }\n return this.finishToken(type, word)\n };\n\n // Acorn is a tiny, fast JavaScript parser written in JavaScript.\n //\n // Acorn was written by Marijn Haverbeke, Ingvar Stepanyan, and\n // various contributors and released under an MIT license.\n //\n // Git repositories for Acorn are available at\n //\n // http://marijnhaverbeke.nl/git/acorn\n // https://github.com/acornjs/acorn.git\n //\n // Please use the [github bug tracker][ghbt] to report issues.\n //\n // [ghbt]: https://github.com/acornjs/acorn/issues\n\n\n var version = \"8.16.0\";\n\n Parser.acorn = {\n Parser: Parser,\n version: version,\n defaultOptions: defaultOptions,\n Position: Position,\n SourceLocation: SourceLocation,\n getLineInfo: getLineInfo,\n Node: Node,\n TokenType: TokenType,\n tokTypes: types$1,\n keywordTypes: keywords,\n TokContext: TokContext,\n tokContexts: types,\n isIdentifierChar: isIdentifierChar,\n isIdentifierStart: isIdentifierStart,\n Token: Token,\n isNewLine: isNewLine,\n lineBreak: lineBreak,\n lineBreakG: lineBreakG,\n nonASCIIwhitespace: nonASCIIwhitespace\n };\n\n // The main exported interface (under `self.acorn` when in the\n // browser) is a `parse` function that takes a code string and returns\n // an abstract syntax tree as specified by the [ESTree spec][estree].\n //\n // [estree]: https://github.com/estree/estree\n\n function parse(input, options) {\n return Parser.parse(input, options)\n }\n\n // This function tries to parse a single expression at a given\n // offset in a string. Useful for parsing mixed-language formats\n // that embed JavaScript expressions.\n\n function parseExpressionAt(input, pos, options) {\n return Parser.parseExpressionAt(input, pos, options)\n }\n\n // Acorn is organized as a tokenizer and a recursive-descent parser.\n // The `tokenizer` export provides an interface to the tokenizer.\n\n function tokenizer(input, options) {\n return Parser.tokenizer(input, options)\n }\n\n exports.Node = Node;\n exports.Parser = Parser;\n exports.Position = Position;\n exports.SourceLocation = SourceLocation;\n exports.TokContext = TokContext;\n exports.Token = Token;\n exports.TokenType = TokenType;\n exports.defaultOptions = defaultOptions;\n exports.getLineInfo = getLineInfo;\n exports.isIdentifierChar = isIdentifierChar;\n exports.isIdentifierStart = isIdentifierStart;\n exports.isNewLine = isNewLine;\n exports.keywordTypes = keywords;\n exports.lineBreak = lineBreak;\n exports.lineBreakG = lineBreakG;\n exports.nonASCIIwhitespace = nonASCIIwhitespace;\n exports.parse = parse;\n exports.parseExpressionAt = parseExpressionAt;\n exports.tokContexts = types;\n exports.tokTypes = types$1;\n exports.tokenizer = tokenizer;\n exports.version = version;\n\n}));\n","'use strict';\n\nconst XHTMLEntities = require('./xhtml');\n\nconst hexNumber = /^[\\da-fA-F]+$/;\nconst decimalNumber = /^\\d+$/;\n\n// The map to `acorn-jsx` tokens from `acorn` namespace objects.\nconst acornJsxMap = new WeakMap();\n\n// Get the original tokens for the given `acorn` namespace object.\nfunction getJsxTokens(acorn) {\n acorn = acorn.Parser.acorn || acorn;\n let acornJsx = acornJsxMap.get(acorn);\n if (!acornJsx) {\n const tt = acorn.tokTypes;\n const TokContext = acorn.TokContext;\n const TokenType = acorn.TokenType;\n const tc_oTag = new TokContext('<tag', false);\n const tc_cTag = new TokContext('</tag', false);\n const tc_expr = new TokContext('<tag>...</tag>', true, true);\n const tokContexts = {\n tc_oTag: tc_oTag,\n tc_cTag: tc_cTag,\n tc_expr: tc_expr\n };\n const tokTypes = {\n jsxName: new TokenType('jsxName'),\n jsxText: new TokenType('jsxText', {beforeExpr: true}),\n jsxTagStart: new TokenType('jsxTagStart', {startsExpr: true}),\n jsxTagEnd: new TokenType('jsxTagEnd')\n };\n\n tokTypes.jsxTagStart.updateContext = function() {\n this.context.push(tc_expr); // treat as beginning of JSX expression\n this.context.push(tc_oTag); // start opening tag context\n this.exprAllowed = false;\n };\n tokTypes.jsxTagEnd.updateContext = function(prevType) {\n let out = this.context.pop();\n if (out === tc_oTag && prevType === tt.slash || out === tc_cTag) {\n this.context.pop();\n this.exprAllowed = this.curContext() === tc_expr;\n } else {\n this.exprAllowed = true;\n }\n };\n\n acornJsx = { tokContexts: tokContexts, tokTypes: tokTypes };\n acornJsxMap.set(acorn, acornJsx);\n }\n\n return acornJsx;\n}\n\n// Transforms JSX element name to string.\n\nfunction getQualifiedJSXName(object) {\n if (!object)\n return object;\n\n if (object.type === 'JSXIdentifier')\n return object.name;\n\n if (object.type === 'JSXNamespacedName')\n return object.namespace.name + ':' + object.name.name;\n\n if (object.type === 'JSXMemberExpression')\n return getQualifiedJSXName(object.object) + '.' +\n getQualifiedJSXName(object.property);\n}\n\nmodule.exports = function(options) {\n options = options || {};\n return function(Parser) {\n return plugin({\n allowNamespaces: options.allowNamespaces !== false,\n allowNamespacedObjects: !!options.allowNamespacedObjects\n }, Parser);\n };\n};\n\n// This is `tokTypes` of the peer dep.\n// This can be different instances from the actual `tokTypes` this plugin uses.\nObject.defineProperty(module.exports, \"tokTypes\", {\n get: function get_tokTypes() {\n return getJsxTokens(require(\"acorn\")).tokTypes;\n },\n configurable: true,\n enumerable: true\n});\n\nfunction plugin(options, Parser) {\n const acorn = Parser.acorn || require(\"acorn\");\n const acornJsx = getJsxTokens(acorn);\n const tt = acorn.tokTypes;\n const tok = acornJsx.tokTypes;\n const tokContexts = acorn.tokContexts;\n const tc_oTag = acornJsx.tokContexts.tc_oTag;\n const tc_cTag = acornJsx.tokContexts.tc_cTag;\n const tc_expr = acornJsx.tokContexts.tc_expr;\n const isNewLine = acorn.isNewLine;\n const isIdentifierStart = acorn.isIdentifierStart;\n const isIdentifierChar = acorn.isIdentifierChar;\n\n return class extends Parser {\n // Expose actual `tokTypes` and `tokContexts` to other plugins.\n static get acornJsx() {\n return acornJsx;\n }\n\n // Reads inline JSX contents token.\n jsx_readToken() {\n let out = '', chunkStart = this.pos;\n for (;;) {\n if (this.pos >= this.input.length)\n this.raise(this.start, 'Unterminated JSX contents');\n let ch = this.input.charCodeAt(this.pos);\n\n switch (ch) {\n case 60: // '<'\n case 123: // '{'\n if (this.pos === this.start) {\n if (ch === 60 && this.exprAllowed) {\n ++this.pos;\n return this.finishToken(tok.jsxTagStart);\n }\n return this.getTokenFromCode(ch);\n }\n out += this.input.slice(chunkStart, this.pos);\n return this.finishToken(tok.jsxText, out);\n\n case 38: // '&'\n out += this.input.slice(chunkStart, this.pos);\n out += this.jsx_readEntity();\n chunkStart = this.pos;\n break;\n\n case 62: // '>'\n case 125: // '}'\n this.raise(\n this.pos,\n \"Unexpected token `\" + this.input[this.pos] + \"`. Did you mean `\" +\n (ch === 62 ? \"&gt;\" : \"&rbrace;\") + \"` or \" + \"`{\\\"\" + this.input[this.pos] + \"\\\"}\" + \"`?\"\n );\n\n default:\n if (isNewLine(ch)) {\n out += this.input.slice(chunkStart, this.pos);\n out += this.jsx_readNewLine(true);\n chunkStart = this.pos;\n } else {\n ++this.pos;\n }\n }\n }\n }\n\n jsx_readNewLine(normalizeCRLF) {\n let ch = this.input.charCodeAt(this.pos);\n let out;\n ++this.pos;\n if (ch === 13 && this.input.charCodeAt(this.pos) === 10) {\n ++this.pos;\n out = normalizeCRLF ? '\\n' : '\\r\\n';\n } else {\n out = String.fromCharCode(ch);\n }\n if (this.options.locations) {\n ++this.curLine;\n this.lineStart = this.pos;\n }\n\n return out;\n }\n\n jsx_readString(quote) {\n let out = '', chunkStart = ++this.pos;\n for (;;) {\n if (this.pos >= this.input.length)\n this.raise(this.start, 'Unterminated string constant');\n let ch = this.input.charCodeAt(this.pos);\n if (ch === quote) break;\n if (ch === 38) { // '&'\n out += this.input.slice(chunkStart, this.pos);\n out += this.jsx_readEntity();\n chunkStart = this.pos;\n } else if (isNewLine(ch)) {\n out += this.input.slice(chunkStart, this.pos);\n out += this.jsx_readNewLine(false);\n chunkStart = this.pos;\n } else {\n ++this.pos;\n }\n }\n out += this.input.slice(chunkStart, this.pos++);\n return this.finishToken(tt.string, out);\n }\n\n jsx_readEntity() {\n let str = '', count = 0, entity;\n let ch = this.input[this.pos];\n if (ch !== '&')\n this.raise(this.pos, 'Entity must start with an ampersand');\n let startPos = ++this.pos;\n while (this.pos < this.input.length && count++ < 10) {\n ch = this.input[this.pos++];\n if (ch === ';') {\n if (str[0] === '#') {\n if (str[1] === 'x') {\n str = str.substr(2);\n if (hexNumber.test(str))\n entity = String.fromCharCode(parseInt(str, 16));\n } else {\n str = str.substr(1);\n if (decimalNumber.test(str))\n entity = String.fromCharCode(parseInt(str, 10));\n }\n } else {\n entity = XHTMLEntities[str];\n }\n break;\n }\n str += ch;\n }\n if (!entity) {\n this.pos = startPos;\n return '&';\n }\n return entity;\n }\n\n // Read a JSX identifier (valid tag or attribute name).\n //\n // Optimized version since JSX identifiers can't contain\n // escape characters and so can be read as single slice.\n // Also assumes that first character was already checked\n // by isIdentifierStart in readToken.\n\n jsx_readWord() {\n let ch, start = this.pos;\n do {\n ch = this.input.charCodeAt(++this.pos);\n } while (isIdentifierChar(ch) || ch === 45); // '-'\n return this.finishToken(tok.jsxName, this.input.slice(start, this.pos));\n }\n\n // Parse next token as JSX identifier\n\n jsx_parseIdentifier() {\n let node = this.startNode();\n if (this.type === tok.jsxName)\n node.name = this.value;\n else if (this.type.keyword)\n node.name = this.type.keyword;\n else\n this.unexpected();\n this.next();\n return this.finishNode(node, 'JSXIdentifier');\n }\n\n // Parse namespaced identifier.\n\n jsx_parseNamespacedName() {\n let startPos = this.start, startLoc = this.startLoc;\n let name = this.jsx_parseIdentifier();\n if (!options.allowNamespaces || !this.eat(tt.colon)) return name;\n var node = this.startNodeAt(startPos, startLoc);\n node.namespace = name;\n node.name = this.jsx_parseIdentifier();\n return this.finishNode(node, 'JSXNamespacedName');\n }\n\n // Parses element name in any form - namespaced, member\n // or single identifier.\n\n jsx_parseElementName() {\n if (this.type === tok.jsxTagEnd) return '';\n let startPos = this.start, startLoc = this.startLoc;\n let node = this.jsx_parseNamespacedName();\n if (this.type === tt.dot && node.type === 'JSXNamespacedName' && !options.allowNamespacedObjects) {\n this.unexpected();\n }\n while (this.eat(tt.dot)) {\n let newNode = this.startNodeAt(startPos, startLoc);\n newNode.object = node;\n newNode.property = this.jsx_parseIdentifier();\n node = this.finishNode(newNode, 'JSXMemberExpression');\n }\n return node;\n }\n\n // Parses any type of JSX attribute value.\n\n jsx_parseAttributeValue() {\n switch (this.type) {\n case tt.braceL:\n let node = this.jsx_parseExpressionContainer();\n if (node.expression.type === 'JSXEmptyExpression')\n this.raise(node.start, 'JSX attributes must only be assigned a non-empty expression');\n return node;\n\n case tok.jsxTagStart:\n case tt.string:\n return this.parseExprAtom();\n\n default:\n this.raise(this.start, 'JSX value should be either an expression or a quoted JSX text');\n }\n }\n\n // JSXEmptyExpression is unique type since it doesn't actually parse anything,\n // and so it should start at the end of last read token (left brace) and finish\n // at the beginning of the next one (right brace).\n\n jsx_parseEmptyExpression() {\n let node = this.startNodeAt(this.lastTokEnd, this.lastTokEndLoc);\n return this.finishNodeAt(node, 'JSXEmptyExpression', this.start, this.startLoc);\n }\n\n // Parses JSX expression enclosed into curly brackets.\n\n jsx_parseExpressionContainer() {\n let node = this.startNode();\n this.next();\n node.expression = this.type === tt.braceR\n ? this.jsx_parseEmptyExpression()\n : this.parseExpression();\n this.expect(tt.braceR);\n return this.finishNode(node, 'JSXExpressionContainer');\n }\n\n // Parses following JSX attribute name-value pair.\n\n jsx_parseAttribute() {\n let node = this.startNode();\n if (this.eat(tt.braceL)) {\n this.expect(tt.ellipsis);\n node.argument = this.parseMaybeAssign();\n this.expect(tt.braceR);\n return this.finishNode(node, 'JSXSpreadAttribute');\n }\n node.name = this.jsx_parseNamespacedName();\n node.value = this.eat(tt.eq) ? this.jsx_parseAttributeValue() : null;\n return this.finishNode(node, 'JSXAttribute');\n }\n\n // Parses JSX opening tag starting after '<'.\n\n jsx_parseOpeningElementAt(startPos, startLoc) {\n let node = this.startNodeAt(startPos, startLoc);\n node.attributes = [];\n let nodeName = this.jsx_parseElementName();\n if (nodeName) node.name = nodeName;\n while (this.type !== tt.slash && this.type !== tok.jsxTagEnd)\n node.attributes.push(this.jsx_parseAttribute());\n node.selfClosing = this.eat(tt.slash);\n this.expect(tok.jsxTagEnd);\n return this.finishNode(node, nodeName ? 'JSXOpeningElement' : 'JSXOpeningFragment');\n }\n\n // Parses JSX closing tag starting after '</'.\n\n jsx_parseClosingElementAt(startPos, startLoc) {\n let node = this.startNodeAt(startPos, startLoc);\n let nodeName = this.jsx_parseElementName();\n if (nodeName) node.name = nodeName;\n this.expect(tok.jsxTagEnd);\n return this.finishNode(node, nodeName ? 'JSXClosingElement' : 'JSXClosingFragment');\n }\n\n // Parses entire JSX element, including it's opening tag\n // (starting after '<'), attributes, contents and closing tag.\n\n jsx_parseElementAt(startPos, startLoc) {\n let node = this.startNodeAt(startPos, startLoc);\n let children = [];\n let openingElement = this.jsx_parseOpeningElementAt(startPos, startLoc);\n let closingElement = null;\n\n if (!openingElement.selfClosing) {\n contents: for (;;) {\n switch (this.type) {\n case tok.jsxTagStart:\n startPos = this.start; startLoc = this.startLoc;\n this.next();\n if (this.eat(tt.slash)) {\n closingElement = this.jsx_parseClosingElementAt(startPos, startLoc);\n break contents;\n }\n children.push(this.jsx_parseElementAt(startPos, startLoc));\n break;\n\n case tok.jsxText:\n children.push(this.parseExprAtom());\n break;\n\n case tt.braceL:\n children.push(this.jsx_parseExpressionContainer());\n break;\n\n default:\n this.unexpected();\n }\n }\n if (getQualifiedJSXName(closingElement.name) !== getQualifiedJSXName(openingElement.name)) {\n this.raise(\n closingElement.start,\n 'Expected corresponding JSX closing tag for <' + getQualifiedJSXName(openingElement.name) + '>');\n }\n }\n let fragmentOrElement = openingElement.name ? 'Element' : 'Fragment';\n\n node['opening' + fragmentOrElement] = openingElement;\n node['closing' + fragmentOrElement] = closingElement;\n node.children = children;\n if (this.type === tt.relational && this.value === \"<\") {\n this.raise(this.start, \"Adjacent JSX elements must be wrapped in an enclosing tag\");\n }\n return this.finishNode(node, 'JSX' + fragmentOrElement);\n }\n\n // Parse JSX text\n\n jsx_parseText() {\n let node = this.parseLiteral(this.value);\n node.type = \"JSXText\";\n return node;\n }\n\n // Parses entire JSX element from current position.\n\n jsx_parseElement() {\n let startPos = this.start, startLoc = this.startLoc;\n this.next();\n return this.jsx_parseElementAt(startPos, startLoc);\n }\n\n parseExprAtom(refShortHandDefaultPos) {\n if (this.type === tok.jsxText)\n return this.jsx_parseText();\n else if (this.type === tok.jsxTagStart)\n return this.jsx_parseElement();\n else\n return super.parseExprAtom(refShortHandDefaultPos);\n }\n\n readToken(code) {\n let context = this.curContext();\n\n if (context === tc_expr) return this.jsx_readToken();\n\n if (context === tc_oTag || context === tc_cTag) {\n if (isIdentifierStart(code)) return this.jsx_readWord();\n\n if (code == 62) {\n ++this.pos;\n return this.finishToken(tok.jsxTagEnd);\n }\n\n if ((code === 34 || code === 39) && context == tc_oTag)\n return this.jsx_readString(code);\n }\n\n if (code === 60 && this.exprAllowed && this.input.charCodeAt(this.pos + 1) !== 33) {\n ++this.pos;\n return this.finishToken(tok.jsxTagStart);\n }\n return super.readToken(code);\n }\n\n updateContext(prevType) {\n if (this.type == tt.braceL) {\n var curContext = this.curContext();\n if (curContext == tc_oTag) this.context.push(tokContexts.b_expr);\n else if (curContext == tc_expr) this.context.push(tokContexts.b_tmpl);\n else super.updateContext(prevType);\n this.exprAllowed = true;\n } else if (this.type === tt.slash && prevType === tok.jsxTagStart) {\n this.context.length -= 2; // do not consider JSX expr -> JSX open tag -> ... anymore\n this.context.push(tc_cTag); // reconsider as closing tag context\n this.exprAllowed = false;\n } else {\n return super.updateContext(prevType);\n }\n }\n };\n}\n","import { resolve } from \"node:path\";\nimport picomatch from \"picomatch\";\n\n//#region src/utils/general.ts\nfunction toArray(array) {\n\tarray = array || [];\n\tif (Array.isArray(array)) return array;\n\treturn [array];\n}\n\n//#endregion\n//#region src/utils/filter.ts\nconst BACKSLASH_REGEX = /\\\\/g;\nfunction normalize$1(path) {\n\treturn path.replace(BACKSLASH_REGEX, \"/\");\n}\nconst ABSOLUTE_PATH_REGEX = /^(?:\\/|(?:[A-Z]:)?[/\\\\|])/i;\nfunction isAbsolute$1(path) {\n\treturn ABSOLUTE_PATH_REGEX.test(path);\n}\nfunction getMatcherString(glob, cwd) {\n\tif (glob.startsWith(\"**\") || isAbsolute$1(glob)) return normalize$1(glob);\n\treturn normalize$1(resolve(cwd, glob));\n}\nfunction patternToIdFilter(pattern) {\n\tif (pattern instanceof RegExp) return (id) => {\n\t\tconst normalizedId = normalize$1(id);\n\t\tconst result = pattern.test(normalizedId);\n\t\tpattern.lastIndex = 0;\n\t\treturn result;\n\t};\n\tconst matcher = picomatch(getMatcherString(pattern, process.cwd()), { dot: true });\n\treturn (id) => {\n\t\treturn matcher(normalize$1(id));\n\t};\n}\nfunction patternToCodeFilter(pattern) {\n\tif (pattern instanceof RegExp) return (code) => {\n\t\tconst result = pattern.test(code);\n\t\tpattern.lastIndex = 0;\n\t\treturn result;\n\t};\n\treturn (code) => code.includes(pattern);\n}\nfunction createFilter(exclude, include) {\n\tif (!exclude && !include) return;\n\treturn (input) => {\n\t\tif (exclude?.some((filter) => filter(input))) return false;\n\t\tif (include?.some((filter) => filter(input))) return true;\n\t\treturn !(include && include.length > 0);\n\t};\n}\nfunction normalizeFilter(filter) {\n\tif (typeof filter === \"string\" || filter instanceof RegExp) return { include: [filter] };\n\tif (Array.isArray(filter)) return { include: filter };\n\treturn {\n\t\texclude: filter.exclude ? toArray(filter.exclude) : void 0,\n\t\tinclude: filter.include ? toArray(filter.include) : void 0\n\t};\n}\nfunction createIdFilter(filter) {\n\tif (!filter) return;\n\tconst { exclude, include } = normalizeFilter(filter);\n\tconst excludeFilter = exclude?.map(patternToIdFilter);\n\tconst includeFilter = include?.map(patternToIdFilter);\n\treturn createFilter(excludeFilter, includeFilter);\n}\nfunction createCodeFilter(filter) {\n\tif (!filter) return;\n\tconst { exclude, include } = normalizeFilter(filter);\n\tconst excludeFilter = exclude?.map(patternToCodeFilter);\n\tconst includeFilter = include?.map(patternToCodeFilter);\n\treturn createFilter(excludeFilter, includeFilter);\n}\nfunction createFilterForId(filter) {\n\tconst filterFunction = createIdFilter(filter);\n\treturn filterFunction ? (id) => !!filterFunction(id) : void 0;\n}\nfunction createFilterForTransform(idFilter, codeFilter) {\n\tif (!idFilter && !codeFilter) return;\n\tconst idFilterFunction = createIdFilter(idFilter);\n\tconst codeFilterFunction = createCodeFilter(codeFilter);\n\treturn (id, code) => {\n\t\tlet fallback = true;\n\t\tif (idFilterFunction) fallback &&= idFilterFunction(id);\n\t\tif (!fallback) return false;\n\t\tif (codeFilterFunction) fallback &&= codeFilterFunction(code);\n\t\treturn fallback;\n\t};\n}\nfunction normalizeObjectHook(name, hook) {\n\tlet handler;\n\tlet filter;\n\tif (typeof hook === \"function\") handler = hook;\n\telse {\n\t\thandler = hook.handler;\n\t\tconst hookFilter = hook.filter;\n\t\tif (name === \"resolveId\" || name === \"load\") filter = createFilterForId(hookFilter?.id);\n\t\telse filter = createFilterForTransform(hookFilter?.id, hookFilter?.code);\n\t}\n\treturn {\n\t\thandler,\n\t\tfilter: filter || (() => true)\n\t};\n}\n\n//#endregion\n//#region src/utils/parse.ts\nlet parseImpl;\nfunction parse(code, opts = {}) {\n\tif (!parseImpl) throw new Error(\"Parse implementation is not set. Please call setParseImpl first.\");\n\treturn parseImpl(code, opts);\n}\nfunction setParseImpl(customParse) {\n\tparseImpl = customParse;\n}\n\n//#endregion\nexport { toArray as i, setParseImpl as n, normalizeObjectHook as r, parse as t };","import { r as normalizeObjectHook } from \"./parse-DN2jPtpt.mjs\";\nimport { isAbsolute, normalize } from \"node:path\";\n\n//#region src/utils/webpack-like.ts\nfunction transformUse(data, plugin, transformLoader) {\n\tif (data.resource == null) return [];\n\tconst id = normalizeAbsolutePath(data.resource + (data.resourceQuery || \"\"));\n\tif (plugin.transformInclude && !plugin.transformInclude(id)) return [];\n\tconst { filter } = normalizeObjectHook(\"load\", plugin.transform);\n\tif (!filter(id)) return [];\n\treturn [{\n\t\tloader: transformLoader,\n\t\toptions: { plugin },\n\t\tident: plugin.name\n\t}];\n}\n/**\n* Normalizes a given path when it's absolute. Normalizing means returning a new path by converting\n* the input path to the native os format. This is useful in cases where we want to normalize\n* the `id` argument of a hook. Any absolute ids should be in the default format\n* of the operating system. Any relative imports or node_module imports should remain\n* untouched.\n*\n* @param path - Path to normalize.\n* @returns a new normalized path.\n*/\nfunction normalizeAbsolutePath(path) {\n\tif (isAbsolute(path)) return normalize(path);\n\telse return path;\n}\n\n//#endregion\nexport { transformUse as n, normalizeAbsolutePath as t };","import { t as parse } from \"./parse-DN2jPtpt.mjs\";\nimport { resolve } from \"node:path\";\nimport { Buffer } from \"node:buffer\";\n\n//#region src/rspack/context.ts\nfunction createBuildContext(compiler, compilation, loaderContext, inputSourceMap) {\n\treturn {\n\t\tgetNativeBuildContext() {\n\t\t\treturn {\n\t\t\t\tframework: \"rspack\",\n\t\t\t\tcompiler,\n\t\t\t\tcompilation,\n\t\t\t\tloaderContext,\n\t\t\t\tinputSourceMap\n\t\t\t};\n\t\t},\n\t\taddWatchFile(file) {\n\t\t\tconst resolvedPath = resolve(process.cwd(), file);\n\t\t\tcompilation.fileDependencies.add(resolvedPath);\n\t\t\tloaderContext?.addDependency(resolvedPath);\n\t\t},\n\t\tgetWatchFiles() {\n\t\t\treturn Array.from(compilation.fileDependencies);\n\t\t},\n\t\tparse,\n\t\temitFile(emittedFile) {\n\t\t\tconst outFileName = emittedFile.fileName || emittedFile.name;\n\t\t\tif (emittedFile.source && outFileName) {\n\t\t\t\tconst { sources } = compilation.compiler.webpack;\n\t\t\t\tcompilation.emitAsset(outFileName, new sources.RawSource(typeof emittedFile.source === \"string\" ? emittedFile.source : Buffer.from(emittedFile.source)));\n\t\t\t}\n\t\t}\n\t};\n}\nfunction createContext(loader) {\n\treturn {\n\t\terror: (error) => loader.emitError(normalizeMessage(error)),\n\t\twarn: (message) => loader.emitWarning(normalizeMessage(message))\n\t};\n}\nfunction normalizeMessage(error) {\n\tconst err = new Error(typeof error === \"string\" ? error : error.message);\n\tif (typeof error === \"object\") {\n\t\terr.stack = error.stack;\n\t\terr.cause = error.meta;\n\t}\n\treturn err;\n}\n\n//#endregion\nexport { createContext as n, normalizeMessage as r, createBuildContext as t };","import { basename, dirname, resolve } from \"node:path\";\nimport fs from \"node:fs\";\n\n//#region src/rspack/utils.ts\nfunction encodeVirtualModuleId(id, plugin) {\n\treturn resolve(plugin.__virtualModulePrefix, encodeURIComponent(id));\n}\nfunction decodeVirtualModuleId(encoded, _plugin) {\n\treturn decodeURIComponent(basename(encoded));\n}\nfunction isVirtualModuleId(encoded, plugin) {\n\treturn dirname(encoded) === plugin.__virtualModulePrefix;\n}\nvar FakeVirtualModulesPlugin = class FakeVirtualModulesPlugin {\n\tname = \"FakeVirtualModulesPlugin\";\n\tstatic counters = /* @__PURE__ */ new Map();\n\tstatic initCleanup = false;\n\tconstructor(plugin) {\n\t\tthis.plugin = plugin;\n\t\tif (!FakeVirtualModulesPlugin.initCleanup) {\n\t\t\tFakeVirtualModulesPlugin.initCleanup = true;\n\t\t\tprocess.once(\"exit\", () => {\n\t\t\t\tFakeVirtualModulesPlugin.counters.forEach((_, dir) => {\n\t\t\t\t\tfs.rmSync(dir, {\n\t\t\t\t\t\trecursive: true,\n\t\t\t\t\t\tforce: true\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}\n\tapply(compiler) {\n\t\tconst dir = this.plugin.__virtualModulePrefix;\n\t\tif (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });\n\t\tconst counter = FakeVirtualModulesPlugin.counters.get(dir) ?? 0;\n\t\tFakeVirtualModulesPlugin.counters.set(dir, counter + 1);\n\t\tcompiler.hooks.shutdown.tap(this.name, () => {\n\t\t\tconst counter = (FakeVirtualModulesPlugin.counters.get(dir) ?? 1) - 1;\n\t\t\tif (counter === 0) {\n\t\t\t\tFakeVirtualModulesPlugin.counters.delete(dir);\n\t\t\t\tfs.rmSync(dir, {\n\t\t\t\t\trecursive: true,\n\t\t\t\t\tforce: true\n\t\t\t\t});\n\t\t\t} else FakeVirtualModulesPlugin.counters.set(dir, counter);\n\t\t});\n\t}\n\tasync writeModule(file) {\n\t\treturn fs.promises.writeFile(file, \"\");\n\t}\n};\n\n//#endregion\nexport { isVirtualModuleId as i, decodeVirtualModuleId as n, encodeVirtualModuleId as r, FakeVirtualModulesPlugin as t };","import { t as parse } from \"./parse-DN2jPtpt.mjs\";\nimport { createRequire } from \"node:module\";\nimport { resolve } from \"node:path\";\nimport { Buffer } from \"node:buffer\";\nimport process from \"node:process\";\n\n//#region src/webpack/context.ts\nfunction contextOptionsFromCompilation(compilation) {\n\treturn {\n\t\taddWatchFile(file) {\n\t\t\t(compilation.fileDependencies ?? compilation.compilationDependencies).add(file);\n\t\t},\n\t\tgetWatchFiles() {\n\t\t\treturn Array.from(compilation.fileDependencies ?? compilation.compilationDependencies);\n\t\t}\n\t};\n}\nconst require = createRequire(import.meta.url);\nfunction getSource(fileSource) {\n\treturn new (require(\"webpack\")).sources.RawSource(typeof fileSource === \"string\" ? fileSource : Buffer.from(fileSource.buffer));\n}\nfunction createBuildContext(options, compiler, compilation, loaderContext, inputSourceMap) {\n\treturn {\n\t\tparse,\n\t\taddWatchFile(id) {\n\t\t\toptions.addWatchFile(resolve(process.cwd(), id));\n\t\t},\n\t\temitFile(emittedFile) {\n\t\t\tconst outFileName = emittedFile.fileName || emittedFile.name;\n\t\t\tif (emittedFile.source && outFileName) {\n\t\t\t\tif (!compilation) throw new Error(\"unplugin/webpack: emitFile outside supported hooks (buildStart, buildEnd, load, transform, watchChange)\");\n\t\t\t\tcompilation.emitAsset(outFileName, getSource(emittedFile.source));\n\t\t\t}\n\t\t},\n\t\tgetWatchFiles() {\n\t\t\treturn options.getWatchFiles();\n\t\t},\n\t\tgetNativeBuildContext() {\n\t\t\treturn {\n\t\t\t\tframework: \"webpack\",\n\t\t\t\tcompiler,\n\t\t\t\tcompilation,\n\t\t\t\tloaderContext,\n\t\t\t\tinputSourceMap\n\t\t\t};\n\t\t}\n\t};\n}\nfunction createContext(loader) {\n\treturn {\n\t\terror: (error) => loader.emitError(normalizeMessage(error)),\n\t\twarn: (message) => loader.emitWarning(normalizeMessage(message))\n\t};\n}\nfunction normalizeMessage(error) {\n\tconst err = new Error(typeof error === \"string\" ? error : error.message);\n\tif (typeof error === \"object\") {\n\t\terr.stack = error.stack;\n\t\terr.cause = error.meta;\n\t}\n\treturn err;\n}\n\n//#endregion\nexport { normalizeMessage as i, createBuildContext as n, createContext as r, contextOptionsFromCompilation as t };","import { i as toArray, n as setParseImpl, r as normalizeObjectHook, t as parse } from \"./parse-DN2jPtpt.mjs\";\nimport { n as transformUse, t as normalizeAbsolutePath } from \"./webpack-like-Djrmy9eu.mjs\";\nimport { r as normalizeMessage$1, t as createBuildContext$2 } from \"./context-CKhLGGrj.mjs\";\nimport { i as isVirtualModuleId, n as decodeVirtualModuleId, r as encodeVirtualModuleId, t as FakeVirtualModulesPlugin } from \"./utils-BMHLEWml.mjs\";\nimport { i as normalizeMessage$2, n as createBuildContext$3, t as contextOptionsFromCompilation } from \"./context-MD-xQmYI.mjs\";\nimport { createRequire } from \"node:module\";\nimport path, { extname, isAbsolute, resolve } from \"node:path\";\nimport fs from \"node:fs\";\nimport { Buffer as Buffer$1 } from \"node:buffer\";\nimport remapping from \"@jridgewell/remapping\";\nimport * as querystring from \"node:querystring\";\nimport process$1 from \"node:process\";\n\n//#region rolldown:runtime\nvar __require = /* @__PURE__ */ createRequire(import.meta.url);\n\n//#endregion\n//#region src/bun/utils.ts\nconst ExtToLoader$1 = {\n\t\".js\": \"js\",\n\t\".mjs\": \"js\",\n\t\".cjs\": \"js\",\n\t\".jsx\": \"jsx\",\n\t\".ts\": \"ts\",\n\t\".cts\": \"ts\",\n\t\".mts\": \"ts\",\n\t\".tsx\": \"tsx\",\n\t\".css\": \"css\",\n\t\".less\": \"css\",\n\t\".stylus\": \"css\",\n\t\".scss\": \"css\",\n\t\".sass\": \"css\",\n\t\".json\": \"json\",\n\t\".txt\": \"text\"\n};\nfunction guessLoader$1(id) {\n\treturn ExtToLoader$1[path.extname(id).toLowerCase()] || \"js\";\n}\nfunction createBuildContext$1(build) {\n\tconst watchFiles = [];\n\treturn {\n\t\taddWatchFile(file) {\n\t\t\twatchFiles.push(file);\n\t\t},\n\t\tgetWatchFiles() {\n\t\t\treturn watchFiles;\n\t\t},\n\t\temitFile(emittedFile) {\n\t\t\tconst outFileName = emittedFile.fileName || emittedFile.name;\n\t\t\tconst outdir = build?.config?.outdir;\n\t\t\tif (outdir && emittedFile.source && outFileName) {\n\t\t\t\tconst outPath = path.resolve(outdir, outFileName);\n\t\t\t\tconst outDir = path.dirname(outPath);\n\t\t\t\tif (!fs.existsSync(outDir)) fs.mkdirSync(outDir, { recursive: true });\n\t\t\t\tfs.writeFileSync(outPath, emittedFile.source);\n\t\t\t}\n\t\t},\n\t\tparse,\n\t\tgetNativeBuildContext() {\n\t\t\treturn {\n\t\t\t\tframework: \"bun\",\n\t\t\t\tbuild\n\t\t\t};\n\t\t}\n\t};\n}\nfunction createPluginContext$1(buildContext) {\n\tconst errors = [];\n\tconst warnings = [];\n\treturn {\n\t\terrors,\n\t\twarnings,\n\t\tmixedContext: {\n\t\t\t...buildContext,\n\t\t\terror(error) {\n\t\t\t\terrors.push(error);\n\t\t\t},\n\t\t\twarn(warning) {\n\t\t\t\twarnings.push(warning);\n\t\t\t}\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/bun/index.ts\nfunction getBunPlugin(factory) {\n\treturn (userOptions) => {\n\t\tif (typeof Bun === \"undefined\") throw new ReferenceError(\"Bun is not supported in this environment\");\n\t\tif (!Bun.semver.satisfies(Bun.version, \">=1.2.22\")) throw new Error(\"Bun 1.2.22 or higher is required, please upgrade Bun\");\n\t\tconst meta = { framework: \"bun\" };\n\t\tconst plugins = toArray(factory(userOptions, meta));\n\t\treturn {\n\t\t\tname: (plugins.length === 1 ? plugins[0].name : meta.bunHostName) ?? `unplugin-host:${plugins.map((p) => p.name).join(\":\")}`,\n\t\t\tasync setup(build) {\n\t\t\t\tconst context = createBuildContext$1(build);\n\t\t\t\tif (plugins.some((plugin) => plugin.buildStart)) build.onStart(async () => {\n\t\t\t\t\tfor (const plugin of plugins) if (plugin.buildStart) await plugin.buildStart.call(context);\n\t\t\t\t});\n\t\t\t\tconst resolveIdHooks = plugins.filter((plugin) => plugin.resolveId).map((plugin) => ({\n\t\t\t\t\tplugin,\n\t\t\t\t\t...normalizeObjectHook(\"resolveId\", plugin.resolveId)\n\t\t\t\t}));\n\t\t\t\tconst loadHooks = plugins.filter((plugin) => plugin.load).map((plugin) => ({\n\t\t\t\t\tplugin,\n\t\t\t\t\t...normalizeObjectHook(\"load\", plugin.load)\n\t\t\t\t}));\n\t\t\t\tconst transformHooks = plugins.filter((plugin) => plugin.transform || plugin.transformInclude).map((plugin) => ({\n\t\t\t\t\tplugin,\n\t\t\t\t\t...normalizeObjectHook(\"transform\", plugin.transform)\n\t\t\t\t}));\n\t\t\t\tconst virtualModulePlugins = /* @__PURE__ */ new Set();\n\t\t\t\tfor (const plugin of plugins) if (plugin.resolveId && plugin.load) virtualModulePlugins.add(plugin.name);\n\t\t\t\tif (resolveIdHooks.length) build.onResolve({ filter: /.*/ }, async (args) => {\n\t\t\t\t\tif (build.config?.external?.includes(args.path)) return;\n\t\t\t\t\tfor (const { plugin, handler, filter } of resolveIdHooks) {\n\t\t\t\t\t\tif (!filter(args.path)) continue;\n\t\t\t\t\t\tconst { mixedContext, errors, warnings } = createPluginContext$1(context);\n\t\t\t\t\t\tconst isEntry = args.kind === \"entry-point-run\" || args.kind === \"entry-point-build\";\n\t\t\t\t\t\tconst result = await handler.call(mixedContext, args.path, isEntry ? void 0 : args.importer, { isEntry });\n\t\t\t\t\t\tfor (const warning of warnings) console.warn(\"[unplugin]\", typeof warning === \"string\" ? warning : warning.message);\n\t\t\t\t\t\tif (errors.length > 0) {\n\t\t\t\t\t\t\tconst errorMessage = errors.map((e) => typeof e === \"string\" ? e : e.message).join(\"\\n\");\n\t\t\t\t\t\t\tthrow new Error(`[unplugin] ${plugin.name}: ${errorMessage}`);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (typeof result === \"string\") {\n\t\t\t\t\t\t\tif (!isAbsolute(result)) return {\n\t\t\t\t\t\t\t\tpath: result,\n\t\t\t\t\t\t\t\tnamespace: plugin.name\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\treturn { path: result };\n\t\t\t\t\t\t} else if (typeof result === \"object\" && result !== null) {\n\t\t\t\t\t\t\tif (!isAbsolute(result.id)) return {\n\t\t\t\t\t\t\t\tpath: result.id,\n\t\t\t\t\t\t\t\texternal: result.external,\n\t\t\t\t\t\t\t\tnamespace: plugin.name\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tpath: result.id,\n\t\t\t\t\t\t\t\texternal: result.external\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tasync function processLoadTransform(id, namespace, loader) {\n\t\t\t\t\tlet code;\n\t\t\t\t\tlet hasResult = false;\n\t\t\t\t\tconst namespaceLoadHooks = namespace === \"file\" ? loadHooks : loadHooks.filter((h) => h.plugin.name === namespace);\n\t\t\t\t\tfor (const { plugin, handler, filter } of namespaceLoadHooks) {\n\t\t\t\t\t\tif (plugin.loadInclude && !plugin.loadInclude(id)) continue;\n\t\t\t\t\t\tif (!filter(id)) continue;\n\t\t\t\t\t\tconst { mixedContext, errors, warnings } = createPluginContext$1(context);\n\t\t\t\t\t\tconst result = await handler.call(mixedContext, id);\n\t\t\t\t\t\tfor (const warning of warnings) console.warn(\"[unplugin]\", typeof warning === \"string\" ? warning : warning.message);\n\t\t\t\t\t\tif (errors.length > 0) {\n\t\t\t\t\t\t\tconst errorMessage = errors.map((e) => typeof e === \"string\" ? e : e.message).join(\"\\n\");\n\t\t\t\t\t\t\tthrow new Error(`[unplugin] ${plugin.name}: ${errorMessage}`);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (typeof result === \"string\") {\n\t\t\t\t\t\t\tcode = result;\n\t\t\t\t\t\t\thasResult = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t} else if (typeof result === \"object\" && result !== null) {\n\t\t\t\t\t\t\tcode = result.code;\n\t\t\t\t\t\t\thasResult = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!hasResult && namespace === \"file\" && transformHooks.length > 0) code = await Bun.file(id).text();\n\t\t\t\t\tif (code !== void 0) {\n\t\t\t\t\t\tconst namespaceTransformHooks = namespace === \"file\" ? transformHooks : transformHooks.filter((h) => h.plugin.name === namespace);\n\t\t\t\t\t\tfor (const { plugin, handler, filter } of namespaceTransformHooks) {\n\t\t\t\t\t\t\tif (plugin.transformInclude && !plugin.transformInclude(id)) continue;\n\t\t\t\t\t\t\tif (!filter(id, code)) continue;\n\t\t\t\t\t\t\tconst { mixedContext, errors, warnings } = createPluginContext$1(context);\n\t\t\t\t\t\t\tconst result = await handler.call(mixedContext, code, id);\n\t\t\t\t\t\t\tfor (const warning of warnings) console.warn(\"[unplugin]\", typeof warning === \"string\" ? warning : warning.message);\n\t\t\t\t\t\t\tif (errors.length > 0) {\n\t\t\t\t\t\t\t\tconst errorMessage = errors.map((e) => typeof e === \"string\" ? e : e.message).join(\"\\n\");\n\t\t\t\t\t\t\t\tthrow new Error(`[unplugin] ${plugin.name}: ${errorMessage}`);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (typeof result === \"string\") {\n\t\t\t\t\t\t\t\tcode = result;\n\t\t\t\t\t\t\t\thasResult = true;\n\t\t\t\t\t\t\t} else if (typeof result === \"object\" && result !== null) {\n\t\t\t\t\t\t\t\tcode = result.code;\n\t\t\t\t\t\t\t\thasResult = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (hasResult && code !== void 0) return {\n\t\t\t\t\t\tcontents: code,\n\t\t\t\t\t\tloader: loader ?? guessLoader$1(id)\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (loadHooks.length || transformHooks.length) build.onLoad({\n\t\t\t\t\tfilter: /.*/,\n\t\t\t\t\tnamespace: \"file\"\n\t\t\t\t}, async (args) => {\n\t\t\t\t\treturn processLoadTransform(args.path, \"file\", args.loader);\n\t\t\t\t});\n\t\t\t\tfor (const pluginName of virtualModulePlugins) build.onLoad({\n\t\t\t\t\tfilter: /.*/,\n\t\t\t\t\tnamespace: pluginName\n\t\t\t\t}, async (args) => {\n\t\t\t\t\treturn processLoadTransform(args.path, pluginName, args.loader);\n\t\t\t\t});\n\t\t\t\tif (plugins.some((plugin) => plugin.buildEnd || plugin.writeBundle)) build.onEnd(async () => {\n\t\t\t\t\tfor (const plugin of plugins) {\n\t\t\t\t\t\tif (plugin.buildEnd) await plugin.buildEnd.call(context);\n\t\t\t\t\t\tif (plugin.writeBundle) await plugin.writeBundle();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t};\n}\n\n//#endregion\n//#region src/esbuild/utils.ts\nconst ExtToLoader = {\n\t\".js\": \"js\",\n\t\".mjs\": \"js\",\n\t\".cjs\": \"js\",\n\t\".jsx\": \"jsx\",\n\t\".ts\": \"ts\",\n\t\".cts\": \"ts\",\n\t\".mts\": \"ts\",\n\t\".tsx\": \"tsx\",\n\t\".css\": \"css\",\n\t\".less\": \"css\",\n\t\".stylus\": \"css\",\n\t\".scss\": \"css\",\n\t\".sass\": \"css\",\n\t\".json\": \"json\",\n\t\".txt\": \"text\"\n};\nfunction guessLoader(code, id) {\n\treturn ExtToLoader[path.extname(id).toLowerCase()] || \"js\";\n}\nfunction unwrapLoader(loader, code, id) {\n\tif (typeof loader === \"function\") return loader(code, id);\n\treturn loader;\n}\nfunction fixSourceMap(map) {\n\tif (!Object.prototype.hasOwnProperty.call(map, \"toString\")) Object.defineProperty(map, \"toString\", {\n\t\tenumerable: false,\n\t\tvalue: function toString() {\n\t\t\treturn JSON.stringify(this);\n\t\t}\n\t});\n\tif (!Object.prototype.hasOwnProperty.call(map, \"toUrl\")) Object.defineProperty(map, \"toUrl\", {\n\t\tenumerable: false,\n\t\tvalue: function toUrl() {\n\t\t\treturn `data:application/json;charset=utf-8;base64,${Buffer$1.from(this.toString()).toString(\"base64\")}`;\n\t\t}\n\t});\n\treturn map;\n}\nconst nullSourceMap = {\n\tnames: [],\n\tsources: [],\n\tmappings: \"\",\n\tversion: 3\n};\nfunction combineSourcemaps(filename, sourcemapList) {\n\tsourcemapList = sourcemapList.filter((m) => m.sources);\n\tif (sourcemapList.length === 0 || sourcemapList.every((m) => m.sources.length === 0)) return { ...nullSourceMap };\n\tlet map;\n\tlet mapIndex = 1;\n\tif (sourcemapList.slice(0, -1).find((m) => m.sources.length !== 1) === void 0) map = remapping(sourcemapList, () => null, true);\n\telse map = remapping(sourcemapList[0], (sourcefile) => {\n\t\tif (sourcefile === filename && sourcemapList[mapIndex]) return sourcemapList[mapIndex++];\n\t\telse return { ...nullSourceMap };\n\t}, true);\n\tif (!map.file) delete map.file;\n\treturn map;\n}\nfunction createBuildContext(build) {\n\tconst watchFiles = [];\n\tconst { initialOptions } = build;\n\treturn {\n\t\tparse,\n\t\taddWatchFile() {\n\t\t\tthrow new Error(\"unplugin/esbuild: addWatchFile outside supported hooks (resolveId, load, transform)\");\n\t\t},\n\t\temitFile(emittedFile) {\n\t\t\tconst outFileName = emittedFile.fileName || emittedFile.name;\n\t\t\tif (initialOptions.outdir && emittedFile.source && outFileName) {\n\t\t\t\tconst outPath = path.resolve(initialOptions.outdir, outFileName);\n\t\t\t\tconst outDir = path.dirname(outPath);\n\t\t\t\tif (!fs.existsSync(outDir)) fs.mkdirSync(outDir, { recursive: true });\n\t\t\t\tfs.writeFileSync(outPath, emittedFile.source);\n\t\t\t}\n\t\t},\n\t\tgetWatchFiles() {\n\t\t\treturn watchFiles;\n\t\t},\n\t\tgetNativeBuildContext() {\n\t\t\treturn {\n\t\t\t\tframework: \"esbuild\",\n\t\t\t\tbuild\n\t\t\t};\n\t\t}\n\t};\n}\nfunction createPluginContext(context) {\n\tconst errors = [];\n\tconst warnings = [];\n\tconst pluginContext = {\n\t\terror(message) {\n\t\t\terrors.push(normalizeMessage(message));\n\t\t},\n\t\twarn(message) {\n\t\t\twarnings.push(normalizeMessage(message));\n\t\t}\n\t};\n\treturn {\n\t\terrors,\n\t\twarnings,\n\t\tmixedContext: {\n\t\t\t...context,\n\t\t\t...pluginContext,\n\t\t\taddWatchFile(id) {\n\t\t\t\tcontext.getWatchFiles().push(id);\n\t\t\t}\n\t\t}\n\t};\n}\nfunction normalizeMessage(message) {\n\tif (typeof message === \"string\") message = { message };\n\treturn {\n\t\tid: message.id,\n\t\tpluginName: message.plugin,\n\t\ttext: message.message,\n\t\tlocation: message.loc ? {\n\t\t\tfile: message.loc.file,\n\t\t\tline: message.loc.line,\n\t\t\tcolumn: message.loc.column\n\t\t} : null,\n\t\tdetail: message.meta,\n\t\tnotes: []\n\t};\n}\nfunction processCodeWithSourceMap(map, code) {\n\tif (map) {\n\t\tif (!map.sourcesContent || map.sourcesContent.length === 0) map.sourcesContent = [code];\n\t\tmap = fixSourceMap(map);\n\t\tcode += `\\n//# sourceMappingURL=${map.toUrl()}`;\n\t}\n\treturn code;\n}\n\n//#endregion\n//#region src/esbuild/index.ts\nfunction getEsbuildPlugin(factory) {\n\treturn (userOptions) => {\n\t\tconst meta = { framework: \"esbuild\" };\n\t\tconst plugins = toArray(factory(userOptions, meta));\n\t\tconst setupPlugins = async (build) => {\n\t\t\tconst setup = buildSetup();\n\t\t\tconst loaders = [];\n\t\t\tfor (const plugin of plugins) {\n\t\t\t\tconst loader = {};\n\t\t\t\tawait setup(plugin)({\n\t\t\t\t\t...build,\n\t\t\t\t\tonLoad(_options, callback) {\n\t\t\t\t\t\tloader.options = _options;\n\t\t\t\t\t\tloader.onLoadCb = callback;\n\t\t\t\t\t},\n\t\t\t\t\tonTransform(_options, callback) {\n\t\t\t\t\t\tloader.options ||= _options;\n\t\t\t\t\t\tloader.onTransformCb = callback;\n\t\t\t\t\t}\n\t\t\t\t}, build);\n\t\t\t\tif (loader.onLoadCb || loader.onTransformCb) loaders.push(loader);\n\t\t\t}\n\t\t\tif (loaders.length) build.onLoad(loaders.length === 1 ? loaders[0].options : { filter: /.*/ }, async (args) => {\n\t\t\t\tfunction checkFilter(options) {\n\t\t\t\t\treturn loaders.length === 1 || !options?.filter || options.filter.test(args.path);\n\t\t\t\t}\n\t\t\t\tlet result;\n\t\t\t\tfor (const { options, onLoadCb } of loaders) {\n\t\t\t\t\tif (!checkFilter(options)) continue;\n\t\t\t\t\tif (onLoadCb) result = await onLoadCb(args);\n\t\t\t\t\tif (result?.contents) break;\n\t\t\t\t}\n\t\t\t\tlet fsContentsCache;\n\t\t\t\tfor (const { options, onTransformCb } of loaders) {\n\t\t\t\t\tif (!checkFilter(options)) continue;\n\t\t\t\t\tif (onTransformCb) {\n\t\t\t\t\t\tconst _result = await onTransformCb({\n\t\t\t\t\t\t\t...result,\n\t\t\t\t\t\t\t...args,\n\t\t\t\t\t\t\tasync getContents() {\n\t\t\t\t\t\t\t\tif (result?.contents) return result.contents;\n\t\t\t\t\t\t\t\tif (fsContentsCache) return fsContentsCache;\n\t\t\t\t\t\t\t\treturn fsContentsCache = await fs.promises.readFile(args.path, \"utf8\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (_result?.contents) result = _result;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (result?.contents) return result;\n\t\t\t});\n\t\t};\n\t\treturn {\n\t\t\tname: (plugins.length === 1 ? plugins[0].name : meta.esbuildHostName) ?? `unplugin-host:${plugins.map((p) => p.name).join(\":\")}`,\n\t\t\tsetup: setupPlugins\n\t\t};\n\t};\n}\nfunction buildSetup() {\n\treturn (plugin) => {\n\t\treturn (build, rawBuild) => {\n\t\t\tconst context = createBuildContext(rawBuild);\n\t\t\tconst { onStart, onEnd, onResolve, onLoad, onTransform, initialOptions } = build;\n\t\t\tconst onResolveFilter = plugin.esbuild?.onResolveFilter ?? /.*/;\n\t\t\tconst onLoadFilter = plugin.esbuild?.onLoadFilter ?? /.*/;\n\t\t\tconst loader = plugin.esbuild?.loader ?? guessLoader;\n\t\t\tplugin.esbuild?.config?.call(context, initialOptions);\n\t\t\tif (plugin.buildStart) onStart(() => plugin.buildStart.call(context));\n\t\t\tif (plugin.buildEnd || plugin.writeBundle) onEnd(async () => {\n\t\t\t\tif (plugin.buildEnd) await plugin.buildEnd.call(context);\n\t\t\t\tif (plugin.writeBundle) await plugin.writeBundle();\n\t\t\t});\n\t\t\tif (plugin.resolveId) onResolve({ filter: onResolveFilter }, async (args) => {\n\t\t\t\tconst id = args.path;\n\t\t\t\tif (initialOptions.external?.includes(id)) return;\n\t\t\t\tconst { handler, filter } = normalizeObjectHook(\"resolveId\", plugin.resolveId);\n\t\t\t\tif (!filter(id)) return;\n\t\t\t\tconst { errors, warnings, mixedContext } = createPluginContext(context);\n\t\t\t\tconst isEntry = args.kind === \"entry-point\";\n\t\t\t\tconst result = await handler.call(mixedContext, id, isEntry ? void 0 : args.importer, { isEntry });\n\t\t\t\tif (typeof result === \"string\") return {\n\t\t\t\t\tpath: result,\n\t\t\t\t\tnamespace: plugin.name,\n\t\t\t\t\terrors,\n\t\t\t\t\twarnings,\n\t\t\t\t\twatchFiles: mixedContext.getWatchFiles()\n\t\t\t\t};\n\t\t\t\telse if (typeof result === \"object\" && result !== null) return {\n\t\t\t\t\tpath: result.id,\n\t\t\t\t\texternal: result.external,\n\t\t\t\t\tnamespace: plugin.name,\n\t\t\t\t\terrors,\n\t\t\t\t\twarnings,\n\t\t\t\t\twatchFiles: mixedContext.getWatchFiles()\n\t\t\t\t};\n\t\t\t});\n\t\t\tif (plugin.load) onLoad({ filter: onLoadFilter }, async (args) => {\n\t\t\t\tconst { handler, filter } = normalizeObjectHook(\"load\", plugin.load);\n\t\t\t\tconst id = args.path + (args.suffix || \"\");\n\t\t\t\tif (plugin.loadInclude && !plugin.loadInclude(id)) return;\n\t\t\t\tif (!filter(id)) return;\n\t\t\t\tconst { errors, warnings, mixedContext } = createPluginContext(context);\n\t\t\t\tlet code;\n\t\t\t\tlet map;\n\t\t\t\tconst result = await handler.call(mixedContext, id);\n\t\t\t\tif (typeof result === \"string\") code = result;\n\t\t\t\telse if (typeof result === \"object\" && result !== null) {\n\t\t\t\t\tcode = result.code;\n\t\t\t\t\tmap = result.map;\n\t\t\t\t}\n\t\t\t\tif (code === void 0) return null;\n\t\t\t\tif (map) code = processCodeWithSourceMap(map, code);\n\t\t\t\tconst resolveDir = path.dirname(args.path);\n\t\t\t\treturn {\n\t\t\t\t\tcontents: code,\n\t\t\t\t\terrors,\n\t\t\t\t\twarnings,\n\t\t\t\t\twatchFiles: mixedContext.getWatchFiles(),\n\t\t\t\t\tloader: unwrapLoader(loader, code, args.path),\n\t\t\t\t\tresolveDir\n\t\t\t\t};\n\t\t\t});\n\t\t\tif (plugin.transform) onTransform({ filter: onLoadFilter }, async (args) => {\n\t\t\t\tconst { handler, filter } = normalizeObjectHook(\"transform\", plugin.transform);\n\t\t\t\tconst id = args.path + (args.suffix || \"\");\n\t\t\t\tif (plugin.transformInclude && !plugin.transformInclude(id)) return;\n\t\t\t\tlet code = await args.getContents();\n\t\t\t\tif (!filter(id, code)) return;\n\t\t\t\tconst { mixedContext, errors, warnings } = createPluginContext(context);\n\t\t\t\tconst resolveDir = path.dirname(args.path);\n\t\t\t\tlet map;\n\t\t\t\tconst result = await handler.call(mixedContext, code, id);\n\t\t\t\tif (typeof result === \"string\") code = result;\n\t\t\t\telse if (typeof result === \"object\" && result !== null) {\n\t\t\t\t\tcode = result.code;\n\t\t\t\t\tif (map && result.map) map = combineSourcemaps(args.path, [result.map === \"string\" ? JSON.parse(result.map) : result.map, map]);\n\t\t\t\t\telse if (typeof result.map === \"string\") map = JSON.parse(result.map);\n\t\t\t\t\telse map = result.map;\n\t\t\t\t}\n\t\t\t\tif (code) {\n\t\t\t\t\tif (map) code = processCodeWithSourceMap(map, code);\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcontents: code,\n\t\t\t\t\t\terrors,\n\t\t\t\t\t\twarnings,\n\t\t\t\t\t\twatchFiles: mixedContext.getWatchFiles(),\n\t\t\t\t\t\tloader: unwrapLoader(loader, code, args.path),\n\t\t\t\t\t\tresolveDir\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (plugin.esbuild?.setup) return plugin.esbuild.setup(rawBuild);\n\t\t};\n\t};\n}\n\n//#endregion\n//#region src/farm/context.ts\nfunction createFarmContext(context, currentResolveId) {\n\treturn {\n\t\tparse,\n\t\taddWatchFile(id) {\n\t\t\tcontext.addWatchFile(id, currentResolveId || id);\n\t\t},\n\t\temitFile(emittedFile) {\n\t\t\tconst outFileName = emittedFile.fileName || emittedFile.name;\n\t\t\tif (emittedFile.source && outFileName) context.emitFile({\n\t\t\t\tresolvedPath: outFileName,\n\t\t\t\tname: outFileName,\n\t\t\t\tcontent: [...Buffer$1.from(emittedFile.source)],\n\t\t\t\tresourceType: extname(outFileName)\n\t\t\t});\n\t\t},\n\t\tgetWatchFiles() {\n\t\t\treturn context.getWatchFiles();\n\t\t},\n\t\tgetNativeBuildContext() {\n\t\t\treturn {\n\t\t\t\tframework: \"farm\",\n\t\t\t\tcontext\n\t\t\t};\n\t\t}\n\t};\n}\nfunction unpluginContext(context) {\n\treturn {\n\t\terror: (error) => context.error(typeof error === \"string\" ? new Error(error) : error),\n\t\twarn: (error) => context.warn(typeof error === \"string\" ? new Error(error) : error)\n\t};\n}\n\n//#endregion\n//#region src/farm/utils.ts\nfunction convertEnforceToPriority(value) {\n\tconst defaultPriority = 100;\n\tconst enforceToPriority = {\n\t\tpre: 102,\n\t\tpost: 98\n\t};\n\treturn enforceToPriority[value] !== void 0 ? enforceToPriority[value] : defaultPriority;\n}\nfunction convertWatchEventChange(value) {\n\treturn {\n\t\tAdded: \"create\",\n\t\tUpdated: \"update\",\n\t\tRemoved: \"delete\"\n\t}[value];\n}\nfunction isString(variable) {\n\treturn typeof variable === \"string\";\n}\nfunction isObject(variable) {\n\treturn typeof variable === \"object\" && variable !== null;\n}\nfunction customParseQueryString(url) {\n\tif (!url) return [];\n\tconst queryString = url.split(\"?\")[1];\n\tconst parsedParams = querystring.parse(queryString);\n\tconst paramsArray = [];\n\tfor (const key in parsedParams) paramsArray.push([key, parsedParams[key]]);\n\treturn paramsArray;\n}\nfunction encodeStr(str) {\n\tconst len = str.length;\n\tif (len === 0) return str;\n\tconst firstNullIndex = str.indexOf(\"\\0\");\n\tif (firstNullIndex === -1) return str;\n\tconst result = Array.from({ length: len + countNulls(str, firstNullIndex) });\n\tlet pos = 0;\n\tfor (let i = 0; i < firstNullIndex; i++) result[pos++] = str[i];\n\tfor (let i = firstNullIndex; i < len; i++) {\n\t\tconst char = str[i];\n\t\tif (char === \"\\0\") {\n\t\t\tresult[pos++] = \"\\\\\";\n\t\t\tresult[pos++] = \"0\";\n\t\t} else result[pos++] = char;\n\t}\n\treturn path.posix.normalize(result.join(\"\"));\n}\nfunction decodeStr(str) {\n\tconst len = str.length;\n\tif (len === 0) return str;\n\tconst firstIndex = str.indexOf(\"\\\\0\");\n\tif (firstIndex === -1) return str;\n\tconst result = Array.from({ length: len - countBackslashZeros(str, firstIndex) });\n\tlet pos = 0;\n\tfor (let i = 0; i < firstIndex; i++) result[pos++] = str[i];\n\tlet i = firstIndex;\n\twhile (i < len) if (str[i] === \"\\\\\" && str[i + 1] === \"0\") {\n\t\tresult[pos++] = \"\\0\";\n\t\ti += 2;\n\t} else result[pos++] = str[i++];\n\treturn path.posix.normalize(result.join(\"\"));\n}\nfunction getContentValue(content) {\n\tif (content === null || content === void 0) throw new Error(\"Content cannot be null or undefined\");\n\treturn encodeStr(typeof content === \"string\" ? content : content.code || \"\");\n}\nfunction countNulls(str, startIndex) {\n\tlet count = 0;\n\tconst len = str.length;\n\tfor (let i = startIndex; i < len; i++) if (str[i] === \"\\0\") count++;\n\treturn count;\n}\nfunction countBackslashZeros(str, startIndex) {\n\tlet count = 0;\n\tconst len = str.length;\n\tfor (let i = startIndex; i < len - 1; i++) if (str[i] === \"\\\\\" && str[i + 1] === \"0\") {\n\t\tcount++;\n\t\ti++;\n\t}\n\treturn count;\n}\nfunction removeQuery(pathe) {\n\tconst queryIndex = pathe.indexOf(\"?\");\n\tif (queryIndex !== -1) return path.posix.normalize(pathe.slice(0, queryIndex));\n\treturn path.posix.normalize(pathe);\n}\nfunction isStartsWithSlash(str) {\n\treturn str?.startsWith(\"/\");\n}\nfunction appendQuery(id, query) {\n\tif (!query.length) return id;\n\treturn `${id}?${stringifyQuery(query)}`;\n}\nfunction stringifyQuery(query) {\n\tif (!query.length) return \"\";\n\tlet queryStr = \"\";\n\tfor (const [key, value] of query) queryStr += `${key}${value ? `=${value}` : \"\"}&`;\n\treturn `${queryStr.slice(0, -1)}`;\n}\nconst CSS_LANGS_RES = [\n\t[/\\.(less)(?:$|\\?)/, \"less\"],\n\t[/\\.(scss|sass)(?:$|\\?)/, \"sass\"],\n\t[/\\.(styl|stylus)(?:$|\\?)/, \"stylus\"],\n\t[/\\.(css)(?:$|\\?)/, \"css\"]\n];\nconst JS_LANGS_RES = [\n\t[/\\.(js|mjs|cjs)(?:$|\\?)/, \"js\"],\n\t[/\\.(jsx)(?:$|\\?)/, \"jsx\"],\n\t[/\\.(ts|cts|mts)(?:$|\\?)/, \"ts\"],\n\t[/\\.(tsx)(?:$|\\?)/, \"tsx\"]\n];\nfunction getCssModuleType(id) {\n\tfor (const [reg, lang] of CSS_LANGS_RES) if (reg.test(id)) return lang;\n\treturn null;\n}\nfunction getJsModuleType(id) {\n\tfor (const [reg, lang] of JS_LANGS_RES) if (reg.test(id)) return lang;\n\treturn null;\n}\nfunction formatLoadModuleType(id) {\n\tconst cssModuleType = getCssModuleType(id);\n\tif (cssModuleType) return cssModuleType;\n\tconst jsModuleType = getJsModuleType(id);\n\tif (jsModuleType) return jsModuleType;\n\treturn \"js\";\n}\nfunction formatTransformModuleType(id) {\n\treturn formatLoadModuleType(id);\n}\n\n//#endregion\n//#region src/farm/index.ts\nfunction getFarmPlugin(factory) {\n\treturn ((userOptions) => {\n\t\tconst plugins = toArray(factory(userOptions, { framework: \"farm\" })).map((rawPlugin) => {\n\t\t\tconst plugin = toFarmPlugin(rawPlugin, userOptions);\n\t\t\tif (rawPlugin.farm) Object.assign(plugin, rawPlugin.farm);\n\t\t\treturn plugin;\n\t\t});\n\t\treturn plugins.length === 1 ? plugins[0] : plugins;\n\t});\n}\nfunction toFarmPlugin(plugin, options) {\n\tconst farmPlugin = {\n\t\tname: plugin.name,\n\t\tpriority: convertEnforceToPriority(plugin.enforce)\n\t};\n\tif (plugin.farm) Object.keys(plugin.farm).forEach((key) => {\n\t\tconst value = plugin.farm[key];\n\t\tif (value) Reflect.set(farmPlugin, key, value);\n\t});\n\tif (plugin.buildStart) {\n\t\tconst _buildStart = plugin.buildStart;\n\t\tfarmPlugin.buildStart = { async executor(_, context) {\n\t\t\tawait _buildStart.call(createFarmContext(context));\n\t\t} };\n\t}\n\tif (plugin.resolveId) {\n\t\tconst _resolveId = plugin.resolveId;\n\t\tlet filters = [];\n\t\tif (options) filters = options?.filters ?? [];\n\t\tfarmPlugin.resolve = {\n\t\t\tfilters: {\n\t\t\t\tsources: filters.length ? filters : [\".*\"],\n\t\t\t\timporters: [\".*\"]\n\t\t\t},\n\t\t\tasync executor(params, context) {\n\t\t\t\tconst resolvedIdPath = path.resolve(params.importer ?? \"\");\n\t\t\t\tconst id = decodeStr(params.source);\n\t\t\t\tconst { handler, filter } = normalizeObjectHook(\"resolveId\", _resolveId);\n\t\t\t\tif (!filter(id)) return null;\n\t\t\t\tlet isEntry = false;\n\t\t\t\tif (isObject(params.kind) && \"entry\" in params.kind) isEntry = params.kind.entry === \"index\";\n\t\t\t\tconst farmContext = createFarmContext(context, resolvedIdPath);\n\t\t\t\tconst resolveIdResult = await handler.call(Object.assign(unpluginContext(context), farmContext), id, resolvedIdPath ?? null, { isEntry });\n\t\t\t\tif (isString(resolveIdResult)) return {\n\t\t\t\t\tresolvedPath: removeQuery(encodeStr(resolveIdResult)),\n\t\t\t\t\tquery: customParseQueryString(resolveIdResult),\n\t\t\t\t\tsideEffects: true,\n\t\t\t\t\texternal: false,\n\t\t\t\t\tmeta: {}\n\t\t\t\t};\n\t\t\t\tif (isObject(resolveIdResult)) return {\n\t\t\t\t\tresolvedPath: removeQuery(encodeStr(resolveIdResult?.id)),\n\t\t\t\t\tquery: customParseQueryString(resolveIdResult?.id),\n\t\t\t\t\tsideEffects: false,\n\t\t\t\t\texternal: Boolean(resolveIdResult?.external),\n\t\t\t\t\tmeta: {}\n\t\t\t\t};\n\t\t\t\tif (!isStartsWithSlash(params.source)) return null;\n\t\t\t}\n\t\t};\n\t}\n\tif (plugin.load) {\n\t\tconst _load = plugin.load;\n\t\tfarmPlugin.load = {\n\t\t\tfilters: { resolvedPaths: [\".*\"] },\n\t\t\tasync executor(params, context) {\n\t\t\t\tconst id = appendQuery(decodeStr(params.resolvedPath), params.query);\n\t\t\t\tconst loader = formatTransformModuleType(id);\n\t\t\t\tif (plugin.loadInclude && !plugin.loadInclude?.(id)) return null;\n\t\t\t\tconst { handler, filter } = normalizeObjectHook(\"load\", _load);\n\t\t\t\tif (!filter(id)) return null;\n\t\t\t\tconst farmContext = createFarmContext(context, id);\n\t\t\t\treturn {\n\t\t\t\t\tcontent: getContentValue(await handler.call(Object.assign(unpluginContext(context), farmContext), id)),\n\t\t\t\t\tmoduleType: loader\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t}\n\tif (plugin.transform) {\n\t\tconst _transform = plugin.transform;\n\t\tfarmPlugin.transform = {\n\t\t\tfilters: {\n\t\t\t\tresolvedPaths: [\".*\"],\n\t\t\t\tmoduleTypes: [\".*\"]\n\t\t\t},\n\t\t\tasync executor(params, context) {\n\t\t\t\tconst id = appendQuery(decodeStr(params.resolvedPath), params.query);\n\t\t\t\tconst loader = formatTransformModuleType(id);\n\t\t\t\tif (plugin.transformInclude && !plugin.transformInclude(id)) return null;\n\t\t\t\tconst { handler, filter } = normalizeObjectHook(\"transform\", _transform);\n\t\t\t\tif (!filter(id, params.content)) return null;\n\t\t\t\tconst farmContext = createFarmContext(context, id);\n\t\t\t\tconst resource = await handler.call(Object.assign(unpluginContext(context), farmContext), params.content, id);\n\t\t\t\tif (resource && typeof resource !== \"string\") return {\n\t\t\t\t\tcontent: getContentValue(resource),\n\t\t\t\t\tmoduleType: loader,\n\t\t\t\t\tsourceMap: typeof resource.map === \"object\" && resource.map !== null ? JSON.stringify(resource.map) : void 0\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t}\n\tif (plugin.watchChange) {\n\t\tconst _watchChange = plugin.watchChange;\n\t\tfarmPlugin.updateModules = { async executor(param, context) {\n\t\t\tconst updatePathContent = param.paths[0];\n\t\t\tconst ModifiedPath = updatePathContent[0];\n\t\t\tconst eventChange = convertWatchEventChange(updatePathContent[1]);\n\t\t\tawait _watchChange.call(createFarmContext(context), ModifiedPath, { event: eventChange });\n\t\t} };\n\t}\n\tif (plugin.buildEnd) {\n\t\tconst _buildEnd = plugin.buildEnd;\n\t\tfarmPlugin.buildEnd = { async executor(_, context) {\n\t\t\tawait _buildEnd.call(createFarmContext(context));\n\t\t} };\n\t}\n\tif (plugin.writeBundle) {\n\t\tconst _writeBundle = plugin.writeBundle;\n\t\tfarmPlugin.finish = { async executor() {\n\t\t\tawait _writeBundle();\n\t\t} };\n\t}\n\treturn farmPlugin;\n}\n\n//#endregion\n//#region src/rollup/index.ts\nfunction getRollupPlugin(factory) {\n\treturn ((userOptions) => {\n\t\tconst plugins = toArray(factory(userOptions, { framework: \"rollup\" })).map((plugin) => toRollupPlugin(plugin, \"rollup\"));\n\t\treturn plugins.length === 1 ? plugins[0] : plugins;\n\t});\n}\nfunction toRollupPlugin(plugin, key) {\n\tconst nativeFilter = key === \"rolldown\";\n\tif (plugin.resolveId && !nativeFilter && typeof plugin.resolveId === \"object\" && plugin.resolveId.filter) {\n\t\tconst resolveIdHook = plugin.resolveId;\n\t\tconst { handler, filter } = normalizeObjectHook(\"load\", resolveIdHook);\n\t\treplaceHookHandler(\"resolveId\", resolveIdHook, function(...args) {\n\t\t\tconst [id] = args;\n\t\t\tif (!supportNativeFilter(this, key) && !filter(id)) return;\n\t\t\treturn handler.apply(this, args);\n\t\t});\n\t}\n\tif (plugin.load && (plugin.loadInclude || !nativeFilter && typeof plugin.load === \"object\" && plugin.load.filter)) {\n\t\tconst loadHook = plugin.load;\n\t\tconst { handler, filter } = normalizeObjectHook(\"load\", loadHook);\n\t\treplaceHookHandler(\"load\", loadHook, function(...args) {\n\t\t\tconst [id] = args;\n\t\t\tif (plugin.loadInclude && !plugin.loadInclude(id)) return;\n\t\t\tif (!supportNativeFilter(this, key) && !filter(id)) return;\n\t\t\treturn handler.apply(this, args);\n\t\t});\n\t}\n\tif (plugin.transform && (plugin.transformInclude || !nativeFilter && typeof plugin.transform === \"object\" && plugin.transform.filter)) {\n\t\tconst transformHook = plugin.transform;\n\t\tconst { handler, filter } = normalizeObjectHook(\"transform\", transformHook);\n\t\treplaceHookHandler(\"transform\", transformHook, function(...args) {\n\t\t\tconst [code, id] = args;\n\t\t\tif (plugin.transformInclude && !plugin.transformInclude(id)) return;\n\t\t\tif (!supportNativeFilter(this, key) && !filter(id, code)) return;\n\t\t\treturn handler.apply(this, args);\n\t\t});\n\t}\n\tif (plugin[key]) Object.assign(plugin, plugin[key]);\n\treturn plugin;\n\tfunction replaceHookHandler(name, hook, handler) {\n\t\tif (typeof hook === \"function\") plugin[name] = handler;\n\t\telse hook.handler = handler;\n\t}\n}\nfunction supportNativeFilter(context, framework) {\n\tif (framework === \"vite\") return !!context?.meta?.viteVersion;\n\tif (framework === \"rolldown\") return true;\n\tconst rollupVersion = context?.meta?.rollupVersion;\n\tif (!rollupVersion) return false;\n\tconst [major, minor] = rollupVersion.split(\".\");\n\treturn Number(major) > 4 || Number(major) === 4 && Number(minor) >= 40;\n}\n\n//#endregion\n//#region src/rolldown/index.ts\nfunction getRolldownPlugin(factory) {\n\treturn ((userOptions) => {\n\t\tconst plugins = toArray(factory(userOptions, { framework: \"rolldown\" })).map((rawPlugin) => {\n\t\t\treturn toRollupPlugin(rawPlugin, \"rolldown\");\n\t\t});\n\t\treturn plugins.length === 1 ? plugins[0] : plugins;\n\t});\n}\n\n//#endregion\n//#region src/rspack/index.ts\nconst TRANSFORM_LOADER$1 = resolve(import.meta.dirname, \"rspack/loaders/transform.mjs\");\nconst LOAD_LOADER$1 = resolve(import.meta.dirname, \"rspack/loaders/load.mjs\");\nfunction getRspackPlugin(factory) {\n\treturn (userOptions) => {\n\t\treturn { apply(compiler) {\n\t\t\tconst VIRTUAL_MODULE_PREFIX = resolve(compiler.options.context ?? process.cwd(), \"node_modules/.virtual\", compiler.rspack.experiments.VirtualModulesPlugin ? \"\" : process.pid.toString());\n\t\t\tconst meta = {\n\t\t\t\tframework: \"rspack\",\n\t\t\t\trspack: { compiler }\n\t\t\t};\n\t\t\tconst rawPlugins = toArray(factory(userOptions, meta));\n\t\t\tfor (const rawPlugin of rawPlugins) {\n\t\t\t\tconst plugin = Object.assign(rawPlugin, {\n\t\t\t\t\t__unpluginMeta: meta,\n\t\t\t\t\t__virtualModulePrefix: VIRTUAL_MODULE_PREFIX\n\t\t\t\t});\n\t\t\t\tconst externalModules = /* @__PURE__ */ new Set();\n\t\t\t\tif (plugin.resolveId) {\n\t\t\t\t\tconst createPlugin = (plugin) => {\n\t\t\t\t\t\tif (compiler.rspack.experiments.VirtualModulesPlugin) return new compiler.rspack.experiments.VirtualModulesPlugin();\n\t\t\t\t\t\treturn new FakeVirtualModulesPlugin(plugin);\n\t\t\t\t\t};\n\t\t\t\t\tconst vfs = createPlugin(plugin);\n\t\t\t\t\tvfs.apply(compiler);\n\t\t\t\t\tconst vfsModules = /* @__PURE__ */ new Map();\n\t\t\t\t\tplugin.__vfsModules = vfsModules;\n\t\t\t\t\tplugin.__vfs = vfs;\n\t\t\t\t\tcompiler.hooks.compilation.tap(plugin.name, (compilation, { normalModuleFactory }) => {\n\t\t\t\t\t\tnormalModuleFactory.hooks.resolve.tapPromise(plugin.name, async (resolveData) => {\n\t\t\t\t\t\t\tconst id = normalizeAbsolutePath(resolveData.request);\n\t\t\t\t\t\t\tconst requestContext = resolveData.contextInfo;\n\t\t\t\t\t\t\tlet importer = requestContext.issuer !== \"\" ? requestContext.issuer : void 0;\n\t\t\t\t\t\t\tconst isEntry = requestContext.issuer === \"\";\n\t\t\t\t\t\t\tif (importer?.startsWith(plugin.__virtualModulePrefix)) importer = decodeURIComponent(importer.slice(plugin.__virtualModulePrefix.length));\n\t\t\t\t\t\t\tconst context = createBuildContext$2(compiler, compilation);\n\t\t\t\t\t\t\tlet error;\n\t\t\t\t\t\t\tconst pluginContext = {\n\t\t\t\t\t\t\t\terror(msg) {\n\t\t\t\t\t\t\t\t\tif (error == null) error = normalizeMessage$1(msg);\n\t\t\t\t\t\t\t\t\telse console.error(`unplugin/rspack: multiple errors returned from resolveId hook: ${msg}`);\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\twarn(msg) {\n\t\t\t\t\t\t\t\t\tconsole.warn(`unplugin/rspack: warning from resolveId hook: ${msg}`);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tconst { handler, filter } = normalizeObjectHook(\"resolveId\", plugin.resolveId);\n\t\t\t\t\t\t\tif (!filter(id)) return;\n\t\t\t\t\t\t\tconst resolveIdResult = await handler.call({\n\t\t\t\t\t\t\t\t...context,\n\t\t\t\t\t\t\t\t...pluginContext\n\t\t\t\t\t\t\t}, id, importer, { isEntry });\n\t\t\t\t\t\t\tif (error != null) throw error;\n\t\t\t\t\t\t\tif (resolveIdResult == null) return;\n\t\t\t\t\t\t\tlet resolved = typeof resolveIdResult === \"string\" ? resolveIdResult : resolveIdResult.id;\n\t\t\t\t\t\t\tif (typeof resolveIdResult === \"string\" ? false : resolveIdResult.external === true) externalModules.add(resolved);\n\t\t\t\t\t\t\tlet isVirtual = true;\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t(compiler.inputFileSystem?.statSync ?? fs.statSync)(resolved);\n\t\t\t\t\t\t\t\tisVirtual = false;\n\t\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t\tisVirtual = !isVirtualModuleId(resolved, plugin);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (isVirtual) {\n\t\t\t\t\t\t\t\tconst encodedVirtualPath = encodeVirtualModuleId(resolved, plugin);\n\t\t\t\t\t\t\t\tif (!vfsModules.has(resolved)) {\n\t\t\t\t\t\t\t\t\tconst fsPromise = Promise.resolve(vfs.writeModule(encodedVirtualPath, \"\"));\n\t\t\t\t\t\t\t\t\tvfsModules.set(resolved, fsPromise);\n\t\t\t\t\t\t\t\t\tawait fsPromise;\n\t\t\t\t\t\t\t\t} else await vfsModules.get(resolved);\n\t\t\t\t\t\t\t\tresolved = encodedVirtualPath;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tresolveData.request = resolved;\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (plugin.load) compiler.options.module.rules.unshift({\n\t\t\t\t\tenforce: plugin.enforce,\n\t\t\t\t\tinclude(id) {\n\t\t\t\t\t\tif (isVirtualModuleId(id, plugin)) id = decodeVirtualModuleId(id, plugin);\n\t\t\t\t\t\tif (plugin.loadInclude && !plugin.loadInclude(id)) return false;\n\t\t\t\t\t\tconst { filter } = normalizeObjectHook(\"load\", plugin.load);\n\t\t\t\t\t\tif (!filter(id)) return false;\n\t\t\t\t\t\treturn !externalModules.has(id);\n\t\t\t\t\t},\n\t\t\t\t\tuse: [{\n\t\t\t\t\t\tloader: LOAD_LOADER$1,\n\t\t\t\t\t\toptions: { plugin }\n\t\t\t\t\t}],\n\t\t\t\t\ttype: \"javascript/auto\"\n\t\t\t\t});\n\t\t\t\tif (plugin.transform) compiler.options.module.rules.unshift({\n\t\t\t\t\tenforce: plugin.enforce,\n\t\t\t\t\tuse(data) {\n\t\t\t\t\t\treturn transformUse(data, plugin, TRANSFORM_LOADER$1);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif (plugin.rspack) plugin.rspack(compiler);\n\t\t\t\tif (plugin.watchChange || plugin.buildStart) compiler.hooks.make.tapPromise(plugin.name, async (compilation) => {\n\t\t\t\t\tconst context = createBuildContext$2(compiler, compilation);\n\t\t\t\t\tif (plugin.watchChange && (compiler.modifiedFiles || compiler.removedFiles)) {\n\t\t\t\t\t\tconst promises = [];\n\t\t\t\t\t\tif (compiler.modifiedFiles) compiler.modifiedFiles.forEach((file) => promises.push(Promise.resolve(plugin.watchChange.call(context, file, { event: \"update\" }))));\n\t\t\t\t\t\tif (compiler.removedFiles) compiler.removedFiles.forEach((file) => promises.push(Promise.resolve(plugin.watchChange.call(context, file, { event: \"delete\" }))));\n\t\t\t\t\t\tawait Promise.all(promises);\n\t\t\t\t\t}\n\t\t\t\t\tif (plugin.buildStart) return await plugin.buildStart.call(context);\n\t\t\t\t});\n\t\t\t\tif (plugin.buildEnd) compiler.hooks.emit.tapPromise(plugin.name, async (compilation) => {\n\t\t\t\t\tawait plugin.buildEnd.call(createBuildContext$2(compiler, compilation));\n\t\t\t\t});\n\t\t\t\tif (plugin.writeBundle) compiler.hooks.afterEmit.tapPromise(plugin.name, async () => {\n\t\t\t\t\tawait plugin.writeBundle();\n\t\t\t\t});\n\t\t\t}\n\t\t} };\n\t};\n}\n\n//#endregion\n//#region src/unloader/index.ts\nfunction getUnloaderPlugin(factory) {\n\treturn ((userOptions) => {\n\t\tconst plugins = toArray(factory(userOptions, { framework: \"unloader\" })).map((rawPlugin) => {\n\t\t\treturn toRollupPlugin(rawPlugin, \"unloader\");\n\t\t});\n\t\treturn plugins.length === 1 ? plugins[0] : plugins;\n\t});\n}\n\n//#endregion\n//#region src/vite/index.ts\nfunction getVitePlugin(factory) {\n\treturn ((userOptions) => {\n\t\tconst plugins = toArray(factory(userOptions, { framework: \"vite\" })).map((rawPlugin) => {\n\t\t\treturn toRollupPlugin(rawPlugin, \"vite\");\n\t\t});\n\t\treturn plugins.length === 1 ? plugins[0] : plugins;\n\t});\n}\n\n//#endregion\n//#region src/webpack/index.ts\nconst TRANSFORM_LOADER = resolve(import.meta.dirname, \"webpack/loaders/transform.mjs\");\nconst LOAD_LOADER = resolve(import.meta.dirname, \"webpack/loaders/load.mjs\");\nfunction getWebpackPlugin(factory) {\n\treturn (userOptions) => {\n\t\tconst VirtualModulesPlugin = __require(\"webpack-virtual-modules\");\n\t\treturn { apply(compiler) {\n\t\t\tconst VIRTUAL_MODULE_PREFIX = resolve(compiler.options.context ?? process$1.cwd(), \"_virtual_\");\n\t\t\tconst meta = {\n\t\t\t\tframework: \"webpack\",\n\t\t\t\twebpack: { compiler }\n\t\t\t};\n\t\t\tconst rawPlugins = toArray(factory(userOptions, meta));\n\t\t\tfor (const rawPlugin of rawPlugins) {\n\t\t\t\tconst plugin = Object.assign(rawPlugin, {\n\t\t\t\t\t__unpluginMeta: meta,\n\t\t\t\t\t__virtualModulePrefix: VIRTUAL_MODULE_PREFIX\n\t\t\t\t});\n\t\t\t\tconst externalModules = /* @__PURE__ */ new Set();\n\t\t\t\tif (plugin.resolveId) {\n\t\t\t\t\tlet vfs = compiler.options.plugins.find((i) => i instanceof VirtualModulesPlugin);\n\t\t\t\t\tif (!vfs) {\n\t\t\t\t\t\tvfs = new VirtualModulesPlugin();\n\t\t\t\t\t\tcompiler.options.plugins.push(vfs);\n\t\t\t\t\t}\n\t\t\t\t\tconst vfsModules = /* @__PURE__ */ new Set();\n\t\t\t\t\tplugin.__vfsModules = vfsModules;\n\t\t\t\t\tplugin.__vfs = vfs;\n\t\t\t\t\tconst resolverPlugin = { apply(resolver) {\n\t\t\t\t\t\tconst target = resolver.ensureHook(\"resolve\");\n\t\t\t\t\t\tresolver.getHook(\"resolve\").tapAsync(plugin.name, async (request, resolveContext, callback) => {\n\t\t\t\t\t\t\tif (!request.request) return callback();\n\t\t\t\t\t\t\tif (normalizeAbsolutePath(request.request).startsWith(plugin.__virtualModulePrefix)) return callback();\n\t\t\t\t\t\t\tconst id = normalizeAbsolutePath(request.request);\n\t\t\t\t\t\t\tconst requestContext = request.context;\n\t\t\t\t\t\t\tlet importer = requestContext.issuer !== \"\" ? requestContext.issuer : void 0;\n\t\t\t\t\t\t\tconst isEntry = requestContext.issuer === \"\";\n\t\t\t\t\t\t\tif (importer?.startsWith(plugin.__virtualModulePrefix)) importer = decodeURIComponent(importer.slice(plugin.__virtualModulePrefix.length));\n\t\t\t\t\t\t\tconst fileDependencies = /* @__PURE__ */ new Set();\n\t\t\t\t\t\t\tconst context = createBuildContext$3({\n\t\t\t\t\t\t\t\taddWatchFile(file) {\n\t\t\t\t\t\t\t\t\tfileDependencies.add(file);\n\t\t\t\t\t\t\t\t\tresolveContext.fileDependencies?.add(file);\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tgetWatchFiles() {\n\t\t\t\t\t\t\t\t\treturn Array.from(fileDependencies);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}, compiler);\n\t\t\t\t\t\t\tlet error;\n\t\t\t\t\t\t\tconst pluginContext = {\n\t\t\t\t\t\t\t\terror(msg) {\n\t\t\t\t\t\t\t\t\tif (error == null) error = normalizeMessage$2(msg);\n\t\t\t\t\t\t\t\t\telse console.error(`unplugin/webpack: multiple errors returned from resolveId hook: ${msg}`);\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\twarn(msg) {\n\t\t\t\t\t\t\t\t\tconsole.warn(`unplugin/webpack: warning from resolveId hook: ${msg}`);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tconst { handler, filter } = normalizeObjectHook(\"resolveId\", plugin.resolveId);\n\t\t\t\t\t\t\tif (!filter(id)) return callback();\n\t\t\t\t\t\t\tconst resolveIdResult = await handler.call({\n\t\t\t\t\t\t\t\t...context,\n\t\t\t\t\t\t\t\t...pluginContext\n\t\t\t\t\t\t\t}, id, importer, { isEntry });\n\t\t\t\t\t\t\tif (error != null) return callback(error);\n\t\t\t\t\t\t\tif (resolveIdResult == null) return callback();\n\t\t\t\t\t\t\tlet resolved = typeof resolveIdResult === \"string\" ? resolveIdResult : resolveIdResult.id;\n\t\t\t\t\t\t\tif (typeof resolveIdResult === \"string\" ? false : resolveIdResult.external === true) externalModules.add(resolved);\n\t\t\t\t\t\t\tif (!fs.existsSync(resolved)) {\n\t\t\t\t\t\t\t\tresolved = normalizeAbsolutePath(plugin.__virtualModulePrefix + encodeURIComponent(resolved));\n\t\t\t\t\t\t\t\tif (!vfsModules.has(resolved)) {\n\t\t\t\t\t\t\t\t\tplugin.__vfs.writeModule(resolved, \"\");\n\t\t\t\t\t\t\t\t\tvfsModules.add(resolved);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst newRequest = {\n\t\t\t\t\t\t\t\t...request,\n\t\t\t\t\t\t\t\trequest: resolved\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tresolver.doResolve(target, newRequest, null, resolveContext, callback);\n\t\t\t\t\t\t});\n\t\t\t\t\t} };\n\t\t\t\t\tcompiler.options.resolve.plugins = compiler.options.resolve.plugins || [];\n\t\t\t\t\tcompiler.options.resolve.plugins.push(resolverPlugin);\n\t\t\t\t}\n\t\t\t\tif (plugin.load) compiler.options.module.rules.unshift({\n\t\t\t\t\tinclude(id) {\n\t\t\t\t\t\treturn shouldLoad(id, plugin, externalModules);\n\t\t\t\t\t},\n\t\t\t\t\tenforce: plugin.enforce,\n\t\t\t\t\tuse: [{\n\t\t\t\t\t\tloader: LOAD_LOADER,\n\t\t\t\t\t\toptions: { plugin }\n\t\t\t\t\t}],\n\t\t\t\t\ttype: \"javascript/auto\"\n\t\t\t\t});\n\t\t\t\tif (plugin.transform) compiler.options.module.rules.unshift({\n\t\t\t\t\tenforce: plugin.enforce,\n\t\t\t\t\tuse(data) {\n\t\t\t\t\t\treturn transformUse(data, plugin, TRANSFORM_LOADER);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif (plugin.webpack) plugin.webpack(compiler);\n\t\t\t\tif (plugin.watchChange || plugin.buildStart) compiler.hooks.make.tapPromise(plugin.name, async (compilation) => {\n\t\t\t\t\tconst context = createBuildContext$3(contextOptionsFromCompilation(compilation), compiler, compilation);\n\t\t\t\t\tif (plugin.watchChange && (compiler.modifiedFiles || compiler.removedFiles)) {\n\t\t\t\t\t\tconst promises = [];\n\t\t\t\t\t\tif (compiler.modifiedFiles) compiler.modifiedFiles.forEach((file) => promises.push(Promise.resolve(plugin.watchChange.call(context, file, { event: \"update\" }))));\n\t\t\t\t\t\tif (compiler.removedFiles) compiler.removedFiles.forEach((file) => promises.push(Promise.resolve(plugin.watchChange.call(context, file, { event: \"delete\" }))));\n\t\t\t\t\t\tawait Promise.all(promises);\n\t\t\t\t\t}\n\t\t\t\t\tif (plugin.buildStart) return await plugin.buildStart.call(context);\n\t\t\t\t});\n\t\t\t\tif (plugin.buildEnd) compiler.hooks.emit.tapPromise(plugin.name, async (compilation) => {\n\t\t\t\t\tawait plugin.buildEnd.call(createBuildContext$3(contextOptionsFromCompilation(compilation), compiler, compilation));\n\t\t\t\t});\n\t\t\t\tif (plugin.writeBundle) compiler.hooks.afterEmit.tapPromise(plugin.name, async () => {\n\t\t\t\t\tawait plugin.writeBundle();\n\t\t\t\t});\n\t\t\t}\n\t\t} };\n\t};\n}\nfunction shouldLoad(id, plugin, externalModules) {\n\tif (id.startsWith(plugin.__virtualModulePrefix)) id = decodeURIComponent(id.slice(plugin.__virtualModulePrefix.length));\n\tif (plugin.loadInclude && !plugin.loadInclude(id)) return false;\n\tconst { filter } = normalizeObjectHook(\"load\", plugin.load);\n\tif (!filter(id)) return false;\n\treturn !externalModules.has(id);\n}\n\n//#endregion\n//#region src/define.ts\nfunction createUnplugin(factory) {\n\treturn {\n\t\tget esbuild() {\n\t\t\treturn getEsbuildPlugin(factory);\n\t\t},\n\t\tget rollup() {\n\t\t\treturn getRollupPlugin(factory);\n\t\t},\n\t\tget vite() {\n\t\t\treturn getVitePlugin(factory);\n\t\t},\n\t\tget rolldown() {\n\t\t\treturn getRolldownPlugin(factory);\n\t\t},\n\t\tget webpack() {\n\t\t\treturn getWebpackPlugin(factory);\n\t\t},\n\t\tget rspack() {\n\t\t\treturn getRspackPlugin(factory);\n\t\t},\n\t\tget farm() {\n\t\t\treturn getFarmPlugin(factory);\n\t\t},\n\t\tget unloader() {\n\t\t\treturn getUnloaderPlugin(factory);\n\t\t},\n\t\tget bun() {\n\t\t\treturn getBunPlugin(factory);\n\t\t},\n\t\tget raw() {\n\t\t\treturn factory;\n\t\t}\n\t};\n}\nfunction createEsbuildPlugin(factory) {\n\treturn getEsbuildPlugin(factory);\n}\nfunction createRollupPlugin(factory) {\n\treturn getRollupPlugin(factory);\n}\nfunction createVitePlugin(factory) {\n\treturn getVitePlugin(factory);\n}\nfunction createRolldownPlugin(factory) {\n\treturn getRolldownPlugin(factory);\n}\nfunction createWebpackPlugin(factory) {\n\treturn getWebpackPlugin(factory);\n}\nfunction createRspackPlugin(factory) {\n\treturn getRspackPlugin(factory);\n}\nfunction createFarmPlugin(factory) {\n\treturn getFarmPlugin(factory);\n}\nfunction createUnloaderPlugin(factory) {\n\treturn getUnloaderPlugin(factory);\n}\nfunction createBunPlugin(factory) {\n\treturn getBunPlugin(factory);\n}\n\n//#endregion\nexport { createBunPlugin, createEsbuildPlugin, createFarmPlugin, createRolldownPlugin, createRollupPlugin, createRspackPlugin, createUnloaderPlugin, createUnplugin, createVitePlugin, createWebpackPlugin, setParseImpl };","import type { StringReader, StringWriter } from './strings';\n\nexport const comma = ','.charCodeAt(0);\nexport const semicolon = ';'.charCodeAt(0);\n\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nconst intToChar = new Uint8Array(64); // 64 possible chars.\nconst charToInt = new Uint8Array(128); // z is 122 in ASCII\n\nfor (let i = 0; i < chars.length; i++) {\n const c = chars.charCodeAt(i);\n intToChar[i] = c;\n charToInt[c] = i;\n}\n\nexport function decodeInteger(reader: StringReader, relative: number): number {\n let value = 0;\n let shift = 0;\n let integer = 0;\n\n do {\n const c = reader.next();\n integer = charToInt[c];\n value |= (integer & 31) << shift;\n shift += 5;\n } while (integer & 32);\n\n const shouldNegate = value & 1;\n value >>>= 1;\n\n if (shouldNegate) {\n value = -0x80000000 | -value;\n }\n\n return relative + value;\n}\n\nexport function encodeInteger(builder: StringWriter, num: number, relative: number): number {\n let delta = num - relative;\n\n delta = delta < 0 ? (-delta << 1) | 1 : delta << 1;\n do {\n let clamped = delta & 0b011111;\n delta >>>= 5;\n if (delta > 0) clamped |= 0b100000;\n builder.write(intToChar[clamped]);\n } while (delta > 0);\n\n return num;\n}\n\nexport function hasMoreVlq(reader: StringReader, max: number) {\n if (reader.pos >= max) return false;\n return reader.peek() !== comma;\n}\n","const bufLength = 1024 * 16;\n\n// Provide a fallback for older environments.\nconst td =\n typeof TextDecoder !== 'undefined'\n ? /* #__PURE__ */ new TextDecoder()\n : typeof Buffer !== 'undefined'\n ? {\n decode(buf: Uint8Array): string {\n const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);\n return out.toString();\n },\n }\n : {\n decode(buf: Uint8Array): string {\n let out = '';\n for (let i = 0; i < buf.length; i++) {\n out += String.fromCharCode(buf[i]);\n }\n return out;\n },\n };\n\nexport class StringWriter {\n pos = 0;\n private out = '';\n private buffer = new Uint8Array(bufLength);\n\n write(v: number): void {\n const { buffer } = this;\n buffer[this.pos++] = v;\n if (this.pos === bufLength) {\n this.out += td.decode(buffer);\n this.pos = 0;\n }\n }\n\n flush(): string {\n const { buffer, out, pos } = this;\n return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out;\n }\n}\n\nexport class StringReader {\n pos = 0;\n declare private buffer: string;\n\n constructor(buffer: string) {\n this.buffer = buffer;\n }\n\n next(): number {\n return this.buffer.charCodeAt(this.pos++);\n }\n\n peek(): number {\n return this.buffer.charCodeAt(this.pos);\n }\n\n indexOf(char: string): number {\n const { buffer, pos } = this;\n const idx = buffer.indexOf(char, pos);\n return idx === -1 ? buffer.length : idx;\n }\n}\n","import { StringReader, StringWriter } from './strings';\nimport { comma, decodeInteger, encodeInteger, hasMoreVlq, semicolon } from './vlq';\n\nconst EMPTY: any[] = [];\n\ntype Line = number;\ntype Column = number;\ntype Kind = number;\ntype Name = number;\ntype Var = number;\ntype SourcesIndex = number;\ntype ScopesIndex = number;\n\ntype Mix<A, B, O> = (A & O) | (B & O);\n\nexport type OriginalScope = Mix<\n [Line, Column, Line, Column, Kind],\n [Line, Column, Line, Column, Kind, Name],\n { vars: Var[] }\n>;\n\nexport type GeneratedRange = Mix<\n [Line, Column, Line, Column],\n [Line, Column, Line, Column, SourcesIndex, ScopesIndex],\n {\n callsite: CallSite | null;\n bindings: Binding[];\n isScope: boolean;\n }\n>;\nexport type CallSite = [SourcesIndex, Line, Column];\ntype Binding = BindingExpressionRange[];\nexport type BindingExpressionRange = [Name] | [Name, Line, Column];\n\nexport function decodeOriginalScopes(input: string): OriginalScope[] {\n const { length } = input;\n const reader = new StringReader(input);\n const scopes: OriginalScope[] = [];\n const stack: OriginalScope[] = [];\n let line = 0;\n\n for (; reader.pos < length; reader.pos++) {\n line = decodeInteger(reader, line);\n const column = decodeInteger(reader, 0);\n\n if (!hasMoreVlq(reader, length)) {\n const last = stack.pop()!;\n last[2] = line;\n last[3] = column;\n continue;\n }\n\n const kind = decodeInteger(reader, 0);\n const fields = decodeInteger(reader, 0);\n const hasName = fields & 0b0001;\n\n const scope: OriginalScope = (\n hasName ? [line, column, 0, 0, kind, decodeInteger(reader, 0)] : [line, column, 0, 0, kind]\n ) as OriginalScope;\n\n let vars: Var[] = EMPTY;\n if (hasMoreVlq(reader, length)) {\n vars = [];\n do {\n const varsIndex = decodeInteger(reader, 0);\n vars.push(varsIndex);\n } while (hasMoreVlq(reader, length));\n }\n scope.vars = vars;\n\n scopes.push(scope);\n stack.push(scope);\n }\n\n return scopes;\n}\n\nexport function encodeOriginalScopes(scopes: OriginalScope[]): string {\n const writer = new StringWriter();\n\n for (let i = 0; i < scopes.length; ) {\n i = _encodeOriginalScopes(scopes, i, writer, [0]);\n }\n\n return writer.flush();\n}\n\nfunction _encodeOriginalScopes(\n scopes: OriginalScope[],\n index: number,\n writer: StringWriter,\n state: [\n number, // GenColumn\n ],\n): number {\n const scope = scopes[index];\n const { 0: startLine, 1: startColumn, 2: endLine, 3: endColumn, 4: kind, vars } = scope;\n\n if (index > 0) writer.write(comma);\n\n state[0] = encodeInteger(writer, startLine, state[0]);\n encodeInteger(writer, startColumn, 0);\n encodeInteger(writer, kind, 0);\n\n const fields = scope.length === 6 ? 0b0001 : 0;\n encodeInteger(writer, fields, 0);\n if (scope.length === 6) encodeInteger(writer, scope[5], 0);\n\n for (const v of vars) {\n encodeInteger(writer, v, 0);\n }\n\n for (index++; index < scopes.length; ) {\n const next = scopes[index];\n const { 0: l, 1: c } = next;\n if (l > endLine || (l === endLine && c >= endColumn)) {\n break;\n }\n index = _encodeOriginalScopes(scopes, index, writer, state);\n }\n\n writer.write(comma);\n state[0] = encodeInteger(writer, endLine, state[0]);\n encodeInteger(writer, endColumn, 0);\n\n return index;\n}\n\nexport function decodeGeneratedRanges(input: string): GeneratedRange[] {\n const { length } = input;\n const reader = new StringReader(input);\n const ranges: GeneratedRange[] = [];\n const stack: GeneratedRange[] = [];\n\n let genLine = 0;\n let definitionSourcesIndex = 0;\n let definitionScopeIndex = 0;\n let callsiteSourcesIndex = 0;\n let callsiteLine = 0;\n let callsiteColumn = 0;\n let bindingLine = 0;\n let bindingColumn = 0;\n\n do {\n const semi = reader.indexOf(';');\n let genColumn = 0;\n\n for (; reader.pos < semi; reader.pos++) {\n genColumn = decodeInteger(reader, genColumn);\n\n if (!hasMoreVlq(reader, semi)) {\n const last = stack.pop()!;\n last[2] = genLine;\n last[3] = genColumn;\n continue;\n }\n\n const fields = decodeInteger(reader, 0);\n const hasDefinition = fields & 0b0001;\n const hasCallsite = fields & 0b0010;\n const hasScope = fields & 0b0100;\n\n let callsite: CallSite | null = null;\n let bindings: Binding[] = EMPTY;\n let range: GeneratedRange;\n if (hasDefinition) {\n const defSourcesIndex = decodeInteger(reader, definitionSourcesIndex);\n definitionScopeIndex = decodeInteger(\n reader,\n definitionSourcesIndex === defSourcesIndex ? definitionScopeIndex : 0,\n );\n\n definitionSourcesIndex = defSourcesIndex;\n range = [genLine, genColumn, 0, 0, defSourcesIndex, definitionScopeIndex] as GeneratedRange;\n } else {\n range = [genLine, genColumn, 0, 0] as GeneratedRange;\n }\n\n range.isScope = !!hasScope;\n\n if (hasCallsite) {\n const prevCsi = callsiteSourcesIndex;\n const prevLine = callsiteLine;\n callsiteSourcesIndex = decodeInteger(reader, callsiteSourcesIndex);\n const sameSource = prevCsi === callsiteSourcesIndex;\n callsiteLine = decodeInteger(reader, sameSource ? callsiteLine : 0);\n callsiteColumn = decodeInteger(\n reader,\n sameSource && prevLine === callsiteLine ? callsiteColumn : 0,\n );\n\n callsite = [callsiteSourcesIndex, callsiteLine, callsiteColumn];\n }\n range.callsite = callsite;\n\n if (hasMoreVlq(reader, semi)) {\n bindings = [];\n do {\n bindingLine = genLine;\n bindingColumn = genColumn;\n const expressionsCount = decodeInteger(reader, 0);\n let expressionRanges: BindingExpressionRange[];\n if (expressionsCount < -1) {\n expressionRanges = [[decodeInteger(reader, 0)]];\n for (let i = -1; i > expressionsCount; i--) {\n const prevBl = bindingLine;\n bindingLine = decodeInteger(reader, bindingLine);\n bindingColumn = decodeInteger(reader, bindingLine === prevBl ? bindingColumn : 0);\n const expression = decodeInteger(reader, 0);\n expressionRanges.push([expression, bindingLine, bindingColumn]);\n }\n } else {\n expressionRanges = [[expressionsCount]];\n }\n bindings.push(expressionRanges);\n } while (hasMoreVlq(reader, semi));\n }\n range.bindings = bindings;\n\n ranges.push(range);\n stack.push(range);\n }\n\n genLine++;\n reader.pos = semi + 1;\n } while (reader.pos < length);\n\n return ranges;\n}\n\nexport function encodeGeneratedRanges(ranges: GeneratedRange[]): string {\n if (ranges.length === 0) return '';\n\n const writer = new StringWriter();\n\n for (let i = 0; i < ranges.length; ) {\n i = _encodeGeneratedRanges(ranges, i, writer, [0, 0, 0, 0, 0, 0, 0]);\n }\n\n return writer.flush();\n}\n\nfunction _encodeGeneratedRanges(\n ranges: GeneratedRange[],\n index: number,\n writer: StringWriter,\n state: [\n number, // GenLine\n number, // GenColumn\n number, // DefSourcesIndex\n number, // DefScopesIndex\n number, // CallSourcesIndex\n number, // CallLine\n number, // CallColumn\n ],\n): number {\n const range = ranges[index];\n const {\n 0: startLine,\n 1: startColumn,\n 2: endLine,\n 3: endColumn,\n isScope,\n callsite,\n bindings,\n } = range;\n\n if (state[0] < startLine) {\n catchupLine(writer, state[0], startLine);\n state[0] = startLine;\n state[1] = 0;\n } else if (index > 0) {\n writer.write(comma);\n }\n\n state[1] = encodeInteger(writer, range[1], state[1]);\n\n const fields =\n (range.length === 6 ? 0b0001 : 0) | (callsite ? 0b0010 : 0) | (isScope ? 0b0100 : 0);\n encodeInteger(writer, fields, 0);\n\n if (range.length === 6) {\n const { 4: sourcesIndex, 5: scopesIndex } = range;\n if (sourcesIndex !== state[2]) {\n state[3] = 0;\n }\n state[2] = encodeInteger(writer, sourcesIndex, state[2]);\n state[3] = encodeInteger(writer, scopesIndex, state[3]);\n }\n\n if (callsite) {\n const { 0: sourcesIndex, 1: callLine, 2: callColumn } = range.callsite!;\n if (sourcesIndex !== state[4]) {\n state[5] = 0;\n state[6] = 0;\n } else if (callLine !== state[5]) {\n state[6] = 0;\n }\n state[4] = encodeInteger(writer, sourcesIndex, state[4]);\n state[5] = encodeInteger(writer, callLine, state[5]);\n state[6] = encodeInteger(writer, callColumn, state[6]);\n }\n\n if (bindings) {\n for (const binding of bindings) {\n if (binding.length > 1) encodeInteger(writer, -binding.length, 0);\n const expression = binding[0][0];\n encodeInteger(writer, expression, 0);\n let bindingStartLine = startLine;\n let bindingStartColumn = startColumn;\n for (let i = 1; i < binding.length; i++) {\n const expRange = binding[i];\n bindingStartLine = encodeInteger(writer, expRange[1]!, bindingStartLine);\n bindingStartColumn = encodeInteger(writer, expRange[2]!, bindingStartColumn);\n encodeInteger(writer, expRange[0]!, 0);\n }\n }\n }\n\n for (index++; index < ranges.length; ) {\n const next = ranges[index];\n const { 0: l, 1: c } = next;\n if (l > endLine || (l === endLine && c >= endColumn)) {\n break;\n }\n index = _encodeGeneratedRanges(ranges, index, writer, state);\n }\n\n if (state[0] < endLine) {\n catchupLine(writer, state[0], endLine);\n state[0] = endLine;\n state[1] = 0;\n } else {\n writer.write(comma);\n }\n state[1] = encodeInteger(writer, endColumn, state[1]);\n\n return index;\n}\n\nfunction catchupLine(writer: StringWriter, lastLine: number, line: number) {\n do {\n writer.write(semicolon);\n } while (++lastLine < line);\n}\n","import { comma, decodeInteger, encodeInteger, hasMoreVlq, semicolon } from './vlq';\nimport { StringWriter, StringReader } from './strings';\n\nexport {\n decodeOriginalScopes,\n encodeOriginalScopes,\n decodeGeneratedRanges,\n encodeGeneratedRanges,\n} from './scopes';\nexport type { OriginalScope, GeneratedRange, CallSite, BindingExpressionRange } from './scopes';\n\nexport type SourceMapSegment =\n | [number]\n | [number, number, number, number]\n | [number, number, number, number, number];\nexport type SourceMapLine = SourceMapSegment[];\nexport type SourceMapMappings = SourceMapLine[];\n\nexport function decode(mappings: string): SourceMapMappings {\n const { length } = mappings;\n const reader = new StringReader(mappings);\n const decoded: SourceMapMappings = [];\n let genColumn = 0;\n let sourcesIndex = 0;\n let sourceLine = 0;\n let sourceColumn = 0;\n let namesIndex = 0;\n\n do {\n const semi = reader.indexOf(';');\n const line: SourceMapLine = [];\n let sorted = true;\n let lastCol = 0;\n genColumn = 0;\n\n while (reader.pos < semi) {\n let seg: SourceMapSegment;\n\n genColumn = decodeInteger(reader, genColumn);\n if (genColumn < lastCol) sorted = false;\n lastCol = genColumn;\n\n if (hasMoreVlq(reader, semi)) {\n sourcesIndex = decodeInteger(reader, sourcesIndex);\n sourceLine = decodeInteger(reader, sourceLine);\n sourceColumn = decodeInteger(reader, sourceColumn);\n\n if (hasMoreVlq(reader, semi)) {\n namesIndex = decodeInteger(reader, namesIndex);\n seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex];\n } else {\n seg = [genColumn, sourcesIndex, sourceLine, sourceColumn];\n }\n } else {\n seg = [genColumn];\n }\n\n line.push(seg);\n reader.pos++;\n }\n\n if (!sorted) sort(line);\n decoded.push(line);\n reader.pos = semi + 1;\n } while (reader.pos <= length);\n\n return decoded;\n}\n\nfunction sort(line: SourceMapSegment[]) {\n line.sort(sortComparator);\n}\n\nfunction sortComparator(a: SourceMapSegment, b: SourceMapSegment): number {\n return a[0] - b[0];\n}\n\nexport function encode(decoded: SourceMapMappings): string;\nexport function encode(decoded: Readonly<SourceMapMappings>): string;\nexport function encode(decoded: Readonly<SourceMapMappings>): string {\n const writer = new StringWriter();\n let sourcesIndex = 0;\n let sourceLine = 0;\n let sourceColumn = 0;\n let namesIndex = 0;\n\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n if (i > 0) writer.write(semicolon);\n if (line.length === 0) continue;\n\n let genColumn = 0;\n\n for (let j = 0; j < line.length; j++) {\n const segment = line[j];\n if (j > 0) writer.write(comma);\n\n genColumn = encodeInteger(writer, segment[0], genColumn);\n\n if (segment.length === 1) continue;\n sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex);\n sourceLine = encodeInteger(writer, segment[2], sourceLine);\n sourceColumn = encodeInteger(writer, segment[3], sourceColumn);\n\n if (segment.length === 4) continue;\n namesIndex = encodeInteger(writer, segment[4], namesIndex);\n }\n }\n\n return writer.flush();\n}\n","// Matches the scheme of a URL, eg \"http://\"\nconst schemeRegex = /^[\\w+.-]+:\\/\\//;\n\n/**\n * Matches the parts of a URL:\n * 1. Scheme, including \":\", guaranteed.\n * 2. User/password, including \"@\", optional.\n * 3. Host, guaranteed.\n * 4. Port, including \":\", optional.\n * 5. Path, including \"/\", optional.\n * 6. Query, including \"?\", optional.\n * 7. Hash, including \"#\", optional.\n */\nconst urlRegex = /^([\\w+.-]+:)\\/\\/([^@/#?]*@)?([^:/#?]*)(:\\d+)?(\\/[^#?]*)?(\\?[^#]*)?(#.*)?/;\n\n/**\n * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start\n * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive).\n *\n * 1. Host, optional.\n * 2. Path, which may include \"/\", guaranteed.\n * 3. Query, including \"?\", optional.\n * 4. Hash, including \"#\", optional.\n */\nconst fileRegex = /^file:(?:\\/\\/((?![a-z]:)[^/#?]*)?)?(\\/?[^#?]*)(\\?[^#]*)?(#.*)?/i;\n\ntype Url = {\n scheme: string;\n user: string;\n host: string;\n port: string;\n path: string;\n query: string;\n hash: string;\n type: UrlType;\n};\n\nconst enum UrlType {\n Empty = 1,\n Hash = 2,\n Query = 3,\n RelativePath = 4,\n AbsolutePath = 5,\n SchemeRelative = 6,\n Absolute = 7,\n}\n\nfunction isAbsoluteUrl(input: string): boolean {\n return schemeRegex.test(input);\n}\n\nfunction isSchemeRelativeUrl(input: string): boolean {\n return input.startsWith('//');\n}\n\nfunction isAbsolutePath(input: string): boolean {\n return input.startsWith('/');\n}\n\nfunction isFileUrl(input: string): boolean {\n return input.startsWith('file:');\n}\n\nfunction isRelative(input: string): boolean {\n return /^[.?#]/.test(input);\n}\n\nfunction parseAbsoluteUrl(input: string): Url {\n const match = urlRegex.exec(input)!;\n return makeUrl(\n match[1],\n match[2] || '',\n match[3],\n match[4] || '',\n match[5] || '/',\n match[6] || '',\n match[7] || '',\n );\n}\n\nfunction parseFileUrl(input: string): Url {\n const match = fileRegex.exec(input)!;\n const path = match[2];\n return makeUrl(\n 'file:',\n '',\n match[1] || '',\n '',\n isAbsolutePath(path) ? path : '/' + path,\n match[3] || '',\n match[4] || '',\n );\n}\n\nfunction makeUrl(\n scheme: string,\n user: string,\n host: string,\n port: string,\n path: string,\n query: string,\n hash: string,\n): Url {\n return {\n scheme,\n user,\n host,\n port,\n path,\n query,\n hash,\n type: UrlType.Absolute,\n };\n}\n\nfunction parseUrl(input: string): Url {\n if (isSchemeRelativeUrl(input)) {\n const url = parseAbsoluteUrl('http:' + input);\n url.scheme = '';\n url.type = UrlType.SchemeRelative;\n return url;\n }\n\n if (isAbsolutePath(input)) {\n const url = parseAbsoluteUrl('http://foo.com' + input);\n url.scheme = '';\n url.host = '';\n url.type = UrlType.AbsolutePath;\n return url;\n }\n\n if (isFileUrl(input)) return parseFileUrl(input);\n\n if (isAbsoluteUrl(input)) return parseAbsoluteUrl(input);\n\n const url = parseAbsoluteUrl('http://foo.com/' + input);\n url.scheme = '';\n url.host = '';\n url.type = input\n ? input.startsWith('?')\n ? UrlType.Query\n : input.startsWith('#')\n ? UrlType.Hash\n : UrlType.RelativePath\n : UrlType.Empty;\n return url;\n}\n\nfunction stripPathFilename(path: string): string {\n // If a path ends with a parent directory \"..\", then it's a relative path with excess parent\n // paths. It's not a file, so we can't strip it.\n if (path.endsWith('/..')) return path;\n const index = path.lastIndexOf('/');\n return path.slice(0, index + 1);\n}\n\nfunction mergePaths(url: Url, base: Url) {\n normalizePath(base, base.type);\n\n // If the path is just a \"/\", then it was an empty path to begin with (remember, we're a relative\n // path).\n if (url.path === '/') {\n url.path = base.path;\n } else {\n // Resolution happens relative to the base path's directory, not the file.\n url.path = stripPathFilename(base.path) + url.path;\n }\n}\n\n/**\n * The path can have empty directories \"//\", unneeded parents \"foo/..\", or current directory\n * \"foo/.\". We need to normalize to a standard representation.\n */\nfunction normalizePath(url: Url, type: UrlType) {\n const rel = type <= UrlType.RelativePath;\n const pieces = url.path.split('/');\n\n // We need to preserve the first piece always, so that we output a leading slash. The item at\n // pieces[0] is an empty string.\n let pointer = 1;\n\n // Positive is the number of real directories we've output, used for popping a parent directory.\n // Eg, \"foo/bar/..\" will have a positive 2, and we can decrement to be left with just \"foo\".\n let positive = 0;\n\n // We need to keep a trailing slash if we encounter an empty directory (eg, splitting \"foo/\" will\n // generate `[\"foo\", \"\"]` pieces). And, if we pop a parent directory. But once we encounter a\n // real directory, we won't need to append, unless the other conditions happen again.\n let addTrailingSlash = false;\n\n for (let i = 1; i < pieces.length; i++) {\n const piece = pieces[i];\n\n // An empty directory, could be a trailing slash, or just a double \"//\" in the path.\n if (!piece) {\n addTrailingSlash = true;\n continue;\n }\n\n // If we encounter a real directory, then we don't need to append anymore.\n addTrailingSlash = false;\n\n // A current directory, which we can always drop.\n if (piece === '.') continue;\n\n // A parent directory, we need to see if there are any real directories we can pop. Else, we\n // have an excess of parents, and we'll need to keep the \"..\".\n if (piece === '..') {\n if (positive) {\n addTrailingSlash = true;\n positive--;\n pointer--;\n } else if (rel) {\n // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute\n // URL, protocol relative URL, or an absolute path, we don't need to keep excess.\n pieces[pointer++] = piece;\n }\n continue;\n }\n\n // We've encountered a real directory. Move it to the next insertion pointer, which accounts for\n // any popped or dropped directories.\n pieces[pointer++] = piece;\n positive++;\n }\n\n let path = '';\n for (let i = 1; i < pointer; i++) {\n path += '/' + pieces[i];\n }\n if (!path || (addTrailingSlash && !path.endsWith('/..'))) {\n path += '/';\n }\n url.path = path;\n}\n\n/**\n * Attempts to resolve `input` URL/path relative to `base`.\n */\nexport default function resolve(input: string, base: string | undefined): string {\n if (!input && !base) return '';\n\n const url = parseUrl(input);\n let inputType = url.type;\n\n if (base && inputType !== UrlType.Absolute) {\n const baseUrl = parseUrl(base);\n const baseType = baseUrl.type;\n\n switch (inputType) {\n case UrlType.Empty:\n url.hash = baseUrl.hash;\n // fall through\n\n case UrlType.Hash:\n url.query = baseUrl.query;\n // fall through\n\n case UrlType.Query:\n case UrlType.RelativePath:\n mergePaths(url, baseUrl);\n // fall through\n\n case UrlType.AbsolutePath:\n // The host, user, and port are joined, you can't copy one without the others.\n url.user = baseUrl.user;\n url.host = baseUrl.host;\n url.port = baseUrl.port;\n // fall through\n\n case UrlType.SchemeRelative:\n // The input doesn't have a schema at least, so we need to copy at least that over.\n url.scheme = baseUrl.scheme;\n }\n if (baseType > inputType) inputType = baseType;\n }\n\n normalizePath(url, inputType);\n\n const queryHash = url.query + url.hash;\n switch (inputType) {\n // This is impossible, because of the empty checks at the start of the function.\n // case UrlType.Empty:\n\n case UrlType.Hash:\n case UrlType.Query:\n return queryHash;\n\n case UrlType.RelativePath: {\n // The first char is always a \"/\", and we need it to be relative.\n const path = url.path.slice(1);\n\n if (!path) return queryHash || '.';\n\n if (isRelative(base || input) && !isRelative(path)) {\n // If base started with a leading \".\", or there is no base and input started with a \".\",\n // then we need to ensure that the relative path starts with a \".\". We don't know if\n // relative starts with a \"..\", though, so check before prepending.\n return './' + path + queryHash;\n }\n\n return path + queryHash;\n }\n\n case UrlType.AbsolutePath:\n return url.path + queryHash;\n\n default:\n return url.scheme + '//' + url.user + url.host + url.port + url.path + queryHash;\n }\n}\n","import { encode, decode } from '@jridgewell/sourcemap-codec';\n\nimport resolver from './resolve';\nimport maybeSort from './sort';\nimport buildBySources from './by-source';\nimport {\n memoizedState,\n memoizedBinarySearch,\n upperBound,\n lowerBound,\n found as bsFound,\n} from './binary-search';\nimport {\n COLUMN,\n SOURCES_INDEX,\n SOURCE_LINE,\n SOURCE_COLUMN,\n NAMES_INDEX,\n REV_GENERATED_LINE,\n REV_GENERATED_COLUMN,\n} from './sourcemap-segment';\nimport { parse } from './types';\n\nimport type { SourceMapSegment, ReverseSegment } from './sourcemap-segment';\nimport type {\n SourceMapV3,\n DecodedSourceMap,\n EncodedSourceMap,\n InvalidOriginalMapping,\n OriginalMapping,\n InvalidGeneratedMapping,\n GeneratedMapping,\n SourceMapInput,\n Needle,\n SourceNeedle,\n SourceMap,\n EachMapping,\n Bias,\n XInput,\n SectionedSourceMap,\n Ro,\n} from './types';\nimport type { Source } from './by-source';\nimport type { MemoState } from './binary-search';\n\nexport type { SourceMapSegment } from './sourcemap-segment';\nexport type {\n SourceMap,\n DecodedSourceMap,\n EncodedSourceMap,\n Section,\n SectionedSourceMap,\n SourceMapV3,\n Bias,\n EachMapping,\n GeneratedMapping,\n InvalidGeneratedMapping,\n InvalidOriginalMapping,\n Needle,\n OriginalMapping,\n OriginalMapping as Mapping,\n SectionedSourceMapInput,\n SourceMapInput,\n SourceNeedle,\n XInput,\n EncodedSourceMapXInput,\n DecodedSourceMapXInput,\n SectionedSourceMapXInput,\n SectionXInput,\n} from './types';\n\ninterface PublicMap {\n _encoded: TraceMap['_encoded'];\n _decoded: TraceMap['_decoded'];\n _decodedMemo: TraceMap['_decodedMemo'];\n _bySources: TraceMap['_bySources'];\n _bySourceMemos: TraceMap['_bySourceMemos'];\n}\n\nconst LINE_GTR_ZERO = '`line` must be greater than 0 (lines start at line 1)';\nconst COL_GTR_EQ_ZERO = '`column` must be greater than or equal to 0 (columns start at column 0)';\n\nexport const LEAST_UPPER_BOUND = -1;\nexport const GREATEST_LOWER_BOUND = 1;\n\nexport { FlattenMap, FlattenMap as AnyMap } from './flatten-map';\n\nexport class TraceMap implements SourceMap {\n declare version: SourceMapV3['version'];\n declare file: SourceMapV3['file'];\n declare names: SourceMapV3['names'];\n declare sourceRoot: SourceMapV3['sourceRoot'];\n declare sources: SourceMapV3['sources'];\n declare sourcesContent: SourceMapV3['sourcesContent'];\n declare ignoreList: SourceMapV3['ignoreList'];\n\n declare resolvedSources: string[];\n declare private _encoded: string | undefined;\n\n declare private _decoded: SourceMapSegment[][] | undefined;\n declare private _decodedMemo: MemoState;\n\n declare private _bySources: Source[] | undefined;\n declare private _bySourceMemos: MemoState[] | undefined;\n\n constructor(map: Ro<SourceMapInput>, mapUrl?: string | null) {\n const isString = typeof map === 'string';\n if (!isString && (map as unknown as { _decodedMemo: any })._decodedMemo) return map as TraceMap;\n\n const parsed = parse(map as Exclude<SourceMapInput, TraceMap>);\n\n const { version, file, names, sourceRoot, sources, sourcesContent } = parsed;\n this.version = version;\n this.file = file;\n this.names = names || [];\n this.sourceRoot = sourceRoot;\n this.sources = sources;\n this.sourcesContent = sourcesContent;\n this.ignoreList = parsed.ignoreList || (parsed as XInput).x_google_ignoreList || undefined;\n\n const resolve = resolver(mapUrl, sourceRoot);\n this.resolvedSources = sources.map(resolve);\n\n const { mappings } = parsed;\n if (typeof mappings === 'string') {\n this._encoded = mappings;\n this._decoded = undefined;\n } else if (Array.isArray(mappings)) {\n this._encoded = undefined;\n this._decoded = maybeSort(mappings, isString);\n } else if ((parsed as unknown as SectionedSourceMap).sections) {\n throw new Error(`TraceMap passed sectioned source map, please use FlattenMap export instead`);\n } else {\n throw new Error(`invalid source map: ${JSON.stringify(parsed)}`);\n }\n\n this._decodedMemo = memoizedState();\n this._bySources = undefined;\n this._bySourceMemos = undefined;\n }\n}\n\n/**\n * Typescript doesn't allow friend access to private fields, so this just casts the map into a type\n * with public access modifiers.\n */\nfunction cast(map: unknown): PublicMap {\n return map as any;\n}\n\n/**\n * Returns the encoded (VLQ string) form of the SourceMap's mappings field.\n */\nexport function encodedMappings(map: TraceMap): EncodedSourceMap['mappings'] {\n return (cast(map)._encoded ??= encode(cast(map)._decoded!));\n}\n\n/**\n * Returns the decoded (array of lines of segments) form of the SourceMap's mappings field.\n */\nexport function decodedMappings(map: TraceMap): Readonly<DecodedSourceMap['mappings']> {\n return (cast(map)._decoded ||= decode(cast(map)._encoded!));\n}\n\n/**\n * A low-level API to find the segment associated with a generated line/column (think, from a\n * stack trace). Line and column here are 0-based, unlike `originalPositionFor`.\n */\nexport function traceSegment(\n map: TraceMap,\n line: number,\n column: number,\n): Readonly<SourceMapSegment> | null {\n const decoded = decodedMappings(map);\n\n // It's common for parent source maps to have pointers to lines that have no\n // mapping (like a \"//# sourceMappingURL=\") at the end of the child file.\n if (line >= decoded.length) return null;\n\n const segments = decoded[line];\n const index = traceSegmentInternal(\n segments,\n cast(map)._decodedMemo,\n line,\n column,\n GREATEST_LOWER_BOUND,\n );\n\n return index === -1 ? null : segments[index];\n}\n\n/**\n * A higher-level API to find the source/line/column associated with a generated line/column\n * (think, from a stack trace). Line is 1-based, but column is 0-based, due to legacy behavior in\n * `source-map` library.\n */\nexport function originalPositionFor(\n map: TraceMap,\n needle: Needle,\n): OriginalMapping | InvalidOriginalMapping {\n let { line, column, bias } = needle;\n line--;\n if (line < 0) throw new Error(LINE_GTR_ZERO);\n if (column < 0) throw new Error(COL_GTR_EQ_ZERO);\n\n const decoded = decodedMappings(map);\n\n // It's common for parent source maps to have pointers to lines that have no\n // mapping (like a \"//# sourceMappingURL=\") at the end of the child file.\n if (line >= decoded.length) return OMapping(null, null, null, null);\n\n const segments = decoded[line];\n const index = traceSegmentInternal(\n segments,\n cast(map)._decodedMemo,\n line,\n column,\n bias || GREATEST_LOWER_BOUND,\n );\n\n if (index === -1) return OMapping(null, null, null, null);\n\n const segment = segments[index];\n if (segment.length === 1) return OMapping(null, null, null, null);\n\n const { names, resolvedSources } = map;\n return OMapping(\n resolvedSources[segment[SOURCES_INDEX]],\n segment[SOURCE_LINE] + 1,\n segment[SOURCE_COLUMN],\n segment.length === 5 ? names[segment[NAMES_INDEX]] : null,\n );\n}\n\n/**\n * Finds the generated line/column position of the provided source/line/column source position.\n */\nexport function generatedPositionFor(\n map: TraceMap,\n needle: SourceNeedle,\n): GeneratedMapping | InvalidGeneratedMapping {\n const { source, line, column, bias } = needle;\n return generatedPosition(map, source, line, column, bias || GREATEST_LOWER_BOUND, false);\n}\n\n/**\n * Finds all generated line/column positions of the provided source/line/column source position.\n */\nexport function allGeneratedPositionsFor(map: TraceMap, needle: SourceNeedle): GeneratedMapping[] {\n const { source, line, column, bias } = needle;\n // SourceMapConsumer uses LEAST_UPPER_BOUND for some reason, so we follow suit.\n return generatedPosition(map, source, line, column, bias || LEAST_UPPER_BOUND, true);\n}\n\n/**\n * Iterates each mapping in generated position order.\n */\nexport function eachMapping(map: TraceMap, cb: (mapping: EachMapping) => void): void {\n const decoded = decodedMappings(map);\n const { names, resolvedSources } = map;\n\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n\n const generatedLine = i + 1;\n const generatedColumn = seg[0];\n let source = null;\n let originalLine = null;\n let originalColumn = null;\n let name = null;\n if (seg.length !== 1) {\n source = resolvedSources[seg[1]];\n originalLine = seg[2] + 1;\n originalColumn = seg[3];\n }\n if (seg.length === 5) name = names[seg[4]];\n\n cb({\n generatedLine,\n generatedColumn,\n source,\n originalLine,\n originalColumn,\n name,\n } as EachMapping);\n }\n }\n}\n\nfunction sourceIndex(map: TraceMap, source: string): number {\n const { sources, resolvedSources } = map;\n let index = sources.indexOf(source);\n if (index === -1) index = resolvedSources.indexOf(source);\n return index;\n}\n\n/**\n * Retrieves the source content for a particular source, if its found. Returns null if not.\n */\nexport function sourceContentFor(map: TraceMap, source: string): string | null {\n const { sourcesContent } = map;\n if (sourcesContent == null) return null;\n const index = sourceIndex(map, source);\n return index === -1 ? null : sourcesContent[index];\n}\n\n/**\n * Determines if the source is marked to ignore by the source map.\n */\nexport function isIgnored(map: TraceMap, source: string): boolean {\n const { ignoreList } = map;\n if (ignoreList == null) return false;\n const index = sourceIndex(map, source);\n return index === -1 ? false : ignoreList.includes(index);\n}\n\n/**\n * A helper that skips sorting of the input map's mappings array, which can be expensive for larger\n * maps.\n */\nexport function presortedDecodedMap(map: DecodedSourceMap, mapUrl?: string): TraceMap {\n const tracer = new TraceMap(clone(map, []), mapUrl);\n cast(tracer)._decoded = map.mappings;\n return tracer;\n}\n\n/**\n * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nexport function decodedMap(\n map: TraceMap,\n): Omit<DecodedSourceMap, 'mappings'> & { mappings: readonly SourceMapSegment[][] } {\n return clone(map, decodedMappings(map));\n}\n\n/**\n * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nexport function encodedMap(map: TraceMap): EncodedSourceMap {\n return clone(map, encodedMappings(map));\n}\n\nfunction clone<T extends string | readonly SourceMapSegment[][]>(\n map: TraceMap | DecodedSourceMap,\n mappings: T,\n): T extends string ? EncodedSourceMap : DecodedSourceMap {\n return {\n version: map.version,\n file: map.file,\n names: map.names,\n sourceRoot: map.sourceRoot,\n sources: map.sources,\n sourcesContent: map.sourcesContent,\n mappings,\n ignoreList: map.ignoreList || (map as XInput).x_google_ignoreList,\n } as any;\n}\n\nfunction OMapping(source: null, line: null, column: null, name: null): InvalidOriginalMapping;\nfunction OMapping(\n source: string,\n line: number,\n column: number,\n name: string | null,\n): OriginalMapping;\nfunction OMapping(\n source: string | null,\n line: number | null,\n column: number | null,\n name: string | null,\n): OriginalMapping | InvalidOriginalMapping {\n return { source, line, column, name } as any;\n}\n\nfunction GMapping(line: null, column: null): InvalidGeneratedMapping;\nfunction GMapping(line: number, column: number): GeneratedMapping;\nfunction GMapping(\n line: number | null,\n column: number | null,\n): GeneratedMapping | InvalidGeneratedMapping {\n return { line, column } as any;\n}\n\nfunction traceSegmentInternal(\n segments: SourceMapSegment[],\n memo: MemoState,\n line: number,\n column: number,\n bias: Bias,\n): number;\nfunction traceSegmentInternal(\n segments: ReverseSegment[],\n memo: MemoState,\n line: number,\n column: number,\n bias: Bias,\n): number;\nfunction traceSegmentInternal(\n segments: SourceMapSegment[] | ReverseSegment[],\n memo: MemoState,\n line: number,\n column: number,\n bias: Bias,\n): number {\n let index = memoizedBinarySearch(segments, column, memo, line);\n if (bsFound) {\n index = (bias === LEAST_UPPER_BOUND ? upperBound : lowerBound)(segments, column, index);\n } else if (bias === LEAST_UPPER_BOUND) index++;\n\n if (index === -1 || index === segments.length) return -1;\n return index;\n}\n\nfunction sliceGeneratedPositions(\n segments: ReverseSegment[],\n memo: MemoState,\n line: number,\n column: number,\n bias: Bias,\n): GeneratedMapping[] {\n let min = traceSegmentInternal(segments, memo, line, column, GREATEST_LOWER_BOUND);\n\n // We ignored the bias when tracing the segment so that we're guarnateed to find the first (in\n // insertion order) segment that matched. Even if we did respect the bias when tracing, we would\n // still need to call `lowerBound()` to find the first segment, which is slower than just looking\n // for the GREATEST_LOWER_BOUND to begin with. The only difference that matters for us is when the\n // binary search didn't match, in which case GREATEST_LOWER_BOUND just needs to increment to\n // match LEAST_UPPER_BOUND.\n if (!bsFound && bias === LEAST_UPPER_BOUND) min++;\n\n if (min === -1 || min === segments.length) return [];\n\n // We may have found the segment that started at an earlier column. If this is the case, then we\n // need to slice all generated segments that match _that_ column, because all such segments span\n // to our desired column.\n const matchedColumn = bsFound ? column : segments[min][COLUMN];\n\n // The binary search is not guaranteed to find the lower bound when a match wasn't found.\n if (!bsFound) min = lowerBound(segments, matchedColumn, min);\n const max = upperBound(segments, matchedColumn, min);\n\n const result = [];\n for (; min <= max; min++) {\n const segment = segments[min];\n result.push(GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN]));\n }\n return result;\n}\n\nfunction generatedPosition(\n map: TraceMap,\n source: string,\n line: number,\n column: number,\n bias: Bias,\n all: false,\n): GeneratedMapping | InvalidGeneratedMapping;\nfunction generatedPosition(\n map: TraceMap,\n source: string,\n line: number,\n column: number,\n bias: Bias,\n all: true,\n): GeneratedMapping[];\nfunction generatedPosition(\n map: TraceMap,\n source: string,\n line: number,\n column: number,\n bias: Bias,\n all: boolean,\n): GeneratedMapping | InvalidGeneratedMapping | GeneratedMapping[] {\n line--;\n if (line < 0) throw new Error(LINE_GTR_ZERO);\n if (column < 0) throw new Error(COL_GTR_EQ_ZERO);\n\n const { sources, resolvedSources } = map;\n let sourceIndex = sources.indexOf(source);\n if (sourceIndex === -1) sourceIndex = resolvedSources.indexOf(source);\n if (sourceIndex === -1) return all ? [] : GMapping(null, null);\n\n const bySourceMemos = (cast(map)._bySourceMemos ||= sources.map(memoizedState));\n const generated = (cast(map)._bySources ||= buildBySources(decodedMappings(map), bySourceMemos));\n\n const segments = generated[sourceIndex][line];\n if (segments == null) return all ? [] : GMapping(null, null);\n\n const memo = bySourceMemos[sourceIndex];\n\n if (all) return sliceGeneratedPositions(segments, memo, line, column, bias);\n\n const index = traceSegmentInternal(segments, memo, line, column, bias);\n if (index === -1) return GMapping(null, null);\n\n const segment = segments[index];\n return GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN]);\n}\n","import resolveUri from '@jridgewell/resolve-uri';\nimport stripFilename from './strip-filename';\n\ntype Resolve = (source: string | null) => string;\nexport default function resolver(\n mapUrl: string | null | undefined,\n sourceRoot: string | undefined,\n): Resolve {\n const from = stripFilename(mapUrl);\n // The sourceRoot is always treated as a directory, if it's not empty.\n // https://github.com/mozilla/source-map/blob/8cb3ee57/lib/util.js#L327\n // https://github.com/chromium/chromium/blob/da4adbb3/third_party/blink/renderer/devtools/front_end/sdk/SourceMap.js#L400-L401\n const prefix = sourceRoot ? sourceRoot + '/' : '';\n\n return (source) => resolveUri(prefix + (source || ''), from);\n}\n","/**\n * Removes everything after the last \"/\", but leaves the slash.\n */\nexport default function stripFilename(path: string | undefined | null): string {\n if (!path) return '';\n const index = path.lastIndexOf('/');\n return path.slice(0, index + 1);\n}\n","type GeneratedColumn = number;\ntype SourcesIndex = number;\ntype SourceLine = number;\ntype SourceColumn = number;\ntype NamesIndex = number;\n\ntype GeneratedLine = number;\n\nexport type SourceMapSegment =\n | [GeneratedColumn]\n | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn]\n | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn, NamesIndex];\n\nexport type ReverseSegment = [SourceColumn, GeneratedLine, GeneratedColumn];\n\nexport const COLUMN = 0;\nexport const SOURCES_INDEX = 1;\nexport const SOURCE_LINE = 2;\nexport const SOURCE_COLUMN = 3;\nexport const NAMES_INDEX = 4;\n\nexport const REV_GENERATED_LINE = 1;\nexport const REV_GENERATED_COLUMN = 2;\n","import { COLUMN } from './sourcemap-segment';\n\nimport type { ReverseSegment, SourceMapSegment } from './sourcemap-segment';\n\nexport default function maybeSort(\n mappings: SourceMapSegment[][],\n owned: boolean,\n): SourceMapSegment[][] {\n const unsortedIndex = nextUnsortedSegmentLine(mappings, 0);\n if (unsortedIndex === mappings.length) return mappings;\n\n // If we own the array (meaning we parsed it from JSON), then we're free to directly mutate it. If\n // not, we do not want to modify the consumer's input array.\n if (!owned) mappings = mappings.slice();\n\n for (let i = unsortedIndex; i < mappings.length; i = nextUnsortedSegmentLine(mappings, i + 1)) {\n mappings[i] = sortSegments(mappings[i], owned);\n }\n return mappings;\n}\n\nfunction nextUnsortedSegmentLine(mappings: SourceMapSegment[][], start: number): number {\n for (let i = start; i < mappings.length; i++) {\n if (!isSorted(mappings[i])) return i;\n }\n return mappings.length;\n}\n\nfunction isSorted(line: SourceMapSegment[]): boolean {\n for (let j = 1; j < line.length; j++) {\n if (line[j][COLUMN] < line[j - 1][COLUMN]) {\n return false;\n }\n }\n return true;\n}\n\nfunction sortSegments(line: SourceMapSegment[], owned: boolean): SourceMapSegment[] {\n if (!owned) line = line.slice();\n return line.sort(sortComparator);\n}\n\nexport function sortComparator<T extends SourceMapSegment | ReverseSegment>(a: T, b: T): number {\n return a[COLUMN] - b[COLUMN];\n}\n","import { COLUMN, SOURCES_INDEX, SOURCE_LINE, SOURCE_COLUMN } from './sourcemap-segment';\nimport { sortComparator } from './sort';\n\nimport type { ReverseSegment, SourceMapSegment } from './sourcemap-segment';\n\nexport type Source = ReverseSegment[][];\n\n// Rebuilds the original source files, with mappings that are ordered by source line/column instead\n// of generated line/column.\nexport default function buildBySources(\n decoded: readonly SourceMapSegment[][],\n memos: unknown[],\n): Source[] {\n const sources: Source[] = memos.map(() => []);\n\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n if (seg.length === 1) continue;\n\n const sourceIndex = seg[SOURCES_INDEX];\n const sourceLine = seg[SOURCE_LINE];\n const sourceColumn = seg[SOURCE_COLUMN];\n\n const source = sources[sourceIndex];\n const segs = (source[sourceLine] ||= []);\n segs.push([sourceColumn, i, seg[COLUMN]]);\n }\n }\n\n for (let i = 0; i < sources.length; i++) {\n const source = sources[i];\n for (let j = 0; j < source.length; j++) {\n const line = source[j];\n if (line) line.sort(sortComparator);\n }\n }\n\n return sources;\n}\n","import type { SourceMapSegment, ReverseSegment } from './sourcemap-segment';\nimport { COLUMN } from './sourcemap-segment';\n\nexport type MemoState = {\n lastKey: number;\n lastNeedle: number;\n lastIndex: number;\n};\n\nexport let found = false;\n\n/**\n * A binary search implementation that returns the index if a match is found.\n * If no match is found, then the left-index (the index associated with the item that comes just\n * before the desired index) is returned. To maintain proper sort order, a splice would happen at\n * the next index:\n *\n * ```js\n * const array = [1, 3];\n * const needle = 2;\n * const index = binarySearch(array, needle, (item, needle) => item - needle);\n *\n * assert.equal(index, 0);\n * array.splice(index + 1, 0, needle);\n * assert.deepEqual(array, [1, 2, 3]);\n * ```\n */\nexport function binarySearch(\n haystack: SourceMapSegment[] | ReverseSegment[],\n needle: number,\n low: number,\n high: number,\n): number {\n while (low <= high) {\n const mid = low + ((high - low) >> 1);\n const cmp = haystack[mid][COLUMN] - needle;\n\n if (cmp === 0) {\n found = true;\n return mid;\n }\n\n if (cmp < 0) {\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n\n found = false;\n return low - 1;\n}\n\nexport function upperBound(\n haystack: SourceMapSegment[] | ReverseSegment[],\n needle: number,\n index: number,\n): number {\n for (let i = index + 1; i < haystack.length; index = i++) {\n if (haystack[i][COLUMN] !== needle) break;\n }\n return index;\n}\n\nexport function lowerBound(\n haystack: SourceMapSegment[] | ReverseSegment[],\n needle: number,\n index: number,\n): number {\n for (let i = index - 1; i >= 0; index = i--) {\n if (haystack[i][COLUMN] !== needle) break;\n }\n return index;\n}\n\nexport function memoizedState(): MemoState {\n return {\n lastKey: -1,\n lastNeedle: -1,\n lastIndex: -1,\n };\n}\n\n/**\n * This overly complicated beast is just to record the last tested line/column and the resulting\n * index, allowing us to skip a few tests if mappings are monotonically increasing.\n */\nexport function memoizedBinarySearch(\n haystack: SourceMapSegment[] | ReverseSegment[],\n needle: number,\n state: MemoState,\n key: number,\n): number {\n const { lastKey, lastNeedle, lastIndex } = state;\n\n let low = 0;\n let high = haystack.length - 1;\n if (key === lastKey) {\n if (needle === lastNeedle) {\n found = lastIndex !== -1 && haystack[lastIndex][COLUMN] === needle;\n return lastIndex;\n }\n\n if (needle >= lastNeedle) {\n // lastIndex may be -1 if the previous needle was not found.\n low = lastIndex === -1 ? 0 : lastIndex;\n } else {\n high = lastIndex;\n }\n }\n state.lastKey = key;\n state.lastNeedle = needle;\n\n return (state.lastIndex = binarySearch(haystack, needle, low, high));\n}\n","import type { SourceMapSegment } from './sourcemap-segment';\nimport type { GREATEST_LOWER_BOUND, LEAST_UPPER_BOUND, TraceMap } from './trace-mapping';\n\nexport interface SourceMapV3 {\n file?: string | null;\n names: string[];\n sourceRoot?: string;\n sources: (string | null)[];\n sourcesContent?: (string | null)[];\n version: 3;\n ignoreList?: number[];\n}\n\nexport interface EncodedSourceMap extends SourceMapV3 {\n mappings: string;\n}\n\nexport interface DecodedSourceMap extends SourceMapV3 {\n mappings: SourceMapSegment[][];\n}\n\nexport interface Section {\n offset: { line: number; column: number };\n map: EncodedSourceMap | DecodedSourceMap | SectionedSourceMap;\n}\n\nexport interface SectionedSourceMap {\n file?: string | null;\n sections: Section[];\n version: 3;\n}\n\nexport type OriginalMapping = {\n source: string | null;\n line: number;\n column: number;\n name: string | null;\n};\n\nexport type InvalidOriginalMapping = {\n source: null;\n line: null;\n column: null;\n name: null;\n};\n\nexport type GeneratedMapping = {\n line: number;\n column: number;\n};\nexport type InvalidGeneratedMapping = {\n line: null;\n column: null;\n};\n\nexport type Bias = typeof GREATEST_LOWER_BOUND | typeof LEAST_UPPER_BOUND;\n\nexport type XInput = { x_google_ignoreList?: SourceMapV3['ignoreList'] };\nexport type EncodedSourceMapXInput = EncodedSourceMap & XInput;\nexport type DecodedSourceMapXInput = DecodedSourceMap & XInput;\nexport type SectionedSourceMapXInput = Omit<SectionedSourceMap, 'sections'> & {\n sections: SectionXInput[];\n};\nexport type SectionXInput = Omit<Section, 'map'> & {\n map: SectionedSourceMapInput;\n};\n\nexport type SourceMapInput = string | EncodedSourceMapXInput | DecodedSourceMapXInput | TraceMap;\nexport type SectionedSourceMapInput = SourceMapInput | SectionedSourceMapXInput;\n\nexport type Needle = { line: number; column: number; bias?: Bias };\nexport type SourceNeedle = { source: string; line: number; column: number; bias?: Bias };\n\nexport type EachMapping =\n | {\n generatedLine: number;\n generatedColumn: number;\n source: null;\n originalLine: null;\n originalColumn: null;\n name: null;\n }\n | {\n generatedLine: number;\n generatedColumn: number;\n source: string | null;\n originalLine: number;\n originalColumn: number;\n name: string | null;\n };\n\nexport abstract class SourceMap {\n declare version: SourceMapV3['version'];\n declare file: SourceMapV3['file'];\n declare names: SourceMapV3['names'];\n declare sourceRoot: SourceMapV3['sourceRoot'];\n declare sources: SourceMapV3['sources'];\n declare sourcesContent: SourceMapV3['sourcesContent'];\n declare resolvedSources: SourceMapV3['sources'];\n declare ignoreList: SourceMapV3['ignoreList'];\n}\n\nexport type Ro<T> =\n T extends Array<infer V>\n ? V[] | Readonly<V[]> | RoArray<V> | Readonly<RoArray<V>>\n : T extends object\n ? T | Readonly<T> | RoObject<T> | Readonly<RoObject<T>>\n : T;\ntype RoArray<T> = Ro<T>[];\ntype RoObject<T> = { [K in keyof T]: T[K] | Ro<T[K]> };\n\nexport function parse<T>(map: T): Exclude<T, string> {\n return typeof map === 'string' ? JSON.parse(map) : (map as Exclude<T, string>);\n}\n","import { TraceMap, presortedDecodedMap, decodedMappings } from './trace-mapping';\nimport {\n COLUMN,\n SOURCES_INDEX,\n SOURCE_LINE,\n SOURCE_COLUMN,\n NAMES_INDEX,\n} from './sourcemap-segment';\nimport { parse } from './types';\n\nimport type {\n DecodedSourceMap,\n DecodedSourceMapXInput,\n EncodedSourceMapXInput,\n SectionedSourceMapXInput,\n SectionedSourceMapInput,\n SectionXInput,\n Ro,\n} from './types';\nimport type { SourceMapSegment } from './sourcemap-segment';\n\ntype FlattenMap = {\n new (map: Ro<SectionedSourceMapInput>, mapUrl?: string | null): TraceMap;\n (map: Ro<SectionedSourceMapInput>, mapUrl?: string | null): TraceMap;\n};\n\nexport const FlattenMap: FlattenMap = function (map, mapUrl) {\n const parsed = parse(map as SectionedSourceMapInput);\n\n if (!('sections' in parsed)) {\n return new TraceMap(parsed as DecodedSourceMapXInput | EncodedSourceMapXInput, mapUrl);\n }\n\n const mappings: SourceMapSegment[][] = [];\n const sources: string[] = [];\n const sourcesContent: (string | null)[] = [];\n const names: string[] = [];\n const ignoreList: number[] = [];\n\n recurse(\n parsed,\n mapUrl,\n mappings,\n sources,\n sourcesContent,\n names,\n ignoreList,\n 0,\n 0,\n Infinity,\n Infinity,\n );\n\n const joined: DecodedSourceMap = {\n version: 3,\n file: parsed.file,\n names,\n sources,\n sourcesContent,\n mappings,\n ignoreList,\n };\n\n return presortedDecodedMap(joined);\n} as FlattenMap;\n\nfunction recurse(\n input: SectionedSourceMapXInput,\n mapUrl: string | null | undefined,\n mappings: SourceMapSegment[][],\n sources: string[],\n sourcesContent: (string | null)[],\n names: string[],\n ignoreList: number[],\n lineOffset: number,\n columnOffset: number,\n stopLine: number,\n stopColumn: number,\n) {\n const { sections } = input;\n for (let i = 0; i < sections.length; i++) {\n const { map, offset } = sections[i];\n\n let sl = stopLine;\n let sc = stopColumn;\n if (i + 1 < sections.length) {\n const nextOffset = sections[i + 1].offset;\n sl = Math.min(stopLine, lineOffset + nextOffset.line);\n\n if (sl === stopLine) {\n sc = Math.min(stopColumn, columnOffset + nextOffset.column);\n } else if (sl < stopLine) {\n sc = columnOffset + nextOffset.column;\n }\n }\n\n addSection(\n map,\n mapUrl,\n mappings,\n sources,\n sourcesContent,\n names,\n ignoreList,\n lineOffset + offset.line,\n columnOffset + offset.column,\n sl,\n sc,\n );\n }\n}\n\nfunction addSection(\n input: SectionXInput['map'],\n mapUrl: string | null | undefined,\n mappings: SourceMapSegment[][],\n sources: string[],\n sourcesContent: (string | null)[],\n names: string[],\n ignoreList: number[],\n lineOffset: number,\n columnOffset: number,\n stopLine: number,\n stopColumn: number,\n) {\n const parsed = parse(input);\n if ('sections' in parsed) return recurse(...(arguments as unknown as Parameters<typeof recurse>));\n\n const map = new TraceMap(parsed, mapUrl);\n const sourcesOffset = sources.length;\n const namesOffset = names.length;\n const decoded = decodedMappings(map);\n const { resolvedSources, sourcesContent: contents, ignoreList: ignores } = map;\n\n append(sources, resolvedSources);\n append(names, map.names);\n\n if (contents) append(sourcesContent, contents);\n else for (let i = 0; i < resolvedSources.length; i++) sourcesContent.push(null);\n\n if (ignores) for (let i = 0; i < ignores.length; i++) ignoreList.push(ignores[i] + sourcesOffset);\n\n for (let i = 0; i < decoded.length; i++) {\n const lineI = lineOffset + i;\n\n // We can only add so many lines before we step into the range that the next section's map\n // controls. When we get to the last line, then we'll start checking the segments to see if\n // they've crossed into the column range. But it may not have any columns that overstep, so we\n // still need to check that we don't overstep lines, too.\n if (lineI > stopLine) return;\n\n // The out line may already exist in mappings (if we're continuing the line started by a\n // previous section). Or, we may have jumped ahead several lines to start this section.\n const out = getLine(mappings, lineI);\n // On the 0th loop, the section's column offset shifts us forward. On all other lines (since the\n // map can be multiple lines), it doesn't.\n const cOffset = i === 0 ? columnOffset : 0;\n\n const line = decoded[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n const column = cOffset + seg[COLUMN];\n\n // If this segment steps into the column range that the next section's map controls, we need\n // to stop early.\n if (lineI === stopLine && column >= stopColumn) return;\n\n if (seg.length === 1) {\n out.push([column]);\n continue;\n }\n\n const sourcesIndex = sourcesOffset + seg[SOURCES_INDEX];\n const sourceLine = seg[SOURCE_LINE];\n const sourceColumn = seg[SOURCE_COLUMN];\n out.push(\n seg.length === 4\n ? [column, sourcesIndex, sourceLine, sourceColumn]\n : [column, sourcesIndex, sourceLine, sourceColumn, namesOffset + seg[NAMES_INDEX]],\n );\n }\n }\n}\n\nfunction append<T>(arr: T[], other: T[]) {\n for (let i = 0; i < other.length; i++) arr.push(other[i]);\n}\n\nfunction getLine<T>(arr: T[][], index: number): T[] {\n for (let i = arr.length; i <= index; i++) arr[i] = [];\n return arr[index];\n}\n","type Key = string | number | symbol;\n\n/**\n * SetArray acts like a `Set` (allowing only one occurrence of a string `key`), but provides the\n * index of the `key` in the backing array.\n *\n * This is designed to allow synchronizing a second array with the contents of the backing array,\n * like how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`,\n * and there are never duplicates.\n */\nexport class SetArray<T extends Key = Key> {\n declare private _indexes: Record<T, number | undefined>;\n declare array: readonly T[];\n\n constructor() {\n this._indexes = { __proto__: null } as any;\n this.array = [];\n }\n}\n\ninterface PublicSet<T extends Key> {\n array: T[];\n _indexes: SetArray<T>['_indexes'];\n}\n\n/**\n * Typescript doesn't allow friend access to private fields, so this just casts the set into a type\n * with public access modifiers.\n */\nfunction cast<T extends Key>(set: SetArray<T>): PublicSet<T> {\n return set as any;\n}\n\n/**\n * Gets the index associated with `key` in the backing array, if it is already present.\n */\nexport function get<T extends Key>(setarr: SetArray<T>, key: T): number | undefined {\n return cast(setarr)._indexes[key];\n}\n\n/**\n * Puts `key` into the backing array, if it is not already present. Returns\n * the index of the `key` in the backing array.\n */\nexport function put<T extends Key>(setarr: SetArray<T>, key: T): number {\n // The key may or may not be present. If it is present, it's a number.\n const index = get(setarr, key);\n if (index !== undefined) return index;\n\n const { array, _indexes: indexes } = cast(setarr);\n\n const length = array.push(key);\n return (indexes[key] = length - 1);\n}\n\n/**\n * Pops the last added item out of the SetArray.\n */\nexport function pop<T extends Key>(setarr: SetArray<T>): void {\n const { array, _indexes: indexes } = cast(setarr);\n if (array.length === 0) return;\n\n const last = array.pop()!;\n indexes[last] = undefined;\n}\n\n/**\n * Removes the key, if it exists in the set.\n */\nexport function remove<T extends Key>(setarr: SetArray<T>, key: T): void {\n const index = get(setarr, key);\n if (index === undefined) return;\n\n const { array, _indexes: indexes } = cast(setarr);\n for (let i = index + 1; i < array.length; i++) {\n const k = array[i];\n array[i - 1] = k;\n indexes[k]!--;\n }\n indexes[key] = undefined;\n array.pop();\n}\n","import { SetArray, put, remove } from './set-array';\nimport {\n encode,\n // encodeGeneratedRanges,\n // encodeOriginalScopes\n} from '@jridgewell/sourcemap-codec';\nimport { TraceMap, decodedMappings } from '@jridgewell/trace-mapping';\n\nimport {\n COLUMN,\n SOURCES_INDEX,\n SOURCE_LINE,\n SOURCE_COLUMN,\n NAMES_INDEX,\n} from './sourcemap-segment';\n\nimport type { SourceMapInput } from '@jridgewell/trace-mapping';\n// import type { OriginalScope, GeneratedRange } from '@jridgewell/sourcemap-codec';\nimport type { SourceMapSegment } from './sourcemap-segment';\nimport type {\n DecodedSourceMap,\n EncodedSourceMap,\n Pos,\n Mapping,\n // BindingExpressionRange,\n // OriginalPos,\n // OriginalScopeInfo,\n // GeneratedRangeInfo,\n} from './types';\n\nexport type { DecodedSourceMap, EncodedSourceMap, Mapping };\n\nexport type Options = {\n file?: string | null;\n sourceRoot?: string | null;\n};\n\nconst NO_NAME = -1;\n\n/**\n * Provides the state to generate a sourcemap.\n */\nexport class GenMapping {\n declare private _names: SetArray<string>;\n declare private _sources: SetArray<string>;\n declare private _sourcesContent: (string | null)[];\n declare private _mappings: SourceMapSegment[][];\n // private declare _originalScopes: OriginalScope[][];\n // private declare _generatedRanges: GeneratedRange[];\n declare private _ignoreList: SetArray<number>;\n declare file: string | null | undefined;\n declare sourceRoot: string | null | undefined;\n\n constructor({ file, sourceRoot }: Options = {}) {\n this._names = new SetArray();\n this._sources = new SetArray();\n this._sourcesContent = [];\n this._mappings = [];\n // this._originalScopes = [];\n // this._generatedRanges = [];\n this.file = file;\n this.sourceRoot = sourceRoot;\n this._ignoreList = new SetArray();\n }\n}\n\ninterface PublicMap {\n _names: GenMapping['_names'];\n _sources: GenMapping['_sources'];\n _sourcesContent: GenMapping['_sourcesContent'];\n _mappings: GenMapping['_mappings'];\n // _originalScopes: GenMapping['_originalScopes'];\n // _generatedRanges: GenMapping['_generatedRanges'];\n _ignoreList: GenMapping['_ignoreList'];\n}\n\n/**\n * Typescript doesn't allow friend access to private fields, so this just casts the map into a type\n * with public access modifiers.\n */\nfunction cast(map: unknown): PublicMap {\n return map as any;\n}\n\n/**\n * A low-level API to associate a generated position with an original source position. Line and\n * column here are 0-based, unlike `addMapping`.\n */\nexport function addSegment(\n map: GenMapping,\n genLine: number,\n genColumn: number,\n source?: null,\n sourceLine?: null,\n sourceColumn?: null,\n name?: null,\n content?: null,\n): void;\nexport function addSegment(\n map: GenMapping,\n genLine: number,\n genColumn: number,\n source: string,\n sourceLine: number,\n sourceColumn: number,\n name?: null,\n content?: string | null,\n): void;\nexport function addSegment(\n map: GenMapping,\n genLine: number,\n genColumn: number,\n source: string,\n sourceLine: number,\n sourceColumn: number,\n name: string,\n content?: string | null,\n): void;\nexport function addSegment(\n map: GenMapping,\n genLine: number,\n genColumn: number,\n source?: string | null,\n sourceLine?: number | null,\n sourceColumn?: number | null,\n name?: string | null,\n content?: string | null,\n): void {\n return addSegmentInternal(\n false,\n map,\n genLine,\n genColumn,\n source,\n sourceLine,\n sourceColumn,\n name,\n content,\n );\n}\n\n/**\n * A high-level API to associate a generated position with an original source position. Line is\n * 1-based, but column is 0-based, due to legacy behavior in `source-map` library.\n */\nexport function addMapping(\n map: GenMapping,\n mapping: {\n generated: Pos;\n source?: null;\n original?: null;\n name?: null;\n content?: null;\n },\n): void;\nexport function addMapping(\n map: GenMapping,\n mapping: {\n generated: Pos;\n source: string;\n original: Pos;\n name?: null;\n content?: string | null;\n },\n): void;\nexport function addMapping(\n map: GenMapping,\n mapping: {\n generated: Pos;\n source: string;\n original: Pos;\n name: string;\n content?: string | null;\n },\n): void;\nexport function addMapping(\n map: GenMapping,\n mapping: {\n generated: Pos;\n source?: string | null;\n original?: Pos | null;\n name?: string | null;\n content?: string | null;\n },\n): void {\n return addMappingInternal(false, map, mapping as Parameters<typeof addMappingInternal>[2]);\n}\n\n/**\n * Same as `addSegment`, but will only add the segment if it generates useful information in the\n * resulting map. This only works correctly if segments are added **in order**, meaning you should\n * not add a segment with a lower generated line/column than one that came before.\n */\nexport const maybeAddSegment: typeof addSegment = (\n map,\n genLine,\n genColumn,\n source,\n sourceLine,\n sourceColumn,\n name,\n content,\n) => {\n return addSegmentInternal(\n true,\n map,\n genLine,\n genColumn,\n source,\n sourceLine,\n sourceColumn,\n name,\n content,\n );\n};\n\n/**\n * Same as `addMapping`, but will only add the mapping if it generates useful information in the\n * resulting map. This only works correctly if mappings are added **in order**, meaning you should\n * not add a mapping with a lower generated line/column than one that came before.\n */\nexport const maybeAddMapping: typeof addMapping = (map, mapping) => {\n return addMappingInternal(true, map, mapping as Parameters<typeof addMappingInternal>[2]);\n};\n\n/**\n * Adds/removes the content of the source file to the source map.\n */\nexport function setSourceContent(map: GenMapping, source: string, content: string | null): void {\n const {\n _sources: sources,\n _sourcesContent: sourcesContent,\n // _originalScopes: originalScopes,\n } = cast(map);\n const index = put(sources, source);\n sourcesContent[index] = content;\n // if (index === originalScopes.length) originalScopes[index] = [];\n}\n\nexport function setIgnore(map: GenMapping, source: string, ignore = true) {\n const {\n _sources: sources,\n _sourcesContent: sourcesContent,\n _ignoreList: ignoreList,\n // _originalScopes: originalScopes,\n } = cast(map);\n const index = put(sources, source);\n if (index === sourcesContent.length) sourcesContent[index] = null;\n // if (index === originalScopes.length) originalScopes[index] = [];\n if (ignore) put(ignoreList, index);\n else remove(ignoreList, index);\n}\n\n/**\n * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nexport function toDecodedMap(map: GenMapping): DecodedSourceMap {\n const {\n _mappings: mappings,\n _sources: sources,\n _sourcesContent: sourcesContent,\n _names: names,\n _ignoreList: ignoreList,\n // _originalScopes: originalScopes,\n // _generatedRanges: generatedRanges,\n } = cast(map);\n removeEmptyFinalLines(mappings);\n\n return {\n version: 3,\n file: map.file || undefined,\n names: names.array,\n sourceRoot: map.sourceRoot || undefined,\n sources: sources.array,\n sourcesContent,\n mappings,\n // originalScopes,\n // generatedRanges,\n ignoreList: ignoreList.array,\n };\n}\n\n/**\n * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nexport function toEncodedMap(map: GenMapping): EncodedSourceMap {\n const decoded = toDecodedMap(map);\n return Object.assign({}, decoded, {\n // originalScopes: decoded.originalScopes.map((os) => encodeOriginalScopes(os)),\n // generatedRanges: encodeGeneratedRanges(decoded.generatedRanges as GeneratedRange[]),\n mappings: encode(decoded.mappings as SourceMapSegment[][]),\n });\n}\n\n/**\n * Constructs a new GenMapping, using the already present mappings of the input.\n */\nexport function fromMap(input: SourceMapInput): GenMapping {\n const map = new TraceMap(input);\n const gen = new GenMapping({ file: map.file, sourceRoot: map.sourceRoot });\n\n putAll(cast(gen)._names, map.names);\n putAll(cast(gen)._sources, map.sources as string[]);\n cast(gen)._sourcesContent = map.sourcesContent || map.sources.map(() => null);\n cast(gen)._mappings = decodedMappings(map) as GenMapping['_mappings'];\n // TODO: implement originalScopes/generatedRanges\n if (map.ignoreList) putAll(cast(gen)._ignoreList, map.ignoreList);\n\n return gen;\n}\n\n/**\n * Returns an array of high-level mapping objects for every recorded segment, which could then be\n * passed to the `source-map` library.\n */\nexport function allMappings(map: GenMapping): Mapping[] {\n const out: Mapping[] = [];\n const { _mappings: mappings, _sources: sources, _names: names } = cast(map);\n\n for (let i = 0; i < mappings.length; i++) {\n const line = mappings[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n\n const generated = { line: i + 1, column: seg[COLUMN] };\n let source: string | undefined = undefined;\n let original: Pos | undefined = undefined;\n let name: string | undefined = undefined;\n\n if (seg.length !== 1) {\n source = sources.array[seg[SOURCES_INDEX]];\n original = { line: seg[SOURCE_LINE] + 1, column: seg[SOURCE_COLUMN] };\n\n if (seg.length === 5) name = names.array[seg[NAMES_INDEX]];\n }\n\n out.push({ generated, source, original, name } as Mapping);\n }\n }\n\n return out;\n}\n\n// This split declaration is only so that terser can elminiate the static initialization block.\nfunction addSegmentInternal<S extends string | null | undefined>(\n skipable: boolean,\n map: GenMapping,\n genLine: number,\n genColumn: number,\n source: S,\n sourceLine: S extends string ? number : null | undefined,\n sourceColumn: S extends string ? number : null | undefined,\n name: S extends string ? string | null | undefined : null | undefined,\n content: S extends string ? string | null | undefined : null | undefined,\n): void {\n const {\n _mappings: mappings,\n _sources: sources,\n _sourcesContent: sourcesContent,\n _names: names,\n // _originalScopes: originalScopes,\n } = cast(map);\n const line = getIndex(mappings, genLine);\n const index = getColumnIndex(line, genColumn);\n\n if (!source) {\n if (skipable && skipSourceless(line, index)) return;\n return insert(line, index, [genColumn]);\n }\n\n // Sigh, TypeScript can't figure out sourceLine and sourceColumn aren't nullish if source\n // isn't nullish.\n assert<number>(sourceLine);\n assert<number>(sourceColumn);\n\n const sourcesIndex = put(sources, source);\n const namesIndex = name ? put(names, name) : NO_NAME;\n if (sourcesIndex === sourcesContent.length) sourcesContent[sourcesIndex] = content ?? null;\n // if (sourcesIndex === originalScopes.length) originalScopes[sourcesIndex] = [];\n\n if (skipable && skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex)) {\n return;\n }\n\n return insert(\n line,\n index,\n name\n ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]\n : [genColumn, sourcesIndex, sourceLine, sourceColumn],\n );\n}\n\nfunction assert<T>(_val: unknown): asserts _val is T {\n // noop.\n}\n\nfunction getIndex<T>(arr: T[][], index: number): T[] {\n for (let i = arr.length; i <= index; i++) {\n arr[i] = [];\n }\n return arr[index];\n}\n\nfunction getColumnIndex(line: SourceMapSegment[], genColumn: number): number {\n let index = line.length;\n for (let i = index - 1; i >= 0; index = i--) {\n const current = line[i];\n if (genColumn >= current[COLUMN]) break;\n }\n return index;\n}\n\nfunction insert<T>(array: T[], index: number, value: T) {\n for (let i = array.length; i > index; i--) {\n array[i] = array[i - 1];\n }\n array[index] = value;\n}\n\nfunction removeEmptyFinalLines(mappings: SourceMapSegment[][]) {\n const { length } = mappings;\n let len = length;\n for (let i = len - 1; i >= 0; len = i, i--) {\n if (mappings[i].length > 0) break;\n }\n if (len < length) mappings.length = len;\n}\n\nfunction putAll<T extends string | number>(setarr: SetArray<T>, array: T[]) {\n for (let i = 0; i < array.length; i++) put(setarr, array[i]);\n}\n\nfunction skipSourceless(line: SourceMapSegment[], index: number): boolean {\n // The start of a line is already sourceless, so adding a sourceless segment to the beginning\n // doesn't generate any useful information.\n if (index === 0) return true;\n\n const prev = line[index - 1];\n // If the previous segment is also sourceless, then adding another sourceless segment doesn't\n // genrate any new information. Else, this segment will end the source/named segment and point to\n // a sourceless position, which is useful.\n return prev.length === 1;\n}\n\nfunction skipSource(\n line: SourceMapSegment[],\n index: number,\n sourcesIndex: number,\n sourceLine: number,\n sourceColumn: number,\n namesIndex: number,\n): boolean {\n // A source/named segment at the start of a line gives position at that genColumn\n if (index === 0) return false;\n\n const prev = line[index - 1];\n\n // If the previous segment is sourceless, then we're transitioning to a source.\n if (prev.length === 1) return false;\n\n // If the previous segment maps to the exact same source position, then this segment doesn't\n // provide any new position information.\n return (\n sourcesIndex === prev[SOURCES_INDEX] &&\n sourceLine === prev[SOURCE_LINE] &&\n sourceColumn === prev[SOURCE_COLUMN] &&\n namesIndex === (prev.length === 5 ? prev[NAMES_INDEX] : NO_NAME)\n );\n}\n\nfunction addMappingInternal<S extends string | null | undefined>(\n skipable: boolean,\n map: GenMapping,\n mapping: {\n generated: Pos;\n source: S;\n original: S extends string ? Pos : null | undefined;\n name: S extends string ? string | null | undefined : null | undefined;\n content: S extends string ? string | null | undefined : null | undefined;\n },\n) {\n const { generated, source, original, name, content } = mapping;\n if (!source) {\n return addSegmentInternal(\n skipable,\n map,\n generated.line - 1,\n generated.column,\n null,\n null,\n null,\n null,\n null,\n );\n }\n assert<Pos>(original);\n return addSegmentInternal(\n skipable,\n map,\n generated.line - 1,\n generated.column,\n source as string,\n original.line - 1,\n original.column,\n name,\n content,\n );\n}\n\n/*\nexport function addOriginalScope(\n map: GenMapping,\n data: {\n start: Pos;\n end: Pos;\n source: string;\n kind: string;\n name?: string;\n variables?: string[];\n },\n): OriginalScopeInfo {\n const { start, end, source, kind, name, variables } = data;\n const {\n _sources: sources,\n _sourcesContent: sourcesContent,\n _originalScopes: originalScopes,\n _names: names,\n } = cast(map);\n const index = put(sources, source);\n if (index === sourcesContent.length) sourcesContent[index] = null;\n if (index === originalScopes.length) originalScopes[index] = [];\n\n const kindIndex = put(names, kind);\n const scope: OriginalScope = name\n ? [start.line - 1, start.column, end.line - 1, end.column, kindIndex, put(names, name)]\n : [start.line - 1, start.column, end.line - 1, end.column, kindIndex];\n if (variables) {\n scope.vars = variables.map((v) => put(names, v));\n }\n const len = originalScopes[index].push(scope);\n return [index, len - 1, variables];\n}\n*/\n\n// Generated Ranges\n/*\nexport function addGeneratedRange(\n map: GenMapping,\n data: {\n start: Pos;\n isScope: boolean;\n originalScope?: OriginalScopeInfo;\n callsite?: OriginalPos;\n },\n): GeneratedRangeInfo {\n const { start, isScope, originalScope, callsite } = data;\n const {\n _originalScopes: originalScopes,\n _sources: sources,\n _sourcesContent: sourcesContent,\n _generatedRanges: generatedRanges,\n } = cast(map);\n\n const range: GeneratedRange = [\n start.line - 1,\n start.column,\n 0,\n 0,\n originalScope ? originalScope[0] : -1,\n originalScope ? originalScope[1] : -1,\n ];\n if (originalScope?.[2]) {\n range.bindings = originalScope[2].map(() => [[-1]]);\n }\n if (callsite) {\n const index = put(sources, callsite.source);\n if (index === sourcesContent.length) sourcesContent[index] = null;\n if (index === originalScopes.length) originalScopes[index] = [];\n range.callsite = [index, callsite.line - 1, callsite.column];\n }\n if (isScope) range.isScope = true;\n generatedRanges.push(range);\n\n return [range, originalScope?.[2]];\n}\n\nexport function setEndPosition(range: GeneratedRangeInfo, pos: Pos) {\n range[0][2] = pos.line - 1;\n range[0][3] = pos.column;\n}\n\nexport function addBinding(\n map: GenMapping,\n range: GeneratedRangeInfo,\n variable: string,\n expression: string | BindingExpressionRange,\n) {\n const { _names: names } = cast(map);\n const bindings = (range[0].bindings ||= []);\n const vars = range[1];\n\n const index = vars!.indexOf(variable);\n const binding = getIndex(bindings, index);\n\n if (typeof expression === 'string') binding[0] = [put(names, expression)];\n else {\n const { start } = expression;\n binding.push([put(names, expression.expression), start.line - 1, start.column]);\n }\n}\n*/\n","type GeneratedColumn = number;\ntype SourcesIndex = number;\ntype SourceLine = number;\ntype SourceColumn = number;\ntype NamesIndex = number;\n\nexport type SourceMapSegment =\n | [GeneratedColumn]\n | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn]\n | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn, NamesIndex];\n\nexport const COLUMN = 0;\nexport const SOURCES_INDEX = 1;\nexport const SOURCE_LINE = 2;\nexport const SOURCE_COLUMN = 3;\nexport const NAMES_INDEX = 4;\n","import { TraceMap } from '@jridgewell/trace-mapping';\n\nimport { OriginalSource, MapSource } from './source-map-tree';\n\nimport type { Sources, MapSource as MapSourceType } from './source-map-tree';\nimport type { SourceMapInput, SourceMapLoader, LoaderContext } from './types';\n\nfunction asArray<T>(value: T | T[]): T[] {\n if (Array.isArray(value)) return value;\n return [value];\n}\n\n/**\n * Recursively builds a tree structure out of sourcemap files, with each node\n * being either an `OriginalSource` \"leaf\" or a `SourceMapTree` composed of\n * `OriginalSource`s and `SourceMapTree`s.\n *\n * Every sourcemap is composed of a collection of source files and mappings\n * into locations of those source files. When we generate a `SourceMapTree` for\n * the sourcemap, we attempt to load each source file's own sourcemap. If it\n * does not have an associated sourcemap, it is considered an original,\n * unmodified source file.\n */\nexport default function buildSourceMapTree(\n input: SourceMapInput | SourceMapInput[],\n loader: SourceMapLoader,\n): MapSourceType {\n const maps = asArray(input).map((m) => new TraceMap(m, ''));\n const map = maps.pop()!;\n\n for (let i = 0; i < maps.length; i++) {\n if (maps[i].sources.length > 1) {\n throw new Error(\n `Transformation map ${i} must have exactly one source file.\\n` +\n 'Did you specify these with the most recent transformation maps first?',\n );\n }\n }\n\n let tree = build(map, loader, '', 0);\n for (let i = maps.length - 1; i >= 0; i--) {\n tree = MapSource(maps[i], [tree]);\n }\n return tree;\n}\n\nfunction build(\n map: TraceMap,\n loader: SourceMapLoader,\n importer: string,\n importerDepth: number,\n): MapSourceType {\n const { resolvedSources, sourcesContent, ignoreList } = map;\n\n const depth = importerDepth + 1;\n const children = resolvedSources.map((sourceFile: string | null, i: number): Sources => {\n // The loading context gives the loader more information about why this file is being loaded\n // (eg, from which importer). It also allows the loader to override the location of the loaded\n // sourcemap/original source, or to override the content in the sourcesContent field if it's\n // an unmodified source file.\n const ctx: LoaderContext = {\n importer,\n depth,\n source: sourceFile || '',\n content: undefined,\n ignore: undefined,\n };\n\n // Use the provided loader callback to retrieve the file's sourcemap.\n // TODO: We should eventually support async loading of sourcemap files.\n const sourceMap = loader(ctx.source, ctx);\n\n const { source, content, ignore } = ctx;\n\n // If there is a sourcemap, then we need to recurse into it to load its source files.\n if (sourceMap) return build(new TraceMap(sourceMap, source), loader, source, depth);\n\n // Else, it's an unmodified source file.\n // The contents of this unmodified source file can be overridden via the loader context,\n // allowing it to be explicitly null or a string. If it remains undefined, we fall back to\n // the importing sourcemap's `sourcesContent` field.\n const sourceContent =\n content !== undefined ? content : sourcesContent ? sourcesContent[i] : null;\n const ignored = ignore !== undefined ? ignore : ignoreList ? ignoreList.includes(i) : false;\n return OriginalSource(source, sourceContent, ignored);\n });\n\n return MapSource(map, children);\n}\n","import { GenMapping, maybeAddSegment, setIgnore, setSourceContent } from '@jridgewell/gen-mapping';\nimport { traceSegment, decodedMappings } from '@jridgewell/trace-mapping';\n\nimport type { TraceMap } from '@jridgewell/trace-mapping';\n\nexport type SourceMapSegmentObject = {\n column: number;\n line: number;\n name: string;\n source: string;\n content: string | null;\n ignore: boolean;\n};\n\nexport type OriginalSource = {\n map: null;\n sources: Sources[];\n source: string;\n content: string | null;\n ignore: boolean;\n};\n\nexport type MapSource = {\n map: TraceMap;\n sources: Sources[];\n source: string;\n content: null;\n ignore: false;\n};\n\nexport type Sources = OriginalSource | MapSource;\n\nconst SOURCELESS_MAPPING = /* #__PURE__ */ SegmentObject('', -1, -1, '', null, false);\nconst EMPTY_SOURCES: Sources[] = [];\n\nfunction SegmentObject(\n source: string,\n line: number,\n column: number,\n name: string,\n content: string | null,\n ignore: boolean,\n): SourceMapSegmentObject {\n return { source, line, column, name, content, ignore };\n}\n\nfunction Source(\n map: TraceMap,\n sources: Sources[],\n source: '',\n content: null,\n ignore: false,\n): MapSource;\nfunction Source(\n map: null,\n sources: Sources[],\n source: string,\n content: string | null,\n ignore: boolean,\n): OriginalSource;\nfunction Source(\n map: TraceMap | null,\n sources: Sources[],\n source: string | '',\n content: string | null,\n ignore: boolean,\n): Sources {\n return {\n map,\n sources,\n source,\n content,\n ignore,\n } as any;\n}\n\n/**\n * MapSource represents a single sourcemap, with the ability to trace mappings into its child nodes\n * (which may themselves be SourceMapTrees).\n */\nexport function MapSource(map: TraceMap, sources: Sources[]): MapSource {\n return Source(map, sources, '', null, false);\n}\n\n/**\n * A \"leaf\" node in the sourcemap tree, representing an original, unmodified source file. Recursive\n * segment tracing ends at the `OriginalSource`.\n */\nexport function OriginalSource(\n source: string,\n content: string | null,\n ignore: boolean,\n): OriginalSource {\n return Source(null, EMPTY_SOURCES, source, content, ignore);\n}\n\n/**\n * traceMappings is only called on the root level SourceMapTree, and begins the process of\n * resolving each mapping in terms of the original source files.\n */\nexport function traceMappings(tree: MapSource): GenMapping {\n // TODO: Eventually support sourceRoot, which has to be removed because the sources are already\n // fully resolved. We'll need to make sources relative to the sourceRoot before adding them.\n const gen = new GenMapping({ file: tree.map.file });\n const { sources: rootSources, map } = tree;\n const rootNames = map.names;\n const rootMappings = decodedMappings(map);\n\n for (let i = 0; i < rootMappings.length; i++) {\n const segments = rootMappings[i];\n\n for (let j = 0; j < segments.length; j++) {\n const segment = segments[j];\n const genCol = segment[0];\n let traced: SourceMapSegmentObject | null = SOURCELESS_MAPPING;\n\n // 1-length segments only move the current generated column, there's no source information\n // to gather from it.\n if (segment.length !== 1) {\n const source = rootSources[segment[1]];\n traced = originalPositionFor(\n source,\n segment[2],\n segment[3],\n segment.length === 5 ? rootNames[segment[4]] : '',\n );\n\n // If the trace is invalid, then the trace ran into a sourcemap that doesn't contain a\n // respective segment into an original source.\n if (traced == null) continue;\n }\n\n const { column, line, name, content, source, ignore } = traced;\n\n maybeAddSegment(gen, i, genCol, source, line, column, name);\n if (source && content != null) setSourceContent(gen, source, content);\n if (ignore) setIgnore(gen, source, true);\n }\n }\n\n return gen;\n}\n\n/**\n * originalPositionFor is only called on children SourceMapTrees. It recurses down into its own\n * child SourceMapTrees, until we find the original source map.\n */\nexport function originalPositionFor(\n source: Sources,\n line: number,\n column: number,\n name: string,\n): SourceMapSegmentObject | null {\n if (!source.map) {\n return SegmentObject(source.source, line, column, name, source.content, source.ignore);\n }\n\n const segment = traceSegment(source.map, line, column);\n\n // If we couldn't find a segment, then this doesn't exist in the sourcemap.\n if (segment == null) return null;\n // 1-length segments only move the current generated column, there's no source information\n // to gather from it.\n if (segment.length === 1) return SOURCELESS_MAPPING;\n\n return originalPositionFor(\n source.sources[segment[1]],\n segment[2],\n segment[3],\n segment.length === 5 ? source.map.names[segment[4]] : name,\n );\n}\n","import { toDecodedMap, toEncodedMap } from '@jridgewell/gen-mapping';\n\nimport type { GenMapping } from '@jridgewell/gen-mapping';\nimport type { DecodedSourceMap, EncodedSourceMap, Options } from './types';\n\n/**\n * A SourceMap v3 compatible sourcemap, which only includes fields that were\n * provided to it.\n */\nexport default class SourceMap {\n declare file?: string | null;\n declare mappings: EncodedSourceMap['mappings'] | DecodedSourceMap['mappings'];\n declare sourceRoot?: string;\n declare names: string[];\n declare sources: (string | null)[];\n declare sourcesContent?: (string | null)[];\n declare version: 3;\n declare ignoreList: number[] | undefined;\n\n constructor(map: GenMapping, options: Options) {\n const out = options.decodedMappings ? toDecodedMap(map) : toEncodedMap(map);\n this.version = out.version; // SourceMap spec says this should be first.\n this.file = out.file;\n this.mappings = out.mappings as SourceMap['mappings'];\n this.names = out.names as SourceMap['names'];\n this.ignoreList = out.ignoreList as SourceMap['ignoreList'];\n this.sourceRoot = out.sourceRoot;\n\n this.sources = out.sources as SourceMap['sources'];\n if (!options.excludeContent) {\n this.sourcesContent = out.sourcesContent as SourceMap['sourcesContent'];\n }\n }\n\n toString(): string {\n return JSON.stringify(this);\n }\n}\n","import buildSourceMapTree from './build-source-map-tree';\nimport { traceMappings } from './source-map-tree';\nimport SourceMap from './source-map';\n\nimport type { SourceMapInput, SourceMapLoader, Options } from './types';\nexport type {\n SourceMapSegment,\n EncodedSourceMap,\n EncodedSourceMap as RawSourceMap,\n DecodedSourceMap,\n SourceMapInput,\n SourceMapLoader,\n LoaderContext,\n Options,\n} from './types';\nexport type { SourceMap };\n\n/**\n * Traces through all the mappings in the root sourcemap, through the sources\n * (and their sourcemaps), all the way back to the original source location.\n *\n * `loader` will be called every time we encounter a source file. If it returns\n * a sourcemap, we will recurse into that sourcemap to continue the trace. If\n * it returns a falsey value, that source file is treated as an original,\n * unmodified source file.\n *\n * Pass `excludeContent` to exclude any self-containing source file content\n * from the output sourcemap.\n *\n * Pass `decodedMappings` to receive a SourceMap with decoded (instead of\n * VLQ encoded) mappings.\n */\nexport default function remapping(\n input: SourceMapInput | SourceMapInput[],\n loader: SourceMapLoader,\n options?: boolean | Options,\n): SourceMap {\n const opts =\n typeof options === 'object' ? options : { excludeContent: !!options, decodedMappings: false };\n const tree = buildSourceMapTree(input, loader);\n return new SourceMap(traceMappings(tree), opts);\n}\n","// This file was generated. Do not modify manually!\nvar 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, 7, 9, 32, 4, 318, 1, 78, 5, 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, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 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, 199, 7, 137, 9, 54, 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, 55, 9, 266, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 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, 245, 1, 2, 9, 233, 0, 3, 0, 8, 1, 6, 0, 475, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];\n\n// This file was generated. Do not modify manually!\nvar 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, 4, 51, 13, 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, 7, 25, 39, 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, 39, 27, 10, 22, 251, 41, 7, 1, 17, 5, 57, 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, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 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, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 24, 43, 261, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 33, 24, 3, 24, 45, 74, 6, 0, 67, 12, 65, 1, 2, 0, 15, 4, 10, 7381, 42, 31, 98, 114, 8702, 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, 229, 29, 3, 0, 208, 30, 2, 2, 2, 1, 2, 6, 3, 4, 10, 1, 225, 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, 4381, 3, 5773, 3, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 8489];\n\n// This file was generated. Do not modify manually!\nvar 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\\u0897-\\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-\\u1add\\u1ae0-\\u1aeb\\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\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\u30fb\\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\\uff65\";\n\n// This file was generated. Do not modify manually!\nvar 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-\\u088f\\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\\u0c5c\\u0c5d\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cdc-\\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-\\u1c8a\\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-\\ua7dc\\ua7f1-\\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\";\n\n// These are a run-length and offset encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range.\n\n// Reserved word lists for various dialects of the language\n\nvar reservedWords = {\n 3: \"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile\",\n 5: \"class enum extends super const export import\",\n 6: \"enum\",\n strict: \"implements interface let package private protected public static yield\",\n strictBind: \"eval arguments\"\n};\n\n// And the keywords\n\nvar ecma5AndLessKeywords = \"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this\";\n\nvar keywords$1 = {\n 5: ecma5AndLessKeywords,\n \"5module\": ecma5AndLessKeywords + \" export import\",\n 6: ecma5AndLessKeywords + \" const class extends export import super\"\n};\n\nvar keywordRelationalOperator = /^in(stanceof)?$/;\n\n// ## Character categories\n\nvar nonASCIIidentifierStart = new RegExp(\"[\" + nonASCIIidentifierStartChars + \"]\");\nvar nonASCIIidentifier = new RegExp(\"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\");\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code, set) {\n var pos = 0x10000;\n for (var i = 0; i < set.length; i += 2) {\n pos += set[i];\n if (pos > code) { return false }\n pos += set[i + 1];\n if (pos >= code) { return true }\n }\n return false\n}\n\n// Test whether a given character code starts an identifier.\n\nfunction isIdentifierStart(code, astral) {\n if (code < 65) { return code === 36 }\n if (code < 91) { return true }\n if (code < 97) { return code === 95 }\n if (code < 123) { return true }\n if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)) }\n if (astral === false) { return false }\n return isInAstralSet(code, astralIdentifierStartCodes)\n}\n\n// Test whether a given character is part of an identifier.\n\nfunction isIdentifierChar(code, astral) {\n if (code < 48) { return code === 36 }\n if (code < 58) { return true }\n if (code < 65) { return false }\n if (code < 91) { return true }\n if (code < 97) { return code === 95 }\n if (code < 123) { return true }\n if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)) }\n if (astral === false) { return false }\n return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes)\n}\n\n// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between regular\n// expressions and divisions. It is set on all token types that can\n// be followed by an expression (thus, a slash after them would be a\n// regular expression).\n//\n// The `startsExpr` property is used to check if the token ends a\n// `yield` expression. It is set on all token types that either can\n// directly start an expression (like a quotation mark) or can\n// continue an expression (like the body of a string).\n//\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nvar TokenType = function TokenType(label, conf) {\n if ( conf === void 0 ) conf = {};\n\n this.label = label;\n this.keyword = conf.keyword;\n this.beforeExpr = !!conf.beforeExpr;\n this.startsExpr = !!conf.startsExpr;\n this.isLoop = !!conf.isLoop;\n this.isAssign = !!conf.isAssign;\n this.prefix = !!conf.prefix;\n this.postfix = !!conf.postfix;\n this.binop = conf.binop || null;\n this.updateContext = null;\n};\n\nfunction binop(name, prec) {\n return new TokenType(name, {beforeExpr: true, binop: prec})\n}\nvar beforeExpr = {beforeExpr: true}, startsExpr = {startsExpr: true};\n\n// Map keyword names to token types.\n\nvar keywords = {};\n\n// Succinct definitions of keyword token types\nfunction kw(name, options) {\n if ( options === void 0 ) options = {};\n\n options.keyword = name;\n return keywords[name] = new TokenType(name, options)\n}\n\nvar types$1 = {\n num: new TokenType(\"num\", startsExpr),\n regexp: new TokenType(\"regexp\", startsExpr),\n string: new TokenType(\"string\", startsExpr),\n name: new TokenType(\"name\", startsExpr),\n privateId: new TokenType(\"privateId\", startsExpr),\n eof: new TokenType(\"eof\"),\n\n // Punctuation token types.\n bracketL: new TokenType(\"[\", {beforeExpr: true, startsExpr: true}),\n bracketR: new TokenType(\"]\"),\n braceL: new TokenType(\"{\", {beforeExpr: true, startsExpr: true}),\n braceR: new TokenType(\"}\"),\n parenL: new TokenType(\"(\", {beforeExpr: true, startsExpr: true}),\n parenR: new TokenType(\")\"),\n comma: new TokenType(\",\", beforeExpr),\n semi: new TokenType(\";\", beforeExpr),\n colon: new TokenType(\":\", beforeExpr),\n dot: new TokenType(\".\"),\n question: new TokenType(\"?\", beforeExpr),\n questionDot: new TokenType(\"?.\"),\n arrow: new TokenType(\"=>\", beforeExpr),\n template: new TokenType(\"template\"),\n invalidTemplate: new TokenType(\"invalidTemplate\"),\n ellipsis: new TokenType(\"...\", beforeExpr),\n backQuote: new TokenType(\"`\", startsExpr),\n dollarBraceL: new TokenType(\"${\", {beforeExpr: true, startsExpr: true}),\n\n // Operators. These carry several kinds of properties to help the\n // parser use them properly (the presence of these properties is\n // what categorizes them as operators).\n //\n // `binop`, when present, specifies that this operator is a binary\n // operator, and will refer to its precedence.\n //\n // `prefix` and `postfix` mark the operator as a prefix or postfix\n // unary operator.\n //\n // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n // binary operators with a very low precedence, that should result\n // in AssignmentExpression nodes.\n\n eq: new TokenType(\"=\", {beforeExpr: true, isAssign: true}),\n assign: new TokenType(\"_=\", {beforeExpr: true, isAssign: true}),\n incDec: new TokenType(\"++/--\", {prefix: true, postfix: true, startsExpr: true}),\n prefix: new TokenType(\"!/~\", {beforeExpr: true, prefix: true, startsExpr: true}),\n logicalOR: binop(\"||\", 1),\n logicalAND: binop(\"&&\", 2),\n bitwiseOR: binop(\"|\", 3),\n bitwiseXOR: binop(\"^\", 4),\n bitwiseAND: binop(\"&\", 5),\n equality: binop(\"==/!=/===/!==\", 6),\n relational: binop(\"</>/<=/>=\", 7),\n bitShift: binop(\"<</>>/>>>\", 8),\n plusMin: new TokenType(\"+/-\", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}),\n modulo: binop(\"%\", 10),\n star: binop(\"*\", 10),\n slash: binop(\"/\", 10),\n starstar: new TokenType(\"**\", {beforeExpr: true}),\n coalesce: binop(\"??\", 1),\n\n // Keyword token types.\n _break: kw(\"break\"),\n _case: kw(\"case\", beforeExpr),\n _catch: kw(\"catch\"),\n _continue: kw(\"continue\"),\n _debugger: kw(\"debugger\"),\n _default: kw(\"default\", beforeExpr),\n _do: kw(\"do\", {isLoop: true, beforeExpr: true}),\n _else: kw(\"else\", beforeExpr),\n _finally: kw(\"finally\"),\n _for: kw(\"for\", {isLoop: true}),\n _function: kw(\"function\", startsExpr),\n _if: kw(\"if\"),\n _return: kw(\"return\", beforeExpr),\n _switch: kw(\"switch\"),\n _throw: kw(\"throw\", beforeExpr),\n _try: kw(\"try\"),\n _var: kw(\"var\"),\n _const: kw(\"const\"),\n _while: kw(\"while\", {isLoop: true}),\n _with: kw(\"with\"),\n _new: kw(\"new\", {beforeExpr: true, startsExpr: true}),\n _this: kw(\"this\", startsExpr),\n _super: kw(\"super\", startsExpr),\n _class: kw(\"class\", startsExpr),\n _extends: kw(\"extends\", beforeExpr),\n _export: kw(\"export\"),\n _import: kw(\"import\", startsExpr),\n _null: kw(\"null\", startsExpr),\n _true: kw(\"true\", startsExpr),\n _false: kw(\"false\", startsExpr),\n _in: kw(\"in\", {beforeExpr: true, binop: 7}),\n _instanceof: kw(\"instanceof\", {beforeExpr: true, binop: 7}),\n _typeof: kw(\"typeof\", {beforeExpr: true, prefix: true, startsExpr: true}),\n _void: kw(\"void\", {beforeExpr: true, prefix: true, startsExpr: true}),\n _delete: kw(\"delete\", {beforeExpr: true, prefix: true, startsExpr: true})\n};\n\n// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\n\nvar lineBreak = /\\r\\n?|\\n|\\u2028|\\u2029/;\nvar lineBreakG = new RegExp(lineBreak.source, \"g\");\n\nfunction isNewLine(code) {\n return code === 10 || code === 13 || code === 0x2028 || code === 0x2029\n}\n\nfunction nextLineBreak(code, from, end) {\n if ( end === void 0 ) end = code.length;\n\n for (var i = from; i < end; i++) {\n var next = code.charCodeAt(i);\n if (isNewLine(next))\n { return i < end - 1 && next === 13 && code.charCodeAt(i + 1) === 10 ? i + 2 : i + 1 }\n }\n return -1\n}\n\nvar nonASCIIwhitespace = /[\\u1680\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]/;\n\nvar skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\n\nvar ref = Object.prototype;\nvar hasOwnProperty = ref.hasOwnProperty;\nvar toString = ref.toString;\n\nvar hasOwn = Object.hasOwn || (function (obj, propName) { return (\n hasOwnProperty.call(obj, propName)\n); });\n\nvar isArray = Array.isArray || (function (obj) { return (\n toString.call(obj) === \"[object Array]\"\n); });\n\nvar regexpCache = Object.create(null);\n\nfunction wordsRegexp(words) {\n return regexpCache[words] || (regexpCache[words] = new RegExp(\"^(?:\" + words.replace(/ /g, \"|\") + \")$\"))\n}\n\nfunction codePointToString(code) {\n // UTF-16 Decoding\n if (code <= 0xFFFF) { return String.fromCharCode(code) }\n code -= 0x10000;\n return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00)\n}\n\nvar loneSurrogate = /(?:[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])/;\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nvar Position = function Position(line, col) {\n this.line = line;\n this.column = col;\n};\n\nPosition.prototype.offset = function offset (n) {\n return new Position(this.line, this.column + n)\n};\n\nvar SourceLocation = function SourceLocation(p, start, end) {\n this.start = start;\n this.end = end;\n if (p.sourceFile !== null) { this.source = p.sourceFile; }\n};\n\n// The `getLineInfo` function is mostly useful when the\n// `locations` option is off (for performance reasons) and you\n// want to find the line/column position for a given character\n// offset. `input` should be the code string that the offset refers\n// into.\n\nfunction getLineInfo(input, offset) {\n for (var line = 1, cur = 0;;) {\n var nextBreak = nextLineBreak(input, cur, offset);\n if (nextBreak < 0) { return new Position(line, offset - cur) }\n ++line;\n cur = nextBreak;\n }\n}\n\n// A second argument must be given to configure the parser process.\n// These options are recognized (only `ecmaVersion` is required):\n\nvar defaultOptions = {\n // `ecmaVersion` indicates the ECMAScript version to parse. Must be\n // either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10\n // (2019), 11 (2020), 12 (2021), 13 (2022), 14 (2023), or `\"latest\"`\n // (the latest version the library supports). This influences\n // support for strict mode, the set of reserved words, and support\n // for new syntax features.\n ecmaVersion: null,\n // `sourceType` indicates the mode the code should be parsed in.\n // Can be either `\"script\"`, `\"module\"` or `\"commonjs\"`. This influences global\n // strict mode and parsing of `import` and `export` declarations.\n sourceType: \"script\",\n // `onInsertedSemicolon` can be a callback that will be called when\n // a semicolon is automatically inserted. It will be passed the\n // position of the inserted semicolon as an offset, and if\n // `locations` is enabled, it is given the location as a `{line,\n // column}` object as second argument.\n onInsertedSemicolon: null,\n // `onTrailingComma` is similar to `onInsertedSemicolon`, but for\n // trailing commas.\n onTrailingComma: null,\n // By default, reserved words are only enforced if ecmaVersion >= 5.\n // Set `allowReserved` to a boolean value to explicitly turn this on\n // an off. When this option has the value \"never\", reserved words\n // and keywords can also not be used as property names.\n allowReserved: null,\n // When enabled, a return at the top level is not considered an\n // error.\n allowReturnOutsideFunction: false,\n // When enabled, import/export statements are not constrained to\n // appearing at the top of the program, and an import.meta expression\n // in a script isn't considered an error.\n allowImportExportEverywhere: false,\n // By default, await identifiers are allowed to appear at the top-level scope only if ecmaVersion >= 2022.\n // When enabled, await identifiers are allowed to appear at the top-level scope,\n // but they are still not allowed in non-async functions.\n allowAwaitOutsideFunction: null,\n // When enabled, super identifiers are not constrained to\n // appearing in methods and do not raise an error when they appear elsewhere.\n allowSuperOutsideMethod: null,\n // When enabled, hashbang directive in the beginning of file is\n // allowed and treated as a line comment. Enabled by default when\n // `ecmaVersion` >= 2023.\n allowHashBang: false,\n // By default, the parser will verify that private properties are\n // only used in places where they are valid and have been declared.\n // Set this to false to turn such checks off.\n checkPrivateFields: true,\n // When `locations` is on, `loc` properties holding objects with\n // `start` and `end` properties in `{line, column}` form (with\n // line being 1-based and column 0-based) will be attached to the\n // nodes.\n locations: false,\n // A function can be passed as `onToken` option, which will\n // cause Acorn to call that function with object in the same\n // format as tokens returned from `tokenizer().getToken()`. Note\n // that you are not allowed to call the parser from the\n // callback—that will corrupt its internal state.\n onToken: null,\n // A function can be passed as `onComment` option, which will\n // cause Acorn to call that function with `(block, text, start,\n // end)` parameters whenever a comment is skipped. `block` is a\n // boolean indicating whether this is a block (`/* */`) comment,\n // `text` is the content of the comment, and `start` and `end` are\n // character offsets that denote the start and end of the comment.\n // When the `locations` option is on, two more parameters are\n // passed, the full `{line, column}` locations of the start and\n // end of the comments. Note that you are not allowed to call the\n // parser from the callback—that will corrupt its internal state.\n // When this option has an array as value, objects representing the\n // comments are pushed to it.\n onComment: null,\n // Nodes have their start and end characters offsets recorded in\n // `start` and `end` properties (directly on the node, rather than\n // the `loc` object, which holds line/column data. To also add a\n // [semi-standardized][range] `range` property holding a `[start,\n // end]` array with the same numbers, set the `ranges` option to\n // `true`.\n //\n // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n ranges: false,\n // It is possible to parse multiple files into a single AST by\n // passing the tree produced by parsing the first file as\n // `program` option in subsequent parses. This will add the\n // toplevel forms of the parsed file to the `Program` (top) node\n // of an existing parse tree.\n program: null,\n // When `locations` is on, you can pass this to record the source\n // file in every node's `loc` object.\n sourceFile: null,\n // This value, if given, is stored in every node, whether\n // `locations` is on or off.\n directSourceFile: null,\n // When enabled, parenthesized expressions are represented by\n // (non-standard) ParenthesizedExpression nodes\n preserveParens: false\n};\n\n// Interpret and default an options object\n\nvar warnedAboutEcmaVersion = false;\n\nfunction getOptions(opts) {\n var options = {};\n\n for (var opt in defaultOptions)\n { options[opt] = opts && hasOwn(opts, opt) ? opts[opt] : defaultOptions[opt]; }\n\n if (options.ecmaVersion === \"latest\") {\n options.ecmaVersion = 1e8;\n } else if (options.ecmaVersion == null) {\n if (!warnedAboutEcmaVersion && typeof console === \"object\" && console.warn) {\n warnedAboutEcmaVersion = true;\n console.warn(\"Since Acorn 8.0.0, options.ecmaVersion is required.\\nDefaulting to 2020, but this will stop working in the future.\");\n }\n options.ecmaVersion = 11;\n } else if (options.ecmaVersion >= 2015) {\n options.ecmaVersion -= 2009;\n }\n\n if (options.allowReserved == null)\n { options.allowReserved = options.ecmaVersion < 5; }\n\n if (!opts || opts.allowHashBang == null)\n { options.allowHashBang = options.ecmaVersion >= 14; }\n\n if (isArray(options.onToken)) {\n var tokens = options.onToken;\n options.onToken = function (token) { return tokens.push(token); };\n }\n if (isArray(options.onComment))\n { options.onComment = pushComment(options, options.onComment); }\n\n if (options.sourceType === \"commonjs\" && options.allowAwaitOutsideFunction)\n { throw new Error(\"Cannot use allowAwaitOutsideFunction with sourceType: commonjs\") }\n\n return options\n}\n\nfunction pushComment(options, array) {\n return function(block, text, start, end, startLoc, endLoc) {\n var comment = {\n type: block ? \"Block\" : \"Line\",\n value: text,\n start: start,\n end: end\n };\n if (options.locations)\n { comment.loc = new SourceLocation(this, startLoc, endLoc); }\n if (options.ranges)\n { comment.range = [start, end]; }\n array.push(comment);\n }\n}\n\n// Each scope gets a bitset that may contain these flags\nvar\n SCOPE_TOP = 1,\n SCOPE_FUNCTION = 2,\n SCOPE_ASYNC = 4,\n SCOPE_GENERATOR = 8,\n SCOPE_ARROW = 16,\n SCOPE_SIMPLE_CATCH = 32,\n SCOPE_SUPER = 64,\n SCOPE_DIRECT_SUPER = 128,\n SCOPE_CLASS_STATIC_BLOCK = 256,\n SCOPE_CLASS_FIELD_INIT = 512,\n SCOPE_SWITCH = 1024,\n SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK;\n\nfunction functionFlags(async, generator) {\n return SCOPE_FUNCTION | (async ? SCOPE_ASYNC : 0) | (generator ? SCOPE_GENERATOR : 0)\n}\n\n// Used in checkLVal* and declareName to determine the type of a binding\nvar\n BIND_NONE = 0, // Not a binding\n BIND_VAR = 1, // Var-style binding\n BIND_LEXICAL = 2, // Let- or const-style binding\n BIND_FUNCTION = 3, // Function declaration\n BIND_SIMPLE_CATCH = 4, // Simple (identifier pattern) catch binding\n BIND_OUTSIDE = 5; // Special case for function names as bound inside the function\n\nvar Parser = function Parser(options, input, startPos) {\n this.options = options = getOptions(options);\n this.sourceFile = options.sourceFile;\n this.keywords = wordsRegexp(keywords$1[options.ecmaVersion >= 6 ? 6 : options.sourceType === \"module\" ? \"5module\" : 5]);\n var reserved = \"\";\n if (options.allowReserved !== true) {\n reserved = reservedWords[options.ecmaVersion >= 6 ? 6 : options.ecmaVersion === 5 ? 5 : 3];\n if (options.sourceType === \"module\") { reserved += \" await\"; }\n }\n this.reservedWords = wordsRegexp(reserved);\n var reservedStrict = (reserved ? reserved + \" \" : \"\") + reservedWords.strict;\n this.reservedWordsStrict = wordsRegexp(reservedStrict);\n this.reservedWordsStrictBind = wordsRegexp(reservedStrict + \" \" + reservedWords.strictBind);\n this.input = String(input);\n\n // Used to signal to callers of `readWord1` whether the word\n // contained any escape sequences. This is needed because words with\n // escape sequences must not be interpreted as keywords.\n this.containsEsc = false;\n\n // Set up token state\n\n // The current position of the tokenizer in the input.\n if (startPos) {\n this.pos = startPos;\n this.lineStart = this.input.lastIndexOf(\"\\n\", startPos - 1) + 1;\n this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length;\n } else {\n this.pos = this.lineStart = 0;\n this.curLine = 1;\n }\n\n // Properties of the current token:\n // Its type\n this.type = types$1.eof;\n // For tokens that include more information than their type, the value\n this.value = null;\n // Its start and end offset\n this.start = this.end = this.pos;\n // And, if locations are used, the {line, column} object\n // corresponding to those offsets\n this.startLoc = this.endLoc = this.curPosition();\n\n // Position information for the previous token\n this.lastTokEndLoc = this.lastTokStartLoc = null;\n this.lastTokStart = this.lastTokEnd = this.pos;\n\n // The context stack is used to superficially track syntactic\n // context to predict whether a regular expression is allowed in a\n // given position.\n this.context = this.initialContext();\n this.exprAllowed = true;\n\n // Figure out if it's a module code.\n this.inModule = options.sourceType === \"module\";\n this.strict = this.inModule || this.strictDirective(this.pos);\n\n // Used to signify the start of a potential arrow function\n this.potentialArrowAt = -1;\n this.potentialArrowInForAwait = false;\n\n // Positions to delayed-check that yield/await does not exist in default parameters.\n this.yieldPos = this.awaitPos = this.awaitIdentPos = 0;\n // Labels in scope.\n this.labels = [];\n // Thus-far undefined exports.\n this.undefinedExports = Object.create(null);\n\n // If enabled, skip leading hashbang line.\n if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === \"#!\")\n { this.skipLineComment(2); }\n\n // Scope tracking for duplicate variable names (see scope.js)\n this.scopeStack = [];\n this.enterScope(\n this.options.sourceType === \"commonjs\"\n // In commonjs, the top-level scope behaves like a function scope\n ? SCOPE_FUNCTION\n : SCOPE_TOP\n );\n\n // For RegExp validation\n this.regexpState = null;\n\n // The stack of private names.\n // Each element has two properties: 'declared' and 'used'.\n // When it exited from the outermost class definition, all used private names must be declared.\n this.privateNameStack = [];\n};\n\nvar prototypeAccessors = { inFunction: { configurable: true },inGenerator: { configurable: true },inAsync: { configurable: true },canAwait: { configurable: true },allowReturn: { configurable: true },allowSuper: { configurable: true },allowDirectSuper: { configurable: true },treatFunctionsAsVar: { configurable: true },allowNewDotTarget: { configurable: true },allowUsing: { configurable: true },inClassStaticBlock: { configurable: true } };\n\nParser.prototype.parse = function parse () {\n var node = this.options.program || this.startNode();\n this.nextToken();\n return this.parseTopLevel(node)\n};\n\nprototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 };\n\nprototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 };\n\nprototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 };\n\nprototypeAccessors.canAwait.get = function () {\n for (var i = this.scopeStack.length - 1; i >= 0; i--) {\n var ref = this.scopeStack[i];\n var flags = ref.flags;\n if (flags & (SCOPE_CLASS_STATIC_BLOCK | SCOPE_CLASS_FIELD_INIT)) { return false }\n if (flags & SCOPE_FUNCTION) { return (flags & SCOPE_ASYNC) > 0 }\n }\n return (this.inModule && this.options.ecmaVersion >= 13) || this.options.allowAwaitOutsideFunction\n};\n\nprototypeAccessors.allowReturn.get = function () {\n if (this.inFunction) { return true }\n if (this.options.allowReturnOutsideFunction && this.currentVarScope().flags & SCOPE_TOP) { return true }\n return false\n};\n\nprototypeAccessors.allowSuper.get = function () {\n var ref = this.currentThisScope();\n var flags = ref.flags;\n return (flags & SCOPE_SUPER) > 0 || this.options.allowSuperOutsideMethod\n};\n\nprototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 };\n\nprototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) };\n\nprototypeAccessors.allowNewDotTarget.get = function () {\n for (var i = this.scopeStack.length - 1; i >= 0; i--) {\n var ref = this.scopeStack[i];\n var flags = ref.flags;\n if (flags & (SCOPE_CLASS_STATIC_BLOCK | SCOPE_CLASS_FIELD_INIT) ||\n ((flags & SCOPE_FUNCTION) && !(flags & SCOPE_ARROW))) { return true }\n }\n return false\n};\n\nprototypeAccessors.allowUsing.get = function () {\n var ref = this.currentScope();\n var flags = ref.flags;\n if (flags & SCOPE_SWITCH) { return false }\n if (!this.inModule && flags & SCOPE_TOP) { return false }\n return true\n};\n\nprototypeAccessors.inClassStaticBlock.get = function () {\n return (this.currentVarScope().flags & SCOPE_CLASS_STATIC_BLOCK) > 0\n};\n\nParser.extend = function extend () {\n var plugins = [], len = arguments.length;\n while ( len-- ) plugins[ len ] = arguments[ len ];\n\n var cls = this;\n for (var i = 0; i < plugins.length; i++) { cls = plugins[i](cls); }\n return cls\n};\n\nParser.parse = function parse (input, options) {\n return new this(options, input).parse()\n};\n\nParser.parseExpressionAt = function parseExpressionAt (input, pos, options) {\n var parser = new this(options, input, pos);\n parser.nextToken();\n return parser.parseExpression()\n};\n\nParser.tokenizer = function tokenizer (input, options) {\n return new this(options, input)\n};\n\nObject.defineProperties( Parser.prototype, prototypeAccessors );\n\nvar pp$9 = Parser.prototype;\n\n// ## Parser utilities\n\nvar literal = /^(?:'((?:\\\\[^]|[^'\\\\])*?)'|\"((?:\\\\[^]|[^\"\\\\])*?)\")/;\npp$9.strictDirective = function(start) {\n if (this.options.ecmaVersion < 5) { return false }\n for (;;) {\n // Try to find string literal.\n skipWhiteSpace.lastIndex = start;\n start += skipWhiteSpace.exec(this.input)[0].length;\n var match = literal.exec(this.input.slice(start));\n if (!match) { return false }\n if ((match[1] || match[2]) === \"use strict\") {\n skipWhiteSpace.lastIndex = start + match[0].length;\n var spaceAfter = skipWhiteSpace.exec(this.input), end = spaceAfter.index + spaceAfter[0].length;\n var next = this.input.charAt(end);\n return next === \";\" || next === \"}\" ||\n (lineBreak.test(spaceAfter[0]) &&\n !(/[(`.[+\\-/*%<>=,?^&]/.test(next) || next === \"!\" && this.input.charAt(end + 1) === \"=\"))\n }\n start += match[0].length;\n\n // Skip semicolon, if any.\n skipWhiteSpace.lastIndex = start;\n start += skipWhiteSpace.exec(this.input)[0].length;\n if (this.input[start] === \";\")\n { start++; }\n }\n};\n\n// Predicate that tests whether the next token is of the given\n// type, and if yes, consumes it as a side effect.\n\npp$9.eat = function(type) {\n if (this.type === type) {\n this.next();\n return true\n } else {\n return false\n }\n};\n\n// Tests whether parsed token is a contextual keyword.\n\npp$9.isContextual = function(name) {\n return this.type === types$1.name && this.value === name && !this.containsEsc\n};\n\n// Consumes contextual keyword if possible.\n\npp$9.eatContextual = function(name) {\n if (!this.isContextual(name)) { return false }\n this.next();\n return true\n};\n\n// Asserts that following token is given contextual keyword.\n\npp$9.expectContextual = function(name) {\n if (!this.eatContextual(name)) { this.unexpected(); }\n};\n\n// Test whether a semicolon can be inserted at the current position.\n\npp$9.canInsertSemicolon = function() {\n return this.type === types$1.eof ||\n this.type === types$1.braceR ||\n lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n};\n\npp$9.insertSemicolon = function() {\n if (this.canInsertSemicolon()) {\n if (this.options.onInsertedSemicolon)\n { this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc); }\n return true\n }\n};\n\n// Consume a semicolon, or, failing that, see if we are allowed to\n// pretend that there is a semicolon at this position.\n\npp$9.semicolon = function() {\n if (!this.eat(types$1.semi) && !this.insertSemicolon()) { this.unexpected(); }\n};\n\npp$9.afterTrailingComma = function(tokType, notNext) {\n if (this.type === tokType) {\n if (this.options.onTrailingComma)\n { this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc); }\n if (!notNext)\n { this.next(); }\n return true\n }\n};\n\n// Expect a token of a given type. If found, consume it, otherwise,\n// raise an unexpected token error.\n\npp$9.expect = function(type) {\n this.eat(type) || this.unexpected();\n};\n\n// Raise an unexpected token error.\n\npp$9.unexpected = function(pos) {\n this.raise(pos != null ? pos : this.start, \"Unexpected token\");\n};\n\nvar DestructuringErrors = function DestructuringErrors() {\n this.shorthandAssign =\n this.trailingComma =\n this.parenthesizedAssign =\n this.parenthesizedBind =\n this.doubleProto =\n -1;\n};\n\npp$9.checkPatternErrors = function(refDestructuringErrors, isAssign) {\n if (!refDestructuringErrors) { return }\n if (refDestructuringErrors.trailingComma > -1)\n { this.raiseRecoverable(refDestructuringErrors.trailingComma, \"Comma is not permitted after the rest element\"); }\n var parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind;\n if (parens > -1) { this.raiseRecoverable(parens, isAssign ? \"Assigning to rvalue\" : \"Parenthesized pattern\"); }\n};\n\npp$9.checkExpressionErrors = function(refDestructuringErrors, andThrow) {\n if (!refDestructuringErrors) { return false }\n var shorthandAssign = refDestructuringErrors.shorthandAssign;\n var doubleProto = refDestructuringErrors.doubleProto;\n if (!andThrow) { return shorthandAssign >= 0 || doubleProto >= 0 }\n if (shorthandAssign >= 0)\n { this.raise(shorthandAssign, \"Shorthand property assignments are valid only in destructuring patterns\"); }\n if (doubleProto >= 0)\n { this.raiseRecoverable(doubleProto, \"Redefinition of __proto__ property\"); }\n};\n\npp$9.checkYieldAwaitInDefaultParams = function() {\n if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos))\n { this.raise(this.yieldPos, \"Yield expression cannot be a default value\"); }\n if (this.awaitPos)\n { this.raise(this.awaitPos, \"Await expression cannot be a default value\"); }\n};\n\npp$9.isSimpleAssignTarget = function(expr) {\n if (expr.type === \"ParenthesizedExpression\")\n { return this.isSimpleAssignTarget(expr.expression) }\n return expr.type === \"Identifier\" || expr.type === \"MemberExpression\"\n};\n\nvar pp$8 = Parser.prototype;\n\n// ### Statement parsing\n\n// Parse a program. Initializes the parser, reads any number of\n// statements, and wraps them in a Program node. Optionally takes a\n// `program` argument. If present, the statements will be appended\n// to its body instead of creating a new node.\n\npp$8.parseTopLevel = function(node) {\n var exports = Object.create(null);\n if (!node.body) { node.body = []; }\n while (this.type !== types$1.eof) {\n var stmt = this.parseStatement(null, true, exports);\n node.body.push(stmt);\n }\n if (this.inModule)\n { for (var i = 0, list = Object.keys(this.undefinedExports); i < list.length; i += 1)\n {\n var name = list[i];\n\n this.raiseRecoverable(this.undefinedExports[name].start, (\"Export '\" + name + \"' is not defined\"));\n } }\n this.adaptDirectivePrologue(node.body);\n this.next();\n node.sourceType = this.options.sourceType === \"commonjs\" ? \"script\" : this.options.sourceType;\n return this.finishNode(node, \"Program\")\n};\n\nvar loopLabel = {kind: \"loop\"}, switchLabel = {kind: \"switch\"};\n\npp$8.isLet = function(context) {\n if (this.options.ecmaVersion < 6 || !this.isContextual(\"let\")) { return false }\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, nextCh = this.fullCharCodeAt(next);\n // For ambiguous cases, determine if a LexicalDeclaration (or only a\n // Statement) is allowed here. If context is not empty then only a Statement\n // is allowed. However, `let [` is an explicit negative lookahead for\n // ExpressionStatement, so special-case it first.\n if (nextCh === 91 || nextCh === 92) { return true } // '[', '\\'\n if (context) { return false }\n\n if (nextCh === 123) { return true } // '{'\n if (isIdentifierStart(nextCh)) {\n var start = next;\n do { next += nextCh <= 0xffff ? 1 : 2; }\n while (isIdentifierChar(nextCh = this.fullCharCodeAt(next)))\n if (nextCh === 92) { return true }\n var ident = this.input.slice(start, next);\n if (!keywordRelationalOperator.test(ident)) { return true }\n }\n return false\n};\n\n// check 'async [no LineTerminator here] function'\n// - 'async /*foo*/ function' is OK.\n// - 'async /*\\n*/ function' is invalid.\npp$8.isAsyncFunction = function() {\n if (this.options.ecmaVersion < 8 || !this.isContextual(\"async\"))\n { return false }\n\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, after;\n return !lineBreak.test(this.input.slice(this.pos, next)) &&\n this.input.slice(next, next + 8) === \"function\" &&\n (next + 8 === this.input.length ||\n !(isIdentifierChar(after = this.fullCharCodeAt(next + 8)) || after === 92 /* '\\' */))\n};\n\npp$8.isUsingKeyword = function(isAwaitUsing, isFor) {\n if (this.options.ecmaVersion < 17 || !this.isContextual(isAwaitUsing ? \"await\" : \"using\"))\n { return false }\n\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length;\n\n if (lineBreak.test(this.input.slice(this.pos, next))) { return false }\n\n if (isAwaitUsing) {\n var usingEndPos = next + 5 /* using */, after;\n if (this.input.slice(next, usingEndPos) !== \"using\" ||\n usingEndPos === this.input.length ||\n isIdentifierChar(after = this.fullCharCodeAt(usingEndPos)) ||\n after === 92 /* '\\' */\n ) { return false }\n\n skipWhiteSpace.lastIndex = usingEndPos;\n var skipAfterUsing = skipWhiteSpace.exec(this.input);\n next = usingEndPos + skipAfterUsing[0].length;\n if (skipAfterUsing && lineBreak.test(this.input.slice(usingEndPos, next))) { return false }\n }\n\n var ch = this.fullCharCodeAt(next);\n if (!isIdentifierStart(ch) && ch !== 92 /* '\\' */) { return false }\n var idStart = next;\n do { next += ch <= 0xffff ? 1 : 2; }\n while (isIdentifierChar(ch = this.fullCharCodeAt(next)))\n if (ch === 92) { return true }\n var id = this.input.slice(idStart, next);\n if (keywordRelationalOperator.test(id) || isFor && id === \"of\") { return false }\n return true\n};\n\npp$8.isAwaitUsing = function(isFor) {\n return this.isUsingKeyword(true, isFor)\n};\n\npp$8.isUsing = function(isFor) {\n return this.isUsingKeyword(false, isFor)\n};\n\n// Parse a single statement.\n//\n// If expecting a statement and finding a slash operator, parse a\n// regular expression literal. This is to handle cases like\n// `if (foo) /blah/.exec(foo)`, where looking at the previous token\n// does not help.\n\npp$8.parseStatement = function(context, topLevel, exports) {\n var starttype = this.type, node = this.startNode(), kind;\n\n if (this.isLet(context)) {\n starttype = types$1._var;\n kind = \"let\";\n }\n\n // Most types of statements are recognized by the keyword they\n // start with. Many are trivial to parse, some require a bit of\n // complexity.\n\n switch (starttype) {\n case types$1._break: case types$1._continue: return this.parseBreakContinueStatement(node, starttype.keyword)\n case types$1._debugger: return this.parseDebuggerStatement(node)\n case types$1._do: return this.parseDoStatement(node)\n case types$1._for: return this.parseForStatement(node)\n case types$1._function:\n // Function as sole body of either an if statement or a labeled statement\n // works, but not when it is part of a labeled statement that is the sole\n // body of an if statement.\n if ((context && (this.strict || context !== \"if\" && context !== \"label\")) && this.options.ecmaVersion >= 6) { this.unexpected(); }\n return this.parseFunctionStatement(node, false, !context)\n case types$1._class:\n if (context) { this.unexpected(); }\n return this.parseClass(node, true)\n case types$1._if: return this.parseIfStatement(node)\n case types$1._return: return this.parseReturnStatement(node)\n case types$1._switch: return this.parseSwitchStatement(node)\n case types$1._throw: return this.parseThrowStatement(node)\n case types$1._try: return this.parseTryStatement(node)\n case types$1._const: case types$1._var:\n kind = kind || this.value;\n if (context && kind !== \"var\") { this.unexpected(); }\n return this.parseVarStatement(node, kind)\n case types$1._while: return this.parseWhileStatement(node)\n case types$1._with: return this.parseWithStatement(node)\n case types$1.braceL: return this.parseBlock(true, node)\n case types$1.semi: return this.parseEmptyStatement(node)\n case types$1._export:\n case types$1._import:\n if (this.options.ecmaVersion > 10 && starttype === types$1._import) {\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next);\n if (nextCh === 40 || nextCh === 46) // '(' or '.'\n { return this.parseExpressionStatement(node, this.parseExpression()) }\n }\n\n if (!this.options.allowImportExportEverywhere) {\n if (!topLevel)\n { this.raise(this.start, \"'import' and 'export' may only appear at the top level\"); }\n if (!this.inModule)\n { this.raise(this.start, \"'import' and 'export' may appear only with 'sourceType: module'\"); }\n }\n return starttype === types$1._import ? this.parseImport(node) : this.parseExport(node, exports)\n\n // If the statement does not start with a statement keyword or a\n // brace, it's an ExpressionStatement or LabeledStatement. We\n // simply start parsing an expression, and afterwards, if the\n // next token is a colon and the expression was a simple\n // Identifier node, we switch to interpreting it as a label.\n default:\n if (this.isAsyncFunction()) {\n if (context) { this.unexpected(); }\n this.next();\n return this.parseFunctionStatement(node, true, !context)\n }\n\n var usingKind = this.isAwaitUsing(false) ? \"await using\" : this.isUsing(false) ? \"using\" : null;\n if (usingKind) {\n if (!this.allowUsing) {\n this.raise(this.start, \"Using declaration cannot appear in the top level when source type is `script` or in the bare case statement\");\n }\n if (usingKind === \"await using\") {\n if (!this.canAwait) {\n this.raise(this.start, \"Await using cannot appear outside of async function\");\n }\n this.next();\n }\n this.next();\n this.parseVar(node, false, usingKind);\n this.semicolon();\n return this.finishNode(node, \"VariableDeclaration\")\n }\n\n var maybeName = this.value, expr = this.parseExpression();\n if (starttype === types$1.name && expr.type === \"Identifier\" && this.eat(types$1.colon))\n { return this.parseLabeledStatement(node, maybeName, expr, context) }\n else { return this.parseExpressionStatement(node, expr) }\n }\n};\n\npp$8.parseBreakContinueStatement = function(node, keyword) {\n var isBreak = keyword === \"break\";\n this.next();\n if (this.eat(types$1.semi) || this.insertSemicolon()) { node.label = null; }\n else if (this.type !== types$1.name) { this.unexpected(); }\n else {\n node.label = this.parseIdent();\n this.semicolon();\n }\n\n // Verify that there is an actual destination to break or\n // continue to.\n var i = 0;\n for (; i < this.labels.length; ++i) {\n var lab = this.labels[i];\n if (node.label == null || lab.name === node.label.name) {\n if (lab.kind != null && (isBreak || lab.kind === \"loop\")) { break }\n if (node.label && isBreak) { break }\n }\n }\n if (i === this.labels.length) { this.raise(node.start, \"Unsyntactic \" + keyword); }\n return this.finishNode(node, isBreak ? \"BreakStatement\" : \"ContinueStatement\")\n};\n\npp$8.parseDebuggerStatement = function(node) {\n this.next();\n this.semicolon();\n return this.finishNode(node, \"DebuggerStatement\")\n};\n\npp$8.parseDoStatement = function(node) {\n this.next();\n this.labels.push(loopLabel);\n node.body = this.parseStatement(\"do\");\n this.labels.pop();\n this.expect(types$1._while);\n node.test = this.parseParenExpression();\n if (this.options.ecmaVersion >= 6)\n { this.eat(types$1.semi); }\n else\n { this.semicolon(); }\n return this.finishNode(node, \"DoWhileStatement\")\n};\n\n// Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n// loop is non-trivial. Basically, we have to parse the init `var`\n// statement or expression, disallowing the `in` operator (see\n// the second parameter to `parseExpression`), and then check\n// whether the next token is `in` or `of`. When there is no init\n// part (semicolon immediately after the opening parenthesis), it\n// is a regular `for` loop.\n\npp$8.parseForStatement = function(node) {\n this.next();\n var awaitAt = (this.options.ecmaVersion >= 9 && this.canAwait && this.eatContextual(\"await\")) ? this.lastTokStart : -1;\n this.labels.push(loopLabel);\n this.enterScope(0);\n this.expect(types$1.parenL);\n if (this.type === types$1.semi) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, null)\n }\n var isLet = this.isLet();\n if (this.type === types$1._var || this.type === types$1._const || isLet) {\n var init$1 = this.startNode(), kind = isLet ? \"let\" : this.value;\n this.next();\n this.parseVar(init$1, true, kind);\n this.finishNode(init$1, \"VariableDeclaration\");\n return this.parseForAfterInit(node, init$1, awaitAt)\n }\n var startsWithLet = this.isContextual(\"let\"), isForOf = false;\n\n var usingKind = this.isUsing(true) ? \"using\" : this.isAwaitUsing(true) ? \"await using\" : null;\n if (usingKind) {\n var init$2 = this.startNode();\n this.next();\n if (usingKind === \"await using\") {\n if (!this.canAwait) {\n this.raise(this.start, \"Await using cannot appear outside of async function\");\n }\n this.next();\n }\n this.parseVar(init$2, true, usingKind);\n this.finishNode(init$2, \"VariableDeclaration\");\n return this.parseForAfterInit(node, init$2, awaitAt)\n }\n var containsEsc = this.containsEsc;\n var refDestructuringErrors = new DestructuringErrors;\n var initPos = this.start;\n var init = awaitAt > -1\n ? this.parseExprSubscripts(refDestructuringErrors, \"await\")\n : this.parseExpression(true, refDestructuringErrors);\n if (this.type === types$1._in || (isForOf = this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) {\n if (awaitAt > -1) { // implies `ecmaVersion >= 9` (see declaration of awaitAt)\n if (this.type === types$1._in) { this.unexpected(awaitAt); }\n node.await = true;\n } else if (isForOf && this.options.ecmaVersion >= 8) {\n if (init.start === initPos && !containsEsc && init.type === \"Identifier\" && init.name === \"async\") { this.unexpected(); }\n else if (this.options.ecmaVersion >= 9) { node.await = false; }\n }\n if (startsWithLet && isForOf) { this.raise(init.start, \"The left-hand side of a for-of loop may not start with 'let'.\"); }\n this.toAssignable(init, false, refDestructuringErrors);\n this.checkLValPattern(init);\n return this.parseForIn(node, init)\n } else {\n this.checkExpressionErrors(refDestructuringErrors, true);\n }\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, init)\n};\n\n// Helper method to parse for loop after variable initialization\npp$8.parseForAfterInit = function(node, init, awaitAt) {\n if ((this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) && init.declarations.length === 1) {\n if (this.options.ecmaVersion >= 9) {\n if (this.type === types$1._in) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n } else { node.await = awaitAt > -1; }\n }\n return this.parseForIn(node, init)\n }\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, init)\n};\n\npp$8.parseFunctionStatement = function(node, isAsync, declarationPosition) {\n this.next();\n return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync)\n};\n\npp$8.parseIfStatement = function(node) {\n this.next();\n node.test = this.parseParenExpression();\n // allow function declarations in branches, but only in non-strict mode\n node.consequent = this.parseStatement(\"if\");\n node.alternate = this.eat(types$1._else) ? this.parseStatement(\"if\") : null;\n return this.finishNode(node, \"IfStatement\")\n};\n\npp$8.parseReturnStatement = function(node) {\n if (!this.allowReturn)\n { this.raise(this.start, \"'return' outside of function\"); }\n this.next();\n\n // In `return` (and `break`/`continue`), the keywords with\n // optional arguments, we eagerly look for a semicolon or the\n // possibility to insert one.\n\n if (this.eat(types$1.semi) || this.insertSemicolon()) { node.argument = null; }\n else { node.argument = this.parseExpression(); this.semicolon(); }\n return this.finishNode(node, \"ReturnStatement\")\n};\n\npp$8.parseSwitchStatement = function(node) {\n this.next();\n node.discriminant = this.parseParenExpression();\n node.cases = [];\n this.expect(types$1.braceL);\n this.labels.push(switchLabel);\n this.enterScope(SCOPE_SWITCH);\n\n // Statements under must be grouped (by label) in SwitchCase\n // nodes. `cur` is used to keep the node that we are currently\n // adding statements to.\n\n var cur;\n for (var sawDefault = false; this.type !== types$1.braceR;) {\n if (this.type === types$1._case || this.type === types$1._default) {\n var isCase = this.type === types$1._case;\n if (cur) { this.finishNode(cur, \"SwitchCase\"); }\n node.cases.push(cur = this.startNode());\n cur.consequent = [];\n this.next();\n if (isCase) {\n cur.test = this.parseExpression();\n } else {\n if (sawDefault) { this.raiseRecoverable(this.lastTokStart, \"Multiple default clauses\"); }\n sawDefault = true;\n cur.test = null;\n }\n this.expect(types$1.colon);\n } else {\n if (!cur) { this.unexpected(); }\n cur.consequent.push(this.parseStatement(null));\n }\n }\n this.exitScope();\n if (cur) { this.finishNode(cur, \"SwitchCase\"); }\n this.next(); // Closing brace\n this.labels.pop();\n return this.finishNode(node, \"SwitchStatement\")\n};\n\npp$8.parseThrowStatement = function(node) {\n this.next();\n if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start)))\n { this.raise(this.lastTokEnd, \"Illegal newline after throw\"); }\n node.argument = this.parseExpression();\n this.semicolon();\n return this.finishNode(node, \"ThrowStatement\")\n};\n\n// Reused empty array added for node fields that are always empty.\n\nvar empty$1 = [];\n\npp$8.parseCatchClauseParam = function() {\n var param = this.parseBindingAtom();\n var simple = param.type === \"Identifier\";\n this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0);\n this.checkLValPattern(param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL);\n this.expect(types$1.parenR);\n\n return param\n};\n\npp$8.parseTryStatement = function(node) {\n this.next();\n node.block = this.parseBlock();\n node.handler = null;\n if (this.type === types$1._catch) {\n var clause = this.startNode();\n this.next();\n if (this.eat(types$1.parenL)) {\n clause.param = this.parseCatchClauseParam();\n } else {\n if (this.options.ecmaVersion < 10) { this.unexpected(); }\n clause.param = null;\n this.enterScope(0);\n }\n clause.body = this.parseBlock(false);\n this.exitScope();\n node.handler = this.finishNode(clause, \"CatchClause\");\n }\n node.finalizer = this.eat(types$1._finally) ? this.parseBlock() : null;\n if (!node.handler && !node.finalizer)\n { this.raise(node.start, \"Missing catch or finally clause\"); }\n return this.finishNode(node, \"TryStatement\")\n};\n\npp$8.parseVarStatement = function(node, kind, allowMissingInitializer) {\n this.next();\n this.parseVar(node, false, kind, allowMissingInitializer);\n this.semicolon();\n return this.finishNode(node, \"VariableDeclaration\")\n};\n\npp$8.parseWhileStatement = function(node) {\n this.next();\n node.test = this.parseParenExpression();\n this.labels.push(loopLabel);\n node.body = this.parseStatement(\"while\");\n this.labels.pop();\n return this.finishNode(node, \"WhileStatement\")\n};\n\npp$8.parseWithStatement = function(node) {\n if (this.strict) { this.raise(this.start, \"'with' in strict mode\"); }\n this.next();\n node.object = this.parseParenExpression();\n node.body = this.parseStatement(\"with\");\n return this.finishNode(node, \"WithStatement\")\n};\n\npp$8.parseEmptyStatement = function(node) {\n this.next();\n return this.finishNode(node, \"EmptyStatement\")\n};\n\npp$8.parseLabeledStatement = function(node, maybeName, expr, context) {\n for (var i$1 = 0, list = this.labels; i$1 < list.length; i$1 += 1)\n {\n var label = list[i$1];\n\n if (label.name === maybeName)\n { this.raise(expr.start, \"Label '\" + maybeName + \"' is already declared\");\n } }\n var kind = this.type.isLoop ? \"loop\" : this.type === types$1._switch ? \"switch\" : null;\n for (var i = this.labels.length - 1; i >= 0; i--) {\n var label$1 = this.labels[i];\n if (label$1.statementStart === node.start) {\n // Update information about previous labels on this node\n label$1.statementStart = this.start;\n label$1.kind = kind;\n } else { break }\n }\n this.labels.push({name: maybeName, kind: kind, statementStart: this.start});\n node.body = this.parseStatement(context ? context.indexOf(\"label\") === -1 ? context + \"label\" : context : \"label\");\n this.labels.pop();\n node.label = expr;\n return this.finishNode(node, \"LabeledStatement\")\n};\n\npp$8.parseExpressionStatement = function(node, expr) {\n node.expression = expr;\n this.semicolon();\n return this.finishNode(node, \"ExpressionStatement\")\n};\n\n// Parse a semicolon-enclosed block of statements, handling `\"use\n// strict\"` declarations when `allowStrict` is true (used for\n// function bodies).\n\npp$8.parseBlock = function(createNewLexicalScope, node, exitStrict) {\n if ( createNewLexicalScope === void 0 ) createNewLexicalScope = true;\n if ( node === void 0 ) node = this.startNode();\n\n node.body = [];\n this.expect(types$1.braceL);\n if (createNewLexicalScope) { this.enterScope(0); }\n while (this.type !== types$1.braceR) {\n var stmt = this.parseStatement(null);\n node.body.push(stmt);\n }\n if (exitStrict) { this.strict = false; }\n this.next();\n if (createNewLexicalScope) { this.exitScope(); }\n return this.finishNode(node, \"BlockStatement\")\n};\n\n// Parse a regular `for` loop. The disambiguation code in\n// `parseStatement` will already have parsed the init statement or\n// expression.\n\npp$8.parseFor = function(node, init) {\n node.init = init;\n this.expect(types$1.semi);\n node.test = this.type === types$1.semi ? null : this.parseExpression();\n this.expect(types$1.semi);\n node.update = this.type === types$1.parenR ? null : this.parseExpression();\n this.expect(types$1.parenR);\n node.body = this.parseStatement(\"for\");\n this.exitScope();\n this.labels.pop();\n return this.finishNode(node, \"ForStatement\")\n};\n\n// Parse a `for`/`in` and `for`/`of` loop, which are almost\n// same from parser's perspective.\n\npp$8.parseForIn = function(node, init) {\n var isForIn = this.type === types$1._in;\n this.next();\n\n if (\n init.type === \"VariableDeclaration\" &&\n init.declarations[0].init != null &&\n (\n !isForIn ||\n this.options.ecmaVersion < 8 ||\n this.strict ||\n init.kind !== \"var\" ||\n init.declarations[0].id.type !== \"Identifier\"\n )\n ) {\n this.raise(\n init.start,\n ((isForIn ? \"for-in\" : \"for-of\") + \" loop variable declaration may not have an initializer\")\n );\n }\n node.left = init;\n node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign();\n this.expect(types$1.parenR);\n node.body = this.parseStatement(\"for\");\n this.exitScope();\n this.labels.pop();\n return this.finishNode(node, isForIn ? \"ForInStatement\" : \"ForOfStatement\")\n};\n\n// Parse a list of variable declarations.\n\npp$8.parseVar = function(node, isFor, kind, allowMissingInitializer) {\n node.declarations = [];\n node.kind = kind;\n for (;;) {\n var decl = this.startNode();\n this.parseVarId(decl, kind);\n if (this.eat(types$1.eq)) {\n decl.init = this.parseMaybeAssign(isFor);\n } else if (!allowMissingInitializer && kind === \"const\" && !(this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\")))) {\n this.unexpected();\n } else if (!allowMissingInitializer && (kind === \"using\" || kind === \"await using\") && this.options.ecmaVersion >= 17 && this.type !== types$1._in && !this.isContextual(\"of\")) {\n this.raise(this.lastTokEnd, (\"Missing initializer in \" + kind + \" declaration\"));\n } else if (!allowMissingInitializer && decl.id.type !== \"Identifier\" && !(isFor && (this.type === types$1._in || this.isContextual(\"of\")))) {\n this.raise(this.lastTokEnd, \"Complex binding patterns require an initialization value\");\n } else {\n decl.init = null;\n }\n node.declarations.push(this.finishNode(decl, \"VariableDeclarator\"));\n if (!this.eat(types$1.comma)) { break }\n }\n return node\n};\n\npp$8.parseVarId = function(decl, kind) {\n decl.id = kind === \"using\" || kind === \"await using\"\n ? this.parseIdent()\n : this.parseBindingAtom();\n\n this.checkLValPattern(decl.id, kind === \"var\" ? BIND_VAR : BIND_LEXICAL, false);\n};\n\nvar FUNC_STATEMENT = 1, FUNC_HANGING_STATEMENT = 2, FUNC_NULLABLE_ID = 4;\n\n// Parse a function declaration or literal (depending on the\n// `statement & FUNC_STATEMENT`).\n\n// Remove `allowExpressionBody` for 7.0.0, as it is only called with false\npp$8.parseFunction = function(node, statement, allowExpressionBody, isAsync, forInit) {\n this.initFunction(node);\n if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) {\n if (this.type === types$1.star && (statement & FUNC_HANGING_STATEMENT))\n { this.unexpected(); }\n node.generator = this.eat(types$1.star);\n }\n if (this.options.ecmaVersion >= 8)\n { node.async = !!isAsync; }\n\n if (statement & FUNC_STATEMENT) {\n node.id = (statement & FUNC_NULLABLE_ID) && this.type !== types$1.name ? null : this.parseIdent();\n if (node.id && !(statement & FUNC_HANGING_STATEMENT))\n // If it is a regular function declaration in sloppy mode, then it is\n // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding\n // mode depends on properties of the current scope (see\n // treatFunctionsAsVar).\n { this.checkLValSimple(node.id, (this.strict || node.generator || node.async) ? this.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION); }\n }\n\n var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n this.enterScope(functionFlags(node.async, node.generator));\n\n if (!(statement & FUNC_STATEMENT))\n { node.id = this.type === types$1.name ? this.parseIdent() : null; }\n\n this.parseFunctionParams(node);\n this.parseFunctionBody(node, allowExpressionBody, false, forInit);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, (statement & FUNC_STATEMENT) ? \"FunctionDeclaration\" : \"FunctionExpression\")\n};\n\npp$8.parseFunctionParams = function(node) {\n this.expect(types$1.parenL);\n node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8);\n this.checkYieldAwaitInDefaultParams();\n};\n\n// Parse a class declaration or literal (depending on the\n// `isStatement` parameter).\n\npp$8.parseClass = function(node, isStatement) {\n this.next();\n\n // ecma-262 14.6 Class Definitions\n // A class definition is always strict mode code.\n var oldStrict = this.strict;\n this.strict = true;\n\n this.parseClassId(node, isStatement);\n this.parseClassSuper(node);\n var privateNameMap = this.enterClassBody();\n var classBody = this.startNode();\n var hadConstructor = false;\n classBody.body = [];\n this.expect(types$1.braceL);\n while (this.type !== types$1.braceR) {\n var element = this.parseClassElement(node.superClass !== null);\n if (element) {\n classBody.body.push(element);\n if (element.type === \"MethodDefinition\" && element.kind === \"constructor\") {\n if (hadConstructor) { this.raiseRecoverable(element.start, \"Duplicate constructor in the same class\"); }\n hadConstructor = true;\n } else if (element.key && element.key.type === \"PrivateIdentifier\" && isPrivateNameConflicted(privateNameMap, element)) {\n this.raiseRecoverable(element.key.start, (\"Identifier '#\" + (element.key.name) + \"' has already been declared\"));\n }\n }\n }\n this.strict = oldStrict;\n this.next();\n node.body = this.finishNode(classBody, \"ClassBody\");\n this.exitClassBody();\n return this.finishNode(node, isStatement ? \"ClassDeclaration\" : \"ClassExpression\")\n};\n\npp$8.parseClassElement = function(constructorAllowsSuper) {\n if (this.eat(types$1.semi)) { return null }\n\n var ecmaVersion = this.options.ecmaVersion;\n var node = this.startNode();\n var keyName = \"\";\n var isGenerator = false;\n var isAsync = false;\n var kind = \"method\";\n var isStatic = false;\n\n if (this.eatContextual(\"static\")) {\n // Parse static init block\n if (ecmaVersion >= 13 && this.eat(types$1.braceL)) {\n this.parseClassStaticBlock(node);\n return node\n }\n if (this.isClassElementNameStart() || this.type === types$1.star) {\n isStatic = true;\n } else {\n keyName = \"static\";\n }\n }\n node.static = isStatic;\n if (!keyName && ecmaVersion >= 8 && this.eatContextual(\"async\")) {\n if ((this.isClassElementNameStart() || this.type === types$1.star) && !this.canInsertSemicolon()) {\n isAsync = true;\n } else {\n keyName = \"async\";\n }\n }\n if (!keyName && (ecmaVersion >= 9 || !isAsync) && this.eat(types$1.star)) {\n isGenerator = true;\n }\n if (!keyName && !isAsync && !isGenerator) {\n var lastValue = this.value;\n if (this.eatContextual(\"get\") || this.eatContextual(\"set\")) {\n if (this.isClassElementNameStart()) {\n kind = lastValue;\n } else {\n keyName = lastValue;\n }\n }\n }\n\n // Parse element name\n if (keyName) {\n // 'async', 'get', 'set', or 'static' were not a keyword contextually.\n // The last token is any of those. Make it the element name.\n node.computed = false;\n node.key = this.startNodeAt(this.lastTokStart, this.lastTokStartLoc);\n node.key.name = keyName;\n this.finishNode(node.key, \"Identifier\");\n } else {\n this.parseClassElementName(node);\n }\n\n // Parse element value\n if (ecmaVersion < 13 || this.type === types$1.parenL || kind !== \"method\" || isGenerator || isAsync) {\n var isConstructor = !node.static && checkKeyName(node, \"constructor\");\n var allowsDirectSuper = isConstructor && constructorAllowsSuper;\n // Couldn't move this check into the 'parseClassMethod' method for backward compatibility.\n if (isConstructor && kind !== \"method\") { this.raise(node.key.start, \"Constructor can't have get/set modifier\"); }\n node.kind = isConstructor ? \"constructor\" : kind;\n this.parseClassMethod(node, isGenerator, isAsync, allowsDirectSuper);\n } else {\n this.parseClassField(node);\n }\n\n return node\n};\n\npp$8.isClassElementNameStart = function() {\n return (\n this.type === types$1.name ||\n this.type === types$1.privateId ||\n this.type === types$1.num ||\n this.type === types$1.string ||\n this.type === types$1.bracketL ||\n this.type.keyword\n )\n};\n\npp$8.parseClassElementName = function(element) {\n if (this.type === types$1.privateId) {\n if (this.value === \"constructor\") {\n this.raise(this.start, \"Classes can't have an element named '#constructor'\");\n }\n element.computed = false;\n element.key = this.parsePrivateIdent();\n } else {\n this.parsePropertyName(element);\n }\n};\n\npp$8.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) {\n // Check key and flags\n var key = method.key;\n if (method.kind === \"constructor\") {\n if (isGenerator) { this.raise(key.start, \"Constructor can't be a generator\"); }\n if (isAsync) { this.raise(key.start, \"Constructor can't be an async method\"); }\n } else if (method.static && checkKeyName(method, \"prototype\")) {\n this.raise(key.start, \"Classes may not have a static property named prototype\");\n }\n\n // Parse value\n var value = method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper);\n\n // Check value\n if (method.kind === \"get\" && value.params.length !== 0)\n { this.raiseRecoverable(value.start, \"getter should have no params\"); }\n if (method.kind === \"set\" && value.params.length !== 1)\n { this.raiseRecoverable(value.start, \"setter should have exactly one param\"); }\n if (method.kind === \"set\" && value.params[0].type === \"RestElement\")\n { this.raiseRecoverable(value.params[0].start, \"Setter cannot use rest params\"); }\n\n return this.finishNode(method, \"MethodDefinition\")\n};\n\npp$8.parseClassField = function(field) {\n if (checkKeyName(field, \"constructor\")) {\n this.raise(field.key.start, \"Classes can't have a field named 'constructor'\");\n } else if (field.static && checkKeyName(field, \"prototype\")) {\n this.raise(field.key.start, \"Classes can't have a static field named 'prototype'\");\n }\n\n if (this.eat(types$1.eq)) {\n // To raise SyntaxError if 'arguments' exists in the initializer.\n this.enterScope(SCOPE_CLASS_FIELD_INIT | SCOPE_SUPER);\n field.value = this.parseMaybeAssign();\n this.exitScope();\n } else {\n field.value = null;\n }\n this.semicolon();\n\n return this.finishNode(field, \"PropertyDefinition\")\n};\n\npp$8.parseClassStaticBlock = function(node) {\n node.body = [];\n\n var oldLabels = this.labels;\n this.labels = [];\n this.enterScope(SCOPE_CLASS_STATIC_BLOCK | SCOPE_SUPER);\n while (this.type !== types$1.braceR) {\n var stmt = this.parseStatement(null);\n node.body.push(stmt);\n }\n this.next();\n this.exitScope();\n this.labels = oldLabels;\n\n return this.finishNode(node, \"StaticBlock\")\n};\n\npp$8.parseClassId = function(node, isStatement) {\n if (this.type === types$1.name) {\n node.id = this.parseIdent();\n if (isStatement)\n { this.checkLValSimple(node.id, BIND_LEXICAL, false); }\n } else {\n if (isStatement === true)\n { this.unexpected(); }\n node.id = null;\n }\n};\n\npp$8.parseClassSuper = function(node) {\n node.superClass = this.eat(types$1._extends) ? this.parseExprSubscripts(null, false) : null;\n};\n\npp$8.enterClassBody = function() {\n var element = {declared: Object.create(null), used: []};\n this.privateNameStack.push(element);\n return element.declared\n};\n\npp$8.exitClassBody = function() {\n var ref = this.privateNameStack.pop();\n var declared = ref.declared;\n var used = ref.used;\n if (!this.options.checkPrivateFields) { return }\n var len = this.privateNameStack.length;\n var parent = len === 0 ? null : this.privateNameStack[len - 1];\n for (var i = 0; i < used.length; ++i) {\n var id = used[i];\n if (!hasOwn(declared, id.name)) {\n if (parent) {\n parent.used.push(id);\n } else {\n this.raiseRecoverable(id.start, (\"Private field '#\" + (id.name) + \"' must be declared in an enclosing class\"));\n }\n }\n }\n};\n\nfunction isPrivateNameConflicted(privateNameMap, element) {\n var name = element.key.name;\n var curr = privateNameMap[name];\n\n var next = \"true\";\n if (element.type === \"MethodDefinition\" && (element.kind === \"get\" || element.kind === \"set\")) {\n next = (element.static ? \"s\" : \"i\") + element.kind;\n }\n\n // `class { get #a(){}; static set #a(_){} }` is also conflict.\n if (\n curr === \"iget\" && next === \"iset\" ||\n curr === \"iset\" && next === \"iget\" ||\n curr === \"sget\" && next === \"sset\" ||\n curr === \"sset\" && next === \"sget\"\n ) {\n privateNameMap[name] = \"true\";\n return false\n } else if (!curr) {\n privateNameMap[name] = next;\n return false\n } else {\n return true\n }\n}\n\nfunction checkKeyName(node, name) {\n var computed = node.computed;\n var key = node.key;\n return !computed && (\n key.type === \"Identifier\" && key.name === name ||\n key.type === \"Literal\" && key.value === name\n )\n}\n\n// Parses module export declaration.\n\npp$8.parseExportAllDeclaration = function(node, exports) {\n if (this.options.ecmaVersion >= 11) {\n if (this.eatContextual(\"as\")) {\n node.exported = this.parseModuleExportName();\n this.checkExport(exports, node.exported, this.lastTokStart);\n } else {\n node.exported = null;\n }\n }\n this.expectContextual(\"from\");\n if (this.type !== types$1.string) { this.unexpected(); }\n node.source = this.parseExprAtom();\n if (this.options.ecmaVersion >= 16)\n { node.attributes = this.parseWithClause(); }\n this.semicolon();\n return this.finishNode(node, \"ExportAllDeclaration\")\n};\n\npp$8.parseExport = function(node, exports) {\n this.next();\n // export * from '...'\n if (this.eat(types$1.star)) {\n return this.parseExportAllDeclaration(node, exports)\n }\n if (this.eat(types$1._default)) { // export default ...\n this.checkExport(exports, \"default\", this.lastTokStart);\n node.declaration = this.parseExportDefaultDeclaration();\n return this.finishNode(node, \"ExportDefaultDeclaration\")\n }\n // export var|const|let|function|class ...\n if (this.shouldParseExportStatement()) {\n node.declaration = this.parseExportDeclaration(node);\n if (node.declaration.type === \"VariableDeclaration\")\n { this.checkVariableExport(exports, node.declaration.declarations); }\n else\n { this.checkExport(exports, node.declaration.id, node.declaration.id.start); }\n node.specifiers = [];\n node.source = null;\n if (this.options.ecmaVersion >= 16)\n { node.attributes = []; }\n } else { // export { x, y as z } [from '...']\n node.declaration = null;\n node.specifiers = this.parseExportSpecifiers(exports);\n if (this.eatContextual(\"from\")) {\n if (this.type !== types$1.string) { this.unexpected(); }\n node.source = this.parseExprAtom();\n if (this.options.ecmaVersion >= 16)\n { node.attributes = this.parseWithClause(); }\n } else {\n for (var i = 0, list = node.specifiers; i < list.length; i += 1) {\n // check for keywords used as local names\n var spec = list[i];\n\n this.checkUnreserved(spec.local);\n // check if export is defined\n this.checkLocalExport(spec.local);\n\n if (spec.local.type === \"Literal\") {\n this.raise(spec.local.start, \"A string literal cannot be used as an exported binding without `from`.\");\n }\n }\n\n node.source = null;\n if (this.options.ecmaVersion >= 16)\n { node.attributes = []; }\n }\n this.semicolon();\n }\n return this.finishNode(node, \"ExportNamedDeclaration\")\n};\n\npp$8.parseExportDeclaration = function(node) {\n return this.parseStatement(null)\n};\n\npp$8.parseExportDefaultDeclaration = function() {\n var isAsync;\n if (this.type === types$1._function || (isAsync = this.isAsyncFunction())) {\n var fNode = this.startNode();\n this.next();\n if (isAsync) { this.next(); }\n return this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync)\n } else if (this.type === types$1._class) {\n var cNode = this.startNode();\n return this.parseClass(cNode, \"nullableID\")\n } else {\n var declaration = this.parseMaybeAssign();\n this.semicolon();\n return declaration\n }\n};\n\npp$8.checkExport = function(exports, name, pos) {\n if (!exports) { return }\n if (typeof name !== \"string\")\n { name = name.type === \"Identifier\" ? name.name : name.value; }\n if (hasOwn(exports, name))\n { this.raiseRecoverable(pos, \"Duplicate export '\" + name + \"'\"); }\n exports[name] = true;\n};\n\npp$8.checkPatternExport = function(exports, pat) {\n var type = pat.type;\n if (type === \"Identifier\")\n { this.checkExport(exports, pat, pat.start); }\n else if (type === \"ObjectPattern\")\n { for (var i = 0, list = pat.properties; i < list.length; i += 1)\n {\n var prop = list[i];\n\n this.checkPatternExport(exports, prop);\n } }\n else if (type === \"ArrayPattern\")\n { for (var i$1 = 0, list$1 = pat.elements; i$1 < list$1.length; i$1 += 1) {\n var elt = list$1[i$1];\n\n if (elt) { this.checkPatternExport(exports, elt); }\n } }\n else if (type === \"Property\")\n { this.checkPatternExport(exports, pat.value); }\n else if (type === \"AssignmentPattern\")\n { this.checkPatternExport(exports, pat.left); }\n else if (type === \"RestElement\")\n { this.checkPatternExport(exports, pat.argument); }\n};\n\npp$8.checkVariableExport = function(exports, decls) {\n if (!exports) { return }\n for (var i = 0, list = decls; i < list.length; i += 1)\n {\n var decl = list[i];\n\n this.checkPatternExport(exports, decl.id);\n }\n};\n\npp$8.shouldParseExportStatement = function() {\n return this.type.keyword === \"var\" ||\n this.type.keyword === \"const\" ||\n this.type.keyword === \"class\" ||\n this.type.keyword === \"function\" ||\n this.isLet() ||\n this.isAsyncFunction()\n};\n\n// Parses a comma-separated list of module exports.\n\npp$8.parseExportSpecifier = function(exports) {\n var node = this.startNode();\n node.local = this.parseModuleExportName();\n\n node.exported = this.eatContextual(\"as\") ? this.parseModuleExportName() : node.local;\n this.checkExport(\n exports,\n node.exported,\n node.exported.start\n );\n\n return this.finishNode(node, \"ExportSpecifier\")\n};\n\npp$8.parseExportSpecifiers = function(exports) {\n var nodes = [], first = true;\n // export { x, y as z } [from '...']\n this.expect(types$1.braceL);\n while (!this.eat(types$1.braceR)) {\n if (!first) {\n this.expect(types$1.comma);\n if (this.afterTrailingComma(types$1.braceR)) { break }\n } else { first = false; }\n\n nodes.push(this.parseExportSpecifier(exports));\n }\n return nodes\n};\n\n// Parses import declaration.\n\npp$8.parseImport = function(node) {\n this.next();\n\n // import '...'\n if (this.type === types$1.string) {\n node.specifiers = empty$1;\n node.source = this.parseExprAtom();\n } else {\n node.specifiers = this.parseImportSpecifiers();\n this.expectContextual(\"from\");\n node.source = this.type === types$1.string ? this.parseExprAtom() : this.unexpected();\n }\n if (this.options.ecmaVersion >= 16)\n { node.attributes = this.parseWithClause(); }\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\")\n};\n\n// Parses a comma-separated list of module imports.\n\npp$8.parseImportSpecifier = function() {\n var node = this.startNode();\n node.imported = this.parseModuleExportName();\n\n if (this.eatContextual(\"as\")) {\n node.local = this.parseIdent();\n } else {\n this.checkUnreserved(node.imported);\n node.local = node.imported;\n }\n this.checkLValSimple(node.local, BIND_LEXICAL);\n\n return this.finishNode(node, \"ImportSpecifier\")\n};\n\npp$8.parseImportDefaultSpecifier = function() {\n // import defaultObj, { x, y as z } from '...'\n var node = this.startNode();\n node.local = this.parseIdent();\n this.checkLValSimple(node.local, BIND_LEXICAL);\n return this.finishNode(node, \"ImportDefaultSpecifier\")\n};\n\npp$8.parseImportNamespaceSpecifier = function() {\n var node = this.startNode();\n this.next();\n this.expectContextual(\"as\");\n node.local = this.parseIdent();\n this.checkLValSimple(node.local, BIND_LEXICAL);\n return this.finishNode(node, \"ImportNamespaceSpecifier\")\n};\n\npp$8.parseImportSpecifiers = function() {\n var nodes = [], first = true;\n if (this.type === types$1.name) {\n nodes.push(this.parseImportDefaultSpecifier());\n if (!this.eat(types$1.comma)) { return nodes }\n }\n if (this.type === types$1.star) {\n nodes.push(this.parseImportNamespaceSpecifier());\n return nodes\n }\n this.expect(types$1.braceL);\n while (!this.eat(types$1.braceR)) {\n if (!first) {\n this.expect(types$1.comma);\n if (this.afterTrailingComma(types$1.braceR)) { break }\n } else { first = false; }\n\n nodes.push(this.parseImportSpecifier());\n }\n return nodes\n};\n\npp$8.parseWithClause = function() {\n var nodes = [];\n if (!this.eat(types$1._with)) {\n return nodes\n }\n this.expect(types$1.braceL);\n var attributeKeys = {};\n var first = true;\n while (!this.eat(types$1.braceR)) {\n if (!first) {\n this.expect(types$1.comma);\n if (this.afterTrailingComma(types$1.braceR)) { break }\n } else { first = false; }\n\n var attr = this.parseImportAttribute();\n var keyName = attr.key.type === \"Identifier\" ? attr.key.name : attr.key.value;\n if (hasOwn(attributeKeys, keyName))\n { this.raiseRecoverable(attr.key.start, \"Duplicate attribute key '\" + keyName + \"'\"); }\n attributeKeys[keyName] = true;\n nodes.push(attr);\n }\n return nodes\n};\n\npp$8.parseImportAttribute = function() {\n var node = this.startNode();\n node.key = this.type === types$1.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== \"never\");\n this.expect(types$1.colon);\n if (this.type !== types$1.string) {\n this.unexpected();\n }\n node.value = this.parseExprAtom();\n return this.finishNode(node, \"ImportAttribute\")\n};\n\npp$8.parseModuleExportName = function() {\n if (this.options.ecmaVersion >= 13 && this.type === types$1.string) {\n var stringLiteral = this.parseLiteral(this.value);\n if (loneSurrogate.test(stringLiteral.value)) {\n this.raise(stringLiteral.start, \"An export name cannot include a lone surrogate.\");\n }\n return stringLiteral\n }\n return this.parseIdent(true)\n};\n\n// Set `ExpressionStatement#directive` property for directive prologues.\npp$8.adaptDirectivePrologue = function(statements) {\n for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) {\n statements[i].directive = statements[i].expression.raw.slice(1, -1);\n }\n};\npp$8.isDirectiveCandidate = function(statement) {\n return (\n this.options.ecmaVersion >= 5 &&\n statement.type === \"ExpressionStatement\" &&\n statement.expression.type === \"Literal\" &&\n typeof statement.expression.value === \"string\" &&\n // Reject parenthesized strings.\n (this.input[statement.start] === \"\\\"\" || this.input[statement.start] === \"'\")\n )\n};\n\nvar pp$7 = Parser.prototype;\n\n// Convert existing expression atom to assignable pattern\n// if possible.\n\npp$7.toAssignable = function(node, isBinding, refDestructuringErrors) {\n if (this.options.ecmaVersion >= 6 && node) {\n switch (node.type) {\n case \"Identifier\":\n if (this.inAsync && node.name === \"await\")\n { this.raise(node.start, \"Cannot use 'await' as identifier inside an async function\"); }\n break\n\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n case \"AssignmentPattern\":\n case \"RestElement\":\n break\n\n case \"ObjectExpression\":\n node.type = \"ObjectPattern\";\n if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n for (var i = 0, list = node.properties; i < list.length; i += 1) {\n var prop = list[i];\n\n this.toAssignable(prop, isBinding);\n // Early error:\n // AssignmentRestProperty[Yield, Await] :\n // `...` DestructuringAssignmentTarget[Yield, Await]\n //\n // It is a Syntax Error if |DestructuringAssignmentTarget| is an |ArrayLiteral| or an |ObjectLiteral|.\n if (\n prop.type === \"RestElement\" &&\n (prop.argument.type === \"ArrayPattern\" || prop.argument.type === \"ObjectPattern\")\n ) {\n this.raise(prop.argument.start, \"Unexpected token\");\n }\n }\n break\n\n case \"Property\":\n // AssignmentProperty has type === \"Property\"\n if (node.kind !== \"init\") { this.raise(node.key.start, \"Object pattern can't contain getter or setter\"); }\n this.toAssignable(node.value, isBinding);\n break\n\n case \"ArrayExpression\":\n node.type = \"ArrayPattern\";\n if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n this.toAssignableList(node.elements, isBinding);\n break\n\n case \"SpreadElement\":\n node.type = \"RestElement\";\n this.toAssignable(node.argument, isBinding);\n if (node.argument.type === \"AssignmentPattern\")\n { this.raise(node.argument.start, \"Rest elements cannot have a default value\"); }\n break\n\n case \"AssignmentExpression\":\n if (node.operator !== \"=\") { this.raise(node.left.end, \"Only '=' operator can be used for specifying default value.\"); }\n node.type = \"AssignmentPattern\";\n delete node.operator;\n this.toAssignable(node.left, isBinding);\n break\n\n case \"ParenthesizedExpression\":\n this.toAssignable(node.expression, isBinding, refDestructuringErrors);\n break\n\n case \"ChainExpression\":\n this.raiseRecoverable(node.start, \"Optional chaining cannot appear in left-hand side\");\n break\n\n case \"MemberExpression\":\n if (!isBinding) { break }\n\n default:\n this.raise(node.start, \"Assigning to rvalue\");\n }\n } else if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n return node\n};\n\n// Convert list of expression atoms to binding list.\n\npp$7.toAssignableList = function(exprList, isBinding) {\n var end = exprList.length;\n for (var i = 0; i < end; i++) {\n var elt = exprList[i];\n if (elt) { this.toAssignable(elt, isBinding); }\n }\n if (end) {\n var last = exprList[end - 1];\n if (this.options.ecmaVersion === 6 && isBinding && last && last.type === \"RestElement\" && last.argument.type !== \"Identifier\")\n { this.unexpected(last.argument.start); }\n }\n return exprList\n};\n\n// Parses spread element.\n\npp$7.parseSpread = function(refDestructuringErrors) {\n var node = this.startNode();\n this.next();\n node.argument = this.parseMaybeAssign(false, refDestructuringErrors);\n return this.finishNode(node, \"SpreadElement\")\n};\n\npp$7.parseRestBinding = function() {\n var node = this.startNode();\n this.next();\n\n // RestElement inside of a function parameter must be an identifier\n if (this.options.ecmaVersion === 6 && this.type !== types$1.name)\n { this.unexpected(); }\n\n node.argument = this.parseBindingAtom();\n\n return this.finishNode(node, \"RestElement\")\n};\n\n// Parses lvalue (assignable) atom.\n\npp$7.parseBindingAtom = function() {\n if (this.options.ecmaVersion >= 6) {\n switch (this.type) {\n case types$1.bracketL:\n var node = this.startNode();\n this.next();\n node.elements = this.parseBindingList(types$1.bracketR, true, true);\n return this.finishNode(node, \"ArrayPattern\")\n\n case types$1.braceL:\n return this.parseObj(true)\n }\n }\n return this.parseIdent()\n};\n\npp$7.parseBindingList = function(close, allowEmpty, allowTrailingComma, allowModifiers) {\n var elts = [], first = true;\n while (!this.eat(close)) {\n if (first) { first = false; }\n else { this.expect(types$1.comma); }\n if (allowEmpty && this.type === types$1.comma) {\n elts.push(null);\n } else if (allowTrailingComma && this.afterTrailingComma(close)) {\n break\n } else if (this.type === types$1.ellipsis) {\n var rest = this.parseRestBinding();\n this.parseBindingListItem(rest);\n elts.push(rest);\n if (this.type === types$1.comma) { this.raiseRecoverable(this.start, \"Comma is not permitted after the rest element\"); }\n this.expect(close);\n break\n } else {\n elts.push(this.parseAssignableListItem(allowModifiers));\n }\n }\n return elts\n};\n\npp$7.parseAssignableListItem = function(allowModifiers) {\n var elem = this.parseMaybeDefault(this.start, this.startLoc);\n this.parseBindingListItem(elem);\n return elem\n};\n\npp$7.parseBindingListItem = function(param) {\n return param\n};\n\n// Parses assignment pattern around given atom if possible.\n\npp$7.parseMaybeDefault = function(startPos, startLoc, left) {\n left = left || this.parseBindingAtom();\n if (this.options.ecmaVersion < 6 || !this.eat(types$1.eq)) { return left }\n var node = this.startNodeAt(startPos, startLoc);\n node.left = left;\n node.right = this.parseMaybeAssign();\n return this.finishNode(node, \"AssignmentPattern\")\n};\n\n// The following three functions all verify that a node is an lvalue —\n// something that can be bound, or assigned to. In order to do so, they perform\n// a variety of checks:\n//\n// - Check that none of the bound/assigned-to identifiers are reserved words.\n// - Record name declarations for bindings in the appropriate scope.\n// - Check duplicate argument names, if checkClashes is set.\n//\n// If a complex binding pattern is encountered (e.g., object and array\n// destructuring), the entire pattern is recursively checked.\n//\n// There are three versions of checkLVal*() appropriate for different\n// circumstances:\n//\n// - checkLValSimple() shall be used if the syntactic construct supports\n// nothing other than identifiers and member expressions. Parenthesized\n// expressions are also correctly handled. This is generally appropriate for\n// constructs for which the spec says\n//\n// > It is a Syntax Error if AssignmentTargetType of [the production] is not\n// > simple.\n//\n// It is also appropriate for checking if an identifier is valid and not\n// defined elsewhere, like import declarations or function/class identifiers.\n//\n// Examples where this is used include:\n// a += …;\n// import a from '…';\n// where a is the node to be checked.\n//\n// - checkLValPattern() shall be used if the syntactic construct supports\n// anything checkLValSimple() supports, as well as object and array\n// destructuring patterns. This is generally appropriate for constructs for\n// which the spec says\n//\n// > It is a Syntax Error if [the production] is neither an ObjectLiteral nor\n// > an ArrayLiteral and AssignmentTargetType of [the production] is not\n// > simple.\n//\n// Examples where this is used include:\n// (a = …);\n// const a = …;\n// try { … } catch (a) { … }\n// where a is the node to be checked.\n//\n// - checkLValInnerPattern() shall be used if the syntactic construct supports\n// anything checkLValPattern() supports, as well as default assignment\n// patterns, rest elements, and other constructs that may appear within an\n// object or array destructuring pattern.\n//\n// As a special case, function parameters also use checkLValInnerPattern(),\n// as they also support defaults and rest constructs.\n//\n// These functions deliberately support both assignment and binding constructs,\n// as the logic for both is exceedingly similar. If the node is the target of\n// an assignment, then bindingType should be set to BIND_NONE. Otherwise, it\n// should be set to the appropriate BIND_* constant, like BIND_VAR or\n// BIND_LEXICAL.\n//\n// If the function is called with a non-BIND_NONE bindingType, then\n// additionally a checkClashes object may be specified to allow checking for\n// duplicate argument names. checkClashes is ignored if the provided construct\n// is an assignment (i.e., bindingType is BIND_NONE).\n\npp$7.checkLValSimple = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n var isBind = bindingType !== BIND_NONE;\n\n switch (expr.type) {\n case \"Identifier\":\n if (this.strict && this.reservedWordsStrictBind.test(expr.name))\n { this.raiseRecoverable(expr.start, (isBind ? \"Binding \" : \"Assigning to \") + expr.name + \" in strict mode\"); }\n if (isBind) {\n if (bindingType === BIND_LEXICAL && expr.name === \"let\")\n { this.raiseRecoverable(expr.start, \"let is disallowed as a lexically bound name\"); }\n if (checkClashes) {\n if (hasOwn(checkClashes, expr.name))\n { this.raiseRecoverable(expr.start, \"Argument name clash\"); }\n checkClashes[expr.name] = true;\n }\n if (bindingType !== BIND_OUTSIDE) { this.declareName(expr.name, bindingType, expr.start); }\n }\n break\n\n case \"ChainExpression\":\n this.raiseRecoverable(expr.start, \"Optional chaining cannot appear in left-hand side\");\n break\n\n case \"MemberExpression\":\n if (isBind) { this.raiseRecoverable(expr.start, \"Binding member expression\"); }\n break\n\n case \"ParenthesizedExpression\":\n if (isBind) { this.raiseRecoverable(expr.start, \"Binding parenthesized expression\"); }\n return this.checkLValSimple(expr.expression, bindingType, checkClashes)\n\n default:\n this.raise(expr.start, (isBind ? \"Binding\" : \"Assigning to\") + \" rvalue\");\n }\n};\n\npp$7.checkLValPattern = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n switch (expr.type) {\n case \"ObjectPattern\":\n for (var i = 0, list = expr.properties; i < list.length; i += 1) {\n var prop = list[i];\n\n this.checkLValInnerPattern(prop, bindingType, checkClashes);\n }\n break\n\n case \"ArrayPattern\":\n for (var i$1 = 0, list$1 = expr.elements; i$1 < list$1.length; i$1 += 1) {\n var elem = list$1[i$1];\n\n if (elem) { this.checkLValInnerPattern(elem, bindingType, checkClashes); }\n }\n break\n\n default:\n this.checkLValSimple(expr, bindingType, checkClashes);\n }\n};\n\npp$7.checkLValInnerPattern = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n switch (expr.type) {\n case \"Property\":\n // AssignmentProperty has type === \"Property\"\n this.checkLValInnerPattern(expr.value, bindingType, checkClashes);\n break\n\n case \"AssignmentPattern\":\n this.checkLValPattern(expr.left, bindingType, checkClashes);\n break\n\n case \"RestElement\":\n this.checkLValPattern(expr.argument, bindingType, checkClashes);\n break\n\n default:\n this.checkLValPattern(expr, bindingType, checkClashes);\n }\n};\n\n// The algorithm used to determine whether a regexp can appear at a\n// given point in the program is loosely based on sweet.js' approach.\n// See https://github.com/mozilla/sweet.js/wiki/design\n\n\nvar TokContext = function TokContext(token, isExpr, preserveSpace, override, generator) {\n this.token = token;\n this.isExpr = !!isExpr;\n this.preserveSpace = !!preserveSpace;\n this.override = override;\n this.generator = !!generator;\n};\n\nvar types = {\n b_stat: new TokContext(\"{\", false),\n b_expr: new TokContext(\"{\", true),\n b_tmpl: new TokContext(\"${\", false),\n p_stat: new TokContext(\"(\", false),\n p_expr: new TokContext(\"(\", true),\n q_tmpl: new TokContext(\"`\", true, true, function (p) { return p.tryReadTemplateToken(); }),\n f_stat: new TokContext(\"function\", false),\n f_expr: new TokContext(\"function\", true),\n f_expr_gen: new TokContext(\"function\", true, false, null, true),\n f_gen: new TokContext(\"function\", false, false, null, true)\n};\n\nvar pp$6 = Parser.prototype;\n\npp$6.initialContext = function() {\n return [types.b_stat]\n};\n\npp$6.curContext = function() {\n return this.context[this.context.length - 1]\n};\n\npp$6.braceIsBlock = function(prevType) {\n var parent = this.curContext();\n if (parent === types.f_expr || parent === types.f_stat)\n { return true }\n if (prevType === types$1.colon && (parent === types.b_stat || parent === types.b_expr))\n { return !parent.isExpr }\n\n // The check for `tt.name && exprAllowed` detects whether we are\n // after a `yield` or `of` construct. See the `updateContext` for\n // `tt.name`.\n if (prevType === types$1._return || prevType === types$1.name && this.exprAllowed)\n { return lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) }\n if (prevType === types$1._else || prevType === types$1.semi || prevType === types$1.eof || prevType === types$1.parenR || prevType === types$1.arrow)\n { return true }\n if (prevType === types$1.braceL)\n { return parent === types.b_stat }\n if (prevType === types$1._var || prevType === types$1._const || prevType === types$1.name)\n { return false }\n return !this.exprAllowed\n};\n\npp$6.inGeneratorContext = function() {\n for (var i = this.context.length - 1; i >= 1; i--) {\n var context = this.context[i];\n if (context.token === \"function\")\n { return context.generator }\n }\n return false\n};\n\npp$6.updateContext = function(prevType) {\n var update, type = this.type;\n if (type.keyword && prevType === types$1.dot)\n { this.exprAllowed = false; }\n else if (update = type.updateContext)\n { update.call(this, prevType); }\n else\n { this.exprAllowed = type.beforeExpr; }\n};\n\n// Used to handle edge cases when token context could not be inferred correctly during tokenization phase\n\npp$6.overrideContext = function(tokenCtx) {\n if (this.curContext() !== tokenCtx) {\n this.context[this.context.length - 1] = tokenCtx;\n }\n};\n\n// Token-specific context update code\n\ntypes$1.parenR.updateContext = types$1.braceR.updateContext = function() {\n if (this.context.length === 1) {\n this.exprAllowed = true;\n return\n }\n var out = this.context.pop();\n if (out === types.b_stat && this.curContext().token === \"function\") {\n out = this.context.pop();\n }\n this.exprAllowed = !out.isExpr;\n};\n\ntypes$1.braceL.updateContext = function(prevType) {\n this.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr);\n this.exprAllowed = true;\n};\n\ntypes$1.dollarBraceL.updateContext = function() {\n this.context.push(types.b_tmpl);\n this.exprAllowed = true;\n};\n\ntypes$1.parenL.updateContext = function(prevType) {\n var statementParens = prevType === types$1._if || prevType === types$1._for || prevType === types$1._with || prevType === types$1._while;\n this.context.push(statementParens ? types.p_stat : types.p_expr);\n this.exprAllowed = true;\n};\n\ntypes$1.incDec.updateContext = function() {\n // tokExprAllowed stays unchanged\n};\n\ntypes$1._function.updateContext = types$1._class.updateContext = function(prevType) {\n if (prevType.beforeExpr && prevType !== types$1._else &&\n !(prevType === types$1.semi && this.curContext() !== types.p_stat) &&\n !(prevType === types$1._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) &&\n !((prevType === types$1.colon || prevType === types$1.braceL) && this.curContext() === types.b_stat))\n { this.context.push(types.f_expr); }\n else\n { this.context.push(types.f_stat); }\n this.exprAllowed = false;\n};\n\ntypes$1.colon.updateContext = function() {\n if (this.curContext().token === \"function\") { this.context.pop(); }\n this.exprAllowed = true;\n};\n\ntypes$1.backQuote.updateContext = function() {\n if (this.curContext() === types.q_tmpl)\n { this.context.pop(); }\n else\n { this.context.push(types.q_tmpl); }\n this.exprAllowed = false;\n};\n\ntypes$1.star.updateContext = function(prevType) {\n if (prevType === types$1._function) {\n var index = this.context.length - 1;\n if (this.context[index] === types.f_expr)\n { this.context[index] = types.f_expr_gen; }\n else\n { this.context[index] = types.f_gen; }\n }\n this.exprAllowed = true;\n};\n\ntypes$1.name.updateContext = function(prevType) {\n var allowed = false;\n if (this.options.ecmaVersion >= 6 && prevType !== types$1.dot) {\n if (this.value === \"of\" && !this.exprAllowed ||\n this.value === \"yield\" && this.inGeneratorContext())\n { allowed = true; }\n }\n this.exprAllowed = allowed;\n};\n\n// A recursive descent parser operates by defining functions for all\n// syntactic elements, and recursively calling those, each function\n// advancing the input stream and returning an AST node. Precedence\n// of constructs (for example, the fact that `!x[1]` means `!(x[1])`\n// instead of `(!x)[1]` is handled by the fact that the parser\n// function that parses unary prefix operators is called first, and\n// in turn calls the function that parses `[]` subscripts — that\n// way, it'll receive the node for `x[1]` already parsed, and wraps\n// *that* in the unary operator node.\n//\n// Acorn uses an [operator precedence parser][opp] to handle binary\n// operator precedence, because it is much more compact than using\n// the technique outlined above, which uses different, nesting\n// functions to specify precedence, for all of the ten binary\n// precedence levels that JavaScript defines.\n//\n// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser\n\n\nvar pp$5 = Parser.prototype;\n\n// Check if property name clashes with already added.\n// Object/class getters and setters are not allowed to clash —\n// either with each other or with an init property — and in\n// strict mode, init properties are also not allowed to be repeated.\n\npp$5.checkPropClash = function(prop, propHash, refDestructuringErrors) {\n if (this.options.ecmaVersion >= 9 && prop.type === \"SpreadElement\")\n { return }\n if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand))\n { return }\n var key = prop.key;\n var name;\n switch (key.type) {\n case \"Identifier\": name = key.name; break\n case \"Literal\": name = String(key.value); break\n default: return\n }\n var kind = prop.kind;\n if (this.options.ecmaVersion >= 6) {\n if (name === \"__proto__\" && kind === \"init\") {\n if (propHash.proto) {\n if (refDestructuringErrors) {\n if (refDestructuringErrors.doubleProto < 0) {\n refDestructuringErrors.doubleProto = key.start;\n }\n } else {\n this.raiseRecoverable(key.start, \"Redefinition of __proto__ property\");\n }\n }\n propHash.proto = true;\n }\n return\n }\n name = \"$\" + name;\n var other = propHash[name];\n if (other) {\n var redefinition;\n if (kind === \"init\") {\n redefinition = this.strict && other.init || other.get || other.set;\n } else {\n redefinition = other.init || other[kind];\n }\n if (redefinition)\n { this.raiseRecoverable(key.start, \"Redefinition of property\"); }\n } else {\n other = propHash[name] = {\n init: false,\n get: false,\n set: false\n };\n }\n other[kind] = true;\n};\n\n// ### Expression parsing\n\n// These nest, from the most general expression type at the top to\n// 'atomic', nondivisible expression types at the bottom. Most of\n// the functions will simply let the function(s) below them parse,\n// and, *if* the syntactic construct they handle is present, wrap\n// the AST node that the inner parser gave them in another node.\n\n// Parse a full expression. The optional arguments are used to\n// forbid the `in` operator (in for loops initalization expressions)\n// and provide reference for storing '=' operator inside shorthand\n// property assignment in contexts where both object expression\n// and object pattern might appear (so it's possible to raise\n// delayed syntax error at correct position).\n\npp$5.parseExpression = function(forInit, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseMaybeAssign(forInit, refDestructuringErrors);\n if (this.type === types$1.comma) {\n var node = this.startNodeAt(startPos, startLoc);\n node.expressions = [expr];\n while (this.eat(types$1.comma)) { node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors)); }\n return this.finishNode(node, \"SequenceExpression\")\n }\n return expr\n};\n\n// Parse an assignment expression. This includes applications of\n// operators like `+=`.\n\npp$5.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse) {\n if (this.isContextual(\"yield\")) {\n if (this.inGenerator) { return this.parseYield(forInit) }\n // The tokenizer will assume an expression is allowed after\n // `yield`, but this isn't that kind of yield\n else { this.exprAllowed = false; }\n }\n\n var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1, oldDoubleProto = -1;\n if (refDestructuringErrors) {\n oldParenAssign = refDestructuringErrors.parenthesizedAssign;\n oldTrailingComma = refDestructuringErrors.trailingComma;\n oldDoubleProto = refDestructuringErrors.doubleProto;\n refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = -1;\n } else {\n refDestructuringErrors = new DestructuringErrors;\n ownDestructuringErrors = true;\n }\n\n var startPos = this.start, startLoc = this.startLoc;\n if (this.type === types$1.parenL || this.type === types$1.name) {\n this.potentialArrowAt = this.start;\n this.potentialArrowInForAwait = forInit === \"await\";\n }\n var left = this.parseMaybeConditional(forInit, refDestructuringErrors);\n if (afterLeftParse) { left = afterLeftParse.call(this, left, startPos, startLoc); }\n if (this.type.isAssign) {\n var node = this.startNodeAt(startPos, startLoc);\n node.operator = this.value;\n if (this.type === types$1.eq)\n { left = this.toAssignable(left, false, refDestructuringErrors); }\n if (!ownDestructuringErrors) {\n refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.doubleProto = -1;\n }\n if (refDestructuringErrors.shorthandAssign >= left.start)\n { refDestructuringErrors.shorthandAssign = -1; } // reset because shorthand default was used correctly\n if (this.type === types$1.eq)\n { this.checkLValPattern(left); }\n else\n { this.checkLValSimple(left); }\n node.left = left;\n this.next();\n node.right = this.parseMaybeAssign(forInit);\n if (oldDoubleProto > -1) { refDestructuringErrors.doubleProto = oldDoubleProto; }\n return this.finishNode(node, \"AssignmentExpression\")\n } else {\n if (ownDestructuringErrors) { this.checkExpressionErrors(refDestructuringErrors, true); }\n }\n if (oldParenAssign > -1) { refDestructuringErrors.parenthesizedAssign = oldParenAssign; }\n if (oldTrailingComma > -1) { refDestructuringErrors.trailingComma = oldTrailingComma; }\n return left\n};\n\n// Parse a ternary conditional (`?:`) operator.\n\npp$5.parseMaybeConditional = function(forInit, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseExprOps(forInit, refDestructuringErrors);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n if (this.eat(types$1.question)) {\n var node = this.startNodeAt(startPos, startLoc);\n node.test = expr;\n node.consequent = this.parseMaybeAssign();\n this.expect(types$1.colon);\n node.alternate = this.parseMaybeAssign(forInit);\n return this.finishNode(node, \"ConditionalExpression\")\n }\n return expr\n};\n\n// Start the precedence parser.\n\npp$5.parseExprOps = function(forInit, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseMaybeUnary(refDestructuringErrors, false, false, forInit);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n return expr.start === startPos && expr.type === \"ArrowFunctionExpression\" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, forInit)\n};\n\n// Parse binary operators with the operator precedence parsing\n// algorithm. `left` is the left-hand side of the operator.\n// `minPrec` provides context that allows the function to stop and\n// defer further parser to one of its callers when it encounters an\n// operator that has a lower precedence than the set it is parsing.\n\npp$5.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, forInit) {\n var prec = this.type.binop;\n if (prec != null && (!forInit || this.type !== types$1._in)) {\n if (prec > minPrec) {\n var logical = this.type === types$1.logicalOR || this.type === types$1.logicalAND;\n var coalesce = this.type === types$1.coalesce;\n if (coalesce) {\n // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions.\n // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error.\n prec = types$1.logicalAND.binop;\n }\n var op = this.value;\n this.next();\n var startPos = this.start, startLoc = this.startLoc;\n var right = this.parseExprOp(this.parseMaybeUnary(null, false, false, forInit), startPos, startLoc, prec, forInit);\n var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical || coalesce);\n if ((logical && this.type === types$1.coalesce) || (coalesce && (this.type === types$1.logicalOR || this.type === types$1.logicalAND))) {\n this.raiseRecoverable(this.start, \"Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses\");\n }\n return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, forInit)\n }\n }\n return left\n};\n\npp$5.buildBinary = function(startPos, startLoc, left, right, op, logical) {\n if (right.type === \"PrivateIdentifier\") { this.raise(right.start, \"Private identifier can only be left side of binary expression\"); }\n var node = this.startNodeAt(startPos, startLoc);\n node.left = left;\n node.operator = op;\n node.right = right;\n return this.finishNode(node, logical ? \"LogicalExpression\" : \"BinaryExpression\")\n};\n\n// Parse unary operators, both prefix and postfix.\n\npp$5.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec, forInit) {\n var startPos = this.start, startLoc = this.startLoc, expr;\n if (this.isContextual(\"await\") && this.canAwait) {\n expr = this.parseAwait(forInit);\n sawUnary = true;\n } else if (this.type.prefix) {\n var node = this.startNode(), update = this.type === types$1.incDec;\n node.operator = this.value;\n node.prefix = true;\n this.next();\n node.argument = this.parseMaybeUnary(null, true, update, forInit);\n this.checkExpressionErrors(refDestructuringErrors, true);\n if (update) { this.checkLValSimple(node.argument); }\n else if (this.strict && node.operator === \"delete\" && isLocalVariableAccess(node.argument))\n { this.raiseRecoverable(node.start, \"Deleting local variable in strict mode\"); }\n else if (node.operator === \"delete\" && isPrivateFieldAccess(node.argument))\n { this.raiseRecoverable(node.start, \"Private fields can not be deleted\"); }\n else { sawUnary = true; }\n expr = this.finishNode(node, update ? \"UpdateExpression\" : \"UnaryExpression\");\n } else if (!sawUnary && this.type === types$1.privateId) {\n if ((forInit || this.privateNameStack.length === 0) && this.options.checkPrivateFields) { this.unexpected(); }\n expr = this.parsePrivateIdent();\n // only could be private fields in 'in', such as #x in obj\n if (this.type !== types$1._in) { this.unexpected(); }\n } else {\n expr = this.parseExprSubscripts(refDestructuringErrors, forInit);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n while (this.type.postfix && !this.canInsertSemicolon()) {\n var node$1 = this.startNodeAt(startPos, startLoc);\n node$1.operator = this.value;\n node$1.prefix = false;\n node$1.argument = expr;\n this.checkLValSimple(expr);\n this.next();\n expr = this.finishNode(node$1, \"UpdateExpression\");\n }\n }\n\n if (!incDec && this.eat(types$1.starstar)) {\n if (sawUnary)\n { this.unexpected(this.lastTokStart); }\n else\n { return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false, false, forInit), \"**\", false) }\n } else {\n return expr\n }\n};\n\nfunction isLocalVariableAccess(node) {\n return (\n node.type === \"Identifier\" ||\n node.type === \"ParenthesizedExpression\" && isLocalVariableAccess(node.expression)\n )\n}\n\nfunction isPrivateFieldAccess(node) {\n return (\n node.type === \"MemberExpression\" && node.property.type === \"PrivateIdentifier\" ||\n node.type === \"ChainExpression\" && isPrivateFieldAccess(node.expression) ||\n node.type === \"ParenthesizedExpression\" && isPrivateFieldAccess(node.expression)\n )\n}\n\n// Parse call, dot, and `[]`-subscript expressions.\n\npp$5.parseExprSubscripts = function(refDestructuringErrors, forInit) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseExprAtom(refDestructuringErrors, forInit);\n if (expr.type === \"ArrowFunctionExpression\" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== \")\")\n { return expr }\n var result = this.parseSubscripts(expr, startPos, startLoc, false, forInit);\n if (refDestructuringErrors && result.type === \"MemberExpression\") {\n if (refDestructuringErrors.parenthesizedAssign >= result.start) { refDestructuringErrors.parenthesizedAssign = -1; }\n if (refDestructuringErrors.parenthesizedBind >= result.start) { refDestructuringErrors.parenthesizedBind = -1; }\n if (refDestructuringErrors.trailingComma >= result.start) { refDestructuringErrors.trailingComma = -1; }\n }\n return result\n};\n\npp$5.parseSubscripts = function(base, startPos, startLoc, noCalls, forInit) {\n var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === \"Identifier\" && base.name === \"async\" &&\n this.lastTokEnd === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 &&\n this.potentialArrowAt === base.start;\n var optionalChained = false;\n\n while (true) {\n var element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit);\n\n if (element.optional) { optionalChained = true; }\n if (element === base || element.type === \"ArrowFunctionExpression\") {\n if (optionalChained) {\n var chainNode = this.startNodeAt(startPos, startLoc);\n chainNode.expression = element;\n element = this.finishNode(chainNode, \"ChainExpression\");\n }\n return element\n }\n\n base = element;\n }\n};\n\npp$5.shouldParseAsyncArrow = function() {\n return !this.canInsertSemicolon() && this.eat(types$1.arrow)\n};\n\npp$5.parseSubscriptAsyncArrow = function(startPos, startLoc, exprList, forInit) {\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true, forInit)\n};\n\npp$5.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit) {\n var optionalSupported = this.options.ecmaVersion >= 11;\n var optional = optionalSupported && this.eat(types$1.questionDot);\n if (noCalls && optional) { this.raise(this.lastTokStart, \"Optional chaining cannot appear in the callee of new expressions\"); }\n\n var computed = this.eat(types$1.bracketL);\n if (computed || (optional && this.type !== types$1.parenL && this.type !== types$1.backQuote) || this.eat(types$1.dot)) {\n var node = this.startNodeAt(startPos, startLoc);\n node.object = base;\n if (computed) {\n node.property = this.parseExpression();\n this.expect(types$1.bracketR);\n } else if (this.type === types$1.privateId && base.type !== \"Super\") {\n node.property = this.parsePrivateIdent();\n } else {\n node.property = this.parseIdent(this.options.allowReserved !== \"never\");\n }\n node.computed = !!computed;\n if (optionalSupported) {\n node.optional = optional;\n }\n base = this.finishNode(node, \"MemberExpression\");\n } else if (!noCalls && this.eat(types$1.parenL)) {\n var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n var exprList = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors);\n if (maybeAsyncArrow && !optional && this.shouldParseAsyncArrow()) {\n this.checkPatternErrors(refDestructuringErrors, false);\n this.checkYieldAwaitInDefaultParams();\n if (this.awaitIdentPos > 0)\n { this.raise(this.awaitIdentPos, \"Cannot use 'await' as identifier inside an async function\"); }\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.parseSubscriptAsyncArrow(startPos, startLoc, exprList, forInit)\n }\n this.checkExpressionErrors(refDestructuringErrors, true);\n this.yieldPos = oldYieldPos || this.yieldPos;\n this.awaitPos = oldAwaitPos || this.awaitPos;\n this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos;\n var node$1 = this.startNodeAt(startPos, startLoc);\n node$1.callee = base;\n node$1.arguments = exprList;\n if (optionalSupported) {\n node$1.optional = optional;\n }\n base = this.finishNode(node$1, \"CallExpression\");\n } else if (this.type === types$1.backQuote) {\n if (optional || optionalChained) {\n this.raise(this.start, \"Optional chaining cannot appear in the tag of tagged template expressions\");\n }\n var node$2 = this.startNodeAt(startPos, startLoc);\n node$2.tag = base;\n node$2.quasi = this.parseTemplate({isTagged: true});\n base = this.finishNode(node$2, \"TaggedTemplateExpression\");\n }\n return base\n};\n\n// Parse an atomic expression — either a single token that is an\n// expression, an expression started by a keyword like `function` or\n// `new`, or an expression wrapped in punctuation like `()`, `[]`,\n// or `{}`.\n\npp$5.parseExprAtom = function(refDestructuringErrors, forInit, forNew) {\n // If a division operator appears in an expression position, the\n // tokenizer got confused, and we force it to read a regexp instead.\n if (this.type === types$1.slash) { this.readRegexp(); }\n\n var node, canBeArrow = this.potentialArrowAt === this.start;\n switch (this.type) {\n case types$1._super:\n if (!this.allowSuper)\n { this.raise(this.start, \"'super' keyword outside a method\"); }\n node = this.startNode();\n this.next();\n if (this.type === types$1.parenL && !this.allowDirectSuper)\n { this.raise(node.start, \"super() call outside constructor of a subclass\"); }\n // The `super` keyword can appear at below:\n // SuperProperty:\n // super [ Expression ]\n // super . IdentifierName\n // SuperCall:\n // super ( Arguments )\n if (this.type !== types$1.dot && this.type !== types$1.bracketL && this.type !== types$1.parenL)\n { this.unexpected(); }\n return this.finishNode(node, \"Super\")\n\n case types$1._this:\n node = this.startNode();\n this.next();\n return this.finishNode(node, \"ThisExpression\")\n\n case types$1.name:\n var startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc;\n var id = this.parseIdent(false);\n if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === \"async\" && !this.canInsertSemicolon() && this.eat(types$1._function)) {\n this.overrideContext(types.f_expr);\n return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true, forInit)\n }\n if (canBeArrow && !this.canInsertSemicolon()) {\n if (this.eat(types$1.arrow))\n { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false, forInit) }\n if (this.options.ecmaVersion >= 8 && id.name === \"async\" && this.type === types$1.name && !containsEsc &&\n (!this.potentialArrowInForAwait || this.value !== \"of\" || this.containsEsc)) {\n id = this.parseIdent(false);\n if (this.canInsertSemicolon() || !this.eat(types$1.arrow))\n { this.unexpected(); }\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true, forInit)\n }\n }\n return id\n\n case types$1.regexp:\n var value = this.value;\n node = this.parseLiteral(value.value);\n node.regex = {pattern: value.pattern, flags: value.flags};\n return node\n\n case types$1.num: case types$1.string:\n return this.parseLiteral(this.value)\n\n case types$1._null: case types$1._true: case types$1._false:\n node = this.startNode();\n node.value = this.type === types$1._null ? null : this.type === types$1._true;\n node.raw = this.type.keyword;\n this.next();\n return this.finishNode(node, \"Literal\")\n\n case types$1.parenL:\n var start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow, forInit);\n if (refDestructuringErrors) {\n if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr))\n { refDestructuringErrors.parenthesizedAssign = start; }\n if (refDestructuringErrors.parenthesizedBind < 0)\n { refDestructuringErrors.parenthesizedBind = start; }\n }\n return expr\n\n case types$1.bracketL:\n node = this.startNode();\n this.next();\n node.elements = this.parseExprList(types$1.bracketR, true, true, refDestructuringErrors);\n return this.finishNode(node, \"ArrayExpression\")\n\n case types$1.braceL:\n this.overrideContext(types.b_expr);\n return this.parseObj(false, refDestructuringErrors)\n\n case types$1._function:\n node = this.startNode();\n this.next();\n return this.parseFunction(node, 0)\n\n case types$1._class:\n return this.parseClass(this.startNode(), false)\n\n case types$1._new:\n return this.parseNew()\n\n case types$1.backQuote:\n return this.parseTemplate()\n\n case types$1._import:\n if (this.options.ecmaVersion >= 11) {\n return this.parseExprImport(forNew)\n } else {\n return this.unexpected()\n }\n\n default:\n return this.parseExprAtomDefault()\n }\n};\n\npp$5.parseExprAtomDefault = function() {\n this.unexpected();\n};\n\npp$5.parseExprImport = function(forNew) {\n var node = this.startNode();\n\n // Consume `import` as an identifier for `import.meta`.\n // Because `this.parseIdent(true)` doesn't check escape sequences, it needs the check of `this.containsEsc`.\n if (this.containsEsc) { this.raiseRecoverable(this.start, \"Escape sequence in keyword import\"); }\n this.next();\n\n if (this.type === types$1.parenL && !forNew) {\n return this.parseDynamicImport(node)\n } else if (this.type === types$1.dot) {\n var meta = this.startNodeAt(node.start, node.loc && node.loc.start);\n meta.name = \"import\";\n node.meta = this.finishNode(meta, \"Identifier\");\n return this.parseImportMeta(node)\n } else {\n this.unexpected();\n }\n};\n\npp$5.parseDynamicImport = function(node) {\n this.next(); // skip `(`\n\n // Parse node.source.\n node.source = this.parseMaybeAssign();\n\n if (this.options.ecmaVersion >= 16) {\n if (!this.eat(types$1.parenR)) {\n this.expect(types$1.comma);\n if (!this.afterTrailingComma(types$1.parenR)) {\n node.options = this.parseMaybeAssign();\n if (!this.eat(types$1.parenR)) {\n this.expect(types$1.comma);\n if (!this.afterTrailingComma(types$1.parenR)) {\n this.unexpected();\n }\n }\n } else {\n node.options = null;\n }\n } else {\n node.options = null;\n }\n } else {\n // Verify ending.\n if (!this.eat(types$1.parenR)) {\n var errorPos = this.start;\n if (this.eat(types$1.comma) && this.eat(types$1.parenR)) {\n this.raiseRecoverable(errorPos, \"Trailing comma is not allowed in import()\");\n } else {\n this.unexpected(errorPos);\n }\n }\n }\n\n return this.finishNode(node, \"ImportExpression\")\n};\n\npp$5.parseImportMeta = function(node) {\n this.next(); // skip `.`\n\n var containsEsc = this.containsEsc;\n node.property = this.parseIdent(true);\n\n if (node.property.name !== \"meta\")\n { this.raiseRecoverable(node.property.start, \"The only valid meta property for import is 'import.meta'\"); }\n if (containsEsc)\n { this.raiseRecoverable(node.start, \"'import.meta' must not contain escaped characters\"); }\n if (this.options.sourceType !== \"module\" && !this.options.allowImportExportEverywhere)\n { this.raiseRecoverable(node.start, \"Cannot use 'import.meta' outside a module\"); }\n\n return this.finishNode(node, \"MetaProperty\")\n};\n\npp$5.parseLiteral = function(value) {\n var node = this.startNode();\n node.value = value;\n node.raw = this.input.slice(this.start, this.end);\n if (node.raw.charCodeAt(node.raw.length - 1) === 110)\n { node.bigint = node.value != null ? node.value.toString() : node.raw.slice(0, -1).replace(/_/g, \"\"); }\n this.next();\n return this.finishNode(node, \"Literal\")\n};\n\npp$5.parseParenExpression = function() {\n this.expect(types$1.parenL);\n var val = this.parseExpression();\n this.expect(types$1.parenR);\n return val\n};\n\npp$5.shouldParseArrow = function(exprList) {\n return !this.canInsertSemicolon()\n};\n\npp$5.parseParenAndDistinguishExpression = function(canBeArrow, forInit) {\n var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8;\n if (this.options.ecmaVersion >= 6) {\n this.next();\n\n var innerStartPos = this.start, innerStartLoc = this.startLoc;\n var exprList = [], first = true, lastIsComma = false;\n var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart;\n this.yieldPos = 0;\n this.awaitPos = 0;\n // Do not save awaitIdentPos to allow checking awaits nested in parameters\n while (this.type !== types$1.parenR) {\n first ? first = false : this.expect(types$1.comma);\n if (allowTrailingComma && this.afterTrailingComma(types$1.parenR, true)) {\n lastIsComma = true;\n break\n } else if (this.type === types$1.ellipsis) {\n spreadStart = this.start;\n exprList.push(this.parseParenItem(this.parseRestBinding()));\n if (this.type === types$1.comma) {\n this.raiseRecoverable(\n this.start,\n \"Comma is not permitted after the rest element\"\n );\n }\n break\n } else {\n exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem));\n }\n }\n var innerEndPos = this.lastTokEnd, innerEndLoc = this.lastTokEndLoc;\n this.expect(types$1.parenR);\n\n if (canBeArrow && this.shouldParseArrow(exprList) && this.eat(types$1.arrow)) {\n this.checkPatternErrors(refDestructuringErrors, false);\n this.checkYieldAwaitInDefaultParams();\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n return this.parseParenArrowList(startPos, startLoc, exprList, forInit)\n }\n\n if (!exprList.length || lastIsComma) { this.unexpected(this.lastTokStart); }\n if (spreadStart) { this.unexpected(spreadStart); }\n this.checkExpressionErrors(refDestructuringErrors, true);\n this.yieldPos = oldYieldPos || this.yieldPos;\n this.awaitPos = oldAwaitPos || this.awaitPos;\n\n if (exprList.length > 1) {\n val = this.startNodeAt(innerStartPos, innerStartLoc);\n val.expressions = exprList;\n this.finishNodeAt(val, \"SequenceExpression\", innerEndPos, innerEndLoc);\n } else {\n val = exprList[0];\n }\n } else {\n val = this.parseParenExpression();\n }\n\n if (this.options.preserveParens) {\n var par = this.startNodeAt(startPos, startLoc);\n par.expression = val;\n return this.finishNode(par, \"ParenthesizedExpression\")\n } else {\n return val\n }\n};\n\npp$5.parseParenItem = function(item) {\n return item\n};\n\npp$5.parseParenArrowList = function(startPos, startLoc, exprList, forInit) {\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, false, forInit)\n};\n\n// New's precedence is slightly tricky. It must allow its argument to\n// be a `[]` or dot subscript expression, but not a call — at least,\n// not without wrapping it in parentheses. Thus, it uses the noCalls\n// argument to parseSubscripts to prevent it from consuming the\n// argument list.\n\nvar empty = [];\n\npp$5.parseNew = function() {\n if (this.containsEsc) { this.raiseRecoverable(this.start, \"Escape sequence in keyword new\"); }\n var node = this.startNode();\n this.next();\n if (this.options.ecmaVersion >= 6 && this.type === types$1.dot) {\n var meta = this.startNodeAt(node.start, node.loc && node.loc.start);\n meta.name = \"new\";\n node.meta = this.finishNode(meta, \"Identifier\");\n this.next();\n var containsEsc = this.containsEsc;\n node.property = this.parseIdent(true);\n if (node.property.name !== \"target\")\n { this.raiseRecoverable(node.property.start, \"The only valid meta property for new is 'new.target'\"); }\n if (containsEsc)\n { this.raiseRecoverable(node.start, \"'new.target' must not contain escaped characters\"); }\n if (!this.allowNewDotTarget)\n { this.raiseRecoverable(node.start, \"'new.target' can only be used in functions and class static block\"); }\n return this.finishNode(node, \"MetaProperty\")\n }\n var startPos = this.start, startLoc = this.startLoc;\n node.callee = this.parseSubscripts(this.parseExprAtom(null, false, true), startPos, startLoc, true, false);\n if (this.eat(types$1.parenL)) { node.arguments = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false); }\n else { node.arguments = empty; }\n return this.finishNode(node, \"NewExpression\")\n};\n\n// Parse template expression.\n\npp$5.parseTemplateElement = function(ref) {\n var isTagged = ref.isTagged;\n\n var elem = this.startNode();\n if (this.type === types$1.invalidTemplate) {\n if (!isTagged) {\n this.raiseRecoverable(this.start, \"Bad escape sequence in untagged template literal\");\n }\n elem.value = {\n raw: this.value.replace(/\\r\\n?/g, \"\\n\"),\n cooked: null\n };\n } else {\n elem.value = {\n raw: this.input.slice(this.start, this.end).replace(/\\r\\n?/g, \"\\n\"),\n cooked: this.value\n };\n }\n this.next();\n elem.tail = this.type === types$1.backQuote;\n return this.finishNode(elem, \"TemplateElement\")\n};\n\npp$5.parseTemplate = function(ref) {\n if ( ref === void 0 ) ref = {};\n var isTagged = ref.isTagged; if ( isTagged === void 0 ) isTagged = false;\n\n var node = this.startNode();\n this.next();\n node.expressions = [];\n var curElt = this.parseTemplateElement({isTagged: isTagged});\n node.quasis = [curElt];\n while (!curElt.tail) {\n if (this.type === types$1.eof) { this.raise(this.pos, \"Unterminated template literal\"); }\n this.expect(types$1.dollarBraceL);\n node.expressions.push(this.parseExpression());\n this.expect(types$1.braceR);\n node.quasis.push(curElt = this.parseTemplateElement({isTagged: isTagged}));\n }\n this.next();\n return this.finishNode(node, \"TemplateLiteral\")\n};\n\npp$5.isAsyncProp = function(prop) {\n return !prop.computed && prop.key.type === \"Identifier\" && prop.key.name === \"async\" &&\n (this.type === types$1.name || this.type === types$1.num || this.type === types$1.string || this.type === types$1.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === types$1.star)) &&\n !lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n};\n\n// Parse an object literal or binding pattern.\n\npp$5.parseObj = function(isPattern, refDestructuringErrors) {\n var node = this.startNode(), first = true, propHash = {};\n node.properties = [];\n this.next();\n while (!this.eat(types$1.braceR)) {\n if (!first) {\n this.expect(types$1.comma);\n if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types$1.braceR)) { break }\n } else { first = false; }\n\n var prop = this.parseProperty(isPattern, refDestructuringErrors);\n if (!isPattern) { this.checkPropClash(prop, propHash, refDestructuringErrors); }\n node.properties.push(prop);\n }\n return this.finishNode(node, isPattern ? \"ObjectPattern\" : \"ObjectExpression\")\n};\n\npp$5.parseProperty = function(isPattern, refDestructuringErrors) {\n var prop = this.startNode(), isGenerator, isAsync, startPos, startLoc;\n if (this.options.ecmaVersion >= 9 && this.eat(types$1.ellipsis)) {\n if (isPattern) {\n prop.argument = this.parseIdent(false);\n if (this.type === types$1.comma) {\n this.raiseRecoverable(this.start, \"Comma is not permitted after the rest element\");\n }\n return this.finishNode(prop, \"RestElement\")\n }\n // Parse argument.\n prop.argument = this.parseMaybeAssign(false, refDestructuringErrors);\n // To disallow trailing comma via `this.toAssignable()`.\n if (this.type === types$1.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) {\n refDestructuringErrors.trailingComma = this.start;\n }\n // Finish\n return this.finishNode(prop, \"SpreadElement\")\n }\n if (this.options.ecmaVersion >= 6) {\n prop.method = false;\n prop.shorthand = false;\n if (isPattern || refDestructuringErrors) {\n startPos = this.start;\n startLoc = this.startLoc;\n }\n if (!isPattern)\n { isGenerator = this.eat(types$1.star); }\n }\n var containsEsc = this.containsEsc;\n this.parsePropertyName(prop);\n if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) {\n isAsync = true;\n isGenerator = this.options.ecmaVersion >= 9 && this.eat(types$1.star);\n this.parsePropertyName(prop);\n } else {\n isAsync = false;\n }\n this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc);\n return this.finishNode(prop, \"Property\")\n};\n\npp$5.parseGetterSetter = function(prop) {\n var kind = prop.key.name;\n this.parsePropertyName(prop);\n prop.value = this.parseMethod(false);\n prop.kind = kind;\n var paramCount = prop.kind === \"get\" ? 0 : 1;\n if (prop.value.params.length !== paramCount) {\n var start = prop.value.start;\n if (prop.kind === \"get\")\n { this.raiseRecoverable(start, \"getter should have no params\"); }\n else\n { this.raiseRecoverable(start, \"setter should have exactly one param\"); }\n } else {\n if (prop.kind === \"set\" && prop.value.params[0].type === \"RestElement\")\n { this.raiseRecoverable(prop.value.params[0].start, \"Setter cannot use rest params\"); }\n }\n};\n\npp$5.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) {\n if ((isGenerator || isAsync) && this.type === types$1.colon)\n { this.unexpected(); }\n\n if (this.eat(types$1.colon)) {\n prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors);\n prop.kind = \"init\";\n } else if (this.options.ecmaVersion >= 6 && this.type === types$1.parenL) {\n if (isPattern) { this.unexpected(); }\n prop.method = true;\n prop.value = this.parseMethod(isGenerator, isAsync);\n prop.kind = \"init\";\n } else if (!isPattern && !containsEsc &&\n this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === \"Identifier\" &&\n (prop.key.name === \"get\" || prop.key.name === \"set\") &&\n (this.type !== types$1.comma && this.type !== types$1.braceR && this.type !== types$1.eq)) {\n if (isGenerator || isAsync) { this.unexpected(); }\n this.parseGetterSetter(prop);\n } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === \"Identifier\") {\n if (isGenerator || isAsync) { this.unexpected(); }\n this.checkUnreserved(prop.key);\n if (prop.key.name === \"await\" && !this.awaitIdentPos)\n { this.awaitIdentPos = startPos; }\n if (isPattern) {\n prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));\n } else if (this.type === types$1.eq && refDestructuringErrors) {\n if (refDestructuringErrors.shorthandAssign < 0)\n { refDestructuringErrors.shorthandAssign = this.start; }\n prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));\n } else {\n prop.value = this.copyNode(prop.key);\n }\n prop.kind = \"init\";\n prop.shorthand = true;\n } else { this.unexpected(); }\n};\n\npp$5.parsePropertyName = function(prop) {\n if (this.options.ecmaVersion >= 6) {\n if (this.eat(types$1.bracketL)) {\n prop.computed = true;\n prop.key = this.parseMaybeAssign();\n this.expect(types$1.bracketR);\n return prop.key\n } else {\n prop.computed = false;\n }\n }\n return prop.key = this.type === types$1.num || this.type === types$1.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== \"never\")\n};\n\n// Initialize empty function node.\n\npp$5.initFunction = function(node) {\n node.id = null;\n if (this.options.ecmaVersion >= 6) { node.generator = node.expression = false; }\n if (this.options.ecmaVersion >= 8) { node.async = false; }\n};\n\n// Parse object or class method.\n\npp$5.parseMethod = function(isGenerator, isAsync, allowDirectSuper) {\n var node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n\n this.initFunction(node);\n if (this.options.ecmaVersion >= 6)\n { node.generator = isGenerator; }\n if (this.options.ecmaVersion >= 8)\n { node.async = !!isAsync; }\n\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0));\n\n this.expect(types$1.parenL);\n node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8);\n this.checkYieldAwaitInDefaultParams();\n this.parseFunctionBody(node, false, true, false);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, \"FunctionExpression\")\n};\n\n// Parse arrow function expression with given parameters.\n\npp$5.parseArrowExpression = function(node, params, isAsync, forInit) {\n var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n\n this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW);\n this.initFunction(node);\n if (this.options.ecmaVersion >= 8) { node.async = !!isAsync; }\n\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n\n node.params = this.toAssignableList(params, true);\n this.parseFunctionBody(node, true, false, forInit);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, \"ArrowFunctionExpression\")\n};\n\n// Parse function body and check parameters.\n\npp$5.parseFunctionBody = function(node, isArrowFunction, isMethod, forInit) {\n var isExpression = isArrowFunction && this.type !== types$1.braceL;\n var oldStrict = this.strict, useStrict = false;\n\n if (isExpression) {\n node.body = this.parseMaybeAssign(forInit);\n node.expression = true;\n this.checkParams(node, false);\n } else {\n var nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params);\n if (!oldStrict || nonSimple) {\n useStrict = this.strictDirective(this.end);\n // If this is a strict mode function, verify that argument names\n // are not repeated, and it does not try to bind the words `eval`\n // or `arguments`.\n if (useStrict && nonSimple)\n { this.raiseRecoverable(node.start, \"Illegal 'use strict' directive in function with non-simple parameter list\"); }\n }\n // Start a new scope with regard to labels and the `inFunction`\n // flag (restore them to their old value afterwards).\n var oldLabels = this.labels;\n this.labels = [];\n if (useStrict) { this.strict = true; }\n\n // Add the params to varDeclaredNames to ensure that an error is thrown\n // if a let/const declaration in the function clashes with one of the params.\n this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params));\n // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n if (this.strict && node.id) { this.checkLValSimple(node.id, BIND_OUTSIDE); }\n node.body = this.parseBlock(false, undefined, useStrict && !oldStrict);\n node.expression = false;\n this.adaptDirectivePrologue(node.body.body);\n this.labels = oldLabels;\n }\n this.exitScope();\n};\n\npp$5.isSimpleParamList = function(params) {\n for (var i = 0, list = params; i < list.length; i += 1)\n {\n var param = list[i];\n\n if (param.type !== \"Identifier\") { return false\n } }\n return true\n};\n\n// Checks function params for various disallowed patterns such as using \"eval\"\n// or \"arguments\" and duplicate parameters.\n\npp$5.checkParams = function(node, allowDuplicates) {\n var nameHash = Object.create(null);\n for (var i = 0, list = node.params; i < list.length; i += 1)\n {\n var param = list[i];\n\n this.checkLValInnerPattern(param, BIND_VAR, allowDuplicates ? null : nameHash);\n }\n};\n\n// Parses a comma-separated list of expressions, and returns them as\n// an array. `close` is the token type that ends the list, and\n// `allowEmpty` can be turned on to allow subsequent commas with\n// nothing in between them to be parsed as `null` (which is needed\n// for array literals).\n\npp$5.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {\n var elts = [], first = true;\n while (!this.eat(close)) {\n if (!first) {\n this.expect(types$1.comma);\n if (allowTrailingComma && this.afterTrailingComma(close)) { break }\n } else { first = false; }\n\n var elt = (void 0);\n if (allowEmpty && this.type === types$1.comma)\n { elt = null; }\n else if (this.type === types$1.ellipsis) {\n elt = this.parseSpread(refDestructuringErrors);\n if (refDestructuringErrors && this.type === types$1.comma && refDestructuringErrors.trailingComma < 0)\n { refDestructuringErrors.trailingComma = this.start; }\n } else {\n elt = this.parseMaybeAssign(false, refDestructuringErrors);\n }\n elts.push(elt);\n }\n return elts\n};\n\npp$5.checkUnreserved = function(ref) {\n var start = ref.start;\n var end = ref.end;\n var name = ref.name;\n\n if (this.inGenerator && name === \"yield\")\n { this.raiseRecoverable(start, \"Cannot use 'yield' as identifier inside a generator\"); }\n if (this.inAsync && name === \"await\")\n { this.raiseRecoverable(start, \"Cannot use 'await' as identifier inside an async function\"); }\n if (!(this.currentThisScope().flags & SCOPE_VAR) && name === \"arguments\")\n { this.raiseRecoverable(start, \"Cannot use 'arguments' in class field initializer\"); }\n if (this.inClassStaticBlock && (name === \"arguments\" || name === \"await\"))\n { this.raise(start, (\"Cannot use \" + name + \" in class static initialization block\")); }\n if (this.keywords.test(name))\n { this.raise(start, (\"Unexpected keyword '\" + name + \"'\")); }\n if (this.options.ecmaVersion < 6 &&\n this.input.slice(start, end).indexOf(\"\\\\\") !== -1) { return }\n var re = this.strict ? this.reservedWordsStrict : this.reservedWords;\n if (re.test(name)) {\n if (!this.inAsync && name === \"await\")\n { this.raiseRecoverable(start, \"Cannot use keyword 'await' outside an async function\"); }\n this.raiseRecoverable(start, (\"The keyword '\" + name + \"' is reserved\"));\n }\n};\n\n// Parse the next token as an identifier. If `liberal` is true (used\n// when parsing properties), it will also convert keywords into\n// identifiers.\n\npp$5.parseIdent = function(liberal) {\n var node = this.parseIdentNode();\n this.next(!!liberal);\n this.finishNode(node, \"Identifier\");\n if (!liberal) {\n this.checkUnreserved(node);\n if (node.name === \"await\" && !this.awaitIdentPos)\n { this.awaitIdentPos = node.start; }\n }\n return node\n};\n\npp$5.parseIdentNode = function() {\n var node = this.startNode();\n if (this.type === types$1.name) {\n node.name = this.value;\n } else if (this.type.keyword) {\n node.name = this.type.keyword;\n\n // To fix https://github.com/acornjs/acorn/issues/575\n // `class` and `function` keywords push new context into this.context.\n // But there is no chance to pop the context if the keyword is consumed as an identifier such as a property name.\n // If the previous token is a dot, this does not apply because the context-managing code already ignored the keyword\n if ((node.name === \"class\" || node.name === \"function\") &&\n (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) {\n this.context.pop();\n }\n this.type = types$1.name;\n } else {\n this.unexpected();\n }\n return node\n};\n\npp$5.parsePrivateIdent = function() {\n var node = this.startNode();\n if (this.type === types$1.privateId) {\n node.name = this.value;\n } else {\n this.unexpected();\n }\n this.next();\n this.finishNode(node, \"PrivateIdentifier\");\n\n // For validating existence\n if (this.options.checkPrivateFields) {\n if (this.privateNameStack.length === 0) {\n this.raise(node.start, (\"Private field '#\" + (node.name) + \"' must be declared in an enclosing class\"));\n } else {\n this.privateNameStack[this.privateNameStack.length - 1].used.push(node);\n }\n }\n\n return node\n};\n\n// Parses yield expression inside generator.\n\npp$5.parseYield = function(forInit) {\n if (!this.yieldPos) { this.yieldPos = this.start; }\n\n var node = this.startNode();\n this.next();\n if (this.type === types$1.semi || this.canInsertSemicolon() || (this.type !== types$1.star && !this.type.startsExpr)) {\n node.delegate = false;\n node.argument = null;\n } else {\n node.delegate = this.eat(types$1.star);\n node.argument = this.parseMaybeAssign(forInit);\n }\n return this.finishNode(node, \"YieldExpression\")\n};\n\npp$5.parseAwait = function(forInit) {\n if (!this.awaitPos) { this.awaitPos = this.start; }\n\n var node = this.startNode();\n this.next();\n node.argument = this.parseMaybeUnary(null, true, false, forInit);\n return this.finishNode(node, \"AwaitExpression\")\n};\n\nvar pp$4 = Parser.prototype;\n\n// This function is used to raise exceptions on parse errors. It\n// takes an offset integer (into the current `input`) to indicate\n// the location of the error, attaches the position to the end\n// of the error message, and then raises a `SyntaxError` with that\n// message.\n\npp$4.raise = function(pos, message) {\n var loc = getLineInfo(this.input, pos);\n message += \" (\" + loc.line + \":\" + loc.column + \")\";\n if (this.sourceFile) {\n message += \" in \" + this.sourceFile;\n }\n var err = new SyntaxError(message);\n err.pos = pos; err.loc = loc; err.raisedAt = this.pos;\n throw err\n};\n\npp$4.raiseRecoverable = pp$4.raise;\n\npp$4.curPosition = function() {\n if (this.options.locations) {\n return new Position(this.curLine, this.pos - this.lineStart)\n }\n};\n\nvar pp$3 = Parser.prototype;\n\nvar Scope = function Scope(flags) {\n this.flags = flags;\n // A list of var-declared names in the current lexical scope\n this.var = [];\n // A list of lexically-declared names in the current lexical scope\n this.lexical = [];\n // A list of lexically-declared FunctionDeclaration names in the current lexical scope\n this.functions = [];\n};\n\n// The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names.\n\npp$3.enterScope = function(flags) {\n this.scopeStack.push(new Scope(flags));\n};\n\npp$3.exitScope = function() {\n this.scopeStack.pop();\n};\n\n// The spec says:\n// > At the top level of a function, or script, function declarations are\n// > treated like var declarations rather than like lexical declarations.\npp$3.treatFunctionsAsVarInScope = function(scope) {\n return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP)\n};\n\npp$3.declareName = function(name, bindingType, pos) {\n var redeclared = false;\n if (bindingType === BIND_LEXICAL) {\n var scope = this.currentScope();\n redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1;\n scope.lexical.push(name);\n if (this.inModule && (scope.flags & SCOPE_TOP))\n { delete this.undefinedExports[name]; }\n } else if (bindingType === BIND_SIMPLE_CATCH) {\n var scope$1 = this.currentScope();\n scope$1.lexical.push(name);\n } else if (bindingType === BIND_FUNCTION) {\n var scope$2 = this.currentScope();\n if (this.treatFunctionsAsVar)\n { redeclared = scope$2.lexical.indexOf(name) > -1; }\n else\n { redeclared = scope$2.lexical.indexOf(name) > -1 || scope$2.var.indexOf(name) > -1; }\n scope$2.functions.push(name);\n } else {\n for (var i = this.scopeStack.length - 1; i >= 0; --i) {\n var scope$3 = this.scopeStack[i];\n if (scope$3.lexical.indexOf(name) > -1 && !((scope$3.flags & SCOPE_SIMPLE_CATCH) && scope$3.lexical[0] === name) ||\n !this.treatFunctionsAsVarInScope(scope$3) && scope$3.functions.indexOf(name) > -1) {\n redeclared = true;\n break\n }\n scope$3.var.push(name);\n if (this.inModule && (scope$3.flags & SCOPE_TOP))\n { delete this.undefinedExports[name]; }\n if (scope$3.flags & SCOPE_VAR) { break }\n }\n }\n if (redeclared) { this.raiseRecoverable(pos, (\"Identifier '\" + name + \"' has already been declared\")); }\n};\n\npp$3.checkLocalExport = function(id) {\n // scope.functions must be empty as Module code is always strict.\n if (this.scopeStack[0].lexical.indexOf(id.name) === -1 &&\n this.scopeStack[0].var.indexOf(id.name) === -1) {\n this.undefinedExports[id.name] = id;\n }\n};\n\npp$3.currentScope = function() {\n return this.scopeStack[this.scopeStack.length - 1]\n};\n\npp$3.currentVarScope = function() {\n for (var i = this.scopeStack.length - 1;; i--) {\n var scope = this.scopeStack[i];\n if (scope.flags & (SCOPE_VAR | SCOPE_CLASS_FIELD_INIT | SCOPE_CLASS_STATIC_BLOCK)) { return scope }\n }\n};\n\n// Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\npp$3.currentThisScope = function() {\n for (var i = this.scopeStack.length - 1;; i--) {\n var scope = this.scopeStack[i];\n if (scope.flags & (SCOPE_VAR | SCOPE_CLASS_FIELD_INIT | SCOPE_CLASS_STATIC_BLOCK) &&\n !(scope.flags & SCOPE_ARROW)) { return scope }\n }\n};\n\nvar Node = function Node(parser, pos, loc) {\n this.type = \"\";\n this.start = pos;\n this.end = 0;\n if (parser.options.locations)\n { this.loc = new SourceLocation(parser, loc); }\n if (parser.options.directSourceFile)\n { this.sourceFile = parser.options.directSourceFile; }\n if (parser.options.ranges)\n { this.range = [pos, 0]; }\n};\n\n// Start an AST node, attaching a start offset.\n\nvar pp$2 = Parser.prototype;\n\npp$2.startNode = function() {\n return new Node(this, this.start, this.startLoc)\n};\n\npp$2.startNodeAt = function(pos, loc) {\n return new Node(this, pos, loc)\n};\n\n// Finish an AST node, adding `type` and `end` properties.\n\nfunction finishNodeAt(node, type, pos, loc) {\n node.type = type;\n node.end = pos;\n if (this.options.locations)\n { node.loc.end = loc; }\n if (this.options.ranges)\n { node.range[1] = pos; }\n return node\n}\n\npp$2.finishNode = function(node, type) {\n return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc)\n};\n\n// Finish node at given position\n\npp$2.finishNodeAt = function(node, type, pos, loc) {\n return finishNodeAt.call(this, node, type, pos, loc)\n};\n\npp$2.copyNode = function(node) {\n var newNode = new Node(this, node.start, this.startLoc);\n for (var prop in node) { newNode[prop] = node[prop]; }\n return newNode\n};\n\n// This file was generated by \"bin/generate-unicode-script-values.js\". Do not modify manually!\nvar scriptValuesAddedInUnicode = \"Berf Beria_Erfe Gara Garay Gukh Gurung_Khema Hrkt Katakana_Or_Hiragana Kawi Kirat_Rai Krai Nag_Mundari Nagm Ol_Onal Onao Sidetic Sidt Sunu Sunuwar Tai_Yo Tayo Todhri Todr Tolong_Siki Tols Tulu_Tigalari Tutg Unknown Zzzz\";\n\n// This file contains Unicode properties extracted from the ECMAScript specification.\n// The lists are extracted like so:\n// $$('#table-binary-unicode-properties > figure > table > tbody > tr > td:nth-child(1) code').map(el => el.innerText)\n\n// #table-binary-unicode-properties\nvar ecma9BinaryProperties = \"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS\";\nvar ecma10BinaryProperties = ecma9BinaryProperties + \" Extended_Pictographic\";\nvar ecma11BinaryProperties = ecma10BinaryProperties;\nvar ecma12BinaryProperties = ecma11BinaryProperties + \" EBase EComp EMod EPres ExtPict\";\nvar ecma13BinaryProperties = ecma12BinaryProperties;\nvar ecma14BinaryProperties = ecma13BinaryProperties;\n\nvar unicodeBinaryProperties = {\n 9: ecma9BinaryProperties,\n 10: ecma10BinaryProperties,\n 11: ecma11BinaryProperties,\n 12: ecma12BinaryProperties,\n 13: ecma13BinaryProperties,\n 14: ecma14BinaryProperties\n};\n\n// #table-binary-unicode-properties-of-strings\nvar ecma14BinaryPropertiesOfStrings = \"Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji\";\n\nvar unicodeBinaryPropertiesOfStrings = {\n 9: \"\",\n 10: \"\",\n 11: \"\",\n 12: \"\",\n 13: \"\",\n 14: ecma14BinaryPropertiesOfStrings\n};\n\n// #table-unicode-general-category-values\nvar unicodeGeneralCategoryValues = \"Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu\";\n\n// #table-unicode-script-values\nvar ecma9ScriptValues = \"Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb\";\nvar ecma10ScriptValues = ecma9ScriptValues + \" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd\";\nvar ecma11ScriptValues = ecma10ScriptValues + \" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho\";\nvar ecma12ScriptValues = ecma11ScriptValues + \" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi\";\nvar ecma13ScriptValues = ecma12ScriptValues + \" Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith\";\nvar ecma14ScriptValues = ecma13ScriptValues + \" \" + scriptValuesAddedInUnicode;\n\nvar unicodeScriptValues = {\n 9: ecma9ScriptValues,\n 10: ecma10ScriptValues,\n 11: ecma11ScriptValues,\n 12: ecma12ScriptValues,\n 13: ecma13ScriptValues,\n 14: ecma14ScriptValues\n};\n\nvar data = {};\nfunction buildUnicodeData(ecmaVersion) {\n var d = data[ecmaVersion] = {\n binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion] + \" \" + unicodeGeneralCategoryValues),\n binaryOfStrings: wordsRegexp(unicodeBinaryPropertiesOfStrings[ecmaVersion]),\n nonBinary: {\n General_Category: wordsRegexp(unicodeGeneralCategoryValues),\n Script: wordsRegexp(unicodeScriptValues[ecmaVersion])\n }\n };\n d.nonBinary.Script_Extensions = d.nonBinary.Script;\n\n d.nonBinary.gc = d.nonBinary.General_Category;\n d.nonBinary.sc = d.nonBinary.Script;\n d.nonBinary.scx = d.nonBinary.Script_Extensions;\n}\n\nfor (var i = 0, list = [9, 10, 11, 12, 13, 14]; i < list.length; i += 1) {\n var ecmaVersion = list[i];\n\n buildUnicodeData(ecmaVersion);\n}\n\nvar pp$1 = Parser.prototype;\n\n// Track disjunction structure to determine whether a duplicate\n// capture group name is allowed because it is in a separate branch.\nvar BranchID = function BranchID(parent, base) {\n // Parent disjunction branch\n this.parent = parent;\n // Identifies this set of sibling branches\n this.base = base || this;\n};\n\nBranchID.prototype.separatedFrom = function separatedFrom (alt) {\n // A branch is separate from another branch if they or any of\n // their parents are siblings in a given disjunction\n for (var self = this; self; self = self.parent) {\n for (var other = alt; other; other = other.parent) {\n if (self.base === other.base && self !== other) { return true }\n }\n }\n return false\n};\n\nBranchID.prototype.sibling = function sibling () {\n return new BranchID(this.parent, this.base)\n};\n\nvar RegExpValidationState = function RegExpValidationState(parser) {\n this.parser = parser;\n this.validFlags = \"gim\" + (parser.options.ecmaVersion >= 6 ? \"uy\" : \"\") + (parser.options.ecmaVersion >= 9 ? \"s\" : \"\") + (parser.options.ecmaVersion >= 13 ? \"d\" : \"\") + (parser.options.ecmaVersion >= 15 ? \"v\" : \"\");\n this.unicodeProperties = data[parser.options.ecmaVersion >= 14 ? 14 : parser.options.ecmaVersion];\n this.source = \"\";\n this.flags = \"\";\n this.start = 0;\n this.switchU = false;\n this.switchV = false;\n this.switchN = false;\n this.pos = 0;\n this.lastIntValue = 0;\n this.lastStringValue = \"\";\n this.lastAssertionIsQuantifiable = false;\n this.numCapturingParens = 0;\n this.maxBackReference = 0;\n this.groupNames = Object.create(null);\n this.backReferenceNames = [];\n this.branchID = null;\n};\n\nRegExpValidationState.prototype.reset = function reset (start, pattern, flags) {\n var unicodeSets = flags.indexOf(\"v\") !== -1;\n var unicode = flags.indexOf(\"u\") !== -1;\n this.start = start | 0;\n this.source = pattern + \"\";\n this.flags = flags;\n if (unicodeSets && this.parser.options.ecmaVersion >= 15) {\n this.switchU = true;\n this.switchV = true;\n this.switchN = true;\n } else {\n this.switchU = unicode && this.parser.options.ecmaVersion >= 6;\n this.switchV = false;\n this.switchN = unicode && this.parser.options.ecmaVersion >= 9;\n }\n};\n\nRegExpValidationState.prototype.raise = function raise (message) {\n this.parser.raiseRecoverable(this.start, (\"Invalid regular expression: /\" + (this.source) + \"/: \" + message));\n};\n\n// If u flag is given, this returns the code point at the index (it combines a surrogate pair).\n// Otherwise, this returns the code unit of the index (can be a part of a surrogate pair).\nRegExpValidationState.prototype.at = function at (i, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var s = this.source;\n var l = s.length;\n if (i >= l) {\n return -1\n }\n var c = s.charCodeAt(i);\n if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {\n return c\n }\n var next = s.charCodeAt(i + 1);\n return next >= 0xDC00 && next <= 0xDFFF ? (c << 10) + next - 0x35FDC00 : c\n};\n\nRegExpValidationState.prototype.nextIndex = function nextIndex (i, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var s = this.source;\n var l = s.length;\n if (i >= l) {\n return l\n }\n var c = s.charCodeAt(i), next;\n if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l ||\n (next = s.charCodeAt(i + 1)) < 0xDC00 || next > 0xDFFF) {\n return i + 1\n }\n return i + 2\n};\n\nRegExpValidationState.prototype.current = function current (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n return this.at(this.pos, forceU)\n};\n\nRegExpValidationState.prototype.lookahead = function lookahead (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n return this.at(this.nextIndex(this.pos, forceU), forceU)\n};\n\nRegExpValidationState.prototype.advance = function advance (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n this.pos = this.nextIndex(this.pos, forceU);\n};\n\nRegExpValidationState.prototype.eat = function eat (ch, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n if (this.current(forceU) === ch) {\n this.advance(forceU);\n return true\n }\n return false\n};\n\nRegExpValidationState.prototype.eatChars = function eatChars (chs, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var pos = this.pos;\n for (var i = 0, list = chs; i < list.length; i += 1) {\n var ch = list[i];\n\n var current = this.at(pos, forceU);\n if (current === -1 || current !== ch) {\n return false\n }\n pos = this.nextIndex(pos, forceU);\n }\n this.pos = pos;\n return true\n};\n\n/**\n * Validate the flags part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp$1.validateRegExpFlags = function(state) {\n var validFlags = state.validFlags;\n var flags = state.flags;\n\n var u = false;\n var v = false;\n\n for (var i = 0; i < flags.length; i++) {\n var flag = flags.charAt(i);\n if (validFlags.indexOf(flag) === -1) {\n this.raise(state.start, \"Invalid regular expression flag\");\n }\n if (flags.indexOf(flag, i + 1) > -1) {\n this.raise(state.start, \"Duplicate regular expression flag\");\n }\n if (flag === \"u\") { u = true; }\n if (flag === \"v\") { v = true; }\n }\n if (this.options.ecmaVersion >= 15 && u && v) {\n this.raise(state.start, \"Invalid regular expression flag\");\n }\n};\n\nfunction hasProp(obj) {\n for (var _ in obj) { return true }\n return false\n}\n\n/**\n * Validate the pattern part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp$1.validateRegExpPattern = function(state) {\n this.regexp_pattern(state);\n\n // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of\n // parsing contains a |GroupName|, reparse with the goal symbol\n // |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError*\n // exception if _P_ did not conform to the grammar, if any elements of _P_\n // were not matched by the parse, or if any Early Error conditions exist.\n if (!state.switchN && this.options.ecmaVersion >= 9 && hasProp(state.groupNames)) {\n state.switchN = true;\n this.regexp_pattern(state);\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern\npp$1.regexp_pattern = function(state) {\n state.pos = 0;\n state.lastIntValue = 0;\n state.lastStringValue = \"\";\n state.lastAssertionIsQuantifiable = false;\n state.numCapturingParens = 0;\n state.maxBackReference = 0;\n state.groupNames = Object.create(null);\n state.backReferenceNames.length = 0;\n state.branchID = null;\n\n this.regexp_disjunction(state);\n\n if (state.pos !== state.source.length) {\n // Make the same messages as V8.\n if (state.eat(0x29 /* ) */)) {\n state.raise(\"Unmatched ')'\");\n }\n if (state.eat(0x5D /* ] */) || state.eat(0x7D /* } */)) {\n state.raise(\"Lone quantifier brackets\");\n }\n }\n if (state.maxBackReference > state.numCapturingParens) {\n state.raise(\"Invalid escape\");\n }\n for (var i = 0, list = state.backReferenceNames; i < list.length; i += 1) {\n var name = list[i];\n\n if (!state.groupNames[name]) {\n state.raise(\"Invalid named capture referenced\");\n }\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction\npp$1.regexp_disjunction = function(state) {\n var trackDisjunction = this.options.ecmaVersion >= 16;\n if (trackDisjunction) { state.branchID = new BranchID(state.branchID, null); }\n this.regexp_alternative(state);\n while (state.eat(0x7C /* | */)) {\n if (trackDisjunction) { state.branchID = state.branchID.sibling(); }\n this.regexp_alternative(state);\n }\n if (trackDisjunction) { state.branchID = state.branchID.parent; }\n\n // Make the same message as V8.\n if (this.regexp_eatQuantifier(state, true)) {\n state.raise(\"Nothing to repeat\");\n }\n if (state.eat(0x7B /* { */)) {\n state.raise(\"Lone quantifier brackets\");\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative\npp$1.regexp_alternative = function(state) {\n while (state.pos < state.source.length && this.regexp_eatTerm(state)) {}\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term\npp$1.regexp_eatTerm = function(state) {\n if (this.regexp_eatAssertion(state)) {\n // Handle `QuantifiableAssertion Quantifier` alternative.\n // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion\n // is a QuantifiableAssertion.\n if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) {\n // Make the same message as V8.\n if (state.switchU) {\n state.raise(\"Invalid quantifier\");\n }\n }\n return true\n }\n\n if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) {\n this.regexp_eatQuantifier(state);\n return true\n }\n\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion\npp$1.regexp_eatAssertion = function(state) {\n var start = state.pos;\n state.lastAssertionIsQuantifiable = false;\n\n // ^, $\n if (state.eat(0x5E /* ^ */) || state.eat(0x24 /* $ */)) {\n return true\n }\n\n // \\b \\B\n if (state.eat(0x5C /* \\ */)) {\n if (state.eat(0x42 /* B */) || state.eat(0x62 /* b */)) {\n return true\n }\n state.pos = start;\n }\n\n // Lookahead / Lookbehind\n if (state.eat(0x28 /* ( */) && state.eat(0x3F /* ? */)) {\n var lookbehind = false;\n if (this.options.ecmaVersion >= 9) {\n lookbehind = state.eat(0x3C /* < */);\n }\n if (state.eat(0x3D /* = */) || state.eat(0x21 /* ! */)) {\n this.regexp_disjunction(state);\n if (!state.eat(0x29 /* ) */)) {\n state.raise(\"Unterminated group\");\n }\n state.lastAssertionIsQuantifiable = !lookbehind;\n return true\n }\n }\n\n state.pos = start;\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier\npp$1.regexp_eatQuantifier = function(state, noError) {\n if ( noError === void 0 ) noError = false;\n\n if (this.regexp_eatQuantifierPrefix(state, noError)) {\n state.eat(0x3F /* ? */);\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix\npp$1.regexp_eatQuantifierPrefix = function(state, noError) {\n return (\n state.eat(0x2A /* * */) ||\n state.eat(0x2B /* + */) ||\n state.eat(0x3F /* ? */) ||\n this.regexp_eatBracedQuantifier(state, noError)\n )\n};\npp$1.regexp_eatBracedQuantifier = function(state, noError) {\n var start = state.pos;\n if (state.eat(0x7B /* { */)) {\n var min = 0, max = -1;\n if (this.regexp_eatDecimalDigits(state)) {\n min = state.lastIntValue;\n if (state.eat(0x2C /* , */) && this.regexp_eatDecimalDigits(state)) {\n max = state.lastIntValue;\n }\n if (state.eat(0x7D /* } */)) {\n // SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-term\n if (max !== -1 && max < min && !noError) {\n state.raise(\"numbers out of order in {} quantifier\");\n }\n return true\n }\n }\n if (state.switchU && !noError) {\n state.raise(\"Incomplete quantifier\");\n }\n state.pos = start;\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Atom\npp$1.regexp_eatAtom = function(state) {\n return (\n this.regexp_eatPatternCharacters(state) ||\n state.eat(0x2E /* . */) ||\n this.regexp_eatReverseSolidusAtomEscape(state) ||\n this.regexp_eatCharacterClass(state) ||\n this.regexp_eatUncapturingGroup(state) ||\n this.regexp_eatCapturingGroup(state)\n )\n};\npp$1.regexp_eatReverseSolidusAtomEscape = function(state) {\n var start = state.pos;\n if (state.eat(0x5C /* \\ */)) {\n if (this.regexp_eatAtomEscape(state)) {\n return true\n }\n state.pos = start;\n }\n return false\n};\npp$1.regexp_eatUncapturingGroup = function(state) {\n var start = state.pos;\n if (state.eat(0x28 /* ( */)) {\n if (state.eat(0x3F /* ? */)) {\n if (this.options.ecmaVersion >= 16) {\n var addModifiers = this.regexp_eatModifiers(state);\n var hasHyphen = state.eat(0x2D /* - */);\n if (addModifiers || hasHyphen) {\n for (var i = 0; i < addModifiers.length; i++) {\n var modifier = addModifiers.charAt(i);\n if (addModifiers.indexOf(modifier, i + 1) > -1) {\n state.raise(\"Duplicate regular expression modifiers\");\n }\n }\n if (hasHyphen) {\n var removeModifiers = this.regexp_eatModifiers(state);\n if (!addModifiers && !removeModifiers && state.current() === 0x3A /* : */) {\n state.raise(\"Invalid regular expression modifiers\");\n }\n for (var i$1 = 0; i$1 < removeModifiers.length; i$1++) {\n var modifier$1 = removeModifiers.charAt(i$1);\n if (\n removeModifiers.indexOf(modifier$1, i$1 + 1) > -1 ||\n addModifiers.indexOf(modifier$1) > -1\n ) {\n state.raise(\"Duplicate regular expression modifiers\");\n }\n }\n }\n }\n }\n if (state.eat(0x3A /* : */)) {\n this.regexp_disjunction(state);\n if (state.eat(0x29 /* ) */)) {\n return true\n }\n state.raise(\"Unterminated group\");\n }\n }\n state.pos = start;\n }\n return false\n};\npp$1.regexp_eatCapturingGroup = function(state) {\n if (state.eat(0x28 /* ( */)) {\n if (this.options.ecmaVersion >= 9) {\n this.regexp_groupSpecifier(state);\n } else if (state.current() === 0x3F /* ? */) {\n state.raise(\"Invalid group\");\n }\n this.regexp_disjunction(state);\n if (state.eat(0x29 /* ) */)) {\n state.numCapturingParens += 1;\n return true\n }\n state.raise(\"Unterminated group\");\n }\n return false\n};\n// RegularExpressionModifiers ::\n// [empty]\n// RegularExpressionModifiers RegularExpressionModifier\npp$1.regexp_eatModifiers = function(state) {\n var modifiers = \"\";\n var ch = 0;\n while ((ch = state.current()) !== -1 && isRegularExpressionModifier(ch)) {\n modifiers += codePointToString(ch);\n state.advance();\n }\n return modifiers\n};\n// RegularExpressionModifier :: one of\n// `i` `m` `s`\nfunction isRegularExpressionModifier(ch) {\n return ch === 0x69 /* i */ || ch === 0x6d /* m */ || ch === 0x73 /* s */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom\npp$1.regexp_eatExtendedAtom = function(state) {\n return (\n state.eat(0x2E /* . */) ||\n this.regexp_eatReverseSolidusAtomEscape(state) ||\n this.regexp_eatCharacterClass(state) ||\n this.regexp_eatUncapturingGroup(state) ||\n this.regexp_eatCapturingGroup(state) ||\n this.regexp_eatInvalidBracedQuantifier(state) ||\n this.regexp_eatExtendedPatternCharacter(state)\n )\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier\npp$1.regexp_eatInvalidBracedQuantifier = function(state) {\n if (this.regexp_eatBracedQuantifier(state, true)) {\n state.raise(\"Nothing to repeat\");\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter\npp$1.regexp_eatSyntaxCharacter = function(state) {\n var ch = state.current();\n if (isSyntaxCharacter(ch)) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n return false\n};\nfunction isSyntaxCharacter(ch) {\n return (\n ch === 0x24 /* $ */ ||\n ch >= 0x28 /* ( */ && ch <= 0x2B /* + */ ||\n ch === 0x2E /* . */ ||\n ch === 0x3F /* ? */ ||\n ch >= 0x5B /* [ */ && ch <= 0x5E /* ^ */ ||\n ch >= 0x7B /* { */ && ch <= 0x7D /* } */\n )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter\n// But eat eager.\npp$1.regexp_eatPatternCharacters = function(state) {\n var start = state.pos;\n var ch = 0;\n while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) {\n state.advance();\n }\n return state.pos !== start\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter\npp$1.regexp_eatExtendedPatternCharacter = function(state) {\n var ch = state.current();\n if (\n ch !== -1 &&\n ch !== 0x24 /* $ */ &&\n !(ch >= 0x28 /* ( */ && ch <= 0x2B /* + */) &&\n ch !== 0x2E /* . */ &&\n ch !== 0x3F /* ? */ &&\n ch !== 0x5B /* [ */ &&\n ch !== 0x5E /* ^ */ &&\n ch !== 0x7C /* | */\n ) {\n state.advance();\n return true\n }\n return false\n};\n\n// GroupSpecifier ::\n// [empty]\n// `?` GroupName\npp$1.regexp_groupSpecifier = function(state) {\n if (state.eat(0x3F /* ? */)) {\n if (!this.regexp_eatGroupName(state)) { state.raise(\"Invalid group\"); }\n var trackDisjunction = this.options.ecmaVersion >= 16;\n var known = state.groupNames[state.lastStringValue];\n if (known) {\n if (trackDisjunction) {\n for (var i = 0, list = known; i < list.length; i += 1) {\n var altID = list[i];\n\n if (!altID.separatedFrom(state.branchID))\n { state.raise(\"Duplicate capture group name\"); }\n }\n } else {\n state.raise(\"Duplicate capture group name\");\n }\n }\n if (trackDisjunction) {\n (known || (state.groupNames[state.lastStringValue] = [])).push(state.branchID);\n } else {\n state.groupNames[state.lastStringValue] = true;\n }\n }\n};\n\n// GroupName ::\n// `<` RegExpIdentifierName `>`\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp$1.regexp_eatGroupName = function(state) {\n state.lastStringValue = \"\";\n if (state.eat(0x3C /* < */)) {\n if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) {\n return true\n }\n state.raise(\"Invalid capture group name\");\n }\n return false\n};\n\n// RegExpIdentifierName ::\n// RegExpIdentifierStart\n// RegExpIdentifierName RegExpIdentifierPart\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp$1.regexp_eatRegExpIdentifierName = function(state) {\n state.lastStringValue = \"\";\n if (this.regexp_eatRegExpIdentifierStart(state)) {\n state.lastStringValue += codePointToString(state.lastIntValue);\n while (this.regexp_eatRegExpIdentifierPart(state)) {\n state.lastStringValue += codePointToString(state.lastIntValue);\n }\n return true\n }\n return false\n};\n\n// RegExpIdentifierStart ::\n// UnicodeIDStart\n// `$`\n// `_`\n// `\\` RegExpUnicodeEscapeSequence[+U]\npp$1.regexp_eatRegExpIdentifierStart = function(state) {\n var start = state.pos;\n var forceU = this.options.ecmaVersion >= 11;\n var ch = state.current(forceU);\n state.advance(forceU);\n\n if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {\n ch = state.lastIntValue;\n }\n if (isRegExpIdentifierStart(ch)) {\n state.lastIntValue = ch;\n return true\n }\n\n state.pos = start;\n return false\n};\nfunction isRegExpIdentifierStart(ch) {\n return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */\n}\n\n// RegExpIdentifierPart ::\n// UnicodeIDContinue\n// `$`\n// `_`\n// `\\` RegExpUnicodeEscapeSequence[+U]\n// <ZWNJ>\n// <ZWJ>\npp$1.regexp_eatRegExpIdentifierPart = function(state) {\n var start = state.pos;\n var forceU = this.options.ecmaVersion >= 11;\n var ch = state.current(forceU);\n state.advance(forceU);\n\n if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {\n ch = state.lastIntValue;\n }\n if (isRegExpIdentifierPart(ch)) {\n state.lastIntValue = ch;\n return true\n }\n\n state.pos = start;\n return false\n};\nfunction isRegExpIdentifierPart(ch) {\n return isIdentifierChar(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ || ch === 0x200C /* <ZWNJ> */ || ch === 0x200D /* <ZWJ> */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape\npp$1.regexp_eatAtomEscape = function(state) {\n if (\n this.regexp_eatBackReference(state) ||\n this.regexp_eatCharacterClassEscape(state) ||\n this.regexp_eatCharacterEscape(state) ||\n (state.switchN && this.regexp_eatKGroupName(state))\n ) {\n return true\n }\n if (state.switchU) {\n // Make the same message as V8.\n if (state.current() === 0x63 /* c */) {\n state.raise(\"Invalid unicode escape\");\n }\n state.raise(\"Invalid escape\");\n }\n return false\n};\npp$1.regexp_eatBackReference = function(state) {\n var start = state.pos;\n if (this.regexp_eatDecimalEscape(state)) {\n var n = state.lastIntValue;\n if (state.switchU) {\n // For SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-atomescape\n if (n > state.maxBackReference) {\n state.maxBackReference = n;\n }\n return true\n }\n if (n <= state.numCapturingParens) {\n return true\n }\n state.pos = start;\n }\n return false\n};\npp$1.regexp_eatKGroupName = function(state) {\n if (state.eat(0x6B /* k */)) {\n if (this.regexp_eatGroupName(state)) {\n state.backReferenceNames.push(state.lastStringValue);\n return true\n }\n state.raise(\"Invalid named reference\");\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape\npp$1.regexp_eatCharacterEscape = function(state) {\n return (\n this.regexp_eatControlEscape(state) ||\n this.regexp_eatCControlLetter(state) ||\n this.regexp_eatZero(state) ||\n this.regexp_eatHexEscapeSequence(state) ||\n this.regexp_eatRegExpUnicodeEscapeSequence(state, false) ||\n (!state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state)) ||\n this.regexp_eatIdentityEscape(state)\n )\n};\npp$1.regexp_eatCControlLetter = function(state) {\n var start = state.pos;\n if (state.eat(0x63 /* c */)) {\n if (this.regexp_eatControlLetter(state)) {\n return true\n }\n state.pos = start;\n }\n return false\n};\npp$1.regexp_eatZero = function(state) {\n if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) {\n state.lastIntValue = 0;\n state.advance();\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape\npp$1.regexp_eatControlEscape = function(state) {\n var ch = state.current();\n if (ch === 0x74 /* t */) {\n state.lastIntValue = 0x09; /* \\t */\n state.advance();\n return true\n }\n if (ch === 0x6E /* n */) {\n state.lastIntValue = 0x0A; /* \\n */\n state.advance();\n return true\n }\n if (ch === 0x76 /* v */) {\n state.lastIntValue = 0x0B; /* \\v */\n state.advance();\n return true\n }\n if (ch === 0x66 /* f */) {\n state.lastIntValue = 0x0C; /* \\f */\n state.advance();\n return true\n }\n if (ch === 0x72 /* r */) {\n state.lastIntValue = 0x0D; /* \\r */\n state.advance();\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter\npp$1.regexp_eatControlLetter = function(state) {\n var ch = state.current();\n if (isControlLetter(ch)) {\n state.lastIntValue = ch % 0x20;\n state.advance();\n return true\n }\n return false\n};\nfunction isControlLetter(ch) {\n return (\n (ch >= 0x41 /* A */ && ch <= 0x5A /* Z */) ||\n (ch >= 0x61 /* a */ && ch <= 0x7A /* z */)\n )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence\npp$1.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var start = state.pos;\n var switchU = forceU || state.switchU;\n\n if (state.eat(0x75 /* u */)) {\n if (this.regexp_eatFixedHexDigits(state, 4)) {\n var lead = state.lastIntValue;\n if (switchU && lead >= 0xD800 && lead <= 0xDBFF) {\n var leadSurrogateEnd = state.pos;\n if (state.eat(0x5C /* \\ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) {\n var trail = state.lastIntValue;\n if (trail >= 0xDC00 && trail <= 0xDFFF) {\n state.lastIntValue = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000;\n return true\n }\n }\n state.pos = leadSurrogateEnd;\n state.lastIntValue = lead;\n }\n return true\n }\n if (\n switchU &&\n state.eat(0x7B /* { */) &&\n this.regexp_eatHexDigits(state) &&\n state.eat(0x7D /* } */) &&\n isValidUnicode(state.lastIntValue)\n ) {\n return true\n }\n if (switchU) {\n state.raise(\"Invalid unicode escape\");\n }\n state.pos = start;\n }\n\n return false\n};\nfunction isValidUnicode(ch) {\n return ch >= 0 && ch <= 0x10FFFF\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape\npp$1.regexp_eatIdentityEscape = function(state) {\n if (state.switchU) {\n if (this.regexp_eatSyntaxCharacter(state)) {\n return true\n }\n if (state.eat(0x2F /* / */)) {\n state.lastIntValue = 0x2F; /* / */\n return true\n }\n return false\n }\n\n var ch = state.current();\n if (ch !== 0x63 /* c */ && (!state.switchN || ch !== 0x6B /* k */)) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape\npp$1.regexp_eatDecimalEscape = function(state) {\n state.lastIntValue = 0;\n var ch = state.current();\n if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) {\n do {\n state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);\n state.advance();\n } while ((ch = state.current()) >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */)\n return true\n }\n return false\n};\n\n// Return values used by character set parsing methods, needed to\n// forbid negation of sets that can match strings.\nvar CharSetNone = 0; // Nothing parsed\nvar CharSetOk = 1; // Construct parsed, cannot contain strings\nvar CharSetString = 2; // Construct parsed, can contain strings\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape\npp$1.regexp_eatCharacterClassEscape = function(state) {\n var ch = state.current();\n\n if (isCharacterClassEscape(ch)) {\n state.lastIntValue = -1;\n state.advance();\n return CharSetOk\n }\n\n var negate = false;\n if (\n state.switchU &&\n this.options.ecmaVersion >= 9 &&\n ((negate = ch === 0x50 /* P */) || ch === 0x70 /* p */)\n ) {\n state.lastIntValue = -1;\n state.advance();\n var result;\n if (\n state.eat(0x7B /* { */) &&\n (result = this.regexp_eatUnicodePropertyValueExpression(state)) &&\n state.eat(0x7D /* } */)\n ) {\n if (negate && result === CharSetString) { state.raise(\"Invalid property name\"); }\n return result\n }\n state.raise(\"Invalid property name\");\n }\n\n return CharSetNone\n};\n\nfunction isCharacterClassEscape(ch) {\n return (\n ch === 0x64 /* d */ ||\n ch === 0x44 /* D */ ||\n ch === 0x73 /* s */ ||\n ch === 0x53 /* S */ ||\n ch === 0x77 /* w */ ||\n ch === 0x57 /* W */\n )\n}\n\n// UnicodePropertyValueExpression ::\n// UnicodePropertyName `=` UnicodePropertyValue\n// LoneUnicodePropertyNameOrValue\npp$1.regexp_eatUnicodePropertyValueExpression = function(state) {\n var start = state.pos;\n\n // UnicodePropertyName `=` UnicodePropertyValue\n if (this.regexp_eatUnicodePropertyName(state) && state.eat(0x3D /* = */)) {\n var name = state.lastStringValue;\n if (this.regexp_eatUnicodePropertyValue(state)) {\n var value = state.lastStringValue;\n this.regexp_validateUnicodePropertyNameAndValue(state, name, value);\n return CharSetOk\n }\n }\n state.pos = start;\n\n // LoneUnicodePropertyNameOrValue\n if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) {\n var nameOrValue = state.lastStringValue;\n return this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue)\n }\n return CharSetNone\n};\n\npp$1.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) {\n if (!hasOwn(state.unicodeProperties.nonBinary, name))\n { state.raise(\"Invalid property name\"); }\n if (!state.unicodeProperties.nonBinary[name].test(value))\n { state.raise(\"Invalid property value\"); }\n};\n\npp$1.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) {\n if (state.unicodeProperties.binary.test(nameOrValue)) { return CharSetOk }\n if (state.switchV && state.unicodeProperties.binaryOfStrings.test(nameOrValue)) { return CharSetString }\n state.raise(\"Invalid property name\");\n};\n\n// UnicodePropertyName ::\n// UnicodePropertyNameCharacters\npp$1.regexp_eatUnicodePropertyName = function(state) {\n var ch = 0;\n state.lastStringValue = \"\";\n while (isUnicodePropertyNameCharacter(ch = state.current())) {\n state.lastStringValue += codePointToString(ch);\n state.advance();\n }\n return state.lastStringValue !== \"\"\n};\n\nfunction isUnicodePropertyNameCharacter(ch) {\n return isControlLetter(ch) || ch === 0x5F /* _ */\n}\n\n// UnicodePropertyValue ::\n// UnicodePropertyValueCharacters\npp$1.regexp_eatUnicodePropertyValue = function(state) {\n var ch = 0;\n state.lastStringValue = \"\";\n while (isUnicodePropertyValueCharacter(ch = state.current())) {\n state.lastStringValue += codePointToString(ch);\n state.advance();\n }\n return state.lastStringValue !== \"\"\n};\nfunction isUnicodePropertyValueCharacter(ch) {\n return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch)\n}\n\n// LoneUnicodePropertyNameOrValue ::\n// UnicodePropertyValueCharacters\npp$1.regexp_eatLoneUnicodePropertyNameOrValue = function(state) {\n return this.regexp_eatUnicodePropertyValue(state)\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass\npp$1.regexp_eatCharacterClass = function(state) {\n if (state.eat(0x5B /* [ */)) {\n var negate = state.eat(0x5E /* ^ */);\n var result = this.regexp_classContents(state);\n if (!state.eat(0x5D /* ] */))\n { state.raise(\"Unterminated character class\"); }\n if (negate && result === CharSetString)\n { state.raise(\"Negated character class may contain strings\"); }\n return true\n }\n return false\n};\n\n// https://tc39.es/ecma262/#prod-ClassContents\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges\npp$1.regexp_classContents = function(state) {\n if (state.current() === 0x5D /* ] */) { return CharSetOk }\n if (state.switchV) { return this.regexp_classSetExpression(state) }\n this.regexp_nonEmptyClassRanges(state);\n return CharSetOk\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash\npp$1.regexp_nonEmptyClassRanges = function(state) {\n while (this.regexp_eatClassAtom(state)) {\n var left = state.lastIntValue;\n if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) {\n var right = state.lastIntValue;\n if (state.switchU && (left === -1 || right === -1)) {\n state.raise(\"Invalid character class\");\n }\n if (left !== -1 && right !== -1 && left > right) {\n state.raise(\"Range out of order in character class\");\n }\n }\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash\npp$1.regexp_eatClassAtom = function(state) {\n var start = state.pos;\n\n if (state.eat(0x5C /* \\ */)) {\n if (this.regexp_eatClassEscape(state)) {\n return true\n }\n if (state.switchU) {\n // Make the same message as V8.\n var ch$1 = state.current();\n if (ch$1 === 0x63 /* c */ || isOctalDigit(ch$1)) {\n state.raise(\"Invalid class escape\");\n }\n state.raise(\"Invalid escape\");\n }\n state.pos = start;\n }\n\n var ch = state.current();\n if (ch !== 0x5D /* ] */) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape\npp$1.regexp_eatClassEscape = function(state) {\n var start = state.pos;\n\n if (state.eat(0x62 /* b */)) {\n state.lastIntValue = 0x08; /* <BS> */\n return true\n }\n\n if (state.switchU && state.eat(0x2D /* - */)) {\n state.lastIntValue = 0x2D; /* - */\n return true\n }\n\n if (!state.switchU && state.eat(0x63 /* c */)) {\n if (this.regexp_eatClassControlLetter(state)) {\n return true\n }\n state.pos = start;\n }\n\n return (\n this.regexp_eatCharacterClassEscape(state) ||\n this.regexp_eatCharacterEscape(state)\n )\n};\n\n// https://tc39.es/ecma262/#prod-ClassSetExpression\n// https://tc39.es/ecma262/#prod-ClassUnion\n// https://tc39.es/ecma262/#prod-ClassIntersection\n// https://tc39.es/ecma262/#prod-ClassSubtraction\npp$1.regexp_classSetExpression = function(state) {\n var result = CharSetOk, subResult;\n if (this.regexp_eatClassSetRange(state)) ; else if (subResult = this.regexp_eatClassSetOperand(state)) {\n if (subResult === CharSetString) { result = CharSetString; }\n // https://tc39.es/ecma262/#prod-ClassIntersection\n var start = state.pos;\n while (state.eatChars([0x26, 0x26] /* && */)) {\n if (\n state.current() !== 0x26 /* & */ &&\n (subResult = this.regexp_eatClassSetOperand(state))\n ) {\n if (subResult !== CharSetString) { result = CharSetOk; }\n continue\n }\n state.raise(\"Invalid character in character class\");\n }\n if (start !== state.pos) { return result }\n // https://tc39.es/ecma262/#prod-ClassSubtraction\n while (state.eatChars([0x2D, 0x2D] /* -- */)) {\n if (this.regexp_eatClassSetOperand(state)) { continue }\n state.raise(\"Invalid character in character class\");\n }\n if (start !== state.pos) { return result }\n } else {\n state.raise(\"Invalid character in character class\");\n }\n // https://tc39.es/ecma262/#prod-ClassUnion\n for (;;) {\n if (this.regexp_eatClassSetRange(state)) { continue }\n subResult = this.regexp_eatClassSetOperand(state);\n if (!subResult) { return result }\n if (subResult === CharSetString) { result = CharSetString; }\n }\n};\n\n// https://tc39.es/ecma262/#prod-ClassSetRange\npp$1.regexp_eatClassSetRange = function(state) {\n var start = state.pos;\n if (this.regexp_eatClassSetCharacter(state)) {\n var left = state.lastIntValue;\n if (state.eat(0x2D /* - */) && this.regexp_eatClassSetCharacter(state)) {\n var right = state.lastIntValue;\n if (left !== -1 && right !== -1 && left > right) {\n state.raise(\"Range out of order in character class\");\n }\n return true\n }\n state.pos = start;\n }\n return false\n};\n\n// https://tc39.es/ecma262/#prod-ClassSetOperand\npp$1.regexp_eatClassSetOperand = function(state) {\n if (this.regexp_eatClassSetCharacter(state)) { return CharSetOk }\n return this.regexp_eatClassStringDisjunction(state) || this.regexp_eatNestedClass(state)\n};\n\n// https://tc39.es/ecma262/#prod-NestedClass\npp$1.regexp_eatNestedClass = function(state) {\n var start = state.pos;\n if (state.eat(0x5B /* [ */)) {\n var negate = state.eat(0x5E /* ^ */);\n var result = this.regexp_classContents(state);\n if (state.eat(0x5D /* ] */)) {\n if (negate && result === CharSetString) {\n state.raise(\"Negated character class may contain strings\");\n }\n return result\n }\n state.pos = start;\n }\n if (state.eat(0x5C /* \\ */)) {\n var result$1 = this.regexp_eatCharacterClassEscape(state);\n if (result$1) {\n return result$1\n }\n state.pos = start;\n }\n return null\n};\n\n// https://tc39.es/ecma262/#prod-ClassStringDisjunction\npp$1.regexp_eatClassStringDisjunction = function(state) {\n var start = state.pos;\n if (state.eatChars([0x5C, 0x71] /* \\q */)) {\n if (state.eat(0x7B /* { */)) {\n var result = this.regexp_classStringDisjunctionContents(state);\n if (state.eat(0x7D /* } */)) {\n return result\n }\n } else {\n // Make the same message as V8.\n state.raise(\"Invalid escape\");\n }\n state.pos = start;\n }\n return null\n};\n\n// https://tc39.es/ecma262/#prod-ClassStringDisjunctionContents\npp$1.regexp_classStringDisjunctionContents = function(state) {\n var result = this.regexp_classString(state);\n while (state.eat(0x7C /* | */)) {\n if (this.regexp_classString(state) === CharSetString) { result = CharSetString; }\n }\n return result\n};\n\n// https://tc39.es/ecma262/#prod-ClassString\n// https://tc39.es/ecma262/#prod-NonEmptyClassString\npp$1.regexp_classString = function(state) {\n var count = 0;\n while (this.regexp_eatClassSetCharacter(state)) { count++; }\n return count === 1 ? CharSetOk : CharSetString\n};\n\n// https://tc39.es/ecma262/#prod-ClassSetCharacter\npp$1.regexp_eatClassSetCharacter = function(state) {\n var start = state.pos;\n if (state.eat(0x5C /* \\ */)) {\n if (\n this.regexp_eatCharacterEscape(state) ||\n this.regexp_eatClassSetReservedPunctuator(state)\n ) {\n return true\n }\n if (state.eat(0x62 /* b */)) {\n state.lastIntValue = 0x08; /* <BS> */\n return true\n }\n state.pos = start;\n return false\n }\n var ch = state.current();\n if (ch < 0 || ch === state.lookahead() && isClassSetReservedDoublePunctuatorCharacter(ch)) { return false }\n if (isClassSetSyntaxCharacter(ch)) { return false }\n state.advance();\n state.lastIntValue = ch;\n return true\n};\n\n// https://tc39.es/ecma262/#prod-ClassSetReservedDoublePunctuator\nfunction isClassSetReservedDoublePunctuatorCharacter(ch) {\n return (\n ch === 0x21 /* ! */ ||\n ch >= 0x23 /* # */ && ch <= 0x26 /* & */ ||\n ch >= 0x2A /* * */ && ch <= 0x2C /* , */ ||\n ch === 0x2E /* . */ ||\n ch >= 0x3A /* : */ && ch <= 0x40 /* @ */ ||\n ch === 0x5E /* ^ */ ||\n ch === 0x60 /* ` */ ||\n ch === 0x7E /* ~ */\n )\n}\n\n// https://tc39.es/ecma262/#prod-ClassSetSyntaxCharacter\nfunction isClassSetSyntaxCharacter(ch) {\n return (\n ch === 0x28 /* ( */ ||\n ch === 0x29 /* ) */ ||\n ch === 0x2D /* - */ ||\n ch === 0x2F /* / */ ||\n ch >= 0x5B /* [ */ && ch <= 0x5D /* ] */ ||\n ch >= 0x7B /* { */ && ch <= 0x7D /* } */\n )\n}\n\n// https://tc39.es/ecma262/#prod-ClassSetReservedPunctuator\npp$1.regexp_eatClassSetReservedPunctuator = function(state) {\n var ch = state.current();\n if (isClassSetReservedPunctuator(ch)) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n return false\n};\n\n// https://tc39.es/ecma262/#prod-ClassSetReservedPunctuator\nfunction isClassSetReservedPunctuator(ch) {\n return (\n ch === 0x21 /* ! */ ||\n ch === 0x23 /* # */ ||\n ch === 0x25 /* % */ ||\n ch === 0x26 /* & */ ||\n ch === 0x2C /* , */ ||\n ch === 0x2D /* - */ ||\n ch >= 0x3A /* : */ && ch <= 0x3E /* > */ ||\n ch === 0x40 /* @ */ ||\n ch === 0x60 /* ` */ ||\n ch === 0x7E /* ~ */\n )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter\npp$1.regexp_eatClassControlLetter = function(state) {\n var ch = state.current();\n if (isDecimalDigit(ch) || ch === 0x5F /* _ */) {\n state.lastIntValue = ch % 0x20;\n state.advance();\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp$1.regexp_eatHexEscapeSequence = function(state) {\n var start = state.pos;\n if (state.eat(0x78 /* x */)) {\n if (this.regexp_eatFixedHexDigits(state, 2)) {\n return true\n }\n if (state.switchU) {\n state.raise(\"Invalid escape\");\n }\n state.pos = start;\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits\npp$1.regexp_eatDecimalDigits = function(state) {\n var start = state.pos;\n var ch = 0;\n state.lastIntValue = 0;\n while (isDecimalDigit(ch = state.current())) {\n state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);\n state.advance();\n }\n return state.pos !== start\n};\nfunction isDecimalDigit(ch) {\n return ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits\npp$1.regexp_eatHexDigits = function(state) {\n var start = state.pos;\n var ch = 0;\n state.lastIntValue = 0;\n while (isHexDigit(ch = state.current())) {\n state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);\n state.advance();\n }\n return state.pos !== start\n};\nfunction isHexDigit(ch) {\n return (\n (ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) ||\n (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) ||\n (ch >= 0x61 /* a */ && ch <= 0x66 /* f */)\n )\n}\nfunction hexToInt(ch) {\n if (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) {\n return 10 + (ch - 0x41 /* A */)\n }\n if (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) {\n return 10 + (ch - 0x61 /* a */)\n }\n return ch - 0x30 /* 0 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence\n// Allows only 0-377(octal) i.e. 0-255(decimal).\npp$1.regexp_eatLegacyOctalEscapeSequence = function(state) {\n if (this.regexp_eatOctalDigit(state)) {\n var n1 = state.lastIntValue;\n if (this.regexp_eatOctalDigit(state)) {\n var n2 = state.lastIntValue;\n if (n1 <= 3 && this.regexp_eatOctalDigit(state)) {\n state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue;\n } else {\n state.lastIntValue = n1 * 8 + n2;\n }\n } else {\n state.lastIntValue = n1;\n }\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit\npp$1.regexp_eatOctalDigit = function(state) {\n var ch = state.current();\n if (isOctalDigit(ch)) {\n state.lastIntValue = ch - 0x30; /* 0 */\n state.advance();\n return true\n }\n state.lastIntValue = 0;\n return false\n};\nfunction isOctalDigit(ch) {\n return ch >= 0x30 /* 0 */ && ch <= 0x37 /* 7 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit\n// And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp$1.regexp_eatFixedHexDigits = function(state, length) {\n var start = state.pos;\n state.lastIntValue = 0;\n for (var i = 0; i < length; ++i) {\n var ch = state.current();\n if (!isHexDigit(ch)) {\n state.pos = start;\n return false\n }\n state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);\n state.advance();\n }\n return true\n};\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nvar Token = function Token(p) {\n this.type = p.type;\n this.value = p.value;\n this.start = p.start;\n this.end = p.end;\n if (p.options.locations)\n { this.loc = new SourceLocation(p, p.startLoc, p.endLoc); }\n if (p.options.ranges)\n { this.range = [p.start, p.end]; }\n};\n\n// ## Tokenizer\n\nvar pp = Parser.prototype;\n\n// Move to the next token\n\npp.next = function(ignoreEscapeSequenceInKeyword) {\n if (!ignoreEscapeSequenceInKeyword && this.type.keyword && this.containsEsc)\n { this.raiseRecoverable(this.start, \"Escape sequence in keyword \" + this.type.keyword); }\n if (this.options.onToken)\n { this.options.onToken(new Token(this)); }\n\n this.lastTokEnd = this.end;\n this.lastTokStart = this.start;\n this.lastTokEndLoc = this.endLoc;\n this.lastTokStartLoc = this.startLoc;\n this.nextToken();\n};\n\npp.getToken = function() {\n this.next();\n return new Token(this)\n};\n\n// If we're in an ES6 environment, make parsers iterable\nif (typeof Symbol !== \"undefined\")\n { pp[Symbol.iterator] = function() {\n var this$1$1 = this;\n\n return {\n next: function () {\n var token = this$1$1.getToken();\n return {\n done: token.type === types$1.eof,\n value: token\n }\n }\n }\n }; }\n\n// Toggle strict mode. Re-reads the next number or string to please\n// pedantic tests (`\"use strict\"; 010;` should fail).\n\n// Read a single token, updating the parser object's token-related\n// properties.\n\npp.nextToken = function() {\n var curContext = this.curContext();\n if (!curContext || !curContext.preserveSpace) { this.skipSpace(); }\n\n this.start = this.pos;\n if (this.options.locations) { this.startLoc = this.curPosition(); }\n if (this.pos >= this.input.length) { return this.finishToken(types$1.eof) }\n\n if (curContext.override) { return curContext.override(this) }\n else { this.readToken(this.fullCharCodeAtPos()); }\n};\n\npp.readToken = function(code) {\n // Identifier or keyword. '\\uXXXX' sequences are allowed in\n // identifiers, so '\\' also dispatches to that.\n if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\\' */)\n { return this.readWord() }\n\n return this.getTokenFromCode(code)\n};\n\npp.fullCharCodeAt = function(pos) {\n var code = this.input.charCodeAt(pos);\n if (code <= 0xd7ff || code >= 0xdc00) { return code }\n var next = this.input.charCodeAt(pos + 1);\n return next <= 0xdbff || next >= 0xe000 ? code : (code << 10) + next - 0x35fdc00\n};\n\npp.fullCharCodeAtPos = function() {\n return this.fullCharCodeAt(this.pos)\n};\n\npp.skipBlockComment = function() {\n var startLoc = this.options.onComment && this.curPosition();\n var start = this.pos, end = this.input.indexOf(\"*/\", this.pos += 2);\n if (end === -1) { this.raise(this.pos - 2, \"Unterminated comment\"); }\n this.pos = end + 2;\n if (this.options.locations) {\n for (var nextBreak = (void 0), pos = start; (nextBreak = nextLineBreak(this.input, pos, this.pos)) > -1;) {\n ++this.curLine;\n pos = this.lineStart = nextBreak;\n }\n }\n if (this.options.onComment)\n { this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos,\n startLoc, this.curPosition()); }\n};\n\npp.skipLineComment = function(startSkip) {\n var start = this.pos;\n var startLoc = this.options.onComment && this.curPosition();\n var ch = this.input.charCodeAt(this.pos += startSkip);\n while (this.pos < this.input.length && !isNewLine(ch)) {\n ch = this.input.charCodeAt(++this.pos);\n }\n if (this.options.onComment)\n { this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos,\n startLoc, this.curPosition()); }\n};\n\n// Called at the start of the parse and after every token. Skips\n// whitespace and comments, and.\n\npp.skipSpace = function() {\n loop: while (this.pos < this.input.length) {\n var ch = this.input.charCodeAt(this.pos);\n switch (ch) {\n case 32: case 160: // ' '\n ++this.pos;\n break\n case 13:\n if (this.input.charCodeAt(this.pos + 1) === 10) {\n ++this.pos;\n }\n case 10: case 8232: case 8233:\n ++this.pos;\n if (this.options.locations) {\n ++this.curLine;\n this.lineStart = this.pos;\n }\n break\n case 47: // '/'\n switch (this.input.charCodeAt(this.pos + 1)) {\n case 42: // '*'\n this.skipBlockComment();\n break\n case 47:\n this.skipLineComment(2);\n break\n default:\n break loop\n }\n break\n default:\n if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) {\n ++this.pos;\n } else {\n break loop\n }\n }\n }\n};\n\n// Called at the end of every token. Sets `end`, `val`, and\n// maintains `context` and `exprAllowed`, and skips the space after\n// the token, so that the next one's `start` will point at the\n// right position.\n\npp.finishToken = function(type, val) {\n this.end = this.pos;\n if (this.options.locations) { this.endLoc = this.curPosition(); }\n var prevType = this.type;\n this.type = type;\n this.value = val;\n\n this.updateContext(prevType);\n};\n\n// ### Token reading\n\n// This is the function that is called to fetch the next token. It\n// is somewhat obscure, because it works in character codes rather\n// than characters, and because operator parsing has been inlined\n// into it.\n//\n// All in the name of speed.\n//\npp.readToken_dot = function() {\n var next = this.input.charCodeAt(this.pos + 1);\n if (next >= 48 && next <= 57) { return this.readNumber(true) }\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.'\n this.pos += 3;\n return this.finishToken(types$1.ellipsis)\n } else {\n ++this.pos;\n return this.finishToken(types$1.dot)\n }\n};\n\npp.readToken_slash = function() { // '/'\n var next = this.input.charCodeAt(this.pos + 1);\n if (this.exprAllowed) { ++this.pos; return this.readRegexp() }\n if (next === 61) { return this.finishOp(types$1.assign, 2) }\n return this.finishOp(types$1.slash, 1)\n};\n\npp.readToken_mult_modulo_exp = function(code) { // '%*'\n var next = this.input.charCodeAt(this.pos + 1);\n var size = 1;\n var tokentype = code === 42 ? types$1.star : types$1.modulo;\n\n // exponentiation operator ** and **=\n if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) {\n ++size;\n tokentype = types$1.starstar;\n next = this.input.charCodeAt(this.pos + 2);\n }\n\n if (next === 61) { return this.finishOp(types$1.assign, size + 1) }\n return this.finishOp(tokentype, size)\n};\n\npp.readToken_pipe_amp = function(code) { // '|&'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === code) {\n if (this.options.ecmaVersion >= 12) {\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (next2 === 61) { return this.finishOp(types$1.assign, 3) }\n }\n return this.finishOp(code === 124 ? types$1.logicalOR : types$1.logicalAND, 2)\n }\n if (next === 61) { return this.finishOp(types$1.assign, 2) }\n return this.finishOp(code === 124 ? types$1.bitwiseOR : types$1.bitwiseAND, 1)\n};\n\npp.readToken_caret = function() { // '^'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 61) { return this.finishOp(types$1.assign, 2) }\n return this.finishOp(types$1.bitwiseXOR, 1)\n};\n\npp.readToken_plus_min = function(code) { // '+-'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === code) {\n if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 &&\n (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) {\n // A `-->` line comment\n this.skipLineComment(3);\n this.skipSpace();\n return this.nextToken()\n }\n return this.finishOp(types$1.incDec, 2)\n }\n if (next === 61) { return this.finishOp(types$1.assign, 2) }\n return this.finishOp(types$1.plusMin, 1)\n};\n\npp.readToken_lt_gt = function(code) { // '<>'\n var next = this.input.charCodeAt(this.pos + 1);\n var size = 1;\n if (next === code) {\n size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2;\n if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types$1.assign, size + 1) }\n return this.finishOp(types$1.bitShift, size)\n }\n if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n this.input.charCodeAt(this.pos + 3) === 45) {\n // `<!--`, an XML-style comment that should be interpreted as a line comment\n this.skipLineComment(4);\n this.skipSpace();\n return this.nextToken()\n }\n if (next === 61) { size = 2; }\n return this.finishOp(types$1.relational, size)\n};\n\npp.readToken_eq_excl = function(code) { // '=!'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 61) { return this.finishOp(types$1.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2) }\n if (code === 61 && next === 62 && this.options.ecmaVersion >= 6) { // '=>'\n this.pos += 2;\n return this.finishToken(types$1.arrow)\n }\n return this.finishOp(code === 61 ? types$1.eq : types$1.prefix, 1)\n};\n\npp.readToken_question = function() { // '?'\n var ecmaVersion = this.options.ecmaVersion;\n if (ecmaVersion >= 11) {\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 46) {\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (next2 < 48 || next2 > 57) { return this.finishOp(types$1.questionDot, 2) }\n }\n if (next === 63) {\n if (ecmaVersion >= 12) {\n var next2$1 = this.input.charCodeAt(this.pos + 2);\n if (next2$1 === 61) { return this.finishOp(types$1.assign, 3) }\n }\n return this.finishOp(types$1.coalesce, 2)\n }\n }\n return this.finishOp(types$1.question, 1)\n};\n\npp.readToken_numberSign = function() { // '#'\n var ecmaVersion = this.options.ecmaVersion;\n var code = 35; // '#'\n if (ecmaVersion >= 13) {\n ++this.pos;\n code = this.fullCharCodeAtPos();\n if (isIdentifierStart(code, true) || code === 92 /* '\\' */) {\n return this.finishToken(types$1.privateId, this.readWord1())\n }\n }\n\n this.raise(this.pos, \"Unexpected character '\" + codePointToString(code) + \"'\");\n};\n\npp.getTokenFromCode = function(code) {\n switch (code) {\n // The interpretation of a dot depends on whether it is followed\n // by a digit or another two dots.\n case 46: // '.'\n return this.readToken_dot()\n\n // Punctuation tokens.\n case 40: ++this.pos; return this.finishToken(types$1.parenL)\n case 41: ++this.pos; return this.finishToken(types$1.parenR)\n case 59: ++this.pos; return this.finishToken(types$1.semi)\n case 44: ++this.pos; return this.finishToken(types$1.comma)\n case 91: ++this.pos; return this.finishToken(types$1.bracketL)\n case 93: ++this.pos; return this.finishToken(types$1.bracketR)\n case 123: ++this.pos; return this.finishToken(types$1.braceL)\n case 125: ++this.pos; return this.finishToken(types$1.braceR)\n case 58: ++this.pos; return this.finishToken(types$1.colon)\n\n case 96: // '`'\n if (this.options.ecmaVersion < 6) { break }\n ++this.pos;\n return this.finishToken(types$1.backQuote)\n\n case 48: // '0'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 120 || next === 88) { return this.readRadixNumber(16) } // '0x', '0X' - hex number\n if (this.options.ecmaVersion >= 6) {\n if (next === 111 || next === 79) { return this.readRadixNumber(8) } // '0o', '0O' - octal number\n if (next === 98 || next === 66) { return this.readRadixNumber(2) } // '0b', '0B' - binary number\n }\n\n // Anything else beginning with a digit is an integer, octal\n // number, or float.\n case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: // 1-9\n return this.readNumber(false)\n\n // Quotes produce strings.\n case 34: case 39: // '\"', \"'\"\n return this.readString(code)\n\n // Operators are parsed inline in tiny state machines. '=' (61) is\n // often referred to. `finishOp` simply skips the amount of\n // characters it is given as second argument, and returns a token\n // of the type given by its first argument.\n case 47: // '/'\n return this.readToken_slash()\n\n case 37: case 42: // '%*'\n return this.readToken_mult_modulo_exp(code)\n\n case 124: case 38: // '|&'\n return this.readToken_pipe_amp(code)\n\n case 94: // '^'\n return this.readToken_caret()\n\n case 43: case 45: // '+-'\n return this.readToken_plus_min(code)\n\n case 60: case 62: // '<>'\n return this.readToken_lt_gt(code)\n\n case 61: case 33: // '=!'\n return this.readToken_eq_excl(code)\n\n case 63: // '?'\n return this.readToken_question()\n\n case 126: // '~'\n return this.finishOp(types$1.prefix, 1)\n\n case 35: // '#'\n return this.readToken_numberSign()\n }\n\n this.raise(this.pos, \"Unexpected character '\" + codePointToString(code) + \"'\");\n};\n\npp.finishOp = function(type, size) {\n var str = this.input.slice(this.pos, this.pos + size);\n this.pos += size;\n return this.finishToken(type, str)\n};\n\npp.readRegexp = function() {\n var escaped, inClass, start = this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(start, \"Unterminated regular expression\"); }\n var ch = this.input.charAt(this.pos);\n if (lineBreak.test(ch)) { this.raise(start, \"Unterminated regular expression\"); }\n if (!escaped) {\n if (ch === \"[\") { inClass = true; }\n else if (ch === \"]\" && inClass) { inClass = false; }\n else if (ch === \"/\" && !inClass) { break }\n escaped = ch === \"\\\\\";\n } else { escaped = false; }\n ++this.pos;\n }\n var pattern = this.input.slice(start, this.pos);\n ++this.pos;\n var flagsStart = this.pos;\n var flags = this.readWord1();\n if (this.containsEsc) { this.unexpected(flagsStart); }\n\n // Validate pattern\n var state = this.regexpState || (this.regexpState = new RegExpValidationState(this));\n state.reset(start, pattern, flags);\n this.validateRegExpFlags(state);\n this.validateRegExpPattern(state);\n\n // Create Literal#value property value.\n var value = null;\n try {\n value = new RegExp(pattern, flags);\n } catch (e) {\n // ESTree requires null if it failed to instantiate RegExp object.\n // https://github.com/estree/estree/blob/a27003adf4fd7bfad44de9cef372a2eacd527b1c/es5.md#regexpliteral\n }\n\n return this.finishToken(types$1.regexp, {pattern: pattern, flags: flags, value: value})\n};\n\n// Read an integer in the given radix. Return null if zero digits\n// were read, the integer value otherwise. When `len` is given, this\n// will return `null` unless the integer has exactly `len` digits.\n\npp.readInt = function(radix, len, maybeLegacyOctalNumericLiteral) {\n // `len` is used for character escape sequences. In that case, disallow separators.\n var allowSeparators = this.options.ecmaVersion >= 12 && len === undefined;\n\n // `maybeLegacyOctalNumericLiteral` is true if it doesn't have prefix (0x,0o,0b)\n // and isn't fraction part nor exponent part. In that case, if the first digit\n // is zero then disallow separators.\n var isLegacyOctalNumericLiteral = maybeLegacyOctalNumericLiteral && this.input.charCodeAt(this.pos) === 48;\n\n var start = this.pos, total = 0, lastCode = 0;\n for (var i = 0, e = len == null ? Infinity : len; i < e; ++i, ++this.pos) {\n var code = this.input.charCodeAt(this.pos), val = (void 0);\n\n if (allowSeparators && code === 95) {\n if (isLegacyOctalNumericLiteral) { this.raiseRecoverable(this.pos, \"Numeric separator is not allowed in legacy octal numeric literals\"); }\n if (lastCode === 95) { this.raiseRecoverable(this.pos, \"Numeric separator must be exactly one underscore\"); }\n if (i === 0) { this.raiseRecoverable(this.pos, \"Numeric separator is not allowed at the first of digits\"); }\n lastCode = code;\n continue\n }\n\n if (code >= 97) { val = code - 97 + 10; } // a\n else if (code >= 65) { val = code - 65 + 10; } // A\n else if (code >= 48 && code <= 57) { val = code - 48; } // 0-9\n else { val = Infinity; }\n if (val >= radix) { break }\n lastCode = code;\n total = total * radix + val;\n }\n\n if (allowSeparators && lastCode === 95) { this.raiseRecoverable(this.pos - 1, \"Numeric separator is not allowed at the last of digits\"); }\n if (this.pos === start || len != null && this.pos - start !== len) { return null }\n\n return total\n};\n\nfunction stringToNumber(str, isLegacyOctalNumericLiteral) {\n if (isLegacyOctalNumericLiteral) {\n return parseInt(str, 8)\n }\n\n // `parseFloat(value)` stops parsing at the first numeric separator then returns a wrong value.\n return parseFloat(str.replace(/_/g, \"\"))\n}\n\nfunction stringToBigInt(str) {\n if (typeof BigInt !== \"function\") {\n return null\n }\n\n // `BigInt(value)` throws syntax error if the string contains numeric separators.\n return BigInt(str.replace(/_/g, \"\"))\n}\n\npp.readRadixNumber = function(radix) {\n var start = this.pos;\n this.pos += 2; // 0x\n var val = this.readInt(radix);\n if (val == null) { this.raise(this.start + 2, \"Expected number in radix \" + radix); }\n if (this.options.ecmaVersion >= 11 && this.input.charCodeAt(this.pos) === 110) {\n val = stringToBigInt(this.input.slice(start, this.pos));\n ++this.pos;\n } else if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n return this.finishToken(types$1.num, val)\n};\n\n// Read an integer, octal integer, or floating-point number.\n\npp.readNumber = function(startsWithDot) {\n var start = this.pos;\n if (!startsWithDot && this.readInt(10, undefined, true) === null) { this.raise(start, \"Invalid number\"); }\n var octal = this.pos - start >= 2 && this.input.charCodeAt(start) === 48;\n if (octal && this.strict) { this.raise(start, \"Invalid number\"); }\n var next = this.input.charCodeAt(this.pos);\n if (!octal && !startsWithDot && this.options.ecmaVersion >= 11 && next === 110) {\n var val$1 = stringToBigInt(this.input.slice(start, this.pos));\n ++this.pos;\n if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n return this.finishToken(types$1.num, val$1)\n }\n if (octal && /[89]/.test(this.input.slice(start, this.pos))) { octal = false; }\n if (next === 46 && !octal) { // '.'\n ++this.pos;\n this.readInt(10);\n next = this.input.charCodeAt(this.pos);\n }\n if ((next === 69 || next === 101) && !octal) { // 'eE'\n next = this.input.charCodeAt(++this.pos);\n if (next === 43 || next === 45) { ++this.pos; } // '+-'\n if (this.readInt(10) === null) { this.raise(start, \"Invalid number\"); }\n }\n if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n\n var val = stringToNumber(this.input.slice(start, this.pos), octal);\n return this.finishToken(types$1.num, val)\n};\n\n// Read a string value, interpreting backslash-escapes.\n\npp.readCodePoint = function() {\n var ch = this.input.charCodeAt(this.pos), code;\n\n if (ch === 123) { // '{'\n if (this.options.ecmaVersion < 6) { this.unexpected(); }\n var codePos = ++this.pos;\n code = this.readHexChar(this.input.indexOf(\"}\", this.pos) - this.pos);\n ++this.pos;\n if (code > 0x10FFFF) { this.invalidStringToken(codePos, \"Code point out of bounds\"); }\n } else {\n code = this.readHexChar(4);\n }\n return code\n};\n\npp.readString = function(quote) {\n var out = \"\", chunkStart = ++this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(this.start, \"Unterminated string constant\"); }\n var ch = this.input.charCodeAt(this.pos);\n if (ch === quote) { break }\n if (ch === 92) { // '\\'\n out += this.input.slice(chunkStart, this.pos);\n out += this.readEscapedChar(false);\n chunkStart = this.pos;\n } else if (ch === 0x2028 || ch === 0x2029) {\n if (this.options.ecmaVersion < 10) { this.raise(this.start, \"Unterminated string constant\"); }\n ++this.pos;\n if (this.options.locations) {\n this.curLine++;\n this.lineStart = this.pos;\n }\n } else {\n if (isNewLine(ch)) { this.raise(this.start, \"Unterminated string constant\"); }\n ++this.pos;\n }\n }\n out += this.input.slice(chunkStart, this.pos++);\n return this.finishToken(types$1.string, out)\n};\n\n// Reads template string tokens.\n\nvar INVALID_TEMPLATE_ESCAPE_ERROR = {};\n\npp.tryReadTemplateToken = function() {\n this.inTemplateElement = true;\n try {\n this.readTmplToken();\n } catch (err) {\n if (err === INVALID_TEMPLATE_ESCAPE_ERROR) {\n this.readInvalidTemplateToken();\n } else {\n throw err\n }\n }\n\n this.inTemplateElement = false;\n};\n\npp.invalidStringToken = function(position, message) {\n if (this.inTemplateElement && this.options.ecmaVersion >= 9) {\n throw INVALID_TEMPLATE_ESCAPE_ERROR\n } else {\n this.raise(position, message);\n }\n};\n\npp.readTmplToken = function() {\n var out = \"\", chunkStart = this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(this.start, \"Unterminated template\"); }\n var ch = this.input.charCodeAt(this.pos);\n if (ch === 96 || ch === 36 && this.input.charCodeAt(this.pos + 1) === 123) { // '`', '${'\n if (this.pos === this.start && (this.type === types$1.template || this.type === types$1.invalidTemplate)) {\n if (ch === 36) {\n this.pos += 2;\n return this.finishToken(types$1.dollarBraceL)\n } else {\n ++this.pos;\n return this.finishToken(types$1.backQuote)\n }\n }\n out += this.input.slice(chunkStart, this.pos);\n return this.finishToken(types$1.template, out)\n }\n if (ch === 92) { // '\\'\n out += this.input.slice(chunkStart, this.pos);\n out += this.readEscapedChar(true);\n chunkStart = this.pos;\n } else if (isNewLine(ch)) {\n out += this.input.slice(chunkStart, this.pos);\n ++this.pos;\n switch (ch) {\n case 13:\n if (this.input.charCodeAt(this.pos) === 10) { ++this.pos; }\n case 10:\n out += \"\\n\";\n break\n default:\n out += String.fromCharCode(ch);\n break\n }\n if (this.options.locations) {\n ++this.curLine;\n this.lineStart = this.pos;\n }\n chunkStart = this.pos;\n } else {\n ++this.pos;\n }\n }\n};\n\n// Reads a template token to search for the end, without validating any escape sequences\npp.readInvalidTemplateToken = function() {\n for (; this.pos < this.input.length; this.pos++) {\n switch (this.input[this.pos]) {\n case \"\\\\\":\n ++this.pos;\n break\n\n case \"$\":\n if (this.input[this.pos + 1] !== \"{\") { break }\n // fall through\n case \"`\":\n return this.finishToken(types$1.invalidTemplate, this.input.slice(this.start, this.pos))\n\n case \"\\r\":\n if (this.input[this.pos + 1] === \"\\n\") { ++this.pos; }\n // fall through\n case \"\\n\": case \"\\u2028\": case \"\\u2029\":\n ++this.curLine;\n this.lineStart = this.pos + 1;\n break\n }\n }\n this.raise(this.start, \"Unterminated template\");\n};\n\n// Used to read escaped characters\n\npp.readEscapedChar = function(inTemplate) {\n var ch = this.input.charCodeAt(++this.pos);\n ++this.pos;\n switch (ch) {\n case 110: return \"\\n\" // 'n' -> '\\n'\n case 114: return \"\\r\" // 'r' -> '\\r'\n case 120: return String.fromCharCode(this.readHexChar(2)) // 'x'\n case 117: return codePointToString(this.readCodePoint()) // 'u'\n case 116: return \"\\t\" // 't' -> '\\t'\n case 98: return \"\\b\" // 'b' -> '\\b'\n case 118: return \"\\u000b\" // 'v' -> '\\u000b'\n case 102: return \"\\f\" // 'f' -> '\\f'\n case 13: if (this.input.charCodeAt(this.pos) === 10) { ++this.pos; } // '\\r\\n'\n case 10: // ' \\n'\n if (this.options.locations) { this.lineStart = this.pos; ++this.curLine; }\n return \"\"\n case 56:\n case 57:\n if (this.strict) {\n this.invalidStringToken(\n this.pos - 1,\n \"Invalid escape sequence\"\n );\n }\n if (inTemplate) {\n var codePos = this.pos - 1;\n\n this.invalidStringToken(\n codePos,\n \"Invalid escape sequence in template string\"\n );\n }\n default:\n if (ch >= 48 && ch <= 55) {\n var octalStr = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0];\n var octal = parseInt(octalStr, 8);\n if (octal > 255) {\n octalStr = octalStr.slice(0, -1);\n octal = parseInt(octalStr, 8);\n }\n this.pos += octalStr.length - 1;\n ch = this.input.charCodeAt(this.pos);\n if ((octalStr !== \"0\" || ch === 56 || ch === 57) && (this.strict || inTemplate)) {\n this.invalidStringToken(\n this.pos - 1 - octalStr.length,\n inTemplate\n ? \"Octal literal in template string\"\n : \"Octal literal in strict mode\"\n );\n }\n return String.fromCharCode(octal)\n }\n if (isNewLine(ch)) {\n // Unicode new line characters after \\ get removed from output in both\n // template literals and strings\n if (this.options.locations) { this.lineStart = this.pos; ++this.curLine; }\n return \"\"\n }\n return String.fromCharCode(ch)\n }\n};\n\n// Used to read character escape sequences ('\\x', '\\u', '\\U').\n\npp.readHexChar = function(len) {\n var codePos = this.pos;\n var n = this.readInt(16, len);\n if (n === null) { this.invalidStringToken(codePos, \"Bad character escape sequence\"); }\n return n\n};\n\n// Read an identifier, and return it as a string. Sets `this.containsEsc`\n// to whether the word contained a '\\u' escape.\n//\n// Incrementally adds only escaped chars, adding other chunks as-is\n// as a micro-optimization.\n\npp.readWord1 = function() {\n this.containsEsc = false;\n var word = \"\", first = true, chunkStart = this.pos;\n var astral = this.options.ecmaVersion >= 6;\n while (this.pos < this.input.length) {\n var ch = this.fullCharCodeAtPos();\n if (isIdentifierChar(ch, astral)) {\n this.pos += ch <= 0xffff ? 1 : 2;\n } else if (ch === 92) { // \"\\\"\n this.containsEsc = true;\n word += this.input.slice(chunkStart, this.pos);\n var escStart = this.pos;\n if (this.input.charCodeAt(++this.pos) !== 117) // \"u\"\n { this.invalidStringToken(this.pos, \"Expecting Unicode escape sequence \\\\uXXXX\"); }\n ++this.pos;\n var esc = this.readCodePoint();\n if (!(first ? isIdentifierStart : isIdentifierChar)(esc, astral))\n { this.invalidStringToken(escStart, \"Invalid Unicode escape\"); }\n word += codePointToString(esc);\n chunkStart = this.pos;\n } else {\n break\n }\n first = false;\n }\n return word + this.input.slice(chunkStart, this.pos)\n};\n\n// Read an identifier or keyword token. Will check for reserved\n// words when necessary.\n\npp.readWord = function() {\n var word = this.readWord1();\n var type = types$1.name;\n if (this.keywords.test(word)) {\n type = keywords[word];\n }\n return this.finishToken(type, word)\n};\n\n// Acorn is a tiny, fast JavaScript parser written in JavaScript.\n//\n// Acorn was written by Marijn Haverbeke, Ingvar Stepanyan, and\n// various contributors and released under an MIT license.\n//\n// Git repositories for Acorn are available at\n//\n// http://marijnhaverbeke.nl/git/acorn\n// https://github.com/acornjs/acorn.git\n//\n// Please use the [github bug tracker][ghbt] to report issues.\n//\n// [ghbt]: https://github.com/acornjs/acorn/issues\n\n\nvar version = \"8.16.0\";\n\nParser.acorn = {\n Parser: Parser,\n version: version,\n defaultOptions: defaultOptions,\n Position: Position,\n SourceLocation: SourceLocation,\n getLineInfo: getLineInfo,\n Node: Node,\n TokenType: TokenType,\n tokTypes: types$1,\n keywordTypes: keywords,\n TokContext: TokContext,\n tokContexts: types,\n isIdentifierChar: isIdentifierChar,\n isIdentifierStart: isIdentifierStart,\n Token: Token,\n isNewLine: isNewLine,\n lineBreak: lineBreak,\n lineBreakG: lineBreakG,\n nonASCIIwhitespace: nonASCIIwhitespace\n};\n\n// The main exported interface (under `self.acorn` when in the\n// browser) is a `parse` function that takes a code string and returns\n// an abstract syntax tree as specified by the [ESTree spec][estree].\n//\n// [estree]: https://github.com/estree/estree\n\nfunction parse(input, options) {\n return Parser.parse(input, options)\n}\n\n// This function tries to parse a single expression at a given\n// offset in a string. Useful for parsing mixed-language formats\n// that embed JavaScript expressions.\n\nfunction parseExpressionAt(input, pos, options) {\n return Parser.parseExpressionAt(input, pos, options)\n}\n\n// Acorn is organized as a tokenizer and a recursive-descent parser.\n// The `tokenizer` export provides an interface to the tokenizer.\n\nfunction tokenizer(input, options) {\n return Parser.tokenizer(input, options)\n}\n\nexport { Node, Parser, Position, SourceLocation, TokContext, Token, TokenType, defaultOptions, getLineInfo, isIdentifierChar, isIdentifierStart, isNewLine, keywords as keywordTypes, lineBreak, lineBreakG, nonASCIIwhitespace, parse, parseExpressionAt, types as tokContexts, types$1 as tokTypes, tokenizer, version };\n","/**\n * Source transform using acorn + acorn-typescript + acorn-jsx\n * Pure JS, fully bundlable, no native bindings required\n */\n\nimport * as acorn from \"acorn\";\nimport acornJsx from \"acorn-jsx\";\nimport acornTs from \"acorn-typescript\";\nimport { generate, GENERATOR } from \"astring\";\nimport { walk } from \"estree-walker\";\nimport type {\n Node,\n Program,\n FunctionDeclaration,\n VariableDeclarator,\n CallExpression,\n MemberExpression,\n Identifier,\n ExpressionStatement,\n AssignmentExpression,\n} from \"estree\";\nimport { SOURCE_PROP, JSX_SOURCE_REGISTRY_SYMBOL } from \"../constants\";\n\n// .tsx/.jsx: TypeScript plugin must come before JSX plugin\nconst ParserTSX = acorn.Parser.extend(acornTs() as any, acornJsx());\n// .ts/.js: no JSX plugin (avoids <T,> generic arrow function ambiguity)\nconst ParserTS = acorn.Parser.extend(acornTs() as any);\n\nfunction getParser(filename: string) {\n return /\\.[jt]sx$/.test(filename) ? ParserTSX : ParserTS;\n}\n\nexport interface TransformOptions {\n filename: string;\n projectRoot?: string;\n injectJsxSource?: boolean;\n injectComponentSource?: boolean;\n}\n\ninterface Location {\n line: number;\n column: number;\n}\n\n// astring does not support JSX/TS nodes — extend with minimal printers\nconst jsxGenerator: typeof GENERATOR & Record<string, (node: any, state: any) => void> = {\n ...GENERATOR,\n JSXElement(node: any, state: any) {\n this[node.openingElement.type](node.openingElement, state);\n for (const child of node.children) this[child.type](child, state);\n if (node.closingElement) this[node.closingElement.type](node.closingElement, state);\n },\n JSXFragment(node: any, state: any) {\n state.write(\"<>\");\n for (const child of node.children) this[child.type](child, state);\n state.write(\"</>\");\n },\n JSXOpeningElement(node: any, state: any) {\n state.write(\"<\");\n this[node.name.type](node.name, state);\n for (const attr of node.attributes) { state.write(\" \"); this[attr.type](attr, state); }\n state.write(node.selfClosing ? \" />\" : \">\");\n },\n JSXClosingElement(node: any, state: any) {\n state.write(\"</\"); this[node.name.type](node.name, state); state.write(\">\");\n },\n JSXIdentifier(node: any, state: any) { state.write(node.name); },\n JSXMemberExpression(node: any, state: any) {\n this[node.object.type](node.object, state);\n state.write(\".\");\n this[node.property.type](node.property, state);\n },\n JSXNamespacedName(node: any, state: any) {\n this[node.namespace.type](node.namespace, state);\n state.write(\":\");\n this[node.name.type](node.name, state);\n },\n JSXAttribute(node: any, state: any) {\n this[node.name.type](node.name, state);\n if (node.value !== null) { state.write(\"=\"); this[node.value.type](node.value, state); }\n },\n JSXSpreadAttribute(node: any, state: any) {\n state.write(\"{...\"); this[node.argument.type](node.argument, state); state.write(\"}\");\n },\n JSXExpressionContainer(node: any, state: any) {\n state.write(\"{\");\n if (node.expression.type !== \"JSXEmptyExpression\") this[node.expression.type](node.expression, state);\n state.write(\"}\");\n },\n JSXEmptyExpression(_node: any, _state: any) {},\n JSXText(node: any, state: any) { state.write(node.value); },\n JSXOpeningFragment(_node: any, state: any) { state.write(\"<>\"); },\n JSXClosingFragment(_node: any, state: any) { state.write(\"</>\"); },\n // TypeScript nodes: strip type-only constructs, pass through expressions\n TSTypeAnnotation(_node: any, _state: any) {},\n TSTypeParameterDeclaration(_node: any, _state: any) {},\n TSTypeParameterInstantiation(_node: any, _state: any) {},\n TSInterfaceDeclaration(_node: any, _state: any) {},\n TSTypeAliasDeclaration(_node: any, _state: any) {},\n TSEnumDeclaration(_node: any, _state: any) {},\n TSModuleDeclaration(_node: any, _state: any) {},\n TSImportEqualsDeclaration(_node: any, _state: any) {},\n TSExportAssignment(_node: any, _state: any) {},\n TSNamespaceExportDeclaration(_node: any, _state: any) {},\n TSAsExpression(node: any, state: any) { this[node.expression.type](node.expression, state); },\n TSSatisfiesExpression(node: any, state: any) { this[node.expression.type](node.expression, state); },\n TSNonNullExpression(node: any, state: any) { this[node.expression.type](node.expression, state); },\n TSTypeAssertion(node: any, state: any) { this[node.expression.type](node.expression, state); },\n TSInstantiationExpression(node: any, state: any) { this[node.expression.type](node.expression, state); },\n TSParameterProperty(node: any, state: any) { this[node.parameter.type](node.parameter, state); },\n};\n\nfunction toRelativeSource(filename: string, loc: Location, projectRoot?: string): string {\n const root = projectRoot || process.cwd();\n const relativePath = filename.startsWith(root) ? filename.slice(root.length + 1) : filename;\n return `${relativePath}:${loc.line}:${loc.column + 1}`;\n}\n\nfunction isComponentName(name: string): boolean {\n return /^[A-Z]/.test(name);\n}\n\nfunction isReactElementFactoryCall(node: CallExpression): boolean {\n const callee = node.callee;\n if (callee.type === \"Identifier\") {\n return [\"jsx\", \"jsxs\", \"jsxDEV\", \"_jsx\", \"_jsxs\", \"_jsxDEV\", \"createElement\"].includes(\n (callee as Identifier).name,\n );\n }\n if (callee.type === \"MemberExpression\") {\n const obj = (callee as MemberExpression).object;\n const prop = (callee as MemberExpression).property;\n if (\n obj.type === \"Identifier\" && (obj as Identifier).name === \"React\" &&\n prop.type === \"Identifier\" && (prop as Identifier).name === \"createElement\"\n ) return true;\n }\n return false;\n}\n\nfunction isSupportedComponentInit(node: Node | null): boolean {\n if (!node) return false;\n if (node.type === \"ArrowFunctionExpression\" || node.type === \"FunctionExpression\") return true;\n if (node.type !== \"CallExpression\") return false;\n const callee = (node as CallExpression).callee;\n if (callee.type === \"Identifier\") {\n return [\"memo\", \"forwardRef\"].includes((callee as Identifier).name);\n }\n if (callee.type === \"MemberExpression\") {\n const obj = (callee as MemberExpression).object;\n const prop = (callee as MemberExpression).property;\n if (obj.type === \"Identifier\" && (obj as Identifier).name === \"React\" && prop.type === \"Identifier\") {\n return [\"memo\", \"forwardRef\"].includes((prop as Identifier).name);\n }\n }\n return false;\n}\n\nfunction createSourceAssignment(name: string, sourceValue: string): ExpressionStatement {\n return {\n type: \"ExpressionStatement\",\n expression: {\n type: \"AssignmentExpression\",\n operator: \"=\",\n left: {\n type: \"MemberExpression\",\n object: { type: \"Identifier\", name },\n property: { type: \"Identifier\", name: SOURCE_PROP },\n computed: false,\n } as MemberExpression,\n right: { type: \"Literal\", value: sourceValue },\n } as AssignmentExpression,\n };\n}\n\nfunction createMarkElementHelper(): FunctionDeclaration {\n const code = `\nfunction _markReactElementSource(element, source) {\n const registryKey = Symbol.for(\"${JSX_SOURCE_REGISTRY_SYMBOL}\");\n let registry = globalThis[registryKey];\n if (!(registry instanceof WeakMap)) {\n registry = globalThis[registryKey] = new WeakMap();\n }\n if (element && typeof element === \"object\" && typeof element.props === \"object\") {\n registry.set(element.props, source);\n }\n return element;\n}\n`;\n return ParserTS.parse(code, { ecmaVersion: \"latest\", sourceType: \"module\" })\n .body[0] as unknown as FunctionDeclaration;\n}\n\nfunction wrapWithMarkElement(node: Node, sourceValue: string): CallExpression {\n return {\n type: \"CallExpression\",\n callee: { type: \"Identifier\", name: \"_markReactElementSource\" },\n arguments: [node as any, { type: \"Literal\", value: sourceValue }],\n optional: false,\n };\n}\n\nexport function transformSource(\n code: string,\n options: TransformOptions,\n): { code: string; map?: any } | null {\n const {\n filename,\n projectRoot = process.cwd(),\n injectJsxSource = true,\n injectComponentSource = true,\n } = options;\n\n let ast: Program;\n try {\n ast = getParser(filename).parse(code, {\n ecmaVersion: \"latest\",\n sourceType: \"module\",\n locations: true,\n }) as unknown as Program;\n } catch {\n return null;\n }\n\n let modified = false;\n let needsHelper = false;\n const seenComponents = new Set<string>();\n const assignments: Array<{ node: Node; parent: Node | null; assignment: ExpressionStatement }> = [];\n\n walk(ast as any, {\n enter(node: any, parent: any) {\n if (injectJsxSource && node.type === \"CallExpression\" && isReactElementFactoryCall(node)) {\n const loc = node.loc;\n if (loc) {\n this.replace(wrapWithMarkElement(node, toRelativeSource(filename, loc.start, projectRoot)));\n needsHelper = true;\n modified = true;\n }\n }\n\n if (injectComponentSource && node.type === \"FunctionDeclaration\") {\n const name = node.id?.name;\n if (name && isComponentName(name) && !seenComponents.has(name) && node.loc) {\n assignments.push({ node, parent, assignment: createSourceAssignment(name, toRelativeSource(filename, node.loc.start, projectRoot)) });\n seenComponents.add(name);\n modified = true;\n }\n }\n\n if (injectComponentSource && node.type === \"VariableDeclarator\") {\n const id = node.id;\n if (id.type === \"Identifier\" && isComponentName(id.name) && !seenComponents.has(id.name)) {\n const init = node.init;\n if (init && isSupportedComponentInit(init)) {\n const loc = node.loc || init.loc;\n if (loc) {\n assignments.push({ node, parent, assignment: createSourceAssignment(id.name, toRelativeSource(filename, loc.start, projectRoot)) });\n seenComponents.add(id.name);\n modified = true;\n }\n }\n }\n }\n },\n });\n\n if (!modified) return null;\n\n if (needsHelper) {\n const helper = createMarkElementHelper();\n const exists = ast.body.some(\n (n) => n.type === \"FunctionDeclaration\" && (n as FunctionDeclaration).id?.name === \"_markReactElementSource\",\n );\n if (!exists) ast.body.unshift(helper);\n }\n\n for (const { node, parent, assignment } of assignments.reverse()) {\n if (parent?.type === \"Program\") {\n const index = ast.body.indexOf(node as any);\n if (index !== -1) ast.body.splice(index + 1, 0, assignment as any);\n } else if (parent?.type === \"ExportNamedDeclaration\") {\n const exportNode = (ast as any).body.find(\n (n: any) => n.type === \"ExportNamedDeclaration\" && n.declaration === parent,\n );\n if (exportNode) ast.body.splice(ast.body.indexOf(exportNode) + 1, 0, assignment as any);\n } else if (parent?.type === \"ExportDefaultDeclaration\") {\n ast.body.splice(ast.body.indexOf(parent as any) + 1, 0, assignment as any);\n }\n }\n\n return { code: generate(ast as any, { generator: jsxGenerator }) };\n}\n","import*as t from\"acorn\";import{tokTypes as e,TokContext as s,TokenType as i,keywordTypes as r}from\"acorn\";function a(t,e){for(var s=0;s<e.length;s++){var i=e[s];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(t,\"symbol\"==typeof(r=function(t,e){if(\"object\"!=typeof t||null===t)return t;var s=t[Symbol.toPrimitive];if(void 0!==s){var i=s.call(t,\"string\");if(\"object\"!=typeof i)return i;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(t)}(i.key))?r:String(r),i)}var r}function n(){return n=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var s=arguments[e];for(var i in s)Object.prototype.hasOwnProperty.call(s,i)&&(t[i]=s[i])}return t},n.apply(this,arguments)}function o(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,h(t,e)}function h(t,e){return h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},h(t,e)}function p(t,e){(null==e||e>t.length)&&(e=t.length);for(var s=0,i=new Array(e);s<e;s++)i[s]=t[s];return i}function c(t,e){var s=\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"];if(s)return(s=s.call(t)).next.bind(s);if(Array.isArray(t)||(s=function(t,e){if(t){if(\"string\"==typeof t)return p(t,e);var s=Object.prototype.toString.call(t).slice(8,-1);return\"Object\"===s&&t.constructor&&(s=t.constructor.name),\"Map\"===s||\"Set\"===s?Array.from(t):\"Arguments\"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s)?p(t,e):void 0}}(t))||e&&t&&\"number\"==typeof t.length){s&&(t=s);var i=0;return function(){return i>=t.length?{done:!0}:{done:!1,value:t[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 l=!0;function u(t,e){return void 0===e&&(e={}),new i(\"name\",e)}var d=new WeakMap;function m(t){var a=d.get(t.Parser.acorn||t);if(!a){var o={assert:u(0,{startsExpr:l}),asserts:u(0,{startsExpr:l}),global:u(0,{startsExpr:l}),keyof:u(0,{startsExpr:l}),readonly:u(0,{startsExpr:l}),unique:u(0,{startsExpr:l}),abstract:u(0,{startsExpr:l}),declare:u(0,{startsExpr:l}),enum:u(0,{startsExpr:l}),module:u(0,{startsExpr:l}),namespace:u(0,{startsExpr:l}),interface:u(0,{startsExpr:l}),type:u(0,{startsExpr:l})},h={at:new i(\"@\"),jsxName:new i(\"jsxName\"),jsxText:new i(\"jsxText\",{beforeExpr:!0}),jsxTagStart:new i(\"jsxTagStart\",{startsExpr:!0}),jsxTagEnd:new i(\"jsxTagEnd\")},p={tc_oTag:new s(\"<tag\",!1,!1),tc_cTag:new s(\"</tag\",!1,!1),tc_expr:new s(\"<tag>...</tag>\",!0,!0)},c=new RegExp(\"^(?:\"+Object.keys(o).join(\"|\")+\")$\");h.jsxTagStart.updateContext=function(){this.context.push(p.tc_expr),this.context.push(p.tc_oTag),this.exprAllowed=!1},h.jsxTagEnd.updateContext=function(t){var s=this.context.pop();s===p.tc_oTag&&t===e.slash||s===p.tc_cTag?(this.context.pop(),this.exprAllowed=this.curContext()===p.tc_expr):this.exprAllowed=!0},a={tokTypes:n({},o,h),tokContexts:n({},p),keywordsRegExp:c,tokenIsLiteralPropertyName:function(t){return[e.name,e.string,e.num].concat(Object.values(r),Object.values(o)).includes(t)},tokenIsKeywordOrIdentifier:function(t){return[e.name].concat(Object.values(r),Object.values(o)).includes(t)},tokenIsIdentifier:function(t){return[].concat(Object.values(o),[e.name]).includes(t)},tokenIsTSDeclarationStart:function(t){return[o.abstract,o.declare,o.enum,o.module,o.namespace,o.interface,o.type].includes(t)},tokenIsTSTypeOperator:function(t){return[o.keyof,o.readonly,o.unique].includes(t)},tokenIsTemplate:function(t){return t===e.invalidTemplate}}}return a}var f=1024,y=new RegExp(\"(?:[^\\\\S\\\\n\\\\r\\\\u2028\\\\u2029]|\\\\/\\\\/.*|\\\\/\\\\*.*?\\\\*\\\\/)*\",\"y\"),x=new RegExp(\"(?=(\"+y.source+\"))\\\\1\"+/(?=[\\n\\r\\u2028\\u2029]|\\/\\*(?!.*?\\*\\/)|$)/.source,\"y\"),T=function(){this.shorthandAssign=void 0,this.trailingComma=void 0,this.parenthesizedAssign=void 0,this.parenthesizedBind=void 0,this.doubleProto=void 0,this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1};function v(t,e){var s=e.key.name,i=t[s],r=\"true\";return\"MethodDefinition\"!==e.type||\"get\"!==e.kind&&\"set\"!==e.kind||(r=(e.static?\"s\":\"i\")+e.kind),\"iget\"===i&&\"iset\"===r||\"iset\"===i&&\"iget\"===r||\"sget\"===i&&\"sset\"===r||\"sset\"===i&&\"sget\"===r?(t[s]=\"true\",!1):!!i||(t[s]=r,!1)}function P(t,e){var s=t.key;return!t.computed&&(\"Identifier\"===s.type&&s.name===e||\"Literal\"===s.type&&s.value===e)}var b={AbstractMethodHasImplementation:function(t){return\"Method '\"+t.methodName+\"' cannot have an implementation because it is marked abstract.\"},AbstractPropertyHasInitializer:function(t){return\"Property '\"+t.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.\",CannotFindName:function(t){return\"Cannot find name '\"+t.name+\"'.\"},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:function(t){return\"'declare' is not allowed in \"+t.kind+\"ters.\"},DeclareClassFieldHasInitializer:\"Initializers are not allowed in ambient contexts.\",DeclareFunctionHasImplementation:\"An implementation cannot be declared in ambient contexts.\",DuplicateAccessibilityModifier:function(){return\"Accessibility modifier already seen.\"},DuplicateModifier:function(t){return\"Duplicate modifier: '\"+t.modifier+\"'.\"},EmptyHeritageClauseType:function(t){return\"'\"+t.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'.\",IncompatibleModifiers:function(t){var e=t.modifiers;return\"'\"+e[0]+\"' modifier cannot be used with '\"+e[1]+\"' modifier.\"},IndexSignatureHasAbstract:\"Index signatures cannot have the 'abstract' modifier.\",IndexSignatureHasAccessibility:function(t){return\"Index signatures cannot have an accessibility modifier ('\"+t.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:function(t){return\"'\"+t.modifier+\"' modifier cannot appear on a type member.\"},InvalidModifierOnTypeParameter:function(t){return\"'\"+t.modifier+\"' modifier cannot appear on a type parameter.\"},InvalidModifierOnTypeParameterPositions:function(t){return\"'\"+t.modifier+\"' modifier can only appear on a type parameter of a class, interface or type alias.\"},InvalidModifiersOrder:function(t){var e=t.orderedModifiers;return\"'\"+e[0]+\"' modifier must precede '\"+e[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:function(t){return\"Private elements cannot have an accessibility modifier ('\"+t.modifier+\"').\"},PrivateMethodsHasAccessibility:function(t){return\"Private methods cannot have an accessibility modifier ('\"+t.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 `<T,>() => ...`.\",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:function(t){var e=t.typeParameterName;return\"Single type parameter \"+e+\" should have a trailing comma. Example usage: <\"+e+\",>.\"},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.\",GenericsEndWithComma:\"Trailing comma is not allowed at the end of generics.\",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:function(t){return\"Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got \"+t.type+\".\"},LetInLexicalBinding:\"'let' is not allowed to be used as a name in 'let' or 'const' declarations.\"},g={quot:'\"',amp:\"&\",apos:\"'\",lt:\"<\",gt:\">\",nbsp:\" \",iexcl:\"¡\",cent:\"¢\",pound:\"£\",curren:\"¤\",yen:\"¥\",brvbar:\"¦\",sect:\"§\",uml:\"¨\",copy:\"©\",ordf:\"ª\",laquo:\"«\",not:\"¬\",shy:\"­\",reg:\"®\",macr:\"¯\",deg:\"°\",plusmn:\"±\",sup2:\"²\",sup3:\"³\",acute:\"´\",micro:\"µ\",para:\"¶\",middot:\"·\",cedil:\"¸\",sup1:\"¹\",ordm:\"º\",raquo:\"»\",frac14:\"¼\",frac12:\"½\",frac34:\"¾\",iquest:\"¿\",Agrave:\"À\",Aacute:\"Á\",Acirc:\"Â\",Atilde:\"Ã\",Auml:\"Ä\",Aring:\"Å\",AElig:\"Æ\",Ccedil:\"Ç\",Egrave:\"È\",Eacute:\"É\",Ecirc:\"Ê\",Euml:\"Ë\",Igrave:\"Ì\",Iacute:\"Í\",Icirc:\"Î\",Iuml:\"Ï\",ETH:\"Ð\",Ntilde:\"Ñ\",Ograve:\"Ò\",Oacute:\"Ó\",Ocirc:\"Ô\",Otilde:\"Õ\",Ouml:\"Ö\",times:\"×\",Oslash:\"Ø\",Ugrave:\"Ù\",Uacute:\"Ú\",Ucirc:\"Û\",Uuml:\"Ü\",Yacute:\"Ý\",THORN:\"Þ\",szlig:\"ß\",agrave:\"à\",aacute:\"á\",acirc:\"â\",atilde:\"ã\",auml:\"ä\",aring:\"å\",aelig:\"æ\",ccedil:\"ç\",egrave:\"è\",eacute:\"é\",ecirc:\"ê\",euml:\"ë\",igrave:\"ì\",iacute:\"í\",icirc:\"î\",iuml:\"ï\",eth:\"ð\",ntilde:\"ñ\",ograve:\"ò\",oacute:\"ó\",ocirc:\"ô\",otilde:\"õ\",ouml:\"ö\",divide:\"÷\",oslash:\"ø\",ugrave:\"ù\",uacute:\"ú\",ucirc:\"û\",uuml:\"ü\",yacute:\"ý\",thorn:\"þ\",yuml:\"ÿ\",OElig:\"Œ\",oelig:\"œ\",Scaron:\"Š\",scaron:\"š\",Yuml:\"Ÿ\",fnof:\"ƒ\",circ:\"ˆ\",tilde:\"˜\",Alpha:\"Α\",Beta:\"Β\",Gamma:\"Γ\",Delta:\"Δ\",Epsilon:\"Ε\",Zeta:\"Ζ\",Eta:\"Η\",Theta:\"Θ\",Iota:\"Ι\",Kappa:\"Κ\",Lambda:\"Λ\",Mu:\"Μ\",Nu:\"Ν\",Xi:\"Ξ\",Omicron:\"Ο\",Pi:\"Π\",Rho:\"Ρ\",Sigma:\"Σ\",Tau:\"Τ\",Upsilon:\"Υ\",Phi:\"Φ\",Chi:\"Χ\",Psi:\"Ψ\",Omega:\"Ω\",alpha:\"α\",beta:\"β\",gamma:\"γ\",delta:\"δ\",epsilon:\"ε\",zeta:\"ζ\",eta:\"η\",theta:\"θ\",iota:\"ι\",kappa:\"κ\",lambda:\"λ\",mu:\"μ\",nu:\"ν\",xi:\"ξ\",omicron:\"ο\",pi:\"π\",rho:\"ρ\",sigmaf:\"ς\",sigma:\"σ\",tau:\"τ\",upsilon:\"υ\",phi:\"φ\",chi:\"χ\",psi:\"ψ\",omega:\"ω\",thetasym:\"ϑ\",upsih:\"ϒ\",piv:\"ϖ\",ensp:\" \",emsp:\" \",thinsp:\" \",zwnj:\"‌\",zwj:\"‍\",lrm:\"‎\",rlm:\"‏\",ndash:\"–\",mdash:\"—\",lsquo:\"‘\",rsquo:\"’\",sbquo:\"‚\",ldquo:\"“\",rdquo:\"”\",bdquo:\"„\",dagger:\"†\",Dagger:\"‡\",bull:\"•\",hellip:\"…\",permil:\"‰\",prime:\"′\",Prime:\"″\",lsaquo:\"‹\",rsaquo:\"›\",oline:\"‾\",frasl:\"⁄\",euro:\"€\",image:\"ℑ\",weierp:\"℘\",real:\"ℜ\",trade:\"™\",alefsym:\"ℵ\",larr:\"←\",uarr:\"↑\",rarr:\"→\",darr:\"↓\",harr:\"↔\",crarr:\"↵\",lArr:\"⇐\",uArr:\"⇑\",rArr:\"⇒\",dArr:\"⇓\",hArr:\"⇔\",forall:\"∀\",part:\"∂\",exist:\"∃\",empty:\"∅\",nabla:\"∇\",isin:\"∈\",notin:\"∉\",ni:\"∋\",prod:\"∏\",sum:\"∑\",minus:\"−\",lowast:\"∗\",radic:\"√\",prop:\"∝\",infin:\"∞\",ang:\"∠\",and:\"∧\",or:\"∨\",cap:\"∩\",cup:\"∪\",int:\"∫\",there4:\"∴\",sim:\"∼\",cong:\"≅\",asymp:\"≈\",ne:\"≠\",equiv:\"≡\",le:\"≤\",ge:\"≥\",sub:\"⊂\",sup:\"⊃\",nsub:\"⊄\",sube:\"⊆\",supe:\"⊇\",oplus:\"⊕\",otimes:\"⊗\",perp:\"⊥\",sdot:\"⋅\",lceil:\"⌈\",rceil:\"⌉\",lfloor:\"⌊\",rfloor:\"⌋\",lang:\"〈\",rang:\"〉\",loz:\"◊\",spades:\"♠\",clubs:\"♣\",hearts:\"♥\",diams:\"♦\"},A=/^[\\da-fA-F]+$/,S=/^\\d+$/;function C(t){return t?\"JSXIdentifier\"===t.type?t.name:\"JSXNamespacedName\"===t.type?t.namespace.name+\":\"+t.name.name:\"JSXMemberExpression\"===t.type?C(t.object)+\".\"+C(t.property):void 0:t}var E=/(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;function k(t){if(!t)throw new Error(\"Assert fail\")}function I(t){return\"accessor\"===t}function N(t){return\"in\"===t||\"out\"===t}function w(t,e){return 2|(t?4:0)|(e?8:0)}function L(t){if(\"MemberExpression\"!==t.type)return!1;var e=t.property;return(!t.computed||!(\"TemplateLiteral\"!==e.type||e.expressions.length>0))&&M(t.object)}function M(t){return\"Identifier\"===t.type||\"MemberExpression\"===t.type&&!t.computed&&M(t.object)}function O(t){return\"private\"===t||\"public\"===t||\"protected\"===t}function D(e){var s=e||{},i=s.dts,r=void 0!==i&&i,n=s.allowSatisfies,h=void 0!==n&&n;return function(s){var i=s.acorn||t,n=m(i),p=i.tokTypes,l=i.keywordTypes,u=i.isIdentifierStart,d=i.lineBreak,y=i.isNewLine,M=i.tokContexts,D=i.isIdentifierChar,_=n.tokTypes,R=n.tokContexts,j=n.keywordsRegExp,F=n.tokenIsLiteralPropertyName,B=n.tokenIsTemplate,H=n.tokenIsTSDeclarationStart,q=n.tokenIsIdentifier,U=n.tokenIsKeywordOrIdentifier,V=n.tokenIsTSTypeOperator;function K(t,e,s){void 0===s&&(s=t.length);for(var i=e;i<s;i++){var r=t.charCodeAt(i);if(y(r))return i<s-1&&13===r&&10===t.charCodeAt(i+1)?i+2:i+1}return-1}s=function(t,e,s){var i=s.tokTypes,r=e.tokTypes;/*#__PURE__*/return function(t){function e(){return t.apply(this,arguments)||this}o(e,t);var s=e.prototype;return s.takeDecorators=function(t){var e=this.decoratorStack[this.decoratorStack.length-1];e.length&&(t.decorators=e,this.resetStartLocationFromNode(t,e[0]),this.decoratorStack[this.decoratorStack.length-1]=[])},s.parseDecorators=function(t){for(var e=this.decoratorStack[this.decoratorStack.length-1];this.match(r.at);){var s=this.parseDecorator();e.push(s)}this.match(i._export)?t||this.unexpected():this.canHaveLeadingDecorator()||this.raise(this.start,\"Leading decorators must be attached to a class declaration.\")},s.parseDecorator=function(){var t=this.startNode();this.next(),this.decoratorStack.push([]);var e,s=this.start,r=this.startLoc;if(this.match(i.parenL)){var a=this.start,n=this.startLoc;if(this.next(),e=this.parseExpression(),this.expect(i.parenR),this.options.preserveParens){var o=this.startNodeAt(a,n);o.expression=e,e=this.finishNode(o,\"ParenthesizedExpression\")}}else for(e=this.parseIdent(!1);this.eat(i.dot);){var h=this.startNodeAt(s,r);h.object=e,h.property=this.parseIdent(!0),h.computed=!1,e=this.finishNode(h,\"MemberExpression\")}return t.expression=this.parseMaybeDecoratorArguments(e),this.decoratorStack.pop(),this.finishNode(t,\"Decorator\")},s.parseMaybeDecoratorArguments=function(t){if(this.eat(i.parenL)){var e=this.startNodeAtNode(t);return e.callee=t,e.arguments=this.parseExprList(i.parenR,!1),this.finishNode(e,\"CallExpression\")}return t},e}(t)}(s,n,i),s=function(t,e,s,i){var r=t.tokTypes,a=e.tokTypes,n=t.isNewLine,h=t.isIdentifierChar,p=Object.assign({allowNamespaces:!0,allowNamespacedObjects:!0},i||{});/*#__PURE__*/return function(t){function e(){return t.apply(this,arguments)||this}o(e,t);var s=e.prototype;return s.jsx_readToken=function(){for(var t=\"\",e=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,\"Unterminated JSX contents\");var s=this.input.charCodeAt(this.pos);switch(s){case 60:case 123:return this.pos===this.start?60===s&&this.exprAllowed?(++this.pos,this.finishToken(a.jsxTagStart)):this.getTokenFromCode(s):(t+=this.input.slice(e,this.pos),this.finishToken(a.jsxText,t));case 38:t+=this.input.slice(e,this.pos),t+=this.jsx_readEntity(),e=this.pos;break;case 62:case 125:this.raise(this.pos,\"Unexpected token `\"+this.input[this.pos]+\"`. Did you mean `\"+(62===s?\"&gt;\":\"&rbrace;\")+'` or `{\"'+this.input[this.pos]+'\"}`?');default:n(s)?(t+=this.input.slice(e,this.pos),t+=this.jsx_readNewLine(!0),e=this.pos):++this.pos}}},s.jsx_readNewLine=function(t){var e,s=this.input.charCodeAt(this.pos);return++this.pos,13===s&&10===this.input.charCodeAt(this.pos)?(++this.pos,e=t?\"\\n\":\"\\r\\n\"):e=String.fromCharCode(s),this.options.locations&&(++this.curLine,this.lineStart=this.pos),e},s.jsx_readString=function(t){for(var e=\"\",s=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,\"Unterminated string constant\");var i=this.input.charCodeAt(this.pos);if(i===t)break;38===i?(e+=this.input.slice(s,this.pos),e+=this.jsx_readEntity(),s=this.pos):n(i)?(e+=this.input.slice(s,this.pos),e+=this.jsx_readNewLine(!1),s=this.pos):++this.pos}return e+=this.input.slice(s,this.pos++),this.finishToken(r.string,e)},s.jsx_readEntity=function(){var t,e=\"\",s=0,i=this.input[this.pos];\"&\"!==i&&this.raise(this.pos,\"Entity must start with an ampersand\");for(var r=++this.pos;this.pos<this.input.length&&s++<10;){if(\";\"===(i=this.input[this.pos++])){\"#\"===e[0]?\"x\"===e[1]?(e=e.substr(2),A.test(e)&&(t=String.fromCharCode(parseInt(e,16)))):(e=e.substr(1),S.test(e)&&(t=String.fromCharCode(parseInt(e,10)))):t=g[e];break}e+=i}return t||(this.pos=r,\"&\")},s.jsx_readWord=function(){var t,e=this.pos;do{t=this.input.charCodeAt(++this.pos)}while(h(t)||45===t);return this.finishToken(a.jsxName,this.input.slice(e,this.pos))},s.jsx_parseIdentifier=function(){var t=this.startNode();return this.type===a.jsxName?t.name=this.value:this.type.keyword?t.name=this.type.keyword:this.unexpected(),this.next(),this.finishNode(t,\"JSXIdentifier\")},s.jsx_parseNamespacedName=function(){var t=this.start,e=this.startLoc,s=this.jsx_parseIdentifier();if(!p.allowNamespaces||!this.eat(r.colon))return s;var i=this.startNodeAt(t,e);return i.namespace=s,i.name=this.jsx_parseIdentifier(),this.finishNode(i,\"JSXNamespacedName\")},s.jsx_parseElementName=function(){if(this.type===a.jsxTagEnd)return\"\";var t=this.start,e=this.startLoc,s=this.jsx_parseNamespacedName();for(this.type!==r.dot||\"JSXNamespacedName\"!==s.type||p.allowNamespacedObjects||this.unexpected();this.eat(r.dot);){var i=this.startNodeAt(t,e);i.object=s,i.property=this.jsx_parseIdentifier(),s=this.finishNode(i,\"JSXMemberExpression\")}return s},s.jsx_parseAttributeValue=function(){switch(this.type){case r.braceL:var t=this.jsx_parseExpressionContainer();return\"JSXEmptyExpression\"===t.expression.type&&this.raise(t.start,\"JSX attributes must only be assigned a non-empty expression\"),t;case a.jsxTagStart:case r.string:return this.parseExprAtom();default:this.raise(this.start,\"JSX value should be either an expression or a quoted JSX text\")}},s.jsx_parseEmptyExpression=function(){var t=this.startNodeAt(this.lastTokEnd,this.lastTokEndLoc);return this.finishNodeAt(t,\"JSXEmptyExpression\",this.start,this.startLoc)},s.jsx_parseExpressionContainer=function(){var t=this.startNode();return this.next(),t.expression=this.type===r.braceR?this.jsx_parseEmptyExpression():this.parseExpression(),this.expect(r.braceR),this.finishNode(t,\"JSXExpressionContainer\")},s.jsx_parseAttribute=function(){var t=this.startNode();return this.eat(r.braceL)?(this.expect(r.ellipsis),t.argument=this.parseMaybeAssign(),this.expect(r.braceR),this.finishNode(t,\"JSXSpreadAttribute\")):(t.name=this.jsx_parseNamespacedName(),t.value=this.eat(r.eq)?this.jsx_parseAttributeValue():null,this.finishNode(t,\"JSXAttribute\"))},s.jsx_parseOpeningElementAt=function(t,e){var s=this.startNodeAt(t,e);s.attributes=[];var i=this.jsx_parseElementName();for(i&&(s.name=i);this.type!==r.slash&&this.type!==a.jsxTagEnd;)s.attributes.push(this.jsx_parseAttribute());return s.selfClosing=this.eat(r.slash),this.expect(a.jsxTagEnd),this.finishNode(s,i?\"JSXOpeningElement\":\"JSXOpeningFragment\")},s.jsx_parseClosingElementAt=function(t,e){var s=this.startNodeAt(t,e),i=this.jsx_parseElementName();return i&&(s.name=i),this.expect(a.jsxTagEnd),this.finishNode(s,i?\"JSXClosingElement\":\"JSXClosingFragment\")},s.jsx_parseElementAt=function(t,e){var s=this.startNodeAt(t,e),i=[],n=this.jsx_parseOpeningElementAt(t,e),o=null;if(!n.selfClosing){t:for(;;)switch(this.type){case a.jsxTagStart:if(t=this.start,e=this.startLoc,this.next(),this.eat(r.slash)){o=this.jsx_parseClosingElementAt(t,e);break t}i.push(this.jsx_parseElementAt(t,e));break;case a.jsxText:i.push(this.parseExprAtom());break;case r.braceL:i.push(this.jsx_parseExpressionContainer());break;default:this.unexpected()}C(o.name)!==C(n.name)&&this.raise(o.start,\"Expected corresponding JSX closing tag for <\"+C(n.name)+\">\")}var h=n.name?\"Element\":\"Fragment\";return s[\"opening\"+h]=n,s[\"closing\"+h]=o,s.children=i,this.type===r.relational&&\"<\"===this.value&&this.raise(this.start,\"Adjacent JSX elements must be wrapped in an enclosing tag\"),this.finishNode(s,\"JSX\"+h)},s.jsx_parseText=function(){var t=this.parseLiteral(this.value);return t.type=\"JSXText\",t},s.jsx_parseElement=function(){var t=this.start,e=this.startLoc;return this.next(),this.jsx_parseElementAt(t,e)},e}(s)}(i,n,s,null==e?void 0:e.jsx),s=function(t,e,s){var i=e.tokTypes,r=s.tokTypes;/*#__PURE__*/return function(t){function e(){return t.apply(this,arguments)||this}o(e,t);var s=e.prototype;return s.parseMaybeImportAttributes=function(t){if(this.type===r._with||this.type===i.assert){this.next();var e=this.parseImportAttributes();e&&(t.attributes=e)}},s.parseImportAttributes=function(){this.expect(r.braceL);var t=this.parseWithEntries();return this.expect(r.braceR),t},s.parseWithEntries=function(){var t=[],e=new Set;do{if(this.type===r.braceR)break;var s,i=this.startNode();s=this.type===r.string?this.parseLiteral(this.value):this.parseIdent(!0),this.next(),i.key=s,e.has(i.key.name)&&this.raise(this.pos,\"Duplicated key in attributes\"),e.add(i.key.name),this.type!==r.string&&this.raise(this.pos,\"Only string is supported as an attribute value\"),i.value=this.parseLiteral(this.value),t.push(this.finishNode(i,\"ImportAttribute\"))}while(this.eat(r.comma));return t},e}(t)}(s,n,i);var z=/*#__PURE__*/function(t){function e(e,s,i){var r;return(r=t.call(this,e,s,i)||this).preValue=null,r.preToken=null,r.isLookahead=!1,r.isAmbientContext=!1,r.inAbstractClass=!1,r.inType=!1,r.inDisallowConditionalTypesContext=!1,r.maybeInArrowParameters=!1,r.shouldParseArrowReturnType=void 0,r.shouldParseAsyncArrowReturnType=void 0,r.decoratorStack=[[]],r.importsStack=[[]],r.importOrExportOuterKind=void 0,r.tsParseConstModifier=r.tsParseModifiers.bind(function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(r),{allowedModifiers:[\"const\"],disallowedModifiers:[\"in\",\"out\"],errorTemplate:b.InvalidModifierOnTypeParameterPositions}),r}o(e,t);var s,m,g,A=e.prototype;return A.getTokenFromCodeInType=function(e){return 62===e||60===e?this.finishOp(p.relational,1):t.prototype.getTokenFromCode.call(this,e)},A.readToken=function(e){if(!this.inType){var s=this.curContext();if(s===R.tc_expr)return this.jsx_readToken();if(s===R.tc_oTag||s===R.tc_cTag){if(u(e))return this.jsx_readWord();if(62==e)return++this.pos,this.finishToken(_.jsxTagEnd);if((34===e||39===e)&&s==R.tc_oTag)return this.jsx_readString(e)}if(60===e&&this.exprAllowed&&33!==this.input.charCodeAt(this.pos+1))return++this.pos,this.finishToken(_.jsxTagStart)}return t.prototype.readToken.call(this,e)},A.getTokenFromCode=function(e){return this.inType?this.getTokenFromCodeInType(e):64===e?(++this.pos,this.finishToken(_.at)):t.prototype.getTokenFromCode.call(this,e)},A.isAbstractClass=function(){return this.ts_isContextual(_.abstract)&&this.lookahead().type===p._class},A.finishNode=function(e,s){return\"\"!==e.type&&0!==e.end?e:t.prototype.finishNode.call(this,e,s)},A.tryParse=function(t,e){void 0===e&&(e=this.cloneCurLookaheadState());var s={node:null};try{return{node:t(function(t){throw void 0===t&&(t=null),s.node=t,s}),error:null,thrown:!1,aborted:!1,failState:null}}catch(t){var i=this.getCurLookaheadState();if(this.setLookaheadState(e),t instanceof SyntaxError)return{node:null,error:t,thrown:!0,aborted:!1,failState:i};if(t===s)return{node:s.node,error:null,thrown:!1,aborted:!0,failState:i};throw t}},A.setOptionalParametersError=function(t,e){var s;t.optionalParametersLoc=null!=(s=null==e?void 0:e.loc)?s:this.startLoc},A.reScan_lt_gt=function(){this.type===p.relational&&(this.pos-=1,this.readToken_lt_gt(this.fullCharCodeAtPos()))},A.reScan_lt=function(){var t=this.type;return t===p.bitShift?(this.pos-=2,this.finishOp(p.relational,1),p.relational):t},A.resetEndLocation=function(t,e){void 0===e&&(e=this.lastTokEndLoc),t.end=e.column,t.loc.end=e,this.options.ranges&&(t.range[1]=e.column)},A.startNodeAtNode=function(e){return t.prototype.startNodeAt.call(this,e.start,e.loc.start)},A.nextTokenStart=function(){return this.nextTokenStartSince(this.pos)},A.tsHasSomeModifiers=function(t,e){return e.some(function(e){return O(e)?t.accessibility===e:!!t[e]})},A.tsIsStartOfStaticBlocks=function(){return this.isContextual(\"static\")&&123===this.lookaheadCharCode()},A.tsCheckForInvalidTypeCasts=function(t){var e=this;t.forEach(function(t){\"TSTypeCastExpression\"===(null==t?void 0:t.type)&&e.raise(t.typeAnnotation.start,b.UnexpectedTypeAnnotation)})},A.atPossibleAsyncArrow=function(t){return\"Identifier\"===t.type&&\"async\"===t.name&&this.lastTokEndLoc.column===t.end&&!this.canInsertSemicolon()&&t.end-t.start==5&&t.start===this.potentialArrowAt},A.tsIsIdentifier=function(){return q(this.type)},A.tsTryParseTypeOrTypePredicateAnnotation=function(){return this.match(p.colon)?this.tsParseTypeOrTypePredicateAnnotation(p.colon):void 0},A.tsTryParseGenericAsyncArrowFunction=function(e,s,i){var r=this;if(this.tsMatchLeftRelational()){var a=this.maybeInArrowParameters;this.maybeInArrowParameters=!0;var n=this.tsTryParseAndCatch(function(){var i=r.startNodeAt(e,s);return i.typeParameters=r.tsParseTypeParameters(),t.prototype.parseFunctionParams.call(r,i),i.returnType=r.tsTryParseTypeOrTypePredicateAnnotation(),r.expect(p.arrow),i});if(this.maybeInArrowParameters=a,n)return t.prototype.parseArrowExpression.call(this,n,null,!0,i)}},A.tsParseTypeArgumentsInExpression=function(){if(this.reScan_lt()===p.relational)return this.tsParseTypeArguments()},A.tsInNoContext=function(t){var e=this.context;this.context=[e[0]];try{return t()}finally{this.context=e}},A.tsTryParseTypeAnnotation=function(){return this.match(p.colon)?this.tsParseTypeAnnotation():void 0},A.isUnparsedContextual=function(t,e){var s=t+e.length;if(this.input.slice(t,s)===e){var i=this.input.charCodeAt(s);return!(D(i)||55296==(64512&i))}return!1},A.isAbstractConstructorSignature=function(){return this.ts_isContextual(_.abstract)&&this.lookahead().type===p._new},A.nextTokenStartSince=function(t){return E.lastIndex=t,E.test(this.input)?E.lastIndex:t},A.lookaheadCharCode=function(){return this.input.charCodeAt(this.nextTokenStart())},A.compareLookaheadState=function(t,e){for(var s=0,i=Object.keys(t);s<i.length;s++){var r=i[s];if(t[r]!==e[r])return!1}return!0},A.createLookaheadState=function(){this.value=null,this.context=[this.curContext()]},A.getCurLookaheadState=function(){return{endLoc:this.endLoc,lastTokEnd:this.lastTokEnd,lastTokStart:this.lastTokStart,lastTokStartLoc:this.lastTokStartLoc,pos:this.pos,value:this.value,type:this.type,start:this.start,end:this.end,context:this.context,startLoc:this.startLoc,lastTokEndLoc:this.lastTokEndLoc,curLine:this.curLine,lineStart:this.lineStart,curPosition:this.curPosition,containsEsc:this.containsEsc}},A.cloneCurLookaheadState=function(){return{pos:this.pos,value:this.value,type:this.type,start:this.start,end:this.end,context:this.context&&this.context.slice(),startLoc:this.startLoc,lastTokEndLoc:this.lastTokEndLoc,endLoc:this.endLoc,lastTokEnd:this.lastTokEnd,lastTokStart:this.lastTokStart,lastTokStartLoc:this.lastTokStartLoc,curLine:this.curLine,lineStart:this.lineStart,curPosition:this.curPosition,containsEsc:this.containsEsc}},A.setLookaheadState=function(t){this.pos=t.pos,this.value=t.value,this.endLoc=t.endLoc,this.lastTokEnd=t.lastTokEnd,this.lastTokStart=t.lastTokStart,this.lastTokStartLoc=t.lastTokStartLoc,this.type=t.type,this.start=t.start,this.end=t.end,this.context=t.context,this.startLoc=t.startLoc,this.lastTokEndLoc=t.lastTokEndLoc,this.curLine=t.curLine,this.lineStart=t.lineStart,this.curPosition=t.curPosition,this.containsEsc=t.containsEsc},A.tsLookAhead=function(t){var e=this.getCurLookaheadState(),s=t();return this.setLookaheadState(e),s},A.lookahead=function(t){var e=this.getCurLookaheadState();if(this.createLookaheadState(),this.isLookahead=!0,void 0!==t)for(var s=0;s<t;s++)this.nextToken();else this.nextToken();this.isLookahead=!1;var i=this.getCurLookaheadState();return this.setLookaheadState(e),i},A.readWord=function(){var t=this.readWord1(),e=p.name;return this.keywords.test(t)?e=l[t]:new RegExp(j).test(t)&&(e=_[t]),this.finishToken(e,t)},A.skipBlockComment=function(){var t;this.isLookahead||(t=this.options.onComment&&this.curPosition());var e=this.pos,s=this.input.indexOf(\"*/\",this.pos+=2);if(-1===s&&this.raise(this.pos-2,\"Unterminated comment\"),this.pos=s+2,this.options.locations)for(var i,r=e;(i=K(this.input,r,this.pos))>-1;)++this.curLine,r=this.lineStart=i;this.isLookahead||this.options.onComment&&this.options.onComment(!0,this.input.slice(e+2,s),e,this.pos,t,this.curPosition())},A.skipLineComment=function(t){var e,s=this.pos;this.isLookahead||(e=this.options.onComment&&this.curPosition());for(var i=this.input.charCodeAt(this.pos+=t);this.pos<this.input.length&&!y(i);)i=this.input.charCodeAt(++this.pos);this.isLookahead||this.options.onComment&&this.options.onComment(!1,this.input.slice(s+t,this.pos),s,this.pos,e,this.curPosition())},A.finishToken=function(t,e){this.preValue=this.value,this.preToken=this.type,this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var s=this.type;this.type=t,this.value=e,this.isLookahead||this.updateContext(s)},A.resetStartLocation=function(t,e,s){t.start=e,t.loc.start=s,this.options.ranges&&(t.range[0]=e)},A.isLineTerminator=function(){return this.eat(p.semi)||t.prototype.canInsertSemicolon.call(this)},A.hasFollowingLineBreak=function(){return x.lastIndex=this.end,x.test(this.input)},A.addExtra=function(t,e,s,i){if(void 0===i&&(i=!0),t){var r=t.extra=t.extra||{};i?r[e]=s:Object.defineProperty(r,e,{enumerable:i,value:s})}},A.isLiteralPropertyName=function(){return F(this.type)},A.hasPrecedingLineBreak=function(){return d.test(this.input.slice(this.lastTokEndLoc.index,this.start))},A.createIdentifier=function(t,e){return t.name=e,this.finishNode(t,\"Identifier\")},A.resetStartLocationFromNode=function(t,e){this.resetStartLocation(t,e.start,e.loc.start)},A.isThisParam=function(t){return\"Identifier\"===t.type&&\"this\"===t.name},A.isLookaheadContextual=function(t){var e=this.nextTokenStart();return this.isUnparsedContextual(e,t)},A.ts_type_isContextual=function(t,e){return t===e&&!this.containsEsc},A.ts_isContextual=function(t){return this.type===t&&!this.containsEsc},A.ts_isContextualWithState=function(t,e){return t.type===e&&!t.containsEsc},A.isContextualWithState=function(t,e){return e.type===p.name&&e.value===t&&!e.containsEsc},A.tsIsStartOfMappedType=function(){return this.next(),this.eat(p.plusMin)?this.ts_isContextual(_.readonly):(this.ts_isContextual(_.readonly)&&this.next(),!!this.match(p.bracketL)&&(this.next(),!!this.tsIsIdentifier()&&(this.next(),this.match(p._in))))},A.tsInDisallowConditionalTypesContext=function(t){var e=this.inDisallowConditionalTypesContext;this.inDisallowConditionalTypesContext=!0;try{return t()}finally{this.inDisallowConditionalTypesContext=e}},A.tsTryParseType=function(){return this.tsEatThenParseType(p.colon)},A.match=function(t){return this.type===t},A.matchJsx=function(t){return this.type===n.tokTypes[t]},A.ts_eatWithState=function(t,e,s){if(t===s.type){for(var i=0;i<e;i++)this.next();return!0}return!1},A.ts_eatContextualWithState=function(t,e,s){if(j.test(t)){if(this.ts_isContextualWithState(s,_[t])){for(var i=0;i<e;i++)this.next();return!0}return!1}if(!this.isContextualWithState(t,s))return!1;for(var r=0;r<e;r++)this.next();return!0},A.canHaveLeadingDecorator=function(){return this.match(p._class)},A.eatContextual=function(e){return j.test(e)?!!this.ts_isContextual(_[e])&&(this.next(),!0):t.prototype.eatContextual.call(this,e)},A.tsIsExternalModuleReference=function(){return this.isContextual(\"require\")&&40===this.lookaheadCharCode()},A.tsParseExternalModuleReference=function(){var t=this.startNode();return this.expectContextual(\"require\"),this.expect(p.parenL),this.match(p.string)||this.unexpected(),t.expression=this.parseExprAtom(),this.expect(p.parenR),this.finishNode(t,\"TSExternalModuleReference\")},A.tsParseEntityName=function(t){void 0===t&&(t=!0);for(var e=this.parseIdent(t);this.eat(p.dot);){var s=this.startNodeAtNode(e);s.left=e,s.right=this.parseIdent(t),e=this.finishNode(s,\"TSQualifiedName\")}return e},A.tsParseEnumMember=function(){var t=this.startNode();return t.id=this.match(p.string)?this.parseLiteral(this.value):this.parseIdent(!0),this.eat(p.eq)&&(t.initializer=this.parseMaybeAssign()),this.finishNode(t,\"TSEnumMember\")},A.tsParseEnumDeclaration=function(t,e){return void 0===e&&(e={}),e.const&&(t.const=!0),e.declare&&(t.declare=!0),this.expectContextual(\"enum\"),t.id=this.parseIdent(),this.checkLValSimple(t.id),this.expect(p.braceL),t.members=this.tsParseDelimitedList(\"EnumMembers\",this.tsParseEnumMember.bind(this)),this.expect(p.braceR),this.finishNode(t,\"TSEnumDeclaration\")},A.tsParseModuleBlock=function(){var e=this.startNode();for(t.prototype.enterScope.call(this,512),this.expect(p.braceL),e.body=[];this.type!==p.braceR;){var s=this.parseStatement(null,!0);e.body.push(s)}return this.next(),t.prototype.exitScope.call(this),this.finishNode(e,\"TSModuleBlock\")},A.tsParseAmbientExternalModuleDeclaration=function(e){return this.ts_isContextual(_.global)?(e.global=!0,e.id=this.parseIdent()):this.match(p.string)?e.id=this.parseLiteral(this.value):this.unexpected(),this.match(p.braceL)?(t.prototype.enterScope.call(this,f),e.body=this.tsParseModuleBlock(),t.prototype.exitScope.call(this)):t.prototype.semicolon.call(this),this.finishNode(e,\"TSModuleDeclaration\")},A.tsTryParseDeclare=function(t){var e=this;if(!this.isLineTerminator()){var s,i=this.type;return this.isContextual(\"let\")&&(i=p._var,s=\"let\"),this.tsInAmbientContext(function(){if(i===p._function)return t.declare=!0,e.parseFunctionStatement(t,!1,!0);if(i===p._class)return t.declare=!0,e.parseClass(t,!0);if(i===_.enum)return e.tsParseEnumDeclaration(t,{declare:!0});if(i===_.global)return e.tsParseAmbientExternalModuleDeclaration(t);if(i===p._const||i===p._var)return e.match(p._const)&&e.isLookaheadContextual(\"enum\")?(e.expect(p._const),e.tsParseEnumDeclaration(t,{const:!0,declare:!0})):(t.declare=!0,e.parseVarStatement(t,s||e.value,!0));if(i===_.interface){var r=e.tsParseInterfaceDeclaration(t,{declare:!0});if(r)return r}return q(i)?e.tsParseDeclaration(t,e.value,!0):void 0})}},A.tsIsListTerminator=function(t){switch(t){case\"EnumMembers\":case\"TypeMembers\":return this.match(p.braceR);case\"HeritageClauseElement\":return this.match(p.braceL);case\"TupleElementTypes\":return this.match(p.bracketR);case\"TypeParametersOrArguments\":return this.tsMatchRightRelational()}},A.tsParseDelimitedListWorker=function(t,e,s,i){for(var r=[],a=-1;!this.tsIsListTerminator(t);){a=-1;var n=e();if(null==n)return;if(r.push(n),!this.eat(p.comma)){if(this.tsIsListTerminator(t))break;return void(s&&this.expect(p.comma))}a=this.lastTokStart}return i&&(i.value=a),r},A.tsParseDelimitedList=function(t,e,s){return function(t){if(null==t)throw new Error(\"Unexpected \"+t+\" value.\");return t}(this.tsParseDelimitedListWorker(t,e,!0,s))},A.tsParseBracketedList=function(t,e,s,i,r){i||this.expect(s?p.bracketL:p.relational);var a=this.tsParseDelimitedList(t,e,r);return this.expect(s?p.bracketR:p.relational),a},A.tsParseTypeParameterName=function(){return this.parseIdent().name},A.tsEatThenParseType=function(t){return this.match(t)?this.tsNextThenParseType():void 0},A.tsExpectThenParseType=function(t){var e=this;return this.tsDoThenParseType(function(){return e.expect(t)})},A.tsNextThenParseType=function(){var t=this;return this.tsDoThenParseType(function(){return t.next()})},A.tsDoThenParseType=function(t){var e=this;return this.tsInType(function(){return t(),e.tsParseType()})},A.tsSkipParameterStart=function(){if(q(this.type)||this.match(p._this))return this.next(),!0;if(this.match(p.braceL))try{return this.parseObj(!0),!0}catch(t){return!1}if(this.match(p.bracketL)){this.next();try{return this.parseBindingList(p.bracketR,!0,!0),!0}catch(t){return!1}}return!1},A.tsIsUnambiguouslyStartOfFunctionType=function(){if(this.next(),this.match(p.parenR)||this.match(p.ellipsis))return!0;if(this.tsSkipParameterStart()){if(this.match(p.colon)||this.match(p.comma)||this.match(p.question)||this.match(p.eq))return!0;if(this.match(p.parenR)&&(this.next(),this.match(p.arrow)))return!0}return!1},A.tsIsStartOfFunctionType=function(){return!!this.tsMatchLeftRelational()||this.match(p.parenL)&&this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this))},A.tsInAllowConditionalTypesContext=function(t){var e=this.inDisallowConditionalTypesContext;this.inDisallowConditionalTypesContext=!1;try{return t()}finally{this.inDisallowConditionalTypesContext=e}},A.tsParseBindingListForSignature=function(){var e=this;return t.prototype.parseBindingList.call(this,p.parenR,!0,!0).map(function(t){return\"Identifier\"!==t.type&&\"RestElement\"!==t.type&&\"ObjectPattern\"!==t.type&&\"ArrayPattern\"!==t.type&&e.raise(t.start,b.UnsupportedSignatureParameterKind(t.type)),t})},A.tsParseTypePredicateAsserts=function(){if(this.type!==_.asserts)return!1;var t=this.containsEsc;return this.next(),!(!q(this.type)&&!this.match(p._this)||(t&&this.raise(this.lastTokStart,\"Escape sequence in keyword asserts\"),0))},A.tsParseThisTypeNode=function(){var t=this.startNode();return this.next(),this.finishNode(t,\"TSThisType\")},A.tsParseTypeAnnotation=function(t,e){var s=this;return void 0===t&&(t=!0),void 0===e&&(e=this.startNode()),this.tsInType(function(){t&&s.expect(p.colon),e.typeAnnotation=s.tsParseType()}),this.finishNode(e,\"TSTypeAnnotation\")},A.tsParseThisTypePredicate=function(t){this.next();var e=this.startNodeAtNode(t);return e.parameterName=t,e.typeAnnotation=this.tsParseTypeAnnotation(!1),e.asserts=!1,this.finishNode(e,\"TSTypePredicate\")},A.tsParseThisTypeOrThisTypePredicate=function(){var t=this.tsParseThisTypeNode();return this.isContextual(\"is\")&&!this.hasPrecedingLineBreak()?this.tsParseThisTypePredicate(t):t},A.tsParseTypePredicatePrefix=function(){var t=this.parseIdent();if(this.isContextual(\"is\")&&!this.hasPrecedingLineBreak())return this.next(),t},A.tsParseTypeOrTypePredicateAnnotation=function(t){var e=this;return this.tsInType(function(){var s=e.startNode();e.expect(t);var i=e.startNode(),r=!!e.tsTryParse(e.tsParseTypePredicateAsserts.bind(e));if(r&&e.match(p._this)){var a=e.tsParseThisTypeOrThisTypePredicate();return\"TSThisType\"===a.type?(i.parameterName=a,i.asserts=!0,i.typeAnnotation=null,a=e.finishNode(i,\"TSTypePredicate\")):(e.resetStartLocationFromNode(a,i),a.asserts=!0),s.typeAnnotation=a,e.finishNode(s,\"TSTypeAnnotation\")}var n=e.tsIsIdentifier()&&e.tsTryParse(e.tsParseTypePredicatePrefix.bind(e));if(!n)return r?(i.parameterName=e.parseIdent(),i.asserts=r,i.typeAnnotation=null,s.typeAnnotation=e.finishNode(i,\"TSTypePredicate\"),e.finishNode(s,\"TSTypeAnnotation\")):e.tsParseTypeAnnotation(!1,s);var o=e.tsParseTypeAnnotation(!1);return i.parameterName=n,i.typeAnnotation=o,i.asserts=r,s.typeAnnotation=e.finishNode(i,\"TSTypePredicate\"),e.finishNode(s,\"TSTypeAnnotation\")})},A.tsFillSignature=function(t,e){var s=t===p.arrow;e.typeParameters=this.tsTryParseTypeParameters(),this.expect(p.parenL),e.parameters=this.tsParseBindingListForSignature(),(s||this.match(t))&&(e.typeAnnotation=this.tsParseTypeOrTypePredicateAnnotation(t))},A.tsTryNextParseConstantContext=function(){if(this.lookahead().type!==p._const)return null;this.next();var t=this.tsParseTypeReference();return t.typeParameters&&this.raise(t.typeName.start,b.CannotFindName({name:\"const\"})),t},A.tsParseFunctionOrConstructorType=function(t,e){var s=this,i=this.startNode();return\"TSConstructorType\"===t&&(i.abstract=!!e,e&&this.next(),this.next()),this.tsInAllowConditionalTypesContext(function(){return s.tsFillSignature(p.arrow,i)}),this.finishNode(i,t)},A.tsParseUnionOrIntersectionType=function(t,e,s){var i=this.startNode(),r=this.eat(s),a=[];do{a.push(e())}while(this.eat(s));return 1!==a.length||r?(i.types=a,this.finishNode(i,t)):a[0]},A.tsCheckTypeAnnotationForReadOnly=function(t){switch(t.typeAnnotation.type){case\"TSTupleType\":case\"TSArrayType\":return;default:this.raise(t.start,b.UnexpectedReadonly)}},A.tsParseTypeOperator=function(){var t=this.startNode(),e=this.value;return this.next(),t.operator=e,t.typeAnnotation=this.tsParseTypeOperatorOrHigher(),\"readonly\"===e&&this.tsCheckTypeAnnotationForReadOnly(t),this.finishNode(t,\"TSTypeOperator\")},A.tsParseConstraintForInferType=function(){var t=this;if(this.eat(p._extends)){var e=this.tsInDisallowConditionalTypesContext(function(){return t.tsParseType()});if(this.inDisallowConditionalTypesContext||!this.match(p.question))return e}},A.tsParseInferType=function(){var t=this,e=this.startNode();this.expectContextual(\"infer\");var s=this.startNode();return s.name=this.tsParseTypeParameterName(),s.constraint=this.tsTryParse(function(){return t.tsParseConstraintForInferType()}),e.typeParameter=this.finishNode(s,\"TSTypeParameter\"),this.finishNode(e,\"TSInferType\")},A.tsParseLiteralTypeNode=function(){var t=this,e=this.startNode();return e.literal=function(){switch(t.type){case p.num:case p.string:case p._true:case p._false:return t.parseExprAtom();default:t.unexpected()}}(),this.finishNode(e,\"TSLiteralType\")},A.tsParseImportType=function(){var t=this.startNode();return this.expect(p._import),this.expect(p.parenL),this.match(p.string)||this.raise(this.start,b.UnsupportedImportTypeArgument),t.argument=this.parseExprAtom(),this.expect(p.parenR),this.eat(p.dot)&&(t.qualifier=this.tsParseEntityName()),this.tsMatchLeftRelational()&&(t.typeParameters=this.tsParseTypeArguments()),this.finishNode(t,\"TSImportType\")},A.tsParseTypeQuery=function(){var t=this.startNode();return this.expect(p._typeof),t.exprName=this.match(p._import)?this.tsParseImportType():this.tsParseEntityName(),!this.hasPrecedingLineBreak()&&this.tsMatchLeftRelational()&&(t.typeParameters=this.tsParseTypeArguments()),this.finishNode(t,\"TSTypeQuery\")},A.tsParseMappedTypeParameter=function(){var t=this.startNode();return t.name=this.tsParseTypeParameterName(),t.constraint=this.tsExpectThenParseType(p._in),this.finishNode(t,\"TSTypeParameter\")},A.tsParseMappedType=function(){var t=this.startNode();return this.expect(p.braceL),this.match(p.plusMin)?(t.readonly=this.value,this.next(),this.expectContextual(\"readonly\")):this.eatContextual(\"readonly\")&&(t.readonly=!0),this.expect(p.bracketL),t.typeParameter=this.tsParseMappedTypeParameter(),t.nameType=this.eatContextual(\"as\")?this.tsParseType():null,this.expect(p.bracketR),this.match(p.plusMin)?(t.optional=this.value,this.next(),this.expect(p.question)):this.eat(p.question)&&(t.optional=!0),t.typeAnnotation=this.tsTryParseType(),this.semicolon(),this.expect(p.braceR),this.finishNode(t,\"TSMappedType\")},A.tsParseTypeLiteral=function(){var t=this.startNode();return t.members=this.tsParseObjectTypeMembers(),this.finishNode(t,\"TSTypeLiteral\")},A.tsParseTupleElementType=function(){var t=this.startLoc,e=this.start,s=this.eat(p.ellipsis),i=this.tsParseType(),r=this.eat(p.question);if(this.eat(p.colon)){var a=this.startNodeAtNode(i);a.optional=r,\"TSTypeReference\"!==i.type||i.typeParameters||\"Identifier\"!==i.typeName.type?(this.raise(i.start,b.InvalidTupleMemberLabel),a.label=i):a.label=i.typeName,a.elementType=this.tsParseType(),i=this.finishNode(a,\"TSNamedTupleMember\")}else if(r){var n=this.startNodeAtNode(i);n.typeAnnotation=i,i=this.finishNode(n,\"TSOptionalType\")}if(s){var o=this.startNodeAt(e,t);o.typeAnnotation=i,i=this.finishNode(o,\"TSRestType\")}return i},A.tsParseTupleType=function(){var t=this,e=this.startNode();e.elementTypes=this.tsParseBracketedList(\"TupleElementTypes\",this.tsParseTupleElementType.bind(this),!0,!1);var s=!1,i=null;return e.elementTypes.forEach(function(e){var r=e.type;!s||\"TSRestType\"===r||\"TSOptionalType\"===r||\"TSNamedTupleMember\"===r&&e.optional||t.raise(e.start,b.OptionalTypeBeforeRequired),s||(s=\"TSNamedTupleMember\"===r&&e.optional||\"TSOptionalType\"===r);var a=r;\"TSRestType\"===r&&(a=(e=e.typeAnnotation).type);var n=\"TSNamedTupleMember\"===a;null!=i||(i=n),i!==n&&t.raise(e.start,b.MixedLabeledAndUnlabeledElements)}),this.finishNode(e,\"TSTupleType\")},A.tsParseTemplateLiteralType=function(){var t=this.startNode();return t.literal=this.parseTemplate({isTagged:!1}),this.finishNode(t,\"TSLiteralType\")},A.tsParseTypeReference=function(){var t=this.startNode();return t.typeName=this.tsParseEntityName(),!this.hasPrecedingLineBreak()&&this.tsMatchLeftRelational()&&(t.typeParameters=this.tsParseTypeArguments()),this.finishNode(t,\"TSTypeReference\")},A.tsMatchLeftRelational=function(){return this.match(p.relational)&&\"<\"===this.value},A.tsMatchRightRelational=function(){return this.match(p.relational)&&\">\"===this.value},A.tsParseParenthesizedType=function(){var t=this.startNode();return this.expect(p.parenL),t.typeAnnotation=this.tsParseType(),this.expect(p.parenR),this.finishNode(t,\"TSParenthesizedType\")},A.tsParseNonArrayType=function(){switch(this.type){case p.string:case p.num:case p._true:case p._false:return this.tsParseLiteralTypeNode();case p.plusMin:if(\"-\"===this.value){var t=this.startNode();return this.lookahead().type!==p.num&&this.unexpected(),t.literal=this.parseMaybeUnary(),this.finishNode(t,\"TSLiteralType\")}break;case p._this:return this.tsParseThisTypeOrThisTypePredicate();case p._typeof:return this.tsParseTypeQuery();case p._import:return this.tsParseImportType();case p.braceL:return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this))?this.tsParseMappedType():this.tsParseTypeLiteral();case p.bracketL:return this.tsParseTupleType();case p.parenL:return this.tsParseParenthesizedType();case p.backQuote:case p.dollarBraceL:return this.tsParseTemplateLiteralType();default:var e=this.type;if(q(e)||e===p._void||e===p._null){var s=e===p._void?\"TSVoidKeyword\":e===p._null?\"TSNullKeyword\":function(t){switch(t){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}}(this.value);if(void 0!==s&&46!==this.lookaheadCharCode()){var i=this.startNode();return this.next(),this.finishNode(i,s)}return this.tsParseTypeReference()}}this.unexpected()},A.tsParseArrayTypeOrHigher=function(){for(var t=this.tsParseNonArrayType();!this.hasPrecedingLineBreak()&&this.eat(p.bracketL);)if(this.match(p.bracketR)){var e=this.startNodeAtNode(t);e.elementType=t,this.expect(p.bracketR),t=this.finishNode(e,\"TSArrayType\")}else{var s=this.startNodeAtNode(t);s.objectType=t,s.indexType=this.tsParseType(),this.expect(p.bracketR),t=this.finishNode(s,\"TSIndexedAccessType\")}return t},A.tsParseTypeOperatorOrHigher=function(){var t=this;return V(this.type)&&!this.containsEsc?this.tsParseTypeOperator():this.isContextual(\"infer\")?this.tsParseInferType():this.tsInAllowConditionalTypesContext(function(){return t.tsParseArrayTypeOrHigher()})},A.tsParseIntersectionTypeOrHigher=function(){return this.tsParseUnionOrIntersectionType(\"TSIntersectionType\",this.tsParseTypeOperatorOrHigher.bind(this),p.bitwiseAND)},A.tsParseUnionTypeOrHigher=function(){return this.tsParseUnionOrIntersectionType(\"TSUnionType\",this.tsParseIntersectionTypeOrHigher.bind(this),p.bitwiseOR)},A.tsParseNonConditionalType=function(){return this.tsIsStartOfFunctionType()?this.tsParseFunctionOrConstructorType(\"TSFunctionType\"):this.match(p._new)?this.tsParseFunctionOrConstructorType(\"TSConstructorType\"):this.isAbstractConstructorSignature()?this.tsParseFunctionOrConstructorType(\"TSConstructorType\",!0):this.tsParseUnionTypeOrHigher()},A.tsParseType=function(){var t=this;k(this.inType);var e=this.tsParseNonConditionalType();if(this.inDisallowConditionalTypesContext||this.hasPrecedingLineBreak()||!this.eat(p._extends))return e;var s=this.startNodeAtNode(e);return s.checkType=e,s.extendsType=this.tsInDisallowConditionalTypesContext(function(){return t.tsParseNonConditionalType()}),this.expect(p.question),s.trueType=this.tsInAllowConditionalTypesContext(function(){return t.tsParseType()}),this.expect(p.colon),s.falseType=this.tsInAllowConditionalTypesContext(function(){return t.tsParseType()}),this.finishNode(s,\"TSConditionalType\")},A.tsIsUnambiguouslyIndexSignature=function(){return this.next(),!!q(this.type)&&(this.next(),this.match(p.colon))},A.tsInType=function(t){var e=this.inType;this.inType=!0;try{return t()}finally{this.inType=e}},A.tsTryParseIndexSignature=function(t){if(this.match(p.bracketL)&&this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))){this.expect(p.bracketL);var e=this.parseIdent();e.typeAnnotation=this.tsParseTypeAnnotation(),this.resetEndLocation(e),this.expect(p.bracketR),t.parameters=[e];var s=this.tsTryParseTypeAnnotation();return s&&(t.typeAnnotation=s),this.tsParseTypeMemberSemicolon(),this.finishNode(t,\"TSIndexSignature\")}},A.tsParseNoneModifiers=function(t){this.tsParseModifiers({modified:t,allowedModifiers:[],disallowedModifiers:[\"in\",\"out\"],errorTemplate:b.InvalidModifierOnTypeParameterPositions})},A.tsParseTypeParameter=function(t){void 0===t&&(t=this.tsParseNoneModifiers.bind(this));var e=this.startNode();return t(e),e.name=this.tsParseTypeParameterName(),e.constraint=this.tsEatThenParseType(p._extends),e.default=this.tsEatThenParseType(p.eq),this.finishNode(e,\"TSTypeParameter\")},A.tsParseTypeParameters=function(t){var e=this.startNode();this.tsMatchLeftRelational()||this.matchJsx(\"jsxTagStart\")?this.next():this.unexpected();var s={value:-1};return e.params=this.tsParseBracketedList(\"TypeParametersOrArguments\",this.tsParseTypeParameter.bind(this,t),!1,!0,s),0===e.params.length&&this.raise(this.start,b.EmptyTypeParameters),-1!==s.value&&this.addExtra(e,\"trailingComma\",s.value),this.finishNode(e,\"TSTypeParameterDeclaration\")},A.tsTryParseTypeParameters=function(t){if(this.tsMatchLeftRelational())return this.tsParseTypeParameters(t)},A.tsTryParse=function(t){var e=this.getCurLookaheadState(),s=t();return void 0!==s&&!1!==s?s:void this.setLookaheadState(e)},A.tsTokenCanFollowModifier=function(){return(this.match(p.bracketL)||this.match(p.braceL)||this.match(p.star)||this.match(p.ellipsis)||this.match(p.privateId)||this.isLiteralPropertyName())&&!this.hasPrecedingLineBreak()},A.tsNextTokenCanFollowModifier=function(){return this.next(!0),this.tsTokenCanFollowModifier()},A.tsParseModifier=function(t,e){if(q(this.type)||this.type===p._in){var s=this.value;if(-1!==t.indexOf(s)&&!this.containsEsc){if(e&&this.tsIsStartOfStaticBlocks())return;if(this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this)))return s}}},A.tsParseModifiersByMap=function(t){for(var e=t.modified,s=t.map,i=0,r=Object.keys(s);i<r.length;i++){var a=r[i];e[a]=s[a]}},A.tsParseModifiers=function(t){for(var e=this,s=t.modified,i=t.allowedModifiers,r=t.disallowedModifiers,a=t.stopOnStartOfClassStaticBlock,n=t.errorTemplate,o=void 0===n?b.InvalidModifierOnTypeMember:n,h={},p=function(t,i,r,a){i===r&&s[a]&&e.raise(t.column,b.InvalidModifiersOrder({orderedModifiers:[r,a]}))},c=function(t,i,r,a){(s[r]&&i===a||s[a]&&i===r)&&e.raise(t.column,b.IncompatibleModifiers({modifiers:[r,a]}))};;){var l=this.startLoc,u=this.tsParseModifier(i.concat(null!=r?r:[]),a);if(!u)break;O(u)?s.accessibility?this.raise(this.start,b.DuplicateAccessibilityModifier()):(p(l,u,u,\"override\"),p(l,u,u,\"static\"),p(l,u,u,\"readonly\"),p(l,u,u,\"accessor\"),h.accessibility=u,s.accessibility=u):N(u)?s[u]?this.raise(this.start,b.DuplicateModifier({modifier:u})):(p(l,u,\"in\",\"out\"),h[u]=u,s[u]=!0):I(u)?s[u]?this.raise(this.start,b.DuplicateModifier({modifier:u})):(c(l,u,\"accessor\",\"readonly\"),c(l,u,\"accessor\",\"static\"),c(l,u,\"accessor\",\"override\"),h[u]=u,s[u]=!0):Object.hasOwnProperty.call(s,u)?this.raise(this.start,b.DuplicateModifier({modifier:u})):(p(l,u,\"static\",\"readonly\"),p(l,u,\"static\",\"override\"),p(l,u,\"override\",\"readonly\"),p(l,u,\"abstract\",\"override\"),c(l,u,\"declare\",\"override\"),c(l,u,\"static\",\"abstract\"),h[u]=u,s[u]=!0),null!=r&&r.includes(u)&&this.raise(this.start,o)}return h},A.tsParseInOutModifiers=function(t){this.tsParseModifiers({modified:t,allowedModifiers:[\"in\",\"out\"],disallowedModifiers:[\"public\",\"private\",\"protected\",\"readonly\",\"declare\",\"abstract\",\"override\"],errorTemplate:b.InvalidModifierOnTypeParameter})},A.tsParseTypeArguments=function(){var t=this,e=this.startNode();return e.params=this.tsInType(function(){return t.tsInNoContext(function(){return t.expect(p.relational),t.tsParseDelimitedList(\"TypeParametersOrArguments\",t.tsParseType.bind(t))})}),0===e.params.length&&this.raise(this.start,b.EmptyTypeArguments),this.exprAllowed=!1,this.expect(p.relational),this.finishNode(e,\"TSTypeParameterInstantiation\")},A.tsParseHeritageClause=function(t){var e=this,s=this.start,i=this.tsParseDelimitedList(\"HeritageClauseElement\",function(){var t=e.startNode();return t.expression=e.tsParseEntityName(),e.tsMatchLeftRelational()&&(t.typeParameters=e.tsParseTypeArguments()),e.finishNode(t,\"TSExpressionWithTypeArguments\")});return i.length||this.raise(s,b.EmptyHeritageClauseType({token:t})),i},A.tsParseTypeMemberSemicolon=function(){this.eat(p.comma)||this.isLineTerminator()||this.expect(p.semi)},A.tsTryParseAndCatch=function(t){var e=this.tryParse(function(e){return t()||e()});if(!e.aborted&&e.node)return e.error&&this.setLookaheadState(e.failState),e.node},A.tsParseSignatureMember=function(t,e){return this.tsFillSignature(p.colon,e),this.tsParseTypeMemberSemicolon(),this.finishNode(e,t)},A.tsParsePropertyOrMethodSignature=function(t,e){this.eat(p.question)&&(t.optional=!0);var s=t;if(this.match(p.parenL)||this.tsMatchLeftRelational()){e&&this.raise(t.start,b.ReadonlyForMethodSignature);var i=s;i.kind&&this.tsMatchLeftRelational()&&this.raise(this.start,b.AccesorCannotHaveTypeParameters),this.tsFillSignature(p.colon,i),this.tsParseTypeMemberSemicolon();var r=\"parameters\",a=\"typeAnnotation\";if(\"get\"===i.kind)i[r].length>0&&(this.raise(this.start,\"A 'get' accesor must not have any formal parameters.\"),this.isThisParam(i[r][0])&&this.raise(this.start,b.AccesorCannotDeclareThisParameter));else if(\"set\"===i.kind){if(1!==i[r].length)this.raise(this.start,\"A 'get' accesor must not have any formal parameters.\");else{var n=i[r][0];this.isThisParam(n)&&this.raise(this.start,b.AccesorCannotDeclareThisParameter),\"Identifier\"===n.type&&n.optional&&this.raise(this.start,b.SetAccesorCannotHaveOptionalParameter),\"RestElement\"===n.type&&this.raise(this.start,b.SetAccesorCannotHaveRestParameter)}i[a]&&this.raise(i[a].start,b.SetAccesorCannotHaveReturnType)}else i.kind=\"method\";return this.finishNode(i,\"TSMethodSignature\")}var o=s;e&&(o.readonly=!0);var h=this.tsTryParseTypeAnnotation();return h&&(o.typeAnnotation=h),this.tsParseTypeMemberSemicolon(),this.finishNode(o,\"TSPropertySignature\")},A.tsParseTypeMember=function(){var t=this.startNode();if(this.match(p.parenL)||this.tsMatchLeftRelational())return this.tsParseSignatureMember(\"TSCallSignatureDeclaration\",t);if(this.match(p._new)){var e=this.startNode();return this.next(),this.match(p.parenL)||this.tsMatchLeftRelational()?this.tsParseSignatureMember(\"TSConstructSignatureDeclaration\",t):(t.key=this.createIdentifier(e,\"new\"),this.tsParsePropertyOrMethodSignature(t,!1))}return this.tsParseModifiers({modified:t,allowedModifiers:[\"readonly\"],disallowedModifiers:[\"declare\",\"abstract\",\"private\",\"protected\",\"public\",\"static\",\"override\"]}),this.tsTryParseIndexSignature(t)||(this.parsePropertyName(t),t.computed||\"Identifier\"!==t.key.type||\"get\"!==t.key.name&&\"set\"!==t.key.name||!this.tsTokenCanFollowModifier()||(t.kind=t.key.name,this.parsePropertyName(t)),this.tsParsePropertyOrMethodSignature(t,!!t.readonly))},A.tsParseList=function(t,e){for(var s=[];!this.tsIsListTerminator(t);)s.push(e());return s},A.tsParseObjectTypeMembers=function(){this.expect(p.braceL);var t=this.tsParseList(\"TypeMembers\",this.tsParseTypeMember.bind(this));return this.expect(p.braceR),t},A.tsParseInterfaceDeclaration=function(t,e){if(void 0===e&&(e={}),this.hasFollowingLineBreak())return null;this.expectContextual(\"interface\"),e.declare&&(t.declare=!0),q(this.type)?(t.id=this.parseIdent(),this.checkLValSimple(t.id,7)):(t.id=null,this.raise(this.start,b.MissingInterfaceName)),t.typeParameters=this.tsTryParseTypeParameters(this.tsParseInOutModifiers.bind(this)),this.eat(p._extends)&&(t.extends=this.tsParseHeritageClause(\"extends\"));var s=this.startNode();return s.body=this.tsInType(this.tsParseObjectTypeMembers.bind(this)),t.body=this.finishNode(s,\"TSInterfaceBody\"),this.finishNode(t,\"TSInterfaceDeclaration\")},A.tsParseAbstractDeclaration=function(t){if(this.match(p._class))return t.abstract=!0,this.parseClass(t,!0);if(this.ts_isContextual(_.interface)){if(!this.hasFollowingLineBreak())return t.abstract=!0,this.tsParseInterfaceDeclaration(t)}else this.unexpected(t.start)},A.tsIsDeclarationStart=function(){return H(this.type)},A.tsParseExpressionStatement=function(e,s){switch(s.name){case\"declare\":var i=this.tsTryParseDeclare(e);if(i)return i.declare=!0,i;break;case\"global\":if(this.match(p.braceL)){t.prototype.enterScope.call(this,f);var r=e;return r.global=!0,r.id=s,r.body=this.tsParseModuleBlock(),t.prototype.exitScope.call(this),this.finishNode(r,\"TSModuleDeclaration\")}break;default:return this.tsParseDeclaration(e,s.name,!1)}},A.tsParseModuleReference=function(){return this.tsIsExternalModuleReference()?this.tsParseExternalModuleReference():this.tsParseEntityName(!1)},A.tsIsExportDefaultSpecifier=function(){var t=this.type,e=this.isAsyncFunction(),s=this.isLet();if(q(t)){if(e&&!this.containsEsc||s)return!1;if((t===_.type||t===_.interface)&&!this.containsEsc){var i=this.lookahead();if(q(i.type)&&!this.isContextualWithState(\"from\",i)||i.type===p.braceL)return!1}}else if(!this.match(p._default))return!1;var r=this.nextTokenStart(),a=this.isUnparsedContextual(r,\"from\");if(44===this.input.charCodeAt(r)||q(this.type)&&a)return!0;if(this.match(p._default)&&a){var n=this.input.charCodeAt(this.nextTokenStartSince(r+4));return 34===n||39===n}return!1},A.tsInAmbientContext=function(t){var e=this.isAmbientContext;this.isAmbientContext=!0;try{return t()}finally{this.isAmbientContext=e}},A.tsCheckLineTerminator=function(t){return t?!this.hasFollowingLineBreak()&&(this.next(),!0):!this.isLineTerminator()},A.tsParseModuleOrNamespaceDeclaration=function(e,s){if(void 0===s&&(s=!1),e.id=this.parseIdent(),s||this.checkLValSimple(e.id,8),this.eat(p.dot)){var i=this.startNode();this.tsParseModuleOrNamespaceDeclaration(i,!0),e.body=i}else t.prototype.enterScope.call(this,f),e.body=this.tsParseModuleBlock(),t.prototype.exitScope.call(this);return this.finishNode(e,\"TSModuleDeclaration\")},A.checkLValSimple=function(e,s,i){return void 0===s&&(s=0),t.prototype.checkLValSimple.call(this,e,s,i)},A.tsParseTypeAliasDeclaration=function(t){var e=this;return t.id=this.parseIdent(),this.checkLValSimple(t.id,6),t.typeAnnotation=this.tsInType(function(){if(t.typeParameters=e.tsTryParseTypeParameters(e.tsParseInOutModifiers.bind(e)),e.expect(p.eq),e.ts_isContextual(_.interface)&&e.lookahead().type!==p.dot){var s=e.startNode();return e.next(),e.finishNode(s,\"TSIntrinsicKeyword\")}return e.tsParseType()}),this.semicolon(),this.finishNode(t,\"TSTypeAliasDeclaration\")},A.tsParseDeclaration=function(t,e,s){switch(e){case\"abstract\":if(this.tsCheckLineTerminator(s)&&(this.match(p._class)||q(this.type)))return this.tsParseAbstractDeclaration(t);break;case\"module\":if(this.tsCheckLineTerminator(s)){if(this.match(p.string))return this.tsParseAmbientExternalModuleDeclaration(t);if(q(this.type))return this.tsParseModuleOrNamespaceDeclaration(t)}break;case\"namespace\":if(this.tsCheckLineTerminator(s)&&q(this.type))return this.tsParseModuleOrNamespaceDeclaration(t);break;case\"type\":if(this.tsCheckLineTerminator(s)&&q(this.type))return this.tsParseTypeAliasDeclaration(t)}},A.tsTryParseExportDeclaration=function(){return this.tsParseDeclaration(this.startNode(),this.value,!0)},A.tsParseImportEqualsDeclaration=function(e,s){e.isExport=s||!1,e.id=this.parseIdent(),this.checkLValSimple(e.id,2),t.prototype.expect.call(this,p.eq);var i=this.tsParseModuleReference();return\"type\"===e.importKind&&\"TSExternalModuleReference\"!==i.type&&this.raise(i.start,b.ImportAliasHasImportType),e.moduleReference=i,t.prototype.semicolon.call(this),this.finishNode(e,\"TSImportEqualsDeclaration\")},A.isExportDefaultSpecifier=function(){if(this.tsIsDeclarationStart())return!1;var t=this.type;if(q(t)){if(this.isContextual(\"async\")||this.isContextual(\"let\"))return!1;if((t===_.type||t===_.interface)&&!this.containsEsc){var e=this.lookahead();if(q(e.type)&&!this.isContextualWithState(\"from\",e)||e.type===p.braceL)return!1}}else if(!this.match(p._default))return!1;var s=this.nextTokenStart(),i=this.isUnparsedContextual(s,\"from\");if(44===this.input.charCodeAt(s)||q(this.type)&&i)return!0;if(this.match(p._default)&&i){var r=this.input.charCodeAt(this.nextTokenStartSince(s+4));return 34===r||39===r}return!1},A.parseTemplate=function(t){var e=(void 0===t?{}:t).isTagged,s=void 0!==e&&e,i=this.startNode();this.next(),i.expressions=[];var r=this.parseTemplateElement({isTagged:s});for(i.quasis=[r];!r.tail;)this.type===p.eof&&this.raise(this.pos,\"Unterminated template literal\"),this.expect(p.dollarBraceL),i.expressions.push(this.inType?this.tsParseType():this.parseExpression()),this.expect(p.braceR),i.quasis.push(r=this.parseTemplateElement({isTagged:s}));return this.next(),this.finishNode(i,\"TemplateLiteral\")},A.parseFunction=function(t,e,s,i,r){this.initFunction(t),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!i)&&(this.type===p.star&&2&e&&this.unexpected(),t.generator=this.eat(p.star)),this.options.ecmaVersion>=8&&(t.async=!!i),1&e&&(t.id=4&e&&this.type!==p.name?null:this.parseIdent());var a=this.yieldPos,n=this.awaitPos,o=this.awaitIdentPos,h=this.maybeInArrowParameters;this.maybeInArrowParameters=!1,this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(w(t.async,t.generator)),1&e||(t.id=this.type===p.name?this.parseIdent():null),this.parseFunctionParams(t);var c=1&e;return this.parseFunctionBody(t,s,!1,r,{isFunctionDeclaration:c}),this.yieldPos=a,this.awaitPos=n,this.awaitIdentPos=o,1&e&&t.id&&!(2&e)&&this.checkLValSimple(t.id,t.body?this.strict||t.generator||t.async?this.treatFunctionsAsVar?1:2:3:0),this.maybeInArrowParameters=h,this.finishNode(t,c?\"FunctionDeclaration\":\"FunctionExpression\")},A.parseFunctionBody=function(e,s,i,r,a){void 0===s&&(s=!1),void 0===i&&(i=!1),void 0===r&&(r=!1),this.match(p.colon)&&(e.returnType=this.tsParseTypeOrTypePredicateAnnotation(p.colon));var n=null!=a&&a.isFunctionDeclaration?\"TSDeclareFunction\":null!=a&&a.isClassMethod?\"TSDeclareMethod\":void 0;return n&&!this.match(p.braceL)&&this.isLineTerminator()?this.finishNode(e,n):\"TSDeclareFunction\"===n&&this.isAmbientContext&&(this.raise(e.start,b.DeclareFunctionHasImplementation),e.declare)?(t.prototype.parseFunctionBody.call(this,e,s,i,!1),this.finishNode(e,n)):(t.prototype.parseFunctionBody.call(this,e,s,i,r),e)},A.parseNew=function(){var t;this.containsEsc&&this.raiseRecoverable(this.start,\"Escape sequence in keyword new\");var e=this.startNode(),s=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(p.dot)){e.meta=s;var i=this.containsEsc;return e.property=this.parseIdent(!0),\"target\"!==e.property.name&&this.raiseRecoverable(e.property.start,\"The only valid meta property for new is 'new.target'\"),i&&this.raiseRecoverable(e.start,\"'new.target' must not contain escaped characters\"),this.allowNewDotTarget||this.raiseRecoverable(e.start,\"'new.target' can only be used in functions and class static block\"),this.finishNode(e,\"MetaProperty\")}var r=this.start,a=this.startLoc,n=this.type===p._import;e.callee=this.parseSubscripts(this.parseExprAtom(),r,a,!0,!1),n&&\"ImportExpression\"===e.callee.type&&this.raise(r,\"Cannot use new with import()\");var o=e.callee;return\"TSInstantiationExpression\"!==o.type||null!=(t=o.extra)&&t.parenthesized||(e.typeParameters=o.typeParameters,e.callee=o.expression),e.arguments=this.eat(p.parenL)?this.parseExprList(p.parenR,this.options.ecmaVersion>=8,!1):[],this.finishNode(e,\"NewExpression\")},A.parseExprOp=function(e,s,i,r,a){var n;if(p._in.binop>r&&!this.hasPrecedingLineBreak()&&(this.isContextual(\"as\")&&(n=\"TSAsExpression\"),h&&this.isContextual(\"satisfies\")&&(n=\"TSSatisfiesExpression\"),n)){var o=this.startNodeAt(s,i);o.expression=e;var c=this.tsTryNextParseConstantContext();return o.typeAnnotation=c||this.tsNextThenParseType(),this.finishNode(o,n),this.reScan_lt_gt(),this.parseExprOp(o,s,i,r,a)}return t.prototype.parseExprOp.call(this,e,s,i,r,a)},A.parseImportSpecifiers=function(){var t=[],e=!0;if(n.tokenIsIdentifier(this.type)&&(t.push(this.parseImportDefaultSpecifier()),!this.eat(p.comma)))return t;if(this.type===p.star)return t.push(this.parseImportNamespaceSpecifier()),t;for(this.expect(p.braceL);!this.eat(p.braceR);){if(e)e=!1;else if(this.expect(p.comma),this.afterTrailingComma(p.braceR))break;t.push(this.parseImportSpecifier())}return t},A.parseImport=function(t){var e=this.lookahead();if(t.importKind=\"value\",this.importOrExportOuterKind=\"value\",q(e.type)||this.match(p.star)||this.match(p.braceL)){var s=this.lookahead(2);if(s.type!==p.comma&&!this.isContextualWithState(\"from\",s)&&s.type!==p.eq&&this.ts_eatContextualWithState(\"type\",1,e)&&(this.importOrExportOuterKind=\"type\",t.importKind=\"type\",e=this.lookahead(),s=this.lookahead(2)),q(e.type)&&s.type===p.eq){this.next();var i=this.tsParseImportEqualsDeclaration(t);return this.importOrExportOuterKind=\"value\",i}}return this.next(),this.type===p.string?(t.specifiers=[],t.source=this.parseExprAtom()):(t.specifiers=this.parseImportSpecifiers(),this.expectContextual(\"from\"),t.source=this.type===p.string?this.parseExprAtom():this.unexpected()),this.parseMaybeImportAttributes(t),this.semicolon(),this.finishNode(t,\"ImportDeclaration\"),this.importOrExportOuterKind=\"value\",\"type\"===t.importKind&&t.specifiers.length>1&&\"ImportDefaultSpecifier\"===t.specifiers[0].type&&this.raise(t.start,b.TypeImportCannotSpecifyDefaultAndNamed),t},A.parseExportDefaultDeclaration=function(){if(this.isAbstractClass()){var e=this.startNode();return this.next(),e.abstract=!0,this.parseClass(e,!0)}if(this.match(_.interface)){var s=this.tsParseInterfaceDeclaration(this.startNode());if(s)return s}return t.prototype.parseExportDefaultDeclaration.call(this)},A.parseExportAllDeclaration=function(t,e){return this.options.ecmaVersion>=11&&(this.eatContextual(\"as\")?(t.exported=this.parseModuleExportName(),this.checkExport(e,t.exported,this.lastTokStart)):t.exported=null),this.expectContextual(\"from\"),this.type!==p.string&&this.unexpected(),t.source=this.parseExprAtom(),this.parseMaybeImportAttributes(t),this.semicolon(),this.finishNode(t,\"ExportAllDeclaration\")},A.parseDynamicImport=function(t){if(this.next(),t.source=this.parseMaybeAssign(),this.eat(p.comma)){var e=this.parseExpression();t.arguments=[e]}if(!this.eat(p.parenR)){var s=this.start;this.eat(p.comma)&&this.eat(p.parenR)?this.raiseRecoverable(s,\"Trailing comma is not allowed in import()\"):this.unexpected(s)}return this.finishNode(t,\"ImportExpression\")},A.parseExport=function(t,e){var s=this.lookahead();if(this.ts_eatWithState(p._import,2,s)){this.ts_isContextual(_.type)&&61!==this.lookaheadCharCode()?(t.importKind=\"type\",this.importOrExportOuterKind=\"type\",this.next()):(t.importKind=\"value\",this.importOrExportOuterKind=\"value\");var i=this.tsParseImportEqualsDeclaration(t,!0);return this.importOrExportOuterKind=void 0,i}if(this.ts_eatWithState(p.eq,2,s)){var r=t;return r.expression=this.parseExpression(),this.semicolon(),this.importOrExportOuterKind=void 0,this.finishNode(r,\"TSExportAssignment\")}if(this.ts_eatContextualWithState(\"as\",2,s)){var a=t;return this.expectContextual(\"namespace\"),a.id=this.parseIdent(),this.semicolon(),this.importOrExportOuterKind=void 0,this.finishNode(a,\"TSNamespaceExportDeclaration\")}if(this.ts_isContextualWithState(s,_.type)&&this.lookahead(2).type===p.braceL?(this.next(),this.importOrExportOuterKind=\"type\",t.exportKind=\"type\"):(this.importOrExportOuterKind=\"value\",t.exportKind=\"value\"),this.next(),this.eat(p.star))return this.parseExportAllDeclaration(t,e);if(this.eat(p._default))return this.checkExport(e,\"default\",this.lastTokStart),t.declaration=this.parseExportDefaultDeclaration(),this.finishNode(t,\"ExportDefaultDeclaration\");if(this.shouldParseExportStatement())t.declaration=this.parseExportDeclaration(t),\"VariableDeclaration\"===t.declaration.type?this.checkVariableExport(e,t.declaration.declarations):this.checkExport(e,t.declaration.id,t.declaration.id.start),t.specifiers=[],t.source=null;else{if(t.declaration=null,t.specifiers=this.parseExportSpecifiers(e),this.eatContextual(\"from\"))this.type!==p.string&&this.unexpected(),t.source=this.parseExprAtom(),this.parseMaybeImportAttributes(t);else{for(var n,o=c(t.specifiers);!(n=o()).done;){var h=n.value;this.checkUnreserved(h.local),this.checkLocalExport(h.local),\"Literal\"===h.local.type&&this.raise(h.local.start,\"A string literal cannot be used as an exported binding without `from`.\")}t.source=null}this.semicolon()}return this.finishNode(t,\"ExportNamedDeclaration\")},A.checkExport=function(t,e,s){t&&(\"string\"!=typeof e&&(e=\"Identifier\"===e.type?e.name:e.value),t[e]=!0)},A.parseMaybeDefault=function(e,s,i){var r=t.prototype.parseMaybeDefault.call(this,e,s,i);return\"AssignmentPattern\"===r.type&&r.typeAnnotation&&r.right.start<r.typeAnnotation.start&&this.raise(r.typeAnnotation.start,b.TypeAnnotationAfterAssign),r},A.typeCastToParameter=function(t){return t.expression.typeAnnotation=t.typeAnnotation,this.resetEndLocation(t.expression,t.typeAnnotation.end),t.expression},A.toAssignableList=function(e,s){for(var i=0;i<e.length;i++){var r=e[i];\"TSTypeCastExpression\"===(null==r?void 0:r.type)&&(e[i]=this.typeCastToParameter(r))}return t.prototype.toAssignableList.call(this,e,s)},A.reportReservedArrowTypeParam=function(t){},A.parseExprAtom=function(e,s,i){if(this.type===_.jsxText)return this.jsx_parseText();if(this.type===_.jsxTagStart)return this.jsx_parseElement();if(this.type===_.at)return this.parseDecorators(),this.parseExprAtom();if(q(this.type)){var r=this.potentialArrowAt===this.start,a=this.start,n=this.startLoc,o=this.containsEsc,h=this.parseIdent(!1);if(this.options.ecmaVersion>=8&&!o&&\"async\"===h.name&&!this.canInsertSemicolon()&&this.eat(p._function))return this.overrideContext(M.f_expr),this.parseFunction(this.startNodeAt(a,n),0,!1,!0,s);if(r&&!this.canInsertSemicolon()){if(this.eat(p.arrow))return this.parseArrowExpression(this.startNodeAt(a,n),[h],!1,s);if(this.options.ecmaVersion>=8&&\"async\"===h.name&&this.type===p.name&&!o&&(!this.potentialArrowInForAwait||\"of\"!==this.value||this.containsEsc))return h=this.parseIdent(!1),!this.canInsertSemicolon()&&this.eat(p.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAt(a,n),[h],!0,s)}return h}return t.prototype.parseExprAtom.call(this,e,s,i)},A.parseExprAtomDefault=function(){if(q(this.type)){var t=this.potentialArrowAt===this.start,e=this.containsEsc,s=this.parseIdent();if(!e&&\"async\"===s.name&&!this.canInsertSemicolon()){var i=this.type;if(i===p._function)return this.next(),this.parseFunction(this.startNodeAtNode(s),void 0,!0,!0);if(q(i)){if(61===this.lookaheadCharCode()){var r=this.parseIdent(!1);return!this.canInsertSemicolon()&&this.eat(p.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAtNode(s),[r],!0)}return s}}return t&&this.match(p.arrow)&&!this.canInsertSemicolon()?(this.next(),this.parseArrowExpression(this.startNodeAtNode(s),[s],!1)):s}this.unexpected()},A.parseIdentNode=function(){var e=this.startNode();return U(this.type)?(e.name=this.value,e):t.prototype.parseIdentNode.call(this)},A.parseVarStatement=function(e,s,i){void 0===i&&(i=!1);var r=this.isAmbientContext;this.next(),t.prototype.parseVar.call(this,e,!1,s,i||r),this.semicolon();var a=this.finishNode(e,\"VariableDeclaration\");if(!r)return a;for(var n,o=c(a.declarations);!(n=o()).done;){var h=n.value,p=h.init;p&&(\"const\"!==s||h.id.typeAnnotation?this.raise(p.start,b.InitializerNotAllowedInAmbientContext):\"StringLiteral\"!==p.type&&\"BooleanLiteral\"!==p.type&&\"NumericLiteral\"!==p.type&&\"BigIntLiteral\"!==p.type&&(\"TemplateLiteral\"!==p.type||p.expressions.length>0)&&!L(p)&&this.raise(p.start,b.ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference))}return a},A.parseStatement=function(e,s,i){if(this.match(_.at)&&this.parseDecorators(!0),this.match(p._const)&&this.isLookaheadContextual(\"enum\")){var r=this.startNode();return this.expect(p._const),this.tsParseEnumDeclaration(r,{const:!0})}if(this.ts_isContextual(_.enum))return this.tsParseEnumDeclaration(this.startNode());if(this.ts_isContextual(_.interface)){var a=this.tsParseInterfaceDeclaration(this.startNode());if(a)return a}return t.prototype.parseStatement.call(this,e,s,i)},A.parseAccessModifier=function(){return this.tsParseModifier([\"public\",\"protected\",\"private\"])},A.parsePostMemberNameModifiers=function(t){this.eat(p.question)&&(t.optional=!0),t.readonly&&this.match(p.parenL)&&this.raise(t.start,b.ClassMethodHasReadonly),t.declare&&this.match(p.parenL)&&this.raise(t.start,b.ClassMethodHasDeclare)},A.parseExpressionStatement=function(e,s){return(\"Identifier\"===s.type?this.tsParseExpressionStatement(e,s):void 0)||t.prototype.parseExpressionStatement.call(this,e,s)},A.shouldParseExportStatement=function(){return!!this.tsIsDeclarationStart()||!!this.match(_.at)||t.prototype.shouldParseExportStatement.call(this)},A.parseConditional=function(t,e,s,i,r){if(this.eat(p.question)){var a=this.startNodeAt(e,s);return a.test=t,a.consequent=this.parseMaybeAssign(),this.expect(p.colon),a.alternate=this.parseMaybeAssign(i),this.finishNode(a,\"ConditionalExpression\")}return t},A.parseMaybeConditional=function(t,e){var s=this,i=this.start,r=this.startLoc,a=this.parseExprOps(t,e);if(this.checkExpressionErrors(e))return a;if(!this.maybeInArrowParameters||!this.match(p.question))return this.parseConditional(a,i,r,t,e);var n=this.tryParse(function(){return s.parseConditional(a,i,r,t,e)});return n.node?(n.error&&this.setLookaheadState(n.failState),n.node):(n.error&&this.setOptionalParametersError(e,n.error),a)},A.parseParenItem=function(e){var s=this.start,i=this.startLoc;if(e=t.prototype.parseParenItem.call(this,e),this.eat(p.question)&&(e.optional=!0,this.resetEndLocation(e)),this.match(p.colon)){var r=this.startNodeAt(s,i);return r.expression=e,r.typeAnnotation=this.tsParseTypeAnnotation(),this.finishNode(r,\"TSTypeCastExpression\")}return e},A.parseExportDeclaration=function(t){var e=this;if(!this.isAmbientContext&&this.ts_isContextual(_.declare))return this.tsInAmbientContext(function(){return e.parseExportDeclaration(t)});var s=this.start,i=this.startLoc,r=this.eatContextual(\"declare\");!r||!this.ts_isContextual(_.declare)&&this.shouldParseExportStatement()||this.raise(this.start,b.ExpectedAmbientAfterExportDeclare);var a=q(this.type)&&this.tsTryParseExportDeclaration()||this.parseStatement(null);return a?((\"TSInterfaceDeclaration\"===a.type||\"TSTypeAliasDeclaration\"===a.type||r)&&(t.exportKind=\"type\"),r&&(this.resetStartLocation(a,s,i),a.declare=!0),a):null},A.parseClassId=function(e,s){if(s||!this.isContextual(\"implements\")){t.prototype.parseClassId.call(this,e,s);var i=this.tsTryParseTypeParameters(this.tsParseInOutModifiers.bind(this));i&&(e.typeParameters=i)}},A.parseClassPropertyAnnotation=function(t){t.optional||(\"!\"===this.value&&this.eat(p.prefix)?t.definite=!0:this.eat(p.question)&&(t.optional=!0));var e=this.tsTryParseTypeAnnotation();e&&(t.typeAnnotation=e)},A.parseClassField=function(e){if(\"PrivateIdentifier\"===e.key.type)e.abstract&&this.raise(e.start,b.PrivateElementHasAbstract),e.accessibility&&this.raise(e.start,b.PrivateElementHasAccessibility({modifier:e.accessibility})),this.parseClassPropertyAnnotation(e);else if(this.parseClassPropertyAnnotation(e),this.isAmbientContext&&(!e.readonly||e.typeAnnotation)&&this.match(p.eq)&&this.raise(this.start,b.DeclareClassFieldHasInitializer),e.abstract&&this.match(p.eq)){var s=e.key;this.raise(this.start,b.AbstractPropertyHasInitializer({propertyName:\"Identifier\"!==s.type||e.computed?\"[\"+this.input.slice(s.start,s.end)+\"]\":s.name}))}return t.prototype.parseClassField.call(this,e)},A.parseClassMethod=function(t,e,s,i){var r=\"constructor\"===t.kind,a=\"PrivateIdentifier\"===t.key.type,n=this.tsTryParseTypeParameters();a?(n&&(t.typeParameters=n),t.accessibility&&this.raise(t.start,b.PrivateMethodsHasAccessibility({modifier:t.accessibility}))):n&&r&&this.raise(n.start,b.ConstructorHasTypeParameters);var o=t.declare,h=t.kind;!(void 0!==o&&o)||\"get\"!==h&&\"set\"!==h||this.raise(t.start,b.DeclareAccessor({kind:h})),n&&(t.typeParameters=n);var p=t.key;\"constructor\"===t.kind?(e&&this.raise(p.start,\"Constructor can't be a generator\"),s&&this.raise(p.start,\"Constructor can't be an async method\")):t.static&&P(t,\"prototype\")&&this.raise(p.start,\"Classes may not have a static property named prototype\");var c=t.value=this.parseMethod(e,s,i,!0,t);return\"get\"===t.kind&&0!==c.params.length&&this.raiseRecoverable(c.start,\"getter should have no params\"),\"set\"===t.kind&&1!==c.params.length&&this.raiseRecoverable(c.start,\"setter should have exactly one param\"),\"set\"===t.kind&&\"RestElement\"===c.params[0].type&&this.raiseRecoverable(c.params[0].start,\"Setter cannot use rest params\"),this.finishNode(t,\"MethodDefinition\")},A.isClassMethod=function(){return this.match(p.relational)},A.parseClassElement=function(e){var s=this;if(this.eat(p.semi))return null;var i,r=this.options.ecmaVersion,a=this.startNode(),n=\"\",o=!1,h=!1,c=\"method\",l=[\"declare\",\"private\",\"public\",\"protected\",\"accessor\",\"override\",\"abstract\",\"readonly\",\"static\"],u=this.tsParseModifiers({modified:a,allowedModifiers:l,disallowedModifiers:[\"in\",\"out\"],stopOnStartOfClassStaticBlock:!0,errorTemplate:b.InvalidModifierOnTypeParameterPositions});i=Boolean(u.static);var d=function(){if(!s.tsIsStartOfStaticBlocks()){var u=s.tsTryParseIndexSignature(a);if(u)return a.abstract&&s.raise(a.start,b.IndexSignatureHasAbstract),a.accessibility&&s.raise(a.start,b.IndexSignatureHasAccessibility({modifier:a.accessibility})),a.declare&&s.raise(a.start,b.IndexSignatureHasDeclare),a.override&&s.raise(a.start,b.IndexSignatureHasOverride),u;if(!s.inAbstractClass&&a.abstract&&s.raise(a.start,b.NonAbstractClassHasAbstractMethod),a.override&&e&&s.raise(a.start,b.OverrideNotInSubClass),a.static=i,i&&(s.isClassElementNameStart()||s.type===p.star||(n=\"static\")),!n&&r>=8&&s.eatContextual(\"async\")&&(!s.isClassElementNameStart()&&s.type!==p.star||s.canInsertSemicolon()?n=\"async\":h=!0),!n&&(r>=9||!h)&&s.eat(p.star)&&(o=!0),!n&&!h&&!o){var d=s.value;(s.eatContextual(\"get\")||s.eatContextual(\"set\"))&&(s.isClassElementNameStart()?c=d:n=d)}if(n?(a.computed=!1,a.key=s.startNodeAt(s.lastTokStart,s.lastTokStartLoc),a.key.name=n,s.finishNode(a.key,\"Identifier\")):s.parseClassElementName(a),s.parsePostMemberNameModifiers(a),s.isClassMethod()||r<13||s.type===p.parenL||\"method\"!==c||o||h){var m=!a.static&&P(a,\"constructor\"),f=m&&e;m&&\"method\"!==c&&s.raise(a.key.start,\"Constructor can't have get/set modifier\"),a.kind=m?\"constructor\":c,s.parseClassMethod(a,o,h,f)}else s.parseClassField(a);return a}if(s.next(),s.next(),s.tsHasSomeModifiers(a,l)&&s.raise(s.start,b.StaticBlockCannotHaveModifier),r>=13)return t.prototype.parseClassStaticBlock.call(s,a),a};return a.declare?this.tsInAmbientContext(d):d(),a},A.isClassElementNameStart=function(){return!!this.tsIsIdentifier()||t.prototype.isClassElementNameStart.call(this)},A.parseClassSuper=function(e){t.prototype.parseClassSuper.call(this,e),e.superClass&&(this.tsMatchLeftRelational()||this.match(p.bitShift))&&(e.superTypeParameters=this.tsParseTypeArgumentsInExpression()),this.eatContextual(\"implements\")&&(e.implements=this.tsParseHeritageClause(\"implements\"))},A.parseFunctionParams=function(e){var s=this.tsTryParseTypeParameters();s&&(e.typeParameters=s),t.prototype.parseFunctionParams.call(this,e)},A.parseVarId=function(e,s){t.prototype.parseVarId.call(this,e,s),\"Identifier\"===e.id.type&&!this.hasPrecedingLineBreak()&&\"!\"===this.value&&this.eat(p.prefix)&&(e.definite=!0);var i=this.tsTryParseTypeAnnotation();i&&(e.id.typeAnnotation=i,this.resetEndLocation(e.id))},A.parseArrowExpression=function(t,e,s,i){this.match(p.colon)&&(t.returnType=this.tsParseTypeAnnotation());var r=this.yieldPos,a=this.awaitPos,n=this.awaitIdentPos;this.enterScope(16|w(s,!1)),this.initFunction(t);var o=this.maybeInArrowParameters;return this.options.ecmaVersion>=8&&(t.async=!!s),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.maybeInArrowParameters=!0,t.params=this.toAssignableList(e,!0),this.maybeInArrowParameters=!1,this.parseFunctionBody(t,!0,!1,i),this.yieldPos=r,this.awaitPos=a,this.awaitIdentPos=n,this.maybeInArrowParameters=o,this.finishNode(t,\"ArrowFunctionExpression\")},A.parseMaybeAssignOrigin=function(t,e,s){if(this.isContextual(\"yield\")){if(this.inGenerator)return this.parseYield(t);this.exprAllowed=!1}var i=!1,r=-1,a=-1,n=-1;e?(r=e.parenthesizedAssign,a=e.trailingComma,n=e.doubleProto,e.parenthesizedAssign=e.trailingComma=-1):(e=new T,i=!0);var o=this.start,h=this.startLoc;(this.type===p.parenL||q(this.type))&&(this.potentialArrowAt=this.start,this.potentialArrowInForAwait=\"await\"===t);var c=this.parseMaybeConditional(t,e);if(s&&(c=s.call(this,c,o,h)),this.type.isAssign){var l=this.startNodeAt(o,h);return l.operator=this.value,this.type===p.eq&&(c=this.toAssignable(c,!0,e)),i||(e.parenthesizedAssign=e.trailingComma=e.doubleProto=-1),e.shorthandAssign>=c.start&&(e.shorthandAssign=-1),this.type===p.eq?this.checkLValPattern(c):this.checkLValSimple(c),l.left=c,this.next(),l.right=this.parseMaybeAssign(t),n>-1&&(e.doubleProto=n),this.finishNode(l,\"AssignmentExpression\")}return i&&this.checkExpressionErrors(e,!0),r>-1&&(e.parenthesizedAssign=r),a>-1&&(e.trailingComma=a),c},A.parseMaybeAssign=function(t,e,s){var i,r,a,o,h,p,c,l,u,d,m,f=this;if(this.matchJsx(\"jsxTagStart\")||this.tsMatchLeftRelational()){if(l=this.cloneCurLookaheadState(),!(u=this.tryParse(function(){return f.parseMaybeAssignOrigin(t,e,s)},l)).error)return u.node;var y=this.context,x=y[y.length-1];x===n.tokContexts.tc_oTag&&y[y.length-2]===n.tokContexts.tc_expr?(y.pop(),y.pop()):x!==n.tokContexts.tc_oTag&&x!==n.tokContexts.tc_expr||y.pop()}if(!(null!=(i=u)&&i.error||this.tsMatchLeftRelational()))return this.parseMaybeAssignOrigin(t,e,s);l&&!this.compareLookaheadState(l,this.getCurLookaheadState())||(l=this.cloneCurLookaheadState());var T=this.tryParse(function(i){var r,a;m=f.tsParseTypeParameters();var n=f.parseMaybeAssignOrigin(t,e,s);return(\"ArrowFunctionExpression\"!==n.type||null!=(r=n.extra)&&r.parenthesized)&&i(),0!==(null==(a=m)?void 0:a.params.length)&&f.resetStartLocationFromNode(n,m),n.typeParameters=m,n},l);if(!T.error&&!T.aborted)return m&&this.reportReservedArrowTypeParam(m),T.node;if(!u&&(k(!0),!(d=this.tryParse(function(){return f.parseMaybeAssignOrigin(t,e,s)},l)).error))return d.node;if(null!=(r=u)&&r.node)return this.setLookaheadState(u.failState),u.node;if(T.node)return this.setLookaheadState(T.failState),m&&this.reportReservedArrowTypeParam(m),T.node;if(null!=(a=d)&&a.node)return this.setLookaheadState(d.failState),d.node;if(null!=(o=u)&&o.thrown)throw u.error;if(T.thrown)throw T.error;if(null!=(h=d)&&h.thrown)throw d.error;throw(null==(p=u)?void 0:p.error)||T.error||(null==(c=d)?void 0:c.error)},A.parseAssignableListItem=function(t){for(var e=[];this.match(_.at);)e.push(this.parseDecorator());var s,i=this.start,r=this.startLoc,a=!1,n=!1;if(void 0!==t){var o={};this.tsParseModifiers({modified:o,allowedModifiers:[\"public\",\"private\",\"protected\",\"override\",\"readonly\"]}),s=o.accessibility,n=o.override,a=o.readonly,!1===t&&(s||a||n)&&this.raise(r.start,b.UnexpectedParameterModifier)}var h=this.parseMaybeDefault(i,r);this.parseBindingListItem(h);var p=this.parseMaybeDefault(h.start,h.loc,h);if(e.length&&(p.decorators=e),s||a||n){var c=this.startNodeAt(i,r);return s&&(c.accessibility=s),a&&(c.readonly=a),n&&(c.override=n),\"Identifier\"!==p.type&&\"AssignmentPattern\"!==p.type&&this.raise(c.start,b.UnsupportedParameterPropertyKind),c.parameter=p,this.finishNode(c,\"TSParameterProperty\")}return p},A.checkLValInnerPattern=function(e,s,i){void 0===s&&(s=0),\"TSParameterProperty\"===e.type?this.checkLValInnerPattern(e.parameter,s,i):t.prototype.checkLValInnerPattern.call(this,e,s,i)},A.parseBindingListItem=function(t){this.eat(p.question)&&(\"Identifier\"===t.type||this.isAmbientContext||this.inType||this.raise(t.start,b.PatternIsOptional),t.optional=!0);var e=this.tsTryParseTypeAnnotation();return e&&(t.typeAnnotation=e),this.resetEndLocation(t),t},A.isAssignable=function(t,e){var s=this;switch(t.type){case\"TSTypeCastExpression\":return this.isAssignable(t.expression,e);case\"TSParameterProperty\":case\"Identifier\":case\"ObjectPattern\":case\"ArrayPattern\":case\"AssignmentPattern\":case\"RestElement\":return!0;case\"ObjectExpression\":var i=t.properties.length-1;return t.properties.every(function(t,e){return\"ObjectMethod\"!==t.type&&(e===i||\"SpreadElement\"!==t.type)&&s.isAssignable(t)});case\"Property\":case\"ObjectProperty\":return this.isAssignable(t.value);case\"SpreadElement\":return this.isAssignable(t.argument);case\"ArrayExpression\":return t.elements.every(function(t){return null===t||s.isAssignable(t)});case\"AssignmentExpression\":return\"=\"===t.operator;case\"ParenthesizedExpression\":return this.isAssignable(t.expression);case\"MemberExpression\":case\"OptionalMemberExpression\":return!e;default:return!1}},A.toAssignable=function(e,s,i){switch(void 0===s&&(s=!1),void 0===i&&(i=new T),e.type){case\"ParenthesizedExpression\":return this.toAssignableParenthesizedExpression(e,s,i);case\"TSAsExpression\":case\"TSSatisfiesExpression\":case\"TSNonNullExpression\":case\"TSTypeAssertion\":return s||this.raise(e.start,b.UnexpectedTypeCastInParameter),this.toAssignable(e.expression,s,i);case\"MemberExpression\":break;case\"AssignmentExpression\":return s||\"TSTypeCastExpression\"!==e.left.type||(e.left=this.typeCastToParameter(e.left)),t.prototype.toAssignable.call(this,e,s,i);case\"TSTypeCastExpression\":return this.typeCastToParameter(e);default:return t.prototype.toAssignable.call(this,e,s,i)}return e},A.toAssignableParenthesizedExpression=function(e,s,i){switch(e.expression.type){case\"TSAsExpression\":case\"TSSatisfiesExpression\":case\"TSNonNullExpression\":case\"TSTypeAssertion\":case\"ParenthesizedExpression\":return this.toAssignable(e.expression,s,i);default:return t.prototype.toAssignable.call(this,e,s,i)}},A.curPosition=function(){if(this.options.locations){var e=t.prototype.curPosition.call(this);return Object.defineProperty(e,\"offset\",{get:function(){return function(t){var e=new i.Position(this.line,this.column+t);return e.index=this.index+t,e}}}),e.index=this.pos,e}},A.parseBindingAtom=function(){return this.type===p._this?this.parseIdent(!0):t.prototype.parseBindingAtom.call(this)},A.shouldParseArrow=function(t){var e,s=this;if(e=this.match(p.colon)?t.every(function(t){return s.isAssignable(t,!0)}):!this.canInsertSemicolon()){if(this.match(p.colon)){var i=this.tryParse(function(t){var e=s.tsParseTypeOrTypePredicateAnnotation(p.colon);return!s.canInsertSemicolon()&&s.match(p.arrow)||t(),e});if(i.aborted)return this.shouldParseArrowReturnType=void 0,!1;i.thrown||(i.error&&this.setLookaheadState(i.failState),this.shouldParseArrowReturnType=i.node)}return!!this.match(p.arrow)||(this.shouldParseArrowReturnType=void 0,!1)}return this.shouldParseArrowReturnType=void 0,e},A.parseParenArrowList=function(t,e,s,i){var r=this.startNodeAt(t,e);return r.returnType=this.shouldParseArrowReturnType,this.shouldParseArrowReturnType=void 0,this.parseArrowExpression(r,s,!1,i)},A.parseParenAndDistinguishExpression=function(t,e){var s,i=this.start,r=this.startLoc,a=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){var n=this.maybeInArrowParameters;this.maybeInArrowParameters=!0,this.next();var o,h=this.start,c=this.startLoc,l=[],u=!0,d=!1,m=new T,f=this.yieldPos,y=this.awaitPos;for(this.yieldPos=0,this.awaitPos=0;this.type!==p.parenR;){if(u?u=!1:this.expect(p.comma),a&&this.afterTrailingComma(p.parenR,!0)){d=!0;break}if(this.type===p.ellipsis){o=this.start,l.push(this.parseParenItem(this.parseRestBinding())),this.type===p.comma&&this.raise(this.start,\"Comma is not permitted after the rest element\");break}l.push(this.parseMaybeAssign(e,m,this.parseParenItem))}var x=this.lastTokEnd,v=this.lastTokEndLoc;if(this.expect(p.parenR),this.maybeInArrowParameters=n,t&&this.shouldParseArrow(l)&&this.eat(p.arrow))return this.checkPatternErrors(m,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=f,this.awaitPos=y,this.parseParenArrowList(i,r,l,e);l.length&&!d||this.unexpected(this.lastTokStart),o&&this.unexpected(o),this.checkExpressionErrors(m,!0),this.yieldPos=f||this.yieldPos,this.awaitPos=y||this.awaitPos,l.length>1?((s=this.startNodeAt(h,c)).expressions=l,this.finishNodeAt(s,\"SequenceExpression\",x,v)):s=l[0]}else s=this.parseParenExpression();if(this.options.preserveParens){var P=this.startNodeAt(i,r);return P.expression=s,this.finishNode(P,\"ParenthesizedExpression\")}return s},A.parseTaggedTemplateExpression=function(t,e,s,i){var r=this.startNodeAt(e,s);return r.tag=t,r.quasi=this.parseTemplate({isTagged:!0}),i&&this.raise(e,\"Tagged Template Literals are not allowed in optionalChain.\"),this.finishNode(r,\"TaggedTemplateExpression\")},A.shouldParseAsyncArrow=function(){var t=this;if(!this.match(p.colon))return!this.canInsertSemicolon()&&this.eat(p.arrow);var e=this.tryParse(function(e){var s=t.tsParseTypeOrTypePredicateAnnotation(p.colon);return!t.canInsertSemicolon()&&t.match(p.arrow)||e(),s});return e.aborted?(this.shouldParseAsyncArrowReturnType=void 0,!1):e.thrown?void 0:(e.error&&this.setLookaheadState(e.failState),this.shouldParseAsyncArrowReturnType=e.node,!this.canInsertSemicolon()&&this.eat(p.arrow))},A.parseSubscriptAsyncArrow=function(t,e,s,i){var r=this.startNodeAt(t,e);return r.returnType=this.shouldParseAsyncArrowReturnType,this.shouldParseAsyncArrowReturnType=void 0,this.parseArrowExpression(r,s,!0,i)},A.parseExprList=function(t,e,s,i){for(var r=[],a=!0;!this.eat(t);){if(a)a=!1;else if(this.expect(p.comma),e&&this.afterTrailingComma(t))break;var n=void 0;s&&this.type===p.comma?n=null:this.type===p.ellipsis?(n=this.parseSpread(i),i&&this.type===p.comma&&i.trailingComma<0&&(i.trailingComma=this.start)):n=this.parseMaybeAssign(!1,i,this.parseParenItem),r.push(n)}return r},A.parseSubscript=function(t,e,s,i,r,a,n){var o=this,h=a;if(!this.hasPrecedingLineBreak()&&\"!\"===this.value&&this.match(p.prefix)){this.exprAllowed=!1,this.next();var c=this.startNodeAt(e,s);return c.expression=t,t=this.finishNode(c,\"TSNonNullExpression\")}var l=!1;if(this.match(p.questionDot)&&60===this.lookaheadCharCode()){if(i)return t;t.optional=!0,h=l=!0,this.next()}if(this.tsMatchLeftRelational()||this.match(p.bitShift)){var u,d=this.tsTryParseAndCatch(function(){if(!i&&o.atPossibleAsyncArrow(t)){var r=o.tsTryParseGenericAsyncArrowFunction(e,s,n);if(r)return t=r}var a=o.tsParseTypeArgumentsInExpression();if(!a)return t;if(l&&!o.match(p.parenL))return u=o.curPosition(),t;if(B(o.type)||o.type===p.backQuote){var c=o.parseTaggedTemplateExpression(t,e,s,h);return c.typeParameters=a,c}if(!i&&o.eat(p.parenL)){var d=new T,m=o.startNodeAt(e,s);return m.callee=t,m.arguments=o.parseExprList(p.parenR,o.options.ecmaVersion>=8,!1,d),o.tsCheckForInvalidTypeCasts(m.arguments),m.typeParameters=a,h&&(m.optional=l),o.checkExpressionErrors(d,!0),t=o.finishNode(m,\"CallExpression\")}var f=o.type;if(!(o.tsMatchRightRelational()||f===p.bitShift||f!==p.parenL&&(y=f,Boolean(y.startsExpr))&&!o.hasPrecedingLineBreak())){var y,x=o.startNodeAt(e,s);return x.expression=t,x.typeParameters=a,o.finishNode(x,\"TSInstantiationExpression\")}});if(u&&this.unexpected(u),d)return\"TSInstantiationExpression\"===d.type&&(this.match(p.dot)||this.match(p.questionDot)&&40!==this.lookaheadCharCode())&&this.raise(this.start,b.InvalidPropertyAccessAfterInstantiationExpression),t=d}var m=this.options.ecmaVersion>=11,f=m&&this.eat(p.questionDot);i&&f&&this.raise(this.lastTokStart,\"Optional chaining cannot appear in the callee of new expressions\");var y=this.eat(p.bracketL);if(y||f&&this.type!==p.parenL&&this.type!==p.backQuote||this.eat(p.dot)){var x=this.startNodeAt(e,s);x.object=t,y?(x.property=this.parseExpression(),this.expect(p.bracketR)):x.property=this.type===p.privateId&&\"Super\"!==t.type?this.parsePrivateIdent():this.parseIdent(\"never\"!==this.options.allowReserved),x.computed=!!y,m&&(x.optional=f),t=this.finishNode(x,\"MemberExpression\")}else if(!i&&this.eat(p.parenL)){var v=this.maybeInArrowParameters;this.maybeInArrowParameters=!0;var P=new T,g=this.yieldPos,A=this.awaitPos,S=this.awaitIdentPos;this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0;var C=this.parseExprList(p.parenR,this.options.ecmaVersion>=8,!1,P);if(r&&!f&&this.shouldParseAsyncArrow())this.checkPatternErrors(P,!1),this.checkYieldAwaitInDefaultParams(),this.awaitIdentPos>0&&this.raise(this.awaitIdentPos,\"Cannot use 'await' as identifier inside an async function\"),this.yieldPos=g,this.awaitPos=A,this.awaitIdentPos=S,t=this.parseSubscriptAsyncArrow(e,s,C,n);else{this.checkExpressionErrors(P,!0),this.yieldPos=g||this.yieldPos,this.awaitPos=A||this.awaitPos,this.awaitIdentPos=S||this.awaitIdentPos;var E=this.startNodeAt(e,s);E.callee=t,E.arguments=C,m&&(E.optional=f),t=this.finishNode(E,\"CallExpression\")}this.maybeInArrowParameters=v}else if(this.type===p.backQuote){(f||h)&&this.raise(this.start,\"Optional chaining cannot appear in the tag of tagged template expressions\");var k=this.startNodeAt(e,s);k.tag=t,k.quasi=this.parseTemplate({isTagged:!0}),t=this.finishNode(k,\"TaggedTemplateExpression\")}return t},A.parseGetterSetter=function(t){t.kind=t.key.name,this.parsePropertyName(t),t.value=this.parseMethod(!1);var e=\"get\"===t.kind?0:1,s=t.value.params[0],i=s&&this.isThisParam(s);t.value.params.length!==(e=i?e+1:e)?this.raiseRecoverable(t.value.start,\"get\"===t.kind?\"getter should have no params\":\"setter should have exactly one param\"):\"set\"===t.kind&&\"RestElement\"===t.value.params[0].type&&this.raiseRecoverable(t.value.params[0].start,\"Setter cannot use rest params\")},A.parseProperty=function(e,s){if(!e){var i=[];if(this.match(_.at))for(;this.match(_.at);)i.push(this.parseDecorator());var r=t.prototype.parseProperty.call(this,e,s);return\"SpreadElement\"===r.type&&i.length&&this.raise(r.start,\"Decorators can't be used with SpreadElement\"),i.length&&(r.decorators=i,i=[]),r}return t.prototype.parseProperty.call(this,e,s)},A.parseCatchClauseParam=function(){var t=this.parseBindingAtom(),e=\"Identifier\"===t.type;this.enterScope(e?32:0),this.checkLValPattern(t,e?4:2);var s=this.tsTryParseTypeAnnotation();return s&&(t.typeAnnotation=s,this.resetEndLocation(t)),this.expect(p.parenR),t},A.parseClass=function(t,e){var s=this.inAbstractClass;this.inAbstractClass=!!t.abstract;try{this.next(),this.takeDecorators(t);var i=this.strict;this.strict=!0,this.parseClassId(t,e),this.parseClassSuper(t);var r=this.enterClassBody(),a=this.startNode(),n=!1;a.body=[];var o=[];for(this.expect(p.braceL);this.type!==p.braceR;)if(this.match(_.at))o.push(this.parseDecorator());else{var h=this.parseClassElement(null!==t.superClass);o.length&&(h.decorators=o,this.resetStartLocationFromNode(h,o[0]),o=[]),h&&(a.body.push(h),\"MethodDefinition\"===h.type&&\"constructor\"===h.kind&&\"FunctionExpression\"===h.value.type?(n&&this.raiseRecoverable(h.start,\"Duplicate constructor in the same class\"),n=!0,h.decorators&&h.decorators.length>0&&this.raise(h.start,\"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?\")):h.key&&\"PrivateIdentifier\"===h.key.type&&v(r,h)&&this.raiseRecoverable(h.key.start,\"Identifier '#\"+h.key.name+\"' has already been declared\"))}return this.strict=i,this.next(),o.length&&this.raise(this.start,\"Decorators must be attached to a class element.\"),t.body=this.finishNode(a,\"ClassBody\"),this.exitClassBody(),this.finishNode(t,e?\"ClassDeclaration\":\"ClassExpression\")}finally{this.inAbstractClass=s}},A.parseClassFunctionParams=function(){var t=this.tsTryParseTypeParameters(this.tsParseConstModifier),e=this.parseBindingList(p.parenR,!1,this.options.ecmaVersion>=8,!0);return t&&(e.typeParameters=t),e},A.parseMethod=function(t,e,s,i,r){var a=this.startNode(),n=this.yieldPos,o=this.awaitPos,h=this.awaitIdentPos;if(this.initFunction(a),this.options.ecmaVersion>=6&&(a.generator=t),this.options.ecmaVersion>=8&&(a.async=!!e),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(64|w(e,a.generator)|(s?128:0)),this.expect(p.parenL),a.params=this.parseClassFunctionParams(),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(a,!1,!0,!1,{isClassMethod:i}),this.yieldPos=n,this.awaitPos=o,this.awaitIdentPos=h,r&&r.abstract&&a.body){var c=r.key;this.raise(r.start,b.AbstractMethodHasImplementation({methodName:\"Identifier\"!==c.type||r.computed?\"[\"+this.input.slice(c.start,c.end)+\"]\":c.name}))}return this.finishNode(a,\"FunctionExpression\")},e.parse=function(t,e){if(!1===e.locations)throw new Error(\"You have to enable options.locations while using acorn-typescript\");e.locations=!0;var s=new this(e,t);return r&&(s.isAmbientContext=!0),s.parse()},e.parseExpressionAt=function(t,e,s){if(!1===s.locations)throw new Error(\"You have to enable options.locations while using acorn-typescript\");s.locations=!0;var i=new this(s,t,e);return r&&(i.isAmbientContext=!0),i.nextToken(),i.parseExpression()},A.parseImportSpecifier=function(){if(this.ts_isContextual(_.type)){var e=this.startNode();return e.imported=this.parseModuleExportName(),this.parseTypeOnlyImportExportSpecifier(e,!0,\"type\"===this.importOrExportOuterKind),this.finishNode(e,\"ImportSpecifier\")}var s=t.prototype.parseImportSpecifier.call(this);return s.importKind=\"value\",s},A.parseExportSpecifier=function(e){var s=this.ts_isContextual(_.type);if(!this.match(p.string)&&s){var i=this.startNode();return i.local=this.parseModuleExportName(),this.parseTypeOnlyImportExportSpecifier(i,!1,\"type\"===this.importOrExportOuterKind),this.finishNode(i,\"ExportSpecifier\"),this.checkExport(e,i.exported,i.exported.start),i}var r=t.prototype.parseExportSpecifier.call(this,e);return r.exportKind=\"value\",r},A.parseTypeOnlyImportExportSpecifier=function(e,s,i){var r,a=s?\"imported\":\"local\",n=s?\"local\":\"exported\",o=e[a],h=!1,p=!0,c=o.start;if(this.isContextual(\"as\")){var l=this.parseIdent();if(this.isContextual(\"as\")){var u=this.parseIdent();U(this.type)?(h=!0,o=l,r=s?this.parseIdent():this.parseModuleExportName(),p=!1):(r=u,p=!1)}else U(this.type)?(p=!1,r=s?this.parseIdent():this.parseModuleExportName()):(h=!0,o=l)}else U(this.type)&&(h=!0,s?(o=t.prototype.parseIdent.call(this,!0),this.isContextual(\"as\")||this.checkUnreserved(o)):o=this.parseModuleExportName());h&&i&&this.raise(c,s?b.TypeModifierIsUsedInTypeImports:b.TypeModifierIsUsedInTypeExports),e[a]=o,e[n]=r,e[s?\"importKind\":\"exportKind\"]=h?\"type\":\"value\",p&&this.eatContextual(\"as\")&&(e[n]=s?this.parseIdent():this.parseModuleExportName()),e[n]||(e[n]=this.copyNode(e[a])),s&&this.checkLValSimple(e[n],2)},A.raiseCommonCheck=function(e,s,i){return\"Comma is not permitted after the rest element\"===s?this.isAmbientContext&&this.match(p.comma)&&41===this.lookaheadCharCode()?void this.next():t.prototype.raise.call(this,e,s):i?t.prototype.raiseRecoverable.call(this,e,s):t.prototype.raise.call(this,e,s)},A.raiseRecoverable=function(t,e){return this.raiseCommonCheck(t,e,!0)},A.raise=function(t,e){return this.raiseCommonCheck(t,e,!0)},A.updateContext=function(e){var s=this.type;if(s==p.braceL){var i=this.curContext();i==R.tc_oTag?this.context.push(M.b_expr):i==R.tc_expr?this.context.push(M.b_tmpl):t.prototype.updateContext.call(this,e),this.exprAllowed=!0}else{if(s!==p.slash||e!==_.jsxTagStart)return t.prototype.updateContext.call(this,e);this.context.length-=2,this.context.push(R.tc_cTag),this.exprAllowed=!1}},A.jsx_parseOpeningElementAt=function(t,e){var s=this,i=this.startNodeAt(t,e),r=this.jsx_parseElementName();if(r&&(i.name=r),this.match(p.relational)||this.match(p.bitShift)){var a=this.tsTryParseAndCatch(function(){return s.tsParseTypeArgumentsInExpression()});a&&(i.typeParameters=a)}for(i.attributes=[];this.type!==p.slash&&this.type!==_.jsxTagEnd;)i.attributes.push(this.jsx_parseAttribute());return i.selfClosing=this.eat(p.slash),this.expect(_.jsxTagEnd),this.finishNode(i,r?\"JSXOpeningElement\":\"JSXOpeningFragment\")},A.enterScope=function(e){e===f&&this.importsStack.push([]),t.prototype.enterScope.call(this,e);var s=t.prototype.currentScope.call(this);s.types=[],s.enums=[],s.constEnums=[],s.classes=[],s.exportOnlyBindings=[]},A.exitScope=function(){t.prototype.currentScope.call(this).flags===f&&this.importsStack.pop(),t.prototype.exitScope.call(this)},A.hasImport=function(t,e){var s=this.importsStack.length;if(this.importsStack[s-1].indexOf(t)>-1)return!0;if(!e&&s>1)for(var i=0;i<s-1;i++)if(this.importsStack[i].indexOf(t)>-1)return!0;return!1},A.maybeExportDefined=function(t,e){this.inModule&&1&t.flags&&this.undefinedExports.delete(e)},A.isRedeclaredInScope=function(e,s,i){return!!(0&i)&&(2&i?e.lexical.indexOf(s)>-1||e.functions.indexOf(s)>-1||e.var.indexOf(s)>-1:3&i?e.lexical.indexOf(s)>-1||!t.prototype.treatFunctionsAsVarInScope.call(this,e)&&e.var.indexOf(s)>-1:e.lexical.indexOf(s)>-1&&!(32&e.flags&&e.lexical[0]===s)||!this.treatFunctionsAsVarInScope(e)&&e.functions.indexOf(s)>-1)},A.checkRedeclarationInScope=function(t,e,s,i){this.isRedeclaredInScope(t,e,s)&&this.raise(i,\"Identifier '\"+e+\"' has already been declared.\")},A.declareName=function(e,s,i){if(4096&s)return this.hasImport(e,!0)&&this.raise(i,\"Identifier '\"+e+\"' has already been declared.\"),void this.importsStack[this.importsStack.length-1].push(e);var r=this.currentScope();if(1024&s)return this.maybeExportDefined(r,e),void r.exportOnlyBindings.push(e);t.prototype.declareName.call(this,e,s,i),0&s&&(0&s||(this.checkRedeclarationInScope(r,e,s,i),this.maybeExportDefined(r,e)),r.types.push(e)),256&s&&r.enums.push(e),512&s&&r.constEnums.push(e),128&s&&r.classes.push(e)},A.checkLocalExport=function(e){var s=e.name;if(!this.hasImport(s)){for(var i=this.scopeStack.length-1;i>=0;i--){var r=this.scopeStack[i];if(r.types.indexOf(s)>-1||r.exportOnlyBindings.indexOf(s)>-1)return}t.prototype.checkLocalExport.call(this,e)}},s=e,g=[{key:\"acornTypeScript\",get:function(){return n}}],(m=[{key:\"acornTypeScript\",get:function(){return n}}])&&a(s.prototype,m),g&&a(s,g),Object.defineProperty(s,\"prototype\",{writable:!1}),e}(s);return z}}export{D as default,D as tsPlugin};\n","// Astring is a tiny and fast JavaScript code generator from an ESTree-compliant AST.\n//\n// Astring was written by David Bonnet and released under an MIT license.\n//\n// The Git repository for Astring is available at:\n// https://github.com/davidbonnet/astring.git\n//\n// Please use the GitHub bug tracker to report issues:\n// https://github.com/davidbonnet/astring/issues\n\nconst { stringify } = JSON\n\n/* c8 ignore if */\nif (!String.prototype.repeat) {\n /* c8 ignore next */\n throw new Error(\n 'String.prototype.repeat is undefined, see https://github.com/davidbonnet/astring#installation',\n )\n}\n\n/* c8 ignore if */\nif (!String.prototype.endsWith) {\n /* c8 ignore next */\n throw new Error(\n 'String.prototype.endsWith is undefined, see https://github.com/davidbonnet/astring#installation',\n )\n}\n\nconst OPERATOR_PRECEDENCE = {\n '||': 2,\n '??': 3,\n '&&': 4,\n '|': 5,\n '^': 6,\n '&': 7,\n '==': 8,\n '!=': 8,\n '===': 8,\n '!==': 8,\n '<': 9,\n '>': 9,\n '<=': 9,\n '>=': 9,\n in: 9,\n instanceof: 9,\n '<<': 10,\n '>>': 10,\n '>>>': 10,\n '+': 11,\n '-': 11,\n '*': 12,\n '%': 12,\n '/': 12,\n '**': 13,\n}\n\n// Enables parenthesis regardless of precedence\nexport const NEEDS_PARENTHESES = 17\n\nexport const EXPRESSIONS_PRECEDENCE = {\n // Definitions\n ArrayExpression: 20,\n TaggedTemplateExpression: 20,\n ThisExpression: 20,\n Identifier: 20,\n PrivateIdentifier: 20,\n Literal: 18,\n TemplateLiteral: 20,\n Super: 20,\n SequenceExpression: 20,\n // Operations\n MemberExpression: 19,\n ChainExpression: 19,\n CallExpression: 19,\n NewExpression: 19,\n // Other definitions\n ArrowFunctionExpression: NEEDS_PARENTHESES,\n ClassExpression: NEEDS_PARENTHESES,\n FunctionExpression: NEEDS_PARENTHESES,\n ObjectExpression: NEEDS_PARENTHESES,\n // Other operations\n UpdateExpression: 16,\n UnaryExpression: 15,\n AwaitExpression: 15,\n BinaryExpression: 14,\n LogicalExpression: 13,\n ConditionalExpression: 4,\n AssignmentExpression: 3,\n YieldExpression: 2,\n RestElement: 1,\n}\n\nfunction formatSequence(state, nodes) {\n /*\n Writes into `state` a sequence of `nodes`.\n */\n const { generator } = state\n state.write('(')\n if (nodes != null && nodes.length > 0) {\n generator[nodes[0].type](nodes[0], state)\n const { length } = nodes\n for (let i = 1; i < length; i++) {\n const param = nodes[i]\n state.write(', ')\n generator[param.type](param, state)\n }\n }\n state.write(')')\n}\n\nfunction expressionNeedsParenthesis(state, node, parentNode, isRightHand) {\n const nodePrecedence = state.expressionsPrecedence[node.type]\n if (nodePrecedence === NEEDS_PARENTHESES) {\n return true\n }\n const parentNodePrecedence = state.expressionsPrecedence[parentNode.type]\n if (nodePrecedence !== parentNodePrecedence) {\n // Different node types\n return (\n (!isRightHand &&\n nodePrecedence === 15 &&\n parentNodePrecedence === 14 &&\n parentNode.operator === '**') ||\n nodePrecedence < parentNodePrecedence\n )\n }\n if (nodePrecedence !== 13 && nodePrecedence !== 14) {\n // Not a `LogicalExpression` or `BinaryExpression`\n return false\n }\n if (node.operator === '**' && parentNode.operator === '**') {\n // Exponentiation operator has right-to-left associativity\n return !isRightHand\n }\n if (\n nodePrecedence === 13 &&\n parentNodePrecedence === 13 &&\n (node.operator === '??' || parentNode.operator === '??')\n ) {\n // Nullish coalescing and boolean operators cannot be combined\n return true\n }\n if (isRightHand) {\n // Parenthesis are used if both operators have the same precedence\n return (\n OPERATOR_PRECEDENCE[node.operator] <=\n OPERATOR_PRECEDENCE[parentNode.operator]\n )\n }\n return (\n OPERATOR_PRECEDENCE[node.operator] <\n OPERATOR_PRECEDENCE[parentNode.operator]\n )\n}\n\nfunction formatExpression(state, node, parentNode, isRightHand) {\n /*\n Writes into `state` the provided `node`, adding parenthesis around if the provided `parentNode` needs it. If `node` is a right-hand argument, the provided `isRightHand` parameter should be `true`.\n */\n const { generator } = state\n if (expressionNeedsParenthesis(state, node, parentNode, isRightHand)) {\n state.write('(')\n generator[node.type](node, state)\n state.write(')')\n } else {\n generator[node.type](node, state)\n }\n}\n\nfunction reindent(state, text, indent, lineEnd) {\n /*\n Writes into `state` the `text` string reindented with the provided `indent`.\n */\n const lines = text.split('\\n')\n const end = lines.length - 1\n state.write(lines[0].trim())\n if (end > 0) {\n state.write(lineEnd)\n for (let i = 1; i < end; i++) {\n state.write(indent + lines[i].trim() + lineEnd)\n }\n state.write(indent + lines[end].trim())\n }\n}\n\nfunction formatComments(state, comments, indent, lineEnd) {\n /*\n Writes into `state` the provided list of `comments`, with the given `indent` and `lineEnd` strings.\n Line comments will end with `\"\\n\"` regardless of the value of `lineEnd`.\n Expects to start on a new unindented line.\n */\n const { length } = comments\n for (let i = 0; i < length; i++) {\n const comment = comments[i]\n state.write(indent)\n if (comment.type[0] === 'L') {\n // Line comment\n state.write('// ' + comment.value.trim() + '\\n', comment)\n } else {\n // Block comment\n state.write('/*')\n reindent(state, comment.value, indent, lineEnd)\n state.write('*/' + lineEnd)\n }\n }\n}\n\nfunction hasCallExpression(node) {\n /*\n Returns `true` if the provided `node` contains a call expression and `false` otherwise.\n */\n let currentNode = node\n while (currentNode != null) {\n const { type } = currentNode\n if (type[0] === 'C' && type[1] === 'a') {\n // Is CallExpression\n return true\n } else if (type[0] === 'M' && type[1] === 'e' && type[2] === 'm') {\n // Is MemberExpression\n currentNode = currentNode.object\n } else {\n return false\n }\n }\n}\n\nfunction formatVariableDeclaration(state, node) {\n /*\n Writes into `state` a variable declaration.\n */\n const { generator } = state\n const { declarations } = node\n state.write(node.kind + ' ')\n const { length } = declarations\n if (length > 0) {\n generator.VariableDeclarator(declarations[0], state)\n for (let i = 1; i < length; i++) {\n state.write(', ')\n generator.VariableDeclarator(declarations[i], state)\n }\n }\n}\n\nlet ForInStatement,\n FunctionDeclaration,\n RestElement,\n BinaryExpression,\n ArrayExpression,\n BlockStatement\n\nexport const GENERATOR = {\n /*\n Default generator.\n */\n Program(node, state) {\n const indent = state.indent.repeat(state.indentLevel)\n const { lineEnd, writeComments } = state\n if (writeComments && node.comments != null) {\n formatComments(state, node.comments, indent, lineEnd)\n }\n const statements = node.body\n const { length } = statements\n for (let i = 0; i < length; i++) {\n const statement = statements[i]\n if (writeComments && statement.comments != null) {\n formatComments(state, statement.comments, indent, lineEnd)\n }\n state.write(indent)\n this[statement.type](statement, state)\n state.write(lineEnd)\n }\n if (writeComments && node.trailingComments != null) {\n formatComments(state, node.trailingComments, indent, lineEnd)\n }\n },\n BlockStatement: (BlockStatement = function (node, state) {\n const indent = state.indent.repeat(state.indentLevel++)\n const { lineEnd, writeComments } = state\n const statementIndent = indent + state.indent\n state.write('{')\n const statements = node.body\n if (statements != null && statements.length > 0) {\n state.write(lineEnd)\n if (writeComments && node.comments != null) {\n formatComments(state, node.comments, statementIndent, lineEnd)\n }\n const { length } = statements\n for (let i = 0; i < length; i++) {\n const statement = statements[i]\n if (writeComments && statement.comments != null) {\n formatComments(state, statement.comments, statementIndent, lineEnd)\n }\n state.write(statementIndent)\n this[statement.type](statement, state)\n state.write(lineEnd)\n }\n state.write(indent)\n } else {\n if (writeComments && node.comments != null) {\n state.write(lineEnd)\n formatComments(state, node.comments, statementIndent, lineEnd)\n state.write(indent)\n }\n }\n if (writeComments && node.trailingComments != null) {\n formatComments(state, node.trailingComments, statementIndent, lineEnd)\n }\n state.write('}')\n state.indentLevel--\n }),\n ClassBody: BlockStatement,\n StaticBlock(node, state) {\n state.write('static ')\n this.BlockStatement(node, state)\n },\n EmptyStatement(node, state) {\n state.write(';')\n },\n ExpressionStatement(node, state) {\n const precedence = state.expressionsPrecedence[node.expression.type]\n if (\n precedence === NEEDS_PARENTHESES ||\n (precedence === 3 && node.expression.left.type[0] === 'O')\n ) {\n // Should always have parentheses or is an AssignmentExpression to an ObjectPattern\n state.write('(')\n this[node.expression.type](node.expression, state)\n state.write(')')\n } else {\n this[node.expression.type](node.expression, state)\n }\n state.write(';')\n },\n IfStatement(node, state) {\n state.write('if (')\n this[node.test.type](node.test, state)\n state.write(') ')\n this[node.consequent.type](node.consequent, state)\n if (node.alternate != null) {\n state.write(' else ')\n this[node.alternate.type](node.alternate, state)\n }\n },\n LabeledStatement(node, state) {\n this[node.label.type](node.label, state)\n state.write(': ')\n this[node.body.type](node.body, state)\n },\n BreakStatement(node, state) {\n state.write('break')\n if (node.label != null) {\n state.write(' ')\n this[node.label.type](node.label, state)\n }\n state.write(';')\n },\n ContinueStatement(node, state) {\n state.write('continue')\n if (node.label != null) {\n state.write(' ')\n this[node.label.type](node.label, state)\n }\n state.write(';')\n },\n WithStatement(node, state) {\n state.write('with (')\n this[node.object.type](node.object, state)\n state.write(') ')\n this[node.body.type](node.body, state)\n },\n SwitchStatement(node, state) {\n const indent = state.indent.repeat(state.indentLevel++)\n const { lineEnd, writeComments } = state\n state.indentLevel++\n const caseIndent = indent + state.indent\n const statementIndent = caseIndent + state.indent\n state.write('switch (')\n this[node.discriminant.type](node.discriminant, state)\n state.write(') {' + lineEnd)\n const { cases: occurences } = node\n const { length: occurencesCount } = occurences\n for (let i = 0; i < occurencesCount; i++) {\n const occurence = occurences[i]\n if (writeComments && occurence.comments != null) {\n formatComments(state, occurence.comments, caseIndent, lineEnd)\n }\n if (occurence.test) {\n state.write(caseIndent + 'case ')\n this[occurence.test.type](occurence.test, state)\n state.write(':' + lineEnd)\n } else {\n state.write(caseIndent + 'default:' + lineEnd)\n }\n const { consequent } = occurence\n const { length: consequentCount } = consequent\n for (let i = 0; i < consequentCount; i++) {\n const statement = consequent[i]\n if (writeComments && statement.comments != null) {\n formatComments(state, statement.comments, statementIndent, lineEnd)\n }\n state.write(statementIndent)\n this[statement.type](statement, state)\n state.write(lineEnd)\n }\n }\n state.indentLevel -= 2\n state.write(indent + '}')\n },\n ReturnStatement(node, state) {\n state.write('return')\n if (node.argument) {\n state.write(' ')\n this[node.argument.type](node.argument, state)\n }\n state.write(';')\n },\n ThrowStatement(node, state) {\n state.write('throw ')\n this[node.argument.type](node.argument, state)\n state.write(';')\n },\n TryStatement(node, state) {\n state.write('try ')\n this[node.block.type](node.block, state)\n if (node.handler) {\n const { handler } = node\n if (handler.param == null) {\n state.write(' catch ')\n } else {\n state.write(' catch (')\n this[handler.param.type](handler.param, state)\n state.write(') ')\n }\n this[handler.body.type](handler.body, state)\n }\n if (node.finalizer) {\n state.write(' finally ')\n this[node.finalizer.type](node.finalizer, state)\n }\n },\n WhileStatement(node, state) {\n state.write('while (')\n this[node.test.type](node.test, state)\n state.write(') ')\n this[node.body.type](node.body, state)\n },\n DoWhileStatement(node, state) {\n state.write('do ')\n this[node.body.type](node.body, state)\n state.write(' while (')\n this[node.test.type](node.test, state)\n state.write(');')\n },\n ForStatement(node, state) {\n state.write('for (')\n if (node.init != null) {\n const { init } = node\n if (init.type[0] === 'V') {\n formatVariableDeclaration(state, init)\n } else {\n this[init.type](init, state)\n }\n }\n state.write('; ')\n if (node.test) {\n this[node.test.type](node.test, state)\n }\n state.write('; ')\n if (node.update) {\n this[node.update.type](node.update, state)\n }\n state.write(') ')\n this[node.body.type](node.body, state)\n },\n ForInStatement: (ForInStatement = function (node, state) {\n state.write(`for ${node.await ? 'await ' : ''}(`)\n const { left } = node\n if (left.type[0] === 'V') {\n formatVariableDeclaration(state, left)\n } else {\n this[left.type](left, state)\n }\n // Identifying whether node.type is `ForInStatement` or `ForOfStatement`\n state.write(node.type[3] === 'I' ? ' in ' : ' of ')\n this[node.right.type](node.right, state)\n state.write(') ')\n this[node.body.type](node.body, state)\n }),\n ForOfStatement: ForInStatement,\n DebuggerStatement(node, state) {\n state.write('debugger;', node)\n },\n FunctionDeclaration: (FunctionDeclaration = function (node, state) {\n state.write(\n (node.async ? 'async ' : '') +\n (node.generator ? 'function* ' : 'function ') +\n (node.id ? node.id.name : ''),\n node,\n )\n formatSequence(state, node.params)\n state.write(' ')\n this[node.body.type](node.body, state)\n }),\n FunctionExpression: FunctionDeclaration,\n VariableDeclaration(node, state) {\n formatVariableDeclaration(state, node)\n state.write(';')\n },\n VariableDeclarator(node, state) {\n this[node.id.type](node.id, state)\n if (node.init != null) {\n state.write(' = ')\n this[node.init.type](node.init, state)\n }\n },\n ClassDeclaration(node, state) {\n state.write('class ' + (node.id ? `${node.id.name} ` : ''), node)\n if (node.superClass) {\n state.write('extends ')\n const { superClass } = node\n const { type } = superClass\n const precedence = state.expressionsPrecedence[type]\n if (\n (type[0] !== 'C' || type[1] !== 'l' || type[5] !== 'E') &&\n (precedence === NEEDS_PARENTHESES ||\n precedence < state.expressionsPrecedence.ClassExpression)\n ) {\n // Not a ClassExpression that needs parentheses\n state.write('(')\n this[node.superClass.type](superClass, state)\n state.write(')')\n } else {\n this[superClass.type](superClass, state)\n }\n state.write(' ')\n }\n this.ClassBody(node.body, state)\n },\n ImportDeclaration(node, state) {\n state.write('import ')\n const { specifiers, attributes } = node\n const { length } = specifiers\n // TODO: Once babili is fixed, put this after condition\n // https://github.com/babel/babili/issues/430\n let i = 0\n if (length > 0) {\n for (; i < length; ) {\n if (i > 0) {\n state.write(', ')\n }\n const specifier = specifiers[i]\n const type = specifier.type[6]\n if (type === 'D') {\n // ImportDefaultSpecifier\n state.write(specifier.local.name, specifier)\n i++\n } else if (type === 'N') {\n // ImportNamespaceSpecifier\n state.write('* as ' + specifier.local.name, specifier)\n i++\n } else {\n // ImportSpecifier\n break\n }\n }\n if (i < length) {\n state.write('{')\n for (;;) {\n const specifier = specifiers[i]\n const { name } = specifier.imported\n state.write(name, specifier)\n if (name !== specifier.local.name) {\n state.write(' as ' + specifier.local.name)\n }\n if (++i < length) {\n state.write(', ')\n } else {\n break\n }\n }\n state.write('}')\n }\n state.write(' from ')\n }\n this.Literal(node.source, state)\n\n if (attributes && attributes.length > 0) {\n state.write(' with { ')\n for (let i = 0; i < attributes.length; i++) {\n this.ImportAttribute(attributes[i], state)\n if (i < attributes.length - 1) state.write(', ')\n }\n\n state.write(' }')\n }\n state.write(';')\n },\n ImportAttribute(node, state) {\n this.Identifier(node.key, state)\n state.write(': ')\n this.Literal(node.value, state)\n },\n ImportExpression(node, state) {\n state.write('import(')\n this[node.source.type](node.source, state)\n state.write(')')\n },\n ExportDefaultDeclaration(node, state) {\n state.write('export default ')\n this[node.declaration.type](node.declaration, state)\n if (\n state.expressionsPrecedence[node.declaration.type] != null &&\n node.declaration.type[0] !== 'F'\n ) {\n // All expression nodes except `FunctionExpression`\n state.write(';')\n }\n },\n ExportNamedDeclaration(node, state) {\n state.write('export ')\n if (node.declaration) {\n this[node.declaration.type](node.declaration, state)\n } else {\n state.write('{')\n const { specifiers } = node,\n { length } = specifiers\n if (length > 0) {\n for (let i = 0; ; ) {\n const specifier = specifiers[i]\n const { name } = specifier.local\n state.write(name, specifier)\n if (name !== specifier.exported.name) {\n state.write(' as ' + specifier.exported.name)\n }\n if (++i < length) {\n state.write(', ')\n } else {\n break\n }\n }\n }\n state.write('}')\n if (node.source) {\n state.write(' from ')\n this.Literal(node.source, state)\n }\n\n if (node.attributes && node.attributes.length > 0) {\n state.write(' with { ')\n for (let i = 0; i < node.attributes.length; i++) {\n this.ImportAttribute(node.attributes[i], state)\n if (i < node.attributes.length - 1) state.write(', ')\n }\n\n state.write(' }')\n }\n\n state.write(';')\n }\n },\n ExportAllDeclaration(node, state) {\n if (node.exported != null) {\n state.write('export * as ' + node.exported.name + ' from ')\n } else {\n state.write('export * from ')\n }\n this.Literal(node.source, state)\n\n if (node.attributes && node.attributes.length > 0) {\n state.write(' with { ')\n for (let i = 0; i < node.attributes.length; i++) {\n this.ImportAttribute(node.attributes[i], state)\n if (i < node.attributes.length - 1) state.write(', ')\n }\n\n state.write(' }')\n }\n\n state.write(';')\n },\n MethodDefinition(node, state) {\n if (node.static) {\n state.write('static ')\n }\n const kind = node.kind[0]\n if (kind === 'g' || kind === 's') {\n // Getter or setter\n state.write(node.kind + ' ')\n }\n if (node.value.async) {\n state.write('async ')\n }\n if (node.value.generator) {\n state.write('*')\n }\n if (node.computed) {\n state.write('[')\n this[node.key.type](node.key, state)\n state.write(']')\n } else {\n this[node.key.type](node.key, state)\n }\n formatSequence(state, node.value.params)\n state.write(' ')\n this[node.value.body.type](node.value.body, state)\n },\n ClassExpression(node, state) {\n this.ClassDeclaration(node, state)\n },\n ArrowFunctionExpression(node, state) {\n state.write(node.async ? 'async ' : '', node)\n const { params } = node\n if (params != null) {\n // Omit parenthesis if only one named parameter\n if (params.length === 1 && params[0].type[0] === 'I') {\n // If params[0].type[0] starts with 'I', it can't be `ImportDeclaration` nor `IfStatement` and thus is `Identifier`\n state.write(params[0].name, params[0])\n } else {\n formatSequence(state, node.params)\n }\n }\n state.write(' => ')\n if (node.body.type[0] === 'O') {\n // Body is an object expression\n state.write('(')\n this.ObjectExpression(node.body, state)\n state.write(')')\n } else {\n this[node.body.type](node.body, state)\n }\n },\n ThisExpression(node, state) {\n state.write('this', node)\n },\n Super(node, state) {\n state.write('super', node)\n },\n RestElement: (RestElement = function (node, state) {\n state.write('...')\n this[node.argument.type](node.argument, state)\n }),\n SpreadElement: RestElement,\n YieldExpression(node, state) {\n state.write(node.delegate ? 'yield*' : 'yield')\n if (node.argument) {\n state.write(' ')\n this[node.argument.type](node.argument, state)\n }\n },\n AwaitExpression(node, state) {\n state.write('await ', node)\n formatExpression(state, node.argument, node)\n },\n TemplateLiteral(node, state) {\n const { quasis, expressions } = node\n state.write('`')\n const { length } = expressions\n for (let i = 0; i < length; i++) {\n const expression = expressions[i]\n const quasi = quasis[i]\n state.write(quasi.value.raw, quasi)\n state.write('${')\n this[expression.type](expression, state)\n state.write('}')\n }\n const quasi = quasis[quasis.length - 1]\n state.write(quasi.value.raw, quasi)\n state.write('`')\n },\n TemplateElement(node, state) {\n state.write(node.value.raw, node)\n },\n TaggedTemplateExpression(node, state) {\n formatExpression(state, node.tag, node)\n this[node.quasi.type](node.quasi, state)\n },\n ArrayExpression: (ArrayExpression = function (node, state) {\n state.write('[')\n if (node.elements.length > 0) {\n const { elements } = node,\n { length } = elements\n for (let i = 0; ; ) {\n const element = elements[i]\n if (element != null) {\n this[element.type](element, state)\n }\n if (++i < length) {\n state.write(', ')\n } else {\n if (element == null) {\n state.write(', ')\n }\n break\n }\n }\n }\n state.write(']')\n }),\n ArrayPattern: ArrayExpression,\n ObjectExpression(node, state) {\n const indent = state.indent.repeat(state.indentLevel++)\n const { lineEnd, writeComments } = state\n const propertyIndent = indent + state.indent\n state.write('{')\n if (node.properties.length > 0) {\n state.write(lineEnd)\n if (writeComments && node.comments != null) {\n formatComments(state, node.comments, propertyIndent, lineEnd)\n }\n const comma = ',' + lineEnd\n const { properties } = node,\n { length } = properties\n for (let i = 0; ; ) {\n const property = properties[i]\n if (writeComments && property.comments != null) {\n formatComments(state, property.comments, propertyIndent, lineEnd)\n }\n state.write(propertyIndent)\n this[property.type](property, state)\n if (++i < length) {\n state.write(comma)\n } else {\n break\n }\n }\n state.write(lineEnd)\n if (writeComments && node.trailingComments != null) {\n formatComments(state, node.trailingComments, propertyIndent, lineEnd)\n }\n state.write(indent + '}')\n } else if (writeComments) {\n if (node.comments != null) {\n state.write(lineEnd)\n formatComments(state, node.comments, propertyIndent, lineEnd)\n if (node.trailingComments != null) {\n formatComments(state, node.trailingComments, propertyIndent, lineEnd)\n }\n state.write(indent + '}')\n } else if (node.trailingComments != null) {\n state.write(lineEnd)\n formatComments(state, node.trailingComments, propertyIndent, lineEnd)\n state.write(indent + '}')\n } else {\n state.write('}')\n }\n } else {\n state.write('}')\n }\n state.indentLevel--\n },\n Property(node, state) {\n if (node.method || node.kind[0] !== 'i') {\n // Either a method or of kind `set` or `get` (not `init`)\n this.MethodDefinition(node, state)\n } else {\n if (!node.shorthand) {\n if (node.computed) {\n state.write('[')\n this[node.key.type](node.key, state)\n state.write(']')\n } else {\n this[node.key.type](node.key, state)\n }\n state.write(': ')\n }\n this[node.value.type](node.value, state)\n }\n },\n PropertyDefinition(node, state) {\n if (node.static) {\n state.write('static ')\n }\n if (node.computed) {\n state.write('[')\n }\n this[node.key.type](node.key, state)\n if (node.computed) {\n state.write(']')\n }\n if (node.value == null) {\n if (node.key.type[0] !== 'F') {\n state.write(';')\n }\n return\n }\n state.write(' = ')\n this[node.value.type](node.value, state)\n state.write(';')\n },\n ObjectPattern(node, state) {\n state.write('{')\n if (node.properties.length > 0) {\n const { properties } = node,\n { length } = properties\n for (let i = 0; ; ) {\n this[properties[i].type](properties[i], state)\n if (++i < length) {\n state.write(', ')\n } else {\n break\n }\n }\n }\n state.write('}')\n },\n SequenceExpression(node, state) {\n formatSequence(state, node.expressions)\n },\n UnaryExpression(node, state) {\n if (node.prefix) {\n const {\n operator,\n argument,\n argument: { type },\n } = node\n state.write(operator)\n const needsParentheses = expressionNeedsParenthesis(state, argument, node)\n if (\n !needsParentheses &&\n (operator.length > 1 ||\n (type[0] === 'U' &&\n (type[1] === 'n' || type[1] === 'p') &&\n argument.prefix &&\n argument.operator[0] === operator &&\n (operator === '+' || operator === '-')))\n ) {\n // Large operator or argument is UnaryExpression or UpdateExpression node\n state.write(' ')\n }\n if (needsParentheses) {\n state.write(operator.length > 1 ? ' (' : '(')\n this[type](argument, state)\n state.write(')')\n } else {\n this[type](argument, state)\n }\n } else {\n // FIXME: This case never occurs\n this[node.argument.type](node.argument, state)\n state.write(node.operator)\n }\n },\n UpdateExpression(node, state) {\n // Always applied to identifiers or members, no parenthesis check needed\n if (node.prefix) {\n state.write(node.operator)\n this[node.argument.type](node.argument, state)\n } else {\n this[node.argument.type](node.argument, state)\n state.write(node.operator)\n }\n },\n AssignmentExpression(node, state) {\n this[node.left.type](node.left, state)\n state.write(' ' + node.operator + ' ')\n this[node.right.type](node.right, state)\n },\n AssignmentPattern(node, state) {\n this[node.left.type](node.left, state)\n state.write(' = ')\n this[node.right.type](node.right, state)\n },\n BinaryExpression: (BinaryExpression = function (node, state) {\n const isIn = node.operator === 'in'\n if (isIn) {\n // Avoids confusion in `for` loops initializers\n state.write('(')\n }\n formatExpression(state, node.left, node, false)\n state.write(' ' + node.operator + ' ')\n formatExpression(state, node.right, node, true)\n if (isIn) {\n state.write(')')\n }\n }),\n LogicalExpression: BinaryExpression,\n ConditionalExpression(node, state) {\n const { test } = node\n const precedence = state.expressionsPrecedence[test.type]\n if (\n precedence === NEEDS_PARENTHESES ||\n precedence <= state.expressionsPrecedence.ConditionalExpression\n ) {\n state.write('(')\n this[test.type](test, state)\n state.write(')')\n } else {\n this[test.type](test, state)\n }\n state.write(' ? ')\n this[node.consequent.type](node.consequent, state)\n state.write(' : ')\n this[node.alternate.type](node.alternate, state)\n },\n NewExpression(node, state) {\n state.write('new ')\n const precedence = state.expressionsPrecedence[node.callee.type]\n if (\n precedence === NEEDS_PARENTHESES ||\n precedence < state.expressionsPrecedence.CallExpression ||\n hasCallExpression(node.callee)\n ) {\n state.write('(')\n this[node.callee.type](node.callee, state)\n state.write(')')\n } else {\n this[node.callee.type](node.callee, state)\n }\n formatSequence(state, node['arguments'])\n },\n CallExpression(node, state) {\n const precedence = state.expressionsPrecedence[node.callee.type]\n if (\n precedence === NEEDS_PARENTHESES ||\n precedence < state.expressionsPrecedence.CallExpression\n ) {\n state.write('(')\n this[node.callee.type](node.callee, state)\n state.write(')')\n } else {\n this[node.callee.type](node.callee, state)\n }\n if (node.optional) {\n state.write('?.')\n }\n formatSequence(state, node['arguments'])\n },\n ChainExpression(node, state) {\n this[node.expression.type](node.expression, state)\n },\n MemberExpression(node, state) {\n const precedence = state.expressionsPrecedence[node.object.type]\n if (\n precedence === NEEDS_PARENTHESES ||\n precedence < state.expressionsPrecedence.MemberExpression\n ) {\n state.write('(')\n this[node.object.type](node.object, state)\n state.write(')')\n } else {\n this[node.object.type](node.object, state)\n }\n if (node.computed) {\n if (node.optional) {\n state.write('?.')\n }\n state.write('[')\n this[node.property.type](node.property, state)\n state.write(']')\n } else {\n if (node.optional) {\n state.write('?.')\n } else {\n state.write('.')\n }\n this[node.property.type](node.property, state)\n }\n },\n MetaProperty(node, state) {\n state.write(node.meta.name + '.' + node.property.name, node)\n },\n Identifier(node, state) {\n state.write(node.name, node)\n },\n PrivateIdentifier(node, state) {\n state.write(`#${node.name}`, node)\n },\n Literal(node, state) {\n if (node.raw != null) {\n // Non-standard property\n state.write(node.raw, node)\n } else if (node.regex != null) {\n this.RegExpLiteral(node, state)\n } else if (node.bigint != null) {\n state.write(node.bigint + 'n', node)\n } else {\n state.write(stringify(node.value), node)\n }\n },\n RegExpLiteral(node, state) {\n const { regex } = node\n state.write(`/${regex.pattern}/${regex.flags}`, node)\n },\n}\n\nconst EMPTY_OBJECT = {}\n\n/*\nDEPRECATED: Alternate export of `GENERATOR`.\n*/\nexport const baseGenerator = GENERATOR\n\nclass State {\n constructor(options) {\n const setup = options == null ? EMPTY_OBJECT : options\n this.output = ''\n // Functional options\n if (setup.output != null) {\n this.output = setup.output\n this.write = this.writeToStream\n } else {\n this.output = ''\n }\n this.generator = setup.generator != null ? setup.generator : GENERATOR\n this.expressionsPrecedence =\n setup.expressionsPrecedence != null\n ? setup.expressionsPrecedence\n : EXPRESSIONS_PRECEDENCE\n // Formating setup\n this.indent = setup.indent != null ? setup.indent : ' '\n this.lineEnd = setup.lineEnd != null ? setup.lineEnd : '\\n'\n this.indentLevel =\n setup.startingIndentLevel != null ? setup.startingIndentLevel : 0\n this.writeComments = setup.comments ? setup.comments : false\n // Source map\n if (setup.sourceMap != null) {\n this.write =\n setup.output == null ? this.writeAndMap : this.writeToStreamAndMap\n this.sourceMap = setup.sourceMap\n this.line = 1\n this.column = 0\n this.lineEndSize = this.lineEnd.split('\\n').length - 1\n this.mapping = {\n original: null,\n // Uses the entire state to avoid generating ephemeral objects\n generated: this,\n name: undefined,\n source: setup.sourceMap.file || setup.sourceMap._file,\n }\n }\n }\n\n write(code) {\n this.output += code\n }\n\n writeToStream(code) {\n this.output.write(code)\n }\n\n writeAndMap(code, node) {\n this.output += code\n this.map(code, node)\n }\n\n writeToStreamAndMap(code, node) {\n this.output.write(code)\n this.map(code, node)\n }\n\n map(code, node) {\n if (node != null) {\n const { type } = node\n if (type[0] === 'L' && type[2] === 'n') {\n // LineComment\n this.column = 0\n this.line++\n return\n }\n if (node.loc != null) {\n const { mapping } = this\n mapping.original = node.loc.start\n mapping.name = node.name\n this.sourceMap.addMapping(mapping)\n }\n if (\n (type[0] === 'T' && type[8] === 'E') ||\n (type[0] === 'L' && type[1] === 'i' && typeof node.value === 'string')\n ) {\n // TemplateElement or Literal string node\n const { length } = code\n let { column, line } = this\n for (let i = 0; i < length; i++) {\n if (code[i] === '\\n') {\n column = 0\n line++\n } else {\n column++\n }\n }\n this.column = column\n this.line = line\n return\n }\n }\n const { length } = code\n const { lineEnd } = this\n if (length > 0) {\n if (\n this.lineEndSize > 0 &&\n (lineEnd.length === 1\n ? code[length - 1] === lineEnd\n : code.endsWith(lineEnd))\n ) {\n this.line += this.lineEndSize\n this.column = 0\n } else {\n this.column += length\n }\n }\n }\n\n toString() {\n return this.output\n }\n}\n\nexport function generate(node, options) {\n /*\n Returns a string representing the rendered code of the provided AST `node`.\n The `options` are:\n\n - `indent`: string to use for indentation (defaults to `␣␣`)\n - `lineEnd`: string to use for line endings (defaults to `\\n`)\n - `startingIndentLevel`: indent level to start from (defaults to `0`)\n - `comments`: generate comments if `true` (defaults to `false`)\n - `output`: output stream to write the rendered code to (defaults to `null`)\n - `generator`: custom code generator (defaults to `GENERATOR`)\n - `expressionsPrecedence`: custom map of node types and their precedence level (defaults to `EXPRESSIONS_PRECEDENCE`)\n */\n const state = new State(options)\n // Travel through the AST node and generate the code\n state.generator[node.type](node, state)\n return state.output\n}\n","/**\n * @typedef { import('estree').Node} Node\n * @typedef {{\n * skip: () => void;\n * remove: () => void;\n * replace: (node: Node) => void;\n * }} WalkerContext\n */\n\nexport class WalkerBase {\n\tconstructor() {\n\t\t/** @type {boolean} */\n\t\tthis.should_skip = false;\n\n\t\t/** @type {boolean} */\n\t\tthis.should_remove = false;\n\n\t\t/** @type {Node | null} */\n\t\tthis.replacement = null;\n\n\t\t/** @type {WalkerContext} */\n\t\tthis.context = {\n\t\t\tskip: () => (this.should_skip = true),\n\t\t\tremove: () => (this.should_remove = true),\n\t\t\treplace: (node) => (this.replacement = node)\n\t\t};\n\t}\n\n\t/**\n\t * @template {Node} Parent\n\t * @param {Parent | null | undefined} parent\n\t * @param {keyof Parent | null | undefined} prop\n\t * @param {number | null | undefined} index\n\t * @param {Node} node\n\t */\n\treplace(parent, prop, index, node) {\n\t\tif (parent && prop) {\n\t\t\tif (index != null) {\n\t\t\t\t/** @type {Array<Node>} */ (parent[prop])[index] = node;\n\t\t\t} else {\n\t\t\t\t/** @type {Node} */ (parent[prop]) = node;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @template {Node} Parent\n\t * @param {Parent | null | undefined} parent\n\t * @param {keyof Parent | null | undefined} prop\n\t * @param {number | null | undefined} index\n\t */\n\tremove(parent, prop, index) {\n\t\tif (parent && prop) {\n\t\t\tif (index !== null && index !== undefined) {\n\t\t\t\t/** @type {Array<Node>} */ (parent[prop]).splice(index, 1);\n\t\t\t} else {\n\t\t\t\tdelete parent[prop];\n\t\t\t}\n\t\t}\n\t}\n}\n","import { WalkerBase } from './walker.js';\n\n/**\n * @typedef { import('estree').Node} Node\n * @typedef { import('./walker.js').WalkerContext} WalkerContext\n * @typedef {(\n * this: WalkerContext,\n * node: Node,\n * parent: Node | null,\n * key: string | number | symbol | null | undefined,\n * index: number | null | undefined\n * ) => void} SyncHandler\n */\n\nexport class SyncWalker extends WalkerBase {\n\t/**\n\t *\n\t * @param {SyncHandler} [enter]\n\t * @param {SyncHandler} [leave]\n\t */\n\tconstructor(enter, leave) {\n\t\tsuper();\n\n\t\t/** @type {boolean} */\n\t\tthis.should_skip = false;\n\n\t\t/** @type {boolean} */\n\t\tthis.should_remove = false;\n\n\t\t/** @type {Node | null} */\n\t\tthis.replacement = null;\n\n\t\t/** @type {WalkerContext} */\n\t\tthis.context = {\n\t\t\tskip: () => (this.should_skip = true),\n\t\t\tremove: () => (this.should_remove = true),\n\t\t\treplace: (node) => (this.replacement = node)\n\t\t};\n\n\t\t/** @type {SyncHandler | undefined} */\n\t\tthis.enter = enter;\n\n\t\t/** @type {SyncHandler | undefined} */\n\t\tthis.leave = leave;\n\t}\n\n\t/**\n\t * @template {Node} Parent\n\t * @param {Node} node\n\t * @param {Parent | null} parent\n\t * @param {keyof Parent} [prop]\n\t * @param {number | null} [index]\n\t * @returns {Node | null}\n\t */\n\tvisit(node, parent, prop, index) {\n\t\tif (node) {\n\t\t\tif (this.enter) {\n\t\t\t\tconst _should_skip = this.should_skip;\n\t\t\t\tconst _should_remove = this.should_remove;\n\t\t\t\tconst _replacement = this.replacement;\n\t\t\t\tthis.should_skip = false;\n\t\t\t\tthis.should_remove = false;\n\t\t\t\tthis.replacement = null;\n\n\t\t\t\tthis.enter.call(this.context, node, parent, prop, index);\n\n\t\t\t\tif (this.replacement) {\n\t\t\t\t\tnode = this.replacement;\n\t\t\t\t\tthis.replace(parent, prop, index, node);\n\t\t\t\t}\n\n\t\t\t\tif (this.should_remove) {\n\t\t\t\t\tthis.remove(parent, prop, index);\n\t\t\t\t}\n\n\t\t\t\tconst skipped = this.should_skip;\n\t\t\t\tconst removed = this.should_remove;\n\n\t\t\t\tthis.should_skip = _should_skip;\n\t\t\t\tthis.should_remove = _should_remove;\n\t\t\t\tthis.replacement = _replacement;\n\n\t\t\t\tif (skipped) return node;\n\t\t\t\tif (removed) return null;\n\t\t\t}\n\n\t\t\t/** @type {keyof Node} */\n\t\t\tlet key;\n\n\t\t\tfor (key in node) {\n\t\t\t\t/** @type {unknown} */\n\t\t\t\tconst value = node[key];\n\n\t\t\t\tif (value && typeof value === 'object') {\n\t\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\t\tconst nodes = /** @type {Array<unknown>} */ (value);\n\t\t\t\t\t\tfor (let i = 0; i < nodes.length; i += 1) {\n\t\t\t\t\t\t\tconst item = nodes[i];\n\t\t\t\t\t\t\tif (isNode(item)) {\n\t\t\t\t\t\t\t\tif (!this.visit(item, node, key, i)) {\n\t\t\t\t\t\t\t\t\t// removed\n\t\t\t\t\t\t\t\t\ti--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (isNode(value)) {\n\t\t\t\t\t\tthis.visit(value, node, key, null);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.leave) {\n\t\t\t\tconst _replacement = this.replacement;\n\t\t\t\tconst _should_remove = this.should_remove;\n\t\t\t\tthis.replacement = null;\n\t\t\t\tthis.should_remove = false;\n\n\t\t\t\tthis.leave.call(this.context, node, parent, prop, index);\n\n\t\t\t\tif (this.replacement) {\n\t\t\t\t\tnode = this.replacement;\n\t\t\t\t\tthis.replace(parent, prop, index, node);\n\t\t\t\t}\n\n\t\t\t\tif (this.should_remove) {\n\t\t\t\t\tthis.remove(parent, prop, index);\n\t\t\t\t}\n\n\t\t\t\tconst removed = this.should_remove;\n\n\t\t\t\tthis.replacement = _replacement;\n\t\t\t\tthis.should_remove = _should_remove;\n\n\t\t\t\tif (removed) return null;\n\t\t\t}\n\t\t}\n\n\t\treturn node;\n\t}\n}\n\n/**\n * Ducktype a node.\n *\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction isNode(value) {\n\treturn (\n\t\tvalue !== null && typeof value === 'object' && 'type' in value && typeof value.type === 'string'\n\t);\n}\n","import { SyncWalker } from './sync.js';\nimport { AsyncWalker } from './async.js';\n\n/**\n * @typedef {import('estree').Node} Node\n * @typedef {import('./sync.js').SyncHandler} SyncHandler\n * @typedef {import('./async.js').AsyncHandler} AsyncHandler\n */\n\n/**\n * @param {Node} ast\n * @param {{\n * enter?: SyncHandler\n * leave?: SyncHandler\n * }} walker\n * @returns {Node | null}\n */\nexport function walk(ast, { enter, leave }) {\n\tconst instance = new SyncWalker(enter, leave);\n\treturn instance.visit(ast, null);\n}\n\n/**\n * @param {Node} ast\n * @param {{\n * enter?: AsyncHandler\n * leave?: AsyncHandler\n * }} walker\n * @returns {Promise<Node | null>}\n */\nexport async function asyncWalk(ast, { enter, leave }) {\n\tconst instance = new AsyncWalker(enter, leave);\n\treturn await instance.visit(ast, null);\n}\n","export const SOURCE_PROP = \"__componentSourceLoc\";\nexport const JSX_SOURCE_PROP = \"$componentSourceLoc\";\nexport const JSX_SOURCE_REGISTRY_SYMBOL = \"react-code-locator.jsxSourceRegistry\";\n","import type { Plugin, PluginOption } from \"vite\";\nimport type { LocatorOptions } from \"./runtime\";\n\nconst VIRTUAL_CLIENT_MODULE_ID = \"virtual:react-code-locator/client\";\nconst RESOLVED_VIRTUAL_CLIENT_MODULE_ID = `\\0${VIRTUAL_CLIENT_MODULE_ID}`;\n\nexport type ViteClientInjectorOptions = {\n command?: \"serve\" | \"build\";\n locator?: LocatorOptions;\n injectClient?: boolean;\n};\n\nfunction createClientInjector(locatorOptions: LocatorOptions = {}): Plugin {\n const serialized = JSON.stringify(locatorOptions);\n\n return {\n name: \"react-code-locator-client-injector\",\n apply: \"serve\",\n resolveId(id) {\n if (id === VIRTUAL_CLIENT_MODULE_ID) {\n return RESOLVED_VIRTUAL_CLIENT_MODULE_ID;\n }\n\n return null;\n },\n load(id) {\n if (id !== RESOLVED_VIRTUAL_CLIENT_MODULE_ID) {\n return null;\n }\n\n return `\n import { enableReactComponentJump } from \"react-code-locator/client\";\n\n enableReactComponentJump(${serialized});\n `;\n },\n transformIndexHtml() {\n return [\n {\n tag: \"script\",\n attrs: {\n type: \"module\",\n src: `/@id/__x00__${VIRTUAL_CLIENT_MODULE_ID}`,\n },\n injectTo: \"head\",\n },\n ];\n },\n };\n}\n\nexport function createViteClientInjector(\n options: ViteClientInjectorOptions = {},\n): PluginOption[] {\n const { command = \"serve\", locator = {}, injectClient = true } = options;\n const isServe = command === \"serve\";\n\n return [isServe && injectClient ? createClientInjector(locator) : null].filter(Boolean);\n}\n","/**\n * Unplugin-based universal adapter for all build tools\n * Supports: Vite, Webpack, Rollup, esbuild, Rspack\n *\n * Zero-dependency transform using acorn instead of Babel\n */\n\nimport { createUnplugin, type UnpluginInstance, type UnpluginOptions } from \"unplugin\";\nimport { transformSource, type TransformOptions } from \"./core/transform\";\nimport { createViteClientInjector } from \"./viteClientInjector\";\nimport type { LocatorOptions } from \"./runtime\";\nimport type { Plugin } from \"vite\";\n\nexport interface ReactCodeLocatorOptions extends Omit<TransformOptions, \"filename\"> {\n /**\n * Enable source transform for component definitions\n * @default true\n */\n injectComponentSource?: boolean;\n\n /**\n * Enable source transform for JSX call sites\n * @default true\n */\n injectJsxSource?: boolean;\n\n /**\n * Project root for relative path calculation\n * @default process.cwd()\n */\n projectRoot?: string;\n\n /**\n * Include filter for file paths\n * @default /\\.[jt]sx$/\n */\n include?: RegExp | RegExp[];\n\n /**\n * Exclude filter for file paths\n * @default /node_modules/\n */\n exclude?: RegExp | RegExp[];\n\n /**\n * Auto-inject client runtime into Vite dev server (Vite only)\n * @default true\n */\n injectClient?: boolean;\n\n /**\n * Options passed to enableReactComponentJump (Vite only)\n */\n locator?: LocatorOptions;\n}\n\nexport type { TransformOptions };\n\nconst DEFAULT_INCLUDE = /\\.([jt]sx)$/;\nconst DEFAULT_EXCLUDE = /node_modules/;\n\nfunction shouldTransform(id: string, include: RegExp | RegExp[], exclude: RegExp | RegExp[]): boolean {\n const includePatterns = Array.isArray(include) ? include : [include];\n const excludePatterns = Array.isArray(exclude) ? exclude : [exclude];\n\n if (excludePatterns.some((pattern) => pattern.test(id))) {\n return false;\n }\n\n return includePatterns.some((pattern) => pattern.test(id));\n}\n\nconst _unplugin: UnpluginInstance<ReactCodeLocatorOptions | undefined, false> =\n createUnplugin((options = {}) => {\n const {\n include = DEFAULT_INCLUDE,\n exclude = DEFAULT_EXCLUDE,\n projectRoot = process.cwd(),\n injectComponentSource = true,\n injectJsxSource = true,\n } = options;\n\n return {\n name: \"react-code-locator\",\n\n transform(code, id) {\n if (process.env.NODE_ENV !== \"development\") return null;\n if (!shouldTransform(id, include, exclude)) {\n return null;\n }\n\n return transformSource(code, {\n filename: id,\n projectRoot,\n injectComponentSource,\n injectJsxSource,\n });\n },\n } as UnpluginOptions;\n });\n\nexport const unplugin = _unplugin;\n\n// Vite plugin: source transform + client auto-injection\nexport function vitePlugin(options?: ReactCodeLocatorOptions): Plugin[] {\n const { injectClient = true, locator, ...rest } = options ?? {};\n return [\n _unplugin.vite(rest) as Plugin,\n ...createViteClientInjector({ injectClient, locator }),\n ].filter(Boolean) as Plugin[];\n}\n\n// Other build tool adapters\nexport const webpackPlugin = _unplugin.webpack;\nexport const rollupPlugin = _unplugin.rollup;\nexport const esbuildPlugin = _unplugin.esbuild;\nexport const rspackPlugin = _unplugin.rspack;\n\nexport default unplugin;\n"],"mappings":"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EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,IAAK,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,IAAK,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,IAAK,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,IAAK,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,KAAM,EAAG,EAAG,GAAI,MAAO,GAAI,KAAM,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,IAAK,EAAG,IAAK,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,MAAO,EAAG,KAAM,EAAG,IAAK,GAAI,EAAG,GAAI,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,IAAK,EAAG,KAAM,GAAI,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,KAAM,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,IAAK,EAAG,GAAI,EAAG,IAAK,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,IAAK,EAAG,EAAG,EAAG,KAAM,EAAG,OAAQ,GAAG,EAG9qCC,EAA6B,CAAC,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,IAAK,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,IAAK,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,IAAK,GAAI,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,IAAK,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,IAAK,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,IAAK,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,GAAI,GAAI,KAAM,GAAI,EAAG,GAAI,KAAM,EAAG,IAAK,KAAM,GAAI,KAAM,IAAK,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,KAAM,GAAI,GAAI,GAAI,IAAK,KAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,KAAM,IAAK,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,KAAM,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,I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AAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,IAAK,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,IAAK,GAAI,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,IAAK,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,IAAK,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,IAAK,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,GAAI,GAAI,KAAM,GAAI,EAAG,GAAI,KAAM,EAAG,IAAK,KAAM,GAAI,KAAM,IAAK,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,KAAM,GAAI,GAAI,GAAI,IAAK,KAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,IAAK,KAAM,IAAK,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,KAAM,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,KAAM,GAAI,EAAG,EAAG,IAAK,GAAI,IAAK,GAAI,GAAI,EAAG,GAAI,EAAG,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,IAAK,GAAI,G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,KAAK,SAAI,KAAK,SAAI,MAAM,SAAI,MAAM,SAAI,KAAK,SAAI,MAAM,SAAI,MAAM,SAAI,QAAQ,SAAI,KAAK,SAAI,IAAI,SAAI,MAAM,SAAI,KAAK,SAAI,MAAM,SAAI,OAAO,SAAI,GAAG,SAAI,GAAG,SAAI,GAAG,SAAI,QAAQ,SAAI,GAAG,SAAI,IAAI,SAAI,MAAM,SAAI,IAAI,SAAI,QAAQ,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,MAAM,SAAI,MAAM,SAAI,KAAK,SAAI,MAAM,SAAI,MAAM,SAAI,QAAQ,SAAI,KAAK,SAAI,IAAI,SAAI,MAAM,SAAI,KAAK,SAAI,MAAM,SAAI,OAAO,SAAI,GAAG,SAAI,GAAG,SAAI,GAAG,SAAI,QAAQ,SAAI,GAAG,SAAI,IAAI,SAAI,OAAO,SAAI,MAAM,SAAI,IAAI,SAAI,QAAQ,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,MAAM,SAAI,SAAS,SAAI,MAAM,SAAI,IAAI,SAAI,KAAK,SAAI,KAAK,SAAI,OAAO,SAAI,KAAK,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,MAAM,SAAI,MAAM,SAAI,MAAM,SAAI,MAAM,SAAI,MAAM,SAAI,MAAM,SAAI,MAAM,SAAI,MAAM,SAAI,OAAO,SAAI,OAAO,SAAI,KAAK,SAAI,OAAO,SAAI,OAAO,SAAI,MAAM,SAAI,MAAM,SAAI,OAAO,SAAI,OAAO,SAAI,MAAM,SAAI,MAAM,SAAI,KAAK,SAAI,MAAM,SAAI,OAAO,SAAI,KAAK,SAAI,MAAM,SAAI,QAAQ,SAAI,KAAK,SAAI,KAAK,SAAI,KAAK,SAAI,KAAK,SAAI,KAAK,SAAI,MAAM,SAAI,KAAK,SAAI,KAAK,SAAI,KAAK,SAAI,KAAK,SAAI,KAAK,SAAI,OAAO,SAAI,KAAK,SAAI,MAAM,SAAI,MAAM,SAAI,MAAM,SAAI,KAAK,SAAI,MAAM,SAAI,GAAG,SAAI,KAAK,SAAI,IAAI,SAAI,MAAM,SAAI,OAAO,SAAI,MAAM,SAAI,KAAK,SAAI,MAAM,SAAI,IAAI,SAAI,IAAI,SAAI,GAAG,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,OAAO,SAAI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","names":["require_constants","__commonJSMin","exports","module","WIN_NO_SLASH","ONE_CHAR","QMARK","END_ANCHOR","START_ANCHOR","DOTS_SLASH","NO_DOT","NO_DOTS","NO_DOT_SLASH","NO_DOTS_SLASH","QMARK_NO_DOT","STAR","SEP","POSIX_CHARS","WINDOWS_CHARS","POSIX_REGEX_SOURCE","chars","win32","require_utils","__commonJSMin","exports","REGEX_BACKSLASH","REGEX_REMOVE_BACKSLASH","REGEX_SPECIAL_CHARS","REGEX_SPECIAL_CHARS_GLOBAL","val","str","platform","match","input","char","lastIdx","idx","state","output","options","prepend","append","path","windows","segs","last","require_scan","__commonJSMin","exports","module","utils","CHAR_ASTERISK","CHAR_AT","CHAR_BACKWARD_SLASH","CHAR_COMMA","CHAR_DOT","CHAR_EXCLAMATION_MARK","CHAR_FORWARD_SLASH","CHAR_LEFT_CURLY_BRACE","CHAR_LEFT_PARENTHESES","CHAR_LEFT_SQUARE_BRACKET","CHAR_PLUS","CHAR_QUESTION_MARK","CHAR_RIGHT_CURLY_BRACE","CHAR_RIGHT_PARENTHESES","CHAR_RIGHT_SQUARE_BRACKET","isPathSeparator","code","depth","token","scan","input","options","opts","length","scanToEnd","slashes","tokens","parts","str","index","start","lastIndex","isBrace","isBracket","isGlob","isExtglob","isGlobstar","braceEscaped","backslashes","negated","negatedExtglob","finished","braces","prev","eos","peek","advance","next","base","prefix","glob","state","prevIndex","idx","n","i","value","require_parse","__commonJSMin","exports","module","constants","utils","MAX_LENGTH","POSIX_REGEX_SOURCE","REGEX_NON_SPECIAL_CHARS","REGEX_SPECIAL_CHARS_BACKREF","REPLACEMENTS","expandRange","args","options","value","v","syntaxError","type","char","parse","input","opts","max","len","bos","tokens","capture","PLATFORM_CHARS","EXTGLOB_CHARS","DOT_LITERAL","PLUS_LITERAL","SLASH_LITERAL","ONE_CHAR","DOTS_SLASH","NO_DOT","NO_DOT_SLASH","NO_DOTS_SLASH","QMARK","QMARK_NO_DOT","STAR","START_ANCHOR","globstar","nodot","qmarkNoDot","star","state","extglobs","braces","stack","prev","eos","peek","n","advance","remaining","consume","num","append","token","negate","count","increment","decrement","push","tok","isBrace","isExtglob","extglobOpen","output","extglobClose","rest","extglobStar","expression","backslashes","m","esc","chars","first","index","next","match","slashes","inner","idx","pre","posix","extglob","prevValue","escaped","open","brace","arr","range","i","out","toks","t","prior","before","isStart","afterStar","after","end","NO_DOTS","slashDot","create","str","source","require_picomatch","__commonJSMin","exports","module","scan","parse","utils","constants","isObject","val","picomatch","glob","options","returnState","fns","input","str","isMatch","state","isState","opts","posix","regex","isIgnored","ignoreOpts","matcher","returnObject","match","output","result","format","patterns","pattern","p","returnOutput","prepend","append","source","parsed","err","require_picomatch","__commonJSMin","exports","module","pico","utils","picomatch","glob","options","returnState","require_xhtml","__commonJSMin","exports","module","require_acorn","__commonJSMin","exports","module","global","factory","astralIdentifierCodes","astralIdentifierStartCodes","nonASCIIidentifierChars","nonASCIIidentifierStartChars","reservedWords","ecma5AndLessKeywords","keywords$1","keywordRelationalOperator","nonASCIIidentifierStart","nonASCIIidentifier","isInAstralSet","code","set","pos","i","isIdentifierStart","astral","isIdentifierChar","TokenType","label","conf","binop","name","prec","beforeExpr","startsExpr","keywords","kw","options","types$1","lineBreak","lineBreakG","isNewLine","nextLineBreak","from","end","next","nonASCIIwhitespace","skipWhiteSpace","ref","hasOwnProperty","toString","hasOwn","obj","propName","isArray","regexpCache","wordsRegexp","words","codePointToString","loneSurrogate","Position","line","col","SourceLocation","p","start","getLineInfo","input","offset","cur","nextBreak","defaultOptions","warnedAboutEcmaVersion","getOptions","opts","opt","tokens","token","pushComment","array","block","text","startLoc","endLoc","comment","SCOPE_TOP","SCOPE_FUNCTION","SCOPE_ASYNC","SCOPE_GENERATOR","SCOPE_ARROW","SCOPE_SIMPLE_CATCH","SCOPE_SUPER","SCOPE_DIRECT_SUPER","SCOPE_CLASS_STATIC_BLOCK","SCOPE_CLASS_FIELD_INIT","SCOPE_SWITCH","SCOPE_VAR","functionFlags","async","generator","BIND_NONE","BIND_VAR","BIND_LEXICAL","BIND_FUNCTION","BIND_SIMPLE_CATCH","BIND_OUTSIDE","Parser","startPos","reserved","reservedStrict","prototypeAccessors","node","flags","plugins","len","cls","parser","pp$9","literal","match","spaceAfter","type","tokType","notNext","DestructuringErrors","refDestructuringErrors","isAssign","parens","andThrow","shorthandAssign","doubleProto","expr","pp$8","stmt","list","loopLabel","switchLabel","context","skip","nextCh","ident","after","isAwaitUsing","isFor","usingEndPos","skipAfterUsing","ch","idStart","id","topLevel","starttype","kind","usingKind","maybeName","keyword","isBreak","lab","awaitAt","isLet","init$1","startsWithLet","isForOf","init$2","containsEsc","initPos","init","isAsync","declarationPosition","FUNC_STATEMENT","FUNC_HANGING_STATEMENT","sawDefault","isCase","empty$1","param","simple","clause","allowMissingInitializer","i$1","label$1","createNewLexicalScope","exitStrict","isForIn","decl","FUNC_NULLABLE_ID","statement","allowExpressionBody","forInit","oldYieldPos","oldAwaitPos","oldAwaitIdentPos","isStatement","oldStrict","privateNameMap","classBody","hadConstructor","element","isPrivateNameConflicted","constructorAllowsSuper","ecmaVersion","keyName","isGenerator","isStatic","lastValue","isConstructor","checkKeyName","allowsDirectSuper","method","key","value","field","oldLabels","declared","used","parent","curr","computed","spec","fNode","cNode","declaration","pat","prop","list$1","elt","decls","nodes","first","attributeKeys","attr","stringLiteral","statements","pp$7","isBinding","exprList","last","close","allowEmpty","allowTrailingComma","allowModifiers","elts","rest","elem","left","bindingType","checkClashes","isBind","TokContext","isExpr","preserveSpace","override","types","pp$6","prevType","update","tokenCtx","out","statementParens","index","allowed","pp$5","propHash","other","redefinition","afterLeftParse","ownDestructuringErrors","oldParenAssign","oldTrailingComma","oldDoubleProto","leftStartPos","leftStartLoc","minPrec","logical","coalesce","op","right","sawUnary","incDec","isLocalVariableAccess","isPrivateFieldAccess","node$1","result","base","noCalls","maybeAsyncArrow","optionalChained","chainNode","optionalSupported","optional","node$2","forNew","canBeArrow","meta","errorPos","val","innerStartPos","innerStartLoc","lastIsComma","spreadStart","innerEndPos","innerEndLoc","par","item","empty","isTagged","curElt","isPattern","paramCount","allowDirectSuper","params","isArrowFunction","isMethod","isExpression","useStrict","nonSimple","allowDuplicates","nameHash","re","liberal","pp$4","message","loc","err","pp$3","Scope","scope","redeclared","scope$1","scope$2","scope$3","Node","pp$2","finishNodeAt","newNode","scriptValuesAddedInUnicode","ecma9BinaryProperties","ecma10BinaryProperties","ecma11BinaryProperties","ecma12BinaryProperties","ecma13BinaryProperties","ecma14BinaryProperties","unicodeBinaryProperties","ecma14BinaryPropertiesOfStrings","unicodeBinaryPropertiesOfStrings","unicodeGeneralCategoryValues","ecma9ScriptValues","ecma10ScriptValues","ecma11ScriptValues","ecma12ScriptValues","ecma13ScriptValues","ecma14ScriptValues","unicodeScriptValues","data","buildUnicodeData","d","pp$1","BranchID","alt","self","RegExpValidationState","pattern","unicodeSets","unicode","forceU","s","l","c","chs","current","state","validFlags","u","flag","hasProp","_","trackDisjunction","lookbehind","noError","min","max","addModifiers","hasHyphen","modifier","removeModifiers","modifier$1","modifiers","isRegularExpressionModifier","isSyntaxCharacter","known","altID","isRegExpIdentifierStart","isRegExpIdentifierPart","n","isDecimalDigit","isControlLetter","switchU","lead","leadSurrogateEnd","trail","isValidUnicode","CharSetNone","CharSetOk","CharSetString","isCharacterClassEscape","negate","nameOrValue","isUnicodePropertyNameCharacter","isUnicodePropertyValueCharacter","ch$1","isOctalDigit","subResult","result$1","count","isClassSetReservedDoublePunctuatorCharacter","isClassSetSyntaxCharacter","isClassSetReservedPunctuator","isHexDigit","hexToInt","n1","n2","length","Token","pp","ignoreEscapeSequenceInKeyword","this$1$1","curContext","startSkip","loop","next2","size","tokentype","next2$1","str","escaped","inClass","flagsStart","radix","maybeLegacyOctalNumericLiteral","allowSeparators","isLegacyOctalNumericLiteral","total","lastCode","e","stringToNumber","stringToBigInt","startsWithDot","octal","val$1","codePos","quote","chunkStart","INVALID_TEMPLATE_ESCAPE_ERROR","position","inTemplate","octalStr","word","escStart","esc","version","parse","parseExpressionAt","tokenizer","require_acorn_jsx","__commonJSMin","exports","module","XHTMLEntities","hexNumber","decimalNumber","acornJsxMap","getJsxTokens","acorn","acornJsx","tt","TokContext","TokenType","tc_oTag","tc_cTag","tc_expr","tokContexts","tokTypes","prevType","out","getQualifiedJSXName","object","options","Parser","plugin","tok","isNewLine","isIdentifierStart","isIdentifierChar","chunkStart","ch","normalizeCRLF","quote","str","count","entity","startPos","start","node","startLoc","name","newNode","nodeName","children","openingElement","closingElement","contents","fragmentOrElement","refShortHandDefaultPos","code","context","curContext","import_picomatch","resolve","toArray","array","BACKSLASH_REGEX","normalize$1","path","ABSOLUTE_PATH_REGEX","isAbsolute$1","getMatcherString","glob","cwd","patternToIdFilter","pattern","id","normalizedId","result","matcher","picomatch","patternToCodeFilter","code","createFilter","exclude","include","input","filter","normalizeFilter","createIdFilter","excludeFilter","includeFilter","createCodeFilter","createFilterForId","filterFunction","createFilterForTransform","idFilter","codeFilter","idFilterFunction","codeFilterFunction","fallback","normalizeObjectHook","name","hook","handler","hookFilter","parseImpl","parse","opts","isAbsolute","normalize","transformUse","data","plugin","transformLoader","id","normalizeAbsolutePath","filter","normalizeObjectHook","path","resolve","Buffer","createBuildContext","compiler","compilation","loaderContext","inputSourceMap","file","resolvedPath","parse","emittedFile","outFileName","sources","normalizeMessage","error","err","basename","dirname","resolve","fs","encodeVirtualModuleId","id","plugin","decodeVirtualModuleId","encoded","_plugin","isVirtualModuleId","FakeVirtualModulesPlugin","_","dir","compiler","counter","file","createRequire","resolve","Buffer","process","contextOptionsFromCompilation","compilation","file","require","getSource","fileSource","createBuildContext","options","compiler","loaderContext","inputSourceMap","parse","id","emittedFile","outFileName","normalizeMessage","error","err","createRequire","path","extname","isAbsolute","resolve","fs","Buffer$1","comma","semicolon","chars","intToChar","charToInt","i","c","decodeInteger","reader","relative","value","shift","integer","shouldNegate","encodeInteger","builder","num","delta","clamped","hasMoreVlq","max","bufLength","td","buf","out","StringWriter","v","buffer","pos","StringReader","char","idx","decode","mappings","length","reader","StringReader","decoded","genColumn","sourcesIndex","sourceLine","sourceColumn","namesIndex","semi","line","sorted","lastCol","seg","decodeInteger","hasMoreVlq","sort","sortComparator","a","b","encode","writer","StringWriter","i","semicolon","j","segment","comma","encodeInteger","schemeRegex","urlRegex","fileRegex","isAbsoluteUrl","input","isSchemeRelativeUrl","isAbsolutePath","isFileUrl","isRelative","parseAbsoluteUrl","match","makeUrl","parseFileUrl","path","scheme","user","host","port","query","hash","parseUrl","url","stripPathFilename","index","mergePaths","base","normalizePath","type","rel","pieces","pointer","positive","addTrailingSlash","i","piece","resolve","inputType","baseUrl","baseType","queryHash","stripFilename","path","index","resolver","mapUrl","sourceRoot","from","prefix","source","resolve","COLUMN","maybeSort","mappings","owned","unsortedIndex","nextUnsortedSegmentLine","i","sortSegments","start","isSorted","line","j","COLUMN","sortComparator","a","b","found","binarySearch","haystack","needle","low","high","mid","cmp","COLUMN","upperBound","index","i","lowerBound","memoizedState","memoizedBinarySearch","state","key","lastKey","lastNeedle","lastIndex","parse","map","LEAST_UPPER_BOUND","GREATEST_LOWER_BOUND","TraceMap","map","mapUrl","isString","parsed","parse","version","file","names","sourceRoot","sources","sourcesContent","resolve","resolver","mappings","maybeSort","memoizedState","decodedMappings","map","_a","decode","traceSegment","line","column","decoded","segments","index","traceSegmentInternal","GREATEST_LOWER_BOUND","traceSegmentInternal","segments","memo","line","column","bias","index","memoizedBinarySearch","found","LEAST_UPPER_BOUND","upperBound","lowerBound","SetArray","get","setarr","key","put","index","array","indexes","length","remove","i","k","COLUMN","SOURCES_INDEX","SOURCE_LINE","SOURCE_COLUMN","NAMES_INDEX","NO_NAME","GenMapping","file","sourceRoot","SetArray","maybeAddSegment","map","genLine","genColumn","source","sourceLine","sourceColumn","name","content","addSegmentInternal","setSourceContent","map","source","content","sources","sourcesContent","index","put","setIgnore","ignore","ignoreList","remove","toDecodedMap","mappings","names","removeEmptyFinalLines","toEncodedMap","decoded","encode","addSegmentInternal","skipable","map","genLine","genColumn","source","sourceLine","sourceColumn","name","content","mappings","sources","sourcesContent","names","line","getIndex","index","getColumnIndex","skipSourceless","insert","sourcesIndex","put","namesIndex","NO_NAME","skipSource","getIndex","arr","index","i","getColumnIndex","line","genColumn","current","COLUMN","insert","array","value","removeEmptyFinalLines","mappings","length","len","skipSourceless","line","index","skipSource","sourcesIndex","sourceLine","sourceColumn","namesIndex","prev","SOURCES_INDEX","SOURCE_LINE","SOURCE_COLUMN","NAMES_INDEX","NO_NAME","SOURCELESS_MAPPING","SegmentObject","EMPTY_SOURCES","source","line","column","name","content","ignore","Source","map","sources","MapSource","OriginalSource","traceMappings","tree","gen","GenMapping","rootSources","rootNames","rootMappings","decodedMappings","i","segments","j","segment","genCol","traced","originalPositionFor","maybeAddSegment","setSourceContent","setIgnore","traceSegment","asArray","value","buildSourceMapTree","input","loader","maps","m","TraceMap","build","importer","importerDepth","resolvedSources","sourcesContent","ignoreList","depth","children","sourceFile","ctx","sourceMap","sourceContent","ignored","SourceMap","options","out","toDecodedMap","toEncodedMap","remapping","opts","querystring","process$1","__require","createRequire","ExtToLoader$1","guessLoader$1","id","path","createBuildContext$1","build","watchFiles","file","emittedFile","outFileName","outdir","outPath","outDir","fs","parse","createPluginContext$1","buildContext","errors","warnings","error","warning","getBunPlugin","factory","userOptions","meta","plugins","toArray","p","context","plugin","resolveIdHooks","normalizeObjectHook","loadHooks","transformHooks","virtualModulePlugins","args","handler","filter","mixedContext","isEntry","result","errorMessage","e","isAbsolute","processLoadTransform","namespace","loader","code","hasResult","namespaceLoadHooks","h","namespaceTransformHooks","pluginName","ExtToLoader","guessLoader","unwrapLoader","fixSourceMap","map","Buffer$1","nullSourceMap","combineSourcemaps","filename","sourcemapList","m","mapIndex","remapping","sourcefile","createBuildContext","initialOptions","createPluginContext","message","normalizeMessage","processCodeWithSourceMap","getEsbuildPlugin","setupPlugins","setup","buildSetup","loaders","_options","callback","checkFilter","options","onLoadCb","fsContentsCache","onTransformCb","_result","rawBuild","onStart","onEnd","onResolve","onLoad","onTransform","onResolveFilter","onLoadFilter","resolveDir","createFarmContext","currentResolveId","extname","unpluginContext","convertEnforceToPriority","value","enforceToPriority","convertWatchEventChange","isString","variable","isObject","customParseQueryString","url","queryString","parsedParams","paramsArray","key","encodeStr","str","len","firstNullIndex","countNulls","pos","i","char","decodeStr","firstIndex","countBackslashZeros","getContentValue","content","startIndex","count","removeQuery","pathe","queryIndex","isStartsWithSlash","appendQuery","query","stringifyQuery","queryStr","CSS_LANGS_RES","JS_LANGS_RES","getCssModuleType","reg","lang","getJsModuleType","formatLoadModuleType","cssModuleType","jsModuleType","formatTransformModuleType","getFarmPlugin","rawPlugin","toFarmPlugin","farmPlugin","_buildStart","_","_resolveId","filters","params","resolvedIdPath","farmContext","resolveIdResult","_load","_transform","resource","_watchChange","param","updatePathContent","ModifiedPath","eventChange","_buildEnd","_writeBundle","getRollupPlugin","toRollupPlugin","nativeFilter","resolveIdHook","replaceHookHandler","supportNativeFilter","loadHook","transformHook","name","hook","framework","rollupVersion","major","minor","getRolldownPlugin","TRANSFORM_LOADER$1","resolve","LOAD_LOADER$1","getRspackPlugin","compiler","VIRTUAL_MODULE_PREFIX","rawPlugins","externalModules","vfs","FakeVirtualModulesPlugin","vfsModules","compilation","normalModuleFactory","resolveData","normalizeAbsolutePath","requestContext","importer","pluginContext","msg","resolved","isVirtual","isVirtualModuleId","encodedVirtualPath","encodeVirtualModuleId","fsPromise","decodeVirtualModuleId","data","transformUse","promises","getUnloaderPlugin","getVitePlugin","TRANSFORM_LOADER","LOAD_LOADER","getWebpackPlugin","VirtualModulesPlugin","resolverPlugin","resolver","target","request","resolveContext","fileDependencies","newRequest","shouldLoad","contextOptionsFromCompilation","createUnplugin","acorn_exports","__export","Node","Parser","Position","SourceLocation","TokContext","Token","TokenType","defaultOptions","getLineInfo","isIdentifierChar","isIdentifierStart","isNewLine","keywords","lineBreak","lineBreakG","nonASCIIwhitespace","parse","parseExpressionAt","types","types$1","tokenizer","version","astralIdentifierCodes","astralIdentifierStartCodes","nonASCIIidentifierChars","nonASCIIidentifierStartChars","reservedWords","ecma5AndLessKeywords","keywords$1","keywordRelationalOperator","nonASCIIidentifierStart","nonASCIIidentifier","isInAstralSet","code","set","pos","i","astral","label","conf","binop","name","prec","beforeExpr","startsExpr","kw","options","nextLineBreak","from","end","next","skipWhiteSpace","ref","hasOwnProperty","toString","hasOwn","obj","propName","isArray","regexpCache","wordsRegexp","words","codePointToString","loneSurrogate","line","col","n","p","start","input","offset","cur","nextBreak","warnedAboutEcmaVersion","getOptions","opts","opt","tokens","token","pushComment","array","block","text","startLoc","endLoc","comment","SCOPE_TOP","SCOPE_FUNCTION","SCOPE_ASYNC","SCOPE_GENERATOR","SCOPE_ARROW","SCOPE_SIMPLE_CATCH","SCOPE_SUPER","SCOPE_DIRECT_SUPER","SCOPE_CLASS_STATIC_BLOCK","SCOPE_CLASS_FIELD_INIT","SCOPE_SWITCH","SCOPE_VAR","functionFlags","async","generator","BIND_NONE","BIND_VAR","BIND_LEXICAL","BIND_FUNCTION","BIND_SIMPLE_CATCH","BIND_OUTSIDE","startPos","reserved","reservedStrict","prototypeAccessors","node","flags","plugins","len","cls","parser","pp$9","literal","match","spaceAfter","type","tokType","notNext","DestructuringErrors","refDestructuringErrors","isAssign","parens","andThrow","shorthandAssign","doubleProto","expr","pp$8","exports","stmt","list","loopLabel","switchLabel","context","skip","nextCh","ident","after","isAwaitUsing","isFor","usingEndPos","skipAfterUsing","ch","idStart","id","topLevel","starttype","kind","usingKind","maybeName","keyword","isBreak","lab","awaitAt","isLet","init$1","startsWithLet","isForOf","init$2","containsEsc","initPos","init","isAsync","declarationPosition","FUNC_STATEMENT","FUNC_HANGING_STATEMENT","sawDefault","isCase","empty$1","param","simple","clause","allowMissingInitializer","i$1","label$1","createNewLexicalScope","exitStrict","isForIn","decl","FUNC_NULLABLE_ID","statement","allowExpressionBody","forInit","oldYieldPos","oldAwaitPos","oldAwaitIdentPos","isStatement","oldStrict","privateNameMap","classBody","hadConstructor","element","isPrivateNameConflicted","constructorAllowsSuper","ecmaVersion","keyName","isGenerator","isStatic","lastValue","isConstructor","checkKeyName","allowsDirectSuper","method","key","value","field","oldLabels","declared","used","parent","curr","computed","spec","fNode","cNode","declaration","pat","prop","list$1","elt","decls","nodes","first","attributeKeys","attr","stringLiteral","statements","pp$7","isBinding","exprList","last","close","allowEmpty","allowTrailingComma","allowModifiers","elts","rest","elem","left","bindingType","checkClashes","isBind","isExpr","preserveSpace","override","pp$6","prevType","update","tokenCtx","out","statementParens","index","allowed","pp$5","propHash","other","redefinition","afterLeftParse","ownDestructuringErrors","oldParenAssign","oldTrailingComma","oldDoubleProto","leftStartPos","leftStartLoc","minPrec","logical","coalesce","op","right","sawUnary","incDec","isLocalVariableAccess","isPrivateFieldAccess","node$1","result","base","noCalls","maybeAsyncArrow","optionalChained","chainNode","optionalSupported","optional","node$2","forNew","canBeArrow","meta","errorPos","val","innerStartPos","innerStartLoc","lastIsComma","spreadStart","innerEndPos","innerEndLoc","par","item","empty","isTagged","curElt","isPattern","paramCount","allowDirectSuper","params","isArrowFunction","isMethod","isExpression","useStrict","nonSimple","allowDuplicates","nameHash","re","liberal","pp$4","message","loc","err","pp$3","Scope","scope","redeclared","scope$1","scope$2","scope$3","pp$2","finishNodeAt","newNode","scriptValuesAddedInUnicode","ecma9BinaryProperties","ecma10BinaryProperties","ecma11BinaryProperties","ecma12BinaryProperties","ecma13BinaryProperties","ecma14BinaryProperties","unicodeBinaryProperties","ecma14BinaryPropertiesOfStrings","unicodeBinaryPropertiesOfStrings","unicodeGeneralCategoryValues","ecma9ScriptValues","ecma10ScriptValues","ecma11ScriptValues","ecma12ScriptValues","ecma13ScriptValues","ecma14ScriptValues","unicodeScriptValues","data","buildUnicodeData","d","pp$1","BranchID","alt","self","RegExpValidationState","pattern","unicodeSets","unicode","forceU","s","l","chs","current","state","validFlags","u","v","flag","hasProp","_","trackDisjunction","lookbehind","noError","min","max","addModifiers","hasHyphen","modifier","removeModifiers","modifier$1","modifiers","isRegularExpressionModifier","isSyntaxCharacter","known","altID","isRegExpIdentifierStart","isRegExpIdentifierPart","isDecimalDigit","isControlLetter","switchU","lead","leadSurrogateEnd","trail","isValidUnicode","CharSetNone","CharSetOk","CharSetString","isCharacterClassEscape","negate","nameOrValue","isUnicodePropertyNameCharacter","isUnicodePropertyValueCharacter","ch$1","isOctalDigit","subResult","result$1","count","isClassSetReservedDoublePunctuatorCharacter","isClassSetSyntaxCharacter","isClassSetReservedPunctuator","isHexDigit","hexToInt","n1","n2","length","pp","ignoreEscapeSequenceInKeyword","this$1$1","curContext","startSkip","loop","next2","size","tokentype","next2$1","str","escaped","inClass","flagsStart","radix","maybeLegacyOctalNumericLiteral","allowSeparators","isLegacyOctalNumericLiteral","total","lastCode","e","stringToNumber","stringToBigInt","startsWithDot","octal","val$1","codePos","quote","chunkStart","INVALID_TEMPLATE_ESCAPE_ERROR","position","inTemplate","octalStr","word","escStart","esc","import_acorn_jsx","a","t","e","i","r","s","n","o","h","p","c","l","u","TokenType","d","m","TokContext","types$1","keywords","f","y","x","T","v","P","b","g","A","S","C","E","k","I","N","w","L","M","O","D","acorn_exports","_","R","j","F","B","H","q","U","V","K","z","stringify","OPERATOR_PRECEDENCE","NEEDS_PARENTHESES","EXPRESSIONS_PRECEDENCE","formatSequence","state","nodes","generator","length","i","param","expressionNeedsParenthesis","node","parentNode","isRightHand","nodePrecedence","parentNodePrecedence","formatExpression","reindent","text","indent","lineEnd","lines","end","formatComments","comments","comment","hasCallExpression","currentNode","type","formatVariableDeclaration","declarations","ForInStatement","FunctionDeclaration","RestElement","BinaryExpression","ArrayExpression","BlockStatement","GENERATOR","writeComments","statements","statement","statementIndent","precedence","caseIndent","occurences","occurencesCount","occurence","consequent","consequentCount","handler","init","left","superClass","specifiers","attributes","specifier","name","kind","params","quasis","expressions","expression","quasi","elements","element","propertyIndent","comma","properties","property","operator","argument","needsParentheses","isIn","test","regex","EMPTY_OBJECT","State","options","setup","EMPTY_OBJECT","GENERATOR","EXPRESSIONS_PRECEDENCE","code","node","type","mapping","length","column","line","i","lineEnd","generate","state","WalkerBase","node","parent","prop","index","SyncWalker","WalkerBase","enter","leave","node","parent","prop","index","_should_skip","_should_remove","_replacement","skipped","removed","key","value","nodes","i","item","isNode","walk","ast","enter","leave","SyncWalker","SOURCE_PROP","JSX_SOURCE_REGISTRY_SYMBOL","ParserTSX","Parser","D","acornJsx","ParserTS","getParser","filename","jsxGenerator","GENERATOR","node","state","child","attr","_node","_state","toRelativeSource","loc","projectRoot","root","isComponentName","name","isReactElementFactoryCall","callee","obj","prop","isSupportedComponentInit","createSourceAssignment","sourceValue","SOURCE_PROP","createMarkElementHelper","code","JSX_SOURCE_REGISTRY_SYMBOL","wrapWithMarkElement","transformSource","options","injectJsxSource","injectComponentSource","ast","modified","needsHelper","seenComponents","assignments","walk","parent","id","init","helper","n","assignment","index","exportNode","generate","VIRTUAL_CLIENT_MODULE_ID","RESOLVED_VIRTUAL_CLIENT_MODULE_ID","createClientInjector","locatorOptions","serialized","id","createViteClientInjector","options","command","locator","injectClient","DEFAULT_INCLUDE","DEFAULT_EXCLUDE","shouldTransform","id","include","exclude","includePatterns","pattern","_unplugin","createUnplugin","options","projectRoot","injectComponentSource","injectJsxSource","code","transformSource","unplugin","vitePlugin","injectClient","locator","rest","createViteClientInjector","webpackPlugin","rollupPlugin","esbuildPlugin","rspackPlugin","unplugin_default"]}