@galadrim/galadmin 0.1.38 → 0.1.40

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 (486) hide show
  1. package/dist/tsconfig.tsbuildinfo +1 -1
  2. package/package.json +1 -1
  3. package/src/front/build/asset-manifest.json +3 -3
  4. package/src/front/build/index.html +1 -1
  5. package/src/front/build/static/js/{main.4ce5340d.chunk.js → main.8a63b422.chunk.js} +2 -2
  6. package/src/front/build/static/js/main.8a63b422.chunk.js.map +1 -0
  7. package/src/front/node_modules/.cache/.eslintcache +1 -1
  8. package/src/front/node_modules/.cache/babel-loader/0046fa6def7297665aceff65675276fb.json +1 -0
  9. package/src/front/node_modules/.cache/babel-loader/6b6404ad16b4fb247c0dfe43c03f4a02.json +1 -0
  10. package/src/front/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/ef/81/2c9ecc926af52757cb3670536bc07219d1ccfba4d898a451352553fa6634b48d69ec580dd7c756e5fbcdc72e870664ef6bd7dc1af98e94d9eb182ba93be9 +1 -0
  11. package/src/front/node_modules/.cache/terser-webpack-plugin/index-v5/{c2/e5/5451dd89bb0fd48f988bf27c7ee614c66eb91f7085c5b5c8cb33048d0c32 → 31/fe/6640db1983b9834e63d1a760fa17521e8cf616b567ef7114a0676aa6971a} +1 -1
  12. package/src/front/node_modules/.cache/terser-webpack-plugin/index-v5/6c/19/fe86ba5d7c4062f185480ad22dd3b9fae9b30149827224339f9a633a9a94 +1 -1
  13. package/src/front/node_modules/.cache/terser-webpack-plugin/index-v5/87/08/421190bfe6e50816e059da6c33526c9943732ef856ebd2752d0cbfb4a852 +1 -1
  14. package/src/front/node_modules/.package-lock.json +72 -72
  15. package/src/front/node_modules/@babel/code-frame/lib/index.js +5 -4
  16. package/src/front/node_modules/@babel/code-frame/lib/index.js.map +1 -1
  17. package/src/front/node_modules/@babel/code-frame/package.json +3 -2
  18. package/src/front/node_modules/@babel/core/lib/config/cache-contexts.js.map +1 -1
  19. package/src/front/node_modules/@babel/core/lib/config/caching.js +2 -2
  20. package/src/front/node_modules/@babel/core/lib/config/caching.js.map +1 -1
  21. package/src/front/node_modules/@babel/core/lib/config/config-chain.js +13 -13
  22. package/src/front/node_modules/@babel/core/lib/config/config-chain.js.map +1 -1
  23. package/src/front/node_modules/@babel/core/lib/config/config-descriptors.js +6 -6
  24. package/src/front/node_modules/@babel/core/lib/config/config-descriptors.js.map +1 -1
  25. package/src/front/node_modules/@babel/core/lib/config/files/configuration.js +44 -41
  26. package/src/front/node_modules/@babel/core/lib/config/files/configuration.js.map +1 -1
  27. package/src/front/node_modules/@babel/core/lib/config/files/import-meta-resolve.js +1 -1
  28. package/src/front/node_modules/@babel/core/lib/config/files/import-meta-resolve.js.map +1 -1
  29. package/src/front/node_modules/@babel/core/lib/config/files/index-browser.js.map +1 -1
  30. package/src/front/node_modules/@babel/core/lib/config/files/index.js +3 -3
  31. package/src/front/node_modules/@babel/core/lib/config/files/index.js.map +1 -1
  32. package/src/front/node_modules/@babel/core/lib/config/files/module-types.js +27 -8
  33. package/src/front/node_modules/@babel/core/lib/config/files/module-types.js.map +1 -1
  34. package/src/front/node_modules/@babel/core/lib/config/files/package.js +2 -2
  35. package/src/front/node_modules/@babel/core/lib/config/files/package.js.map +1 -1
  36. package/src/front/node_modules/@babel/core/lib/config/files/plugins.js +3 -3
  37. package/src/front/node_modules/@babel/core/lib/config/files/plugins.js.map +1 -1
  38. package/src/front/node_modules/@babel/core/lib/config/files/types.js.map +1 -1
  39. package/src/front/node_modules/@babel/core/lib/config/files/utils.js +2 -2
  40. package/src/front/node_modules/@babel/core/lib/config/files/utils.js.map +1 -1
  41. package/src/front/node_modules/@babel/core/lib/config/full.js +13 -13
  42. package/src/front/node_modules/@babel/core/lib/config/full.js.map +1 -1
  43. package/src/front/node_modules/@babel/core/lib/config/helpers/config-api.js +6 -6
  44. package/src/front/node_modules/@babel/core/lib/config/helpers/config-api.js.map +1 -1
  45. package/src/front/node_modules/@babel/core/lib/config/index.js +60 -40
  46. package/src/front/node_modules/@babel/core/lib/config/index.js.map +1 -1
  47. package/src/front/node_modules/@babel/core/lib/config/item.js +1 -1
  48. package/src/front/node_modules/@babel/core/lib/config/item.js.map +1 -1
  49. package/src/front/node_modules/@babel/core/lib/config/partial.js +15 -23
  50. package/src/front/node_modules/@babel/core/lib/config/partial.js.map +1 -1
  51. package/src/front/node_modules/@babel/core/lib/config/plugin.js +1 -1
  52. package/src/front/node_modules/@babel/core/lib/config/plugin.js.map +1 -1
  53. package/src/front/node_modules/@babel/core/lib/config/printer.js.map +1 -1
  54. package/src/front/node_modules/@babel/core/lib/config/resolve-targets-browser.js.map +1 -1
  55. package/src/front/node_modules/@babel/core/lib/config/resolve-targets.js.map +1 -1
  56. package/src/front/node_modules/@babel/core/lib/config/util.js.map +1 -1
  57. package/src/front/node_modules/@babel/core/lib/config/validation/option-assertions.js +1 -1
  58. package/src/front/node_modules/@babel/core/lib/config/validation/option-assertions.js.map +1 -1
  59. package/src/front/node_modules/@babel/core/lib/config/validation/options.js +3 -3
  60. package/src/front/node_modules/@babel/core/lib/config/validation/options.js.map +1 -1
  61. package/src/front/node_modules/@babel/core/lib/config/validation/plugins.js +1 -1
  62. package/src/front/node_modules/@babel/core/lib/config/validation/plugins.js.map +1 -1
  63. package/src/front/node_modules/@babel/core/lib/errors/config-error.js +1 -1
  64. package/src/front/node_modules/@babel/core/lib/errors/config-error.js.map +1 -1
  65. package/src/front/node_modules/@babel/core/lib/gensync-utils/functional.js +1 -1
  66. package/src/front/node_modules/@babel/core/lib/gensync-utils/functional.js.map +1 -1
  67. package/src/front/node_modules/@babel/core/lib/index.js +23 -23
  68. package/src/front/node_modules/@babel/core/lib/index.js.map +1 -1
  69. package/src/front/node_modules/@babel/core/lib/parse.js +6 -6
  70. package/src/front/node_modules/@babel/core/lib/parse.js.map +1 -1
  71. package/src/front/node_modules/@babel/core/lib/parser/index.js +1 -1
  72. package/src/front/node_modules/@babel/core/lib/parser/index.js.map +1 -1
  73. package/src/front/node_modules/@babel/core/lib/tools/build-external-helpers.js +1 -1
  74. package/src/front/node_modules/@babel/core/lib/tools/build-external-helpers.js.map +1 -1
  75. package/src/front/node_modules/@babel/core/lib/transform-ast.js +5 -5
  76. package/src/front/node_modules/@babel/core/lib/transform-ast.js.map +1 -1
  77. package/src/front/node_modules/@babel/core/lib/transform-file.js +5 -5
  78. package/src/front/node_modules/@babel/core/lib/transform-file.js.map +1 -1
  79. package/src/front/node_modules/@babel/core/lib/transform.js +5 -5
  80. package/src/front/node_modules/@babel/core/lib/transform.js.map +1 -1
  81. package/src/front/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js +1 -1
  82. package/src/front/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js.map +1 -1
  83. package/src/front/node_modules/@babel/core/lib/transformation/file/file.js.map +1 -1
  84. package/src/front/node_modules/@babel/core/lib/transformation/file/generate.js +1 -1
  85. package/src/front/node_modules/@babel/core/lib/transformation/file/generate.js.map +1 -1
  86. package/src/front/node_modules/@babel/core/lib/transformation/index.js +6 -6
  87. package/src/front/node_modules/@babel/core/lib/transformation/index.js.map +1 -1
  88. package/src/front/node_modules/@babel/core/lib/transformation/normalize-file.js +4 -4
  89. package/src/front/node_modules/@babel/core/lib/transformation/normalize-file.js.map +1 -1
  90. package/src/front/node_modules/@babel/core/lib/transformation/normalize-opts.js.map +1 -1
  91. package/src/front/node_modules/@babel/core/lib/transformation/plugin-pass.js.map +1 -1
  92. package/src/front/node_modules/@babel/core/lib/vendor/import-meta-resolve.js.map +1 -1
  93. package/src/front/node_modules/@babel/core/package.json +15 -15
  94. package/src/front/node_modules/@babel/core/src/config/files/index-browser.ts +2 -2
  95. package/src/front/node_modules/@babel/core/src/config/files/index.ts +4 -4
  96. package/src/front/node_modules/@babel/core/src/config/resolve-targets-browser.ts +1 -1
  97. package/src/front/node_modules/@babel/core/src/config/resolve-targets.ts +1 -1
  98. package/src/front/node_modules/@babel/core/src/transform-file.ts +5 -5
  99. package/src/front/node_modules/@babel/generator/lib/buffer.js.map +1 -1
  100. package/src/front/node_modules/@babel/generator/lib/generators/base.js.map +1 -1
  101. package/src/front/node_modules/@babel/generator/lib/generators/classes.js.map +1 -1
  102. package/src/front/node_modules/@babel/generator/lib/generators/expressions.js +1 -1
  103. package/src/front/node_modules/@babel/generator/lib/generators/expressions.js.map +1 -1
  104. package/src/front/node_modules/@babel/generator/lib/generators/flow.js +2 -2
  105. package/src/front/node_modules/@babel/generator/lib/generators/flow.js.map +1 -1
  106. package/src/front/node_modules/@babel/generator/lib/generators/index.js +11 -11
  107. package/src/front/node_modules/@babel/generator/lib/generators/index.js.map +1 -1
  108. package/src/front/node_modules/@babel/generator/lib/generators/jsx.js.map +1 -1
  109. package/src/front/node_modules/@babel/generator/lib/generators/methods.js.map +1 -1
  110. package/src/front/node_modules/@babel/generator/lib/generators/modules.js.map +1 -1
  111. package/src/front/node_modules/@babel/generator/lib/generators/statements.js.map +1 -1
  112. package/src/front/node_modules/@babel/generator/lib/generators/template-literals.js.map +1 -1
  113. package/src/front/node_modules/@babel/generator/lib/generators/types.js.map +1 -1
  114. package/src/front/node_modules/@babel/generator/lib/generators/typescript.js.map +1 -1
  115. package/src/front/node_modules/@babel/generator/lib/index.js +2 -2
  116. package/src/front/node_modules/@babel/generator/lib/index.js.map +1 -1
  117. package/src/front/node_modules/@babel/generator/lib/node/index.js +2 -2
  118. package/src/front/node_modules/@babel/generator/lib/node/index.js.map +1 -1
  119. package/src/front/node_modules/@babel/generator/lib/node/whitespace.js.map +1 -1
  120. package/src/front/node_modules/@babel/generator/lib/printer.js +3 -3
  121. package/src/front/node_modules/@babel/generator/lib/printer.js.map +1 -1
  122. package/src/front/node_modules/@babel/generator/package.json +4 -4
  123. package/src/front/node_modules/@babel/helper-compilation-targets/lib/debug.js +2 -2
  124. package/src/front/node_modules/@babel/helper-compilation-targets/lib/debug.js.map +1 -1
  125. package/src/front/node_modules/@babel/helper-compilation-targets/lib/filter-items.js +1 -1
  126. package/src/front/node_modules/@babel/helper-compilation-targets/lib/filter-items.js.map +1 -1
  127. package/src/front/node_modules/@babel/helper-compilation-targets/lib/index.js +6 -6
  128. package/src/front/node_modules/@babel/helper-compilation-targets/lib/index.js.map +1 -1
  129. package/src/front/node_modules/@babel/helper-compilation-targets/lib/pretty.js +1 -1
  130. package/src/front/node_modules/@babel/helper-compilation-targets/lib/pretty.js.map +1 -1
  131. package/src/front/node_modules/@babel/helper-compilation-targets/lib/utils.js +1 -1
  132. package/src/front/node_modules/@babel/helper-compilation-targets/lib/utils.js.map +1 -1
  133. package/src/front/node_modules/@babel/helper-compilation-targets/package.json +2 -2
  134. package/src/front/node_modules/@babel/helper-module-imports/README.md +1 -1
  135. package/src/front/node_modules/@babel/helper-module-imports/lib/import-injector.js +2 -2
  136. package/src/front/node_modules/@babel/helper-module-imports/lib/import-injector.js.map +1 -1
  137. package/src/front/node_modules/@babel/helper-module-imports/lib/index.js +2 -2
  138. package/src/front/node_modules/@babel/helper-module-imports/lib/index.js.map +1 -1
  139. package/src/front/node_modules/@babel/helper-module-imports/package.json +4 -4
  140. package/src/front/node_modules/@babel/helper-module-transforms/lib/index.js +5 -5
  141. package/src/front/node_modules/@babel/helper-module-transforms/lib/index.js.map +1 -1
  142. package/src/front/node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js.map +1 -1
  143. package/src/front/node_modules/@babel/helper-module-transforms/package.json +5 -5
  144. package/src/front/node_modules/@babel/helper-validator-identifier/README.md +1 -1
  145. package/src/front/node_modules/@babel/helper-validator-identifier/lib/index.js +2 -2
  146. package/src/front/node_modules/@babel/helper-validator-identifier/lib/index.js.map +1 -1
  147. package/src/front/node_modules/@babel/helper-validator-identifier/package.json +1 -1
  148. package/src/front/node_modules/@babel/helper-validator-identifier/scripts/generate-identifier-regex.js +8 -6
  149. package/src/front/node_modules/@babel/helper-validator-option/README.md +1 -1
  150. package/src/front/node_modules/@babel/helper-validator-option/lib/index.js +2 -2
  151. package/src/front/node_modules/@babel/helper-validator-option/lib/index.js.map +1 -1
  152. package/src/front/node_modules/@babel/helper-validator-option/lib/validator.js +1 -1
  153. package/src/front/node_modules/@babel/helper-validator-option/lib/validator.js.map +1 -1
  154. package/src/front/node_modules/@babel/helper-validator-option/package.json +1 -1
  155. package/src/front/node_modules/@babel/helpers/lib/helpers-generated.js +21 -21
  156. package/src/front/node_modules/@babel/helpers/lib/helpers-generated.js.map +1 -1
  157. package/src/front/node_modules/@babel/helpers/lib/helpers.js +1 -1
  158. package/src/front/node_modules/@babel/helpers/lib/helpers.js.map +1 -1
  159. package/src/front/node_modules/@babel/helpers/lib/index.js +1 -1
  160. package/src/front/node_modules/@babel/helpers/lib/index.js.map +1 -1
  161. package/src/front/node_modules/@babel/helpers/package.json +7 -7
  162. package/src/front/node_modules/@babel/helpers/scripts/generate-helpers.js +1 -1
  163. package/src/front/node_modules/@babel/highlight/lib/index.js +6 -5
  164. package/src/front/node_modules/@babel/highlight/lib/index.js.map +1 -1
  165. package/src/front/node_modules/@babel/highlight/package.json +1 -1
  166. package/src/front/node_modules/@babel/parser/lib/index.js +52 -57
  167. package/src/front/node_modules/@babel/parser/lib/index.js.map +1 -1
  168. package/src/front/node_modules/@babel/parser/package.json +4 -4
  169. package/src/front/node_modules/@babel/template/README.md +1 -1
  170. package/src/front/node_modules/@babel/template/lib/builder.js +3 -3
  171. package/src/front/node_modules/@babel/template/lib/builder.js.map +1 -1
  172. package/src/front/node_modules/@babel/template/lib/index.js +2 -2
  173. package/src/front/node_modules/@babel/template/lib/index.js.map +1 -1
  174. package/src/front/node_modules/@babel/template/lib/literal.js +3 -3
  175. package/src/front/node_modules/@babel/template/lib/literal.js.map +1 -1
  176. package/src/front/node_modules/@babel/template/lib/parse.js.map +1 -1
  177. package/src/front/node_modules/@babel/template/lib/populate.js.map +1 -1
  178. package/src/front/node_modules/@babel/template/lib/string.js +3 -3
  179. package/src/front/node_modules/@babel/template/lib/string.js.map +1 -1
  180. package/src/front/node_modules/@babel/template/package.json +4 -4
  181. package/src/front/node_modules/@babel/traverse/lib/cache.js.map +1 -1
  182. package/src/front/node_modules/@babel/traverse/lib/context.js +2 -2
  183. package/src/front/node_modules/@babel/traverse/lib/context.js.map +1 -1
  184. package/src/front/node_modules/@babel/traverse/lib/hub.js.map +1 -1
  185. package/src/front/node_modules/@babel/traverse/lib/index.js +8 -8
  186. package/src/front/node_modules/@babel/traverse/lib/index.js.map +1 -1
  187. package/src/front/node_modules/@babel/traverse/lib/path/ancestry.js.map +1 -1
  188. package/src/front/node_modules/@babel/traverse/lib/path/comments.js.map +1 -1
  189. package/src/front/node_modules/@babel/traverse/lib/path/context.js +2 -2
  190. package/src/front/node_modules/@babel/traverse/lib/path/context.js.map +1 -1
  191. package/src/front/node_modules/@babel/traverse/lib/path/conversion.js +1 -1
  192. package/src/front/node_modules/@babel/traverse/lib/path/conversion.js.map +1 -1
  193. package/src/front/node_modules/@babel/traverse/lib/path/evaluation.js.map +1 -1
  194. package/src/front/node_modules/@babel/traverse/lib/path/family.js +1 -1
  195. package/src/front/node_modules/@babel/traverse/lib/path/family.js.map +1 -1
  196. package/src/front/node_modules/@babel/traverse/lib/path/index.js +17 -17
  197. package/src/front/node_modules/@babel/traverse/lib/path/index.js.map +1 -1
  198. package/src/front/node_modules/@babel/traverse/lib/path/inference/index.js +1 -1
  199. package/src/front/node_modules/@babel/traverse/lib/path/inference/index.js.map +1 -1
  200. package/src/front/node_modules/@babel/traverse/lib/path/inference/inferer-reference.js +1 -1
  201. package/src/front/node_modules/@babel/traverse/lib/path/inference/inferer-reference.js.map +1 -1
  202. package/src/front/node_modules/@babel/traverse/lib/path/inference/inferers.js +2 -2
  203. package/src/front/node_modules/@babel/traverse/lib/path/inference/inferers.js.map +1 -1
  204. package/src/front/node_modules/@babel/traverse/lib/path/introspection.js.map +1 -1
  205. package/src/front/node_modules/@babel/traverse/lib/path/lib/hoister.js.map +1 -1
  206. package/src/front/node_modules/@babel/traverse/lib/path/lib/removal-hooks.js.map +1 -1
  207. package/src/front/node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js.map +1 -1
  208. package/src/front/node_modules/@babel/traverse/lib/path/modification.js +3 -3
  209. package/src/front/node_modules/@babel/traverse/lib/path/modification.js.map +1 -1
  210. package/src/front/node_modules/@babel/traverse/lib/path/removal.js +3 -3
  211. package/src/front/node_modules/@babel/traverse/lib/path/removal.js.map +1 -1
  212. package/src/front/node_modules/@babel/traverse/lib/path/replacement.js +3 -3
  213. package/src/front/node_modules/@babel/traverse/lib/path/replacement.js.map +1 -1
  214. package/src/front/node_modules/@babel/traverse/lib/scope/binding.js +1 -3
  215. package/src/front/node_modules/@babel/traverse/lib/scope/binding.js.map +1 -1
  216. package/src/front/node_modules/@babel/traverse/lib/scope/index.js +5 -5
  217. package/src/front/node_modules/@babel/traverse/lib/scope/index.js.map +1 -1
  218. package/src/front/node_modules/@babel/traverse/lib/scope/lib/renamer.js +2 -2
  219. package/src/front/node_modules/@babel/traverse/lib/scope/lib/renamer.js.map +1 -1
  220. package/src/front/node_modules/@babel/traverse/lib/traverse-node.js +1 -1
  221. package/src/front/node_modules/@babel/traverse/lib/traverse-node.js.map +1 -1
  222. package/src/front/node_modules/@babel/traverse/lib/types.js.map +1 -1
  223. package/src/front/node_modules/@babel/traverse/lib/visitors.js +1 -1
  224. package/src/front/node_modules/@babel/traverse/lib/visitors.js.map +1 -1
  225. package/src/front/node_modules/@babel/traverse/package.json +6 -6
  226. package/src/front/node_modules/@babel/types/lib/asserts/assertNode.js +1 -1
  227. package/src/front/node_modules/@babel/types/lib/asserts/assertNode.js.map +1 -1
  228. package/src/front/node_modules/@babel/types/lib/asserts/generated/index.js +2 -2
  229. package/src/front/node_modules/@babel/types/lib/asserts/generated/index.js.map +1 -1
  230. package/src/front/node_modules/@babel/types/lib/ast-types/generated/index.js.map +1 -1
  231. package/src/front/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js +3 -3
  232. package/src/front/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js.map +1 -1
  233. package/src/front/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js +9 -9
  234. package/src/front/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js.map +1 -1
  235. package/src/front/node_modules/@babel/types/lib/builders/generated/index.js +2 -2
  236. package/src/front/node_modules/@babel/types/lib/builders/generated/index.js.map +1 -1
  237. package/src/front/node_modules/@babel/types/lib/builders/generated/uppercase.js +1 -1
  238. package/src/front/node_modules/@babel/types/lib/builders/generated/uppercase.js.map +1 -1
  239. package/src/front/node_modules/@babel/types/lib/builders/react/buildChildren.js +5 -5
  240. package/src/front/node_modules/@babel/types/lib/builders/react/buildChildren.js.map +1 -1
  241. package/src/front/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js +5 -5
  242. package/src/front/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js.map +1 -1
  243. package/src/front/node_modules/@babel/types/lib/builders/validateNode.js +3 -3
  244. package/src/front/node_modules/@babel/types/lib/builders/validateNode.js.map +1 -1
  245. package/src/front/node_modules/@babel/types/lib/clone/clone.js +1 -1
  246. package/src/front/node_modules/@babel/types/lib/clone/clone.js.map +1 -1
  247. package/src/front/node_modules/@babel/types/lib/clone/cloneDeep.js +1 -1
  248. package/src/front/node_modules/@babel/types/lib/clone/cloneDeep.js.map +1 -1
  249. package/src/front/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js +1 -1
  250. package/src/front/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js.map +1 -1
  251. package/src/front/node_modules/@babel/types/lib/clone/cloneNode.js +6 -6
  252. package/src/front/node_modules/@babel/types/lib/clone/cloneNode.js.map +1 -1
  253. package/src/front/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js +1 -1
  254. package/src/front/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js.map +1 -1
  255. package/src/front/node_modules/@babel/types/lib/comments/addComment.js +1 -1
  256. package/src/front/node_modules/@babel/types/lib/comments/addComment.js.map +1 -1
  257. package/src/front/node_modules/@babel/types/lib/comments/addComments.js.map +1 -1
  258. package/src/front/node_modules/@babel/types/lib/comments/inheritInnerComments.js +1 -1
  259. package/src/front/node_modules/@babel/types/lib/comments/inheritInnerComments.js.map +1 -1
  260. package/src/front/node_modules/@babel/types/lib/comments/inheritLeadingComments.js +1 -1
  261. package/src/front/node_modules/@babel/types/lib/comments/inheritLeadingComments.js.map +1 -1
  262. package/src/front/node_modules/@babel/types/lib/comments/inheritTrailingComments.js +1 -1
  263. package/src/front/node_modules/@babel/types/lib/comments/inheritTrailingComments.js.map +1 -1
  264. package/src/front/node_modules/@babel/types/lib/comments/inheritsComments.js +3 -3
  265. package/src/front/node_modules/@babel/types/lib/comments/inheritsComments.js.map +1 -1
  266. package/src/front/node_modules/@babel/types/lib/comments/removeComments.js +2 -2
  267. package/src/front/node_modules/@babel/types/lib/comments/removeComments.js.map +1 -1
  268. package/src/front/node_modules/@babel/types/lib/constants/generated/index.js +50 -50
  269. package/src/front/node_modules/@babel/types/lib/constants/generated/index.js.map +1 -1
  270. package/src/front/node_modules/@babel/types/lib/converters/ensureBlock.js +1 -1
  271. package/src/front/node_modules/@babel/types/lib/converters/ensureBlock.js.map +1 -1
  272. package/src/front/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js +14 -14
  273. package/src/front/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js.map +1 -1
  274. package/src/front/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js +1 -1
  275. package/src/front/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js.map +1 -1
  276. package/src/front/node_modules/@babel/types/lib/converters/toBlock.js +9 -9
  277. package/src/front/node_modules/@babel/types/lib/converters/toBlock.js.map +1 -1
  278. package/src/front/node_modules/@babel/types/lib/converters/toComputedKey.js +3 -3
  279. package/src/front/node_modules/@babel/types/lib/converters/toComputedKey.js.map +1 -1
  280. package/src/front/node_modules/@babel/types/lib/converters/toExpression.js +6 -6
  281. package/src/front/node_modules/@babel/types/lib/converters/toExpression.js.map +1 -1
  282. package/src/front/node_modules/@babel/types/lib/converters/toIdentifier.js +1 -1
  283. package/src/front/node_modules/@babel/types/lib/converters/toIdentifier.js.map +1 -1
  284. package/src/front/node_modules/@babel/types/lib/converters/toKeyAlias.js +5 -5
  285. package/src/front/node_modules/@babel/types/lib/converters/toKeyAlias.js.map +1 -1
  286. package/src/front/node_modules/@babel/types/lib/converters/toSequenceExpression.js +1 -1
  287. package/src/front/node_modules/@babel/types/lib/converters/toSequenceExpression.js.map +1 -1
  288. package/src/front/node_modules/@babel/types/lib/converters/toStatement.js +7 -7
  289. package/src/front/node_modules/@babel/types/lib/converters/toStatement.js.map +1 -1
  290. package/src/front/node_modules/@babel/types/lib/converters/valueToNode.js +17 -17
  291. package/src/front/node_modules/@babel/types/lib/converters/valueToNode.js.map +1 -1
  292. package/src/front/node_modules/@babel/types/lib/definitions/core.js +9 -9
  293. package/src/front/node_modules/@babel/types/lib/definitions/core.js.map +1 -1
  294. package/src/front/node_modules/@babel/types/lib/definitions/experimental.js +1 -1
  295. package/src/front/node_modules/@babel/types/lib/definitions/experimental.js.map +1 -1
  296. package/src/front/node_modules/@babel/types/lib/definitions/flow.js +1 -1
  297. package/src/front/node_modules/@babel/types/lib/definitions/flow.js.map +1 -1
  298. package/src/front/node_modules/@babel/types/lib/definitions/index.js +9 -9
  299. package/src/front/node_modules/@babel/types/lib/definitions/index.js.map +1 -1
  300. package/src/front/node_modules/@babel/types/lib/definitions/jsx.js +1 -1
  301. package/src/front/node_modules/@babel/types/lib/definitions/jsx.js.map +1 -1
  302. package/src/front/node_modules/@babel/types/lib/definitions/misc.js +2 -2
  303. package/src/front/node_modules/@babel/types/lib/definitions/misc.js.map +1 -1
  304. package/src/front/node_modules/@babel/types/lib/definitions/placeholders.js +1 -1
  305. package/src/front/node_modules/@babel/types/lib/definitions/placeholders.js.map +1 -1
  306. package/src/front/node_modules/@babel/types/lib/definitions/typescript.js +4 -4
  307. package/src/front/node_modules/@babel/types/lib/definitions/typescript.js.map +1 -1
  308. package/src/front/node_modules/@babel/types/lib/definitions/utils.js +2 -2
  309. package/src/front/node_modules/@babel/types/lib/definitions/utils.js.map +1 -1
  310. package/src/front/node_modules/@babel/types/lib/index-legacy.d.ts +10 -10
  311. package/src/front/node_modules/@babel/types/lib/index.d.ts +12 -12
  312. package/src/front/node_modules/@babel/types/lib/index.js +84 -84
  313. package/src/front/node_modules/@babel/types/lib/index.js.flow +10 -10
  314. package/src/front/node_modules/@babel/types/lib/index.js.map +1 -1
  315. package/src/front/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js +2 -2
  316. package/src/front/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js.map +1 -1
  317. package/src/front/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js +6 -6
  318. package/src/front/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js.map +1 -1
  319. package/src/front/node_modules/@babel/types/lib/modifications/inherits.js +4 -4
  320. package/src/front/node_modules/@babel/types/lib/modifications/inherits.js.map +1 -1
  321. package/src/front/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js +4 -4
  322. package/src/front/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js.map +1 -1
  323. package/src/front/node_modules/@babel/types/lib/modifications/removeProperties.js +2 -2
  324. package/src/front/node_modules/@babel/types/lib/modifications/removeProperties.js.map +1 -1
  325. package/src/front/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js +2 -2
  326. package/src/front/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js.map +1 -1
  327. package/src/front/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js +6 -6
  328. package/src/front/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js.map +1 -1
  329. package/src/front/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js +6 -6
  330. package/src/front/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js.map +1 -1
  331. package/src/front/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js +1 -1
  332. package/src/front/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js.map +1 -1
  333. package/src/front/node_modules/@babel/types/lib/traverse/traverse.js +2 -2
  334. package/src/front/node_modules/@babel/types/lib/traverse/traverse.js.map +1 -1
  335. package/src/front/node_modules/@babel/types/lib/traverse/traverseFast.js +2 -2
  336. package/src/front/node_modules/@babel/types/lib/traverse/traverseFast.js.map +1 -1
  337. package/src/front/node_modules/@babel/types/lib/utils/inherit.js.map +1 -1
  338. package/src/front/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js +3 -3
  339. package/src/front/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js.map +1 -1
  340. package/src/front/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js +1 -1
  341. package/src/front/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js.map +1 -1
  342. package/src/front/node_modules/@babel/types/lib/validators/generated/index.js +2 -2
  343. package/src/front/node_modules/@babel/types/lib/validators/generated/index.js.map +1 -1
  344. package/src/front/node_modules/@babel/types/lib/validators/is.js +5 -5
  345. package/src/front/node_modules/@babel/types/lib/validators/is.js.map +1 -1
  346. package/src/front/node_modules/@babel/types/lib/validators/isBinding.js +1 -1
  347. package/src/front/node_modules/@babel/types/lib/validators/isBinding.js.map +1 -1
  348. package/src/front/node_modules/@babel/types/lib/validators/isBlockScoped.js +3 -3
  349. package/src/front/node_modules/@babel/types/lib/validators/isBlockScoped.js.map +1 -1
  350. package/src/front/node_modules/@babel/types/lib/validators/isImmutable.js +3 -3
  351. package/src/front/node_modules/@babel/types/lib/validators/isImmutable.js.map +1 -1
  352. package/src/front/node_modules/@babel/types/lib/validators/isLet.js +3 -3
  353. package/src/front/node_modules/@babel/types/lib/validators/isLet.js.map +1 -1
  354. package/src/front/node_modules/@babel/types/lib/validators/isNode.js +2 -2
  355. package/src/front/node_modules/@babel/types/lib/validators/isNode.js.map +1 -1
  356. package/src/front/node_modules/@babel/types/lib/validators/isNodesEquivalent.js +3 -3
  357. package/src/front/node_modules/@babel/types/lib/validators/isNodesEquivalent.js.map +1 -1
  358. package/src/front/node_modules/@babel/types/lib/validators/isPlaceholderType.js +2 -2
  359. package/src/front/node_modules/@babel/types/lib/validators/isPlaceholderType.js.map +1 -1
  360. package/src/front/node_modules/@babel/types/lib/validators/isReferenced.js.map +1 -1
  361. package/src/front/node_modules/@babel/types/lib/validators/isScope.js +4 -4
  362. package/src/front/node_modules/@babel/types/lib/validators/isScope.js.map +1 -1
  363. package/src/front/node_modules/@babel/types/lib/validators/isSpecifierDefault.js +2 -2
  364. package/src/front/node_modules/@babel/types/lib/validators/isSpecifierDefault.js.map +1 -1
  365. package/src/front/node_modules/@babel/types/lib/validators/isType.js +3 -3
  366. package/src/front/node_modules/@babel/types/lib/validators/isType.js.map +1 -1
  367. package/src/front/node_modules/@babel/types/lib/validators/isValidES3Identifier.js +1 -1
  368. package/src/front/node_modules/@babel/types/lib/validators/isValidES3Identifier.js.map +1 -1
  369. package/src/front/node_modules/@babel/types/lib/validators/isVar.js +4 -4
  370. package/src/front/node_modules/@babel/types/lib/validators/isVar.js.map +1 -1
  371. package/src/front/node_modules/@babel/types/lib/validators/matchesPattern.js +6 -6
  372. package/src/front/node_modules/@babel/types/lib/validators/matchesPattern.js.map +1 -1
  373. package/src/front/node_modules/@babel/types/lib/validators/react/isReactComponent.js +1 -1
  374. package/src/front/node_modules/@babel/types/lib/validators/react/isReactComponent.js.map +1 -1
  375. package/src/front/node_modules/@babel/types/lib/validators/validate.js +3 -3
  376. package/src/front/node_modules/@babel/types/lib/validators/validate.js.map +1 -1
  377. package/src/front/node_modules/@babel/types/package.json +4 -4
  378. package/src/front/node_modules/typescript/lib/lib.decorators.d.ts +17 -0
  379. package/src/front/node_modules/typescript/lib/lib.dom.d.ts +313 -90
  380. package/src/front/node_modules/typescript/lib/lib.es2015.collection.d.ts +9 -9
  381. package/src/front/node_modules/typescript/lib/lib.es2015.core.d.ts +2 -2
  382. package/src/front/node_modules/typescript/lib/lib.es2015.iterable.d.ts +4 -4
  383. package/src/front/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +2 -2
  384. package/src/front/node_modules/typescript/lib/lib.es2017.d.ts +1 -0
  385. package/src/front/node_modules/typescript/lib/lib.es2017.date.d.ts +31 -0
  386. package/src/front/node_modules/typescript/lib/lib.es2020.bigint.d.ts +4 -4
  387. package/src/front/node_modules/typescript/lib/lib.es2021.weakref.d.ts +19 -16
  388. package/src/front/node_modules/typescript/lib/lib.es2023.array.d.ts +618 -36
  389. package/src/front/node_modules/typescript/lib/lib.es2023.collection.d.ts +21 -0
  390. package/src/front/node_modules/typescript/lib/lib.es2023.d.ts +1 -0
  391. package/src/front/node_modules/typescript/lib/lib.es5.d.ts +27 -18
  392. package/src/front/node_modules/typescript/lib/lib.esnext.d.ts +2 -0
  393. package/src/front/node_modules/typescript/lib/lib.esnext.decorators.d.ts +28 -0
  394. package/src/front/node_modules/typescript/lib/lib.esnext.disposable.d.ts +185 -0
  395. package/src/front/node_modules/typescript/lib/lib.webworker.d.ts +172 -33
  396. package/src/front/node_modules/typescript/lib/tsc.js +8311 -6557
  397. package/src/front/node_modules/typescript/lib/tsserver.js +11796 -9281
  398. package/src/front/node_modules/typescript/lib/tsserverlibrary.d.ts +287 -249
  399. package/src/front/node_modules/typescript/lib/tsserverlibrary.js +11801 -9288
  400. package/src/front/node_modules/typescript/lib/typescript.d.ts +274 -248
  401. package/src/front/node_modules/typescript/lib/typescript.js +11678 -9231
  402. package/src/front/node_modules/typescript/lib/typingsInstaller.js +1852 -1645
  403. package/src/front/node_modules/typescript/package.json +7 -7
  404. package/src/front/package-lock.json +144 -144
  405. package/src/front/src/components/inputs/FileInput.js +1 -0
  406. package/src/front/src/pages/Records.js +1 -0
  407. package/src/front/build/static/js/main.4ce5340d.chunk.js.map +0 -1
  408. package/src/front/node_modules/.cache/babel-loader/1dbf9b1b83cdf813e9dc5f561b9b97ac.json +0 -1
  409. package/src/front/node_modules/.cache/babel-loader/d88f947a76ac5f78797e69c737b6267e.json +0 -1
  410. package/src/front/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/c3/3e/f2b5b90044b7bdbb4cff67b2c09e24bb506274240d920de24bb4b678f3f00b80f7e9f0900cd1de883484031488d8603e97ea6b4e39a9c6ab5160353d3be9 +0 -1
  411. package/src/front/node_modules/@babel/parser/lib/options.js +0 -44
  412. package/src/front/node_modules/@babel/parser/lib/options.js.map +0 -1
  413. package/src/front/node_modules/@babel/parser/lib/parse-error/credentials.js +0 -28
  414. package/src/front/node_modules/@babel/parser/lib/parse-error/credentials.js.map +0 -1
  415. package/src/front/node_modules/@babel/parser/lib/parse-error/module-errors.js +0 -20
  416. package/src/front/node_modules/@babel/parser/lib/parse-error/module-errors.js.map +0 -1
  417. package/src/front/node_modules/@babel/parser/lib/parse-error/pipeline-operator-errors.js +0 -32
  418. package/src/front/node_modules/@babel/parser/lib/parse-error/pipeline-operator-errors.js.map +0 -1
  419. package/src/front/node_modules/@babel/parser/lib/parse-error/standard-errors.js +0 -220
  420. package/src/front/node_modules/@babel/parser/lib/parse-error/standard-errors.js.map +0 -1
  421. package/src/front/node_modules/@babel/parser/lib/parse-error/strict-mode-errors.js +0 -22
  422. package/src/front/node_modules/@babel/parser/lib/parse-error/strict-mode-errors.js.map +0 -1
  423. package/src/front/node_modules/@babel/parser/lib/parse-error/to-node-description.js +0 -39
  424. package/src/front/node_modules/@babel/parser/lib/parse-error/to-node-description.js.map +0 -1
  425. package/src/front/node_modules/@babel/parser/lib/parse-error.js +0 -106
  426. package/src/front/node_modules/@babel/parser/lib/parse-error.js.map +0 -1
  427. package/src/front/node_modules/@babel/parser/lib/parser/base.js +0 -36
  428. package/src/front/node_modules/@babel/parser/lib/parser/base.js.map +0 -1
  429. package/src/front/node_modules/@babel/parser/lib/parser/comments.js +0 -190
  430. package/src/front/node_modules/@babel/parser/lib/parser/comments.js.map +0 -1
  431. package/src/front/node_modules/@babel/parser/lib/parser/expression.js +0 -1824
  432. package/src/front/node_modules/@babel/parser/lib/parser/expression.js.map +0 -1
  433. package/src/front/node_modules/@babel/parser/lib/parser/index.js +0 -43
  434. package/src/front/node_modules/@babel/parser/lib/parser/index.js.map +0 -1
  435. package/src/front/node_modules/@babel/parser/lib/parser/lval.js +0 -421
  436. package/src/front/node_modules/@babel/parser/lib/parser/lval.js.map +0 -1
  437. package/src/front/node_modules/@babel/parser/lib/parser/node.js +0 -127
  438. package/src/front/node_modules/@babel/parser/lib/parser/node.js.map +0 -1
  439. package/src/front/node_modules/@babel/parser/lib/parser/statement.js +0 -2033
  440. package/src/front/node_modules/@babel/parser/lib/parser/statement.js.map +0 -1
  441. package/src/front/node_modules/@babel/parser/lib/parser/util.js +0 -238
  442. package/src/front/node_modules/@babel/parser/lib/parser/util.js.map +0 -1
  443. package/src/front/node_modules/@babel/parser/lib/plugin-utils.js +0 -136
  444. package/src/front/node_modules/@babel/parser/lib/plugin-utils.js.map +0 -1
  445. package/src/front/node_modules/@babel/parser/lib/plugins/estree.js +0 -340
  446. package/src/front/node_modules/@babel/parser/lib/plugins/estree.js.map +0 -1
  447. package/src/front/node_modules/@babel/parser/lib/plugins/flow/index.js +0 -2474
  448. package/src/front/node_modules/@babel/parser/lib/plugins/flow/index.js.map +0 -1
  449. package/src/front/node_modules/@babel/parser/lib/plugins/flow/scope.js +0 -44
  450. package/src/front/node_modules/@babel/parser/lib/plugins/flow/scope.js.map +0 -1
  451. package/src/front/node_modules/@babel/parser/lib/plugins/jsx/index.js +0 -444
  452. package/src/front/node_modules/@babel/parser/lib/plugins/jsx/index.js.map +0 -1
  453. package/src/front/node_modules/@babel/parser/lib/plugins/jsx/xhtml.js +0 -266
  454. package/src/front/node_modules/@babel/parser/lib/plugins/jsx/xhtml.js.map +0 -1
  455. package/src/front/node_modules/@babel/parser/lib/plugins/placeholders.js +0 -198
  456. package/src/front/node_modules/@babel/parser/lib/plugins/placeholders.js.map +0 -1
  457. package/src/front/node_modules/@babel/parser/lib/plugins/typescript/index.js +0 -2656
  458. package/src/front/node_modules/@babel/parser/lib/plugins/typescript/index.js.map +0 -1
  459. package/src/front/node_modules/@babel/parser/lib/plugins/typescript/scope.js +0 -121
  460. package/src/front/node_modules/@babel/parser/lib/plugins/typescript/scope.js.map +0 -1
  461. package/src/front/node_modules/@babel/parser/lib/plugins/v8intrinsic.js +0 -31
  462. package/src/front/node_modules/@babel/parser/lib/plugins/v8intrinsic.js.map +0 -1
  463. package/src/front/node_modules/@babel/parser/lib/tokenizer/context.js +0 -27
  464. package/src/front/node_modules/@babel/parser/lib/tokenizer/context.js.map +0 -1
  465. package/src/front/node_modules/@babel/parser/lib/tokenizer/index.js +0 -1119
  466. package/src/front/node_modules/@babel/parser/lib/tokenizer/index.js.map +0 -1
  467. package/src/front/node_modules/@babel/parser/lib/tokenizer/state.js +0 -82
  468. package/src/front/node_modules/@babel/parser/lib/tokenizer/state.js.map +0 -1
  469. package/src/front/node_modules/@babel/parser/lib/tokenizer/types.js +0 -586
  470. package/src/front/node_modules/@babel/parser/lib/tokenizer/types.js.map +0 -1
  471. package/src/front/node_modules/@babel/parser/lib/util/class-scope.js +0 -92
  472. package/src/front/node_modules/@babel/parser/lib/util/class-scope.js.map +0 -1
  473. package/src/front/node_modules/@babel/parser/lib/util/expression-scope.js +0 -142
  474. package/src/front/node_modules/@babel/parser/lib/util/expression-scope.js.map +0 -1
  475. package/src/front/node_modules/@babel/parser/lib/util/identifier.js +0 -62
  476. package/src/front/node_modules/@babel/parser/lib/util/identifier.js.map +0 -1
  477. package/src/front/node_modules/@babel/parser/lib/util/location.js +0 -39
  478. package/src/front/node_modules/@babel/parser/lib/util/location.js.map +0 -1
  479. package/src/front/node_modules/@babel/parser/lib/util/production-parameter.js +0 -49
  480. package/src/front/node_modules/@babel/parser/lib/util/production-parameter.js.map +0 -1
  481. package/src/front/node_modules/@babel/parser/lib/util/scope.js +0 -161
  482. package/src/front/node_modules/@babel/parser/lib/util/scope.js.map +0 -1
  483. package/src/front/node_modules/@babel/parser/lib/util/scopeflags.js +0 -67
  484. package/src/front/node_modules/@babel/parser/lib/util/scopeflags.js.map +0 -1
  485. package/src/front/node_modules/@babel/parser/lib/util/whitespace.js +0 -59
  486. package/src/front/node_modules/@babel/parser/lib/util/whitespace.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_t","require","isFor","isForStatement","isIfStatement","isStatement","WithStatement","node","word","space","token","print","object","printBlock","IfStatement","test","needsBlock","alternate","getLastStatement","consequent","newline","indent","printAndIndentOnComments","dedent","endsWith","statement","body","ForStatement","inForStatementInitCounter","init","update","WhileStatement","ForXStatement","isForOf","type","await","noIndentInnerCommentsHere","left","right","ForInStatement","exports","ForOfStatement","DoWhileStatement","semicolon","printStatementAfterKeyword","printer","parent","isLabel","printTerminatorless","BreakStatement","label","ContinueStatement","ReturnStatement","argument","ThrowStatement","LabeledStatement","TryStatement","block","handlers","handler","finalizer","CatchClause","param","typeAnnotation","SwitchStatement","discriminant","printSequence","cases","addNewlines","leading","cas","length","rightBrace","SwitchCase","DebuggerStatement","VariableDeclaration","declare","kind","hasInits","declar","declarations","printList","separator","undefined","VariableDeclarator","id","definite"],"sources":["../../src/generators/statements.ts"],"sourcesContent":["import type Printer from \"../printer\";\nimport {\n isFor,\n isForStatement,\n isIfStatement,\n isStatement,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport * as charCodes from \"charcodes\";\n\nexport function WithStatement(this: Printer, node: t.WithStatement) {\n this.word(\"with\");\n this.space();\n this.token(\"(\");\n this.print(node.object, node);\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport function IfStatement(this: Printer, node: t.IfStatement) {\n this.word(\"if\");\n this.space();\n this.token(\"(\");\n this.print(node.test, node);\n this.token(\")\");\n this.space();\n\n const needsBlock =\n node.alternate && isIfStatement(getLastStatement(node.consequent));\n if (needsBlock) {\n this.token(\"{\");\n this.newline();\n this.indent();\n }\n\n this.printAndIndentOnComments(node.consequent, node);\n\n if (needsBlock) {\n this.dedent();\n this.newline();\n this.token(\"}\");\n }\n\n if (node.alternate) {\n if (this.endsWith(charCodes.rightCurlyBrace)) this.space();\n this.word(\"else\");\n this.space();\n this.printAndIndentOnComments(node.alternate, node);\n }\n}\n\n// Recursively get the last statement.\nfunction getLastStatement(statement: t.Statement): t.Statement {\n // @ts-expect-error: If statement.body is empty or not a Node, isStatement will return false\n const { body } = statement;\n if (isStatement(body) === false) {\n return statement;\n }\n\n return getLastStatement(body);\n}\n\nexport function ForStatement(this: Printer, node: t.ForStatement) {\n this.word(\"for\");\n this.space();\n this.token(\"(\");\n\n this.inForStatementInitCounter++;\n this.print(node.init, node);\n this.inForStatementInitCounter--;\n this.token(\";\");\n\n if (node.test) {\n this.space();\n this.print(node.test, node);\n }\n this.token(\";\");\n\n if (node.update) {\n this.space();\n this.print(node.update, node);\n }\n\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport function WhileStatement(this: Printer, node: t.WhileStatement) {\n this.word(\"while\");\n this.space();\n this.token(\"(\");\n this.print(node.test, node);\n this.token(\")\");\n this.printBlock(node);\n}\n\nfunction ForXStatement(this: Printer, node: t.ForXStatement) {\n this.word(\"for\");\n this.space();\n const isForOf = node.type === \"ForOfStatement\";\n if (isForOf && node.await) {\n this.word(\"await\");\n this.space();\n }\n this.noIndentInnerCommentsHere();\n this.token(\"(\");\n this.print(node.left, node);\n this.space();\n this.word(isForOf ? \"of\" : \"in\");\n this.space();\n this.print(node.right, node);\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport const ForInStatement = ForXStatement;\nexport const ForOfStatement = ForXStatement;\n\nexport function DoWhileStatement(this: Printer, node: t.DoWhileStatement) {\n this.word(\"do\");\n this.space();\n this.print(node.body, node);\n this.space();\n this.word(\"while\");\n this.space();\n this.token(\"(\");\n this.print(node.test, node);\n this.token(\")\");\n this.semicolon();\n}\n\nfunction printStatementAfterKeyword(\n printer: Printer,\n node: t.Node,\n parent: t.Node,\n isLabel: boolean,\n) {\n if (node) {\n printer.space();\n printer.printTerminatorless(node, parent, isLabel);\n }\n\n printer.semicolon();\n}\n\nexport function BreakStatement(this: Printer, node: t.ContinueStatement) {\n this.word(\"break\");\n printStatementAfterKeyword(this, node.label, node, true);\n}\n\nexport function ContinueStatement(this: Printer, node: t.ContinueStatement) {\n this.word(\"continue\");\n printStatementAfterKeyword(this, node.label, node, true);\n}\n\nexport function ReturnStatement(this: Printer, node: t.ReturnStatement) {\n this.word(\"return\");\n printStatementAfterKeyword(this, node.argument, node, false);\n}\n\nexport function ThrowStatement(this: Printer, node: t.ThrowStatement) {\n this.word(\"throw\");\n printStatementAfterKeyword(this, node.argument, node, false);\n}\n\nexport function LabeledStatement(this: Printer, node: t.LabeledStatement) {\n this.print(node.label, node);\n this.token(\":\");\n this.space();\n this.print(node.body, node);\n}\n\nexport function TryStatement(this: Printer, node: t.TryStatement) {\n this.word(\"try\");\n this.space();\n this.print(node.block, node);\n this.space();\n\n // Esprima bug puts the catch clause in a `handlers` array.\n // see https://code.google.com/p/esprima/issues/detail?id=433\n // We run into this from regenerator generated ast.\n // @ts-expect-error todo(flow->ts) should ast node type be updated to support this?\n if (node.handlers) {\n // @ts-expect-error todo(flow->ts) should ast node type be updated to support this?\n this.print(node.handlers[0], node);\n } else {\n this.print(node.handler, node);\n }\n\n if (node.finalizer) {\n this.space();\n this.word(\"finally\");\n this.space();\n this.print(node.finalizer, node);\n }\n}\n\nexport function CatchClause(this: Printer, node: t.CatchClause) {\n this.word(\"catch\");\n this.space();\n if (node.param) {\n this.token(\"(\");\n this.print(node.param, node);\n this.print(node.param.typeAnnotation, node);\n this.token(\")\");\n this.space();\n }\n this.print(node.body, node);\n}\n\nexport function SwitchStatement(this: Printer, node: t.SwitchStatement) {\n this.word(\"switch\");\n this.space();\n this.token(\"(\");\n this.print(node.discriminant, node);\n this.token(\")\");\n this.space();\n this.token(\"{\");\n\n this.printSequence(node.cases, node, {\n indent: true,\n addNewlines(leading, cas) {\n if (!leading && node.cases[node.cases.length - 1] === cas) return -1;\n },\n });\n\n this.rightBrace(node);\n}\n\nexport function SwitchCase(this: Printer, node: t.SwitchCase) {\n if (node.test) {\n this.word(\"case\");\n this.space();\n this.print(node.test, node);\n this.token(\":\");\n } else {\n this.word(\"default\");\n this.token(\":\");\n }\n\n if (node.consequent.length) {\n this.newline();\n this.printSequence(node.consequent, node, { indent: true });\n }\n}\n\nexport function DebuggerStatement(this: Printer) {\n this.word(\"debugger\");\n this.semicolon();\n}\n\nexport function VariableDeclaration(\n this: Printer,\n node: t.VariableDeclaration,\n parent: t.Node,\n) {\n if (node.declare) {\n // TS\n this.word(\"declare\");\n this.space();\n }\n\n const { kind } = node;\n this.word(kind, kind === \"using\" || kind === \"await using\");\n this.space();\n\n let hasInits = false;\n // don't add whitespace to loop heads\n if (!isFor(parent)) {\n for (const declar of node.declarations) {\n if (declar.init) {\n // has an init so let's split it up over multiple lines\n hasInits = true;\n }\n }\n }\n\n //\n // use a pretty separator when we aren't in compact mode, have initializers and don't have retainLines on\n // this will format declarations like:\n //\n // let foo = \"bar\", bar = \"foo\";\n //\n // into\n //\n // let foo = \"bar\",\n // bar = \"foo\";\n //\n\n this.printList(node.declarations, node, {\n separator: hasInits\n ? function (this: Printer) {\n this.token(\",\");\n this.newline();\n }\n : undefined,\n indent: node.declarations.length > 1 ? true : false,\n });\n\n if (isFor(parent)) {\n // don't give semicolons to these nodes since they'll be inserted in the parent generator\n if (isForStatement(parent)) {\n if (parent.init === node) return;\n } else {\n if (parent.left === node) return;\n }\n }\n\n this.semicolon();\n}\n\nexport function VariableDeclarator(this: Printer, node: t.VariableDeclarator) {\n this.print(node.id, node);\n if (node.definite) this.token(\"!\"); // TS\n // @ts-expect-error todo(flow-ts) Property 'typeAnnotation' does not exist on type 'MemberExpression'.\n this.print(node.id.typeAnnotation, node);\n if (node.init) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.init, node);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_t","require","isFor","isForStatement","isIfStatement","isStatement","WithStatement","node","word","space","token","print","object","printBlock","IfStatement","test","needsBlock","alternate","getLastStatement","consequent","newline","indent","printAndIndentOnComments","dedent","endsWith","statement","body","ForStatement","inForStatementInitCounter","init","update","WhileStatement","ForXStatement","isForOf","type","await","noIndentInnerCommentsHere","left","right","ForInStatement","exports","ForOfStatement","DoWhileStatement","semicolon","printStatementAfterKeyword","printer","parent","isLabel","printTerminatorless","BreakStatement","label","ContinueStatement","ReturnStatement","argument","ThrowStatement","LabeledStatement","TryStatement","block","handlers","handler","finalizer","CatchClause","param","typeAnnotation","SwitchStatement","discriminant","printSequence","cases","addNewlines","leading","cas","length","rightBrace","SwitchCase","DebuggerStatement","VariableDeclaration","declare","kind","hasInits","declar","declarations","printList","separator","undefined","VariableDeclarator","id","definite"],"sources":["../../src/generators/statements.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport {\n isFor,\n isForStatement,\n isIfStatement,\n isStatement,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport * as charCodes from \"charcodes\";\n\nexport function WithStatement(this: Printer, node: t.WithStatement) {\n this.word(\"with\");\n this.space();\n this.token(\"(\");\n this.print(node.object, node);\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport function IfStatement(this: Printer, node: t.IfStatement) {\n this.word(\"if\");\n this.space();\n this.token(\"(\");\n this.print(node.test, node);\n this.token(\")\");\n this.space();\n\n const needsBlock =\n node.alternate && isIfStatement(getLastStatement(node.consequent));\n if (needsBlock) {\n this.token(\"{\");\n this.newline();\n this.indent();\n }\n\n this.printAndIndentOnComments(node.consequent, node);\n\n if (needsBlock) {\n this.dedent();\n this.newline();\n this.token(\"}\");\n }\n\n if (node.alternate) {\n if (this.endsWith(charCodes.rightCurlyBrace)) this.space();\n this.word(\"else\");\n this.space();\n this.printAndIndentOnComments(node.alternate, node);\n }\n}\n\n// Recursively get the last statement.\nfunction getLastStatement(statement: t.Statement): t.Statement {\n // @ts-expect-error: If statement.body is empty or not a Node, isStatement will return false\n const { body } = statement;\n if (isStatement(body) === false) {\n return statement;\n }\n\n return getLastStatement(body);\n}\n\nexport function ForStatement(this: Printer, node: t.ForStatement) {\n this.word(\"for\");\n this.space();\n this.token(\"(\");\n\n this.inForStatementInitCounter++;\n this.print(node.init, node);\n this.inForStatementInitCounter--;\n this.token(\";\");\n\n if (node.test) {\n this.space();\n this.print(node.test, node);\n }\n this.token(\";\");\n\n if (node.update) {\n this.space();\n this.print(node.update, node);\n }\n\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport function WhileStatement(this: Printer, node: t.WhileStatement) {\n this.word(\"while\");\n this.space();\n this.token(\"(\");\n this.print(node.test, node);\n this.token(\")\");\n this.printBlock(node);\n}\n\nfunction ForXStatement(this: Printer, node: t.ForXStatement) {\n this.word(\"for\");\n this.space();\n const isForOf = node.type === \"ForOfStatement\";\n if (isForOf && node.await) {\n this.word(\"await\");\n this.space();\n }\n this.noIndentInnerCommentsHere();\n this.token(\"(\");\n this.print(node.left, node);\n this.space();\n this.word(isForOf ? \"of\" : \"in\");\n this.space();\n this.print(node.right, node);\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport const ForInStatement = ForXStatement;\nexport const ForOfStatement = ForXStatement;\n\nexport function DoWhileStatement(this: Printer, node: t.DoWhileStatement) {\n this.word(\"do\");\n this.space();\n this.print(node.body, node);\n this.space();\n this.word(\"while\");\n this.space();\n this.token(\"(\");\n this.print(node.test, node);\n this.token(\")\");\n this.semicolon();\n}\n\nfunction printStatementAfterKeyword(\n printer: Printer,\n node: t.Node,\n parent: t.Node,\n isLabel: boolean,\n) {\n if (node) {\n printer.space();\n printer.printTerminatorless(node, parent, isLabel);\n }\n\n printer.semicolon();\n}\n\nexport function BreakStatement(this: Printer, node: t.ContinueStatement) {\n this.word(\"break\");\n printStatementAfterKeyword(this, node.label, node, true);\n}\n\nexport function ContinueStatement(this: Printer, node: t.ContinueStatement) {\n this.word(\"continue\");\n printStatementAfterKeyword(this, node.label, node, true);\n}\n\nexport function ReturnStatement(this: Printer, node: t.ReturnStatement) {\n this.word(\"return\");\n printStatementAfterKeyword(this, node.argument, node, false);\n}\n\nexport function ThrowStatement(this: Printer, node: t.ThrowStatement) {\n this.word(\"throw\");\n printStatementAfterKeyword(this, node.argument, node, false);\n}\n\nexport function LabeledStatement(this: Printer, node: t.LabeledStatement) {\n this.print(node.label, node);\n this.token(\":\");\n this.space();\n this.print(node.body, node);\n}\n\nexport function TryStatement(this: Printer, node: t.TryStatement) {\n this.word(\"try\");\n this.space();\n this.print(node.block, node);\n this.space();\n\n // Esprima bug puts the catch clause in a `handlers` array.\n // see https://code.google.com/p/esprima/issues/detail?id=433\n // We run into this from regenerator generated ast.\n // @ts-expect-error todo(flow->ts) should ast node type be updated to support this?\n if (node.handlers) {\n // @ts-expect-error todo(flow->ts) should ast node type be updated to support this?\n this.print(node.handlers[0], node);\n } else {\n this.print(node.handler, node);\n }\n\n if (node.finalizer) {\n this.space();\n this.word(\"finally\");\n this.space();\n this.print(node.finalizer, node);\n }\n}\n\nexport function CatchClause(this: Printer, node: t.CatchClause) {\n this.word(\"catch\");\n this.space();\n if (node.param) {\n this.token(\"(\");\n this.print(node.param, node);\n this.print(node.param.typeAnnotation, node);\n this.token(\")\");\n this.space();\n }\n this.print(node.body, node);\n}\n\nexport function SwitchStatement(this: Printer, node: t.SwitchStatement) {\n this.word(\"switch\");\n this.space();\n this.token(\"(\");\n this.print(node.discriminant, node);\n this.token(\")\");\n this.space();\n this.token(\"{\");\n\n this.printSequence(node.cases, node, {\n indent: true,\n addNewlines(leading, cas) {\n if (!leading && node.cases[node.cases.length - 1] === cas) return -1;\n },\n });\n\n this.rightBrace(node);\n}\n\nexport function SwitchCase(this: Printer, node: t.SwitchCase) {\n if (node.test) {\n this.word(\"case\");\n this.space();\n this.print(node.test, node);\n this.token(\":\");\n } else {\n this.word(\"default\");\n this.token(\":\");\n }\n\n if (node.consequent.length) {\n this.newline();\n this.printSequence(node.consequent, node, { indent: true });\n }\n}\n\nexport function DebuggerStatement(this: Printer) {\n this.word(\"debugger\");\n this.semicolon();\n}\n\nexport function VariableDeclaration(\n this: Printer,\n node: t.VariableDeclaration,\n parent: t.Node,\n) {\n if (node.declare) {\n // TS\n this.word(\"declare\");\n this.space();\n }\n\n const { kind } = node;\n this.word(kind, kind === \"using\" || kind === \"await using\");\n this.space();\n\n let hasInits = false;\n // don't add whitespace to loop heads\n if (!isFor(parent)) {\n for (const declar of node.declarations) {\n if (declar.init) {\n // has an init so let's split it up over multiple lines\n hasInits = true;\n }\n }\n }\n\n //\n // use a pretty separator when we aren't in compact mode, have initializers and don't have retainLines on\n // this will format declarations like:\n //\n // let foo = \"bar\", bar = \"foo\";\n //\n // into\n //\n // let foo = \"bar\",\n // bar = \"foo\";\n //\n\n this.printList(node.declarations, node, {\n separator: hasInits\n ? function (this: Printer) {\n this.token(\",\");\n this.newline();\n }\n : undefined,\n indent: node.declarations.length > 1 ? true : false,\n });\n\n if (isFor(parent)) {\n // don't give semicolons to these nodes since they'll be inserted in the parent generator\n if (isForStatement(parent)) {\n if (parent.init === node) return;\n } else {\n if (parent.left === node) return;\n }\n }\n\n this.semicolon();\n}\n\nexport function VariableDeclarator(this: Printer, node: t.VariableDeclarator) {\n this.print(node.id, node);\n if (node.definite) this.token(\"!\"); // TS\n // @ts-expect-error todo(flow-ts) Property 'typeAnnotation' does not exist on type 'MemberExpression'.\n this.print(node.id.typeAnnotation, node);\n if (node.init) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.init, node);\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["TaggedTemplateExpression","node","print","tag","typeParameters","quasi","TemplateElement","parent","isFirst","quasis","isLast","length","value","raw","token","TemplateLiteral","i","expressions"],"sources":["../../src/generators/template-literals.ts"],"sourcesContent":["import type Printer from \"../printer\";\nimport type * as t from \"@babel/types\";\n\nexport function TaggedTemplateExpression(\n this: Printer,\n node: t.TaggedTemplateExpression,\n) {\n this.print(node.tag, node);\n this.print(node.typeParameters, node); // TS\n this.print(node.quasi, node);\n}\n\nexport function TemplateElement(\n this: Printer,\n node: t.TemplateElement,\n parent: t.TemplateLiteral,\n) {\n const isFirst = parent.quasis[0] === node;\n const isLast = parent.quasis[parent.quasis.length - 1] === node;\n\n const value = (isFirst ? \"`\" : \"}\") + node.value.raw + (isLast ? \"`\" : \"${\");\n\n this.token(value, true);\n}\n\nexport function TemplateLiteral(this: Printer, node: t.TemplateLiteral) {\n const quasis = node.quasis;\n\n for (let i = 0; i < quasis.length; i++) {\n this.print(quasis[i], node);\n\n if (i + 1 < quasis.length) {\n this.print(node.expressions[i], node);\n }\n }\n}\n"],"mappings":";;;;;;;;AAGO,SAASA,wBAAwBA,CAEtCC,IAAgC,EAChC;EACA,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,GAAG,EAAEF,IAAI,CAAC;EAC1B,IAAI,CAACC,KAAK,CAACD,IAAI,CAACG,cAAc,EAAEH,IAAI,CAAC;EACrC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACI,KAAK,EAAEJ,IAAI,CAAC;AAC9B;AAEO,SAASK,eAAeA,CAE7BL,IAAuB,EACvBM,MAAyB,EACzB;EACA,MAAMC,OAAO,GAAGD,MAAM,CAACE,MAAM,CAAC,CAAC,CAAC,KAAKR,IAAI;EACzC,MAAMS,MAAM,GAAGH,MAAM,CAACE,MAAM,CAACF,MAAM,CAACE,MAAM,CAACE,MAAM,GAAG,CAAC,CAAC,KAAKV,IAAI;EAE/D,MAAMW,KAAK,GAAG,CAACJ,OAAO,GAAG,GAAG,GAAG,GAAG,IAAIP,IAAI,CAACW,KAAK,CAACC,GAAG,IAAIH,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC;EAE5E,IAAI,CAACI,KAAK,CAACF,KAAK,EAAE,IAAI,CAAC;AACzB;AAEO,SAASG,eAAeA,CAAgBd,IAAuB,EAAE;EACtE,MAAMQ,MAAM,GAAGR,IAAI,CAACQ,MAAM;EAE1B,KAAK,IAAIO,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,MAAM,CAACE,MAAM,EAAEK,CAAC,EAAE,EAAE;IACtC,IAAI,CAACd,KAAK,CAACO,MAAM,CAACO,CAAC,CAAC,EAAEf,IAAI,CAAC;IAE3B,IAAIe,CAAC,GAAG,CAAC,GAAGP,MAAM,CAACE,MAAM,EAAE;MACzB,IAAI,CAACT,KAAK,CAACD,IAAI,CAACgB,WAAW,CAACD,CAAC,CAAC,EAAEf,IAAI,CAAC;IACvC;EACF;AACF"}
1
+ {"version":3,"names":["TaggedTemplateExpression","node","print","tag","typeParameters","quasi","TemplateElement","parent","isFirst","quasis","isLast","length","value","raw","token","TemplateLiteral","i","expressions"],"sources":["../../src/generators/template-literals.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport type * as t from \"@babel/types\";\n\nexport function TaggedTemplateExpression(\n this: Printer,\n node: t.TaggedTemplateExpression,\n) {\n this.print(node.tag, node);\n this.print(node.typeParameters, node); // TS\n this.print(node.quasi, node);\n}\n\nexport function TemplateElement(\n this: Printer,\n node: t.TemplateElement,\n parent: t.TemplateLiteral,\n) {\n const isFirst = parent.quasis[0] === node;\n const isLast = parent.quasis[parent.quasis.length - 1] === node;\n\n const value = (isFirst ? \"`\" : \"}\") + node.value.raw + (isLast ? \"`\" : \"${\");\n\n this.token(value, true);\n}\n\nexport function TemplateLiteral(this: Printer, node: t.TemplateLiteral) {\n const quasis = node.quasis;\n\n for (let i = 0; i < quasis.length; i++) {\n this.print(quasis[i], node);\n\n if (i + 1 < quasis.length) {\n this.print(node.expressions[i], node);\n }\n }\n}\n"],"mappings":";;;;;;;;AAGO,SAASA,wBAAwBA,CAEtCC,IAAgC,EAChC;EACA,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,GAAG,EAAEF,IAAI,CAAC;EAC1B,IAAI,CAACC,KAAK,CAACD,IAAI,CAACG,cAAc,EAAEH,IAAI,CAAC;EACrC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACI,KAAK,EAAEJ,IAAI,CAAC;AAC9B;AAEO,SAASK,eAAeA,CAE7BL,IAAuB,EACvBM,MAAyB,EACzB;EACA,MAAMC,OAAO,GAAGD,MAAM,CAACE,MAAM,CAAC,CAAC,CAAC,KAAKR,IAAI;EACzC,MAAMS,MAAM,GAAGH,MAAM,CAACE,MAAM,CAACF,MAAM,CAACE,MAAM,CAACE,MAAM,GAAG,CAAC,CAAC,KAAKV,IAAI;EAE/D,MAAMW,KAAK,GAAG,CAACJ,OAAO,GAAG,GAAG,GAAG,GAAG,IAAIP,IAAI,CAACW,KAAK,CAACC,GAAG,IAAIH,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC;EAE5E,IAAI,CAACI,KAAK,CAACF,KAAK,EAAE,IAAI,CAAC;AACzB;AAEO,SAASG,eAAeA,CAAgBd,IAAuB,EAAE;EACtE,MAAMQ,MAAM,GAAGR,IAAI,CAACQ,MAAM;EAE1B,KAAK,IAAIO,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,MAAM,CAACE,MAAM,EAAEK,CAAC,EAAE,EAAE;IACtC,IAAI,CAACd,KAAK,CAACO,MAAM,CAACO,CAAC,CAAC,EAAEf,IAAI,CAAC;IAE3B,IAAIe,CAAC,GAAG,CAAC,GAAGP,MAAM,CAACE,MAAM,EAAE;MACzB,IAAI,CAACT,KAAK,CAACD,IAAI,CAACgB,WAAW,CAACD,CAAC,CAAC,EAAEf,IAAI,CAAC;IACvC;EACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"names":["_t","require","_jsesc","isAssignmentPattern","isIdentifier","Identifier","node","_node$loc","sourceIdentifierName","loc","identifierName","name","word","ArgumentPlaceholder","token","RestElement","print","argument","ObjectExpression","props","properties","length","space","printList","indent","statement","sourceWithOffset","ObjectMethod","printJoin","decorators","_methodHead","body","ObjectProperty","computed","key","value","left","shorthand","ArrayExpression","elems","elements","len","i","elem","RecordExpression","startToken","endToken","format","recordAndTupleSyntaxType","Error","JSON","stringify","TupleExpression","RegExpLiteral","pattern","flags","BooleanLiteral","NullLiteral","NumericLiteral","raw","getPossibleRaw","opts","jsescOption","numbers","number","jsesc","minified","StringLiteral","undefined","val","BigIntLiteral","DecimalLiteral","validTopicTokenSet","Set","TopicReference","topicToken","has","givenTopicTokenJSON","validTopics","Array","from","v","join","PipelineTopicExpression","expression","PipelineBareFunction","callee","PipelinePrimaryTopicReference"],"sources":["../../src/generators/types.ts"],"sourcesContent":["import type Printer from \"../printer\";\nimport { isAssignmentPattern, isIdentifier } from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport jsesc from \"jsesc\";\n\nexport function Identifier(this: Printer, node: t.Identifier) {\n this.sourceIdentifierName(node.loc?.identifierName || node.name);\n this.word(node.name);\n}\n\nexport function ArgumentPlaceholder(this: Printer) {\n this.token(\"?\");\n}\n\nexport function RestElement(this: Printer, node: t.RestElement) {\n this.token(\"...\");\n this.print(node.argument, node);\n}\n\nexport { RestElement as SpreadElement };\n\nexport function ObjectExpression(this: Printer, node: t.ObjectExpression) {\n const props = node.properties;\n\n this.token(\"{\");\n\n if (props.length) {\n this.space();\n this.printList(props, node, { indent: true, statement: true });\n this.space();\n }\n\n this.sourceWithOffset(\"end\", node.loc, -1);\n\n this.token(\"}\");\n}\n\nexport { ObjectExpression as ObjectPattern };\n\nexport function ObjectMethod(this: Printer, node: t.ObjectMethod) {\n this.printJoin(node.decorators, node);\n this._methodHead(node);\n this.space();\n this.print(node.body, node);\n}\n\nexport function ObjectProperty(this: Printer, node: t.ObjectProperty) {\n this.printJoin(node.decorators, node);\n\n if (node.computed) {\n this.token(\"[\");\n this.print(node.key, node);\n this.token(\"]\");\n } else {\n // print `({ foo: foo = 5 } = {})` as `({ foo = 5 } = {});`\n if (\n isAssignmentPattern(node.value) &&\n isIdentifier(node.key) &&\n // @ts-expect-error todo(flow->ts) `.name` does not exist on some types in union\n node.key.name === node.value.left.name\n ) {\n this.print(node.value, node);\n return;\n }\n\n this.print(node.key, node);\n\n // shorthand!\n if (\n node.shorthand &&\n isIdentifier(node.key) &&\n isIdentifier(node.value) &&\n node.key.name === node.value.name\n ) {\n return;\n }\n }\n\n this.token(\":\");\n this.space();\n this.print(node.value, node);\n}\n\nexport function ArrayExpression(this: Printer, node: t.ArrayExpression) {\n const elems = node.elements;\n const len = elems.length;\n\n this.token(\"[\");\n\n for (let i = 0; i < elems.length; i++) {\n const elem = elems[i];\n if (elem) {\n if (i > 0) this.space();\n this.print(elem, node);\n if (i < len - 1) this.token(\",\");\n } else {\n // If the array expression ends with a hole, that hole\n // will be ignored by the interpreter, but if it ends with\n // two (or more) holes, we need to write out two (or more)\n // commas so that the resulting code is interpreted with\n // both (all) of the holes.\n this.token(\",\");\n }\n }\n\n this.token(\"]\");\n}\n\nexport { ArrayExpression as ArrayPattern };\n\nexport function RecordExpression(this: Printer, node: t.RecordExpression) {\n const props = node.properties;\n\n let startToken;\n let endToken;\n if (this.format.recordAndTupleSyntaxType === \"bar\") {\n startToken = \"{|\";\n endToken = \"|}\";\n } else if (\n this.format.recordAndTupleSyntaxType !== \"hash\" &&\n this.format.recordAndTupleSyntaxType != null\n ) {\n throw new Error(\n `The \"recordAndTupleSyntaxType\" generator option must be \"bar\" or \"hash\" (${JSON.stringify(\n this.format.recordAndTupleSyntaxType,\n )} received).`,\n );\n } else {\n startToken = \"#{\";\n endToken = \"}\";\n }\n\n this.token(startToken);\n\n if (props.length) {\n this.space();\n this.printList(props, node, { indent: true, statement: true });\n this.space();\n }\n this.token(endToken);\n}\n\nexport function TupleExpression(this: Printer, node: t.TupleExpression) {\n const elems = node.elements;\n const len = elems.length;\n\n let startToken;\n let endToken;\n if (this.format.recordAndTupleSyntaxType === \"bar\") {\n startToken = \"[|\";\n endToken = \"|]\";\n } else if (this.format.recordAndTupleSyntaxType === \"hash\") {\n startToken = \"#[\";\n endToken = \"]\";\n } else {\n throw new Error(\n `${this.format.recordAndTupleSyntaxType} is not a valid recordAndTuple syntax type`,\n );\n }\n\n this.token(startToken);\n\n for (let i = 0; i < elems.length; i++) {\n const elem = elems[i];\n if (elem) {\n if (i > 0) this.space();\n this.print(elem, node);\n if (i < len - 1) this.token(\",\");\n }\n }\n\n this.token(endToken);\n}\n\nexport function RegExpLiteral(this: Printer, node: t.RegExpLiteral) {\n this.word(`/${node.pattern}/${node.flags}`);\n}\n\nexport function BooleanLiteral(this: Printer, node: t.BooleanLiteral) {\n this.word(node.value ? \"true\" : \"false\");\n}\n\nexport function NullLiteral(this: Printer) {\n this.word(\"null\");\n}\n\nexport function NumericLiteral(this: Printer, node: t.NumericLiteral) {\n const raw = this.getPossibleRaw(node);\n const opts = this.format.jsescOption;\n const value = node.value + \"\";\n if (opts.numbers) {\n this.number(jsesc(node.value, opts));\n } else if (raw == null) {\n this.number(value); // normalize\n } else if (this.format.minified) {\n this.number(raw.length < value.length ? raw : value);\n } else {\n this.number(raw);\n }\n}\n\nexport function StringLiteral(this: Printer, node: t.StringLiteral) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.token(raw);\n return;\n }\n\n const val = jsesc(node.value, this.format.jsescOption);\n\n this.token(val);\n}\n\nexport function BigIntLiteral(this: Printer, node: t.BigIntLiteral) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.word(raw);\n return;\n }\n this.word(node.value + \"n\");\n}\n\nexport function DecimalLiteral(this: Printer, node: t.DecimalLiteral) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.word(raw);\n return;\n }\n this.word(node.value + \"m\");\n}\n\n// Hack pipe operator\nconst validTopicTokenSet = new Set([\"^^\", \"@@\", \"^\", \"%\", \"#\"]);\nexport function TopicReference(this: Printer) {\n const { topicToken } = this.format;\n\n if (validTopicTokenSet.has(topicToken)) {\n this.token(topicToken);\n } else {\n const givenTopicTokenJSON = JSON.stringify(topicToken);\n const validTopics = Array.from(validTopicTokenSet, v => JSON.stringify(v));\n throw new Error(\n `The \"topicToken\" generator option must be one of ` +\n `${validTopics.join(\", \")} (${givenTopicTokenJSON} received instead).`,\n );\n }\n}\n\n// Smart-mix pipe operator\nexport function PipelineTopicExpression(\n this: Printer,\n node: t.PipelineTopicExpression,\n) {\n this.print(node.expression, node);\n}\n\nexport function PipelineBareFunction(\n this: Printer,\n node: t.PipelineBareFunction,\n) {\n this.print(node.callee, node);\n}\n\nexport function PipelinePrimaryTopicReference(this: Printer) {\n this.token(\"#\");\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_t","require","_jsesc","isAssignmentPattern","isIdentifier","Identifier","node","_node$loc","sourceIdentifierName","loc","identifierName","name","word","ArgumentPlaceholder","token","RestElement","print","argument","ObjectExpression","props","properties","length","space","printList","indent","statement","sourceWithOffset","ObjectMethod","printJoin","decorators","_methodHead","body","ObjectProperty","computed","key","value","left","shorthand","ArrayExpression","elems","elements","len","i","elem","RecordExpression","startToken","endToken","format","recordAndTupleSyntaxType","Error","JSON","stringify","TupleExpression","RegExpLiteral","pattern","flags","BooleanLiteral","NullLiteral","NumericLiteral","raw","getPossibleRaw","opts","jsescOption","numbers","number","jsesc","minified","StringLiteral","undefined","val","BigIntLiteral","DecimalLiteral","validTopicTokenSet","Set","TopicReference","topicToken","has","givenTopicTokenJSON","validTopics","Array","from","v","join","PipelineTopicExpression","expression","PipelineBareFunction","callee","PipelinePrimaryTopicReference"],"sources":["../../src/generators/types.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport { isAssignmentPattern, isIdentifier } from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport jsesc from \"jsesc\";\n\nexport function Identifier(this: Printer, node: t.Identifier) {\n this.sourceIdentifierName(node.loc?.identifierName || node.name);\n this.word(node.name);\n}\n\nexport function ArgumentPlaceholder(this: Printer) {\n this.token(\"?\");\n}\n\nexport function RestElement(this: Printer, node: t.RestElement) {\n this.token(\"...\");\n this.print(node.argument, node);\n}\n\nexport { RestElement as SpreadElement };\n\nexport function ObjectExpression(this: Printer, node: t.ObjectExpression) {\n const props = node.properties;\n\n this.token(\"{\");\n\n if (props.length) {\n this.space();\n this.printList(props, node, { indent: true, statement: true });\n this.space();\n }\n\n this.sourceWithOffset(\"end\", node.loc, -1);\n\n this.token(\"}\");\n}\n\nexport { ObjectExpression as ObjectPattern };\n\nexport function ObjectMethod(this: Printer, node: t.ObjectMethod) {\n this.printJoin(node.decorators, node);\n this._methodHead(node);\n this.space();\n this.print(node.body, node);\n}\n\nexport function ObjectProperty(this: Printer, node: t.ObjectProperty) {\n this.printJoin(node.decorators, node);\n\n if (node.computed) {\n this.token(\"[\");\n this.print(node.key, node);\n this.token(\"]\");\n } else {\n // print `({ foo: foo = 5 } = {})` as `({ foo = 5 } = {});`\n if (\n isAssignmentPattern(node.value) &&\n isIdentifier(node.key) &&\n // @ts-expect-error todo(flow->ts) `.name` does not exist on some types in union\n node.key.name === node.value.left.name\n ) {\n this.print(node.value, node);\n return;\n }\n\n this.print(node.key, node);\n\n // shorthand!\n if (\n node.shorthand &&\n isIdentifier(node.key) &&\n isIdentifier(node.value) &&\n node.key.name === node.value.name\n ) {\n return;\n }\n }\n\n this.token(\":\");\n this.space();\n this.print(node.value, node);\n}\n\nexport function ArrayExpression(this: Printer, node: t.ArrayExpression) {\n const elems = node.elements;\n const len = elems.length;\n\n this.token(\"[\");\n\n for (let i = 0; i < elems.length; i++) {\n const elem = elems[i];\n if (elem) {\n if (i > 0) this.space();\n this.print(elem, node);\n if (i < len - 1) this.token(\",\");\n } else {\n // If the array expression ends with a hole, that hole\n // will be ignored by the interpreter, but if it ends with\n // two (or more) holes, we need to write out two (or more)\n // commas so that the resulting code is interpreted with\n // both (all) of the holes.\n this.token(\",\");\n }\n }\n\n this.token(\"]\");\n}\n\nexport { ArrayExpression as ArrayPattern };\n\nexport function RecordExpression(this: Printer, node: t.RecordExpression) {\n const props = node.properties;\n\n let startToken;\n let endToken;\n if (this.format.recordAndTupleSyntaxType === \"bar\") {\n startToken = \"{|\";\n endToken = \"|}\";\n } else if (\n this.format.recordAndTupleSyntaxType !== \"hash\" &&\n this.format.recordAndTupleSyntaxType != null\n ) {\n throw new Error(\n `The \"recordAndTupleSyntaxType\" generator option must be \"bar\" or \"hash\" (${JSON.stringify(\n this.format.recordAndTupleSyntaxType,\n )} received).`,\n );\n } else {\n startToken = \"#{\";\n endToken = \"}\";\n }\n\n this.token(startToken);\n\n if (props.length) {\n this.space();\n this.printList(props, node, { indent: true, statement: true });\n this.space();\n }\n this.token(endToken);\n}\n\nexport function TupleExpression(this: Printer, node: t.TupleExpression) {\n const elems = node.elements;\n const len = elems.length;\n\n let startToken;\n let endToken;\n if (this.format.recordAndTupleSyntaxType === \"bar\") {\n startToken = \"[|\";\n endToken = \"|]\";\n } else if (this.format.recordAndTupleSyntaxType === \"hash\") {\n startToken = \"#[\";\n endToken = \"]\";\n } else {\n throw new Error(\n `${this.format.recordAndTupleSyntaxType} is not a valid recordAndTuple syntax type`,\n );\n }\n\n this.token(startToken);\n\n for (let i = 0; i < elems.length; i++) {\n const elem = elems[i];\n if (elem) {\n if (i > 0) this.space();\n this.print(elem, node);\n if (i < len - 1) this.token(\",\");\n }\n }\n\n this.token(endToken);\n}\n\nexport function RegExpLiteral(this: Printer, node: t.RegExpLiteral) {\n this.word(`/${node.pattern}/${node.flags}`);\n}\n\nexport function BooleanLiteral(this: Printer, node: t.BooleanLiteral) {\n this.word(node.value ? \"true\" : \"false\");\n}\n\nexport function NullLiteral(this: Printer) {\n this.word(\"null\");\n}\n\nexport function NumericLiteral(this: Printer, node: t.NumericLiteral) {\n const raw = this.getPossibleRaw(node);\n const opts = this.format.jsescOption;\n const value = node.value + \"\";\n if (opts.numbers) {\n this.number(jsesc(node.value, opts));\n } else if (raw == null) {\n this.number(value); // normalize\n } else if (this.format.minified) {\n this.number(raw.length < value.length ? raw : value);\n } else {\n this.number(raw);\n }\n}\n\nexport function StringLiteral(this: Printer, node: t.StringLiteral) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.token(raw);\n return;\n }\n\n const val = jsesc(node.value, this.format.jsescOption);\n\n this.token(val);\n}\n\nexport function BigIntLiteral(this: Printer, node: t.BigIntLiteral) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.word(raw);\n return;\n }\n this.word(node.value + \"n\");\n}\n\nexport function DecimalLiteral(this: Printer, node: t.DecimalLiteral) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.word(raw);\n return;\n }\n this.word(node.value + \"m\");\n}\n\n// Hack pipe operator\nconst validTopicTokenSet = new Set([\"^^\", \"@@\", \"^\", \"%\", \"#\"]);\nexport function TopicReference(this: Printer) {\n const { topicToken } = this.format;\n\n if (validTopicTokenSet.has(topicToken)) {\n this.token(topicToken);\n } else {\n const givenTopicTokenJSON = JSON.stringify(topicToken);\n const validTopics = Array.from(validTopicTokenSet, v => JSON.stringify(v));\n throw new Error(\n `The \"topicToken\" generator option must be one of ` +\n `${validTopics.join(\", \")} (${givenTopicTokenJSON} received instead).`,\n );\n }\n}\n\n// Smart-mix pipe operator\nexport function PipelineTopicExpression(\n this: Printer,\n node: t.PipelineTopicExpression,\n) {\n this.print(node.expression, node);\n}\n\nexport function PipelineBareFunction(\n this: Printer,\n node: t.PipelineBareFunction,\n) {\n this.print(node.callee, node);\n}\n\nexport function PipelinePrimaryTopicReference(this: Printer) {\n this.token(\"#\");\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["TSTypeAnnotation","node","token","space","optional","print","typeAnnotation","TSTypeParameterInstantiation","parent","printList","params","type","length","TSTypeParameter","in","word","out","name","constraint","default","TSParameterProperty","accessibility","readonly","_param","parameter","TSDeclareFunction","declare","_functionHead","TSDeclareMethod","_classMethodHead","TSQualifiedName","left","right","TSCallSignatureDeclaration","tsPrintSignatureDeclarationBase","TSConstructSignatureDeclaration","TSPropertySignature","initializer","tsPrintPropertyOrMethodName","computed","key","TSMethodSignature","kind","TSIndexSignature","static","isStatic","_parameters","parameters","TSAnyKeyword","TSBigIntKeyword","TSUnknownKeyword","TSNumberKeyword","TSObjectKeyword","TSBooleanKeyword","TSStringKeyword","TSSymbolKeyword","TSVoidKeyword","TSUndefinedKeyword","TSNullKeyword","TSNeverKeyword","TSIntrinsicKeyword","TSThisType","TSFunctionType","tsPrintFunctionOrConstructorType","TSConstructorType","abstract","typeParameters","returnType","TSTypeReference","typeName","TSTypePredicate","asserts","parameterName","TSTypeQuery","exprName","TSTypeLiteral","tsPrintTypeLiteralOrInterfaceBody","members","tsPrintBraced","printer","indent","newline","member","dedent","rightBrace","TSArrayType","elementType","TSTupleType","elementTypes","TSOptionalType","TSRestType","TSNamedTupleMember","label","TSUnionType","tsPrintUnionOrIntersectionType","TSIntersectionType","sep","printJoin","types","separator","TSConditionalType","checkType","extendsType","trueType","falseType","TSInferType","typeParameter","TSParenthesizedType","TSTypeOperator","operator","TSIndexedAccessType","objectType","indexType","TSMappedType","nameType","tokenIfPlusMinus","self","tok","TSLiteralType","literal","TSExpressionWithTypeArguments","expression","TSInterfaceDeclaration","id","extends","extendz","body","TSInterfaceBody","TSTypeAliasDeclaration","TSTypeExpression","_expression$trailingC","forceParens","trailingComments","undefined","TSTypeAssertion","TSInstantiationExpression","TSEnumDeclaration","const","isConst","TSEnumMember","TSModuleDeclaration","global","TSModuleBlock","TSImportType","argument","qualifier","TSImportEqualsDeclaration","isExport","moduleReference","TSExternalModuleReference","TSNonNullExpression","TSExportAssignment","TSNamespaceExportDeclaration","tsPrintClassMemberModifiers","isField","override"],"sources":["../../src/generators/typescript.ts"],"sourcesContent":["import type Printer from \"../printer\";\nimport type * as t from \"@babel/types\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport function TSTypeAnnotation(this: Printer, node: t.TSTypeAnnotation) {\n this.token(\":\");\n this.space();\n // @ts-expect-error todo(flow->ts) can this be removed? `.optional` looks to be not existing property\n if (node.optional) this.token(\"?\");\n this.print(node.typeAnnotation, node);\n}\n\nexport function TSTypeParameterInstantiation(\n this: Printer,\n node: t.TSTypeParameterInstantiation,\n parent: t.Node,\n): void {\n this.token(\"<\");\n this.printList(node.params, node, {});\n if (parent.type === \"ArrowFunctionExpression\" && node.params.length === 1) {\n this.token(\",\");\n }\n this.token(\">\");\n}\n\nexport { TSTypeParameterInstantiation as TSTypeParameterDeclaration };\n\nexport function TSTypeParameter(this: Printer, node: t.TSTypeParameter) {\n if (node.in) {\n this.word(\"in\");\n this.space();\n }\n\n if (node.out) {\n this.word(\"out\");\n this.space();\n }\n\n this.word(\n !process.env.BABEL_8_BREAKING\n ? (node.name as unknown as string)\n : (node.name as unknown as t.Identifier).name,\n );\n\n if (node.constraint) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.print(node.constraint, node);\n }\n\n if (node.default) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.default, node);\n }\n}\n\nexport function TSParameterProperty(\n this: Printer,\n node: t.TSParameterProperty,\n) {\n if (node.accessibility) {\n this.word(node.accessibility);\n this.space();\n }\n\n if (node.readonly) {\n this.word(\"readonly\");\n this.space();\n }\n\n this._param(node.parameter);\n}\n\nexport function TSDeclareFunction(\n this: Printer,\n node: t.TSDeclareFunction,\n parent: NodePath<t.TSDeclareFunction>[\"parent\"],\n) {\n if (node.declare) {\n this.word(\"declare\");\n this.space();\n }\n this._functionHead(node, parent);\n this.token(\";\");\n}\n\nexport function TSDeclareMethod(this: Printer, node: t.TSDeclareMethod) {\n this._classMethodHead(node);\n this.token(\";\");\n}\n\nexport function TSQualifiedName(this: Printer, node: t.TSQualifiedName) {\n this.print(node.left, node);\n this.token(\".\");\n this.print(node.right, node);\n}\n\nexport function TSCallSignatureDeclaration(\n this: Printer,\n node: t.TSCallSignatureDeclaration,\n) {\n this.tsPrintSignatureDeclarationBase(node);\n this.token(\";\");\n}\n\nexport function TSConstructSignatureDeclaration(\n this: Printer,\n node: t.TSConstructSignatureDeclaration,\n) {\n this.word(\"new\");\n this.space();\n this.tsPrintSignatureDeclarationBase(node);\n this.token(\";\");\n}\n\nexport function TSPropertySignature(\n this: Printer,\n node: t.TSPropertySignature,\n) {\n const { readonly, initializer } = node;\n if (readonly) {\n this.word(\"readonly\");\n this.space();\n }\n this.tsPrintPropertyOrMethodName(node);\n this.print(node.typeAnnotation, node);\n if (initializer) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(initializer, node);\n }\n this.token(\";\");\n}\n\nexport function tsPrintPropertyOrMethodName(\n this: Printer,\n node: t.TSPropertySignature | t.TSMethodSignature,\n) {\n if (node.computed) {\n this.token(\"[\");\n }\n this.print(node.key, node);\n if (node.computed) {\n this.token(\"]\");\n }\n if (node.optional) {\n this.token(\"?\");\n }\n}\n\nexport function TSMethodSignature(this: Printer, node: t.TSMethodSignature) {\n const { kind } = node;\n if (kind === \"set\" || kind === \"get\") {\n this.word(kind);\n this.space();\n }\n this.tsPrintPropertyOrMethodName(node);\n this.tsPrintSignatureDeclarationBase(node);\n this.token(\";\");\n}\n\nexport function TSIndexSignature(this: Printer, node: t.TSIndexSignature) {\n const { readonly, static: isStatic } = node;\n if (isStatic) {\n this.word(\"static\");\n this.space();\n }\n if (readonly) {\n this.word(\"readonly\");\n this.space();\n }\n this.token(\"[\");\n this._parameters(node.parameters, node);\n this.token(\"]\");\n this.print(node.typeAnnotation, node);\n this.token(\";\");\n}\n\nexport function TSAnyKeyword(this: Printer) {\n this.word(\"any\");\n}\nexport function TSBigIntKeyword(this: Printer) {\n this.word(\"bigint\");\n}\nexport function TSUnknownKeyword(this: Printer) {\n this.word(\"unknown\");\n}\nexport function TSNumberKeyword(this: Printer) {\n this.word(\"number\");\n}\nexport function TSObjectKeyword(this: Printer) {\n this.word(\"object\");\n}\nexport function TSBooleanKeyword(this: Printer) {\n this.word(\"boolean\");\n}\nexport function TSStringKeyword(this: Printer) {\n this.word(\"string\");\n}\nexport function TSSymbolKeyword(this: Printer) {\n this.word(\"symbol\");\n}\nexport function TSVoidKeyword(this: Printer) {\n this.word(\"void\");\n}\nexport function TSUndefinedKeyword(this: Printer) {\n this.word(\"undefined\");\n}\nexport function TSNullKeyword(this: Printer) {\n this.word(\"null\");\n}\nexport function TSNeverKeyword(this: Printer) {\n this.word(\"never\");\n}\nexport function TSIntrinsicKeyword(this: Printer) {\n this.word(\"intrinsic\");\n}\n\nexport function TSThisType(this: Printer) {\n this.word(\"this\");\n}\n\nexport function TSFunctionType(this: Printer, node: t.TSFunctionType) {\n this.tsPrintFunctionOrConstructorType(node);\n}\n\nexport function TSConstructorType(this: Printer, node: t.TSConstructorType) {\n if (node.abstract) {\n this.word(\"abstract\");\n this.space();\n }\n this.word(\"new\");\n this.space();\n this.tsPrintFunctionOrConstructorType(node);\n}\n\nexport function tsPrintFunctionOrConstructorType(\n this: Printer,\n node: t.TSFunctionType | t.TSConstructorType,\n) {\n const { typeParameters } = node;\n const parameters = process.env.BABEL_8_BREAKING\n ? // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST shape\n node.params\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n node.parameters;\n this.print(typeParameters, node);\n this.token(\"(\");\n this._parameters(parameters, node);\n this.token(\")\");\n this.space();\n this.token(\"=>\");\n this.space();\n const returnType = process.env.BABEL_8_BREAKING\n ? // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST shape\n node.returnType\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n node.typeAnnotation;\n this.print(returnType.typeAnnotation, node);\n}\n\nexport function TSTypeReference(this: Printer, node: t.TSTypeReference) {\n this.print(node.typeName, node, true);\n this.print(node.typeParameters, node, true);\n}\n\nexport function TSTypePredicate(this: Printer, node: t.TSTypePredicate) {\n if (node.asserts) {\n this.word(\"asserts\");\n this.space();\n }\n this.print(node.parameterName);\n if (node.typeAnnotation) {\n this.space();\n this.word(\"is\");\n this.space();\n this.print(node.typeAnnotation.typeAnnotation);\n }\n}\n\nexport function TSTypeQuery(this: Printer, node: t.TSTypeQuery) {\n this.word(\"typeof\");\n this.space();\n this.print(node.exprName);\n\n if (node.typeParameters) {\n this.print(node.typeParameters, node);\n }\n}\n\nexport function TSTypeLiteral(this: Printer, node: t.TSTypeLiteral) {\n this.tsPrintTypeLiteralOrInterfaceBody(node.members, node);\n}\n\nexport function tsPrintTypeLiteralOrInterfaceBody(\n this: Printer,\n members: t.TSTypeElement[],\n node: t.TSType | t.TSInterfaceBody,\n) {\n tsPrintBraced(this, members, node);\n}\n\nfunction tsPrintBraced(printer: Printer, members: t.Node[], node: t.Node) {\n printer.token(\"{\");\n if (members.length) {\n printer.indent();\n printer.newline();\n for (const member of members) {\n printer.print(member, node);\n //this.token(sep);\n printer.newline();\n }\n printer.dedent();\n }\n\n printer.rightBrace(node);\n}\n\nexport function TSArrayType(this: Printer, node: t.TSArrayType) {\n this.print(node.elementType, node, true);\n\n this.token(\"[]\");\n}\n\nexport function TSTupleType(this: Printer, node: t.TSTupleType) {\n this.token(\"[\");\n this.printList(node.elementTypes, node);\n this.token(\"]\");\n}\n\nexport function TSOptionalType(this: Printer, node: t.TSOptionalType) {\n this.print(node.typeAnnotation, node);\n this.token(\"?\");\n}\n\nexport function TSRestType(this: Printer, node: t.TSRestType) {\n this.token(\"...\");\n this.print(node.typeAnnotation, node);\n}\n\nexport function TSNamedTupleMember(this: Printer, node: t.TSNamedTupleMember) {\n this.print(node.label, node);\n if (node.optional) this.token(\"?\");\n this.token(\":\");\n this.space();\n this.print(node.elementType, node);\n}\n\nexport function TSUnionType(this: Printer, node: t.TSUnionType) {\n tsPrintUnionOrIntersectionType(this, node, \"|\");\n}\n\nexport function TSIntersectionType(this: Printer, node: t.TSIntersectionType) {\n tsPrintUnionOrIntersectionType(this, node, \"&\");\n}\n\nfunction tsPrintUnionOrIntersectionType(\n printer: Printer,\n node: t.TSUnionType | t.TSIntersectionType,\n sep: \"|\" | \"&\",\n) {\n printer.printJoin(node.types, node, {\n separator() {\n this.space();\n this.token(sep);\n this.space();\n },\n });\n}\n\nexport function TSConditionalType(this: Printer, node: t.TSConditionalType) {\n this.print(node.checkType);\n this.space();\n this.word(\"extends\");\n this.space();\n this.print(node.extendsType);\n this.space();\n this.token(\"?\");\n this.space();\n this.print(node.trueType);\n this.space();\n this.token(\":\");\n this.space();\n this.print(node.falseType);\n}\n\nexport function TSInferType(this: Printer, node: t.TSInferType) {\n this.token(\"infer\");\n this.space();\n this.print(node.typeParameter);\n}\n\nexport function TSParenthesizedType(\n this: Printer,\n node: t.TSParenthesizedType,\n) {\n this.token(\"(\");\n this.print(node.typeAnnotation, node);\n this.token(\")\");\n}\n\nexport function TSTypeOperator(this: Printer, node: t.TSTypeOperator) {\n this.word(node.operator);\n this.space();\n this.print(node.typeAnnotation, node);\n}\n\nexport function TSIndexedAccessType(\n this: Printer,\n node: t.TSIndexedAccessType,\n) {\n this.print(node.objectType, node, true);\n this.token(\"[\");\n this.print(node.indexType, node);\n this.token(\"]\");\n}\n\nexport function TSMappedType(this: Printer, node: t.TSMappedType) {\n const { nameType, optional, readonly, typeParameter } = node;\n this.token(\"{\");\n this.space();\n if (readonly) {\n tokenIfPlusMinus(this, readonly);\n this.word(\"readonly\");\n this.space();\n }\n\n this.token(\"[\");\n this.word(\n !process.env.BABEL_8_BREAKING\n ? (typeParameter.name as unknown as string)\n : (typeParameter.name as unknown as t.Identifier).name,\n );\n this.space();\n this.word(\"in\");\n this.space();\n this.print(typeParameter.constraint, typeParameter);\n\n if (nameType) {\n this.space();\n this.word(\"as\");\n this.space();\n this.print(nameType, node);\n }\n\n this.token(\"]\");\n\n if (optional) {\n tokenIfPlusMinus(this, optional);\n this.token(\"?\");\n }\n this.token(\":\");\n this.space();\n this.print(node.typeAnnotation, node);\n this.space();\n this.token(\"}\");\n}\n\nfunction tokenIfPlusMinus(self: Printer, tok: true | \"+\" | \"-\") {\n if (tok !== true) {\n self.token(tok);\n }\n}\n\nexport function TSLiteralType(this: Printer, node: t.TSLiteralType) {\n this.print(node.literal, node);\n}\n\nexport function TSExpressionWithTypeArguments(\n this: Printer,\n node: t.TSExpressionWithTypeArguments,\n) {\n this.print(node.expression, node);\n this.print(node.typeParameters, node);\n}\n\nexport function TSInterfaceDeclaration(\n this: Printer,\n node: t.TSInterfaceDeclaration,\n) {\n const { declare, id, typeParameters, extends: extendz, body } = node;\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"interface\");\n this.space();\n this.print(id, node);\n this.print(typeParameters, node);\n if (extendz?.length) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.printList(extendz, node);\n }\n this.space();\n this.print(body, node);\n}\n\nexport function TSInterfaceBody(this: Printer, node: t.TSInterfaceBody) {\n this.tsPrintTypeLiteralOrInterfaceBody(node.body, node);\n}\n\nexport function TSTypeAliasDeclaration(\n this: Printer,\n node: t.TSTypeAliasDeclaration,\n) {\n const { declare, id, typeParameters, typeAnnotation } = node;\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"type\");\n this.space();\n this.print(id, node);\n this.print(typeParameters, node);\n this.space();\n this.token(\"=\");\n this.space();\n this.print(typeAnnotation, node);\n this.token(\";\");\n}\n\nfunction TSTypeExpression(\n this: Printer,\n node: t.TSAsExpression | t.TSSatisfiesExpression,\n) {\n const { type, expression, typeAnnotation } = node;\n const forceParens = !!expression.trailingComments?.length;\n this.print(expression, node, true, undefined, forceParens);\n this.space();\n this.word(type === \"TSAsExpression\" ? \"as\" : \"satisfies\");\n this.space();\n this.print(typeAnnotation, node);\n}\n\nexport {\n TSTypeExpression as TSAsExpression,\n TSTypeExpression as TSSatisfiesExpression,\n};\n\nexport function TSTypeAssertion(this: Printer, node: t.TSTypeAssertion) {\n const { typeAnnotation, expression } = node;\n this.token(\"<\");\n this.print(typeAnnotation, node);\n this.token(\">\");\n this.space();\n this.print(expression, node);\n}\n\nexport function TSInstantiationExpression(\n this: Printer,\n node: t.TSInstantiationExpression,\n) {\n this.print(node.expression, node);\n this.print(node.typeParameters, node);\n}\n\nexport function TSEnumDeclaration(this: Printer, node: t.TSEnumDeclaration) {\n const { declare, const: isConst, id, members } = node;\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n if (isConst) {\n this.word(\"const\");\n this.space();\n }\n this.word(\"enum\");\n this.space();\n this.print(id, node);\n this.space();\n tsPrintBraced(this, members, node);\n}\n\nexport function TSEnumMember(this: Printer, node: t.TSEnumMember) {\n const { id, initializer } = node;\n this.print(id, node);\n if (initializer) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(initializer, node);\n }\n this.token(\",\");\n}\n\nexport function TSModuleDeclaration(\n this: Printer,\n node: t.TSModuleDeclaration,\n) {\n const { declare, id } = node;\n\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n\n if (!node.global) {\n this.word(id.type === \"Identifier\" ? \"namespace\" : \"module\");\n this.space();\n }\n this.print(id, node);\n\n if (!node.body) {\n this.token(\";\");\n return;\n }\n\n let body = node.body;\n while (body.type === \"TSModuleDeclaration\") {\n this.token(\".\");\n this.print(body.id, body);\n body = body.body;\n }\n\n this.space();\n this.print(body, node);\n}\n\nexport function TSModuleBlock(this: Printer, node: t.TSModuleBlock) {\n tsPrintBraced(this, node.body, node);\n}\n\nexport function TSImportType(this: Printer, node: t.TSImportType) {\n const { argument, qualifier, typeParameters } = node;\n this.word(\"import\");\n this.token(\"(\");\n this.print(argument, node);\n this.token(\")\");\n if (qualifier) {\n this.token(\".\");\n this.print(qualifier, node);\n }\n if (typeParameters) {\n this.print(typeParameters, node);\n }\n}\n\nexport function TSImportEqualsDeclaration(\n this: Printer,\n node: t.TSImportEqualsDeclaration,\n) {\n const { isExport, id, moduleReference } = node;\n if (isExport) {\n this.word(\"export\");\n this.space();\n }\n this.word(\"import\");\n this.space();\n this.print(id, node);\n this.space();\n this.token(\"=\");\n this.space();\n this.print(moduleReference, node);\n this.token(\";\");\n}\n\nexport function TSExternalModuleReference(\n this: Printer,\n node: t.TSExternalModuleReference,\n) {\n this.token(\"require(\");\n this.print(node.expression, node);\n this.token(\")\");\n}\n\nexport function TSNonNullExpression(\n this: Printer,\n node: t.TSNonNullExpression,\n) {\n this.print(node.expression, node);\n this.token(\"!\");\n}\n\nexport function TSExportAssignment(this: Printer, node: t.TSExportAssignment) {\n this.word(\"export\");\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.expression, node);\n this.token(\";\");\n}\n\nexport function TSNamespaceExportDeclaration(\n this: Printer,\n node: t.TSNamespaceExportDeclaration,\n) {\n this.word(\"export\");\n this.space();\n this.word(\"as\");\n this.space();\n this.word(\"namespace\");\n this.space();\n this.print(node.id, node);\n}\n\nexport function tsPrintSignatureDeclarationBase(this: Printer, node: any) {\n const { typeParameters } = node;\n const parameters = process.env.BABEL_8_BREAKING\n ? node.params\n : node.parameters;\n this.print(typeParameters, node);\n this.token(\"(\");\n this._parameters(parameters, node);\n this.token(\")\");\n const returnType = process.env.BABEL_8_BREAKING\n ? node.returnType\n : node.typeAnnotation;\n this.print(returnType, node);\n}\n\nexport function tsPrintClassMemberModifiers(\n this: Printer,\n node:\n | t.ClassProperty\n | t.ClassAccessorProperty\n | t.ClassMethod\n | t.ClassPrivateMethod\n | t.TSDeclareMethod,\n) {\n const isField =\n node.type === \"ClassAccessorProperty\" || node.type === \"ClassProperty\";\n if (isField && node.declare) {\n this.word(\"declare\");\n this.space();\n }\n if (node.accessibility) {\n this.word(node.accessibility);\n this.space();\n }\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n if (node.override) {\n this.word(\"override\");\n this.space();\n }\n if (node.abstract) {\n this.word(\"abstract\");\n this.space();\n }\n if (isField && node.readonly) {\n this.word(\"readonly\");\n this.space();\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["TSTypeAnnotation","node","token","space","optional","print","typeAnnotation","TSTypeParameterInstantiation","parent","printList","params","type","length","TSTypeParameter","in","word","out","name","constraint","default","TSParameterProperty","accessibility","readonly","_param","parameter","TSDeclareFunction","declare","_functionHead","TSDeclareMethod","_classMethodHead","TSQualifiedName","left","right","TSCallSignatureDeclaration","tsPrintSignatureDeclarationBase","TSConstructSignatureDeclaration","TSPropertySignature","initializer","tsPrintPropertyOrMethodName","computed","key","TSMethodSignature","kind","TSIndexSignature","static","isStatic","_parameters","parameters","TSAnyKeyword","TSBigIntKeyword","TSUnknownKeyword","TSNumberKeyword","TSObjectKeyword","TSBooleanKeyword","TSStringKeyword","TSSymbolKeyword","TSVoidKeyword","TSUndefinedKeyword","TSNullKeyword","TSNeverKeyword","TSIntrinsicKeyword","TSThisType","TSFunctionType","tsPrintFunctionOrConstructorType","TSConstructorType","abstract","typeParameters","returnType","TSTypeReference","typeName","TSTypePredicate","asserts","parameterName","TSTypeQuery","exprName","TSTypeLiteral","tsPrintTypeLiteralOrInterfaceBody","members","tsPrintBraced","printer","indent","newline","member","dedent","rightBrace","TSArrayType","elementType","TSTupleType","elementTypes","TSOptionalType","TSRestType","TSNamedTupleMember","label","TSUnionType","tsPrintUnionOrIntersectionType","TSIntersectionType","sep","printJoin","types","separator","TSConditionalType","checkType","extendsType","trueType","falseType","TSInferType","typeParameter","TSParenthesizedType","TSTypeOperator","operator","TSIndexedAccessType","objectType","indexType","TSMappedType","nameType","tokenIfPlusMinus","self","tok","TSLiteralType","literal","TSExpressionWithTypeArguments","expression","TSInterfaceDeclaration","id","extends","extendz","body","TSInterfaceBody","TSTypeAliasDeclaration","TSTypeExpression","_expression$trailingC","forceParens","trailingComments","undefined","TSTypeAssertion","TSInstantiationExpression","TSEnumDeclaration","const","isConst","TSEnumMember","TSModuleDeclaration","global","TSModuleBlock","TSImportType","argument","qualifier","TSImportEqualsDeclaration","isExport","moduleReference","TSExternalModuleReference","TSNonNullExpression","TSExportAssignment","TSNamespaceExportDeclaration","tsPrintClassMemberModifiers","isField","override"],"sources":["../../src/generators/typescript.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport type * as t from \"@babel/types\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport function TSTypeAnnotation(this: Printer, node: t.TSTypeAnnotation) {\n this.token(\":\");\n this.space();\n // @ts-expect-error todo(flow->ts) can this be removed? `.optional` looks to be not existing property\n if (node.optional) this.token(\"?\");\n this.print(node.typeAnnotation, node);\n}\n\nexport function TSTypeParameterInstantiation(\n this: Printer,\n node: t.TSTypeParameterInstantiation,\n parent: t.Node,\n): void {\n this.token(\"<\");\n this.printList(node.params, node, {});\n if (parent.type === \"ArrowFunctionExpression\" && node.params.length === 1) {\n this.token(\",\");\n }\n this.token(\">\");\n}\n\nexport { TSTypeParameterInstantiation as TSTypeParameterDeclaration };\n\nexport function TSTypeParameter(this: Printer, node: t.TSTypeParameter) {\n if (node.in) {\n this.word(\"in\");\n this.space();\n }\n\n if (node.out) {\n this.word(\"out\");\n this.space();\n }\n\n this.word(\n !process.env.BABEL_8_BREAKING\n ? (node.name as unknown as string)\n : (node.name as unknown as t.Identifier).name,\n );\n\n if (node.constraint) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.print(node.constraint, node);\n }\n\n if (node.default) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.default, node);\n }\n}\n\nexport function TSParameterProperty(\n this: Printer,\n node: t.TSParameterProperty,\n) {\n if (node.accessibility) {\n this.word(node.accessibility);\n this.space();\n }\n\n if (node.readonly) {\n this.word(\"readonly\");\n this.space();\n }\n\n this._param(node.parameter);\n}\n\nexport function TSDeclareFunction(\n this: Printer,\n node: t.TSDeclareFunction,\n parent: NodePath<t.TSDeclareFunction>[\"parent\"],\n) {\n if (node.declare) {\n this.word(\"declare\");\n this.space();\n }\n this._functionHead(node, parent);\n this.token(\";\");\n}\n\nexport function TSDeclareMethod(this: Printer, node: t.TSDeclareMethod) {\n this._classMethodHead(node);\n this.token(\";\");\n}\n\nexport function TSQualifiedName(this: Printer, node: t.TSQualifiedName) {\n this.print(node.left, node);\n this.token(\".\");\n this.print(node.right, node);\n}\n\nexport function TSCallSignatureDeclaration(\n this: Printer,\n node: t.TSCallSignatureDeclaration,\n) {\n this.tsPrintSignatureDeclarationBase(node);\n this.token(\";\");\n}\n\nexport function TSConstructSignatureDeclaration(\n this: Printer,\n node: t.TSConstructSignatureDeclaration,\n) {\n this.word(\"new\");\n this.space();\n this.tsPrintSignatureDeclarationBase(node);\n this.token(\";\");\n}\n\nexport function TSPropertySignature(\n this: Printer,\n node: t.TSPropertySignature,\n) {\n const { readonly, initializer } = node;\n if (readonly) {\n this.word(\"readonly\");\n this.space();\n }\n this.tsPrintPropertyOrMethodName(node);\n this.print(node.typeAnnotation, node);\n if (initializer) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(initializer, node);\n }\n this.token(\";\");\n}\n\nexport function tsPrintPropertyOrMethodName(\n this: Printer,\n node: t.TSPropertySignature | t.TSMethodSignature,\n) {\n if (node.computed) {\n this.token(\"[\");\n }\n this.print(node.key, node);\n if (node.computed) {\n this.token(\"]\");\n }\n if (node.optional) {\n this.token(\"?\");\n }\n}\n\nexport function TSMethodSignature(this: Printer, node: t.TSMethodSignature) {\n const { kind } = node;\n if (kind === \"set\" || kind === \"get\") {\n this.word(kind);\n this.space();\n }\n this.tsPrintPropertyOrMethodName(node);\n this.tsPrintSignatureDeclarationBase(node);\n this.token(\";\");\n}\n\nexport function TSIndexSignature(this: Printer, node: t.TSIndexSignature) {\n const { readonly, static: isStatic } = node;\n if (isStatic) {\n this.word(\"static\");\n this.space();\n }\n if (readonly) {\n this.word(\"readonly\");\n this.space();\n }\n this.token(\"[\");\n this._parameters(node.parameters, node);\n this.token(\"]\");\n this.print(node.typeAnnotation, node);\n this.token(\";\");\n}\n\nexport function TSAnyKeyword(this: Printer) {\n this.word(\"any\");\n}\nexport function TSBigIntKeyword(this: Printer) {\n this.word(\"bigint\");\n}\nexport function TSUnknownKeyword(this: Printer) {\n this.word(\"unknown\");\n}\nexport function TSNumberKeyword(this: Printer) {\n this.word(\"number\");\n}\nexport function TSObjectKeyword(this: Printer) {\n this.word(\"object\");\n}\nexport function TSBooleanKeyword(this: Printer) {\n this.word(\"boolean\");\n}\nexport function TSStringKeyword(this: Printer) {\n this.word(\"string\");\n}\nexport function TSSymbolKeyword(this: Printer) {\n this.word(\"symbol\");\n}\nexport function TSVoidKeyword(this: Printer) {\n this.word(\"void\");\n}\nexport function TSUndefinedKeyword(this: Printer) {\n this.word(\"undefined\");\n}\nexport function TSNullKeyword(this: Printer) {\n this.word(\"null\");\n}\nexport function TSNeverKeyword(this: Printer) {\n this.word(\"never\");\n}\nexport function TSIntrinsicKeyword(this: Printer) {\n this.word(\"intrinsic\");\n}\n\nexport function TSThisType(this: Printer) {\n this.word(\"this\");\n}\n\nexport function TSFunctionType(this: Printer, node: t.TSFunctionType) {\n this.tsPrintFunctionOrConstructorType(node);\n}\n\nexport function TSConstructorType(this: Printer, node: t.TSConstructorType) {\n if (node.abstract) {\n this.word(\"abstract\");\n this.space();\n }\n this.word(\"new\");\n this.space();\n this.tsPrintFunctionOrConstructorType(node);\n}\n\nexport function tsPrintFunctionOrConstructorType(\n this: Printer,\n node: t.TSFunctionType | t.TSConstructorType,\n) {\n const { typeParameters } = node;\n const parameters = process.env.BABEL_8_BREAKING\n ? // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST shape\n node.params\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n node.parameters;\n this.print(typeParameters, node);\n this.token(\"(\");\n this._parameters(parameters, node);\n this.token(\")\");\n this.space();\n this.token(\"=>\");\n this.space();\n const returnType = process.env.BABEL_8_BREAKING\n ? // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST shape\n node.returnType\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n node.typeAnnotation;\n this.print(returnType.typeAnnotation, node);\n}\n\nexport function TSTypeReference(this: Printer, node: t.TSTypeReference) {\n this.print(node.typeName, node, true);\n this.print(node.typeParameters, node, true);\n}\n\nexport function TSTypePredicate(this: Printer, node: t.TSTypePredicate) {\n if (node.asserts) {\n this.word(\"asserts\");\n this.space();\n }\n this.print(node.parameterName);\n if (node.typeAnnotation) {\n this.space();\n this.word(\"is\");\n this.space();\n this.print(node.typeAnnotation.typeAnnotation);\n }\n}\n\nexport function TSTypeQuery(this: Printer, node: t.TSTypeQuery) {\n this.word(\"typeof\");\n this.space();\n this.print(node.exprName);\n\n if (node.typeParameters) {\n this.print(node.typeParameters, node);\n }\n}\n\nexport function TSTypeLiteral(this: Printer, node: t.TSTypeLiteral) {\n this.tsPrintTypeLiteralOrInterfaceBody(node.members, node);\n}\n\nexport function tsPrintTypeLiteralOrInterfaceBody(\n this: Printer,\n members: t.TSTypeElement[],\n node: t.TSType | t.TSInterfaceBody,\n) {\n tsPrintBraced(this, members, node);\n}\n\nfunction tsPrintBraced(printer: Printer, members: t.Node[], node: t.Node) {\n printer.token(\"{\");\n if (members.length) {\n printer.indent();\n printer.newline();\n for (const member of members) {\n printer.print(member, node);\n //this.token(sep);\n printer.newline();\n }\n printer.dedent();\n }\n\n printer.rightBrace(node);\n}\n\nexport function TSArrayType(this: Printer, node: t.TSArrayType) {\n this.print(node.elementType, node, true);\n\n this.token(\"[]\");\n}\n\nexport function TSTupleType(this: Printer, node: t.TSTupleType) {\n this.token(\"[\");\n this.printList(node.elementTypes, node);\n this.token(\"]\");\n}\n\nexport function TSOptionalType(this: Printer, node: t.TSOptionalType) {\n this.print(node.typeAnnotation, node);\n this.token(\"?\");\n}\n\nexport function TSRestType(this: Printer, node: t.TSRestType) {\n this.token(\"...\");\n this.print(node.typeAnnotation, node);\n}\n\nexport function TSNamedTupleMember(this: Printer, node: t.TSNamedTupleMember) {\n this.print(node.label, node);\n if (node.optional) this.token(\"?\");\n this.token(\":\");\n this.space();\n this.print(node.elementType, node);\n}\n\nexport function TSUnionType(this: Printer, node: t.TSUnionType) {\n tsPrintUnionOrIntersectionType(this, node, \"|\");\n}\n\nexport function TSIntersectionType(this: Printer, node: t.TSIntersectionType) {\n tsPrintUnionOrIntersectionType(this, node, \"&\");\n}\n\nfunction tsPrintUnionOrIntersectionType(\n printer: Printer,\n node: t.TSUnionType | t.TSIntersectionType,\n sep: \"|\" | \"&\",\n) {\n printer.printJoin(node.types, node, {\n separator() {\n this.space();\n this.token(sep);\n this.space();\n },\n });\n}\n\nexport function TSConditionalType(this: Printer, node: t.TSConditionalType) {\n this.print(node.checkType);\n this.space();\n this.word(\"extends\");\n this.space();\n this.print(node.extendsType);\n this.space();\n this.token(\"?\");\n this.space();\n this.print(node.trueType);\n this.space();\n this.token(\":\");\n this.space();\n this.print(node.falseType);\n}\n\nexport function TSInferType(this: Printer, node: t.TSInferType) {\n this.token(\"infer\");\n this.space();\n this.print(node.typeParameter);\n}\n\nexport function TSParenthesizedType(\n this: Printer,\n node: t.TSParenthesizedType,\n) {\n this.token(\"(\");\n this.print(node.typeAnnotation, node);\n this.token(\")\");\n}\n\nexport function TSTypeOperator(this: Printer, node: t.TSTypeOperator) {\n this.word(node.operator);\n this.space();\n this.print(node.typeAnnotation, node);\n}\n\nexport function TSIndexedAccessType(\n this: Printer,\n node: t.TSIndexedAccessType,\n) {\n this.print(node.objectType, node, true);\n this.token(\"[\");\n this.print(node.indexType, node);\n this.token(\"]\");\n}\n\nexport function TSMappedType(this: Printer, node: t.TSMappedType) {\n const { nameType, optional, readonly, typeParameter } = node;\n this.token(\"{\");\n this.space();\n if (readonly) {\n tokenIfPlusMinus(this, readonly);\n this.word(\"readonly\");\n this.space();\n }\n\n this.token(\"[\");\n this.word(\n !process.env.BABEL_8_BREAKING\n ? (typeParameter.name as unknown as string)\n : (typeParameter.name as unknown as t.Identifier).name,\n );\n this.space();\n this.word(\"in\");\n this.space();\n this.print(typeParameter.constraint, typeParameter);\n\n if (nameType) {\n this.space();\n this.word(\"as\");\n this.space();\n this.print(nameType, node);\n }\n\n this.token(\"]\");\n\n if (optional) {\n tokenIfPlusMinus(this, optional);\n this.token(\"?\");\n }\n this.token(\":\");\n this.space();\n this.print(node.typeAnnotation, node);\n this.space();\n this.token(\"}\");\n}\n\nfunction tokenIfPlusMinus(self: Printer, tok: true | \"+\" | \"-\") {\n if (tok !== true) {\n self.token(tok);\n }\n}\n\nexport function TSLiteralType(this: Printer, node: t.TSLiteralType) {\n this.print(node.literal, node);\n}\n\nexport function TSExpressionWithTypeArguments(\n this: Printer,\n node: t.TSExpressionWithTypeArguments,\n) {\n this.print(node.expression, node);\n this.print(node.typeParameters, node);\n}\n\nexport function TSInterfaceDeclaration(\n this: Printer,\n node: t.TSInterfaceDeclaration,\n) {\n const { declare, id, typeParameters, extends: extendz, body } = node;\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"interface\");\n this.space();\n this.print(id, node);\n this.print(typeParameters, node);\n if (extendz?.length) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.printList(extendz, node);\n }\n this.space();\n this.print(body, node);\n}\n\nexport function TSInterfaceBody(this: Printer, node: t.TSInterfaceBody) {\n this.tsPrintTypeLiteralOrInterfaceBody(node.body, node);\n}\n\nexport function TSTypeAliasDeclaration(\n this: Printer,\n node: t.TSTypeAliasDeclaration,\n) {\n const { declare, id, typeParameters, typeAnnotation } = node;\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"type\");\n this.space();\n this.print(id, node);\n this.print(typeParameters, node);\n this.space();\n this.token(\"=\");\n this.space();\n this.print(typeAnnotation, node);\n this.token(\";\");\n}\n\nfunction TSTypeExpression(\n this: Printer,\n node: t.TSAsExpression | t.TSSatisfiesExpression,\n) {\n const { type, expression, typeAnnotation } = node;\n const forceParens = !!expression.trailingComments?.length;\n this.print(expression, node, true, undefined, forceParens);\n this.space();\n this.word(type === \"TSAsExpression\" ? \"as\" : \"satisfies\");\n this.space();\n this.print(typeAnnotation, node);\n}\n\nexport {\n TSTypeExpression as TSAsExpression,\n TSTypeExpression as TSSatisfiesExpression,\n};\n\nexport function TSTypeAssertion(this: Printer, node: t.TSTypeAssertion) {\n const { typeAnnotation, expression } = node;\n this.token(\"<\");\n this.print(typeAnnotation, node);\n this.token(\">\");\n this.space();\n this.print(expression, node);\n}\n\nexport function TSInstantiationExpression(\n this: Printer,\n node: t.TSInstantiationExpression,\n) {\n this.print(node.expression, node);\n this.print(node.typeParameters, node);\n}\n\nexport function TSEnumDeclaration(this: Printer, node: t.TSEnumDeclaration) {\n const { declare, const: isConst, id, members } = node;\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n if (isConst) {\n this.word(\"const\");\n this.space();\n }\n this.word(\"enum\");\n this.space();\n this.print(id, node);\n this.space();\n tsPrintBraced(this, members, node);\n}\n\nexport function TSEnumMember(this: Printer, node: t.TSEnumMember) {\n const { id, initializer } = node;\n this.print(id, node);\n if (initializer) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(initializer, node);\n }\n this.token(\",\");\n}\n\nexport function TSModuleDeclaration(\n this: Printer,\n node: t.TSModuleDeclaration,\n) {\n const { declare, id } = node;\n\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n\n if (!node.global) {\n this.word(id.type === \"Identifier\" ? \"namespace\" : \"module\");\n this.space();\n }\n this.print(id, node);\n\n if (!node.body) {\n this.token(\";\");\n return;\n }\n\n let body = node.body;\n while (body.type === \"TSModuleDeclaration\") {\n this.token(\".\");\n this.print(body.id, body);\n body = body.body;\n }\n\n this.space();\n this.print(body, node);\n}\n\nexport function TSModuleBlock(this: Printer, node: t.TSModuleBlock) {\n tsPrintBraced(this, node.body, node);\n}\n\nexport function TSImportType(this: Printer, node: t.TSImportType) {\n const { argument, qualifier, typeParameters } = node;\n this.word(\"import\");\n this.token(\"(\");\n this.print(argument, node);\n this.token(\")\");\n if (qualifier) {\n this.token(\".\");\n this.print(qualifier, node);\n }\n if (typeParameters) {\n this.print(typeParameters, node);\n }\n}\n\nexport function TSImportEqualsDeclaration(\n this: Printer,\n node: t.TSImportEqualsDeclaration,\n) {\n const { isExport, id, moduleReference } = node;\n if (isExport) {\n this.word(\"export\");\n this.space();\n }\n this.word(\"import\");\n this.space();\n this.print(id, node);\n this.space();\n this.token(\"=\");\n this.space();\n this.print(moduleReference, node);\n this.token(\";\");\n}\n\nexport function TSExternalModuleReference(\n this: Printer,\n node: t.TSExternalModuleReference,\n) {\n this.token(\"require(\");\n this.print(node.expression, node);\n this.token(\")\");\n}\n\nexport function TSNonNullExpression(\n this: Printer,\n node: t.TSNonNullExpression,\n) {\n this.print(node.expression, node);\n this.token(\"!\");\n}\n\nexport function TSExportAssignment(this: Printer, node: t.TSExportAssignment) {\n this.word(\"export\");\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.expression, node);\n this.token(\";\");\n}\n\nexport function TSNamespaceExportDeclaration(\n this: Printer,\n node: t.TSNamespaceExportDeclaration,\n) {\n this.word(\"export\");\n this.space();\n this.word(\"as\");\n this.space();\n this.word(\"namespace\");\n this.space();\n this.print(node.id, node);\n}\n\nexport function tsPrintSignatureDeclarationBase(this: Printer, node: any) {\n const { typeParameters } = node;\n const parameters = process.env.BABEL_8_BREAKING\n ? node.params\n : node.parameters;\n this.print(typeParameters, node);\n this.token(\"(\");\n this._parameters(parameters, node);\n this.token(\")\");\n const returnType = process.env.BABEL_8_BREAKING\n ? node.returnType\n : node.typeAnnotation;\n this.print(returnType, node);\n}\n\nexport function tsPrintClassMemberModifiers(\n this: Printer,\n node:\n | t.ClassProperty\n | t.ClassAccessorProperty\n | t.ClassMethod\n | t.ClassPrivateMethod\n | t.TSDeclareMethod,\n) {\n const isField =\n node.type === \"ClassAccessorProperty\" || node.type === \"ClassProperty\";\n if (isField && node.declare) {\n this.word(\"declare\");\n this.space();\n }\n if (node.accessibility) {\n this.word(node.accessibility);\n this.space();\n }\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n if (node.override) {\n this.word(\"override\");\n this.space();\n }\n if (node.abstract) {\n this.word(\"abstract\");\n this.space();\n }\n if (isField && node.readonly) {\n this.word(\"readonly\");\n this.space();\n }\n}\n"],"mappings":"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"}
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.CodeGenerator = void 0;
7
7
  exports.default = generate;
8
- var _sourceMap = require("./source-map");
9
- var _printer = require("./printer");
8
+ var _sourceMap = require("./source-map.js");
9
+ var _printer = require("./printer.js");
10
10
  class Generator extends _printer.default {
11
11
  constructor(ast, opts = {}, code) {
12
12
  const format = normalizeOptions(code, opts);
@@ -1 +1 @@
1
- {"version":3,"names":["_sourceMap","require","_printer","Generator","Printer","constructor","ast","opts","code","format","normalizeOptions","map","sourceMaps","SourceMap","generate","_opts$recordAndTupleS","auxiliaryCommentBefore","auxiliaryCommentAfter","shouldPrintComment","retainLines","retainFunctionParens","comments","compact","minified","concise","indent","adjustMultilineComment","style","jsescOption","Object","assign","quotes","wrap","minimal","recordAndTupleSyntaxType","topicToken","importAttributesKeyword","decoratorsBeforeExport","json","jsonCompatibleStrings","value","includes","length","console","error","filename","undefined","CodeGenerator","_generator","exports","gen"],"sources":["../src/index.ts"],"sourcesContent":["import SourceMap from \"./source-map\";\nimport Printer from \"./printer\";\nimport type * as t from \"@babel/types\";\nimport type { Opts as jsescOptions } from \"jsesc\";\nimport type { Format } from \"./printer\";\nimport type {\n RecordAndTuplePluginOptions,\n PipelineOperatorPluginOptions,\n} from \"@babel/parser\";\nimport type {\n EncodedSourceMap,\n DecodedSourceMap,\n Mapping,\n} from \"@jridgewell/gen-mapping\";\n\n/**\n * Babel's code generator, turns an ast into code, maintaining sourcemaps,\n * user preferences, and valid output.\n */\n\nclass Generator extends Printer {\n constructor(\n ast: t.Node,\n opts: GeneratorOptions = {},\n code: string | { [filename: string]: string },\n ) {\n const format = normalizeOptions(code, opts);\n const map = opts.sourceMaps ? new SourceMap(opts, code) : null;\n super(format, map);\n\n this.ast = ast;\n }\n\n ast: t.Node;\n\n /**\n * Generate code and sourcemap from ast.\n *\n * Appends comments that weren't attached to any node to the end of the generated output.\n */\n\n generate() {\n return super.generate(this.ast);\n }\n}\n\n/**\n * Normalize generator options, setting defaults.\n *\n * - Detects code indentation.\n * - If `opts.compact = \"auto\"` and the code is over 500KB, `compact` will be set to `true`.\n */\n\nfunction normalizeOptions(\n code: string | { [filename: string]: string },\n opts: GeneratorOptions,\n): Format {\n const format: Format = {\n auxiliaryCommentBefore: opts.auxiliaryCommentBefore,\n auxiliaryCommentAfter: opts.auxiliaryCommentAfter,\n shouldPrintComment: opts.shouldPrintComment,\n retainLines: opts.retainLines,\n retainFunctionParens: opts.retainFunctionParens,\n comments: opts.comments == null || opts.comments,\n compact: opts.compact,\n minified: opts.minified,\n concise: opts.concise,\n indent: {\n adjustMultilineComment: true,\n style: \" \",\n },\n jsescOption: {\n quotes: \"double\",\n wrap: true,\n minimal: process.env.BABEL_8_BREAKING ? true : false,\n ...opts.jsescOption,\n },\n recordAndTupleSyntaxType: opts.recordAndTupleSyntaxType ?? \"hash\",\n topicToken: opts.topicToken,\n importAttributesKeyword: opts.importAttributesKeyword,\n };\n\n if (!process.env.BABEL_8_BREAKING) {\n format.decoratorsBeforeExport = opts.decoratorsBeforeExport;\n format.jsescOption.json = opts.jsonCompatibleStrings;\n }\n\n if (format.minified) {\n format.compact = true;\n\n format.shouldPrintComment =\n format.shouldPrintComment || (() => format.comments);\n } else {\n format.shouldPrintComment =\n format.shouldPrintComment ||\n (value =>\n format.comments ||\n value.includes(\"@license\") ||\n value.includes(\"@preserve\"));\n }\n\n if (format.compact === \"auto\") {\n format.compact = typeof code === \"string\" && code.length > 500_000; // 500KB\n\n if (format.compact) {\n console.error(\n \"[BABEL] Note: The code generator has deoptimised the styling of \" +\n `${opts.filename} as it exceeds the max of ${\"500KB\"}.`,\n );\n }\n }\n\n if (format.compact) {\n format.indent.adjustMultilineComment = false;\n }\n\n const { auxiliaryCommentBefore, auxiliaryCommentAfter, shouldPrintComment } =\n format;\n\n if (auxiliaryCommentBefore && !shouldPrintComment(auxiliaryCommentBefore)) {\n format.auxiliaryCommentBefore = undefined;\n }\n if (auxiliaryCommentAfter && !shouldPrintComment(auxiliaryCommentAfter)) {\n format.auxiliaryCommentAfter = undefined;\n }\n\n return format;\n}\n\nexport interface GeneratorOptions {\n /**\n * Optional string to add as a block comment at the start of the output file.\n */\n auxiliaryCommentBefore?: string;\n\n /**\n * Optional string to add as a block comment at the end of the output file.\n */\n auxiliaryCommentAfter?: string;\n\n /**\n * Function that takes a comment (as a string) and returns true if the comment should be included in the output.\n * By default, comments are included if `opts.comments` is `true` or if `opts.minified` is `false` and the comment\n * contains `@preserve` or `@license`.\n */\n shouldPrintComment?(comment: string): boolean;\n\n /**\n * Attempt to use the same line numbers in the output code as in the source code (helps preserve stack traces).\n * Defaults to `false`.\n */\n retainLines?: boolean;\n\n /**\n * Retain parens around function expressions (could be used to change engine parsing behavior)\n * Defaults to `false`.\n */\n retainFunctionParens?: boolean;\n\n /**\n * Should comments be included in output? Defaults to `true`.\n */\n comments?: boolean;\n\n /**\n * Set to true to avoid adding whitespace for formatting. Defaults to the value of `opts.minified`.\n */\n compact?: boolean | \"auto\";\n\n /**\n * Should the output be minified. Defaults to `false`.\n */\n minified?: boolean;\n\n /**\n * Set to true to reduce whitespace (but not as much as opts.compact). Defaults to `false`.\n */\n concise?: boolean;\n\n /**\n * Used in warning messages\n */\n filename?: string;\n\n /**\n * Enable generating source maps. Defaults to `false`.\n */\n sourceMaps?: boolean;\n\n inputSourceMap?: any;\n\n /**\n * A root for all relative URLs in the source map.\n */\n sourceRoot?: string;\n\n /**\n * The filename for the source code (i.e. the code in the `code` argument).\n * This will only be used if `code` is a string.\n */\n sourceFileName?: string;\n\n /**\n * Set to true to run jsesc with \"json\": true to print \"\\u00A9\" vs. \"©\";\n * @deprecated use `jsescOptions: { json: true }` instead\n */\n jsonCompatibleStrings?: boolean;\n\n /**\n * Set to true to enable support for experimental decorators syntax before\n * module exports. If not specified, decorators will be printed in the same\n * position as they were in the input source code.\n * @deprecated Removed in Babel 8\n */\n decoratorsBeforeExport?: boolean;\n\n /**\n * Options for outputting jsesc representation.\n */\n jsescOption?: jsescOptions;\n\n /**\n * For use with the recordAndTuple token.\n */\n recordAndTupleSyntaxType?: RecordAndTuplePluginOptions[\"syntaxType\"];\n\n /**\n * For use with the Hack-style pipe operator.\n * Changes what token is used for pipe bodies’ topic references.\n */\n topicToken?: PipelineOperatorPluginOptions[\"topicToken\"];\n\n /**\n * The import attributes syntax style:\n * - \"with\" : `import { a } from \"b\" with { type: \"json\" };`\n * - \"assert\" : `import { a } from \"b\" assert { type: \"json\" };`\n * - \"with-legacy\" : `import { a } from \"b\" with type: \"json\";`\n */\n importAttributesKeyword?: \"with\" | \"assert\" | \"with-legacy\";\n}\n\nexport interface GeneratorResult {\n code: string;\n map: EncodedSourceMap | null;\n decodedMap: DecodedSourceMap | undefined;\n rawMappings: Mapping[] | undefined;\n}\n\n/**\n * We originally exported the Generator class above, but to make it extra clear that it is a private API,\n * we have moved that to an internal class instance and simplified the interface to the two public methods\n * that we wish to support.\n */\n\nexport class CodeGenerator {\n private _generator: Generator;\n constructor(ast: t.Node, opts?: GeneratorOptions, code?: string) {\n this._generator = new Generator(ast, opts, code);\n }\n generate(): GeneratorResult {\n return this._generator.generate();\n }\n}\n\n/**\n * Turns an AST into code, maintaining sourcemaps, user preferences, and valid output.\n * @param ast - the abstract syntax tree from which to generate output code.\n * @param opts - used for specifying options for code generation.\n * @param code - the original source code, used for source maps.\n * @returns - an object containing the output code and source map.\n */\nexport default function generate(\n ast: t.Node,\n opts?: GeneratorOptions,\n code?: string | { [filename: string]: string },\n) {\n const gen = new Generator(ast, opts, code);\n return gen.generate();\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_sourceMap","require","_printer","Generator","Printer","constructor","ast","opts","code","format","normalizeOptions","map","sourceMaps","SourceMap","generate","_opts$recordAndTupleS","auxiliaryCommentBefore","auxiliaryCommentAfter","shouldPrintComment","retainLines","retainFunctionParens","comments","compact","minified","concise","indent","adjustMultilineComment","style","jsescOption","Object","assign","quotes","wrap","minimal","recordAndTupleSyntaxType","topicToken","importAttributesKeyword","decoratorsBeforeExport","json","jsonCompatibleStrings","value","includes","length","console","error","filename","undefined","CodeGenerator","_generator","exports","gen"],"sources":["../src/index.ts"],"sourcesContent":["import SourceMap from \"./source-map.ts\";\nimport Printer from \"./printer.ts\";\nimport type * as t from \"@babel/types\";\nimport type { Opts as jsescOptions } from \"jsesc\";\nimport type { Format } from \"./printer.ts\";\nimport type {\n RecordAndTuplePluginOptions,\n PipelineOperatorPluginOptions,\n} from \"@babel/parser\";\nimport type {\n EncodedSourceMap,\n DecodedSourceMap,\n Mapping,\n} from \"@jridgewell/gen-mapping\";\n\n/**\n * Babel's code generator, turns an ast into code, maintaining sourcemaps,\n * user preferences, and valid output.\n */\n\nclass Generator extends Printer {\n constructor(\n ast: t.Node,\n opts: GeneratorOptions = {},\n code: string | { [filename: string]: string },\n ) {\n const format = normalizeOptions(code, opts);\n const map = opts.sourceMaps ? new SourceMap(opts, code) : null;\n super(format, map);\n\n this.ast = ast;\n }\n\n ast: t.Node;\n\n /**\n * Generate code and sourcemap from ast.\n *\n * Appends comments that weren't attached to any node to the end of the generated output.\n */\n\n generate() {\n return super.generate(this.ast);\n }\n}\n\n/**\n * Normalize generator options, setting defaults.\n *\n * - Detects code indentation.\n * - If `opts.compact = \"auto\"` and the code is over 500KB, `compact` will be set to `true`.\n */\n\nfunction normalizeOptions(\n code: string | { [filename: string]: string },\n opts: GeneratorOptions,\n): Format {\n const format: Format = {\n auxiliaryCommentBefore: opts.auxiliaryCommentBefore,\n auxiliaryCommentAfter: opts.auxiliaryCommentAfter,\n shouldPrintComment: opts.shouldPrintComment,\n retainLines: opts.retainLines,\n retainFunctionParens: opts.retainFunctionParens,\n comments: opts.comments == null || opts.comments,\n compact: opts.compact,\n minified: opts.minified,\n concise: opts.concise,\n indent: {\n adjustMultilineComment: true,\n style: \" \",\n },\n jsescOption: {\n quotes: \"double\",\n wrap: true,\n minimal: process.env.BABEL_8_BREAKING ? true : false,\n ...opts.jsescOption,\n },\n recordAndTupleSyntaxType: opts.recordAndTupleSyntaxType ?? \"hash\",\n topicToken: opts.topicToken,\n importAttributesKeyword: opts.importAttributesKeyword,\n };\n\n if (!process.env.BABEL_8_BREAKING) {\n format.decoratorsBeforeExport = opts.decoratorsBeforeExport;\n format.jsescOption.json = opts.jsonCompatibleStrings;\n }\n\n if (format.minified) {\n format.compact = true;\n\n format.shouldPrintComment =\n format.shouldPrintComment || (() => format.comments);\n } else {\n format.shouldPrintComment =\n format.shouldPrintComment ||\n (value =>\n format.comments ||\n value.includes(\"@license\") ||\n value.includes(\"@preserve\"));\n }\n\n if (format.compact === \"auto\") {\n format.compact = typeof code === \"string\" && code.length > 500_000; // 500KB\n\n if (format.compact) {\n console.error(\n \"[BABEL] Note: The code generator has deoptimised the styling of \" +\n `${opts.filename} as it exceeds the max of ${\"500KB\"}.`,\n );\n }\n }\n\n if (format.compact) {\n format.indent.adjustMultilineComment = false;\n }\n\n const { auxiliaryCommentBefore, auxiliaryCommentAfter, shouldPrintComment } =\n format;\n\n if (auxiliaryCommentBefore && !shouldPrintComment(auxiliaryCommentBefore)) {\n format.auxiliaryCommentBefore = undefined;\n }\n if (auxiliaryCommentAfter && !shouldPrintComment(auxiliaryCommentAfter)) {\n format.auxiliaryCommentAfter = undefined;\n }\n\n return format;\n}\n\nexport interface GeneratorOptions {\n /**\n * Optional string to add as a block comment at the start of the output file.\n */\n auxiliaryCommentBefore?: string;\n\n /**\n * Optional string to add as a block comment at the end of the output file.\n */\n auxiliaryCommentAfter?: string;\n\n /**\n * Function that takes a comment (as a string) and returns true if the comment should be included in the output.\n * By default, comments are included if `opts.comments` is `true` or if `opts.minified` is `false` and the comment\n * contains `@preserve` or `@license`.\n */\n shouldPrintComment?(comment: string): boolean;\n\n /**\n * Attempt to use the same line numbers in the output code as in the source code (helps preserve stack traces).\n * Defaults to `false`.\n */\n retainLines?: boolean;\n\n /**\n * Retain parens around function expressions (could be used to change engine parsing behavior)\n * Defaults to `false`.\n */\n retainFunctionParens?: boolean;\n\n /**\n * Should comments be included in output? Defaults to `true`.\n */\n comments?: boolean;\n\n /**\n * Set to true to avoid adding whitespace for formatting. Defaults to the value of `opts.minified`.\n */\n compact?: boolean | \"auto\";\n\n /**\n * Should the output be minified. Defaults to `false`.\n */\n minified?: boolean;\n\n /**\n * Set to true to reduce whitespace (but not as much as opts.compact). Defaults to `false`.\n */\n concise?: boolean;\n\n /**\n * Used in warning messages\n */\n filename?: string;\n\n /**\n * Enable generating source maps. Defaults to `false`.\n */\n sourceMaps?: boolean;\n\n inputSourceMap?: any;\n\n /**\n * A root for all relative URLs in the source map.\n */\n sourceRoot?: string;\n\n /**\n * The filename for the source code (i.e. the code in the `code` argument).\n * This will only be used if `code` is a string.\n */\n sourceFileName?: string;\n\n /**\n * Set to true to run jsesc with \"json\": true to print \"\\u00A9\" vs. \"©\";\n * @deprecated use `jsescOptions: { json: true }` instead\n */\n jsonCompatibleStrings?: boolean;\n\n /**\n * Set to true to enable support for experimental decorators syntax before\n * module exports. If not specified, decorators will be printed in the same\n * position as they were in the input source code.\n * @deprecated Removed in Babel 8\n */\n decoratorsBeforeExport?: boolean;\n\n /**\n * Options for outputting jsesc representation.\n */\n jsescOption?: jsescOptions;\n\n /**\n * For use with the recordAndTuple token.\n */\n recordAndTupleSyntaxType?: RecordAndTuplePluginOptions[\"syntaxType\"];\n\n /**\n * For use with the Hack-style pipe operator.\n * Changes what token is used for pipe bodies’ topic references.\n */\n topicToken?: PipelineOperatorPluginOptions[\"topicToken\"];\n\n /**\n * The import attributes syntax style:\n * - \"with\" : `import { a } from \"b\" with { type: \"json\" };`\n * - \"assert\" : `import { a } from \"b\" assert { type: \"json\" };`\n * - \"with-legacy\" : `import { a } from \"b\" with type: \"json\";`\n */\n importAttributesKeyword?: \"with\" | \"assert\" | \"with-legacy\";\n}\n\nexport interface GeneratorResult {\n code: string;\n map: EncodedSourceMap | null;\n decodedMap: DecodedSourceMap | undefined;\n rawMappings: Mapping[] | undefined;\n}\n\n/**\n * We originally exported the Generator class above, but to make it extra clear that it is a private API,\n * we have moved that to an internal class instance and simplified the interface to the two public methods\n * that we wish to support.\n */\n\nexport class CodeGenerator {\n private _generator: Generator;\n constructor(ast: t.Node, opts?: GeneratorOptions, code?: string) {\n this._generator = new Generator(ast, opts, code);\n }\n generate(): GeneratorResult {\n return this._generator.generate();\n }\n}\n\n/**\n * Turns an AST into code, maintaining sourcemaps, user preferences, and valid output.\n * @param ast - the abstract syntax tree from which to generate output code.\n * @param opts - used for specifying options for code generation.\n * @param code - the original source code, used for source maps.\n * @returns - an object containing the output code and source map.\n */\nexport default function generate(\n ast: t.Node,\n opts?: GeneratorOptions,\n code?: string | { [filename: string]: string },\n) {\n const gen = new Generator(ast, opts, code);\n return gen.generate();\n}\n"],"mappings":"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"}
@@ -7,8 +7,8 @@ exports.needsParens = needsParens;
7
7
  exports.needsWhitespace = needsWhitespace;
8
8
  exports.needsWhitespaceAfter = needsWhitespaceAfter;
9
9
  exports.needsWhitespaceBefore = needsWhitespaceBefore;
10
- var whitespace = require("./whitespace");
11
- var parens = require("./parentheses");
10
+ var whitespace = require("./whitespace.js");
11
+ var parens = require("./parentheses.js");
12
12
  var _t = require("@babel/types");
13
13
  const {
14
14
  FLIPPED_ALIAS_KEYS,
@@ -1 +1 @@
1
- {"version":3,"names":["whitespace","require","parens","_t","FLIPPED_ALIAS_KEYS","isCallExpression","isExpressionStatement","isMemberExpression","isNewExpression","expandAliases","obj","newObj","add","type","func","fn","node","parent","stack","result","Object","keys","aliases","alias","expandedParens","expandedWhitespaceNodes","nodes","find","printStack","isOrHasCallExpression","object","needsWhitespace","expression","flag","needsWhitespaceBefore","needsWhitespaceAfter","needsParens","callee"],"sources":["../../src/node/index.ts"],"sourcesContent":["import * as whitespace from \"./whitespace\";\nimport * as parens from \"./parentheses\";\nimport {\n FLIPPED_ALIAS_KEYS,\n isCallExpression,\n isExpressionStatement,\n isMemberExpression,\n isNewExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\nimport type { WhitespaceFlag } from \"./whitespace\";\n\nexport type NodeHandlers<R> = {\n [K in string]?: (\n node: K extends t.Node[\"type\"] ? Extract<t.Node, { type: K }> : t.Node,\n // todo:\n // node: K extends keyof typeof t\n // ? Extract<typeof t[K], { type: \"string\" }>\n // : t.Node,\n parent: t.Node,\n stack: t.Node[],\n ) => R;\n};\n\nfunction expandAliases<R>(obj: NodeHandlers<R>) {\n const newObj: NodeHandlers<R> = {};\n\n function add(\n type: string,\n func: (node: t.Node, parent: t.Node, stack: t.Node[]) => R,\n ) {\n const fn = newObj[type];\n newObj[type] = fn\n ? function (node, parent, stack) {\n const result = fn(node, parent, stack);\n\n return result == null ? func(node, parent, stack) : result;\n }\n : func;\n }\n\n for (const type of Object.keys(obj)) {\n const aliases = FLIPPED_ALIAS_KEYS[type];\n if (aliases) {\n for (const alias of aliases) {\n add(alias, obj[type]);\n }\n } else {\n add(type, obj[type]);\n }\n }\n\n return newObj;\n}\n\n// Rather than using `t.is` on each object property, we pre-expand any type aliases\n// into concrete types so that the 'find' call below can be as fast as possible.\nconst expandedParens = expandAliases(parens);\nconst expandedWhitespaceNodes = expandAliases(whitespace.nodes);\n\nfunction find<R>(\n obj: NodeHandlers<R>,\n node: t.Node,\n parent: t.Node,\n printStack?: t.Node[],\n): R | null {\n const fn = obj[node.type];\n return fn ? fn(node, parent, printStack) : null;\n}\n\nfunction isOrHasCallExpression(node: t.Node): boolean {\n if (isCallExpression(node)) {\n return true;\n }\n\n return isMemberExpression(node) && isOrHasCallExpression(node.object);\n}\n\nexport function needsWhitespace(\n node: t.Node,\n parent: t.Node,\n type: WhitespaceFlag,\n): boolean {\n if (!node) return false;\n\n if (isExpressionStatement(node)) {\n node = node.expression;\n }\n\n const flag = find(expandedWhitespaceNodes, node, parent);\n\n if (typeof flag === \"number\") {\n return (flag & type) !== 0;\n }\n\n return false;\n}\n\nexport function needsWhitespaceBefore(node: t.Node, parent: t.Node) {\n return needsWhitespace(node, parent, 1);\n}\n\nexport function needsWhitespaceAfter(node: t.Node, parent: t.Node) {\n return needsWhitespace(node, parent, 2);\n}\n\nexport function needsParens(\n node: t.Node,\n parent: t.Node,\n printStack?: t.Node[],\n) {\n if (!parent) return false;\n\n if (isNewExpression(parent) && parent.callee === node) {\n if (isOrHasCallExpression(node)) return true;\n }\n\n return find(expandedParens, node, parent, printStack);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["whitespace","require","parens","_t","FLIPPED_ALIAS_KEYS","isCallExpression","isExpressionStatement","isMemberExpression","isNewExpression","expandAliases","obj","newObj","add","type","func","fn","node","parent","stack","result","Object","keys","aliases","alias","expandedParens","expandedWhitespaceNodes","nodes","find","printStack","isOrHasCallExpression","object","needsWhitespace","expression","flag","needsWhitespaceBefore","needsWhitespaceAfter","needsParens","callee"],"sources":["../../src/node/index.ts"],"sourcesContent":["import * as whitespace from \"./whitespace.ts\";\nimport * as parens from \"./parentheses.ts\";\nimport {\n FLIPPED_ALIAS_KEYS,\n isCallExpression,\n isExpressionStatement,\n isMemberExpression,\n isNewExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\nimport type { WhitespaceFlag } from \"./whitespace.ts\";\n\nexport type NodeHandlers<R> = {\n [K in string]?: (\n node: K extends t.Node[\"type\"] ? Extract<t.Node, { type: K }> : t.Node,\n // todo:\n // node: K extends keyof typeof t\n // ? Extract<typeof t[K], { type: \"string\" }>\n // : t.Node,\n parent: t.Node,\n stack: t.Node[],\n ) => R;\n};\n\nfunction expandAliases<R>(obj: NodeHandlers<R>) {\n const newObj: NodeHandlers<R> = {};\n\n function add(\n type: string,\n func: (node: t.Node, parent: t.Node, stack: t.Node[]) => R,\n ) {\n const fn = newObj[type];\n newObj[type] = fn\n ? function (node, parent, stack) {\n const result = fn(node, parent, stack);\n\n return result == null ? func(node, parent, stack) : result;\n }\n : func;\n }\n\n for (const type of Object.keys(obj)) {\n const aliases = FLIPPED_ALIAS_KEYS[type];\n if (aliases) {\n for (const alias of aliases) {\n add(alias, obj[type]);\n }\n } else {\n add(type, obj[type]);\n }\n }\n\n return newObj;\n}\n\n// Rather than using `t.is` on each object property, we pre-expand any type aliases\n// into concrete types so that the 'find' call below can be as fast as possible.\nconst expandedParens = expandAliases(parens);\nconst expandedWhitespaceNodes = expandAliases(whitespace.nodes);\n\nfunction find<R>(\n obj: NodeHandlers<R>,\n node: t.Node,\n parent: t.Node,\n printStack?: t.Node[],\n): R | null {\n const fn = obj[node.type];\n return fn ? fn(node, parent, printStack) : null;\n}\n\nfunction isOrHasCallExpression(node: t.Node): boolean {\n if (isCallExpression(node)) {\n return true;\n }\n\n return isMemberExpression(node) && isOrHasCallExpression(node.object);\n}\n\nexport function needsWhitespace(\n node: t.Node,\n parent: t.Node,\n type: WhitespaceFlag,\n): boolean {\n if (!node) return false;\n\n if (isExpressionStatement(node)) {\n node = node.expression;\n }\n\n const flag = find(expandedWhitespaceNodes, node, parent);\n\n if (typeof flag === \"number\") {\n return (flag & type) !== 0;\n }\n\n return false;\n}\n\nexport function needsWhitespaceBefore(node: t.Node, parent: t.Node) {\n return needsWhitespace(node, parent, 1);\n}\n\nexport function needsWhitespaceAfter(node: t.Node, parent: t.Node) {\n return needsWhitespace(node, parent, 2);\n}\n\nexport function needsParens(\n node: t.Node,\n parent: t.Node,\n printStack?: t.Node[],\n) {\n if (!parent) return false;\n\n if (isNewExpression(parent) && parent.callee === node) {\n if (isOrHasCallExpression(node)) return true;\n }\n\n return find(expandedParens, node, parent, printStack);\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,EAAA,GAAAF,OAAA;AAMsB;EALpBG,kBAAkB;EAClBC,gBAAgB;EAChBC,qBAAqB;EACrBC,kBAAkB;EAClBC;AAAe,IAAAL,EAAA;AAkBjB,SAASM,aAAaA,CAAIC,GAAoB,EAAE;EAC9C,MAAMC,MAAuB,GAAG,CAAC,CAAC;EAElC,SAASC,GAAGA,CACVC,IAAY,EACZC,IAA0D,EAC1D;IACA,MAAMC,EAAE,GAAGJ,MAAM,CAACE,IAAI,CAAC;IACvBF,MAAM,CAACE,IAAI,CAAC,GAAGE,EAAE,GACb,UAAUC,IAAI,EAAEC,MAAM,EAAEC,KAAK,EAAE;MAC7B,MAAMC,MAAM,GAAGJ,EAAE,CAACC,IAAI,EAAEC,MAAM,EAAEC,KAAK,CAAC;MAEtC,OAAOC,MAAM,IAAI,IAAI,GAAGL,IAAI,CAACE,IAAI,EAAEC,MAAM,EAAEC,KAAK,CAAC,GAAGC,MAAM;IAC5D,CAAC,GACDL,IAAI;EACV;EAEA,KAAK,MAAMD,IAAI,IAAIO,MAAM,CAACC,IAAI,CAACX,GAAG,CAAC,EAAE;IACnC,MAAMY,OAAO,GAAGlB,kBAAkB,CAACS,IAAI,CAAC;IACxC,IAAIS,OAAO,EAAE;MACX,KAAK,MAAMC,KAAK,IAAID,OAAO,EAAE;QAC3BV,GAAG,CAACW,KAAK,EAAEb,GAAG,CAACG,IAAI,CAAC,CAAC;MACvB;IACF,CAAC,MAAM;MACLD,GAAG,CAACC,IAAI,EAAEH,GAAG,CAACG,IAAI,CAAC,CAAC;IACtB;EACF;EAEA,OAAOF,MAAM;AACf;AAIA,MAAMa,cAAc,GAAGf,aAAa,CAACP,MAAM,CAAC;AAC5C,MAAMuB,uBAAuB,GAAGhB,aAAa,CAACT,UAAU,CAAC0B,KAAK,CAAC;AAE/D,SAASC,IAAIA,CACXjB,GAAoB,EACpBM,IAAY,EACZC,MAAc,EACdW,UAAqB,EACX;EACV,MAAMb,EAAE,GAAGL,GAAG,CAACM,IAAI,CAACH,IAAI,CAAC;EACzB,OAAOE,EAAE,GAAGA,EAAE,CAACC,IAAI,EAAEC,MAAM,EAAEW,UAAU,CAAC,GAAG,IAAI;AACjD;AAEA,SAASC,qBAAqBA,CAACb,IAAY,EAAW;EACpD,IAAIX,gBAAgB,CAACW,IAAI,CAAC,EAAE;IAC1B,OAAO,IAAI;EACb;EAEA,OAAOT,kBAAkB,CAACS,IAAI,CAAC,IAAIa,qBAAqB,CAACb,IAAI,CAACc,MAAM,CAAC;AACvE;AAEO,SAASC,eAAeA,CAC7Bf,IAAY,EACZC,MAAc,EACdJ,IAAoB,EACX;EACT,IAAI,CAACG,IAAI,EAAE,OAAO,KAAK;EAEvB,IAAIV,qBAAqB,CAACU,IAAI,CAAC,EAAE;IAC/BA,IAAI,GAAGA,IAAI,CAACgB,UAAU;EACxB;EAEA,MAAMC,IAAI,GAAGN,IAAI,CAACF,uBAAuB,EAAET,IAAI,EAAEC,MAAM,CAAC;EAExD,IAAI,OAAOgB,IAAI,KAAK,QAAQ,EAAE;IAC5B,OAAO,CAACA,IAAI,GAAGpB,IAAI,MAAM,CAAC;EAC5B;EAEA,OAAO,KAAK;AACd;AAEO,SAASqB,qBAAqBA,CAAClB,IAAY,EAAEC,MAAc,EAAE;EAClE,OAAOc,eAAe,CAACf,IAAI,EAAEC,MAAM,EAAE,CAAC,CAAC;AACzC;AAEO,SAASkB,oBAAoBA,CAACnB,IAAY,EAAEC,MAAc,EAAE;EACjE,OAAOc,eAAe,CAACf,IAAI,EAAEC,MAAM,EAAE,CAAC,CAAC;AACzC;AAEO,SAASmB,WAAWA,CACzBpB,IAAY,EACZC,MAAc,EACdW,UAAqB,EACrB;EACA,IAAI,CAACX,MAAM,EAAE,OAAO,KAAK;EAEzB,IAAIT,eAAe,CAACS,MAAM,CAAC,IAAIA,MAAM,CAACoB,MAAM,KAAKrB,IAAI,EAAE;IACrD,IAAIa,qBAAqB,CAACb,IAAI,CAAC,EAAE,OAAO,IAAI;EAC9C;EAEA,OAAOW,IAAI,CAACH,cAAc,EAAER,IAAI,EAAEC,MAAM,EAAEW,UAAU,CAAC;AACvD"}
@@ -1 +1 @@
1
- {"version":3,"names":["_t","require","FLIPPED_ALIAS_KEYS","isArrayExpression","isAssignmentExpression","isBinary","isBlockStatement","isCallExpression","isFunction","isIdentifier","isLiteral","isMemberExpression","isObjectExpression","isOptionalCallExpression","isOptionalMemberExpression","isStringLiteral","crawlInternal","node","state","object","computed","property","left","right","hasCall","callee","hasFunction","hasHelper","isHelper","crawl","name","charCodeAt","isType","nodes","AssignmentExpression","SwitchCase","parent","consequent","length","cases","LogicalExpression","Literal","value","CallExpression","OptionalCallExpression","VariableDeclaration","i","declarations","declar","enabled","id","init","IfStatement","exports","ObjectProperty","ObjectTypeProperty","ObjectMethod","properties","ObjectTypeCallProperty","_parent$properties","callProperties","ObjectTypeIndexer","_parent$properties2","_parent$callPropertie","indexers","ObjectTypeInternalSlot","_parent$properties3","_parent$callPropertie2","_parent$indexers","internalSlots","forEach","type","amounts","concat","ret"],"sources":["../../src/node/whitespace.ts"],"sourcesContent":["import {\n FLIPPED_ALIAS_KEYS,\n isArrayExpression,\n isAssignmentExpression,\n isBinary,\n isBlockStatement,\n isCallExpression,\n isFunction,\n isIdentifier,\n isLiteral,\n isMemberExpression,\n isObjectExpression,\n isOptionalCallExpression,\n isOptionalMemberExpression,\n isStringLiteral,\n} from \"@babel/types\";\nimport * as charCodes from \"charcodes\";\n\nimport type { NodeHandlers } from \"./index\";\n\nimport type * as t from \"@babel/types\";\n\nconst enum WhitespaceFlag {\n before = 1 << 0,\n after = 1 << 1,\n}\n\nexport type { WhitespaceFlag };\n\nfunction crawlInternal(\n node: t.Node,\n state: { hasCall: boolean; hasFunction: boolean; hasHelper: boolean },\n) {\n if (!node) return state;\n\n if (isMemberExpression(node) || isOptionalMemberExpression(node)) {\n crawlInternal(node.object, state);\n if (node.computed) crawlInternal(node.property, state);\n } else if (isBinary(node) || isAssignmentExpression(node)) {\n crawlInternal(node.left, state);\n crawlInternal(node.right, state);\n } else if (isCallExpression(node) || isOptionalCallExpression(node)) {\n state.hasCall = true;\n crawlInternal(node.callee, state);\n } else if (isFunction(node)) {\n state.hasFunction = true;\n } else if (isIdentifier(node)) {\n state.hasHelper =\n // @ts-expect-error todo(flow->ts): node.callee is not really expected here…\n state.hasHelper || (node.callee && isHelper(node.callee));\n }\n\n return state;\n}\n\n/**\n * Crawl a node to test if it contains a CallExpression, a Function, or a Helper.\n *\n * @example\n * crawl(node)\n * // { hasCall: false, hasFunction: true, hasHelper: false }\n */\n\nfunction crawl(node: t.Node) {\n return crawlInternal(node, {\n hasCall: false,\n hasFunction: false,\n hasHelper: false,\n });\n}\n\n/**\n * Test if a node is or has a helper.\n */\n\nfunction isHelper(node: t.Node): boolean {\n if (!node) return false;\n\n if (isMemberExpression(node)) {\n return isHelper(node.object) || isHelper(node.property);\n } else if (isIdentifier(node)) {\n return (\n node.name === \"require\" ||\n node.name.charCodeAt(0) === charCodes.underscore\n );\n } else if (isCallExpression(node)) {\n return isHelper(node.callee);\n } else if (isBinary(node) || isAssignmentExpression(node)) {\n return (\n (isIdentifier(node.left) && isHelper(node.left)) || isHelper(node.right)\n );\n } else {\n return false;\n }\n}\n\nfunction isType(node: t.Node) {\n return (\n isLiteral(node) ||\n isObjectExpression(node) ||\n isArrayExpression(node) ||\n isIdentifier(node) ||\n isMemberExpression(node)\n );\n}\n\n/**\n * Tests for node types that need whitespace.\n */\n\nexport const nodes: NodeHandlers<WhitespaceFlag> = {\n /**\n * Test if AssignmentExpression needs whitespace.\n */\n\n AssignmentExpression(node: t.AssignmentExpression): WhitespaceFlag {\n const state = crawl(node.right);\n if ((state.hasCall && state.hasHelper) || state.hasFunction) {\n return state.hasFunction\n ? WhitespaceFlag.before | WhitespaceFlag.after\n : WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if SwitchCase needs whitespace.\n */\n\n SwitchCase(node: t.SwitchCase, parent: t.SwitchStatement): WhitespaceFlag {\n return (\n (!!node.consequent.length || parent.cases[0] === node\n ? WhitespaceFlag.before\n : 0) |\n (!node.consequent.length && parent.cases[parent.cases.length - 1] === node\n ? WhitespaceFlag.after\n : 0)\n );\n },\n\n /**\n * Test if LogicalExpression needs whitespace.\n */\n\n LogicalExpression(node: t.LogicalExpression): WhitespaceFlag {\n if (isFunction(node.left) || isFunction(node.right)) {\n return WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if Literal needs whitespace.\n */\n\n Literal(node: t.Literal): WhitespaceFlag {\n if (isStringLiteral(node) && node.value === \"use strict\") {\n return WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if CallExpressionish needs whitespace.\n */\n\n CallExpression(node: t.CallExpression): WhitespaceFlag {\n if (isFunction(node.callee) || isHelper(node)) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n },\n\n OptionalCallExpression(node: t.OptionalCallExpression): WhitespaceFlag {\n if (isFunction(node.callee)) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if VariableDeclaration needs whitespace.\n */\n\n VariableDeclaration(node: t.VariableDeclaration): WhitespaceFlag {\n for (let i = 0; i < node.declarations.length; i++) {\n const declar = node.declarations[i];\n\n let enabled = isHelper(declar.id) && !isType(declar.init);\n if (!enabled && declar.init) {\n const state = crawl(declar.init);\n enabled = (isHelper(declar.init) && state.hasCall) || state.hasFunction;\n }\n\n if (enabled) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n }\n },\n\n /**\n * Test if IfStatement needs whitespace.\n */\n\n IfStatement(node: t.IfStatement): WhitespaceFlag {\n if (isBlockStatement(node.consequent)) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n },\n};\n\n/**\n * Test if Property needs whitespace.\n */\n\nnodes.ObjectProperty =\n nodes.ObjectTypeProperty =\n nodes.ObjectMethod =\n function (\n node: t.ObjectProperty | t.ObjectTypeProperty | t.ObjectMethod,\n parent: t.ObjectExpression,\n ): WhitespaceFlag {\n if (parent.properties[0] === node) {\n return WhitespaceFlag.before;\n }\n };\n\nnodes.ObjectTypeCallProperty = function (\n node: t.ObjectTypeCallProperty,\n parent: t.ObjectTypeAnnotation,\n): WhitespaceFlag {\n if (parent.callProperties[0] === node && !parent.properties?.length) {\n return WhitespaceFlag.before;\n }\n};\n\nnodes.ObjectTypeIndexer = function (\n node: t.ObjectTypeIndexer,\n parent: t.ObjectTypeAnnotation,\n): WhitespaceFlag {\n if (\n parent.indexers[0] === node &&\n !parent.properties?.length &&\n !parent.callProperties?.length\n ) {\n return WhitespaceFlag.before;\n }\n};\n\nnodes.ObjectTypeInternalSlot = function (\n node: t.ObjectTypeInternalSlot,\n parent: t.ObjectTypeAnnotation,\n): WhitespaceFlag {\n if (\n parent.internalSlots[0] === node &&\n !parent.properties?.length &&\n !parent.callProperties?.length &&\n !parent.indexers?.length\n ) {\n return WhitespaceFlag.before;\n }\n};\n\n/**\n * Add whitespace tests for nodes and their aliases.\n */\n\n(\n [\n [\"Function\", true],\n [\"Class\", true],\n [\"Loop\", true],\n [\"LabeledStatement\", true],\n [\"SwitchStatement\", true],\n [\"TryStatement\", true],\n ] as const\n).forEach(function ([type, amounts]) {\n [type as string]\n .concat(FLIPPED_ALIAS_KEYS[type] || [])\n .forEach(function (type) {\n const ret = amounts ? WhitespaceFlag.before | WhitespaceFlag.after : 0;\n nodes[type] = () => ret;\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["_t","require","FLIPPED_ALIAS_KEYS","isArrayExpression","isAssignmentExpression","isBinary","isBlockStatement","isCallExpression","isFunction","isIdentifier","isLiteral","isMemberExpression","isObjectExpression","isOptionalCallExpression","isOptionalMemberExpression","isStringLiteral","crawlInternal","node","state","object","computed","property","left","right","hasCall","callee","hasFunction","hasHelper","isHelper","crawl","name","charCodeAt","isType","nodes","AssignmentExpression","SwitchCase","parent","consequent","length","cases","LogicalExpression","Literal","value","CallExpression","OptionalCallExpression","VariableDeclaration","i","declarations","declar","enabled","id","init","IfStatement","exports","ObjectProperty","ObjectTypeProperty","ObjectMethod","properties","ObjectTypeCallProperty","_parent$properties","callProperties","ObjectTypeIndexer","_parent$properties2","_parent$callPropertie","indexers","ObjectTypeInternalSlot","_parent$properties3","_parent$callPropertie2","_parent$indexers","internalSlots","forEach","type","amounts","concat","ret"],"sources":["../../src/node/whitespace.ts"],"sourcesContent":["import {\n FLIPPED_ALIAS_KEYS,\n isArrayExpression,\n isAssignmentExpression,\n isBinary,\n isBlockStatement,\n isCallExpression,\n isFunction,\n isIdentifier,\n isLiteral,\n isMemberExpression,\n isObjectExpression,\n isOptionalCallExpression,\n isOptionalMemberExpression,\n isStringLiteral,\n} from \"@babel/types\";\nimport * as charCodes from \"charcodes\";\n\nimport type { NodeHandlers } from \"./index.ts\";\n\nimport type * as t from \"@babel/types\";\n\nconst enum WhitespaceFlag {\n before = 1 << 0,\n after = 1 << 1,\n}\n\nexport type { WhitespaceFlag };\n\nfunction crawlInternal(\n node: t.Node,\n state: { hasCall: boolean; hasFunction: boolean; hasHelper: boolean },\n) {\n if (!node) return state;\n\n if (isMemberExpression(node) || isOptionalMemberExpression(node)) {\n crawlInternal(node.object, state);\n if (node.computed) crawlInternal(node.property, state);\n } else if (isBinary(node) || isAssignmentExpression(node)) {\n crawlInternal(node.left, state);\n crawlInternal(node.right, state);\n } else if (isCallExpression(node) || isOptionalCallExpression(node)) {\n state.hasCall = true;\n crawlInternal(node.callee, state);\n } else if (isFunction(node)) {\n state.hasFunction = true;\n } else if (isIdentifier(node)) {\n state.hasHelper =\n // @ts-expect-error todo(flow->ts): node.callee is not really expected here…\n state.hasHelper || (node.callee && isHelper(node.callee));\n }\n\n return state;\n}\n\n/**\n * Crawl a node to test if it contains a CallExpression, a Function, or a Helper.\n *\n * @example\n * crawl(node)\n * // { hasCall: false, hasFunction: true, hasHelper: false }\n */\n\nfunction crawl(node: t.Node) {\n return crawlInternal(node, {\n hasCall: false,\n hasFunction: false,\n hasHelper: false,\n });\n}\n\n/**\n * Test if a node is or has a helper.\n */\n\nfunction isHelper(node: t.Node): boolean {\n if (!node) return false;\n\n if (isMemberExpression(node)) {\n return isHelper(node.object) || isHelper(node.property);\n } else if (isIdentifier(node)) {\n return (\n node.name === \"require\" ||\n node.name.charCodeAt(0) === charCodes.underscore\n );\n } else if (isCallExpression(node)) {\n return isHelper(node.callee);\n } else if (isBinary(node) || isAssignmentExpression(node)) {\n return (\n (isIdentifier(node.left) && isHelper(node.left)) || isHelper(node.right)\n );\n } else {\n return false;\n }\n}\n\nfunction isType(node: t.Node) {\n return (\n isLiteral(node) ||\n isObjectExpression(node) ||\n isArrayExpression(node) ||\n isIdentifier(node) ||\n isMemberExpression(node)\n );\n}\n\n/**\n * Tests for node types that need whitespace.\n */\n\nexport const nodes: NodeHandlers<WhitespaceFlag> = {\n /**\n * Test if AssignmentExpression needs whitespace.\n */\n\n AssignmentExpression(node: t.AssignmentExpression): WhitespaceFlag {\n const state = crawl(node.right);\n if ((state.hasCall && state.hasHelper) || state.hasFunction) {\n return state.hasFunction\n ? WhitespaceFlag.before | WhitespaceFlag.after\n : WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if SwitchCase needs whitespace.\n */\n\n SwitchCase(node: t.SwitchCase, parent: t.SwitchStatement): WhitespaceFlag {\n return (\n (!!node.consequent.length || parent.cases[0] === node\n ? WhitespaceFlag.before\n : 0) |\n (!node.consequent.length && parent.cases[parent.cases.length - 1] === node\n ? WhitespaceFlag.after\n : 0)\n );\n },\n\n /**\n * Test if LogicalExpression needs whitespace.\n */\n\n LogicalExpression(node: t.LogicalExpression): WhitespaceFlag {\n if (isFunction(node.left) || isFunction(node.right)) {\n return WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if Literal needs whitespace.\n */\n\n Literal(node: t.Literal): WhitespaceFlag {\n if (isStringLiteral(node) && node.value === \"use strict\") {\n return WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if CallExpressionish needs whitespace.\n */\n\n CallExpression(node: t.CallExpression): WhitespaceFlag {\n if (isFunction(node.callee) || isHelper(node)) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n },\n\n OptionalCallExpression(node: t.OptionalCallExpression): WhitespaceFlag {\n if (isFunction(node.callee)) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if VariableDeclaration needs whitespace.\n */\n\n VariableDeclaration(node: t.VariableDeclaration): WhitespaceFlag {\n for (let i = 0; i < node.declarations.length; i++) {\n const declar = node.declarations[i];\n\n let enabled = isHelper(declar.id) && !isType(declar.init);\n if (!enabled && declar.init) {\n const state = crawl(declar.init);\n enabled = (isHelper(declar.init) && state.hasCall) || state.hasFunction;\n }\n\n if (enabled) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n }\n },\n\n /**\n * Test if IfStatement needs whitespace.\n */\n\n IfStatement(node: t.IfStatement): WhitespaceFlag {\n if (isBlockStatement(node.consequent)) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n },\n};\n\n/**\n * Test if Property needs whitespace.\n */\n\nnodes.ObjectProperty =\n nodes.ObjectTypeProperty =\n nodes.ObjectMethod =\n function (\n node: t.ObjectProperty | t.ObjectTypeProperty | t.ObjectMethod,\n parent: t.ObjectExpression,\n ): WhitespaceFlag {\n if (parent.properties[0] === node) {\n return WhitespaceFlag.before;\n }\n };\n\nnodes.ObjectTypeCallProperty = function (\n node: t.ObjectTypeCallProperty,\n parent: t.ObjectTypeAnnotation,\n): WhitespaceFlag {\n if (parent.callProperties[0] === node && !parent.properties?.length) {\n return WhitespaceFlag.before;\n }\n};\n\nnodes.ObjectTypeIndexer = function (\n node: t.ObjectTypeIndexer,\n parent: t.ObjectTypeAnnotation,\n): WhitespaceFlag {\n if (\n parent.indexers[0] === node &&\n !parent.properties?.length &&\n !parent.callProperties?.length\n ) {\n return WhitespaceFlag.before;\n }\n};\n\nnodes.ObjectTypeInternalSlot = function (\n node: t.ObjectTypeInternalSlot,\n parent: t.ObjectTypeAnnotation,\n): WhitespaceFlag {\n if (\n parent.internalSlots[0] === node &&\n !parent.properties?.length &&\n !parent.callProperties?.length &&\n !parent.indexers?.length\n ) {\n return WhitespaceFlag.before;\n }\n};\n\n/**\n * Add whitespace tests for nodes and their aliases.\n */\n\n(\n [\n [\"Function\", true],\n [\"Class\", true],\n [\"Loop\", true],\n [\"LabeledStatement\", true],\n [\"SwitchStatement\", true],\n [\"TryStatement\", true],\n ] as const\n).forEach(function ([type, amounts]) {\n [type as string]\n .concat(FLIPPED_ALIAS_KEYS[type] || [])\n .forEach(function (type) {\n const ret = amounts ? WhitespaceFlag.before | WhitespaceFlag.after : 0;\n nodes[type] = () => ret;\n });\n});\n"],"mappings":"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"}