@galadrim/galadmin 0.1.32 → 0.1.34

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 (214) hide show
  1. package/dist/api.js +1 -0
  2. package/dist/api.js.map +1 -1
  3. package/dist/tsconfig.tsbuildinfo +1 -1
  4. package/package.json +1 -1
  5. package/src/api.ts +1 -0
  6. package/src/front/build/asset-manifest.json +3 -3
  7. package/src/front/build/index.html +1 -1
  8. package/src/front/build/static/js/main.4ce5340d.chunk.js +2 -0
  9. package/src/front/build/static/js/main.4ce5340d.chunk.js.map +1 -0
  10. package/src/front/node_modules/.cache/.eslintcache +1 -1
  11. package/src/front/node_modules/.cache/babel-loader/{a442b07ccfc975b334314fdb76b50b42.json → 04b67a528af96a9bceeadf265dfb56d2.json} +1 -1
  12. package/src/front/node_modules/.cache/babel-loader/cdf89c046963294c4cbf7482c8706cbc.json +1 -0
  13. package/src/front/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/c3/3e/f2b5b90044b7bdbb4cff67b2c09e24bb506274240d920de24bb4b678f3f00b80f7e9f0900cd1de883484031488d8603e97ea6b4e39a9c6ab5160353d3be9 +1 -0
  14. package/src/front/node_modules/.cache/terser-webpack-plugin/index-v5/6c/19/fe86ba5d7c4062f185480ad22dd3b9fae9b30149827224339f9a633a9a94 +1 -1
  15. package/src/front/node_modules/.cache/terser-webpack-plugin/index-v5/87/08/421190bfe6e50816e059da6c33526c9943732ef856ebd2752d0cbfb4a852 +1 -1
  16. package/src/front/node_modules/.cache/terser-webpack-plugin/index-v5/{b3/58/c0bc4ec69302d38ceac243da47ee7549ca88af7e0c89962c82ad9b304bbb → c2/e5/5451dd89bb0fd48f988bf27c7ee614c66eb91f7085c5b5c8cb33048d0c32} +1 -1
  17. package/src/front/node_modules/.package-lock.json +111 -78
  18. package/src/front/node_modules/@babel/code-frame/README.md +1 -1
  19. package/src/front/node_modules/@babel/code-frame/lib/index.js +15 -1
  20. package/src/front/node_modules/@babel/code-frame/lib/index.js.map +1 -1
  21. package/src/front/node_modules/@babel/code-frame/node_modules/ansi-styles/index.js +165 -0
  22. package/src/front/node_modules/@babel/code-frame/node_modules/ansi-styles/license +9 -0
  23. package/src/front/node_modules/@babel/code-frame/node_modules/ansi-styles/package.json +56 -0
  24. package/src/front/node_modules/@babel/code-frame/node_modules/ansi-styles/readme.md +147 -0
  25. package/src/front/node_modules/@babel/code-frame/node_modules/chalk/index.js +228 -0
  26. package/src/front/node_modules/@babel/code-frame/node_modules/chalk/index.js.flow +93 -0
  27. package/src/front/node_modules/@babel/code-frame/node_modules/chalk/license +9 -0
  28. package/src/front/node_modules/@babel/code-frame/node_modules/chalk/package.json +71 -0
  29. package/src/front/node_modules/@babel/code-frame/node_modules/chalk/readme.md +314 -0
  30. package/src/front/node_modules/@babel/code-frame/node_modules/chalk/templates.js +128 -0
  31. package/src/front/node_modules/@babel/code-frame/node_modules/chalk/types/index.d.ts +97 -0
  32. package/src/front/node_modules/@babel/code-frame/node_modules/supports-color/browser.js +5 -0
  33. package/src/front/node_modules/@babel/code-frame/node_modules/supports-color/index.js +131 -0
  34. package/src/front/node_modules/@babel/code-frame/node_modules/supports-color/license +9 -0
  35. package/src/front/node_modules/@babel/code-frame/node_modules/supports-color/package.json +53 -0
  36. package/src/front/node_modules/@babel/code-frame/node_modules/supports-color/readme.md +66 -0
  37. package/src/front/node_modules/@babel/code-frame/package.json +3 -2
  38. package/src/front/node_modules/@babel/compat-data/README.md +1 -1
  39. package/src/front/node_modules/@babel/compat-data/data/corejs2-built-ins.json +146 -0
  40. package/src/front/node_modules/@babel/compat-data/data/native-modules.json +1 -1
  41. package/src/front/node_modules/@babel/compat-data/data/plugin-bugfixes.json +17 -0
  42. package/src/front/node_modules/@babel/compat-data/data/plugins.json +76 -9
  43. package/src/front/node_modules/@babel/compat-data/package.json +4 -4
  44. package/src/front/node_modules/@babel/core/README.md +1 -1
  45. package/src/front/node_modules/@babel/core/cjs-proxy.cjs +3 -1
  46. package/src/front/node_modules/@babel/core/lib/config/config-chain.js +8 -7
  47. package/src/front/node_modules/@babel/core/lib/config/config-chain.js.map +1 -1
  48. package/src/front/node_modules/@babel/core/lib/config/config-descriptors.js +2 -1
  49. package/src/front/node_modules/@babel/core/lib/config/config-descriptors.js.map +1 -1
  50. package/src/front/node_modules/@babel/core/lib/config/full.js +2 -3
  51. package/src/front/node_modules/@babel/core/lib/config/full.js.map +1 -1
  52. package/src/front/node_modules/@babel/core/lib/config/index.js.map +1 -1
  53. package/src/front/node_modules/@babel/core/lib/config/item.js.map +1 -1
  54. package/src/front/node_modules/@babel/core/lib/config/printer.js.map +1 -1
  55. package/src/front/node_modules/@babel/core/lib/config/validation/option-assertions.js +1 -3
  56. package/src/front/node_modules/@babel/core/lib/config/validation/option-assertions.js.map +1 -1
  57. package/src/front/node_modules/@babel/core/lib/config/validation/options.js.map +1 -1
  58. package/src/front/node_modules/@babel/core/lib/config/validation/plugins.js +5 -2
  59. package/src/front/node_modules/@babel/core/lib/config/validation/plugins.js.map +1 -1
  60. package/src/front/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js +2 -1
  61. package/src/front/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js.map +1 -1
  62. package/src/front/node_modules/@babel/core/lib/index.js +2 -1
  63. package/src/front/node_modules/@babel/core/lib/index.js.map +1 -1
  64. package/src/front/node_modules/@babel/core/lib/transformation/file/generate.js.map +1 -1
  65. package/src/front/node_modules/@babel/core/lib/transformation/index.js +3 -1
  66. package/src/front/node_modules/@babel/core/lib/transformation/index.js.map +1 -1
  67. package/src/front/node_modules/@babel/core/lib/transformation/plugin-pass.js.map +1 -1
  68. package/src/front/node_modules/@babel/core/node_modules/semver/package.json +19 -9
  69. package/src/front/node_modules/@babel/core/node_modules/semver/semver.js +71 -24
  70. package/src/front/node_modules/@babel/core/package.json +12 -12
  71. package/src/front/node_modules/@babel/generator/README.md +1 -1
  72. package/src/front/node_modules/@babel/generator/lib/buffer.js +6 -6
  73. package/src/front/node_modules/@babel/generator/lib/buffer.js.map +1 -1
  74. package/src/front/node_modules/@babel/generator/lib/generators/classes.js +6 -6
  75. package/src/front/node_modules/@babel/generator/lib/generators/classes.js.map +1 -1
  76. package/src/front/node_modules/@babel/generator/lib/generators/methods.js.map +1 -1
  77. package/src/front/node_modules/@babel/generator/lib/generators/types.js +1 -1
  78. package/src/front/node_modules/@babel/generator/lib/generators/types.js.map +1 -1
  79. package/src/front/node_modules/@babel/generator/lib/index.js +2 -1
  80. package/src/front/node_modules/@babel/generator/lib/index.js.map +1 -1
  81. package/src/front/node_modules/@babel/generator/lib/printer.js +6 -6
  82. package/src/front/node_modules/@babel/generator/lib/printer.js.map +1 -1
  83. package/src/front/node_modules/@babel/generator/lib/source-map.js.map +1 -1
  84. package/src/front/node_modules/@babel/generator/package.json +5 -4
  85. package/src/front/node_modules/@babel/helper-compilation-targets/README.md +1 -1
  86. package/src/front/node_modules/@babel/helper-compilation-targets/lib/filter-items.js +2 -6
  87. package/src/front/node_modules/@babel/helper-compilation-targets/lib/filter-items.js.map +1 -1
  88. package/src/front/node_modules/@babel/helper-compilation-targets/lib/index.js +8 -4
  89. package/src/front/node_modules/@babel/helper-compilation-targets/lib/index.js.map +1 -1
  90. package/src/front/node_modules/@babel/helper-compilation-targets/lib/options.js +2 -1
  91. package/src/front/node_modules/@babel/helper-compilation-targets/lib/options.js.map +1 -1
  92. package/src/front/node_modules/@babel/helper-compilation-targets/lib/targets.js +1 -1
  93. package/src/front/node_modules/@babel/helper-compilation-targets/lib/targets.js.map +1 -1
  94. package/src/front/node_modules/@babel/helper-compilation-targets/node_modules/semver/package.json +19 -9
  95. package/src/front/node_modules/@babel/helper-compilation-targets/node_modules/semver/semver.js +71 -24
  96. package/src/front/node_modules/@babel/helper-compilation-targets/package.json +4 -8
  97. package/src/front/node_modules/@babel/helper-module-transforms/README.md +1 -1
  98. package/src/front/node_modules/@babel/helper-module-transforms/lib/dynamic-import.js +11 -12
  99. package/src/front/node_modules/@babel/helper-module-transforms/lib/dynamic-import.js.map +1 -1
  100. package/src/front/node_modules/@babel/helper-module-transforms/lib/index.js +15 -16
  101. package/src/front/node_modules/@babel/helper-module-transforms/lib/index.js.map +1 -1
  102. package/src/front/node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js +3 -4
  103. package/src/front/node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js.map +1 -1
  104. package/src/front/node_modules/@babel/helper-module-transforms/lib/rewrite-this.js +4 -5
  105. package/src/front/node_modules/@babel/helper-module-transforms/lib/rewrite-this.js.map +1 -1
  106. package/src/front/node_modules/@babel/helper-module-transforms/package.json +10 -6
  107. package/src/front/node_modules/@babel/helper-split-export-declaration/README.md +1 -1
  108. package/src/front/node_modules/@babel/helper-split-export-declaration/lib/index.js +5 -1
  109. package/src/front/node_modules/@babel/helper-split-export-declaration/lib/index.js.map +1 -1
  110. package/src/front/node_modules/@babel/helper-split-export-declaration/package.json +1 -1
  111. package/src/front/node_modules/@babel/helpers/README.md +1 -1
  112. package/src/front/node_modules/@babel/helpers/lib/helpers/dispose.js +9 -13
  113. package/src/front/node_modules/@babel/helpers/lib/helpers/dispose.js.map +1 -1
  114. package/src/front/node_modules/@babel/helpers/lib/helpers/regeneratorRuntime.js +2 -4
  115. package/src/front/node_modules/@babel/helpers/lib/helpers/regeneratorRuntime.js.map +1 -1
  116. package/src/front/node_modules/@babel/helpers/lib/helpers/using.js +1 -1
  117. package/src/front/node_modules/@babel/helpers/lib/helpers/using.js.map +1 -1
  118. package/src/front/node_modules/@babel/helpers/lib/helpers-generated.js +3 -3
  119. package/src/front/node_modules/@babel/helpers/lib/helpers-generated.js.map +1 -1
  120. package/src/front/node_modules/@babel/helpers/package.json +6 -6
  121. package/src/front/node_modules/@babel/highlight/README.md +1 -1
  122. package/src/front/node_modules/@babel/highlight/lib/index.js +20 -10
  123. package/src/front/node_modules/@babel/highlight/lib/index.js.map +1 -1
  124. package/src/front/node_modules/@babel/highlight/package.json +2 -3
  125. package/src/front/node_modules/@babel/parser/README.md +1 -1
  126. package/src/front/node_modules/@babel/parser/lib/index.js +116 -163
  127. package/src/front/node_modules/@babel/parser/lib/index.js.map +1 -1
  128. package/src/front/node_modules/@babel/parser/lib/options.js +6 -2
  129. package/src/front/node_modules/@babel/parser/lib/options.js.map +1 -1
  130. package/src/front/node_modules/@babel/parser/lib/parser/expression.js +4 -4
  131. package/src/front/node_modules/@babel/parser/lib/parser/expression.js.map +1 -1
  132. package/src/front/node_modules/@babel/parser/lib/parser/lval.js +6 -6
  133. package/src/front/node_modules/@babel/parser/lib/parser/lval.js.map +1 -1
  134. package/src/front/node_modules/@babel/parser/lib/parser/statement.js +21 -22
  135. package/src/front/node_modules/@babel/parser/lib/parser/statement.js.map +1 -1
  136. package/src/front/node_modules/@babel/parser/lib/parser/util.js +1 -1
  137. package/src/front/node_modules/@babel/parser/lib/parser/util.js.map +1 -1
  138. package/src/front/node_modules/@babel/parser/lib/plugins/flow/index.js +7 -7
  139. package/src/front/node_modules/@babel/parser/lib/plugins/flow/index.js.map +1 -1
  140. package/src/front/node_modules/@babel/parser/lib/plugins/flow/scope.js +2 -2
  141. package/src/front/node_modules/@babel/parser/lib/plugins/flow/scope.js.map +1 -1
  142. package/src/front/node_modules/@babel/parser/lib/plugins/placeholders.js +2 -1
  143. package/src/front/node_modules/@babel/parser/lib/plugins/placeholders.js.map +1 -1
  144. package/src/front/node_modules/@babel/parser/lib/plugins/typescript/index.js +16 -16
  145. package/src/front/node_modules/@babel/parser/lib/plugins/typescript/index.js.map +1 -1
  146. package/src/front/node_modules/@babel/parser/lib/plugins/typescript/scope.js +16 -14
  147. package/src/front/node_modules/@babel/parser/lib/plugins/typescript/scope.js.map +1 -1
  148. package/src/front/node_modules/@babel/parser/lib/util/class-scope.js +5 -5
  149. package/src/front/node_modules/@babel/parser/lib/util/class-scope.js.map +1 -1
  150. package/src/front/node_modules/@babel/parser/lib/util/expression-scope.js +7 -12
  151. package/src/front/node_modules/@babel/parser/lib/util/expression-scope.js.map +1 -1
  152. package/src/front/node_modules/@babel/parser/lib/util/scope.js +23 -23
  153. package/src/front/node_modules/@babel/parser/lib/util/scope.js.map +1 -1
  154. package/src/front/node_modules/@babel/parser/lib/util/scopeflags.js +60 -99
  155. package/src/front/node_modules/@babel/parser/lib/util/scopeflags.js.map +1 -1
  156. package/src/front/node_modules/@babel/parser/package.json +3 -3
  157. package/src/front/node_modules/@babel/traverse/README.md +1 -1
  158. package/src/front/node_modules/@babel/traverse/lib/cache.js +24 -3
  159. package/src/front/node_modules/@babel/traverse/lib/cache.js.map +1 -1
  160. package/src/front/node_modules/@babel/traverse/lib/index.js +5 -3
  161. package/src/front/node_modules/@babel/traverse/lib/index.js.map +1 -1
  162. package/src/front/node_modules/@babel/traverse/lib/path/context.js.map +1 -1
  163. package/src/front/node_modules/@babel/traverse/lib/path/conversion.js +1 -4
  164. package/src/front/node_modules/@babel/traverse/lib/path/conversion.js.map +1 -1
  165. package/src/front/node_modules/@babel/traverse/lib/path/index.js +2 -6
  166. package/src/front/node_modules/@babel/traverse/lib/path/index.js.map +1 -1
  167. package/src/front/node_modules/@babel/traverse/lib/path/lib/hoister.js.map +1 -1
  168. package/src/front/node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js +9 -7
  169. package/src/front/node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js.map +1 -1
  170. package/src/front/node_modules/@babel/traverse/lib/path/lib/virtual-types.js.map +1 -1
  171. package/src/front/node_modules/@babel/traverse/lib/path/modification.js +3 -2
  172. package/src/front/node_modules/@babel/traverse/lib/path/modification.js.map +1 -1
  173. package/src/front/node_modules/@babel/traverse/lib/path/removal.js +3 -1
  174. package/src/front/node_modules/@babel/traverse/lib/path/removal.js.map +1 -1
  175. package/src/front/node_modules/@babel/traverse/lib/path/replacement.js +4 -4
  176. package/src/front/node_modules/@babel/traverse/lib/path/replacement.js.map +1 -1
  177. package/src/front/node_modules/@babel/traverse/lib/scope/index.js +23 -10
  178. package/src/front/node_modules/@babel/traverse/lib/scope/index.js.map +1 -1
  179. package/src/front/node_modules/@babel/traverse/lib/traverse-node.js +6 -2
  180. package/src/front/node_modules/@babel/traverse/lib/traverse-node.js.map +1 -1
  181. package/src/front/node_modules/@babel/traverse/lib/types.js.map +1 -1
  182. package/src/front/node_modules/@babel/traverse/lib/visitors.js +22 -15
  183. package/src/front/node_modules/@babel/traverse/lib/visitors.js.map +1 -1
  184. package/src/front/node_modules/@babel/traverse/package.json +7 -6
  185. package/src/front/node_modules/@babel/types/README.md +1 -1
  186. package/src/front/node_modules/@babel/types/lib/ast-types/generated/index.js.map +1 -1
  187. package/src/front/node_modules/@babel/types/lib/converters/toStatement.js.map +1 -1
  188. package/src/front/node_modules/@babel/types/lib/definitions/core.js +8 -1
  189. package/src/front/node_modules/@babel/types/lib/definitions/core.js.map +1 -1
  190. package/src/front/node_modules/@babel/types/lib/index.d.ts +11 -10
  191. package/src/front/node_modules/@babel/types/lib/validators/generated/index.js.map +1 -1
  192. package/src/front/node_modules/@babel/types/lib/validators/isType.js +1 -0
  193. package/src/front/node_modules/@babel/types/lib/validators/isType.js.map +1 -1
  194. package/src/front/node_modules/@babel/types/package.json +3 -4
  195. package/src/front/node_modules/react-scripts/node_modules/@babel/core/node_modules/semver/package.json +19 -9
  196. package/src/front/node_modules/react-scripts/node_modules/@babel/core/node_modules/semver/semver.js +68 -26
  197. package/src/front/node_modules/typescript/lib/tsc.js +16 -19
  198. package/src/front/node_modules/typescript/lib/tsserver.js +22 -24
  199. package/src/front/node_modules/typescript/lib/tsserverlibrary.d.ts +0 -1
  200. package/src/front/node_modules/typescript/lib/tsserverlibrary.js +22 -24
  201. package/src/front/node_modules/typescript/lib/typescript.d.ts +0 -1
  202. package/src/front/node_modules/typescript/lib/typescript.js +22 -24
  203. package/src/front/node_modules/typescript/lib/typingsInstaller.js +1 -1
  204. package/src/front/node_modules/typescript/package.json +1 -1
  205. package/src/front/package-lock.json +212 -153
  206. package/src/front/src/components/Input.js +6 -0
  207. package/src/front/src/components/Sidebar.js +2 -2
  208. package/src/front/build/static/js/main.405f6f90.chunk.js +0 -2
  209. package/src/front/build/static/js/main.405f6f90.chunk.js.map +0 -1
  210. package/src/front/node_modules/.cache/babel-loader/964c56108bc43622244156806407d3d8.json +0 -1
  211. package/src/front/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/00/35/f206f48274d030c7a1e2457996323f694ca72c9ec94bddb8ecc8f37aa4632918182acf152491e9b475b95f567493b47644434cdb77f795b23c0b8392aaf7 +0 -1
  212. package/src/front/node_modules/@babel/core/node_modules/semver/CHANGELOG.md +0 -70
  213. package/src/front/node_modules/@babel/helper-compilation-targets/node_modules/semver/CHANGELOG.md +0 -70
  214. package/src/front/node_modules/react-scripts/node_modules/@babel/core/node_modules/semver/CHANGELOG.md +0 -39
@@ -18,7 +18,7 @@ class FlowScopeHandler extends _scope.default {
18
18
  }
19
19
  declareName(name, bindingType, loc) {
20
20
  const scope = this.currentScope();
21
- if (bindingType & _scopeflags.BIND_FLAGS_FLOW_DECLARE_FN) {
21
+ if (bindingType & _scopeflags.BindingFlag.FLAG_FLOW_DECLARE_FN) {
22
22
  this.checkRedeclarationInScope(scope, name, bindingType, loc);
23
23
  this.maybeExportDefined(scope, name);
24
24
  scope.declareFunctions.add(name);
@@ -28,7 +28,7 @@ class FlowScopeHandler extends _scope.default {
28
28
  }
29
29
  isRedeclaredInScope(scope, name, bindingType) {
30
30
  if (super.isRedeclaredInScope(scope, name, bindingType)) return true;
31
- if (bindingType & _scopeflags.BIND_FLAGS_FLOW_DECLARE_FN) {
31
+ if (bindingType & _scopeflags.BindingFlag.FLAG_FLOW_DECLARE_FN) {
32
32
  return !scope.declareFunctions.has(name) && (scope.lexical.has(name) || scope.functions.has(name));
33
33
  }
34
34
  return false;
@@ -1 +1 @@
1
- {"version":3,"names":["_scope","require","_scopeflags","FlowScope","Scope","constructor","args","declareFunctions","Set","FlowScopeHandler","ScopeHandler","createScope","flags","declareName","name","bindingType","loc","scope","currentScope","BIND_FLAGS_FLOW_DECLARE_FN","checkRedeclarationInScope","maybeExportDefined","add","isRedeclaredInScope","has","lexical","functions","checkLocalExport","id","scopeStack","exports","default"],"sources":["../../../src/plugins/flow/scope.ts"],"sourcesContent":["import type { Position } from \"../../util/location\";\nimport ScopeHandler, { Scope } from \"../../util/scope\";\nimport {\n BIND_FLAGS_FLOW_DECLARE_FN,\n type ScopeFlags,\n type BindingTypes,\n} from \"../../util/scopeflags\";\nimport type * as N from \"../../types\";\n\n// Reference implementation: https://github.com/facebook/flow/blob/23aeb2a2ef6eb4241ce178fde5d8f17c5f747fb5/src/typing/env.ml#L536-L584\nclass FlowScope extends Scope {\n // declare function foo(): type;\n declareFunctions: Set<string> = new Set();\n}\n\nexport default class FlowScopeHandler extends ScopeHandler<FlowScope> {\n createScope(flags: ScopeFlags): FlowScope {\n return new FlowScope(flags);\n }\n\n declareName(name: string, bindingType: BindingTypes, loc: Position) {\n const scope = this.currentScope();\n if (bindingType & BIND_FLAGS_FLOW_DECLARE_FN) {\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n this.maybeExportDefined(scope, name);\n scope.declareFunctions.add(name);\n return;\n }\n\n super.declareName(name, bindingType, loc);\n }\n\n isRedeclaredInScope(\n scope: FlowScope,\n name: string,\n bindingType: BindingTypes,\n ): boolean {\n if (super.isRedeclaredInScope(scope, name, bindingType)) return true;\n\n if (bindingType & BIND_FLAGS_FLOW_DECLARE_FN) {\n return (\n !scope.declareFunctions.has(name) &&\n (scope.lexical.has(name) || scope.functions.has(name))\n );\n }\n\n return false;\n }\n\n checkLocalExport(id: N.Identifier) {\n if (!this.scopeStack[0].declareFunctions.has(id.name)) {\n super.checkLocalExport(id);\n }\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAQA,MAAME,SAAS,SAASC,YAAK,CAAC;EAAAC,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAA,KAE5BC,gBAAgB,GAAgB,IAAIC,GAAG,CAAC,CAAC;EAAA;AAC3C;AAEe,MAAMC,gBAAgB,SAASC,cAAY,CAAY;EACpEC,WAAWA,CAACC,KAAiB,EAAa;IACxC,OAAO,IAAIT,SAAS,CAACS,KAAK,CAAC;EAC7B;EAEAC,WAAWA,CAACC,IAAY,EAAEC,WAAyB,EAAEC,GAAa,EAAE;IAClE,MAAMC,KAAK,GAAG,IAAI,CAACC,YAAY,CAAC,CAAC;IACjC,IAAIH,WAAW,GAAGI,sCAA0B,EAAE;MAC5C,IAAI,CAACC,yBAAyB,CAACH,KAAK,EAAEH,IAAI,EAAEC,WAAW,EAAEC,GAAG,CAAC;MAC7D,IAAI,CAACK,kBAAkB,CAACJ,KAAK,EAAEH,IAAI,CAAC;MACpCG,KAAK,CAACV,gBAAgB,CAACe,GAAG,CAACR,IAAI,CAAC;MAChC;IACF;IAEA,KAAK,CAACD,WAAW,CAACC,IAAI,EAAEC,WAAW,EAAEC,GAAG,CAAC;EAC3C;EAEAO,mBAAmBA,CACjBN,KAAgB,EAChBH,IAAY,EACZC,WAAyB,EAChB;IACT,IAAI,KAAK,CAACQ,mBAAmB,CAACN,KAAK,EAAEH,IAAI,EAAEC,WAAW,CAAC,EAAE,OAAO,IAAI;IAEpE,IAAIA,WAAW,GAAGI,sCAA0B,EAAE;MAC5C,OACE,CAACF,KAAK,CAACV,gBAAgB,CAACiB,GAAG,CAACV,IAAI,CAAC,KAChCG,KAAK,CAACQ,OAAO,CAACD,GAAG,CAACV,IAAI,CAAC,IAAIG,KAAK,CAACS,SAAS,CAACF,GAAG,CAACV,IAAI,CAAC,CAAC;IAE1D;IAEA,OAAO,KAAK;EACd;EAEAa,gBAAgBA,CAACC,EAAgB,EAAE;IACjC,IAAI,CAAC,IAAI,CAACC,UAAU,CAAC,CAAC,CAAC,CAACtB,gBAAgB,CAACiB,GAAG,CAACI,EAAE,CAACd,IAAI,CAAC,EAAE;MACrD,KAAK,CAACa,gBAAgB,CAACC,EAAE,CAAC;IAC5B;EACF;AACF;AAACE,OAAA,CAAAC,OAAA,GAAAtB,gBAAA"}
1
+ {"version":3,"names":["_scope","require","_scopeflags","FlowScope","Scope","constructor","args","declareFunctions","Set","FlowScopeHandler","ScopeHandler","createScope","flags","declareName","name","bindingType","loc","scope","currentScope","BindingFlag","FLAG_FLOW_DECLARE_FN","checkRedeclarationInScope","maybeExportDefined","add","isRedeclaredInScope","has","lexical","functions","checkLocalExport","id","scopeStack","exports","default"],"sources":["../../../src/plugins/flow/scope.ts"],"sourcesContent":["import type { Position } from \"../../util/location\";\nimport ScopeHandler, { Scope } from \"../../util/scope\";\nimport {\n BindingFlag,\n type ScopeFlag,\n type BindingTypes,\n} from \"../../util/scopeflags\";\nimport type * as N from \"../../types\";\n\n// Reference implementation: https://github.com/facebook/flow/blob/23aeb2a2ef6eb4241ce178fde5d8f17c5f747fb5/src/typing/env.ml#L536-L584\nclass FlowScope extends Scope {\n // declare function foo(): type;\n declareFunctions: Set<string> = new Set();\n}\n\nexport default class FlowScopeHandler extends ScopeHandler<FlowScope> {\n createScope(flags: ScopeFlag): FlowScope {\n return new FlowScope(flags);\n }\n\n declareName(name: string, bindingType: BindingTypes, loc: Position) {\n const scope = this.currentScope();\n if (bindingType & BindingFlag.FLAG_FLOW_DECLARE_FN) {\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n this.maybeExportDefined(scope, name);\n scope.declareFunctions.add(name);\n return;\n }\n\n super.declareName(name, bindingType, loc);\n }\n\n isRedeclaredInScope(\n scope: FlowScope,\n name: string,\n bindingType: BindingTypes,\n ): boolean {\n if (super.isRedeclaredInScope(scope, name, bindingType)) return true;\n\n if (bindingType & BindingFlag.FLAG_FLOW_DECLARE_FN) {\n return (\n !scope.declareFunctions.has(name) &&\n (scope.lexical.has(name) || scope.functions.has(name))\n );\n }\n\n return false;\n }\n\n checkLocalExport(id: N.Identifier) {\n if (!this.scopeStack[0].declareFunctions.has(id.name)) {\n super.checkLocalExport(id);\n }\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAQA,MAAME,SAAS,SAASC,YAAK,CAAC;EAAAC,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAA,KAE5BC,gBAAgB,GAAgB,IAAIC,GAAG,CAAC,CAAC;EAAA;AAC3C;AAEe,MAAMC,gBAAgB,SAASC,cAAY,CAAY;EACpEC,WAAWA,CAACC,KAAgB,EAAa;IACvC,OAAO,IAAIT,SAAS,CAACS,KAAK,CAAC;EAC7B;EAEAC,WAAWA,CAACC,IAAY,EAAEC,WAAyB,EAAEC,GAAa,EAAE;IAClE,MAAMC,KAAK,GAAG,IAAI,CAACC,YAAY,CAAC,CAAC;IACjC,IAAIH,WAAW,GAAGI,uBAAW,CAACC,oBAAoB,EAAE;MAClD,IAAI,CAACC,yBAAyB,CAACJ,KAAK,EAAEH,IAAI,EAAEC,WAAW,EAAEC,GAAG,CAAC;MAC7D,IAAI,CAACM,kBAAkB,CAACL,KAAK,EAAEH,IAAI,CAAC;MACpCG,KAAK,CAACV,gBAAgB,CAACgB,GAAG,CAACT,IAAI,CAAC;MAChC;IACF;IAEA,KAAK,CAACD,WAAW,CAACC,IAAI,EAAEC,WAAW,EAAEC,GAAG,CAAC;EAC3C;EAEAQ,mBAAmBA,CACjBP,KAAgB,EAChBH,IAAY,EACZC,WAAyB,EAChB;IACT,IAAI,KAAK,CAACS,mBAAmB,CAACP,KAAK,EAAEH,IAAI,EAAEC,WAAW,CAAC,EAAE,OAAO,IAAI;IAEpE,IAAIA,WAAW,GAAGI,uBAAW,CAACC,oBAAoB,EAAE;MAClD,OACE,CAACH,KAAK,CAACV,gBAAgB,CAACkB,GAAG,CAACX,IAAI,CAAC,KAChCG,KAAK,CAACS,OAAO,CAACD,GAAG,CAACX,IAAI,CAAC,IAAIG,KAAK,CAACU,SAAS,CAACF,GAAG,CAACX,IAAI,CAAC,CAAC;IAE1D;IAEA,OAAO,KAAK;EACd;EAEAc,gBAAgBA,CAACC,EAAgB,EAAE;IACjC,IAAI,CAAC,IAAI,CAACC,UAAU,CAAC,CAAC,CAAC,CAACvB,gBAAgB,CAACkB,GAAG,CAACI,EAAE,CAACf,IAAI,CAAC,EAAE;MACrD,KAAK,CAACc,gBAAgB,CAACC,EAAE,CAAC;IAC5B;EACF;AACF;AAACE,OAAA,CAAAC,OAAA,GAAAvB,gBAAA"}
@@ -73,7 +73,8 @@ var _default = superClass => class PlaceholdersParserMixin extends superClass {
73
73
  super.verifyBreakContinue(node, isBreak);
74
74
  }
75
75
  parseExpressionStatement(node, expr) {
76
- if (expr.type !== "Placeholder" || expr.extra && expr.extra.parenthesized) {
76
+ var _expr$extra;
77
+ if (expr.type !== "Placeholder" || (_expr$extra = expr.extra) != null && _expr$extra.parenthesized) {
77
78
  return super.parseExpressionStatement(node, expr);
78
79
  }
79
80
  if (this.match(14)) {
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","_parseError","PlaceholderErrors","ParseErrorEnum","ClassNameIsRequired","UnexpectedSpace","_default","superClass","PlaceholdersParserMixin","parsePlaceholder","expectedNode","match","node","startNode","next","assertNoSpace","name","parseIdentifier","expect","finishPlaceholder","isFinished","type","finishNode","getTokenFromCode","code","input","charCodeAt","state","pos","finishOp","parseExprAtom","refExpressionErrors","liberal","checkReservedWord","word","startLoc","checkKeywords","isBinding","undefined","parseBindingAtom","isValidLVal","isParenthesized","binding","toAssignable","isLHS","chStartsBindingIdentifier","ch","nextToken","lookahead","verifyBreakContinue","isBreak","label","parseExpressionStatement","expr","extra","parenthesized","stmt","body","parseStatementOrSloppyAnnexBFunctionDeclaration","semicolon","parseBlock","allowDirectives","createNewLexicalScope","afterBlockParse","parseFunctionId","requireId","parseClass","isStatement","optionalId","oldStrict","strict","placeholder","id","raise","at","parseClassId","parseClassSuper","parseClassBody","parseExport","decorators","isContextual","specifiers","source","declaration","expectPlugin","specifier","exported","isExportDefaultSpecifier","nextTokenStart","isUnparsedContextual","startsWith","tokenLabelName","nextTokenStartSince","maybeParseExportDefaultSpecifier","maybeDefaultIdentifier","_specifiers","length","checkExport","filter","parseImport","startNodeAtNode","local","push","eat","hasStarImport","maybeParseStarImportSpecifier","parseNamedImportSpecifiers","expectContextual","parseImportSource","start","lastTokEndLoc","index","exports","default"],"sources":["../../src/plugins/placeholders.ts"],"sourcesContent":["import * as charCodes from \"charcodes\";\n\nimport { tokenLabelName, tt } from \"../tokenizer/types\";\nimport type Parser from \"../parser\";\nimport type * as N from \"../types\";\nimport { ParseErrorEnum } from \"../parse-error\";\nimport type { Undone } from \"../parser/node\";\nimport type { ExpressionErrors } from \"../parser/util\";\nimport type { BindingTypes } from \"../util/scopeflags\";\nimport type { Position } from \"../util/location\";\n\ntype PossiblePlaceholders = {\n Identifier: N.Identifier;\n StringLiteral: N.StringLiteral;\n Expression: N.Expression;\n Statement: N.Statement;\n Declaration: N.Declaration;\n BlockStatement: N.BlockStatement;\n ClassBody: N.ClassBody;\n Pattern: N.Pattern;\n};\nexport type PlaceholderTypes = keyof PossiblePlaceholders;\n\ntype NodeOf<T extends keyof PossiblePlaceholders> = PossiblePlaceholders[T];\n// todo: when there is proper union type for Node\n// type NodeOf<T extends PlaceholderTypes> = Extract<N.Node, { type: T }>;\n\n// todo: Placeholder<T> breaks everything, because its type is incompatible with\n// the substituted nodes.\ntype MaybePlaceholder<T extends PlaceholderTypes> = NodeOf<T>; // | Placeholder<T>\n\n/* eslint sort-keys: \"error\" */\nconst PlaceholderErrors = ParseErrorEnum`placeholders`({\n ClassNameIsRequired: \"A class name is required.\",\n UnexpectedSpace: \"Unexpected space in placeholder.\",\n});\n\n/* eslint-disable sort-keys */\n\nexport default (superClass: typeof Parser) =>\n class PlaceholdersParserMixin extends superClass implements Parser {\n parsePlaceholder<T extends PlaceholderTypes>(\n expectedNode: T,\n ): /*?N.Placeholder<T>*/ MaybePlaceholder<T> | undefined | null {\n if (this.match(tt.placeholder)) {\n const node = this.startNode();\n this.next();\n this.assertNoSpace();\n\n // We can't use this.parseIdentifier because\n // we don't want nested placeholders.\n node.name = super.parseIdentifier(/* liberal */ true);\n\n this.assertNoSpace();\n this.expect(tt.placeholder);\n // @ts-expect-error placeholder typings\n return this.finishPlaceholder(node, expectedNode);\n }\n }\n\n finishPlaceholder<T extends PlaceholderTypes>(\n node: N.Node,\n expectedNode: T,\n ): /*N.Placeholder<T>*/ MaybePlaceholder<T> {\n const isFinished = !!(node.expectedNode && node.type === \"Placeholder\");\n node.expectedNode = expectedNode;\n\n // @ts-expect-error todo(flow->ts)\n return isFinished ? node : this.finishNode(node, \"Placeholder\");\n }\n\n /* ============================================================ *\n * tokenizer/index.js *\n * ============================================================ */\n\n getTokenFromCode(code: number) {\n if (\n code === charCodes.percentSign &&\n this.input.charCodeAt(this.state.pos + 1) === charCodes.percentSign\n ) {\n this.finishOp(tt.placeholder, 2);\n } else {\n super.getTokenFromCode(code);\n }\n }\n\n /* ============================================================ *\n * parser/expression.js *\n * ============================================================ */\n\n parseExprAtom(\n refExpressionErrors?: ExpressionErrors | null,\n ): MaybePlaceholder<\"Expression\"> {\n return (\n this.parsePlaceholder(\"Expression\") ||\n super.parseExprAtom(refExpressionErrors)\n );\n }\n\n parseIdentifier(liberal?: boolean): MaybePlaceholder<\"Identifier\"> {\n // NOTE: This function only handles identifiers outside of\n // expressions and binding patterns, since they are already\n // handled by the parseExprAtom and parseBindingAtom functions.\n // This is needed, for example, to parse \"class %%NAME%% {}\".\n return (\n this.parsePlaceholder(\"Identifier\") || super.parseIdentifier(liberal)\n );\n }\n\n checkReservedWord(\n word: string,\n startLoc: Position,\n checkKeywords: boolean,\n isBinding: boolean,\n ) {\n // Sometimes we call #checkReservedWord(node.name), expecting\n // that node is an Identifier. If it is a Placeholder, name\n // will be undefined.\n if (word !== undefined) {\n super.checkReservedWord(word, startLoc, checkKeywords, isBinding);\n }\n }\n\n /* ============================================================ *\n * parser/lval.js *\n * ============================================================ */\n\n parseBindingAtom(): MaybePlaceholder<\"Pattern\"> {\n return this.parsePlaceholder(\"Pattern\") || super.parseBindingAtom();\n }\n\n isValidLVal(type: string, isParenthesized: boolean, binding: BindingTypes) {\n return (\n type === \"Placeholder\" ||\n super.isValidLVal(type, isParenthesized, binding)\n );\n }\n\n toAssignable(node: N.Node, isLHS: boolean): void {\n if (\n node &&\n node.type === \"Placeholder\" &&\n node.expectedNode === \"Expression\"\n ) {\n node.expectedNode = \"Pattern\";\n } else {\n super.toAssignable(node, isLHS);\n }\n }\n\n /* ============================================================ *\n * parser/statement.js *\n * ============================================================ */\n\n chStartsBindingIdentifier(ch: number, pos: number): boolean {\n if (super.chStartsBindingIdentifier(ch, pos)) {\n return true;\n }\n\n // Accept \"let %%\" as the start of \"let %%placeholder%%\", as though the\n // placeholder were an identifier.\n const nextToken = this.lookahead();\n if (nextToken.type === tt.placeholder) {\n return true;\n }\n\n return false;\n }\n\n verifyBreakContinue(\n node: N.BreakStatement | N.ContinueStatement,\n isBreak: boolean,\n ) {\n // @ts-expect-error: node.label could be Placeholder\n if (node.label && node.label.type === \"Placeholder\") return;\n super.verifyBreakContinue(node, isBreak);\n }\n\n // @ts-expect-error Plugin will override parser interface\n parseExpressionStatement(\n node: MaybePlaceholder<\"Statement\">,\n expr: N.Expression,\n ): MaybePlaceholder<\"Statement\"> {\n if (\n expr.type !== \"Placeholder\" ||\n (expr.extra && expr.extra.parenthesized)\n ) {\n // @ts-expect-error placeholder typings\n return super.parseExpressionStatement(node, expr);\n }\n\n if (this.match(tt.colon)) {\n // @ts-expect-error placeholder typings\n const stmt: N.LabeledStatement = node;\n stmt.label = this.finishPlaceholder(expr, \"Identifier\");\n this.next();\n stmt.body = super.parseStatementOrSloppyAnnexBFunctionDeclaration();\n return this.finishNode(stmt, \"LabeledStatement\");\n }\n\n this.semicolon();\n node.name = expr.name;\n return this.finishPlaceholder(node, \"Statement\");\n }\n\n parseBlock(\n allowDirectives?: boolean,\n createNewLexicalScope?: boolean,\n afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n ): MaybePlaceholder<\"BlockStatement\"> {\n return (\n this.parsePlaceholder(\"BlockStatement\") ||\n super.parseBlock(\n allowDirectives,\n createNewLexicalScope,\n afterBlockParse,\n )\n );\n }\n\n parseFunctionId(\n requireId?: boolean,\n ): MaybePlaceholder<\"Identifier\"> | undefined | null {\n return (\n this.parsePlaceholder(\"Identifier\") || super.parseFunctionId(requireId)\n );\n }\n // @ts-expect-error Plugin will override parser interface\n parseClass<T extends N.Class>(\n node: T,\n isStatement: /* T === ClassDeclaration */ boolean,\n optionalId?: boolean,\n ): T {\n const type = isStatement ? \"ClassDeclaration\" : \"ClassExpression\";\n\n this.next();\n const oldStrict = this.state.strict;\n\n const placeholder = this.parsePlaceholder(\"Identifier\");\n if (placeholder) {\n if (\n this.match(tt._extends) ||\n this.match(tt.placeholder) ||\n this.match(tt.braceL)\n ) {\n node.id = placeholder;\n } else if (optionalId || !isStatement) {\n node.id = null;\n node.body = this.finishPlaceholder(placeholder, \"ClassBody\");\n return this.finishNode(node, type);\n } else {\n throw this.raise(PlaceholderErrors.ClassNameIsRequired, {\n at: this.state.startLoc,\n });\n }\n } else {\n this.parseClassId(node, isStatement, optionalId);\n }\n\n super.parseClassSuper(node);\n node.body =\n this.parsePlaceholder(\"ClassBody\") ||\n super.parseClassBody(!!node.superClass, oldStrict);\n return this.finishNode(node, type);\n }\n\n parseExport(node: N.Node, decorators: N.Decorator[] | null): N.AnyExport {\n const placeholder = this.parsePlaceholder(\"Identifier\");\n if (!placeholder) return super.parseExport(node, decorators);\n\n if (!this.isContextual(tt._from) && !this.match(tt.comma)) {\n // export %%DECL%%;\n node.specifiers = [];\n node.source = null;\n node.declaration = this.finishPlaceholder(placeholder, \"Declaration\");\n return this.finishNode(node, \"ExportNamedDeclaration\");\n }\n\n // export %%NAME%% from \"foo\";\n this.expectPlugin(\"exportDefaultFrom\");\n const specifier = this.startNode();\n specifier.exported = placeholder;\n node.specifiers = [this.finishNode(specifier, \"ExportDefaultSpecifier\")];\n\n return super.parseExport(node, decorators);\n }\n\n isExportDefaultSpecifier(): boolean {\n if (this.match(tt._default)) {\n const next = this.nextTokenStart();\n if (this.isUnparsedContextual(next, \"from\")) {\n if (\n this.input.startsWith(\n tokenLabelName(tt.placeholder),\n this.nextTokenStartSince(next + 4),\n )\n ) {\n return true;\n }\n }\n }\n return super.isExportDefaultSpecifier();\n }\n\n maybeParseExportDefaultSpecifier(\n node: Undone<\n | N.ExportDefaultDeclaration\n | N.ExportAllDeclaration\n | N.ExportNamedDeclaration\n >,\n maybeDefaultIdentifier: N.Identifier | null,\n ): node is Undone<N.ExportNamedDeclaration> {\n if ((node as N.ExportNamedDeclaration).specifiers?.length) {\n // \"export %%NAME%%\" has already been parsed by #parseExport.\n return true;\n }\n return super.maybeParseExportDefaultSpecifier(\n node,\n maybeDefaultIdentifier,\n );\n }\n\n checkExport(node: N.ExportNamedDeclaration): void {\n const { specifiers } = node;\n if (specifiers?.length) {\n node.specifiers = specifiers.filter(\n // @ts-expect-error placeholder typings\n node => node.exported.type === \"Placeholder\",\n );\n }\n super.checkExport(node);\n node.specifiers = specifiers;\n }\n\n parseImport(\n node: Undone<N.ImportDeclaration>,\n ): N.ImportDeclaration | N.TsImportEqualsDeclaration {\n const placeholder = this.parsePlaceholder(\"Identifier\");\n if (!placeholder) return super.parseImport(node);\n\n node.specifiers = [];\n\n if (!this.isContextual(tt._from) && !this.match(tt.comma)) {\n // import %%STRING%%;\n node.source = this.finishPlaceholder(placeholder, \"StringLiteral\");\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\");\n }\n\n // import %%DEFAULT%% ...\n const specifier =\n this.startNodeAtNode<N.ImportDefaultSpecifier>(placeholder);\n specifier.local = placeholder;\n node.specifiers.push(\n this.finishNode(specifier, \"ImportDefaultSpecifier\"),\n );\n\n if (this.eat(tt.comma)) {\n // import %%DEFAULT%%, * as ...\n const hasStarImport = this.maybeParseStarImportSpecifier(node);\n\n // import %%DEFAULT%%, { ...\n if (!hasStarImport) this.parseNamedImportSpecifiers(node);\n }\n\n this.expectContextual(tt._from);\n node.source = this.parseImportSource();\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\");\n }\n\n parseImportSource(): MaybePlaceholder<\"StringLiteral\"> {\n // import ... from %%STRING%%;\n\n return (\n this.parsePlaceholder(\"StringLiteral\") || super.parseImportSource()\n );\n }\n\n // Throws if the current token and the prev one are separated by a space.\n assertNoSpace(): void {\n if (this.state.start > this.state.lastTokEndLoc.index) {\n this.raise(PlaceholderErrors.UnexpectedSpace, {\n at: this.state.lastTokEndLoc,\n });\n }\n }\n };\n"],"mappings":"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"}
1
+ {"version":3,"names":["_types","require","_parseError","PlaceholderErrors","ParseErrorEnum","ClassNameIsRequired","UnexpectedSpace","_default","superClass","PlaceholdersParserMixin","parsePlaceholder","expectedNode","match","node","startNode","next","assertNoSpace","name","parseIdentifier","expect","finishPlaceholder","isFinished","type","finishNode","getTokenFromCode","code","input","charCodeAt","state","pos","finishOp","parseExprAtom","refExpressionErrors","liberal","checkReservedWord","word","startLoc","checkKeywords","isBinding","undefined","parseBindingAtom","isValidLVal","isParenthesized","binding","toAssignable","isLHS","chStartsBindingIdentifier","ch","nextToken","lookahead","verifyBreakContinue","isBreak","label","parseExpressionStatement","expr","_expr$extra","extra","parenthesized","stmt","body","parseStatementOrSloppyAnnexBFunctionDeclaration","semicolon","parseBlock","allowDirectives","createNewLexicalScope","afterBlockParse","parseFunctionId","requireId","parseClass","isStatement","optionalId","oldStrict","strict","placeholder","id","raise","at","parseClassId","parseClassSuper","parseClassBody","parseExport","decorators","isContextual","specifiers","source","declaration","expectPlugin","specifier","exported","isExportDefaultSpecifier","nextTokenStart","isUnparsedContextual","startsWith","tokenLabelName","nextTokenStartSince","maybeParseExportDefaultSpecifier","maybeDefaultIdentifier","_specifiers","length","checkExport","filter","parseImport","startNodeAtNode","local","push","eat","hasStarImport","maybeParseStarImportSpecifier","parseNamedImportSpecifiers","expectContextual","parseImportSource","start","lastTokEndLoc","index","exports","default"],"sources":["../../src/plugins/placeholders.ts"],"sourcesContent":["import * as charCodes from \"charcodes\";\n\nimport { tokenLabelName, tt } from \"../tokenizer/types\";\nimport type Parser from \"../parser\";\nimport type * as N from \"../types\";\nimport { ParseErrorEnum } from \"../parse-error\";\nimport type { Undone } from \"../parser/node\";\nimport type { ExpressionErrors } from \"../parser/util\";\nimport type { BindingTypes } from \"../util/scopeflags\";\nimport type { Position } from \"../util/location\";\n\ntype PossiblePlaceholders = {\n Identifier: N.Identifier;\n StringLiteral: N.StringLiteral;\n Expression: N.Expression;\n Statement: N.Statement;\n Declaration: N.Declaration;\n BlockStatement: N.BlockStatement;\n ClassBody: N.ClassBody;\n Pattern: N.Pattern;\n};\nexport type PlaceholderTypes = keyof PossiblePlaceholders;\n\ntype NodeOf<T extends keyof PossiblePlaceholders> = PossiblePlaceholders[T];\n// todo: when there is proper union type for Node\n// type NodeOf<T extends PlaceholderTypes> = Extract<N.Node, { type: T }>;\n\n// todo: Placeholder<T> breaks everything, because its type is incompatible with\n// the substituted nodes.\ntype MaybePlaceholder<T extends PlaceholderTypes> = NodeOf<T>; // | Placeholder<T>\n\n/* eslint sort-keys: \"error\" */\nconst PlaceholderErrors = ParseErrorEnum`placeholders`({\n ClassNameIsRequired: \"A class name is required.\",\n UnexpectedSpace: \"Unexpected space in placeholder.\",\n});\n\n/* eslint-disable sort-keys */\n\nexport default (superClass: typeof Parser) =>\n class PlaceholdersParserMixin extends superClass implements Parser {\n parsePlaceholder<T extends PlaceholderTypes>(\n expectedNode: T,\n ): /*?N.Placeholder<T>*/ MaybePlaceholder<T> | undefined | null {\n if (this.match(tt.placeholder)) {\n const node = this.startNode();\n this.next();\n this.assertNoSpace();\n\n // We can't use this.parseIdentifier because\n // we don't want nested placeholders.\n node.name = super.parseIdentifier(/* liberal */ true);\n\n this.assertNoSpace();\n this.expect(tt.placeholder);\n // @ts-expect-error placeholder typings\n return this.finishPlaceholder(node, expectedNode);\n }\n }\n\n finishPlaceholder<T extends PlaceholderTypes>(\n node: N.Node,\n expectedNode: T,\n ): /*N.Placeholder<T>*/ MaybePlaceholder<T> {\n const isFinished = !!(node.expectedNode && node.type === \"Placeholder\");\n node.expectedNode = expectedNode;\n\n // @ts-expect-error todo(flow->ts)\n return isFinished ? node : this.finishNode(node, \"Placeholder\");\n }\n\n /* ============================================================ *\n * tokenizer/index.js *\n * ============================================================ */\n\n getTokenFromCode(code: number) {\n if (\n code === charCodes.percentSign &&\n this.input.charCodeAt(this.state.pos + 1) === charCodes.percentSign\n ) {\n this.finishOp(tt.placeholder, 2);\n } else {\n super.getTokenFromCode(code);\n }\n }\n\n /* ============================================================ *\n * parser/expression.js *\n * ============================================================ */\n\n parseExprAtom(\n refExpressionErrors?: ExpressionErrors | null,\n ): MaybePlaceholder<\"Expression\"> {\n return (\n this.parsePlaceholder(\"Expression\") ||\n super.parseExprAtom(refExpressionErrors)\n );\n }\n\n parseIdentifier(liberal?: boolean): MaybePlaceholder<\"Identifier\"> {\n // NOTE: This function only handles identifiers outside of\n // expressions and binding patterns, since they are already\n // handled by the parseExprAtom and parseBindingAtom functions.\n // This is needed, for example, to parse \"class %%NAME%% {}\".\n return (\n this.parsePlaceholder(\"Identifier\") || super.parseIdentifier(liberal)\n );\n }\n\n checkReservedWord(\n word: string,\n startLoc: Position,\n checkKeywords: boolean,\n isBinding: boolean,\n ) {\n // Sometimes we call #checkReservedWord(node.name), expecting\n // that node is an Identifier. If it is a Placeholder, name\n // will be undefined.\n if (word !== undefined) {\n super.checkReservedWord(word, startLoc, checkKeywords, isBinding);\n }\n }\n\n /* ============================================================ *\n * parser/lval.js *\n * ============================================================ */\n\n parseBindingAtom(): MaybePlaceholder<\"Pattern\"> {\n return this.parsePlaceholder(\"Pattern\") || super.parseBindingAtom();\n }\n\n isValidLVal(type: string, isParenthesized: boolean, binding: BindingTypes) {\n return (\n type === \"Placeholder\" ||\n super.isValidLVal(type, isParenthesized, binding)\n );\n }\n\n toAssignable(node: N.Node, isLHS: boolean): void {\n if (\n node &&\n node.type === \"Placeholder\" &&\n node.expectedNode === \"Expression\"\n ) {\n node.expectedNode = \"Pattern\";\n } else {\n super.toAssignable(node, isLHS);\n }\n }\n\n /* ============================================================ *\n * parser/statement.js *\n * ============================================================ */\n\n chStartsBindingIdentifier(ch: number, pos: number): boolean {\n if (super.chStartsBindingIdentifier(ch, pos)) {\n return true;\n }\n\n // Accept \"let %%\" as the start of \"let %%placeholder%%\", as though the\n // placeholder were an identifier.\n const nextToken = this.lookahead();\n if (nextToken.type === tt.placeholder) {\n return true;\n }\n\n return false;\n }\n\n verifyBreakContinue(\n node: N.BreakStatement | N.ContinueStatement,\n isBreak: boolean,\n ) {\n // @ts-expect-error: node.label could be Placeholder\n if (node.label && node.label.type === \"Placeholder\") return;\n super.verifyBreakContinue(node, isBreak);\n }\n\n // @ts-expect-error Plugin will override parser interface\n parseExpressionStatement(\n node: MaybePlaceholder<\"Statement\">,\n expr: N.Expression,\n ): MaybePlaceholder<\"Statement\"> {\n if (expr.type !== \"Placeholder\" || expr.extra?.parenthesized) {\n // @ts-expect-error placeholder typings\n return super.parseExpressionStatement(node, expr);\n }\n\n if (this.match(tt.colon)) {\n // @ts-expect-error placeholder typings\n const stmt: N.LabeledStatement = node;\n stmt.label = this.finishPlaceholder(expr, \"Identifier\");\n this.next();\n stmt.body = super.parseStatementOrSloppyAnnexBFunctionDeclaration();\n return this.finishNode(stmt, \"LabeledStatement\");\n }\n\n this.semicolon();\n node.name = expr.name;\n return this.finishPlaceholder(node, \"Statement\");\n }\n\n parseBlock(\n allowDirectives?: boolean,\n createNewLexicalScope?: boolean,\n afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n ): MaybePlaceholder<\"BlockStatement\"> {\n return (\n this.parsePlaceholder(\"BlockStatement\") ||\n super.parseBlock(\n allowDirectives,\n createNewLexicalScope,\n afterBlockParse,\n )\n );\n }\n\n parseFunctionId(\n requireId?: boolean,\n ): MaybePlaceholder<\"Identifier\"> | undefined | null {\n return (\n this.parsePlaceholder(\"Identifier\") || super.parseFunctionId(requireId)\n );\n }\n // @ts-expect-error Plugin will override parser interface\n parseClass<T extends N.Class>(\n node: T,\n isStatement: /* T === ClassDeclaration */ boolean,\n optionalId?: boolean,\n ): T {\n const type = isStatement ? \"ClassDeclaration\" : \"ClassExpression\";\n\n this.next();\n const oldStrict = this.state.strict;\n\n const placeholder = this.parsePlaceholder(\"Identifier\");\n if (placeholder) {\n if (\n this.match(tt._extends) ||\n this.match(tt.placeholder) ||\n this.match(tt.braceL)\n ) {\n node.id = placeholder;\n } else if (optionalId || !isStatement) {\n node.id = null;\n node.body = this.finishPlaceholder(placeholder, \"ClassBody\");\n return this.finishNode(node, type);\n } else {\n throw this.raise(PlaceholderErrors.ClassNameIsRequired, {\n at: this.state.startLoc,\n });\n }\n } else {\n this.parseClassId(node, isStatement, optionalId);\n }\n\n super.parseClassSuper(node);\n node.body =\n this.parsePlaceholder(\"ClassBody\") ||\n super.parseClassBody(!!node.superClass, oldStrict);\n return this.finishNode(node, type);\n }\n\n parseExport(node: N.Node, decorators: N.Decorator[] | null): N.AnyExport {\n const placeholder = this.parsePlaceholder(\"Identifier\");\n if (!placeholder) return super.parseExport(node, decorators);\n\n if (!this.isContextual(tt._from) && !this.match(tt.comma)) {\n // export %%DECL%%;\n node.specifiers = [];\n node.source = null;\n node.declaration = this.finishPlaceholder(placeholder, \"Declaration\");\n return this.finishNode(node, \"ExportNamedDeclaration\");\n }\n\n // export %%NAME%% from \"foo\";\n this.expectPlugin(\"exportDefaultFrom\");\n const specifier = this.startNode();\n specifier.exported = placeholder;\n node.specifiers = [this.finishNode(specifier, \"ExportDefaultSpecifier\")];\n\n return super.parseExport(node, decorators);\n }\n\n isExportDefaultSpecifier(): boolean {\n if (this.match(tt._default)) {\n const next = this.nextTokenStart();\n if (this.isUnparsedContextual(next, \"from\")) {\n if (\n this.input.startsWith(\n tokenLabelName(tt.placeholder),\n this.nextTokenStartSince(next + 4),\n )\n ) {\n return true;\n }\n }\n }\n return super.isExportDefaultSpecifier();\n }\n\n maybeParseExportDefaultSpecifier(\n node: Undone<\n | N.ExportDefaultDeclaration\n | N.ExportAllDeclaration\n | N.ExportNamedDeclaration\n >,\n maybeDefaultIdentifier: N.Identifier | null,\n ): node is Undone<N.ExportNamedDeclaration> {\n if ((node as N.ExportNamedDeclaration).specifiers?.length) {\n // \"export %%NAME%%\" has already been parsed by #parseExport.\n return true;\n }\n return super.maybeParseExportDefaultSpecifier(\n node,\n maybeDefaultIdentifier,\n );\n }\n\n checkExport(node: N.ExportNamedDeclaration): void {\n const { specifiers } = node;\n if (specifiers?.length) {\n node.specifiers = specifiers.filter(\n // @ts-expect-error placeholder typings\n node => node.exported.type === \"Placeholder\",\n );\n }\n super.checkExport(node);\n node.specifiers = specifiers;\n }\n\n parseImport(\n node: Undone<N.ImportDeclaration>,\n ): N.ImportDeclaration | N.TsImportEqualsDeclaration {\n const placeholder = this.parsePlaceholder(\"Identifier\");\n if (!placeholder) return super.parseImport(node);\n\n node.specifiers = [];\n\n if (!this.isContextual(tt._from) && !this.match(tt.comma)) {\n // import %%STRING%%;\n node.source = this.finishPlaceholder(placeholder, \"StringLiteral\");\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\");\n }\n\n // import %%DEFAULT%% ...\n const specifier =\n this.startNodeAtNode<N.ImportDefaultSpecifier>(placeholder);\n specifier.local = placeholder;\n node.specifiers.push(\n this.finishNode(specifier, \"ImportDefaultSpecifier\"),\n );\n\n if (this.eat(tt.comma)) {\n // import %%DEFAULT%%, * as ...\n const hasStarImport = this.maybeParseStarImportSpecifier(node);\n\n // import %%DEFAULT%%, { ...\n if (!hasStarImport) this.parseNamedImportSpecifiers(node);\n }\n\n this.expectContextual(tt._from);\n node.source = this.parseImportSource();\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\");\n }\n\n parseImportSource(): MaybePlaceholder<\"StringLiteral\"> {\n // import ... from %%STRING%%;\n\n return (\n this.parsePlaceholder(\"StringLiteral\") || super.parseImportSource()\n );\n }\n\n // Throws if the current token and the prev one are separated by a space.\n assertNoSpace(): void {\n if (this.state.start > this.state.lastTokEndLoc.index) {\n this.raise(PlaceholderErrors.UnexpectedSpace, {\n at: this.state.lastTokEndLoc,\n });\n }\n }\n };\n"],"mappings":"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"}
@@ -1153,7 +1153,7 @@ var _default = superClass => class TypeScriptParserMixin extends superClass {
1153
1153
  if (properties.declare) node.declare = true;
1154
1154
  if ((0, _types.tokenIsIdentifier)(this.state.type)) {
1155
1155
  node.id = this.parseIdentifier();
1156
- this.checkIdentifier(node.id, _scopeflags.BIND_TS_INTERFACE);
1156
+ this.checkIdentifier(node.id, _scopeflags.BindingFlag.TYPE_TS_INTERFACE);
1157
1157
  } else {
1158
1158
  node.id = null;
1159
1159
  this.raise(TSErrors.MissingInterfaceName, {
@@ -1171,7 +1171,7 @@ var _default = superClass => class TypeScriptParserMixin extends superClass {
1171
1171
  }
1172
1172
  tsParseTypeAliasDeclaration(node) {
1173
1173
  node.id = this.parseIdentifier();
1174
- this.checkIdentifier(node.id, _scopeflags.BIND_TS_TYPE);
1174
+ this.checkIdentifier(node.id, _scopeflags.BindingFlag.TYPE_TS_TYPE);
1175
1175
  node.typeAnnotation = this.tsInType(() => {
1176
1176
  node.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers);
1177
1177
  this.expect(29);
@@ -1251,7 +1251,7 @@ var _default = superClass => class TypeScriptParserMixin extends superClass {
1251
1251
  if (properties.declare) node.declare = true;
1252
1252
  this.expectContextual(124);
1253
1253
  node.id = this.parseIdentifier();
1254
- this.checkIdentifier(node.id, node.const ? _scopeflags.BIND_TS_CONST_ENUM : _scopeflags.BIND_TS_ENUM);
1254
+ this.checkIdentifier(node.id, node.const ? _scopeflags.BindingFlag.TYPE_TS_CONST_ENUM : _scopeflags.BindingFlag.TYPE_TS_ENUM);
1255
1255
  this.expect(5);
1256
1256
  node.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this));
1257
1257
  this.expect(8);
@@ -1259,7 +1259,7 @@ var _default = superClass => class TypeScriptParserMixin extends superClass {
1259
1259
  }
1260
1260
  tsParseModuleBlock() {
1261
1261
  const node = this.startNode();
1262
- this.scope.enter(_scopeflags.SCOPE_OTHER);
1262
+ this.scope.enter(_scopeflags.ScopeFlag.OTHER);
1263
1263
  this.expect(5);
1264
1264
  super.parseBlockOrModuleBlockBody(node.body = [], undefined, true, 8);
1265
1265
  this.scope.exit();
@@ -1268,14 +1268,14 @@ var _default = superClass => class TypeScriptParserMixin extends superClass {
1268
1268
  tsParseModuleOrNamespaceDeclaration(node, nested = false) {
1269
1269
  node.id = this.parseIdentifier();
1270
1270
  if (!nested) {
1271
- this.checkIdentifier(node.id, _scopeflags.BIND_TS_NAMESPACE);
1271
+ this.checkIdentifier(node.id, _scopeflags.BindingFlag.TYPE_TS_NAMESPACE);
1272
1272
  }
1273
1273
  if (this.eat(16)) {
1274
1274
  const inner = this.startNode();
1275
1275
  this.tsParseModuleOrNamespaceDeclaration(inner, true);
1276
1276
  node.body = inner;
1277
1277
  } else {
1278
- this.scope.enter(_scopeflags.SCOPE_TS_MODULE);
1278
+ this.scope.enter(_scopeflags.ScopeFlag.TS_MODULE);
1279
1279
  this.prodParam.enter(_productionParameter.PARAM);
1280
1280
  node.body = this.tsParseModuleBlock();
1281
1281
  this.prodParam.exit();
@@ -1293,7 +1293,7 @@ var _default = superClass => class TypeScriptParserMixin extends superClass {
1293
1293
  this.unexpected();
1294
1294
  }
1295
1295
  if (this.match(5)) {
1296
- this.scope.enter(_scopeflags.SCOPE_TS_MODULE);
1296
+ this.scope.enter(_scopeflags.ScopeFlag.TS_MODULE);
1297
1297
  this.prodParam.enter(_productionParameter.PARAM);
1298
1298
  node.body = this.tsParseModuleBlock();
1299
1299
  this.prodParam.exit();
@@ -1306,7 +1306,7 @@ var _default = superClass => class TypeScriptParserMixin extends superClass {
1306
1306
  tsParseImportEqualsDeclaration(node, maybeDefaultIdentifier, isExport) {
1307
1307
  node.isExport = isExport || false;
1308
1308
  node.id = maybeDefaultIdentifier || this.parseIdentifier();
1309
- this.checkIdentifier(node.id, _scopeflags.BIND_FLAGS_TS_IMPORT);
1309
+ this.checkIdentifier(node.id, _scopeflags.BindingFlag.TYPE_TS_VALUE_IMPORT);
1310
1310
  this.expect(29);
1311
1311
  const moduleReference = this.tsParseModuleReference();
1312
1312
  if (node.importKind === "type" && moduleReference.type !== "TSExternalModuleReference") {
@@ -1420,7 +1420,7 @@ var _default = superClass => class TypeScriptParserMixin extends superClass {
1420
1420
  }
1421
1421
  case "global":
1422
1422
  if (this.match(5)) {
1423
- this.scope.enter(_scopeflags.SCOPE_TS_MODULE);
1423
+ this.scope.enter(_scopeflags.ScopeFlag.TS_MODULE);
1424
1424
  this.prodParam.enter(_productionParameter.PARAM);
1425
1425
  const mod = node;
1426
1426
  mod.global = true;
@@ -1589,7 +1589,7 @@ var _default = superClass => class TypeScriptParserMixin extends superClass {
1589
1589
  }
1590
1590
  registerFunctionStatementId(node) {
1591
1591
  if (!node.body && node.id) {
1592
- this.checkIdentifier(node.id, _scopeflags.BIND_TS_AMBIENT);
1592
+ this.checkIdentifier(node.id, _scopeflags.BindingFlag.TYPE_TS_AMBIENT);
1593
1593
  } else {
1594
1594
  super.registerFunctionStatementId(node);
1595
1595
  }
@@ -2018,7 +2018,7 @@ var _default = superClass => class TypeScriptParserMixin extends superClass {
2018
2018
  if ((!isStatement || optionalId) && this.isContextual(111)) {
2019
2019
  return;
2020
2020
  }
2021
- super.parseClassId(node, isStatement, optionalId, node.declare ? _scopeflags.BIND_TS_AMBIENT : _scopeflags.BIND_CLASS);
2021
+ super.parseClassId(node, isStatement, optionalId, node.declare ? _scopeflags.BindingFlag.TYPE_TS_AMBIENT : _scopeflags.BindingFlag.TYPE_CLASS);
2022
2022
  const typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);
2023
2023
  if (typeParameters) node.typeParameters = typeParameters;
2024
2024
  }
@@ -2308,9 +2308,9 @@ var _default = superClass => class TypeScriptParserMixin extends superClass {
2308
2308
  TSTypeCastExpression: true,
2309
2309
  TSParameterProperty: "parameter",
2310
2310
  TSNonNullExpression: "expression",
2311
- TSAsExpression: (binding !== _scopeflags.BIND_NONE || !isUnparenthesizedInAssign) && ["expression", true],
2312
- TSSatisfiesExpression: (binding !== _scopeflags.BIND_NONE || !isUnparenthesizedInAssign) && ["expression", true],
2313
- TSTypeAssertion: (binding !== _scopeflags.BIND_NONE || !isUnparenthesizedInAssign) && ["expression", true]
2311
+ TSAsExpression: (binding !== _scopeflags.BindingFlag.TYPE_NONE || !isUnparenthesizedInAssign) && ["expression", true],
2312
+ TSSatisfiesExpression: (binding !== _scopeflags.BindingFlag.TYPE_NONE || !isUnparenthesizedInAssign) && ["expression", true],
2313
+ TSTypeAssertion: (binding !== _scopeflags.BindingFlag.TYPE_NONE || !isUnparenthesizedInAssign) && ["expression", true]
2314
2314
  }, type) || super.isValidLVal(type, isUnparenthesizedInAssign, binding);
2315
2315
  }
2316
2316
  parseBindingAtom() {
@@ -2521,7 +2521,7 @@ var _default = superClass => class TypeScriptParserMixin extends superClass {
2521
2521
  return this.finishNode(specifier, "ImportSpecifier");
2522
2522
  }
2523
2523
  specifier.importKind = "value";
2524
- return super.parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, isInTypeOnlyImport ? _scopeflags.BIND_TS_TYPE_IMPORT : _scopeflags.BIND_FLAGS_TS_IMPORT);
2524
+ return super.parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, isInTypeOnlyImport ? _scopeflags.BindingFlag.TYPE_TS_TYPE_IMPORT : _scopeflags.BindingFlag.TYPE_TS_VALUE_IMPORT);
2525
2525
  }
2526
2526
  parseTypeOnlyImportExportSpecifier(node, isImport, isInTypeOnlyImportExport) {
2527
2527
  const leftOfAsKey = isImport ? "imported" : "local";
@@ -2578,7 +2578,7 @@ var _default = superClass => class TypeScriptParserMixin extends superClass {
2578
2578
  node[rightOfAsKey] = (0, _node.cloneIdentifier)(node[leftOfAsKey]);
2579
2579
  }
2580
2580
  if (isImport) {
2581
- this.checkIdentifier(node[rightOfAsKey], hasTypeSpecifier ? _scopeflags.BIND_TS_TYPE_IMPORT : _scopeflags.BIND_FLAGS_TS_IMPORT);
2581
+ this.checkIdentifier(node[rightOfAsKey], hasTypeSpecifier ? _scopeflags.BindingFlag.TYPE_TS_TYPE_IMPORT : _scopeflags.BindingFlag.TYPE_TS_VALUE_IMPORT);
2582
2582
  }
2583
2583
  }
2584
2584
  };