@angular-devkit/build-angular 17.0.0-next.7 → 17.0.0-next.8
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 +6 -6
- package/src/builders/application/build-action.d.ts +2 -0
- package/src/builders/application/build-action.js +6 -3
- package/src/builders/application/execute-build.js +32 -17
- package/src/builders/application/i18n.js +5 -4
- package/src/builders/application/index.d.ts +3 -3
- package/src/builders/application/index.js +7 -6
- package/src/builders/application/options.d.ts +6 -0
- package/src/builders/application/options.js +4 -2
- package/src/builders/browser-esbuild/builder-status-warnings.js +1 -4
- package/src/builders/browser-esbuild/index.d.ts +2 -2
- package/src/builders/browser-esbuild/index.js +45 -3
- package/src/builders/dev-server/builder.js +2 -2
- package/src/builders/dev-server/load-proxy-config.js +3 -2
- package/src/builders/dev-server/options.d.ts +1 -1
- package/src/builders/dev-server/options.js +4 -3
- package/src/builders/dev-server/schema.d.ts +8 -1
- package/src/builders/dev-server/schema.js +1 -1
- package/src/builders/dev-server/schema.json +7 -1
- package/src/builders/dev-server/vite-server.d.ts +2 -1
- package/src/builders/dev-server/vite-server.js +21 -5
- package/src/builders/dev-server/webpack-server.js +2 -2
- package/src/builders/extract-i18n/application-extraction.js +3 -3
- package/src/builders/extract-i18n/builder.js +4 -3
- package/src/builders/extract-i18n/options.d.ts +1 -1
- package/src/builders/extract-i18n/options.js +4 -3
- package/src/builders/extract-i18n/schema.d.ts +8 -1
- package/src/builders/extract-i18n/schema.js +1 -1
- package/src/builders/extract-i18n/schema.json +7 -1
- package/src/builders/extract-i18n/webpack-extraction.js +2 -2
- package/src/builders/jest/index.js +2 -2
- package/src/builders/protractor/index.js +2 -2
- package/src/tools/esbuild/angular/compilation-state.d.ts +15 -0
- package/src/tools/esbuild/angular/compilation-state.js +43 -0
- package/src/tools/esbuild/angular/compiler-plugin.d.ts +2 -12
- package/src/tools/esbuild/angular/compiler-plugin.js +34 -52
- package/src/tools/esbuild/angular/component-stylesheets.d.ts +47 -0
- package/src/tools/esbuild/angular/component-stylesheets.js +147 -0
- package/src/tools/esbuild/angular/jit-plugin-callbacks.d.ts +2 -5
- package/src/tools/esbuild/angular/jit-plugin-callbacks.js +11 -6
- package/src/tools/esbuild/angular/source-file-cache.d.ts +19 -0
- package/src/tools/esbuild/angular/source-file-cache.js +67 -0
- package/src/tools/esbuild/angular/uri.d.ts +1 -1
- package/src/tools/esbuild/application-code-bundle.d.ts +1 -1
- package/src/tools/esbuild/application-code-bundle.js +61 -6
- package/src/tools/esbuild/budget-stats.d.ts +19 -0
- package/src/tools/esbuild/budget-stats.js +55 -0
- package/src/tools/esbuild/bundler-context.d.ts +12 -1
- package/src/tools/esbuild/bundler-context.js +29 -3
- package/src/tools/esbuild/bundler-execution-result.d.ts +9 -6
- package/src/tools/esbuild/bundler-execution-result.js +6 -3
- package/src/tools/esbuild/compiler-plugin-options.d.ts +2 -1
- package/src/tools/esbuild/compiler-plugin-options.js +2 -1
- package/src/tools/esbuild/global-styles.js +2 -1
- package/src/tools/esbuild/i18n-inliner.d.ts +3 -3
- package/src/tools/esbuild/i18n-inliner.js +12 -3
- package/src/tools/esbuild/index-html-generator.d.ts +2 -3
- package/src/tools/esbuild/index-html-generator.js +5 -2
- package/src/tools/esbuild/stylesheets/bundle-options.d.ts +2 -24
- package/src/tools/esbuild/stylesheets/bundle-options.js +3 -105
- package/src/tools/esbuild/utils.d.ts +12 -6
- package/src/tools/esbuild/utils.js +85 -32
- package/src/utils/build-options.d.ts +1 -1
- package/src/utils/build-options.js +1 -1
- package/src/utils/bundle-calculator.d.ts +16 -3
- package/src/utils/bundle-calculator.js +21 -10
- package/src/utils/server-rendering/{esm-in-memory-file-loader.d.ts → esm-in-memory-loader/loader-hooks.d.ts} +1 -0
- package/src/utils/server-rendering/esm-in-memory-loader/loader-hooks.js +82 -0
- package/src/utils/server-rendering/esm-in-memory-loader/node-18-utils.d.ts +10 -0
- package/src/utils/server-rendering/esm-in-memory-loader/node-18-utils.js +39 -0
- package/src/utils/server-rendering/esm-in-memory-loader/register-hooks.d.ts +8 -0
- package/src/utils/server-rendering/esm-in-memory-loader/register-hooks.js +16 -0
- package/src/utils/server-rendering/prerender.d.ts +2 -2
- package/src/utils/server-rendering/prerender.js +10 -18
- package/src/utils/server-rendering/render-worker.d.ts +1 -1
- package/src/utils/server-rendering/render-worker.js +1 -1
- package/src/utils/server-rendering/routes-extractor-worker.d.ts +1 -1
- package/src/utils/server-rendering/routes-extractor-worker.js +1 -1
- package/src/utils/service-worker.d.ts +2 -2
- package/src/utils/service-worker.js +5 -2
- package/src/utils/server-rendering/esm-in-memory-file-loader.js +0 -76
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@angular-devkit/build-angular",
|
|
3
|
-
"version": "17.0.0-next.
|
|
3
|
+
"version": "17.0.0-next.8",
|
|
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.
|
|
10
|
+
"@angular-devkit/architect": "0.1700.0-next.8",
|
|
11
|
+
"@angular-devkit/build-webpack": "0.1700.0-next.8",
|
|
12
|
+
"@angular-devkit/core": "17.0.0-next.8",
|
|
13
13
|
"@babel/core": "7.23.0",
|
|
14
14
|
"@babel/generator": "7.23.0",
|
|
15
15
|
"@babel/helper-annotate-as-pure": "7.22.5",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"@babel/preset-env": "7.22.20",
|
|
21
21
|
"@babel/runtime": "7.23.1",
|
|
22
22
|
"@discoveryjs/json-ext": "0.5.7",
|
|
23
|
-
"@ngtools/webpack": "17.0.0-next.
|
|
23
|
+
"@ngtools/webpack": "17.0.0-next.8",
|
|
24
24
|
"@vitejs/plugin-basic-ssl": "1.0.1",
|
|
25
25
|
"ansi-colors": "4.1.3",
|
|
26
26
|
"autoprefixer": "10.4.16",
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"text-table": "0.2.0",
|
|
65
65
|
"tree-kill": "1.2.2",
|
|
66
66
|
"tslib": "2.6.2",
|
|
67
|
-
"vite": "4.4.
|
|
67
|
+
"vite": "4.4.11",
|
|
68
68
|
"webpack": "5.88.2",
|
|
69
69
|
"webpack-dev-middleware": "6.1.1",
|
|
70
70
|
"webpack-dev-server": "4.15.1",
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { BuilderOutput } from '@angular-devkit/architect';
|
|
9
9
|
import type { logging } from '@angular-devkit/core';
|
|
10
|
+
import { BuildOutputFile } from '../../tools/esbuild/bundler-context';
|
|
10
11
|
import { ExecutionResult, RebuildState } from '../../tools/esbuild/bundler-execution-result';
|
|
11
12
|
import { NormalizedCachedOptions } from '../../utils/normalize-cache';
|
|
12
13
|
export declare function runEsBuildBuildAction(action: (rebuildState?: RebuildState) => ExecutionResult | Promise<ExecutionResult>, options: {
|
|
@@ -16,6 +17,7 @@ export declare function runEsBuildBuildAction(action: (rebuildState?: RebuildSta
|
|
|
16
17
|
logger: logging.LoggerApi;
|
|
17
18
|
cacheOptions: NormalizedCachedOptions;
|
|
18
19
|
writeToFileSystem?: boolean;
|
|
20
|
+
writeToFileSystemFilter?: (file: BuildOutputFile) => boolean;
|
|
19
21
|
watch?: boolean;
|
|
20
22
|
verbose?: boolean;
|
|
21
23
|
progress?: boolean;
|
|
@@ -40,7 +40,7 @@ const sass_language_1 = require("../../tools/esbuild/stylesheets/sass-language")
|
|
|
40
40
|
const utils_1 = require("../../tools/esbuild/utils");
|
|
41
41
|
const error_1 = require("../../utils/error");
|
|
42
42
|
async function* runEsBuildBuildAction(action, options) {
|
|
43
|
-
const { writeToFileSystem = true, watch, poll, logger, deleteOutputPath, cacheOptions, outputPath, verbose, projectRoot, workspaceRoot, progress, } = options;
|
|
43
|
+
const { writeToFileSystemFilter, writeToFileSystem = true, watch, poll, logger, deleteOutputPath, cacheOptions, outputPath, verbose, projectRoot, workspaceRoot, progress, } = options;
|
|
44
44
|
if (writeToFileSystem) {
|
|
45
45
|
// Clean output path if enabled
|
|
46
46
|
if (deleteOutputPath) {
|
|
@@ -151,7 +151,10 @@ async function* runEsBuildBuildAction(action, options) {
|
|
|
151
151
|
previousWatchFiles = newWatchFiles;
|
|
152
152
|
if (writeToFileSystem) {
|
|
153
153
|
// Write output files
|
|
154
|
-
|
|
154
|
+
const filesToWrite = writeToFileSystemFilter
|
|
155
|
+
? result.outputFiles.filter(writeToFileSystemFilter)
|
|
156
|
+
: result.outputFiles;
|
|
157
|
+
await (0, utils_1.writeResultFiles)(filesToWrite, result.assetFiles, outputPath);
|
|
155
158
|
yield result.output;
|
|
156
159
|
}
|
|
157
160
|
else {
|
|
@@ -168,4 +171,4 @@ async function* runEsBuildBuildAction(action, options) {
|
|
|
168
171
|
}
|
|
169
172
|
}
|
|
170
173
|
exports.runEsBuildBuildAction = runEsBuildBuildAction;
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvYnVpbGRlcnMvYXBwbGljYXRpb24vYnVpbGQtYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSUgsZ0VBQWtDO0FBQ2xDLDBEQUE2QjtBQUU3QixpRkFBdUY7QUFDdkYscURBQTBGO0FBQzFGLDZDQUFrRDtBQUczQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLHFCQUFxQixDQUMxQyxNQUFtRixFQUNuRixPQWFDO0lBRUQsTUFBTSxFQUNKLGlCQUFpQixHQUFHLElBQUksRUFDeEIsS0FBSyxFQUNMLElBQUksRUFDSixNQUFNLEVBQ04sZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixVQUFVLEVBQ1YsT0FBTyxFQUNQLFdBQVcsRUFDWCxhQUFhLEVBQ2IsUUFBUSxHQUNULEdBQUcsT0FBTyxDQUFDO0lBRVosSUFBSSxpQkFBaUIsRUFBRTtRQUNyQiwrQkFBK0I7UUFDL0IsSUFBSSxnQkFBZ0IsRUFBRTtZQUNwQixJQUFJLFVBQVUsS0FBSyxhQUFhLEVBQUU7Z0JBQ2hDLE1BQU0sQ0FBQyxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztnQkFFbEUsT0FBTzthQUNSO1lBRUQsTUFBTSxrQkFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDMUU7UUFFRCxvQ0FBb0M7UUFDcEMsSUFBSTtZQUNGLE1BQU0sa0JBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDakQ7UUFBQyxP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Q1IseURBQXlEO1FBQ3pELE1BQU0sT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTlELElBQUEsc0NBQXNCLEdBQUUsQ0FBQztLQUMxQjtBQUNILENBQUM7QUFoTEQsc0RBZ0xDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7IEJ1aWxkZXJPdXRwdXQgfSBmcm9tICdAYW5ndWxhci1kZXZraXQvYXJjaGl0ZWN0JztcbmltcG9ydCB0eXBlIHsgbG9nZ2luZyB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlJztcbmltcG9ydCBmcyBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcbmltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBFeGVjdXRpb25SZXN1bHQsIFJlYnVpbGRTdGF0ZSB9IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvYnVuZGxlci1leGVjdXRpb24tcmVzdWx0JztcbmltcG9ydCB7IHNodXRkb3duU2Fzc1dvcmtlclBvb2wgfSBmcm9tICcuLi8uLi90b29scy9lc2J1aWxkL3N0eWxlc2hlZXRzL3Nhc3MtbGFuZ3VhZ2UnO1xuaW1wb3J0IHsgd2l0aE5vUHJvZ3Jlc3MsIHdpdGhTcGlubmVyLCB3cml0ZVJlc3VsdEZpbGVzIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC91dGlscyc7XG5pbXBvcnQgeyBhc3NlcnRJc0Vycm9yIH0gZnJvbSAnLi4vLi4vdXRpbHMvZXJyb3InO1xuaW1wb3J0IHsgTm9ybWFsaXplZENhY2hlZE9wdGlvbnMgfSBmcm9tICcuLi8uLi91dGlscy9ub3JtYWxpemUtY2FjaGUnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24qIHJ1bkVzQnVpbGRCdWlsZEFjdGlvbihcbiAgYWN0aW9uOiAocmVidWlsZFN0YXRlPzogUmVidWlsZFN0YXRlKSA9PiBFeGVjdXRpb25SZXN1bHQgfCBQcm9taXNlPEV4ZWN1dGlvblJlc3VsdD4sXG4gIG9wdGlvbnM6IHtcbiAgICB3b3Jrc3BhY2VSb290OiBzdHJpbmc7XG4gICAgcHJvamVjdFJvb3Q6IHN0cmluZztcbiAgICBvdXRwdXRQYXRoOiBzdHJpbmc7XG4gICAgbG9nZ2VyOiBsb2dnaW5nLkxvZ2dlckFwaTtcbiAgICBjYWNoZU9wdGlvbnM6IE5vcm1hbGl6ZWRDYWNoZWRPcHRpb25zO1xuICAgIHdyaXRlVG9GaWxlU3lzdGVtPzogYm9vbGVhbjtcbiAgICB3YXRjaD86IGJvb2xlYW47XG4gICAgdmVyYm9zZT86IGJvb2xlYW47XG4gICAgcHJvZ3Jlc3M/OiBib29sZWFuO1xuICAgIGRlbGV0ZU91dHB1dFBhdGg/OiBib29sZWFuO1xuICAgIHBvbGw/OiBudW1iZXI7XG4gICAgc2lnbmFsPzogQWJvcnRTaWduYWw7XG4gIH0sXG4pOiBBc3luY0l0ZXJhYmxlPChFeGVjdXRpb25SZXN1bHRbJ291dHB1dFdpdGhGaWxlcyddIHwgRXhlY3V0aW9uUmVzdWx0WydvdXRwdXQnXSkgJiBCdWlsZGVyT3V0cHV0PiB7XG4gIGNvbnN0IHtcbiAgICB3cml0ZVRvRmlsZVN5c3RlbSA9IHRydWUsXG4gICAgd2F0Y2gsXG4gICAgcG9sbCxcbiAgICBsb2dnZXIsXG4gICAgZGVsZXRlT3V0cHV0UGF0aCxcbiAgICBjYWNoZU9wdGlvbnMsXG4gICAgb3V0cHV0UGF0aCxcbiAgICB2ZXJib3NlLFxuICAgIHByb2plY3RSb290LFxuICAgIHdvcmtzcGFjZVJvb3QsXG4gICAgcHJvZ3Jlc3MsXG4gIH0gPSBvcHRpb25zO1xuXG4gIGlmICh3cml0ZVRvRmlsZVN5c3RlbSkge1xuICAgIC8vIENsZWFuIG91dHB1dCBwYXRoIGlmIGVuYWJsZWRcbiAgICBpZiAoZGVsZXRlT3V0cHV0UGF0aCkge1xuICAgICAgaWYgKG91dHB1dFBhdGggPT09IHdvcmtzcGFjZVJvb3QpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKCdPdXRwdXQgcGF0aCBNVVNUIG5vdCBiZSB3b3Jrc3BhY2Ugcm9vdCBkaXJlY3RvcnkhJyk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCBmcy5ybShvdXRwdXRQYXRoLCB7IGZvcmNlOiB0cnVlLCByZWN1cnNpdmU6IHRydWUsIG1heFJldHJpZXM6IDMgfSk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIG91dHB1dCBkaXJlY3RvcnkgaWYgbmVlZGVkXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGZzLm1rZGlyKG91dHB1dFBhdGgsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGFzc2VydElzRXJyb3IoZSk7XG4gICAgICBsb2dnZXIuZXJyb3IoJ1VuYWJsZSB0byBjcmVhdGUgb3V0cHV0IGRpcmVjdG9yeTogJyArIGUubWVzc2FnZSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBjb25zdCB3aXRoUHJvZ3Jlc3M6IHR5cGVvZiB3aXRoU3Bpbm5lciA9IHByb2dyZXNzID8gd2l0aFNwaW5uZXIgOiB3aXRoTm9Qcm9ncmVzcztcblxuICAvLyBJbml0aWFsIGJ1aWxkXG4gIGxldCByZXN1bHQ6IEV4ZWN1dGlvblJlc3VsdDtcbiAgdHJ5IHtcbiAgICByZXN1bHQgPSBhd2FpdCB3aXRoUHJvZ3Jlc3MoJ0J1aWxkaW5nLi4uJywgKCkgPT4gYWN0aW9uKCkpO1xuICB9IGZpbmFsbHkge1xuICAgIC8vIEVuc3VyZSBTYXNzIHdvcmtlcnMgYXJlIHNodXRkb3duIGlmIG5vdCB3YXRjaGluZ1xuICAgIGlmICghd2F0Y2gpIHtcbiAgICAgIHNodXRkb3duU2Fzc1dvcmtlclBvb2woKTtcbiAgICB9XG4gIH1cblxuICAvLyBTZXR1cCB3YXRjaGVyIGlmIHdhdGNoIG1vZGUgZW5hYmxlZFxuICBsZXQgd2F0Y2hlcjogaW1wb3J0KCcuLi8uLi90b29scy9lc2J1aWxkL3dhdGNoZXInKS5CdWlsZFdhdGNoZXIgfCB1bmRlZmluZWQ7XG4gIGlmICh3YXRjaCkge1xuICAgIGlmIChwcm9ncmVzcykge1xuICAgICAgbG9nZ2VyLmluZm8oJ1dhdGNoIG1vZGUgZW5hYmxlZC4gV2F0Y2hpbmcgZm9yIGZpbGUgY2hhbmdlcy4uLicpO1xuICAgIH1cblxuICAgIC8vIFNldHVwIGEgd2F0Y2hlclxuICAgIGNvbnN0IHsgY3JlYXRlV2F0Y2hlciB9ID0gYXdhaXQgaW1wb3J0KCcuLi8uLi90b29scy9lc2J1aWxkL3dhdGNoZXInKTtcbiAgICB3YXRjaGVyID0gY3JlYXRlV2F0Y2hlcih7XG4gICAgICBwb2xsaW5nOiB0eXBlb2YgcG9sbCA9PT0gJ251bWJlcicsXG4gICAgICBpbnRlcnZhbDogcG9sbCxcbiAgICAgIGlnbm9yZWQ6IFtcbiAgICAgICAgLy8gSWdub3JlIHRoZSBvdXRwdXQgYW5kIGNhY2hlIHBhdGhzIHRvIGF2b2lkIGluZmluaXRlIHJlYnVpbGQgY3ljbGVzXG4gICAgICAgIG91dHB1dFBhdGgsXG4gICAgICAgIGNhY2hlT3B0aW9ucy5iYXNlUGF0aCxcbiAgICAgICAgLy8gSWdub3JlIGFsbCBub2RlIG1vZHVsZXMgZGlyZWN0b3JpZXMgdG8gYXZvaWQgZXhjZXNzaXZlIGZpbGUgd2F0Y2hlcnMuXG4gICAgICAgIC8vIFBhY2thZ2UgY2hhbmdlcyBhcmUgaGFuZGxlZCBiZWxvdyBieSB3YXRjaGluZyBtYW5pZmVzdCBhbmQgbG9jayBmaWxlcy5cbiAgICAgICAgJyoqL25vZGVfbW9kdWxlcy8qKicsXG4gICAgICAgICcqKi8uKi8qKicsXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgLy8gU2V0dXAgYWJvcnQgc3VwcG9ydFxuICAgIG9wdGlvbnMuc2lnbmFsPy5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsICgpID0+IHZvaWQgd2F0Y2hlcj8uY2xvc2UoKSk7XG5cbiAgICAvLyBUZW1wb3JhcmlseSB3YXRjaCB0aGUgZW50aXJlIHByb2plY3RcbiAgICB3YXRjaGVyLmFkZChwcm9qZWN0Um9vdCk7XG5cbiAgICAvLyBXYXRjaCB3b3Jrc3BhY2UgZm9yIHBhY2thZ2UgbWFuYWdlciBjaGFuZ2VzXG4gICAgY29uc3QgcGFja2FnZVdhdGNoRmlsZXMgPSBbXG4gICAgICAvLyBtYW5pZmVzdCBjYW4gYWZmZWN0IG1vZHVsZSByZXNvbHV0aW9uXG4gICAgICAncGFja2FnZS5qc29uJyxcbiAgICAgIC8vIG5wbSBsb2NrIGZpbGVcbiAgICAgICdwYWNrYWdlLWxvY2suanNvbicsXG4gICAgICAvLyBwbnBtIGxvY2sgZmlsZVxuICAgICAgJ3BucG0tbG9jay55YW1sJyxcbiAgICAgIC8vIHlhcm4gbG9jayBmaWxlIGluY2x1ZGluZyBZYXJuIFBuUCBtYW5pZmVzdCBmaWxlcyAoaHR0cHM6Ly95YXJucGtnLmNvbS9hZHZhbmNlZC9wbnAtc3BlYy8pXG4gICAgICAneWFybi5sb2NrJyxcbiAgICAgICcucG5wLmNqcycsXG4gICAgICAnLnBucC5kYXRhLmpzb24nLFxuICAgIF07XG5cbiAgICB3YXRjaGVyLmFkZChwYWNrYWdlV2F0Y2hGaWxlcy5tYXAoKGZpbGUpID0+IHBhdGguam9pbih3b3Jrc3BhY2VSb290LCBmaWxlKSkpO1xuXG4gICAgLy8gV2F0Y2ggbG9jYXRpb25zIHByb3ZpZGVkIGJ5IHRoZSBpbml0aWFsIGJ1aWxkIHJlc3VsdFxuICAgIHdhdGNoZXIuYWRkKHJlc3VsdC53YXRjaEZpbGVzKTtcbiAgfVxuXG4gIC8vIE91dHB1dCB0aGUgZmlyc3QgYnVpbGQgcmVzdWx0cyBhZnRlciBzZXR0aW5nIHVwIHRoZSB3YXRjaGVyIHRvIGVuc3VyZSB0aGF0IGFueSBjb2RlIGV4ZWN1dGVkXG4gIC8vIGhpZ2hlciBpbiB0aGUgaXRlcmF0b3IgY2FsbCBzdGFjayB3aWxsIHRyaWdnZXIgdGhlIHdhdGNoZXIuIFRoaXMgaXMgcGFydGljdWxhcmx5IHJlbGV2YW50IGZvclxuICAvLyB1bml0IHRlc3RzIHdoaWNoIGV4ZWN1dGUgdGhlIGJ1aWxkZXIgYW5kIG1vZGlmeSB0aGUgZmlsZSBzeXN0ZW0gcHJvZ3JhbW1hdGljYWxseS5cbiAgaWYgKHdyaXRlVG9GaWxlU3lzdGVtKSB7XG4gICAgLy8gV3JpdGUgb3V0cHV0IGZpbGVzXG4gICAgYXdhaXQgd3JpdGVSZXN1bHRGaWxlcyhyZXN1bHQub3V0cHV0RmlsZXMsIHJlc3VsdC5hc3NldEZpbGVzLCBvdXRwdXRQYXRoKTtcblxuICAgIHlpZWxkIHJlc3VsdC5vdXRwdXQ7XG4gIH0gZWxzZSB7XG4gICAgLy8gUmVxdWlyZXMgY2FzdGluZyBkdWUgdG8gdW5uZWVkZWQgYEpzb25PYmplY3RgIHJlcXVpcmVtZW50LiBSZW1vdmUgb25jZSBmaXhlZC5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHlpZWxkIHJlc3VsdC5vdXRwdXRXaXRoRmlsZXMgYXMgYW55O1xuICB9XG5cbiAgLy8gRmluaXNoIGlmIHdhdGNoIG1vZGUgaXMgbm90IGVuYWJsZWRcbiAgaWYgKCF3YXRjaGVyKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gV2FpdCBmb3IgY2hhbmdlcyBhbmQgcmVidWlsZCBhcyBuZWVkZWRcbiAgbGV0IHByZXZpb3VzV2F0Y2hGaWxlcyA9IG5ldyBTZXQocmVzdWx0LndhdGNoRmlsZXMpO1xuICB0cnkge1xuICAgIGZvciBhd2FpdCAoY29uc3QgY2hhbmdlcyBvZiB3YXRjaGVyKSB7XG4gICAgICBpZiAob3B0aW9ucy5zaWduYWw/LmFib3J0ZWQpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgIGxvZ2dlci5pbmZvKGNoYW5nZXMudG9EZWJ1Z1N0cmluZygpKTtcbiAgICAgIH1cblxuICAgICAgcmVzdWx0ID0gYXdhaXQgd2l0aFByb2dyZXNzKCdDaGFuZ2VzIGRldGVjdGVkLiBSZWJ1aWxkaW5nLi4uJywgKCkgPT5cbiAgICAgICAgYWN0aW9uKHJlc3VsdC5jcmVhdGVSZWJ1aWxkU3RhdGUoY2hhbmdlcykpLFxuICAgICAgKTtcblxuICAgICAgLy8gVXBkYXRlIHdhdGNoZWQgbG9jYXRpb25zIHByb3ZpZGVkIGJ5IHRoZSBuZXcgYnVpbGQgcmVzdWx0LlxuICAgICAgLy8gQWRkIGFueSBuZXcgbG9jYXRpb25zXG4gICAgICB3YXRjaGVyLmFkZChyZXN1bHQud2F0Y2hGaWxlcy5maWx0ZXIoKHdhdGNoRmlsZSkgPT4gIXByZXZpb3VzV2F0Y2hGaWxlcy5oYXMod2F0Y2hGaWxlKSkpO1xuICAgICAgY29uc3QgbmV3V2F0Y2hGaWxlcyA9IG5ldyBTZXQocmVzdWx0LndhdGNoRmlsZXMpO1xuICAgICAgLy8gUmVtb3ZlIGFueSBvbGQgbG9jYXRpb25zXG4gICAgICB3YXRjaGVyLnJlbW92ZShbLi4ucHJldmlvdXNXYXRjaEZpbGVzXS5maWx0ZXIoKHdhdGNoRmlsZSkgPT4gIW5ld1dhdGNoRmlsZXMuaGFzKHdhdGNoRmlsZSkpKTtcbiAgICAgIHByZXZpb3VzV2F0Y2hGaWxlcyA9IG5ld1dhdGNoRmlsZXM7XG5cbiAgICAgIGlmICh3cml0ZVRvRmlsZVN5c3RlbSkge1xuICAgICAgICAvLyBXcml0ZSBvdXRwdXQgZmlsZXNcbiAgICAgICAgYXdhaXQgd3JpdGVSZXN1bHRGaWxlcyhyZXN1bHQub3V0cHV0RmlsZXMsIHJlc3VsdC5hc3NldEZpbGVzLCBvdXRwdXRQYXRoKTtcblxuICAgICAgICB5aWVsZCByZXN1bHQub3V0cHV0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gUmVxdWlyZXMgY2FzdGluZyBkdWUgdG8gdW5uZWVkZWQgYEpzb25PYmplY3RgIHJlcXVpcmVtZW50LiBSZW1vdmUgb25jZSBmaXhlZC5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgeWllbGQgcmVzdWx0Lm91dHB1dFdpdGhGaWxlcyBhcyBhbnk7XG4gICAgICB9XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIC8vIFN0b3AgdGhlIHdhdGNoZXIgYW5kIGNsZWFudXAgaW5jcmVtZW50YWwgcmVidWlsZCBzdGF0ZVxuICAgIGF3YWl0IFByb21pc2UuYWxsU2V0dGxlZChbd2F0Y2hlci5jbG9zZSgpLCByZXN1bHQuZGlzcG9zZSgpXSk7XG5cbiAgICBzaHV0ZG93blNhc3NXb3JrZXJQb29sKCk7XG4gIH1cbn1cbiJdfQ==
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvYnVpbGRlcnMvYXBwbGljYXRpb24vYnVpbGQtYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSUgsZ0VBQWtDO0FBQ2xDLDBEQUE2QjtBQUc3QixpRkFBdUY7QUFDdkYscURBQTBGO0FBQzFGLDZDQUFrRDtBQUczQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLHFCQUFxQixDQUMxQyxNQUFtRixFQUNuRixPQWNDO0lBRUQsTUFBTSxFQUNKLHVCQUF1QixFQUN2QixpQkFBaUIsR0FBRyxJQUFJLEVBQ3hCLEtBQUssRUFDTCxJQUFJLEVBQ0osTUFBTSxFQUNOLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osVUFBVSxFQUNWLE9BQU8sRUFDUCxXQUFXLEVBQ1gsYUFBYSxFQUNiLFFBQVEsR0FDVCxHQUFHLE9BQU8sQ0FBQztJQUVaLElBQUksaUJBQWlCLEVBQUU7UUFDckIsK0JBQStCO1FBQy9CLElBQUksZ0JBQWdCLEVBQUU7WUFDcEIsSUFBSSxVQUFVLEtBQUssYUFBYSxFQUFFO2dCQUNoQyxNQUFNLENBQUMsS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7Z0JBRWxFLE9BQU87YUFDUjtZQUVELE1BQU0sa0JBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzFFO1FBRUQsb0NBQW9DO1FBQ3BDLElBQUk7WUFDRixNQUFNLGtCQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFD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O2dCQUVwRSxNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUM7YUFDckI7aUJBQU07Z0JBQ0wsZ0ZBQWdGO2dCQUNoRiw4REFBOEQ7Z0JBQzlELE1BQU0sTUFBTSxDQUFDLGVBQXNCLENBQUM7YUFDckM7U0FDRjtLQUNGO1lBQVM7UUFDUix5REFBeUQ7UUFDekQsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFOUQsSUFBQSxzQ0FBc0IsR0FBRSxDQUFDO0tBQzFCO0FBQ0gsQ0FBQztBQXJMRCxzREFxTEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsgQnVpbGRlck91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9hcmNoaXRlY3QnO1xuaW1wb3J0IHR5cGUgeyBsb2dnaW5nIH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUnO1xuaW1wb3J0IGZzIGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IEJ1aWxkT3V0cHV0RmlsZSB9IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvYnVuZGxlci1jb250ZXh0JztcbmltcG9ydCB7IEV4ZWN1dGlvblJlc3VsdCwgUmVidWlsZFN0YXRlIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC9idW5kbGVyLWV4ZWN1dGlvbi1yZXN1bHQnO1xuaW1wb3J0IHsgc2h1dGRvd25TYXNzV29ya2VyUG9vbCB9IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvc3R5bGVzaGVldHMvc2Fzcy1sYW5ndWFnZSc7XG5pbXBvcnQgeyB3aXRoTm9Qcm9ncmVzcywgd2l0aFNwaW5uZXIsIHdyaXRlUmVzdWx0RmlsZXMgfSBmcm9tICcuLi8uLi90b29scy9lc2J1aWxkL3V0aWxzJztcbmltcG9ydCB7IGFzc2VydElzRXJyb3IgfSBmcm9tICcuLi8uLi91dGlscy9lcnJvcic7XG5pbXBvcnQgeyBOb3JtYWxpemVkQ2FjaGVkT3B0aW9ucyB9IGZyb20gJy4uLy4uL3V0aWxzL25vcm1hbGl6ZS1jYWNoZSc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiogcnVuRXNCdWlsZEJ1aWxkQWN0aW9uKFxuICBhY3Rpb246IChyZWJ1aWxkU3RhdGU/OiBSZWJ1aWxkU3RhdGUpID0+IEV4ZWN1dGlvblJlc3VsdCB8IFByb21pc2U8RXhlY3V0aW9uUmVzdWx0PixcbiAgb3B0aW9uczoge1xuICAgIHdvcmtzcGFjZVJvb3Q6IHN0cmluZztcbiAgICBwcm9qZWN0Um9vdDogc3RyaW5nO1xuICAgIG91dHB1dFBhdGg6IHN0cmluZztcbiAgICBsb2dnZXI6IGxvZ2dpbmcuTG9nZ2VyQXBpO1xuICAgIGNhY2hlT3B0aW9uczogTm9ybWFsaXplZENhY2hlZE9wdGlvbnM7XG4gICAgd3JpdGVUb0ZpbGVTeXN0ZW0/OiBib29sZWFuO1xuICAgIHdyaXRlVG9GaWxlU3lzdGVtRmlsdGVyPzogKGZpbGU6IEJ1aWxkT3V0cHV0RmlsZSkgPT4gYm9vbGVhbjtcbiAgICB3YXRjaD86IGJvb2xlYW47XG4gICAgdmVyYm9zZT86IGJvb2xlYW47XG4gICAgcHJvZ3Jlc3M/OiBib29sZWFuO1xuICAgIGRlbGV0ZU91dHB1dFBhdGg/OiBib29sZWFuO1xuICAgIHBvbGw/OiBudW1iZXI7XG4gICAgc2lnbmFsPzogQWJvcnRTaWduYWw7XG4gIH0sXG4pOiBBc3luY0l0ZXJhYmxlPChFeGVjdXRpb25SZXN1bHRbJ291dHB1dFdpdGhGaWxlcyddIHwgRXhlY3V0aW9uUmVzdWx0WydvdXRwdXQnXSkgJiBCdWlsZGVyT3V0cHV0PiB7XG4gIGNvbnN0IHtcbiAgICB3cml0ZVRvRmlsZVN5c3RlbUZpbHRlcixcbiAgICB3cml0ZVRvRmlsZVN5c3RlbSA9IHRydWUsXG4gICAgd2F0Y2gsXG4gICAgcG9sbCxcbiAgICBsb2dnZXIsXG4gICAgZGVsZXRlT3V0cHV0UGF0aCxcbiAgICBjYWNoZU9wdGlvbnMsXG4gICAgb3V0cHV0UGF0aCxcbiAgICB2ZXJib3NlLFxuICAgIHByb2plY3RSb290LFxuICAgIHdvcmtzcGFjZVJvb3QsXG4gICAgcHJvZ3Jlc3MsXG4gIH0gPSBvcHRpb25zO1xuXG4gIGlmICh3cml0ZVRvRmlsZVN5c3RlbSkge1xuICAgIC8vIENsZWFuIG91dHB1dCBwYXRoIGlmIGVuYWJsZWRcbiAgICBpZiAoZGVsZXRlT3V0cHV0UGF0aCkge1xuICAgICAgaWYgKG91dHB1dFBhdGggPT09IHdvcmtzcGFjZVJvb3QpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKCdPdXRwdXQgcGF0aCBNVVNUIG5vdCBiZSB3b3Jrc3BhY2Ugcm9vdCBkaXJlY3RvcnkhJyk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCBmcy5ybShvdXRwdXRQYXRoLCB7IGZvcmNlOiB0cnVlLCByZWN1cnNpdmU6IHRydWUsIG1heFJldHJpZXM6IDMgfSk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIG91dHB1dCBkaXJlY3RvcnkgaWYgbmVlZGVkXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGZzLm1rZGlyKG91dHB1dFBhdGgsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGFzc2VydElzRXJyb3IoZSk7XG4gICAgICBsb2dnZXIuZXJyb3IoJ1VuYWJsZSB0byBjcmVhdGUgb3V0cHV0IGRpcmVjdG9yeTogJyArIGUubWVzc2FnZSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBjb25zdCB3aXRoUHJvZ3Jlc3M6IHR5cGVvZiB3aXRoU3Bpbm5lciA9IHByb2dyZXNzID8gd2l0aFNwaW5uZXIgOiB3aXRoTm9Qcm9ncmVzcztcblxuICAvLyBJbml0aWFsIGJ1aWxkXG4gIGxldCByZXN1bHQ6IEV4ZWN1dGlvblJlc3VsdDtcbiAgdHJ5IHtcbiAgICByZXN1bHQgPSBhd2FpdCB3aXRoUHJvZ3Jlc3MoJ0J1aWxkaW5nLi4uJywgKCkgPT4gYWN0aW9uKCkpO1xuICB9IGZpbmFsbHkge1xuICAgIC8vIEVuc3VyZSBTYXNzIHdvcmtlcnMgYXJlIHNodXRkb3duIGlmIG5vdCB3YXRjaGluZ1xuICAgIGlmICghd2F0Y2gpIHtcbiAgICAgIHNodXRkb3duU2Fzc1dvcmtlclBvb2woKTtcbiAgICB9XG4gIH1cblxuICAvLyBTZXR1cCB3YXRjaGVyIGlmIHdhdGNoIG1vZGUgZW5hYmxlZFxuICBsZXQgd2F0Y2hlcjogaW1wb3J0KCcuLi8uLi90b29scy9lc2J1aWxkL3dhdGNoZXInKS5CdWlsZFdhdGNoZXIgfCB1bmRlZmluZWQ7XG4gIGlmICh3YXRjaCkge1xuICAgIGlmIChwcm9ncmVzcykge1xuICAgICAgbG9nZ2VyLmluZm8oJ1dhdGNoIG1vZGUgZW5hYmxlZC4gV2F0Y2hpbmcgZm9yIGZpbGUgY2hhbmdlcy4uLicpO1xuICAgIH1cblxuICAgIC8vIFNldHVwIGEgd2F0Y2hlclxuICAgIGNvbnN0IHsgY3JlYXRlV2F0Y2hlciB9ID0gYXdhaXQgaW1wb3J0KCcuLi8uLi90b29scy9lc2J1aWxkL3dhdGNoZXInKTtcbiAgICB3YXRjaGVyID0gY3JlYXRlV2F0Y2hlcih7XG4gICAgICBwb2xsaW5nOiB0eXBlb2YgcG9sbCA9PT0gJ251bWJlcicsXG4gICAgICBpbnRlcnZhbDogcG9sbCxcbiAgICAgIGlnbm9yZWQ6IFtcbiAgICAgICAgLy8gSWdub3JlIHRoZSBvdXRwdXQgYW5kIGNhY2hlIHBhdGhzIHRvIGF2b2lkIGluZmluaXRlIHJlYnVpbGQgY3ljbGVzXG4gICAgICAgIG91dHB1dFBhdGgsXG4gICAgICAgIGNhY2hlT3B0aW9ucy5iYXNlUGF0aCxcbiAgICAgICAgLy8gSWdub3JlIGFsbCBub2RlIG1vZHVsZXMgZGlyZWN0b3JpZXMgdG8gYXZvaWQgZXhjZXNzaXZlIGZpbGUgd2F0Y2hlcnMuXG4gICAgICAgIC8vIFBhY2thZ2UgY2hhbmdlcyBhcmUgaGFuZGxlZCBiZWxvdyBieSB3YXRjaGluZyBtYW5pZmVzdCBhbmQgbG9jayBmaWxlcy5cbiAgICAgICAgJyoqL25vZGVfbW9kdWxlcy8qKicsXG4gICAgICAgICcqKi8uKi8qKicsXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgLy8gU2V0dXAgYWJvcnQgc3VwcG9ydFxuICAgIG9wdGlvbnMuc2lnbmFsPy5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsICgpID0+IHZvaWQgd2F0Y2hlcj8uY2xvc2UoKSk7XG5cbiAgICAvLyBUZW1wb3JhcmlseSB3YXRjaCB0aGUgZW50aXJlIHByb2plY3RcbiAgICB3YXRjaGVyLmFkZChwcm9qZWN0Um9vdCk7XG5cbiAgICAvLyBXYXRjaCB3b3Jrc3BhY2UgZm9yIHBhY2thZ2UgbWFuYWdlciBjaGFuZ2VzXG4gICAgY29uc3QgcGFja2FnZVdhdGNoRmlsZXMgPSBbXG4gICAgICAvLyBtYW5pZmVzdCBjYW4gYWZmZWN0IG1vZHVsZSByZXNvbHV0aW9uXG4gICAgICAncGFja2FnZS5qc29uJyxcbiAgICAgIC8vIG5wbSBsb2NrIGZpbGVcbiAgICAgICdwYWNrYWdlLWxvY2suanNvbicsXG4gICAgICAvLyBwbnBtIGxvY2sgZmlsZVxuICAgICAgJ3BucG0tbG9jay55YW1sJyxcbiAgICAgIC8vIHlhcm4gbG9jayBmaWxlIGluY2x1ZGluZyBZYXJuIFBuUCBtYW5pZmVzdCBmaWxlcyAoaHR0cHM6Ly95YXJucGtnLmNvbS9hZHZhbmNlZC9wbnAtc3BlYy8pXG4gICAgICAneWFybi5sb2NrJyxcbiAgICAgICcucG5wLmNqcycsXG4gICAgICAnLnBucC5kYXRhLmpzb24nLFxuICAgIF07XG5cbiAgICB3YXRjaGVyLmFkZChwYWNrYWdlV2F0Y2hGaWxlcy5tYXAoKGZpbGUpID0+IHBhdGguam9pbih3b3Jrc3BhY2VSb290LCBmaWxlKSkpO1xuXG4gICAgLy8gV2F0Y2ggbG9jYXRpb25zIHByb3ZpZGVkIGJ5IHRoZSBpbml0aWFsIGJ1aWxkIHJlc3VsdFxuICAgIHdhdGNoZXIuYWRkKHJlc3VsdC53YXRjaEZpbGVzKTtcbiAgfVxuXG4gIC8vIE91dHB1dCB0aGUgZmlyc3QgYnVpbGQgcmVzdWx0cyBhZnRlciBzZXR0aW5nIHVwIHRoZSB3YXRjaGVyIHRvIGVuc3VyZSB0aGF0IGFueSBjb2RlIGV4ZWN1dGVkXG4gIC8vIGhpZ2hlciBpbiB0aGUgaXRlcmF0b3IgY2FsbCBzdGFjayB3aWxsIHRyaWdnZXIgdGhlIHdhdGNoZXIuIFRoaXMgaXMgcGFydGljdWxhcmx5IHJlbGV2YW50IGZvclxuICAvLyB1bml0IHRlc3RzIHdoaWNoIGV4ZWN1dGUgdGhlIGJ1aWxkZXIgYW5kIG1vZGlmeSB0aGUgZmlsZSBzeXN0ZW0gcHJvZ3JhbW1hdGljYWxseS5cbiAgaWYgKHdyaXRlVG9GaWxlU3lzdGVtKSB7XG4gICAgLy8gV3JpdGUgb3V0cHV0IGZpbGVzXG4gICAgYXdhaXQgd3JpdGVSZXN1bHRGaWxlcyhyZXN1bHQub3V0cHV0RmlsZXMsIHJlc3VsdC5hc3NldEZpbGVzLCBvdXRwdXRQYXRoKTtcblxuICAgIHlpZWxkIHJlc3VsdC5vdXRwdXQ7XG4gIH0gZWxzZSB7XG4gICAgLy8gUmVxdWlyZXMgY2FzdGluZyBkdWUgdG8gdW5uZWVkZWQgYEpzb25PYmplY3RgIHJlcXVpcmVtZW50LiBSZW1vdmUgb25jZSBmaXhlZC5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHlpZWxkIHJlc3VsdC5vdXRwdXRXaXRoRmlsZXMgYXMgYW55O1xuICB9XG5cbiAgLy8gRmluaXNoIGlmIHdhdGNoIG1vZGUgaXMgbm90IGVuYWJsZWRcbiAgaWYgKCF3YXRjaGVyKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gV2FpdCBmb3IgY2hhbmdlcyBhbmQgcmVidWlsZCBhcyBuZWVkZWRcbiAgbGV0IHByZXZpb3VzV2F0Y2hGaWxlcyA9IG5ldyBTZXQocmVzdWx0LndhdGNoRmlsZXMpO1xuICB0cnkge1xuICAgIGZvciBhd2FpdCAoY29uc3QgY2hhbmdlcyBvZiB3YXRjaGVyKSB7XG4gICAgICBpZiAob3B0aW9ucy5zaWduYWw/LmFib3J0ZWQpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgIGxvZ2dlci5pbmZvKGNoYW5nZXMudG9EZWJ1Z1N0cmluZygpKTtcbiAgICAgIH1cblxuICAgICAgcmVzdWx0ID0gYXdhaXQgd2l0aFByb2dyZXNzKCdDaGFuZ2VzIGRldGVjdGVkLiBSZWJ1aWxkaW5nLi4uJywgKCkgPT5cbiAgICAgICAgYWN0aW9uKHJlc3VsdC5jcmVhdGVSZWJ1aWxkU3RhdGUoY2hhbmdlcykpLFxuICAgICAgKTtcblxuICAgICAgLy8gVXBkYXRlIHdhdGNoZWQgbG9jYXRpb25zIHByb3ZpZGVkIGJ5IHRoZSBuZXcgYnVpbGQgcmVzdWx0LlxuICAgICAgLy8gQWRkIGFueSBuZXcgbG9jYXRpb25zXG4gICAgICB3YXRjaGVyLmFkZChyZXN1bHQud2F0Y2hGaWxlcy5maWx0ZXIoKHdhdGNoRmlsZSkgPT4gIXByZXZpb3VzV2F0Y2hGaWxlcy5oYXMod2F0Y2hGaWxlKSkpO1xuICAgICAgY29uc3QgbmV3V2F0Y2hGaWxlcyA9IG5ldyBTZXQocmVzdWx0LndhdGNoRmlsZXMpO1xuICAgICAgLy8gUmVtb3ZlIGFueSBvbGQgbG9jYXRpb25zXG4gICAgICB3YXRjaGVyLnJlbW92ZShbLi4ucHJldmlvdXNXYXRjaEZpbGVzXS5maWx0ZXIoKHdhdGNoRmlsZSkgPT4gIW5ld1dhdGNoRmlsZXMuaGFzKHdhdGNoRmlsZSkpKTtcbiAgICAgIHByZXZpb3VzV2F0Y2hGaWxlcyA9IG5ld1dhdGNoRmlsZXM7XG5cbiAgICAgIGlmICh3cml0ZVRvRmlsZVN5c3RlbSkge1xuICAgICAgICAvLyBXcml0ZSBvdXRwdXQgZmlsZXNcbiAgICAgICAgY29uc3QgZmlsZXNUb1dyaXRlID0gd3JpdGVUb0ZpbGVTeXN0ZW1GaWx0ZXJcbiAgICAgICAgICA/IHJlc3VsdC5vdXRwdXRGaWxlcy5maWx0ZXIod3JpdGVUb0ZpbGVTeXN0ZW1GaWx0ZXIpXG4gICAgICAgICAgOiByZXN1bHQub3V0cHV0RmlsZXM7XG4gICAgICAgIGF3YWl0IHdyaXRlUmVzdWx0RmlsZXMoZmlsZXNUb1dyaXRlLCByZXN1bHQuYXNzZXRGaWxlcywgb3V0cHV0UGF0aCk7XG5cbiAgICAgICAgeWllbGQgcmVzdWx0Lm91dHB1dDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFJlcXVpcmVzIGNhc3RpbmcgZHVlIHRvIHVubmVlZGVkIGBKc29uT2JqZWN0YCByZXF1aXJlbWVudC4gUmVtb3ZlIG9uY2UgZml4ZWQuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHlpZWxkIHJlc3VsdC5vdXRwdXRXaXRoRmlsZXMgYXMgYW55O1xuICAgICAgfVxuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICAvLyBTdG9wIHRoZSB3YXRjaGVyIGFuZCBjbGVhbnVwIGluY3JlbWVudGFsIHJlYnVpbGQgc3RhdGVcbiAgICBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoW3dhdGNoZXIuY2xvc2UoKSwgcmVzdWx0LmRpc3Bvc2UoKV0pO1xuXG4gICAgc2h1dGRvd25TYXNzV29ya2VyUG9vbCgpO1xuICB9XG59XG4iXX0=
|
|
@@ -12,8 +12,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
exports.executeBuild = void 0;
|
|
14
14
|
const node_assert_1 = __importDefault(require("node:assert"));
|
|
15
|
-
const
|
|
15
|
+
const source_file_cache_1 = require("../../tools/esbuild/angular/source-file-cache");
|
|
16
16
|
const application_code_bundle_1 = require("../../tools/esbuild/application-code-bundle");
|
|
17
|
+
const budget_stats_1 = require("../../tools/esbuild/budget-stats");
|
|
17
18
|
const bundler_context_1 = require("../../tools/esbuild/bundler-context");
|
|
18
19
|
const bundler_execution_result_1 = require("../../tools/esbuild/bundler-execution-result");
|
|
19
20
|
const commonjs_checker_1 = require("../../tools/esbuild/commonjs-checker");
|
|
@@ -22,6 +23,7 @@ const global_styles_1 = require("../../tools/esbuild/global-styles");
|
|
|
22
23
|
const index_html_generator_1 = require("../../tools/esbuild/index-html-generator");
|
|
23
24
|
const license_extractor_1 = require("../../tools/esbuild/license-extractor");
|
|
24
25
|
const utils_1 = require("../../tools/esbuild/utils");
|
|
26
|
+
const bundle_calculator_1 = require("../../utils/bundle-calculator");
|
|
25
27
|
const copy_assets_1 = require("../../utils/copy-assets");
|
|
26
28
|
const environment_options_1 = require("../../utils/environment-options");
|
|
27
29
|
const prerender_1 = require("../../utils/server-rendering/prerender");
|
|
@@ -42,7 +44,7 @@ async function executeBuild(options, context, rebuildState) {
|
|
|
42
44
|
// Reuse rebuild state or create new bundle contexts for code and global stylesheets
|
|
43
45
|
let bundlerContexts = rebuildState?.rebuildContexts;
|
|
44
46
|
const codeBundleCache = rebuildState?.codeBundleCache ??
|
|
45
|
-
new
|
|
47
|
+
new source_file_cache_1.SourceFileCache(cacheOptions.enabled ? cacheOptions.path : undefined);
|
|
46
48
|
if (bundlerContexts === undefined) {
|
|
47
49
|
bundlerContexts = [];
|
|
48
50
|
// Browser application code
|
|
@@ -66,11 +68,10 @@ async function executeBuild(options, context, rebuildState) {
|
|
|
66
68
|
}
|
|
67
69
|
}
|
|
68
70
|
// Server application code
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
[...target, 'node18.13'], codeBundleCache), () => false));
|
|
71
|
+
// Skip server build when non of the features are enabled.
|
|
72
|
+
if (serverEntryPoint && (prerenderOptions || appShellOptions || ssrOptions)) {
|
|
73
|
+
const nodeTargets = (0, utils_1.getSupportedNodeTargets)();
|
|
74
|
+
bundlerContexts.push(new bundler_context_1.BundlerContext(workspaceRoot, !!options.watch, (0, application_code_bundle_1.createServerCodeBundleOptions)(options, [...target, ...nodeTargets], codeBundleCache), () => false));
|
|
74
75
|
}
|
|
75
76
|
}
|
|
76
77
|
const bundlingResult = await bundler_context_1.BundlerContext.bundleAll(bundlerContexts);
|
|
@@ -106,9 +107,9 @@ async function executeBuild(options, context, rebuildState) {
|
|
|
106
107
|
options.i18nOptions.hasDefinedSourceLocale ? options.i18nOptions.sourceLocale : undefined);
|
|
107
108
|
indexContentOutputNoCssInlining = contentWithoutCriticalCssInlined;
|
|
108
109
|
printWarningsAndErrorsToConsole(context, warnings, errors);
|
|
109
|
-
executionResult.addOutputFile(indexHtmlOptions.output, content);
|
|
110
|
+
executionResult.addOutputFile(indexHtmlOptions.output, content, bundler_context_1.BuildOutputFileType.Browser);
|
|
110
111
|
if (ssrOptions) {
|
|
111
|
-
executionResult.addOutputFile('index.server.html', contentWithoutCriticalCssInlined);
|
|
112
|
+
executionResult.addOutputFile('index.server.html', contentWithoutCriticalCssInlined, bundler_context_1.BuildOutputFileType.Server);
|
|
112
113
|
}
|
|
113
114
|
}
|
|
114
115
|
// Pre-render (SSG) and App-shell
|
|
@@ -118,38 +119,52 @@ async function executeBuild(options, context, rebuildState) {
|
|
|
118
119
|
const { output, warnings, errors } = await (0, prerender_1.prerenderPages)(workspaceRoot, appShellOptions, prerenderOptions, executionResult.outputFiles, indexContentOutputNoCssInlining, optimizationOptions.styles.inlineCritical, environment_options_1.maxWorkers, verbose);
|
|
119
120
|
printWarningsAndErrorsToConsole(context, warnings, errors);
|
|
120
121
|
for (const [path, content] of Object.entries(output)) {
|
|
121
|
-
executionResult.addOutputFile(path, content);
|
|
122
|
+
executionResult.addOutputFile(path, content, bundler_context_1.BuildOutputFileType.Browser);
|
|
122
123
|
}
|
|
123
124
|
}
|
|
124
125
|
// Copy assets
|
|
125
126
|
if (assets) {
|
|
126
127
|
// The webpack copy assets helper is used with no base paths defined. This prevents the helper
|
|
127
128
|
// from directly writing to disk. This should eventually be replaced with a more optimized helper.
|
|
128
|
-
executionResult.
|
|
129
|
+
executionResult.addAssets(await (0, copy_assets_1.copyAssets)(assets, [], workspaceRoot));
|
|
129
130
|
}
|
|
130
131
|
// Extract and write licenses for used packages
|
|
131
132
|
if (options.extractLicenses) {
|
|
132
|
-
executionResult.addOutputFile('3rdpartylicenses.txt', await (0, license_extractor_1.extractLicenses)(metafile, workspaceRoot));
|
|
133
|
+
executionResult.addOutputFile('3rdpartylicenses.txt', await (0, license_extractor_1.extractLicenses)(metafile, workspaceRoot), bundler_context_1.BuildOutputFileType.Root);
|
|
133
134
|
}
|
|
134
135
|
// Augment the application with service worker support
|
|
135
136
|
// If localization is enabled, service worker is handled in the inlining process.
|
|
136
137
|
if (serviceWorker && !options.i18nOptions.shouldInline) {
|
|
137
138
|
try {
|
|
138
139
|
const serviceWorkerResult = await (0, service_worker_1.augmentAppWithServiceWorkerEsbuild)(workspaceRoot, serviceWorker, options.baseHref || '/', executionResult.outputFiles, executionResult.assetFiles);
|
|
139
|
-
executionResult.addOutputFile('ngsw.json', serviceWorkerResult.manifest);
|
|
140
|
-
executionResult.
|
|
140
|
+
executionResult.addOutputFile('ngsw.json', serviceWorkerResult.manifest, bundler_context_1.BuildOutputFileType.Browser);
|
|
141
|
+
executionResult.addAssets(serviceWorkerResult.assetFiles);
|
|
141
142
|
}
|
|
142
143
|
catch (error) {
|
|
143
144
|
context.logger.error(error instanceof Error ? error.message : `${error}`);
|
|
144
145
|
return executionResult;
|
|
145
146
|
}
|
|
146
147
|
}
|
|
148
|
+
// Analyze files for bundle budget failures if present
|
|
149
|
+
let budgetFailures;
|
|
150
|
+
if (options.budgets) {
|
|
151
|
+
const compatStats = (0, budget_stats_1.generateBudgetStats)(metafile, initialFiles);
|
|
152
|
+
budgetFailures = [...(0, bundle_calculator_1.checkBudgets)(options.budgets, compatStats, true)];
|
|
153
|
+
for (const { severity, message } of budgetFailures) {
|
|
154
|
+
if (severity === 'error') {
|
|
155
|
+
context.logger.error(message);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
context.logger.warn(message);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
147
162
|
// Calculate estimated transfer size if scripts are optimized
|
|
148
163
|
let estimatedTransferSizes;
|
|
149
164
|
if (optimizationOptions.scripts || optimizationOptions.styles.minify) {
|
|
150
165
|
estimatedTransferSizes = await (0, utils_1.calculateEstimatedTransferSizes)(executionResult.outputFiles);
|
|
151
166
|
}
|
|
152
|
-
(0, utils_1.logBuildStats)(context, metafile, initialFiles, estimatedTransferSizes);
|
|
167
|
+
(0, utils_1.logBuildStats)(context, metafile, initialFiles, budgetFailures, estimatedTransferSizes);
|
|
153
168
|
const buildTime = Number(process.hrtime.bigint() - startTime) / 10 ** 9;
|
|
154
169
|
context.logger.info(`Application bundle generation complete. [${buildTime.toFixed(3)} seconds]`);
|
|
155
170
|
// Perform i18n translation inlining if enabled
|
|
@@ -159,7 +174,7 @@ async function executeBuild(options, context, rebuildState) {
|
|
|
159
174
|
}
|
|
160
175
|
// Write metafile if stats option is enabled
|
|
161
176
|
if (options.stats) {
|
|
162
|
-
executionResult.addOutputFile('stats.json', JSON.stringify(metafile, null, 2));
|
|
177
|
+
executionResult.addOutputFile('stats.json', JSON.stringify(metafile, null, 2), bundler_context_1.BuildOutputFileType.Root);
|
|
163
178
|
}
|
|
164
179
|
return executionResult;
|
|
165
180
|
}
|
|
@@ -172,4 +187,4 @@ function printWarningsAndErrorsToConsole(context, warnings, errors) {
|
|
|
172
187
|
context.logger.warn(warning);
|
|
173
188
|
}
|
|
174
189
|
}
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0ZS1idWlsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL2J1aWxkZXJzL2FwcGxpY2F0aW9uL2V4ZWN1dGUtYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7O0FBR0gsOERBQWlDO0FBQ2pDLGlGQUE4RTtBQUM5RSx5RkFHcUQ7QUFDckQseUVBQXFFO0FBQ3JFLDJGQUE2RjtBQUM3RiwyRUFBNEU7QUFDNUUsdUVBQXNGO0FBQ3RGLHFFQUFvRjtBQUNwRixtRkFBNkU7QUFDN0UsNkVBQXdFO0FBQ3hFLHFEQUttQztBQUNuQyx5REFBcUQ7QUFDckQseUVBQTZEO0FBQzdELHNFQUF3RTtBQUN4RSwrREFBZ0Y7QUFDaEYsdUVBQXNFO0FBQ3RFLGlDQUE0RDtBQUc1RCxrREFBa0Q7QUFDM0MsS0FBSyxVQUFVLFlBQVksQ0FDaEMsT0FBMEMsRUFDMUMsT0FBdUIsRUFDdkIsWUFBMkI7SUFFM0IsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUUxQyxNQUFNLEVBQ0osV0FBVyxFQUNYLGFBQWEsRUFDYixhQUFhLEVBQ2IsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLFVBQVUsRUFDVixPQUFPLEdBQ1IsR0FBRyxPQUFPLENBQUM7SUFFWixNQUFNLFFBQVEsR0FBRyxJQUFBLHlDQUFvQixFQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkUsTUFBTSxNQUFNLEdBQUcsSUFBQSwyQ0FBbUMsRUFBQyxRQUFRLENBQUMsQ0FBQztJQUU3RCx1Q0FBdUM7SUFDdkMscUVBQXFFO0lBQ3JFLElBQUksT0FBTyxDQUFD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QU8sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFakcsK0NBQStDO0lBQy9DLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUU7UUFDcEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLElBQUEsaUJBQVUsRUFBQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3RGLCtCQUErQixDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDNUQ7SUFFRCw0Q0FBNEM7SUFDNUMsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFO1FBQ2pCLGVBQWUsQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2hGO0lBRUQsT0FBTyxlQUFlLENBQUM7QUFDekIsQ0FBQztBQTFPRCxvQ0EwT0M7QUFFRCxTQUFTLCtCQUErQixDQUN0QyxPQUF1QixFQUN2QixRQUFrQixFQUNsQixNQUFnQjtJQUVoQixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRTtRQUMxQixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM3QjtJQUNELEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFO1FBQzlCLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQzlCO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBCdWlsZGVyQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9hcmNoaXRlY3QnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdub2RlOmFzc2VydCc7XG5pbXBvcnQgeyBTb3VyY2VGaWxlQ2FjaGUgfSBmcm9tICcuLi8uLi90b29scy9lc2J1aWxkL2FuZ3VsYXIvY29tcGlsZXItcGx1Z2luJztcbmltcG9ydCB7XG4gIGNyZWF0ZUJyb3dzZXJDb2RlQnVuZGxlT3B0aW9ucyxcbiAgY3JlYXRlU2VydmVyQ29kZUJ1bmRsZU9wdGlvbnMsXG59IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvYXBwbGljYXRpb24tY29kZS1idW5kbGUnO1xuaW1wb3J0IHsgQnVuZGxlckNvbnRleHQgfSBmcm9tICcuLi8uLi90b29scy9lc2J1aWxkL2J1bmRsZXItY29udGV4dCc7XG5pbXBvcnQgeyBFeGVjdXRpb25SZXN1bHQsIFJlYnVpbGRTdGF0ZSB9IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvYnVuZGxlci1leGVjdXRpb24tcmVzdWx0JztcbmltcG9ydCB7IGNoZWNrQ29tbW9uSlNNb2R1bGVzIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC9jb21tb25qcy1jaGVja2VyJztcbmltcG9ydCB7IGNyZWF0ZUdsb2JhbFNjcmlwdHNCdW5kbGVPcHRpb25zIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC9nbG9iYWwtc2NyaXB0cyc7XG5pbXBvcnQgeyBjcmVhdGVHbG9iYWxTdHlsZXNCdW5kbGVPcHRpb25zIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC9nbG9iYWwtc3R5bGVzJztcbmltcG9ydCB7IGdlbmVyYXRlSW5kZXhIdG1sIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC9pbmRleC1odG1sLWdlbmVyYXRvcic7XG5pbXBvcnQgeyBleHRyYWN0TGljZW5zZXMgfSBmcm9tICcuLi8uLi90b29scy9lc2J1aWxkL2xpY2Vuc2UtZXh0cmFjdG9yJztcbmltcG9ydCB7XG4gIGNhbGN1bGF0ZUVzdGltYXRlZFRyYW5zZmVyU2l6ZXMsXG4gIGxvZ0J1aWxkU3RhdHMsXG4gIGxvZ01lc3NhZ2VzLFxuICB0cmFuc2Zvcm1TdXBwb3J0ZWRCcm93c2Vyc1RvVGFyZ2V0cyxcbn0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC91dGlscyc7XG5pbXBvcnQgeyBjb3B5QXNzZXRzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY29weS1hc3NldHMnO1xuaW1wb3J0IHsgbWF4V29ya2VycyB9IGZyb20gJy4uLy4uL3V0aWxzL2Vudmlyb25tZW50LW9wdGlvbnMnO1xuaW1wb3J0IHsgcHJlcmVuZGVyUGFnZXMgfSBmcm9tICcuLi8uLi91dGlscy9zZXJ2ZXItcmVuZGVyaW5nL3ByZXJlbmRlcic7XG5pbXBvcnQgeyBhdWdtZW50QXBwV2l0aFNlcnZpY2VXb3JrZXJFc2J1aWxkIH0gZnJvbSAnLi4vLi4vdXRpbHMvc2VydmljZS13b3JrZXInO1xuaW1wb3J0IHsgZ2V0U3VwcG9ydGVkQnJvd3NlcnMgfSBmcm9tICcuLi8uLi91dGlscy9zdXBwb3J0ZWQtYnJvd3NlcnMnO1xuaW1wb3J0IHsgaW5saW5lSTE4biwgbG9hZEFjdGl2ZVRyYW5zbGF0aW9ucyB9IGZyb20gJy4vaTE4bic7XG5pbXBvcnQgeyBOb3JtYWxpemVkQXBwbGljYXRpb25CdWlsZE9wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxpbmVzLXBlci1mdW5jdGlvblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGVCdWlsZChcbiAgb3B0aW9uczogTm9ybWFsaXplZEFwcGxpY2F0aW9uQnVpbGRPcHRpb25zLFxuICBjb250ZXh0OiBCdWlsZGVyQ29udGV4dCxcbiAgcmVidWlsZFN0YXRlPzogUmVidWlsZFN0YXRlLFxuKTogUHJvbWlzZTxFeGVjdXRpb25SZXN1bHQ+IHtcbiAgY29uc3Qgc3RhcnRUaW1lID0gcHJvY2Vzcy5ocnRpbWUuYmlnaW50KCk7XG5cbiAgY29uc3Qge1xuICAgIHByb2plY3RSb290LFxuICAgIHdvcmtzcGFjZVJvb3QsXG4gICAgc2VydmljZVdvcmtlcixcbiAgICBvcHRpbWl6YXRpb25PcHRpb25zLFxuICAgIHNlcnZlckVudHJ5UG9pbnQsXG4gICAgYXNzZXRzLFxuICAgIGluZGV4SHRtbE9wdGlvbnMsXG4gICAgY2FjaGVPcHRpb25zLFxuICAgIHByZXJlbmRlck9wdGlvbnMsXG4gICAgYXBwU2hlbGxPcHRpb25zLFxuICAgIHNzck9wdGlvbnMsXG4gICAgdmVyYm9zZSxcbiAgfSA9IG9wdGlvbnM7XG5cbiAgY29uc3QgYnJvd3NlcnMgPSBnZXRTdXBwb3J0ZWRCcm93c2Vycyhwcm9qZWN0Um9vdCwgY29udGV4dC5sb2dnZXIpO1xuICBjb25zdCB0YXJnZXQgPSB0cmFuc2Zvcm1TdXBwb3J0ZWRCcm93c2Vyc1RvVGFyZ2V0cyhicm93c2Vycyk7XG5cbiAgLy8gTG9hZCBhY3RpdmUgdHJhbnNsYXRpb25zIGlmIGlubGluaW5nXG4gIC8vIFRPRE86IEludGVncmF0ZSBpbnRvIHdhdGNoIG1vZGUgYW5kIG9ubHkgbG9hZCBjaGFuZ2VkIHRyYW5zbGF0aW9uc1xuICBpZiAob3B0aW9ucy5pMThuT3B0aW9ucy5zaG91bGRJbmxpbmUpIHtcbiAgICBhd2FpdCBsb2FkQWN0aXZlVHJhbnNsYXRpb25zKGNvbnRleHQsIG9wdGlvbnMuaTE4bk9wdGlvbnMpO1xuICB9XG5cbiAgLy8gUmV1c2UgcmVidWlsZCBzdGF0ZSBvciBjcmVhdGUgbmV3IGJ1bmRsZSBjb250ZXh0cyBmb3IgY29kZSBhbmQgZ2xvYmFsIHN0eWxlc2hlZXRzXG4gIGxldCBidW5kbGVyQ29udGV4dHMgPSByZWJ1aWxkU3RhdGU/LnJlYnVpbGRDb250ZXh0cztcbiAgY29uc3QgY29kZUJ1bmRsZUNhY2hlID1cbiAgICByZWJ1aWxkU3RhdGU/LmNvZGVCdW5kbGVDYWNoZSA/P1xuICAgIG5ldyBTb3VyY2VGaWxlQ2FjaGUoY2FjaGVPcHRpb25zLmVuYWJsZWQgPyBjYWNoZU9wdGlvbnMucGF0aCA6IHVuZGVmaW5lZCk7XG4gIGlmIChidW5kbGVyQ29udGV4dHMgPT09IHVuZGVmaW5lZCkge1xuICAgIGJ1bmRsZXJDb250ZXh0cyA9IFtdO1xuXG4gICAgLy8gQnJvd3NlciBhcHBsaWNhdGlvbiBjb2RlXG4gICAgYnVuZGxlckNvbnRleHRzLnB1c2goXG4gICAgICBuZXcgQnVuZGxlckNvbnRleHQoXG4gICAgICAgIHdvcmtzcGFjZVJvb3QsXG4gICAgICAgICEhb3B0aW9ucy53YXRjaCxcbiAgICAgICAgY3JlYXRlQnJvd3NlckNvZGVCdW5kbGVPcHRpb25zKG9wdGlvbnMsIHRhcmdldCwgY29kZUJ1bmRsZUNhY2hlKSxcbiAgICAgICksXG4gICAgKTtcblxuICAgIC8vIEdsb2JhbCBTdHlsZXNoZWV0c1xuICAgIGlmIChvcHRpb25zLmdsb2JhbFN0eWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IGluaXRpYWwgb2YgW3RydWUsIGZhbHNlXSkge1xuICAgICAgICBjb25zdCBidW5kbGVPcHRpb25zID0gY3JlYXRlR2xvYmFsU3R5bGVzQnVuZGxlT3B0aW9ucyhcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgIHRhcmdldCxcbiAgICAgICAgICBpbml0aWFsLFxuICAgICAgICAgIGNvZGVCdW5kbGVDYWNoZT8ubG9hZFJlc3VsdENhY2hlLFxuICAgICAgICApO1xuICAgICAgICBpZiAoYnVuZGxlT3B0aW9ucykge1xuICAgICAgICAgIGJ1bmRsZXJDb250ZXh0cy5wdXNoKFxuICAgICAgICAgICAgbmV3IEJ1bmRsZXJDb250ZXh0KHdvcmtzcGFjZVJvb3QsICEhb3B0aW9ucy53YXRjaCwgYnVuZGxlT3B0aW9ucywgKCkgPT4gaW5pdGlhbCksXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEdsb2JhbCBTY3JpcHRzXG4gICAgaWYgKG9wdGlvbnMuZ2xvYmFsU2NyaXB0cy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IGluaXRpYWwgb2YgW3RydWUsIGZhbHNlXSkge1xuICAgICAgICBjb25zdCBidW5kbGVPcHRpb25zID0gY3JlYXRlR2xvYmFsU2NyaXB0c0J1bmRsZU9wdGlvbnMob3B0aW9ucywgaW5pdGlhbCk7XG4gICAgICAgIGlmIChidW5kbGVPcHRpb25zKSB7XG4gICAgICAgICAgYnVuZGxlckNvbnRleHRzLnB1c2goXG4gICAgICAgICAgICBuZXcgQnVuZGxlckNvbnRleHQod29ya3NwYWNlUm9vdCwgISFvcHRpb25zLndhdGNoLCBidW5kbGVPcHRpb25zLCAoKSA9PiBpbml0aWFsKSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2VydmVyIGFwcGxpY2F0aW9uIGNvZGVcbiAgICBpZiAoc2VydmVyRW50cnlQb2ludCkge1xuICAgICAgYnVuZGxlckNvbnRleHRzLnB1c2goXG4gICAgICAgIG5ldyBCdW5kbGVyQ29udGV4dChcbiAgICAgICAgICB3b3Jrc3BhY2VSb290LFxuICAgICAgICAgICEhb3B0aW9ucy53YXRjaCxcbiAgICAgICAgICBjcmVhdGVTZXJ2ZXJDb2RlQnVuZGxlT3B0aW9ucyhcbiAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgICAvLyBOT1RFOiBlYXJsaWVyIHZlcnNpb25zIG9mIE5vZGUuanMgYXJlIG5vdCBzdXBwb3J0ZWQgZHVlIHRvIHVuc2FmZSBwcm9taXNlIHBhdGNoaW5nLlxuICAgICAgICAgICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL3B1bGwvNTA1NTIjaXNzdWUtMTczNzk2NzU5MlxuICAgICAgICAgICAgWy4uLnRhcmdldCwgJ25vZGUxOC4xMyddLFxuICAgICAgICAgICAgY29kZUJ1bmRsZUNhY2hlLFxuICAgICAgICAgICksXG4gICAgICAgICAgKCkgPT4gZmFsc2UsXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGJ1bmRsaW5nUmVzdWx0ID0gYXdhaXQgQnVuZGxlckNvbnRleHQuYnVuZGxlQWxsKGJ1bmRsZXJDb250ZXh0cyk7XG5cbiAgLy8gTG9nIGFsbCB3YXJuaW5ncyBhbmQgZXJyb3JzIGdlbmVyYXRlZCBkdXJpbmcgYnVuZGxpbmdcbiAgYXdhaXQgbG9nTWVzc2FnZXMoY29udGV4dCwgYnVuZGxpbmdSZXN1bHQpO1xuXG4gIGNvbnN0IGV4ZWN1dGlvblJlc3VsdCA9IG5ldyBFeGVjdXRpb25SZXN1bHQoYnVuZGxlckNvbnRleHRzLCBjb2RlQnVuZGxlQ2FjaGUpO1xuXG4gIC8vIFJldHVybiBpZiB0aGUgYnVuZGxpbmcgaGFzIGVycm9yc1xuICBpZiAoYnVuZGxpbmdSZXN1bHQuZXJyb3JzKSB7XG4gICAgcmV0dXJuIGV4ZWN1dGlvblJlc3VsdDtcbiAgfVxuXG4gIGNvbnN0IHsgbWV0YWZpbGUsIGluaXRpYWxGaWxlcywgb3V0cHV0RmlsZXMgfSA9IGJ1bmRsaW5nUmVzdWx0O1xuXG4gIGV4ZWN1dGlvblJlc3VsdC5vdXRwdXRGaWxlcy5wdXNoKC4uLm91dHB1dEZpbGVzKTtcblxuICAvLyBDaGVjayBtZXRhZmlsZSBmb3IgQ29tbW9uSlMgbW9kdWxlIHVzYWdlIGlmIG9wdGltaXppbmcgc2NyaXB0c1xuICBpZiAob3B0aW1pemF0aW9uT3B0aW9ucy5zY3JpcHRzKSB7XG4gICAgY29uc3QgbWVzc2FnZXMgPSBjaGVja0NvbW1vbkpTTW9kdWxlcyhtZXRhZmlsZSwgb3B0aW9ucy5hbGxvd2VkQ29tbW9uSnNEZXBlbmRlbmNpZXMpO1xuICAgIGF3YWl0IGxvZ01lc3NhZ2VzKGNvbnRleHQsIHsgd2FybmluZ3M6IG1lc3NhZ2VzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGV4IEhUTUwgY29udGVudCB3aXRob3V0IENTUyBpbmxpbmluZyB0byBiZSB1c2VkIGZvciBzZXJ2ZXIgcmVuZGVyaW5nIChBcHBTaGVsbCwgU1NHIGFuZCBTU1IpLlxuICAgKlxuICAgKiBOT1RFOiB3ZSBkb24ndCBwZXJmb3JtIGNyaXRpY2FsIENTUyBpbmxpbmluZyBhcyB0aGlzIHdpbGwgYmUgZG9uZSBkdXJpbmcgc2VydmVyIHJlbmRlcmluZy5cbiAgICovXG4gIGxldCBpbmRleENvbnRlbnRPdXRwdXROb0Nzc0lubGluaW5nOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLy8gR2VuZXJhdGUgaW5kZXggSFRNTCBmaWxlXG4gIC8vIElmIGxvY2FsaXphdGlvbiBpcyBlbmFibGVkLCBpbmRleCBnZW5lcmF0aW9uIGlzIGhhbmRsZWQgaW4gdGhlIGlubGluaW5nIHByb2Nlc3MuXG4gIC8vIE5PVEU6IExvY2FsaXphdGlvbiB3aXRoIFNTUiBpcyBub3QgY3VycmVudGx5IHN1cHBvcnRlZC5cbiAgaWYgKGluZGV4SHRtbE9wdGlvbnMgJiYgIW9wdGlvbnMuaTE4bk9wdGlvbnMuc2hvdWxkSW5saW5lKSB7XG4gICAgY29uc3QgeyBjb250ZW50LCBjb250ZW50V2l0aG91dENyaXRpY2FsQ3NzSW5saW5lZCwgZXJyb3JzLCB3YXJuaW5ncyB9ID0gYXdhaXQgZ2VuZXJhdGVJbmRleEh0bWwoXG4gICAgICBpbml0aWFsRmlsZXMsXG4gICAgICBleGVjdXRpb25SZXN1bHQub3V0cHV0RmlsZXMsXG4gICAgICB7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIG9wdGltaXphdGlvbk9wdGlvbnMsXG4gICAgICB9LFxuICAgICAgLy8gU2V0IGxhbmcgYXR0cmlidXRlIHRvIHRoZSBkZWZpbmVkIHNvdXJjZSBsb2NhbGUgaWYgcHJlc2VudFxuICAgICAgb3B0aW9ucy5pMThuT3B0aW9ucy5oYXNEZWZpbmVkU291cmNlTG9jYWxlID8gb3B0aW9ucy5pMThuT3B0aW9ucy5zb3VyY2VMb2NhbGUgOiB1bmRlZmluZWQsXG4gICAgKTtcblxuICAgIGluZGV4Q29udGVudE91dHB1dE5vQ3NzSW5saW5pbmcgPSBjb250ZW50V2l0aG91dENyaXRpY2FsQ3NzSW5saW5lZDtcbiAgICBwcmludFdhcm5pbmdzQW5kRXJyb3JzVG9Db25zb2xlKGNvbnRleHQsIHdhcm5pbmdzLCBlcnJvcnMpO1xuXG4gICAgZXhlY3V0aW9uUmVzdWx0LmFkZE91dHB1dEZpbGUoaW5kZXhIdG1sT3B0aW9ucy5vdXRwdXQsIGNvbnRlbnQpO1xuXG4gICAgaWYgKHNzck9wdGlvbnMpIHtcbiAgICAgIGV4ZWN1dGlvblJlc3VsdC5hZGRPdXRwdXRGaWxlKCdpbmRleC5zZXJ2ZXIuaHRtbCcsIGNvbnRlbnRXaXRob3V0Q3JpdGljYWxDc3NJbmxpbmVkKTtcbiAgICB9XG4gIH1cblxuICAvLyBQcmUtcmVuZGVyIChTU0cpIGFuZCBBcHAtc2hlbGxcbiAgLy8gSWYgbG9jYWxpemF0aW9uIGlzIGVuYWJsZWQsIHByZXJlbmRlcmluZyBpcyBoYW5kbGVkIGluIHRoZSBpbmxpbmluZyBwcm9jZXNzLlxuICBpZiAoKHByZXJlbmRlck9wdGlvbnMgfHwgYXBwU2hlbGxPcHRpb25zKSAmJiAhb3B0aW9ucy5pMThuT3B0aW9ucy5zaG91bGRJbmxpbmUpIHtcbiAgICBhc3NlcnQoXG4gICAgICBpbmRleENvbnRlbnRPdXRwdXROb0Nzc0lubGluaW5nLFxuICAgICAgJ1RoZSBcImluZGV4XCIgb3B0aW9uIGlzIHJlcXVpcmVkIHdoZW4gdXNpbmcgdGhlIFwic3NnXCIgb3IgXCJhcHBTaGVsbFwiIG9wdGlvbnMuJyxcbiAgICApO1xuXG4gICAgY29uc3QgeyBvdXRwdXQsIHdhcm5pbmdzLCBlcnJvcnMgfSA9IGF3YWl0IHByZXJlbmRlclBhZ2VzKFxuICAgICAgd29ya3NwYWNlUm9vdCxcbiAgICAgIGFwcFNoZWxsT3B0aW9ucyxcbiAgICAgIHByZXJlbmRlck9wdGlvbnMsXG4gICAgICBleGVjdXRpb25SZXN1bHQub3V0cHV0RmlsZXMsXG4gICAgICBpbmRleENvbnRlbnRPdXRwdXROb0Nzc0lubGluaW5nLFxuICAgICAgb3B0aW1pemF0aW9uT3B0aW9ucy5zdHlsZXMuaW5saW5lQ3JpdGljYWwsXG4gICAgICBtYXhXb3JrZXJzLFxuICAgICAgdmVyYm9zZSxcbiAgICApO1xuXG4gICAgcHJpbnRXYXJuaW5nc0FuZEVycm9yc1RvQ29uc29sZShjb250ZXh0LCB3YXJuaW5ncywgZXJyb3JzKTtcblxuICAgIGZvciAoY29uc3QgW3BhdGgsIGNvbnRlbnRdIG9mIE9iamVjdC5lbnRyaWVzKG91dHB1dCkpIHtcbiAgICAgIGV4ZWN1dGlvblJlc3VsdC5hZGRPdXRwdXRGaWxlKHBhdGgsIGNvbnRlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvcHkgYXNzZXRzXG4gIGlmIChhc3NldHMpIHtcbiAgICAvLyBUaGUgd2VicGFjayBjb3B5IGFzc2V0cyBoZWxwZXIgaXMgdXNlZCB3aXRoIG5vIGJhc2UgcGF0aHMgZGVmaW5lZC4gVGhpcyBwcmV2ZW50cyB0aGUgaGVscGVyXG4gICAgLy8gZnJvbSBkaXJlY3RseSB3cml0aW5nIHRvIGRpc2suIFRoaXMgc2hvdWxkIGV2ZW50dWFsbHkgYmUgcmVwbGFjZWQgd2l0aCBhIG1vcmUgb3B0aW1pemVkIGhlbHBlci5cbiAgICBleGVjdXRpb25SZXN1bHQuYXNzZXRGaWxlcy5wdXNoKC4uLihhd2FpdCBjb3B5QXNzZXRzKGFzc2V0cywgW10sIHdvcmtzcGFjZVJvb3QpKSk7XG4gIH1cblxuICAvLyBFeHRyYWN0IGFuZCB3cml0ZSBsaWNlbnNlcyBmb3IgdXNlZCBwYWNrYWdlc1xuICBpZiAob3B0aW9ucy5leHRyYWN0TGljZW5zZXMpIHtcbiAgICBleGVjdXRpb25SZXN1bHQuYWRkT3V0cHV0RmlsZShcbiAgICAgICczcmRwYXJ0eWxpY2Vuc2VzLnR4dCcsXG4gICAgICBhd2FpdCBleHRyYWN0TGljZW5zZXMobWV0YWZpbGUsIHdvcmtzcGFjZVJvb3QpLFxuICAgICk7XG4gIH1cblxuICAvLyBBdWdtZW50IHRoZSBhcHBsaWNhdGlvbiB3aXRoIHNlcnZpY2Ugd29ya2VyIHN1cHBvcnRcbiAgLy8gSWYgbG9jYWxpemF0aW9uIGlzIGVuYWJsZWQsIHNlcnZpY2Ugd29ya2VyIGlzIGhhbmRsZWQgaW4gdGhlIGlubGluaW5nIHByb2Nlc3MuXG4gIGlmIChzZXJ2aWNlV29ya2VyICYmICFvcHRpb25zLmkxOG5PcHRpb25zLnNob3VsZElubGluZSkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzZXJ2aWNlV29ya2VyUmVzdWx0ID0gYXdhaXQgYXVnbWVudEFwcFdpdGhTZXJ2aWNlV29ya2VyRXNidWlsZChcbiAgICAgICAgd29ya3NwYWNlUm9vdCxcbiAgICAgICAgc2VydmljZVdvcmtlcixcbiAgICAgICAgb3B0aW9ucy5iYXNlSHJlZiB8fCAnLycsXG4gICAgICAgIGV4ZWN1dGlvblJlc3VsdC5vdXRwdXRGaWxlcyxcbiAgICAgICAgZXhlY3V0aW9uUmVzdWx0LmFzc2V0RmlsZXMsXG4gICAgICApO1xuICAgICAgZXhlY3V0aW9uUmVzdWx0LmFkZE91dHB1dEZpbGUoJ25nc3cuanNvbicsIHNlcnZpY2VXb3JrZXJSZXN1bHQubWFuaWZlc3QpO1xuICAgICAgZXhlY3V0aW9uUmVzdWx0LmFzc2V0RmlsZXMucHVzaCguLi5zZXJ2aWNlV29ya2VyUmVzdWx0LmFzc2V0RmlsZXMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb250ZXh0LmxvZ2dlci5lcnJvcihlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IGAke2Vycm9yfWApO1xuXG4gICAgICByZXR1cm4gZXhlY3V0aW9uUmVzdWx0O1xuICAgIH1cbiAgfVxuXG4gIC8vIENhbGN1bGF0ZSBlc3RpbWF0ZWQgdHJhbnNmZXIgc2l6ZSBpZiBzY3JpcHRzIGFyZSBvcHRpbWl6ZWRcbiAgbGV0IGVzdGltYXRlZFRyYW5zZmVyU2l6ZXM7XG4gIGlmIChvcHRpbWl6YXRpb25PcHRpb25zLnNjcmlwdHMgfHwgb3B0aW1pemF0aW9uT3B0aW9ucy5zdHlsZXMubWluaWZ5KSB7XG4gICAgZXN0aW1hdGVkVHJhbnNmZXJTaXplcyA9IGF3YWl0IGNhbGN1bGF0ZUVzdGltYXRlZFRyYW5zZmVyU2l6ZXMoZXhlY3V0aW9uUmVzdWx0Lm91dHB1dEZpbGVzKTtcbiAgfVxuXG4gIGxvZ0J1aWxkU3RhdHMoY29udGV4dCwgbWV0YWZpbGUsIGluaXRpYWxGaWxlcywgZXN0aW1hdGVkVHJhbnNmZXJTaXplcyk7XG5cbiAgY29uc3QgYnVpbGRUaW1lID0gTnVtYmVyKHByb2Nlc3MuaHJ0aW1lLmJpZ2ludCgpIC0gc3RhcnRUaW1lKSAvIDEwICoqIDk7XG4gIGNvbnRleHQubG9nZ2VyLmluZm8oYEFwcGxpY2F0aW9uIGJ1bmRsZSBnZW5lcmF0aW9uIGNvbXBsZXRlLiBbJHtidWlsZFRpbWUudG9GaXhlZCgzKX0gc2Vjb25kc11gKTtcblxuICAvLyBQZXJmb3JtIGkxOG4gdHJhbnNsYXRpb24gaW5saW5pbmcgaWYgZW5hYmxlZFxuICBpZiAob3B0aW9ucy5pMThuT3B0aW9ucy5zaG91bGRJbmxpbmUpIHtcbiAgICBjb25zdCB7IGVycm9ycywgd2FybmluZ3MgfSA9IGF3YWl0IGlubGluZUkxOG4ob3B0aW9ucywgZXhlY3V0aW9uUmVzdWx0LCBpbml0aWFsRmlsZXMpO1xuICAgIHByaW50V2FybmluZ3NBbmRFcnJvcnNUb0NvbnNvbGUoY29udGV4dCwgd2FybmluZ3MsIGVycm9ycyk7XG4gIH1cblxuICAvLyBXcml0ZSBtZXRhZmlsZSBpZiBzdGF0cyBvcHRpb24gaXMgZW5hYmxlZFxuICBpZiAob3B0aW9ucy5zdGF0cykge1xuICAgIGV4ZWN1dGlvblJlc3VsdC5hZGRPdXRwdXRGaWxlKCdzdGF0cy5qc29uJywgSlNPTi5zdHJpbmdpZnkobWV0YWZpbGUsIG51bGwsIDIpKTtcbiAgfVxuXG4gIHJldHVybiBleGVjdXRpb25SZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIHByaW50V2FybmluZ3NBbmRFcnJvcnNUb0NvbnNvbGUoXG4gIGNvbnRleHQ6IEJ1aWxkZXJDb250ZXh0LFxuICB3YXJuaW5nczogc3RyaW5nW10sXG4gIGVycm9yczogc3RyaW5nW10sXG4pOiB2b2lkIHtcbiAgZm9yIChjb25zdCBlcnJvciBvZiBlcnJvcnMpIHtcbiAgICBjb250ZXh0LmxvZ2dlci5lcnJvcihlcnJvcik7XG4gIH1cbiAgZm9yIChjb25zdCB3YXJuaW5nIG9mIHdhcm5pbmdzKSB7XG4gICAgY29udGV4dC5sb2dnZXIud2Fybih3YXJuaW5nKTtcbiAgfVxufVxuIl19
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0ZS1idWlsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL2J1aWxkZXJzL2FwcGxpY2F0aW9uL2V4ZWN1dGUtYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7O0FBR0gsOERBQWlDO0FBQ2pDLHFGQUFnRjtBQUNoRix5RkFHcUQ7QUFDckQsbUVBQXVFO0FBQ3ZFLHlFQUEwRjtBQUMxRiwyRkFBNkY7QUFDN0YsMkVBQTRFO0FBQzVFLHVFQUFzRjtBQUN0RixxRUFBb0Y7QUFDcEYsbUZBQTZFO0FBQzdFLDZFQUF3RTtBQUN4RSxxREFNbUM7QUFDbkMscUVBQTZEO0FBQzdELHlEQUFxRDtBQUNyRCx5RUFBNkQ7QUFDN0Qsc0VBQXdFO0FBQ3hFLCtEQUFnRjtBQUNoRix1RUFBc0U7QUFDdEUsaUNBQTREO0FBRzVELGtEQUFrRDtBQUMzQyxLQUFLLFVBQVUsWUFBWSxDQUNoQyxPQUEwQyxFQUMxQyxPQUF1QixFQUN2QixZQUEyQjtJQUUzQixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBRTFDLE1BQU0sRUFDSixXQUFXLEVBQ1gsYUFBYSxFQUNiLGFBQWEsRUFDYixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsVUFBVSxFQUNWLE9BQU8sR0FDUixHQUFHLE9BQU8sQ0FBQztJQUVaLE1BQU0sUUFBUSxHQUFHLElBQUEseUNBQW9CLEVBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRSxNQUFNLE1BQU0sR0FBRyxJQUFBLDJDQUFtQyxFQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTdELHVDQUF1QztJQUN2QyxxRUFBcUU7SUFDckUsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRTtRQUNwQyxNQUFNLElBQUEsNkJBQXNCLEVBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztLQUM1RDtJQUVELG9GQUFvRjtJQUNwRixJQUFJLGVBQWUsR0FBRyxZQUFZLEVBQUUsZUFBZSxDQUFDO0lBQ3BELE1BQU0sZUFBZSxHQUNuQixZQUFZLEVBQUUsZUFBZTtRQUM3QixJQUFJLG1DQUFlLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUUsSUFBSSxlQUFlLEtBQUssU0FBUyxFQUFFO1FBQ2pDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFFckIsMkJBQTJCO1FBQzNCLGVBQWUsQ0FBQyxJQUFJLENBQ2xCLElBQUksZ0NBQWMsQ0FDaEIsYUFBYSxFQUNiLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUNmLElBQUEsd0RBQThCLEVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxlQUFlLENBQUMsQ0FDakUsQ0FDRixDQUFDO1FBRUYscUJBQXFCO1FBQ3JCLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ25DLEtBQUssTUFBTSxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUU7Z0JBQ25DLE1BQU0sYUFBYSxHQUFHLElBQUEsK0NBQStCLEVBQ25ELE9BQU8sRUFDUCxNQUFNLEVBQ04sT0FBTyxFQUNQLGVBQWUsRUFBRSxlQUFlLENBQ2pDLENBQUM7Z0JBQ0YsSUFBSSxhQUFhLEVBQUU7b0JBQ2pCLGVBQWUsQ0FBQyxJQUFJLENBQ2xCLElBQUksZ0NBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUNqRixDQUFDO2lCQUNIO2FBQ0Y7U0FDRjtRQUVELGlCQUFpQjtRQUNqQixJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNwQyxLQUFLLE1BQU0sT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUNuQyxNQUFNLGFBQWEsR0FBRyxJQUFBLGlEQUFnQyxFQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDekUsSUFBSSxhQUFhLEVBQUU7b0JBQ2pCLGVBQWUsQ0FBQyxJQUFJLENBQ2xCLElBQUksZ0NBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUNqRixDQUFDO2lCQUNIO2FBQ0Y7U0FDRjtRQUVELDBCQUEwQjtRQUMxQiwwREFBMEQ7UUFDMUQsSUFBSSxnQkFBZ0IsSUFBSSxDQUFDLGdCQUFnQixJQUFJLGVBQWUsSUFBSSxVQUFVLENBQUMsRUFBRTtZQUMzRSxNQUFNLFdBQVcsR0FBRyxJQUFBLCtCQUF1QixHQUFFLENBQUM7WUFDOUMsZUFBZSxDQUFDLElBQUksQ0FDbEIsSUFBSSxnQ0FBYyxDQUNoQixhQUFhLEVBQ2IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQ2YsSUFBQSx1REFBNkIsRUFBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxHQUFHLFdBQVcsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxFQUNwRixHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQ1osQ0FDRixDQUFDO1NBQ0g7S0FDRjtJQUVELE1BQU0sY0FBYyxHQUFHLE1BQU0sZ0NBQWMsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7SUFFdkUsd0RBQXdEO0lBQ3hELE1BQU0sSUFBQSxtQkFBVyxFQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztJQUUzQyxNQUFNLGVBQWUsR0FBRyxJQUFJLDBDQUFlLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBRTlFLG9DQUFvQztJQUNwQyxJQUFJLGNBQWMsQ0FBQyxNQUFNLEVBQUU7UUFDekIsT0FBTyxlQUFlLENBQUM7S0FDeEI7SUFFRCxNQUFNLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsR0FBRyxjQUFjLENBQUM7SUFFL0QsZUFBZSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQztJQUVqRCxpRUFBaUU7SUFDakUsSUFBSSxtQkFBbUIsQ0FBQyxPQUFPLEVBQUU7UUFDL0IsTUFBTSxRQUFRLEdBQUcsSUFBQSx1Q0FBb0IsRUFBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDckYsTUFBTSxJQUFBLG1CQUFXLEVBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7S0FDcEQ7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSwrQkFBbUQsQ0FBQztJQUV4RCwyQkFBMkI7SUFDM0IsbUZBQW1GO0lBQ25GLDBEQUEwRDtJQUMxRCxJQUFJLGdCQUFnQixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUU7UUFDekQsTUFBTSxFQUFFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxJQUFBLHdDQUFpQixFQUM3RixZQUFZLEVBQ1osZUFBZSxDQUFDLFdBQVcsRUFDM0I7WUFDRSxHQUFHLE9BQU87WUFDVixtQkFBbUI7U0FDcEI7UUFDRCw2REFBNkQ7UUFDN0QsT0FBTyxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDMUYsQ0FBQztRQUVGLCtCQUErQixHQUFHLGdDQUFnQyxDQUFDO1FBQ25FLCtCQUErQixDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFM0QsZUFBZSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLHFDQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTdGLElBQUksVUFBVSxFQUFFO1lBQ2QsZUFBZSxDQUFDLGFBQWEsQ0FDM0IsbUJBQW1CLEVBQ25CLGdDQUFnQyxFQUNoQyxxQ0FBbUIsQ0FBQyxNQUFNLENBQzNCLENBQUM7U0FDSDtLQUNGO0lBRUQsaUNBQWlDO0lBQ2pDLCtFQUErRTtJQUMvRSxJQUFJLENBQUMsZ0JBQWdCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRTtRQUM5RSxJQUFBLHFCQUFNLEVBQ0osK0JBQStCLEVBQy9CLDRFQUE0RSxDQUM3RSxDQUFDO1FBRUYsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLDBCQUFjLEVBQ3ZELGFBQWEsRUFDYixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGVBQWUsQ0FBQyxXQUFXLEVBQzNCLCtCQUErQixFQUMvQixtQkFBbUIsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUN6QyxnQ0FBVSxFQUNWLE9BQU8sQ0FDUixDQUFDO1FBRUYsK0JBQStCLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUzRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNwRCxlQUFlLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUscUNBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDM0U7S0FDRjtJQUVELGNBQWM7SUFDZCxJQUFJLE1BQU0sRUFBRTtRQUNWLDhGQUE4RjtRQUM5RixrR0FBa0c7UUFDbEcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUEsd0JBQVUsRUFBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7S0FDeEU7SUFFRCwrQ0FBK0M7SUFDL0MsSUFBSSxPQUFPLENBQUMsZUFBZSxFQUFFO1FBQzNCLGVBQWUsQ0FBQyxhQUFhLENBQzNCLHNCQUFzQixFQUN0QixNQUFNLElBQUEsbUNBQWUsRUFBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLEVBQzlDLHFDQUFtQixDQUFDLElBQUksQ0FDekIsQ0FBQztLQUNIO0lBRUQsc0RBQXNEO0lBQ3RELGlGQUFpRjtJQUNqRixJQUFJLGFBQWEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFO1FBQ3RELElBQUk7WUFDRixNQUFNLG1CQUFtQixHQUFHLE1BQU0sSUFBQSxtREFBa0MsRUFDbEUsYUFBYSxFQUNiLGFBQWEsRUFDYixPQUFPLENBQUMsUUFBUSxJQUFJLEdBQUcsRUFDdkIsZUFBZSxDQUFDLFdBQVcsRUFDM0IsZUFBZSxDQUFDLFVBQVUsQ0FDM0IsQ0FBQztZQUNGLGVBQWUsQ0FBQyxhQUFhLENBQzNCLFdBQVcsRUFDWCxtQkFBbUIsQ0FBQyxRQUFRLEVBQzVCLHFDQUFtQixDQUFDLE9BQU8sQ0FDNUIsQ0FBQztZQUNGLGVBQWUsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDM0Q7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUUxRSxPQUFPLGVBQWUsQ0FBQztTQUN4QjtLQUNGO0lBRUQsc0RBQXNEO0lBQ3RELElBQUksY0FBYyxDQUFDO0lBQ25CLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRTtRQUNuQixNQUFNLFdBQVcsR0FBRyxJQUFBLGtDQUFtQixFQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNoRSxjQUFjLEdBQUcsQ0FBQyxHQUFHLElBQUEsZ0NBQVksRUFBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLEtBQUssTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxjQUFjLEVBQUU7WUFDbEQsSUFBSSxRQUFRLEtBQUssT0FBTyxFQUFFO2dCQUN4QixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUMvQjtpQkFBTTtnQkFDTCxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUM5QjtTQUNGO0tBQ0Y7SUFFRCw2REFBNkQ7SUFDN0QsSUFBSSxzQkFBc0IsQ0FBQztJQUMzQixJQUFJLG1CQUFtQixDQUFDLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ3BFLHNCQUFzQixHQUFHLE1BQU0sSUFBQSx1Q0FBK0IsRUFBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7S0FDN0Y7SUFFRCxJQUFBLHFCQUFhLEVBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLHNCQUFzQixDQUFDLENBQUM7SUFFdkYsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4RSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw0Q0FBNEMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFakcsK0NBQStDO0lBQy9DLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUU7UUFDcEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLElBQUEsaUJBQVUsRUFBQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3RGLCtCQUErQixDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDNUQ7SUFFRCw0Q0FBNEM7SUFDNUMsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFO1FBQ2pCLGVBQWUsQ0FBQyxhQUFhLENBQzNCLFlBQVksRUFDWixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQ2pDLHFDQUFtQixDQUFDLElBQUksQ0FDekIsQ0FBQztLQUNIO0lBRUQsT0FBTyxlQUFlLENBQUM7QUFDekIsQ0FBQztBQWpRRCxvQ0FpUUM7QUFFRCxTQUFTLCtCQUErQixDQUN0QyxPQUF1QixFQUN2QixRQUFrQixFQUNsQixNQUFnQjtJQUVoQixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRTtRQUMxQixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM3QjtJQUNELEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFO1FBQzlCLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQzlCO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBCdWlsZGVyQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9hcmNoaXRlY3QnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdub2RlOmFzc2VydCc7XG5pbXBvcnQgeyBTb3VyY2VGaWxlQ2FjaGUgfSBmcm9tICcuLi8uLi90b29scy9lc2J1aWxkL2FuZ3VsYXIvc291cmNlLWZpbGUtY2FjaGUnO1xuaW1wb3J0IHtcbiAgY3JlYXRlQnJvd3NlckNvZGVCdW5kbGVPcHRpb25zLFxuICBjcmVhdGVTZXJ2ZXJDb2RlQnVuZGxlT3B0aW9ucyxcbn0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC9hcHBsaWNhdGlvbi1jb2RlLWJ1bmRsZSc7XG5pbXBvcnQgeyBnZW5lcmF0ZUJ1ZGdldFN0YXRzIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC9idWRnZXQtc3RhdHMnO1xuaW1wb3J0IHsgQnVpbGRPdXRwdXRGaWxlVHlwZSwgQnVuZGxlckNvbnRleHQgfSBmcm9tICcuLi8uLi90b29scy9lc2J1aWxkL2J1bmRsZXItY29udGV4dCc7XG5pbXBvcnQgeyBFeGVjdXRpb25SZXN1bHQsIFJlYnVpbGRTdGF0ZSB9IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvYnVuZGxlci1leGVjdXRpb24tcmVzdWx0JztcbmltcG9ydCB7IGNoZWNrQ29tbW9uSlNNb2R1bGVzIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC9jb21tb25qcy1jaGVja2VyJztcbmltcG9ydCB7IGNyZWF0ZUdsb2JhbFNjcmlwdHNCdW5kbGVPcHRpb25zIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC9nbG9iYWwtc2NyaXB0cyc7XG5pbXBvcnQgeyBjcmVhdGVHbG9iYWxTdHlsZXNCdW5kbGVPcHRpb25zIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC9nbG9iYWwtc3R5bGVzJztcbmltcG9ydCB7IGdlbmVyYXRlSW5kZXhIdG1sIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC9pbmRleC1odG1sLWdlbmVyYXRvcic7XG5pbXBvcnQgeyBleHRyYWN0TGljZW5zZXMgfSBmcm9tICcuLi8uLi90b29scy9lc2J1aWxkL2xpY2Vuc2UtZXh0cmFjdG9yJztcbmltcG9ydCB7XG4gIGNhbGN1bGF0ZUVzdGltYXRlZFRyYW5zZmVyU2l6ZXMsXG4gIGdldFN1cHBvcnRlZE5vZGVUYXJnZXRzLFxuICBsb2dCdWlsZFN0YXRzLFxuICBsb2dNZXNzYWdlcyxcbiAgdHJhbnNmb3JtU3VwcG9ydGVkQnJvd3NlcnNUb1RhcmdldHMsXG59IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvdXRpbHMnO1xuaW1wb3J0IHsgY2hlY2tCdWRnZXRzIH0gZnJvbSAnLi4vLi4vdXRpbHMvYnVuZGxlLWNhbGN1bGF0b3InO1xuaW1wb3J0IHsgY29weUFzc2V0cyB9IGZyb20gJy4uLy4uL3V0aWxzL2NvcHktYXNzZXRzJztcbmltcG9ydCB7IG1heFdvcmtlcnMgfSBmcm9tICcuLi8uLi91dGlscy9lbnZpcm9ubWVudC1vcHRpb25zJztcbmltcG9ydCB7IHByZXJlbmRlclBhZ2VzIH0gZnJvbSAnLi4vLi4vdXRpbHMvc2VydmVyLXJlbmRlcmluZy9wcmVyZW5kZXInO1xuaW1wb3J0IHsgYXVnbWVudEFwcFdpdGhTZXJ2aWNlV29ya2VyRXNidWlsZCB9IGZyb20gJy4uLy4uL3V0aWxzL3NlcnZpY2Utd29ya2VyJztcbmltcG9ydCB7IGdldFN1cHBvcnRlZEJyb3dzZXJzIH0gZnJvbSAnLi4vLi4vdXRpbHMvc3VwcG9ydGVkLWJyb3dzZXJzJztcbmltcG9ydCB7IGlubGluZUkxOG4sIGxvYWRBY3RpdmVUcmFuc2xhdGlvbnMgfSBmcm9tICcuL2kxOG4nO1xuaW1wb3J0IHsgTm9ybWFsaXplZEFwcGxpY2F0aW9uQnVpbGRPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1saW5lcy1wZXItZnVuY3Rpb25cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleGVjdXRlQnVpbGQoXG4gIG9wdGlvbnM6IE5vcm1hbGl6ZWRBcHBsaWNhdGlvbkJ1aWxkT3B0aW9ucyxcbiAgY29udGV4dDogQnVpbGRlckNvbnRleHQsXG4gIHJlYnVpbGRTdGF0ZT86IFJlYnVpbGRTdGF0ZSxcbik6IFByb21pc2U8RXhlY3V0aW9uUmVzdWx0PiB7XG4gIGNvbnN0IHN0YXJ0VGltZSA9IHByb2Nlc3MuaHJ0aW1lLmJpZ2ludCgpO1xuXG4gIGNvbnN0IHtcbiAgICBwcm9qZWN0Um9vdCxcbiAgICB3b3Jrc3BhY2VSb290LFxuICAgIHNlcnZpY2VXb3JrZXIsXG4gICAgb3B0aW1pemF0aW9uT3B0aW9ucyxcbiAgICBzZXJ2ZXJFbnRyeVBvaW50LFxuICAgIGFzc2V0cyxcbiAgICBpbmRleEh0bWxPcHRpb25zLFxuICAgIGNhY2hlT3B0aW9ucyxcbiAgICBwcmVyZW5kZXJPcHRpb25zLFxuICAgIGFwcFNoZWxsT3B0aW9ucyxcbiAgICBzc3JPcHRpb25zLFxuICAgIHZlcmJvc2UsXG4gIH0gPSBvcHRpb25zO1xuXG4gIGNvbnN0IGJyb3dzZXJzID0gZ2V0U3VwcG9ydGVkQnJvd3NlcnMocHJvamVjdFJvb3QsIGNvbnRleHQubG9nZ2VyKTtcbiAgY29uc3QgdGFyZ2V0ID0gdHJhbnNmb3JtU3VwcG9ydGVkQnJvd3NlcnNUb1RhcmdldHMoYnJvd3NlcnMpO1xuXG4gIC8vIExvYWQgYWN0aXZlIHRyYW5zbGF0aW9ucyBpZiBpbmxpbmluZ1xuICAvLyBUT0RPOiBJbnRlZ3JhdGUgaW50byB3YXRjaCBtb2RlIGFuZCBvbmx5IGxvYWQgY2hhbmdlZCB0cmFuc2xhdGlvbnNcbiAgaWYgKG9wdGlvbnMuaTE4bk9wdGlvbnMuc2hvdWxkSW5saW5lKSB7XG4gICAgYXdhaXQgbG9hZEFjdGl2ZVRyYW5zbGF0aW9ucyhjb250ZXh0LCBvcHRpb25zLmkxOG5PcHRpb25zKTtcbiAgfVxuXG4gIC8vIFJldXNlIHJlYnVpbGQgc3RhdGUgb3IgY3JlYXRlIG5ldyBidW5kbGUgY29udGV4dHMgZm9yIGNvZGUgYW5kIGdsb2JhbCBzdHlsZXNoZWV0c1xuICBsZXQgYnVuZGxlckNvbnRleHRzID0gcmVidWlsZFN0YXRlPy5yZWJ1aWxkQ29udGV4dHM7XG4gIGNvbnN0IGNvZGVCdW5kbGVDYWNoZSA9XG4gICAgcmVidWlsZFN0YXRlPy5jb2RlQnVuZGxlQ2FjaGUgPz9cbiAgICBuZXcgU291cmNlRmlsZUNhY2hlKGNhY2hlT3B0aW9ucy5lbmFibGVkID8gY2FjaGVPcHRpb25zLnBhdGggOiB1bmRlZmluZWQpO1xuICBpZiAoYnVuZGxlckNvbnRleHRzID09PSB1bmRlZmluZWQpIHtcbiAgICBidW5kbGVyQ29udGV4dHMgPSBbXTtcblxuICAgIC8vIEJyb3dzZXIgYXBwbGljYXRpb24gY29kZVxuICAgIGJ1bmRsZXJDb250ZXh0cy5wdXNoKFxuICAgICAgbmV3IEJ1bmRsZXJDb250ZXh0KFxuICAgICAgICB3b3Jrc3BhY2VSb290LFxuICAgICAgICAhIW9wdGlvbnMud2F0Y2gsXG4gICAgICAgIGNyZWF0ZUJyb3dzZXJDb2RlQnVuZGxlT3B0aW9ucyhvcHRpb25zLCB0YXJnZXQsIGNvZGVCdW5kbGVDYWNoZSksXG4gICAgICApLFxuICAgICk7XG5cbiAgICAvLyBHbG9iYWwgU3R5bGVzaGVldHNcbiAgICBpZiAob3B0aW9ucy5nbG9iYWxTdHlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChjb25zdCBpbml0aWFsIG9mIFt0cnVlLCBmYWxzZV0pIHtcbiAgICAgICAgY29uc3QgYnVuZGxlT3B0aW9ucyA9IGNyZWF0ZUdsb2JhbFN0eWxlc0J1bmRsZU9wdGlvbnMoXG4gICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICB0YXJnZXQsXG4gICAgICAgICAgaW5pdGlhbCxcbiAgICAgICAgICBjb2RlQnVuZGxlQ2FjaGU/LmxvYWRSZXN1bHRDYWNoZSxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGJ1bmRsZU9wdGlvbnMpIHtcbiAgICAgICAgICBidW5kbGVyQ29udGV4dHMucHVzaChcbiAgICAgICAgICAgIG5ldyBCdW5kbGVyQ29udGV4dCh3b3Jrc3BhY2VSb290LCAhIW9wdGlvbnMud2F0Y2gsIGJ1bmRsZU9wdGlvbnMsICgpID0+IGluaXRpYWwpLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBHbG9iYWwgU2NyaXB0c1xuICAgIGlmIChvcHRpb25zLmdsb2JhbFNjcmlwdHMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChjb25zdCBpbml0aWFsIG9mIFt0cnVlLCBmYWxzZV0pIHtcbiAgICAgICAgY29uc3QgYnVuZGxlT3B0aW9ucyA9IGNyZWF0ZUdsb2JhbFNjcmlwdHNCdW5kbGVPcHRpb25zKG9wdGlvbnMsIGluaXRpYWwpO1xuICAgICAgICBpZiAoYnVuZGxlT3B0aW9ucykge1xuICAgICAgICAgIGJ1bmRsZXJDb250ZXh0cy5wdXNoKFxuICAgICAgICAgICAgbmV3IEJ1bmRsZXJDb250ZXh0KHdvcmtzcGFjZVJvb3QsICEhb3B0aW9ucy53YXRjaCwgYnVuZGxlT3B0aW9ucywgKCkgPT4gaW5pdGlhbCksXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNlcnZlciBhcHBsaWNhdGlvbiBjb2RlXG4gICAgLy8gU2tpcCBzZXJ2ZXIgYnVpbGQgd2hlbiBub24gb2YgdGhlIGZlYXR1cmVzIGFyZSBlbmFibGVkLlxuICAgIGlmIChzZXJ2ZXJFbnRyeVBvaW50ICYmIChwcmVyZW5kZXJPcHRpb25zIHx8IGFwcFNoZWxsT3B0aW9ucyB8fCBzc3JPcHRpb25zKSkge1xuICAgICAgY29uc3Qgbm9kZVRhcmdldHMgPSBnZXRTdXBwb3J0ZWROb2RlVGFyZ2V0cygpO1xuICAgICAgYnVuZGxlckNvbnRleHRzLnB1c2goXG4gICAgICAgIG5ldyBCdW5kbGVyQ29udGV4dChcbiAgICAgICAgICB3b3Jrc3BhY2VSb290LFxuICAgICAgICAgICEhb3B0aW9ucy53YXRjaCxcbiAgICAgICAgICBjcmVhdGVTZXJ2ZXJDb2RlQnVuZGxlT3B0aW9ucyhvcHRpb25zLCBbLi4udGFyZ2V0LCAuLi5ub2RlVGFyZ2V0c10sIGNvZGVCdW5kbGVDYWNoZSksXG4gICAgICAgICAgKCkgPT4gZmFsc2UsXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGJ1bmRsaW5nUmVzdWx0ID0gYXdhaXQgQnVuZGxlckNvbnRleHQuYnVuZGxlQWxsKGJ1bmRsZXJDb250ZXh0cyk7XG5cbiAgLy8gTG9nIGFsbCB3YXJuaW5ncyBhbmQgZXJyb3JzIGdlbmVyYXRlZCBkdXJpbmcgYnVuZGxpbmdcbiAgYXdhaXQgbG9nTWVzc2FnZXMoY29udGV4dCwgYnVuZGxpbmdSZXN1bHQpO1xuXG4gIGNvbnN0IGV4ZWN1dGlvblJlc3VsdCA9IG5ldyBFeGVjdXRpb25SZXN1bHQoYnVuZGxlckNvbnRleHRzLCBjb2RlQnVuZGxlQ2FjaGUpO1xuXG4gIC8vIFJldHVybiBpZiB0aGUgYnVuZGxpbmcgaGFzIGVycm9yc1xuICBpZiAoYnVuZGxpbmdSZXN1bHQuZXJyb3JzKSB7XG4gICAgcmV0dXJuIGV4ZWN1dGlvblJlc3VsdDtcbiAgfVxuXG4gIGNvbnN0IHsgbWV0YWZpbGUsIGluaXRpYWxGaWxlcywgb3V0cHV0RmlsZXMgfSA9IGJ1bmRsaW5nUmVzdWx0O1xuXG4gIGV4ZWN1dGlvblJlc3VsdC5vdXRwdXRGaWxlcy5wdXNoKC4uLm91dHB1dEZpbGVzKTtcblxuICAvLyBDaGVjayBtZXRhZmlsZSBmb3IgQ29tbW9uSlMgbW9kdWxlIHVzYWdlIGlmIG9wdGltaXppbmcgc2NyaXB0c1xuICBpZiAob3B0aW1pemF0aW9uT3B0aW9ucy5zY3JpcHRzKSB7XG4gICAgY29uc3QgbWVzc2FnZXMgPSBjaGVja0NvbW1vbkpTTW9kdWxlcyhtZXRhZmlsZSwgb3B0aW9ucy5hbGxvd2VkQ29tbW9uSnNEZXBlbmRlbmNpZXMpO1xuICAgIGF3YWl0IGxvZ01lc3NhZ2VzKGNvbnRleHQsIHsgd2FybmluZ3M6IG1lc3NhZ2VzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGV4IEhUTUwgY29udGVudCB3aXRob3V0IENTUyBpbmxpbmluZyB0byBiZSB1c2VkIGZvciBzZXJ2ZXIgcmVuZGVyaW5nIChBcHBTaGVsbCwgU1NHIGFuZCBTU1IpLlxuICAgKlxuICAgKiBOT1RFOiB3ZSBkb24ndCBwZXJmb3JtIGNyaXRpY2FsIENTUyBpbmxpbmluZyBhcyB0aGlzIHdpbGwgYmUgZG9uZSBkdXJpbmcgc2VydmVyIHJlbmRlcmluZy5cbiAgICovXG4gIGxldCBpbmRleENvbnRlbnRPdXRwdXROb0Nzc0lubGluaW5nOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLy8gR2VuZXJhdGUgaW5kZXggSFRNTCBmaWxlXG4gIC8vIElmIGxvY2FsaXphdGlvbiBpcyBlbmFibGVkLCBpbmRleCBnZW5lcmF0aW9uIGlzIGhhbmRsZWQgaW4gdGhlIGlubGluaW5nIHByb2Nlc3MuXG4gIC8vIE5PVEU6IExvY2FsaXphdGlvbiB3aXRoIFNTUiBpcyBub3QgY3VycmVudGx5IHN1cHBvcnRlZC5cbiAgaWYgKGluZGV4SHRtbE9wdGlvbnMgJiYgIW9wdGlvbnMuaTE4bk9wdGlvbnMuc2hvdWxkSW5saW5lKSB7XG4gICAgY29uc3QgeyBjb250ZW50LCBjb250ZW50V2l0aG91dENyaXRpY2FsQ3NzSW5saW5lZCwgZXJyb3JzLCB3YXJuaW5ncyB9ID0gYXdhaXQgZ2VuZXJhdGVJbmRleEh0bWwoXG4gICAgICBpbml0aWFsRmlsZXMsXG4gICAgICBleGVjdXRpb25SZXN1bHQub3V0cHV0RmlsZXMsXG4gICAgICB7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIG9wdGltaXphdGlvbk9wdGlvbnMsXG4gICAgICB9LFxuICAgICAgLy8gU2V0IGxhbmcgYXR0cmlidXRlIHRvIHRoZSBkZWZpbmVkIHNvdXJjZSBsb2NhbGUgaWYgcHJlc2VudFxuICAgICAgb3B0aW9ucy5pMThuT3B0aW9ucy5oYXNEZWZpbmVkU291cmNlTG9jYWxlID8gb3B0aW9ucy5pMThuT3B0aW9ucy5zb3VyY2VMb2NhbGUgOiB1bmRlZmluZWQsXG4gICAgKTtcblxuICAgIGluZGV4Q29udGVudE91dHB1dE5vQ3NzSW5saW5pbmcgPSBjb250ZW50V2l0aG91dENyaXRpY2FsQ3NzSW5saW5lZDtcbiAgICBwcmludFdhcm5pbmdzQW5kRXJyb3JzVG9Db25zb2xlKGNvbnRleHQsIHdhcm5pbmdzLCBlcnJvcnMpO1xuXG4gICAgZXhlY3V0aW9uUmVzdWx0LmFkZE91dHB1dEZpbGUoaW5kZXhIdG1sT3B0aW9ucy5vdXRwdXQsIGNvbnRlbnQsIEJ1aWxkT3V0cHV0RmlsZVR5cGUuQnJvd3Nlcik7XG5cbiAgICBpZiAoc3NyT3B0aW9ucykge1xuICAgICAgZXhlY3V0aW9uUmVzdWx0LmFkZE91dHB1dEZpbGUoXG4gICAgICAgICdpbmRleC5zZXJ2ZXIuaHRtbCcsXG4gICAgICAgIGNvbnRlbnRXaXRob3V0Q3JpdGljYWxDc3NJbmxpbmVkLFxuICAgICAgICBCdWlsZE91dHB1dEZpbGVUeXBlLlNlcnZlcixcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLy8gUHJlLXJlbmRlciAoU1NHKSBhbmQgQXBwLXNoZWxsXG4gIC8vIElmIGxvY2FsaXphdGlvbiBpcyBlbmFibGVkLCBwcmVyZW5kZXJpbmcgaXMgaGFuZGxlZCBpbiB0aGUgaW5saW5pbmcgcHJvY2Vzcy5cbiAgaWYgKChwcmVyZW5kZXJPcHRpb25zIHx8IGFwcFNoZWxsT3B0aW9ucykgJiYgIW9wdGlvbnMuaTE4bk9wdGlvbnMuc2hvdWxkSW5saW5lKSB7XG4gICAgYXNzZXJ0KFxuICAgICAgaW5kZXhDb250ZW50T3V0cHV0Tm9Dc3NJbmxpbmluZyxcbiAgICAgICdUaGUgXCJpbmRleFwiIG9wdGlvbiBpcyByZXF1aXJlZCB3aGVuIHVzaW5nIHRoZSBcInNzZ1wiIG9yIFwiYXBwU2hlbGxcIiBvcHRpb25zLicsXG4gICAgKTtcblxuICAgIGNvbnN0IHsgb3V0cHV0LCB3YXJuaW5ncywgZXJyb3JzIH0gPSBhd2FpdCBwcmVyZW5kZXJQYWdlcyhcbiAgICAgIHdvcmtzcGFjZVJvb3QsXG4gICAgICBhcHBTaGVsbE9wdGlvbnMsXG4gICAgICBwcmVyZW5kZXJPcHRpb25zLFxuICAgICAgZXhlY3V0aW9uUmVzdWx0Lm91dHB1dEZpbGVzLFxuICAgICAgaW5kZXhDb250ZW50T3V0cHV0Tm9Dc3NJbmxpbmluZyxcbiAgICAgIG9wdGltaXphdGlvbk9wdGlvbnMuc3R5bGVzLmlubGluZUNyaXRpY2FsLFxuICAgICAgbWF4V29ya2VycyxcbiAgICAgIHZlcmJvc2UsXG4gICAgKTtcblxuICAgIHByaW50V2FybmluZ3NBbmRFcnJvcnNUb0NvbnNvbGUoY29udGV4dCwgd2FybmluZ3MsIGVycm9ycyk7XG5cbiAgICBmb3IgKGNvbnN0IFtwYXRoLCBjb250ZW50XSBvZiBPYmplY3QuZW50cmllcyhvdXRwdXQpKSB7XG4gICAgICBleGVjdXRpb25SZXN1bHQuYWRkT3V0cHV0RmlsZShwYXRoLCBjb250ZW50LCBCdWlsZE91dHB1dEZpbGVUeXBlLkJyb3dzZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvcHkgYXNzZXRzXG4gIGlmIChhc3NldHMpIHtcbiAgICAvLyBUaGUgd2VicGFjayBjb3B5IGFzc2V0cyBoZWxwZXIgaXMgdXNlZCB3aXRoIG5vIGJhc2UgcGF0aHMgZGVmaW5lZC4gVGhpcyBwcmV2ZW50cyB0aGUgaGVscGVyXG4gICAgLy8gZnJvbSBkaXJlY3RseSB3cml0aW5nIHRvIGRpc2suIFRoaXMgc2hvdWxkIGV2ZW50dWFsbHkgYmUgcmVwbGFjZWQgd2l0aCBhIG1vcmUgb3B0aW1pemVkIGhlbHBlci5cbiAgICBleGVjdXRpb25SZXN1bHQuYWRkQXNzZXRzKGF3YWl0IGNvcHlBc3NldHMoYXNzZXRzLCBbXSwgd29ya3NwYWNlUm9vdCkpO1xuICB9XG5cbiAgLy8gRXh0cmFjdCBhbmQgd3JpdGUgbGljZW5zZXMgZm9yIHVzZWQgcGFja2FnZXNcbiAgaWYgKG9wdGlvbnMuZXh0cmFjdExpY2Vuc2VzKSB7XG4gICAgZXhlY3V0aW9uUmVzdWx0LmFkZE91dHB1dEZpbGUoXG4gICAgICAnM3JkcGFydHlsaWNlbnNlcy50eHQnLFxuICAgICAgYXdhaXQgZXh0cmFjdExpY2Vuc2VzKG1ldGFmaWxlLCB3b3Jrc3BhY2VSb290KSxcbiAgICAgIEJ1aWxkT3V0cHV0RmlsZVR5cGUuUm9vdCxcbiAgICApO1xuICB9XG5cbiAgLy8gQXVnbWVudCB0aGUgYXBwbGljYXRpb24gd2l0aCBzZXJ2aWNlIHdvcmtlciBzdXBwb3J0XG4gIC8vIElmIGxvY2FsaXphdGlvbiBpcyBlbmFibGVkLCBzZXJ2aWNlIHdvcmtlciBpcyBoYW5kbGVkIGluIHRoZSBpbmxpbmluZyBwcm9jZXNzLlxuICBpZiAoc2VydmljZVdvcmtlciAmJiAhb3B0aW9ucy5pMThuT3B0aW9ucy5zaG91bGRJbmxpbmUpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2VydmljZVdvcmtlclJlc3VsdCA9IGF3YWl0IGF1Z21lbnRBcHBXaXRoU2VydmljZVdvcmtlckVzYnVpbGQoXG4gICAgICAgIHdvcmtzcGFjZVJvb3QsXG4gICAgICAgIHNlcnZpY2VXb3JrZXIsXG4gICAgICAgIG9wdGlvbnMuYmFzZUhyZWYgfHwgJy8nLFxuICAgICAgICBleGVjdXRpb25SZXN1bHQub3V0cHV0RmlsZXMsXG4gICAgICAgIGV4ZWN1dGlvblJlc3VsdC5hc3NldEZpbGVzLFxuICAgICAgKTtcbiAgICAgIGV4ZWN1dGlvblJlc3VsdC5hZGRPdXRwdXRGaWxlKFxuICAgICAgICAnbmdzdy5qc29uJyxcbiAgICAgICAgc2VydmljZVdvcmtlclJlc3VsdC5tYW5pZmVzdCxcbiAgICAgICAgQnVpbGRPdXRwdXRGaWxlVHlwZS5Ccm93c2VyLFxuICAgICAgKTtcbiAgICAgIGV4ZWN1dGlvblJlc3VsdC5hZGRBc3NldHMoc2VydmljZVdvcmtlclJlc3VsdC5hc3NldEZpbGVzKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29udGV4dC5sb2dnZXIuZXJyb3IoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBgJHtlcnJvcn1gKTtcblxuICAgICAgcmV0dXJuIGV4ZWN1dGlvblJlc3VsdDtcbiAgICB9XG4gIH1cblxuICAvLyBBbmFseXplIGZpbGVzIGZvciBidW5kbGUgYnVkZ2V0IGZhaWx1cmVzIGlmIHByZXNlbnRcbiAgbGV0IGJ1ZGdldEZhaWx1cmVzO1xuICBpZiAob3B0aW9ucy5idWRnZXRzKSB7XG4gICAgY29uc3QgY29tcGF0U3RhdHMgPSBnZW5lcmF0ZUJ1ZGdldFN0YXRzKG1ldGFmaWxlLCBpbml0aWFsRmlsZXMpO1xuICAgIGJ1ZGdldEZhaWx1cmVzID0gWy4uLmNoZWNrQnVkZ2V0cyhvcHRpb25zLmJ1ZGdldHMsIGNvbXBhdFN0YXRzLCB0cnVlKV07XG4gICAgZm9yIChjb25zdCB7IHNldmVyaXR5LCBtZXNzYWdlIH0gb2YgYnVkZ2V0RmFpbHVyZXMpIHtcbiAgICAgIGlmIChzZXZlcml0eSA9PT0gJ2Vycm9yJykge1xuICAgICAgICBjb250ZXh0LmxvZ2dlci5lcnJvcihtZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnRleHQubG9nZ2VyLndhcm4obWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FsY3VsYXRlIGVzdGltYXRlZCB0cmFuc2ZlciBzaXplIGlmIHNjcmlwdHMgYXJlIG9wdGltaXplZFxuICBsZXQgZXN0aW1hdGVkVHJhbnNmZXJTaXplcztcbiAgaWYgKG9wdGltaXphdGlvbk9wdGlvbnMuc2NyaXB0cyB8fCBvcHRpbWl6YXRpb25PcHRpb25zLnN0eWxlcy5taW5pZnkpIHtcbiAgICBlc3RpbWF0ZWRUcmFuc2ZlclNpemVzID0gYXdhaXQgY2FsY3VsYXRlRXN0aW1hdGVkVHJhbnNmZXJTaXplcyhleGVjdXRpb25SZXN1bHQub3V0cHV0RmlsZXMpO1xuICB9XG5cbiAgbG9nQnVpbGRTdGF0cyhjb250ZXh0LCBtZXRhZmlsZSwgaW5pdGlhbEZpbGVzLCBidWRnZXRGYWlsdXJlcywgZXN0aW1hdGVkVHJhbnNmZXJTaXplcyk7XG5cbiAgY29uc3QgYnVpbGRUaW1lID0gTnVtYmVyKHByb2Nlc3MuaHJ0aW1lLmJpZ2ludCgpIC0gc3RhcnRUaW1lKSAvIDEwICoqIDk7XG4gIGNvbnRleHQubG9nZ2VyLmluZm8oYEFwcGxpY2F0aW9uIGJ1bmRsZSBnZW5lcmF0aW9uIGNvbXBsZXRlLiBbJHtidWlsZFRpbWUudG9GaXhlZCgzKX0gc2Vjb25kc11gKTtcblxuICAvLyBQZXJmb3JtIGkxOG4gdHJhbnNsYXRpb24gaW5saW5pbmcgaWYgZW5hYmxlZFxuICBpZiAob3B0aW9ucy5pMThuT3B0aW9ucy5zaG91bGRJbmxpbmUpIHtcbiAgICBjb25zdCB7IGVycm9ycywgd2FybmluZ3MgfSA9IGF3YWl0IGlubGluZUkxOG4ob3B0aW9ucywgZXhlY3V0aW9uUmVzdWx0LCBpbml0aWFsRmlsZXMpO1xuICAgIHByaW50V2FybmluZ3NBbmRFcnJvcnNUb0NvbnNvbGUoY29udGV4dCwgd2FybmluZ3MsIGVycm9ycyk7XG4gIH1cblxuICAvLyBXcml0ZSBtZXRhZmlsZSBpZiBzdGF0cyBvcHRpb24gaXMgZW5hYmxlZFxuICBpZiAob3B0aW9ucy5zdGF0cykge1xuICAgIGV4ZWN1dGlvblJlc3VsdC5hZGRPdXRwdXRGaWxlKFxuICAgICAgJ3N0YXRzLmpzb24nLFxuICAgICAgSlNPTi5zdHJpbmdpZnkobWV0YWZpbGUsIG51bGwsIDIpLFxuICAgICAgQnVpbGRPdXRwdXRGaWxlVHlwZS5Sb290LFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gZXhlY3V0aW9uUmVzdWx0O1xufVxuXG5mdW5jdGlvbiBwcmludFdhcm5pbmdzQW5kRXJyb3JzVG9Db25zb2xlKFxuICBjb250ZXh0OiBCdWlsZGVyQ29udGV4dCxcbiAgd2FybmluZ3M6IHN0cmluZ1tdLFxuICBlcnJvcnM6IHN0cmluZ1tdLFxuKTogdm9pZCB7XG4gIGZvciAoY29uc3QgZXJyb3Igb2YgZXJyb3JzKSB7XG4gICAgY29udGV4dC5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICB9XG4gIGZvciAoY29uc3Qgd2FybmluZyBvZiB3YXJuaW5ncykge1xuICAgIGNvbnRleHQubG9nZ2VyLndhcm4od2FybmluZyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -9,6 +9,7 @@
|
|
|
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");
|
|
12
13
|
const i18n_inliner_1 = require("../../tools/esbuild/i18n-inliner");
|
|
13
14
|
const index_html_generator_1 = require("../../tools/esbuild/index-html-generator");
|
|
14
15
|
const utils_1 = require("../../tools/esbuild/utils");
|
|
@@ -50,7 +51,7 @@ async function inlineI18n(options, executionResult, initialFiles) {
|
|
|
50
51
|
...options,
|
|
51
52
|
baseHref,
|
|
52
53
|
}, locale);
|
|
53
|
-
localeOutputFiles.push((0, utils_1.createOutputFileFromText)(options.indexHtmlOptions.output, content));
|
|
54
|
+
localeOutputFiles.push((0, utils_1.createOutputFileFromText)(options.indexHtmlOptions.output, content, bundler_context_1.BuildOutputFileType.Browser));
|
|
54
55
|
inlineResult.errors.push(...errors);
|
|
55
56
|
inlineResult.warnings.push(...warnings);
|
|
56
57
|
// Pre-render (SSG) and App-shell
|
|
@@ -59,14 +60,14 @@ async function inlineI18n(options, executionResult, initialFiles) {
|
|
|
59
60
|
inlineResult.errors.push(...errors);
|
|
60
61
|
inlineResult.warnings.push(...warnings);
|
|
61
62
|
for (const [path, content] of Object.entries(output)) {
|
|
62
|
-
localeOutputFiles.push((0, utils_1.createOutputFileFromText)(path, content));
|
|
63
|
+
localeOutputFiles.push((0, utils_1.createOutputFileFromText)(path, content, bundler_context_1.BuildOutputFileType.Browser));
|
|
63
64
|
}
|
|
64
65
|
}
|
|
65
66
|
}
|
|
66
67
|
if (options.serviceWorker) {
|
|
67
68
|
try {
|
|
68
69
|
const serviceWorkerResult = await (0, service_worker_1.augmentAppWithServiceWorkerEsbuild)(options.workspaceRoot, options.serviceWorker, baseHref || '/', localeOutputFiles, executionResult.assetFiles);
|
|
69
|
-
localeOutputFiles.push((0, utils_1.createOutputFileFromText)('ngsw.json', serviceWorkerResult.manifest));
|
|
70
|
+
localeOutputFiles.push((0, utils_1.createOutputFileFromText)('ngsw.json', serviceWorkerResult.manifest, bundler_context_1.BuildOutputFileType.Browser));
|
|
70
71
|
executionResult.assetFiles.push(...serviceWorkerResult.assetFiles);
|
|
71
72
|
}
|
|
72
73
|
catch (error) {
|
|
@@ -136,4 +137,4 @@ async function loadActiveTranslations(context, i18n) {
|
|
|
136
137
|
}
|
|
137
138
|
}
|
|
138
139
|
exports.loadActiveTranslations = loadActiveTranslations;
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL2J1aWxkZXJzL2FwcGxpY2F0aW9uL2kxOG4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBR0gseUNBQWlDO0FBR2pDLG1FQUErRDtBQUMvRCxtRkFBNkU7QUFDN0UscURBQXFFO0FBQ3JFLHlFQUE2RDtBQUM3RCwyREFBNEQ7QUFDNUQscUVBQXdFO0FBQ3hFLHNFQUF3RTtBQUN4RSwrREFBZ0Y7QUFDaEYseUNBQTBDO0FBRzFDOzs7Ozs7R0FNRztBQUNJLEtBQUssVUFBVSxVQUFVLENBQzlCLE9BQTBDLEVBQzFDLGVBQWdDLEVBQ2hDLFlBQTRDO0lBRTVDLGdHQUFnRztJQUNoRyxNQUFNLE9BQU8sR0FBRyxJQUFJLDBCQUFXLENBQzdCO1FBQ0Usa0JBQWtCLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQywwQkFBMEIsSUFBSSxTQUFTO1FBQy9FLFdBQVcsRUFBRSxlQUFlLENBQUMsV0FBVztRQUN4QyxjQUFjLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixDQUFDLE9BQU87S0FDcEQsRUFDRCxnQ0FBVSxDQUNYLENBQUM7SUFFRixNQUFNLFlBQVksR0FBNkM7UUFDN0QsTUFBTSxFQUFFLEVBQUU7UUFDVixRQUFRLEVBQUUsRUFBRTtLQUNiLENBQUM7SUFFRixvRkFBb0Y7SUFDcEYsTUFBTSxrQkFBa0IsR0FBRyxFQUFFLENBQUM7SUFDOUIsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDN0IsSUFBSTtRQUNGLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUU7WUFDdEQsK0RBQStEO1lBQy9ELE1BQU0saUJBQWlCLEdBQUcsTUFBTSxPQUFPLENBQUMsZUFBZSxDQUNyRCxNQUFNLEVBQ04sT0FBTyxD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UUFBUSxJQUFJLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztLQUNoRjtJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHNCQUFzQixDQUMxQyxPQUF1QixFQUN2QixJQUFzRDtJQUV0RCxpREFBaUQ7SUFDakQsSUFBSSxNQUFNLENBQUM7SUFDWCxLQUFLLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDekQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25FLFNBQVM7U0FDVjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUN0QixTQUFTO1NBQ1Y7UUFFRCxNQUFNLEtBQUssTUFBTSxJQUFBLDJDQUF1QixHQUFFLENBQUM7UUFFM0MsSUFBQSwrQkFBZ0IsRUFDZCxNQUFNLEVBQ04sSUFBSSxFQUNKLE9BQU8sQ0FBQyxhQUFhLEVBQ3JCLE1BQU0sRUFDTjtZQUNFLElBQUksQ0FBQyxPQUFPO2dCQUNWLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQy9CLENBQUM7WUFDRCxLQUFLLENBQUMsT0FBTztnQkFDWCxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzNCLENBQUM7U0FDRixFQUNELFNBQVMsRUFDVCxJQUFJLENBQUMsNEJBQTRCLENBQ2xDLENBQUM7S0FDSDtBQUNILENBQUM7QUFsQ0Qsd0RBa0NDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7IEJ1aWxkZXJDb250ZXh0IH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2FyY2hpdGVjdCc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IEluaXRpYWxGaWxlUmVjb3JkIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC9idW5kbGVyLWNvbnRleHQnO1xuaW1wb3J0IHsgRXhlY3V0aW9uUmVzdWx0IH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC9idW5kbGVyLWV4ZWN1dGlvbi1yZXN1bHQnO1xuaW1wb3J0IHsgSTE4bklubGluZXIgfSBmcm9tICcuLi8uLi90b29scy9lc2J1aWxkL2kxOG4taW5saW5lcic7XG5pbXBvcnQgeyBnZW5lcmF0ZUluZGV4SHRtbCB9IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvaW5kZXgtaHRtbC1nZW5lcmF0b3InO1xuaW1wb3J0IHsgY3JlYXRlT3V0cHV0RmlsZUZyb21UZXh0IH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC91dGlscyc7XG5pbXBvcnQgeyBtYXhXb3JrZXJzIH0gZnJvbSAnLi4vLi4vdXRpbHMvZW52aXJvbm1lbnQtb3B0aW9ucyc7XG5pbXBvcnQgeyBsb2FkVHJhbnNsYXRpb25zIH0gZnJvbSAnLi4vLi4vdXRpbHMvaTE4bi1vcHRpb25zJztcbmltcG9ydCB7IGNyZWF0ZVRyYW5zbGF0aW9uTG9hZGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9hZC10cmFuc2xhdGlvbnMnO1xuaW1wb3J0IHsgcHJlcmVuZGVyUGFnZXMgfSBmcm9tICcuLi8uLi91dGlscy9zZXJ2ZXItcmVuZGVyaW5nL3ByZXJlbmRlcic7XG5pbXBvcnQgeyBhdWdtZW50QXBwV2l0aFNlcnZpY2VXb3JrZXJFc2J1aWxkIH0gZnJvbSAnLi4vLi4vdXRpbHMvc2VydmljZS13b3JrZXInO1xuaW1wb3J0IHsgdXJsSm9pbiB9IGZyb20gJy4uLy4uL3V0aWxzL3VybCc7XG5pbXBvcnQgeyBOb3JtYWxpemVkQXBwbGljYXRpb25CdWlsZE9wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMnO1xuXG4vKipcbiAqIElubGluZXMgYWxsIGFjdGl2ZSBsb2NhbGVzIGFzIHNwZWNpZmllZCBieSB0aGUgYXBwbGljYXRpb24gYnVpbGQgb3B0aW9ucyBpbnRvIGFsbFxuICogYXBwbGljYXRpb24gSmF2YVNjcmlwdCBmaWxlcyBjcmVhdGVkIGR1cmluZyB0aGUgYnVpbGQuXG4gKiBAcGFyYW0gb3B0aW9ucyBUaGUgbm9ybWFsaXplZCBhcHBsaWNhdGlvbiBidWlsZGVyIG9wdGlvbnMgdXNlZCB0byBjcmVhdGUgdGhlIGJ1aWxkLlxuICogQHBhcmFtIGV4ZWN1dGlvblJlc3VsdCBUaGUgcmVzdWx0IG9mIGFuIGV4ZWN1dGVkIGJ1aWxkLlxuICogQHBhcmFtIGluaXRpYWxGaWxlcyBBIG1hcCBjb250YWluaW5nIGluaXRpYWwgZmlsZSBpbmZvcm1hdGlvbiBmb3IgdGhlIGV4ZWN1dGVkIGJ1aWxkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW5saW5lSTE4bihcbiAgb3B0aW9uczogTm9ybWFsaXplZEFwcGxpY2F0aW9uQnVpbGRPcHRpb25zLFxuICBleGVjdXRpb25SZXN1bHQ6IEV4ZWN1dGlvblJlc3VsdCxcbiAgaW5pdGlhbEZpbGVzOiBNYXA8c3RyaW5nLCBJbml0aWFsRmlsZVJlY29yZD4sXG4pOiBQcm9taXNlPHsgZXJyb3JzOiBzdHJpbmdbXTsgd2FybmluZ3M6IHN0cmluZ1tdIH0+IHtcbiAgLy8gQ3JlYXRlIHRoZSBtdWx0aS10aHJlYWRlZCBpbmxpbmVyIHdpdGggY29tbW9uIG9wdGlvbnMgYW5kIHRoZSBmaWxlcyBnZW5lcmF0ZWQgZnJvbSB0aGUgYnVpbGQuXG4gIGNvbnN0IGlubGluZXIgPSBuZXcgSTE4bklubGluZXIoXG4gICAge1xuICAgICAgbWlzc2luZ1RyYW5zbGF0aW9uOiBvcHRpb25zLmkxOG5PcHRpb25zLm1pc3NpbmdUcmFuc2xhdGlvbkJlaGF2aW9yID8/ICd3YXJuaW5nJyxcbiAgICAgIG91dHB1dEZpbGVzOiBleGVjdXRpb25SZXN1bHQub3V0cHV0RmlsZXMsXG4gICAgICBzaG91bGRPcHRpbWl6ZTogb3B0aW9ucy5vcHRpbWl6YXRpb25PcHRpb25zLnNjcmlwdHMsXG4gICAgfSxcbiAgICBtYXhXb3JrZXJzLFxuICApO1xuXG4gIGNvbnN0IGlubGluZVJlc3VsdDogeyBlcnJvcnM6IHN0cmluZ1tdOyB3YXJuaW5nczogc3RyaW5nW10gfSA9IHtcbiAgICBlcnJvcnM6IFtdLFxuICAgIHdhcm5pbmdzOiBbXSxcbiAgfTtcblxuICAvLyBGb3IgZWFjaCBhY3RpdmUgbG9jYWxlLCB1c2UgdGhlIGlubGluZXIgdG8gcHJvY2VzcyB0aGUgb3V0cHV0IGZpbGVzIG9mIHRoZSBidWlsZC5cbiAgY29uc3QgdXBkYXRlZE91dHB1dEZpbGVzID0gW107XG4gIGNvbnN0IHVwZGF0ZWRBc3NldEZpbGVzID0gW107XG4gIHRyeSB7XG4gICAgZm9yIChjb25zdCBsb2NhbGUgb2Ygb3B0aW9ucy5pMThuT3B0aW9ucy5pbmxpbmVMb2NhbGVzKSB7XG4gICAgICAvLyBBIGxvY2FsZSBzcGVjaWZpYyBzZXQgb2YgZmlsZXMgaXMgcmV0dXJuZWQgZnJvbSB0aGUgaW5saW5lci5cbiAgICAgIGNvbnN0IGxvY2FsZU91dHB1dEZpbGVzID0gYXdhaXQgaW5saW5lci5pbmxpbmVGb3JMb2NhbGUoXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgb3B0aW9ucy5pMThuT3B0aW9ucy5sb2NhbGVzW2xvY2FsZV0udHJhbnNsYXRpb24sXG4gICAgICApO1xuXG4gICAgICBjb25zdCBiYXNlSHJlZiA9XG4gICAgICAgIGdldExvY2FsZUJhc2VIcmVmKG9wdGlvbnMuYmFzZUhyZWYsIG9wdGlvbnMuaTE4bk9wdGlvbnMsIGxvY2FsZSkgPz8gb3B0aW9ucy5iYXNlSHJlZjtcblxuICAgICAgLy8gR2VuZXJhdGUgbG9jYWxlIHNwZWNpZmljIGluZGV4IEhUTUwgZmlsZXNcbiAgICAgIGlmIChvcHRpb25zLmluZGV4SHRtbE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgeyBjb250ZW50LCBjb250ZW50V2l0aG91dENyaXRpY2FsQ3NzSW5saW5lZCwgZXJyb3JzLCB3YXJuaW5ncyB9ID1cbiAgICAgICAgICBhd2FpdCBnZW5lcmF0ZUluZGV4SHRtbChcbiAgICAgICAgICAgIGluaXRpYWxGaWxlcyxcbiAgICAgICAgICAgIGxvY2FsZU91dHB1dEZpbGVzLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgICAgICBiYXNlSHJlZixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgKTtcblxuICAgICAgICBsb2NhbGVPdXRwdXRGaWxlcy5wdXNoKGNyZWF0ZU91dHB1dEZpbGVGcm9tVGV4dChvcHRpb25zLmluZGV4SHRtbE9wdGlvbnMub3V0cHV0LCBjb250ZW50KSk7XG4gICAgICAgIGlubGluZVJlc3VsdC5lcnJvcnMucHVzaCguLi5lcnJvcnMpO1xuICAgICAgICBpbmxpbmVSZXN1bHQud2FybmluZ3MucHVzaCguLi53YXJuaW5ncyk7XG5cbiAgICAgICAgLy8gUHJlLXJlbmRlciAoU1NHKSBhbmQgQXBwLXNoZWxsXG4gICAgICAgIGlmIChvcHRpb25zLnByZXJlbmRlck9wdGlvbnMgfHwgb3B0aW9ucy5hcHBTaGVsbE9wdGlvbnMpIHtcbiAgICAgICAgICBjb25zdCB7IG91dHB1dCwgd2FybmluZ3MsIGVycm9ycyB9ID0gYXdhaXQgcHJlcmVuZGVyUGFnZXMoXG4gICAgICAgICAgICBvcHRpb25zLndvcmtzcGFjZVJvb3QsXG4gICAgICAgICAgICBvcHRpb25zLmFwcFNoZWxsT3B0aW9ucyxcbiAgICAgICAgICAgIG9wdGlvbnMucHJlcmVuZGVyT3B0aW9ucyxcbiAgICAgICAgICAgIGxvY2FsZU91dHB1dEZpbGVzLFxuICAgICAgICAgICAgY29udGVudFdpdGhvdXRDcml0aWNhbENzc0lubGluZWQsXG4gICAgICAgICAgICBvcHRpb25zLm9wdGltaXphdGlvbk9wdGlvbnMuc3R5bGVzLmlubGluZUNyaXRpY2FsLFxuICAgICAgICAgICAgbWF4V29ya2VycyxcbiAgICAgICAgICAgIG9wdGlvbnMudmVyYm9zZSxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaW5saW5lUmVzdWx0LmVycm9ycy5wdXNoKC4uLmVycm9ycyk7XG4gICAgICAgICAgaW5saW5lUmVzdWx0Lndhcm5pbmdzLnB1c2goLi4ud2FybmluZ3MpO1xuXG4gICAgICAgICAgZm9yIChjb25zdCBbcGF0aCwgY29udGVudF0gb2YgT2JqZWN0LmVudHJpZXMob3V0cHV0KSkge1xuICAgICAgICAgICAgbG9jYWxlT3V0cHV0RmlsZXMucHVzaChjcmVhdGVPdXRwdXRGaWxlRnJvbVRleHQocGF0aCwgY29udGVudCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAob3B0aW9ucy5zZXJ2aWNlV29ya2VyKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3Qgc2VydmljZVdvcmtlclJlc3VsdCA9IGF3YWl0IGF1Z21lbnRBcHBXaXRoU2VydmljZVdvcmtlckVzYnVpbGQoXG4gICAgICAgICAgICBvcHRpb25zLndvcmtzcGFjZVJvb3QsXG4gICAgICAgICAgICBvcHRpb25zLnNlcnZpY2VXb3JrZXIsXG4gICAgICAgICAgICBiYXNlSHJlZiB8fCAnLycsXG4gICAgICAgICAgICBsb2NhbGVPdXRwdXRGaWxlcyxcbiAgICAgICAgICAgIGV4ZWN1dGlvblJlc3VsdC5hc3NldEZpbGVzLFxuICAgICAgICAgICk7XG4gICAgICAgICAgbG9jYWxlT3V0cHV0RmlsZXMucHVzaChcbiAgICAgICAgICAgIGNyZWF0ZU91dHB1dEZpbGVGcm9tVGV4dCgnbmdzdy5qc29uJywgc2VydmljZVdvcmtlclJlc3VsdC5tYW5pZmVzdCksXG4gICAgICAgICAgKTtcbiAgICAgICAgICBleGVjdXRpb25SZXN1bHQuYXNzZXRGaWxlcy5wdXNoKC4uLnNlcnZpY2VXb3JrZXJSZXN1bHQuYXNzZXRGaWxlcyk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgaW5saW5lUmVzdWx0LmVycm9ycy5wdXNoKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogYCR7ZXJyb3J9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gVXBkYXRlIGRpcmVjdG9yeSB3aXRoIGxvY2FsZSBiYXNlXG4gICAgICBpZiAob3B0aW9ucy5pMThuT3B0aW9ucy5mbGF0T3V0cHV0ICE9PSB0cnVlKSB7XG4gICAgICAgIGxvY2FsZU91dHB1dEZpbGVzLmZvckVhY2goKGZpbGUpID0+IHtcbiAgICAgICAgICBmaWxlLnBhdGggPSBqb2luKGxvY2FsZSwgZmlsZS5wYXRoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZm9yIChjb25zdCBhc3NldEZpbGUgb2YgZXhlY3V0aW9uUmVzdWx0LmFzc2V0RmlsZXMpIHtcbiAgICAgICAgICB1cGRhdGVkQXNzZXRGaWxlcy5wdXNoKHtcbiAgICAgICAgICAgIHNvdXJjZTogYXNzZXRGaWxlLnNvdXJjZSxcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uOiBqb2luKGxvY2FsZSwgYXNzZXRGaWxlLmRlc3RpbmF0aW9uKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB1cGRhdGVkT3V0cHV0RmlsZXMucHVzaCguLi5sb2NhbGVPdXRwdXRGaWxlcyk7XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIGF3YWl0IGlubGluZXIuY2xvc2UoKTtcbiAgfVxuXG4gIC8vIFVwZGF0ZSB0aGUgcmVzdWx0IHdpdGggYWxsIGxvY2FsaXplZCBmaWxlc1xuICBleGVjdXRpb25SZXN1bHQub3V0cHV0RmlsZXMgPSB1cGRhdGVkT3V0cHV0RmlsZXM7XG5cbiAgLy8gQXNzZXRzIGFyZSBvbmx5IGNoYW5nZWQgaWYgbm90IHVzaW5nIHRoZSBmbGF0IG91dHB1dCBvcHRpb25cbiAgaWYgKG9wdGlvbnMuaTE4bk9wdGlvbnMuZmxhdE91dHB1dCAhPT0gdHJ1ZSkge1xuICAgIGV4ZWN1dGlvblJlc3VsdC5hc3NldEZpbGVzID0gdXBkYXRlZEFzc2V0RmlsZXM7XG4gIH1cblxuICByZXR1cm4gaW5saW5lUmVzdWx0O1xufVxuXG5mdW5jdGlvbiBnZXRMb2NhbGVCYXNlSHJlZihcbiAgYmFzZUhyZWY6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgaTE4bjogTm9ybWFsaXplZEFwcGxpY2F0aW9uQnVpbGRPcHRpb25zWydpMThuT3B0aW9ucyddLFxuICBsb2NhbGU6IHN0cmluZyxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmIChpMThuLmZsYXRPdXRwdXQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKGkxOG4ubG9jYWxlc1tsb2NhbGVdICYmIGkxOG4ubG9jYWxlc1tsb2NhbGVdLmJhc2VIcmVmICE9PSAnJykge1xuICAgIHJldHVybiB1cmxKb2luKGJhc2VIcmVmIHx8ICcnLCBpMThuLmxvY2FsZXNbbG9jYWxlXS5iYXNlSHJlZiA/PyBgLyR7bG9jYWxlfS9gKTtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogTG9hZHMgYWxsIGFjdGl2ZSB0cmFuc2xhdGlvbnMgdXNpbmcgdGhlIHRyYW5zbGF0aW9uIGxvYWRlcnMgZnJvbSB0aGUgYEBhbmd1bGFyL2xvY2FsaXplYCBwYWNrYWdlLlxuICogQHBhcmFtIGNvbnRleHQgVGhlIGFyY2hpdGVjdCBidWlsZGVyIGNvbnRleHQgZm9yIHRoZSBjdXJyZW50IGJ1aWxkLlxuICogQHBhcmFtIGkxOG4gVGhlIG5vcm1hbGl6ZWQgaTE4biBvcHRpb25zIHRvIHVzZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRBY3RpdmVUcmFuc2xhdGlvbnMoXG4gIGNvbnRleHQ6IEJ1aWxkZXJDb250ZXh0LFxuICBpMThuOiBOb3JtYWxpemVkQXBwbGljYXRpb25CdWlsZE9wdGlvbnNbJ2kxOG5PcHRpb25zJ10sXG4pIHtcbiAgLy8gTG9hZCBsb2NhbGUgZGF0YSBhbmQgdHJhbnNsYXRpb25zIChpZiBwcmVzZW50KVxuICBsZXQgbG9hZGVyO1xuICBmb3IgKGNvbnN0IFtsb2NhbGUsIGRlc2NdIG9mIE9iamVjdC5lbnRyaWVzKGkxOG4ubG9jYWxlcykpIHtcbiAgICBpZiAoIWkxOG4uaW5saW5lTG9jYWxlcy5oYXMobG9jYWxlKSAmJiBsb2NhbGUgIT09IGkxOG4uc291cmNlTG9jYWxlKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoIWRlc2MuZmlsZXMubGVuZ3RoKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBsb2FkZXIgPz89IGF3YWl0IGNyZWF0ZVRyYW5zbGF0aW9uTG9hZGVyKCk7XG5cbiAgICBsb2FkVHJhbnNsYXRpb25zKFxuICAgICAgbG9jYWxlLFxuICAgICAgZGVzYyxcbiAgICAgIGNvbnRleHQud29ya3NwYWNlUm9vdCxcbiAgICAgIGxvYWRlcixcbiAgICAgIHtcbiAgICAgICAgd2FybihtZXNzYWdlKSB7XG4gICAgICAgICAgY29udGV4dC5sb2dnZXIud2FybihtZXNzYWdlKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3IobWVzc2FnZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBpMThuLmR1cGxpY2F0ZVRyYW5zbGF0aW9uQmVoYXZpb3IsXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL2J1aWxkZXJzL2FwcGxpY2F0aW9uL2kxOG4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBR0gseUNBQWlDO0FBQ2pDLHlFQUE2RjtBQUU3RixtRUFBK0Q7QUFDL0QsbUZBQTZFO0FBQzdFLHFEQUFxRTtBQUNyRSx5RUFBNkQ7QUFDN0QsMkRBQTREO0FBQzVELHFFQUF3RTtBQUN4RSxzRUFBd0U7QUFDeEUsK0RBQWdGO0FBQ2hGLHlDQUEwQztBQUcxQzs7Ozs7O0dBTUc7QUFDSSxLQUFLLFVBQVUsVUFBVSxDQUM5QixPQUEwQyxFQUMxQyxlQUFnQyxFQUNoQyxZQUE0QztJQUU1QyxnR0FBZ0c7SUFDaEcsTUFBTSxPQUFPLEdBQUcsSUFBSSwwQkFBVyxDQUM3QjtRQUNFLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsMEJBQTBCLElBQUksU0FBUztRQUMvRSxXQUFXLEVBQUUsZUFBZSxDQUFDLFdBQVc7UUFDeEMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPO0tBQ3BELEVBQ0QsZ0NBQVUsQ0FDWCxDQUFDO0lBRUYsTUFBTSxZQUFZLEdBQTZDO1FBQzdELE1BQU0sRUFBRSxFQUFFO1FBQ1YsUUFBUSxFQUFFLEVBQUU7S0FDYixDQUFDO0lBRUYsb0ZBQW9GO0lBQ3BGLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzdCLElBQUk7UUFDRixLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFO1lBQ3RELCtEQUErRDtZQUMvRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sT0FBTyxDQUFDLGVBQWUsQ0FDckQsTUFB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aWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBCdWlsZGVyQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9hcmNoaXRlY3QnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBCdWlsZE91dHB1dEZpbGVUeXBlLCBJbml0aWFsRmlsZVJlY29yZCB9IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvYnVuZGxlci1jb250ZXh0JztcbmltcG9ydCB7IEV4ZWN1dGlvblJlc3VsdCB9IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvYnVuZGxlci1leGVjdXRpb24tcmVzdWx0JztcbmltcG9ydCB7IEkxOG5JbmxpbmVyIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC9pMThuLWlubGluZXInO1xuaW1wb3J0IHsgZ2VuZXJhdGVJbmRleEh0bWwgfSBmcm9tICcuLi8uLi90b29scy9lc2J1aWxkL2luZGV4LWh0bWwtZ2VuZXJhdG9yJztcbmltcG9ydCB7IGNyZWF0ZU91dHB1dEZpbGVGcm9tVGV4dCB9IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvdXRpbHMnO1xuaW1wb3J0IHsgbWF4V29ya2VycyB9IGZyb20gJy4uLy4uL3V0aWxzL2Vudmlyb25tZW50LW9wdGlvbnMnO1xuaW1wb3J0IHsgbG9hZFRyYW5zbGF0aW9ucyB9IGZyb20gJy4uLy4uL3V0aWxzL2kxOG4tb3B0aW9ucyc7XG5pbXBvcnQgeyBjcmVhdGVUcmFuc2xhdGlvbkxvYWRlciB9IGZyb20gJy4uLy4uL3V0aWxzL2xvYWQtdHJhbnNsYXRpb25zJztcbmltcG9ydCB7IHByZXJlbmRlclBhZ2VzIH0gZnJvbSAnLi4vLi4vdXRpbHMvc2VydmVyLXJlbmRlcmluZy9wcmVyZW5kZXInO1xuaW1wb3J0IHsgYXVnbWVudEFwcFdpdGhTZXJ2aWNlV29ya2VyRXNidWlsZCB9IGZyb20gJy4uLy4uL3V0aWxzL3NlcnZpY2Utd29ya2VyJztcbmltcG9ydCB7IHVybEpvaW4gfSBmcm9tICcuLi8uLi91dGlscy91cmwnO1xuaW1wb3J0IHsgTm9ybWFsaXplZEFwcGxpY2F0aW9uQnVpbGRPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcblxuLyoqXG4gKiBJbmxpbmVzIGFsbCBhY3RpdmUgbG9jYWxlcyBhcyBzcGVjaWZpZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGJ1aWxkIG9wdGlvbnMgaW50byBhbGxcbiAqIGFwcGxpY2F0aW9uIEphdmFTY3JpcHQgZmlsZXMgY3JlYXRlZCBkdXJpbmcgdGhlIGJ1aWxkLlxuICogQHBhcmFtIG9wdGlvbnMgVGhlIG5vcm1hbGl6ZWQgYXBwbGljYXRpb24gYnVpbGRlciBvcHRpb25zIHVzZWQgdG8gY3JlYXRlIHRoZSBidWlsZC5cbiAqIEBwYXJhbSBleGVjdXRpb25SZXN1bHQgVGhlIHJlc3VsdCBvZiBhbiBleGVjdXRlZCBidWlsZC5cbiAqIEBwYXJhbSBpbml0aWFsRmlsZXMgQSBtYXAgY29udGFpbmluZyBpbml0aWFsIGZpbGUgaW5mb3JtYXRpb24gZm9yIHRoZSBleGVjdXRlZCBidWlsZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGlubGluZUkxOG4oXG4gIG9wdGlvbnM6IE5vcm1hbGl6ZWRBcHBsaWNhdGlvbkJ1aWxkT3B0aW9ucyxcbiAgZXhlY3V0aW9uUmVzdWx0OiBFeGVjdXRpb25SZXN1bHQsXG4gIGluaXRpYWxGaWxlczogTWFwPHN0cmluZywgSW5pdGlhbEZpbGVSZWNvcmQ+LFxuKTogUHJvbWlzZTx7IGVycm9yczogc3RyaW5nW107IHdhcm5pbmdzOiBzdHJpbmdbXSB9PiB7XG4gIC8vIENyZWF0ZSB0aGUgbXVsdGktdGhyZWFkZWQgaW5saW5lciB3aXRoIGNvbW1vbiBvcHRpb25zIGFuZCB0aGUgZmlsZXMgZ2VuZXJhdGVkIGZyb20gdGhlIGJ1aWxkLlxuICBjb25zdCBpbmxpbmVyID0gbmV3IEkxOG5JbmxpbmVyKFxuICAgIHtcbiAgICAgIG1pc3NpbmdUcmFuc2xhdGlvbjogb3B0aW9ucy5pMThuT3B0aW9ucy5taXNzaW5nVHJhbnNsYXRpb25CZWhhdmlvciA/PyAnd2FybmluZycsXG4gICAgICBvdXRwdXRGaWxlczogZXhlY3V0aW9uUmVzdWx0Lm91dHB1dEZpbGVzLFxuICAgICAgc2hvdWxkT3B0aW1pemU6IG9wdGlvbnMub3B0aW1pemF0aW9uT3B0aW9ucy5zY3JpcHRzLFxuICAgIH0sXG4gICAgbWF4V29ya2VycyxcbiAgKTtcblxuICBjb25zdCBpbmxpbmVSZXN1bHQ6IHsgZXJyb3JzOiBzdHJpbmdbXTsgd2FybmluZ3M6IHN0cmluZ1tdIH0gPSB7XG4gICAgZXJyb3JzOiBbXSxcbiAgICB3YXJuaW5nczogW10sXG4gIH07XG5cbiAgLy8gRm9yIGVhY2ggYWN0aXZlIGxvY2FsZSwgdXNlIHRoZSBpbmxpbmVyIHRvIHByb2Nlc3MgdGhlIG91dHB1dCBmaWxlcyBvZiB0aGUgYnVpbGQuXG4gIGNvbnN0IHVwZGF0ZWRPdXRwdXRGaWxlcyA9IFtdO1xuICBjb25zdCB1cGRhdGVkQXNzZXRGaWxlcyA9IFtdO1xuICB0cnkge1xuICAgIGZvciAoY29uc3QgbG9jYWxlIG9mIG9wdGlvbnMuaTE4bk9wdGlvbnMuaW5saW5lTG9jYWxlcykge1xuICAgICAgLy8gQSBsb2NhbGUgc3BlY2lmaWMgc2V0IG9mIGZpbGVzIGlzIHJldHVybmVkIGZyb20gdGhlIGlubGluZXIuXG4gICAgICBjb25zdCBsb2NhbGVPdXRwdXRGaWxlcyA9IGF3YWl0IGlubGluZXIuaW5saW5lRm9yTG9jYWxlKFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIG9wdGlvbnMuaTE4bk9wdGlvbnMubG9jYWxlc1tsb2NhbGVdLnRyYW5zbGF0aW9uLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgYmFzZUhyZWYgPVxuICAgICAgICBnZXRMb2NhbGVCYXNlSHJlZihvcHRpb25zLmJhc2VIcmVmLCBvcHRpb25zLmkxOG5PcHRpb25zLCBsb2NhbGUpID8/IG9wdGlvbnMuYmFzZUhyZWY7XG5cbiAgICAgIC8vIEdlbmVyYXRlIGxvY2FsZSBzcGVjaWZpYyBpbmRleCBIVE1MIGZpbGVzXG4gICAgICBpZiAob3B0aW9ucy5pbmRleEh0bWxPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHsgY29udGVudCwgY29udGVudFdpdGhvdXRDcml0aWNhbENzc0lubGluZWQsIGVycm9ycywgd2FybmluZ3MgfSA9XG4gICAgICAgICAgYXdhaXQgZ2VuZXJhdGVJbmRleEh0bWwoXG4gICAgICAgICAgICBpbml0aWFsRmlsZXMsXG4gICAgICAgICAgICBsb2NhbGVPdXRwdXRGaWxlcyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgICAgYmFzZUhyZWYsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgbG9jYWxlT3V0cHV0RmlsZXMucHVzaChcbiAgICAgICAgICBjcmVhdGVPdXRwdXRGaWxlRnJvbVRleHQoXG4gICAgICAgICAgICBvcHRpb25zLmluZGV4SHRtbE9wdGlvbnMub3V0cHV0LFxuICAgICAgICAgICAgY29udGVudCxcbiAgICAgICAgICAgIEJ1aWxkT3V0cHV0RmlsZVR5cGUuQnJvd3NlcixcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgICBpbmxpbmVSZXN1bHQuZXJyb3JzLnB1c2goLi4uZXJyb3JzKTtcbiAgICAgICAgaW5saW5lUmVzdWx0Lndhcm5pbmdzLnB1c2goLi4ud2FybmluZ3MpO1xuXG4gICAgICAgIC8vIFByZS1yZW5kZXIgKFNTRykgYW5kIEFwcC1zaGVsbFxuICAgICAgICBpZiAob3B0aW9ucy5wcmVyZW5kZXJPcHRpb25zIHx8IG9wdGlvbnMuYXBwU2hlbGxPcHRpb25zKSB7XG4gICAgICAgICAgY29uc3QgeyBvdXRwdXQsIHdhcm5pbmdzLCBlcnJvcnMgfSA9IGF3YWl0IHByZXJlbmRlclBhZ2VzKFxuICAgICAgICAgICAgb3B0aW9ucy53b3Jrc3BhY2VSb290LFxuICAgICAgICAgICAgb3B0aW9ucy5hcHBTaGVsbE9wdGlvbnMsXG4gICAgICAgICAgICBvcHRpb25zLnByZXJlbmRlck9wdGlvbnMsXG4gICAgICAgICAgICBsb2NhbGVPdXRwdXRGaWxlcyxcbiAgICAgICAgICAgIGNvbnRlbnRXaXRob3V0Q3JpdGljYWxDc3NJbmxpbmVkLFxuICAgICAgICAgICAgb3B0aW9ucy5vcHRpbWl6YXRpb25PcHRpb25zLnN0eWxlcy5pbmxpbmVDcml0aWNhbCxcbiAgICAgICAgICAgIG1heFdvcmtlcnMsXG4gICAgICAgICAgICBvcHRpb25zLnZlcmJvc2UsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlubGluZVJlc3VsdC5lcnJvcnMucHVzaCguLi5lcnJvcnMpO1xuICAgICAgICAgIGlubGluZVJlc3VsdC53YXJuaW5ncy5wdXNoKC4uLndhcm5pbmdzKTtcblxuICAgICAgICAgIGZvciAoY29uc3QgW3BhdGgsIGNvbnRlbnRdIG9mIE9iamVjdC5lbnRyaWVzKG91dHB1dCkpIHtcbiAgICAgICAgICAgIGxvY2FsZU91dHB1dEZpbGVzLnB1c2goXG4gICAgICAgICAgICAgIGNyZWF0ZU91dHB1dEZpbGVGcm9tVGV4dChwYXRoLCBjb250ZW50LCBCdWlsZE91dHB1dEZpbGVUeXBlLkJyb3dzZXIpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbnMuc2VydmljZVdvcmtlcikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHNlcnZpY2VXb3JrZXJSZXN1bHQgPSBhd2FpdCBhdWdtZW50QXBwV2l0aFNlcnZpY2VXb3JrZXJFc2J1aWxkKFxuICAgICAgICAgICAgb3B0aW9ucy53b3Jrc3BhY2VSb290LFxuICAgICAgICAgICAgb3B0aW9ucy5zZXJ2aWNlV29ya2VyLFxuICAgICAgICAgICAgYmFzZUhyZWYgfHwgJy8nLFxuICAgICAgICAgICAgbG9jYWxlT3V0cHV0RmlsZXMsXG4gICAgICAgICAgICBleGVjdXRpb25SZXN1bHQuYXNzZXRGaWxlcyxcbiAgICAgICAgICApO1xuICAgICAgICAgIGxvY2FsZU91dHB1dEZpbGVzLnB1c2goXG4gICAgICAgICAgICBjcmVhdGVPdXRwdXRGaWxlRnJvbVRleHQoXG4gICAgICAgICAgICAgICduZ3N3Lmpzb24nLFxuICAgICAgICAgICAgICBzZXJ2aWNlV29ya2VyUmVzdWx0Lm1hbmlmZXN0LFxuICAgICAgICAgICAgICBCdWlsZE91dHB1dEZpbGVUeXBlLkJyb3dzZXIsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICk7XG4gICAgICAgICAgZXhlY3V0aW9uUmVzdWx0LmFzc2V0RmlsZXMucHVzaCguLi5zZXJ2aWNlV29ya2VyUmVzdWx0LmFzc2V0RmlsZXMpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGlubGluZVJlc3VsdC5lcnJvcnMucHVzaChlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IGAke2Vycm9yfWApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFVwZGF0ZSBkaXJlY3Rvcnkgd2l0aCBsb2NhbGUgYmFzZVxuICAgICAgaWYgKG9wdGlvbnMuaTE4bk9wdGlvbnMuZmxhdE91dHB1dCAhPT0gdHJ1ZSkge1xuICAgICAgICBsb2NhbGVPdXRwdXRGaWxlcy5mb3JFYWNoKChmaWxlKSA9PiB7XG4gICAgICAgICAgZmlsZS5wYXRoID0gam9pbihsb2NhbGUsIGZpbGUucGF0aCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZvciAoY29uc3QgYXNzZXRGaWxlIG9mIGV4ZWN1dGlvblJlc3VsdC5hc3NldEZpbGVzKSB7XG4gICAgICAgICAgdXBkYXRlZEFzc2V0RmlsZXMucHVzaCh7XG4gICAgICAgICAgICBzb3VyY2U6IGFzc2V0RmlsZS5zb3VyY2UsXG4gICAgICAgICAgICBkZXN0aW5hdGlvbjogam9pbihsb2NhbGUsIGFzc2V0RmlsZS5kZXN0aW5hdGlvbiksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdXBkYXRlZE91dHB1dEZpbGVzLnB1c2goLi4ubG9jYWxlT3V0cHV0RmlsZXMpO1xuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICBhd2FpdCBpbmxpbmVyLmNsb3NlKCk7XG4gIH1cblxuICAvLyBVcGRhdGUgdGhlIHJlc3VsdCB3aXRoIGFsbCBsb2NhbGl6ZWQgZmlsZXNcbiAgZXhlY3V0aW9uUmVzdWx0Lm91dHB1dEZpbGVzID0gdXBkYXRlZE91dHB1dEZpbGVzO1xuXG4gIC8vIEFzc2V0cyBhcmUgb25seSBjaGFuZ2VkIGlmIG5vdCB1c2luZyB0aGUgZmxhdCBvdXRwdXQgb3B0aW9uXG4gIGlmIChvcHRpb25zLmkxOG5PcHRpb25zLmZsYXRPdXRwdXQgIT09IHRydWUpIHtcbiAgICBleGVjdXRpb25SZXN1bHQuYXNzZXRGaWxlcyA9IHVwZGF0ZWRBc3NldEZpbGVzO1xuICB9XG5cbiAgcmV0dXJuIGlubGluZVJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZ2V0TG9jYWxlQmFzZUhyZWYoXG4gIGJhc2VIcmVmOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGkxOG46IE5vcm1hbGl6ZWRBcHBsaWNhdGlvbkJ1aWxkT3B0aW9uc1snaTE4bk9wdGlvbnMnXSxcbiAgbG9jYWxlOiBzdHJpbmcsXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoaTE4bi5mbGF0T3V0cHV0KSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChpMThuLmxvY2FsZXNbbG9jYWxlXSAmJiBpMThuLmxvY2FsZXNbbG9jYWxlXS5iYXNlSHJlZiAhPT0gJycpIHtcbiAgICByZXR1cm4gdXJsSm9pbihiYXNlSHJlZiB8fCAnJywgaTE4bi5sb2NhbGVzW2xvY2FsZV0uYmFzZUhyZWYgPz8gYC8ke2xvY2FsZX0vYCk7XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIExvYWRzIGFsbCBhY3RpdmUgdHJhbnNsYXRpb25zIHVzaW5nIHRoZSB0cmFuc2xhdGlvbiBsb2FkZXJzIGZyb20gdGhlIGBAYW5ndWxhci9sb2NhbGl6ZWAgcGFja2FnZS5cbiAqIEBwYXJhbSBjb250ZXh0IFRoZSBhcmNoaXRlY3QgYnVpbGRlciBjb250ZXh0IGZvciB0aGUgY3VycmVudCBidWlsZC5cbiAqIEBwYXJhbSBpMThuIFRoZSBub3JtYWxpemVkIGkxOG4gb3B0aW9ucyB0byB1c2UuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkQWN0aXZlVHJhbnNsYXRpb25zKFxuICBjb250ZXh0OiBCdWlsZGVyQ29udGV4dCxcbiAgaTE4bjogTm9ybWFsaXplZEFwcGxpY2F0aW9uQnVpbGRPcHRpb25zWydpMThuT3B0aW9ucyddLFxuKSB7XG4gIC8vIExvYWQgbG9jYWxlIGRhdGEgYW5kIHRyYW5zbGF0aW9ucyAoaWYgcHJlc2VudClcbiAgbGV0IGxvYWRlcjtcbiAgZm9yIChjb25zdCBbbG9jYWxlLCBkZXNjXSBvZiBPYmplY3QuZW50cmllcyhpMThuLmxvY2FsZXMpKSB7XG4gICAgaWYgKCFpMThuLmlubGluZUxvY2FsZXMuaGFzKGxvY2FsZSkgJiYgbG9jYWxlICE9PSBpMThuLnNvdXJjZUxvY2FsZSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKCFkZXNjLmZpbGVzLmxlbmd0aCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgbG9hZGVyID8/PSBhd2FpdCBjcmVhdGVUcmFuc2xhdGlvbkxvYWRlcigpO1xuXG4gICAgbG9hZFRyYW5zbGF0aW9ucyhcbiAgICAgIGxvY2FsZSxcbiAgICAgIGRlc2MsXG4gICAgICBjb250ZXh0LndvcmtzcGFjZVJvb3QsXG4gICAgICBsb2FkZXIsXG4gICAgICB7XG4gICAgICAgIHdhcm4obWVzc2FnZSkge1xuICAgICAgICAgIGNvbnRleHQubG9nZ2VyLndhcm4obWVzc2FnZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yKG1lc3NhZ2UpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgaTE4bi5kdXBsaWNhdGVUcmFuc2xhdGlvbkJlaGF2aW9yLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -6,7 +6,7 @@
|
|
|
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
|
|
9
|
+
import { BuildOutputFile } from '../../tools/esbuild/bundler-context';
|
|
10
10
|
import { ApplicationBuilderInternalOptions } from './options';
|
|
11
11
|
import { Schema as ApplicationBuilderOptions } from './schema';
|
|
12
12
|
export declare function buildApplicationInternal(options: ApplicationBuilderInternalOptions, context: BuilderContext & {
|
|
@@ -14,14 +14,14 @@ export declare function buildApplicationInternal(options: ApplicationBuilderInte
|
|
|
14
14
|
}, infrastructureSettings?: {
|
|
15
15
|
write?: boolean;
|
|
16
16
|
}): AsyncIterable<BuilderOutput & {
|
|
17
|
-
outputFiles?:
|
|
17
|
+
outputFiles?: BuildOutputFile[];
|
|
18
18
|
assetFiles?: {
|
|
19
19
|
source: string;
|
|
20
20
|
destination: string;
|
|
21
21
|
}[];
|
|
22
22
|
}>;
|
|
23
23
|
export declare function buildApplication(options: ApplicationBuilderOptions, context: BuilderContext): AsyncIterable<BuilderOutput & {
|
|
24
|
-
outputFiles?:
|
|
24
|
+
outputFiles?: BuildOutputFile[];
|
|
25
25
|
assetFiles?: {
|
|
26
26
|
source: string;
|
|
27
27
|
destination: string;
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.buildApplication = exports.buildApplicationInternal = void 0;
|
|
11
11
|
const architect_1 = require("@angular-devkit/architect");
|
|
12
|
+
const bundler_context_1 = require("../../tools/esbuild/bundler-context");
|
|
12
13
|
const purge_cache_1 = require("../../utils/purge-cache");
|
|
13
14
|
const version_1 = require("../../utils/version");
|
|
14
15
|
const build_action_1 = require("./build-action");
|
|
@@ -28,11 +29,6 @@ context, infrastructureSettings) {
|
|
|
28
29
|
return;
|
|
29
30
|
}
|
|
30
31
|
const normalizedOptions = await (0, options_1.normalizeOptions)(context, projectName, options);
|
|
31
|
-
// Warn about SSR not yet supporting localize
|
|
32
|
-
if (normalizedOptions.i18nOptions.shouldInline && normalizedOptions.ssrOptions) {
|
|
33
|
-
context.logger.warn(`SSR is not yet supported with the 'localize' option and will be disabled for this build.`);
|
|
34
|
-
normalizedOptions.ssrOptions = undefined;
|
|
35
|
-
}
|
|
36
32
|
yield* (0, build_action_1.runEsBuildBuildAction)((rebuildState) => (0, execute_build_1.executeBuild)(normalizedOptions, context, rebuildState), {
|
|
37
33
|
watch: normalizedOptions.watch,
|
|
38
34
|
poll: normalizedOptions.poll,
|
|
@@ -44,6 +40,11 @@ context, infrastructureSettings) {
|
|
|
44
40
|
workspaceRoot: normalizedOptions.workspaceRoot,
|
|
45
41
|
progress: normalizedOptions.progress,
|
|
46
42
|
writeToFileSystem: infrastructureSettings?.write,
|
|
43
|
+
// For app-shell and SSG server files are not required by users.
|
|
44
|
+
// Omit these when SSR is not enabled.
|
|
45
|
+
writeToFileSystemFilter: normalizedOptions.ssrOptions && normalizedOptions.serverEntryPoint
|
|
46
|
+
? undefined
|
|
47
|
+
: (file) => file.type !== bundler_context_1.BuildOutputFileType.Server,
|
|
47
48
|
logger: context.logger,
|
|
48
49
|
signal: context.signal,
|
|
49
50
|
});
|
|
@@ -54,4 +55,4 @@ function buildApplication(options, context) {
|
|
|
54
55
|
}
|
|
55
56
|
exports.buildApplication = buildApplication;
|
|
56
57
|
exports.default = (0, architect_1.createBuilder)(buildApplication);
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9idWlsZF9hbmd1bGFyL3NyYy9idWlsZGVycy9hcHBsaWNhdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCx5REFBeUY7QUFDekYseUVBQTJGO0FBQzNGLHlEQUErRDtBQUMvRCxpREFBcUU7QUFDckUsaURBQXVEO0FBQ3ZELG1EQUErQztBQUMvQyx1Q0FBZ0Y7QUFHekUsS0FBSyxTQUFTLENBQUMsQ0FBQyx3QkFBd0IsQ0FDN0MsT0FBMEM7QUFDMUMsMkRBQTJEO0FBQzNELE9BQWtELEVBQ2xELHNCQUVDO0lBT0QseUJBQXlCO0lBQ3pCLElBQUEsd0NBQThCLEVBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRXRELDhCQUE4QjtJQUM5QixNQUFNLElBQUEsa0NBQW9CLEVBQUMsT0FBTyxDQUFDLENBQUM7SUFFcEMscURBQXFEO0lBQ3JELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDO0lBQzVDLElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDaEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQztRQUVyRixPQUFPO0tBQ1I7SUFFRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sSUFBQSwwQkFBZ0IsRUFBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRWhGLEtBQUssQ0FBQyxDQUFDLElBQUEsb0NBQXFCLEVBQzFCLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxJQUFBLDRCQUFZLEVBQUMsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxFQUN4RTtRQUNFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxLQUFLO1FBQzlCLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO1FBQzVCLGdCQUFnQixFQUFFLGlCQUFpQixDQUFDLGdCQUFnQjtRQUNwRCxZQUFZLEVBQUUsaUJBQWlCLENBQUMsWUFBWTtRQUM1QyxVQUFVLEVBQUUsaUJBQWlCLENBQUMsVUFBVTtRQUN4QyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsT0FBTztRQUNsQyxXQUFXLEVBQUUsaUJBQWlCLENBQUMsV0FBVztRQUMxQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsYUFBYTtRQUM5QyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsUUFBUTtRQUNwQyxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSxLQUFLO1FBQ2hELGdFQUFnRTtRQUNoRSxzQ0FBc0M7UUFDdEMsdUJBQXVCLEVBQ3JCLGlCQUFpQixDQUFDLFVBQVUsSUFBSSxpQkFBaUIsQ0FBQyxnQkFBZ0I7WUFDaEUsQ0FBQyxDQUFDLFNBQVM7WUFDWCxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUsscUNBQW1CLENBQUMsTUFBTTtRQUN4RCxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07UUFDdEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO0tBQ3ZCLENBQ0YsQ0FBQztBQUNKLENBQUM7QUFwREQsNERBb0RDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQzlCLE9BQWtDLEVBQ2xDLE9BQXVCO0lBT3ZCLE9BQU8sd0JBQXdCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFWRCw0Q0FVQztBQUVELGtCQUFlLElBQUEseUJBQWEsRUFBQyxnQkFBZ0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7IEJ1aWxkZXJDb250ZXh0LCBCdWlsZGVyT3V0cHV0LCBjcmVhdGVCdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2FyY2hpdGVjdCc7XG5pbXBvcnQgeyBCdWlsZE91dHB1dEZpbGUsIEJ1aWxkT3V0cHV0RmlsZVR5cGUgfSBmcm9tICcuLi8uLi90b29scy9lc2J1aWxkL2J1bmRsZXItY29udGV4dCc7XG5pbXBvcnQgeyBwdXJnZVN0YWxlQnVpbGRDYWNoZSB9IGZyb20gJy4uLy4uL3V0aWxzL3B1cmdlLWNhY2hlJztcbmltcG9ydCB7IGFzc2VydENvbXBhdGlibGVBbmd1bGFyVmVyc2lvbiB9IGZyb20gJy4uLy4uL3V0aWxzL3ZlcnNpb24nO1xuaW1wb3J0IHsgcnVuRXNCdWlsZEJ1aWxkQWN0aW9uIH0gZnJvbSAnLi9idWlsZC1hY3Rpb24nO1xuaW1wb3J0IHsgZXhlY3V0ZUJ1aWxkIH0gZnJvbSAnLi9leGVjdXRlLWJ1aWxkJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uQnVpbGRlckludGVybmFsT3B0aW9ucywgbm9ybWFsaXplT3B0aW9ucyB9IGZyb20gJy4vb3B0aW9ucyc7XG5pbXBvcnQgeyBTY2hlbWEgYXMgQXBwbGljYXRpb25CdWlsZGVyT3B0aW9ucyB9IGZyb20gJy4vc2NoZW1hJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uKiBidWlsZEFwcGxpY2F0aW9uSW50ZXJuYWwoXG4gIG9wdGlvbnM6IEFwcGxpY2F0aW9uQnVpbGRlckludGVybmFsT3B0aW9ucyxcbiAgLy8gVE9ETzogSW50ZWdyYXRlIGFib3J0IHNpZ25hbCBzdXBwb3J0IGludG8gYnVpbGRlciBzeXN0ZW1cbiAgY29udGV4dDogQnVpbGRlckNvbnRleHQgJiB7IHNpZ25hbD86IEFib3J0U2lnbmFsIH0sXG4gIGluZnJhc3RydWN0dXJlU2V0dGluZ3M/OiB7XG4gICAgd3JpdGU/OiBib29sZWFuO1xuICB9LFxuKTogQXN5bmNJdGVyYWJsZTxcbiAgQnVpbGRlck91dHB1dCAmIHtcbiAgICBvdXRwdXRGaWxlcz86IEJ1aWxkT3V0cHV0RmlsZVtdO1xuICAgIGFzc2V0RmlsZXM/OiB7IHNvdXJjZTogc3RyaW5nOyBkZXN0aW5hdGlvbjogc3RyaW5nIH1bXTtcbiAgfVxuPiB7XG4gIC8vIENoZWNrIEFuZ3VsYXIgdmVyc2lvbi5cbiAgYXNzZXJ0Q29tcGF0aWJsZUFuZ3VsYXJWZXJzaW9uKGNvbnRleHQud29ya3NwYWNlUm9vdCk7XG5cbiAgLy8gUHVyZ2Ugb2xkIGJ1aWxkIGRpc2sgY2FjaGUuXG4gIGF3YWl0IHB1cmdlU3RhbGVCdWlsZENhY2hlKGNvbnRleHQpO1xuXG4gIC8vIERldGVybWluZSBwcm9qZWN0IG5hbWUgZnJvbSBidWlsZGVyIGNvbnRleHQgdGFyZ2V0XG4gIGNvbnN0IHByb2plY3ROYW1lID0gY29udGV4dC50YXJnZXQ/LnByb2plY3Q7XG4gIGlmICghcHJvamVjdE5hbWUpIHtcbiAgICBjb250ZXh0LmxvZ2dlci5lcnJvcihgVGhlICdhcHBsaWNhdGlvbicgYnVpbGRlciByZXF1aXJlcyBhIHRhcmdldCB0byBiZSBzcGVjaWZpZWQuYCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBub3JtYWxpemVkT3B0aW9ucyA9IGF3YWl0IG5vcm1hbGl6ZU9wdGlvbnMoY29udGV4dCwgcHJvamVjdE5hbWUsIG9wdGlvbnMpO1xuXG4gIHlpZWxkKiBydW5Fc0J1aWxkQnVpbGRBY3Rpb24oXG4gICAgKHJlYnVpbGRTdGF0ZSkgPT4gZXhlY3V0ZUJ1aWxkKG5vcm1hbGl6ZWRPcHRpb25zLCBjb250ZXh0LCByZWJ1aWxkU3RhdGUpLFxuICAgIHtcbiAgICAgIHdhdGNoOiBub3JtYWxpemVkT3B0aW9ucy53YXRjaCxcbiAgICAgIHBvbGw6IG5vcm1hbGl6ZWRPcHRpb25zLnBvbGwsXG4gICAgICBkZWxldGVPdXRwdXRQYXRoOiBub3JtYWxpemVkT3B0aW9ucy5kZWxldGVPdXRwdXRQYXRoLFxuICAgICAgY2FjaGVPcHRpb25zOiBub3JtYWxpemVkT3B0aW9ucy5jYWNoZU9wdGlvbnMsXG4gICAgICBvdXRwdXRQYXRoOiBub3JtYWxpemVkT3B0aW9ucy5vdXRwdXRQYXRoLFxuICAgICAgdmVyYm9zZTogbm9ybWFsaXplZE9wdGlvbnMudmVyYm9zZSxcbiAgICAgIHByb2plY3RSb290OiBub3JtYWxpemVkT3B0aW9ucy5wcm9qZWN0Um9vdCxcbiAgICAgIHdvcmtzcGFjZVJvb3Q6IG5vcm1hbGl6ZWRPcHRpb25zLndvcmtzcGFjZVJvb3QsXG4gICAgICBwcm9ncmVzczogbm9ybWFsaXplZE9wdGlvbnMucHJvZ3Jlc3MsXG4gICAgICB3cml0ZVRvRmlsZVN5c3RlbTogaW5mcmFzdHJ1Y3R1cmVTZXR0aW5ncz8ud3JpdGUsXG4gICAgICAvLyBGb3IgYXBwLXNoZWxsIGFuZCBTU0cgc2VydmVyIGZpbGVzIGFyZSBub3QgcmVxdWlyZWQgYnkgdXNlcnMuXG4gICAgICAvLyBPbWl0IHRoZXNlIHdoZW4gU1NSIGlzIG5vdCBlbmFibGVkLlxuICAgICAgd3JpdGVUb0ZpbGVTeXN0ZW1GaWx0ZXI6XG4gICAgICAgIG5vcm1hbGl6ZWRPcHRpb25zLnNzck9wdGlvbnMgJiYgbm9ybWFsaXplZE9wdGlvbnMuc2VydmVyRW50cnlQb2ludFxuICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgOiAoZmlsZSkgPT4gZmlsZS50eXBlICE9PSBCdWlsZE91dHB1dEZpbGVUeXBlLlNlcnZlcixcbiAgICAgIGxvZ2dlcjogY29udGV4dC5sb2dnZXIsXG4gICAgICBzaWduYWw6IGNvbnRleHQuc2lnbmFsLFxuICAgIH0sXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEFwcGxpY2F0aW9uKFxuICBvcHRpb25zOiBBcHBsaWNhdGlvbkJ1aWxkZXJPcHRpb25zLFxuICBjb250ZXh0OiBCdWlsZGVyQ29udGV4dCxcbik6IEFzeW5jSXRlcmFibGU8XG4gIEJ1aWxkZXJPdXRwdXQgJiB7XG4gICAgb3V0cHV0RmlsZXM/OiBCdWlsZE91dHB1dEZpbGVbXTtcbiAgICBhc3NldEZpbGVzPzogeyBzb3VyY2U6IHN0cmluZzsgZGVzdGluYXRpb246IHN0cmluZyB9W107XG4gIH1cbj4ge1xuICByZXR1cm4gYnVpbGRBcHBsaWNhdGlvbkludGVybmFsKG9wdGlvbnMsIGNvbnRleHQpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjcmVhdGVCdWlsZGVyKGJ1aWxkQXBwbGljYXRpb24pO1xuIl19
|
|
@@ -30,6 +30,10 @@ interface InternalOptions {
|
|
|
30
30
|
* This is only used by the development server which currently only supports a single locale per build.
|
|
31
31
|
*/
|
|
32
32
|
forceI18nFlatOutput?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Allows for usage of the deprecated `deployUrl` option with the compatibility builder `browser-esbuild`.
|
|
35
|
+
*/
|
|
36
|
+
deployUrl?: string;
|
|
33
37
|
}
|
|
34
38
|
/** Full set of options for `application` builder. */
|
|
35
39
|
export type ApplicationBuilderInternalOptions = Omit<ApplicationBuilderOptions & InternalOptions, 'browser'> & {
|
|
@@ -118,5 +122,7 @@ export declare function normalizeOptions(context: BuilderContext, projectName: s
|
|
|
118
122
|
missingTranslationBehavior?: I18NTranslation | undefined;
|
|
119
123
|
};
|
|
120
124
|
namedChunks: boolean | undefined;
|
|
125
|
+
budgets: import("./schema").Budget[] | undefined;
|
|
126
|
+
publicPath: string | undefined;
|
|
121
127
|
}>;
|
|
122
128
|
export {};
|