@angular-devkit/build-angular 16.1.0-rc.0 → 16.1.1
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.
- package/package.json +23 -23
- package/plugins/karma.js +2 -2
- package/src/builders/browser/index.d.ts +1 -1
- package/src/builders/browser/index.js +5 -5
- package/src/builders/browser-esbuild/index.js +27 -376
- package/src/builders/browser-esbuild/options.js +2 -2
- package/src/builders/dev-server/load-proxy-config.d.ts +1 -6
- package/src/builders/dev-server/load-proxy-config.js +52 -13
- package/src/builders/dev-server/vite-server.js +4 -7
- package/src/builders/dev-server/webpack-server.d.ts +1 -1
- package/src/builders/dev-server/webpack-server.js +6 -6
- package/src/builders/extract-i18n/index.js +3 -3
- package/src/builders/karma/index.js +2 -2
- package/src/builders/server/index.js +4 -4
- package/src/tools/babel/plugins/adjust-static-class-members.js +354 -0
- package/src/tools/babel/plugins/adjust-typescript-enums.js +124 -0
- package/src/tools/babel/plugins/elide-angular-metadata.js +68 -0
- package/src/tools/babel/plugins/pure-toplevel-functions.js +91 -0
- package/src/tools/babel/presets/application.js +197 -0
- package/src/{babel → tools/babel}/webpack-loader.d.ts +1 -1
- package/src/tools/babel/webpack-loader.js +189 -0
- package/src/tools/esbuild/angular/angular-compilation.js +51 -0
- package/src/tools/esbuild/angular/angular-host.js +60 -0
- package/src/tools/esbuild/angular/aot-compilation.js +211 -0
- package/src/tools/esbuild/angular/compiler-plugin.js +314 -0
- package/src/tools/esbuild/angular/diagnostics.js +75 -0
- package/src/tools/esbuild/angular/jit-compilation.js +106 -0
- package/src/tools/esbuild/angular/jit-plugin-callbacks.js +113 -0
- package/src/tools/esbuild/angular/jit-resource-transformer.js +185 -0
- package/src/tools/esbuild/angular/uri.js +75 -0
- package/src/tools/esbuild/application-code-bundle.d.ts +11 -0
- package/src/tools/esbuild/application-code-bundle.js +115 -0
- package/src/{builders/browser-esbuild/esbuild.d.ts → tools/esbuild/bundler-context.d.ts} +2 -12
- package/src/tools/esbuild/bundler-context.js +205 -0
- package/src/tools/esbuild/bundler-execution-result.d.ts +44 -0
- package/src/tools/esbuild/bundler-execution-result.js +57 -0
- package/src/tools/esbuild/commonjs-checker.js +141 -0
- package/src/tools/esbuild/external-packages-plugin.d.ts +17 -0
- package/src/tools/esbuild/external-packages-plugin.js +49 -0
- package/src/{builders/browser-esbuild → tools/esbuild}/global-scripts.d.ts +1 -1
- package/src/tools/esbuild/global-scripts.js +139 -0
- package/src/{builders/browser-esbuild → tools/esbuild}/global-styles.d.ts +1 -1
- package/src/tools/esbuild/global-styles.js +67 -0
- package/src/tools/esbuild/index-html-generator.d.ts +12 -0
- package/src/tools/esbuild/index-html-generator.js +70 -0
- package/src/tools/esbuild/javascript-transformer-worker.js +76 -0
- package/src/tools/esbuild/javascript-transformer.js +108 -0
- package/src/tools/esbuild/license-extractor.js +159 -0
- package/src/tools/esbuild/load-result-cache.js +69 -0
- package/src/tools/esbuild/profiling.js +79 -0
- package/src/tools/esbuild/sourcemap-ignorelist-plugin.js +74 -0
- package/src/tools/esbuild/stylesheets/bundle-options.js +159 -0
- package/src/tools/esbuild/stylesheets/css-language.js +16 -0
- package/src/tools/esbuild/stylesheets/css-resource-plugin.js +88 -0
- package/src/tools/esbuild/stylesheets/less-language.js +127 -0
- package/src/tools/esbuild/stylesheets/sass-language.js +169 -0
- package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.js +234 -0
- package/src/tools/esbuild/utils.d.ts +30 -0
- package/src/tools/esbuild/utils.js +192 -0
- package/src/tools/esbuild/virtual-module-plugin.js +43 -0
- package/src/tools/esbuild/watcher.js +107 -0
- package/src/tools/sass/rebasing-importer.js +445 -0
- package/src/tools/sass/sass-service-legacy.js +176 -0
- package/src/tools/sass/sass-service.js +214 -0
- package/src/tools/sass/worker-legacy.js +44 -0
- package/src/tools/sass/worker.js +158 -0
- package/src/{webpack → tools/webpack}/configs/common.d.ts +1 -1
- package/src/tools/webpack/configs/common.js +421 -0
- package/src/{webpack → tools/webpack}/configs/dev-server.d.ts +1 -1
- package/src/tools/webpack/configs/dev-server.js +304 -0
- package/src/{webpack → tools/webpack}/configs/index.js +1 -1
- package/src/{webpack → tools/webpack}/configs/styles.d.ts +1 -1
- package/src/tools/webpack/configs/styles.js +396 -0
- package/src/{webpack → tools/webpack}/plugins/any-component-style-budget-checker.d.ts +1 -1
- package/src/tools/webpack/plugins/any-component-style-budget-checker.js +92 -0
- package/src/tools/webpack/plugins/builder-watch-plugin.js +99 -0
- package/src/tools/webpack/plugins/common-js-usage-warn-plugin.js +121 -0
- package/src/tools/webpack/plugins/css-optimizer-plugin.js +123 -0
- package/src/tools/webpack/plugins/dedupe-module-resolve-plugin.js +75 -0
- package/src/tools/webpack/plugins/devtools-ignore-plugin.js +57 -0
- package/src/tools/webpack/plugins/esbuild-executor.js +121 -0
- package/src/tools/webpack/plugins/hmr/hmr-accept.js +185 -0
- package/src/tools/webpack/plugins/hmr/hmr-loader.js +25 -0
- package/src/{webpack → tools/webpack}/plugins/index-html-webpack-plugin.d.ts +1 -1
- package/src/tools/webpack/plugins/index-html-webpack-plugin.js +85 -0
- package/src/{webpack → tools/webpack}/plugins/index.js +1 -1
- package/src/tools/webpack/plugins/javascript-optimizer-plugin.js +166 -0
- package/src/tools/webpack/plugins/javascript-optimizer-worker.js +140 -0
- package/src/tools/webpack/plugins/json-stats-plugin.js +61 -0
- package/src/tools/webpack/plugins/karma/karma.js +270 -0
- package/src/tools/webpack/plugins/named-chunks-plugin.js +59 -0
- package/src/tools/webpack/plugins/occurrences-plugin.js +80 -0
- package/src/tools/webpack/plugins/postcss-cli-resources.js +176 -0
- package/src/tools/webpack/plugins/progress-plugin.js +39 -0
- package/src/tools/webpack/plugins/remove-hash-plugin.js +31 -0
- package/src/tools/webpack/plugins/scripts-webpack-plugin.js +180 -0
- package/src/tools/webpack/plugins/service-worker-plugin.js +46 -0
- package/src/tools/webpack/plugins/styles-webpack-plugin.js +73 -0
- package/src/tools/webpack/plugins/suppress-entry-chunks-webpack-plugin.js +52 -0
- package/src/tools/webpack/plugins/transfer-size-plugin.js +50 -0
- package/src/{webpack → tools/webpack}/plugins/typescript.d.ts +1 -1
- package/src/tools/webpack/plugins/typescript.js +51 -0
- package/src/tools/webpack/plugins/watch-files-logs-plugin.js +28 -0
- package/src/tools/webpack/utils/async-chunks.js +46 -0
- package/src/{webpack → tools/webpack}/utils/helpers.d.ts +2 -2
- package/src/tools/webpack/utils/helpers.js +293 -0
- package/src/{webpack → tools/webpack}/utils/stats.d.ts +2 -2
- package/src/tools/webpack/utils/stats.js +443 -0
- package/src/utils/bundle-calculator.js +2 -2
- package/src/utils/index-file/augment-index-html.d.ts +1 -1
- package/src/utils/index-file/augment-index-html.js +1 -1
- package/src/utils/normalize-asset-patterns.d.ts +1 -1
- package/src/utils/normalize-asset-patterns.js +1 -1
- package/src/utils/normalize-file-replacements.d.ts +1 -1
- package/src/utils/normalize-file-replacements.js +1 -1
- package/src/utils/package-chunk-sort.js +2 -2
- package/src/utils/webpack-browser-config.js +2 -2
- package/src/babel/plugins/adjust-static-class-members.js +0 -354
- package/src/babel/plugins/adjust-typescript-enums.js +0 -124
- package/src/babel/plugins/elide-angular-metadata.js +0 -68
- package/src/babel/plugins/pure-toplevel-functions.js +0 -91
- package/src/babel/presets/application.js +0 -197
- package/src/babel/webpack-loader.js +0 -189
- package/src/builders/browser-esbuild/angular/angular-compilation.js +0 -51
- package/src/builders/browser-esbuild/angular/angular-host.js +0 -60
- package/src/builders/browser-esbuild/angular/aot-compilation.js +0 -208
- package/src/builders/browser-esbuild/angular/compiler-plugin.js +0 -314
- package/src/builders/browser-esbuild/angular/diagnostics.js +0 -75
- package/src/builders/browser-esbuild/angular/jit-compilation.js +0 -106
- package/src/builders/browser-esbuild/angular/jit-plugin-callbacks.js +0 -113
- package/src/builders/browser-esbuild/angular/jit-resource-transformer.js +0 -185
- package/src/builders/browser-esbuild/angular/uri.js +0 -75
- package/src/builders/browser-esbuild/commonjs-checker.js +0 -141
- package/src/builders/browser-esbuild/esbuild.js +0 -206
- package/src/builders/browser-esbuild/global-scripts.js +0 -139
- package/src/builders/browser-esbuild/global-styles.js +0 -67
- package/src/builders/browser-esbuild/javascript-transformer-worker.js +0 -76
- package/src/builders/browser-esbuild/javascript-transformer.js +0 -108
- package/src/builders/browser-esbuild/license-extractor.js +0 -159
- package/src/builders/browser-esbuild/load-result-cache.js +0 -69
- package/src/builders/browser-esbuild/profiling.js +0 -79
- package/src/builders/browser-esbuild/sourcemap-ignorelist-plugin.js +0 -74
- package/src/builders/browser-esbuild/stylesheets/bundle-options.js +0 -159
- package/src/builders/browser-esbuild/stylesheets/css-language.js +0 -16
- package/src/builders/browser-esbuild/stylesheets/css-resource-plugin.js +0 -88
- package/src/builders/browser-esbuild/stylesheets/less-language.js +0 -127
- package/src/builders/browser-esbuild/stylesheets/sass-language.js +0 -169
- package/src/builders/browser-esbuild/stylesheets/stylesheet-plugin-factory.js +0 -218
- package/src/builders/browser-esbuild/virtual-module-plugin.js +0 -43
- package/src/builders/browser-esbuild/watcher.js +0 -105
- package/src/sass/rebasing-importer.js +0 -445
- package/src/sass/sass-service-legacy.js +0 -176
- package/src/sass/sass-service.js +0 -214
- package/src/sass/worker-legacy.js +0 -44
- package/src/sass/worker.js +0 -158
- package/src/webpack/configs/common.js +0 -421
- package/src/webpack/configs/dev-server.js +0 -304
- package/src/webpack/configs/styles.js +0 -396
- package/src/webpack/plugins/any-component-style-budget-checker.js +0 -92
- package/src/webpack/plugins/builder-watch-plugin.js +0 -99
- package/src/webpack/plugins/common-js-usage-warn-plugin.js +0 -121
- package/src/webpack/plugins/css-optimizer-plugin.js +0 -123
- package/src/webpack/plugins/dedupe-module-resolve-plugin.js +0 -75
- package/src/webpack/plugins/devtools-ignore-plugin.js +0 -57
- package/src/webpack/plugins/esbuild-executor.js +0 -121
- package/src/webpack/plugins/hmr/hmr-accept.js +0 -185
- package/src/webpack/plugins/hmr/hmr-loader.js +0 -25
- package/src/webpack/plugins/index-html-webpack-plugin.js +0 -85
- package/src/webpack/plugins/javascript-optimizer-plugin.js +0 -166
- package/src/webpack/plugins/javascript-optimizer-worker.js +0 -140
- package/src/webpack/plugins/json-stats-plugin.js +0 -61
- package/src/webpack/plugins/karma/karma.js +0 -270
- package/src/webpack/plugins/named-chunks-plugin.js +0 -59
- package/src/webpack/plugins/occurrences-plugin.js +0 -80
- package/src/webpack/plugins/postcss-cli-resources.js +0 -176
- package/src/webpack/plugins/progress-plugin.js +0 -39
- package/src/webpack/plugins/remove-hash-plugin.js +0 -31
- package/src/webpack/plugins/scripts-webpack-plugin.js +0 -180
- package/src/webpack/plugins/service-worker-plugin.js +0 -46
- package/src/webpack/plugins/styles-webpack-plugin.js +0 -73
- package/src/webpack/plugins/suppress-entry-chunks-webpack-plugin.js +0 -52
- package/src/webpack/plugins/transfer-size-plugin.js +0 -50
- package/src/webpack/plugins/typescript.js +0 -51
- package/src/webpack/plugins/watch-files-logs-plugin.js +0 -28
- package/src/webpack/utils/async-chunks.js +0 -46
- package/src/webpack/utils/helpers.js +0 -293
- package/src/webpack/utils/stats.js +0 -443
- /package/src/{babel → tools/babel}/babel-loader.d.ts +0 -0
- /package/src/{babel → tools/babel}/plugins/adjust-static-class-members.d.ts +0 -0
- /package/src/{babel → tools/babel}/plugins/adjust-typescript-enums.d.ts +0 -0
- /package/src/{babel → tools/babel}/plugins/elide-angular-metadata.d.ts +0 -0
- /package/src/{babel → tools/babel}/plugins/pure-toplevel-functions.d.ts +0 -0
- /package/src/{babel → tools/babel}/presets/application.d.ts +0 -0
- /package/src/{builders/browser-esbuild → tools/esbuild}/angular/angular-compilation.d.ts +0 -0
- /package/src/{builders/browser-esbuild → tools/esbuild}/angular/angular-host.d.ts +0 -0
- /package/src/{builders/browser-esbuild → tools/esbuild}/angular/aot-compilation.d.ts +0 -0
- /package/src/{builders/browser-esbuild → tools/esbuild}/angular/compiler-plugin.d.ts +0 -0
- /package/src/{builders/browser-esbuild → tools/esbuild}/angular/diagnostics.d.ts +0 -0
- /package/src/{builders/browser-esbuild → tools/esbuild}/angular/jit-compilation.d.ts +0 -0
- /package/src/{builders/browser-esbuild → tools/esbuild}/angular/jit-plugin-callbacks.d.ts +0 -0
- /package/src/{builders/browser-esbuild → tools/esbuild}/angular/jit-resource-transformer.d.ts +0 -0
- /package/src/{builders/browser-esbuild → tools/esbuild}/angular/uri.d.ts +0 -0
- /package/src/{builders/browser-esbuild → tools/esbuild}/commonjs-checker.d.ts +0 -0
- /package/src/{builders/browser-esbuild → tools/esbuild}/javascript-transformer-worker.d.ts +0 -0
- /package/src/{builders/browser-esbuild → tools/esbuild}/javascript-transformer.d.ts +0 -0
- /package/src/{builders/browser-esbuild → tools/esbuild}/license-extractor.d.ts +0 -0
- /package/src/{builders/browser-esbuild → tools/esbuild}/load-result-cache.d.ts +0 -0
- /package/src/{builders/browser-esbuild → tools/esbuild}/profiling.d.ts +0 -0
- /package/src/{builders/browser-esbuild → tools/esbuild}/sourcemap-ignorelist-plugin.d.ts +0 -0
- /package/src/{builders/browser-esbuild → tools/esbuild}/stylesheets/bundle-options.d.ts +0 -0
- /package/src/{builders/browser-esbuild → tools/esbuild}/stylesheets/css-language.d.ts +0 -0
- /package/src/{builders/browser-esbuild → tools/esbuild}/stylesheets/css-resource-plugin.d.ts +0 -0
- /package/src/{builders/browser-esbuild → tools/esbuild}/stylesheets/less-language.d.ts +0 -0
- /package/src/{builders/browser-esbuild → tools/esbuild}/stylesheets/sass-language.d.ts +0 -0
- /package/src/{builders/browser-esbuild → tools/esbuild}/stylesheets/stylesheet-plugin-factory.d.ts +0 -0
- /package/src/{builders/browser-esbuild → tools/esbuild}/virtual-module-plugin.d.ts +0 -0
- /package/src/{builders/browser-esbuild → tools/esbuild}/watcher.d.ts +0 -0
- /package/src/{sass → tools/sass}/rebasing-importer.d.ts +0 -0
- /package/src/{sass → tools/sass}/sass-service-legacy.d.ts +0 -0
- /package/src/{sass → tools/sass}/sass-service.d.ts +0 -0
- /package/src/{sass → tools/sass}/worker-legacy.d.ts +0 -0
- /package/src/{sass → tools/sass}/worker.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/configs/index.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/plugins/builder-watch-plugin.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/plugins/common-js-usage-warn-plugin.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/plugins/css-optimizer-plugin.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/plugins/dedupe-module-resolve-plugin.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/plugins/devtools-ignore-plugin.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/plugins/esbuild-executor.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/plugins/hmr/hmr-accept.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/plugins/hmr/hmr-loader.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/plugins/index.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/plugins/javascript-optimizer-plugin.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/plugins/javascript-optimizer-worker.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/plugins/json-stats-plugin.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/plugins/karma/karma-context.html +0 -0
- /package/src/{webpack → tools/webpack}/plugins/karma/karma-debug.html +0 -0
- /package/src/{webpack → tools/webpack}/plugins/karma/karma.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/plugins/named-chunks-plugin.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/plugins/occurrences-plugin.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/plugins/postcss-cli-resources.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/plugins/progress-plugin.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/plugins/remove-hash-plugin.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/plugins/scripts-webpack-plugin.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/plugins/service-worker-plugin.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/plugins/styles-webpack-plugin.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/plugins/suppress-entry-chunks-webpack-plugin.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/plugins/transfer-size-plugin.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/plugins/watch-files-logs-plugin.d.ts +0 -0
- /package/src/{webpack → tools/webpack}/utils/async-chunks.d.ts +0 -0
package/src/sass/worker.js
DELETED
|
@@ -1,158 +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 node_path_1 = require("node:path");
|
|
15
|
-
const node_url_1 = require("node:url");
|
|
16
|
-
const node_worker_threads_1 = require("node:worker_threads");
|
|
17
|
-
const sass_1 = require("sass");
|
|
18
|
-
const rebasing_importer_1 = require("./rebasing-importer");
|
|
19
|
-
if (!node_worker_threads_1.parentPort || !node_worker_threads_1.workerData) {
|
|
20
|
-
throw new Error('Sass worker must be executed as a Worker.');
|
|
21
|
-
}
|
|
22
|
-
// The importer variables are used to proxy import requests to the main thread
|
|
23
|
-
const { workerImporterPort, importerSignal } = node_worker_threads_1.workerData;
|
|
24
|
-
node_worker_threads_1.parentPort.on('message', (message) => {
|
|
25
|
-
if (!node_worker_threads_1.parentPort) {
|
|
26
|
-
throw new Error('"parentPort" is not defined. Sass worker must be executed as a Worker.');
|
|
27
|
-
}
|
|
28
|
-
const { id, hasImporter, hasLogger, source, options, rebase } = message;
|
|
29
|
-
const entryDirectory = (0, node_path_1.dirname)(options.url);
|
|
30
|
-
let warnings;
|
|
31
|
-
try {
|
|
32
|
-
const directoryCache = new Map();
|
|
33
|
-
const rebaseSourceMaps = options.sourceMap ? new Map() : undefined;
|
|
34
|
-
if (hasImporter) {
|
|
35
|
-
// When a custom importer function is present, the importer request must be proxied
|
|
36
|
-
// back to the main thread where it can be executed.
|
|
37
|
-
// This process must be synchronous from the perspective of dart-sass. The `Atomics`
|
|
38
|
-
// functions combined with the shared memory `importSignal` and the Node.js
|
|
39
|
-
// `receiveMessageOnPort` function are used to ensure synchronous behavior.
|
|
40
|
-
const proxyImporter = {
|
|
41
|
-
findFileUrl: (url, options) => {
|
|
42
|
-
Atomics.store(importerSignal, 0, 0);
|
|
43
|
-
workerImporterPort.postMessage({ id, url, options });
|
|
44
|
-
Atomics.wait(importerSignal, 0, 0);
|
|
45
|
-
const result = (0, node_worker_threads_1.receiveMessageOnPort)(workerImporterPort)?.message;
|
|
46
|
-
return result ? (0, node_url_1.pathToFileURL)(result) : null;
|
|
47
|
-
},
|
|
48
|
-
};
|
|
49
|
-
options.importers = [
|
|
50
|
-
rebase
|
|
51
|
-
? (0, rebasing_importer_1.sassBindWorkaround)(new rebasing_importer_1.ModuleUrlRebasingImporter(entryDirectory, directoryCache, rebaseSourceMaps, proxyImporter.findFileUrl))
|
|
52
|
-
: proxyImporter,
|
|
53
|
-
];
|
|
54
|
-
}
|
|
55
|
-
if (rebase && options.loadPaths?.length) {
|
|
56
|
-
options.importers ?? (options.importers = []);
|
|
57
|
-
options.importers.push((0, rebasing_importer_1.sassBindWorkaround)(new rebasing_importer_1.LoadPathsUrlRebasingImporter(entryDirectory, directoryCache, rebaseSourceMaps, options.loadPaths)));
|
|
58
|
-
options.loadPaths = undefined;
|
|
59
|
-
}
|
|
60
|
-
let relativeImporter;
|
|
61
|
-
if (rebase) {
|
|
62
|
-
relativeImporter = (0, rebasing_importer_1.sassBindWorkaround)(new rebasing_importer_1.RelativeUrlRebasingImporter(entryDirectory, directoryCache, rebaseSourceMaps));
|
|
63
|
-
}
|
|
64
|
-
// The synchronous Sass render function can be up to two times faster than the async variant
|
|
65
|
-
const result = (0, sass_1.compileString)(source, {
|
|
66
|
-
...options,
|
|
67
|
-
// URL is not serializable so to convert to string in the parent and back to URL here.
|
|
68
|
-
url: (0, node_url_1.pathToFileURL)(options.url),
|
|
69
|
-
// The `importer` option (singular) handles relative imports
|
|
70
|
-
importer: relativeImporter,
|
|
71
|
-
logger: hasLogger
|
|
72
|
-
? {
|
|
73
|
-
warn(message, { deprecation, span, stack }) {
|
|
74
|
-
warnings ?? (warnings = []);
|
|
75
|
-
warnings.push({
|
|
76
|
-
message,
|
|
77
|
-
deprecation,
|
|
78
|
-
stack,
|
|
79
|
-
span: span && convertSourceSpan(span),
|
|
80
|
-
});
|
|
81
|
-
},
|
|
82
|
-
}
|
|
83
|
-
: undefined,
|
|
84
|
-
});
|
|
85
|
-
if (result.sourceMap && rebaseSourceMaps?.size) {
|
|
86
|
-
// Merge the intermediate rebasing source maps into the final Sass generated source map.
|
|
87
|
-
// Casting is required due to small but compatible differences in typings between the packages.
|
|
88
|
-
result.sourceMap = (0, remapping_1.default)(result.sourceMap,
|
|
89
|
-
// To prevent an infinite lookup loop, skip getting the source when the rebasing source map
|
|
90
|
-
// is referencing its original self.
|
|
91
|
-
(file, context) => (file !== context.importer ? rebaseSourceMaps.get(file) : null));
|
|
92
|
-
}
|
|
93
|
-
node_worker_threads_1.parentPort.postMessage({
|
|
94
|
-
id,
|
|
95
|
-
warnings,
|
|
96
|
-
result: {
|
|
97
|
-
...result,
|
|
98
|
-
// URL is not serializable so to convert to string here and back to URL in the parent.
|
|
99
|
-
loadedUrls: result.loadedUrls.map((p) => (0, node_url_1.fileURLToPath)(p)),
|
|
100
|
-
},
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
catch (error) {
|
|
104
|
-
// Needed because V8 will only serialize the message and stack properties of an Error instance.
|
|
105
|
-
if (error instanceof sass_1.Exception) {
|
|
106
|
-
const { span, message, stack, sassMessage, sassStack } = error;
|
|
107
|
-
node_worker_threads_1.parentPort.postMessage({
|
|
108
|
-
id,
|
|
109
|
-
warnings,
|
|
110
|
-
error: {
|
|
111
|
-
span: convertSourceSpan(span),
|
|
112
|
-
message,
|
|
113
|
-
stack,
|
|
114
|
-
sassMessage,
|
|
115
|
-
sassStack,
|
|
116
|
-
},
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
else if (error instanceof Error) {
|
|
120
|
-
const { message, stack } = error;
|
|
121
|
-
node_worker_threads_1.parentPort.postMessage({ id, warnings, error: { message, stack } });
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
node_worker_threads_1.parentPort.postMessage({
|
|
125
|
-
id,
|
|
126
|
-
warnings,
|
|
127
|
-
error: { message: 'An unknown error has occurred.' },
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
/**
|
|
133
|
-
* Converts a Sass SourceSpan object into a serializable form.
|
|
134
|
-
* The SourceSpan object contains a URL property which must be converted into a string.
|
|
135
|
-
* Also, most of the interface's properties are get accessors and are not automatically
|
|
136
|
-
* serialized when sent back from the worker.
|
|
137
|
-
*
|
|
138
|
-
* @param span The Sass SourceSpan object to convert.
|
|
139
|
-
* @returns A serializable form of the SourceSpan object.
|
|
140
|
-
*/
|
|
141
|
-
function convertSourceSpan(span) {
|
|
142
|
-
return {
|
|
143
|
-
text: span.text,
|
|
144
|
-
context: span.context,
|
|
145
|
-
end: {
|
|
146
|
-
column: span.end.column,
|
|
147
|
-
offset: span.end.offset,
|
|
148
|
-
line: span.end.line,
|
|
149
|
-
},
|
|
150
|
-
start: {
|
|
151
|
-
column: span.start.column,
|
|
152
|
-
offset: span.start.offset,
|
|
153
|
-
line: span.start.line,
|
|
154
|
-
},
|
|
155
|
-
url: span.url ? (0, node_url_1.fileURLToPath)(span.url) : undefined,
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvc2Fzcy93b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7QUFFSCxzRUFBc0U7QUFDdEUseUNBQW9DO0FBQ3BDLHVDQUF3RDtBQUN4RCw2REFBZ0c7QUFDaEcsK0JBTWM7QUFDZCwyREFNNkI7QUFpQzdCLElBQUksQ0FBQyxnQ0FBVSxJQUFJLENBQUMsZ0NBQVUsRUFBRTtJQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7Q0FDOUQ7QUFFRCw4RUFBOEU7QUFDOUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxHQUFHLGdDQUc5QyxDQUFDO0FBRUYsZ0NBQVUsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsT0FBNkIsRUFBRSxFQUFFO0lBQ3pELElBQUksQ0FBQyxnQ0FBVSxFQUFFO1FBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyx3RUFBd0UsQ0FBQyxDQUFDO0tBQzNGO0lBRUQsTUFBTSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQ3hFLE1BQU0sY0FBYyxHQUFHLElBQUEsbUJBQU8sRUFBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUMsSUFBSSxRQU9TLENBQUM7SUFDZCxJQUFJO1FBQ0YsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUM7UUFDekQsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBd0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3pGLElBQUksV0FBVyxFQUFFO1lBQ2YsbUZB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RixRQUFRO2dCQUNSLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRTthQUNyRCxDQUFDLENBQUM7U0FDSjtLQUNGO0FBQ0gsQ0FBQyxDQUFDLENBQUM7QUFFSDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsaUJBQWlCLENBQUMsSUFBZ0I7SUFDekMsT0FBTztRQUNMLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtRQUNmLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztRQUNyQixHQUFHLEVBQUU7WUFDSCxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNO1lBQ3ZCLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU07WUFDdkIsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSTtTQUNwQjtRQUNELEtBQUssRUFBRTtZQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU07WUFDekIsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTTtZQUN6QixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJO1NBQ3RCO1FBQ0QsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUEsd0JBQWEsRUFBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7S0FDcEQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IG1lcmdlU291cmNlTWFwcywgeyBSYXdTb3VyY2VNYXAgfSBmcm9tICdAYW1wcHJvamVjdC9yZW1hcHBpbmcnO1xuaW1wb3J0IHsgZGlybmFtZSB9IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoLCBwYXRoVG9GaWxlVVJMIH0gZnJvbSAnbm9kZTp1cmwnO1xuaW1wb3J0IHsgTWVzc2FnZVBvcnQsIHBhcmVudFBvcnQsIHJlY2VpdmVNZXNzYWdlT25Qb3J0LCB3b3JrZXJEYXRhIH0gZnJvbSAnbm9kZTp3b3JrZXJfdGhyZWFkcyc7XG5pbXBvcnQge1xuICBFeGNlcHRpb24sXG4gIEZpbGVJbXBvcnRlcixcbiAgU291cmNlU3BhbixcbiAgU3RyaW5nT3B0aW9uc1dpdGhJbXBvcnRlcixcbiAgY29tcGlsZVN0cmluZyxcbn0gZnJvbSAnc2Fzcyc7XG5pbXBvcnQge1xuICBEaXJlY3RvcnlFbnRyeSxcbiAgTG9hZFBhdGhzVXJsUmViYXNpbmdJbXBvcnRlcixcbiAgTW9kdWxlVXJsUmViYXNpbmdJbXBvcnRlcixcbiAgUmVsYXRpdmVVcmxSZWJhc2luZ0ltcG9ydGVyLFxuICBzYXNzQmluZFdvcmthcm91bmQsXG59IGZyb20gJy4vcmViYXNpbmctaW1wb3J0ZXInO1xuXG4vKipcbiAqIEEgcmVxdWVzdCB0byByZW5kZXIgYSBTYXNzIHN0eWxlc2hlZXQgdXNpbmcgdGhlIHN1cHBsaWVkIG9wdGlvbnMuXG4gKi9cbmludGVyZmFjZSBSZW5kZXJSZXF1ZXN0TWVzc2FnZSB7XG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIHJlcXVlc3QgaWRlbnRpZmllciB0aGF0IGxpbmtzIHRoZSByZW5kZXIgYWN0aW9uIHdpdGggYSBjYWxsYmFjayBhbmQgb3B0aW9uYWxcbiAgICogaW1wb3J0ZXIgb24gdGhlIG1haW4gdGhyZWFkLlxuICAgKi9cbiAgaWQ6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBjb250ZW50cyB0byBjb21waWxlLlxuICAgKi9cbiAgc291cmNlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgU2FzcyBvcHRpb25zIHRvIHByb3ZpZGUgdG8gdGhlIGBkYXJ0LXNhc3NgIGNvbXBpbGUgZnVuY3Rpb24uXG4gICAqL1xuICBvcHRpb25zOiBPbWl0PFN0cmluZ09wdGlvbnNXaXRoSW1wb3J0ZXI8J3N5bmMnPiwgJ3VybCc+ICYgeyB1cmw6IHN0cmluZyB9O1xuICAvKipcbiAgICogSW5kaWNhdGVzIHRoZSByZXF1ZXN0IGhhcyBhIGN1c3RvbSBpbXBvcnRlciBmdW5jdGlvbiBvbiB0aGUgbWFpbiB0aHJlYWQuXG4gICAqL1xuICBoYXNJbXBvcnRlcjogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGUgcmVxdWVzdCBoYXMgYSBjdXN0b20gbG9nZ2VyIGZvciB3YXJuaW5nIG1lc3NhZ2VzLlxuICAgKi9cbiAgaGFzTG9nZ2VyOiBib29sZWFuO1xuICAvKipcbiAgICogSW5kaWNhdGVzIHBhdGhzIHdpdGhpbiB1cmwoKSBDU1MgZnVuY3Rpb25zIHNob3VsZCBiZSByZWJhc2VkLlxuICAgKi9cbiAgcmViYXNlOiBib29sZWFuO1xufVxuXG5pZiAoIXBhcmVudFBvcnQgfHwgIXdvcmtlckRhdGEpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdTYXNzIHdvcmtlciBtdXN0IGJlIGV4ZWN1dGVkIGFzIGEgV29ya2VyLicpO1xufVxuXG4vLyBUaGUgaW1wb3J0ZXIgdmFyaWFibGVzIGFyZSB1c2VkIHRvIHByb3h5IGltcG9ydCByZXF1ZXN0cyB0byB0aGUgbWFpbiB0aHJlYWRcbmNvbnN0IHsgd29ya2VySW1wb3J0ZXJQb3J0LCBpbXBvcnRlclNpZ25hbCB9ID0gd29ya2VyRGF0YSBhcyB7XG4gIHdvcmtlckltcG9ydGVyUG9ydDogTWVzc2FnZVBvcnQ7XG4gIGltcG9ydGVyU2lnbmFsOiBJbnQzMkFycmF5O1xufTtcblxucGFyZW50UG9ydC5vbignbWVzc2FnZScsIChtZXNzYWdlOiBSZW5kZXJSZXF1ZXN0TWVzc2FnZSkgPT4ge1xuICBpZiAoIXBhcmVudFBvcnQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1wicGFyZW50UG9ydFwiIGlzIG5vdCBkZWZpbmVkLiBTYXNzIHdvcmtlciBtdXN0IGJlIGV4ZWN1dGVkIGFzIGEgV29ya2VyLicpO1xuICB9XG5cbiAgY29uc3QgeyBpZCwgaGFzSW1wb3J0ZXIsIGhhc0xvZ2dlciwgc291cmNlLCBvcHRpb25zLCByZWJhc2UgfSA9IG1lc3NhZ2U7XG4gIGNvbnN0IGVudHJ5RGlyZWN0b3J5ID0gZGlybmFtZShvcHRpb25zLnVybCk7XG4gIGxldCB3YXJuaW5nczpcbiAgICB8IHtcbiAgICAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgICAgICBkZXByZWNhdGlvbjogYm9vbGVhbjtcbiAgICAgICAgc3RhY2s/OiBzdHJpbmc7XG4gICAgICAgIHNwYW4/OiBPbWl0PFNvdXJjZVNwYW4sICd1cmwnPiAmIHsgdXJsPzogc3RyaW5nIH07XG4gICAgICB9W11cbiAgICB8IHVuZGVmaW5lZDtcbiAgdHJ5IHtcbiAgICBjb25zdCBkaXJlY3RvcnlDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBEaXJlY3RvcnlFbnRyeT4oKTtcbiAgICBjb25zdCByZWJhc2VTb3VyY2VNYXBzID0gb3B0aW9ucy5zb3VyY2VNYXAgPyBuZXcgTWFwPHN0cmluZywgUmF3U291cmNlTWFwPigpIDogdW5kZWZpbmVkO1xuICAgIGlmIChoYXNJbXBvcnRlcikge1xuICAgICAgLy8gV2hlbiBhIGN1c3RvbSBpbXBvcnRlciBmdW5jdGlvbiBpcyBwcmVzZW50LCB0aGUgaW1wb3J0ZXIgcmVxdWVzdCBtdXN0IGJlIHByb3hpZWRcbiAgICAgIC8vIGJhY2sgdG8gdGhlIG1haW4gdGhyZWFkIHdoZXJlIGl0IGNhbiBiZSBleGVjdXRlZC5cbiAgICAgIC8vIFRoaXMgcHJvY2VzcyBtdXN0IGJlIHN5bmNocm9ub3VzIGZyb20gdGhlIHBlcnNwZWN0aXZlIG9mIGRhcnQtc2Fzcy4gVGhlIGBBdG9taWNzYFxuICAgICAgLy8gZnVuY3Rpb25zIGNvbWJpbmVkIHdpdGggdGhlIHNoYXJlZCBtZW1vcnkgYGltcG9ydFNpZ25hbGAgYW5kIHRoZSBOb2RlLmpzXG4gICAgICAvLyBgcmVjZWl2ZU1lc3NhZ2VPblBvcnRgIGZ1bmN0aW9uIGFyZSB1c2VkIHRvIGVuc3VyZSBzeW5jaHJvbm91cyBiZWhhdmlvci5cbiAgICAgIGNvbnN0IHByb3h5SW1wb3J0ZXI6IEZpbGVJbXBvcnRlcjwnc3luYyc+ID0ge1xuICAgICAgICBmaW5kRmlsZVVybDogKHVybCwgb3B0aW9ucykgPT4ge1xuICAgICAgICAgIEF0b21pY3Muc3RvcmUoaW1wb3J0ZXJTaWduYWwsIDAsIDApO1xuICAgICAgICAgIHdvcmtlckltcG9ydGVyUG9ydC5wb3N0TWVzc2FnZSh7IGlkLCB1cmwsIG9wdGlvbnMgfSk7XG4gICAgICAgICAgQXRvbWljcy53YWl0KGltcG9ydGVyU2lnbmFsLCAwLCAwKTtcblxuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHJlY2VpdmVNZXNzYWdlT25Qb3J0KHdvcmtlckltcG9ydGVyUG9ydCk/Lm1lc3NhZ2UgYXMgc3RyaW5nIHwgbnVsbDtcblxuICAgICAgICAgIHJldHVybiByZXN1bHQgPyBwYXRoVG9GaWxlVVJMKHJlc3VsdCkgOiBudWxsO1xuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIG9wdGlvbnMuaW1wb3J0ZXJzID0gW1xuICAgICAgICByZWJhc2VcbiAgICAgICAgICA/IHNhc3NCaW5kV29ya2Fyb3VuZChcbiAgICAgICAgICAgICAgbmV3IE1vZHVsZVVybFJlYmFzaW5nSW1wb3J0ZXIoXG4gICAgICAgICAgICAgICAgZW50cnlEaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgZGlyZWN0b3J5Q2FjaGUsXG4gICAgICAgICAgICAgICAgcmViYXNlU291cmNlTWFwcyxcbiAgICAgICAgICAgICAgICBwcm94eUltcG9ydGVyLmZpbmRGaWxlVXJsLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogcHJveHlJbXBvcnRlcixcbiAgICAgIF07XG4gICAgfVxuXG4gICAgaWYgKHJlYmFzZSAmJiBvcHRpb25zLmxvYWRQYXRocz8ubGVuZ3RoKSB7XG4gICAgICBvcHRpb25zLmltcG9ydGVycyA/Pz0gW107XG4gICAgICBvcHRpb25zLmltcG9ydGVycy5wdXNoKFxuICAgICAgICBzYXNzQmluZFdvcmthcm91bmQoXG4gICAgICAgICAgbmV3IExvYWRQYXRoc1VybFJlYmFzaW5nSW1wb3J0ZXIoXG4gICAgICAgICAgICBlbnRyeURpcmVjdG9yeSxcbiAgICAgICAgICAgIGRpcmVjdG9yeUNhY2hlLFxuICAgICAgICAgICAgcmViYXNlU291cmNlTWFwcyxcbiAgICAgICAgICAgIG9wdGlvbnMubG9hZFBhdGhzLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICApO1xuICAgICAgb3B0aW9ucy5sb2FkUGF0aHMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgbGV0IHJlbGF0aXZlSW1wb3J0ZXI7XG4gICAgaWYgKHJlYmFzZSkge1xuICAgICAgcmVsYXRpdmVJbXBvcnRlciA9IHNhc3NCaW5kV29ya2Fyb3VuZChcbiAgICAgICAgbmV3IFJlbGF0aXZlVXJsUmViYXNpbmdJbXBvcnRlcihlbnRyeURpcmVjdG9yeSwgZGlyZWN0b3J5Q2FjaGUsIHJlYmFzZVNvdXJjZU1hcHMpLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBUaGUgc3luY2hyb25vdXMgU2FzcyByZW5kZXIgZnVuY3Rpb24gY2FuIGJlIHVwIHRvIHR3byB0aW1lcyBmYXN0ZXIgdGhhbiB0aGUgYXN5bmMgdmFyaWFudFxuICAgIGNvbnN0IHJlc3VsdCA9IGNvbXBpbGVTdHJpbmcoc291cmNlLCB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgLy8gVVJMIGlzIG5vdCBzZXJpYWxpemFibGUgc28gdG8gY29udmVydCB0byBzdHJpbmcgaW4gdGhlIHBhcmVudCBhbmQgYmFjayB0byBVUkwgaGVyZS5cbiAgICAgIHVybDogcGF0aFRvRmlsZVVSTChvcHRpb25zLnVybCksXG4gICAgICAvLyBUaGUgYGltcG9ydGVyYCBvcHRpb24gKHNpbmd1bGFyKSBoYW5kbGVzIHJlbGF0aXZlIGltcG9ydHNcbiAgICAgIGltcG9ydGVyOiByZWxhdGl2ZUltcG9ydGVyLFxuICAgICAgbG9nZ2VyOiBoYXNMb2dnZXJcbiAgICAgICAgPyB7XG4gICAgICAgICAgICB3YXJuKG1lc3NhZ2UsIHsgZGVwcmVjYXRpb24sIHNwYW4sIHN0YWNrIH0pIHtcbiAgICAgICAgICAgICAgd2FybmluZ3MgPz89IFtdO1xuICAgICAgICAgICAgICB3YXJuaW5ncy5wdXNoKHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgICAgICAgIGRlcHJlY2F0aW9uLFxuICAgICAgICAgICAgICAgIHN0YWNrLFxuICAgICAgICAgICAgICAgIHNwYW46IHNwYW4gJiYgY29udmVydFNvdXJjZVNwYW4oc3BhbiksXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgaWYgKHJlc3VsdC5zb3VyY2VNYXAgJiYgcmViYXNlU291cmNlTWFwcz8uc2l6ZSkge1xuICAgICAgLy8gTWVyZ2UgdGhlIGludGVybWVkaWF0ZSByZWJhc2luZyBzb3VyY2UgbWFwcyBpbnRvIHRoZSBmaW5hbCBTYXNzIGdlbmVyYXRlZCBzb3VyY2UgbWFwLlxuICAgICAgLy8gQ2FzdGluZyBpcyByZXF1aXJlZCBkdWUgdG8gc21hbGwgYnV0IGNvbXBhdGlibGUgZGlmZmVyZW5jZXMgaW4gdHlwaW5ncyBiZXR3ZWVuIHRoZSBwYWNrYWdlcy5cbiAgICAgIHJlc3VsdC5zb3VyY2VNYXAgPSBtZXJnZVNvdXJjZU1hcHMoXG4gICAgICAgIHJlc3VsdC5zb3VyY2VNYXAgYXMgdW5rbm93biBhcyBSYXdTb3VyY2VNYXAsXG4gICAgICAgIC8vIFRvIHByZXZlbnQgYW4gaW5maW5pdGUgbG9va3VwIGxvb3AsIHNraXAgZ2V0dGluZyB0aGUgc291cmNlIHdoZW4gdGhlIHJlYmFzaW5nIHNvdXJjZSBtYXBcbiAgICAgICAgLy8gaXMgcmVmZXJlbmNpbmcgaXRzIG9yaWdpbmFsIHNlbGYuXG4gICAgICAgIChmaWxlLCBjb250ZXh0KSA9PiAoZmlsZSAhPT0gY29udGV4dC5pbXBvcnRlciA/IHJlYmFzZVNvdXJjZU1hcHMuZ2V0KGZpbGUpIDogbnVsbCksXG4gICAgICApIGFzIHVua25vd24gYXMgdHlwZW9mIHJlc3VsdC5zb3VyY2VNYXA7XG4gICAgfVxuXG4gICAgcGFyZW50UG9ydC5wb3N0TWVzc2FnZSh7XG4gICAgICBpZCxcbiAgICAgIHdhcm5pbmdzLFxuICAgICAgcmVzdWx0OiB7XG4gICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgLy8gVVJMIGlzIG5vdCBzZXJpYWxpemFibGUgc28gdG8gY29udmVydCB0byBzdHJpbmcgaGVyZSBhbmQgYmFjayB0byBVUkwgaW4gdGhlIHBhcmVudC5cbiAgICAgICAgbG9hZGVkVXJsczogcmVzdWx0LmxvYWRlZFVybHMubWFwKChwKSA9PiBmaWxlVVJMVG9QYXRoKHApKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgLy8gTmVlZGVkIGJlY2F1c2UgVjggd2lsbCBvbmx5IHNlcmlhbGl6ZSB0aGUgbWVzc2FnZSBhbmQgc3RhY2sgcHJvcGVydGllcyBvZiBhbiBFcnJvciBpbnN0YW5jZS5cbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFeGNlcHRpb24pIHtcbiAgICAgIGNvbnN0IHsgc3BhbiwgbWVzc2FnZSwgc3RhY2ssIHNhc3NNZXNzYWdlLCBzYXNzU3RhY2sgfSA9IGVycm9yO1xuICAgICAgcGFyZW50UG9ydC5wb3N0TWVzc2FnZSh7XG4gICAgICAgIGlkLFxuICAgICAgICB3YXJuaW5ncyxcbiAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICBzcGFuOiBjb252ZXJ0U291cmNlU3BhbihzcGFuKSxcbiAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgIHN0YWNrLFxuICAgICAgICAgIHNhc3NNZXNzYWdlLFxuICAgICAgICAgIHNhc3NTdGFjayxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgY29uc3QgeyBtZXNzYWdlLCBzdGFjayB9ID0gZXJyb3I7XG4gICAgICBwYXJlbnRQb3J0LnBvc3RNZXNzYWdlKHsgaWQsIHdhcm5pbmdzLCBlcnJvcjogeyBtZXNzYWdlLCBzdGFjayB9IH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJlbnRQb3J0LnBvc3RNZXNzYWdlKHtcbiAgICAgICAgaWQsXG4gICAgICAgIHdhcm5pbmdzLFxuICAgICAgICBlcnJvcjogeyBtZXNzYWdlOiAnQW4gdW5rbm93biBlcnJvciBoYXMgb2NjdXJyZWQuJyB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59KTtcblxuLyoqXG4gKiBDb252ZXJ0cyBhIFNhc3MgU291cmNlU3BhbiBvYmplY3QgaW50byBhIHNlcmlhbGl6YWJsZSBmb3JtLlxuICogVGhlIFNvdXJjZVNwYW4gb2JqZWN0IGNvbnRhaW5zIGEgVVJMIHByb3BlcnR5IHdoaWNoIG11c3QgYmUgY29udmVydGVkIGludG8gYSBzdHJpbmcuXG4gKiBBbHNvLCBtb3N0IG9mIHRoZSBpbnRlcmZhY2UncyBwcm9wZXJ0aWVzIGFyZSBnZXQgYWNjZXNzb3JzIGFuZCBhcmUgbm90IGF1dG9tYXRpY2FsbHlcbiAqIHNlcmlhbGl6ZWQgd2hlbiBzZW50IGJhY2sgZnJvbSB0aGUgd29ya2VyLlxuICpcbiAqIEBwYXJhbSBzcGFuIFRoZSBTYXNzIFNvdXJjZVNwYW4gb2JqZWN0IHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyBBIHNlcmlhbGl6YWJsZSBmb3JtIG9mIHRoZSBTb3VyY2VTcGFuIG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gY29udmVydFNvdXJjZVNwYW4oc3BhbjogU291cmNlU3Bhbik6IE9taXQ8U291cmNlU3BhbiwgJ3VybCc+ICYgeyB1cmw/OiBzdHJpbmcgfSB7XG4gIHJldHVybiB7XG4gICAgdGV4dDogc3Bhbi50ZXh0LFxuICAgIGNvbnRleHQ6IHNwYW4uY29udGV4dCxcbiAgICBlbmQ6IHtcbiAgICAgIGNvbHVtbjogc3Bhbi5lbmQuY29sdW1uLFxuICAgICAgb2Zmc2V0OiBzcGFuLmVuZC5vZmZzZXQsXG4gICAgICBsaW5lOiBzcGFuLmVuZC5saW5lLFxuICAgIH0sXG4gICAgc3RhcnQ6IHtcbiAgICAgIGNvbHVtbjogc3Bhbi5zdGFydC5jb2x1bW4sXG4gICAgICBvZmZzZXQ6IHNwYW4uc3RhcnQub2Zmc2V0LFxuICAgICAgbGluZTogc3Bhbi5zdGFydC5saW5lLFxuICAgIH0sXG4gICAgdXJsOiBzcGFuLnVybCA/IGZpbGVVUkxUb1BhdGgoc3Bhbi51cmwpIDogdW5kZWZpbmVkLFxuICB9O1xufVxuIl19
|