@angular/build 22.2.0-next.4 → 22.2.0-next.6

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 (169) hide show
  1. package/package.json +13 -12
  2. package/src/builders/application/build-action.js +47 -39
  3. package/src/builders/application/build-action.js.map +1 -1
  4. package/src/builders/application/execute-build.js +1 -1
  5. package/src/builders/application/execute-build.js.map +1 -1
  6. package/src/builders/application/execute-post-bundle.js +2 -5
  7. package/src/builders/application/execute-post-bundle.js.map +1 -1
  8. package/src/builders/application/i18n.js +20 -10
  9. package/src/builders/application/i18n.js.map +1 -1
  10. package/src/builders/application/index.js +2 -2
  11. package/src/builders/application/index.js.map +1 -1
  12. package/src/builders/application/results.d.ts +3 -2
  13. package/src/builders/application/setup-bundling.js +3 -1
  14. package/src/builders/application/setup-bundling.js.map +1 -1
  15. package/src/builders/dev-server/vite/index.js +4 -7
  16. package/src/builders/dev-server/vite/index.js.map +1 -1
  17. package/src/builders/dev-server/vite/server.js +1 -1
  18. package/src/builders/dev-server/vite/server.js.map +1 -1
  19. package/src/builders/dev-server/vite/utils.d.ts +1 -1
  20. package/src/builders/dev-server/vite/utils.js +9 -4
  21. package/src/builders/dev-server/vite/utils.js.map +1 -1
  22. package/src/builders/extract-i18n/application-extraction.js +6 -5
  23. package/src/builders/extract-i18n/application-extraction.js.map +1 -1
  24. package/src/builders/karma/application_builder.js +1 -1
  25. package/src/builders/karma/application_builder.js.map +1 -1
  26. package/src/builders/karma/assets-middleware.d.ts +2 -2
  27. package/src/builders/karma/assets-middleware.js +5 -2
  28. package/src/builders/karma/assets-middleware.js.map +1 -1
  29. package/src/builders/karma/progress-reporter.js +7 -5
  30. package/src/builders/karma/progress-reporter.js.map +1 -1
  31. package/src/builders/karma/utils.d.ts +2 -1
  32. package/src/builders/karma/utils.js +2 -2
  33. package/src/builders/karma/utils.js.map +1 -1
  34. package/src/builders/unit-test/builder.js +1 -1
  35. package/src/builders/unit-test/options.d.ts +1 -0
  36. package/src/builders/unit-test/options.js +2 -1
  37. package/src/builders/unit-test/options.js.map +1 -1
  38. package/src/builders/unit-test/runners/vitest/build-options.js +5 -6
  39. package/src/builders/unit-test/runners/vitest/build-options.js.map +1 -1
  40. package/src/builders/unit-test/runners/vitest/executor.js +4 -4
  41. package/src/builders/unit-test/runners/vitest/executor.js.map +1 -1
  42. package/src/builders/unit-test/schema.d.ts +7 -0
  43. package/src/builders/unit-test/schema.js.map +1 -1
  44. package/src/builders/unit-test/schema.json +5 -0
  45. package/src/private.d.ts +1 -1
  46. package/src/private.js +4 -3
  47. package/src/private.js.map +1 -1
  48. package/src/tools/angular/compilation/angular-compilation.d.ts +3 -8
  49. package/src/tools/angular/compilation/angular-compilation.js +2 -88
  50. package/src/tools/angular/compilation/angular-compilation.js.map +1 -1
  51. package/src/tools/angular/compilation/aot-compilation.d.ts +5 -5
  52. package/src/tools/angular/compilation/aot-compilation.js +9 -13
  53. package/src/tools/angular/compilation/aot-compilation.js.map +1 -1
  54. package/src/tools/angular/compilation/compiler-options.d.ts +24 -0
  55. package/src/tools/angular/compilation/compiler-options.js +135 -0
  56. package/src/tools/angular/compilation/compiler-options.js.map +1 -0
  57. package/src/tools/angular/compilation/index.d.ts +1 -1
  58. package/src/tools/angular/compilation/index.js +1 -3
  59. package/src/tools/angular/compilation/index.js.map +1 -1
  60. package/src/tools/angular/compilation/jit-compilation.d.ts +5 -5
  61. package/src/tools/angular/compilation/jit-compilation.js +8 -15
  62. package/src/tools/angular/compilation/jit-compilation.js.map +1 -1
  63. package/src/tools/angular/compilation/parallel-compilation.d.ts +2 -7
  64. package/src/tools/angular/compilation/parallel-compilation.js +39 -41
  65. package/src/tools/angular/compilation/parallel-compilation.js.map +1 -1
  66. package/src/tools/angular/compilation/parallel-worker.d.ts +2 -2
  67. package/src/tools/angular/compilation/parallel-worker.js +79 -63
  68. package/src/tools/angular/compilation/parallel-worker.js.map +1 -1
  69. package/src/tools/angular/compilation/typescript-compilation.d.ts +24 -0
  70. package/src/tools/angular/compilation/typescript-compilation.js +107 -0
  71. package/src/tools/angular/compilation/typescript-compilation.js.map +1 -0
  72. package/src/tools/angular/linker/oxc-linker.d.ts +13 -17
  73. package/src/tools/angular/linker/oxc-linker.js +27 -89
  74. package/src/tools/angular/linker/oxc-linker.js.map +1 -1
  75. package/src/tools/esbuild/angular/compilation-state.d.ts +23 -3
  76. package/src/tools/esbuild/angular/compilation-state.js +51 -13
  77. package/src/tools/esbuild/angular/compilation-state.js.map +1 -1
  78. package/src/tools/esbuild/angular/compiler-plugin.js +36 -101
  79. package/src/tools/esbuild/angular/compiler-plugin.js.map +1 -1
  80. package/src/tools/esbuild/angular/component-stylesheets.d.ts +3 -3
  81. package/src/tools/esbuild/angular/component-stylesheets.js +42 -15
  82. package/src/tools/esbuild/angular/component-stylesheets.js.map +1 -1
  83. package/src/tools/esbuild/application-code-bundle.js +5 -9
  84. package/src/tools/esbuild/application-code-bundle.js.map +1 -1
  85. package/src/tools/esbuild/bundler-context.d.ts +4 -4
  86. package/src/tools/esbuild/bundler-context.js +93 -27
  87. package/src/tools/esbuild/bundler-context.js.map +1 -1
  88. package/src/tools/esbuild/bundler-execution-result.d.ts +1 -0
  89. package/src/tools/esbuild/bundler-execution-result.js +2 -2
  90. package/src/tools/esbuild/bundler-execution-result.js.map +1 -1
  91. package/src/tools/esbuild/cache.d.ts +10 -0
  92. package/src/tools/esbuild/cache.js +18 -0
  93. package/src/tools/esbuild/cache.js.map +1 -1
  94. package/src/tools/esbuild/i18n-inliner-worker.d.ts +82 -37
  95. package/src/tools/esbuild/i18n-inliner-worker.js +134 -97
  96. package/src/tools/esbuild/i18n-inliner-worker.js.map +1 -1
  97. package/src/tools/esbuild/i18n-inliner.d.ts +42 -11
  98. package/src/tools/esbuild/i18n-inliner.js +335 -121
  99. package/src/tools/esbuild/i18n-inliner.js.map +1 -1
  100. package/src/tools/esbuild/i18n-locale-plugin.d.ts +32 -0
  101. package/src/tools/esbuild/i18n-locale-plugin.js +112 -103
  102. package/src/tools/esbuild/i18n-locale-plugin.js.map +1 -1
  103. package/src/tools/esbuild/i18n-translation-encoder.d.ts +21 -0
  104. package/src/tools/esbuild/i18n-translation-encoder.js +92 -0
  105. package/src/tools/esbuild/i18n-translation-encoder.js.map +1 -0
  106. package/src/tools/esbuild/i18n-translation-reader.d.ts +41 -0
  107. package/src/tools/esbuild/i18n-translation-reader.js +164 -0
  108. package/src/tools/esbuild/i18n-translation-reader.js.map +1 -0
  109. package/src/tools/esbuild/javascript-transformer-worker.js +41 -47
  110. package/src/tools/esbuild/javascript-transformer-worker.js.map +1 -1
  111. package/src/tools/esbuild/javascript-transformer.js +53 -1
  112. package/src/tools/esbuild/javascript-transformer.js.map +1 -1
  113. package/src/tools/esbuild/load-result-cache.d.ts +1 -0
  114. package/src/tools/esbuild/load-result-cache.js +24 -11
  115. package/src/tools/esbuild/load-result-cache.js.map +1 -1
  116. package/src/tools/esbuild/sqlite-cache-store.d.ts +8 -0
  117. package/src/tools/esbuild/sqlite-cache-store.js +19 -7
  118. package/src/tools/esbuild/sqlite-cache-store.js.map +1 -1
  119. package/src/tools/esbuild/stylesheets/sass-language.js +19 -14
  120. package/src/tools/esbuild/stylesheets/sass-language.js.map +1 -1
  121. package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.d.ts +1 -1
  122. package/src/tools/esbuild/utils.d.ts +1 -1
  123. package/src/tools/esbuild/utils.js.map +1 -1
  124. package/src/tools/oxc/oxc-transform.d.ts +3 -0
  125. package/src/tools/oxc/oxc-transform.js +103 -124
  126. package/src/tools/oxc/oxc-transform.js.map +1 -1
  127. package/src/tools/oxc/traversal.d.ts +32 -0
  128. package/src/tools/oxc/traversal.js +299 -0
  129. package/src/tools/oxc/traversal.js.map +1 -0
  130. package/src/tools/sass/rebasing-importer.d.ts +8 -14
  131. package/src/tools/sass/rebasing-importer.js +18 -24
  132. package/src/tools/sass/rebasing-importer.js.map +1 -1
  133. package/src/tools/sass/sass-service.d.ts +11 -38
  134. package/src/tools/sass/sass-service.js +124 -187
  135. package/src/tools/sass/sass-service.js.map +1 -1
  136. package/src/utils/environment-options.d.ts +12 -0
  137. package/src/utils/environment-options.js +20 -12
  138. package/src/utils/environment-options.js.map +1 -1
  139. package/src/utils/i18n-options.d.ts +2 -1
  140. package/src/utils/i18n-options.js.map +1 -1
  141. package/src/utils/normalize-cache.d.ts +11 -1
  142. package/src/utils/normalize-cache.js +6 -3
  143. package/src/utils/normalize-cache.js.map +1 -1
  144. package/src/utils/purge-cache.js +24 -13
  145. package/src/utils/purge-cache.js.map +1 -1
  146. package/src/utils/server-rendering/esm-in-memory-loader/loader-hooks.d.ts +1 -1
  147. package/src/utils/server-rendering/esm-in-memory-loader/loader-hooks.js +12 -9
  148. package/src/utils/server-rendering/esm-in-memory-loader/loader-hooks.js.map +1 -1
  149. package/src/utils/server-rendering/esm-in-memory-loader/utils.d.ts +8 -0
  150. package/src/utils/server-rendering/esm-in-memory-loader/utils.js +30 -0
  151. package/src/utils/server-rendering/esm-in-memory-loader/utils.js.map +1 -1
  152. package/src/utils/server-rendering/prerender.d.ts +2 -1
  153. package/src/utils/server-rendering/prerender.js +83 -30
  154. package/src/utils/server-rendering/prerender.js.map +1 -1
  155. package/src/utils/server-rendering/render-worker.d.ts +10 -5
  156. package/src/utils/server-rendering/render-worker.js +31 -7
  157. package/src/utils/server-rendering/render-worker.js.map +1 -1
  158. package/src/utils/test-files.d.ts +2 -2
  159. package/src/utils/test-files.js +3 -3
  160. package/src/utils/test-files.js.map +1 -1
  161. package/src/tools/angular/compilation/noop-compilation.d.ts +0 -15
  162. package/src/tools/angular/compilation/noop-compilation.js +0 -27
  163. package/src/tools/angular/compilation/noop-compilation.js.map +0 -1
  164. package/src/tools/sass/worker.d.ts +0 -63
  165. package/src/tools/sass/worker.js +0 -202
  166. package/src/tools/sass/worker.js.map +0 -1
  167. /package/src/tools/{esbuild/angular → angular/compilation}/diagnostics.d.ts +0 -0
  168. /package/src/tools/{esbuild/angular → angular/compilation}/diagnostics.js +0 -0
  169. /package/src/tools/{esbuild/angular → angular/compilation}/diagnostics.js.map +0 -0
@@ -0,0 +1,107 @@
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("../../esbuild/profiling");
50
+ const angular_compilation_1 = require("./angular-compilation");
51
+ const diagnostics_1 = require("./diagnostics");
52
+ class TypeScriptCompilation extends angular_compilation_1.AngularCompilation {
53
+ static #angularCompilerCliModule;
54
+ static async loadCompilerCli() {
55
+ TypeScriptCompilation.#angularCompilerCliModule ??= await Promise.resolve().then(() => __importStar(require('@angular/compiler-cli')));
56
+ return TypeScriptCompilation.#angularCompilerCliModule;
57
+ }
58
+ async loadConfiguration(tsconfig) {
59
+ const { readConfiguration } = await TypeScriptCompilation.loadCompilerCli();
60
+ return (0, profiling_1.profileSync)('NG_READ_CONFIG', () => readConfiguration(tsconfig, {
61
+ // Angular specific configuration defaults and overrides to ensure a functioning compilation.
62
+ suppressOutputPathCheck: true,
63
+ outDir: undefined,
64
+ sourceMap: false,
65
+ declaration: false,
66
+ declarationMap: false,
67
+ allowEmptyCodegenFiles: false,
68
+ annotationsAs: 'decorators',
69
+ enableResourceInlining: false,
70
+ supportTestBed: false,
71
+ supportJitMode: false,
72
+ // Disable removing of comments as TS is quite aggressive with these and can
73
+ // remove important annotations, such as /* @__PURE__ */ and comments like /* vite-ignore */.
74
+ removeComments: false,
75
+ }));
76
+ }
77
+ sourceFiles = new Map();
78
+ invalidateFiles(files) {
79
+ for (const file of files) {
80
+ this.sourceFiles.delete((0, path_1.toPosixPath)(file));
81
+ }
82
+ }
83
+ async update(files) {
84
+ this.invalidateFiles(files);
85
+ }
86
+ async diagnoseFiles(modes = angular_compilation_1.DiagnosticModes.All) {
87
+ if (modes === angular_compilation_1.DiagnosticModes.None) {
88
+ return {};
89
+ }
90
+ const result = {};
91
+ await (0, profiling_1.profileAsync)('NG_DIAGNOSTICS_TOTAL', async () => {
92
+ const diagnostics = await this.collectDiagnostics(modes);
93
+ for (const diagnostic of diagnostics) {
94
+ const message = (0, diagnostics_1.convertTypeScriptDiagnostic)(typescript_1.default, diagnostic);
95
+ if (diagnostic.category === typescript_1.default.DiagnosticCategory.Error) {
96
+ (result.errors ??= []).push(message);
97
+ }
98
+ else {
99
+ (result.warnings ??= []).push(message);
100
+ }
101
+ }
102
+ });
103
+ return result;
104
+ }
105
+ }
106
+ exports.TypeScriptCompilation = TypeScriptCompilation;
107
+ //# 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,8CAAkD;AAClD,uDAAoE;AACpE,+DAA4E;AAC5E,+CAA4D;AAE5D,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,CAAC,QAAgB;QAChD,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,qBAAqB,CAAC,eAAe,EAAE,CAAC;QAE5E,OAAO,IAAA,uBAAW,EAAC,gBAAgB,EAAE,GAAG,EAAE,CACxC,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;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;AAxED,sDAwEC"}
@@ -5,22 +5,18 @@
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
6
  * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
- import type { DecodedSourceMap } from '@ampproject/remapping';
9
- export interface OxcLinkerOptions {
10
- sourcemap?: boolean;
11
- jit?: boolean;
12
- skipCheck?: boolean;
13
- }
8
+ import type { CallExpression } from '@oxc-project/types';
14
9
  /**
15
- * Executes Angular partial declaration linking on the specified JavaScript file
16
- * using `oxc-parser` and `magic-string`.
17
- *
18
- * @param filename The full path to the file.
19
- * @param code The source code content.
20
- * @param options Linker options (sourcemap, jit, skipCheck).
21
- * @returns An object containing the transformed code and optional source map.
10
+ * Manages Angular partial declaration linking using Oxc AST nodes.
22
11
  */
23
- export declare function linkWithOxc(filename: string, code: string, options?: OxcLinkerOptions): {
24
- code: string;
25
- map: DecodedSourceMap | undefined;
26
- };
12
+ export declare class OxcLinker {
13
+ #private;
14
+ constructor(filename: string, code: string, jit?: boolean);
15
+ /**
16
+ * Attempts to link an Angular partial declaration CallExpression.
17
+ *
18
+ * @param node The CallExpression AST node to check and link.
19
+ * @returns The linked code string if the node is a partial declaration, or undefined otherwise.
20
+ */
21
+ linkCallExpression(node: CallExpression): string | undefined;
22
+ }
@@ -6,15 +6,10 @@
6
6
  * Use of this source code is governed by an MIT-style license that can be
7
7
  * found in the LICENSE file at https://angular.dev/license
8
8
  */
9
- var __importDefault = (this && this.__importDefault) || function (mod) {
10
- return (mod && mod.__esModule) ? mod : { "default": mod };
11
- };
12
9
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.linkWithOxc = linkWithOxc;
10
+ exports.OxcLinker = void 0;
14
11
  const compiler_cli_1 = require("@angular/compiler-cli");
15
12
  const linker_1 = require("@angular/compiler-cli/linker");
16
- const magic_string_1 = __importDefault(require("magic-string"));
17
- const oxc_parser_1 = require("oxc-parser");
18
13
  const oxc_ast_host_1 = require("./oxc-ast-host");
19
14
  const string_ast_factory_1 = require("./string-ast-factory");
20
15
  /**
@@ -44,94 +39,37 @@ const noopFileSystem = {
44
39
  dirname: (path) => path.split('/').slice(0, -1).join('/'),
45
40
  relative: (_from, to) => to,
46
41
  };
47
- const SHARED_LOGGER = new compiler_cli_1.ConsoleLogger(compiler_cli_1.LogLevel.info);
48
- const SHARED_AST_HOST = new oxc_ast_host_1.OxcAstHost();
49
- const SHARED_DECLARATION_SCOPE = new InlineDeclarationScope();
42
+ let SHARED_LOGGER;
43
+ let SHARED_AST_HOST;
44
+ let SHARED_DECLARATION_SCOPE;
50
45
  /**
51
- * Recursively traverses ESTree AST nodes with subtree pruning.
52
- * When `onCallExpression` returns `true` for a linked `CallExpression`,
53
- * child traversal into `callee` and `arguments` is skipped.
54
- *
55
- * Why subtree pruning is safe for the linker:
56
- * - Angular partial declarations (`ɵɵngDeclareComponent`, `ɵɵngDeclareDirective`,
57
- * etc.) are never nested inside each other.
58
- * - Once a declaration `CallExpression` is linked and replaced, there can never be
59
- * another partial declaration within its metadata argument object. Pruning its
60
- * subtree avoids traversing hundreds of unnecessary metadata argument nodes per
61
- * component.
46
+ * Manages Angular partial declaration linking using Oxc AST nodes.
62
47
  */
63
- function visitNode(node, onCallExpression) {
64
- if (node === null || node === undefined || typeof node !== 'object') {
65
- return;
66
- }
67
- if (Array.isArray(node)) {
68
- for (let i = 0; i < node.length; i++) {
69
- visitNode(node[i], onCallExpression);
70
- }
71
- return;
48
+ class OxcLinker {
49
+ #fileLinker;
50
+ constructor(filename, code, jit = false) {
51
+ SHARED_LOGGER ??= new compiler_cli_1.ConsoleLogger(compiler_cli_1.LogLevel.info);
52
+ SHARED_AST_HOST ??= new oxc_ast_host_1.OxcAstHost();
53
+ SHARED_DECLARATION_SCOPE ??= new InlineDeclarationScope();
54
+ const astFactory = new string_ast_factory_1.StringAstFactory(code);
55
+ const linkerEnvironment = linker_1.LinkerEnvironment.create(noopFileSystem, SHARED_LOGGER, SHARED_AST_HOST, astFactory, { linkerJitMode: jit, sourceMapping: false });
56
+ this.#fileLinker = new linker_1.FileLinker(linkerEnvironment, filename, code);
72
57
  }
73
- const nodeType = node.type;
74
- if (!nodeType) {
75
- return;
76
- }
77
- if (nodeType === 'CallExpression') {
78
- if (onCallExpression(node)) {
79
- // Subtree pruning: partial declarations cannot be nested, so skip child traversal.
80
- return;
81
- }
82
- }
83
- const keys = oxc_parser_1.visitorKeys[nodeType];
84
- if (keys) {
85
- for (let i = 0; i < keys.length; i++) {
86
- const child = node[keys[i]];
87
- if (child !== undefined && child !== null) {
88
- visitNode(child, onCallExpression);
89
- }
90
- }
91
- }
92
- }
93
- /**
94
- * Executes Angular partial declaration linking on the specified JavaScript file
95
- * using `oxc-parser` and `magic-string`.
96
- *
97
- * @param filename The full path to the file.
98
- * @param code The source code content.
99
- * @param options Linker options (sourcemap, jit, skipCheck).
100
- * @returns An object containing the transformed code and optional source map.
101
- */
102
- function linkWithOxc(filename, code, options = {}) {
103
- if (!options.skipCheck && !(0, linker_1.needsLinking)(filename, code)) {
104
- return { code, map: undefined };
105
- }
106
- const astFactory = new string_ast_factory_1.StringAstFactory(code);
107
- const linkerEnvironment = linker_1.LinkerEnvironment.create(noopFileSystem, SHARED_LOGGER, SHARED_AST_HOST, astFactory, { linkerJitMode: options.jit ?? false, sourceMapping: false });
108
- const fileLinker = new linker_1.FileLinker(linkerEnvironment, filename, code);
109
- const { program } = (0, oxc_parser_1.parseSync)(filename, code, { range: true });
110
- let s;
111
- let hasLinked = false;
112
- visitNode(program, (node) => {
58
+ /**
59
+ * Attempts to link an Angular partial declaration CallExpression.
60
+ *
61
+ * @param node The CallExpression AST node to check and link.
62
+ * @returns The linked code string if the node is a partial declaration, or undefined otherwise.
63
+ */
64
+ linkCallExpression(node) {
113
65
  const calleeName = SHARED_AST_HOST.getSymbolName(node.callee);
114
- if (calleeName && fileLinker.isPartialDeclaration(calleeName)) {
115
- const args = SHARED_AST_HOST.parseArguments(node);
116
- const linkedCode = fileLinker.linkPartialDeclaration(calleeName, args, SHARED_DECLARATION_SCOPE);
117
- s ??= new magic_string_1.default(code);
118
- s.overwrite(node.start, node.end, linkedCode);
119
- hasLinked = true;
120
- return true;
66
+ if (!calleeName || !this.#fileLinker.isPartialDeclaration(calleeName)) {
67
+ return undefined;
121
68
  }
122
- return false;
123
- });
124
- if (!hasLinked || !s) {
125
- return { code, map: undefined };
126
- }
127
- let map;
128
- if (options.sourcemap) {
129
- const rawMap = s.generateDecodedMap({ hires: true, source: filename });
130
- map = { ...rawMap, version: 3 };
69
+ const args = SHARED_AST_HOST.parseArguments(node);
70
+ const linkedCode = this.#fileLinker.linkPartialDeclaration(calleeName, args, SHARED_DECLARATION_SCOPE);
71
+ return linkedCode;
131
72
  }
132
- return {
133
- code: s.toString(),
134
- map,
135
- };
136
73
  }
74
+ exports.OxcLinker = OxcLinker;
137
75
  //# sourceMappingURL=oxc-linker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oxc-linker.js","sourceRoot":"","sources":["oxc-linker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oxc-linker.js","sourceRoot":"","sources":["oxc-linker.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,wDAAgE;AAChE,yDAAoG;AAMpG,iDAA4C;AAC5C,6DAAwD;AAExD;;;;;;;;;;;;;;GAcG;AACH,MAAM,sBAAsB;IAC1B,mBAAmB;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,MAAM,cAAc,GAAuB;IACzC,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK;IACnB,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE;IAClB,OAAO,EAAE,CAAC,GAAG,KAAe,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;IAChD,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IACjE,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAU,EAAE,EAAE,CAAC,EAAE;CACX,CAAC;AAEnC,IAAI,aAA4B,CAAC;AACjC,IAAI,eAA2B,CAAC;AAChC,IAAI,wBAAgD,CAAC;AAErD;;GAEG;AACH,MAAa,SAAS;IACX,WAAW,CAA2D;IAE/E,YAAY,QAAgB,EAAE,IAAY,EAAE,GAAG,GAAG,KAAK;QACrD,aAAa,KAAK,IAAI,4BAAa,CAAC,uBAAQ,CAAC,IAAI,CAAC,CAAC;QACnD,eAAe,KAAK,IAAI,yBAAU,EAAE,CAAC;QACrC,wBAAwB,KAAK,IAAI,sBAAsB,EAAE,CAAC;QAE1D,MAAM,UAAU,GAAG,IAAI,qCAAgB,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,iBAAiB,GAAG,0BAAiB,CAAC,MAAM,CAChD,cAAc,EACd,aAAa,EACb,eAAe,EACf,UAAU,EACV,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,CAC7C,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,IAAI,mBAAU,CAAC,iBAAiB,EAAE,QAA0B,EAAE,IAAI,CAAC,CAAC;IACzF,CAAC;IAED;;;;;OAKG;IACH,kBAAkB,CAAC,IAAoB;QACrC,MAAM,UAAU,GAAG,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9D,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC;YACtE,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,sBAAsB,CACxD,UAAU,EACV,IAAI,EACJ,wBAAwB,CACzB,CAAC;QAEF,OAAO,UAAoB,CAAC;IAC9B,CAAC;CACF;AAzCD,8BAyCC"}
@@ -5,14 +5,34 @@
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
6
  * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
- import { type AngularCompilation } from '../../angular/compilation';
9
- export declare class AngularCompilationContext {
8
+ import type { CompilerOptions } from '@angular/compiler-cli';
9
+ import type { AngularCompilation } from '../../angular/compilation';
10
+ export declare abstract class AngularCompilationContext {
11
+ abstract readonly compilation?: AngularCompilation;
12
+ abstract isPrimary(): this is PrimaryCompilationContext;
13
+ abstract readonly waitUntilReady: Promise<boolean>;
14
+ abstract getCompilerOptions(): Promise<CompilerOptions>;
15
+ abstract dispose(): Promise<void>;
16
+ createSecondaryContext(): AngularCompilationContext;
17
+ }
18
+ export declare class PrimaryCompilationContext extends AngularCompilationContext {
10
19
  #private;
11
20
  constructor(compilation: AngularCompilation);
21
+ isPrimary(): this is PrimaryCompilationContext;
12
22
  get compilation(): AngularCompilation;
13
23
  get waitUntilReady(): Promise<boolean>;
24
+ getCompilerOptions(): Promise<CompilerOptions>;
25
+ setCompilerOptions(options: CompilerOptions): void;
14
26
  markAsReady(hasErrors: boolean): void;
15
27
  markAsInProgress(): void;
16
28
  dispose(): Promise<void>;
17
- createSecondaryContext(): AngularCompilationContext;
29
+ }
30
+ export declare class SecondaryCompilationContext extends AngularCompilationContext {
31
+ private readonly primaryContext?;
32
+ constructor(primaryContext?: AngularCompilationContext | undefined);
33
+ isPrimary(): this is PrimaryCompilationContext;
34
+ get compilation(): undefined;
35
+ get waitUntilReady(): Promise<boolean>;
36
+ getCompilerOptions(): Promise<CompilerOptions>;
37
+ dispose(): Promise<void>;
18
38
  }
@@ -7,17 +7,29 @@
7
7
  * found in the LICENSE file at https://angular.dev/license
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.AngularCompilationContext = void 0;
11
- const compilation_1 = require("../../angular/compilation");
10
+ exports.SecondaryCompilationContext = exports.PrimaryCompilationContext = exports.AngularCompilationContext = void 0;
12
11
  class AngularCompilationContext {
12
+ createSecondaryContext() {
13
+ return new SecondaryCompilationContext(this);
14
+ }
15
+ }
16
+ exports.AngularCompilationContext = AngularCompilationContext;
17
+ class PrimaryCompilationContext extends AngularCompilationContext {
13
18
  #compilation;
14
19
  #pendingCompilation = true;
15
20
  #resolveCompilationReady;
16
21
  #compilationReadyPromise;
17
22
  #hasErrors = true;
23
+ #compilerOptions;
24
+ #resolveCompilerOptions;
25
+ #compilerOptionsPromise;
18
26
  constructor(compilation) {
27
+ super();
19
28
  this.#compilation = compilation;
20
29
  }
30
+ isPrimary() {
31
+ return true;
32
+ }
21
33
  get compilation() {
22
34
  return this.#compilation;
23
35
  }
@@ -30,14 +42,39 @@ class AngularCompilationContext {
30
42
  });
31
43
  return this.#compilationReadyPromise;
32
44
  }
45
+ getCompilerOptions() {
46
+ if (this.#compilerOptions) {
47
+ return Promise.resolve(this.#compilerOptions);
48
+ }
49
+ if (!this.#pendingCompilation) {
50
+ return Promise.resolve({});
51
+ }
52
+ this.#compilerOptionsPromise ??= new Promise((resolve) => {
53
+ this.#resolveCompilerOptions = resolve;
54
+ });
55
+ return this.#compilerOptionsPromise;
56
+ }
57
+ setCompilerOptions(options) {
58
+ this.#compilerOptions = options;
59
+ this.#resolveCompilerOptions?.(options);
60
+ this.#resolveCompilerOptions = undefined;
61
+ this.#compilerOptionsPromise = undefined;
62
+ }
33
63
  markAsReady(hasErrors) {
34
64
  this.#hasErrors = hasErrors;
35
65
  this.#resolveCompilationReady?.(hasErrors);
66
+ this.#resolveCompilationReady = undefined;
36
67
  this.#compilationReadyPromise = undefined;
37
68
  this.#pendingCompilation = false;
69
+ if (this.#resolveCompilerOptions) {
70
+ this.#resolveCompilerOptions(this.#compilerOptions ?? {});
71
+ this.#resolveCompilerOptions = undefined;
72
+ this.#compilerOptionsPromise = undefined;
73
+ }
38
74
  }
39
75
  markAsInProgress() {
40
76
  this.#pendingCompilation = true;
77
+ this.#compilerOptions = undefined;
41
78
  }
42
79
  #disposal;
43
80
  dispose() {
@@ -53,28 +90,29 @@ class AngularCompilationContext {
53
90
  // Suppress closure errors to avoid unhandled rejections during teardown.
54
91
  }
55
92
  }
56
- createSecondaryContext() {
57
- return new SecondaryCompilationContext(this);
58
- }
59
93
  }
60
- exports.AngularCompilationContext = AngularCompilationContext;
94
+ exports.PrimaryCompilationContext = PrimaryCompilationContext;
61
95
  class SecondaryCompilationContext extends AngularCompilationContext {
62
96
  primaryContext;
63
97
  constructor(primaryContext) {
64
- super(new compilation_1.NoopCompilation());
98
+ super();
65
99
  this.primaryContext = primaryContext;
66
100
  }
67
- get waitUntilReady() {
68
- return this.primaryContext.waitUntilReady;
101
+ isPrimary() {
102
+ return false;
69
103
  }
70
- markAsReady(hasErrors) {
71
- // No-op: secondary contexts do not control compilation state
104
+ get compilation() {
105
+ return undefined;
72
106
  }
73
- markAsInProgress() {
74
- // No-op: secondary contexts do not control compilation state
107
+ get waitUntilReady() {
108
+ return this.primaryContext?.waitUntilReady ?? Promise.resolve(false);
109
+ }
110
+ getCompilerOptions() {
111
+ return this.primaryContext?.getCompilerOptions() ?? Promise.resolve({});
75
112
  }
76
113
  async dispose() {
77
114
  // No-op for secondary context to avoid disposing the primary compilation worker
78
115
  }
79
116
  }
117
+ exports.SecondaryCompilationContext = SecondaryCompilationContext;
80
118
  //# sourceMappingURL=compilation-state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compilation-state.js","sourceRoot":"","sources":["compilation-state.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,2DAAqF;AAErF,MAAa,yBAAyB;IACpC,YAAY,CAAqB;IACjC,mBAAmB,GAAG,IAAI,CAAC;IAC3B,wBAAwB,CAAyC;IACjE,wBAAwB,CAA+B;IACvD,UAAU,GAAG,IAAI,CAAC;IAElB,YAAY,WAA+B;QACzC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,cAAc;QAChB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,wBAAwB,KAAK,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACxD,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,wBAAwB,CAAC;IACvC,CAAC;IAED,WAAW,CAAC,SAAkB;QAC5B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,wBAAwB,EAAE,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,wBAAwB,GAAG,SAAS,CAAC;QAC1C,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACnC,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAClC,CAAC;IAED,SAAS,CAA4B;IAErC,OAAO;QACL,4EAA4E;QAC5E,OAAO,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,yEAAyE;QAC3E,CAAC;IACH,CAAC;IAED,sBAAsB;QACpB,OAAO,IAAI,2BAA2B,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;CACF;AAzDD,8DAyDC;AAED,MAAM,2BAA4B,SAAQ,yBAAyB;IAC7C;IAApB,YAAoB,cAAyC;QAC3D,KAAK,CAAC,IAAI,6BAAe,EAAE,CAAC,CAAC;QADX,mBAAc,GAAd,cAAc,CAA2B;IAE7D,CAAC;IAED,IAAa,cAAc;QACzB,OAAO,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC;IAC5C,CAAC;IAEQ,WAAW,CAAC,SAAkB;QACrC,6DAA6D;IAC/D,CAAC;IAEQ,gBAAgB;QACvB,6DAA6D;IAC/D,CAAC;IAEQ,KAAK,CAAC,OAAO;QACpB,gFAAgF;IAClF,CAAC;CACF"}
1
+ {"version":3,"file":"compilation-state.js","sourceRoot":"","sources":["compilation-state.ts"],"names":[],"mappings":"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"}