@angular-devkit/build-angular 17.0.0-next.7 → 17.0.0-next.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +11 -11
- 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 +40 -70
- package/src/builders/application/execute-post-bundle.d.ts +24 -0
- package/src/builders/application/execute-post-bundle.js +88 -0
- package/src/builders/application/i18n.js +13 -35
- package/src/builders/application/index.d.ts +21 -5
- package/src/builders/application/index.js +25 -10
- package/src/builders/application/options.d.ts +10 -1
- package/src/builders/application/options.js +7 -3
- package/src/builders/application/schema.d.ts +0 -1
- package/src/builders/application/schema.js +1 -1
- package/src/builders/application/schema.json +1 -1
- package/src/builders/browser/schema.d.ts +0 -1
- package/src/builders/browser/schema.js +1 -1
- package/src/builders/browser/schema.json +1 -1
- package/src/builders/browser-esbuild/builder-status-warnings.d.ts +1 -1
- package/src/builders/browser-esbuild/builder-status-warnings.js +6 -7
- package/src/builders/browser-esbuild/index.d.ts +4 -3
- package/src/builders/browser-esbuild/index.js +45 -3
- package/src/builders/browser-esbuild/schema.d.ts +0 -1
- package/src/builders/browser-esbuild/schema.js +1 -1
- package/src/builders/browser-esbuild/schema.json +1 -1
- package/src/builders/dev-server/builder.d.ts +2 -1
- package/src/builders/dev-server/builder.js +10 -4
- 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 +4 -2
- package/src/builders/dev-server/vite-server.js +30 -8
- 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/index.d.ts +1 -0
- package/src/index.js +4 -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 +67 -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 +12 -14
- 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 +4 -106
- package/src/tools/esbuild/stylesheets/less-language.js +37 -10
- package/src/tools/esbuild/utils.d.ts +13 -7
- package/src/tools/esbuild/utils.js +109 -37
- 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 +4 -9
- package/src/utils/service-worker.js +5 -2
- package/src/utils/server-rendering/esm-in-memory-file-loader.js +0 -76
|
@@ -10,19 +10,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
10
10
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.
|
|
14
|
-
const node_crypto_1 = require("node:crypto");
|
|
13
|
+
exports.createStylesheetBundleOptions = void 0;
|
|
15
14
|
const node_path_1 = __importDefault(require("node:path"));
|
|
16
|
-
const bundler_context_1 = require("../bundler-context");
|
|
17
15
|
const css_language_1 = require("./css-language");
|
|
18
16
|
const css_resource_plugin_1 = require("./css-resource-plugin");
|
|
19
17
|
const less_language_1 = require("./less-language");
|
|
20
18
|
const sass_language_1 = require("./sass-language");
|
|
21
19
|
const stylesheet_plugin_factory_1 = require("./stylesheet-plugin-factory");
|
|
22
|
-
/**
|
|
23
|
-
* A counter for component styles used to generate unique build-time identifiers for each stylesheet.
|
|
24
|
-
*/
|
|
25
|
-
let componentStyleCounter = 0;
|
|
26
20
|
function createStylesheetBundleOptions(options, cache, inlineComponentData) {
|
|
27
21
|
// Ensure preprocessor include paths are absolute based on the workspace root
|
|
28
22
|
const includePaths = options.includePaths?.map((includePath) => node_path_1.default.resolve(options.workspaceRoot, includePath));
|
|
@@ -47,7 +41,8 @@ function createStylesheetBundleOptions(options, cache, inlineComponentData) {
|
|
|
47
41
|
target: options.target,
|
|
48
42
|
preserveSymlinks: options.preserveSymlinks,
|
|
49
43
|
external: options.externalDependencies,
|
|
50
|
-
|
|
44
|
+
publicPath: options.publicPath,
|
|
45
|
+
conditions: ['style', 'sass', 'less'],
|
|
51
46
|
mainFields: ['style', 'sass'],
|
|
52
47
|
plugins: [
|
|
53
48
|
pluginFactory.create(sass_language_1.SassStylesheetLanguage),
|
|
@@ -58,101 +53,4 @@ function createStylesheetBundleOptions(options, cache, inlineComponentData) {
|
|
|
58
53
|
};
|
|
59
54
|
}
|
|
60
55
|
exports.createStylesheetBundleOptions = createStylesheetBundleOptions;
|
|
61
|
-
|
|
62
|
-
* Bundles a component stylesheet. The stylesheet can be either an inline stylesheet that
|
|
63
|
-
* is contained within the Component's metadata definition or an external file referenced
|
|
64
|
-
* from the Component's metadata definition.
|
|
65
|
-
*
|
|
66
|
-
* @param identifier A unique string identifier for the component stylesheet.
|
|
67
|
-
* @param language The language of the stylesheet such as `css` or `scss`.
|
|
68
|
-
* @param data The string content of the stylesheet.
|
|
69
|
-
* @param filename The filename representing the source of the stylesheet content.
|
|
70
|
-
* @param inline If true, the stylesheet source is within the component metadata;
|
|
71
|
-
* if false, the source is a stylesheet file.
|
|
72
|
-
* @param options An object containing the stylesheet bundling options.
|
|
73
|
-
* @returns An object containing the output of the bundling operation.
|
|
74
|
-
*/
|
|
75
|
-
async function bundleComponentStylesheet(language, data, filename, inline, options, cache) {
|
|
76
|
-
const namespace = 'angular:styles/component';
|
|
77
|
-
// Use a hash of the inline stylesheet content to ensure a consistent identifier. External stylesheets will resolve
|
|
78
|
-
// to the actual stylesheet file path.
|
|
79
|
-
// TODO: Consider xxhash instead for hashing
|
|
80
|
-
const id = inline ? (0, node_crypto_1.createHash)('sha256').update(data).digest('hex') : componentStyleCounter++;
|
|
81
|
-
const entry = [language, id, filename].join(';');
|
|
82
|
-
const buildOptions = createStylesheetBundleOptions(options, cache, { [entry]: data });
|
|
83
|
-
buildOptions.entryPoints = [`${namespace};${entry}`];
|
|
84
|
-
buildOptions.plugins.push({
|
|
85
|
-
name: 'angular-component-styles',
|
|
86
|
-
setup(build) {
|
|
87
|
-
build.onResolve({ filter: /^angular:styles\/component;/ }, (args) => {
|
|
88
|
-
if (args.kind !== 'entry-point') {
|
|
89
|
-
return null;
|
|
90
|
-
}
|
|
91
|
-
if (inline) {
|
|
92
|
-
return {
|
|
93
|
-
path: entry,
|
|
94
|
-
namespace,
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
return {
|
|
99
|
-
path: filename,
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
build.onLoad({ filter: /^css;/, namespace }, async () => {
|
|
104
|
-
return {
|
|
105
|
-
contents: data,
|
|
106
|
-
loader: 'css',
|
|
107
|
-
resolveDir: node_path_1.default.dirname(filename),
|
|
108
|
-
};
|
|
109
|
-
});
|
|
110
|
-
},
|
|
111
|
-
});
|
|
112
|
-
// Execute esbuild
|
|
113
|
-
const context = new bundler_context_1.BundlerContext(options.workspaceRoot, false, buildOptions);
|
|
114
|
-
const result = await context.bundle();
|
|
115
|
-
// Extract the result of the bundling from the output files
|
|
116
|
-
let contents = '';
|
|
117
|
-
let map;
|
|
118
|
-
let outputPath;
|
|
119
|
-
const resourceFiles = [];
|
|
120
|
-
if (!result.errors) {
|
|
121
|
-
for (const outputFile of result.outputFiles) {
|
|
122
|
-
const filename = node_path_1.default.basename(outputFile.path);
|
|
123
|
-
if (filename.endsWith('.css')) {
|
|
124
|
-
outputPath = outputFile.path;
|
|
125
|
-
contents = outputFile.text;
|
|
126
|
-
}
|
|
127
|
-
else if (filename.endsWith('.css.map')) {
|
|
128
|
-
map = outputFile.text;
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
// The output files could also contain resources (images/fonts/etc.) that were referenced
|
|
132
|
-
resourceFiles.push(outputFile);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
let metafile;
|
|
137
|
-
if (!result.errors) {
|
|
138
|
-
metafile = result.metafile;
|
|
139
|
-
// Remove entryPoint fields from outputs to prevent the internal component styles from being
|
|
140
|
-
// treated as initial files. Also mark the entry as a component resource for stat reporting.
|
|
141
|
-
Object.values(metafile.outputs).forEach((output) => {
|
|
142
|
-
delete output.entryPoint;
|
|
143
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
144
|
-
output['ng-component'] = true;
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
return {
|
|
148
|
-
errors: result.errors,
|
|
149
|
-
warnings: result.warnings,
|
|
150
|
-
contents,
|
|
151
|
-
map,
|
|
152
|
-
path: outputPath,
|
|
153
|
-
resourceFiles,
|
|
154
|
-
metafile,
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
|
-
exports.bundleComponentStylesheet = bundleComponentStylesheet;
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9idWlsZF9hbmd1bGFyL3NyYy90b29scy9lc2J1aWxkL3N0eWxlc2hlZXRzL2J1bmRsZS1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7Ozs7OztBQUdILDZDQUF5QztBQUN6QywwREFBNkI7QUFDN0Isd0RBQW9EO0FBRXBELGlEQUF1RDtBQUN2RCwrREFBZ0U7QUFDaEUsbURBQXlEO0FBQ3pELG1EQUF5RDtBQUN6RCwyRUFBc0U7QUFFdEU7O0dBRUc7QUFDSCxJQUFJLHFCQUFxQixHQUFHLENBQUMsQ0FBQztBQWM5QixTQUFnQiw2QkFBNkIsQ0FDM0MsT0FBZ0MsRUFDaEMsS0FBdUIsRUFDdkIsbUJBQTRDO0lBRTVDLDZFQUE2RTtJQUM3RSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQzdELG1CQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQ2pELENBQUM7SUFFRixNQUFNLGFBQWEsR0FBRyxJQUFJLG1EQUF1QixDQUMvQztRQUNFLFNBQVMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVM7UUFDOUIsWUFBWTtRQUNaLG1CQUFtQjtRQUNuQixxQkFBcUIsRUFBRSxPQUFPLENBQUMscUJBQXFCO0tBQ3JELEVBQ0QsS0FBSyxDQUNOLENBQUM7SUFFRixPQUFPO1FBQ0wsYUFBYSxFQUFFLE9BQU8sQ0FBQyxhQUFhO1FBQ3BDLE1BQU0sRUFBRSxJQUFJO1FBQ1osVUFBVSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTztRQUN2QyxVQUFVLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLO1FBQ3JDLFFBQVEs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TUFBYyxDQUFDLGNBQWMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztLQUNKO0lBRUQsT0FBTztRQUNMLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtRQUNyQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7UUFDekIsUUFBUTtRQUNSLEdBQUc7UUFDSCxJQUFJLEVBQUUsVUFBVTtRQUNoQixhQUFhO1FBQ2IsUUFBUTtLQUNULENBQUM7QUFDSixDQUFDO0FBM0ZELDhEQTJGQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEJ1aWxkT3B0aW9ucywgT3V0cHV0RmlsZSB9IGZyb20gJ2VzYnVpbGQnO1xuaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gJ25vZGU6Y3J5cHRvJztcbmltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBCdW5kbGVyQ29udGV4dCB9IGZyb20gJy4uL2J1bmRsZXItY29udGV4dCc7XG5pbXBvcnQgeyBMb2FkUmVzdWx0Q2FjaGUgfSBmcm9tICcuLi9sb2FkLXJlc3VsdC1jYWNoZSc7XG5pbXBvcnQgeyBDc3NTdHlsZXNoZWV0TGFuZ3VhZ2UgfSBmcm9tICcuL2Nzcy1sYW5ndWFnZSc7XG5pbXBvcnQgeyBjcmVhdGVDc3NSZXNvdXJjZVBsdWdpbiB9IGZyb20gJy4vY3NzLXJlc291cmNlLXBsdWdpbic7XG5pbXBvcnQgeyBMZXNzU3R5bGVzaGVldExhbmd1YWdlIH0gZnJvbSAnLi9sZXNzLWxhbmd1YWdlJztcbmltcG9ydCB7IFNhc3NTdHlsZXNoZWV0TGFuZ3VhZ2UgfSBmcm9tICcuL3Nhc3MtbGFuZ3VhZ2UnO1xuaW1wb3J0IHsgU3R5bGVzaGVldFBsdWdpbkZhY3RvcnkgfSBmcm9tICcuL3N0eWxlc2hlZXQtcGx1Z2luLWZhY3RvcnknO1xuXG4vKipcbiAqIEEgY291bnRlciBmb3IgY29tcG9uZW50IHN0eWxlcyB1c2VkIHRvIGdlbmVyYXRlIHVuaXF1ZSBidWlsZC10aW1lIGlkZW50aWZpZXJzIGZvciBlYWNoIHN0eWxlc2hlZXQuXG4gKi9cbmxldCBjb21wb25lbnRTdHlsZUNvdW50ZXIgPSAwO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1bmRsZVN0eWxlc2hlZXRPcHRpb25zIHtcbiAgd29ya3NwYWNlUm9vdDogc3RyaW5nO1xuICBvcHRpbWl6YXRpb246IGJvb2xlYW47XG4gIHByZXNlcnZlU3ltbGlua3M/OiBib29sZWFuO1xuICBzb3VyY2VtYXA6IGJvb2xlYW4gfCAnZXh0ZXJuYWwnIHwgJ2lubGluZSc7XG4gIG91dHB1dE5hbWVzOiB7IGJ1bmRsZXM6IHN0cmluZzsgbWVkaWE6IHN0cmluZyB9O1xuICBpbmNsdWRlUGF0aHM/OiBzdHJpbmdbXTtcbiAgZXh0ZXJuYWxEZXBlbmRlbmNpZXM/OiBzdHJpbmdbXTtcbiAgdGFyZ2V0OiBzdHJpbmdbXTtcbiAgdGFpbHdpbmRDb25maWd1cmF0aW9uPzogeyBmaWxlOiBzdHJpbmc7IHBhY2thZ2U6IHN0cmluZyB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3R5bGVzaGVldEJ1bmRsZU9wdGlvbnMoXG4gIG9wdGlvbnM6IEJ1bmRsZVN0eWxlc2hlZXRPcHRpb25zLFxuICBjYWNoZT86IExvYWRSZXN1bHRDYWNoZSxcbiAgaW5saW5lQ29tcG9uZW50RGF0YT86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pOiBCdWlsZE9wdGlvbnMgJiB7IHBsdWdpbnM6IE5vbk51bGxhYmxlPEJ1aWxkT3B0aW9uc1sncGx1Z2lucyddPiB9IHtcbiAgLy8gRW5zdXJlIHByZXByb2Nlc3NvciBpbmNsdWRlIHBhdGhzIGFyZSBhYnNvbHV0ZSBiYXNlZCBvbiB0aGUgd29ya3NwYWNlIHJvb3RcbiAgY29uc3QgaW5jbHVkZVBhdGhzID0gb3B0aW9ucy5pbmNsdWRlUGF0aHM/Lm1hcCgoaW5jbHVkZVBhdGgpID0+XG4gICAgcGF0aC5yZXNvbHZlKG9wdGlvbnMud29ya3NwYWNlUm9vdCwgaW5jbHVkZVBhdGgpLFxuICApO1xuXG4gIGNvbnN0IHBsdWdpbkZhY3RvcnkgPSBuZXcgU3R5bGVzaGVldFBsdWdpbkZhY3RvcnkoXG4gICAge1xuICAgICAgc291cmNlbWFwOiAhIW9wdGlvbnMuc291cmNlbWFwLFxuICAgICAgaW5jbHVkZVBhdGhzLFxuICAgICAgaW5saW5lQ29tcG9uZW50RGF0YSxcbiAgICAgIHRhaWx3aW5kQ29uZmlndXJhdGlvbjogb3B0aW9ucy50YWlsd2luZENvbmZpZ3VyYXRpb24sXG4gICAgfSxcbiAgICBjYWNoZSxcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIGFic1dvcmtpbmdEaXI6IG9wdGlvbnMud29ya3NwYWNlUm9vdCxcbiAgICBidW5kbGU6IHRydWUsXG4gICAgZW50cnlOYW1lczogb3B0aW9ucy5vdXRwdXROYW1lcy5idW5kbGVzLFxuICAgIGFzc2V0TmFtZXM6IG9wdGlvbnMub3V0cHV0TmFtZXMubWVkaWEsXG4gICAgbG9nTGV2ZWw6ICdzaWxlbnQnLFxuICAgIG1pbmlmeTogb3B0aW9ucy5vcHRpbWl6YXRpb24sXG4gICAgbWV0YWZpbGU6IHRydWUsXG4gICAgc291cmNlbWFwOiBvcHRpb25zLnNvdXJjZW1hcCxcbiAgICBvdXRkaXI6IG9wdGlvbnMud29ya3NwYWNlUm9vdCxcbiAgICB3cml0ZTogZmFsc2UsXG4gICAgcGxhdGZvcm06ICdicm93c2VyJyxcbiAgICB0YXJnZXQ6IG9wdGlvbnMudGFyZ2V0LFxuICAgIHByZXNlcnZlU3ltbGlua3M6IG9wdGlvbnMucHJlc2VydmVTeW1saW5rcyxcbiAgICBleHRlcm5hbDogb3B0aW9ucy5leHRlcm5hbERlcGVuZGVuY2llcyxcbiAgICBjb25kaXRpb25zOiBbJ3N0eWxlJywgJ3Nhc3MnXSxcbiAgICBtYWluRmllbGRzOiBbJ3N0eWxlJywgJ3Nhc3MnXSxcbiAgICBwbHVnaW5zOiBbXG4gICAgICBwbHVnaW5GYWN0b3J5LmNyZWF0ZShTYXNzU3R5bGVzaGVldExhbmd1YWdlKSxcbiAgICAgIHBsdWdpbkZhY3RvcnkuY3JlYXRlKExlc3NTdHlsZXNoZWV0TGFuZ3VhZ2UpLFxuICAgICAgcGx1Z2luRmFjdG9yeS5jcmVhdGUoQ3NzU3R5bGVzaGVldExhbmd1YWdlKSxcbiAgICAgIGNyZWF0ZUNzc1Jlc291cmNlUGx1Z2luKGNhY2hlKSxcbiAgICBdLFxuICB9O1xufVxuXG4vKipcbiAqIEJ1bmRsZXMgYSBjb21wb25lbnQgc3R5bGVzaGVldC4gVGhlIHN0eWxlc2hlZXQgY2FuIGJlIGVpdGhlciBhbiBpbmxpbmUgc3R5bGVzaGVldCB0aGF0XG4gKiBpcyBjb250YWluZWQgd2l0aGluIHRoZSBDb21wb25lbnQncyBtZXRhZGF0YSBkZWZpbml0aW9uIG9yIGFuIGV4dGVybmFsIGZpbGUgcmVmZXJlbmNlZFxuICogZnJvbSB0aGUgQ29tcG9uZW50J3MgbWV0YWRhdGEgZGVmaW5pdGlvbi5cbiAqXG4gKiBAcGFyYW0gaWRlbnRpZmllciBBIHVuaXF1ZSBzdHJpbmcgaWRlbnRpZmllciBmb3IgdGhlIGNvbXBvbmVudCBzdHlsZXNoZWV0LlxuICogQHBhcmFtIGxhbmd1YWdlIFRoZSBsYW5ndWFnZSBvZiB0aGUgc3R5bGVzaGVldCBzdWNoIGFzIGBjc3NgIG9yIGBzY3NzYC5cbiAqIEBwYXJhbSBkYXRhIFRoZSBzdHJpbmcgY29udGVudCBvZiB0aGUgc3R5bGVzaGVldC5cbiAqIEBwYXJhbSBmaWxlbmFtZSBUaGUgZmlsZW5hbWUgcmVwcmVzZW50aW5nIHRoZSBzb3VyY2Ugb2YgdGhlIHN0eWxlc2hlZXQgY29udGVudC5cbiAqIEBwYXJhbSBpbmxpbmUgSWYgdHJ1ZSwgdGhlIHN0eWxlc2hlZXQgc291cmNlIGlzIHdpdGhpbiB0aGUgY29tcG9uZW50IG1ldGFkYXRhO1xuICogaWYgZmFsc2UsIHRoZSBzb3VyY2UgaXMgYSBzdHlsZXNoZWV0IGZpbGUuXG4gKiBAcGFyYW0gb3B0aW9ucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgc3R5bGVzaGVldCBidW5kbGluZyBvcHRpb25zLlxuICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG91dHB1dCBvZiB0aGUgYnVuZGxpbmcgb3BlcmF0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVuZGxlQ29tcG9uZW50U3R5bGVzaGVldChcbiAgbGFuZ3VhZ2U6IHN0cmluZyxcbiAgZGF0YTogc3RyaW5nLFxuICBmaWxlbmFtZTogc3RyaW5nLFxuICBpbmxpbmU6IGJvb2xlYW4sXG4gIG9wdGlvbnM6IEJ1bmRsZVN0eWxlc2hlZXRPcHRpb25zLFxuICBjYWNoZT86IExvYWRSZXN1bHRDYWNoZSxcbikge1xuICBjb25zdCBuYW1lc3BhY2UgPSAnYW5ndWxhcjpzdHlsZXMvY29tcG9uZW50JztcbiAgLy8gVXNlIGEgaGFzaCBvZiB0aGUgaW5saW5lIHN0eWxlc2hlZXQgY29udGVudCB0byBlbnN1cmUgYSBjb25zaXN0ZW50IGlkZW50aWZpZXIuIEV4dGVybmFsIHN0eWxlc2hlZXRzIHdpbGwgcmVzb2x2ZVxuICAvLyB0byB0aGUgYWN0dWFsIHN0eWxlc2hlZXQgZmlsZSBwYXRoLlxuICAvLyBUT0RPOiBDb25zaWRlciB4eGhhc2ggaW5zdGVhZCBmb3IgaGFzaGluZ1xuICBjb25zdCBpZCA9IGlubGluZSA/IGNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShkYXRhKS5kaWdlc3QoJ2hleCcpIDogY29tcG9uZW50U3R5bGVDb3VudGVyKys7XG4gIGNvbnN0IGVudHJ5ID0gW2xhbmd1YWdlLCBpZCwgZmlsZW5hbWVdLmpvaW4oJzsnKTtcblxuICBjb25zdCBidWlsZE9wdGlvbnMgPSBjcmVhdGVTdHlsZXNoZWV0QnVuZGxlT3B0aW9ucyhvcHRpb25zLCBjYWNoZSwgeyBbZW50cnldOiBkYXRhIH0pO1xuICBidWlsZE9wdGlvbnMuZW50cnlQb2ludHMgPSBbYCR7bmFtZXNwYWNlfTske2VudHJ5fWBdO1xuICBidWlsZE9wdGlvbnMucGx1Z2lucy5wdXNoKHtcbiAgICBuYW1lOiAnYW5ndWxhci1jb21wb25lbnQtc3R5bGVzJyxcbiAgICBzZXR1cChidWlsZCkge1xuICAgICAgYnVpbGQub25SZXNvbHZlKHsgZmlsdGVyOiAvXmFuZ3VsYXI6c3R5bGVzXFwvY29tcG9uZW50Oy8gfSwgKGFyZ3MpID0+IHtcbiAgICAgICAgaWYgKGFyZ3Mua2luZCAhPT0gJ2VudHJ5LXBvaW50Jykge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlubGluZSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwYXRoOiBlbnRyeSxcbiAgICAgICAgICAgIG5hbWVzcGFjZSxcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwYXRoOiBmaWxlbmFtZSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGJ1aWxkLm9uTG9hZCh7IGZpbHRlcjogL15jc3M7LywgbmFtZXNwYWNlIH0sIGFzeW5jICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50czogZGF0YSxcbiAgICAgICAgICBsb2FkZXI6ICdjc3MnLFxuICAgICAgICAgIHJlc29sdmVEaXI6IHBhdGguZGlybmFtZShmaWxlbmFtZSksXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9LFxuICB9KTtcblxuICAvLyBFeGVjdXRlIGVzYnVpbGRcbiAgY29uc3QgY29udGV4dCA9IG5ldyBCdW5kbGVyQ29udGV4dChvcHRpb25zLndvcmtzcGFjZVJvb3QsIGZhbHNlLCBidWlsZE9wdGlvbnMpO1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBjb250ZXh0LmJ1bmRsZSgpO1xuXG4gIC8vIEV4dHJhY3QgdGhlIHJlc3VsdCBvZiB0aGUgYnVuZGxpbmcgZnJvbSB0aGUgb3V0cHV0IGZpbGVzXG4gIGxldCBjb250ZW50cyA9ICcnO1xuICBsZXQgbWFwO1xuICBsZXQgb3V0cHV0UGF0aDtcbiAgY29uc3QgcmVzb3VyY2VGaWxlczogT3V0cHV0RmlsZVtdID0gW107XG4gIGlmICghcmVzdWx0LmVycm9ycykge1xuICAgIGZvciAoY29uc3Qgb3V0cHV0RmlsZSBvZiByZXN1bHQub3V0cHV0RmlsZXMpIHtcbiAgICAgIGNvbnN0IGZpbGVuYW1lID0gcGF0aC5iYXNlbmFtZShvdXRwdXRGaWxlLnBhdGgpO1xuICAgICAgaWYgKGZpbGVuYW1lLmVuZHNXaXRoKCcuY3NzJykpIHtcbiAgICAgICAgb3V0cHV0UGF0aCA9IG91dHB1dEZpbGUucGF0aDtcbiAgICAgICAgY29udGVudHMgPSBvdXRwdXRGaWxlLnRleHQ7XG4gICAgICB9IGVsc2UgaWYgKGZpbGVuYW1lLmVuZHNXaXRoKCcuY3NzLm1hcCcpKSB7XG4gICAgICAgIG1hcCA9IG91dHB1dEZpbGUudGV4dDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoZSBvdXRwdXQgZmlsZXMgY291bGQgYWxzbyBjb250YWluIHJlc291cmNlcyAoaW1hZ2VzL2ZvbnRzL2V0Yy4pIHRoYXQgd2VyZSByZWZlcmVuY2VkXG4gICAgICAgIHJlc291cmNlRmlsZXMucHVzaChvdXRwdXRGaWxlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBsZXQgbWV0YWZpbGU7XG4gIGlmICghcmVzdWx0LmVycm9ycykge1xuICAgIG1ldGFmaWxlID0gcmVzdWx0Lm1ldGFmaWxlO1xuICAgIC8vIFJlbW92ZSBlbnRyeVBvaW50IGZpZWxkcyBmcm9tIG91dHB1dHMgdG8gcHJldmVudCB0aGUgaW50ZXJuYWwgY29tcG9uZW50IHN0eWxlcyBmcm9tIGJlaW5nXG4gICAgLy8gdHJlYXRlZCBhcyBpbml0aWFsIGZpbGVzLiBBbHNvIG1hcmsgdGhlIGVudHJ5IGFzIGEgY29tcG9uZW50IHJlc291cmNlIGZvciBzdGF0IHJlcG9ydGluZy5cbiAgICBPYmplY3QudmFsdWVzKG1ldGFmaWxlLm91dHB1dHMpLmZvckVhY2goKG91dHB1dCkgPT4ge1xuICAgICAgZGVsZXRlIG91dHB1dC5lbnRyeVBvaW50O1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIChvdXRwdXQgYXMgYW55KVsnbmctY29tcG9uZW50J10gPSB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBlcnJvcnM6IHJlc3VsdC5lcnJvcnMsXG4gICAgd2FybmluZ3M6IHJlc3VsdC53YXJuaW5ncyxcbiAgICBjb250ZW50cyxcbiAgICBtYXAsXG4gICAgcGF0aDogb3V0cHV0UGF0aCxcbiAgICByZXNvdXJjZUZpbGVzLFxuICAgIG1ldGFmaWxlLFxuICB9O1xufVxuIl19
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9idWlsZF9hbmd1bGFyL3NyYy90b29scy9lc2J1aWxkL3N0eWxlc2hlZXRzL2J1bmRsZS1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7Ozs7OztBQUdILDBEQUE2QjtBQUU3QixpREFBdUQ7QUFDdkQsK0RBQWdFO0FBQ2hFLG1EQUF5RDtBQUN6RCxtREFBeUQ7QUFDekQsMkVBQXNFO0FBZXRFLFNBQWdCLDZCQUE2QixDQUMzQyxPQUFnQyxFQUNoQyxLQUF1QixFQUN2QixtQkFBNEM7SUFFNUMsNkVBQTZFO0lBQzdFLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FDN0QsbUJBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FDakQsQ0FBQztJQUVGLE1BQU0sYUFBYSxHQUFHLElBQUksbURBQXVCLENBQy9DO1FBQ0UsU0FBUyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUztRQUM5QixZQUFZO1FBQ1osbUJBQW1CO1FBQ25CLHFCQUFxQixFQUFFLE9BQU8sQ0FBQyxxQkFBcUI7S0FDckQsRUFDRCxLQUFLLENBQ04sQ0FBQztJQUVGLE9BQU87UUFDTCxhQUFhLEVBQUUsT0FBTyxDQUFDLGFBQWE7UUFDcEMsTUFBTSxFQUFFLElBQUk7UUFDWixVQUFVLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPO1FBQ3ZDLFVBQVUsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUs7UUFDckMsUUFBUSxFQUFFLFFBQVE7UUFDbEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxZQUFZO1FBQzVCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO1FBQzVCLE1BQU0sRUFBRSxPQUFPLENBQUMsYUFBYTtRQUM3QixLQUFLLEVBQUUsS0FBSztRQUNaLFFBQVEsRUFBRSxTQUFTO1FBQ25CLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtRQUN0QixnQkFBZ0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCO1FBQzFDLFFBQVEsRUFBRSxPQUFPLENBQUMsb0JBQW9CO1FBQ3RDLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtRQUM5QixVQUFVLEVBQUUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQztRQUNyQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO1FBQzdCLE9BQU8sRUFBRTtZQUNQLGFBQWEsQ0FBQyxNQUFNLENBQUMsc0NBQXNCLENBQUM7WUFDNUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxzQ0FBc0IsQ0FBQztZQUM1QyxhQUFhLENBQUMsTUFBTSxDQUFDLG9DQUFxQixDQUFDO1lBQzNDLElBQUEsNkNBQXVCLEVBQUMsS0FBSyxDQUFDO1NBQy9CO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUE3Q0Qsc0VBNkNDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB0eXBlIHsgQnVpbGRPcHRpb25zIH0gZnJvbSAnZXNidWlsZCc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgTG9hZFJlc3VsdENhY2hlIH0gZnJvbSAnLi4vbG9hZC1yZXN1bHQtY2FjaGUnO1xuaW1wb3J0IHsgQ3NzU3R5bGVzaGVldExhbmd1YWdlIH0gZnJvbSAnLi9jc3MtbGFuZ3VhZ2UnO1xuaW1wb3J0IHsgY3JlYXRlQ3NzUmVzb3VyY2VQbHVnaW4gfSBmcm9tICcuL2Nzcy1yZXNvdXJjZS1wbHVnaW4nO1xuaW1wb3J0IHsgTGVzc1N0eWxlc2hlZXRMYW5ndWFnZSB9IGZyb20gJy4vbGVzcy1sYW5ndWFnZSc7XG5pbXBvcnQgeyBTYXNzU3R5bGVzaGVldExhbmd1YWdlIH0gZnJvbSAnLi9zYXNzLWxhbmd1YWdlJztcbmltcG9ydCB7IFN0eWxlc2hlZXRQbHVnaW5GYWN0b3J5IH0gZnJvbSAnLi9zdHlsZXNoZWV0LXBsdWdpbi1mYWN0b3J5JztcblxuZXhwb3J0IGludGVyZmFjZSBCdW5kbGVTdHlsZXNoZWV0T3B0aW9ucyB7XG4gIHdvcmtzcGFjZVJvb3Q6IHN0cmluZztcbiAgb3B0aW1pemF0aW9uOiBib29sZWFuO1xuICBwcmVzZXJ2ZVN5bWxpbmtzPzogYm9vbGVhbjtcbiAgc291cmNlbWFwOiBib29sZWFuIHwgJ2V4dGVybmFsJyB8ICdpbmxpbmUnO1xuICBvdXRwdXROYW1lczogeyBidW5kbGVzOiBzdHJpbmc7IG1lZGlhOiBzdHJpbmcgfTtcbiAgaW5jbHVkZVBhdGhzPzogc3RyaW5nW107XG4gIGV4dGVybmFsRGVwZW5kZW5jaWVzPzogc3RyaW5nW107XG4gIHRhcmdldDogc3RyaW5nW107XG4gIHRhaWx3aW5kQ29uZmlndXJhdGlvbj86IHsgZmlsZTogc3RyaW5nOyBwYWNrYWdlOiBzdHJpbmcgfTtcbiAgcHVibGljUGF0aD86IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVN0eWxlc2hlZXRCdW5kbGVPcHRpb25zKFxuICBvcHRpb25zOiBCdW5kbGVTdHlsZXNoZWV0T3B0aW9ucyxcbiAgY2FjaGU/OiBMb2FkUmVzdWx0Q2FjaGUsXG4gIGlubGluZUNvbXBvbmVudERhdGE/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuKTogQnVpbGRPcHRpb25zICYgeyBwbHVnaW5zOiBOb25OdWxsYWJsZTxCdWlsZE9wdGlvbnNbJ3BsdWdpbnMnXT4gfSB7XG4gIC8vIEVuc3VyZSBwcmVwcm9jZXNzb3IgaW5jbHVkZSBwYXRocyBhcmUgYWJzb2x1dGUgYmFzZWQgb24gdGhlIHdvcmtzcGFjZSByb290XG4gIGNvbnN0IGluY2x1ZGVQYXRocyA9IG9wdGlvbnMuaW5jbHVkZVBhdGhzPy5tYXAoKGluY2x1ZGVQYXRoKSA9PlxuICAgIHBhdGgucmVzb2x2ZShvcHRpb25zLndvcmtzcGFjZVJvb3QsIGluY2x1ZGVQYXRoKSxcbiAgKTtcblxuICBjb25zdCBwbHVnaW5GYWN0b3J5ID0gbmV3IFN0eWxlc2hlZXRQbHVnaW5GYWN0b3J5KFxuICAgIHtcbiAgICAgIHNvdXJjZW1hcDogISFvcHRpb25zLnNvdXJjZW1hcCxcbiAgICAgIGluY2x1ZGVQYXRocyxcbiAgICAgIGlubGluZUNvbXBvbmVudERhdGEsXG4gICAgICB0YWlsd2luZENvbmZpZ3VyYXRpb246IG9wdGlvbnMudGFpbHdpbmRDb25maWd1cmF0aW9uLFxuICAgIH0sXG4gICAgY2FjaGUsXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICBhYnNXb3JraW5nRGlyOiBvcHRpb25zLndvcmtzcGFjZVJvb3QsXG4gICAgYnVuZGxlOiB0cnVlLFxuICAgIGVudHJ5TmFtZXM6IG9wdGlvbnMub3V0cHV0TmFtZXMuYnVuZGxlcyxcbiAgICBhc3NldE5hbWVzOiBvcHRpb25zLm91dHB1dE5hbWVzLm1lZGlhLFxuICAgIGxvZ0xldmVsOiAnc2lsZW50JyxcbiAgICBtaW5pZnk6IG9wdGlvbnMub3B0aW1pemF0aW9uLFxuICAgIG1ldGFmaWxlOiB0cnVlLFxuICAgIHNvdXJjZW1hcDogb3B0aW9ucy5zb3VyY2VtYXAsXG4gICAgb3V0ZGlyOiBvcHRpb25zLndvcmtzcGFjZVJvb3QsXG4gICAgd3JpdGU6IGZhbHNlLFxuICAgIHBsYXRmb3JtOiAnYnJvd3NlcicsXG4gICAgdGFyZ2V0OiBvcHRpb25zLnRhcmdldCxcbiAgICBwcmVzZXJ2ZVN5bWxpbmtzOiBvcHRpb25zLnByZXNlcnZlU3ltbGlua3MsXG4gICAgZXh0ZXJuYWw6IG9wdGlvbnMuZXh0ZXJuYWxEZXBlbmRlbmNpZXMsXG4gICAgcHVibGljUGF0aDogb3B0aW9ucy5wdWJsaWNQYXRoLFxuICAgIGNvbmRpdGlvbnM6IFsnc3R5bGUnLCAnc2FzcycsICdsZXNzJ10sXG4gICAgbWFpbkZpZWxkczogWydzdHlsZScsICdzYXNzJ10sXG4gICAgcGx1Z2luczogW1xuICAgICAgcGx1Z2luRmFjdG9yeS5jcmVhdGUoU2Fzc1N0eWxlc2hlZXRMYW5ndWFnZSksXG4gICAgICBwbHVnaW5GYWN0b3J5LmNyZWF0ZShMZXNzU3R5bGVzaGVldExhbmd1YWdlKSxcbiAgICAgIHBsdWdpbkZhY3RvcnkuY3JlYXRlKENzc1N0eWxlc2hlZXRMYW5ndWFnZSksXG4gICAgICBjcmVhdGVDc3NSZXNvdXJjZVBsdWdpbihjYWNoZSksXG4gICAgXSxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -45,10 +45,11 @@ exports.LessStylesheetLanguage = Object.freeze({
|
|
|
45
45
|
componentFilter: /^less;/,
|
|
46
46
|
fileFilter: /\.less$/,
|
|
47
47
|
process(data, file, _, options, build) {
|
|
48
|
-
return compileString(data, file, options, build.resolve.bind(build)
|
|
48
|
+
return compileString(data, file, options, build.resolve.bind(build),
|
|
49
|
+
/* unsafeInlineJavaScript */ false);
|
|
49
50
|
},
|
|
50
51
|
});
|
|
51
|
-
async function compileString(data, filename, options, resolver) {
|
|
52
|
+
async function compileString(data, filename, options, resolver, unsafeInlineJavaScript) {
|
|
52
53
|
const less = (lessPreprocessor ??= (await Promise.resolve().then(() => __importStar(require('less')))).default);
|
|
53
54
|
const resolverPlugin = {
|
|
54
55
|
install({ FileManager }, pluginManager) {
|
|
@@ -90,6 +91,7 @@ async function compileString(data, filename, options, resolver) {
|
|
|
90
91
|
paths: options.includePaths,
|
|
91
92
|
plugins: [resolverPlugin],
|
|
92
93
|
rewriteUrls: 'all',
|
|
94
|
+
javascriptEnabled: unsafeInlineJavaScript,
|
|
93
95
|
sourceMap: options.sourcemap
|
|
94
96
|
? {
|
|
95
97
|
sourceMapFileInline: true,
|
|
@@ -105,17 +107,33 @@ async function compileString(data, filename, options, resolver) {
|
|
|
105
107
|
}
|
|
106
108
|
catch (error) {
|
|
107
109
|
if (isLessException(error)) {
|
|
110
|
+
// Retry with a warning for less files requiring the deprecated inline JavaScript option
|
|
111
|
+
if (error.message.includes('Inline JavaScript is not enabled.')) {
|
|
112
|
+
const withJsResult = await compileString(data, filename, options, resolver,
|
|
113
|
+
/* unsafeInlineJavaScript */ true);
|
|
114
|
+
withJsResult.warnings = [
|
|
115
|
+
{
|
|
116
|
+
text: 'Deprecated inline execution of JavaScript has been enabled ("javascriptEnabled")',
|
|
117
|
+
location: convertExceptionLocation(error),
|
|
118
|
+
notes: [
|
|
119
|
+
{
|
|
120
|
+
location: null,
|
|
121
|
+
text: 'JavaScript found within less stylesheets may be executed at build time. [https://lesscss.org/usage/#less-options]',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
location: null,
|
|
125
|
+
text: 'Support for "javascriptEnabled" may be removed from the Angular CLI starting with Angular v19.',
|
|
126
|
+
},
|
|
127
|
+
],
|
|
128
|
+
},
|
|
129
|
+
];
|
|
130
|
+
return withJsResult;
|
|
131
|
+
}
|
|
108
132
|
return {
|
|
109
133
|
errors: [
|
|
110
134
|
{
|
|
111
135
|
text: error.message,
|
|
112
|
-
location:
|
|
113
|
-
file: error.filename,
|
|
114
|
-
line: error.line,
|
|
115
|
-
column: error.column,
|
|
116
|
-
// Middle element represents the line containing the error
|
|
117
|
-
lineText: error.extract && error.extract[Math.trunc(error.extract.length / 2)],
|
|
118
|
-
},
|
|
136
|
+
location: convertExceptionLocation(error),
|
|
119
137
|
},
|
|
120
138
|
],
|
|
121
139
|
loader: 'css',
|
|
@@ -124,4 +142,13 @@ async function compileString(data, filename, options, resolver) {
|
|
|
124
142
|
throw error;
|
|
125
143
|
}
|
|
126
144
|
}
|
|
127
|
-
|
|
145
|
+
function convertExceptionLocation(exception) {
|
|
146
|
+
return {
|
|
147
|
+
file: exception.filename,
|
|
148
|
+
line: exception.line,
|
|
149
|
+
column: exception.column,
|
|
150
|
+
// Middle element represents the line containing the exception
|
|
151
|
+
lineText: exception.extract && exception.extract[Math.trunc(exception.extract.length / 2)],
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVzcy1sYW5ndWFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL3Rvb2xzL2VzYnVpbGQvc3R5bGVzaGVldHMvbGVzcy1sYW5ndWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdILCtDQUE0QztBQUc1Qzs7O0dBR0c7QUFDSCxJQUFJLGdCQUFtRCxDQUFDO0FBU3hELFNBQVMsZUFBZSxDQUFDLEtBQWM7SUFDckMsT0FBTyxDQUFDLENBQUMsS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxRQUFRLElBQUksS0FBSyxDQUFDO0FBQ25FLENBQUM7QUFFWSxRQUFBLHNCQUFzQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQXFCO0lBQ3RFLElBQUksRUFBRSxNQUFNO0lBQ1osZUFBZSxFQUFFLFFBQVE7SUFDekIsVUFBVSxFQUFFLFNBQVM7SUFDckIsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLO1FBQ25DLE9BQU8sYUFBYSxDQUNsQixJQUFJLEVBQ0osSUFBSSxFQUNKLE9BQU8sRUFDUCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDekIsNEJBQTRCLENBQUMsS0FBSyxDQUNuQyxDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILEtBQUssVUFBVSxhQUFhLENBQzFCLElBQVksRUFDWixRQUFnQixFQUNoQixPQUFnQyxFQUNoQyxRQUFnQyxFQUNoQyxzQkFBK0I7SUFFL0IsTUFBTSxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsS0FBSyxDQUFDLHdEQUFhLE1BQU0sR0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFbkUsTUFBTSxj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O29CQUNOO3dCQUNFLElBQUksRUFBRSxLQUFLLENBQUMsT0FBTzt3QkFDbkIsUUFBUSxFQUFFLHdCQUF3QixDQUFDLEtBQUssQ0FBQztxQkFDMUM7aUJBQ0Y7Z0JBQ0QsTUFBTSxFQUFFLEtBQUs7YUFDZCxDQUFDO1NBQ0g7UUFFRCxNQUFNLEtBQUssQ0FBQztLQUNiO0FBQ0gsQ0FBQztBQUVELFNBQVMsd0JBQXdCLENBQUMsU0FBd0I7SUFDeEQsT0FBTztRQUNMLElBQUksRUFBRSxTQUFTLENBQUMsUUFBUTtRQUN4QixJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7UUFDcEIsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNO1FBQ3hCLDhEQUE4RDtRQUM5RCxRQUFRLEVBQUUsU0FBUyxDQUFDLE9BQU8sSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDM0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBMb2NhdGlvbiwgT25Mb2FkUmVzdWx0LCBQbHVnaW5CdWlsZCB9IGZyb20gJ2VzYnVpbGQnO1xuaW1wb3J0IHsgcmVhZEZpbGUgfSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcbmltcG9ydCB7IFN0eWxlc2hlZXRMYW5ndWFnZSwgU3R5bGVzaGVldFBsdWdpbk9wdGlvbnMgfSBmcm9tICcuL3N0eWxlc2hlZXQtcGx1Z2luLWZhY3RvcnknO1xuXG4vKipcbiAqIFRoZSBsYXp5LWxvYWRlZCBpbnN0YW5jZSBvZiB0aGUgbGVzcyBzdHlsZXNoZWV0IHByZXByb2Nlc3Nvci5cbiAqIEl0IGlzIG9ubHkgaW1wb3J0ZWQgYW5kIGluaXRpYWxpemVkIGlmIGEgbGVzcyBzdHlsZXNoZWV0IGlzIHVzZWQuXG4gKi9cbmxldCBsZXNzUHJlcHJvY2Vzc29yOiB0eXBlb2YgaW1wb3J0KCdsZXNzJykgfCB1bmRlZmluZWQ7XG5cbmludGVyZmFjZSBMZXNzRXhjZXB0aW9uIGV4dGVuZHMgRXJyb3Ige1xuICBmaWxlbmFtZTogc3RyaW5nO1xuICBsaW5lOiBudW1iZXI7XG4gIGNvbHVtbjogbnVtYmVyO1xuICBleHRyYWN0Pzogc3RyaW5nW107XG59XG5cbmZ1bmN0aW9uIGlzTGVzc0V4Y2VwdGlvbihlcnJvcjogdW5rbm93bik6IGVycm9yIGlzIExlc3NFeGNlcHRpb24ge1xuICByZXR1cm4gISFlcnJvciAmJiB0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnICYmICdjb2x1bW4nIGluIGVycm9yO1xufVxuXG5leHBvcnQgY29uc3QgTGVzc1N0eWxlc2hlZXRMYW5ndWFnZSA9IE9iamVjdC5mcmVlemU8U3R5bGVzaGVldExhbmd1YWdlPih7XG4gIG5hbWU6ICdsZXNzJyxcbiAgY29tcG9uZW50RmlsdGVyOiAvXmxlc3M7LyxcbiAgZmlsZUZpbHRlcjogL1xcLmxlc3MkLyxcbiAgcHJvY2VzcyhkYXRhLCBmaWxlLCBfLCBvcHRpb25zLCBidWlsZCkge1xuICAgIHJldHVybiBjb21waWxlU3RyaW5nKFxuICAgICAgZGF0YSxcbiAgICAgIGZpbGUsXG4gICAgICBvcHRpb25zLFxuICAgICAgYnVpbGQucmVzb2x2ZS5iaW5kKGJ1aWxkKSxcbiAgICAgIC8qIHVuc2FmZUlubGluZUphdmFTY3JpcHQgKi8gZmFsc2UsXG4gICAgKTtcbiAgfSxcbn0pO1xuXG5hc3luYyBmdW5jdGlvbiBjb21waWxlU3RyaW5nKFxuICBkYXRhOiBzdHJpbmcsXG4gIGZpbGVuYW1lOiBzdHJpbmcsXG4gIG9wdGlvbnM6IFN0eWxlc2hlZXRQbHVnaW5PcHRpb25zLFxuICByZXNvbHZlcjogUGx1Z2luQnVpbGRbJ3Jlc29sdmUnXSxcbiAgdW5zYWZlSW5saW5lSmF2YVNjcmlwdDogYm9vbGVhbixcbik6IFByb21pc2U8T25Mb2FkUmVzdWx0PiB7XG4gIGNvbnN0IGxlc3MgPSAobGVzc1ByZXByb2Nlc3NvciA/Pz0gKGF3YWl0IGltcG9ydCgnbGVzcycpKS5kZWZhdWx0KTtcblxuICBjb25zdCByZXNvbHZlclBsdWdpbjogTGVzcy5QbHVnaW4gPSB7XG4gICAgaW5zdGFsbCh7IEZpbGVNYW5hZ2VyIH0sIHBsdWdpbk1hbmFnZXIpOiB2b2lkIHtcbiAgICAgIGNvbnN0IHJlc29sdmVyRmlsZU1hbmFnZXIgPSBuZXcgKGNsYXNzIGV4dGVuZHMgRmlsZU1hbmFnZXIge1xuICAgICAgICBvdmVycmlkZSBzdXBwb3J0c1N5bmMoKTogYm9vbGVhbiB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgb3ZlcnJpZGUgc3VwcG9ydHMoKTogYm9vbGVhbiB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBvdmVycmlkZSBhc3luYyBsb2FkRmlsZShcbiAgICAgICAgICBmaWxlbmFtZTogc3RyaW5nLFxuICAgICAgICAgIGN1cnJlbnREaXJlY3Rvcnk6IHN0cmluZyxcbiAgICAgICAgICBvcHRpb25zOiBMZXNzLkxvYWRGaWxlT3B0aW9ucyxcbiAgICAgICAgICBlbnZpcm9ubWVudDogTGVzcy5FbnZpcm9ubWVudCxcbiAgICAgICAgKTogUHJvbWlzZTxMZXNzLkZpbGVMb2FkUmVzdWx0PiB7XG4gICAgICAgICAgLy8gQXR0ZW1wdCBkaXJlY3QgbG9hZGluZyBhcyBhIHJlbGF0aXZlIHBhdGggdG8gYXZvaWQgcmVzb2x1dGlvbiBvdmVyaGVhZFxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgc3VwZXIubG9hZEZpbGUoZmlsZW5hbWUsIGN1cnJlbnREaXJlY3RvcnksIG9wdGlvbnMsIGVudmlyb25tZW50KTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgLy8gQXR0ZW1wdCBhIGZ1bGwgcmVzb2x1dGlvbiBpZiBub3QgZm91bmRcbiAgICAgICAgICAgIGNvbnN0IGZ1bGxSZXN1bHQgPSBhd2FpdCByZXNvbHZlcihmaWxlbmFtZSwge1xuICAgICAgICAgICAgICBraW5kOiAnaW1wb3J0LXJ1bGUnLFxuICAgICAgICAgICAgICByZXNvbHZlRGlyOiBjdXJyZW50RGlyZWN0b3J5LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoZnVsbFJlc3VsdC5wYXRoKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZmlsZW5hbWU6IGZ1bGxSZXN1bHQucGF0aCxcbiAgICAgICAgICAgICAgICBjb250ZW50czogYXdhaXQgcmVhZEZpbGUoZnVsbFJlc3VsdC5wYXRoLCAndXRmLTgnKSxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIE90aGVyd2lzZSBlcnJvciBieSB0aHJvd2luZyB0aGUgZmFpbGluZyBkaXJlY3QgcmVzdWx0XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pKCk7XG5cbiAgICAgIHBsdWdpbk1hbmFnZXIuYWRkRmlsZU1hbmFnZXIocmVzb2x2ZXJGaWxlTWFuYWdlcik7XG4gICAgfSxcbiAgfTtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGxlc3MucmVuZGVyKGRhdGEsIHtcbiAgICAgIGZpbGVuYW1lLFxuICAgICAgcGF0aHM6IG9wdGlvbnMuaW5jbHVkZVBhdGhzLFxuICAgICAgcGx1Z2luczogW3Jlc29sdmVyUGx1Z2luXSxcbiAgICAgIHJld3JpdGVVcmxzOiAnYWxsJyxcbiAgICAgIGphdmFzY3JpcHRFbmFibGVkOiB1bnNhZmVJbmxpbmVKYXZhU2NyaXB0LFxuICAgICAgc291cmNlTWFwOiBvcHRpb25zLnNvdXJjZW1hcFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIHNvdXJjZU1hcEZpbGVJbmxpbmU6IHRydWUsXG4gICAgICAgICAgICBvdXRwdXRTb3VyY2VGaWxlczogdHJ1ZSxcbiAgICAgICAgICB9XG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH0gYXMgTGVzcy5PcHRpb25zKTtcblxuICAgIHJldHVybiB7XG4gICAgICBjb250ZW50czogcmVzdWx0LmNzcyxcbiAgICAgIGxvYWRlcjogJ2NzcycsXG4gICAgICB3YXRjaEZpbGVzOiBbZmlsZW5hbWUsIC4uLnJlc3VsdC5pbXBvcnRzXSxcbiAgICB9O1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChpc0xlc3NFeGNlcHRpb24oZXJyb3IpKSB7XG4gICAgICAvLyBSZXRyeSB3aXRoIGEgd2FybmluZyBmb3IgbGVzcyBmaWxlcyByZXF1aXJpbmcgdGhlIGRlcHJlY2F0ZWQgaW5saW5lIEphdmFTY3JpcHQgb3B0aW9uXG4gICAgICBpZiAoZXJyb3IubWVzc2FnZS5pbmNsdWRlcygnSW5saW5lIEphdmFTY3JpcHQgaXMgbm90IGVuYWJsZWQuJykpIHtcbiAgICAgICAgY29uc3Qgd2l0aEpzUmVzdWx0ID0gYXdhaXQgY29tcGlsZVN0cmluZyhcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGZpbGVuYW1lLFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgcmVzb2x2ZXIsXG4gICAgICAgICAgLyogdW5zYWZlSW5saW5lSmF2YVNjcmlwdCAqLyB0cnVlLFxuICAgICAgICApO1xuICAgICAgICB3aXRoSnNSZXN1bHQud2FybmluZ3MgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogJ0RlcHJlY2F0ZWQgaW5saW5lIGV4ZWN1dGlvbiBvZiBKYXZhU2NyaXB0IGhhcyBiZWVuIGVuYWJsZWQgKFwiamF2YXNjcmlwdEVuYWJsZWRcIiknLFxuICAgICAgICAgICAgbG9jYXRpb246IGNvbnZlcnRFeGNlcHRpb25Mb2NhdGlvbihlcnJvciksXG4gICAgICAgICAgICBub3RlczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbG9jYXRpb246IG51bGwsXG4gICAgICAgICAgICAgICAgdGV4dDogJ0phdmFTY3JpcHQgZm91bmQgd2l0aGluIGxlc3Mgc3R5bGVzaGVldHMgbWF5IGJlIGV4ZWN1dGVkIGF0IGJ1aWxkIHRpbWUuIFtodHRwczovL2xlc3Njc3Mub3JnL3VzYWdlLyNsZXNzLW9wdGlvbnNdJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxvY2F0aW9uOiBudWxsLFxuICAgICAgICAgICAgICAgIHRleHQ6ICdTdXBwb3J0IGZvciBcImphdmFzY3JpcHRFbmFibGVkXCIgbWF5IGJlIHJlbW92ZWQgZnJvbSB0aGUgQW5ndWxhciBDTEkgc3RhcnRpbmcgd2l0aCBBbmd1bGFyIHYxOS4nLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuXG4gICAgICAgIHJldHVybiB3aXRoSnNSZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVycm9yczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6IGVycm9yLm1lc3NhZ2UsXG4gICAgICAgICAgICBsb2NhdGlvbjogY29udmVydEV4Y2VwdGlvbkxvY2F0aW9uKGVycm9yKSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBsb2FkZXI6ICdjc3MnLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb252ZXJ0RXhjZXB0aW9uTG9jYXRpb24oZXhjZXB0aW9uOiBMZXNzRXhjZXB0aW9uKTogUGFydGlhbDxMb2NhdGlvbj4ge1xuICByZXR1cm4ge1xuICAgIGZpbGU6IGV4Y2VwdGlvbi5maWxlbmFtZSxcbiAgICBsaW5lOiBleGNlcHRpb24ubGluZSxcbiAgICBjb2x1bW46IGV4Y2VwdGlvbi5jb2x1bW4sXG4gICAgLy8gTWlkZGxlIGVsZW1lbnQgcmVwcmVzZW50cyB0aGUgbGluZSBjb250YWluaW5nIHRoZSBleGNlcHRpb25cbiAgICBsaW5lVGV4dDogZXhjZXB0aW9uLmV4dHJhY3QgJiYgZXhjZXB0aW9uLmV4dHJhY3RbTWF0aC50cnVuYyhleGNlcHRpb24uZXh0cmFjdC5sZW5ndGggLyAyKV0sXG4gIH07XG59XG4iXX0=
|
|
@@ -7,11 +7,12 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { BuilderContext } from '@angular-devkit/architect';
|
|
9
9
|
import { BuildOptions, Metafile, OutputFile, PartialMessage } from 'esbuild';
|
|
10
|
-
import {
|
|
11
|
-
|
|
10
|
+
import { BudgetCalculatorResult } from '../../utils/bundle-calculator';
|
|
11
|
+
import { BuildOutputFile, BuildOutputFileType, InitialFileRecord } from './bundler-context';
|
|
12
|
+
export declare function logBuildStats(context: BuilderContext, metafile: Metafile, initial: Map<string, InitialFileRecord>, budgetFailures: BudgetCalculatorResult[] | undefined, estimatedTransferSizes?: Map<string, number>): void;
|
|
12
13
|
export declare function calculateEstimatedTransferSizes(outputFiles: OutputFile[]): Promise<Map<string, number>>;
|
|
13
14
|
export declare function withSpinner<T>(text: string, action: () => T | Promise<T>): Promise<T>;
|
|
14
|
-
export declare function withNoProgress<T>(
|
|
15
|
+
export declare function withNoProgress<T>(text: string, action: () => T | Promise<T>): Promise<T>;
|
|
15
16
|
export declare function logMessages(context: BuilderContext, { errors, warnings }: {
|
|
16
17
|
errors?: PartialMessage[];
|
|
17
18
|
warnings?: PartialMessage[];
|
|
@@ -23,15 +24,20 @@ export declare function logMessages(context: BuilderContext, { errors, warnings
|
|
|
23
24
|
* @returns An object that can be used with the esbuild build `supported` option.
|
|
24
25
|
*/
|
|
25
26
|
export declare function getFeatureSupport(target: string[]): BuildOptions['supported'];
|
|
26
|
-
export declare function writeResultFiles(outputFiles:
|
|
27
|
+
export declare function writeResultFiles(outputFiles: BuildOutputFile[], assetFiles: {
|
|
27
28
|
source: string;
|
|
28
29
|
destination: string;
|
|
29
30
|
}[] | undefined, outputPath: string): Promise<void>;
|
|
30
|
-
export declare function createOutputFileFromText(path: string, text: string):
|
|
31
|
-
export declare function createOutputFileFromData(path: string, data: Uint8Array):
|
|
32
|
-
export declare function
|
|
31
|
+
export declare function createOutputFileFromText(path: string, text: string, type: BuildOutputFileType): BuildOutputFile;
|
|
32
|
+
export declare function createOutputFileFromData(path: string, data: Uint8Array, type: BuildOutputFileType): BuildOutputFile;
|
|
33
|
+
export declare function getFullOutputPath(file: BuildOutputFile): string;
|
|
33
34
|
/**
|
|
34
35
|
* Transform browserlists result to esbuild target.
|
|
35
36
|
* @see https://esbuild.github.io/api/#target
|
|
36
37
|
*/
|
|
37
38
|
export declare function transformSupportedBrowsersToTargets(supportedBrowsers: string[]): string[];
|
|
39
|
+
/**
|
|
40
|
+
* Transform supported Node.js versions to esbuild target.
|
|
41
|
+
* @see https://esbuild.github.io/api/#target
|
|
42
|
+
*/
|
|
43
|
+
export declare function getSupportedNodeTargets(): string[];
|