@angular-devkit/build-angular 17.0.0-next.8 → 17.0.0-next.9
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 +10 -10
- package/src/builders/application/execute-build.js +17 -62
- package/src/builders/application/execute-post-bundle.d.ts +24 -0
- package/src/builders/application/execute-post-bundle.js +88 -0
- package/src/builders/application/i18n.js +13 -36
- package/src/builders/application/index.d.ts +18 -2
- package/src/builders/application/index.js +19 -5
- package/src/builders/application/options.d.ts +4 -1
- package/src/builders/application/options.js +4 -2
- package/src/builders/application/schema.d.ts +0 -1
- package/src/builders/application/schema.js +1 -1
- package/src/builders/application/schema.json +1 -1
- package/src/builders/browser/schema.d.ts +0 -1
- package/src/builders/browser/schema.js +1 -1
- package/src/builders/browser/schema.json +1 -1
- package/src/builders/browser-esbuild/builder-status-warnings.d.ts +1 -1
- package/src/builders/browser-esbuild/builder-status-warnings.js +6 -4
- package/src/builders/browser-esbuild/index.d.ts +2 -1
- package/src/builders/browser-esbuild/index.js +3 -3
- package/src/builders/browser-esbuild/schema.d.ts +0 -1
- package/src/builders/browser-esbuild/schema.js +1 -1
- package/src/builders/browser-esbuild/schema.json +1 -1
- package/src/builders/dev-server/builder.d.ts +2 -1
- package/src/builders/dev-server/builder.js +9 -3
- package/src/builders/dev-server/vite-server.d.ts +2 -1
- package/src/builders/dev-server/vite-server.js +10 -4
- package/src/index.d.ts +1 -0
- package/src/index.js +4 -2
- package/src/tools/esbuild/angular/component-stylesheets.js +3 -3
- package/src/tools/esbuild/application-code-bundle.js +7 -1
- package/src/tools/esbuild/bundler-execution-result.d.ts +7 -12
- package/src/tools/esbuild/bundler-execution-result.js +1 -1
- package/src/tools/esbuild/stylesheets/bundle-options.js +2 -2
- package/src/tools/esbuild/stylesheets/less-language.js +37 -10
- package/src/tools/esbuild/utils.d.ts +1 -1
- package/src/tools/esbuild/utils.js +27 -8
- package/src/utils/service-worker.d.ts +3 -8
- package/src/utils/service-worker.js +1 -1
package/package.json
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@angular-devkit/build-angular",
|
|
3
|
-
"version": "17.0.0-next.
|
|
3
|
+
"version": "17.0.0-next.9",
|
|
4
4
|
"description": "Angular Webpack Build Facade",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"typings": "src/index.d.ts",
|
|
7
7
|
"builders": "builders.json",
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"@ampproject/remapping": "2.2.1",
|
|
10
|
-
"@angular-devkit/architect": "0.1700.0-next.
|
|
11
|
-
"@angular-devkit/build-webpack": "0.1700.0-next.
|
|
12
|
-
"@angular-devkit/core": "17.0.0-next.
|
|
13
|
-
"@babel/core": "7.23.
|
|
10
|
+
"@angular-devkit/architect": "0.1700.0-next.9",
|
|
11
|
+
"@angular-devkit/build-webpack": "0.1700.0-next.9",
|
|
12
|
+
"@angular-devkit/core": "17.0.0-next.9",
|
|
13
|
+
"@babel/core": "7.23.2",
|
|
14
14
|
"@babel/generator": "7.23.0",
|
|
15
15
|
"@babel/helper-annotate-as-pure": "7.22.5",
|
|
16
16
|
"@babel/helper-split-export-declaration": "7.22.6",
|
|
17
|
-
"@babel/plugin-transform-async-generator-functions": "7.
|
|
17
|
+
"@babel/plugin-transform-async-generator-functions": "7.23.2",
|
|
18
18
|
"@babel/plugin-transform-async-to-generator": "7.22.5",
|
|
19
|
-
"@babel/plugin-transform-runtime": "7.
|
|
20
|
-
"@babel/preset-env": "7.
|
|
21
|
-
"@babel/runtime": "7.23.
|
|
19
|
+
"@babel/plugin-transform-runtime": "7.23.2",
|
|
20
|
+
"@babel/preset-env": "7.23.2",
|
|
21
|
+
"@babel/runtime": "7.23.2",
|
|
22
22
|
"@discoveryjs/json-ext": "0.5.7",
|
|
23
|
-
"@ngtools/webpack": "17.0.0-next.
|
|
23
|
+
"@ngtools/webpack": "17.0.0-next.9",
|
|
24
24
|
"@vitejs/plugin-basic-ssl": "1.0.1",
|
|
25
25
|
"ansi-colors": "4.1.3",
|
|
26
26
|
"autoprefixer": "10.4.16",
|
|
@@ -6,12 +6,8 @@
|
|
|
6
6
|
* Use of this source code is governed by an MIT-style license that can be
|
|
7
7
|
* found in the LICENSE file at https://angular.io/license
|
|
8
8
|
*/
|
|
9
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
10
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
|
-
};
|
|
12
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
10
|
exports.executeBuild = void 0;
|
|
14
|
-
const node_assert_1 = __importDefault(require("node:assert"));
|
|
15
11
|
const source_file_cache_1 = require("../../tools/esbuild/angular/source-file-cache");
|
|
16
12
|
const application_code_bundle_1 = require("../../tools/esbuild/application-code-bundle");
|
|
17
13
|
const budget_stats_1 = require("../../tools/esbuild/budget-stats");
|
|
@@ -20,26 +16,23 @@ const bundler_execution_result_1 = require("../../tools/esbuild/bundler-executio
|
|
|
20
16
|
const commonjs_checker_1 = require("../../tools/esbuild/commonjs-checker");
|
|
21
17
|
const global_scripts_1 = require("../../tools/esbuild/global-scripts");
|
|
22
18
|
const global_styles_1 = require("../../tools/esbuild/global-styles");
|
|
23
|
-
const index_html_generator_1 = require("../../tools/esbuild/index-html-generator");
|
|
24
19
|
const license_extractor_1 = require("../../tools/esbuild/license-extractor");
|
|
25
20
|
const utils_1 = require("../../tools/esbuild/utils");
|
|
26
21
|
const bundle_calculator_1 = require("../../utils/bundle-calculator");
|
|
27
22
|
const copy_assets_1 = require("../../utils/copy-assets");
|
|
28
|
-
const environment_options_1 = require("../../utils/environment-options");
|
|
29
|
-
const prerender_1 = require("../../utils/server-rendering/prerender");
|
|
30
|
-
const service_worker_1 = require("../../utils/service-worker");
|
|
31
23
|
const supported_browsers_1 = require("../../utils/supported-browsers");
|
|
24
|
+
const execute_post_bundle_1 = require("./execute-post-bundle");
|
|
32
25
|
const i18n_1 = require("./i18n");
|
|
33
26
|
// eslint-disable-next-line max-lines-per-function
|
|
34
27
|
async function executeBuild(options, context, rebuildState) {
|
|
35
28
|
const startTime = process.hrtime.bigint();
|
|
36
|
-
const { projectRoot, workspaceRoot,
|
|
29
|
+
const { projectRoot, workspaceRoot, i18nOptions, optimizationOptions, serverEntryPoint, assets, cacheOptions, prerenderOptions, appShellOptions, ssrOptions, } = options;
|
|
37
30
|
const browsers = (0, supported_browsers_1.getSupportedBrowsers)(projectRoot, context.logger);
|
|
38
31
|
const target = (0, utils_1.transformSupportedBrowsersToTargets)(browsers);
|
|
39
32
|
// Load active translations if inlining
|
|
40
33
|
// TODO: Integrate into watch mode and only load changed translations
|
|
41
|
-
if (
|
|
42
|
-
await (0, i18n_1.loadActiveTranslations)(context,
|
|
34
|
+
if (i18nOptions.shouldInline) {
|
|
35
|
+
await (0, i18n_1.loadActiveTranslations)(context, i18nOptions);
|
|
43
36
|
}
|
|
44
37
|
// Reuse rebuild state or create new bundle contexts for code and global stylesheets
|
|
45
38
|
let bundlerContexts = rebuildState?.rebuildContexts;
|
|
@@ -89,39 +82,6 @@ async function executeBuild(options, context, rebuildState) {
|
|
|
89
82
|
const messages = (0, commonjs_checker_1.checkCommonJSModules)(metafile, options.allowedCommonJsDependencies);
|
|
90
83
|
await (0, utils_1.logMessages)(context, { warnings: messages });
|
|
91
84
|
}
|
|
92
|
-
/**
|
|
93
|
-
* Index HTML content without CSS inlining to be used for server rendering (AppShell, SSG and SSR).
|
|
94
|
-
*
|
|
95
|
-
* NOTE: we don't perform critical CSS inlining as this will be done during server rendering.
|
|
96
|
-
*/
|
|
97
|
-
let indexContentOutputNoCssInlining;
|
|
98
|
-
// Generate index HTML file
|
|
99
|
-
// If localization is enabled, index generation is handled in the inlining process.
|
|
100
|
-
// NOTE: Localization with SSR is not currently supported.
|
|
101
|
-
if (indexHtmlOptions && !options.i18nOptions.shouldInline) {
|
|
102
|
-
const { content, contentWithoutCriticalCssInlined, errors, warnings } = await (0, index_html_generator_1.generateIndexHtml)(initialFiles, executionResult.outputFiles, {
|
|
103
|
-
...options,
|
|
104
|
-
optimizationOptions,
|
|
105
|
-
},
|
|
106
|
-
// Set lang attribute to the defined source locale if present
|
|
107
|
-
options.i18nOptions.hasDefinedSourceLocale ? options.i18nOptions.sourceLocale : undefined);
|
|
108
|
-
indexContentOutputNoCssInlining = contentWithoutCriticalCssInlined;
|
|
109
|
-
printWarningsAndErrorsToConsole(context, warnings, errors);
|
|
110
|
-
executionResult.addOutputFile(indexHtmlOptions.output, content, bundler_context_1.BuildOutputFileType.Browser);
|
|
111
|
-
if (ssrOptions) {
|
|
112
|
-
executionResult.addOutputFile('index.server.html', contentWithoutCriticalCssInlined, bundler_context_1.BuildOutputFileType.Server);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
// Pre-render (SSG) and App-shell
|
|
116
|
-
// If localization is enabled, prerendering is handled in the inlining process.
|
|
117
|
-
if ((prerenderOptions || appShellOptions) && !options.i18nOptions.shouldInline) {
|
|
118
|
-
(0, node_assert_1.default)(indexContentOutputNoCssInlining, 'The "index" option is required when using the "ssg" or "appShell" options.');
|
|
119
|
-
const { output, warnings, errors } = await (0, prerender_1.prerenderPages)(workspaceRoot, appShellOptions, prerenderOptions, executionResult.outputFiles, indexContentOutputNoCssInlining, optimizationOptions.styles.inlineCritical, environment_options_1.maxWorkers, verbose);
|
|
120
|
-
printWarningsAndErrorsToConsole(context, warnings, errors);
|
|
121
|
-
for (const [path, content] of Object.entries(output)) {
|
|
122
|
-
executionResult.addOutputFile(path, content, bundler_context_1.BuildOutputFileType.Browser);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
85
|
// Copy assets
|
|
126
86
|
if (assets) {
|
|
127
87
|
// The webpack copy assets helper is used with no base paths defined. This prevents the helper
|
|
@@ -132,19 +92,6 @@ async function executeBuild(options, context, rebuildState) {
|
|
|
132
92
|
if (options.extractLicenses) {
|
|
133
93
|
executionResult.addOutputFile('3rdpartylicenses.txt', await (0, license_extractor_1.extractLicenses)(metafile, workspaceRoot), bundler_context_1.BuildOutputFileType.Root);
|
|
134
94
|
}
|
|
135
|
-
// Augment the application with service worker support
|
|
136
|
-
// If localization is enabled, service worker is handled in the inlining process.
|
|
137
|
-
if (serviceWorker && !options.i18nOptions.shouldInline) {
|
|
138
|
-
try {
|
|
139
|
-
const serviceWorkerResult = await (0, service_worker_1.augmentAppWithServiceWorkerEsbuild)(workspaceRoot, serviceWorker, options.baseHref || '/', executionResult.outputFiles, executionResult.assetFiles);
|
|
140
|
-
executionResult.addOutputFile('ngsw.json', serviceWorkerResult.manifest, bundler_context_1.BuildOutputFileType.Browser);
|
|
141
|
-
executionResult.addAssets(serviceWorkerResult.assetFiles);
|
|
142
|
-
}
|
|
143
|
-
catch (error) {
|
|
144
|
-
context.logger.error(error instanceof Error ? error.message : `${error}`);
|
|
145
|
-
return executionResult;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
95
|
// Analyze files for bundle budget failures if present
|
|
149
96
|
let budgetFailures;
|
|
150
97
|
if (options.budgets) {
|
|
@@ -164,14 +111,22 @@ async function executeBuild(options, context, rebuildState) {
|
|
|
164
111
|
if (optimizationOptions.scripts || optimizationOptions.styles.minify) {
|
|
165
112
|
estimatedTransferSizes = await (0, utils_1.calculateEstimatedTransferSizes)(executionResult.outputFiles);
|
|
166
113
|
}
|
|
167
|
-
(0, utils_1.logBuildStats)(context, metafile, initialFiles, budgetFailures, estimatedTransferSizes);
|
|
168
|
-
const buildTime = Number(process.hrtime.bigint() - startTime) / 10 ** 9;
|
|
169
|
-
context.logger.info(`Application bundle generation complete. [${buildTime.toFixed(3)} seconds]`);
|
|
170
114
|
// Perform i18n translation inlining if enabled
|
|
171
|
-
if (
|
|
115
|
+
if (i18nOptions.shouldInline) {
|
|
172
116
|
const { errors, warnings } = await (0, i18n_1.inlineI18n)(options, executionResult, initialFiles);
|
|
173
117
|
printWarningsAndErrorsToConsole(context, warnings, errors);
|
|
174
118
|
}
|
|
119
|
+
else {
|
|
120
|
+
const { errors, warnings, additionalAssets, additionalOutputFiles } = await (0, execute_post_bundle_1.executePostBundleSteps)(options, executionResult.outputFiles, executionResult.assetFiles, initialFiles,
|
|
121
|
+
// Set lang attribute to the defined source locale if present
|
|
122
|
+
i18nOptions.hasDefinedSourceLocale ? i18nOptions.sourceLocale : undefined);
|
|
123
|
+
executionResult.outputFiles.push(...additionalOutputFiles);
|
|
124
|
+
executionResult.assetFiles.push(...additionalAssets);
|
|
125
|
+
printWarningsAndErrorsToConsole(context, warnings, errors);
|
|
126
|
+
}
|
|
127
|
+
(0, utils_1.logBuildStats)(context, metafile, initialFiles, budgetFailures, estimatedTransferSizes);
|
|
128
|
+
const buildTime = Number(process.hrtime.bigint() - startTime) / 10 ** 9;
|
|
129
|
+
context.logger.info(`Application bundle generation complete. [${buildTime.toFixed(3)} seconds]`);
|
|
175
130
|
// Write metafile if stats option is enabled
|
|
176
131
|
if (options.stats) {
|
|
177
132
|
executionResult.addOutputFile('stats.json', JSON.stringify(metafile, null, 2), bundler_context_1.BuildOutputFileType.Root);
|
|
@@ -187,4 +142,4 @@ function printWarningsAndErrorsToConsole(context, warnings, errors) {
|
|
|
187
142
|
context.logger.warn(warning);
|
|
188
143
|
}
|
|
189
144
|
}
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0ZS1idWlsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL2J1aWxkZXJzL2FwcGxpY2F0aW9uL2V4ZWN1dGUtYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7O0FBR0gsOERBQWlDO0FBQ2pDLHFGQUFnRjtBQUNoRix5RkFHcUQ7QUFDckQsbUVBQXVFO0FBQ3ZFLHlFQUEwRjtBQUMxRiwyRkFBNkY7QUFDN0YsMkVBQTRFO0FBQzVFLHVFQUFzRjtBQUN0RixxRUFBb0Y7QUFDcEYsbUZBQTZFO0FBQzdFLDZFQUF3RTtBQUN4RSxxREFNbUM7QUFDbkMscUVBQTZEO0FBQzdELHlEQUFxRDtBQUNyRCx5RUFBNkQ7QUFDN0Qsc0VBQXdFO0FBQ3hFLCtEQUFnRjtBQUNoRix1RUFBc0U7QUFDdEUsaUNBQTREO0FBRzVELGtEQUFrRDtBQUMzQyxLQUFLLFVBQVUsWUFBWSxDQUNoQyxPQUEwQyxFQUMxQyxPQUF1QixFQUN2QixZQUEyQjtJQUUzQixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBRTFDLE1BQU0sRUFDSixXQUFXLEVBQ1gsYUFBYSxFQUNiLGFBQWEsRUFDYixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsVUFBVSxFQUNWLE9BQU8sR0FDUixHQUFHLE9BQU8sQ0FBQztJQUVaLE1BQU0sUUFBUSxHQUFHLElBQUEseUNBQW9CLEVBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRSxNQUFNLE1BQU0sR0FBRyxJQUFBLDJDQUFtQyxFQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTdELHVDQUF1QztJQUN2Qyxx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S0FBSyxFQUFFO1FBQ2pCLGVBQWUsQ0FBQyxhQUFhLENBQzNCLFlBQVksRUFDWixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQ2pDLHFDQUFtQixDQUFDLElBQUksQ0FDekIsQ0FBQztLQUNIO0lBRUQsT0FBTyxlQUFlLENBQUM7QUFDekIsQ0FBQztBQWpRRCxvQ0FpUUM7QUFFRCxTQUFTLCtCQUErQixDQUN0QyxPQUF1QixFQUN2QixRQUFrQixFQUNsQixNQUFnQjtJQUVoQixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRTtRQUMxQixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM3QjtJQUNELEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFO1FBQzlCLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQzlCO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBCdWlsZGVyQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9hcmNoaXRlY3QnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdub2RlOmFzc2VydCc7XG5pbXBvcnQgeyBTb3VyY2VGaWxlQ2FjaGUgfSBmcm9tICcuLi8uLi90b29scy9lc2J1aWxkL2FuZ3VsYXIvc291cmNlLWZpbGUtY2FjaGUnO1xuaW1wb3J0IHtcbiAgY3JlYXRlQnJvd3NlckNvZGVCdW5kbGVPcHRpb25zLFxuICBjcmVhdGVTZXJ2ZXJDb2RlQnVuZGxlT3B0aW9ucyxcbn0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC9hcHBsaWNhdGlvbi1jb2RlLWJ1bmRsZSc7XG5pbXBvcnQgeyBnZW5lcmF0ZUJ1ZGdldFN0YXRzIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC9idWRnZXQtc3RhdHMnO1xuaW1wb3J0IHsgQnVpbGRPdXRwdXRGaWxlVHlwZSwgQnVuZGxlckNvbnRleHQgfSBmcm9tICcuLi8uLi90b29scy9lc2J1aWxkL2J1bmRsZXItY29udGV4dCc7XG5pbXBvcnQgeyBFeGVjdXRpb25SZXN1bHQsIFJlYnVpbGRTdGF0ZSB9IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvYnVuZGxlci1leGVjdXRpb24tcmVzdWx0JztcbmltcG9ydCB7IGNoZWNrQ29tbW9uSlNNb2R1bGVzIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC9jb21tb25qcy1jaGVja2VyJztcbmltcG9ydCB7IGNyZWF0ZUdsb2JhbFNjcmlwdHNCdW5kbGVPcHRpb25zIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC9nbG9iYWwtc2NyaXB0cyc7XG5pbXBvcnQgeyBjcmVhdGVHbG9iYWxTdHlsZXNCdW5kbGVPcHRpb25zIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC9nbG9iYWwtc3R5bGVzJztcbmltcG9ydCB7IGdlbmVyYXRlSW5kZXhIdG1sIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC9pbmRleC1odG1sLWdlbmVyYXRvcic7XG5pbXBvcnQgeyBleHRyYWN0TGljZW5zZXMgfSBmcm9tICcuLi8uLi90b29scy9lc2J1aWxkL2xpY2Vuc2UtZXh0cmFjdG9yJztcbmltcG9ydCB7XG4gIGNhbGN1bGF0ZUVzdGltYXRlZFRyYW5zZmVyU2l6ZXMsXG4gIGdldFN1cHBvcnRlZE5vZGVUYXJnZXRzLFxuICBsb2dCdWlsZFN0YXRzLFxuICBsb2dNZXNzYWdlcyxcbiAgdHJhbnNmb3JtU3VwcG9ydGVkQnJvd3NlcnNUb1RhcmdldHMsXG59IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvdXRpbHMnO1xuaW1wb3J0IHsgY2hlY2tCdWRnZXRzIH0gZnJvbSAnLi4vLi4vdXRpbHMvYnVuZGxlLWNhbGN1bGF0b3InO1xuaW1wb3J0IHsgY29weUFzc2V0cyB9IGZyb20gJy4uLy4uL3V0aWxzL2NvcHktYXNzZXRzJztcbmltcG9ydCB7IG1heFdvcmtlcnMgfSBmcm9tICcuLi8uLi91dGlscy9lbnZpcm9ubWVudC1vcHRpb25zJztcbmltcG9ydCB7IHByZXJlbmRlclBhZ2VzIH0gZnJvbSAnLi4vLi4vdXRpbHMvc2VydmVyLXJlbmRlcmluZy9wcmVyZW5kZXInO1xuaW1wb3J0IHsgYXVnbWVudEFwcFdpdGhTZXJ2aWNlV29ya2VyRXNidWlsZCB9IGZyb20gJy4uLy4uL3V0aWxzL3NlcnZpY2Utd29ya2VyJztcbmltcG9ydCB7IGdldFN1cHBvcnRlZEJyb3dzZXJzIH0gZnJvbSAnLi4vLi4vdXRpbHMvc3VwcG9ydGVkLWJyb3dzZXJzJztcbmltcG9ydCB7IGlubGluZUkxOG4sIGxvYWRBY3RpdmVUcmFuc2xhdGlvbnMgfSBmcm9tICcuL2kxOG4nO1xuaW1wb3J0IHsgTm9ybWFsaXplZEFwcGxpY2F0aW9uQnVpbGRPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1saW5lcy1wZXItZnVuY3Rpb25cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleGVjdXRlQnVpbGQoXG4gIG9wdGlvbnM6IE5vcm1hbGl6ZWRBcHBsaWNhdGlvbkJ1aWxkT3B0aW9ucyxcbiAgY29udGV4dDogQnVpbGRlckNvbnRleHQsXG4gIHJlYnVpbGRTdGF0ZT86IFJlYnVpbGRTdGF0ZSxcbik6IFByb21pc2U8RXhlY3V0aW9uUmVzdWx0PiB7XG4gIGNvbnN0IHN0YXJ0VGltZSA9IHByb2Nlc3MuaHJ0aW1lLmJpZ2ludCgpO1xuXG4gIGNvbnN0IHtcbiAgICBwcm9qZWN0Um9vdCxcbiAgICB3b3Jrc3BhY2VSb290LFxuICAgIHNlcnZpY2VXb3JrZXIsXG4gICAgb3B0aW1pemF0aW9uT3B0aW9ucyxcbiAgICBzZXJ2ZXJFbnRyeVBvaW50LFxuICAgIGFzc2V0cyxcbiAgICBpbmRleEh0bWxPcHRpb25zLFxuICAgIGNhY2hlT3B0aW9ucyxcbiAgICBwcmVyZW5kZXJPcHRpb25zLFxuICAgIGFwcFNoZWxsT3B0aW9ucyxcbiAgICBzc3JPcHRpb25zLFxuICAgIHZlcmJvc2UsXG4gIH0gPSBvcHRpb25zO1xuXG4gIGNvbnN0IGJyb3dzZXJzID0gZ2V0U3VwcG9ydGVkQnJvd3NlcnMocHJvamVjdFJvb3QsIGNvbnRleHQubG9nZ2VyKTtcbiAgY29uc3QgdGFyZ2V0ID0gdHJhbnNmb3JtU3VwcG9ydGVkQnJvd3NlcnNUb1RhcmdldHMoYnJvd3NlcnMpO1xuXG4gIC8vIExvYWQgYWN0aXZlIHRyYW5zbGF0aW9ucyBpZiBpbmxpbmluZ1xuICAvLyBUT0RPOiBJbnRlZ3JhdGUgaW50byB3YXRjaCBtb2RlIGFuZCBvbmx5IGxvYWQgY2hhbmdlZCB0cmFuc2xhdGlvbnNcbiAgaWYgKG9wdGlvbnMuaTE4bk9wdGlvbnMuc2hvdWxkSW5saW5lKSB7XG4gICAgYXdhaXQgbG9hZEFjdGl2ZVRyYW5zbGF0aW9ucyhjb250ZXh0LCBvcHRpb25zLmkxOG5PcHRpb25zKTtcbiAgfVxuXG4gIC8vIFJldXNlIHJlYnVpbGQgc3RhdGUgb3IgY3JlYXRlIG5ldyBidW5kbGUgY29udGV4dHMgZm9yIGNvZGUgYW5kIGdsb2JhbCBzdHlsZXNoZWV0c1xuICBsZXQgYnVuZGxlckNvbnRleHRzID0gcmVidWlsZFN0YXRlPy5yZWJ1aWxkQ29udGV4dHM7XG4gIGNvbnN0IGNvZGVCdW5kbGVDYWNoZSA9XG4gICAgcmVidWlsZFN0YXRlPy5jb2RlQnVuZGxlQ2FjaGUgPz9cbiAgICBuZXcgU291cmNlRmlsZUNhY2hlKGNhY2hlT3B0aW9ucy5lbmFibGVkID8gY2FjaGVPcHRpb25zLnBhdGggOiB1bmRlZmluZWQpO1xuICBpZiAoYnVuZGxlckNvbnRleHRzID09PSB1bmRlZmluZWQpIHtcbiAgICBidW5kbGVyQ29udGV4dHMgPSBbXTtcblxuICAgIC8vIEJyb3dzZXIgYXBwbGljYXRpb24gY29kZVxuICAgIGJ1bmRsZXJDb250ZXh0cy5wdXNoKFxuICAgICAgbmV3IEJ1bmRsZXJDb250ZXh0KFxuICAgICAgICB3b3Jrc3BhY2VSb290LFxuICAgICAgICAhIW9wdGlvbnMud2F0Y2gsXG4gICAgICAgIGNyZWF0ZUJyb3dzZXJDb2RlQnVuZGxlT3B0aW9ucyhvcHRpb25zLCB0YXJnZXQsIGNvZGVCdW5kbGVDYWNoZSksXG4gICAgICApLFxuICAgICk7XG5cbiAgICAvLyBHbG9iYWwgU3R5bGVzaGVldHNcbiAgICBpZiAob3B0aW9ucy5nbG9iYWxTdHlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChjb25zdCBpbml0aWFsIG9mIFt0cnVlLCBmYWxzZV0pIHtcbiAgICAgICAgY29uc3QgYnVuZGxlT3B0aW9ucyA9IGNyZWF0ZUdsb2JhbFN0eWxlc0J1bmRsZU9wdGlvbnMoXG4gICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICB0YXJnZXQsXG4gICAgICAgICAgaW5pdGlhbCxcbiAgICAgICAgICBjb2RlQnVuZGxlQ2FjaGU/LmxvYWRSZXN1bHRDYWNoZSxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGJ1bmRsZU9wdGlvbnMpIHtcbiAgICAgICAgICBidW5kbGVyQ29udGV4dHMucHVzaChcbiAgICAgICAgICAgIG5ldyBCdW5kbGVyQ29udGV4dCh3b3Jrc3BhY2VSb290LCAhIW9wdGlvbnMud2F0Y2gsIGJ1bmRsZU9wdGlvbnMsICgpID0+IGluaXRpYWwpLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBHbG9iYWwgU2NyaXB0c1xuICAgIGlmIChvcHRpb25zLmdsb2JhbFNjcmlwdHMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChjb25zdCBpbml0aWFsIG9mIFt0cnVlLCBmYWxzZV0pIHtcbiAgICAgICAgY29uc3QgYnVuZGxlT3B0aW9ucyA9IGNyZWF0ZUdsb2JhbFNjcmlwdHNCdW5kbGVPcHRpb25zKG9wdGlvbnMsIGluaXRpYWwpO1xuICAgICAgICBpZiAoYnVuZGxlT3B0aW9ucykge1xuICAgICAgICAgIGJ1bmRsZXJDb250ZXh0cy5wdXNoKFxuICAgICAgICAgICAgbmV3IEJ1bmRsZXJDb250ZXh0KHdvcmtzcGFjZVJvb3QsICEhb3B0aW9ucy53YXRjaCwgYnVuZGxlT3B0aW9ucywgKCkgPT4gaW5pdGlhbCksXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNlcnZlciBhcHBsaWNhdGlvbiBjb2RlXG4gICAgLy8gU2tpcCBzZXJ2ZXIgYnVpbGQgd2hlbiBub24gb2YgdGhlIGZlYXR1cmVzIGFyZSBlbmFibGVkLlxuICAgIGlmIChzZXJ2ZXJFbnRyeVBvaW50ICYmIChwcmVyZW5kZXJPcHRpb25zIHx8IGFwcFNoZWxsT3B0aW9ucyB8fCBzc3JPcHRpb25zKSkge1xuICAgICAgY29uc3Qgbm9kZVRhcmdldHMgPSBnZXRTdXBwb3J0ZWROb2RlVGFyZ2V0cygpO1xuICAgICAgYnVuZGxlckNvbnRleHRzLnB1c2goXG4gICAgICAgIG5ldyBCdW5kbGVyQ29udGV4dChcbiAgICAgICAgICB3b3Jrc3BhY2VSb290LFxuICAgICAgICAgICEhb3B0aW9ucy53YXRjaCxcbiAgICAgICAgICBjcmVhdGVTZXJ2ZXJDb2RlQnVuZGxlT3B0aW9ucyhvcHRpb25zLCBbLi4udGFyZ2V0LCAuLi5ub2RlVGFyZ2V0c10sIGNvZGVCdW5kbGVDYWNoZSksXG4gICAgICAgICAgKCkgPT4gZmFsc2UsXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGJ1bmRsaW5nUmVzdWx0ID0gYXdhaXQgQnVuZGxlckNvbnRleHQuYnVuZGxlQWxsKGJ1bmRsZXJDb250ZXh0cyk7XG5cbiAgLy8gTG9nIGFsbCB3YXJuaW5ncyBhbmQgZXJyb3JzIGdlbmVyYXRlZCBkdXJpbmcgYnVuZGxpbmdcbiAgYXdhaXQgbG9nTWVzc2FnZXMoY29udGV4dCwgYnVuZGxpbmdSZXN1bHQpO1xuXG4gIGNvbnN0IGV4ZWN1dGlvblJlc3VsdCA9IG5ldyBFeGVjdXRpb25SZXN1bHQoYnVuZGxlckNvbnRleHRzLCBjb2RlQnVuZGxlQ2FjaGUpO1xuXG4gIC8vIFJldHVybiBpZiB0aGUgYnVuZGxpbmcgaGFzIGVycm9yc1xuICBpZiAoYnVuZGxpbmdSZXN1bHQuZXJyb3JzKSB7XG4gICAgcmV0dXJuIGV4ZWN1dGlvblJlc3VsdDtcbiAgfVxuXG4gIGNvbnN0IHsgbWV0YWZpbGUsIGluaXRpYWxGaWxlcywgb3V0cHV0RmlsZXMgfSA9IGJ1bmRsaW5nUmVzdWx0O1xuXG4gIGV4ZWN1dGlvblJlc3VsdC5vdXRwdXRGaWxlcy5wdXNoKC4uLm91dHB1dEZpbGVzKTtcblxuICAvLyBDaGVjayBtZXRhZmlsZSBmb3IgQ29tbW9uSlMgbW9kdWxlIHVzYWdlIGlmIG9wdGltaXppbmcgc2NyaXB0c1xuICBpZiAob3B0aW1pemF0aW9uT3B0aW9ucy5zY3JpcHRzKSB7XG4gICAgY29uc3QgbWVzc2FnZXMgPSBjaGVja0NvbW1vbkpTTW9kdWxlcyhtZXRhZmlsZSwgb3B0aW9ucy5hbGxvd2VkQ29tbW9uSnNEZXBlbmRlbmNpZXMpO1xuICAgIGF3YWl0IGxvZ01lc3NhZ2VzKGNvbnRleHQsIHsgd2FybmluZ3M6IG1lc3NhZ2VzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGV4IEhUTUwgY29udGVudCB3aXRob3V0IENTUyBpbmxpbmluZyB0byBiZSB1c2VkIGZvciBzZXJ2ZXIgcmVuZGVyaW5nIChBcHBTaGVsbCwgU1NHIGFuZCBTU1IpLlxuICAgKlxuICAgKiBOT1RFOiB3ZSBkb24ndCBwZXJmb3JtIGNyaXRpY2FsIENTUyBpbmxpbmluZyBhcyB0aGlzIHdpbGwgYmUgZG9uZSBkdXJpbmcgc2VydmVyIHJlbmRlcmluZy5cbiAgICovXG4gIGxldCBpbmRleENvbnRlbnRPdXRwdXROb0Nzc0lubGluaW5nOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLy8gR2VuZXJhdGUgaW5kZXggSFRNTCBmaWxlXG4gIC8vIElmIGxvY2FsaXphdGlvbiBpcyBlbmFibGVkLCBpbmRleCBnZW5lcmF0aW9uIGlzIGhhbmRsZWQgaW4gdGhlIGlubGluaW5nIHByb2Nlc3MuXG4gIC8vIE5PVEU6IExvY2FsaXphdGlvbiB3aXRoIFNTUiBpcyBub3QgY3VycmVudGx5IHN1cHBvcnRlZC5cbiAgaWYgKGluZGV4SHRtbE9wdGlvbnMgJiYgIW9wdGlvbnMuaTE4bk9wdGlvbnMuc2hvdWxkSW5saW5lKSB7XG4gICAgY29uc3QgeyBjb250ZW50LCBjb250ZW50V2l0aG91dENyaXRpY2FsQ3NzSW5saW5lZCwgZXJyb3JzLCB3YXJuaW5ncyB9ID0gYXdhaXQgZ2VuZXJhdGVJbmRleEh0bWwoXG4gICAgICBpbml0aWFsRmlsZXMsXG4gICAgICBleGVjdXRpb25SZXN1bHQub3V0cHV0RmlsZXMsXG4gICAgICB7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIG9wdGltaXphdGlvbk9wdGlvbnMsXG4gICAgICB9LFxuICAgICAgLy8gU2V0IGxhbmcgYXR0cmlidXRlIHRvIHRoZSBkZWZpbmVkIHNvdXJjZSBsb2NhbGUgaWYgcHJlc2VudFxuICAgICAgb3B0aW9ucy5pMThuT3B0aW9ucy5oYXNEZWZpbmVkU291cmNlTG9jYWxlID8gb3B0aW9ucy5pMThuT3B0aW9ucy5zb3VyY2VMb2NhbGUgOiB1bmRlZmluZWQsXG4gICAgKTtcblxuICAgIGluZGV4Q29udGVudE91dHB1dE5vQ3NzSW5saW5pbmcgPSBjb250ZW50V2l0aG91dENyaXRpY2FsQ3NzSW5saW5lZDtcbiAgICBwcmludFdhcm5pbmdzQW5kRXJyb3JzVG9Db25zb2xlKGNvbnRleHQsIHdhcm5pbmdzLCBlcnJvcnMpO1xuXG4gICAgZXhlY3V0aW9uUmVzdWx0LmFkZE91dHB1dEZpbGUoaW5kZXhIdG1sT3B0aW9ucy5vdXRwdXQsIGNvbnRlbnQsIEJ1aWxkT3V0cHV0RmlsZVR5cGUuQnJvd3Nlcik7XG5cbiAgICBpZiAoc3NyT3B0aW9ucykge1xuICAgICAgZXhlY3V0aW9uUmVzdWx0LmFkZE91dHB1dEZpbGUoXG4gICAgICAgICdpbmRleC5zZXJ2ZXIuaHRtbCcsXG4gICAgICAgIGNvbnRlbnRXaXRob3V0Q3JpdGljYWxDc3NJbmxpbmVkLFxuICAgICAgICBCdWlsZE91dHB1dEZpbGVUeXBlLlNlcnZlcixcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLy8gUHJlLXJlbmRlciAoU1NHKSBhbmQgQXBwLXNoZWxsXG4gIC8vIElmIGxvY2FsaXphdGlvbiBpcyBlbmFibGVkLCBwcmVyZW5kZXJpbmcgaXMgaGFuZGxlZCBpbiB0aGUgaW5saW5pbmcgcHJvY2Vzcy5cbiAgaWYgKChwcmVyZW5kZXJPcHRpb25zIHx8IGFwcFNoZWxsT3B0aW9ucykgJiYgIW9wdGlvbnMuaTE4bk9wdGlvbnMuc2hvdWxkSW5saW5lKSB7XG4gICAgYXNzZXJ0KFxuICAgICAgaW5kZXhDb250ZW50T3V0cHV0Tm9Dc3NJbmxpbmluZyxcbiAgICAgICdUaGUgXCJpbmRleFwiIG9wdGlvbiBpcyByZXF1aXJlZCB3aGVuIHVzaW5nIHRoZSBcInNzZ1wiIG9yIFwiYXBwU2hlbGxcIiBvcHRpb25zLicsXG4gICAgKTtcblxuICAgIGNvbnN0IHsgb3V0cHV0LCB3YXJuaW5ncywgZXJyb3JzIH0gPSBhd2FpdCBwcmVyZW5kZXJQYWdlcyhcbiAgICAgIHdvcmtzcGFjZVJvb3QsXG4gICAgICBhcHBTaGVsbE9wdGlvbnMsXG4gICAgICBwcmVyZW5kZXJPcHRpb25zLFxuICAgICAgZXhlY3V0aW9uUmVzdWx0Lm91dHB1dEZpbGVzLFxuICAgICAgaW5kZXhDb250ZW50T3V0cHV0Tm9Dc3NJbmxpbmluZyxcbiAgICAgIG9wdGltaXphdGlvbk9wdGlvbnMuc3R5bGVzLmlubGluZUNyaXRpY2FsLFxuICAgICAgbWF4V29ya2VycyxcbiAgICAgIHZlcmJvc2UsXG4gICAgKTtcblxuICAgIHByaW50V2FybmluZ3NBbmRFcnJvcnNUb0NvbnNvbGUoY29udGV4dCwgd2FybmluZ3MsIGVycm9ycyk7XG5cbiAgICBmb3IgKGNvbnN0IFtwYXRoLCBjb250ZW50XSBvZiBPYmplY3QuZW50cmllcyhvdXRwdXQpKSB7XG4gICAgICBleGVjdXRpb25SZXN1bHQuYWRkT3V0cHV0RmlsZShwYXRoLCBjb250ZW50LCBCdWlsZE91dHB1dEZpbGVUeXBlLkJyb3dzZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvcHkgYXNzZXRzXG4gIGlmIChhc3NldHMpIHtcbiAgICAvLyBUaGUgd2VicGFjayBjb3B5IGFzc2V0cyBoZWxwZXIgaXMgdXNlZCB3aXRoIG5vIGJhc2UgcGF0aHMgZGVmaW5lZC4gVGhpcyBwcmV2ZW50cyB0aGUgaGVscGVyXG4gICAgLy8gZnJvbSBkaXJlY3RseSB3cml0aW5nIHRvIGRpc2suIFRoaXMgc2hvdWxkIGV2ZW50dWFsbHkgYmUgcmVwbGFjZWQgd2l0aCBhIG1vcmUgb3B0aW1pemVkIGhlbHBlci5cbiAgICBleGVjdXRpb25SZXN1bHQuYWRkQXNzZXRzKGF3YWl0IGNvcHlBc3NldHMoYXNzZXRzLCBbXSwgd29ya3NwYWNlUm9vdCkpO1xuICB9XG5cbiAgLy8gRXh0cmFjdCBhbmQgd3JpdGUgbGljZW5zZXMgZm9yIHVzZWQgcGFja2FnZXNcbiAgaWYgKG9wdGlvbnMuZXh0cmFjdExpY2Vuc2VzKSB7XG4gICAgZXhlY3V0aW9uUmVzdWx0LmFkZE91dHB1dEZpbGUoXG4gICAgICAnM3JkcGFydHlsaWNlbnNlcy50eHQnLFxuICAgICAgYXdhaXQgZXh0cmFjdExpY2Vuc2VzKG1ldGFmaWxlLCB3b3Jrc3BhY2VSb290KSxcbiAgICAgIEJ1aWxkT3V0cHV0RmlsZVR5cGUuUm9vdCxcbiAgICApO1xuICB9XG5cbiAgLy8gQXVnbWVudCB0aGUgYXBwbGljYXRpb24gd2l0aCBzZXJ2aWNlIHdvcmtlciBzdXBwb3J0XG4gIC8vIElmIGxvY2FsaXphdGlvbiBpcyBlbmFibGVkLCBzZXJ2aWNlIHdvcmtlciBpcyBoYW5kbGVkIGluIHRoZSBpbmxpbmluZyBwcm9jZXNzLlxuICBpZiAoc2VydmljZVdvcmtlciAmJiAhb3B0aW9ucy5pMThuT3B0aW9ucy5zaG91bGRJbmxpbmUpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2VydmljZVdvcmtlclJlc3VsdCA9IGF3YWl0IGF1Z21lbnRBcHBXaXRoU2VydmljZVdvcmtlckVzYnVpbGQoXG4gICAgICAgIHdvcmtzcGFjZVJvb3QsXG4gICAgICAgIHNlcnZpY2VXb3JrZXIsXG4gICAgICAgIG9wdGlvbnMuYmFzZUhyZWYgfHwgJy8nLFxuICAgICAgICBleGVjdXRpb25SZXN1bHQub3V0cHV0RmlsZXMsXG4gICAgICAgIGV4ZWN1dGlvblJlc3VsdC5hc3NldEZpbGVzLFxuICAgICAgKTtcbiAgICAgIGV4ZWN1dGlvblJlc3VsdC5hZGRPdXRwdXRGaWxlKFxuICAgICAgICAnbmdzdy5qc29uJyxcbiAgICAgICAgc2VydmljZVdvcmtlclJlc3VsdC5tYW5pZmVzdCxcbiAgICAgICAgQnVpbGRPdXRwdXRGaWxlVHlwZS5Ccm93c2VyLFxuICAgICAgKTtcbiAgICAgIGV4ZWN1dGlvblJlc3VsdC5hZGRBc3NldHMoc2VydmljZVdvcmtlclJlc3VsdC5hc3NldEZpbGVzKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29udGV4dC5sb2dnZXIuZXJyb3IoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBgJHtlcnJvcn1gKTtcblxuICAgICAgcmV0dXJuIGV4ZWN1dGlvblJlc3VsdDtcbiAgICB9XG4gIH1cblxuICAvLyBBbmFseXplIGZpbGVzIGZvciBidW5kbGUgYnVkZ2V0IGZhaWx1cmVzIGlmIHByZXNlbnRcbiAgbGV0IGJ1ZGdldEZhaWx1cmVzO1xuICBpZiAob3B0aW9ucy5idWRnZXRzKSB7XG4gICAgY29uc3QgY29tcGF0U3RhdHMgPSBnZW5lcmF0ZUJ1ZGdldFN0YXRzKG1ldGFmaWxlLCBpbml0aWFsRmlsZXMpO1xuICAgIGJ1ZGdldEZhaWx1cmVzID0gWy4uLmNoZWNrQnVkZ2V0cyhvcHRpb25zLmJ1ZGdldHMsIGNvbXBhdFN0YXRzLCB0cnVlKV07XG4gICAgZm9yIChjb25zdCB7IHNldmVyaXR5LCBtZXNzYWdlIH0gb2YgYnVkZ2V0RmFpbHVyZXMpIHtcbiAgICAgIGlmIChzZXZlcml0eSA9PT0gJ2Vycm9yJykge1xuICAgICAgICBjb250ZXh0LmxvZ2dlci5lcnJvcihtZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnRleHQubG9nZ2VyLndhcm4obWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FsY3VsYXRlIGVzdGltYXRlZCB0cmFuc2ZlciBzaXplIGlmIHNjcmlwdHMgYXJlIG9wdGltaXplZFxuICBsZXQgZXN0aW1hdGVkVHJhbnNmZXJTaXplcztcbiAgaWYgKG9wdGltaXphdGlvbk9wdGlvbnMuc2NyaXB0cyB8fCBvcHRpbWl6YXRpb25PcHRpb25zLnN0eWxlcy5taW5pZnkpIHtcbiAgICBlc3RpbWF0ZWRUcmFuc2ZlclNpemVzID0gYXdhaXQgY2FsY3VsYXRlRXN0aW1hdGVkVHJhbnNmZXJTaXplcyhleGVjdXRpb25SZXN1bHQub3V0cHV0RmlsZXMpO1xuICB9XG5cbiAgbG9nQnVpbGRTdGF0cyhjb250ZXh0LCBtZXRhZmlsZSwgaW5pdGlhbEZpbGVzLCBidWRnZXRGYWlsdXJlcywgZXN0aW1hdGVkVHJhbnNmZXJTaXplcyk7XG5cbiAgY29uc3QgYnVpbGRUaW1lID0gTnVtYmVyKHByb2Nlc3MuaHJ0aW1lLmJpZ2ludCgpIC0gc3RhcnRUaW1lKSAvIDEwICoqIDk7XG4gIGNvbnRleHQubG9nZ2VyLmluZm8oYEFwcGxpY2F0aW9uIGJ1bmRsZSBnZW5lcmF0aW9uIGNvbXBsZXRlLiBbJHtidWlsZFRpbWUudG9GaXhlZCgzKX0gc2Vjb25kc11gKTtcblxuICAvLyBQZXJmb3JtIGkxOG4gdHJhbnNsYXRpb24gaW5saW5pbmcgaWYgZW5hYmxlZFxuICBpZiAob3B0aW9ucy5pMThuT3B0aW9ucy5zaG91bGRJbmxpbmUpIHtcbiAgICBjb25zdCB7IGVycm9ycywgd2FybmluZ3MgfSA9IGF3YWl0IGlubGluZUkxOG4ob3B0aW9ucywgZXhlY3V0aW9uUmVzdWx0LCBpbml0aWFsRmlsZXMpO1xuICAgIHByaW50V2FybmluZ3NBbmRFcnJvcnNUb0NvbnNvbGUoY29udGV4dCwgd2FybmluZ3MsIGVycm9ycyk7XG4gIH1cblxuICAvLyBXcml0ZSBtZXRhZmlsZSBpZiBzdGF0cyBvcHRpb24gaXMgZW5hYmxlZFxuICBpZiAob3B0aW9ucy5zdGF0cykge1xuICAgIGV4ZWN1dGlvblJlc3VsdC5hZGRPdXRwdXRGaWxlKFxuICAgICAgJ3N0YXRzLmpzb24nLFxuICAgICAgSlNPTi5zdHJpbmdpZnkobWV0YWZpbGUsIG51bGwsIDIpLFxuICAgICAgQnVpbGRPdXRwdXRGaWxlVHlwZS5Sb290LFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gZXhlY3V0aW9uUmVzdWx0O1xufVxuXG5mdW5jdGlvbiBwcmludFdhcm5pbmdzQW5kRXJyb3JzVG9Db25zb2xlKFxuICBjb250ZXh0OiBCdWlsZGVyQ29udGV4dCxcbiAgd2FybmluZ3M6IHN0cmluZ1tdLFxuICBlcnJvcnM6IHN0cmluZ1tdLFxuKTogdm9pZCB7XG4gIGZvciAoY29uc3QgZXJyb3Igb2YgZXJyb3JzKSB7XG4gICAgY29udGV4dC5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICB9XG4gIGZvciAoY29uc3Qgd2FybmluZyBvZiB3YXJuaW5ncykge1xuICAgIGNvbnRleHQubG9nZ2VyLndhcm4od2FybmluZyk7XG4gIH1cbn1cbiJdfQ==
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0ZS1idWlsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL2J1aWxkZXJzL2FwcGxpY2F0aW9uL2V4ZWN1dGUtYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBR0gscUZBQWdGO0FBQ2hGLHlGQUdxRDtBQUNyRCxtRUFBdUU7QUFDdkUseUVBQTBGO0FBQzFGLDJGQUE2RjtBQUM3RiwyRUFBNEU7QUFDNUUsdUVBQXNGO0FBQ3RGLHFFQUFvRjtBQUNwRiw2RUFBd0U7QUFDeEUscURBTW1DO0FBQ25DLHFFQUE2RDtBQUM3RCx5REFBcUQ7QUFDckQsdUVBQXNFO0FBQ3RFLCtEQUErRDtBQUMvRCxpQ0FBNEQ7QUFHNUQsa0RBQWtEO0FBQzNDLEtBQUssVUFBVSxZQUFZLENBQ2hDLE9BQTBDLEVBQzFDLE9BQXVCLEVBQ3ZCLFlBQTJCO0lBRTNCLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7SUFFMUMsTUFBTSxFQUNKLFdBQVcsRUFDWCxhQUFhLEVBQ2IsV0FBVyxFQUNYLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLFVBQVUsR0FDWCxHQUFHLE9BQU8sQ0FBQztJQUVaLE1BQU0sUUFBUSxHQUFHLElBQUEseUNBQW9CLEVBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRSxNQUFNLE1BQU0sR0FBRyxJQUFBLDJDQUFtQyxFQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTdELHVDQUF1QztJQUN2QyxxRUFBcUU7SUFDckUsSUFBSSxXQUFXLENBQUMsWUFBWSxFQUFFO1FBQzVCLE1BQU0sSUFBQSw2QkFBc0IsRUFBQyxPQUFPLEVBQUUsV0FB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LENBQUM7S0FDNUQ7SUFFRCxJQUFBLHFCQUFhLEVBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLHNCQUFzQixDQUFDLENBQUM7SUFFdkYsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4RSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw0Q0FBNEMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakcsNENBQTRDO0lBQzVDLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRTtRQUNqQixlQUFlLENBQUMsYUFBYSxDQUMzQixZQUFZLEVBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUNqQyxxQ0FBbUIsQ0FBQyxJQUFJLENBQ3pCLENBQUM7S0FDSDtJQUVELE9BQU8sZUFBZSxDQUFDO0FBQ3pCLENBQUM7QUF0TEQsb0NBc0xDO0FBRUQsU0FBUywrQkFBK0IsQ0FDdEMsT0FBdUIsRUFDdkIsUUFBa0IsRUFDbEIsTUFBZ0I7SUFFaEIsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUU7UUFDMUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDN0I7SUFDRCxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRTtRQUM5QixPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUM5QjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsgQnVpbGRlckNvbnRleHQgfSBmcm9tICdAYW5ndWxhci1kZXZraXQvYXJjaGl0ZWN0JztcbmltcG9ydCB7IFNvdXJjZUZpbGVDYWNoZSB9IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvYW5ndWxhci9zb3VyY2UtZmlsZS1jYWNoZSc7XG5pbXBvcnQge1xuICBjcmVhdGVCcm93c2VyQ29kZUJ1bmRsZU9wdGlvbnMsXG4gIGNyZWF0ZVNlcnZlckNvZGVCdW5kbGVPcHRpb25zLFxufSBmcm9tICcuLi8uLi90b29scy9lc2J1aWxkL2FwcGxpY2F0aW9uLWNvZGUtYnVuZGxlJztcbmltcG9ydCB7IGdlbmVyYXRlQnVkZ2V0U3RhdHMgfSBmcm9tICcuLi8uLi90b29scy9lc2J1aWxkL2J1ZGdldC1zdGF0cyc7XG5pbXBvcnQgeyBCdWlsZE91dHB1dEZpbGVUeXBlLCBCdW5kbGVyQ29udGV4dCB9IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvYnVuZGxlci1jb250ZXh0JztcbmltcG9ydCB7IEV4ZWN1dGlvblJlc3VsdCwgUmVidWlsZFN0YXRlIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC9idW5kbGVyLWV4ZWN1dGlvbi1yZXN1bHQnO1xuaW1wb3J0IHsgY2hlY2tDb21tb25KU01vZHVsZXMgfSBmcm9tICcuLi8uLi90b29scy9lc2J1aWxkL2NvbW1vbmpzLWNoZWNrZXInO1xuaW1wb3J0IHsgY3JlYXRlR2xvYmFsU2NyaXB0c0J1bmRsZU9wdGlvbnMgfSBmcm9tICcuLi8uLi90b29scy9lc2J1aWxkL2dsb2JhbC1zY3JpcHRzJztcbmltcG9ydCB7IGNyZWF0ZUdsb2JhbFN0eWxlc0J1bmRsZU9wdGlvbnMgfSBmcm9tICcuLi8uLi90b29scy9lc2J1aWxkL2dsb2JhbC1zdHlsZXMnO1xuaW1wb3J0IHsgZXh0cmFjdExpY2Vuc2VzIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC9saWNlbnNlLWV4dHJhY3Rvcic7XG5pbXBvcnQge1xuICBjYWxjdWxhdGVFc3RpbWF0ZWRUcmFuc2ZlclNpemVzLFxuICBnZXRTdXBwb3J0ZWROb2RlVGFyZ2V0cyxcbiAgbG9nQnVpbGRTdGF0cyxcbiAgbG9nTWVzc2FnZXMsXG4gIHRyYW5zZm9ybVN1cHBvcnRlZEJyb3dzZXJzVG9UYXJnZXRzLFxufSBmcm9tICcuLi8uLi90b29scy9lc2J1aWxkL3V0aWxzJztcbmltcG9ydCB7IGNoZWNrQnVkZ2V0cyB9IGZyb20gJy4uLy4uL3V0aWxzL2J1bmRsZS1jYWxjdWxhdG9yJztcbmltcG9ydCB7IGNvcHlBc3NldHMgfSBmcm9tICcuLi8uLi91dGlscy9jb3B5LWFzc2V0cyc7XG5pbXBvcnQgeyBnZXRTdXBwb3J0ZWRCcm93c2VycyB9IGZyb20gJy4uLy4uL3V0aWxzL3N1cHBvcnRlZC1icm93c2Vycyc7XG5pbXBvcnQgeyBleGVjdXRlUG9zdEJ1bmRsZVN0ZXBzIH0gZnJvbSAnLi9leGVjdXRlLXBvc3QtYnVuZGxlJztcbmltcG9ydCB7IGlubGluZUkxOG4sIGxvYWRBY3RpdmVUcmFuc2xhdGlvbnMgfSBmcm9tICcuL2kxOG4nO1xuaW1wb3J0IHsgTm9ybWFsaXplZEFwcGxpY2F0aW9uQnVpbGRPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1saW5lcy1wZXItZnVuY3Rpb25cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleGVjdXRlQnVpbGQoXG4gIG9wdGlvbnM6IE5vcm1hbGl6ZWRBcHBsaWNhdGlvbkJ1aWxkT3B0aW9ucyxcbiAgY29udGV4dDogQnVpbGRlckNvbnRleHQsXG4gIHJlYnVpbGRTdGF0ZT86IFJlYnVpbGRTdGF0ZSxcbik6IFByb21pc2U8RXhlY3V0aW9uUmVzdWx0PiB7XG4gIGNvbnN0IHN0YXJ0VGltZSA9IHByb2Nlc3MuaHJ0aW1lLmJpZ2ludCgpO1xuXG4gIGNvbnN0IHtcbiAgICBwcm9qZWN0Um9vdCxcbiAgICB3b3Jrc3BhY2VSb290LFxuICAgIGkxOG5PcHRpb25zLFxuICAgIG9wdGltaXphdGlvbk9wdGlvbnMsXG4gICAgc2VydmVyRW50cnlQb2ludCxcbiAgICBhc3NldHMsXG4gICAgY2FjaGVPcHRpb25zLFxuICAgIHByZXJlbmRlck9wdGlvbnMsXG4gICAgYXBwU2hlbGxPcHRpb25zLFxuICAgIHNzck9wdGlvbnMsXG4gIH0gPSBvcHRpb25zO1xuXG4gIGNvbnN0IGJyb3dzZXJzID0gZ2V0U3VwcG9ydGVkQnJvd3NlcnMocHJvamVjdFJvb3QsIGNvbnRleHQubG9nZ2VyKTtcbiAgY29uc3QgdGFyZ2V0ID0gdHJhbnNmb3JtU3VwcG9ydGVkQnJvd3NlcnNUb1RhcmdldHMoYnJvd3NlcnMpO1xuXG4gIC8vIExvYWQgYWN0aXZlIHRyYW5zbGF0aW9ucyBpZiBpbmxpbmluZ1xuICAvLyBUT0RPOiBJbnRlZ3JhdGUgaW50byB3YXRjaCBtb2RlIGFuZCBvbmx5IGxvYWQgY2hhbmdlZCB0cmFuc2xhdGlvbnNcbiAgaWYgKGkxOG5PcHRpb25zLnNob3VsZElubGluZSkge1xuICAgIGF3YWl0IGxvYWRBY3RpdmVUcmFuc2xhdGlvbnMoY29udGV4dCwgaTE4bk9wdGlvbnMpO1xuICB9XG5cbiAgLy8gUmV1c2UgcmVidWlsZCBzdGF0ZSBvciBjcmVhdGUgbmV3IGJ1bmRsZSBjb250ZXh0cyBmb3IgY29kZSBhbmQgZ2xvYmFsIHN0eWxlc2hlZXRzXG4gIGxldCBidW5kbGVyQ29udGV4dHMgPSByZWJ1aWxkU3RhdGU/LnJlYnVpbGRDb250ZXh0cztcbiAgY29uc3QgY29kZUJ1bmRsZUNhY2hlID1cbiAgICByZWJ1aWxkU3RhdGU/LmNvZGVCdW5kbGVDYWNoZSA/P1xuICAgIG5ldyBTb3VyY2VGaWxlQ2FjaGUoY2FjaGVPcHRpb25zLmVuYWJsZWQgPyBjYWNoZU9wdGlvbnMucGF0aCA6IHVuZGVmaW5lZCk7XG4gIGlmIChidW5kbGVyQ29udGV4dHMgPT09IHVuZGVmaW5lZCkge1xuICAgIGJ1bmRsZXJDb250ZXh0cyA9IFtdO1xuXG4gICAgLy8gQnJvd3NlciBhcHBsaWNhdGlvbiBjb2RlXG4gICAgYnVuZGxlckNvbnRleHRzLnB1c2goXG4gICAgICBuZXcgQnVuZGxlckNvbnRleHQoXG4gICAgICAgIHdvcmtzcGFjZVJvb3QsXG4gICAgICAgICEhb3B0aW9ucy53YXRjaCxcbiAgICAgICAgY3JlYXRlQnJvd3NlckNvZGVCdW5kbGVPcHRpb25zKG9wdGlvbnMsIHRhcmdldCwgY29kZUJ1bmRsZUNhY2hlKSxcbiAgICAgICksXG4gICAgKTtcblxuICAgIC8vIEdsb2JhbCBTdHlsZXNoZWV0c1xuICAgIGlmIChvcHRpb25zLmdsb2JhbFN0eWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IGluaXRpYWwgb2YgW3RydWUsIGZhbHNlXSkge1xuICAgICAgICBjb25zdCBidW5kbGVPcHRpb25zID0gY3JlYXRlR2xvYmFsU3R5bGVzQnVuZGxlT3B0aW9ucyhcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgIHRhcmdldCxcbiAgICAgICAgICBpbml0aWFsLFxuICAgICAgICAgIGNvZGVCdW5kbGVDYWNoZT8ubG9hZFJlc3VsdENhY2hlLFxuICAgICAgICApO1xuICAgICAgICBpZiAoYnVuZGxlT3B0aW9ucykge1xuICAgICAgICAgIGJ1bmRsZXJDb250ZXh0cy5wdXNoKFxuICAgICAgICAgICAgbmV3IEJ1bmRsZXJDb250ZXh0KHdvcmtzcGFjZVJvb3QsICEhb3B0aW9ucy53YXRjaCwgYnVuZGxlT3B0aW9ucywgKCkgPT4gaW5pdGlhbCksXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEdsb2JhbCBTY3JpcHRzXG4gICAgaWYgKG9wdGlvbnMuZ2xvYmFsU2NyaXB0cy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IGluaXRpYWwgb2YgW3RydWUsIGZhbHNlXSkge1xuICAgICAgICBjb25zdCBidW5kbGVPcHRpb25zID0gY3JlYXRlR2xvYmFsU2NyaXB0c0J1bmRsZU9wdGlvbnMob3B0aW9ucywgaW5pdGlhbCk7XG4gICAgICAgIGlmIChidW5kbGVPcHRpb25zKSB7XG4gICAgICAgICAgYnVuZGxlckNvbnRleHRzLnB1c2goXG4gICAgICAgICAgICBuZXcgQnVuZGxlckNvbnRleHQod29ya3NwYWNlUm9vdCwgISFvcHRpb25zLndhdGNoLCBidW5kbGVPcHRpb25zLCAoKSA9PiBpbml0aWFsKSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2VydmVyIGFwcGxpY2F0aW9uIGNvZGVcbiAgICAvLyBTa2lwIHNlcnZlciBidWlsZCB3aGVuIG5vbiBvZiB0aGUgZmVhdHVyZXMgYXJlIGVuYWJsZWQuXG4gICAgaWYgKHNlcnZlckVudHJ5UG9pbnQgJiYgKHByZXJlbmRlck9wdGlvbnMgfHwgYXBwU2hlbGxPcHRpb25zIHx8IHNzck9wdGlvbnMpKSB7XG4gICAgICBjb25zdCBub2RlVGFyZ2V0cyA9IGdldFN1cHBvcnRlZE5vZGVUYXJnZXRzKCk7XG4gICAgICBidW5kbGVyQ29udGV4dHMucHVzaChcbiAgICAgICAgbmV3IEJ1bmRsZXJDb250ZXh0KFxuICAgICAgICAgIHdvcmtzcGFjZVJvb3QsXG4gICAgICAgICAgISFvcHRpb25zLndhdGNoLFxuICAgICAgICAgIGNyZWF0ZVNlcnZlckNvZGVCdW5kbGVPcHRpb25zKG9wdGlvbnMsIFsuLi50YXJnZXQsIC4uLm5vZGVUYXJnZXRzXSwgY29kZUJ1bmRsZUNhY2hlKSxcbiAgICAgICAgICAoKSA9PiBmYWxzZSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgYnVuZGxpbmdSZXN1bHQgPSBhd2FpdCBCdW5kbGVyQ29udGV4dC5idW5kbGVBbGwoYnVuZGxlckNvbnRleHRzKTtcblxuICAvLyBMb2cgYWxsIHdhcm5pbmdzIGFuZCBlcnJvcnMgZ2VuZXJhdGVkIGR1cmluZyBidW5kbGluZ1xuICBhd2FpdCBsb2dNZXNzYWdlcyhjb250ZXh0LCBidW5kbGluZ1Jlc3VsdCk7XG5cbiAgY29uc3QgZXhlY3V0aW9uUmVzdWx0ID0gbmV3IEV4ZWN1dGlvblJlc3VsdChidW5kbGVyQ29udGV4dHMsIGNvZGVCdW5kbGVDYWNoZSk7XG5cbiAgLy8gUmV0dXJuIGlmIHRoZSBidW5kbGluZyBoYXMgZXJyb3JzXG4gIGlmIChidW5kbGluZ1Jlc3VsdC5lcnJvcnMpIHtcbiAgICByZXR1cm4gZXhlY3V0aW9uUmVzdWx0O1xuICB9XG5cbiAgY29uc3QgeyBtZXRhZmlsZSwgaW5pdGlhbEZpbGVzLCBvdXRwdXRGaWxlcyB9ID0gYnVuZGxpbmdSZXN1bHQ7XG5cbiAgZXhlY3V0aW9uUmVzdWx0Lm91dHB1dEZpbGVzLnB1c2goLi4ub3V0cHV0RmlsZXMpO1xuXG4gIC8vIENoZWNrIG1ldGFmaWxlIGZvciBDb21tb25KUyBtb2R1bGUgdXNhZ2UgaWYgb3B0aW1pemluZyBzY3JpcHRzXG4gIGlmIChvcHRpbWl6YXRpb25PcHRpb25zLnNjcmlwdHMpIHtcbiAgICBjb25zdCBtZXNzYWdlcyA9IGNoZWNrQ29tbW9uSlNNb2R1bGVzKG1ldGFmaWxlLCBvcHRpb25zLmFsbG93ZWRDb21tb25Kc0RlcGVuZGVuY2llcyk7XG4gICAgYXdhaXQgbG9nTWVzc2FnZXMoY29udGV4dCwgeyB3YXJuaW5nczogbWVzc2FnZXMgfSk7XG4gIH1cblxuICAvLyBDb3B5IGFzc2V0c1xuICBpZiAoYXNzZXRzKSB7XG4gICAgLy8gVGhlIHdlYnBhY2sgY29weSBhc3NldHMgaGVscGVyIGlzIHVzZWQgd2l0aCBubyBiYXNlIHBhdGhzIGRlZmluZWQuIFRoaXMgcHJldmVudHMgdGhlIGhlbHBlclxuICAgIC8vIGZyb20gZGlyZWN0bHkgd3JpdGluZyB0byBkaXNrLiBUaGlzIHNob3VsZCBldmVudHVhbGx5IGJlIHJlcGxhY2VkIHdpdGggYSBtb3JlIG9wdGltaXplZCBoZWxwZXIuXG4gICAgZXhlY3V0aW9uUmVzdWx0LmFkZEFzc2V0cyhhd2FpdCBjb3B5QXNzZXRzKGFzc2V0cywgW10sIHdvcmtzcGFjZVJvb3QpKTtcbiAgfVxuXG4gIC8vIEV4dHJhY3QgYW5kIHdyaXRlIGxpY2Vuc2VzIGZvciB1c2VkIHBhY2thZ2VzXG4gIGlmIChvcHRpb25zLmV4dHJhY3RMaWNlbnNlcykge1xuICAgIGV4ZWN1dGlvblJlc3VsdC5hZGRPdXRwdXRGaWxlKFxuICAgICAgJzNyZHBhcnR5bGljZW5zZXMudHh0JyxcbiAgICAgIGF3YWl0IGV4dHJhY3RMaWNlbnNlcyhtZXRhZmlsZSwgd29ya3NwYWNlUm9vdCksXG4gICAgICBCdWlsZE91dHB1dEZpbGVUeXBlLlJvb3QsXG4gICAgKTtcbiAgfVxuXG4gIC8vIEFuYWx5emUgZmlsZXMgZm9yIGJ1bmRsZSBidWRnZXQgZmFpbHVyZXMgaWYgcHJlc2VudFxuICBsZXQgYnVkZ2V0RmFpbHVyZXM7XG4gIGlmIChvcHRpb25zLmJ1ZGdldHMpIHtcbiAgICBjb25zdCBjb21wYXRTdGF0cyA9IGdlbmVyYXRlQnVkZ2V0U3RhdHMobWV0YWZpbGUsIGluaXRpYWxGaWxlcyk7XG4gICAgYnVkZ2V0RmFpbHVyZXMgPSBbLi4uY2hlY2tCdWRnZXRzKG9wdGlvbnMuYnVkZ2V0cywgY29tcGF0U3RhdHMsIHRydWUpXTtcbiAgICBmb3IgKGNvbnN0IHsgc2V2ZXJpdHksIG1lc3NhZ2UgfSBvZiBidWRnZXRGYWlsdXJlcykge1xuICAgICAgaWYgKHNldmVyaXR5ID09PSAnZXJyb3InKSB7XG4gICAgICAgIGNvbnRleHQubG9nZ2VyLmVycm9yKG1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29udGV4dC5sb2dnZXIud2FybihtZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgZXN0aW1hdGVkIHRyYW5zZmVyIHNpemUgaWYgc2NyaXB0cyBhcmUgb3B0aW1pemVkXG4gIGxldCBlc3RpbWF0ZWRUcmFuc2ZlclNpemVzO1xuICBpZiAob3B0aW1pemF0aW9uT3B0aW9ucy5zY3JpcHRzIHx8IG9wdGltaXphdGlvbk9wdGlvbnMuc3R5bGVzLm1pbmlmeSkge1xuICAgIGVzdGltYXRlZFRyYW5zZmVyU2l6ZXMgPSBhd2FpdCBjYWxjdWxhdGVFc3RpbWF0ZWRUcmFuc2ZlclNpemVzKGV4ZWN1dGlvblJlc3VsdC5vdXRwdXRGaWxlcyk7XG4gIH1cblxuICAvLyBQZXJmb3JtIGkxOG4gdHJhbnNsYXRpb24gaW5saW5pbmcgaWYgZW5hYmxlZFxuICBpZiAoaTE4bk9wdGlvbnMuc2hvdWxkSW5saW5lKSB7XG4gICAgY29uc3QgeyBlcnJvcnMsIHdhcm5pbmdzIH0gPSBhd2FpdCBpbmxpbmVJMThuKG9wdGlvbnMsIGV4ZWN1dGlvblJlc3VsdCwgaW5pdGlhbEZpbGVzKTtcbiAgICBwcmludFdhcm5pbmdzQW5kRXJyb3JzVG9Db25zb2xlKGNvbnRleHQsIHdhcm5pbmdzLCBlcnJvcnMpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHsgZXJyb3JzLCB3YXJuaW5ncywgYWRkaXRpb25hbEFzc2V0cywgYWRkaXRpb25hbE91dHB1dEZpbGVzIH0gPVxuICAgICAgYXdhaXQgZXhlY3V0ZVBvc3RCdW5kbGVTdGVwcyhcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgZXhlY3V0aW9uUmVzdWx0Lm91dHB1dEZpbGVzLFxuICAgICAgICBleGVjdXRpb25SZXN1bHQuYXNzZXRGaWxlcyxcbiAgICAgICAgaW5pdGlhbEZpbGVzLFxuICAgICAgICAvLyBTZXQgbGFuZyBhdHRyaWJ1dGUgdG8gdGhlIGRlZmluZWQgc291cmNlIGxvY2FsZSBpZiBwcmVzZW50XG4gICAgICAgIGkxOG5PcHRpb25zLmhhc0RlZmluZWRTb3VyY2VMb2NhbGUgPyBpMThuT3B0aW9ucy5zb3VyY2VMb2NhbGUgOiB1bmRlZmluZWQsXG4gICAgICApO1xuXG4gICAgZXhlY3V0aW9uUmVzdWx0Lm91dHB1dEZpbGVzLnB1c2goLi4uYWRkaXRpb25hbE91dHB1dEZpbGVzKTtcbiAgICBleGVjdXRpb25SZXN1bHQuYXNzZXRGaWxlcy5wdXNoKC4uLmFkZGl0aW9uYWxBc3NldHMpO1xuICAgIHByaW50V2FybmluZ3NBbmRFcnJvcnNUb0NvbnNvbGUoY29udGV4dCwgd2FybmluZ3MsIGVycm9ycyk7XG4gIH1cblxuICBsb2dCdWlsZFN0YXRzKGNvbnRleHQsIG1ldGFmaWxlLCBpbml0aWFsRmlsZXMsIGJ1ZGdldEZhaWx1cmVzLCBlc3RpbWF0ZWRUcmFuc2ZlclNpemVzKTtcblxuICBjb25zdCBidWlsZFRpbWUgPSBOdW1iZXIocHJvY2Vzcy5ocnRpbWUuYmlnaW50KCkgLSBzdGFydFRpbWUpIC8gMTAgKiogOTtcbiAgY29udGV4dC5sb2dnZXIuaW5mbyhgQXBwbGljYXRpb24gYnVuZGxlIGdlbmVyYXRpb24gY29tcGxldGUuIFske2J1aWxkVGltZS50b0ZpeGVkKDMpfSBzZWNvbmRzXWApO1xuICAvLyBXcml0ZSBtZXRhZmlsZSBpZiBzdGF0cyBvcHRpb24gaXMgZW5hYmxlZFxuICBpZiAob3B0aW9ucy5zdGF0cykge1xuICAgIGV4ZWN1dGlvblJlc3VsdC5hZGRPdXRwdXRGaWxlKFxuICAgICAgJ3N0YXRzLmpzb24nLFxuICAgICAgSlNPTi5zdHJpbmdpZnkobWV0YWZpbGUsIG51bGwsIDIpLFxuICAgICAgQnVpbGRPdXRwdXRGaWxlVHlwZS5Sb290LFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gZXhlY3V0aW9uUmVzdWx0O1xufVxuXG5mdW5jdGlvbiBwcmludFdhcm5pbmdzQW5kRXJyb3JzVG9Db25zb2xlKFxuICBjb250ZXh0OiBCdWlsZGVyQ29udGV4dCxcbiAgd2FybmluZ3M6IHN0cmluZ1tdLFxuICBlcnJvcnM6IHN0cmluZ1tdLFxuKTogdm9pZCB7XG4gIGZvciAoY29uc3QgZXJyb3Igb2YgZXJyb3JzKSB7XG4gICAgY29udGV4dC5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICB9XG4gIGZvciAoY29uc3Qgd2FybmluZyBvZiB3YXJuaW5ncykge1xuICAgIGNvbnRleHQubG9nZ2VyLndhcm4od2FybmluZyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google LLC All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.io/license
|
|
7
|
+
*/
|
|
8
|
+
import { BuildOutputFile, InitialFileRecord } from '../../tools/esbuild/bundler-context';
|
|
9
|
+
import { BuildOutputAsset } from '../../tools/esbuild/bundler-execution-result';
|
|
10
|
+
import { NormalizedApplicationBuildOptions } from './options';
|
|
11
|
+
/**
|
|
12
|
+
* Run additional builds steps including SSG, AppShell, Index HTML file and Service worker generation.
|
|
13
|
+
* @param options The normalized application builder options used to create the build.
|
|
14
|
+
* @param outputFiles The output files of an executed build.
|
|
15
|
+
* @param assetFiles The assets of an executed build.
|
|
16
|
+
* @param initialFiles A map containing initial file information for the executed build.
|
|
17
|
+
* @param locale A language locale to insert in the index.html.
|
|
18
|
+
*/
|
|
19
|
+
export declare function executePostBundleSteps(options: NormalizedApplicationBuildOptions, outputFiles: BuildOutputFile[], assetFiles: BuildOutputAsset[], initialFiles: Map<string, InitialFileRecord>, locale: string | undefined): Promise<{
|
|
20
|
+
errors: string[];
|
|
21
|
+
warnings: string[];
|
|
22
|
+
additionalOutputFiles: BuildOutputFile[];
|
|
23
|
+
additionalAssets: BuildOutputAsset[];
|
|
24
|
+
}>;
|
|
@@ -0,0 +1,88 @@
|
|
|
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.executePostBundleSteps = void 0;
|
|
14
|
+
const node_assert_1 = __importDefault(require("node:assert"));
|
|
15
|
+
const bundler_context_1 = require("../../tools/esbuild/bundler-context");
|
|
16
|
+
const index_html_generator_1 = require("../../tools/esbuild/index-html-generator");
|
|
17
|
+
const utils_1 = require("../../tools/esbuild/utils");
|
|
18
|
+
const environment_options_1 = require("../../utils/environment-options");
|
|
19
|
+
const prerender_1 = require("../../utils/server-rendering/prerender");
|
|
20
|
+
const service_worker_1 = require("../../utils/service-worker");
|
|
21
|
+
/**
|
|
22
|
+
* Run additional builds steps including SSG, AppShell, Index HTML file and Service worker generation.
|
|
23
|
+
* @param options The normalized application builder options used to create the build.
|
|
24
|
+
* @param outputFiles The output files of an executed build.
|
|
25
|
+
* @param assetFiles The assets of an executed build.
|
|
26
|
+
* @param initialFiles A map containing initial file information for the executed build.
|
|
27
|
+
* @param locale A language locale to insert in the index.html.
|
|
28
|
+
*/
|
|
29
|
+
async function executePostBundleSteps(options, outputFiles, assetFiles, initialFiles, locale) {
|
|
30
|
+
const additionalAssets = [];
|
|
31
|
+
const additionalOutputFiles = [];
|
|
32
|
+
const allErrors = [];
|
|
33
|
+
const allWarnings = [];
|
|
34
|
+
const { serviceWorker, indexHtmlOptions, optimizationOptions, ssrOptions, prerenderOptions, appShellOptions, workspaceRoot, verbose, } = options;
|
|
35
|
+
/**
|
|
36
|
+
* Index HTML content without CSS inlining to be used for server rendering (AppShell, SSG and SSR).
|
|
37
|
+
*
|
|
38
|
+
* NOTE: we don't perform critical CSS inlining as this will be done during server rendering.
|
|
39
|
+
*/
|
|
40
|
+
let indexContentOutputNoCssInlining;
|
|
41
|
+
// Generate index HTML file
|
|
42
|
+
// If localization is enabled, index generation is handled in the inlining process.
|
|
43
|
+
// NOTE: Localization with SSR is not currently supported.
|
|
44
|
+
if (indexHtmlOptions) {
|
|
45
|
+
const { content, contentWithoutCriticalCssInlined, errors, warnings } = await (0, index_html_generator_1.generateIndexHtml)(initialFiles, outputFiles, {
|
|
46
|
+
...options,
|
|
47
|
+
optimizationOptions,
|
|
48
|
+
}, locale);
|
|
49
|
+
indexContentOutputNoCssInlining = contentWithoutCriticalCssInlined;
|
|
50
|
+
allErrors.push(...errors);
|
|
51
|
+
allWarnings.push(...warnings);
|
|
52
|
+
additionalOutputFiles.push((0, utils_1.createOutputFileFromText)(indexHtmlOptions.output, content, bundler_context_1.BuildOutputFileType.Browser));
|
|
53
|
+
if (ssrOptions) {
|
|
54
|
+
additionalOutputFiles.push((0, utils_1.createOutputFileFromText)('index.server.html', contentWithoutCriticalCssInlined, bundler_context_1.BuildOutputFileType.Server));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Pre-render (SSG) and App-shell
|
|
58
|
+
// If localization is enabled, prerendering is handled in the inlining process.
|
|
59
|
+
if (prerenderOptions || appShellOptions) {
|
|
60
|
+
(0, node_assert_1.default)(indexContentOutputNoCssInlining, 'The "index" option is required when using the "ssg" or "appShell" options.');
|
|
61
|
+
const { output, warnings, errors } = await (0, prerender_1.prerenderPages)(workspaceRoot, appShellOptions, prerenderOptions, outputFiles, indexContentOutputNoCssInlining, optimizationOptions.styles.inlineCritical, environment_options_1.maxWorkers, verbose);
|
|
62
|
+
allErrors.push(...errors);
|
|
63
|
+
allWarnings.push(...warnings);
|
|
64
|
+
for (const [path, content] of Object.entries(output)) {
|
|
65
|
+
additionalOutputFiles.push((0, utils_1.createOutputFileFromText)(path, content, bundler_context_1.BuildOutputFileType.Browser));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// Augment the application with service worker support
|
|
69
|
+
// If localization is enabled, service worker is handled in the inlining process.
|
|
70
|
+
if (serviceWorker) {
|
|
71
|
+
try {
|
|
72
|
+
const serviceWorkerResult = await (0, service_worker_1.augmentAppWithServiceWorkerEsbuild)(workspaceRoot, serviceWorker, options.baseHref || '/', outputFiles, assetFiles);
|
|
73
|
+
additionalOutputFiles.push((0, utils_1.createOutputFileFromText)('ngsw.json', serviceWorkerResult.manifest, bundler_context_1.BuildOutputFileType.Browser));
|
|
74
|
+
additionalAssets.push(...serviceWorkerResult.assetFiles);
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
allErrors.push(error instanceof Error ? error.message : `${error}`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
errors: allErrors,
|
|
82
|
+
warnings: allWarnings,
|
|
83
|
+
additionalAssets,
|
|
84
|
+
additionalOutputFiles,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
exports.executePostBundleSteps = executePostBundleSteps;
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0ZS1wb3N0LWJ1bmRsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL2J1aWxkZXJzL2FwcGxpY2F0aW9uL2V4ZWN1dGUtcG9zdC1idW5kbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7O0FBRUgsOERBQWlDO0FBQ2pDLHlFQUk2QztBQUU3QyxtRkFBNkU7QUFDN0UscURBQXFFO0FBQ3JFLHlFQUE2RDtBQUM3RCxzRUFBd0U7QUFDeEUsK0RBQWdGO0FBR2hGOzs7Ozs7O0dBT0c7QUFDSSxLQUFLLFVBQVUsc0JBQXNCLENBQzFDLE9BQTBDLEVBQzFDLFdBQThCLEVBQzlCLFVBQThCLEVBQzlCLFlBQTRDLEVBQzVDLE1BQTBCO0lBTzFCLE1BQU0sZ0JBQWdCLEdBQXVCLEVBQUUsQ0FBQztJQUNoRCxNQUFNLHFCQUFxQixHQUFzQixFQUFFLENBQUM7SUFDcEQsTUFBTSxTQUFTLEdBQWEsRUFBRSxDQUFDO0lBQy9CLE1BQU0sV0FBVyxHQUFhLEVBQUUsQ0FBQztJQUVqQyxNQUFNLEVBQ0osYUFBYSxFQUNiLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsVUFBVSxFQUNWLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsYUFBYSxFQUNiLE9BQU8sR0FDUixHQUFHLE9BQU8sQ0FBQztJQUVaOzs7O09BSUc7SUFDSCxJQUFJLCtCQUFtRCxDQUFDO0lBRXhELDJCQUEyQjtJQUMzQixtRkFBbUY7SUFDbkYsMERBQTBEO0lBQzFELElBQUksZ0JBQWdCLEVBQUU7UUFDcEIsTUFBTSxFQUFFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxJQUFBLHdDQUFpQixFQUM3RixZQUFZLEVBQ1osV0FBVyxFQUNYO1lBQ0UsR0FBRyxPQUFPO1lBQ1YsbUJBQW1CO1NBQ3BCLEVBQ0QsTUFBTSxDQUNQLENBQUM7UUFFRiwrQkFBK0IsR0FBRyxnQ0FBZ0MsQ0FBQztRQUNuRSxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7UUFDMUIsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBRTlCLHFCQUFxQixDQUFDLElBQUksQ0FDeEIsSUFBQSxnQ0FBd0IsRUFBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLHFDQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUN4RixDQUFDO1FBRUYsSUFBSSxVQUFVLEVBQUU7WUFDZCxxQkFBcUIsQ0FBQyxJQUFJLENBQ3hCLElBQUEsZ0NBQXdCLEVBQ3RCLG1CQUFtQixFQUNuQixnQ0FBZ0MsRUFDaEMscUNBQW1CLENBQUMsTUFBTSxDQUMzQixDQUNGLENBQUM7U0FDSDtLQUNGO0lBRUQsaUNBQWlDO0lBQ2pDLCtFQUErRTtJQUMvRSxJQUFJLGdCQUFnQixJQUFJLGVBQWUsRUFBRTtRQUN2QyxJQUFBLHFCQUFNLEVBQ0osK0JBQStCLEVBQy9CLDRFQUE0RSxDQUM3RSxDQUFDO1FBRUYsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLDBCQUFjLEVBQ3ZELGFBQWEsRUFDYixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCwrQkFBK0IsRUFDL0IsbUJBQW1CLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFDekMsZ0NBQVUsRUFDVixPQUFPLENBQ1IsQ0FBQztRQUVGLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUMxQixXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7UUFFOUIsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDcEQscUJBQXFCLENBQUMsSUFBSSxDQUN4QixJQUFBLGdDQUF3QixFQUFDLElBQUksRUFBRSxPQUFPLEVBQUUscUNBQW1CLENBQUMsT0FBTyxDQUFDLENBQ3JFLENBQUM7U0FDSDtLQUNGO0lBRUQsc0RBQXNEO0lBQ3RELGlGQUFpRjtJQUNqRixJQUFJLGFBQWEsRUFBRTtRQUNqQixJQUFJO1lBQ0YsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLElBQUEsbURBQWtDLEVBQ2xFLGFBQWEsRUFDYixhQUFhLEVBQ2IsT0FBTyxDQUFDLFFBQVEsSUFBSSxHQUFHLEVBQ3ZCLFdBQVcsRUFDWCxVQUFVLENBQ1gsQ0FBQztZQUNGLHFCQUFxQixDQUFDLElBQUksQ0FDeEIsSUFBQSxnQ0FBd0IsRUFDdEIsV0FBVyxFQUNYLG1CQUFtQixDQUFDLFFBQVEsRUFDNUIscUNBQW1CLENBQUMsT0FBTyxDQUM1QixDQUNGLENBQUM7WUFDRixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUMxRDtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDckU7S0FDRjtJQUVELE9BQU87UUFDTCxNQUFNLEVBQUUsU0FBUztRQUNqQixRQUFRLEVBQUUsV0FBVztRQUNyQixnQkFBZ0I7UUFDaEIscUJBQXFCO0tBQ3RCLENBQUM7QUFDSixDQUFDO0FBL0hELHdEQStIQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgYXNzZXJ0IGZyb20gJ25vZGU6YXNzZXJ0JztcbmltcG9ydCB7XG4gIEJ1aWxkT3V0cHV0RmlsZSxcbiAgQnVpbGRPdXRwdXRGaWxlVHlwZSxcbiAgSW5pdGlhbEZpbGVSZWNvcmQsXG59IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvYnVuZGxlci1jb250ZXh0JztcbmltcG9ydCB7IEJ1aWxkT3V0cHV0QXNzZXQgfSBmcm9tICcuLi8uLi90b29scy9lc2J1aWxkL2J1bmRsZXItZXhlY3V0aW9uLXJlc3VsdCc7XG5pbXBvcnQgeyBnZW5lcmF0ZUluZGV4SHRtbCB9IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvaW5kZXgtaHRtbC1nZW5lcmF0b3InO1xuaW1wb3J0IHsgY3JlYXRlT3V0cHV0RmlsZUZyb21UZXh0IH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC91dGlscyc7XG5pbXBvcnQgeyBtYXhXb3JrZXJzIH0gZnJvbSAnLi4vLi4vdXRpbHMvZW52aXJvbm1lbnQtb3B0aW9ucyc7XG5pbXBvcnQgeyBwcmVyZW5kZXJQYWdlcyB9IGZyb20gJy4uLy4uL3V0aWxzL3NlcnZlci1yZW5kZXJpbmcvcHJlcmVuZGVyJztcbmltcG9ydCB7IGF1Z21lbnRBcHBXaXRoU2VydmljZVdvcmtlckVzYnVpbGQgfSBmcm9tICcuLi8uLi91dGlscy9zZXJ2aWNlLXdvcmtlcic7XG5pbXBvcnQgeyBOb3JtYWxpemVkQXBwbGljYXRpb25CdWlsZE9wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMnO1xuXG4vKipcbiAqIFJ1biBhZGRpdGlvbmFsIGJ1aWxkcyBzdGVwcyBpbmNsdWRpbmcgU1NHLCBBcHBTaGVsbCwgSW5kZXggSFRNTCBmaWxlIGFuZCBTZXJ2aWNlIHdvcmtlciBnZW5lcmF0aW9uLlxuICogQHBhcmFtIG9wdGlvbnMgVGhlIG5vcm1hbGl6ZWQgYXBwbGljYXRpb24gYnVpbGRlciBvcHRpb25zIHVzZWQgdG8gY3JlYXRlIHRoZSBidWlsZC5cbiAqIEBwYXJhbSBvdXRwdXRGaWxlcyBUaGUgb3V0cHV0IGZpbGVzIG9mIGFuIGV4ZWN1dGVkIGJ1aWxkLlxuICogQHBhcmFtIGFzc2V0RmlsZXMgVGhlIGFzc2V0cyBvZiBhbiBleGVjdXRlZCBidWlsZC5cbiAqIEBwYXJhbSBpbml0aWFsRmlsZXMgQSBtYXAgY29udGFpbmluZyBpbml0aWFsIGZpbGUgaW5mb3JtYXRpb24gZm9yIHRoZSBleGVjdXRlZCBidWlsZC5cbiAqIEBwYXJhbSBsb2NhbGUgQSBsYW5ndWFnZSBsb2NhbGUgdG8gaW5zZXJ0IGluIHRoZSBpbmRleC5odG1sLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZVBvc3RCdW5kbGVTdGVwcyhcbiAgb3B0aW9uczogTm9ybWFsaXplZEFwcGxpY2F0aW9uQnVpbGRPcHRpb25zLFxuICBvdXRwdXRGaWxlczogQnVpbGRPdXRwdXRGaWxlW10sXG4gIGFzc2V0RmlsZXM6IEJ1aWxkT3V0cHV0QXNzZXRbXSxcbiAgaW5pdGlhbEZpbGVzOiBNYXA8c3RyaW5nLCBJbml0aWFsRmlsZVJlY29yZD4sXG4gIGxvY2FsZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuKTogUHJvbWlzZTx7XG4gIGVycm9yczogc3RyaW5nW107XG4gIHdhcm5pbmdzOiBzdHJpbmdbXTtcbiAgYWRkaXRpb25hbE91dHB1dEZpbGVzOiBCdWlsZE91dHB1dEZpbGVbXTtcbiAgYWRkaXRpb25hbEFzc2V0czogQnVpbGRPdXRwdXRBc3NldFtdO1xufT4ge1xuICBjb25zdCBhZGRpdGlvbmFsQXNzZXRzOiBCdWlsZE91dHB1dEFzc2V0W10gPSBbXTtcbiAgY29uc3QgYWRkaXRpb25hbE91dHB1dEZpbGVzOiBCdWlsZE91dHB1dEZpbGVbXSA9IFtdO1xuICBjb25zdCBhbGxFcnJvcnM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IGFsbFdhcm5pbmdzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0IHtcbiAgICBzZXJ2aWNlV29ya2VyLFxuICAgIGluZGV4SHRtbE9wdGlvbnMsXG4gICAgb3B0aW1pemF0aW9uT3B0aW9ucyxcbiAgICBzc3JPcHRpb25zLFxuICAgIHByZXJlbmRlck9wdGlvbnMsXG4gICAgYXBwU2hlbGxPcHRpb25zLFxuICAgIHdvcmtzcGFjZVJvb3QsXG4gICAgdmVyYm9zZSxcbiAgfSA9IG9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIEluZGV4IEhUTUwgY29udGVudCB3aXRob3V0IENTUyBpbmxpbmluZyB0byBiZSB1c2VkIGZvciBzZXJ2ZXIgcmVuZGVyaW5nIChBcHBTaGVsbCwgU1NHIGFuZCBTU1IpLlxuICAgKlxuICAgKiBOT1RFOiB3ZSBkb24ndCBwZXJmb3JtIGNyaXRpY2FsIENTUyBpbmxpbmluZyBhcyB0aGlzIHdpbGwgYmUgZG9uZSBkdXJpbmcgc2VydmVyIHJlbmRlcmluZy5cbiAgICovXG4gIGxldCBpbmRleENvbnRlbnRPdXRwdXROb0Nzc0lubGluaW5nOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLy8gR2VuZXJhdGUgaW5kZXggSFRNTCBmaWxlXG4gIC8vIElmIGxvY2FsaXphdGlvbiBpcyBlbmFibGVkLCBpbmRleCBnZW5lcmF0aW9uIGlzIGhhbmRsZWQgaW4gdGhlIGlubGluaW5nIHByb2Nlc3MuXG4gIC8vIE5PVEU6IExvY2FsaXphdGlvbiB3aXRoIFNTUiBpcyBub3QgY3VycmVudGx5IHN1cHBvcnRlZC5cbiAgaWYgKGluZGV4SHRtbE9wdGlvbnMpIHtcbiAgICBjb25zdCB7IGNvbnRlbnQsIGNvbnRlbnRXaXRob3V0Q3JpdGljYWxDc3NJbmxpbmVkLCBlcnJvcnMsIHdhcm5pbmdzIH0gPSBhd2FpdCBnZW5lcmF0ZUluZGV4SHRtbChcbiAgICAgIGluaXRpYWxGaWxlcyxcbiAgICAgIG91dHB1dEZpbGVzLFxuICAgICAge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBvcHRpbWl6YXRpb25PcHRpb25zLFxuICAgICAgfSxcbiAgICAgIGxvY2FsZSxcbiAgICApO1xuXG4gICAgaW5kZXhDb250ZW50T3V0cHV0Tm9Dc3NJbmxpbmluZyA9IGNvbnRlbnRXaXRob3V0Q3JpdGljYWxDc3NJbmxpbmVkO1xuICAgIGFsbEVycm9ycy5wdXNoKC4uLmVycm9ycyk7XG4gICAgYWxsV2FybmluZ3MucHVzaCguLi53YXJuaW5ncyk7XG5cbiAgICBhZGRpdGlvbmFsT3V0cHV0RmlsZXMucHVzaChcbiAgICAgIGNyZWF0ZU91dHB1dEZpbGVGcm9tVGV4dChpbmRleEh0bWxPcHRpb25zLm91dHB1dCwgY29udGVudCwgQnVpbGRPdXRwdXRGaWxlVHlwZS5Ccm93c2VyKSxcbiAgICApO1xuXG4gICAgaWYgKHNzck9wdGlvbnMpIHtcbiAgICAgIGFkZGl0aW9uYWxPdXRwdXRGaWxlcy5wdXNoKFxuICAgICAgICBjcmVhdGVPdXRwdXRGaWxlRnJvbVRleHQoXG4gICAgICAgICAgJ2luZGV4LnNlcnZlci5odG1sJyxcbiAgICAgICAgICBjb250ZW50V2l0aG91dENyaXRpY2FsQ3NzSW5saW5lZCxcbiAgICAgICAgICBCdWlsZE91dHB1dEZpbGVUeXBlLlNlcnZlcixcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLy8gUHJlLXJlbmRlciAoU1NHKSBhbmQgQXBwLXNoZWxsXG4gIC8vIElmIGxvY2FsaXphdGlvbiBpcyBlbmFibGVkLCBwcmVyZW5kZXJpbmcgaXMgaGFuZGxlZCBpbiB0aGUgaW5saW5pbmcgcHJvY2Vzcy5cbiAgaWYgKHByZXJlbmRlck9wdGlvbnMgfHwgYXBwU2hlbGxPcHRpb25zKSB7XG4gICAgYXNzZXJ0KFxuICAgICAgaW5kZXhDb250ZW50T3V0cHV0Tm9Dc3NJbmxpbmluZyxcbiAgICAgICdUaGUgXCJpbmRleFwiIG9wdGlvbiBpcyByZXF1aXJlZCB3aGVuIHVzaW5nIHRoZSBcInNzZ1wiIG9yIFwiYXBwU2hlbGxcIiBvcHRpb25zLicsXG4gICAgKTtcblxuICAgIGNvbnN0IHsgb3V0cHV0LCB3YXJuaW5ncywgZXJyb3JzIH0gPSBhd2FpdCBwcmVyZW5kZXJQYWdlcyhcbiAgICAgIHdvcmtzcGFjZVJvb3QsXG4gICAgICBhcHBTaGVsbE9wdGlvbnMsXG4gICAgICBwcmVyZW5kZXJPcHRpb25zLFxuICAgICAgb3V0cHV0RmlsZXMsXG4gICAgICBpbmRleENvbnRlbnRPdXRwdXROb0Nzc0lubGluaW5nLFxuICAgICAgb3B0aW1pemF0aW9uT3B0aW9ucy5zdHlsZXMuaW5saW5lQ3JpdGljYWwsXG4gICAgICBtYXhXb3JrZXJzLFxuICAgICAgdmVyYm9zZSxcbiAgICApO1xuXG4gICAgYWxsRXJyb3JzLnB1c2goLi4uZXJyb3JzKTtcbiAgICBhbGxXYXJuaW5ncy5wdXNoKC4uLndhcm5pbmdzKTtcblxuICAgIGZvciAoY29uc3QgW3BhdGgsIGNvbnRlbnRdIG9mIE9iamVjdC5lbnRyaWVzKG91dHB1dCkpIHtcbiAgICAgIGFkZGl0aW9uYWxPdXRwdXRGaWxlcy5wdXNoKFxuICAgICAgICBjcmVhdGVPdXRwdXRGaWxlRnJvbVRleHQocGF0aCwgY29udGVudCwgQnVpbGRPdXRwdXRGaWxlVHlwZS5Ccm93c2VyKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLy8gQXVnbWVudCB0aGUgYXBwbGljYXRpb24gd2l0aCBzZXJ2aWNlIHdvcmtlciBzdXBwb3J0XG4gIC8vIElmIGxvY2FsaXphdGlvbiBpcyBlbmFibGVkLCBzZXJ2aWNlIHdvcmtlciBpcyBoYW5kbGVkIGluIHRoZSBpbmxpbmluZyBwcm9jZXNzLlxuICBpZiAoc2VydmljZVdvcmtlcikge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzZXJ2aWNlV29ya2VyUmVzdWx0ID0gYXdhaXQgYXVnbWVudEFwcFdpdGhTZXJ2aWNlV29ya2VyRXNidWlsZChcbiAgICAgICAgd29ya3NwYWNlUm9vdCxcbiAgICAgICAgc2VydmljZVdvcmtlcixcbiAgICAgICAgb3B0aW9ucy5iYXNlSHJlZiB8fCAnLycsXG4gICAgICAgIG91dHB1dEZpbGVzLFxuICAgICAgICBhc3NldEZpbGVzLFxuICAgICAgKTtcbiAgICAgIGFkZGl0aW9uYWxPdXRwdXRGaWxlcy5wdXNoKFxuICAgICAgICBjcmVhdGVPdXRwdXRGaWxlRnJvbVRleHQoXG4gICAgICAgICAgJ25nc3cuanNvbicsXG4gICAgICAgICAgc2VydmljZVdvcmtlclJlc3VsdC5tYW5pZmVzdCxcbiAgICAgICAgICBCdWlsZE91dHB1dEZpbGVUeXBlLkJyb3dzZXIsXG4gICAgICAgICksXG4gICAgICApO1xuICAgICAgYWRkaXRpb25hbEFzc2V0cy5wdXNoKC4uLnNlcnZpY2VXb3JrZXJSZXN1bHQuYXNzZXRGaWxlcyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGFsbEVycm9ycy5wdXNoKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogYCR7ZXJyb3J9YCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBlcnJvcnM6IGFsbEVycm9ycyxcbiAgICB3YXJuaW5nczogYWxsV2FybmluZ3MsXG4gICAgYWRkaXRpb25hbEFzc2V0cyxcbiAgICBhZGRpdGlvbmFsT3V0cHV0RmlsZXMsXG4gIH07XG59XG4iXX0=
|
|
@@ -9,16 +9,12 @@
|
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.loadActiveTranslations = exports.inlineI18n = void 0;
|
|
11
11
|
const node_path_1 = require("node:path");
|
|
12
|
-
const bundler_context_1 = require("../../tools/esbuild/bundler-context");
|
|
13
12
|
const i18n_inliner_1 = require("../../tools/esbuild/i18n-inliner");
|
|
14
|
-
const index_html_generator_1 = require("../../tools/esbuild/index-html-generator");
|
|
15
|
-
const utils_1 = require("../../tools/esbuild/utils");
|
|
16
13
|
const environment_options_1 = require("../../utils/environment-options");
|
|
17
14
|
const i18n_options_1 = require("../../utils/i18n-options");
|
|
18
15
|
const load_translations_1 = require("../../utils/load-translations");
|
|
19
|
-
const prerender_1 = require("../../utils/server-rendering/prerender");
|
|
20
|
-
const service_worker_1 = require("../../utils/service-worker");
|
|
21
16
|
const url_1 = require("../../utils/url");
|
|
17
|
+
const execute_post_bundle_1 = require("./execute-post-bundle");
|
|
22
18
|
/**
|
|
23
19
|
* Inlines all active locales as specified by the application build options into all
|
|
24
20
|
* application JavaScript files created during the build.
|
|
@@ -45,47 +41,28 @@ async function inlineI18n(options, executionResult, initialFiles) {
|
|
|
45
41
|
// A locale specific set of files is returned from the inliner.
|
|
46
42
|
const localeOutputFiles = await inliner.inlineForLocale(locale, options.i18nOptions.locales[locale].translation);
|
|
47
43
|
const baseHref = getLocaleBaseHref(options.baseHref, options.i18nOptions, locale) ?? options.baseHref;
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
inlineResult.errors.push(...errors);
|
|
56
|
-
inlineResult.warnings.push(...warnings);
|
|
57
|
-
// Pre-render (SSG) and App-shell
|
|
58
|
-
if (options.prerenderOptions || options.appShellOptions) {
|
|
59
|
-
const { output, warnings, errors } = await (0, prerender_1.prerenderPages)(options.workspaceRoot, options.appShellOptions, options.prerenderOptions, localeOutputFiles, contentWithoutCriticalCssInlined, options.optimizationOptions.styles.inlineCritical, environment_options_1.maxWorkers, options.verbose);
|
|
60
|
-
inlineResult.errors.push(...errors);
|
|
61
|
-
inlineResult.warnings.push(...warnings);
|
|
62
|
-
for (const [path, content] of Object.entries(output)) {
|
|
63
|
-
localeOutputFiles.push((0, utils_1.createOutputFileFromText)(path, content, bundler_context_1.BuildOutputFileType.Browser));
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
if (options.serviceWorker) {
|
|
68
|
-
try {
|
|
69
|
-
const serviceWorkerResult = await (0, service_worker_1.augmentAppWithServiceWorkerEsbuild)(options.workspaceRoot, options.serviceWorker, baseHref || '/', localeOutputFiles, executionResult.assetFiles);
|
|
70
|
-
localeOutputFiles.push((0, utils_1.createOutputFileFromText)('ngsw.json', serviceWorkerResult.manifest, bundler_context_1.BuildOutputFileType.Browser));
|
|
71
|
-
executionResult.assetFiles.push(...serviceWorkerResult.assetFiles);
|
|
72
|
-
}
|
|
73
|
-
catch (error) {
|
|
74
|
-
inlineResult.errors.push(error instanceof Error ? error.message : `${error}`);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
44
|
+
const { errors, warnings, additionalAssets, additionalOutputFiles } = await (0, execute_post_bundle_1.executePostBundleSteps)({
|
|
45
|
+
...options,
|
|
46
|
+
baseHref,
|
|
47
|
+
}, localeOutputFiles, executionResult.assetFiles, initialFiles, locale);
|
|
48
|
+
localeOutputFiles.push(...additionalOutputFiles);
|
|
49
|
+
inlineResult.errors.push(...errors);
|
|
50
|
+
inlineResult.warnings.push(...warnings);
|
|
77
51
|
// Update directory with locale base
|
|
78
52
|
if (options.i18nOptions.flatOutput !== true) {
|
|
79
53
|
localeOutputFiles.forEach((file) => {
|
|
80
54
|
file.path = (0, node_path_1.join)(locale, file.path);
|
|
81
55
|
});
|
|
82
|
-
for (const assetFile of executionResult.assetFiles) {
|
|
56
|
+
for (const assetFile of [...executionResult.assetFiles, ...additionalAssets]) {
|
|
83
57
|
updatedAssetFiles.push({
|
|
84
58
|
source: assetFile.source,
|
|
85
59
|
destination: (0, node_path_1.join)(locale, assetFile.destination),
|
|
86
60
|
});
|
|
87
61
|
}
|
|
88
62
|
}
|
|
63
|
+
else {
|
|
64
|
+
executionResult.assetFiles.push(...additionalAssets);
|
|
65
|
+
}
|
|
89
66
|
updatedOutputFiles.push(...localeOutputFiles);
|
|
90
67
|
}
|
|
91
68
|
}
|
|
@@ -137,4 +114,4 @@ async function loadActiveTranslations(context, i18n) {
|
|
|
137
114
|
}
|
|
138
115
|
}
|
|
139
116
|
exports.loadActiveTranslations = loadActiveTranslations;
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL2J1aWxkZXJzL2FwcGxpY2F0aW9uL2kxOG4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBR0gseUNBQWlDO0FBQ2pDLHlFQUE2RjtBQUU3RixtRUFBK0Q7QUFDL0QsbUZBQTZFO0FBQzdFLHFEQUFxRTtBQUNyRSx5RUFBNkQ7QUFDN0QsMkRBQTREO0FBQzVELHFFQUF3RTtBQUN4RSxzRUFBd0U7QUFDeEUsK0RBQWdGO0FBQ2hGLHlDQUEwQztBQUcxQzs7Ozs7O0dBTUc7QUFDSSxLQUFLLFVBQVUsVUFBVSxDQUM5QixPQUEwQyxFQUMxQyxlQUFnQyxFQUNoQyxZQUE0QztJQUU1QyxnR0FBZ0c7SUFDaEcsTUFBTSxPQUFPLEdBQUcsSUFBSSwwQkFBVyxDQUM3QjtRQUNFLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsMEJBQTBCLElBQUksU0FBUztRQUMvRSxXQUFXLEVBQUUsZUFBZSxDQUFDLFdBQVc7UUFDeEMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPO0tBQ3BELEVBQ0QsZ0NBQVUsQ0FDWCxDQUFDO0lBRUYsTUFBTSxZQUFZLEdBQTZDO1FBQzdELE1BQU0sRUFBRSxFQUFFO1FBQ1YsUUFBUSxFQUFFLEVBQUU7S0FDYixDQUFDO0lBRUYsb0ZBQW9GO0lBQ3BGLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzdCLElBQUk7UUFDRixLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFO1lBQ3RELCtEQUErRDtZQUMvRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sT0FBTyxDQUFDLGVBQWUsQ0FDckQsTUFB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aWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBCdWlsZGVyQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9hcmNoaXRlY3QnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBCdWlsZE91dHB1dEZpbGVUeXBlLCBJbml0aWFsRmlsZVJlY29yZCB9IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvYnVuZGxlci1jb250ZXh0JztcbmltcG9ydCB7IEV4ZWN1dGlvblJlc3VsdCB9IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvYnVuZGxlci1leGVjdXRpb24tcmVzdWx0JztcbmltcG9ydCB7IEkxOG5JbmxpbmVyIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC9pMThuLWlubGluZXInO1xuaW1wb3J0IHsgZ2VuZXJhdGVJbmRleEh0bWwgfSBmcm9tICcuLi8uLi90b29scy9lc2J1aWxkL2luZGV4LWh0bWwtZ2VuZXJhdG9yJztcbmltcG9ydCB7IGNyZWF0ZU91dHB1dEZpbGVGcm9tVGV4dCB9IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvdXRpbHMnO1xuaW1wb3J0IHsgbWF4V29ya2VycyB9IGZyb20gJy4uLy4uL3V0aWxzL2Vudmlyb25tZW50LW9wdGlvbnMnO1xuaW1wb3J0IHsgbG9hZFRyYW5zbGF0aW9ucyB9IGZyb20gJy4uLy4uL3V0aWxzL2kxOG4tb3B0aW9ucyc7XG5pbXBvcnQgeyBjcmVhdGVUcmFuc2xhdGlvbkxvYWRlciB9IGZyb20gJy4uLy4uL3V0aWxzL2xvYWQtdHJhbnNsYXRpb25zJztcbmltcG9ydCB7IHByZXJlbmRlclBhZ2VzIH0gZnJvbSAnLi4vLi4vdXRpbHMvc2VydmVyLXJlbmRlcmluZy9wcmVyZW5kZXInO1xuaW1wb3J0IHsgYXVnbWVudEFwcFdpdGhTZXJ2aWNlV29ya2VyRXNidWlsZCB9IGZyb20gJy4uLy4uL3V0aWxzL3NlcnZpY2Utd29ya2VyJztcbmltcG9ydCB7IHVybEpvaW4gfSBmcm9tICcuLi8uLi91dGlscy91cmwnO1xuaW1wb3J0IHsgTm9ybWFsaXplZEFwcGxpY2F0aW9uQnVpbGRPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcblxuLyoqXG4gKiBJbmxpbmVzIGFsbCBhY3RpdmUgbG9jYWxlcyBhcyBzcGVjaWZpZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGJ1aWxkIG9wdGlvbnMgaW50byBhbGxcbiAqIGFwcGxpY2F0aW9uIEphdmFTY3JpcHQgZmlsZXMgY3JlYXRlZCBkdXJpbmcgdGhlIGJ1aWxkLlxuICogQHBhcmFtIG9wdGlvbnMgVGhlIG5vcm1hbGl6ZWQgYXBwbGljYXRpb24gYnVpbGRlciBvcHRpb25zIHVzZWQgdG8gY3JlYXRlIHRoZSBidWlsZC5cbiAqIEBwYXJhbSBleGVjdXRpb25SZXN1bHQgVGhlIHJlc3VsdCBvZiBhbiBleGVjdXRlZCBidWlsZC5cbiAqIEBwYXJhbSBpbml0aWFsRmlsZXMgQSBtYXAgY29udGFpbmluZyBpbml0aWFsIGZpbGUgaW5mb3JtYXRpb24gZm9yIHRoZSBleGVjdXRlZCBidWlsZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGlubGluZUkxOG4oXG4gIG9wdGlvbnM6IE5vcm1hbGl6ZWRBcHBsaWNhdGlvbkJ1aWxkT3B0aW9ucyxcbiAgZXhlY3V0aW9uUmVzdWx0OiBFeGVjdXRpb25SZXN1bHQsXG4gIGluaXRpYWxGaWxlczogTWFwPHN0cmluZywgSW5pdGlhbEZpbGVSZWNvcmQ+LFxuKTogUHJvbWlzZTx7IGVycm9yczogc3RyaW5nW107IHdhcm5pbmdzOiBzdHJpbmdbXSB9PiB7XG4gIC8vIENyZWF0ZSB0aGUgbXVsdGktdGhyZWFkZWQgaW5saW5lciB3aXRoIGNvbW1vbiBvcHRpb25zIGFuZCB0aGUgZmlsZXMgZ2VuZXJhdGVkIGZyb20gdGhlIGJ1aWxkLlxuICBjb25zdCBpbmxpbmVyID0gbmV3IEkxOG5JbmxpbmVyKFxuICAgIHtcbiAgICAgIG1pc3NpbmdUcmFuc2xhdGlvbjogb3B0aW9ucy5pMThuT3B0aW9ucy5taXNzaW5nVHJhbnNsYXRpb25CZWhhdmlvciA/PyAnd2FybmluZycsXG4gICAgICBvdXRwdXRGaWxlczogZXhlY3V0aW9uUmVzdWx0Lm91dHB1dEZpbGVzLFxuICAgICAgc2hvdWxkT3B0aW1pemU6IG9wdGlvbnMub3B0aW1pemF0aW9uT3B0aW9ucy5zY3JpcHRzLFxuICAgIH0sXG4gICAgbWF4V29ya2VycyxcbiAgKTtcblxuICBjb25zdCBpbmxpbmVSZXN1bHQ6IHsgZXJyb3JzOiBzdHJpbmdbXTsgd2FybmluZ3M6IHN0cmluZ1tdIH0gPSB7XG4gICAgZXJyb3JzOiBbXSxcbiAgICB3YXJuaW5nczogW10sXG4gIH07XG5cbiAgLy8gRm9yIGVhY2ggYWN0aXZlIGxvY2FsZSwgdXNlIHRoZSBpbmxpbmVyIHRvIHByb2Nlc3MgdGhlIG91dHB1dCBmaWxlcyBvZiB0aGUgYnVpbGQuXG4gIGNvbnN0IHVwZGF0ZWRPdXRwdXRGaWxlcyA9IFtdO1xuICBjb25zdCB1cGRhdGVkQXNzZXRGaWxlcyA9IFtdO1xuICB0cnkge1xuICAgIGZvciAoY29uc3QgbG9jYWxlIG9mIG9wdGlvbnMuaTE4bk9wdGlvbnMuaW5saW5lTG9jYWxlcykge1xuICAgICAgLy8gQSBsb2NhbGUgc3BlY2lmaWMgc2V0IG9mIGZpbGVzIGlzIHJldHVybmVkIGZyb20gdGhlIGlubGluZXIuXG4gICAgICBjb25zdCBsb2NhbGVPdXRwdXRGaWxlcyA9IGF3YWl0IGlubGluZXIuaW5saW5lRm9yTG9jYWxlKFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIG9wdGlvbnMuaTE4bk9wdGlvbnMubG9jYWxlc1tsb2NhbGVdLnRyYW5zbGF0aW9uLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgYmFzZUhyZWYgPVxuICAgICAgICBnZXRMb2NhbGVCYXNlSHJlZihvcHRpb25zLmJhc2VIcmVmLCBvcHRpb25zLmkxOG5PcHRpb25zLCBsb2NhbGUpID8/IG9wdGlvbnMuYmFzZUhyZWY7XG5cbiAgICAgIC8vIEdlbmVyYXRlIGxvY2FsZSBzcGVjaWZpYyBpbmRleCBIVE1MIGZpbGVzXG4gICAgICBpZiAob3B0aW9ucy5pbmRleEh0bWxPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHsgY29udGVudCwgY29udGVudFdpdGhvdXRDcml0aWNhbENzc0lubGluZWQsIGVycm9ycywgd2FybmluZ3MgfSA9XG4gICAgICAgICAgYXdhaXQgZ2VuZXJhdGVJbmRleEh0bWwoXG4gICAgICAgICAgICBpbml0aWFsRmlsZXMsXG4gICAgICAgICAgICBsb2NhbGVPdXRwdXRGaWxlcyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgICAgYmFzZUhyZWYsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgbG9jYWxlT3V0cHV0RmlsZXMucHVzaChcbiAgICAgICAgICBjcmVhdGVPdXRwdXRGaWxlRnJvbVRleHQoXG4gICAgICAgICAgICBvcHRpb25zLmluZGV4SHRtbE9wdGlvbnMub3V0cHV0LFxuICAgICAgICAgICAgY29udGVudCxcbiAgICAgICAgICAgIEJ1aWxkT3V0cHV0RmlsZVR5cGUuQnJvd3NlcixcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgICBpbmxpbmVSZXN1bHQuZXJyb3JzLnB1c2goLi4uZXJyb3JzKTtcbiAgICAgICAgaW5saW5lUmVzdWx0Lndhcm5pbmdzLnB1c2goLi4ud2FybmluZ3MpO1xuXG4gICAgICAgIC8vIFByZS1yZW5kZXIgKFNTRykgYW5kIEFwcC1zaGVsbFxuICAgICAgICBpZiAob3B0aW9ucy5wcmVyZW5kZXJPcHRpb25zIHx8IG9wdGlvbnMuYXBwU2hlbGxPcHRpb25zKSB7XG4gICAgICAgICAgY29uc3QgeyBvdXRwdXQsIHdhcm5pbmdzLCBlcnJvcnMgfSA9IGF3YWl0IHByZXJlbmRlclBhZ2VzKFxuICAgICAgICAgICAgb3B0aW9ucy53b3Jrc3BhY2VSb290LFxuICAgICAgICAgICAgb3B0aW9ucy5hcHBTaGVsbE9wdGlvbnMsXG4gICAgICAgICAgICBvcHRpb25zLnByZXJlbmRlck9wdGlvbnMsXG4gICAgICAgICAgICBsb2NhbGVPdXRwdXRGaWxlcyxcbiAgICAgICAgICAgIGNvbnRlbnRXaXRob3V0Q3JpdGljYWxDc3NJbmxpbmVkLFxuICAgICAgICAgICAgb3B0aW9ucy5vcHRpbWl6YXRpb25PcHRpb25zLnN0eWxlcy5pbmxpbmVDcml0aWNhbCxcbiAgICAgICAgICAgIG1heFdvcmtlcnMsXG4gICAgICAgICAgICBvcHRpb25zLnZlcmJvc2UsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlubGluZVJlc3VsdC5lcnJvcnMucHVzaCguLi5lcnJvcnMpO1xuICAgICAgICAgIGlubGluZVJlc3VsdC53YXJuaW5ncy5wdXNoKC4uLndhcm5pbmdzKTtcblxuICAgICAgICAgIGZvciAoY29uc3QgW3BhdGgsIGNvbnRlbnRdIG9mIE9iamVjdC5lbnRyaWVzKG91dHB1dCkpIHtcbiAgICAgICAgICAgIGxvY2FsZU91dHB1dEZpbGVzLnB1c2goXG4gICAgICAgICAgICAgIGNyZWF0ZU91dHB1dEZpbGVGcm9tVGV4dChwYXRoLCBjb250ZW50LCBCdWlsZE91dHB1dEZpbGVUeXBlLkJyb3dzZXIpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbnMuc2VydmljZVdvcmtlcikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHNlcnZpY2VXb3JrZXJSZXN1bHQgPSBhd2FpdCBhdWdtZW50QXBwV2l0aFNlcnZpY2VXb3JrZXJFc2J1aWxkKFxuICAgICAgICAgICAgb3B0aW9ucy53b3Jrc3BhY2VSb290LFxuICAgICAgICAgICAgb3B0aW9ucy5zZXJ2aWNlV29ya2VyLFxuICAgICAgICAgICAgYmFzZUhyZWYgfHwgJy8nLFxuICAgICAgICAgICAgbG9jYWxlT3V0cHV0RmlsZXMsXG4gICAgICAgICAgICBleGVjdXRpb25SZXN1bHQuYXNzZXRGaWxlcyxcbiAgICAgICAgICApO1xuICAgICAgICAgIGxvY2FsZU91dHB1dEZpbGVzLnB1c2goXG4gICAgICAgICAgICBjcmVhdGVPdXRwdXRGaWxlRnJvbVRleHQoXG4gICAgICAgICAgICAgICduZ3N3Lmpzb24nLFxuICAgICAgICAgICAgICBzZXJ2aWNlV29ya2VyUmVzdWx0Lm1hbmlmZXN0LFxuICAgICAgICAgICAgICBCdWlsZE91dHB1dEZpbGVUeXBlLkJyb3dzZXIsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICk7XG4gICAgICAgICAgZXhlY3V0aW9uUmVzdWx0LmFzc2V0RmlsZXMucHVzaCguLi5zZXJ2aWNlV29ya2VyUmVzdWx0LmFzc2V0RmlsZXMpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGlubGluZVJlc3VsdC5lcnJvcnMucHVzaChlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IGAke2Vycm9yfWApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFVwZGF0ZSBkaXJlY3Rvcnkgd2l0aCBsb2NhbGUgYmFzZVxuICAgICAgaWYgKG9wdGlvbnMuaTE4bk9wdGlvbnMuZmxhdE91dHB1dCAhPT0gdHJ1ZSkge1xuICAgICAgICBsb2NhbGVPdXRwdXRGaWxlcy5mb3JFYWNoKChmaWxlKSA9PiB7XG4gICAgICAgICAgZmlsZS5wYXRoID0gam9pbihsb2NhbGUsIGZpbGUucGF0aCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZvciAoY29uc3QgYXNzZXRGaWxlIG9mIGV4ZWN1dGlvblJlc3VsdC5hc3NldEZpbGVzKSB7XG4gICAgICAgICAgdXBkYXRlZEFzc2V0RmlsZXMucHVzaCh7XG4gICAgICAgICAgICBzb3VyY2U6IGFzc2V0RmlsZS5zb3VyY2UsXG4gICAgICAgICAgICBkZXN0aW5hdGlvbjogam9pbihsb2NhbGUsIGFzc2V0RmlsZS5kZXN0aW5hdGlvbiksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdXBkYXRlZE91dHB1dEZpbGVzLnB1c2goLi4ubG9jYWxlT3V0cHV0RmlsZXMpO1xuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICBhd2FpdCBpbmxpbmVyLmNsb3NlKCk7XG4gIH1cblxuICAvLyBVcGRhdGUgdGhlIHJlc3VsdCB3aXRoIGFsbCBsb2NhbGl6ZWQgZmlsZXNcbiAgZXhlY3V0aW9uUmVzdWx0Lm91dHB1dEZpbGVzID0gdXBkYXRlZE91dHB1dEZpbGVzO1xuXG4gIC8vIEFzc2V0cyBhcmUgb25seSBjaGFuZ2VkIGlmIG5vdCB1c2luZyB0aGUgZmxhdCBvdXRwdXQgb3B0aW9uXG4gIGlmIChvcHRpb25zLmkxOG5PcHRpb25zLmZsYXRPdXRwdXQgIT09IHRydWUpIHtcbiAgICBleGVjdXRpb25SZXN1bHQuYXNzZXRGaWxlcyA9IHVwZGF0ZWRBc3NldEZpbGVzO1xuICB9XG5cbiAgcmV0dXJuIGlubGluZVJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZ2V0TG9jYWxlQmFzZUhyZWYoXG4gIGJhc2VIcmVmOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGkxOG46IE5vcm1hbGl6ZWRBcHBsaWNhdGlvbkJ1aWxkT3B0aW9uc1snaTE4bk9wdGlvbnMnXSxcbiAgbG9jYWxlOiBzdHJpbmcsXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoaTE4bi5mbGF0T3V0cHV0KSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChpMThuLmxvY2FsZXNbbG9jYWxlXSAmJiBpMThuLmxvY2FsZXNbbG9jYWxlXS5iYXNlSHJlZiAhPT0gJycpIHtcbiAgICByZXR1cm4gdXJsSm9pbihiYXNlSHJlZiB8fCAnJywgaTE4bi5sb2NhbGVzW2xvY2FsZV0uYmFzZUhyZWYgPz8gYC8ke2xvY2FsZX0vYCk7XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIExvYWRzIGFsbCBhY3RpdmUgdHJhbnNsYXRpb25zIHVzaW5nIHRoZSB0cmFuc2xhdGlvbiBsb2FkZXJzIGZyb20gdGhlIGBAYW5ndWxhci9sb2NhbGl6ZWAgcGFja2FnZS5cbiAqIEBwYXJhbSBjb250ZXh0IFRoZSBhcmNoaXRlY3QgYnVpbGRlciBjb250ZXh0IGZvciB0aGUgY3VycmVudCBidWlsZC5cbiAqIEBwYXJhbSBpMThuIFRoZSBub3JtYWxpemVkIGkxOG4gb3B0aW9ucyB0byB1c2UuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkQWN0aXZlVHJhbnNsYXRpb25zKFxuICBjb250ZXh0OiBCdWlsZGVyQ29udGV4dCxcbiAgaTE4bjogTm9ybWFsaXplZEFwcGxpY2F0aW9uQnVpbGRPcHRpb25zWydpMThuT3B0aW9ucyddLFxuKSB7XG4gIC8vIExvYWQgbG9jYWxlIGRhdGEgYW5kIHRyYW5zbGF0aW9ucyAoaWYgcHJlc2VudClcbiAgbGV0IGxvYWRlcjtcbiAgZm9yIChjb25zdCBbbG9jYWxlLCBkZXNjXSBvZiBPYmplY3QuZW50cmllcyhpMThuLmxvY2FsZXMpKSB7XG4gICAgaWYgKCFpMThuLmlubGluZUxvY2FsZXMuaGFzKGxvY2FsZSkgJiYgbG9jYWxlICE9PSBpMThuLnNvdXJjZUxvY2FsZSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKCFkZXNjLmZpbGVzLmxlbmd0aCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgbG9hZGVyID8/PSBhd2FpdCBjcmVhdGVUcmFuc2xhdGlvbkxvYWRlcigpO1xuXG4gICAgbG9hZFRyYW5zbGF0aW9ucyhcbiAgICAgIGxvY2FsZSxcbiAgICAgIGRlc2MsXG4gICAgICBjb250ZXh0LndvcmtzcGFjZVJvb3QsXG4gICAgICBsb2FkZXIsXG4gICAgICB7XG4gICAgICAgIHdhcm4obWVzc2FnZSkge1xuICAgICAgICAgIGNvbnRleHQubG9nZ2VyLndhcm4obWVzc2FnZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yKG1lc3NhZ2UpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgaTE4bi5kdXBsaWNhdGVUcmFuc2xhdGlvbkJlaGF2aW9yLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL2J1aWxkZXJzL2FwcGxpY2F0aW9uL2kxOG4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBR0gseUNBQWlDO0FBR2pDLG1FQUErRDtBQUMvRCx5RUFBNkQ7QUFDN0QsMkRBQTREO0FBQzVELHFFQUF3RTtBQUN4RSx5Q0FBMEM7QUFDMUMsK0RBQStEO0FBRy9EOzs7Ozs7R0FNRztBQUNJLEtBQUssVUFBVSxVQUFVLENBQzlCLE9BQTBDLEVBQzFDLGVBQWdDLEVBQ2hDLFlBQTRDO0lBRTVDLGdHQUFnRztJQUNoRyxNQUFNLE9BQU8sR0FBRyxJQUFJLDBCQUFXLENBQzdCO1FBQ0Usa0JBQWtCLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQywwQkFBMEIsSUFBSSxTQUFTO1FBQy9FLFdBQVcsRUFBRSxlQUFlLENBQUMsV0FBVztRQUN4QyxjQUFjLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixDQUFDLE9BQU87S0FDcEQsRUFDRCxnQ0FBVSxDQUNYLENBQUM7SUFFRixNQUFNLFlBQVksR0FBNkM7UUFDN0QsTUFBTSxFQUFFLEVBQUU7UUFDVixRQUFRLEVBQUUsRUFBRTtLQUNiLENBQUM7SUFFRixvRkFBb0Y7SUFDcEYsTUFBTSxrQkFBa0IsR0FBRyxFQUFFLENBQUM7SUFDOUIsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDN0IsSUFBSTtRQUNGLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUU7WUFDdEQsK0RBQStEO1lBQy9ELE1BQU0saUJBQWlCLEdBQUcsTUFBTSxPQUFPLENBQUMsZUFBZSxDQUNyRCxNQUFNLEVBQ04sT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMs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T0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxLQUFLLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkUsU0FBUztTQUNWO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ3RCLFNBQVM7U0FDVjtRQUVELE1BQU0sS0FBSyxNQUFNLElBQUEsMkNBQXVCLEdBQUUsQ0FBQztRQUUzQyxJQUFBLCtCQUFnQixFQUNkLE1BQU0sRUFDTixJQUFJLEVBQ0osT0FBTyxDQUFDLGFBQWEsRUFDckIsTUFBTSxFQUNOO1lBQ0UsSUFBSSxDQUFDLE9BQU87Z0JBQ1YsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0IsQ0FBQztZQUNELEtBQUssQ0FBQyxPQUFPO2dCQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0IsQ0FBQztTQUNGLEVBQ0QsU0FBUyxFQUNULElBQUksQ0FBQyw0QkFBNEIsQ0FDbEMsQ0FBQztLQUNIO0FBQ0gsQ0FBQztBQWxDRCx3REFrQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsgQnVpbGRlckNvbnRleHQgfSBmcm9tICdAYW5ndWxhci1kZXZraXQvYXJjaGl0ZWN0JztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgSW5pdGlhbEZpbGVSZWNvcmQgfSBmcm9tICcuLi8uLi90b29scy9lc2J1aWxkL2J1bmRsZXItY29udGV4dCc7XG5pbXBvcnQgeyBFeGVjdXRpb25SZXN1bHQgfSBmcm9tICcuLi8uLi90b29scy9lc2J1aWxkL2J1bmRsZXItZXhlY3V0aW9uLXJlc3VsdCc7XG5pbXBvcnQgeyBJMThuSW5saW5lciB9IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvaTE4bi1pbmxpbmVyJztcbmltcG9ydCB7IG1heFdvcmtlcnMgfSBmcm9tICcuLi8uLi91dGlscy9lbnZpcm9ubWVudC1vcHRpb25zJztcbmltcG9ydCB7IGxvYWRUcmFuc2xhdGlvbnMgfSBmcm9tICcuLi8uLi91dGlscy9pMThuLW9wdGlvbnMnO1xuaW1wb3J0IHsgY3JlYXRlVHJhbnNsYXRpb25Mb2FkZXIgfSBmcm9tICcuLi8uLi91dGlscy9sb2FkLXRyYW5zbGF0aW9ucyc7XG5pbXBvcnQgeyB1cmxKb2luIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXJsJztcbmltcG9ydCB7IGV4ZWN1dGVQb3N0QnVuZGxlU3RlcHMgfSBmcm9tICcuL2V4ZWN1dGUtcG9zdC1idW5kbGUnO1xuaW1wb3J0IHsgTm9ybWFsaXplZEFwcGxpY2F0aW9uQnVpbGRPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcblxuLyoqXG4gKiBJbmxpbmVzIGFsbCBhY3RpdmUgbG9jYWxlcyBhcyBzcGVjaWZpZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGJ1aWxkIG9wdGlvbnMgaW50byBhbGxcbiAqIGFwcGxpY2F0aW9uIEphdmFTY3JpcHQgZmlsZXMgY3JlYXRlZCBkdXJpbmcgdGhlIGJ1aWxkLlxuICogQHBhcmFtIG9wdGlvbnMgVGhlIG5vcm1hbGl6ZWQgYXBwbGljYXRpb24gYnVpbGRlciBvcHRpb25zIHVzZWQgdG8gY3JlYXRlIHRoZSBidWlsZC5cbiAqIEBwYXJhbSBleGVjdXRpb25SZXN1bHQgVGhlIHJlc3VsdCBvZiBhbiBleGVjdXRlZCBidWlsZC5cbiAqIEBwYXJhbSBpbml0aWFsRmlsZXMgQSBtYXAgY29udGFpbmluZyBpbml0aWFsIGZpbGUgaW5mb3JtYXRpb24gZm9yIHRoZSBleGVjdXRlZCBidWlsZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGlubGluZUkxOG4oXG4gIG9wdGlvbnM6IE5vcm1hbGl6ZWRBcHBsaWNhdGlvbkJ1aWxkT3B0aW9ucyxcbiAgZXhlY3V0aW9uUmVzdWx0OiBFeGVjdXRpb25SZXN1bHQsXG4gIGluaXRpYWxGaWxlczogTWFwPHN0cmluZywgSW5pdGlhbEZpbGVSZWNvcmQ+LFxuKTogUHJvbWlzZTx7IGVycm9yczogc3RyaW5nW107IHdhcm5pbmdzOiBzdHJpbmdbXSB9PiB7XG4gIC8vIENyZWF0ZSB0aGUgbXVsdGktdGhyZWFkZWQgaW5saW5lciB3aXRoIGNvbW1vbiBvcHRpb25zIGFuZCB0aGUgZmlsZXMgZ2VuZXJhdGVkIGZyb20gdGhlIGJ1aWxkLlxuICBjb25zdCBpbmxpbmVyID0gbmV3IEkxOG5JbmxpbmVyKFxuICAgIHtcbiAgICAgIG1pc3NpbmdUcmFuc2xhdGlvbjogb3B0aW9ucy5pMThuT3B0aW9ucy5taXNzaW5nVHJhbnNsYXRpb25CZWhhdmlvciA/PyAnd2FybmluZycsXG4gICAgICBvdXRwdXRGaWxlczogZXhlY3V0aW9uUmVzdWx0Lm91dHB1dEZpbGVzLFxuICAgICAgc2hvdWxkT3B0aW1pemU6IG9wdGlvbnMub3B0aW1pemF0aW9uT3B0aW9ucy5zY3JpcHRzLFxuICAgIH0sXG4gICAgbWF4V29ya2VycyxcbiAgKTtcblxuICBjb25zdCBpbmxpbmVSZXN1bHQ6IHsgZXJyb3JzOiBzdHJpbmdbXTsgd2FybmluZ3M6IHN0cmluZ1tdIH0gPSB7XG4gICAgZXJyb3JzOiBbXSxcbiAgICB3YXJuaW5nczogW10sXG4gIH07XG5cbiAgLy8gRm9yIGVhY2ggYWN0aXZlIGxvY2FsZSwgdXNlIHRoZSBpbmxpbmVyIHRvIHByb2Nlc3MgdGhlIG91dHB1dCBmaWxlcyBvZiB0aGUgYnVpbGQuXG4gIGNvbnN0IHVwZGF0ZWRPdXRwdXRGaWxlcyA9IFtdO1xuICBjb25zdCB1cGRhdGVkQXNzZXRGaWxlcyA9IFtdO1xuICB0cnkge1xuICAgIGZvciAoY29uc3QgbG9jYWxlIG9mIG9wdGlvbnMuaTE4bk9wdGlvbnMuaW5saW5lTG9jYWxlcykge1xuICAgICAgLy8gQSBsb2NhbGUgc3BlY2lmaWMgc2V0IG9mIGZpbGVzIGlzIHJldHVybmVkIGZyb20gdGhlIGlubGluZXIuXG4gICAgICBjb25zdCBsb2NhbGVPdXRwdXRGaWxlcyA9IGF3YWl0IGlubGluZXIuaW5saW5lRm9yTG9jYWxlKFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIG9wdGlvbnMuaTE4bk9wdGlvbnMubG9jYWxlc1tsb2NhbGVdLnRyYW5zbGF0aW9uLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgYmFzZUhyZWYgPVxuICAgICAgICBnZXRMb2NhbGVCYXNlSHJlZihvcHRpb25zLmJhc2VIcmVmLCBvcHRpb25zLmkxOG5PcHRpb25zLCBsb2NhbGUpID8/IG9wdGlvbnMuYmFzZUhyZWY7XG5cbiAgICAgIGNvbnN0IHsgZXJyb3JzLCB3YXJuaW5ncywgYWRkaXRpb25hbEFzc2V0cywgYWRkaXRpb25hbE91dHB1dEZpbGVzIH0gPVxuICAgICAgICBhd2FpdCBleGVjdXRlUG9zdEJ1bmRsZVN0ZXBzKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICBiYXNlSHJlZixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxvY2FsZU91dHB1dEZpbGVzLFxuICAgICAgICAgIGV4ZWN1dGlvblJlc3VsdC5hc3NldEZpbGVzLFxuICAgICAgICAgIGluaXRpYWxGaWxlcyxcbiAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICk7XG5cbiAgICAgIGxvY2FsZU91dHB1dEZpbGVzLnB1c2goLi4uYWRkaXRpb25hbE91dHB1dEZpbGVzKTtcbiAgICAgIGlubGluZVJlc3VsdC5lcnJvcnMucHVzaCguLi5lcnJvcnMpO1xuICAgICAgaW5saW5lUmVzdWx0Lndhcm5pbmdzLnB1c2goLi4ud2FybmluZ3MpO1xuXG4gICAgICAvLyBVcGRhdGUgZGlyZWN0b3J5IHdpdGggbG9jYWxlIGJhc2VcbiAgICAgIGlmIChvcHRpb25zLmkxOG5PcHRpb25zLmZsYXRPdXRwdXQgIT09IHRydWUpIHtcbiAgICAgICAgbG9jYWxlT3V0cHV0RmlsZXMuZm9yRWFjaCgoZmlsZSkgPT4ge1xuICAgICAgICAgIGZpbGUucGF0aCA9IGpvaW4obG9jYWxlLCBmaWxlLnBhdGgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBmb3IgKGNvbnN0IGFzc2V0RmlsZSBvZiBbLi4uZXhlY3V0aW9uUmVzdWx0LmFzc2V0RmlsZXMsIC4uLmFkZGl0aW9uYWxBc3NldHNdKSB7XG4gICAgICAgICAgdXBkYXRlZEFzc2V0RmlsZXMucHVzaCh7XG4gICAgICAgICAgICBzb3VyY2U6IGFzc2V0RmlsZS5zb3VyY2UsXG4gICAgICAgICAgICBkZXN0aW5hdGlvbjogam9pbihsb2NhbGUsIGFzc2V0RmlsZS5kZXN0aW5hdGlvbiksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4ZWN1dGlvblJlc3VsdC5hc3NldEZpbGVzLnB1c2goLi4uYWRkaXRpb25hbEFzc2V0cyk7XG4gICAgICB9XG5cbiAgICAgIHVwZGF0ZWRPdXRwdXRGaWxlcy5wdXNoKC4uLmxvY2FsZU91dHB1dEZpbGVzKTtcbiAgICB9XG4gIH0gZmluYWxseSB7XG4gICAgYXdhaXQgaW5saW5lci5jbG9zZSgpO1xuICB9XG5cbiAgLy8gVXBkYXRlIHRoZSByZXN1bHQgd2l0aCBhbGwgbG9jYWxpemVkIGZpbGVzXG4gIGV4ZWN1dGlvblJlc3VsdC5vdXRwdXRGaWxlcyA9IHVwZGF0ZWRPdXRwdXRGaWxlcztcblxuICAvLyBBc3NldHMgYXJlIG9ubHkgY2hhbmdlZCBpZiBub3QgdXNpbmcgdGhlIGZsYXQgb3V0cHV0IG9wdGlvblxuICBpZiAob3B0aW9ucy5pMThuT3B0aW9ucy5mbGF0T3V0cHV0ICE9PSB0cnVlKSB7XG4gICAgZXhlY3V0aW9uUmVzdWx0LmFzc2V0RmlsZXMgPSB1cGRhdGVkQXNzZXRGaWxlcztcbiAgfVxuXG4gIHJldHVybiBpbmxpbmVSZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGdldExvY2FsZUJhc2VIcmVmKFxuICBiYXNlSHJlZjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBpMThuOiBOb3JtYWxpemVkQXBwbGljYXRpb25CdWlsZE9wdGlvbnNbJ2kxOG5PcHRpb25zJ10sXG4gIGxvY2FsZTogc3RyaW5nLFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKGkxOG4uZmxhdE91dHB1dCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBpZiAoaTE4bi5sb2NhbGVzW2xvY2FsZV0gJiYgaTE4bi5sb2NhbGVzW2xvY2FsZV0uYmFzZUhyZWYgIT09ICcnKSB7XG4gICAgcmV0dXJuIHVybEpvaW4oYmFzZUhyZWYgfHwgJycsIGkxOG4ubG9jYWxlc1tsb2NhbGVdLmJhc2VIcmVmID8/IGAvJHtsb2NhbGV9L2ApO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBMb2FkcyBhbGwgYWN0aXZlIHRyYW5zbGF0aW9ucyB1c2luZyB0aGUgdHJhbnNsYXRpb24gbG9hZGVycyBmcm9tIHRoZSBgQGFuZ3VsYXIvbG9jYWxpemVgIHBhY2thZ2UuXG4gKiBAcGFyYW0gY29udGV4dCBUaGUgYXJjaGl0ZWN0IGJ1aWxkZXIgY29udGV4dCBmb3IgdGhlIGN1cnJlbnQgYnVpbGQuXG4gKiBAcGFyYW0gaTE4biBUaGUgbm9ybWFsaXplZCBpMThuIG9wdGlvbnMgdG8gdXNlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZEFjdGl2ZVRyYW5zbGF0aW9ucyhcbiAgY29udGV4dDogQnVpbGRlckNvbnRleHQsXG4gIGkxOG46IE5vcm1hbGl6ZWRBcHBsaWNhdGlvbkJ1aWxkT3B0aW9uc1snaTE4bk9wdGlvbnMnXSxcbikge1xuICAvLyBMb2FkIGxvY2FsZSBkYXRhIGFuZCB0cmFuc2xhdGlvbnMgKGlmIHByZXNlbnQpXG4gIGxldCBsb2FkZXI7XG4gIGZvciAoY29uc3QgW2xvY2FsZSwgZGVzY10gb2YgT2JqZWN0LmVudHJpZXMoaTE4bi5sb2NhbGVzKSkge1xuICAgIGlmICghaTE4bi5pbmxpbmVMb2NhbGVzLmhhcyhsb2NhbGUpICYmIGxvY2FsZSAhPT0gaTE4bi5zb3VyY2VMb2NhbGUpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmICghZGVzYy5maWxlcy5sZW5ndGgpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGxvYWRlciA/Pz0gYXdhaXQgY3JlYXRlVHJhbnNsYXRpb25Mb2FkZXIoKTtcblxuICAgIGxvYWRUcmFuc2xhdGlvbnMoXG4gICAgICBsb2NhbGUsXG4gICAgICBkZXNjLFxuICAgICAgY29udGV4dC53b3Jrc3BhY2VSb290LFxuICAgICAgbG9hZGVyLFxuICAgICAge1xuICAgICAgICB3YXJuKG1lc3NhZ2UpIHtcbiAgICAgICAgICBjb250ZXh0LmxvZ2dlci53YXJuKG1lc3NhZ2UpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcihtZXNzYWdlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGkxOG4uZHVwbGljYXRlVHJhbnNsYXRpb25CZWhhdmlvcixcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -6,21 +6,37 @@
|
|
|
6
6
|
* found in the LICENSE file at https://angular.io/license
|
|
7
7
|
*/
|
|
8
8
|
import { BuilderContext, BuilderOutput } from '@angular-devkit/architect';
|
|
9
|
+
import type { Plugin } from 'esbuild';
|
|
9
10
|
import { BuildOutputFile } from '../../tools/esbuild/bundler-context';
|
|
10
11
|
import { ApplicationBuilderInternalOptions } from './options';
|
|
11
12
|
import { Schema as ApplicationBuilderOptions } from './schema';
|
|
13
|
+
export { ApplicationBuilderOptions };
|
|
12
14
|
export declare function buildApplicationInternal(options: ApplicationBuilderInternalOptions, context: BuilderContext & {
|
|
13
15
|
signal?: AbortSignal;
|
|
14
16
|
}, infrastructureSettings?: {
|
|
15
17
|
write?: boolean;
|
|
16
|
-
}): AsyncIterable<BuilderOutput & {
|
|
18
|
+
}, plugins?: Plugin[]): AsyncIterable<BuilderOutput & {
|
|
17
19
|
outputFiles?: BuildOutputFile[];
|
|
18
20
|
assetFiles?: {
|
|
19
21
|
source: string;
|
|
20
22
|
destination: string;
|
|
21
23
|
}[];
|
|
22
24
|
}>;
|
|
23
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Builds an application using the `application` builder with the provided
|
|
27
|
+
* options.
|
|
28
|
+
*
|
|
29
|
+
* Usage of the `plugins` parameter is NOT supported and may cause unexpected
|
|
30
|
+
* build output or build failures.
|
|
31
|
+
*
|
|
32
|
+
* @experimental Direct usage of this function is considered experimental.
|
|
33
|
+
*
|
|
34
|
+
* @param options The options defined by the builder's schema to use.
|
|
35
|
+
* @param context An Architect builder context instance.
|
|
36
|
+
* @param plugins An array of plugins to apply to the main code bundling.
|
|
37
|
+
* @returns The build output results of the build.
|
|
38
|
+
*/
|
|
39
|
+
export declare function buildApplication(options: ApplicationBuilderOptions, context: BuilderContext, plugins?: Plugin[]): AsyncIterable<BuilderOutput & {
|
|
24
40
|
outputFiles?: BuildOutputFile[];
|
|
25
41
|
assetFiles?: {
|
|
26
42
|
source: string;
|