@elench/testkit 0.1.64 → 0.1.66

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 (342) hide show
  1. package/lib/app/browser-bridge.mjs +66 -0
  2. package/lib/app/configs.mjs +81 -0
  3. package/lib/app/configs.test.mjs +34 -0
  4. package/lib/cli/command-helpers.mjs +2 -10
  5. package/lib/cli/commands/browser/serve.mjs +3 -62
  6. package/lib/cli/db.mjs +3 -68
  7. package/lib/config/binaries.mjs +34 -0
  8. package/lib/config/database.mjs +9 -6
  9. package/lib/config/index.mjs +2 -31
  10. package/lib/config/runtime.mjs +24 -95
  11. package/lib/config/validation.mjs +18 -62
  12. package/lib/coverage/backend-discovery.mjs +68 -85
  13. package/lib/coverage/backend-discovery.test.mjs +55 -46
  14. package/lib/coverage/evidence.mjs +15 -3
  15. package/lib/coverage/evidence.test.mjs +13 -4
  16. package/lib/coverage/graph-builder.mjs +25 -26
  17. package/lib/coverage/next-ir-to-graph.mjs +239 -0
  18. package/lib/coverage/routing.mjs +2 -29
  19. package/lib/coverage/routing.test.mjs +0 -16
  20. package/lib/coverage/shared.mjs +22 -82
  21. package/lib/database/fingerprint.mjs +1 -1
  22. package/lib/known-failures/github-cache.mjs +159 -0
  23. package/lib/known-failures/github-transport.mjs +174 -0
  24. package/lib/known-failures/github.mjs +17 -325
  25. package/lib/runner/default-runtime-runner.mjs +4 -10
  26. package/lib/runner/execution-config.mjs +12 -83
  27. package/lib/runner/live-run.mjs +45 -0
  28. package/lib/runner/managed-processes.mjs +29 -0
  29. package/lib/runner/orchestrator.mjs +57 -188
  30. package/lib/runner/playwright-runner.mjs +4 -11
  31. package/lib/runner/run-finalization.mjs +132 -0
  32. package/lib/runner/run-guards.mjs +45 -0
  33. package/lib/runner/runtime-preparation.mjs +1 -1
  34. package/lib/runner/services.mjs +3 -4
  35. package/lib/runner/template-steps.mjs +8 -45
  36. package/lib/runner/template.mjs +7 -28
  37. package/lib/shared/configured-steps.mjs +178 -0
  38. package/lib/shared/configured-steps.test.mjs +73 -0
  39. package/lib/shared/execution-schema.mjs +74 -0
  40. package/lib/shared/execution-schema.test.mjs +26 -0
  41. package/node_modules/@elench/next-analysis/dist/api-routes.d.ts +7 -0
  42. package/node_modules/@elench/next-analysis/dist/api-routes.d.ts.map +1 -0
  43. package/node_modules/@elench/next-analysis/dist/api-routes.js +66 -0
  44. package/node_modules/@elench/next-analysis/dist/api-routes.js.map +1 -0
  45. package/node_modules/@elench/next-analysis/dist/app-root.d.ts +2 -0
  46. package/node_modules/@elench/next-analysis/dist/app-root.d.ts.map +1 -0
  47. package/node_modules/@elench/next-analysis/dist/app-root.js +7 -0
  48. package/node_modules/@elench/next-analysis/dist/app-root.js.map +1 -0
  49. package/node_modules/@elench/next-analysis/dist/backend-links.d.ts +8 -0
  50. package/node_modules/@elench/next-analysis/dist/backend-links.d.ts.map +1 -0
  51. package/node_modules/@elench/next-analysis/dist/backend-links.js +30 -0
  52. package/node_modules/@elench/next-analysis/dist/backend-links.js.map +1 -0
  53. package/node_modules/@elench/next-analysis/dist/index.d.ts +11 -0
  54. package/node_modules/@elench/next-analysis/dist/index.d.ts.map +1 -0
  55. package/node_modules/@elench/next-analysis/dist/index.js +10 -0
  56. package/node_modules/@elench/next-analysis/dist/index.js.map +1 -0
  57. package/node_modules/@elench/next-analysis/dist/pages.d.ts +7 -0
  58. package/node_modules/@elench/next-analysis/dist/pages.d.ts.map +1 -0
  59. package/node_modules/@elench/next-analysis/dist/pages.js +47 -0
  60. package/node_modules/@elench/next-analysis/dist/pages.js.map +1 -0
  61. package/node_modules/@elench/next-analysis/dist/project.d.ts +3 -0
  62. package/node_modules/@elench/next-analysis/dist/project.d.ts.map +1 -0
  63. package/node_modules/@elench/next-analysis/dist/project.js +102 -0
  64. package/node_modules/@elench/next-analysis/dist/project.js.map +1 -0
  65. package/node_modules/@elench/next-analysis/dist/route-tree.d.ts +7 -0
  66. package/node_modules/@elench/next-analysis/dist/route-tree.d.ts.map +1 -0
  67. package/node_modules/@elench/next-analysis/dist/route-tree.js +575 -0
  68. package/node_modules/@elench/next-analysis/dist/route-tree.js.map +1 -0
  69. package/node_modules/@elench/next-analysis/dist/routes.d.ts +6 -0
  70. package/node_modules/@elench/next-analysis/dist/routes.d.ts.map +1 -0
  71. package/node_modules/@elench/next-analysis/dist/routes.js +41 -0
  72. package/node_modules/@elench/next-analysis/dist/routes.js.map +1 -0
  73. package/node_modules/@elench/next-analysis/dist/server-actions.d.ts +7 -0
  74. package/node_modules/@elench/next-analysis/dist/server-actions.d.ts.map +1 -0
  75. package/node_modules/@elench/next-analysis/dist/server-actions.js +37 -0
  76. package/node_modules/@elench/next-analysis/dist/server-actions.js.map +1 -0
  77. package/node_modules/@elench/next-analysis/dist/shared.d.ts +57 -0
  78. package/node_modules/@elench/next-analysis/dist/shared.d.ts.map +1 -0
  79. package/node_modules/@elench/next-analysis/dist/shared.js +229 -0
  80. package/node_modules/@elench/next-analysis/dist/shared.js.map +1 -0
  81. package/node_modules/@elench/next-analysis/dist/swc.d.ts +53 -0
  82. package/node_modules/@elench/next-analysis/dist/swc.d.ts.map +1 -0
  83. package/node_modules/@elench/next-analysis/dist/swc.js +387 -0
  84. package/node_modules/@elench/next-analysis/dist/swc.js.map +1 -0
  85. package/node_modules/@elench/next-analysis/dist/types.d.ts +125 -0
  86. package/node_modules/@elench/next-analysis/dist/types.d.ts.map +1 -0
  87. package/node_modules/@elench/next-analysis/dist/types.js +2 -0
  88. package/node_modules/@elench/next-analysis/dist/types.js.map +1 -0
  89. package/node_modules/@elench/next-analysis/package.json +27 -0
  90. package/node_modules/@elench/testkit-bridge/dist/index.d.ts +36 -0
  91. package/node_modules/@elench/testkit-bridge/dist/index.d.ts.map +1 -0
  92. package/node_modules/@elench/testkit-bridge/dist/index.js +538 -0
  93. package/node_modules/@elench/testkit-bridge/dist/index.js.map +1 -0
  94. package/node_modules/@elench/testkit-bridge/package.json +16 -5
  95. package/node_modules/@elench/testkit-protocol/dist/index.d.ts +190 -0
  96. package/node_modules/@elench/testkit-protocol/dist/index.d.ts.map +1 -0
  97. package/node_modules/@elench/testkit-protocol/dist/index.js +296 -0
  98. package/node_modules/@elench/testkit-protocol/dist/index.js.map +1 -0
  99. package/node_modules/@elench/testkit-protocol/package.json +14 -7
  100. package/node_modules/@elench/ts-analysis/dist/callables.d.ts +8 -0
  101. package/node_modules/@elench/ts-analysis/dist/callables.d.ts.map +1 -0
  102. package/node_modules/@elench/ts-analysis/dist/callables.js +126 -0
  103. package/node_modules/@elench/ts-analysis/dist/callables.js.map +1 -0
  104. package/node_modules/@elench/ts-analysis/dist/exports.d.ts +6 -0
  105. package/node_modules/@elench/ts-analysis/dist/exports.d.ts.map +1 -0
  106. package/node_modules/@elench/ts-analysis/dist/exports.js +70 -0
  107. package/node_modules/@elench/ts-analysis/dist/exports.js.map +1 -0
  108. package/node_modules/@elench/ts-analysis/dist/index.d.ts +10 -0
  109. package/node_modules/@elench/ts-analysis/dist/index.d.ts.map +1 -0
  110. package/node_modules/@elench/ts-analysis/{src/index.mjs → dist/index.js} +9 -14
  111. package/node_modules/@elench/ts-analysis/dist/index.js.map +1 -0
  112. package/node_modules/@elench/ts-analysis/dist/jsx.d.ts +9 -0
  113. package/node_modules/@elench/ts-analysis/dist/jsx.d.ts.map +1 -0
  114. package/node_modules/@elench/ts-analysis/dist/jsx.js +68 -0
  115. package/node_modules/@elench/ts-analysis/dist/jsx.js.map +1 -0
  116. package/node_modules/@elench/ts-analysis/dist/project.d.ts +5 -0
  117. package/node_modules/@elench/ts-analysis/dist/project.d.ts.map +1 -0
  118. package/node_modules/@elench/ts-analysis/dist/project.js +90 -0
  119. package/node_modules/@elench/ts-analysis/dist/project.js.map +1 -0
  120. package/node_modules/@elench/ts-analysis/dist/requests.d.ts +6 -0
  121. package/node_modules/@elench/ts-analysis/dist/requests.d.ts.map +1 -0
  122. package/node_modules/@elench/ts-analysis/dist/requests.js +140 -0
  123. package/node_modules/@elench/ts-analysis/dist/requests.js.map +1 -0
  124. package/node_modules/@elench/ts-analysis/dist/resolution.d.ts +4 -0
  125. package/node_modules/@elench/ts-analysis/dist/resolution.d.ts.map +1 -0
  126. package/node_modules/@elench/ts-analysis/dist/resolution.js +53 -0
  127. package/node_modules/@elench/ts-analysis/dist/resolution.js.map +1 -0
  128. package/node_modules/@elench/ts-analysis/dist/shared.d.ts +6 -0
  129. package/node_modules/@elench/ts-analysis/dist/shared.d.ts.map +1 -0
  130. package/node_modules/@elench/ts-analysis/dist/shared.js +31 -0
  131. package/node_modules/@elench/ts-analysis/dist/shared.js.map +1 -0
  132. package/node_modules/@elench/ts-analysis/dist/syntax.d.ts +7 -0
  133. package/node_modules/@elench/ts-analysis/dist/syntax.d.ts.map +1 -0
  134. package/node_modules/@elench/ts-analysis/dist/syntax.js +27 -0
  135. package/node_modules/@elench/ts-analysis/dist/syntax.js.map +1 -0
  136. package/node_modules/@elench/ts-analysis/dist/types.d.ts +58 -0
  137. package/node_modules/@elench/ts-analysis/dist/types.d.ts.map +1 -0
  138. package/node_modules/@elench/ts-analysis/dist/types.js +2 -0
  139. package/node_modules/@elench/ts-analysis/dist/types.js.map +1 -0
  140. package/node_modules/@elench/ts-analysis/package.json +18 -2
  141. package/node_modules/@next/routing/README.md +91 -0
  142. package/node_modules/@next/routing/dist/__tests__/captures.test.d.ts +1 -0
  143. package/node_modules/@next/routing/dist/__tests__/conditions.test.d.ts +1 -0
  144. package/node_modules/@next/routing/dist/__tests__/dynamic-after-rewrites.test.d.ts +1 -0
  145. package/node_modules/@next/routing/dist/__tests__/i18n-resolve-routes.test.d.ts +1 -0
  146. package/node_modules/@next/routing/dist/__tests__/i18n.test.d.ts +1 -0
  147. package/node_modules/@next/routing/dist/__tests__/middleware.test.d.ts +1 -0
  148. package/node_modules/@next/routing/dist/__tests__/normalize-next-data.test.d.ts +1 -0
  149. package/node_modules/@next/routing/dist/__tests__/redirects.test.d.ts +1 -0
  150. package/node_modules/@next/routing/dist/__tests__/resolve-routes.test.d.ts +1 -0
  151. package/node_modules/@next/routing/dist/__tests__/rewrites.test.d.ts +1 -0
  152. package/node_modules/@next/routing/dist/destination.d.ts +22 -0
  153. package/node_modules/@next/routing/dist/i18n.d.ts +48 -0
  154. package/node_modules/@next/routing/dist/index.d.ts +5 -0
  155. package/node_modules/@next/routing/dist/index.js +1 -0
  156. package/node_modules/@next/routing/dist/matchers.d.ts +12 -0
  157. package/node_modules/@next/routing/dist/middleware.d.ts +12 -0
  158. package/node_modules/@next/routing/dist/next-data.d.ts +10 -0
  159. package/node_modules/@next/routing/dist/resolve-routes.d.ts +2 -0
  160. package/node_modules/@next/routing/dist/types.d.ts +97 -0
  161. package/node_modules/@next/routing/package.json +39 -0
  162. package/node_modules/@swc/core/README.md +100 -0
  163. package/node_modules/@swc/core/Visitor.d.ts +218 -0
  164. package/node_modules/@swc/core/Visitor.js +1399 -0
  165. package/node_modules/@swc/core/binding.d.ts +59 -0
  166. package/node_modules/@swc/core/binding.js +368 -0
  167. package/node_modules/@swc/core/index.d.ts +120 -0
  168. package/node_modules/@swc/core/index.js +443 -0
  169. package/node_modules/@swc/core/package.json +120 -0
  170. package/node_modules/@swc/core/postinstall.js +148 -0
  171. package/node_modules/@swc/core/spack.d.ts +51 -0
  172. package/node_modules/@swc/core/spack.js +87 -0
  173. package/node_modules/@swc/core/util.d.ts +1 -0
  174. package/node_modules/@swc/core/util.js +104 -0
  175. package/node_modules/@swc/core-linux-x64-gnu/README.md +3 -0
  176. package/node_modules/@swc/core-linux-x64-gnu/package.json +46 -0
  177. package/node_modules/@swc/core-linux-x64-gnu/swc.linux-x64-gnu.node +0 -0
  178. package/node_modules/@swc/counter/CHANGELOG.md +7 -0
  179. package/node_modules/@swc/counter/README.md +7 -0
  180. package/node_modules/@swc/counter/index.js +1 -0
  181. package/node_modules/@swc/counter/package.json +27 -0
  182. package/node_modules/@swc/types/LICENSE +201 -0
  183. package/node_modules/@swc/types/README.md +4 -0
  184. package/node_modules/@swc/types/assumptions.d.ts +92 -0
  185. package/node_modules/@swc/types/assumptions.js +2 -0
  186. package/node_modules/@swc/types/index.d.ts +2049 -0
  187. package/node_modules/@swc/types/index.js +2 -0
  188. package/node_modules/@swc/types/package.json +40 -0
  189. package/node_modules/typescript/LICENSE.txt +55 -0
  190. package/node_modules/typescript/README.md +50 -0
  191. package/node_modules/typescript/SECURITY.md +41 -0
  192. package/node_modules/typescript/ThirdPartyNoticeText.txt +193 -0
  193. package/node_modules/typescript/bin/tsc +2 -0
  194. package/node_modules/typescript/bin/tsserver +2 -0
  195. package/node_modules/typescript/lib/_tsc.js +133818 -0
  196. package/node_modules/typescript/lib/_tsserver.js +659 -0
  197. package/node_modules/typescript/lib/_typingsInstaller.js +222 -0
  198. package/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +2122 -0
  199. package/node_modules/typescript/lib/de/diagnosticMessages.generated.json +2122 -0
  200. package/node_modules/typescript/lib/es/diagnosticMessages.generated.json +2122 -0
  201. package/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +2122 -0
  202. package/node_modules/typescript/lib/it/diagnosticMessages.generated.json +2122 -0
  203. package/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +2122 -0
  204. package/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +2122 -0
  205. package/node_modules/typescript/lib/lib.d.ts +22 -0
  206. package/node_modules/typescript/lib/lib.decorators.d.ts +384 -0
  207. package/node_modules/typescript/lib/lib.decorators.legacy.d.ts +22 -0
  208. package/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +41 -0
  209. package/node_modules/typescript/lib/lib.dom.d.ts +39429 -0
  210. package/node_modules/typescript/lib/lib.dom.iterable.d.ts +571 -0
  211. package/node_modules/typescript/lib/lib.es2015.collection.d.ts +147 -0
  212. package/node_modules/typescript/lib/lib.es2015.core.d.ts +597 -0
  213. package/node_modules/typescript/lib/lib.es2015.d.ts +28 -0
  214. package/node_modules/typescript/lib/lib.es2015.generator.d.ts +77 -0
  215. package/node_modules/typescript/lib/lib.es2015.iterable.d.ts +605 -0
  216. package/node_modules/typescript/lib/lib.es2015.promise.d.ts +81 -0
  217. package/node_modules/typescript/lib/lib.es2015.proxy.d.ts +128 -0
  218. package/node_modules/typescript/lib/lib.es2015.reflect.d.ts +144 -0
  219. package/node_modules/typescript/lib/lib.es2015.symbol.d.ts +46 -0
  220. package/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +326 -0
  221. package/node_modules/typescript/lib/lib.es2016.array.include.d.ts +116 -0
  222. package/node_modules/typescript/lib/lib.es2016.d.ts +21 -0
  223. package/node_modules/typescript/lib/lib.es2016.full.d.ts +23 -0
  224. package/node_modules/typescript/lib/lib.es2016.intl.d.ts +31 -0
  225. package/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +21 -0
  226. package/node_modules/typescript/lib/lib.es2017.d.ts +26 -0
  227. package/node_modules/typescript/lib/lib.es2017.date.d.ts +31 -0
  228. package/node_modules/typescript/lib/lib.es2017.full.d.ts +23 -0
  229. package/node_modules/typescript/lib/lib.es2017.intl.d.ts +44 -0
  230. package/node_modules/typescript/lib/lib.es2017.object.d.ts +49 -0
  231. package/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +135 -0
  232. package/node_modules/typescript/lib/lib.es2017.string.d.ts +45 -0
  233. package/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +53 -0
  234. package/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +77 -0
  235. package/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +53 -0
  236. package/node_modules/typescript/lib/lib.es2018.d.ts +24 -0
  237. package/node_modules/typescript/lib/lib.es2018.full.d.ts +24 -0
  238. package/node_modules/typescript/lib/lib.es2018.intl.d.ts +83 -0
  239. package/node_modules/typescript/lib/lib.es2018.promise.d.ts +30 -0
  240. package/node_modules/typescript/lib/lib.es2018.regexp.d.ts +37 -0
  241. package/node_modules/typescript/lib/lib.es2019.array.d.ts +79 -0
  242. package/node_modules/typescript/lib/lib.es2019.d.ts +24 -0
  243. package/node_modules/typescript/lib/lib.es2019.full.d.ts +24 -0
  244. package/node_modules/typescript/lib/lib.es2019.intl.d.ts +23 -0
  245. package/node_modules/typescript/lib/lib.es2019.object.d.ts +33 -0
  246. package/node_modules/typescript/lib/lib.es2019.string.d.ts +37 -0
  247. package/node_modules/typescript/lib/lib.es2019.symbol.d.ts +24 -0
  248. package/node_modules/typescript/lib/lib.es2020.bigint.d.ts +765 -0
  249. package/node_modules/typescript/lib/lib.es2020.d.ts +27 -0
  250. package/node_modules/typescript/lib/lib.es2020.date.d.ts +42 -0
  251. package/node_modules/typescript/lib/lib.es2020.full.d.ts +24 -0
  252. package/node_modules/typescript/lib/lib.es2020.intl.d.ts +474 -0
  253. package/node_modules/typescript/lib/lib.es2020.number.d.ts +28 -0
  254. package/node_modules/typescript/lib/lib.es2020.promise.d.ts +47 -0
  255. package/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +99 -0
  256. package/node_modules/typescript/lib/lib.es2020.string.d.ts +44 -0
  257. package/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +41 -0
  258. package/node_modules/typescript/lib/lib.es2021.d.ts +23 -0
  259. package/node_modules/typescript/lib/lib.es2021.full.d.ts +24 -0
  260. package/node_modules/typescript/lib/lib.es2021.intl.d.ts +166 -0
  261. package/node_modules/typescript/lib/lib.es2021.promise.d.ts +48 -0
  262. package/node_modules/typescript/lib/lib.es2021.string.d.ts +33 -0
  263. package/node_modules/typescript/lib/lib.es2021.weakref.d.ts +78 -0
  264. package/node_modules/typescript/lib/lib.es2022.array.d.ts +121 -0
  265. package/node_modules/typescript/lib/lib.es2022.d.ts +25 -0
  266. package/node_modules/typescript/lib/lib.es2022.error.d.ts +75 -0
  267. package/node_modules/typescript/lib/lib.es2022.full.d.ts +24 -0
  268. package/node_modules/typescript/lib/lib.es2022.intl.d.ts +145 -0
  269. package/node_modules/typescript/lib/lib.es2022.object.d.ts +26 -0
  270. package/node_modules/typescript/lib/lib.es2022.regexp.d.ts +39 -0
  271. package/node_modules/typescript/lib/lib.es2022.string.d.ts +25 -0
  272. package/node_modules/typescript/lib/lib.es2023.array.d.ts +924 -0
  273. package/node_modules/typescript/lib/lib.es2023.collection.d.ts +21 -0
  274. package/node_modules/typescript/lib/lib.es2023.d.ts +22 -0
  275. package/node_modules/typescript/lib/lib.es2023.full.d.ts +24 -0
  276. package/node_modules/typescript/lib/lib.es2023.intl.d.ts +56 -0
  277. package/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +65 -0
  278. package/node_modules/typescript/lib/lib.es2024.collection.d.ts +29 -0
  279. package/node_modules/typescript/lib/lib.es2024.d.ts +26 -0
  280. package/node_modules/typescript/lib/lib.es2024.full.d.ts +24 -0
  281. package/node_modules/typescript/lib/lib.es2024.object.d.ts +29 -0
  282. package/node_modules/typescript/lib/lib.es2024.promise.d.ts +35 -0
  283. package/node_modules/typescript/lib/lib.es2024.regexp.d.ts +25 -0
  284. package/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +68 -0
  285. package/node_modules/typescript/lib/lib.es2024.string.d.ts +29 -0
  286. package/node_modules/typescript/lib/lib.es5.d.ts +4601 -0
  287. package/node_modules/typescript/lib/lib.es6.d.ts +23 -0
  288. package/node_modules/typescript/lib/lib.esnext.array.d.ts +35 -0
  289. package/node_modules/typescript/lib/lib.esnext.collection.d.ts +96 -0
  290. package/node_modules/typescript/lib/lib.esnext.d.ts +29 -0
  291. package/node_modules/typescript/lib/lib.esnext.decorators.d.ts +28 -0
  292. package/node_modules/typescript/lib/lib.esnext.disposable.d.ts +193 -0
  293. package/node_modules/typescript/lib/lib.esnext.error.d.ts +24 -0
  294. package/node_modules/typescript/lib/lib.esnext.float16.d.ts +445 -0
  295. package/node_modules/typescript/lib/lib.esnext.full.d.ts +24 -0
  296. package/node_modules/typescript/lib/lib.esnext.intl.d.ts +21 -0
  297. package/node_modules/typescript/lib/lib.esnext.iterator.d.ts +148 -0
  298. package/node_modules/typescript/lib/lib.esnext.promise.d.ts +34 -0
  299. package/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +25 -0
  300. package/node_modules/typescript/lib/lib.scripthost.d.ts +322 -0
  301. package/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +41 -0
  302. package/node_modules/typescript/lib/lib.webworker.d.ts +13150 -0
  303. package/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +23 -0
  304. package/node_modules/typescript/lib/lib.webworker.iterable.d.ts +340 -0
  305. package/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +2122 -0
  306. package/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +2122 -0
  307. package/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +2122 -0
  308. package/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +2122 -0
  309. package/node_modules/typescript/lib/tsc.js +8 -0
  310. package/node_modules/typescript/lib/tsserver.js +8 -0
  311. package/node_modules/typescript/lib/tsserverlibrary.d.ts +17 -0
  312. package/node_modules/typescript/lib/tsserverlibrary.js +21 -0
  313. package/node_modules/typescript/lib/typesMap.json +497 -0
  314. package/node_modules/typescript/lib/typescript.d.ts +11437 -0
  315. package/node_modules/typescript/lib/typescript.js +200276 -0
  316. package/node_modules/typescript/lib/typingsInstaller.js +8 -0
  317. package/node_modules/typescript/lib/watchGuard.js +53 -0
  318. package/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +2122 -0
  319. package/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +2122 -0
  320. package/node_modules/typescript/package.json +120 -0
  321. package/package.json +13 -8
  322. package/lib/coverage/fs-walk.mjs +0 -64
  323. package/lib/coverage/next-discovery.mjs +0 -205
  324. package/lib/coverage/next-static-analysis.mjs +0 -1045
  325. package/node_modules/@elench/testkit-bridge/src/index.mjs +0 -583
  326. package/node_modules/@elench/testkit-bridge/src/index.test.mjs +0 -409
  327. package/node_modules/@elench/testkit-protocol/src/index.d.ts +0 -231
  328. package/node_modules/@elench/testkit-protocol/src/index.mjs +0 -265
  329. package/node_modules/@elench/testkit-protocol/src/index.test.mjs +0 -242
  330. package/node_modules/@elench/ts-analysis/src/callables.mjs +0 -135
  331. package/node_modules/@elench/ts-analysis/src/callables.test.mjs +0 -55
  332. package/node_modules/@elench/ts-analysis/src/exports.mjs +0 -69
  333. package/node_modules/@elench/ts-analysis/src/exports.test.mjs +0 -50
  334. package/node_modules/@elench/ts-analysis/src/jsx.mjs +0 -69
  335. package/node_modules/@elench/ts-analysis/src/jsx.test.mjs +0 -43
  336. package/node_modules/@elench/ts-analysis/src/project.mjs +0 -100
  337. package/node_modules/@elench/ts-analysis/src/project.test.mjs +0 -54
  338. package/node_modules/@elench/ts-analysis/src/requests.mjs +0 -141
  339. package/node_modules/@elench/ts-analysis/src/requests.test.mjs +0 -35
  340. package/node_modules/@elench/ts-analysis/src/resolution.mjs +0 -53
  341. package/node_modules/@elench/ts-analysis/src/shared.mjs +0 -32
  342. package/node_modules/@elench/ts-analysis/src/syntax.mjs +0 -27
@@ -0,0 +1,1399 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Visitor = void 0;
4
+ /**
5
+ * @deprecated JavaScript API is deprecated. Please use Wasm plugin instead.
6
+ */
7
+ class Visitor {
8
+ visitProgram(n) {
9
+ switch (n.type) {
10
+ case "Module":
11
+ return this.visitModule(n);
12
+ case "Script":
13
+ return this.visitScript(n);
14
+ }
15
+ }
16
+ visitModule(m) {
17
+ m.body = this.visitModuleItems(m.body);
18
+ return m;
19
+ }
20
+ visitScript(m) {
21
+ m.body = this.visitStatements(m.body);
22
+ return m;
23
+ }
24
+ visitModuleItems(items) {
25
+ return items.map(this.visitModuleItem.bind(this));
26
+ }
27
+ visitModuleItem(n) {
28
+ switch (n.type) {
29
+ case "ExportDeclaration":
30
+ case "ExportDefaultDeclaration":
31
+ case "ExportNamedDeclaration":
32
+ case "ExportDefaultExpression":
33
+ case "ImportDeclaration":
34
+ case "ExportAllDeclaration":
35
+ case "TsImportEqualsDeclaration":
36
+ case "TsExportAssignment":
37
+ case "TsNamespaceExportDeclaration":
38
+ return this.visitModuleDeclaration(n);
39
+ default:
40
+ return this.visitStatement(n);
41
+ }
42
+ }
43
+ visitModuleDeclaration(n) {
44
+ switch (n.type) {
45
+ case "ExportDeclaration":
46
+ return this.visitExportDeclaration(n);
47
+ case "ExportDefaultDeclaration":
48
+ return this.visitExportDefaultDeclaration(n);
49
+ case "ExportNamedDeclaration":
50
+ return this.visitExportNamedDeclaration(n);
51
+ case "ExportDefaultExpression":
52
+ return this.visitExportDefaultExpression(n);
53
+ case "ImportDeclaration":
54
+ return this.visitImportDeclaration(n);
55
+ case "ExportAllDeclaration":
56
+ return this.visitExportAllDeclaration(n);
57
+ case "TsImportEqualsDeclaration":
58
+ return this.visitTsImportEqualsDeclaration(n);
59
+ case "TsExportAssignment":
60
+ return this.visitTsExportAssignment(n);
61
+ case "TsNamespaceExportDeclaration":
62
+ return this.visitTsNamespaceExportDeclaration(n);
63
+ }
64
+ }
65
+ visitTsNamespaceExportDeclaration(n) {
66
+ n.id = this.visitBindingIdentifier(n.id);
67
+ return n;
68
+ }
69
+ visitTsExportAssignment(n) {
70
+ n.expression = this.visitExpression(n.expression);
71
+ return n;
72
+ }
73
+ visitTsImportEqualsDeclaration(n) {
74
+ n.id = this.visitBindingIdentifier(n.id);
75
+ n.moduleRef = this.visitTsModuleReference(n.moduleRef);
76
+ return n;
77
+ }
78
+ visitTsModuleReference(n) {
79
+ switch (n.type) {
80
+ case "Identifier":
81
+ return this.visitIdentifierReference(n);
82
+ case "TsExternalModuleReference":
83
+ return this.visitTsExternalModuleReference(n);
84
+ case "TsQualifiedName":
85
+ return this.visitTsQualifiedName(n);
86
+ }
87
+ }
88
+ visitTsExternalModuleReference(n) {
89
+ n.expression = this.visitStringLiteral(n.expression);
90
+ return n;
91
+ }
92
+ visitExportAllDeclaration(n) {
93
+ n.source = this.visitStringLiteral(n.source);
94
+ return n;
95
+ }
96
+ visitExportDefaultExpression(n) {
97
+ n.expression = this.visitExpression(n.expression);
98
+ return n;
99
+ }
100
+ visitExportNamedDeclaration(n) {
101
+ n.specifiers = this.visitExportSpecifiers(n.specifiers);
102
+ n.source = this.visitOptionalStringLiteral(n.source);
103
+ return n;
104
+ }
105
+ visitExportSpecifiers(nodes) {
106
+ return nodes.map(this.visitExportSpecifier.bind(this));
107
+ }
108
+ visitExportSpecifier(n) {
109
+ switch (n.type) {
110
+ case "ExportDefaultSpecifier":
111
+ return this.visitExportDefaultSpecifier(n);
112
+ case "ExportNamespaceSpecifier":
113
+ return this.visitExportNamespaceSpecifier(n);
114
+ case "ExportSpecifier":
115
+ return this.visitNamedExportSpecifier(n);
116
+ }
117
+ }
118
+ visitNamedExportSpecifier(n) {
119
+ if (n.exported) {
120
+ n.exported = this.visitModuleExportName(n.exported);
121
+ }
122
+ n.orig = this.visitModuleExportName(n.orig);
123
+ return n;
124
+ }
125
+ visitModuleExportName(n) {
126
+ switch (n.type) {
127
+ case "Identifier":
128
+ return this.visitIdentifier(n);
129
+ case "StringLiteral":
130
+ return this.visitStringLiteral(n);
131
+ }
132
+ }
133
+ visitExportNamespaceSpecifier(n) {
134
+ n.name = this.visitModuleExportName(n.name);
135
+ return n;
136
+ }
137
+ visitExportDefaultSpecifier(n) {
138
+ n.exported = this.visitBindingIdentifier(n.exported);
139
+ return n;
140
+ }
141
+ visitOptionalStringLiteral(n) {
142
+ if (n) {
143
+ return this.visitStringLiteral(n);
144
+ }
145
+ }
146
+ visitExportDefaultDeclaration(n) {
147
+ n.decl = this.visitDefaultDeclaration(n.decl);
148
+ return n;
149
+ }
150
+ visitDefaultDeclaration(n) {
151
+ switch (n.type) {
152
+ case "ClassExpression":
153
+ return this.visitClassExpression(n);
154
+ case "FunctionExpression":
155
+ return this.visitFunctionExpression(n);
156
+ case "TsInterfaceDeclaration":
157
+ return this.visitTsInterfaceDeclaration(n);
158
+ }
159
+ }
160
+ visitFunctionExpression(n) {
161
+ n = this.visitFunction(n);
162
+ if (n.identifier) {
163
+ n.identifier = this.visitBindingIdentifier(n.identifier);
164
+ }
165
+ return n;
166
+ }
167
+ visitClassExpression(n) {
168
+ n = this.visitClass(n);
169
+ if (n.identifier) {
170
+ n.identifier = this.visitBindingIdentifier(n.identifier);
171
+ }
172
+ return n;
173
+ }
174
+ visitExportDeclaration(n) {
175
+ n.declaration = this.visitDeclaration(n.declaration);
176
+ return n;
177
+ }
178
+ visitArrayExpression(e) {
179
+ if (e.elements) {
180
+ e.elements = e.elements.map(this.visitArrayElement.bind(this));
181
+ }
182
+ return e;
183
+ }
184
+ visitArrayElement(e) {
185
+ if (e) {
186
+ return this.visitExprOrSpread(e);
187
+ }
188
+ }
189
+ visitExprOrSpread(e) {
190
+ return Object.assign(Object.assign({}, e), { expression: this.visitExpression(e.expression) });
191
+ }
192
+ visitExprOrSpreads(nodes) {
193
+ return nodes.map(this.visitExprOrSpread.bind(this));
194
+ }
195
+ visitSpreadElement(e) {
196
+ e.arguments = this.visitExpression(e.arguments);
197
+ return e;
198
+ }
199
+ visitOptionalExpression(e) {
200
+ if (e) {
201
+ return this.visitExpression(e);
202
+ }
203
+ }
204
+ visitArrowFunctionExpression(e) {
205
+ e.body = this.visitArrowBody(e.body);
206
+ e.params = this.visitPatterns(e.params);
207
+ e.returnType = this.visitTsTypeAnnotation(e.returnType);
208
+ e.typeParameters = this.visitTsTypeParameterDeclaration(e.typeParameters);
209
+ return e;
210
+ }
211
+ visitArrowBody(body) {
212
+ switch (body.type) {
213
+ case "BlockStatement":
214
+ return this.visitBlockStatement(body);
215
+ default:
216
+ return this.visitExpression(body);
217
+ }
218
+ }
219
+ visitBlockStatement(block) {
220
+ block.stmts = this.visitStatements(block.stmts);
221
+ return block;
222
+ }
223
+ visitStatements(stmts) {
224
+ return stmts.map(this.visitStatement.bind(this));
225
+ }
226
+ visitStatement(stmt) {
227
+ switch (stmt.type) {
228
+ case "ClassDeclaration":
229
+ case "FunctionDeclaration":
230
+ case "TsEnumDeclaration":
231
+ case "TsInterfaceDeclaration":
232
+ case "TsModuleDeclaration":
233
+ case "TsTypeAliasDeclaration":
234
+ case "VariableDeclaration":
235
+ return this.visitDeclaration(stmt);
236
+ case "BreakStatement":
237
+ return this.visitBreakStatement(stmt);
238
+ case "BlockStatement":
239
+ return this.visitBlockStatement(stmt);
240
+ case "ContinueStatement":
241
+ return this.visitContinueStatement(stmt);
242
+ case "DebuggerStatement":
243
+ return this.visitDebuggerStatement(stmt);
244
+ case "DoWhileStatement":
245
+ return this.visitDoWhileStatement(stmt);
246
+ case "EmptyStatement":
247
+ return this.visitEmptyStatement(stmt);
248
+ case "ForInStatement":
249
+ return this.visitForInStatement(stmt);
250
+ case "ForOfStatement":
251
+ return this.visitForOfStatement(stmt);
252
+ case "ForStatement":
253
+ return this.visitForStatement(stmt);
254
+ case "IfStatement":
255
+ return this.visitIfStatement(stmt);
256
+ case "LabeledStatement":
257
+ return this.visitLabeledStatement(stmt);
258
+ case "ReturnStatement":
259
+ return this.visitReturnStatement(stmt);
260
+ case "SwitchStatement":
261
+ return this.visitSwitchStatement(stmt);
262
+ case "ThrowStatement":
263
+ return this.visitThrowStatement(stmt);
264
+ case "TryStatement":
265
+ return this.visitTryStatement(stmt);
266
+ case "WhileStatement":
267
+ return this.visitWhileStatement(stmt);
268
+ case "WithStatement":
269
+ return this.visitWithStatement(stmt);
270
+ case "ExpressionStatement":
271
+ return this.visitExpressionStatement(stmt);
272
+ default:
273
+ throw new Error(`Unknown statement type: ` + stmt.type);
274
+ }
275
+ }
276
+ visitSwitchStatement(stmt) {
277
+ stmt.discriminant = this.visitExpression(stmt.discriminant);
278
+ stmt.cases = this.visitSwitchCases(stmt.cases);
279
+ return stmt;
280
+ }
281
+ visitSwitchCases(cases) {
282
+ return cases.map(this.visitSwitchCase.bind(this));
283
+ }
284
+ visitSwitchCase(c) {
285
+ c.test = this.visitOptionalExpression(c.test);
286
+ c.consequent = this.visitStatements(c.consequent);
287
+ return c;
288
+ }
289
+ visitIfStatement(stmt) {
290
+ stmt.test = this.visitExpression(stmt.test);
291
+ stmt.consequent = this.visitStatement(stmt.consequent);
292
+ stmt.alternate = this.visitOptionalStatement(stmt.alternate);
293
+ return stmt;
294
+ }
295
+ visitOptionalStatement(stmt) {
296
+ if (stmt) {
297
+ return this.visitStatement(stmt);
298
+ }
299
+ }
300
+ visitBreakStatement(stmt) {
301
+ if (stmt.label) {
302
+ stmt.label = this.visitLabelIdentifier(stmt.label);
303
+ }
304
+ return stmt;
305
+ }
306
+ visitWhileStatement(stmt) {
307
+ stmt.test = this.visitExpression(stmt.test);
308
+ stmt.body = this.visitStatement(stmt.body);
309
+ return stmt;
310
+ }
311
+ visitTryStatement(stmt) {
312
+ stmt.block = this.visitBlockStatement(stmt.block);
313
+ stmt.handler = this.visitCatchClause(stmt.handler);
314
+ if (stmt.finalizer) {
315
+ stmt.finalizer = this.visitBlockStatement(stmt.finalizer);
316
+ }
317
+ return stmt;
318
+ }
319
+ visitCatchClause(handler) {
320
+ if (handler) {
321
+ if (handler.param) {
322
+ handler.param = this.visitPattern(handler.param);
323
+ }
324
+ handler.body = this.visitBlockStatement(handler.body);
325
+ }
326
+ return handler;
327
+ }
328
+ visitThrowStatement(stmt) {
329
+ stmt.argument = this.visitExpression(stmt.argument);
330
+ return stmt;
331
+ }
332
+ visitReturnStatement(stmt) {
333
+ if (stmt.argument) {
334
+ stmt.argument = this.visitExpression(stmt.argument);
335
+ }
336
+ return stmt;
337
+ }
338
+ visitLabeledStatement(stmt) {
339
+ stmt.label = this.visitLabelIdentifier(stmt.label);
340
+ stmt.body = this.visitStatement(stmt.body);
341
+ return stmt;
342
+ }
343
+ visitForStatement(stmt) {
344
+ if (stmt.init) {
345
+ if (stmt.init.type === "VariableDeclaration") {
346
+ stmt.init = this.visitVariableDeclaration(stmt.init);
347
+ }
348
+ else {
349
+ stmt.init = this.visitOptionalExpression(stmt.init);
350
+ }
351
+ }
352
+ stmt.test = this.visitOptionalExpression(stmt.test);
353
+ stmt.update = this.visitOptionalExpression(stmt.update);
354
+ stmt.body = this.visitStatement(stmt.body);
355
+ return stmt;
356
+ }
357
+ visitForOfStatement(stmt) {
358
+ if (stmt.left.type === "VariableDeclaration") {
359
+ stmt.left = this.visitVariableDeclaration(stmt.left);
360
+ }
361
+ else {
362
+ stmt.left = this.visitPattern(stmt.left);
363
+ }
364
+ stmt.right = this.visitExpression(stmt.right);
365
+ stmt.body = this.visitStatement(stmt.body);
366
+ return stmt;
367
+ }
368
+ visitForInStatement(stmt) {
369
+ if (stmt.left.type === "VariableDeclaration") {
370
+ stmt.left = this.visitVariableDeclaration(stmt.left);
371
+ }
372
+ else {
373
+ stmt.left = this.visitPattern(stmt.left);
374
+ }
375
+ stmt.right = this.visitExpression(stmt.right);
376
+ stmt.body = this.visitStatement(stmt.body);
377
+ return stmt;
378
+ }
379
+ visitEmptyStatement(stmt) {
380
+ return stmt;
381
+ }
382
+ visitDoWhileStatement(stmt) {
383
+ stmt.body = this.visitStatement(stmt.body);
384
+ stmt.test = this.visitExpression(stmt.test);
385
+ return stmt;
386
+ }
387
+ visitDebuggerStatement(stmt) {
388
+ return stmt;
389
+ }
390
+ visitWithStatement(stmt) {
391
+ stmt.object = this.visitExpression(stmt.object);
392
+ stmt.body = this.visitStatement(stmt.body);
393
+ return stmt;
394
+ }
395
+ visitDeclaration(decl) {
396
+ switch (decl.type) {
397
+ case "ClassDeclaration":
398
+ return this.visitClassDeclaration(decl);
399
+ case "FunctionDeclaration":
400
+ return this.visitFunctionDeclaration(decl);
401
+ case "TsEnumDeclaration":
402
+ return this.visitTsEnumDeclaration(decl);
403
+ case "TsInterfaceDeclaration":
404
+ return this.visitTsInterfaceDeclaration(decl);
405
+ case "TsModuleDeclaration":
406
+ return this.visitTsModuleDeclaration(decl);
407
+ case "TsTypeAliasDeclaration":
408
+ return this.visitTsTypeAliasDeclaration(decl);
409
+ case "VariableDeclaration":
410
+ return this.visitVariableDeclaration(decl);
411
+ }
412
+ }
413
+ visitVariableDeclaration(n) {
414
+ n.declarations = this.visitVariableDeclarators(n.declarations);
415
+ return n;
416
+ }
417
+ visitVariableDeclarators(nodes) {
418
+ return nodes.map(this.visitVariableDeclarator.bind(this));
419
+ }
420
+ visitVariableDeclarator(n) {
421
+ n.id = this.visitPattern(n.id);
422
+ n.init = this.visitOptionalExpression(n.init);
423
+ return n;
424
+ }
425
+ visitTsTypeAliasDeclaration(n) {
426
+ n.id = this.visitBindingIdentifier(n.id);
427
+ n.typeAnnotation = this.visitTsType(n.typeAnnotation);
428
+ n.typeParams = this.visitTsTypeParameterDeclaration(n.typeParams);
429
+ return n;
430
+ }
431
+ visitTsModuleDeclaration(n) {
432
+ n.id = this.visitTsModuleName(n.id);
433
+ if (n.body) {
434
+ n.body = this.visitTsNamespaceBody(n.body);
435
+ }
436
+ return n;
437
+ }
438
+ visitTsModuleName(n) {
439
+ switch (n.type) {
440
+ case "Identifier":
441
+ return this.visitBindingIdentifier(n);
442
+ case "StringLiteral":
443
+ return this.visitStringLiteral(n);
444
+ }
445
+ }
446
+ visitTsNamespaceBody(n) {
447
+ if (n) {
448
+ switch (n.type) {
449
+ case "TsModuleBlock":
450
+ return this.visitTsModuleBlock(n);
451
+ case "TsNamespaceDeclaration":
452
+ return this.visitTsNamespaceDeclaration(n);
453
+ }
454
+ }
455
+ }
456
+ visitTsNamespaceDeclaration(n) {
457
+ const body = this.visitTsNamespaceBody(n.body);
458
+ if (body) {
459
+ n.body = body;
460
+ }
461
+ n.id = this.visitBindingIdentifier(n.id);
462
+ return n;
463
+ }
464
+ visitTsModuleBlock(n) {
465
+ n.body = this.visitModuleItems(n.body);
466
+ return n;
467
+ }
468
+ visitTsInterfaceDeclaration(n) {
469
+ n.id = this.visitBindingIdentifier(n.id);
470
+ n.typeParams = this.visitTsTypeParameterDeclaration(n.typeParams);
471
+ n.extends = this.visitTsExpressionsWithTypeArguments(n.extends);
472
+ n.body = this.visitTsInterfaceBody(n.body);
473
+ return n;
474
+ }
475
+ visitTsInterfaceBody(n) {
476
+ n.body = this.visitTsTypeElements(n.body);
477
+ return n;
478
+ }
479
+ visitTsTypeElements(nodes) {
480
+ return nodes.map(this.visitTsTypeElement.bind(this));
481
+ }
482
+ visitTsTypeElement(n) {
483
+ switch (n.type) {
484
+ case "TsCallSignatureDeclaration":
485
+ return this.visitTsCallSignatureDeclaration(n);
486
+ case "TsConstructSignatureDeclaration":
487
+ return this.visitTsConstructSignatureDeclaration(n);
488
+ case "TsPropertySignature":
489
+ return this.visitTsPropertySignature(n);
490
+ case "TsGetterSignature":
491
+ return this.visitTsGetterSignature(n);
492
+ case "TsSetterSignature":
493
+ return this.visitTsSetterSignature(n);
494
+ case "TsMethodSignature":
495
+ return this.visitTsMethodSignature(n);
496
+ case "TsIndexSignature":
497
+ return this.visitTsIndexSignature(n);
498
+ }
499
+ }
500
+ visitTsCallSignatureDeclaration(n) {
501
+ n.params = this.visitTsFnParameters(n.params);
502
+ n.typeAnnotation = this.visitTsTypeAnnotation(n.typeAnnotation);
503
+ return n;
504
+ }
505
+ visitTsConstructSignatureDeclaration(n) {
506
+ n.params = this.visitTsFnParameters(n.params);
507
+ n.typeAnnotation = this.visitTsTypeAnnotation(n.typeAnnotation);
508
+ return n;
509
+ }
510
+ visitTsPropertySignature(n) {
511
+ n.typeAnnotation = this.visitTsTypeAnnotation(n.typeAnnotation);
512
+ return n;
513
+ }
514
+ visitTsGetterSignature(n) {
515
+ n.typeAnnotation = this.visitTsTypeAnnotation(n.typeAnnotation);
516
+ return n;
517
+ }
518
+ visitTsSetterSignature(n) {
519
+ n.param = this.visitTsFnParameter(n.param);
520
+ return n;
521
+ }
522
+ visitTsMethodSignature(n) {
523
+ n.params = this.visitTsFnParameters(n.params);
524
+ n.typeAnn = this.visitTsTypeAnnotation(n.typeAnn);
525
+ return n;
526
+ }
527
+ visitTsEnumDeclaration(n) {
528
+ n.id = this.visitIdentifier(n.id);
529
+ n.members = this.visitTsEnumMembers(n.members);
530
+ return n;
531
+ }
532
+ visitTsEnumMembers(nodes) {
533
+ return nodes.map(this.visitTsEnumMember.bind(this));
534
+ }
535
+ visitTsEnumMember(n) {
536
+ n.id = this.visitTsEnumMemberId(n.id);
537
+ n.init = this.visitOptionalExpression(n.init);
538
+ return n;
539
+ }
540
+ visitTsEnumMemberId(n) {
541
+ switch (n.type) {
542
+ case "Identifier":
543
+ return this.visitBindingIdentifier(n);
544
+ case "StringLiteral":
545
+ return this.visitStringLiteral(n);
546
+ }
547
+ }
548
+ visitFunctionDeclaration(decl) {
549
+ decl.identifier = this.visitIdentifier(decl.identifier);
550
+ decl = this.visitFunction(decl);
551
+ return decl;
552
+ }
553
+ visitClassDeclaration(decl) {
554
+ decl = this.visitClass(decl);
555
+ decl.identifier = this.visitIdentifier(decl.identifier);
556
+ return decl;
557
+ }
558
+ visitClassBody(members) {
559
+ return members.map(this.visitClassMember.bind(this));
560
+ }
561
+ visitClassMember(member) {
562
+ switch (member.type) {
563
+ case "ClassMethod":
564
+ return this.visitClassMethod(member);
565
+ case "ClassProperty":
566
+ return this.visitClassProperty(member);
567
+ case "Constructor":
568
+ return this.visitConstructor(member);
569
+ case "PrivateMethod":
570
+ return this.visitPrivateMethod(member);
571
+ case "PrivateProperty":
572
+ return this.visitPrivateProperty(member);
573
+ case "TsIndexSignature":
574
+ return this.visitTsIndexSignature(member);
575
+ case "EmptyStatement":
576
+ return this.visitEmptyStatement(member);
577
+ case "StaticBlock":
578
+ return this.visitStaticBlock(member);
579
+ }
580
+ }
581
+ visitTsIndexSignature(n) {
582
+ n.params = this.visitTsFnParameters(n.params);
583
+ if (n.typeAnnotation)
584
+ n.typeAnnotation = this.visitTsTypeAnnotation(n.typeAnnotation);
585
+ return n;
586
+ }
587
+ visitTsFnParameters(params) {
588
+ return params.map(this.visitTsFnParameter.bind(this));
589
+ }
590
+ visitTsFnParameter(n) {
591
+ n.typeAnnotation = this.visitTsTypeAnnotation(n.typeAnnotation);
592
+ return n;
593
+ }
594
+ visitPrivateProperty(n) {
595
+ n.decorators = this.visitDecorators(n.decorators);
596
+ n.key = this.visitPrivateName(n.key);
597
+ n.typeAnnotation = this.visitTsTypeAnnotation(n.typeAnnotation);
598
+ n.value = this.visitOptionalExpression(n.value);
599
+ return n;
600
+ }
601
+ visitPrivateMethod(n) {
602
+ n.accessibility = this.visitAccessibility(n.accessibility);
603
+ n.function = this.visitFunction(n.function);
604
+ n.key = this.visitPrivateName(n.key);
605
+ return n;
606
+ }
607
+ visitPrivateName(n) {
608
+ return n;
609
+ }
610
+ visitConstructor(n) {
611
+ n.accessibility = this.visitAccessibility(n.accessibility);
612
+ n.key = this.visitPropertyName(n.key);
613
+ n.params = this.visitConstructorParameters(n.params);
614
+ if (n.body) {
615
+ n.body = this.visitBlockStatement(n.body);
616
+ }
617
+ return n;
618
+ }
619
+ visitConstructorParameters(nodes) {
620
+ return nodes.map(this.visitConstructorParameter.bind(this));
621
+ }
622
+ visitConstructorParameter(n) {
623
+ switch (n.type) {
624
+ case "TsParameterProperty":
625
+ return this.visitTsParameterProperty(n);
626
+ default:
627
+ return this.visitParameter(n);
628
+ }
629
+ }
630
+ visitStaticBlock(n) {
631
+ n.body = this.visitBlockStatement(n.body);
632
+ return n;
633
+ }
634
+ visitTsParameterProperty(n) {
635
+ n.accessibility = this.visitAccessibility(n.accessibility);
636
+ n.decorators = this.visitDecorators(n.decorators);
637
+ n.param = this.visitTsParameterPropertyParameter(n.param);
638
+ return n;
639
+ }
640
+ visitTsParameterPropertyParameter(n) {
641
+ n.typeAnnotation = this.visitTsTypeAnnotation(n.typeAnnotation);
642
+ return n;
643
+ }
644
+ visitPropertyName(key) {
645
+ switch (key.type) {
646
+ case "Identifier":
647
+ return this.visitBindingIdentifier(key);
648
+ case "StringLiteral":
649
+ return this.visitStringLiteral(key);
650
+ case "NumericLiteral":
651
+ return this.visitNumericLiteral(key);
652
+ case "BigIntLiteral":
653
+ return this.visitBigIntLiteral(key);
654
+ default:
655
+ return this.visitComputedPropertyKey(key);
656
+ }
657
+ }
658
+ visitAccessibility(n) {
659
+ return n;
660
+ }
661
+ visitClassProperty(n) {
662
+ n.accessibility = this.visitAccessibility(n.accessibility);
663
+ n.decorators = this.visitDecorators(n.decorators);
664
+ n.key = this.visitPropertyName(n.key);
665
+ n.typeAnnotation = this.visitTsTypeAnnotation(n.typeAnnotation);
666
+ n.value = this.visitOptionalExpression(n.value);
667
+ return n;
668
+ }
669
+ visitClassMethod(n) {
670
+ n.accessibility = this.visitAccessibility(n.accessibility);
671
+ n.function = this.visitFunction(n.function);
672
+ n.key = this.visitPropertyName(n.key);
673
+ return n;
674
+ }
675
+ visitComputedPropertyKey(n) {
676
+ n.expression = this.visitExpression(n.expression);
677
+ return n;
678
+ }
679
+ visitClass(n) {
680
+ n.decorators = this.visitDecorators(n.decorators);
681
+ n.superClass = this.visitOptionalExpression(n.superClass);
682
+ n.superTypeParams = this.visitTsTypeParameterInstantiation(n.superTypeParams);
683
+ if (n.implements) {
684
+ n.implements = this.visitTsExpressionsWithTypeArguments(n.implements);
685
+ }
686
+ n.body = this.visitClassBody(n.body);
687
+ return n;
688
+ }
689
+ visitFunction(n) {
690
+ n.decorators = this.visitDecorators(n.decorators);
691
+ n.params = this.visitParameters(n.params);
692
+ if (n.body) {
693
+ n.body = this.visitBlockStatement(n.body);
694
+ }
695
+ n.returnType = this.visitTsTypeAnnotation(n.returnType);
696
+ n.typeParameters = this.visitTsTypeParameterDeclaration(n.typeParameters);
697
+ return n;
698
+ }
699
+ visitTsExpressionsWithTypeArguments(nodes) {
700
+ return nodes.map(this.visitTsExpressionWithTypeArguments.bind(this));
701
+ }
702
+ visitTsExpressionWithTypeArguments(n) {
703
+ n.expression = this.visitExpression(n.expression);
704
+ n.typeArguments = this.visitTsTypeParameterInstantiation(n.typeArguments);
705
+ return n;
706
+ }
707
+ visitTsTypeParameterInstantiation(n) {
708
+ if (n) {
709
+ n.params = this.visitTsTypes(n.params);
710
+ }
711
+ return n;
712
+ }
713
+ visitTsTypes(nodes) {
714
+ return nodes.map(this.visitTsType.bind(this));
715
+ }
716
+ visitTsEntityName(n) {
717
+ switch (n.type) {
718
+ case "Identifier":
719
+ return this.visitBindingIdentifier(n);
720
+ case "TsQualifiedName":
721
+ return this.visitTsQualifiedName(n);
722
+ }
723
+ }
724
+ visitTsQualifiedName(n) {
725
+ n.left = this.visitTsEntityName(n.left);
726
+ n.right = this.visitIdentifier(n.right);
727
+ return n;
728
+ }
729
+ visitDecorators(nodes) {
730
+ if (nodes) {
731
+ return nodes.map(this.visitDecorator.bind(this));
732
+ }
733
+ }
734
+ visitDecorator(n) {
735
+ n.expression = this.visitExpression(n.expression);
736
+ return n;
737
+ }
738
+ visitExpressionStatement(stmt) {
739
+ stmt.expression = this.visitExpression(stmt.expression);
740
+ return stmt;
741
+ }
742
+ visitContinueStatement(stmt) {
743
+ if (stmt.label) {
744
+ stmt.label = this.visitLabelIdentifier(stmt.label);
745
+ }
746
+ return stmt;
747
+ }
748
+ visitExpression(n) {
749
+ switch (n.type) {
750
+ case "ArrayExpression":
751
+ return this.visitArrayExpression(n);
752
+ case "ArrowFunctionExpression":
753
+ return this.visitArrowFunctionExpression(n);
754
+ case "AssignmentExpression":
755
+ return this.visitAssignmentExpression(n);
756
+ case "AwaitExpression":
757
+ return this.visitAwaitExpression(n);
758
+ case "BigIntLiteral":
759
+ return this.visitBigIntLiteral(n);
760
+ case "BinaryExpression":
761
+ return this.visitBinaryExpression(n);
762
+ case "BooleanLiteral":
763
+ return this.visitBooleanLiteral(n);
764
+ case "CallExpression":
765
+ return this.visitCallExpression(n);
766
+ case "ClassExpression":
767
+ return this.visitClassExpression(n);
768
+ case "ConditionalExpression":
769
+ return this.visitConditionalExpression(n);
770
+ case "FunctionExpression":
771
+ return this.visitFunctionExpression(n);
772
+ case "Identifier":
773
+ return this.visitIdentifierReference(n);
774
+ case "JSXElement":
775
+ return this.visitJSXElement(n);
776
+ case "JSXEmptyExpression":
777
+ return this.visitJSXEmptyExpression(n);
778
+ case "JSXFragment":
779
+ return this.visitJSXFragment(n);
780
+ case "JSXMemberExpression":
781
+ return this.visitJSXMemberExpression(n);
782
+ case "JSXNamespacedName":
783
+ return this.visitJSXNamespacedName(n);
784
+ case "JSXText":
785
+ return this.visitJSXText(n);
786
+ case "MemberExpression":
787
+ return this.visitMemberExpression(n);
788
+ case "SuperPropExpression":
789
+ return this.visitSuperPropExpression(n);
790
+ case "MetaProperty":
791
+ return this.visitMetaProperty(n);
792
+ case "NewExpression":
793
+ return this.visitNewExpression(n);
794
+ case "NullLiteral":
795
+ return this.visitNullLiteral(n);
796
+ case "NumericLiteral":
797
+ return this.visitNumericLiteral(n);
798
+ case "ObjectExpression":
799
+ return this.visitObjectExpression(n);
800
+ case "ParenthesisExpression":
801
+ return this.visitParenthesisExpression(n);
802
+ case "PrivateName":
803
+ return this.visitPrivateName(n);
804
+ case "RegExpLiteral":
805
+ return this.visitRegExpLiteral(n);
806
+ case "SequenceExpression":
807
+ return this.visitSequenceExpression(n);
808
+ case "StringLiteral":
809
+ return this.visitStringLiteral(n);
810
+ case "TaggedTemplateExpression":
811
+ return this.visitTaggedTemplateExpression(n);
812
+ case "TemplateLiteral":
813
+ return this.visitTemplateLiteral(n);
814
+ case "ThisExpression":
815
+ return this.visitThisExpression(n);
816
+ case "TsAsExpression":
817
+ return this.visitTsAsExpression(n);
818
+ case "TsSatisfiesExpression":
819
+ return this.visitTsSatisfiesExpression(n);
820
+ case "TsNonNullExpression":
821
+ return this.visitTsNonNullExpression(n);
822
+ case "TsTypeAssertion":
823
+ return this.visitTsTypeAssertion(n);
824
+ case "TsConstAssertion":
825
+ return this.visitTsConstAssertion(n);
826
+ case "TsInstantiation":
827
+ return this.visitTsInstantiation(n);
828
+ case "UnaryExpression":
829
+ return this.visitUnaryExpression(n);
830
+ case "UpdateExpression":
831
+ return this.visitUpdateExpression(n);
832
+ case "YieldExpression":
833
+ return this.visitYieldExpression(n);
834
+ case "OptionalChainingExpression":
835
+ return this.visitOptionalChainingExpression(n);
836
+ case "Invalid":
837
+ return n;
838
+ }
839
+ }
840
+ visitOptionalChainingExpression(n) {
841
+ n.base = this.visitMemberExpressionOrOptionalChainingCall(n.base);
842
+ return n;
843
+ }
844
+ visitMemberExpressionOrOptionalChainingCall(n) {
845
+ switch (n.type) {
846
+ case "MemberExpression":
847
+ return this.visitMemberExpression(n);
848
+ case "CallExpression":
849
+ return this.visitOptionalChainingCall(n);
850
+ }
851
+ }
852
+ visitOptionalChainingCall(n) {
853
+ n.callee = this.visitExpression(n.callee);
854
+ n.arguments = this.visitExprOrSpreads(n.arguments);
855
+ if (n.typeArguments)
856
+ n.typeArguments = this.visitTsTypeParameterInstantiation(n.typeArguments);
857
+ return n;
858
+ }
859
+ visitAssignmentExpression(n) {
860
+ n.left = this.visitPatternOrExpression(n.left);
861
+ n.right = this.visitExpression(n.right);
862
+ return n;
863
+ }
864
+ visitPatternOrExpression(n) {
865
+ switch (n.type) {
866
+ case "ObjectPattern":
867
+ case "ArrayPattern":
868
+ case "Identifier":
869
+ case "AssignmentPattern":
870
+ case "RestElement":
871
+ return this.visitPattern(n);
872
+ default:
873
+ return this.visitExpression(n);
874
+ }
875
+ }
876
+ visitYieldExpression(n) {
877
+ n.argument = this.visitOptionalExpression(n.argument);
878
+ return n;
879
+ }
880
+ visitUpdateExpression(n) {
881
+ n.argument = this.visitExpression(n.argument);
882
+ return n;
883
+ }
884
+ visitUnaryExpression(n) {
885
+ n.argument = this.visitExpression(n.argument);
886
+ return n;
887
+ }
888
+ visitTsTypeAssertion(n) {
889
+ n.expression = this.visitExpression(n.expression);
890
+ n.typeAnnotation = this.visitTsType(n.typeAnnotation);
891
+ return n;
892
+ }
893
+ visitTsConstAssertion(n) {
894
+ n.expression = this.visitExpression(n.expression);
895
+ return n;
896
+ }
897
+ visitTsInstantiation(n) {
898
+ n.expression = this.visitExpression(n.expression);
899
+ return n;
900
+ }
901
+ visitTsNonNullExpression(n) {
902
+ n.expression = this.visitExpression(n.expression);
903
+ return n;
904
+ }
905
+ visitTsAsExpression(n) {
906
+ n.expression = this.visitExpression(n.expression);
907
+ n.typeAnnotation = this.visitTsType(n.typeAnnotation);
908
+ return n;
909
+ }
910
+ visitTsSatisfiesExpression(n) {
911
+ n.expression = this.visitExpression(n.expression);
912
+ n.typeAnnotation = this.visitTsType(n.typeAnnotation);
913
+ return n;
914
+ }
915
+ visitThisExpression(n) {
916
+ return n;
917
+ }
918
+ visitTemplateLiteral(n) {
919
+ n.expressions = n.expressions.map(this.visitExpression.bind(this));
920
+ return n;
921
+ }
922
+ visitParameters(n) {
923
+ return n.map(this.visitParameter.bind(this));
924
+ }
925
+ visitParameter(n) {
926
+ n.pat = this.visitPattern(n.pat);
927
+ return n;
928
+ }
929
+ visitTaggedTemplateExpression(n) {
930
+ n.tag = this.visitExpression(n.tag);
931
+ const template = this.visitTemplateLiteral(n.template);
932
+ if (template.type === "TemplateLiteral") {
933
+ n.template = template;
934
+ }
935
+ return n;
936
+ }
937
+ visitSequenceExpression(n) {
938
+ n.expressions = n.expressions.map(this.visitExpression.bind(this));
939
+ return n;
940
+ }
941
+ visitRegExpLiteral(n) {
942
+ return n;
943
+ }
944
+ visitParenthesisExpression(n) {
945
+ n.expression = this.visitExpression(n.expression);
946
+ return n;
947
+ }
948
+ visitObjectExpression(n) {
949
+ if (n.properties) {
950
+ n.properties = this.visitObjectProperties(n.properties);
951
+ }
952
+ return n;
953
+ }
954
+ visitObjectProperties(nodes) {
955
+ return nodes.map(this.visitObjectProperty.bind(this));
956
+ }
957
+ visitObjectProperty(n) {
958
+ switch (n.type) {
959
+ case "SpreadElement":
960
+ return this.visitSpreadElement(n);
961
+ default:
962
+ return this.visitProperty(n);
963
+ }
964
+ }
965
+ visitProperty(n) {
966
+ switch (n.type) {
967
+ case "Identifier":
968
+ return this.visitIdentifier(n);
969
+ case "AssignmentProperty":
970
+ return this.visitAssignmentProperty(n);
971
+ case "GetterProperty":
972
+ return this.visitGetterProperty(n);
973
+ case "KeyValueProperty":
974
+ return this.visitKeyValueProperty(n);
975
+ case "MethodProperty":
976
+ return this.visitMethodProperty(n);
977
+ case "SetterProperty":
978
+ return this.visitSetterProperty(n);
979
+ }
980
+ }
981
+ visitSetterProperty(n) {
982
+ n.key = this.visitPropertyName(n.key);
983
+ n.param = this.visitPattern(n.param);
984
+ if (n.body) {
985
+ n.body = this.visitBlockStatement(n.body);
986
+ }
987
+ return n;
988
+ }
989
+ visitMethodProperty(n) {
990
+ n.key = this.visitPropertyName(n.key);
991
+ if (n.body) {
992
+ n.body = this.visitBlockStatement(n.body);
993
+ }
994
+ n.decorators = this.visitDecorators(n.decorators);
995
+ n.params = this.visitParameters(n.params);
996
+ n.returnType = this.visitTsTypeAnnotation(n.returnType);
997
+ n.typeParameters = this.visitTsTypeParameterDeclaration(n.typeParameters);
998
+ return n;
999
+ }
1000
+ visitKeyValueProperty(n) {
1001
+ n.key = this.visitPropertyName(n.key);
1002
+ n.value = this.visitExpression(n.value);
1003
+ return n;
1004
+ }
1005
+ visitGetterProperty(n) {
1006
+ n.key = this.visitPropertyName(n.key);
1007
+ if (n.body) {
1008
+ n.body = this.visitBlockStatement(n.body);
1009
+ }
1010
+ n.typeAnnotation = this.visitTsTypeAnnotation(n.typeAnnotation);
1011
+ return n;
1012
+ }
1013
+ visitAssignmentProperty(n) {
1014
+ n.key = this.visitIdentifier(n.key);
1015
+ n.value = this.visitExpression(n.value);
1016
+ return n;
1017
+ }
1018
+ visitNullLiteral(n) {
1019
+ return n;
1020
+ }
1021
+ visitNewExpression(n) {
1022
+ n.callee = this.visitExpression(n.callee);
1023
+ if (n.arguments) {
1024
+ n.arguments = this.visitArguments(n.arguments);
1025
+ }
1026
+ n.typeArguments = this.visitTsTypeArguments(n.typeArguments);
1027
+ return n;
1028
+ }
1029
+ visitTsTypeArguments(n) {
1030
+ if (n) {
1031
+ n.params = this.visitTsTypes(n.params);
1032
+ }
1033
+ return n;
1034
+ }
1035
+ visitArguments(nodes) {
1036
+ return nodes.map(this.visitArgument.bind(this));
1037
+ }
1038
+ visitArgument(n) {
1039
+ n.expression = this.visitExpression(n.expression);
1040
+ return n;
1041
+ }
1042
+ visitMetaProperty(n) {
1043
+ return n;
1044
+ }
1045
+ visitMemberExpression(n) {
1046
+ n.object = this.visitExpression(n.object);
1047
+ switch (n.property.type) {
1048
+ case "Computed": {
1049
+ n.property = this.visitComputedPropertyKey(n.property);
1050
+ return n;
1051
+ }
1052
+ case "Identifier": {
1053
+ n.property = this.visitIdentifier(n.property);
1054
+ return n;
1055
+ }
1056
+ case "PrivateName": {
1057
+ n.property = this.visitPrivateName(n.property);
1058
+ return n;
1059
+ }
1060
+ }
1061
+ }
1062
+ visitSuperPropExpression(n) {
1063
+ switch (n.property.type) {
1064
+ case "Computed": {
1065
+ n.property = this.visitComputedPropertyKey(n.property);
1066
+ return n;
1067
+ }
1068
+ case "Identifier": {
1069
+ n.property = this.visitIdentifier(n.property);
1070
+ return n;
1071
+ }
1072
+ }
1073
+ }
1074
+ visitCallee(n) {
1075
+ if (n.type === "Super" || n.type === "Import") {
1076
+ return n;
1077
+ }
1078
+ return this.visitExpression(n);
1079
+ }
1080
+ visitJSXText(n) {
1081
+ return n;
1082
+ }
1083
+ visitJSXNamespacedName(n) {
1084
+ n.namespace = this.visitIdentifierReference(n.namespace);
1085
+ n.name = this.visitIdentifierReference(n.name);
1086
+ return n;
1087
+ }
1088
+ visitJSXMemberExpression(n) {
1089
+ n.object = this.visitJSXObject(n.object);
1090
+ n.property = this.visitIdentifierReference(n.property);
1091
+ return n;
1092
+ }
1093
+ visitJSXObject(n) {
1094
+ switch (n.type) {
1095
+ case "Identifier":
1096
+ return this.visitIdentifierReference(n);
1097
+ case "JSXMemberExpression":
1098
+ return this.visitJSXMemberExpression(n);
1099
+ }
1100
+ }
1101
+ visitJSXFragment(n) {
1102
+ n.opening = this.visitJSXOpeningFragment(n.opening);
1103
+ if (n.children) {
1104
+ n.children = this.visitJSXElementChildren(n.children);
1105
+ }
1106
+ n.closing = this.visitJSXClosingFragment(n.closing);
1107
+ return n;
1108
+ }
1109
+ visitJSXClosingFragment(n) {
1110
+ return n;
1111
+ }
1112
+ visitJSXElementChildren(nodes) {
1113
+ return nodes.map(this.visitJSXElementChild.bind(this));
1114
+ }
1115
+ visitJSXElementChild(n) {
1116
+ switch (n.type) {
1117
+ case "JSXElement":
1118
+ return this.visitJSXElement(n);
1119
+ case "JSXExpressionContainer":
1120
+ return this.visitJSXExpressionContainer(n);
1121
+ case "JSXFragment":
1122
+ return this.visitJSXFragment(n);
1123
+ case "JSXSpreadChild":
1124
+ return this.visitJSXSpreadChild(n);
1125
+ case "JSXText":
1126
+ return this.visitJSXText(n);
1127
+ }
1128
+ }
1129
+ visitJSXExpressionContainer(n) {
1130
+ n.expression = this.visitExpression(n.expression);
1131
+ return n;
1132
+ }
1133
+ visitJSXSpreadChild(n) {
1134
+ n.expression = this.visitExpression(n.expression);
1135
+ return n;
1136
+ }
1137
+ visitJSXOpeningFragment(n) {
1138
+ return n;
1139
+ }
1140
+ visitJSXEmptyExpression(n) {
1141
+ return n;
1142
+ }
1143
+ visitJSXElement(n) {
1144
+ n.opening = this.visitJSXOpeningElement(n.opening);
1145
+ n.children = this.visitJSXElementChildren(n.children);
1146
+ n.closing = this.visitJSXClosingElement(n.closing);
1147
+ return n;
1148
+ }
1149
+ visitJSXClosingElement(n) {
1150
+ if (n) {
1151
+ n.name = this.visitJSXElementName(n.name);
1152
+ }
1153
+ return n;
1154
+ }
1155
+ visitJSXElementName(n) {
1156
+ switch (n.type) {
1157
+ case "Identifier":
1158
+ return this.visitIdentifierReference(n);
1159
+ case "JSXMemberExpression":
1160
+ return this.visitJSXMemberExpression(n);
1161
+ case "JSXNamespacedName":
1162
+ return this.visitJSXNamespacedName(n);
1163
+ }
1164
+ }
1165
+ visitJSXOpeningElement(n) {
1166
+ n.name = this.visitJSXElementName(n.name);
1167
+ n.typeArguments = this.visitTsTypeParameterInstantiation(n.typeArguments);
1168
+ n.attributes = this.visitJSXAttributeOrSpreads(n.attributes);
1169
+ return n;
1170
+ }
1171
+ visitJSXAttributes(attrs) {
1172
+ if (attrs)
1173
+ return attrs.map(this.visitJSXAttributeOrSpread.bind(this));
1174
+ }
1175
+ visitJSXAttributeOrSpread(n) {
1176
+ switch (n.type) {
1177
+ case "JSXAttribute":
1178
+ return this.visitJSXAttribute(n);
1179
+ case "SpreadElement":
1180
+ return this.visitSpreadElement(n);
1181
+ }
1182
+ }
1183
+ visitJSXAttributeOrSpreads(nodes) {
1184
+ return nodes.map(this.visitJSXAttributeOrSpread.bind(this));
1185
+ }
1186
+ visitJSXAttribute(n) {
1187
+ n.name = this.visitJSXAttributeName(n.name);
1188
+ n.value = this.visitJSXAttributeValue(n.value);
1189
+ return n;
1190
+ }
1191
+ visitJSXAttributeValue(n) {
1192
+ if (!n)
1193
+ return n;
1194
+ switch (n.type) {
1195
+ case "StringLiteral":
1196
+ return this.visitStringLiteral(n);
1197
+ case "JSXElement":
1198
+ return this.visitJSXElement(n);
1199
+ case "JSXExpressionContainer":
1200
+ return this.visitJSXExpressionContainer(n);
1201
+ case "JSXFragment":
1202
+ return this.visitJSXFragment(n);
1203
+ }
1204
+ return n;
1205
+ }
1206
+ visitJSXAttributeName(n) {
1207
+ switch (n.type) {
1208
+ case "Identifier":
1209
+ return this.visitIdentifierReference(n);
1210
+ case "JSXNamespacedName":
1211
+ return this.visitJSXNamespacedName(n);
1212
+ }
1213
+ }
1214
+ visitConditionalExpression(n) {
1215
+ n.test = this.visitExpression(n.test);
1216
+ n.consequent = this.visitExpression(n.consequent);
1217
+ n.alternate = this.visitExpression(n.alternate);
1218
+ return n;
1219
+ }
1220
+ visitCallExpression(n) {
1221
+ n.callee = this.visitCallee(n.callee);
1222
+ n.typeArguments = this.visitTsTypeParameterInstantiation(n.typeArguments);
1223
+ if (n.arguments) {
1224
+ n.arguments = this.visitArguments(n.arguments);
1225
+ }
1226
+ return n;
1227
+ }
1228
+ visitBooleanLiteral(n) {
1229
+ return n;
1230
+ }
1231
+ visitBinaryExpression(n) {
1232
+ n.left = this.visitExpression(n.left);
1233
+ n.right = this.visitExpression(n.right);
1234
+ return n;
1235
+ }
1236
+ visitAwaitExpression(n) {
1237
+ n.argument = this.visitExpression(n.argument);
1238
+ return n;
1239
+ }
1240
+ visitTsTypeParameterDeclaration(n) {
1241
+ if (n) {
1242
+ n.parameters = this.visitTsTypeParameters(n.parameters);
1243
+ }
1244
+ return n;
1245
+ }
1246
+ visitTsTypeParameters(nodes) {
1247
+ return nodes.map(this.visitTsTypeParameter.bind(this));
1248
+ }
1249
+ visitTsTypeParameter(n) {
1250
+ if (n.constraint) {
1251
+ n.constraint = this.visitTsType(n.constraint);
1252
+ }
1253
+ if (n.default) {
1254
+ n.default = this.visitTsType(n.default);
1255
+ }
1256
+ n.name = this.visitIdentifierReference(n.name);
1257
+ return n;
1258
+ }
1259
+ visitTsTypeAnnotation(a) {
1260
+ if (a) {
1261
+ a.typeAnnotation = this.visitTsType(a.typeAnnotation);
1262
+ }
1263
+ return a;
1264
+ }
1265
+ visitTsType(n) {
1266
+ throw new Error("Method visitTsType not implemented.");
1267
+ }
1268
+ visitPatterns(nodes) {
1269
+ return nodes.map(this.visitPattern.bind(this));
1270
+ }
1271
+ visitImportDeclaration(n) {
1272
+ n.source = this.visitStringLiteral(n.source);
1273
+ n.specifiers = this.visitImportSpecifiers(n.specifiers || []);
1274
+ return n;
1275
+ }
1276
+ visitImportSpecifiers(nodes) {
1277
+ return nodes.map(this.visitImportSpecifier.bind(this));
1278
+ }
1279
+ visitImportSpecifier(node) {
1280
+ switch (node.type) {
1281
+ case "ImportDefaultSpecifier":
1282
+ return this.visitImportDefaultSpecifier(node);
1283
+ case "ImportNamespaceSpecifier":
1284
+ return this.visitImportNamespaceSpecifier(node);
1285
+ case "ImportSpecifier":
1286
+ return this.visitNamedImportSpecifier(node);
1287
+ }
1288
+ }
1289
+ visitNamedImportSpecifier(node) {
1290
+ node.local = this.visitBindingIdentifier(node.local);
1291
+ if (node.imported) {
1292
+ node.imported = this.visitModuleExportName(node.imported);
1293
+ }
1294
+ return node;
1295
+ }
1296
+ visitImportNamespaceSpecifier(node) {
1297
+ node.local = this.visitBindingIdentifier(node.local);
1298
+ return node;
1299
+ }
1300
+ visitImportDefaultSpecifier(node) {
1301
+ node.local = this.visitBindingIdentifier(node.local);
1302
+ return node;
1303
+ }
1304
+ visitBindingIdentifier(i) {
1305
+ if (i.typeAnnotation) {
1306
+ i.typeAnnotation = this.visitTsTypeAnnotation(i.typeAnnotation);
1307
+ }
1308
+ return this.visitIdentifier(i);
1309
+ }
1310
+ visitIdentifierReference(i) {
1311
+ return this.visitIdentifier(i);
1312
+ }
1313
+ visitLabelIdentifier(label) {
1314
+ return this.visitIdentifier(label);
1315
+ }
1316
+ visitIdentifier(n) {
1317
+ return n;
1318
+ }
1319
+ visitStringLiteral(n) {
1320
+ return n;
1321
+ }
1322
+ visitNumericLiteral(n) {
1323
+ return n;
1324
+ }
1325
+ visitBigIntLiteral(n) {
1326
+ return n;
1327
+ }
1328
+ visitPattern(n) {
1329
+ switch (n.type) {
1330
+ case "Identifier":
1331
+ return this.visitBindingIdentifier(n);
1332
+ case "ArrayPattern":
1333
+ return this.visitArrayPattern(n);
1334
+ case "ObjectPattern":
1335
+ return this.visitObjectPattern(n);
1336
+ case "AssignmentPattern":
1337
+ return this.visitAssignmentPattern(n);
1338
+ case "RestElement":
1339
+ return this.visitRestElement(n);
1340
+ default:
1341
+ return this.visitExpression(n);
1342
+ }
1343
+ }
1344
+ visitRestElement(n) {
1345
+ n.argument = this.visitPattern(n.argument);
1346
+ n.typeAnnotation = this.visitTsTypeAnnotation(n.typeAnnotation);
1347
+ return n;
1348
+ }
1349
+ visitAssignmentPattern(n) {
1350
+ n.left = this.visitPattern(n.left);
1351
+ n.right = this.visitExpression(n.right);
1352
+ n.typeAnnotation = this.visitTsTypeAnnotation(n.typeAnnotation);
1353
+ return n;
1354
+ }
1355
+ visitObjectPattern(n) {
1356
+ n.properties = this.visitObjectPatternProperties(n.properties || []);
1357
+ n.typeAnnotation = this.visitTsTypeAnnotation(n.typeAnnotation);
1358
+ return n;
1359
+ }
1360
+ visitObjectPatternProperties(nodes) {
1361
+ return nodes.map(this.visitObjectPatternProperty.bind(this));
1362
+ }
1363
+ visitObjectPatternProperty(n) {
1364
+ switch (n.type) {
1365
+ case "AssignmentPatternProperty":
1366
+ return this.visitAssignmentPatternProperty(n);
1367
+ case "KeyValuePatternProperty":
1368
+ return this.visitKeyValuePatternProperty(n);
1369
+ case "RestElement":
1370
+ return this.visitRestElement(n);
1371
+ }
1372
+ }
1373
+ visitKeyValuePatternProperty(n) {
1374
+ n.key = this.visitPropertyName(n.key);
1375
+ n.value = this.visitPattern(n.value);
1376
+ return n;
1377
+ }
1378
+ visitAssignmentPatternProperty(n) {
1379
+ n.key = this.visitBindingIdentifier(n.key);
1380
+ n.value = this.visitOptionalExpression(n.value);
1381
+ return n;
1382
+ }
1383
+ visitArrayPattern(n) {
1384
+ n.typeAnnotation = this.visitTsTypeAnnotation(n.typeAnnotation);
1385
+ n.elements = this.visitArrayPatternElements(n.elements);
1386
+ return n;
1387
+ }
1388
+ visitArrayPatternElements(nodes) {
1389
+ return nodes.map(this.visitArrayPatternElement.bind(this));
1390
+ }
1391
+ visitArrayPatternElement(n) {
1392
+ if (n) {
1393
+ n = this.visitPattern(n);
1394
+ }
1395
+ return n;
1396
+ }
1397
+ }
1398
+ exports.Visitor = Visitor;
1399
+ exports.default = Visitor;