@angular/build 22.2.0-next.6 → 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 (82) hide show
  1. package/package.json +13 -13
  2. package/src/builders/application/build-action.js +1 -0
  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-post-bundle.js +2 -2
  7. package/src/builders/application/execute-post-bundle.js.map +1 -1
  8. package/src/builders/application/i18n.js +2 -1
  9. package/src/builders/application/i18n.js.map +1 -1
  10. package/src/builders/application/options.js +5 -2
  11. package/src/builders/application/options.js.map +1 -1
  12. package/src/builders/application/schema.d.ts +2 -1
  13. package/src/builders/application/schema.js.map +1 -1
  14. package/src/builders/application/schema.json +1 -2
  15. package/src/builders/dev-server/options.d.ts +4 -1
  16. package/src/builders/dev-server/options.js +1 -0
  17. package/src/builders/dev-server/options.js.map +1 -1
  18. package/src/builders/dev-server/vite/server.js +1 -1
  19. package/src/builders/dev-server/vite/server.js.map +1 -1
  20. package/src/builders/unit-test/runners/vitest/plugins.d.ts +3 -4
  21. package/src/builders/unit-test/runners/vitest/plugins.js +2 -0
  22. package/src/builders/unit-test/runners/vitest/plugins.js.map +1 -1
  23. package/src/builders/unit-test/schema.d.ts +3 -2
  24. package/src/builders/unit-test/schema.js.map +1 -1
  25. package/src/builders/unit-test/schema.json +3 -2
  26. package/src/private.d.ts +0 -1
  27. package/src/private.js +1 -3
  28. package/src/private.js.map +1 -1
  29. package/src/tools/angular/compilation/aot-compilation.d.ts +1 -1
  30. package/src/tools/angular/compilation/aot-compilation.js +1 -3
  31. package/src/tools/angular/compilation/aot-compilation.js.map +1 -1
  32. package/src/tools/angular/compilation/jit-compilation.d.ts +1 -1
  33. package/src/tools/angular/compilation/jit-compilation.js +1 -3
  34. package/src/tools/angular/compilation/jit-compilation.js.map +1 -1
  35. package/src/tools/angular/compilation/typescript-compilation.d.ts +8 -1
  36. package/src/tools/angular/compilation/typescript-compilation.js +10 -2
  37. package/src/tools/angular/compilation/typescript-compilation.js.map +1 -1
  38. package/src/tools/esbuild/angular/compiler-plugin.js +40 -13
  39. package/src/tools/esbuild/angular/compiler-plugin.js.map +1 -1
  40. package/src/tools/esbuild/cache.d.ts +17 -10
  41. package/src/tools/esbuild/cache.js +60 -47
  42. package/src/tools/esbuild/cache.js.map +1 -1
  43. package/src/tools/esbuild/i18n-inliner.d.ts +6 -1
  44. package/src/tools/esbuild/i18n-inliner.js +14 -4
  45. package/src/tools/esbuild/i18n-inliner.js.map +1 -1
  46. package/src/tools/esbuild/index-html-generator.js +1 -1
  47. package/src/tools/esbuild/index-html-generator.js.map +1 -1
  48. package/src/tools/esbuild/javascript-transformer.d.ts +18 -6
  49. package/src/tools/esbuild/javascript-transformer.js +68 -57
  50. package/src/tools/esbuild/javascript-transformer.js.map +1 -1
  51. package/src/tools/esbuild/lmdb-cache-store.js +1 -1
  52. package/src/tools/esbuild/lmdb-cache-store.js.map +1 -1
  53. package/src/tools/esbuild/persistent-load-result-cache.js +9 -31
  54. package/src/tools/esbuild/persistent-load-result-cache.js.map +1 -1
  55. package/src/tools/esbuild/sourcemap-ignorelist-plugin.js +109 -0
  56. package/src/tools/esbuild/sourcemap-ignorelist-plugin.js.map +1 -1
  57. package/src/tools/esbuild/sqlite-cache-store.d.ts +1 -1
  58. package/src/tools/esbuild/sqlite-cache-store.js +239 -65
  59. package/src/tools/esbuild/sqlite-cache-store.js.map +1 -1
  60. package/src/tools/esbuild/stylesheets/sass-language.d.ts +1 -0
  61. package/src/tools/esbuild/stylesheets/sass-language.js +49 -28
  62. package/src/tools/esbuild/stylesheets/sass-language.js.map +1 -1
  63. package/src/tools/esbuild/watcher.js +26 -3
  64. package/src/tools/esbuild/watcher.js.map +1 -1
  65. package/src/tools/oxc/oxc-transform.js +1 -1
  66. package/src/tools/oxc/oxc-transform.js.map +1 -1
  67. package/src/tools/sass/sass-service.d.ts +4 -0
  68. package/src/tools/sass/sass-service.js +9 -1
  69. package/src/tools/sass/sass-service.js.map +1 -1
  70. package/src/utils/index-file/index-html-generator.d.ts +1 -1
  71. package/src/utils/index-file/index-html-generator.js +9 -13
  72. package/src/utils/index-file/index-html-generator.js.map +1 -1
  73. package/src/utils/index-file/inline-critical-css.d.ts +16 -18
  74. package/src/utils/index-file/inline-critical-css.js +44 -189
  75. package/src/utils/index-file/inline-critical-css.js.map +1 -1
  76. package/src/utils/index-file/nonce.d.ts +2 -0
  77. package/src/utils/index-file/nonce.js +1 -0
  78. package/src/utils/index-file/nonce.js.map +1 -1
  79. package/src/utils/normalize-cache.js +1 -1
  80. package/src/utils/server-rendering/manifest.d.ts +2 -2
  81. package/src/utils/server-rendering/manifest.js +53 -4
  82. package/src/utils/server-rendering/manifest.js.map +1 -1
@@ -40,198 +40,53 @@ var __importStar = (this && this.__importStar) || (function () {
40
40
  };
41
41
  })();
42
42
  Object.defineProperty(exports, "__esModule", { value: true });
43
- exports.InlineCriticalCssProcessor = void 0;
44
- const promises_1 = require("node:fs/promises");
43
+ exports.inlineCriticalCss = inlineCriticalCss;
45
44
  /**
46
- * Pattern used to extract the media query set by Beasties in an `onload` handler.
47
- */
48
- const MEDIA_SET_HANDLER_PATTERN = /^this\.media=["'](.*)["'];?$/;
49
- /**
50
- * Name of the attribute used to save the Beasties media query so it can be re-assigned on load.
51
- */
52
- const CSP_MEDIA_ATTR = 'ngCspMedia';
53
- /**
54
- * Script that dynamically updates the `media` attribute of `<link>` tags based on a custom attribute (`CSP_MEDIA_ATTR`).
45
+ * Generates a stylesheet containing the critical CSS for the given HTML content.
55
46
  *
56
- * NOTE:
57
- * We do not use `document.querySelectorAll('link').forEach((s) => s.addEventListener('load', ...)`
58
- * because load events are not always triggered reliably on Chrome.
59
- * See: https://github.com/angular/angular-cli/issues/26932 and https://crbug.com/1521256
60
- *
61
- * The script:
62
- * - Ensures the event target is a `<link>` tag with the `CSP_MEDIA_ATTR` attribute.
63
- * - Updates the `media` attribute with the value of `CSP_MEDIA_ATTR` and then removes the attribute.
64
- * - Removes the event listener when all relevant `<link>` tags have been processed.
65
- * - Uses event capturing (the `true` parameter) since load events do not bubble up the DOM.
47
+ * @param html - The HTML content to process.
48
+ * @param outputPath - The output path for the generated stylesheet.
49
+ * @param deployUrl - The deploy URL for the generated stylesheet.
50
+ * @param minify - Whether to minify the generated stylesheet.
51
+ * @param readAsset - A function that reads an asset from the given file path.
52
+ * @returns A promise that resolves to an object containing the generated stylesheet content,
53
+ * warnings, and errors.
66
54
  */
67
- const LINK_LOAD_SCRIPT_CONTENT = `
68
- (() => {
69
- const CSP_MEDIA_ATTR = '${CSP_MEDIA_ATTR}';
70
- const documentElement = document.documentElement;
71
-
72
- // Listener for load events on link tags.
73
- const listener = (e) => {
74
- const target = e.target;
75
- if (
76
- !target ||
77
- target.tagName !== 'LINK' ||
78
- !target.hasAttribute(CSP_MEDIA_ATTR)
79
- ) {
80
- return;
81
- }
82
-
83
- target.media = target.getAttribute(CSP_MEDIA_ATTR);
84
- target.removeAttribute(CSP_MEDIA_ATTR);
85
-
86
- if (!document.head.querySelector(\`link[\${CSP_MEDIA_ATTR}]\`)) {
87
- documentElement.removeEventListener('load', listener);
88
- }
89
- };
90
-
91
- documentElement.addEventListener('load', listener, true);
92
- })();`;
93
- let beastiesClassPromise;
94
- async function getBeastiesClass() {
95
- if (beastiesClassPromise) {
96
- return beastiesClassPromise;
97
- }
98
- beastiesClassPromise = Promise.resolve().then(() => __importStar(require('beasties'))).then(({ default: Beasties }) => {
99
- return class BeastiesExtended extends Beasties {
100
- optionsExtended;
101
- _warnings;
102
- _errors;
103
- get warnings() {
104
- return (this._warnings ??= []);
105
- }
106
- get errors() {
107
- return (this._errors ??= []);
108
- }
109
- addedCspScriptsDocuments = new WeakSet();
110
- documentNonces = new WeakMap();
111
- constructor(optionsExtended) {
112
- super({
113
- logger: {
114
- warn: (s) => this.warnings.push(s),
115
- error: (s) => this.errors.push(s),
116
- info: () => { },
117
- },
118
- logLevel: 'warn',
119
- path: optionsExtended.outputPath,
120
- publicPath: optionsExtended.deployUrl,
121
- compress: !!optionsExtended.minify,
122
- pruneSource: false,
123
- reduceInlineStyles: false,
124
- mergeStylesheets: false,
125
- // Note: if `preload` changes to anything other than `media`, the logic in
126
- // `embedLinkedStylesheet` will have to be updated.
127
- preload: 'media',
128
- noscriptFallback: true,
129
- inlineFonts: true,
130
- });
131
- this.optionsExtended = optionsExtended;
132
- }
133
- readFile(path) {
134
- const readAsset = this.optionsExtended.readAsset;
135
- return readAsset ? readAsset(path) : (0, promises_1.readFile)(path, 'utf-8');
136
- }
137
- /**
138
- * Override of the Beasties `embedLinkedStylesheet` method
139
- * that makes it work with Angular's CSP APIs.
140
- */
141
- async embedLinkedStylesheet(link, document) {
142
- if (link.getAttribute('media') === 'print' && link.next?.name === 'noscript') {
143
- // Workaround for https://github.com/GoogleChromeLabs/critters/issues/64
144
- // NB: this is only needed for the webpack based builders.
145
- const media = link.getAttribute('onload')?.match(MEDIA_SET_HANDLER_PATTERN);
146
- if (media) {
147
- link.removeAttribute('onload');
148
- link.setAttribute('media', media[1]);
149
- link?.next?.remove();
150
- }
151
- }
152
- const returnValue = await super.embedLinkedStylesheet(link, document);
153
- const cspNonce = this.findCspNonce(document);
154
- if (cspNonce || this.optionsExtended.autoCsp) {
155
- const beastiesMedia = link.getAttribute('onload')?.match(MEDIA_SET_HANDLER_PATTERN);
156
- if (beastiesMedia) {
157
- // If there's a Beasties-generated `onload` handler and the file has an Angular CSP nonce,
158
- // we have to remove the handler, because it's incompatible with CSP. We save the value
159
- // in a different attribute and we generate a script tag with the nonce that uses
160
- // `addEventListener` to apply the media query instead.
161
- link.removeAttribute('onload');
162
- link.setAttribute(CSP_MEDIA_ATTR, beastiesMedia[1]);
163
- this.conditionallyInsertCspLoadingScript(document, cspNonce, link);
164
- }
165
- // Ideally we would hook in at the time Beasties inserts the `style` tags, but there isn't
166
- // a way of doing that at the moment so we fall back to doing it any time a `link` tag is
167
- // inserted. We mitigate it by only iterating the direct children of the `<head>` which
168
- // should be pretty shallow.
169
- if (cspNonce) {
170
- document.head.children.forEach((child) => {
171
- if (child.tagName === 'style' && !child.hasAttribute('nonce')) {
172
- child.setAttribute('nonce', cspNonce);
173
- }
174
- });
175
- }
176
- }
177
- return returnValue;
178
- }
179
- /**
180
- * Finds the CSP nonce for a specific document.
181
- */
182
- findCspNonce(document) {
183
- if (this.documentNonces.has(document)) {
184
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
185
- return this.documentNonces.get(document);
186
- }
187
- // HTML attribute are case-insensitive, but the parser used by Beasties is case-sensitive.
188
- const nonceElement = document.querySelector('[ngCspNonce], [ngcspnonce]');
189
- const cspNonce = nonceElement?.getAttribute('ngCspNonce') ||
190
- nonceElement?.getAttribute('ngcspnonce') ||
191
- null;
192
- this.documentNonces.set(document, cspNonce);
193
- return cspNonce;
194
- }
195
- /**
196
- * Inserts the `script` tag that swaps the critical CSS at runtime,
197
- * if one hasn't been inserted into the document already.
198
- */
199
- conditionallyInsertCspLoadingScript(document, nonce, link) {
200
- if (this.addedCspScriptsDocuments.has(document)) {
201
- return;
202
- }
203
- const script = document.createElement('script');
204
- script.textContent = LINK_LOAD_SCRIPT_CONTENT;
205
- if (nonce) {
206
- script.setAttribute('nonce', nonce);
207
- }
208
- // Prepend the script to the head since it needs to
209
- // run as early as possible, before the `link` tags.
210
- document.head.insertBefore(script, link);
211
- this.addedCspScriptsDocuments.add(document);
212
- }
213
- };
55
+ async function inlineCriticalCss(html, outputPath, deployUrl, minify, readAsset) {
56
+ const { default: Beasties } = await Promise.resolve().then(() => __importStar(require('beasties')));
57
+ const warnings = [];
58
+ const errors = [];
59
+ const beasties = new Beasties({
60
+ logger: {
61
+ warn: (s) => warnings.push(s),
62
+ error: (s) => errors.push(s),
63
+ info: () => { },
64
+ },
65
+ logLevel: 'warn',
66
+ path: outputPath,
67
+ publicPath: deployUrl,
68
+ compress: minify,
69
+ pruneSource: false,
70
+ reduceInlineStyles: false,
71
+ mergeStylesheets: false,
72
+ preload: 'media-script',
73
+ nonce: (document) => {
74
+ const nonceElement = document.querySelector('[ngCspNonce], [ngcspnonce]');
75
+ const cspNonce = nonceElement?.getAttribute('ngCspNonce') || nonceElement?.getAttribute('ngcspnonce');
76
+ return cspNonce ?? undefined;
77
+ },
78
+ noscriptFallback: true,
79
+ inlineFonts: true,
214
80
  });
215
- return beastiesClassPromise;
216
- }
217
- class InlineCriticalCssProcessor {
218
- options;
219
- constructor(options) {
220
- this.options = options;
221
- }
222
- async process(html, options) {
223
- const BeastiesClass = await getBeastiesClass();
224
- const beasties = new BeastiesClass({ ...this.options, ...options });
225
- const content = await beasties.process(html);
226
- return {
227
- // Clean up value from value less attributes.
228
- // This is caused because parse5 always requires attributes to have a string value.
229
- // nomodule="" defer="" -> nomodule defer.
230
- content: content.replace(/(\s(?:defer|nomodule))=""/g, '$1'),
231
- errors: beasties.errors,
232
- warnings: beasties.warnings,
233
- };
234
- }
81
+ beasties.readFile = (path) => readAsset(path);
82
+ const content = await beasties.process(html);
83
+ return {
84
+ // Clean up value from value less attributes.
85
+ // This is caused because parse5 always requires attributes to have a string value.
86
+ // nomodule="" defer="" -> nomodule defer.
87
+ content: content.replace(/(\s(?:defer|nomodule))=""/g, '$1'),
88
+ errors,
89
+ warnings,
90
+ };
235
91
  }
236
- exports.InlineCriticalCssProcessor = InlineCriticalCssProcessor;
237
92
  //# sourceMappingURL=inline-critical-css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inline-critical-css.js","sourceRoot":"","sources":["inline-critical-css.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inline-critical-css.js","sourceRoot":"","sources":["inline-critical-css.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaH,8CAqDC;AAhED;;;;;;;;;;GAUG;AACI,KAAK,UAAU,iBAAiB,CACrC,IAAY,EACZ,UAAkB,EAClB,SAA6B,EAC7B,MAAe,EACf,SAA4C;IAM5C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,wDAAa,UAAU,GAAC,CAAC;IAEvD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC;QAC5B,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACrC,KAAK,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YACpC,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;SACf;QACD,QAAQ,EAAE,MAAM;QAChB,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,KAAK;QAClB,kBAAkB,EAAE,KAAK;QACzB,gBAAgB,EAAE,KAAK;QACvB,OAAO,EAAE,cAAc;QACvB,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE;YAClB,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC;YAC1E,MAAM,QAAQ,GACZ,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC,IAAI,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;YAEvF,OAAO,QAAQ,IAAI,SAAS,CAAC;QAC/B,CAAC;QACD,gBAAgB,EAAE,IAAI;QACtB,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAE9C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7C,OAAO;QACL,6CAA6C;QAC7C,mFAAmF;QACnF,0CAA0C;QAC1C,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,4BAA4B,EAAE,IAAI,CAAC;QAC5D,MAAM;QACN,QAAQ;KACT,CAAC;AACJ,CAAC"}
@@ -10,3 +10,5 @@
10
10
  * @param html Markup that should be processed.
11
11
  */
12
12
  export declare function addNonce(html: string): Promise<string>;
13
+ /** Finds the Angular nonce in an HTML string. */
14
+ export declare function findNonce(html: string): Promise<string | null>;
@@ -8,6 +8,7 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.addNonce = addNonce;
11
+ exports.findNonce = findNonce;
11
12
  const html_rewriting_stream_1 = require("./html-rewriting-stream");
12
13
  /**
13
14
  * Pattern matching the name of the Angular nonce attribute. Note that this is
@@ -1 +1 @@
1
- {"version":3,"file":"nonce.js","sourceRoot":"","sources":["nonce.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAcH,4BAqBC;AAjCD,mEAA8D;AAE9D;;;GAGG;AACH,MAAM,kBAAkB,GAAG,aAAa,CAAC;AAEzC;;;GAGG;AACI,KAAK,UAAU,QAAQ,CAAC,IAAY;IACzC,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;IAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,IAAA,2CAAmB,EAAC,IAAI,CAAC,CAAC;IAEzE,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE;QAC9B,IACE,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,IAAI,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC;YACrD,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,EAChD,CAAC;YACD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,OAAO,kBAAkB,EAAE,CAAC;AAC9B,CAAC;AAED,iDAAiD;AACjD,KAAK,UAAU,SAAS,CAAC,IAAY;IACnC,gFAAgF;IAChF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,IAAA,2CAAmB,EAAC,IAAI,CAAC,CAAC;IACzE,IAAI,KAAK,GAAkB,IAAI,CAAC;IAEhC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE;QAC9B,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/E,IAAI,SAAS,EAAE,KAAK,EAAE,CAAC;YACrB,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;YACxB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,4CAA4C;QAC/D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,kBAAkB,EAAE,CAAC;IAE3B,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"nonce.js","sourceRoot":"","sources":["nonce.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAcH,4BAqBC;AAGD,8BAoBC;AAxDD,mEAA8D;AAE9D;;;GAGG;AACH,MAAM,kBAAkB,GAAG,aAAa,CAAC;AAEzC;;;GAGG;AACI,KAAK,UAAU,QAAQ,CAAC,IAAY;IACzC,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;IAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,IAAA,2CAAmB,EAAC,IAAI,CAAC,CAAC;IAEzE,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE;QAC9B,IACE,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,IAAI,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC;YACrD,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,EAChD,CAAC;YACD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,OAAO,kBAAkB,EAAE,CAAC;AAC9B,CAAC;AAED,iDAAiD;AAC1C,KAAK,UAAU,SAAS,CAAC,IAAY;IAC1C,gFAAgF;IAChF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,IAAA,2CAAmB,EAAC,IAAI,CAAC,CAAC;IACzE,IAAI,KAAK,GAAkB,IAAI,CAAC;IAEhC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE;QAC9B,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/E,IAAI,SAAS,EAAE,KAAK,EAAE,CAAC;YACrB,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;YACxB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,4CAA4C;QAC/D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,kBAAkB,EAAE,CAAC;IAE3B,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -11,7 +11,7 @@ exports.normalizeCacheOptions = normalizeCacheOptions;
11
11
  const node_fs_1 = require("node:fs");
12
12
  const node_path_1 = require("node:path");
13
13
  /** Version placeholder is replaced during the build process with actual package version */
14
- const VERSION = '22.2.0-next.6';
14
+ const VERSION = '22.2.0-next.7';
15
15
  function hasCacheMetadata(value) {
16
16
  return (!!value &&
17
17
  typeof value === 'object' &&
@@ -61,7 +61,7 @@ export declare function generateAngularServerAppEngineManifest(i18nOptions: Norm
61
61
  * - `manifestContent`: A string of the SSR manifest content.
62
62
  * - `serverAssetsChunks`: An array of build output files containing the generated assets for the server.
63
63
  */
64
- export declare function generateAngularServerAppManifest(additionalHtmlOutputFiles: Map<string, BuildOutputFile>, outputFiles: BuildOutputFile[], inlineCriticalCss: boolean, routes: readonly unknown[] | undefined, locale: string | undefined, baseHref: string, initialFiles: Set<string>, metafile: Metafile, publicPath: string | undefined): {
64
+ export declare function generateAngularServerAppManifest(additionalHtmlOutputFiles: Map<string, BuildOutputFile>, outputFiles: BuildOutputFile[], inlineCriticalCss: boolean, routes: readonly unknown[] | undefined, locale: string | undefined, baseHref: string, initialFiles: Set<string>, metafile: Metafile, publicPath: string | undefined): Promise<{
65
65
  manifestContent: string;
66
66
  serverAssetsChunks: BuildOutputFile[];
67
- };
67
+ }>;
@@ -6,13 +6,49 @@
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 __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
+ })();
9
42
  Object.defineProperty(exports, "__esModule", { value: true });
10
43
  exports.SERVER_GENERATED_EXTERNALS = exports.SERVER_APP_ENGINE_MANIFEST_FILENAME = exports.SERVER_APP_MANIFEST_FILENAME = void 0;
11
44
  exports.generateAngularServerAppEngineManifest = generateAngularServerAppEngineManifest;
12
45
  exports.generateAngularServerAppManifest = generateAngularServerAppManifest;
13
46
  const node_buffer_1 = require("node:buffer");
14
47
  const node_path_1 = require("node:path");
48
+ const options_1 = require("../../builders/application/options");
15
49
  const bundler_files_1 = require("../../tools/esbuild/bundler-files");
50
+ const nonce_1 = require("../index-file/nonce");
51
+ const url_1 = require("../url");
16
52
  exports.SERVER_APP_MANIFEST_FILENAME = 'angular-app-manifest.mjs';
17
53
  exports.SERVER_APP_ENGINE_MANIFEST_FILENAME = 'angular-app-engine-manifest.mjs';
18
54
  /**
@@ -122,12 +158,16 @@ export default {
122
158
  * - `manifestContent`: A string of the SSR manifest content.
123
159
  * - `serverAssetsChunks`: An array of build output files containing the generated assets for the server.
124
160
  */
125
- function generateAngularServerAppManifest(additionalHtmlOutputFiles, outputFiles, inlineCriticalCss, routes, locale, baseHref, initialFiles, metafile, publicPath) {
161
+ async function generateAngularServerAppManifest(additionalHtmlOutputFiles, outputFiles, inlineCriticalCss, routes, locale, baseHref, initialFiles, metafile, publicPath) {
126
162
  const serverAssetsChunks = [];
127
163
  const serverAssets = {};
164
+ const criticalCssPlans = [];
165
+ let nonce;
166
+ // TODO(alanagius): This is done here as we do not use module resolution bundler/node16
167
+ const { compileSheet, encodePlan } = (await Promise.resolve(`${'beasties/compiler'}`).then(s => __importStar(require(s))));
128
168
  for (const file of [...additionalHtmlOutputFiles.values(), ...outputFiles]) {
129
169
  const extension = (0, node_path_1.extname)(file.path);
130
- if (extension === '.html' || (inlineCriticalCss && extension === '.css')) {
170
+ if (extension === '.html') {
131
171
  const jsChunkFilePath = `assets-chunks/${file.path.replace(/[./]/g, '_')}.mjs`;
132
172
  const escapedContent = escapeUnsafeChars(file.text);
133
173
  serverAssetsChunks.push((0, bundler_files_1.createOutputFile)(jsChunkFilePath, `export default \`${escapedContent}\`;`, bundler_files_1.BuildOutputFileType.ServerApplication));
@@ -142,6 +182,16 @@ function generateAngularServerAppManifest(additionalHtmlOutputFiles, outputFiles
142
182
  serverAssets[file.path] =
143
183
  `{size: ${size}, hash: '${file.hash}', text: () => import('./${jsChunkFilePath}').then(m => m.default)}`;
144
184
  }
185
+ else if (inlineCriticalCss && extension === '.css') {
186
+ const sheet = compileSheet(file.text, {
187
+ href: (0, url_1.joinUrlParts)(publicPath ?? '', file.path),
188
+ });
189
+ criticalCssPlans.push(encodePlan(sheet));
190
+ }
191
+ }
192
+ const indexHtml = additionalHtmlOutputFiles.get(options_1.INDEX_HTML_SERVER)?.text;
193
+ if (indexHtml) {
194
+ nonce = (await (0, nonce_1.findNonce)(indexHtml)) ?? undefined;
145
195
  }
146
196
  // When routes have been extracted, mappings are no longer needed, as preloads will be included in the metadata.
147
197
  const entryPointToBrowserMapping = routes?.length
@@ -150,9 +200,8 @@ function generateAngularServerAppManifest(additionalHtmlOutputFiles, outputFiles
150
200
  const manifestContent = `
151
201
  export default {
152
202
  bootstrap: () => import('./main.server.mjs').then(m => m.default),
153
- inlineCriticalCss: ${inlineCriticalCss},
154
203
  baseHref: '${baseHref}',
155
- locale: ${JSON.stringify(locale)},
204
+ ${criticalCssPlans.length ? ` criticalCssPlans: ${JSON.stringify(criticalCssPlans)},\n` : ''}${nonce ? ` nonce: ${JSON.stringify(nonce)},\n` : ''} locale: ${JSON.stringify(locale)},
156
205
  routes: ${JSON.stringify(routes, undefined, 2)},
157
206
  entryPointToBrowserMapping: ${JSON.stringify(entryPointToBrowserMapping, undefined, 2)},
158
207
  assets: {
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["manifest.ts"],"names":[],"mappings":"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"}