@depup/angular__build 22.1.8-depup.5 → 22.2.0-depup.0

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 (306) hide show
  1. package/README.md +9 -14
  2. package/builders.json +1 -1
  3. package/changes.json +12 -32
  4. package/package.json +29 -48
  5. package/src/builders/application/build-action.js +63 -92
  6. package/src/builders/application/build-action.js.map +1 -1
  7. package/src/builders/application/chunk-optimizer.d.ts +2 -2
  8. package/src/builders/application/chunk-optimizer.js +5 -5
  9. package/src/builders/application/chunk-optimizer.js.map +1 -1
  10. package/src/builders/application/execute-build.js +26 -19
  11. package/src/builders/application/execute-build.js.map +1 -1
  12. package/src/builders/application/execute-post-bundle.d.ts +2 -2
  13. package/src/builders/application/execute-post-bundle.js +5 -5
  14. package/src/builders/application/execute-post-bundle.js.map +1 -1
  15. package/src/builders/application/i18n.d.ts +3 -1
  16. package/src/builders/application/i18n.js +48 -13
  17. package/src/builders/application/i18n.js.map +1 -1
  18. package/src/{tools/esbuild → builders/application}/index-html-generator.d.ts +2 -2
  19. package/src/{tools/esbuild → builders/application}/index-html-generator.js +2 -2
  20. package/src/builders/application/index-html-generator.js.map +1 -0
  21. package/src/builders/application/index.js +2 -2
  22. package/src/builders/application/index.js.map +1 -1
  23. package/src/builders/application/options.d.ts +5 -0
  24. package/src/builders/application/options.js +8 -26
  25. package/src/builders/application/options.js.map +1 -1
  26. package/src/builders/application/results.d.ts +3 -2
  27. package/src/builders/application/schema.d.ts +2 -1
  28. package/src/builders/application/schema.js.map +1 -1
  29. package/src/builders/application/schema.json +1 -2
  30. package/src/builders/application/setup-bundling.js +3 -1
  31. package/src/builders/application/setup-bundling.js.map +1 -1
  32. package/src/builders/dev-server/internal.d.ts +1 -1
  33. package/src/builders/dev-server/internal.js +1 -1
  34. package/src/builders/dev-server/internal.js.map +1 -1
  35. package/src/builders/dev-server/vite/index.js +5 -8
  36. package/src/builders/dev-server/vite/index.js.map +1 -1
  37. package/src/builders/dev-server/vite/server.js +2 -0
  38. package/src/builders/dev-server/vite/server.js.map +1 -1
  39. package/src/builders/dev-server/vite/utils.d.ts +1 -1
  40. package/src/builders/dev-server/vite/utils.js +9 -4
  41. package/src/builders/dev-server/vite/utils.js.map +1 -1
  42. package/src/builders/extract-i18n/application-extraction.js +6 -5
  43. package/src/builders/extract-i18n/application-extraction.js.map +1 -1
  44. package/src/builders/karma/application_builder.js +1 -1
  45. package/src/builders/karma/application_builder.js.map +1 -1
  46. package/src/builders/karma/assets-middleware.d.ts +2 -2
  47. package/src/builders/karma/assets-middleware.js +5 -2
  48. package/src/builders/karma/assets-middleware.js.map +1 -1
  49. package/src/builders/karma/progress-reporter.js +7 -5
  50. package/src/builders/karma/progress-reporter.js.map +1 -1
  51. package/src/builders/karma/utils.d.ts +2 -1
  52. package/src/builders/karma/utils.js +2 -2
  53. package/src/builders/karma/utils.js.map +1 -1
  54. package/src/builders/unit-test/builder.js +1 -1
  55. package/src/builders/unit-test/runners/vitest/build-options.js +9 -3
  56. package/src/builders/unit-test/runners/vitest/build-options.js.map +1 -1
  57. package/src/builders/unit-test/runners/vitest/executor.js +5 -4
  58. package/src/builders/unit-test/runners/vitest/executor.js.map +1 -1
  59. package/src/builders/unit-test/runners/vitest/plugins.d.ts +4 -4
  60. package/src/builders/unit-test/runners/vitest/plugins.js +9 -2
  61. package/src/builders/unit-test/runners/vitest/plugins.js.map +1 -1
  62. package/src/builders/unit-test/schema.d.ts +3 -2
  63. package/src/builders/unit-test/schema.js.map +1 -1
  64. package/src/builders/unit-test/schema.json +3 -2
  65. package/src/builders/unit-test/test-discovery.js +3 -2
  66. package/src/builders/unit-test/test-discovery.js.map +1 -1
  67. package/src/private.d.ts +3 -5
  68. package/src/private.js +6 -9
  69. package/src/private.js.map +1 -1
  70. package/src/tools/angular/angular-host.d.ts +1 -2
  71. package/src/tools/angular/angular-host.js +6 -6
  72. package/src/tools/angular/angular-host.js.map +1 -1
  73. package/src/tools/angular/compilation/angular-compilation.d.ts +24 -16
  74. package/src/tools/angular/compilation/angular-compilation.js +4 -80
  75. package/src/tools/angular/compilation/angular-compilation.js.map +1 -1
  76. package/src/tools/angular/compilation/aot-compilation.d.ts +6 -12
  77. package/src/tools/angular/compilation/aot-compilation.js +23 -20
  78. package/src/tools/angular/compilation/aot-compilation.js.map +1 -1
  79. package/src/tools/angular/compilation/compiler-options.d.ts +25 -0
  80. package/src/tools/angular/compilation/compiler-options.js +135 -0
  81. package/src/tools/angular/compilation/compiler-options.js.map +1 -0
  82. package/src/tools/angular/compilation/factory.d.ts +5 -3
  83. package/src/tools/angular/compilation/factory.js +10 -5
  84. package/src/tools/angular/compilation/factory.js.map +1 -1
  85. package/src/tools/angular/compilation/index.d.ts +3 -3
  86. package/src/tools/angular/compilation/index.js +1 -3
  87. package/src/tools/angular/compilation/index.js.map +1 -1
  88. package/src/tools/angular/compilation/jit-compilation.d.ts +6 -9
  89. package/src/tools/angular/compilation/jit-compilation.js +10 -16
  90. package/src/tools/angular/compilation/jit-compilation.js.map +1 -1
  91. package/src/tools/angular/compilation/parallel-compilation.d.ts +3 -14
  92. package/src/tools/angular/compilation/parallel-compilation.js +40 -42
  93. package/src/tools/angular/compilation/parallel-compilation.js.map +1 -1
  94. package/src/tools/angular/compilation/parallel-worker.d.ts +5 -17
  95. package/src/tools/angular/compilation/parallel-worker.js +89 -68
  96. package/src/tools/angular/compilation/parallel-worker.js.map +1 -1
  97. package/src/tools/angular/compilation/typescript-compilation.d.ts +31 -0
  98. package/src/tools/angular/compilation/typescript-compilation.js +125 -0
  99. package/src/tools/angular/compilation/typescript-compilation.js.map +1 -0
  100. package/src/tools/angular/linker/oxc-ast-host.d.ts +33 -0
  101. package/src/tools/angular/linker/oxc-ast-host.js +234 -0
  102. package/src/tools/angular/linker/oxc-ast-host.js.map +1 -0
  103. package/src/tools/angular/linker/oxc-linker.d.ts +22 -0
  104. package/src/tools/angular/linker/oxc-linker.js +75 -0
  105. package/src/tools/angular/linker/oxc-linker.js.map +1 -0
  106. package/src/tools/angular/linker/string-ast-factory.d.ts +86 -0
  107. package/src/tools/angular/linker/string-ast-factory.js +234 -0
  108. package/src/tools/angular/linker/string-ast-factory.js.map +1 -0
  109. package/src/tools/esbuild/angular/compilation-state.d.ts +23 -3
  110. package/src/tools/esbuild/angular/compilation-state.js +51 -13
  111. package/src/tools/esbuild/angular/compilation-state.js.map +1 -1
  112. package/src/tools/esbuild/angular/compiler-plugin.d.ts +1 -0
  113. package/src/tools/esbuild/angular/compiler-plugin.js +126 -139
  114. package/src/tools/esbuild/angular/compiler-plugin.js.map +1 -1
  115. package/src/tools/esbuild/angular/component-stylesheets.d.ts +3 -3
  116. package/src/tools/esbuild/angular/component-stylesheets.js +52 -22
  117. package/src/tools/esbuild/angular/component-stylesheets.js.map +1 -1
  118. package/src/tools/esbuild/angular/source-file-cache.d.ts +1 -2
  119. package/src/tools/esbuild/angular/source-file-cache.js +1 -11
  120. package/src/tools/esbuild/angular/source-file-cache.js.map +1 -1
  121. package/src/tools/esbuild/application-code-bundle.js +7 -14
  122. package/src/tools/esbuild/application-code-bundle.js.map +1 -1
  123. package/src/tools/esbuild/budget-stats.js +3 -3
  124. package/src/tools/esbuild/budget-stats.js.map +1 -1
  125. package/src/tools/esbuild/bundler-context.d.ts +23 -7
  126. package/src/tools/esbuild/bundler-context.js +112 -43
  127. package/src/tools/esbuild/bundler-context.js.map +1 -1
  128. package/src/tools/esbuild/bundler-execution-result.d.ts +2 -1
  129. package/src/tools/esbuild/bundler-execution-result.js +2 -2
  130. package/src/tools/esbuild/bundler-execution-result.js.map +1 -1
  131. package/src/tools/esbuild/bundler-files.js +3 -5
  132. package/src/tools/esbuild/bundler-files.js.map +1 -1
  133. package/src/tools/esbuild/compiler-plugin-options.js +2 -1
  134. package/src/tools/esbuild/compiler-plugin-options.js.map +1 -1
  135. package/src/tools/esbuild/i18n-locale-plugin.d.ts +1 -8
  136. package/src/tools/esbuild/i18n-locale-plugin.js +33 -114
  137. package/src/tools/esbuild/i18n-locale-plugin.js.map +1 -1
  138. package/src/tools/esbuild/license-extractor.d.ts +1 -1
  139. package/src/tools/esbuild/license-extractor.js +89 -86
  140. package/src/tools/esbuild/license-extractor.js.map +1 -1
  141. package/src/tools/esbuild/load-result-cache.d.ts +2 -1
  142. package/src/tools/esbuild/load-result-cache.js +28 -13
  143. package/src/tools/esbuild/load-result-cache.js.map +1 -1
  144. package/src/tools/esbuild/persistent-load-result-cache.d.ts +87 -0
  145. package/src/tools/esbuild/persistent-load-result-cache.js +229 -0
  146. package/src/tools/esbuild/persistent-load-result-cache.js.map +1 -0
  147. package/src/tools/esbuild/stylesheets/bundle-options.d.ts +1 -0
  148. package/src/tools/esbuild/stylesheets/bundle-options.js +1 -1
  149. package/src/tools/esbuild/stylesheets/bundle-options.js.map +1 -1
  150. package/src/tools/esbuild/stylesheets/css-resource-plugin.d.ts +3 -1
  151. package/src/tools/esbuild/stylesheets/css-resource-plugin.js +4 -2
  152. package/src/tools/esbuild/stylesheets/css-resource-plugin.js.map +1 -1
  153. package/src/tools/esbuild/stylesheets/sass-language.d.ts +9 -0
  154. package/src/tools/esbuild/stylesheets/sass-language.js +109 -50
  155. package/src/tools/esbuild/stylesheets/sass-language.js.map +1 -1
  156. package/src/tools/esbuild/stylesheets/stylesheet-cache-key.d.ts +35 -0
  157. package/src/tools/esbuild/stylesheets/stylesheet-cache-key.js +64 -0
  158. package/src/tools/esbuild/stylesheets/stylesheet-cache-key.js.map +1 -0
  159. package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.d.ts +1 -1
  160. package/src/tools/esbuild/utils.d.ts +3 -3
  161. package/src/tools/esbuild/utils.js +9 -6
  162. package/src/tools/esbuild/utils.js.map +1 -1
  163. package/src/tools/i18n/i18n-inliner-worker.d.ts +126 -0
  164. package/src/tools/i18n/i18n-inliner-worker.js +363 -0
  165. package/src/tools/i18n/i18n-inliner-worker.js.map +1 -0
  166. package/src/tools/i18n/i18n-inliner.d.ts +97 -0
  167. package/src/tools/i18n/i18n-inliner.js +500 -0
  168. package/src/tools/i18n/i18n-inliner.js.map +1 -0
  169. package/src/tools/i18n/i18n-translation-encoder.d.ts +21 -0
  170. package/src/tools/i18n/i18n-translation-encoder.js +92 -0
  171. package/src/tools/i18n/i18n-translation-encoder.js.map +1 -0
  172. package/src/tools/i18n/i18n-translation-reader.d.ts +41 -0
  173. package/src/tools/i18n/i18n-translation-reader.js +164 -0
  174. package/src/tools/i18n/i18n-translation-reader.js.map +1 -0
  175. package/src/tools/i18n/index.d.ts +11 -0
  176. package/src/tools/i18n/index.js +28 -0
  177. package/src/tools/i18n/index.js.map +1 -0
  178. package/src/tools/i18n/locale-data.d.ts +47 -0
  179. package/src/tools/i18n/locale-data.js +108 -0
  180. package/src/tools/i18n/locale-data.js.map +1 -0
  181. package/src/tools/javascript-transformer/index.d.ts +8 -0
  182. package/src/tools/javascript-transformer/index.js +25 -0
  183. package/src/tools/javascript-transformer/index.js.map +1 -0
  184. package/src/tools/{esbuild → javascript-transformer}/javascript-transformer-worker.d.ts +0 -4
  185. package/src/tools/javascript-transformer/javascript-transformer-worker.js +231 -0
  186. package/src/tools/javascript-transformer/javascript-transformer-worker.js.map +1 -0
  187. package/src/tools/{esbuild → javascript-transformer}/javascript-transformer.d.ts +26 -9
  188. package/src/tools/javascript-transformer/javascript-transformer.js +294 -0
  189. package/src/tools/javascript-transformer/javascript-transformer.js.map +1 -0
  190. package/src/tools/{babel/plugins → oxc}/oxc-transform.d.ts +5 -2
  191. package/src/tools/{babel/plugins → oxc}/oxc-transform.js +105 -138
  192. package/src/tools/oxc/oxc-transform.js.map +1 -0
  193. package/src/tools/oxc/traversal.d.ts +32 -0
  194. package/src/tools/oxc/traversal.js +299 -0
  195. package/src/tools/oxc/traversal.js.map +1 -0
  196. package/src/tools/oxc/types.d.ts +20 -0
  197. package/src/tools/sass/rebasing-importer.d.ts +12 -18
  198. package/src/tools/sass/rebasing-importer.js +23 -26
  199. package/src/tools/sass/rebasing-importer.js.map +1 -1
  200. package/src/tools/sass/sass-service.d.ts +15 -38
  201. package/src/tools/sass/sass-service.js +132 -187
  202. package/src/tools/sass/sass-service.js.map +1 -1
  203. package/src/tools/vite/middlewares/assets-middleware.js +3 -3
  204. package/src/tools/vite/middlewares/assets-middleware.js.map +1 -1
  205. package/src/tools/vite/utils.d.ts +1 -1
  206. package/src/{tools/esbuild → utils/cache}/cache.d.ts +25 -8
  207. package/src/{tools/esbuild → utils/cache}/cache.js +72 -41
  208. package/src/utils/cache/cache.js.map +1 -0
  209. package/src/utils/cache/index.d.ts +8 -0
  210. package/src/utils/cache/index.js +25 -0
  211. package/src/utils/cache/index.js.map +1 -0
  212. package/src/{tools/esbuild → utils/cache}/lmdb-cache-store.js +1 -1
  213. package/src/{tools/esbuild → utils/cache}/lmdb-cache-store.js.map +1 -1
  214. package/src/{tools/esbuild → utils/cache}/sqlite-cache-store.d.ts +1 -1
  215. package/src/utils/cache/sqlite-cache-store.js +339 -0
  216. package/src/utils/cache/sqlite-cache-store.js.map +1 -0
  217. package/src/utils/concurrency.d.ts +30 -0
  218. package/src/utils/concurrency.js +81 -0
  219. package/src/utils/concurrency.js.map +1 -0
  220. package/src/utils/environment-options.d.ts +34 -0
  221. package/src/utils/environment-options.js +42 -12
  222. package/src/utils/environment-options.js.map +1 -1
  223. package/src/utils/hash.d.ts +24 -0
  224. package/src/utils/hash.js +94 -0
  225. package/src/utils/hash.js.map +1 -0
  226. package/src/utils/i18n-options.d.ts +3 -1
  227. package/src/utils/i18n-options.js.map +1 -1
  228. package/src/utils/index-file/auto-csp.d.ts +8 -0
  229. package/src/utils/index-file/auto-csp.js +30 -3
  230. package/src/utils/index-file/auto-csp.js.map +1 -1
  231. package/src/utils/index-file/index-html-generator.d.ts +1 -1
  232. package/src/utils/index-file/index-html-generator.js +9 -13
  233. package/src/utils/index-file/index-html-generator.js.map +1 -1
  234. package/src/utils/index-file/inline-critical-css.d.ts +16 -18
  235. package/src/utils/index-file/inline-critical-css.js +78 -179
  236. package/src/utils/index-file/inline-critical-css.js.map +1 -1
  237. package/src/utils/index-file/nonce.d.ts +2 -0
  238. package/src/utils/index-file/nonce.js +1 -0
  239. package/src/utils/index-file/nonce.js.map +1 -1
  240. package/src/utils/normalize-cache.js +1 -1
  241. package/src/utils/postcss-configuration.d.ts +6 -0
  242. package/src/utils/postcss-configuration.js +23 -0
  243. package/src/utils/postcss-configuration.js.map +1 -1
  244. package/src/{tools/esbuild → utils}/profiling.js +1 -1
  245. package/src/{tools/esbuild → utils}/profiling.js.map +1 -1
  246. package/src/utils/server-rendering/manifest.d.ts +2 -2
  247. package/src/utils/server-rendering/manifest.js +53 -4
  248. package/src/utils/server-rendering/manifest.js.map +1 -1
  249. package/src/utils/source-map.d.ts +26 -2
  250. package/src/utils/source-map.js +151 -53
  251. package/src/utils/source-map.js.map +1 -1
  252. package/src/utils/test-files.d.ts +2 -2
  253. package/src/utils/test-files.js +3 -3
  254. package/src/utils/test-files.js.map +1 -1
  255. package/src/utils/watcher.d.ts +61 -0
  256. package/src/utils/watcher.js +642 -0
  257. package/src/utils/watcher.js.map +1 -0
  258. package/src/tools/angular/compilation/noop-compilation.d.ts +0 -20
  259. package/src/tools/angular/compilation/noop-compilation.js +0 -27
  260. package/src/tools/angular/compilation/noop-compilation.js.map +0 -1
  261. package/src/tools/babel/plugins/add-code-coverage.d.ts +0 -14
  262. package/src/tools/babel/plugins/add-code-coverage.js +0 -44
  263. package/src/tools/babel/plugins/add-code-coverage.js.map +0 -1
  264. package/src/tools/babel/plugins/adjust-static-class-members.d.ts +0 -25
  265. package/src/tools/babel/plugins/adjust-static-class-members.js +0 -349
  266. package/src/tools/babel/plugins/adjust-static-class-members.js.map +0 -1
  267. package/src/tools/babel/plugins/adjust-typescript-enums.d.ts +0 -21
  268. package/src/tools/babel/plugins/adjust-typescript-enums.js +0 -113
  269. package/src/tools/babel/plugins/adjust-typescript-enums.js.map +0 -1
  270. package/src/tools/babel/plugins/elide-angular-metadata.d.ts +0 -23
  271. package/src/tools/babel/plugins/elide-angular-metadata.js +0 -110
  272. package/src/tools/babel/plugins/elide-angular-metadata.js.map +0 -1
  273. package/src/tools/babel/plugins/index.d.ts +0 -11
  274. package/src/tools/babel/plugins/index.js +0 -22
  275. package/src/tools/babel/plugins/index.js.map +0 -1
  276. package/src/tools/babel/plugins/oxc-transform.js.map +0 -1
  277. package/src/tools/babel/plugins/pure-toplevel-functions.d.ts +0 -13
  278. package/src/tools/babel/plugins/pure-toplevel-functions.js +0 -128
  279. package/src/tools/babel/plugins/pure-toplevel-functions.js.map +0 -1
  280. package/src/tools/babel/plugins/types.d.ts +0 -20
  281. package/src/tools/babel/typings.d.ts +0 -21
  282. package/src/tools/esbuild/cache.js.map +0 -1
  283. package/src/tools/esbuild/i18n-inliner-worker.d.ts +0 -81
  284. package/src/tools/esbuild/i18n-inliner-worker.js +0 -255
  285. package/src/tools/esbuild/i18n-inliner-worker.js.map +0 -1
  286. package/src/tools/esbuild/i18n-inliner.d.ts +0 -58
  287. package/src/tools/esbuild/i18n-inliner.js +0 -265
  288. package/src/tools/esbuild/i18n-inliner.js.map +0 -1
  289. package/src/tools/esbuild/index-html-generator.js.map +0 -1
  290. package/src/tools/esbuild/javascript-transformer-worker.js +0 -192
  291. package/src/tools/esbuild/javascript-transformer-worker.js.map +0 -1
  292. package/src/tools/esbuild/javascript-transformer.js +0 -197
  293. package/src/tools/esbuild/javascript-transformer.js.map +0 -1
  294. package/src/tools/esbuild/sqlite-cache-store.js +0 -165
  295. package/src/tools/esbuild/sqlite-cache-store.js.map +0 -1
  296. package/src/tools/esbuild/watcher.d.ts +0 -25
  297. package/src/tools/esbuild/watcher.js +0 -119
  298. package/src/tools/esbuild/watcher.js.map +0 -1
  299. package/src/tools/sass/worker.d.ts +0 -63
  300. package/src/tools/sass/worker.js +0 -202
  301. package/src/tools/sass/worker.js.map +0 -1
  302. /package/src/tools/{esbuild/angular → angular/compilation}/diagnostics.d.ts +0 -0
  303. /package/src/tools/{esbuild/angular → angular/compilation}/diagnostics.js +0 -0
  304. /package/src/tools/{esbuild/angular → angular/compilation}/diagnostics.js.map +0 -0
  305. /package/src/{tools/esbuild → utils/cache}/lmdb-cache-store.d.ts +0 -0
  306. /package/src/{tools/esbuild → utils}/profiling.d.ts +0 -0
@@ -17,76 +17,88 @@ exports.update = update;
17
17
  const node_assert_1 = __importDefault(require("node:assert"));
18
18
  const node_crypto_1 = require("node:crypto");
19
19
  const node_worker_threads_1 = require("node:worker_threads");
20
- const source_file_cache_1 = require("../../esbuild/angular/source-file-cache");
21
- const profiling_1 = require("../../esbuild/profiling");
20
+ const hash_1 = require("../../../utils/hash");
21
+ const profiling_1 = require("../../../utils/profiling");
22
22
  const aot_compilation_1 = require("./aot-compilation");
23
23
  const jit_compilation_1 = require("./jit-compilation");
24
24
  let compilation;
25
- const sourceFileCache = new source_file_cache_1.SourceFileCache();
25
+ let activeWebWorkerPort;
26
+ const modifiedFiles = new Set();
26
27
  async function initialize(request) {
27
- compilation ??= request.jit
28
- ? new jit_compilation_1.JitCompilation(request.browserOnlyBuild)
29
- : new aot_compilation_1.AotCompilation(request.browserOnlyBuild);
30
- const stylesheetRequests = new Map();
31
- request.stylesheetPort.on('message', ({ requestId, value, error }) => {
32
- if (error) {
33
- stylesheetRequests.get(requestId)?.[1](error);
34
- }
35
- else {
36
- stylesheetRequests.get(requestId)?.[0](value);
37
- }
38
- });
39
- const { compilerOptions, referencedFiles, externalStylesheets, templateUpdates, componentResourcesDependencies, } = await compilation.initialize(request.tsconfig, {
40
- fileReplacements: request.fileReplacements,
41
- sourceFileCache,
42
- modifiedFiles: sourceFileCache.modifiedFiles,
43
- transformStylesheet(data, containingFile, stylesheetFile, order, className) {
44
- const requestId = (0, node_crypto_1.randomUUID)();
45
- const resultPromise = new Promise((resolve, reject) => stylesheetRequests.set(requestId, [resolve, reject]));
46
- request.stylesheetPort.postMessage({
47
- requestId,
48
- data,
49
- containingFile,
50
- stylesheetFile,
51
- order,
52
- className,
53
- });
54
- return resultPromise;
55
- },
56
- processWebWorker(workerFile, containingFile) {
57
- Atomics.store(request.webWorkerSignal, 0, 0);
58
- request.webWorkerPort.postMessage({ workerFile, containingFile });
59
- Atomics.wait(request.webWorkerSignal, 0, 0);
60
- const result = (0, node_worker_threads_1.receiveMessageOnPort)(request.webWorkerPort)?.message;
61
- if (result?.error) {
62
- throw result.error;
28
+ activeWebWorkerPort?.close();
29
+ activeWebWorkerPort = request.webWorkerPort;
30
+ const currentModifiedFiles = new Set(modifiedFiles);
31
+ modifiedFiles.clear();
32
+ let success = false;
33
+ try {
34
+ await (0, hash_1.initializeHash)();
35
+ compilation ??= request.jit
36
+ ? new jit_compilation_1.JitCompilation(request.browserOnlyBuild)
37
+ : new aot_compilation_1.AotCompilation(request.browserOnlyBuild);
38
+ const stylesheetRequests = new Map();
39
+ request.stylesheetPort.on('message', ({ requestId, value, error }) => {
40
+ const handlers = stylesheetRequests.get(requestId);
41
+ if (handlers) {
42
+ stylesheetRequests.delete(requestId);
43
+ if (error) {
44
+ handlers[1](error);
45
+ }
46
+ else {
47
+ handlers[0](value);
48
+ }
63
49
  }
64
- return result?.workerCodeFile ?? workerFile;
65
- },
66
- }, (compilerOptions) => {
67
- Atomics.store(request.optionsSignal, 0, 0);
68
- request.optionsPort.postMessage(compilerOptions);
69
- Atomics.wait(request.optionsSignal, 0, 0);
70
- const result = (0, node_worker_threads_1.receiveMessageOnPort)(request.optionsPort)?.message;
71
- if (result?.error) {
72
- throw result.error;
50
+ });
51
+ const { compilerOptions, referencedFiles, externalStylesheets, templateUpdates, componentResourcesDependencies, warnings, } = await compilation.initialize(request.tsconfig, {
52
+ fileReplacements: request.fileReplacements,
53
+ modifiedFiles: currentModifiedFiles,
54
+ transformStylesheet(data, containingFile, stylesheetFile, order, className) {
55
+ const requestId = (0, node_crypto_1.randomUUID)();
56
+ const resultPromise = new Promise((resolve, reject) => stylesheetRequests.set(requestId, [resolve, reject]));
57
+ request.stylesheetPort.postMessage({
58
+ requestId,
59
+ data,
60
+ containingFile,
61
+ stylesheetFile,
62
+ order,
63
+ className,
64
+ });
65
+ return resultPromise;
66
+ },
67
+ processWebWorker(workerFile, containingFile) {
68
+ Atomics.store(request.webWorkerSignal, 0, 0);
69
+ request.webWorkerPort.postMessage({ workerFile, containingFile });
70
+ Atomics.wait(request.webWorkerSignal, 0, 0);
71
+ const result = (0, node_worker_threads_1.receiveMessageOnPort)(request.webWorkerPort)?.message;
72
+ if (result?.error) {
73
+ throw result.error;
74
+ }
75
+ return result?.workerCodeFile ?? workerFile;
76
+ },
77
+ }, request.compilerOptionOverrides);
78
+ success = true;
79
+ return {
80
+ externalStylesheets,
81
+ templateUpdates,
82
+ referencedFiles,
83
+ warnings,
84
+ // TODO: Expand? `allowJs`, `isolatedModules`, `sourceMap`, `inlineSourceMap` are the only fields needed currently.
85
+ compilerOptions: {
86
+ allowJs: compilerOptions.allowJs,
87
+ isolatedModules: compilerOptions.isolatedModules,
88
+ sourceMap: compilerOptions.sourceMap,
89
+ inlineSourceMap: compilerOptions.inlineSourceMap,
90
+ _useTypeScriptTranspilation: compilerOptions['_useTypeScriptTranspilation'],
91
+ },
92
+ componentResourcesDependencies,
93
+ };
94
+ }
95
+ finally {
96
+ request.stylesheetPort.close();
97
+ if (!success) {
98
+ activeWebWorkerPort?.close();
99
+ activeWebWorkerPort = undefined;
73
100
  }
74
- return result?.transformedOptions ?? compilerOptions;
75
- });
76
- return {
77
- externalStylesheets,
78
- templateUpdates,
79
- referencedFiles,
80
- // TODO: Expand? `allowJs`, `isolatedModules`, `sourceMap`, `inlineSourceMap` are the only fields needed currently.
81
- compilerOptions: {
82
- allowJs: compilerOptions.allowJs,
83
- isolatedModules: compilerOptions.isolatedModules,
84
- sourceMap: compilerOptions.sourceMap,
85
- inlineSourceMap: compilerOptions.inlineSourceMap,
86
- _useTypeScriptTranspilation: compilerOptions['_useTypeScriptTranspilation'],
87
- },
88
- componentResourcesDependencies,
89
- };
101
+ }
90
102
  }
91
103
  async function diagnose(modes) {
92
104
  (0, node_assert_1.default)(compilation);
@@ -99,10 +111,19 @@ async function diagnose(modes) {
99
111
  }
100
112
  async function emit() {
101
113
  (0, node_assert_1.default)(compilation);
102
- const files = await compilation.emitAffectedFiles();
103
- return [...files];
114
+ try {
115
+ const files = await compilation.emitAffectedFiles();
116
+ return [...files];
117
+ }
118
+ finally {
119
+ activeWebWorkerPort?.close();
120
+ activeWebWorkerPort = undefined;
121
+ }
104
122
  }
105
- function update(files) {
106
- sourceFileCache.invalidate(files);
123
+ async function update(files) {
124
+ for (const file of files) {
125
+ modifiedFiles.add(file);
126
+ }
127
+ await compilation?.update?.(files);
107
128
  }
108
129
  //# sourceMappingURL=parallel-worker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parallel-worker.js","sourceRoot":"","sources":["parallel-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parallel-worker.js","sourceRoot":"","sources":["parallel-worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.dev/license
7
+ */
8
+ import type * as ng from '@angular/compiler-cli';
9
+ import type { PartialMessage } from 'esbuild';
10
+ import ts from 'typescript';
11
+ import { AngularCompilation, DiagnosticModes } from './angular-compilation';
12
+ import { type CompilerOptionOverrides } from './compiler-options';
13
+ export interface TransformedConfiguration {
14
+ compilerOptions: ng.CompilerOptions;
15
+ rootNames: string[];
16
+ errors: ts.Diagnostic[];
17
+ warnings: PartialMessage[];
18
+ }
19
+ export declare abstract class TypeScriptCompilation extends AngularCompilation {
20
+ #private;
21
+ static loadCompilerCli(): Promise<typeof ng>;
22
+ protected loadConfiguration(tsconfig: string, compilerOptionOverrides?: CompilerOptionOverrides): Promise<TransformedConfiguration>;
23
+ protected readonly sourceFiles: Map<string, ts.SourceFile>;
24
+ protected invalidateFiles(files: Iterable<string>): void;
25
+ update(files: Set<string>): Promise<void>;
26
+ protected abstract collectDiagnostics(modes: DiagnosticModes): Iterable<ts.Diagnostic> | Promise<Iterable<ts.Diagnostic>>;
27
+ diagnoseFiles(modes?: DiagnosticModes): Promise<{
28
+ errors?: PartialMessage[];
29
+ warnings?: PartialMessage[];
30
+ }>;
31
+ }
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.dev/license
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
42
+ var __importDefault = (this && this.__importDefault) || function (mod) {
43
+ return (mod && mod.__esModule) ? mod : { "default": mod };
44
+ };
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.TypeScriptCompilation = void 0;
47
+ const typescript_1 = __importDefault(require("typescript"));
48
+ const path_1 = require("../../../utils/path");
49
+ const profiling_1 = require("../../../utils/profiling");
50
+ const angular_compilation_1 = require("./angular-compilation");
51
+ const compiler_options_1 = require("./compiler-options");
52
+ const diagnostics_1 = require("./diagnostics");
53
+ class TypeScriptCompilation extends angular_compilation_1.AngularCompilation {
54
+ static #angularCompilerCliModule;
55
+ static async loadCompilerCli() {
56
+ TypeScriptCompilation.#angularCompilerCliModule ??= await Promise.resolve().then(() => __importStar(require('@angular/compiler-cli')));
57
+ return TypeScriptCompilation.#angularCompilerCliModule;
58
+ }
59
+ async loadConfiguration(tsconfig, compilerOptionOverrides) {
60
+ const { readConfiguration } = await TypeScriptCompilation.loadCompilerCli();
61
+ const { options: originalCompilerOptions, rootNames: originalRootNames, errors, } = (0, profiling_1.profileSync)('NG_READ_CONFIG', () => readConfiguration(tsconfig, {
62
+ // Angular specific configuration defaults and overrides to ensure a functioning compilation.
63
+ suppressOutputPathCheck: true,
64
+ outDir: undefined,
65
+ sourceMap: false,
66
+ declaration: false,
67
+ declarationMap: false,
68
+ allowEmptyCodegenFiles: false,
69
+ annotationsAs: 'decorators',
70
+ enableResourceInlining: false,
71
+ supportTestBed: false,
72
+ supportJitMode: false,
73
+ // Disable removing of comments as TS is quite aggressive with these and can
74
+ // remove important annotations, such as /* @__PURE__ */ and comments like /* vite-ignore */.
75
+ removeComments: false,
76
+ }));
77
+ let rootNames = originalRootNames;
78
+ if (compilerOptionOverrides?.rootFiles?.length) {
79
+ const rootFilesSet = new Set(compilerOptionOverrides.rootFiles.map((file) => (0, path_1.canonicalizePath)((0, path_1.toPosixPath)(file))));
80
+ for (const file of originalRootNames) {
81
+ if (/\.d\.[cm]?ts$/i.test(file)) {
82
+ rootFilesSet.add((0, path_1.canonicalizePath)((0, path_1.toPosixPath)(file)));
83
+ }
84
+ }
85
+ rootNames = [...rootFilesSet];
86
+ }
87
+ const { compilerOptions, warnings } = (0, compiler_options_1.transformCompilerOptions)(typescript_1.default, originalCompilerOptions, compilerOptionOverrides, tsconfig);
88
+ return {
89
+ compilerOptions,
90
+ rootNames,
91
+ errors,
92
+ warnings,
93
+ };
94
+ }
95
+ sourceFiles = new Map();
96
+ invalidateFiles(files) {
97
+ for (const file of files) {
98
+ this.sourceFiles.delete((0, path_1.toPosixPath)(file));
99
+ }
100
+ }
101
+ async update(files) {
102
+ this.invalidateFiles(files);
103
+ }
104
+ async diagnoseFiles(modes = angular_compilation_1.DiagnosticModes.All) {
105
+ if (modes === angular_compilation_1.DiagnosticModes.None) {
106
+ return {};
107
+ }
108
+ const result = {};
109
+ await (0, profiling_1.profileAsync)('NG_DIAGNOSTICS_TOTAL', async () => {
110
+ const diagnostics = await this.collectDiagnostics(modes);
111
+ for (const diagnostic of diagnostics) {
112
+ const message = (0, diagnostics_1.convertTypeScriptDiagnostic)(typescript_1.default, diagnostic);
113
+ if (diagnostic.category === typescript_1.default.DiagnosticCategory.Error) {
114
+ (result.errors ??= []).push(message);
115
+ }
116
+ else {
117
+ (result.warnings ??= []).push(message);
118
+ }
119
+ }
120
+ });
121
+ return result;
122
+ }
123
+ }
124
+ exports.TypeScriptCompilation = TypeScriptCompilation;
125
+ //# sourceMappingURL=typescript-compilation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-compilation.js","sourceRoot":"","sources":["typescript-compilation.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIH,4DAA4B;AAC5B,8CAAoE;AACpE,wDAAqE;AACrE,+DAA4E;AAC5E,yDAA4F;AAC5F,+CAA4D;AAS5D,MAAsB,qBAAsB,SAAQ,wCAAkB;IACpE,MAAM,CAAC,yBAAyB,CAAa;IAE7C,MAAM,CAAC,KAAK,CAAC,eAAe;QAC1B,qBAAqB,CAAC,yBAAyB,KAAK,wDAAa,uBAAuB,GAAC,CAAC;QAE1F,OAAO,qBAAqB,CAAC,yBAAyB,CAAC;IACzD,CAAC;IAES,KAAK,CAAC,iBAAiB,CAC/B,QAAgB,EAChB,uBAAiD;QAEjD,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,qBAAqB,CAAC,eAAe,EAAE,CAAC;QAE5E,MAAM,EACJ,OAAO,EAAE,uBAAuB,EAChC,SAAS,EAAE,iBAAiB,EAC5B,MAAM,GACP,GAAG,IAAA,uBAAW,EAAC,gBAAgB,EAAE,GAAG,EAAE,CACrC,iBAAiB,CAAC,QAAQ,EAAE;YAC1B,6FAA6F;YAC7F,uBAAuB,EAAE,IAAI;YAC7B,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,KAAK;YAClB,cAAc,EAAE,KAAK;YACrB,sBAAsB,EAAE,KAAK;YAC7B,aAAa,EAAE,YAAY;YAC3B,sBAAsB,EAAE,KAAK;YAC7B,cAAc,EAAE,KAAK;YACrB,cAAc,EAAE,KAAK;YACrB,4EAA4E;YAC5E,6FAA6F;YAC7F,cAAc,EAAE,KAAK;SACtB,CAAC,CACH,CAAC;QAEF,IAAI,SAAS,GAAG,iBAAiB,CAAC;QAClC,IAAI,uBAAuB,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;YAC/C,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,uBAAuB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,uBAAgB,EAAC,IAAA,kBAAW,EAAC,IAAI,CAAC,CAAC,CAAC,CACrF,CAAC;YACF,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;gBACrC,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChC,YAAY,CAAC,GAAG,CAAC,IAAA,uBAAgB,EAAC,IAAA,kBAAW,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC;YACD,SAAS,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,IAAA,2CAAwB,EAC5D,oBAAE,EACF,uBAAuB,EACvB,uBAAuB,EACvB,QAAQ,CACT,CAAC;QAEF,OAAO;YACL,eAAe;YACf,SAAS;YACT,MAAM;YACN,QAAQ;SACT,CAAC;IACJ,CAAC;IAEkB,WAAW,GAAG,IAAI,GAAG,EAAyB,CAAC;IAExD,eAAe,CAAC,KAAuB;QAC/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAA,kBAAW,EAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAEQ,KAAK,CAAC,MAAM,CAAC,KAAkB;QACtC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAMQ,KAAK,CAAC,aAAa,CAC1B,KAAK,GAAG,qCAAe,CAAC,GAAG;QAE3B,IAAI,KAAK,KAAK,qCAAe,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,MAAM,GAA+D,EAAE,CAAC;QAE9E,MAAM,IAAA,wBAAY,EAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAEzD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,MAAM,OAAO,GAAG,IAAA,yCAA2B,EAAC,oBAAE,EAAE,UAAU,CAAC,CAAC;gBAC5D,IAAI,UAAU,CAAC,QAAQ,KAAK,oBAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;oBACxD,CAAC,MAAM,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvC,CAAC;qBAAM,CAAC;oBACN,CAAC,MAAM,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AA1GD,sDA0GC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.dev/license
7
+ */
8
+ import type { AstHost, Range } from '@angular/compiler-cli/linker';
9
+ import type { ArrayExpression, ArrowFunctionExpression, BooleanLiteral, CallExpression, Function as FunctionNode, NullLiteral, NumericLiteral, ObjectExpression, StringLiteral, UnaryExpression } from '@oxc-project/types';
10
+ /**
11
+ * An implementation of `AstHost` that queries information from `oxc-parser` AST nodes.
12
+ */
13
+ export declare class OxcAstHost implements AstHost<unknown> {
14
+ getSymbolName(node: unknown): string | null;
15
+ isStringLiteral(node: unknown): node is StringLiteral;
16
+ parseStringLiteral(str: unknown): string;
17
+ isNumericLiteral(node: unknown): node is NumericLiteral;
18
+ parseNumericLiteral(num: unknown): number;
19
+ isBooleanLiteral(node: unknown): node is BooleanLiteral | UnaryExpression;
20
+ parseBooleanLiteral(bool: unknown): boolean;
21
+ isNull(node: unknown): node is NullLiteral;
22
+ isArrayLiteral(node: unknown): node is ArrayExpression;
23
+ parseArrayLiteral(array: unknown): unknown[];
24
+ isObjectLiteral(node: unknown): node is ObjectExpression;
25
+ parseObjectLiteral(obj: unknown): Map<string, unknown>;
26
+ isFunctionExpression(node: unknown): node is FunctionNode | ArrowFunctionExpression;
27
+ parseReturnValue(fn: unknown): unknown;
28
+ parseParameters(fn: unknown): unknown[];
29
+ isCallExpression(node: unknown): node is CallExpression;
30
+ parseCallee(call: unknown): unknown;
31
+ parseArguments(call: unknown): unknown[];
32
+ getRange(node: unknown): Range;
33
+ }
@@ -0,0 +1,234 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.dev/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.OxcAstHost = void 0;
11
+ const linker_1 = require("@angular/compiler-cli/linker");
12
+ function isNode(node) {
13
+ return typeof node === 'object' && node !== null && 'type' in node;
14
+ }
15
+ function unwrapParentheses(node) {
16
+ while (isNode(node) && node.type === 'ParenthesizedExpression') {
17
+ node = node.expression;
18
+ }
19
+ return node;
20
+ }
21
+ /**
22
+ * An implementation of `AstHost` that queries information from `oxc-parser` AST nodes.
23
+ */
24
+ class OxcAstHost {
25
+ getSymbolName(node) {
26
+ node = unwrapParentheses(node);
27
+ if (!isNode(node)) {
28
+ return null;
29
+ }
30
+ if (node.type === 'Identifier') {
31
+ return node.name;
32
+ }
33
+ else if (node.type === 'MemberExpression') {
34
+ if (!node.computed && node.property.type === 'Identifier') {
35
+ return node.property.name;
36
+ }
37
+ }
38
+ return null;
39
+ }
40
+ isStringLiteral(node) {
41
+ node = unwrapParentheses(node);
42
+ return isNode(node) && node.type === 'Literal' && typeof node.value === 'string';
43
+ }
44
+ parseStringLiteral(str) {
45
+ str = unwrapParentheses(str);
46
+ if (!this.isStringLiteral(str)) {
47
+ throw new linker_1.FatalLinkerError(str, 'Unsupported syntax, expected a string literal.');
48
+ }
49
+ return str.value;
50
+ }
51
+ isNumericLiteral(node) {
52
+ node = unwrapParentheses(node);
53
+ return isNode(node) && node.type === 'Literal' && typeof node.value === 'number';
54
+ }
55
+ parseNumericLiteral(num) {
56
+ num = unwrapParentheses(num);
57
+ if (!this.isNumericLiteral(num)) {
58
+ throw new linker_1.FatalLinkerError(num, 'Unsupported syntax, expected a numeric literal.');
59
+ }
60
+ return num.value;
61
+ }
62
+ isBooleanLiteral(node) {
63
+ node = unwrapParentheses(node);
64
+ if (!isNode(node)) {
65
+ return false;
66
+ }
67
+ return ((node.type === 'Literal' && typeof node.value === 'boolean') || isMinifiedBooleanLiteral(node));
68
+ }
69
+ parseBooleanLiteral(bool) {
70
+ bool = unwrapParentheses(bool);
71
+ if (isNode(bool)) {
72
+ if (bool.type === 'Literal' && typeof bool.value === 'boolean') {
73
+ return bool.value;
74
+ }
75
+ if (isMinifiedBooleanLiteral(bool)) {
76
+ return !bool.argument.value;
77
+ }
78
+ }
79
+ throw new linker_1.FatalLinkerError(bool, 'Unsupported syntax, expected a boolean literal.');
80
+ }
81
+ isNull(node) {
82
+ node = unwrapParentheses(node);
83
+ return isNode(node) && node.type === 'Literal' && node.value === null;
84
+ }
85
+ isArrayLiteral(node) {
86
+ node = unwrapParentheses(node);
87
+ return isNode(node) && node.type === 'ArrayExpression';
88
+ }
89
+ parseArrayLiteral(array) {
90
+ array = unwrapParentheses(array);
91
+ if (!this.isArrayLiteral(array)) {
92
+ throw new linker_1.FatalLinkerError(array, 'Unsupported syntax, expected an array literal.');
93
+ }
94
+ const result = [];
95
+ for (const element of array.elements) {
96
+ if (element === null) {
97
+ throw new linker_1.FatalLinkerError(array, 'Unsupported syntax, element in array not to be empty.');
98
+ }
99
+ const unwrappedElement = unwrapParentheses(element);
100
+ if (isNode(unwrappedElement) && unwrappedElement.type === 'SpreadElement') {
101
+ throw new linker_1.FatalLinkerError(unwrappedElement, 'Unsupported syntax, element in array not to use spread syntax.');
102
+ }
103
+ result.push(unwrappedElement);
104
+ }
105
+ return result;
106
+ }
107
+ isObjectLiteral(node) {
108
+ node = unwrapParentheses(node);
109
+ return isNode(node) && node.type === 'ObjectExpression';
110
+ }
111
+ parseObjectLiteral(obj) {
112
+ obj = unwrapParentheses(obj);
113
+ if (!this.isObjectLiteral(obj)) {
114
+ throw new linker_1.FatalLinkerError(obj, 'Unsupported syntax, expected an object literal.');
115
+ }
116
+ const result = new Map();
117
+ for (const property of obj.properties) {
118
+ if (property.type !== 'Property') {
119
+ throw new linker_1.FatalLinkerError(property, 'Unsupported syntax, expected a property assignment.');
120
+ }
121
+ const keyNode = unwrapParentheses(property.key);
122
+ if (!isNode(keyNode)) {
123
+ throw new linker_1.FatalLinkerError(property.key, 'Unsupported syntax, expected a property name.');
124
+ }
125
+ let key;
126
+ if (keyNode.type === 'Identifier') {
127
+ key = keyNode.name;
128
+ }
129
+ else if (this.isStringLiteral(keyNode)) {
130
+ key = keyNode.value;
131
+ }
132
+ else if (this.isNumericLiteral(keyNode)) {
133
+ key = String(keyNode.value);
134
+ }
135
+ else {
136
+ throw new linker_1.FatalLinkerError(keyNode, 'Unsupported syntax, expected a property name.');
137
+ }
138
+ result.set(key, unwrapParentheses(property.value));
139
+ }
140
+ return result;
141
+ }
142
+ isFunctionExpression(node) {
143
+ node = unwrapParentheses(node);
144
+ if (!isNode(node)) {
145
+ return false;
146
+ }
147
+ return (node.type === 'FunctionDeclaration' ||
148
+ node.type === 'FunctionExpression' ||
149
+ node.type === 'ArrowFunctionExpression');
150
+ }
151
+ parseReturnValue(fn) {
152
+ fn = unwrapParentheses(fn);
153
+ if (!this.isFunctionExpression(fn)) {
154
+ throw new linker_1.FatalLinkerError(fn, 'Unsupported syntax, expected a function.');
155
+ }
156
+ const body = fn.body;
157
+ if (!body || !isNode(body)) {
158
+ throw new linker_1.FatalLinkerError(fn, 'Unsupported syntax, expected a function body.');
159
+ }
160
+ if (body.type !== 'BlockStatement') {
161
+ return unwrapParentheses(body);
162
+ }
163
+ const statements = body.body;
164
+ if (statements.length !== 1) {
165
+ throw new linker_1.FatalLinkerError(body, 'Unsupported syntax, expected a function body with a single return statement.');
166
+ }
167
+ const stmt = statements[0];
168
+ if (stmt.type !== 'ReturnStatement') {
169
+ throw new linker_1.FatalLinkerError(stmt, 'Unsupported syntax, expected a function body with a single return statement.');
170
+ }
171
+ if (!stmt.argument) {
172
+ throw new linker_1.FatalLinkerError(stmt, 'Unsupported syntax, expected function to return a value.');
173
+ }
174
+ return unwrapParentheses(stmt.argument);
175
+ }
176
+ parseParameters(fn) {
177
+ fn = unwrapParentheses(fn);
178
+ if (!this.isFunctionExpression(fn)) {
179
+ throw new linker_1.FatalLinkerError(fn, 'Unsupported syntax, expected a function.');
180
+ }
181
+ return fn.params;
182
+ }
183
+ isCallExpression(node) {
184
+ node = unwrapParentheses(node);
185
+ return isNode(node) && node.type === 'CallExpression';
186
+ }
187
+ parseCallee(call) {
188
+ call = unwrapParentheses(call);
189
+ if (!this.isCallExpression(call)) {
190
+ throw new linker_1.FatalLinkerError(call, 'Unsupported syntax, expected a call expression.');
191
+ }
192
+ return unwrapParentheses(call.callee);
193
+ }
194
+ parseArguments(call) {
195
+ call = unwrapParentheses(call);
196
+ if (!this.isCallExpression(call)) {
197
+ throw new linker_1.FatalLinkerError(call, 'Unsupported syntax, expected a call expression.');
198
+ }
199
+ const result = [];
200
+ for (const arg of call.arguments) {
201
+ const unwrappedArg = unwrapParentheses(arg);
202
+ if (isNode(unwrappedArg) && unwrappedArg.type === 'SpreadElement') {
203
+ throw new linker_1.FatalLinkerError(unwrappedArg, 'Unsupported syntax, argument not to use spread syntax.');
204
+ }
205
+ result.push(unwrappedArg);
206
+ }
207
+ return result;
208
+ }
209
+ getRange(node) {
210
+ node = unwrapParentheses(node);
211
+ if (!isNode(node) || typeof node.start !== 'number' || typeof node.end !== 'number') {
212
+ throw new linker_1.FatalLinkerError(node, 'Unable to read range for node - it is missing location information.');
213
+ }
214
+ return {
215
+ startPos: node.start,
216
+ startLine: 0,
217
+ startCol: 0,
218
+ endPos: node.end,
219
+ };
220
+ }
221
+ }
222
+ exports.OxcAstHost = OxcAstHost;
223
+ function isMinifiedBooleanLiteral(node) {
224
+ if (node.type !== 'UnaryExpression') {
225
+ return false;
226
+ }
227
+ const arg = node.argument;
228
+ return (node.prefix === true &&
229
+ node.operator === '!' &&
230
+ arg.type === 'Literal' &&
231
+ typeof arg.value === 'number' &&
232
+ (arg.value === 0 || arg.value === 1));
233
+ }
234
+ //# sourceMappingURL=oxc-ast-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oxc-ast-host.js","sourceRoot":"","sources":["oxc-ast-host.ts"],"names":[],"mappings":"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"}