@angular-devkit/build-angular 16.1.0-rc.0 → 16.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/package.json +21 -21
  2. package/plugins/karma.js +2 -2
  3. package/src/builders/browser/index.d.ts +1 -1
  4. package/src/builders/browser/index.js +5 -5
  5. package/src/builders/browser-esbuild/index.js +27 -376
  6. package/src/builders/browser-esbuild/options.js +2 -2
  7. package/src/builders/dev-server/load-proxy-config.d.ts +1 -6
  8. package/src/builders/dev-server/load-proxy-config.js +52 -13
  9. package/src/builders/dev-server/vite-server.js +3 -6
  10. package/src/builders/dev-server/webpack-server.d.ts +1 -1
  11. package/src/builders/dev-server/webpack-server.js +6 -6
  12. package/src/builders/extract-i18n/index.js +3 -3
  13. package/src/builders/karma/index.js +2 -2
  14. package/src/builders/server/index.js +4 -4
  15. package/src/tools/babel/plugins/adjust-static-class-members.js +354 -0
  16. package/src/tools/babel/plugins/adjust-typescript-enums.js +124 -0
  17. package/src/tools/babel/plugins/elide-angular-metadata.js +68 -0
  18. package/src/tools/babel/plugins/pure-toplevel-functions.js +91 -0
  19. package/src/tools/babel/presets/application.js +197 -0
  20. package/src/{babel → tools/babel}/webpack-loader.d.ts +1 -1
  21. package/src/tools/babel/webpack-loader.js +189 -0
  22. package/src/tools/esbuild/angular/angular-compilation.js +51 -0
  23. package/src/tools/esbuild/angular/angular-host.js +60 -0
  24. package/src/tools/esbuild/angular/aot-compilation.js +208 -0
  25. package/src/tools/esbuild/angular/compiler-plugin.js +314 -0
  26. package/src/tools/esbuild/angular/diagnostics.js +75 -0
  27. package/src/tools/esbuild/angular/jit-compilation.js +106 -0
  28. package/src/tools/esbuild/angular/jit-plugin-callbacks.js +113 -0
  29. package/src/tools/esbuild/angular/jit-resource-transformer.js +185 -0
  30. package/src/tools/esbuild/angular/uri.js +75 -0
  31. package/src/tools/esbuild/application-code-bundle.d.ts +11 -0
  32. package/src/tools/esbuild/application-code-bundle.js +111 -0
  33. package/src/{builders/browser-esbuild/esbuild.d.ts → tools/esbuild/bundler-context.d.ts} +1 -12
  34. package/src/tools/esbuild/bundler-context.js +194 -0
  35. package/src/tools/esbuild/bundler-execution-result.d.ts +44 -0
  36. package/src/tools/esbuild/bundler-execution-result.js +53 -0
  37. package/src/tools/esbuild/commonjs-checker.js +141 -0
  38. package/src/tools/esbuild/external-packages-plugin.d.ts +17 -0
  39. package/src/tools/esbuild/external-packages-plugin.js +49 -0
  40. package/src/{builders/browser-esbuild → tools/esbuild}/global-scripts.d.ts +1 -1
  41. package/src/tools/esbuild/global-scripts.js +139 -0
  42. package/src/{builders/browser-esbuild → tools/esbuild}/global-styles.d.ts +1 -1
  43. package/src/tools/esbuild/global-styles.js +67 -0
  44. package/src/tools/esbuild/index-html-generator.d.ts +12 -0
  45. package/src/tools/esbuild/index-html-generator.js +70 -0
  46. package/src/tools/esbuild/javascript-transformer-worker.js +76 -0
  47. package/src/tools/esbuild/javascript-transformer.js +108 -0
  48. package/src/tools/esbuild/license-extractor.js +159 -0
  49. package/src/tools/esbuild/load-result-cache.js +69 -0
  50. package/src/tools/esbuild/profiling.js +79 -0
  51. package/src/tools/esbuild/sourcemap-ignorelist-plugin.js +74 -0
  52. package/src/tools/esbuild/stylesheets/bundle-options.js +159 -0
  53. package/src/tools/esbuild/stylesheets/css-language.js +16 -0
  54. package/src/tools/esbuild/stylesheets/css-resource-plugin.js +88 -0
  55. package/src/tools/esbuild/stylesheets/less-language.js +127 -0
  56. package/src/tools/esbuild/stylesheets/sass-language.js +169 -0
  57. package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.js +218 -0
  58. package/src/tools/esbuild/utils.d.ts +30 -0
  59. package/src/tools/esbuild/utils.js +192 -0
  60. package/src/tools/esbuild/virtual-module-plugin.js +43 -0
  61. package/src/tools/esbuild/watcher.js +105 -0
  62. package/src/tools/sass/rebasing-importer.js +445 -0
  63. package/src/tools/sass/sass-service-legacy.js +176 -0
  64. package/src/tools/sass/sass-service.js +214 -0
  65. package/src/tools/sass/worker-legacy.js +44 -0
  66. package/src/tools/sass/worker.js +158 -0
  67. package/src/{webpack → tools/webpack}/configs/common.d.ts +1 -1
  68. package/src/tools/webpack/configs/common.js +421 -0
  69. package/src/{webpack → tools/webpack}/configs/dev-server.d.ts +1 -1
  70. package/src/tools/webpack/configs/dev-server.js +304 -0
  71. package/src/{webpack → tools/webpack}/configs/index.js +1 -1
  72. package/src/{webpack → tools/webpack}/configs/styles.d.ts +1 -1
  73. package/src/tools/webpack/configs/styles.js +396 -0
  74. package/src/{webpack → tools/webpack}/plugins/any-component-style-budget-checker.d.ts +1 -1
  75. package/src/tools/webpack/plugins/any-component-style-budget-checker.js +92 -0
  76. package/src/tools/webpack/plugins/builder-watch-plugin.js +99 -0
  77. package/src/tools/webpack/plugins/common-js-usage-warn-plugin.js +121 -0
  78. package/src/tools/webpack/plugins/css-optimizer-plugin.js +123 -0
  79. package/src/tools/webpack/plugins/dedupe-module-resolve-plugin.js +75 -0
  80. package/src/tools/webpack/plugins/devtools-ignore-plugin.js +57 -0
  81. package/src/tools/webpack/plugins/esbuild-executor.js +121 -0
  82. package/src/tools/webpack/plugins/hmr/hmr-accept.js +185 -0
  83. package/src/tools/webpack/plugins/hmr/hmr-loader.js +25 -0
  84. package/src/{webpack → tools/webpack}/plugins/index-html-webpack-plugin.d.ts +1 -1
  85. package/src/tools/webpack/plugins/index-html-webpack-plugin.js +85 -0
  86. package/src/{webpack → tools/webpack}/plugins/index.js +1 -1
  87. package/src/tools/webpack/plugins/javascript-optimizer-plugin.js +166 -0
  88. package/src/tools/webpack/plugins/javascript-optimizer-worker.js +140 -0
  89. package/src/tools/webpack/plugins/json-stats-plugin.js +61 -0
  90. package/src/tools/webpack/plugins/karma/karma.js +270 -0
  91. package/src/tools/webpack/plugins/named-chunks-plugin.js +59 -0
  92. package/src/tools/webpack/plugins/occurrences-plugin.js +80 -0
  93. package/src/tools/webpack/plugins/postcss-cli-resources.js +176 -0
  94. package/src/tools/webpack/plugins/progress-plugin.js +39 -0
  95. package/src/tools/webpack/plugins/remove-hash-plugin.js +31 -0
  96. package/src/tools/webpack/plugins/scripts-webpack-plugin.js +180 -0
  97. package/src/tools/webpack/plugins/service-worker-plugin.js +46 -0
  98. package/src/tools/webpack/plugins/styles-webpack-plugin.js +73 -0
  99. package/src/tools/webpack/plugins/suppress-entry-chunks-webpack-plugin.js +52 -0
  100. package/src/tools/webpack/plugins/transfer-size-plugin.js +50 -0
  101. package/src/{webpack → tools/webpack}/plugins/typescript.d.ts +1 -1
  102. package/src/tools/webpack/plugins/typescript.js +51 -0
  103. package/src/tools/webpack/plugins/watch-files-logs-plugin.js +28 -0
  104. package/src/tools/webpack/utils/async-chunks.js +46 -0
  105. package/src/{webpack → tools/webpack}/utils/helpers.d.ts +2 -2
  106. package/src/tools/webpack/utils/helpers.js +293 -0
  107. package/src/{webpack → tools/webpack}/utils/stats.d.ts +2 -2
  108. package/src/tools/webpack/utils/stats.js +443 -0
  109. package/src/utils/bundle-calculator.js +2 -2
  110. package/src/utils/index-file/augment-index-html.d.ts +1 -1
  111. package/src/utils/index-file/augment-index-html.js +1 -1
  112. package/src/utils/normalize-asset-patterns.d.ts +1 -1
  113. package/src/utils/normalize-asset-patterns.js +1 -1
  114. package/src/utils/normalize-file-replacements.d.ts +1 -1
  115. package/src/utils/normalize-file-replacements.js +1 -1
  116. package/src/utils/package-chunk-sort.js +2 -2
  117. package/src/utils/webpack-browser-config.js +2 -2
  118. package/src/babel/plugins/adjust-static-class-members.js +0 -354
  119. package/src/babel/plugins/adjust-typescript-enums.js +0 -124
  120. package/src/babel/plugins/elide-angular-metadata.js +0 -68
  121. package/src/babel/plugins/pure-toplevel-functions.js +0 -91
  122. package/src/babel/presets/application.js +0 -197
  123. package/src/babel/webpack-loader.js +0 -189
  124. package/src/builders/browser-esbuild/angular/angular-compilation.js +0 -51
  125. package/src/builders/browser-esbuild/angular/angular-host.js +0 -60
  126. package/src/builders/browser-esbuild/angular/aot-compilation.js +0 -208
  127. package/src/builders/browser-esbuild/angular/compiler-plugin.js +0 -314
  128. package/src/builders/browser-esbuild/angular/diagnostics.js +0 -75
  129. package/src/builders/browser-esbuild/angular/jit-compilation.js +0 -106
  130. package/src/builders/browser-esbuild/angular/jit-plugin-callbacks.js +0 -113
  131. package/src/builders/browser-esbuild/angular/jit-resource-transformer.js +0 -185
  132. package/src/builders/browser-esbuild/angular/uri.js +0 -75
  133. package/src/builders/browser-esbuild/commonjs-checker.js +0 -141
  134. package/src/builders/browser-esbuild/esbuild.js +0 -206
  135. package/src/builders/browser-esbuild/global-scripts.js +0 -139
  136. package/src/builders/browser-esbuild/global-styles.js +0 -67
  137. package/src/builders/browser-esbuild/javascript-transformer-worker.js +0 -76
  138. package/src/builders/browser-esbuild/javascript-transformer.js +0 -108
  139. package/src/builders/browser-esbuild/license-extractor.js +0 -159
  140. package/src/builders/browser-esbuild/load-result-cache.js +0 -69
  141. package/src/builders/browser-esbuild/profiling.js +0 -79
  142. package/src/builders/browser-esbuild/sourcemap-ignorelist-plugin.js +0 -74
  143. package/src/builders/browser-esbuild/stylesheets/bundle-options.js +0 -159
  144. package/src/builders/browser-esbuild/stylesheets/css-language.js +0 -16
  145. package/src/builders/browser-esbuild/stylesheets/css-resource-plugin.js +0 -88
  146. package/src/builders/browser-esbuild/stylesheets/less-language.js +0 -127
  147. package/src/builders/browser-esbuild/stylesheets/sass-language.js +0 -169
  148. package/src/builders/browser-esbuild/stylesheets/stylesheet-plugin-factory.js +0 -218
  149. package/src/builders/browser-esbuild/virtual-module-plugin.js +0 -43
  150. package/src/builders/browser-esbuild/watcher.js +0 -105
  151. package/src/sass/rebasing-importer.js +0 -445
  152. package/src/sass/sass-service-legacy.js +0 -176
  153. package/src/sass/sass-service.js +0 -214
  154. package/src/sass/worker-legacy.js +0 -44
  155. package/src/sass/worker.js +0 -158
  156. package/src/webpack/configs/common.js +0 -421
  157. package/src/webpack/configs/dev-server.js +0 -304
  158. package/src/webpack/configs/styles.js +0 -396
  159. package/src/webpack/plugins/any-component-style-budget-checker.js +0 -92
  160. package/src/webpack/plugins/builder-watch-plugin.js +0 -99
  161. package/src/webpack/plugins/common-js-usage-warn-plugin.js +0 -121
  162. package/src/webpack/plugins/css-optimizer-plugin.js +0 -123
  163. package/src/webpack/plugins/dedupe-module-resolve-plugin.js +0 -75
  164. package/src/webpack/plugins/devtools-ignore-plugin.js +0 -57
  165. package/src/webpack/plugins/esbuild-executor.js +0 -121
  166. package/src/webpack/plugins/hmr/hmr-accept.js +0 -185
  167. package/src/webpack/plugins/hmr/hmr-loader.js +0 -25
  168. package/src/webpack/plugins/index-html-webpack-plugin.js +0 -85
  169. package/src/webpack/plugins/javascript-optimizer-plugin.js +0 -166
  170. package/src/webpack/plugins/javascript-optimizer-worker.js +0 -140
  171. package/src/webpack/plugins/json-stats-plugin.js +0 -61
  172. package/src/webpack/plugins/karma/karma.js +0 -270
  173. package/src/webpack/plugins/named-chunks-plugin.js +0 -59
  174. package/src/webpack/plugins/occurrences-plugin.js +0 -80
  175. package/src/webpack/plugins/postcss-cli-resources.js +0 -176
  176. package/src/webpack/plugins/progress-plugin.js +0 -39
  177. package/src/webpack/plugins/remove-hash-plugin.js +0 -31
  178. package/src/webpack/plugins/scripts-webpack-plugin.js +0 -180
  179. package/src/webpack/plugins/service-worker-plugin.js +0 -46
  180. package/src/webpack/plugins/styles-webpack-plugin.js +0 -73
  181. package/src/webpack/plugins/suppress-entry-chunks-webpack-plugin.js +0 -52
  182. package/src/webpack/plugins/transfer-size-plugin.js +0 -50
  183. package/src/webpack/plugins/typescript.js +0 -51
  184. package/src/webpack/plugins/watch-files-logs-plugin.js +0 -28
  185. package/src/webpack/utils/async-chunks.js +0 -46
  186. package/src/webpack/utils/helpers.js +0 -293
  187. package/src/webpack/utils/stats.js +0 -443
  188. /package/src/{babel → tools/babel}/babel-loader.d.ts +0 -0
  189. /package/src/{babel → tools/babel}/plugins/adjust-static-class-members.d.ts +0 -0
  190. /package/src/{babel → tools/babel}/plugins/adjust-typescript-enums.d.ts +0 -0
  191. /package/src/{babel → tools/babel}/plugins/elide-angular-metadata.d.ts +0 -0
  192. /package/src/{babel → tools/babel}/plugins/pure-toplevel-functions.d.ts +0 -0
  193. /package/src/{babel → tools/babel}/presets/application.d.ts +0 -0
  194. /package/src/{builders/browser-esbuild → tools/esbuild}/angular/angular-compilation.d.ts +0 -0
  195. /package/src/{builders/browser-esbuild → tools/esbuild}/angular/angular-host.d.ts +0 -0
  196. /package/src/{builders/browser-esbuild → tools/esbuild}/angular/aot-compilation.d.ts +0 -0
  197. /package/src/{builders/browser-esbuild → tools/esbuild}/angular/compiler-plugin.d.ts +0 -0
  198. /package/src/{builders/browser-esbuild → tools/esbuild}/angular/diagnostics.d.ts +0 -0
  199. /package/src/{builders/browser-esbuild → tools/esbuild}/angular/jit-compilation.d.ts +0 -0
  200. /package/src/{builders/browser-esbuild → tools/esbuild}/angular/jit-plugin-callbacks.d.ts +0 -0
  201. /package/src/{builders/browser-esbuild → tools/esbuild}/angular/jit-resource-transformer.d.ts +0 -0
  202. /package/src/{builders/browser-esbuild → tools/esbuild}/angular/uri.d.ts +0 -0
  203. /package/src/{builders/browser-esbuild → tools/esbuild}/commonjs-checker.d.ts +0 -0
  204. /package/src/{builders/browser-esbuild → tools/esbuild}/javascript-transformer-worker.d.ts +0 -0
  205. /package/src/{builders/browser-esbuild → tools/esbuild}/javascript-transformer.d.ts +0 -0
  206. /package/src/{builders/browser-esbuild → tools/esbuild}/license-extractor.d.ts +0 -0
  207. /package/src/{builders/browser-esbuild → tools/esbuild}/load-result-cache.d.ts +0 -0
  208. /package/src/{builders/browser-esbuild → tools/esbuild}/profiling.d.ts +0 -0
  209. /package/src/{builders/browser-esbuild → tools/esbuild}/sourcemap-ignorelist-plugin.d.ts +0 -0
  210. /package/src/{builders/browser-esbuild → tools/esbuild}/stylesheets/bundle-options.d.ts +0 -0
  211. /package/src/{builders/browser-esbuild → tools/esbuild}/stylesheets/css-language.d.ts +0 -0
  212. /package/src/{builders/browser-esbuild → tools/esbuild}/stylesheets/css-resource-plugin.d.ts +0 -0
  213. /package/src/{builders/browser-esbuild → tools/esbuild}/stylesheets/less-language.d.ts +0 -0
  214. /package/src/{builders/browser-esbuild → tools/esbuild}/stylesheets/sass-language.d.ts +0 -0
  215. /package/src/{builders/browser-esbuild → tools/esbuild}/stylesheets/stylesheet-plugin-factory.d.ts +0 -0
  216. /package/src/{builders/browser-esbuild → tools/esbuild}/virtual-module-plugin.d.ts +0 -0
  217. /package/src/{builders/browser-esbuild → tools/esbuild}/watcher.d.ts +0 -0
  218. /package/src/{sass → tools/sass}/rebasing-importer.d.ts +0 -0
  219. /package/src/{sass → tools/sass}/sass-service-legacy.d.ts +0 -0
  220. /package/src/{sass → tools/sass}/sass-service.d.ts +0 -0
  221. /package/src/{sass → tools/sass}/worker-legacy.d.ts +0 -0
  222. /package/src/{sass → tools/sass}/worker.d.ts +0 -0
  223. /package/src/{webpack → tools/webpack}/configs/index.d.ts +0 -0
  224. /package/src/{webpack → tools/webpack}/plugins/builder-watch-plugin.d.ts +0 -0
  225. /package/src/{webpack → tools/webpack}/plugins/common-js-usage-warn-plugin.d.ts +0 -0
  226. /package/src/{webpack → tools/webpack}/plugins/css-optimizer-plugin.d.ts +0 -0
  227. /package/src/{webpack → tools/webpack}/plugins/dedupe-module-resolve-plugin.d.ts +0 -0
  228. /package/src/{webpack → tools/webpack}/plugins/devtools-ignore-plugin.d.ts +0 -0
  229. /package/src/{webpack → tools/webpack}/plugins/esbuild-executor.d.ts +0 -0
  230. /package/src/{webpack → tools/webpack}/plugins/hmr/hmr-accept.d.ts +0 -0
  231. /package/src/{webpack → tools/webpack}/plugins/hmr/hmr-loader.d.ts +0 -0
  232. /package/src/{webpack → tools/webpack}/plugins/index.d.ts +0 -0
  233. /package/src/{webpack → tools/webpack}/plugins/javascript-optimizer-plugin.d.ts +0 -0
  234. /package/src/{webpack → tools/webpack}/plugins/javascript-optimizer-worker.d.ts +0 -0
  235. /package/src/{webpack → tools/webpack}/plugins/json-stats-plugin.d.ts +0 -0
  236. /package/src/{webpack → tools/webpack}/plugins/karma/karma-context.html +0 -0
  237. /package/src/{webpack → tools/webpack}/plugins/karma/karma-debug.html +0 -0
  238. /package/src/{webpack → tools/webpack}/plugins/karma/karma.d.ts +0 -0
  239. /package/src/{webpack → tools/webpack}/plugins/named-chunks-plugin.d.ts +0 -0
  240. /package/src/{webpack → tools/webpack}/plugins/occurrences-plugin.d.ts +0 -0
  241. /package/src/{webpack → tools/webpack}/plugins/postcss-cli-resources.d.ts +0 -0
  242. /package/src/{webpack → tools/webpack}/plugins/progress-plugin.d.ts +0 -0
  243. /package/src/{webpack → tools/webpack}/plugins/remove-hash-plugin.d.ts +0 -0
  244. /package/src/{webpack → tools/webpack}/plugins/scripts-webpack-plugin.d.ts +0 -0
  245. /package/src/{webpack → tools/webpack}/plugins/service-worker-plugin.d.ts +0 -0
  246. /package/src/{webpack → tools/webpack}/plugins/styles-webpack-plugin.d.ts +0 -0
  247. /package/src/{webpack → tools/webpack}/plugins/suppress-entry-chunks-webpack-plugin.d.ts +0 -0
  248. /package/src/{webpack → tools/webpack}/plugins/transfer-size-plugin.d.ts +0 -0
  249. /package/src/{webpack → tools/webpack}/plugins/watch-files-logs-plugin.d.ts +0 -0
  250. /package/src/{webpack → tools/webpack}/utils/async-chunks.d.ts +0 -0
@@ -1,166 +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 __importDefault = (this && this.__importDefault) || function (mod) {
10
- return (mod && mod.__esModule) ? mod : { "default": mod };
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.JavaScriptOptimizerPlugin = void 0;
14
- const piscina_1 = __importDefault(require("piscina"));
15
- const environment_options_1 = require("../../utils/environment-options");
16
- const esbuild_targets_1 = require("../../utils/esbuild-targets");
17
- const webpack_diagnostics_1 = require("../../utils/webpack-diagnostics");
18
- const esbuild_executor_1 = require("./esbuild-executor");
19
- /**
20
- * The maximum number of Workers that will be created to execute optimize tasks.
21
- */
22
- const MAX_OPTIMIZE_WORKERS = environment_options_1.maxWorkers;
23
- /**
24
- * The name of the plugin provided to Webpack when tapping Webpack compiler hooks.
25
- */
26
- const PLUGIN_NAME = 'angular-javascript-optimizer';
27
- /**
28
- * A Webpack plugin that provides JavaScript optimization capabilities.
29
- *
30
- * The plugin uses both `esbuild` and `terser` to provide both fast and highly-optimized
31
- * code output. `esbuild` is used as an initial pass to remove the majority of unused code
32
- * as well as shorten identifiers. `terser` is then used as a secondary pass to apply
33
- * optimizations not yet implemented by `esbuild`.
34
- */
35
- class JavaScriptOptimizerPlugin {
36
- constructor(options) {
37
- this.options = options;
38
- if (options.supportedBrowsers) {
39
- this.targets = (0, esbuild_targets_1.transformSupportedBrowsersToTargets)(options.supportedBrowsers);
40
- }
41
- }
42
- apply(compiler) {
43
- const { OriginalSource, SourceMapSource } = compiler.webpack.sources;
44
- compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
45
- const logger = compilation.getLogger('build-angular.JavaScriptOptimizerPlugin');
46
- compilation.hooks.processAssets.tapPromise({
47
- name: PLUGIN_NAME,
48
- stage: compiler.webpack.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_SIZE,
49
- }, async (compilationAssets) => {
50
- logger.time('optimize js assets');
51
- const scriptsToOptimize = [];
52
- const cache = compilation.options.cache && compilation.getCache('JavaScriptOptimizerPlugin');
53
- // Analyze the compilation assets for scripts that require optimization
54
- for (const assetName of Object.keys(compilationAssets)) {
55
- if (!assetName.endsWith('.js')) {
56
- continue;
57
- }
58
- const scriptAsset = compilation.getAsset(assetName);
59
- // Skip assets that have already been optimized or are verbatim copies (project assets)
60
- if (!scriptAsset || scriptAsset.info.minimized || scriptAsset.info.copied) {
61
- continue;
62
- }
63
- const { source: scriptAssetSource, name } = scriptAsset;
64
- let cacheItem;
65
- if (cache) {
66
- const eTag = cache.getLazyHashedEtag(scriptAssetSource);
67
- cacheItem = cache.getItemCache(name, eTag);
68
- const cachedOutput = await cacheItem.getPromise();
69
- if (cachedOutput) {
70
- logger.debug(`${name} restored from cache`);
71
- compilation.updateAsset(name, cachedOutput.source, (assetInfo) => ({
72
- ...assetInfo,
73
- minimized: true,
74
- }));
75
- continue;
76
- }
77
- }
78
- const { source, map } = scriptAssetSource.sourceAndMap();
79
- scriptsToOptimize.push({
80
- name: scriptAsset.name,
81
- code: typeof source === 'string' ? source : source.toString(),
82
- map,
83
- cacheItem,
84
- });
85
- }
86
- if (scriptsToOptimize.length === 0) {
87
- return;
88
- }
89
- // Ensure all replacement values are strings which is the expected type for esbuild
90
- let define;
91
- if (this.options.define) {
92
- define = {};
93
- for (const [key, value] of Object.entries(this.options.define)) {
94
- define[key] = String(value);
95
- }
96
- }
97
- // Setup the options used by all worker tasks
98
- const optimizeOptions = {
99
- sourcemap: this.options.sourcemap,
100
- define,
101
- keepNames: this.options.keepNames,
102
- keepIdentifierNames: this.options.keepIdentifierNames,
103
- target: this.targets,
104
- removeLicenses: this.options.removeLicenses,
105
- advanced: this.options.advanced,
106
- // Perform a single native esbuild support check.
107
- // This removes the need for each worker to perform the check which would
108
- // otherwise require spawning a separate process per worker.
109
- alwaysUseWasm: !(await esbuild_executor_1.EsbuildExecutor.hasNativeSupport()),
110
- };
111
- // Sort scripts so larger scripts start first - worker pool uses a FIFO queue
112
- scriptsToOptimize.sort((a, b) => a.code.length - b.code.length);
113
- // Initialize the task worker pool
114
- const workerPath = require.resolve('./javascript-optimizer-worker');
115
- const workerPool = new piscina_1.default({
116
- filename: workerPath,
117
- maxThreads: MAX_OPTIMIZE_WORKERS,
118
- });
119
- // Enqueue script optimization tasks and update compilation assets as the tasks complete
120
- try {
121
- const tasks = [];
122
- for (const { name, code, map, cacheItem } of scriptsToOptimize) {
123
- logger.time(`optimize asset: ${name}`);
124
- tasks.push(workerPool
125
- .run({
126
- asset: {
127
- name,
128
- code,
129
- map,
130
- },
131
- options: optimizeOptions,
132
- })
133
- .then(async ({ code, name, map, errors }) => {
134
- if (errors?.length) {
135
- for (const error of errors) {
136
- (0, webpack_diagnostics_1.addError)(compilation, `Optimization error [${name}]: ${error}`);
137
- }
138
- return;
139
- }
140
- const optimizedAsset = map
141
- ? new SourceMapSource(code, name, map)
142
- : new OriginalSource(code, name);
143
- compilation.updateAsset(name, optimizedAsset, (assetInfo) => ({
144
- ...assetInfo,
145
- minimized: true,
146
- }));
147
- logger.timeEnd(`optimize asset: ${name}`);
148
- return cacheItem?.storePromise({
149
- source: optimizedAsset,
150
- });
151
- }, (error) => {
152
- (0, webpack_diagnostics_1.addError)(compilation, `Optimization error [${name}]: ${error.stack || error.message}`);
153
- }));
154
- }
155
- await Promise.all(tasks);
156
- }
157
- finally {
158
- void workerPool.destroy();
159
- }
160
- logger.timeEnd('optimize js assets');
161
- });
162
- });
163
- }
164
- }
165
- exports.JavaScriptOptimizerPlugin = JavaScriptOptimizerPlugin;
166
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC1vcHRpbWl6ZXItcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvd2VicGFjay9wbHVnaW5zL2phdmFzY3JpcHQtb3B0aW1pemVyLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7Ozs7QUFFSCxzREFBOEI7QUFFOUIseUVBQTZEO0FBQzdELGlFQUFrRjtBQUNsRix5RUFBMkQ7QUFDM0QseURBQXFEO0FBR3JEOztHQUVHO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxnQ0FBVSxDQUFDO0FBRXhDOztHQUVHO0FBQ0gsTUFBTSxXQUFXLEdBQUcsOEJBQThCLENBQUM7QUFvRG5EOzs7Ozs7O0dBT0c7QUFDSCxNQUFhLHlCQUF5QjtJQUdwQyxZQUFvQixPQUFtQztRQUFuQyxZQUFPLEdBQVAsT0FBTyxDQUE0QjtRQUNyRCxJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTtZQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUEscURBQW1DLEVBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDL0U7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQWtCO1FBQ3RCLE1BQU0sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFFckUsUUFBUSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQzFELE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMseUNBQXlDLENBQUMsQ0FBQztZQUVoRixXQUFXLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQ3hDO2dCQUNFLElBQUksRUFBRSxXQUFXO2dCQUNqQixLQUFLLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsa0NBQWtDO2FBQ3ZFLEVBQ0QsS0FBSyxFQUFFLGlCQUFpQixFQUFFLEVBQUU7Z0JBQzFCLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztnQkFDbEMsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sS0FBSyxHQUNULFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsMkJBQTJCLENBQUMsQ0FBQztnQkFFakYsdUVBQXVFO2dCQUN2RSxLQUFLLE1BQU0sU0FBUyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRTtvQkFDdEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQzlCLFNBQVM7cUJBQ1Y7b0JBRUQsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDcEQsdUZBQXVGO29CQUN2RixJQUFJLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO3dCQUN6RSxTQUFTO3FCQUNWO29CQUVELE1BQU0sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLEdBQUcsV0FBVyxDQUFDO29CQUN4RCxJQUFJLFNBQVMsQ0FBQztvQkFFZCxJQUFJLEtBQUssRUFBRTt3QkFDVCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsQ0FBQzt3QkFDeEQsU0FBUyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO3dCQUMzQyxNQUFNLFlBQVksR0FBRyxNQUFNLFNBQVMsQ0FBQyxVQUFVLEVBRTVDLENBQUM7d0JBRUosSUFBSSxZQUFZLEVBQUU7NEJBQ2hCLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLHNCQUFzQixDQUFDLENBQUM7NEJBQzVDLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0NBQ2pFLEdBQUcsU0FBUztnQ0FDWixTQUFTLEVBQUUsSUFBSTs2QkFDaEIsQ0FBQyxDQUFDLENBQUM7NEJBQ0osU0FBUzt5QkFDVjtxQkFDRjtvQkFFRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO29CQUN6RCxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7d0JBQ3JCLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTt3QkFDdEIsSUFBSSxFQUFFLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO3dCQUM3RCxHQUFHO3dCQUNILFNBQVM7cUJBQ1YsQ0FBQyxDQUFDO2lCQUNKO2dCQUVELElBQUksaUJBQWlCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQkFDbEMsT0FBTztpQkFDUjtnQkFFRCxtRkFBbUY7Z0JBQ25GLElBQUksTUFBMEMsQ0FBQztnQkFDL0MsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtvQkFDdkIsTUFBTSxHQUFHLEVBQUUsQ0FBQztvQkFDWixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO3dCQUM5RCxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUM3QjtpQkFDRjtnQkFFRCw2Q0FBNkM7Z0JBQzdDLE1BQU0sZUFBZSxHQUEyQjtvQkFDOUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUztvQkFDakMsTUFBTTtvQkFDTixTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTO29CQUNqQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQjtvQkFDckQsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPO29CQUNwQixjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjO29CQUMzQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO29CQUMvQixpREFBaUQ7b0JBQ2pELHlFQUF5RTtvQkFDekUsNERBQTREO29CQUM1RCxhQUFhLEVBQUUsQ0FBQyxDQUFDLE1BQU0sa0NBQWUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2lCQUMzRCxDQUFDO2dCQUVGLDZFQUE2RTtnQkFDN0UsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFaEUsa0NBQWtDO2dCQUNsQyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLCtCQUErQixDQUFDLENBQUM7Z0JBQ3BFLE1BQU0sVUFBVSxHQUFHLElBQUksaUJBQU8sQ0FBQztvQkFDN0IsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFVBQVUsRUFBRSxvQkFBb0I7aUJBQ2pDLENBQUMsQ0FBQztnQkFFSCx3RkFBd0Y7Z0JBQ3hGLElBQUk7b0JBQ0YsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO29CQUNqQixLQUFLLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxpQkFBaUIsRUFBRTt3QkFDOUQsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUMsQ0FBQzt3QkFFdkMsS0FBSyxDQUFDLElBQUksQ0FDUixVQUFVOzZCQUNQLEdBQUcsQ0FBQzs0QkFDSCxLQUFLLEVBQUU7Z0NBQ0wsSUFBSTtnQ0FDSixJQUFJO2dDQUNKLEdBQUc7NkJBQ0o7NEJBQ0QsT0FBTyxFQUFFLGVBQWU7eUJBQ3pCLENBQUM7NkJBQ0QsSUFBSSxDQUNILEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7NEJBQ3BDLElBQUksTUFBTSxFQUFFLE1BQU0sRUFBRTtnQ0FDbEIsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUU7b0NBQzFCLElBQUEsOEJBQVEsRUFBQyxXQUFXLEVBQUUsdUJBQXVCLElBQUksTUFBTSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2lDQUNqRTtnQ0FFRCxPQUFPOzZCQUNSOzRCQUVELE1BQU0sY0FBYyxHQUFHLEdBQUc7Z0NBQ3hCLENBQUMsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztnQ0FDdEMsQ0FBQyxDQUFDLElBQUksY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQzs0QkFDbkMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dDQUM1RCxHQUFHLFNBQVM7Z0NBQ1osU0FBUyxFQUFFLElBQUk7NkJBQ2hCLENBQUMsQ0FBQyxDQUFDOzRCQUVKLE1BQU0sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDLENBQUM7NEJBRTFDLE9BQU8sU0FBUyxFQUFFLFlBQVksQ0FBQztnQ0FDN0IsTUFBTSxFQUFFLGNBQWM7NkJBQ3ZCLENBQUMsQ0FBQzt3QkFDTCxDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTs0QkFDUixJQUFBLDhCQUFRLEVBQ04sV0FBVyxFQUNYLHVCQUF1QixJQUFJLE1BQU0sS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQ2hFLENBQUM7d0JBQ0osQ0FBQyxDQUNGLENBQ0osQ0FBQztxQkFDSDtvQkFFRCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQzFCO3dCQUFTO29CQUNSLEtBQUssVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO2lCQUMzQjtnQkFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDdkMsQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXJLRCw4REFxS0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IFBpc2NpbmEgZnJvbSAncGlzY2luYSc7XG5pbXBvcnQgdHlwZSB7IENvbXBpbGVyLCBzb3VyY2VzIH0gZnJvbSAnd2VicGFjayc7XG5pbXBvcnQgeyBtYXhXb3JrZXJzIH0gZnJvbSAnLi4vLi4vdXRpbHMvZW52aXJvbm1lbnQtb3B0aW9ucyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1TdXBwb3J0ZWRCcm93c2Vyc1RvVGFyZ2V0cyB9IGZyb20gJy4uLy4uL3V0aWxzL2VzYnVpbGQtdGFyZ2V0cyc7XG5pbXBvcnQgeyBhZGRFcnJvciB9IGZyb20gJy4uLy4uL3V0aWxzL3dlYnBhY2stZGlhZ25vc3RpY3MnO1xuaW1wb3J0IHsgRXNidWlsZEV4ZWN1dG9yIH0gZnJvbSAnLi9lc2J1aWxkLWV4ZWN1dG9yJztcbmltcG9ydCB0eXBlIHsgT3B0aW1pemVSZXF1ZXN0T3B0aW9ucyB9IGZyb20gJy4vamF2YXNjcmlwdC1vcHRpbWl6ZXItd29ya2VyJztcblxuLyoqXG4gKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgV29ya2VycyB0aGF0IHdpbGwgYmUgY3JlYXRlZCB0byBleGVjdXRlIG9wdGltaXplIHRhc2tzLlxuICovXG5jb25zdCBNQVhfT1BUSU1JWkVfV09SS0VSUyA9IG1heFdvcmtlcnM7XG5cbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIHBsdWdpbiBwcm92aWRlZCB0byBXZWJwYWNrIHdoZW4gdGFwcGluZyBXZWJwYWNrIGNvbXBpbGVyIGhvb2tzLlxuICovXG5jb25zdCBQTFVHSU5fTkFNRSA9ICdhbmd1bGFyLWphdmFzY3JpcHQtb3B0aW1pemVyJztcblxuLyoqXG4gKiBUaGUgb3B0aW9ucyB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUge0BsaW5rIEphdmFTY3JpcHRPcHRpbWl6ZXJQbHVnaW59LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEphdmFTY3JpcHRPcHRpbWl6ZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIEVuYWJsZXMgYWR2YW5jZWQgb3B0aW1pemF0aW9ucyBpbiB0aGUgdW5kZXJseWluZyBKYXZhU2NyaXB0IG9wdGltaXplcnMuXG4gICAqIFRoaXMgY3VycmVudGx5IGluY3JlYXNlcyB0aGUgYHRlcnNlcmAgcGFzc2VzIHRvIDIgYW5kIGVuYWJsZXMgdGhlIGBwdXJlX2dldHRlcnNgXG4gICAqIG9wdGlvbiBmb3IgYHRlcnNlcmAuXG4gICAqL1xuICBhZHZhbmNlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFuIG9iamVjdCByZWNvcmQgb2Ygc3RyaW5nIGtleXMgdGhhdCB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhlaXIgcmVzcGVjdGl2ZSB2YWx1ZXMgd2hlbiBmb3VuZFxuICAgKiB3aXRoaW4gdGhlIGNvZGUgZHVyaW5nIG9wdGltaXphdGlvbi5cbiAgICovXG4gIGRlZmluZTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbj47XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIGdlbmVyYXRpb24gb2YgYSBzb3VyY2VtYXAgZHVyaW5nIG9wdGltaXphdGlvbi5cbiAgICogVGhlIG91dHB1dCBzb3VyY2VtYXAgd2lsbCBiZSBhIGZ1bGwgc291cmNlbWFwIGNvbnRhaW5pbmcgdGhlIG1lcmdlIG9mIHRoZSBpbnB1dCBzb3VyY2VtYXAgYW5kXG4gICAqIGFsbCBpbnRlcm1lZGlhdGUgc291cmNlbWFwcy5cbiAgICovXG4gIHNvdXJjZW1hcD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBzdXBwb3J0ZWQgYnJvd3NlcnMgdGhhdCBpcyB1c2VkIGZvciBvdXRwdXQgY29kZS5cbiAgICovXG4gIHN1cHBvcnRlZEJyb3dzZXJzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIHJldGVudGlvbiBvZiBpZGVudGlmaWVyIG5hbWVzIGFuZCBlbnN1cmVzIHRoYXQgZnVuY3Rpb24gYW5kIGNsYXNzIG5hbWVzIGFyZVxuICAgKiBwcmVzZW50IGluIHRoZSBvdXRwdXQgY29kZS5cbiAgICpcbiAgICogKipOb3RlKio6IGluIHNvbWUgY2FzZXMgc3ltYm9scyBhcmUgc3RpbGwgcmVuYW1lZCB0byBhdm9pZCBjb2xsaXNpb25zLlxuICAgKi9cbiAga2VlcElkZW50aWZpZXJOYW1lczogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlcyB0aGUgcmV0ZW50aW9uIG9mIG9yaWdpbmFsIG5hbWUgb2YgY2xhc3NlcyBhbmQgZnVuY3Rpb25zLlxuICAgKlxuICAgKiAqKk5vdGUqKjogdGhpcyBjYXVzZXMgaW5jcmVhc2Ugb2YgYnVuZGxlIHNpemUgYXMgaXQgY2F1c2VzIGRlYWQtY29kZSBlbGltaW5hdGlvbiB0byBub3Qgd29yayBmdWxseS5cbiAgICovXG4gIGtlZXBOYW1lczogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlcyB0aGUgcmVtb3ZhbCBvZiBhbGwgbGljZW5zZSBjb21tZW50cyBmcm9tIHRoZSBvdXRwdXQgY29kZS5cbiAgICovXG4gIHJlbW92ZUxpY2Vuc2VzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBIFdlYnBhY2sgcGx1Z2luIHRoYXQgcHJvdmlkZXMgSmF2YVNjcmlwdCBvcHRpbWl6YXRpb24gY2FwYWJpbGl0aWVzLlxuICpcbiAqIFRoZSBwbHVnaW4gdXNlcyBib3RoIGBlc2J1aWxkYCBhbmQgYHRlcnNlcmAgdG8gcHJvdmlkZSBib3RoIGZhc3QgYW5kIGhpZ2hseS1vcHRpbWl6ZWRcbiAqIGNvZGUgb3V0cHV0LiBgZXNidWlsZGAgaXMgdXNlZCBhcyBhbiBpbml0aWFsIHBhc3MgdG8gcmVtb3ZlIHRoZSBtYWpvcml0eSBvZiB1bnVzZWQgY29kZVxuICogYXMgd2VsbCBhcyBzaG9ydGVuIGlkZW50aWZpZXJzLiBgdGVyc2VyYCBpcyB0aGVuIHVzZWQgYXMgYSBzZWNvbmRhcnkgcGFzcyB0byBhcHBseVxuICogb3B0aW1pemF0aW9ucyBub3QgeWV0IGltcGxlbWVudGVkIGJ5IGBlc2J1aWxkYC5cbiAqL1xuZXhwb3J0IGNsYXNzIEphdmFTY3JpcHRPcHRpbWl6ZXJQbHVnaW4ge1xuICBwcml2YXRlIHRhcmdldHM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb3B0aW9uczogSmF2YVNjcmlwdE9wdGltaXplck9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucy5zdXBwb3J0ZWRCcm93c2Vycykge1xuICAgICAgdGhpcy50YXJnZXRzID0gdHJhbnNmb3JtU3VwcG9ydGVkQnJvd3NlcnNUb1RhcmdldHMob3B0aW9ucy5zdXBwb3J0ZWRCcm93c2Vycyk7XG4gICAgfVxuICB9XG5cbiAgYXBwbHkoY29tcGlsZXI6IENvbXBpbGVyKSB7XG4gICAgY29uc3QgeyBPcmlnaW5hbFNvdXJjZSwgU291cmNlTWFwU291cmNlIH0gPSBjb21waWxlci53ZWJwYWNrLnNvdXJjZXM7XG5cbiAgICBjb21waWxlci5ob29rcy5jb21waWxhdGlvbi50YXAoUExVR0lOX05BTUUsIChjb21waWxhdGlvbikgPT4ge1xuICAgICAgY29uc3QgbG9nZ2VyID0gY29tcGlsYXRpb24uZ2V0TG9nZ2VyKCdidWlsZC1hbmd1bGFyLkphdmFTY3JpcHRPcHRpbWl6ZXJQbHVnaW4nKTtcblxuICAgICAgY29tcGlsYXRpb24uaG9va3MucHJvY2Vzc0Fzc2V0cy50YXBQcm9taXNlKFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogUExVR0lOX05BTUUsXG4gICAgICAgICAgc3RhZ2U6IGNvbXBpbGVyLndlYnBhY2suQ29tcGlsYXRpb24uUFJPQ0VTU19BU1NFVFNfU1RBR0VfT1BUSU1JWkVfU0laRSxcbiAgICAgICAgfSxcbiAgICAgICAgYXN5bmMgKGNvbXBpbGF0aW9uQXNzZXRzKSA9PiB7XG4gICAgICAgICAgbG9nZ2VyLnRpbWUoJ29wdGltaXplIGpzIGFzc2V0cycpO1xuICAgICAgICAgIGNvbnN0IHNjcmlwdHNUb09wdGltaXplID0gW107XG4gICAgICAgICAgY29uc3QgY2FjaGUgPVxuICAgICAgICAgICAgY29tcGlsYXRpb24ub3B0aW9ucy5jYWNoZSAmJiBjb21waWxhdGlvbi5nZXRDYWNoZSgnSmF2YVNjcmlwdE9wdGltaXplclBsdWdpbicpO1xuXG4gICAgICAgICAgLy8gQW5hbHl6ZSB0aGUgY29tcGlsYXRpb24gYXNzZXRzIGZvciBzY3JpcHRzIHRoYXQgcmVxdWlyZSBvcHRpbWl6YXRpb25cbiAgICAgICAgICBmb3IgKGNvbnN0IGFzc2V0TmFtZSBvZiBPYmplY3Qua2V5cyhjb21waWxhdGlvbkFzc2V0cykpIHtcbiAgICAgICAgICAgIGlmICghYXNzZXROYW1lLmVuZHNXaXRoKCcuanMnKSkge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc2NyaXB0QXNzZXQgPSBjb21waWxhdGlvbi5nZXRBc3NldChhc3NldE5hbWUpO1xuICAgICAgICAgICAgLy8gU2tpcCBhc3NldHMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBvcHRpbWl6ZWQgb3IgYXJlIHZlcmJhdGltIGNvcGllcyAocHJvamVjdCBhc3NldHMpXG4gICAgICAgICAgICBpZiAoIXNjcmlwdEFzc2V0IHx8IHNjcmlwdEFzc2V0LmluZm8ubWluaW1pemVkIHx8IHNjcmlwdEFzc2V0LmluZm8uY29waWVkKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB7IHNvdXJjZTogc2NyaXB0QXNzZXRTb3VyY2UsIG5hbWUgfSA9IHNjcmlwdEFzc2V0O1xuICAgICAgICAgICAgbGV0IGNhY2hlSXRlbTtcblxuICAgICAgICAgICAgaWYgKGNhY2hlKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGVUYWcgPSBjYWNoZS5nZXRMYXp5SGFzaGVkRXRhZyhzY3JpcHRBc3NldFNvdXJjZSk7XG4gICAgICAgICAgICAgIGNhY2hlSXRlbSA9IGNhY2hlLmdldEl0ZW1DYWNoZShuYW1lLCBlVGFnKTtcbiAgICAgICAgICAgICAgY29uc3QgY2FjaGVkT3V0cHV0ID0gYXdhaXQgY2FjaGVJdGVtLmdldFByb21pc2U8XG4gICAgICAgICAgICAgICAgeyBzb3VyY2U6IHNvdXJjZXMuU291cmNlIH0gfCB1bmRlZmluZWRcbiAgICAgICAgICAgICAgPigpO1xuXG4gICAgICAgICAgICAgIGlmIChjYWNoZWRPdXRwdXQpIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoYCR7bmFtZX0gcmVzdG9yZWQgZnJvbSBjYWNoZWApO1xuICAgICAgICAgICAgICAgIGNvbXBpbGF0aW9uLnVwZGF0ZUFzc2V0KG5hbWUsIGNhY2hlZE91dHB1dC5zb3VyY2UsIChhc3NldEluZm8pID0+ICh7XG4gICAgICAgICAgICAgICAgICAuLi5hc3NldEluZm8sXG4gICAgICAgICAgICAgICAgICBtaW5pbWl6ZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHsgc291cmNlLCBtYXAgfSA9IHNjcmlwdEFzc2V0U291cmNlLnNvdXJjZUFuZE1hcCgpO1xuICAgICAgICAgICAgc2NyaXB0c1RvT3B0aW1pemUucHVzaCh7XG4gICAgICAgICAgICAgIG5hbWU6IHNjcmlwdEFzc2V0Lm5hbWUsXG4gICAgICAgICAgICAgIGNvZGU6IHR5cGVvZiBzb3VyY2UgPT09ICdzdHJpbmcnID8gc291cmNlIDogc291cmNlLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgIG1hcCxcbiAgICAgICAgICAgICAgY2FjaGVJdGVtLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHNjcmlwdHNUb09wdGltaXplLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEVuc3VyZSBhbGwgcmVwbGFjZW1lbnQgdmFsdWVzIGFyZSBzdHJpbmdzIHdoaWNoIGlzIHRoZSBleHBlY3RlZCB0eXBlIGZvciBlc2J1aWxkXG4gICAgICAgICAgbGV0IGRlZmluZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZDtcbiAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmRlZmluZSkge1xuICAgICAgICAgICAgZGVmaW5lID0ge307XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLm9wdGlvbnMuZGVmaW5lKSkge1xuICAgICAgICAgICAgICBkZWZpbmVba2V5XSA9IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gU2V0dXAgdGhlIG9wdGlvbnMgdXNlZCBieSBhbGwgd29ya2VyIHRhc2tzXG4gICAgICAgICAgY29uc3Qgb3B0aW1pemVPcHRpb25zOiBPcHRpbWl6ZVJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgICAgICAgc291cmNlbWFwOiB0aGlzLm9wdGlvbnMuc291cmNlbWFwLFxuICAgICAgICAgICAgZGVmaW5lLFxuICAgICAgICAgICAga2VlcE5hbWVzOiB0aGlzLm9wdGlvbnMua2VlcE5hbWVzLFxuICAgICAgICAgICAga2VlcElkZW50aWZpZXJOYW1lczogdGhpcy5vcHRpb25zLmtlZXBJZGVudGlmaWVyTmFtZXMsXG4gICAgICAgICAgICB0YXJnZXQ6IHRoaXMudGFyZ2V0cyxcbiAgICAgICAgICAgIHJlbW92ZUxpY2Vuc2VzOiB0aGlzLm9wdGlvbnMucmVtb3ZlTGljZW5zZXMsXG4gICAgICAgICAgICBhZHZhbmNlZDogdGhpcy5vcHRpb25zLmFkdmFuY2VkLFxuICAgICAgICAgICAgLy8gUGVyZm9ybSBhIHNpbmdsZSBuYXRpdmUgZXNidWlsZCBzdXBwb3J0IGNoZWNrLlxuICAgICAgICAgICAgLy8gVGhpcyByZW1vdmVzIHRoZSBuZWVkIGZvciBlYWNoIHdvcmtlciB0byBwZXJmb3JtIHRoZSBjaGVjayB3aGljaCB3b3VsZFxuICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIHJlcXVpcmUgc3Bhd25pbmcgYSBzZXBhcmF0ZSBwcm9jZXNzIHBlciB3b3JrZXIuXG4gICAgICAgICAgICBhbHdheXNVc2VXYXNtOiAhKGF3YWl0IEVzYnVpbGRFeGVjdXRvci5oYXNOYXRpdmVTdXBwb3J0KCkpLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICAvLyBTb3J0IHNjcmlwdHMgc28gbGFyZ2VyIHNjcmlwdHMgc3RhcnQgZmlyc3QgLSB3b3JrZXIgcG9vbCB1c2VzIGEgRklGTyBxdWV1ZVxuICAgICAgICAgIHNjcmlwdHNUb09wdGltaXplLnNvcnQoKGEsIGIpID0+IGEuY29kZS5sZW5ndGggLSBiLmNvZGUubGVuZ3RoKTtcblxuICAgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIHRhc2sgd29ya2VyIHBvb2xcbiAgICAgICAgICBjb25zdCB3b3JrZXJQYXRoID0gcmVxdWlyZS5yZXNvbHZlKCcuL2phdmFzY3JpcHQtb3B0aW1pemVyLXdvcmtlcicpO1xuICAgICAgICAgIGNvbnN0IHdvcmtlclBvb2wgPSBuZXcgUGlzY2luYSh7XG4gICAgICAgICAgICBmaWxlbmFtZTogd29ya2VyUGF0aCxcbiAgICAgICAgICAgIG1heFRocmVhZHM6IE1BWF9PUFRJTUlaRV9XT1JLRVJTLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgLy8gRW5xdWV1ZSBzY3JpcHQgb3B0aW1pemF0aW9uIHRhc2tzIGFuZCB1cGRhdGUgY29tcGlsYXRpb24gYXNzZXRzIGFzIHRoZSB0YXNrcyBjb21wbGV0ZVxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB0YXNrcyA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCB7IG5hbWUsIGNvZGUsIG1hcCwgY2FjaGVJdGVtIH0gb2Ygc2NyaXB0c1RvT3B0aW1pemUpIHtcbiAgICAgICAgICAgICAgbG9nZ2VyLnRpbWUoYG9wdGltaXplIGFzc2V0OiAke25hbWV9YCk7XG5cbiAgICAgICAgICAgICAgdGFza3MucHVzaChcbiAgICAgICAgICAgICAgICB3b3JrZXJQb29sXG4gICAgICAgICAgICAgICAgICAucnVuKHtcbiAgICAgICAgICAgICAgICAgICAgYXNzZXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgICAgICAgIGNvZGUsXG4gICAgICAgICAgICAgICAgICAgICAgbWFwLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBvcHRpbWl6ZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgLnRoZW4oXG4gICAgICAgICAgICAgICAgICAgIGFzeW5jICh7IGNvZGUsIG5hbWUsIG1hcCwgZXJyb3JzIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZXJyb3Igb2YgZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFkZEVycm9yKGNvbXBpbGF0aW9uLCBgT3B0aW1pemF0aW9uIGVycm9yIFske25hbWV9XTogJHtlcnJvcn1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGltaXplZEFzc2V0ID0gbWFwXG4gICAgICAgICAgICAgICAgICAgICAgICA/IG5ldyBTb3VyY2VNYXBTb3VyY2UoY29kZSwgbmFtZSwgbWFwKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBuZXcgT3JpZ2luYWxTb3VyY2UoY29kZSwgbmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgY29tcGlsYXRpb24udXBkYXRlQXNzZXQobmFtZSwgb3B0aW1pemVkQXNzZXQsIChhc3NldEluZm8pID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5hc3NldEluZm8sXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5pbWl6ZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSkpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLnRpbWVFbmQoYG9wdGltaXplIGFzc2V0OiAke25hbWV9YCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FjaGVJdGVtPy5zdG9yZVByb21pc2Uoe1xuICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOiBvcHRpbWl6ZWRBc3NldCxcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgYWRkRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21waWxhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIGBPcHRpbWl6YXRpb24gZXJyb3IgWyR7bmFtZX1dOiAke2Vycm9yLnN0YWNrIHx8IGVycm9yLm1lc3NhZ2V9YCxcbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwodGFza3MpO1xuICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB2b2lkIHdvcmtlclBvb2wuZGVzdHJveSgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGxvZ2dlci50aW1lRW5kKCdvcHRpbWl6ZSBqcyBhc3NldHMnKTtcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,140 +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 __importDefault = (this && this.__importDefault) || function (mod) {
10
- return (mod && mod.__esModule) ? mod : { "default": mod };
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- const remapping_1 = __importDefault(require("@ampproject/remapping"));
14
- const terser_1 = require("terser");
15
- const esbuild_executor_1 = require("./esbuild-executor");
16
- /**
17
- * The cached esbuild executor.
18
- * This will automatically use the native or WASM version based on platform and availability
19
- * with the native version given priority due to its superior performance.
20
- */
21
- let esbuild;
22
- /**
23
- * Handles optimization requests sent from the main thread via the `JavaScriptOptimizerPlugin`.
24
- */
25
- async function default_1({ asset, options }) {
26
- // esbuild is used as a first pass
27
- const esbuildResult = await optimizeWithEsbuild(asset.code, asset.name, options);
28
- if (isEsBuildFailure(esbuildResult)) {
29
- return {
30
- name: asset.name,
31
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
32
- errors: await esbuild.formatMessages(esbuildResult.errors, { kind: 'error' }),
33
- };
34
- }
35
- // terser is used as a second pass
36
- const terserResult = await optimizeWithTerser(asset.name, esbuildResult.code, options.sourcemap, options.advanced);
37
- // Merge intermediate sourcemaps with input sourcemap if enabled
38
- let fullSourcemap;
39
- if (options.sourcemap) {
40
- const partialSourcemaps = [];
41
- if (esbuildResult.map) {
42
- partialSourcemaps.unshift(JSON.parse(esbuildResult.map));
43
- }
44
- if (terserResult.map) {
45
- partialSourcemaps.unshift(terserResult.map);
46
- }
47
- if (asset.map) {
48
- partialSourcemaps.push(asset.map);
49
- }
50
- fullSourcemap = (0, remapping_1.default)(partialSourcemaps, () => null);
51
- }
52
- return { name: asset.name, code: terserResult.code, map: fullSourcemap };
53
- }
54
- exports.default = default_1;
55
- /**
56
- * Optimizes a JavaScript asset using esbuild.
57
- *
58
- * @param content The JavaScript asset source content to optimize.
59
- * @param name The name of the JavaScript asset. Used to generate source maps.
60
- * @param options The optimization request options to apply to the content.
61
- * @returns A promise that resolves with the optimized code, source map, and any warnings.
62
- */
63
- async function optimizeWithEsbuild(content, name, options) {
64
- if (!esbuild) {
65
- esbuild = new esbuild_executor_1.EsbuildExecutor(options.alwaysUseWasm);
66
- }
67
- try {
68
- return await esbuild.transform(content, {
69
- minifyIdentifiers: !options.keepIdentifierNames,
70
- minifySyntax: true,
71
- // NOTE: Disabling whitespace ensures unused pure annotations are kept
72
- minifyWhitespace: false,
73
- pure: ['forwardRef'],
74
- legalComments: options.removeLicenses ? 'none' : 'inline',
75
- sourcefile: name,
76
- sourcemap: options.sourcemap && 'external',
77
- define: options.define,
78
- // This option should always be disabled for browser builds as we don't rely on `.name`
79
- // and causes deadcode to be retained which makes `NG_BUILD_MANGLE` unusable to investigate tree-shaking issues.
80
- // We enable `keepNames` only for server builds as Domino relies on `.name`.
81
- // Once we no longer rely on Domino for SSR we should be able to remove this.
82
- keepNames: options.keepNames,
83
- target: options.target,
84
- });
85
- }
86
- catch (error) {
87
- if (isEsBuildFailure(error)) {
88
- return error;
89
- }
90
- throw error;
91
- }
92
- }
93
- /**
94
- * Optimizes a JavaScript asset using terser.
95
- *
96
- * @param name The name of the JavaScript asset. Used to generate source maps.
97
- * @param code The JavaScript asset source content to optimize.
98
- * @param sourcemaps If true, generate an output source map for the optimized code.
99
- * @param advanced Controls advanced optimizations.
100
- * @returns A promise that resolves with the optimized code and source map.
101
- */
102
- async function optimizeWithTerser(name, code, sourcemaps, advanced) {
103
- const result = await (0, terser_1.minify)({ [name]: code }, {
104
- compress: {
105
- passes: advanced ? 2 : 1,
106
- pure_getters: advanced,
107
- },
108
- // Set to ES2015 to prevent higher level features from being introduced when browserslist
109
- // contains older browsers. The build system requires browsers to support ES2015 at a minimum.
110
- ecma: 2015,
111
- // esbuild in the first pass is used to minify identifiers instead of mangle here
112
- mangle: false,
113
- // esbuild in the first pass is used to minify function names
114
- keep_fnames: true,
115
- format: {
116
- // ASCII output is enabled here as well to prevent terser from converting back to UTF-8
117
- ascii_only: true,
118
- wrap_func_args: false,
119
- },
120
- sourceMap: sourcemaps &&
121
- {
122
- asObject: true,
123
- // typings don't include asObject option
124
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
125
- },
126
- });
127
- if (typeof result.code !== 'string') {
128
- throw new Error('Terser failed for unknown reason.');
129
- }
130
- return { code: result.code, map: result.map };
131
- }
132
- /**
133
- * Determines if an unknown value is an esbuild BuildFailure error object thrown by esbuild.
134
- * @param value A potential esbuild BuildFailure error object.
135
- * @returns `true` if the object is determined to be a BuildFailure object; otherwise, `false`.
136
- */
137
- function isEsBuildFailure(value) {
138
- return !!value && typeof value === 'object' && 'errors' in value && 'warnings' in value;
139
- }
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC1vcHRpbWl6ZXItd29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvd2VicGFjay9wbHVnaW5zL2phdmFzY3JpcHQtb3B0aW1pemVyLXdvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7OztBQUVILHNFQUE4QztBQUU5QyxtQ0FBZ0M7QUFDaEMseURBQXFEO0FBOEVyRDs7OztHQUlHO0FBQ0gsSUFBSSxPQUFvQyxDQUFDO0FBRXpDOztHQUVHO0FBQ1ksS0FBSyxvQkFBVyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQW1CO0lBQ2hFLGtDQUFrQztJQUNsQyxNQUFNLGFBQWEsR0FBRyxNQUFNLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRixJQUFJLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxFQUFFO1FBQ25DLE9BQU87WUFDTCxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsb0VBQW9FO1lBQ3BFLE1BQU0sRUFBRSxNQUFNLE9BQVEsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztTQUMvRSxDQUFDO0tBQ0g7SUFFRCxrQ0FBa0M7SUFDbEMsTUFBTSxZQUFZLEdBQUcsTUFBTSxrQkFBa0IsQ0FDM0MsS0FBSyxDQUFDLElBQUksRUFDVixhQUFhLENBQUMsSUFBSSxFQUNsQixPQUFPLENBQUMsU0FBUyxFQUNqQixPQUFPLENBQUMsUUFBUSxDQUNqQixDQUFDO0lBRUYsZ0VBQWdFO0lBQ2hFLElBQUksYUFBYSxDQUFDO0lBQ2xCLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRTtRQUNyQixNQUFNLGlCQUFpQixHQUFH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QUNaLENBQ0YsQ0FBQztJQUVGLElBQUksT0FBTyxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7S0FDdEQ7SUFFRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFhLEVBQUUsQ0FBQztBQUMxRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsZ0JBQWdCLENBQUMsS0FBYztJQUN0QyxPQUFPLENBQUMsQ0FBQyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLFFBQVEsSUFBSSxLQUFLLElBQUksVUFBVSxJQUFJLEtBQUssQ0FBQztBQUMxRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCByZW1hcHBpbmcgZnJvbSAnQGFtcHByb2plY3QvcmVtYXBwaW5nJztcbmltcG9ydCB0eXBlIHsgQnVpbGRGYWlsdXJlLCBUcmFuc2Zvcm1SZXN1bHQgfSBmcm9tICdlc2J1aWxkJztcbmltcG9ydCB7IG1pbmlmeSB9IGZyb20gJ3RlcnNlcic7XG5pbXBvcnQgeyBFc2J1aWxkRXhlY3V0b3IgfSBmcm9tICcuL2VzYnVpbGQtZXhlY3V0b3InO1xuXG4vKipcbiAqIFRoZSBvcHRpb25zIHRvIHVzZSB3aGVuIG9wdGltaXppbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW1pemVSZXF1ZXN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBDb250cm9scyBhZHZhbmNlZCBvcHRpbWl6YXRpb25zLlxuICAgKiBDdXJyZW50bHkgdGhlc2UgYXJlIG9ubHkgdGVyc2VyIHJlbGF0ZWQ6XG4gICAqICogdGVyc2VyIGNvbXByZXNzIHBhc3NlcyBhcmUgc2V0IHRvIDJcbiAgICogKiB0ZXJzZXIgcHVyZV9nZXR0ZXJzIG9wdGlvbiBpcyBlbmFibGVkXG4gICAqL1xuICBhZHZhbmNlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHN0cmluZyB0b2tlbnMgdGhhdCBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCBhIGRlZmluZWQgdmFsdWUuXG4gICAqL1xuICBkZWZpbmU/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKipcbiAgICogQ29udHJvbHMgd2hldGhlciBjbGFzcywgZnVuY3Rpb24sIGFuZCB2YXJpYWJsZSBuYW1lcyBzaG91bGQgYmUgbGVmdCBpbnRhY3RcbiAgICogdGhyb3VnaG91dCB0aGUgb3V0cHV0IGNvZGUuXG4gICAqL1xuICBrZWVwSWRlbnRpZmllck5hbWVzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb250cm9scyB3aGV0aGVyIHRvIHJldGFpbiB0aGUgb3JpZ2luYWwgbmFtZSBvZiBjbGFzc2VzIGFuZCBmdW5jdGlvbnMuXG4gICAqL1xuICBrZWVwTmFtZXM6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDb250cm9scyB3aGV0aGVyIGxpY2Vuc2UgdGV4dCBpcyByZW1vdmVkIGZyb20gdGhlIG91dHB1dCBjb2RlLlxuICAgKiBXaXRoaW4gdGhlIENMSSwgdGhpcyBvcHRpb24gaXMgbGlua2VkIHRvIHRoZSBsaWNlbnNlIGV4dHJhY3Rpb24gZnVuY3Rpb25hbGl0eS5cbiAgICovXG4gIHJlbW92ZUxpY2Vuc2VzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoZXRoZXIgc291cmNlIG1hcHMgc2hvdWxkIGJlIGdlbmVyYXRlZC5cbiAgICovXG4gIHNvdXJjZW1hcD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIGVzYnVpbGQgdGFyZ2V0cy5cbiAgICogQHNlZTogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI3RhcmdldFxuICAgKi9cbiAgdGFyZ2V0Pzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBDb250cm9scyB3aGV0aGVyIGVzYnVpbGQgc2hvdWxkIG9ubHkgdXNlIHRoZSBXQVNNLXZhcmlhbnQgaW5zdGVhZCBvZiB0cnlpbmcgdG9cbiAgICogdXNlIHRoZSBuYXRpdmUgdmFyaWFudC4gU29tZSBwbGF0Zm9ybXMgbWF5IG5vdCBzdXBwb3J0IHRoZSBuYXRpdmUtdmFyaWFudCBhbmRcbiAgICogdGhpcyBvcHRpb24gYWxsb3dzIG9uZSBzdXBwb3J0IHRlc3QgdG8gYmUgY29uZHVjdGVkIHByaW9yIHRvIGFsbCB0aGUgd29ya2VycyBzdGFydGluZy5cbiAgICovXG4gIGFsd2F5c1VzZVdhc206IGJvb2xlYW47XG59XG5cbi8qKlxuICogQSByZXF1ZXN0IHRvIG9wdGltaXplIEphdmFTY3JpcHQgdXNpbmcgdGhlIHN1cHBsaWVkIG9wdGlvbnMuXG4gKi9cbmludGVyZmFjZSBPcHRpbWl6ZVJlcXVlc3Qge1xuICAvKipcbiAgICogVGhlIG9wdGlvbnMgdG8gdXNlIHdoZW4gb3B0aW1pemluZy5cbiAgICovXG4gIG9wdGlvbnM6IE9wdGltaXplUmVxdWVzdE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFRoZSBKYXZhU2NyaXB0IGFzc2V0IHRvIG9wdGltaXplLlxuICAgKi9cbiAgYXNzZXQ6IHtcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgSmF2YVNjcmlwdCBhc3NldCAodHlwaWNhbGx5IHRoZSBmaWxlbmFtZSkuXG4gICAgICovXG4gICAgbmFtZTogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBzb3VyY2UgY29udGVudCBvZiB0aGUgSmF2YVNjcmlwdCBhc3NldC5cbiAgICAgKi9cbiAgICBjb2RlOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIHNvdXJjZSBtYXAgb2YgdGhlIEphdmFTY3JpcHQgYXNzZXQsIGlmIGF2YWlsYWJsZS5cbiAgICAgKiBUaGlzIG1hcCBpcyBtZXJnZWQgd2l0aCBhbGwgaW50ZXJtZWRpYXRlIHNvdXJjZSBtYXBzIGR1cmluZyBvcHRpbWl6YXRpb24uXG4gICAgICovXG4gICAgbWFwOiBvYmplY3Q7XG4gIH07XG59XG5cbi8qKlxuICogVGhlIGNhY2hlZCBlc2J1aWxkIGV4ZWN1dG9yLlxuICogVGhpcyB3aWxsIGF1dG9tYXRpY2FsbHkgdXNlIHRoZSBuYXRpdmUgb3IgV0FTTSB2ZXJzaW9uIGJhc2VkIG9uIHBsYXRmb3JtIGFuZCBhdmFpbGFiaWxpdHlcbiAqIHdpdGggdGhlIG5hdGl2ZSB2ZXJzaW9uIGdpdmVuIHByaW9yaXR5IGR1ZSB0byBpdHMgc3VwZXJpb3IgcGVyZm9ybWFuY2UuXG4gKi9cbmxldCBlc2J1aWxkOiBFc2J1aWxkRXhlY3V0b3IgfCB1bmRlZmluZWQ7XG5cbi8qKlxuICogSGFuZGxlcyBvcHRpbWl6YXRpb24gcmVxdWVzdHMgc2VudCBmcm9tIHRoZSBtYWluIHRocmVhZCB2aWEgdGhlIGBKYXZhU2NyaXB0T3B0aW1pemVyUGx1Z2luYC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gKHsgYXNzZXQsIG9wdGlvbnMgfTogT3B0aW1pemVSZXF1ZXN0KSB7XG4gIC8vIGVzYnVpbGQgaXMgdXNlZCBhcyBhIGZpcnN0IHBhc3NcbiAgY29uc3QgZXNidWlsZFJlc3VsdCA9IGF3YWl0IG9wdGltaXplV2l0aEVzYnVpbGQoYXNzZXQuY29kZSwgYXNzZXQubmFtZSwgb3B0aW9ucyk7XG4gIGlmIChpc0VzQnVpbGRGYWlsdXJlKGVzYnVpbGRSZXN1bHQpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IGFzc2V0Lm5hbWUsXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgICAgZXJyb3JzOiBhd2FpdCBlc2J1aWxkIS5mb3JtYXRNZXNzYWdlcyhlc2J1aWxkUmVzdWx0LmVycm9ycywgeyBraW5kOiAnZXJyb3InIH0pLFxuICAgIH07XG4gIH1cblxuICAvLyB0ZXJzZXIgaXMgdXNlZCBhcyBhIHNlY29uZCBwYXNzXG4gIGNvbnN0IHRlcnNlclJlc3VsdCA9IGF3YWl0IG9wdGltaXplV2l0aFRlcnNlcihcbiAgICBhc3NldC5uYW1lLFxuICAgIGVzYnVpbGRSZXN1bHQuY29kZSxcbiAgICBvcHRpb25zLnNvdXJjZW1hcCxcbiAgICBvcHRpb25zLmFkdmFuY2VkLFxuICApO1xuXG4gIC8vIE1lcmdlIGludGVybWVkaWF0ZSBzb3VyY2VtYXBzIHdpdGggaW5wdXQgc291cmNlbWFwIGlmIGVuYWJsZWRcbiAgbGV0IGZ1bGxTb3VyY2VtYXA7XG4gIGlmIChvcHRpb25zLnNvdXJjZW1hcCkge1xuICAgIGNvbnN0IHBhcnRpYWxTb3VyY2VtYXBzID0gW107XG5cbiAgICBpZiAoZXNidWlsZFJlc3VsdC5tYXApIHtcbiAgICAgIHBhcnRpYWxTb3VyY2VtYXBzLnVuc2hpZnQoSlNPTi5wYXJzZShlc2J1aWxkUmVzdWx0Lm1hcCkpO1xuICAgIH1cblxuICAgIGlmICh0ZXJzZXJSZXN1bHQubWFwKSB7XG4gICAgICBwYXJ0aWFsU291cmNlbWFwcy51bnNoaWZ0KHRlcnNlclJlc3VsdC5tYXApO1xuICAgIH1cblxuICAgIGlmIChhc3NldC5tYXApIHtcbiAgICAgIHBhcnRpYWxTb3VyY2VtYXBzLnB1c2goYXNzZXQubWFwKTtcbiAgICB9XG5cbiAgICBmdWxsU291cmNlbWFwID0gcmVtYXBwaW5nKHBhcnRpYWxTb3VyY2VtYXBzLCAoKSA9PiBudWxsKTtcbiAgfVxuXG4gIHJldHVybiB7IG5hbWU6IGFzc2V0Lm5hbWUsIGNvZGU6IHRlcnNlclJlc3VsdC5jb2RlLCBtYXA6IGZ1bGxTb3VyY2VtYXAgfTtcbn1cblxuLyoqXG4gKiBPcHRpbWl6ZXMgYSBKYXZhU2NyaXB0IGFzc2V0IHVzaW5nIGVzYnVpbGQuXG4gKlxuICogQHBhcmFtIGNvbnRlbnQgVGhlIEphdmFTY3JpcHQgYXNzZXQgc291cmNlIGNvbnRlbnQgdG8gb3B0aW1pemUuXG4gKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgSmF2YVNjcmlwdCBhc3NldC4gVXNlZCB0byBnZW5lcmF0ZSBzb3VyY2UgbWFwcy5cbiAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpbWl6YXRpb24gcmVxdWVzdCBvcHRpb25zIHRvIGFwcGx5IHRvIHRoZSBjb250ZW50LlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgb3B0aW1pemVkIGNvZGUsIHNvdXJjZSBtYXAsIGFuZCBhbnkgd2FybmluZ3MuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIG9wdGltaXplV2l0aEVzYnVpbGQoXG4gIGNvbnRlbnQ6IHN0cmluZyxcbiAgbmFtZTogc3RyaW5nLFxuICBvcHRpb25zOiBPcHRpbWl6ZVJlcXVlc3RbJ29wdGlvbnMnXSxcbik6IFByb21pc2U8VHJhbnNmb3JtUmVzdWx0IHwgQnVpbGRGYWlsdXJlPiB7XG4gIGlmICghZXNidWlsZCkge1xuICAgIGVzYnVpbGQgPSBuZXcgRXNidWlsZEV4ZWN1dG9yKG9wdGlvbnMuYWx3YXlzVXNlV2FzbSk7XG4gIH1cblxuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBlc2J1aWxkLnRyYW5zZm9ybShjb250ZW50LCB7XG4gICAgICBtaW5pZnlJZGVudGlmaWVyczogIW9wdGlvbnMua2VlcElkZW50aWZpZXJOYW1lcyxcbiAgICAgIG1pbmlmeVN5bnRheDogdHJ1ZSxcbiAgICAgIC8vIE5PVEU6IERpc2FibGluZyB3aGl0ZXNwYWNlIGVuc3VyZXMgdW51c2VkIHB1cmUgYW5ub3RhdGlvbnMgYXJlIGtlcHRcbiAgICAgIG1pbmlmeVdoaXRlc3BhY2U6IGZhbHNlLFxuICAgICAgcHVyZTogWydmb3J3YXJkUmVmJ10sXG4gICAgICBsZWdhbENvbW1lbnRzOiBvcHRpb25zLnJlbW92ZUxpY2Vuc2VzID8gJ25vbmUnIDogJ2lubGluZScsXG4gICAgICBzb3VyY2VmaWxlOiBuYW1lLFxuICAgICAgc291cmNlbWFwOiBvcHRpb25zLnNvdXJjZW1hcCAmJiAnZXh0ZXJuYWwnLFxuICAgICAgZGVmaW5lOiBvcHRpb25zLmRlZmluZSxcbiAgICAgIC8vIFRoaXMgb3B0aW9uIHNob3VsZCBhbHdheXMgYmUgZGlzYWJsZWQgZm9yIGJyb3dzZXIgYnVpbGRzIGFzIHdlIGRvbid0IHJlbHkgb24gYC5uYW1lYFxuICAgICAgLy8gYW5kIGNhdXNlcyBkZWFkY29kZSB0byBiZSByZXRhaW5lZCB3aGljaCBtYWtlcyBgTkdfQlVJTERfTUFOR0xFYCB1bnVzYWJsZSB0byBpbnZlc3RpZ2F0ZSB0cmVlLXNoYWtpbmcgaXNzdWVzLlxuICAgICAgLy8gV2UgZW5hYmxlIGBrZWVwTmFtZXNgIG9ubHkgZm9yIHNlcnZlciBidWlsZHMgYXMgRG9taW5vIHJlbGllcyBvbiBgLm5hbWVgLlxuICAgICAgLy8gT25jZSB3ZSBubyBsb25nZXIgcmVseSBvbiBEb21pbm8gZm9yIFNTUiB3ZSBzaG91bGQgYmUgYWJsZSB0byByZW1vdmUgdGhpcy5cbiAgICAgIGtlZXBOYW1lczogb3B0aW9ucy5rZWVwTmFtZXMsXG4gICAgICB0YXJnZXQ6IG9wdGlvbnMudGFyZ2V0LFxuICAgIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChpc0VzQnVpbGRGYWlsdXJlKGVycm9yKSkge1xuICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cblxuICAgIHRocm93IGVycm9yO1xuICB9XG59XG5cbi8qKlxuICogT3B0aW1pemVzIGEgSmF2YVNjcmlwdCBhc3NldCB1c2luZyB0ZXJzZXIuXG4gKlxuICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIEphdmFTY3JpcHQgYXNzZXQuIFVzZWQgdG8gZ2VuZXJhdGUgc291cmNlIG1hcHMuXG4gKiBAcGFyYW0gY29kZSBUaGUgSmF2YVNjcmlwdCBhc3NldCBzb3VyY2UgY29udGVudCB0byBvcHRpbWl6ZS5cbiAqIEBwYXJhbSBzb3VyY2VtYXBzIElmIHRydWUsIGdlbmVyYXRlIGFuIG91dHB1dCBzb3VyY2UgbWFwIGZvciB0aGUgb3B0aW1pemVkIGNvZGUuXG4gKiBAcGFyYW0gYWR2YW5jZWQgQ29udHJvbHMgYWR2YW5jZWQgb3B0aW1pemF0aW9ucy5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIG9wdGltaXplZCBjb2RlIGFuZCBzb3VyY2UgbWFwLlxuICovXG5hc3luYyBmdW5jdGlvbiBvcHRpbWl6ZVdpdGhUZXJzZXIoXG4gIG5hbWU6IHN0cmluZyxcbiAgY29kZTogc3RyaW5nLFxuICBzb3VyY2VtYXBzOiBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBhZHZhbmNlZDogYm9vbGVhbiB8IHVuZGVmaW5lZCxcbik6IFByb21pc2U8eyBjb2RlOiBzdHJpbmc7IG1hcD86IG9iamVjdCB9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1pbmlmeShcbiAgICB7IFtuYW1lXTogY29kZSB9LFxuICAgIHtcbiAgICAgIGNvbXByZXNzOiB7XG4gICAgICAgIHBhc3NlczogYWR2YW5jZWQgPyAyIDogMSxcbiAgICAgICAgcHVyZV9nZXR0ZXJzOiBhZHZhbmNlZCxcbiAgICAgIH0sXG4gICAgICAvLyBTZXQgdG8gRVMyMDE1IHRvIHByZXZlbnQgaGlnaGVyIGxldmVsIGZlYXR1cmVzIGZyb20gYmVpbmcgaW50cm9kdWNlZCB3aGVuIGJyb3dzZXJzbGlzdFxuICAgICAgLy8gY29udGFpbnMgb2xkZXIgYnJvd3NlcnMuIFRoZSBidWlsZCBzeXN0ZW0gcmVxdWlyZXMgYnJvd3NlcnMgdG8gc3VwcG9ydCBFUzIwMTUgYXQgYSBtaW5pbXVtLlxuICAgICAgZWNtYTogMjAxNSxcbiAgICAgIC8vIGVzYnVpbGQgaW4gdGhlIGZpcnN0IHBhc3MgaXMgdXNlZCB0byBtaW5pZnkgaWRlbnRpZmllcnMgaW5zdGVhZCBvZiBtYW5nbGUgaGVyZVxuICAgICAgbWFuZ2xlOiBmYWxzZSxcbiAgICAgIC8vIGVzYnVpbGQgaW4gdGhlIGZpcnN0IHBhc3MgaXMgdXNlZCB0byBtaW5pZnkgZnVuY3Rpb24gbmFtZXNcbiAgICAgIGtlZXBfZm5hbWVzOiB0cnVlLFxuICAgICAgZm9ybWF0OiB7XG4gICAgICAgIC8vIEFTQ0lJIG91dHB1dCBpcyBlbmFibGVkIGhlcmUgYXMgd2VsbCB0byBwcmV2ZW50IHRlcnNlciBmcm9tIGNvbnZlcnRpbmcgYmFjayB0byBVVEYtOFxuICAgICAgICBhc2NpaV9vbmx5OiB0cnVlLFxuICAgICAgICB3cmFwX2Z1bmNfYXJnczogZmFsc2UsXG4gICAgICB9LFxuICAgICAgc291cmNlTWFwOlxuICAgICAgICBzb3VyY2VtYXBzICYmXG4gICAgICAgICh7XG4gICAgICAgICAgYXNPYmplY3Q6IHRydWUsXG4gICAgICAgICAgLy8gdHlwaW5ncyBkb24ndCBpbmNsdWRlIGFzT2JqZWN0IG9wdGlvblxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIH0gYXMgYW55KSxcbiAgICB9LFxuICApO1xuXG4gIGlmICh0eXBlb2YgcmVzdWx0LmNvZGUgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUZXJzZXIgZmFpbGVkIGZvciB1bmtub3duIHJlYXNvbi4nKTtcbiAgfVxuXG4gIHJldHVybiB7IGNvZGU6IHJlc3VsdC5jb2RlLCBtYXA6IHJlc3VsdC5tYXAgYXMgb2JqZWN0IH07XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBhbiB1bmtub3duIHZhbHVlIGlzIGFuIGVzYnVpbGQgQnVpbGRGYWlsdXJlIGVycm9yIG9iamVjdCB0aHJvd24gYnkgZXNidWlsZC5cbiAqIEBwYXJhbSB2YWx1ZSBBIHBvdGVudGlhbCBlc2J1aWxkIEJ1aWxkRmFpbHVyZSBlcnJvciBvYmplY3QuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG9iamVjdCBpcyBkZXRlcm1pbmVkIHRvIGJlIGEgQnVpbGRGYWlsdXJlIG9iamVjdDsgb3RoZXJ3aXNlLCBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0VzQnVpbGRGYWlsdXJlKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgQnVpbGRGYWlsdXJlIHtcbiAgcmV0dXJuICEhdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAnZXJyb3JzJyBpbiB2YWx1ZSAmJiAnd2FybmluZ3MnIGluIHZhbHVlO1xufVxuIl19
@@ -1,61 +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
- Object.defineProperty(exports, "__esModule", { value: true });
33
- exports.JsonStatsPlugin = void 0;
34
- const fs_1 = require("fs");
35
- const path_1 = require("path");
36
- const error_1 = require("../../utils/error");
37
- const webpack_diagnostics_1 = require("../../utils/webpack-diagnostics");
38
- class JsonStatsPlugin {
39
- constructor(statsOutputPath) {
40
- this.statsOutputPath = statsOutputPath;
41
- }
42
- apply(compiler) {
43
- compiler.hooks.done.tapPromise('angular-json-stats', async (stats) => {
44
- const { stringifyStream } = await Promise.resolve().then(() => __importStar(require('@discoveryjs/json-ext')));
45
- const data = stats.toJson('verbose');
46
- try {
47
- await fs_1.promises.mkdir((0, path_1.dirname)(this.statsOutputPath), { recursive: true });
48
- await new Promise((resolve, reject) => stringifyStream(data)
49
- .pipe((0, fs_1.createWriteStream)(this.statsOutputPath))
50
- .on('close', resolve)
51
- .on('error', reject));
52
- }
53
- catch (error) {
54
- (0, error_1.assertIsError)(error);
55
- (0, webpack_diagnostics_1.addError)(stats.compilation, `Unable to write stats file: ${error.message || 'unknown error'}`);
56
- }
57
- });
58
- }
59
- }
60
- exports.JsonStatsPlugin = JsonStatsPlugin;
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1zdGF0cy1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9idWlsZF9hbmd1bGFyL3NyYy93ZWJwYWNrL3BsdWdpbnMvanNvbi1zdGF0cy1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCwyQkFBK0Q7QUFDL0QsK0JBQStCO0FBRS9CLDZDQUFrRDtBQUVsRCx5RUFBMkQ7QUFFM0QsTUFBYSxlQUFlO0lBQzFCLFlBQTZCLGVBQXVCO1FBQXZCLG9CQUFlLEdBQWYsZUFBZSxDQUFRO0lBQUcsQ0FBQztJQUV4RCxLQUFLLENBQUMsUUFBa0I7UUFDdEIsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQixFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNuRSxNQUFNLEVBQUUsZUFBZSxFQUFFLEdBQUcsd0RBQWEsdUJBQXVCLEdBQUMsQ0FBQztZQUNsRSxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRXJDLElBQUk7Z0JBQ0YsTUFBTSxhQUFVLENBQUMsS0FBSyxDQUFDLElBQUEsY0FBTyxFQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUMzRSxNQUFNLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQzFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7cUJBQ2xCLElBQUksQ0FBQyxJQUFBLHNCQUFpQixFQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztxQkFDN0MsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7cUJBQ3BCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQ3ZCLENBQUM7YUFDSDtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLElBQUEscUJBQWEsRUFBQyxLQUFLLENBQUMsQ0FBQztnQkFDckIsSUFBQSw4QkFBUSxFQUNOLEtBQUssQ0FBQyxXQUFXLEVBQ2pCLCtCQUErQixLQUFLLENBQUMsT0FBTyxJQUFJLGVBQWUsRUFBRSxDQUNsRSxDQUFDO2FBQ0g7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXpCRCwwQ0F5QkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsgY3JlYXRlV3JpdGVTdHJlYW0sIHByb21pc2VzIGFzIGZzUHJvbWlzZXMgfSBmcm9tICdmcyc7XG5pbXBvcnQgeyBkaXJuYW1lIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBDb21waWxlciB9IGZyb20gJ3dlYnBhY2snO1xuaW1wb3J0IHsgYXNzZXJ0SXNFcnJvciB9IGZyb20gJy4uLy4uL3V0aWxzL2Vycm9yJztcblxuaW1wb3J0IHsgYWRkRXJyb3IgfSBmcm9tICcuLi8uLi91dGlscy93ZWJwYWNrLWRpYWdub3N0aWNzJztcblxuZXhwb3J0IGNsYXNzIEpzb25TdGF0c1BsdWdpbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc3RhdHNPdXRwdXRQYXRoOiBzdHJpbmcpIHt9XG5cbiAgYXBwbHkoY29tcGlsZXI6IENvbXBpbGVyKSB7XG4gICAgY29tcGlsZXIuaG9va3MuZG9uZS50YXBQcm9taXNlKCdhbmd1bGFyLWpzb24tc3RhdHMnLCBhc3luYyAoc3RhdHMpID0+IHtcbiAgICAgIGNvbnN0IHsgc3RyaW5naWZ5U3RyZWFtIH0gPSBhd2FpdCBpbXBvcnQoJ0BkaXNjb3Zlcnlqcy9qc29uLWV4dCcpO1xuICAgICAgY29uc3QgZGF0YSA9IHN0YXRzLnRvSnNvbigndmVyYm9zZScpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBmc1Byb21pc2VzLm1rZGlyKGRpcm5hbWUodGhpcy5zdGF0c091dHB1dFBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgYXdhaXQgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT5cbiAgICAgICAgICBzdHJpbmdpZnlTdHJlYW0oZGF0YSlcbiAgICAgICAgICAgIC5waXBlKGNyZWF0ZVdyaXRlU3RyZWFtKHRoaXMuc3RhdHNPdXRwdXRQYXRoKSlcbiAgICAgICAgICAgIC5vbignY2xvc2UnLCByZXNvbHZlKVxuICAgICAgICAgICAgLm9uKCdlcnJvcicsIHJlamVjdCksXG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBhc3NlcnRJc0Vycm9yKGVycm9yKTtcbiAgICAgICAgYWRkRXJyb3IoXG4gICAgICAgICAgc3RhdHMuY29tcGlsYXRpb24sXG4gICAgICAgICAgYFVuYWJsZSB0byB3cml0ZSBzdGF0cyBmaWxlOiAke2Vycm9yLm1lc3NhZ2UgfHwgJ3Vua25vd24gZXJyb3InfWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==