@angular/build 22.2.0-next.5 → 22.2.0-next.7

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 (178) hide show
  1. package/package.json +14 -13
  2. package/src/builders/application/build-action.js +48 -39
  3. package/src/builders/application/build-action.js.map +1 -1
  4. package/src/builders/application/chunk-optimizer.js +4 -1
  5. package/src/builders/application/chunk-optimizer.js.map +1 -1
  6. package/src/builders/application/execute-build.js +1 -1
  7. package/src/builders/application/execute-build.js.map +1 -1
  8. package/src/builders/application/execute-post-bundle.js +4 -7
  9. package/src/builders/application/execute-post-bundle.js.map +1 -1
  10. package/src/builders/application/i18n.js +8 -9
  11. package/src/builders/application/i18n.js.map +1 -1
  12. package/src/builders/application/index.js +2 -2
  13. package/src/builders/application/index.js.map +1 -1
  14. package/src/builders/application/options.js +5 -2
  15. package/src/builders/application/options.js.map +1 -1
  16. package/src/builders/application/results.d.ts +3 -2
  17. package/src/builders/application/schema.d.ts +2 -1
  18. package/src/builders/application/schema.js.map +1 -1
  19. package/src/builders/application/schema.json +1 -2
  20. package/src/builders/dev-server/options.d.ts +4 -1
  21. package/src/builders/dev-server/options.js +1 -0
  22. package/src/builders/dev-server/options.js.map +1 -1
  23. package/src/builders/dev-server/vite/index.js +4 -7
  24. package/src/builders/dev-server/vite/index.js.map +1 -1
  25. package/src/builders/dev-server/vite/server.js +2 -2
  26. package/src/builders/dev-server/vite/server.js.map +1 -1
  27. package/src/builders/dev-server/vite/utils.d.ts +1 -1
  28. package/src/builders/dev-server/vite/utils.js +9 -4
  29. package/src/builders/dev-server/vite/utils.js.map +1 -1
  30. package/src/builders/extract-i18n/application-extraction.js +6 -5
  31. package/src/builders/extract-i18n/application-extraction.js.map +1 -1
  32. package/src/builders/karma/application_builder.js +1 -1
  33. package/src/builders/karma/application_builder.js.map +1 -1
  34. package/src/builders/karma/assets-middleware.d.ts +2 -2
  35. package/src/builders/karma/assets-middleware.js +5 -2
  36. package/src/builders/karma/assets-middleware.js.map +1 -1
  37. package/src/builders/karma/progress-reporter.js +7 -5
  38. package/src/builders/karma/progress-reporter.js.map +1 -1
  39. package/src/builders/karma/utils.d.ts +2 -1
  40. package/src/builders/karma/utils.js +2 -2
  41. package/src/builders/karma/utils.js.map +1 -1
  42. package/src/builders/unit-test/builder.js +1 -1
  43. package/src/builders/unit-test/options.d.ts +1 -0
  44. package/src/builders/unit-test/options.js +2 -1
  45. package/src/builders/unit-test/options.js.map +1 -1
  46. package/src/builders/unit-test/runners/vitest/build-options.js +5 -6
  47. package/src/builders/unit-test/runners/vitest/build-options.js.map +1 -1
  48. package/src/builders/unit-test/runners/vitest/executor.js +4 -4
  49. package/src/builders/unit-test/runners/vitest/executor.js.map +1 -1
  50. package/src/builders/unit-test/runners/vitest/plugins.d.ts +3 -4
  51. package/src/builders/unit-test/runners/vitest/plugins.js +2 -0
  52. package/src/builders/unit-test/runners/vitest/plugins.js.map +1 -1
  53. package/src/builders/unit-test/schema.d.ts +10 -2
  54. package/src/builders/unit-test/schema.js.map +1 -1
  55. package/src/builders/unit-test/schema.json +7 -1
  56. package/src/private.d.ts +1 -2
  57. package/src/private.js +4 -5
  58. package/src/private.js.map +1 -1
  59. package/src/tools/angular/compilation/angular-compilation.d.ts +3 -8
  60. package/src/tools/angular/compilation/angular-compilation.js +2 -88
  61. package/src/tools/angular/compilation/angular-compilation.js.map +1 -1
  62. package/src/tools/angular/compilation/aot-compilation.d.ts +5 -5
  63. package/src/tools/angular/compilation/aot-compilation.js +8 -14
  64. package/src/tools/angular/compilation/aot-compilation.js.map +1 -1
  65. package/src/tools/angular/compilation/compiler-options.d.ts +24 -0
  66. package/src/tools/angular/compilation/compiler-options.js +135 -0
  67. package/src/tools/angular/compilation/compiler-options.js.map +1 -0
  68. package/src/tools/angular/compilation/index.d.ts +1 -1
  69. package/src/tools/angular/compilation/index.js +1 -3
  70. package/src/tools/angular/compilation/index.js.map +1 -1
  71. package/src/tools/angular/compilation/jit-compilation.d.ts +5 -5
  72. package/src/tools/angular/compilation/jit-compilation.js +7 -16
  73. package/src/tools/angular/compilation/jit-compilation.js.map +1 -1
  74. package/src/tools/angular/compilation/parallel-compilation.d.ts +2 -7
  75. package/src/tools/angular/compilation/parallel-compilation.js +3 -29
  76. package/src/tools/angular/compilation/parallel-compilation.js.map +1 -1
  77. package/src/tools/angular/compilation/parallel-worker.d.ts +2 -2
  78. package/src/tools/angular/compilation/parallel-worker.js +3 -12
  79. package/src/tools/angular/compilation/parallel-worker.js.map +1 -1
  80. package/src/tools/angular/compilation/typescript-compilation.d.ts +31 -0
  81. package/src/tools/angular/compilation/typescript-compilation.js +115 -0
  82. package/src/tools/angular/compilation/typescript-compilation.js.map +1 -0
  83. package/src/tools/esbuild/angular/compilation-state.d.ts +23 -3
  84. package/src/tools/esbuild/angular/compilation-state.js +51 -13
  85. package/src/tools/esbuild/angular/compilation-state.js.map +1 -1
  86. package/src/tools/esbuild/angular/compiler-plugin.js +76 -114
  87. package/src/tools/esbuild/angular/compiler-plugin.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 +17 -10
  92. package/src/tools/esbuild/cache.js +60 -47
  93. package/src/tools/esbuild/cache.js.map +1 -1
  94. package/src/tools/esbuild/i18n-inliner-worker.d.ts +47 -55
  95. package/src/tools/esbuild/i18n-inliner-worker.js +67 -98
  96. package/src/tools/esbuild/i18n-inliner-worker.js.map +1 -1
  97. package/src/tools/esbuild/i18n-inliner.d.ts +15 -11
  98. package/src/tools/esbuild/i18n-inliner.js +227 -122
  99. package/src/tools/esbuild/i18n-inliner.js.map +1 -1
  100. package/src/tools/esbuild/i18n-translation-encoder.d.ts +2 -1
  101. package/src/tools/esbuild/i18n-translation-encoder.js.map +1 -1
  102. package/src/tools/esbuild/i18n-translation-reader.d.ts +4 -3
  103. package/src/tools/esbuild/i18n-translation-reader.js.map +1 -1
  104. package/src/tools/esbuild/index-html-generator.js +1 -1
  105. package/src/tools/esbuild/index-html-generator.js.map +1 -1
  106. package/src/tools/esbuild/javascript-transformer-worker.js +8 -4
  107. package/src/tools/esbuild/javascript-transformer-worker.js.map +1 -1
  108. package/src/tools/esbuild/javascript-transformer.d.ts +18 -6
  109. package/src/tools/esbuild/javascript-transformer.js +104 -41
  110. package/src/tools/esbuild/javascript-transformer.js.map +1 -1
  111. package/src/tools/esbuild/lmdb-cache-store.js +1 -1
  112. package/src/tools/esbuild/lmdb-cache-store.js.map +1 -1
  113. package/src/tools/esbuild/persistent-load-result-cache.js +9 -31
  114. package/src/tools/esbuild/persistent-load-result-cache.js.map +1 -1
  115. package/src/tools/esbuild/sourcemap-ignorelist-plugin.js +109 -0
  116. package/src/tools/esbuild/sourcemap-ignorelist-plugin.js.map +1 -1
  117. package/src/tools/esbuild/sqlite-cache-store.d.ts +9 -1
  118. package/src/tools/esbuild/sqlite-cache-store.js +249 -63
  119. package/src/tools/esbuild/sqlite-cache-store.js.map +1 -1
  120. package/src/tools/esbuild/stylesheets/sass-language.d.ts +1 -0
  121. package/src/tools/esbuild/stylesheets/sass-language.js +68 -42
  122. package/src/tools/esbuild/stylesheets/sass-language.js.map +1 -1
  123. package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.d.ts +1 -1
  124. package/src/tools/esbuild/utils.d.ts +1 -1
  125. package/src/tools/esbuild/utils.js.map +1 -1
  126. package/src/tools/esbuild/watcher.js +26 -3
  127. package/src/tools/esbuild/watcher.js.map +1 -1
  128. package/src/tools/oxc/oxc-transform.js +76 -118
  129. package/src/tools/oxc/oxc-transform.js.map +1 -1
  130. package/src/tools/oxc/traversal.d.ts +32 -0
  131. package/src/tools/oxc/traversal.js +299 -0
  132. package/src/tools/oxc/traversal.js.map +1 -0
  133. package/src/tools/sass/rebasing-importer.d.ts +8 -14
  134. package/src/tools/sass/rebasing-importer.js +18 -24
  135. package/src/tools/sass/rebasing-importer.js.map +1 -1
  136. package/src/tools/sass/sass-service.d.ts +15 -38
  137. package/src/tools/sass/sass-service.js +132 -187
  138. package/src/tools/sass/sass-service.js.map +1 -1
  139. package/src/utils/environment-options.d.ts +12 -0
  140. package/src/utils/environment-options.js +20 -12
  141. package/src/utils/environment-options.js.map +1 -1
  142. package/src/utils/i18n-options.d.ts +2 -1
  143. package/src/utils/i18n-options.js.map +1 -1
  144. package/src/utils/index-file/index-html-generator.d.ts +1 -1
  145. package/src/utils/index-file/index-html-generator.js +9 -13
  146. package/src/utils/index-file/index-html-generator.js.map +1 -1
  147. package/src/utils/index-file/inline-critical-css.d.ts +16 -18
  148. package/src/utils/index-file/inline-critical-css.js +44 -189
  149. package/src/utils/index-file/inline-critical-css.js.map +1 -1
  150. package/src/utils/index-file/nonce.d.ts +2 -0
  151. package/src/utils/index-file/nonce.js +1 -0
  152. package/src/utils/index-file/nonce.js.map +1 -1
  153. package/src/utils/normalize-cache.d.ts +11 -1
  154. package/src/utils/normalize-cache.js +6 -3
  155. package/src/utils/normalize-cache.js.map +1 -1
  156. package/src/utils/purge-cache.js +24 -13
  157. package/src/utils/purge-cache.js.map +1 -1
  158. package/src/utils/server-rendering/manifest.d.ts +2 -2
  159. package/src/utils/server-rendering/manifest.js +53 -4
  160. package/src/utils/server-rendering/manifest.js.map +1 -1
  161. package/src/utils/server-rendering/prerender.d.ts +2 -1
  162. package/src/utils/server-rendering/prerender.js +31 -18
  163. package/src/utils/server-rendering/prerender.js.map +1 -1
  164. package/src/utils/server-rendering/render-worker.d.ts +6 -4
  165. package/src/utils/server-rendering/render-worker.js +3 -1
  166. package/src/utils/server-rendering/render-worker.js.map +1 -1
  167. package/src/utils/test-files.d.ts +2 -2
  168. package/src/utils/test-files.js +3 -3
  169. package/src/utils/test-files.js.map +1 -1
  170. package/src/tools/angular/compilation/noop-compilation.d.ts +0 -15
  171. package/src/tools/angular/compilation/noop-compilation.js +0 -27
  172. package/src/tools/angular/compilation/noop-compilation.js.map +0 -1
  173. package/src/tools/sass/worker.d.ts +0 -63
  174. package/src/tools/sass/worker.js +0 -202
  175. package/src/tools/sass/worker.js.map +0 -1
  176. /package/src/tools/{esbuild/angular → angular/compilation}/diagnostics.d.ts +0 -0
  177. /package/src/tools/{esbuild/angular → angular/compilation}/diagnostics.js +0 -0
  178. /package/src/tools/{esbuild/angular → angular/compilation}/diagnostics.js.map +0 -0
@@ -6,7 +6,7 @@
6
6
  * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  import type { DecodedSourceMap } from '@ampproject/remapping';
9
- import type { CanonicalizeContext, Importer, ImporterResult } from 'sass';
9
+ import type { CanonicalizeContext, Importer, ImporterResult } from 'sass-embedded';
10
10
  /**
11
11
  * A preprocessed cache entry for the files and directories within a previously searched
12
12
  * directory when performing Sass import resolution.
@@ -70,14 +70,15 @@ export declare class RelativeUrlRebasingImporter extends UrlRebasingImporter {
70
70
  private checkFound;
71
71
  }
72
72
  /**
73
- * Provides the Sass importer logic to resolve module (npm package) stylesheet imports via both import and
74
- * use rules and also rebase any `url()` function usage within those stylesheets. The rebasing will ensure that
75
- * the URLs in the output of the Sass compiler reflect the final filesystem location of the output CSS file.
73
+ * Provides the Sass importer logic to resolve module (npm package) stylesheet imports asynchronously
74
+ * and also rebase any `url()` function usage within those stylesheets.
76
75
  */
77
- export declare class ModuleUrlRebasingImporter extends RelativeUrlRebasingImporter {
76
+ export declare class AsyncModuleUrlRebasingImporter implements Importer<'async'> {
78
77
  private finder;
79
- constructor(entryDirectory: string, directoryCache: Map<string, DirectoryEntry>, rebaseSourceMaps: Map<string, DecodedSourceMap> | undefined, finder: (specifier: string, options: CanonicalizeContext) => URL | null);
80
- canonicalize(url: string, options: CanonicalizeContext): URL | null;
78
+ private relativeImporter;
79
+ constructor(entryDirectory: string, directoryCache: Map<string, DirectoryEntry>, rebaseSourceMaps: Map<string, DecodedSourceMap> | undefined, finder: (specifier: string, options: CanonicalizeContext) => Promise<URL | null> | URL | null);
80
+ canonicalize(url: string, options: CanonicalizeContext): Promise<URL | null>;
81
+ load(canonicalUrl: URL): ImporterResult | null;
81
82
  }
82
83
  /**
83
84
  * Provides the Sass importer logic to resolve load paths located stylesheet imports via both import and
@@ -91,11 +92,4 @@ export declare class LoadPathsUrlRebasingImporter extends RelativeUrlRebasingImp
91
92
  fromImport: boolean;
92
93
  }): URL | null;
93
94
  }
94
- /**
95
- * Workaround for Sass not calling instance methods with `this`.
96
- * The `canonicalize` and `load` methods will be bound to the class instance.
97
- * @param importer A Sass importer to bind.
98
- * @returns The bound Sass importer.
99
- */
100
- export declare function sassBindWorkaround<T extends Importer>(importer: T): T;
101
95
  export {};
@@ -7,8 +7,7 @@
7
7
  * found in the LICENSE file at https://angular.dev/license
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.LoadPathsUrlRebasingImporter = exports.ModuleUrlRebasingImporter = exports.RelativeUrlRebasingImporter = void 0;
11
- exports.sassBindWorkaround = sassBindWorkaround;
10
+ exports.LoadPathsUrlRebasingImporter = exports.AsyncModuleUrlRebasingImporter = exports.RelativeUrlRebasingImporter = void 0;
12
11
  const magic_string_1 = require("magic-string");
13
12
  const node_fs_1 = require("node:fs");
14
13
  const node_path_1 = require("node:path");
@@ -38,6 +37,7 @@ class UrlRebasingImporter {
38
37
  constructor(entryDirectory, rebaseSourceMaps) {
39
38
  this.entryDirectory = entryDirectory;
40
39
  this.rebaseSourceMaps = rebaseSourceMaps;
40
+ this.load = this.load.bind(this);
41
41
  }
42
42
  load(canonicalUrl) {
43
43
  const stylesheetPath = (0, node_url_1.fileURLToPath)(canonicalUrl);
@@ -116,6 +116,7 @@ class RelativeUrlRebasingImporter extends UrlRebasingImporter {
116
116
  constructor(entryDirectory, directoryCache = new Map(), rebaseSourceMaps) {
117
117
  super(entryDirectory, rebaseSourceMaps);
118
118
  this.directoryCache = directoryCache;
119
+ this.canonicalize = this.canonicalize.bind(this);
119
120
  }
120
121
  canonicalize(url, options) {
121
122
  return this.resolveImport(url, options.fromImport, true);
@@ -273,26 +274,30 @@ class RelativeUrlRebasingImporter extends UrlRebasingImporter {
273
274
  }
274
275
  exports.RelativeUrlRebasingImporter = RelativeUrlRebasingImporter;
275
276
  /**
276
- * Provides the Sass importer logic to resolve module (npm package) stylesheet imports via both import and
277
- * use rules and also rebase any `url()` function usage within those stylesheets. The rebasing will ensure that
278
- * the URLs in the output of the Sass compiler reflect the final filesystem location of the output CSS file.
277
+ * Provides the Sass importer logic to resolve module (npm package) stylesheet imports asynchronously
278
+ * and also rebase any `url()` function usage within those stylesheets.
279
279
  */
280
- class ModuleUrlRebasingImporter extends RelativeUrlRebasingImporter {
280
+ class AsyncModuleUrlRebasingImporter {
281
281
  finder;
282
+ relativeImporter;
282
283
  constructor(entryDirectory, directoryCache, rebaseSourceMaps, finder) {
283
- super(entryDirectory, directoryCache, rebaseSourceMaps);
284
284
  this.finder = finder;
285
+ this.relativeImporter = new RelativeUrlRebasingImporter(entryDirectory, directoryCache, rebaseSourceMaps);
286
+ this.canonicalize = this.canonicalize.bind(this);
287
+ this.load = this.load.bind(this);
285
288
  }
286
- canonicalize(url, options) {
289
+ async canonicalize(url, options) {
287
290
  if (url.startsWith('file://')) {
288
- return super.canonicalize(url, options);
291
+ return this.relativeImporter.canonicalize(url, options);
289
292
  }
290
- let result = this.finder(url, options);
291
- result &&= super.canonicalize(result.href, options);
292
- return result;
293
+ const result = await this.finder(url, options);
294
+ return result ? this.relativeImporter.canonicalize(result.href, options) : null;
295
+ }
296
+ load(canonicalUrl) {
297
+ return this.relativeImporter.load(canonicalUrl);
293
298
  }
294
299
  }
295
- exports.ModuleUrlRebasingImporter = ModuleUrlRebasingImporter;
300
+ exports.AsyncModuleUrlRebasingImporter = AsyncModuleUrlRebasingImporter;
296
301
  /**
297
302
  * Provides the Sass importer logic to resolve load paths located stylesheet imports via both import and
298
303
  * use rules and also rebase any `url()` function usage within those stylesheets. The rebasing will ensure that
@@ -319,15 +324,4 @@ class LoadPathsUrlRebasingImporter extends RelativeUrlRebasingImporter {
319
324
  }
320
325
  }
321
326
  exports.LoadPathsUrlRebasingImporter = LoadPathsUrlRebasingImporter;
322
- /**
323
- * Workaround for Sass not calling instance methods with `this`.
324
- * The `canonicalize` and `load` methods will be bound to the class instance.
325
- * @param importer A Sass importer to bind.
326
- * @returns The bound Sass importer.
327
- */
328
- function sassBindWorkaround(importer) {
329
- importer.canonicalize = importer.canonicalize.bind(importer);
330
- importer.load = importer.load.bind(importer);
331
- return importer;
332
- }
333
327
  //# sourceMappingURL=rebasing-importer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rebasing-importer.js","sourceRoot":"","sources":["rebasing-importer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rebasing-importer.js","sourceRoot":"","sources":["rebasing-importer.ts"],"names":[],"mappings":"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"}
@@ -5,44 +5,19 @@
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 { CompileResult, Deprecation, SourceSpan, StringOptions } from 'sass';
9
- export interface SerializableVersion {
10
- major: number;
11
- minor: number;
12
- patch: number;
13
- }
14
- export interface SerializableDeprecation extends Omit<Deprecation, 'obsoleteIn' | 'deprecatedIn'> {
15
- /** The version this deprecation first became active in. */
16
- deprecatedIn: SerializableVersion | null;
17
- /** The version this deprecation became obsolete in. */
18
- obsoleteIn: SerializableVersion | null;
19
- }
20
- export type SerializableWarningMessage = ({
21
- deprecation: true;
22
- deprecationType: SerializableDeprecation;
23
- } | {
24
- deprecation: false;
25
- }) & {
26
- message: string;
27
- span?: Omit<SourceSpan, 'url'> & {
28
- url?: string;
29
- };
30
- stack?: string;
31
- };
8
+ import type { CompileResult, StringOptions } from 'sass-embedded';
32
9
  /**
33
- * A Sass renderer implementation that provides an interface that can be used by Webpack's
34
- * `sass-loader`. The implementation uses a Worker thread to perform the Sass rendering
35
- * with the `dart-sass` package. The `dart-sass` synchronous render function is used within
36
- * the worker which can be up to two times faster than the asynchronous variant.
10
+ * A Sass renderer implementation that uses the persistent Dart Sass embedded compiler
11
+ * daemon (`sass-embedded`) communicating over standard input/output with protocol buffers,
12
+ * or falls back to the pure-JS Dart Sass async compiler (`sass.initAsyncCompiler()`).
37
13
  */
38
- export declare class SassWorkerImplementation {
14
+ export declare class SassCompiler {
39
15
  #private;
40
16
  private readonly rebase;
41
- readonly maxThreads: number;
42
- constructor(rebase?: boolean, maxThreads?: number);
17
+ constructor(rebase?: boolean);
43
18
  /**
44
19
  * Provides information about the Sass implementation.
45
- * This mimics enough of the `dart-sass` value to be used with the `sass-loader`.
20
+ * This mimics enough of the `sass-embedded` or `sass` value to be used with the `sass-loader`.
46
21
  */
47
22
  get info(): string;
48
23
  /**
@@ -50,18 +25,20 @@ export declare class SassWorkerImplementation {
50
25
  */
51
26
  compileString(): never;
52
27
  /**
53
- * Asynchronously request a Sass stylesheet to be renderered.
28
+ * Asynchronously request a Sass stylesheet to be rendered using the native embedded compiler
29
+ * or the pure-JS async compiler fallback.
54
30
  *
55
31
  * @param source The contents to compile.
56
- * @param options The `dart-sass` options to use when rendering the stylesheet.
32
+ * @param options The `sass` / `sass-embedded` options to use when rendering the stylesheet.
57
33
  */
58
34
  compileStringAsync(source: string, options: StringOptions<'async'>): Promise<CompileResult>;
59
35
  /**
60
- * Shutdown the Sass render worker.
61
- * Executing this method will stop any pending render requests.
36
+ * Clear the directory cache.
37
+ */
38
+ clearCache(): void;
39
+ /**
40
+ * Shutdown the Sass compiler.
62
41
  * @returns A void promise that resolves when closing is complete.
63
42
  */
64
43
  close(): Promise<void>;
65
- private processImporters;
66
- private isFileImporter;
67
44
  }
@@ -6,102 +6,92 @@
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 __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
10
- if (value !== null && value !== void 0) {
11
- if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
12
- var dispose, inner;
13
- if (async) {
14
- if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
15
- dispose = value[Symbol.asyncDispose];
16
- }
17
- if (dispose === void 0) {
18
- if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
19
- dispose = value[Symbol.dispose];
20
- if (async) inner = dispose;
21
- }
22
- if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
23
- if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
24
- env.stack.push({ value: value, dispose: dispose, async: async });
25
- }
26
- else if (async) {
27
- env.stack.push({ async: true });
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]; } };
28
14
  }
29
- return value;
30
- };
31
- var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
32
- return function (env) {
33
- function fail(e) {
34
- env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
35
- env.hasError = true;
36
- }
37
- var r, s = 0;
38
- function next() {
39
- while (r = env.stack.pop()) {
40
- try {
41
- if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
42
- if (r.dispose) {
43
- var result = r.dispose.call(r.value);
44
- if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
45
- }
46
- else s |= 1;
47
- }
48
- catch (e) {
49
- fail(e);
50
- }
51
- }
52
- if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
53
- if (env.hasError) throw env.error;
54
- }
55
- return next();
56
- };
57
- })(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
58
- var e = new Error(message);
59
- return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
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;
60
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
+ })();
61
42
  var __importDefault = (this && this.__importDefault) || function (mod) {
62
43
  return (mod && mod.__esModule) ? mod : { "default": mod };
63
44
  };
64
45
  Object.defineProperty(exports, "__esModule", { value: true });
65
- exports.SassWorkerImplementation = void 0;
66
- const node_assert_1 = __importDefault(require("node:assert"));
46
+ exports.SassCompiler = void 0;
47
+ const remapping_1 = __importDefault(require("@ampproject/remapping"));
48
+ const node_path_1 = require("node:path");
67
49
  const node_url_1 = require("node:url");
68
- const node_worker_threads_1 = require("node:worker_threads");
69
50
  const environment_options_1 = require("../../utils/environment-options");
70
- const worker_pool_1 = require("../../utils/worker-pool");
71
- // Polyfill Symbol.dispose if not present
72
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
73
- Symbol.dispose ??= Symbol('Symbol Dispose');
74
- /**
75
- * The maximum number of Workers that will be created to execute render requests.
76
- */
77
- const MAX_RENDER_WORKERS = environment_options_1.maxWorkers;
51
+ const rebasing_importer_1 = require("./rebasing-importer");
52
+ function isFileImporter(value) {
53
+ return 'findFileUrl' in value;
54
+ }
78
55
  /**
79
- * A Sass renderer implementation that provides an interface that can be used by Webpack's
80
- * `sass-loader`. The implementation uses a Worker thread to perform the Sass rendering
81
- * with the `dart-sass` package. The `dart-sass` synchronous render function is used within
82
- * the worker which can be up to two times faster than the asynchronous variant.
56
+ * A Sass renderer implementation that uses the persistent Dart Sass embedded compiler
57
+ * daemon (`sass-embedded`) communicating over standard input/output with protocol buffers,
58
+ * or falls back to the pure-JS Dart Sass async compiler (`sass.initAsyncCompiler()`).
83
59
  */
84
- class SassWorkerImplementation {
60
+ class SassCompiler {
85
61
  rebase;
86
- maxThreads;
87
- #workerPool;
88
- constructor(rebase = false, maxThreads = MAX_RENDER_WORKERS) {
62
+ #asyncCompiler;
63
+ #asyncCompilerPromise;
64
+ #directoryCache = new Map();
65
+ constructor(rebase = false) {
89
66
  this.rebase = rebase;
90
- this.maxThreads = maxThreads;
91
67
  }
92
- #ensureWorkerPool() {
93
- this.#workerPool ??= new worker_pool_1.WorkerPool({
94
- filename: require.resolve('./worker'),
95
- maxThreads: this.maxThreads,
96
- });
97
- return this.#workerPool;
68
+ async #createAsyncCompiler() {
69
+ if (environment_options_1.useSassEmbedded) {
70
+ const { initAsyncCompiler } = await Promise.resolve().then(() => __importStar(require('sass-embedded')));
71
+ return initAsyncCompiler();
72
+ }
73
+ const { initAsyncCompiler } = await Promise.resolve().then(() => __importStar(require('sass')));
74
+ return initAsyncCompiler();
75
+ }
76
+ async #ensureAsyncCompiler() {
77
+ if (this.#asyncCompiler) {
78
+ return this.#asyncCompiler;
79
+ }
80
+ this.#asyncCompilerPromise ??= this.#createAsyncCompiler();
81
+ try {
82
+ this.#asyncCompiler = await this.#asyncCompilerPromise;
83
+ }
84
+ finally {
85
+ this.#asyncCompilerPromise = undefined;
86
+ }
87
+ return this.#asyncCompiler;
98
88
  }
99
89
  /**
100
90
  * Provides information about the Sass implementation.
101
- * This mimics enough of the `dart-sass` value to be used with the `sass-loader`.
91
+ * This mimics enough of the `sass-embedded` or `sass` value to be used with the `sass-loader`.
102
92
  */
103
93
  get info() {
104
- return 'dart-sass\tworker';
94
+ return environment_options_1.useSassEmbedded ? 'sass-embedded\tasync-compiler' : 'dart-sass\tasync-compiler';
105
95
  }
106
96
  /**
107
97
  * The synchronous render function is not used by the `sass-loader`.
@@ -110,133 +100,88 @@ class SassWorkerImplementation {
110
100
  throw new Error('Sass compileString is not supported.');
111
101
  }
112
102
  /**
113
- * Asynchronously request a Sass stylesheet to be renderered.
103
+ * Asynchronously request a Sass stylesheet to be rendered using the native embedded compiler
104
+ * or the pure-JS async compiler fallback.
114
105
  *
115
106
  * @param source The contents to compile.
116
- * @param options The `dart-sass` options to use when rendering the stylesheet.
107
+ * @param options The `sass` / `sass-embedded` options to use when rendering the stylesheet.
117
108
  */
118
109
  async compileStringAsync(source, options) {
119
- const env_1 = { stack: [], error: void 0, hasError: false };
120
- try {
121
- // The `functions`, `logger` and `importer` options are JavaScript functions that cannot be transferred.
122
- // If any additional function options are added in the future, they must be excluded as well.
123
- const { functions, importers, url, logger, ...serializableOptions } = options;
124
- // The CLI's configuration does not use or expose the ability to define custom Sass functions
125
- if (functions && Object.keys(functions).length > 0) {
126
- throw new Error('Sass custom functions are not supported.');
127
- }
128
- const importerChannel = __addDisposableResource(env_1, importers?.length ? this.#createImporterChannel(importers) : undefined, false);
129
- const response = (await this.#ensureWorkerPool().run({
130
- source,
131
- importerChannel,
132
- hasLogger: !!logger,
133
- rebase: this.rebase,
134
- options: {
135
- ...serializableOptions,
136
- // URL is not serializable so to convert to string here and back to URL in the worker.
137
- url: url ? (0, node_url_1.fileURLToPath)(url) : undefined,
138
- },
139
- }, {
140
- transferList: importerChannel ? [importerChannel.port] : undefined,
141
- }));
142
- const { result, error, warnings } = response;
143
- if (warnings && logger?.warn) {
144
- for (const { message, span, ...options } of warnings) {
145
- logger.warn(message, {
146
- ...options,
147
- span: span && {
148
- ...span,
149
- url: span.url ? (0, node_url_1.pathToFileURL)(span.url) : undefined,
150
- },
151
- });
152
- }
153
- }
154
- if (error) {
155
- // Convert stringified url value required for cloning back to a URL object
156
- const url = error.span?.url;
157
- if (url) {
158
- error.span.url = (0, node_url_1.pathToFileURL)(url);
159
- }
160
- throw error;
110
+ // The CLI's configuration does not use or expose the ability to define custom Sass functions
111
+ if (options.functions && Object.keys(options.functions).length > 0) {
112
+ throw new Error('Sass custom functions are not supported.');
113
+ }
114
+ const compiler = await this.#ensureAsyncCompiler();
115
+ if (!this.rebase) {
116
+ return compiler.compileStringAsync(source, options);
117
+ }
118
+ const { functions, importers, importer, url, logger, ...serializableOptions } = options;
119
+ let finalImporters;
120
+ let loadPaths = options.loadPaths;
121
+ const entryDirectory = url ? (0, node_path_1.dirname)((0, node_url_1.fileURLToPath)(url)) : process.cwd();
122
+ const directoryCache = this.#directoryCache;
123
+ const rebaseSourceMaps = options.sourceMap ? new Map() : undefined;
124
+ if (importers?.length) {
125
+ if (importers.some((i) => !isFileImporter(i))) {
126
+ throw new Error('Only File Importers are supported.');
161
127
  }
162
- (0, node_assert_1.default)(result, 'Sass render worker should always return a result or an error');
163
- return {
164
- ...result,
165
- // URL is not serializable so in the worker we convert to string and here back to URL.
166
- loadedUrls: result.loadedUrls.map((p) => (0, node_url_1.pathToFileURL)(p)),
167
- };
128
+ finalImporters = [
129
+ new rebasing_importer_1.AsyncModuleUrlRebasingImporter(entryDirectory, directoryCache, rebaseSourceMaps, async (specifier, options) => {
130
+ for (const importer of importers) {
131
+ const result = await importer.findFileUrl(specifier, options);
132
+ if (result) {
133
+ return result;
134
+ }
135
+ }
136
+ return null;
137
+ }),
138
+ ];
168
139
  }
169
- catch (e_1) {
170
- env_1.error = e_1;
171
- env_1.hasError = true;
140
+ if (loadPaths?.length) {
141
+ finalImporters ??= [];
142
+ finalImporters.push(new rebasing_importer_1.LoadPathsUrlRebasingImporter(entryDirectory, directoryCache, rebaseSourceMaps, loadPaths));
143
+ loadPaths = undefined;
172
144
  }
173
- finally {
174
- __disposeResources(env_1);
145
+ const relativeImporter = new rebasing_importer_1.RelativeUrlRebasingImporter(entryDirectory, directoryCache, rebaseSourceMaps);
146
+ const result = await compiler.compileStringAsync(source, {
147
+ ...serializableOptions,
148
+ url,
149
+ loadPaths,
150
+ importers: finalImporters,
151
+ importer: relativeImporter,
152
+ logger,
153
+ });
154
+ if (result.sourceMap && rebaseSourceMaps?.size) {
155
+ result.sourceMap = (0, remapping_1.default)(result.sourceMap, (file, context) => (file !== context.importer ? rebaseSourceMaps.get(file) : null));
175
156
  }
157
+ return result;
176
158
  }
177
159
  /**
178
- * Shutdown the Sass render worker.
179
- * Executing this method will stop any pending render requests.
160
+ * Clear the directory cache.
161
+ */
162
+ clearCache() {
163
+ this.#directoryCache.clear();
164
+ }
165
+ /**
166
+ * Shutdown the Sass compiler.
180
167
  * @returns A void promise that resolves when closing is complete.
181
168
  */
182
169
  async close() {
183
- if (this.#workerPool) {
170
+ this.clearCache();
171
+ if (this.#asyncCompilerPromise) {
184
172
  try {
185
- await this.#workerPool.destroy();
173
+ await this.#ensureAsyncCompiler();
186
174
  }
187
- finally {
188
- this.#workerPool = undefined;
175
+ catch {
176
+ // Ignore compiler initialization failures on shutdown
189
177
  }
190
178
  }
191
- }
192
- #createImporterChannel(importers) {
193
- const { port1: mainImporterPort, port2: workerImporterPort } = new node_worker_threads_1.MessageChannel();
194
- const importerSignal = new Int32Array(new SharedArrayBuffer(4));
195
- mainImporterPort.on('message', ({ url, options }) => {
196
- this.processImporters(importers, url, {
197
- ...options,
198
- // URL is not serializable so in the worker we convert to string and here back to URL.
199
- containingUrl: options.containingUrl
200
- ? (0, node_url_1.pathToFileURL)(options.containingUrl)
201
- : null,
202
- })
203
- .then((result) => {
204
- mainImporterPort.postMessage(result);
205
- })
206
- .catch((error) => {
207
- mainImporterPort.postMessage(error);
208
- })
209
- .finally(() => {
210
- Atomics.store(importerSignal, 0, 1);
211
- Atomics.notify(importerSignal, 0);
212
- });
213
- });
214
- mainImporterPort.unref();
215
- return {
216
- port: workerImporterPort,
217
- signal: importerSignal,
218
- [Symbol.dispose]() {
219
- mainImporterPort.close();
220
- },
221
- };
222
- }
223
- async processImporters(importers, url, options) {
224
- for (const importer of importers) {
225
- if (!this.isFileImporter(importer)) {
226
- // Importer
227
- throw new Error('Only File Importers are supported.');
228
- }
229
- // File importer (Can be sync or aync).
230
- const result = await importer.findFileUrl(url, options);
231
- if (result) {
232
- return (0, node_url_1.fileURLToPath)(result);
233
- }
179
+ if (this.#asyncCompiler) {
180
+ const compiler = this.#asyncCompiler;
181
+ this.#asyncCompiler = undefined;
182
+ await compiler.dispose();
234
183
  }
235
- return null;
236
- }
237
- isFileImporter(value) {
238
- return 'findFileUrl' in value;
239
184
  }
240
185
  }
241
- exports.SassWorkerImplementation = SassWorkerImplementation;
186
+ exports.SassCompiler = SassCompiler;
242
187
  //# sourceMappingURL=sass-service.js.map