@angular-devkit/build-angular 18.0.0-next.2 → 18.0.0-next.4

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 (249) hide show
  1. package/builders.json +1 -5
  2. package/package.json +21 -20
  3. package/src/builders/app-shell/index.js +3 -5
  4. package/src/builders/browser/index.d.ts +1 -1
  5. package/src/builders/browser/index.js +9 -13
  6. package/src/builders/browser-esbuild/index.d.ts +2 -2
  7. package/src/builders/browser-esbuild/index.js +6 -9
  8. package/src/builders/dev-server/builder.d.ts +2 -2
  9. package/src/builders/dev-server/builder.js +11 -6
  10. package/src/builders/dev-server/index.d.ts +1 -1
  11. package/src/builders/dev-server/webpack-server.d.ts +1 -1
  12. package/src/builders/dev-server/webpack-server.js +5 -6
  13. package/src/builders/extract-i18n/application-extraction.js +2 -2
  14. package/src/builders/extract-i18n/builder.js +3 -4
  15. package/src/builders/extract-i18n/options.d.ts +1 -1
  16. package/src/builders/extract-i18n/options.js +2 -2
  17. package/src/builders/jest/index.js +2 -2
  18. package/src/builders/karma/index.js +3 -4
  19. package/src/builders/ng-packagr/index.js +8 -7
  20. package/src/builders/ng-packagr/schema.d.ts +4 -0
  21. package/src/builders/ng-packagr/schema.json +4 -0
  22. package/src/builders/prerender/index.js +2 -2
  23. package/src/builders/prerender/render-worker.js +1 -1
  24. package/src/builders/server/index.js +3 -4
  25. package/src/builders/server/platform-server-exports-loader.js +2 -1
  26. package/src/builders/ssr-dev-server/index.js +34 -34
  27. package/src/builders/web-test-runner/index.js +2 -2
  28. package/src/index.d.ts +1 -1
  29. package/src/index.js +2 -2
  30. package/src/tools/babel/presets/application.js +1 -1
  31. package/src/tools/webpack/configs/styles.js +2 -2
  32. package/src/tools/webpack/plugins/any-component-style-budget-checker.d.ts +2 -2
  33. package/src/tools/webpack/plugins/any-component-style-budget-checker.js +14 -17
  34. package/src/tools/webpack/plugins/css-optimizer-plugin.js +2 -2
  35. package/src/tools/webpack/plugins/index-html-webpack-plugin.d.ts +1 -1
  36. package/src/tools/webpack/plugins/index-html-webpack-plugin.js +3 -3
  37. package/src/tools/webpack/plugins/javascript-optimizer-plugin.js +2 -2
  38. package/src/tools/webpack/plugins/service-worker-plugin.js +2 -2
  39. package/src/tools/webpack/utils/stats.d.ts +1 -14
  40. package/src/tools/webpack/utils/stats.js +3 -207
  41. package/src/utils/action-executor.d.ts +1 -1
  42. package/src/utils/i18n-inlining.d.ts +1 -1
  43. package/src/utils/i18n-webpack.d.ts +16 -0
  44. package/src/utils/i18n-webpack.js +107 -0
  45. package/src/utils/index.d.ts +1 -2
  46. package/src/utils/index.js +4 -2
  47. package/src/utils/normalize-builder-schema.js +2 -2
  48. package/src/utils/normalize-cache.js +1 -1
  49. package/src/utils/normalize-optimization.d.ts +1 -1
  50. package/src/utils/normalize-optimization.js +0 -2
  51. package/src/utils/output-paths.d.ts +1 -1
  52. package/src/utils/webpack-browser-config.d.ts +1 -1
  53. package/src/utils/webpack-browser-config.js +2 -2
  54. package/src/builders/application/build-action.d.ts +0 -33
  55. package/src/builders/application/build-action.js +0 -183
  56. package/src/builders/application/execute-build.d.ts +0 -11
  57. package/src/builders/application/execute-build.js +0 -127
  58. package/src/builders/application/execute-post-bundle.d.ts +0 -25
  59. package/src/builders/application/execute-post-bundle.js +0 -96
  60. package/src/builders/application/i18n.d.ts +0 -29
  61. package/src/builders/application/i18n.js +0 -128
  62. package/src/builders/application/index.d.ts +0 -57
  63. package/src/builders/application/index.js +0 -121
  64. package/src/builders/application/options.d.ts +0 -149
  65. package/src/builders/application/options.js +0 -352
  66. package/src/builders/application/schema.d.ts +0 -512
  67. package/src/builders/application/schema.js +0 -58
  68. package/src/builders/application/schema.json +0 -635
  69. package/src/builders/application/setup-bundling.d.ts +0 -19
  70. package/src/builders/application/setup-bundling.js +0 -71
  71. package/src/builders/dev-server/vite-server.d.ts +0 -30
  72. package/src/builders/dev-server/vite-server.js +0 -502
  73. package/src/tools/babel/plugins/adjust-static-class-members.d.ts +0 -27
  74. package/src/tools/babel/plugins/adjust-static-class-members.js +0 -351
  75. package/src/tools/babel/plugins/adjust-typescript-enums.d.ts +0 -23
  76. package/src/tools/babel/plugins/adjust-typescript-enums.js +0 -113
  77. package/src/tools/babel/plugins/elide-angular-metadata.d.ts +0 -23
  78. package/src/tools/babel/plugins/elide-angular-metadata.js +0 -110
  79. package/src/tools/babel/plugins/index.d.ts +0 -11
  80. package/src/tools/babel/plugins/index.js +0 -21
  81. package/src/tools/babel/plugins/pure-toplevel-functions.d.ts +0 -16
  82. package/src/tools/babel/plugins/pure-toplevel-functions.js +0 -90
  83. package/src/tools/esbuild/angular/angular-host.d.ts +0 -26
  84. package/src/tools/esbuild/angular/angular-host.js +0 -72
  85. package/src/tools/esbuild/angular/compilation/angular-compilation.d.ts +0 -42
  86. package/src/tools/esbuild/angular/compilation/angular-compilation.js +0 -94
  87. package/src/tools/esbuild/angular/compilation/aot-compilation.d.ts +0 -21
  88. package/src/tools/esbuild/angular/compilation/aot-compilation.js +0 -228
  89. package/src/tools/esbuild/angular/compilation/factory.d.ts +0 -16
  90. package/src/tools/esbuild/angular/compilation/factory.js +0 -56
  91. package/src/tools/esbuild/angular/compilation/index.d.ts +0 -10
  92. package/src/tools/esbuild/angular/compilation/index.js +0 -17
  93. package/src/tools/esbuild/angular/compilation/jit-compilation.d.ts +0 -21
  94. package/src/tools/esbuild/angular/compilation/jit-compilation.js +0 -106
  95. package/src/tools/esbuild/angular/compilation/noop-compilation.d.ts +0 -20
  96. package/src/tools/esbuild/angular/compilation/noop-compilation.js +0 -26
  97. package/src/tools/esbuild/angular/compilation/parallel-compilation.d.ts +0 -42
  98. package/src/tools/esbuild/angular/compilation/parallel-compilation.js +0 -123
  99. package/src/tools/esbuild/angular/compilation/parallel-worker.d.ts +0 -33
  100. package/src/tools/esbuild/angular/compilation/parallel-worker.js +0 -90
  101. package/src/tools/esbuild/angular/compilation-state.d.ts +0 -15
  102. package/src/tools/esbuild/angular/compilation-state.js +0 -44
  103. package/src/tools/esbuild/angular/compiler-plugin.d.ts +0 -27
  104. package/src/tools/esbuild/angular/compiler-plugin.js +0 -433
  105. package/src/tools/esbuild/angular/component-stylesheets.d.ts +0 -44
  106. package/src/tools/esbuild/angular/component-stylesheets.js +0 -150
  107. package/src/tools/esbuild/angular/diagnostics.d.ts +0 -15
  108. package/src/tools/esbuild/angular/diagnostics.js +0 -69
  109. package/src/tools/esbuild/angular/file-reference-tracker.d.ts +0 -17
  110. package/src/tools/esbuild/angular/file-reference-tracker.js +0 -57
  111. package/src/tools/esbuild/angular/jit-plugin-callbacks.d.ts +0 -23
  112. package/src/tools/esbuild/angular/jit-plugin-callbacks.js +0 -117
  113. package/src/tools/esbuild/angular/jit-resource-transformer.d.ts +0 -17
  114. package/src/tools/esbuild/angular/jit-resource-transformer.js +0 -186
  115. package/src/tools/esbuild/angular/source-file-cache.d.ts +0 -18
  116. package/src/tools/esbuild/angular/source-file-cache.js +0 -65
  117. package/src/tools/esbuild/angular/uri.d.ts +0 -54
  118. package/src/tools/esbuild/angular/uri.js +0 -74
  119. package/src/tools/esbuild/angular/web-worker-transformer.d.ts +0 -17
  120. package/src/tools/esbuild/angular/web-worker-transformer.js +0 -94
  121. package/src/tools/esbuild/application-code-bundle.d.ts +0 -20
  122. package/src/tools/esbuild/application-code-bundle.js +0 -368
  123. package/src/tools/esbuild/budget-stats.d.ts +0 -19
  124. package/src/tools/esbuild/budget-stats.js +0 -59
  125. package/src/tools/esbuild/bundler-context.d.ts +0 -75
  126. package/src/tools/esbuild/bundler-context.js +0 -366
  127. package/src/tools/esbuild/bundler-execution-result.d.ts +0 -71
  128. package/src/tools/esbuild/bundler-execution-result.js +0 -131
  129. package/src/tools/esbuild/cache.d.ts +0 -88
  130. package/src/tools/esbuild/cache.js +0 -92
  131. package/src/tools/esbuild/commonjs-checker.d.ts +0 -28
  132. package/src/tools/esbuild/commonjs-checker.js +0 -151
  133. package/src/tools/esbuild/compiler-plugin-options.d.ts +0 -16
  134. package/src/tools/esbuild/compiler-plugin-options.js +0 -49
  135. package/src/tools/esbuild/external-packages-plugin.d.ts +0 -18
  136. package/src/tools/esbuild/external-packages-plugin.js +0 -70
  137. package/src/tools/esbuild/global-scripts.d.ts +0 -16
  138. package/src/tools/esbuild/global-scripts.js +0 -142
  139. package/src/tools/esbuild/global-styles.d.ts +0 -10
  140. package/src/tools/esbuild/global-styles.js +0 -74
  141. package/src/tools/esbuild/i18n-inliner-worker.d.ts +0 -42
  142. package/src/tools/esbuild/i18n-inliner-worker.js +0 -136
  143. package/src/tools/esbuild/i18n-inliner.d.ts +0 -44
  144. package/src/tools/esbuild/i18n-inliner.js +0 -150
  145. package/src/tools/esbuild/i18n-locale-plugin.d.ts +0 -22
  146. package/src/tools/esbuild/i18n-locale-plugin.js +0 -120
  147. package/src/tools/esbuild/index-html-generator.d.ts +0 -15
  148. package/src/tools/esbuild/index-html-generator.js +0 -129
  149. package/src/tools/esbuild/javascript-transformer-worker.d.ts +0 -19
  150. package/src/tools/esbuild/javascript-transformer-worker.js +0 -154
  151. package/src/tools/esbuild/javascript-transformer.d.ts +0 -54
  152. package/src/tools/esbuild/javascript-transformer.js +0 -143
  153. package/src/tools/esbuild/license-extractor.d.ts +0 -25
  154. package/src/tools/esbuild/license-extractor.js +0 -158
  155. package/src/tools/esbuild/load-result-cache.d.ts +0 -21
  156. package/src/tools/esbuild/load-result-cache.js +0 -75
  157. package/src/tools/esbuild/profiling.d.ts +0 -11
  158. package/src/tools/esbuild/profiling.js +0 -78
  159. package/src/tools/esbuild/rxjs-esm-resolution-plugin.d.ts +0 -18
  160. package/src/tools/esbuild/rxjs-esm-resolution-plugin.js +0 -44
  161. package/src/tools/esbuild/sourcemap-ignorelist-plugin.d.ts +0 -17
  162. package/src/tools/esbuild/sourcemap-ignorelist-plugin.js +0 -73
  163. package/src/tools/esbuild/stylesheets/bundle-options.d.ts +0 -35
  164. package/src/tools/esbuild/stylesheets/bundle-options.js +0 -64
  165. package/src/tools/esbuild/stylesheets/css-inline-fonts-plugin.d.ts +0 -25
  166. package/src/tools/esbuild/stylesheets/css-inline-fonts-plugin.js +0 -57
  167. package/src/tools/esbuild/stylesheets/css-language.d.ts +0 -9
  168. package/src/tools/esbuild/stylesheets/css-language.js +0 -15
  169. package/src/tools/esbuild/stylesheets/css-resource-plugin.d.ts +0 -18
  170. package/src/tools/esbuild/stylesheets/css-resource-plugin.js +0 -107
  171. package/src/tools/esbuild/stylesheets/less-language.d.ts +0 -9
  172. package/src/tools/esbuild/stylesheets/less-language.js +0 -155
  173. package/src/tools/esbuild/stylesheets/sass-language.d.ts +0 -10
  174. package/src/tools/esbuild/stylesheets/sass-language.js +0 -185
  175. package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.d.ts +0 -58
  176. package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.js +0 -282
  177. package/src/tools/esbuild/utils.d.ts +0 -41
  178. package/src/tools/esbuild/utils.js +0 -378
  179. package/src/tools/esbuild/virtual-module-plugin.d.ts +0 -33
  180. package/src/tools/esbuild/virtual-module-plugin.js +0 -43
  181. package/src/tools/esbuild/watcher.d.ts +0 -25
  182. package/src/tools/esbuild/watcher.js +0 -118
  183. package/src/tools/sass/lexer.d.ts +0 -18
  184. package/src/tools/sass/lexer.js +0 -161
  185. package/src/tools/sass/rebasing-importer.d.ts +0 -101
  186. package/src/tools/sass/rebasing-importer.js +0 -337
  187. package/src/tools/sass/sass-service.d.ts +0 -49
  188. package/src/tools/sass/sass-service.js +0 -213
  189. package/src/tools/sass/worker.d.ts +0 -8
  190. package/src/tools/sass/worker.js +0 -164
  191. package/src/tools/vite/angular-memory-plugin.d.ts +0 -24
  192. package/src/tools/vite/angular-memory-plugin.js +0 -268
  193. package/src/tools/vite/i18n-locale-plugin.d.ts +0 -18
  194. package/src/tools/vite/i18n-locale-plugin.js +0 -55
  195. package/src/typings.d.ts +0 -21
  196. package/src/utils/bundle-calculator.d.ts +0 -44
  197. package/src/utils/bundle-calculator.js +0 -302
  198. package/src/utils/check-port.d.ts +0 -8
  199. package/src/utils/check-port.js +0 -58
  200. package/src/utils/delete-output-dir.d.ts +0 -11
  201. package/src/utils/delete-output-dir.js +0 -46
  202. package/src/utils/i18n-options.d.ts +0 -40
  203. package/src/utils/i18n-options.js +0 -254
  204. package/src/utils/index-file/augment-index-html.d.ts +0 -40
  205. package/src/utils/index-file/augment-index-html.js +0 -238
  206. package/src/utils/index-file/html-rewriting-stream.d.ts +0 -11
  207. package/src/utils/index-file/html-rewriting-stream.js +0 -28
  208. package/src/utils/index-file/index-html-generator.d.ts +0 -47
  209. package/src/utils/index-file/index-html-generator.js +0 -119
  210. package/src/utils/index-file/inline-critical-css.d.ts +0 -24
  211. package/src/utils/index-file/inline-critical-css.js +0 -179
  212. package/src/utils/index-file/inline-fonts.d.ts +0 -23
  213. package/src/utils/index-file/inline-fonts.js +0 -267
  214. package/src/utils/index-file/style-nonce.d.ts +0 -12
  215. package/src/utils/index-file/style-nonce.js +0 -53
  216. package/src/utils/load-proxy-config.d.ts +0 -8
  217. package/src/utils/load-proxy-config.js +0 -192
  218. package/src/utils/load-translations.d.ts +0 -16
  219. package/src/utils/load-translations.js +0 -84
  220. package/src/utils/postcss-configuration.d.ts +0 -17
  221. package/src/utils/postcss-configuration.js +0 -86
  222. package/src/utils/purge-cache.d.ts +0 -10
  223. package/src/utils/purge-cache.js +0 -40
  224. package/src/utils/routes-extractor/extractor.d.ts +0 -15
  225. package/src/utils/routes-extractor/extractor.js +0 -97
  226. package/src/utils/server-rendering/esm-in-memory-loader/loader-hooks.d.ts +0 -18
  227. package/src/utils/server-rendering/esm-in-memory-loader/loader-hooks.js +0 -129
  228. package/src/utils/server-rendering/esm-in-memory-loader/register-hooks.d.ts +0 -8
  229. package/src/utils/server-rendering/esm-in-memory-loader/register-hooks.js +0 -13
  230. package/src/utils/server-rendering/fetch-patch.d.ts +0 -8
  231. package/src/utils/server-rendering/fetch-patch.js +0 -66
  232. package/src/utils/server-rendering/load-esm-from-memory.d.ts +0 -10
  233. package/src/utils/server-rendering/load-esm-from-memory.js +0 -26
  234. package/src/utils/server-rendering/main-bundle-exports.d.ts +0 -27
  235. package/src/utils/server-rendering/main-bundle-exports.js +0 -9
  236. package/src/utils/server-rendering/prerender.d.ts +0 -23
  237. package/src/utils/server-rendering/prerender.js +0 -192
  238. package/src/utils/server-rendering/render-page.d.ts +0 -26
  239. package/src/utils/server-rendering/render-page.js +0 -110
  240. package/src/utils/server-rendering/render-worker.d.ts +0 -22
  241. package/src/utils/server-rendering/render-worker.js +0 -30
  242. package/src/utils/server-rendering/routes-extractor-worker.d.ts +0 -21
  243. package/src/utils/server-rendering/routes-extractor-worker.js +0 -53
  244. package/src/utils/service-worker.d.ts +0 -25
  245. package/src/utils/service-worker.js +0 -211
  246. package/src/utils/supported-browsers.d.ts +0 -10
  247. package/src/utils/supported-browsers.js +0 -42
  248. package/src/utils/version.d.ts +0 -8
  249. package/src/utils/version.js +0 -59
@@ -1,282 +0,0 @@
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.io/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 (mod) {
26
- if (mod && mod.__esModule) return mod;
27
- var result = {};
28
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
- __setModuleDefault(result, mod);
30
- return result;
31
- };
32
- var __importDefault = (this && this.__importDefault) || function (mod) {
33
- return (mod && mod.__esModule) ? mod : { "default": mod };
34
- };
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.StylesheetPluginFactory = void 0;
37
- const fast_glob_1 = __importDefault(require("fast-glob"));
38
- const node_assert_1 = __importDefault(require("node:assert"));
39
- const promises_1 = require("node:fs/promises");
40
- const node_path_1 = require("node:path");
41
- const load_result_cache_1 = require("../load-result-cache");
42
- /**
43
- * The lazy-loaded instance of the postcss stylesheet postprocessor.
44
- * It is only imported and initialized if postcss is needed.
45
- */
46
- let postcss;
47
- /**
48
- * An array of keywords that indicate Tailwind CSS processing is required for a stylesheet.
49
- *
50
- * Based on https://tailwindcss.com/docs/functions-and-directives
51
- */
52
- const TAILWIND_KEYWORDS = [
53
- '@tailwind',
54
- '@layer',
55
- '@apply',
56
- '@config',
57
- 'theme(',
58
- 'screen(',
59
- '@screen', // Undocumented in version 3, see: https://github.com/tailwindlabs/tailwindcss/discussions/7516.
60
- ];
61
- /**
62
- * Cached postcss instances that can be re-used between various StylesheetPluginFactory instances.
63
- */
64
- const postcssProcessor = new Map();
65
- class StylesheetPluginFactory {
66
- options;
67
- cache;
68
- postcssProcessor;
69
- constructor(options, cache) {
70
- this.options = options;
71
- this.cache = cache;
72
- }
73
- create(language) {
74
- // Return a noop plugin if no load actions are required
75
- if (!language.process &&
76
- !this.options.postcssConfiguration &&
77
- !this.options.tailwindConfiguration) {
78
- return {
79
- name: 'angular-' + language.name,
80
- setup() { },
81
- };
82
- }
83
- const { cache, options } = this;
84
- const setupPostcss = async () => {
85
- // Return already created processor if present
86
- if (this.postcssProcessor) {
87
- return this.postcssProcessor;
88
- }
89
- if (options.postcssConfiguration) {
90
- const postCssInstanceKey = JSON.stringify(options.postcssConfiguration);
91
- this.postcssProcessor = postcssProcessor.get(postCssInstanceKey)?.deref();
92
- if (!this.postcssProcessor) {
93
- postcss ??= (await Promise.resolve().then(() => __importStar(require('postcss')))).default;
94
- this.postcssProcessor = postcss();
95
- for (const [pluginName, pluginOptions] of options.postcssConfiguration.plugins) {
96
- const { default: plugin } = await Promise.resolve(`${pluginName}`).then(s => __importStar(require(s)));
97
- if (typeof plugin !== 'function' || plugin.postcss !== true) {
98
- throw new Error(`Attempted to load invalid Postcss plugin: "${pluginName}"`);
99
- }
100
- this.postcssProcessor.use(plugin(pluginOptions));
101
- }
102
- postcssProcessor.set(postCssInstanceKey, new WeakRef(this.postcssProcessor));
103
- }
104
- }
105
- else if (options.tailwindConfiguration) {
106
- const { package: tailwindPackage, file: config } = options.tailwindConfiguration;
107
- const postCssInstanceKey = tailwindPackage + ':' + config;
108
- this.postcssProcessor = postcssProcessor.get(postCssInstanceKey)?.deref();
109
- if (!this.postcssProcessor) {
110
- postcss ??= (await Promise.resolve().then(() => __importStar(require('postcss')))).default;
111
- const tailwind = await Promise.resolve(`${tailwindPackage}`).then(s => __importStar(require(s)));
112
- this.postcssProcessor = postcss().use(tailwind.default({ config }));
113
- postcssProcessor.set(postCssInstanceKey, new WeakRef(this.postcssProcessor));
114
- }
115
- }
116
- return this.postcssProcessor;
117
- };
118
- return {
119
- name: 'angular-' + language.name,
120
- async setup(build) {
121
- // Setup postcss if needed
122
- const postcssProcessor = await setupPostcss();
123
- // Add a load callback to support inline Component styles
124
- build.onLoad({ filter: language.componentFilter, namespace: 'angular:styles/component' }, (0, load_result_cache_1.createCachedLoad)(cache, (args) => {
125
- const data = options.inlineComponentData?.[args.path];
126
- (0, node_assert_1.default)(typeof data === 'string', `component style name should always be found [${args.path}]`);
127
- const [format, , filename] = args.path.split(';', 3);
128
- return processStylesheet(language, data, filename, format, options, build, postcssProcessor);
129
- }));
130
- // Add a load callback to support files from disk
131
- build.onLoad({ filter: language.fileFilter }, (0, load_result_cache_1.createCachedLoad)(cache, async (args) => {
132
- const data = await (0, promises_1.readFile)(args.path, 'utf-8');
133
- return processStylesheet(language, data, args.path, (0, node_path_1.extname)(args.path).toLowerCase().slice(1), options, build, postcssProcessor);
134
- }));
135
- },
136
- };
137
- }
138
- }
139
- exports.StylesheetPluginFactory = StylesheetPluginFactory;
140
- async function processStylesheet(language, data, filename, format, options, build, postcssProcessor) {
141
- let result;
142
- // Process the input data if the language requires preprocessing
143
- if (language.process) {
144
- result = await language.process(data, filename, format, options, build);
145
- }
146
- else {
147
- result = {
148
- contents: data,
149
- loader: 'css',
150
- watchFiles: [filename],
151
- };
152
- }
153
- // Return early if there are no contents to further process or there are errors
154
- if (!result.contents || result.errors?.length) {
155
- return result;
156
- }
157
- // Only use postcss if Tailwind processing is required or custom postcss is present.
158
- if (postcssProcessor && (options.postcssConfiguration || hasTailwindKeywords(result.contents))) {
159
- const postcssResult = await compileString(typeof result.contents === 'string'
160
- ? result.contents
161
- : Buffer.from(result.contents).toString('utf-8'), filename, postcssProcessor, options);
162
- // Merge results
163
- if (postcssResult.errors?.length) {
164
- delete result.contents;
165
- }
166
- if (result.warnings && postcssResult.warnings) {
167
- postcssResult.warnings.unshift(...result.warnings);
168
- }
169
- if (result.watchFiles && postcssResult.watchFiles) {
170
- postcssResult.watchFiles.unshift(...result.watchFiles);
171
- }
172
- if (result.watchDirs && postcssResult.watchDirs) {
173
- postcssResult.watchDirs.unshift(...result.watchDirs);
174
- }
175
- result = {
176
- ...result,
177
- ...postcssResult,
178
- };
179
- }
180
- return result;
181
- }
182
- /**
183
- * Searches the provided contents for keywords that indicate Tailwind is used
184
- * within a stylesheet.
185
- * @param contents A string or Uint8Array containing UTF-8 text.
186
- * @returns True, if the contents contains tailwind keywords; False, otherwise.
187
- */
188
- function hasTailwindKeywords(contents) {
189
- // TODO: use better search algorithm for keywords
190
- if (typeof contents === 'string') {
191
- return TAILWIND_KEYWORDS.some((keyword) => contents.includes(keyword));
192
- }
193
- // Contents is a Uint8Array
194
- const data = contents instanceof Buffer ? contents : Buffer.from(contents);
195
- return TAILWIND_KEYWORDS.some((keyword) => data.includes(keyword));
196
- }
197
- /**
198
- * Compiles the provided CSS stylesheet data using a provided postcss processor and provides an
199
- * esbuild load result that can be used directly by an esbuild Plugin.
200
- * @param data The stylesheet content to process.
201
- * @param filename The name of the file that contains the data.
202
- * @param postcssProcessor A postcss processor instance to use.
203
- * @param options The plugin options to control the processing.
204
- * @returns An esbuild OnLoaderResult object with the processed content, warnings, and/or errors.
205
- */
206
- async function compileString(data, filename, postcssProcessor, options) {
207
- try {
208
- const postcssResult = await postcssProcessor.process(data, {
209
- from: filename,
210
- to: filename,
211
- map: options.sourcemap && {
212
- inline: true,
213
- sourcesContent: true,
214
- },
215
- });
216
- const loadResult = {
217
- contents: postcssResult.css,
218
- loader: 'css',
219
- };
220
- const rawWarnings = postcssResult.warnings();
221
- if (rawWarnings.length > 0) {
222
- const lineMappings = new Map();
223
- loadResult.warnings = rawWarnings.map((warning) => {
224
- const file = warning.node.source?.input.file;
225
- if (file === undefined) {
226
- return { text: warning.text };
227
- }
228
- let lines = lineMappings.get(file);
229
- if (lines === undefined) {
230
- lines = warning.node.source?.input.css.split(/\r?\n/);
231
- lineMappings.set(file, lines ?? null);
232
- }
233
- return {
234
- text: warning.text,
235
- location: {
236
- file,
237
- line: warning.line,
238
- column: warning.column - 1,
239
- lineText: lines?.[warning.line - 1],
240
- },
241
- };
242
- });
243
- }
244
- for (const resultMessage of postcssResult.messages) {
245
- if (resultMessage.type === 'dependency' && typeof resultMessage['file'] === 'string') {
246
- loadResult.watchFiles ??= [];
247
- loadResult.watchFiles.push(resultMessage['file']);
248
- }
249
- else if (resultMessage.type === 'dir-dependency' &&
250
- typeof resultMessage['dir'] === 'string' &&
251
- typeof resultMessage['glob'] === 'string') {
252
- loadResult.watchFiles ??= [];
253
- const dependencies = await (0, fast_glob_1.default)(resultMessage['glob'], {
254
- absolute: true,
255
- cwd: resultMessage['dir'],
256
- });
257
- loadResult.watchFiles.push(...dependencies);
258
- }
259
- }
260
- return loadResult;
261
- }
262
- catch (error) {
263
- postcss ??= (await Promise.resolve().then(() => __importStar(require('postcss')))).default;
264
- if (error instanceof postcss.CssSyntaxError) {
265
- const lines = error.source?.split(/\r?\n/);
266
- return {
267
- errors: [
268
- {
269
- text: error.reason,
270
- location: {
271
- file: error.file,
272
- line: error.line,
273
- column: error.column && error.column - 1,
274
- lineText: error.line === undefined ? undefined : lines?.[error.line - 1],
275
- },
276
- },
277
- ],
278
- };
279
- }
280
- throw error;
281
- }
282
- }
@@ -1,41 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import { BuilderContext } from '@angular-devkit/architect';
9
- import { BuildOptions, Metafile, OutputFile } from 'esbuild';
10
- import { NormalizedApplicationBuildOptions, NormalizedOutputOptions } from '../../builders/application/options';
11
- import { BudgetCalculatorResult } from '../../utils/bundle-calculator';
12
- import { BuildOutputFile, BuildOutputFileType, InitialFileRecord } from './bundler-context';
13
- import { BuildOutputAsset, ExecutionResult } from './bundler-execution-result';
14
- export declare function logBuildStats(metafile: Metafile, initial: Map<string, InitialFileRecord>, budgetFailures: BudgetCalculatorResult[] | undefined, colors: boolean, changedFiles?: Set<string>, estimatedTransferSizes?: Map<string, number>, ssrOutputEnabled?: boolean, verbose?: boolean): string;
15
- export declare function calculateEstimatedTransferSizes(outputFiles: OutputFile[]): Promise<Map<string, number>>;
16
- export declare function withSpinner<T>(text: string, action: () => T | Promise<T>): Promise<T>;
17
- export declare function withNoProgress<T>(text: string, action: () => T | Promise<T>): Promise<T>;
18
- /**
19
- * Generates a syntax feature object map for Angular applications based on a list of targets.
20
- * A full set of feature names can be found here: https://esbuild.github.io/api/#supported
21
- * @param target An array of browser/engine targets in the format accepted by the esbuild `target` option.
22
- * @returns An object that can be used with the esbuild build `supported` option.
23
- */
24
- export declare function getFeatureSupport(target: string[]): BuildOptions['supported'];
25
- export declare function writeResultFiles(outputFiles: BuildOutputFile[], assetFiles: BuildOutputAsset[] | undefined, { base, browser, server }: NormalizedOutputOptions): Promise<void>;
26
- export declare function emitFilesToDisk<T = BuildOutputAsset | BuildOutputFile>(files: T[], writeFileCallback: (file: T) => Promise<void>): Promise<void>;
27
- export declare function createOutputFileFromText(path: string, text: string, type: BuildOutputFileType): BuildOutputFile;
28
- export declare function createOutputFileFromData(path: string, data: Uint8Array, type: BuildOutputFileType): BuildOutputFile;
29
- export declare function convertOutputFile(file: OutputFile, type: BuildOutputFileType): BuildOutputFile;
30
- /**
31
- * Transform browserlists result to esbuild target.
32
- * @see https://esbuild.github.io/api/#target
33
- */
34
- export declare function transformSupportedBrowsersToTargets(supportedBrowsers: string[]): string[];
35
- /**
36
- * Transform supported Node.js versions to esbuild target.
37
- * @see https://esbuild.github.io/api/#target
38
- */
39
- export declare function getSupportedNodeTargets(): string[];
40
- export declare function createJsonBuildManifest(result: ExecutionResult, normalizedOptions: NormalizedApplicationBuildOptions): Promise<string>;
41
- export declare function logMessages(logger: BuilderContext['logger'], executionResult: ExecutionResult, color?: boolean, jsonLogs?: boolean): Promise<void>;