@angular-devkit/build-angular 16.2.1 → 17.0.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -10
- package/builders.json +10 -0
- package/package.json +30 -28
- package/src/builders/dev-server/vite-server.d.ts +1 -1
- package/src/builders/dev-server/vite-server.js +11 -8
- package/src/builders/extract-i18n/application-extraction.d.ts +17 -0
- package/src/builders/extract-i18n/application-extraction.js +137 -0
- package/src/builders/extract-i18n/builder.d.ts +17 -0
- package/src/builders/extract-i18n/builder.js +152 -0
- package/src/builders/extract-i18n/index.d.ts +4 -14
- package/src/builders/extract-i18n/index.js +4 -247
- package/src/builders/extract-i18n/options.d.ts +29 -0
- package/src/builders/extract-i18n/options.js +82 -0
- package/src/builders/extract-i18n/webpack-extraction.d.ts +21 -0
- package/src/builders/extract-i18n/webpack-extraction.js +100 -0
- package/src/builders/prerender/index.d.ts +20 -0
- package/src/builders/prerender/index.js +180 -0
- package/src/builders/prerender/render-worker.d.ts +30 -0
- package/src/builders/prerender/render-worker.js +126 -0
- package/src/builders/prerender/schema.d.ts +22 -0
- package/src/builders/prerender/schema.js +5 -0
- package/src/builders/prerender/schema.json +39 -0
- package/src/builders/prerender/utils.d.ts +22 -0
- package/src/builders/prerender/utils.js +79 -0
- package/src/builders/ssr-dev-server/index.d.ts +23 -0
- package/src/builders/ssr-dev-server/index.js +309 -0
- package/src/builders/ssr-dev-server/schema.d.ts +64 -0
- package/src/builders/ssr-dev-server/schema.js +5 -0
- package/src/builders/ssr-dev-server/schema.json +75 -0
- package/src/builders/ssr-dev-server/utils.d.ts +15 -0
- package/src/builders/ssr-dev-server/utils.js +75 -0
- package/src/tools/babel/webpack-loader.js +2 -2
- package/src/tools/esbuild/angular/compilation/angular-compilation.d.ts +7 -2
- package/src/tools/esbuild/angular/compilation/angular-compilation.js +21 -1
- package/src/tools/esbuild/angular/compiler-plugin.js +8 -13
- package/src/tools/esbuild/application-code-bundle.js +3 -5
- package/src/tools/esbuild/utils.js +5 -1
- package/src/tools/sass/rebasing-importer.js +2 -2
- package/src/utils/index-file/inline-critical-css.js +13 -26
- package/src/tools/esbuild/external-packages-plugin.d.ts +0 -17
- package/src/tools/esbuild/external-packages-plugin.js +0 -49
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright Google LLC All Rights Reserved.
|
|
5
|
+
*
|
|
6
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
+
* found in the LICENSE file at https://angular.io/license
|
|
8
|
+
*/
|
|
9
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
10
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.extractMessages = void 0;
|
|
14
|
+
const node_assert_1 = __importDefault(require("node:assert"));
|
|
15
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
16
|
+
const application_1 = require("../application");
|
|
17
|
+
const browser_esbuild_1 = require("../browser-esbuild");
|
|
18
|
+
async function extractMessages(options, builderName, context, extractorConstructor) {
|
|
19
|
+
const messages = [];
|
|
20
|
+
// Setup the build options for the application based on the browserTarget option
|
|
21
|
+
const buildOptions = (await context.validateOptions(await context.getTargetOptions(options.browserTarget), builderName));
|
|
22
|
+
buildOptions.optimization = false;
|
|
23
|
+
buildOptions.sourceMap = { scripts: true, vendor: true };
|
|
24
|
+
let build;
|
|
25
|
+
if (builderName === '@angular-devkit/build-angular:application') {
|
|
26
|
+
build = application_1.buildApplicationInternal;
|
|
27
|
+
buildOptions.ssr = false;
|
|
28
|
+
buildOptions.appShell = false;
|
|
29
|
+
buildOptions.prerender = false;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
build = browser_esbuild_1.buildEsbuildBrowser;
|
|
33
|
+
}
|
|
34
|
+
// Build the application with the build options
|
|
35
|
+
let builderResult;
|
|
36
|
+
try {
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
38
|
+
for await (const result of build(buildOptions, context, { write: false })) {
|
|
39
|
+
builderResult = result;
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
(0, node_assert_1.default)(builderResult !== undefined, 'Application builder did not provide a result.');
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
builderResult = {
|
|
46
|
+
success: false,
|
|
47
|
+
error: err.message,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
// Extract messages from each output JavaScript file.
|
|
51
|
+
// Output files are only present on a successful build.
|
|
52
|
+
if (builderResult.outputFiles) {
|
|
53
|
+
// Store the JS and JS map files for lookup during extraction
|
|
54
|
+
const files = new Map();
|
|
55
|
+
for (const outputFile of builderResult.outputFiles) {
|
|
56
|
+
if (outputFile.path.endsWith('.js')) {
|
|
57
|
+
files.set(outputFile.path, outputFile.text);
|
|
58
|
+
}
|
|
59
|
+
else if (outputFile.path.endsWith('.js.map')) {
|
|
60
|
+
files.set(outputFile.path, outputFile.text);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
// Setup the localize message extractor based on the in-memory files
|
|
64
|
+
const extractor = setupLocalizeExtractor(extractorConstructor, files, context);
|
|
65
|
+
// Attempt extraction of all output JS files
|
|
66
|
+
for (const filePath of files.keys()) {
|
|
67
|
+
if (!filePath.endsWith('.js')) {
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
const fileMessages = extractor.extractMessages(filePath);
|
|
71
|
+
messages.push(...fileMessages);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
builderResult,
|
|
76
|
+
basePath: context.workspaceRoot,
|
|
77
|
+
messages,
|
|
78
|
+
// Legacy i18n identifiers are not supported with the new application builder
|
|
79
|
+
useLegacyIds: false,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
exports.extractMessages = extractMessages;
|
|
83
|
+
function setupLocalizeExtractor(extractorConstructor, files, context) {
|
|
84
|
+
// Setup a virtual file system instance for the extractor
|
|
85
|
+
// * MessageExtractor itself uses readFile, relative and resolve
|
|
86
|
+
// * Internal SourceFileLoader (sourcemap support) uses dirname, exists, readFile, and resolve
|
|
87
|
+
const filesystem = {
|
|
88
|
+
readFile(path) {
|
|
89
|
+
// Output files are stored as relative to the workspace root
|
|
90
|
+
const requestedPath = node_path_1.default.relative(context.workspaceRoot, path);
|
|
91
|
+
const content = files.get(requestedPath);
|
|
92
|
+
if (content === undefined) {
|
|
93
|
+
throw new Error('Unknown file requested: ' + requestedPath);
|
|
94
|
+
}
|
|
95
|
+
return content;
|
|
96
|
+
},
|
|
97
|
+
relative(from, to) {
|
|
98
|
+
return node_path_1.default.relative(from, to);
|
|
99
|
+
},
|
|
100
|
+
resolve(...paths) {
|
|
101
|
+
return node_path_1.default.resolve(...paths);
|
|
102
|
+
},
|
|
103
|
+
exists(path) {
|
|
104
|
+
// Output files are stored as relative to the workspace root
|
|
105
|
+
const requestedPath = node_path_1.default.relative(context.workspaceRoot, path);
|
|
106
|
+
return files.has(requestedPath);
|
|
107
|
+
},
|
|
108
|
+
dirname(path) {
|
|
109
|
+
return node_path_1.default.dirname(path);
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
const logger = {
|
|
113
|
+
// level 2 is warnings
|
|
114
|
+
level: 2,
|
|
115
|
+
debug(...args) {
|
|
116
|
+
// eslint-disable-next-line no-console
|
|
117
|
+
console.debug(...args);
|
|
118
|
+
},
|
|
119
|
+
info(...args) {
|
|
120
|
+
context.logger.info(args.join(''));
|
|
121
|
+
},
|
|
122
|
+
warn(...args) {
|
|
123
|
+
context.logger.warn(args.join(''));
|
|
124
|
+
},
|
|
125
|
+
error(...args) {
|
|
126
|
+
context.logger.error(args.join(''));
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
130
|
+
const extractor = new extractorConstructor(filesystem, logger, {
|
|
131
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
132
|
+
basePath: context.workspaceRoot,
|
|
133
|
+
useSourceMaps: true,
|
|
134
|
+
});
|
|
135
|
+
return extractor;
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tZXh0cmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL2J1aWxkZXJzL2V4dHJhY3QtaTE4bi9hcHBsaWNhdGlvbi1leHRyYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7Ozs7OztBQUtILDhEQUFpQztBQUNqQywwREFBaUM7QUFDakMsZ0RBQTBEO0FBRTFELHdEQUF5RDtBQUdsRCxLQUFLLFVBQVUsZUFBZSxDQUNuQyxPQUFxQyxFQUNyQyxXQUFtQixFQUNuQixPQUF1QixFQUN2QixvQkFBNkM7SUFPN0MsTUFBTSxRQUFRLEdBQXNCLEVBQUUsQ0FBQztJQUV2QyxnRkFBZ0Y7SUFDaEYsTUFBTSxZQUFZLEdBQUcsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxlQUFlLENBQ2pELE1BQU0sT0FBTyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFDckQsV0FBVyxDQUNaLENBQWlELENBQUM7SUFDbkQsWUFBWSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDbEMsWUFBWSxDQUFDLFNBQVMsR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO0lBRXpELElBQUksS0FBSyxDQUFDO0lBQ1YsSUFBSSxXQUFXLEtBQUssMkNBQTJDLEVBQUU7UUFDL0QsS0FBSyxHQUFHLHNDQUF3QixDQUFDO1FBRWpDLFlBQVksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLFlBQVksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzlCLFlBQVksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0tBQ2hDO1NBQU07UUFDTCxLQUFLLEdBQUcscUNBQW1CLENBQUM7S0FDN0I7SUFFRCwrQ0FBK0M7SUFDL0MsSUFBSSxh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S0FDcEIsQ0FBQyxDQUFDO0lBRUgsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IMm1UGFyc2VkTWVzc2FnZSBhcyBMb2NhbGl6ZU1lc3NhZ2UgfSBmcm9tICdAYW5ndWxhci9sb2NhbGl6ZSc7XG5pbXBvcnQgdHlwZSB7IE1lc3NhZ2VFeHRyYWN0b3IgfSBmcm9tICdAYW5ndWxhci9sb2NhbGl6ZS90b29scyc7XG5pbXBvcnQgdHlwZSB7IEJ1aWxkZXJDb250ZXh0LCBCdWlsZGVyT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2FyY2hpdGVjdCc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ25vZGU6YXNzZXJ0JztcbmltcG9ydCBub2RlUGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgYnVpbGRBcHBsaWNhdGlvbkludGVybmFsIH0gZnJvbSAnLi4vYXBwbGljYXRpb24nO1xuaW1wb3J0IHR5cGUgeyBBcHBsaWNhdGlvbkJ1aWxkZXJJbnRlcm5hbE9wdGlvbnMgfSBmcm9tICcuLi9hcHBsaWNhdGlvbi9vcHRpb25zJztcbmltcG9ydCB7IGJ1aWxkRXNidWlsZEJyb3dzZXIgfSBmcm9tICcuLi9icm93c2VyLWVzYnVpbGQnO1xuaW1wb3J0IHR5cGUgeyBOb3JtYWxpemVkRXh0cmFjdEkxOG5PcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4dHJhY3RNZXNzYWdlcyhcbiAgb3B0aW9uczogTm9ybWFsaXplZEV4dHJhY3RJMThuT3B0aW9ucyxcbiAgYnVpbGRlck5hbWU6IHN0cmluZyxcbiAgY29udGV4dDogQnVpbGRlckNvbnRleHQsXG4gIGV4dHJhY3RvckNvbnN0cnVjdG9yOiB0eXBlb2YgTWVzc2FnZUV4dHJhY3Rvcixcbik6IFByb21pc2U8e1xuICBidWlsZGVyUmVzdWx0OiBCdWlsZGVyT3V0cHV0O1xuICBiYXNlUGF0aDogc3RyaW5nO1xuICBtZXNzYWdlczogTG9jYWxpemVNZXNzYWdlW107XG4gIHVzZUxlZ2FjeUlkczogYm9vbGVhbjtcbn0+IHtcbiAgY29uc3QgbWVzc2FnZXM6IExvY2FsaXplTWVzc2FnZVtdID0gW107XG5cbiAgLy8gU2V0dXAgdGhlIGJ1aWxkIG9wdGlvbnMgZm9yIHRoZSBhcHBsaWNhdGlvbiBiYXNlZCBvbiB0aGUgYnJvd3NlclRhcmdldCBvcHRpb25cbiAgY29uc3QgYnVpbGRPcHRpb25zID0gKGF3YWl0IGNvbnRleHQudmFsaWRhdGVPcHRpb25zKFxuICAgIGF3YWl0IGNvbnRleHQuZ2V0VGFyZ2V0T3B0aW9ucyhvcHRpb25zLmJyb3dzZXJUYXJnZXQpLFxuICAgIGJ1aWxkZXJOYW1lLFxuICApKSBhcyB1bmtub3duIGFzIEFwcGxpY2F0aW9uQnVpbGRlckludGVybmFsT3B0aW9ucztcbiAgYnVpbGRPcHRpb25zLm9wdGltaXphdGlvbiA9IGZhbHNlO1xuICBidWlsZE9wdGlvbnMuc291cmNlTWFwID0geyBzY3JpcHRzOiB0cnVlLCB2ZW5kb3I6IHRydWUgfTtcblxuICBsZXQgYnVpbGQ7XG4gIGlmIChidWlsZGVyTmFtZSA9PT0gJ0Bhbmd1bGFyLWRldmtpdC9idWlsZC1hbmd1bGFyOmFwcGxpY2F0aW9uJykge1xuICAgIGJ1aWxkID0gYnVpbGRBcHBsaWNhdGlvbkludGVybmFsO1xuXG4gICAgYnVpbGRPcHRpb25zLnNzciA9IGZhbHNlO1xuICAgIGJ1aWxkT3B0aW9ucy5hcHBTaGVsbCA9IGZhbHNlO1xuICAgIGJ1aWxkT3B0aW9ucy5wcmVyZW5kZXIgPSBmYWxzZTtcbiAgfSBlbHNlIHtcbiAgICBidWlsZCA9IGJ1aWxkRXNidWlsZEJyb3dzZXI7XG4gIH1cblxuICAvLyBCdWlsZCB0aGUgYXBwbGljYXRpb24gd2l0aCB0aGUgYnVpbGQgb3B0aW9uc1xuICBsZXQgYnVpbGRlclJlc3VsdDtcbiAgdHJ5IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGZvciBhd2FpdCAoY29uc3QgcmVzdWx0IG9mIGJ1aWxkKGJ1aWxkT3B0aW9ucyBhcyBhbnksIGNvbnRleHQsIHsgd3JpdGU6IGZhbHNlIH0pKSB7XG4gICAgICBidWlsZGVyUmVzdWx0ID0gcmVzdWx0O1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgYXNzZXJ0KGJ1aWxkZXJSZXN1bHQgIT09IHVuZGVmaW5lZCwgJ0FwcGxpY2F0aW9uIGJ1aWxkZXIgZGlkIG5vdCBwcm92aWRlIGEgcmVzdWx0LicpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBidWlsZGVyUmVzdWx0ID0ge1xuICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICBlcnJvcjogKGVyciBhcyBFcnJvcikubWVzc2FnZSxcbiAgICB9O1xuICB9XG5cbiAgLy8gRXh0cmFjdCBtZXNzYWdlcyBmcm9tIGVhY2ggb3V0cHV0IEphdmFTY3JpcHQgZmlsZS5cbiAgLy8gT3V0cHV0IGZpbGVzIGFyZSBvbmx5IHByZXNlbnQgb24gYSBzdWNjZXNzZnVsIGJ1aWxkLlxuICBpZiAoYnVpbGRlclJlc3VsdC5vdXRwdXRGaWxlcykge1xuICAgIC8vIFN0b3JlIHRoZSBKUyBhbmQgSlMgbWFwIGZpbGVzIGZvciBsb29rdXAgZHVyaW5nIGV4dHJhY3Rpb25cbiAgICBjb25zdCBmaWxlcyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gICAgZm9yIChjb25zdCBvdXRwdXRGaWxlIG9mIGJ1aWxkZXJSZXN1bHQub3V0cHV0RmlsZXMpIHtcbiAgICAgIGlmIChvdXRwdXRGaWxlLnBhdGguZW5kc1dpdGgoJy5qcycpKSB7XG4gICAgICAgIGZpbGVzLnNldChvdXRwdXRGaWxlLnBhdGgsIG91dHB1dEZpbGUudGV4dCk7XG4gICAgICB9IGVsc2UgaWYgKG91dHB1dEZpbGUucGF0aC5lbmRzV2l0aCgnLmpzLm1hcCcpKSB7XG4gICAgICAgIGZpbGVzLnNldChvdXRwdXRGaWxlLnBhdGgsIG91dHB1dEZpbGUudGV4dCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0dXAgdGhlIGxvY2FsaXplIG1lc3NhZ2UgZXh0cmFjdG9yIGJhc2VkIG9uIHRoZSBpbi1tZW1vcnkgZmlsZXNcbiAgICBjb25zdCBleHRyYWN0b3IgPSBzZXR1cExvY2FsaXplRXh0cmFjdG9yKGV4dHJhY3RvckNvbnN0cnVjdG9yLCBmaWxlcywgY29udGV4dCk7XG5cbiAgICAvLyBBdHRlbXB0IGV4dHJhY3Rpb24gb2YgYWxsIG91dHB1dCBKUyBmaWxlc1xuICAgIGZvciAoY29uc3QgZmlsZVBhdGggb2YgZmlsZXMua2V5cygpKSB7XG4gICAgICBpZiAoIWZpbGVQYXRoLmVuZHNXaXRoKCcuanMnKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlsZU1lc3NhZ2VzID0gZXh0cmFjdG9yLmV4dHJhY3RNZXNzYWdlcyhmaWxlUGF0aCk7XG4gICAgICBtZXNzYWdlcy5wdXNoKC4uLmZpbGVNZXNzYWdlcyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBidWlsZGVyUmVzdWx0LFxuICAgIGJhc2VQYXRoOiBjb250ZXh0LndvcmtzcGFjZVJvb3QsXG4gICAgbWVzc2FnZXMsXG4gICAgLy8gTGVnYWN5IGkxOG4gaWRlbnRpZmllcnMgYXJlIG5vdCBzdXBwb3J0ZWQgd2l0aCB0aGUgbmV3IGFwcGxpY2F0aW9uIGJ1aWxkZXJcbiAgICB1c2VMZWdhY3lJZHM6IGZhbHNlLFxuICB9O1xufVxuXG5mdW5jdGlvbiBzZXR1cExvY2FsaXplRXh0cmFjdG9yKFxuICBleHRyYWN0b3JDb25zdHJ1Y3RvcjogdHlwZW9mIE1lc3NhZ2VFeHRyYWN0b3IsXG4gIGZpbGVzOiBNYXA8c3RyaW5nLCBzdHJpbmc+LFxuICBjb250ZXh0OiBCdWlsZGVyQ29udGV4dCxcbik6IE1lc3NhZ2VFeHRyYWN0b3Ige1xuICAvLyBTZXR1cCBhIHZpcnR1YWwgZmlsZSBzeXN0ZW0gaW5zdGFuY2UgZm9yIHRoZSBleHRyYWN0b3JcbiAgLy8gKiBNZXNzYWdlRXh0cmFjdG9yIGl0c2VsZiB1c2VzIHJlYWRGaWxlLCByZWxhdGl2ZSBhbmQgcmVzb2x2ZVxuICAvLyAqIEludGVybmFsIFNvdXJjZUZpbGVMb2FkZXIgKHNvdXJjZW1hcCBzdXBwb3J0KSB1c2VzIGRpcm5hbWUsIGV4aXN0cywgcmVhZEZpbGUsIGFuZCByZXNvbHZlXG4gIGNvbnN0IGZpbGVzeXN0ZW0gPSB7XG4gICAgcmVhZEZpbGUocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIC8vIE91dHB1dCBmaWxlcyBhcmUgc3RvcmVkIGFzIHJlbGF0aXZlIHRvIHRoZSB3b3Jrc3BhY2Ugcm9vdFxuICAgICAgY29uc3QgcmVxdWVzdGVkUGF0aCA9IG5vZGVQYXRoLnJlbGF0aXZlKGNvbnRleHQud29ya3NwYWNlUm9vdCwgcGF0aCk7XG5cbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBmaWxlcy5nZXQocmVxdWVzdGVkUGF0aCk7XG4gICAgICBpZiAoY29udGVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBmaWxlIHJlcXVlc3RlZDogJyArIHJlcXVlc3RlZFBhdGgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udGVudDtcbiAgICB9LFxuICAgIHJlbGF0aXZlKGZyb206IHN0cmluZywgdG86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gbm9kZVBhdGgucmVsYXRpdmUoZnJvbSwgdG8pO1xuICAgIH0sXG4gICAgcmVzb2x2ZSguLi5wYXRoczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIG5vZGVQYXRoLnJlc29sdmUoLi4ucGF0aHMpO1xuICAgIH0sXG4gICAgZXhpc3RzKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgLy8gT3V0cHV0IGZpbGVzIGFyZSBzdG9yZWQgYXMgcmVsYXRpdmUgdG8gdGhlIHdvcmtzcGFjZSByb290XG4gICAgICBjb25zdCByZXF1ZXN0ZWRQYXRoID0gbm9kZVBhdGgucmVsYXRpdmUoY29udGV4dC53b3Jrc3BhY2VSb290LCBwYXRoKTtcblxuICAgICAgcmV0dXJuIGZpbGVzLmhhcyhyZXF1ZXN0ZWRQYXRoKTtcbiAgICB9LFxuICAgIGRpcm5hbWUocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBub2RlUGF0aC5kaXJuYW1lKHBhdGgpO1xuICAgIH0sXG4gIH07XG5cbiAgY29uc3QgbG9nZ2VyID0ge1xuICAgIC8vIGxldmVsIDIgaXMgd2FybmluZ3NcbiAgICBsZXZlbDogMixcbiAgICBkZWJ1ZyguLi5hcmdzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUuZGVidWcoLi4uYXJncyk7XG4gICAgfSxcbiAgICBpbmZvKC4uLmFyZ3M6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICBjb250ZXh0LmxvZ2dlci5pbmZvKGFyZ3Muam9pbignJykpO1xuICAgIH0sXG4gICAgd2FybiguLi5hcmdzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgY29udGV4dC5sb2dnZXIud2FybihhcmdzLmpvaW4oJycpKTtcbiAgICB9LFxuICAgIGVycm9yKC4uLmFyZ3M6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICBjb250ZXh0LmxvZ2dlci5lcnJvcihhcmdzLmpvaW4oJycpKTtcbiAgICB9LFxuICB9O1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIGNvbnN0IGV4dHJhY3RvciA9IG5ldyBleHRyYWN0b3JDb25zdHJ1Y3RvcihmaWxlc3lzdGVtIGFzIGFueSwgbG9nZ2VyLCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBiYXNlUGF0aDogY29udGV4dC53b3Jrc3BhY2VSb290IGFzIGFueSxcbiAgICB1c2VTb3VyY2VNYXBzOiB0cnVlLFxuICB9KTtcblxuICByZXR1cm4gZXh0cmFjdG9yO1xufVxuIl19
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google LLC All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.io/license
|
|
7
|
+
*/
|
|
8
|
+
import type { BuilderContext, BuilderOutput } from '@angular-devkit/architect';
|
|
9
|
+
import type webpack from 'webpack';
|
|
10
|
+
import type { ExecutionTransformer } from '../../transforms';
|
|
11
|
+
import { Schema as ExtractI18nBuilderOptions } from './schema';
|
|
12
|
+
/**
|
|
13
|
+
* @experimental Direct usage of this function is considered experimental.
|
|
14
|
+
*/
|
|
15
|
+
export declare function execute(options: ExtractI18nBuilderOptions, context: BuilderContext, transforms?: {
|
|
16
|
+
webpackConfiguration?: ExecutionTransformer<webpack.Configuration>;
|
|
17
|
+
}): Promise<BuilderOutput>;
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright Google LLC All Rights Reserved.
|
|
5
|
+
*
|
|
6
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
+
* found in the LICENSE file at https://angular.io/license
|
|
8
|
+
*/
|
|
9
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
+
}) : function(o, v) {
|
|
23
|
+
o["default"] = v;
|
|
24
|
+
});
|
|
25
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
26
|
+
if (mod && mod.__esModule) return mod;
|
|
27
|
+
var result = {};
|
|
28
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
29
|
+
__setModuleDefault(result, mod);
|
|
30
|
+
return result;
|
|
31
|
+
};
|
|
32
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
33
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
34
|
+
};
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.execute = void 0;
|
|
37
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
38
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
39
|
+
const load_esm_1 = require("../../utils/load-esm");
|
|
40
|
+
const purge_cache_1 = require("../../utils/purge-cache");
|
|
41
|
+
const version_1 = require("../../utils/version");
|
|
42
|
+
const options_1 = require("./options");
|
|
43
|
+
const schema_1 = require("./schema");
|
|
44
|
+
/**
|
|
45
|
+
* @experimental Direct usage of this function is considered experimental.
|
|
46
|
+
*/
|
|
47
|
+
async function execute(options, context, transforms) {
|
|
48
|
+
// Determine project name from builder context target
|
|
49
|
+
const projectName = context.target?.project;
|
|
50
|
+
if (!projectName) {
|
|
51
|
+
context.logger.error(`The 'extract-i18n' builder requires a target to be specified.`);
|
|
52
|
+
return { success: false };
|
|
53
|
+
}
|
|
54
|
+
// Check Angular version.
|
|
55
|
+
(0, version_1.assertCompatibleAngularVersion)(context.workspaceRoot);
|
|
56
|
+
// Load the Angular localize package.
|
|
57
|
+
// The package is a peer dependency and might not be present
|
|
58
|
+
let localizeToolsModule;
|
|
59
|
+
try {
|
|
60
|
+
localizeToolsModule = await (0, load_esm_1.loadEsmModule)('@angular/localize/tools');
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return {
|
|
64
|
+
success: false,
|
|
65
|
+
error: `i18n extraction requires the '@angular/localize' package.` +
|
|
66
|
+
` You can add it by using 'ng add @angular/localize'.`,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
// Normalize options
|
|
70
|
+
const normalizedOptions = await (0, options_1.normalizeOptions)(context, projectName, options);
|
|
71
|
+
const builderName = await context.getBuilderNameForTarget(normalizedOptions.browserTarget);
|
|
72
|
+
// Extract messages based on configured builder
|
|
73
|
+
let extractionResult;
|
|
74
|
+
if (builderName === '@angular-devkit/build-angular:application' ||
|
|
75
|
+
builderName === '@angular-devkit/build-angular:browser-esbuild') {
|
|
76
|
+
const { extractMessages } = await Promise.resolve().then(() => __importStar(require('./application-extraction')));
|
|
77
|
+
extractionResult = await extractMessages(normalizedOptions, builderName, context, localizeToolsModule.MessageExtractor);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
// Purge old build disk cache.
|
|
81
|
+
// Other build systems handle stale cache purging directly.
|
|
82
|
+
await (0, purge_cache_1.purgeStaleBuildCache)(context);
|
|
83
|
+
const { extractMessages } = await Promise.resolve().then(() => __importStar(require('./webpack-extraction')));
|
|
84
|
+
extractionResult = await extractMessages(normalizedOptions, builderName, context, transforms);
|
|
85
|
+
}
|
|
86
|
+
// Return the builder result if it failed
|
|
87
|
+
if (!extractionResult.builderResult.success) {
|
|
88
|
+
return extractionResult.builderResult;
|
|
89
|
+
}
|
|
90
|
+
// Perform duplicate message checks
|
|
91
|
+
const { checkDuplicateMessages } = localizeToolsModule;
|
|
92
|
+
// The filesystem is used to create a relative path for each file
|
|
93
|
+
// from the basePath. This relative path is then used in the error message.
|
|
94
|
+
const checkFileSystem = {
|
|
95
|
+
relative(from, to) {
|
|
96
|
+
return node_path_1.default.relative(from, to);
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
const diagnostics = checkDuplicateMessages(
|
|
100
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
101
|
+
checkFileSystem, extractionResult.messages, 'warning',
|
|
102
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
103
|
+
extractionResult.basePath);
|
|
104
|
+
if (diagnostics.messages.length > 0) {
|
|
105
|
+
context.logger.warn(diagnostics.formatDiagnostics(''));
|
|
106
|
+
}
|
|
107
|
+
// Serialize all extracted messages
|
|
108
|
+
const serializer = await createSerializer(localizeToolsModule, normalizedOptions.format, normalizedOptions.i18nOptions.sourceLocale, extractionResult.basePath, extractionResult.useLegacyIds, diagnostics);
|
|
109
|
+
const content = serializer.serialize(extractionResult.messages);
|
|
110
|
+
// Ensure directory exists
|
|
111
|
+
const outputPath = node_path_1.default.dirname(normalizedOptions.outFile);
|
|
112
|
+
if (!node_fs_1.default.existsSync(outputPath)) {
|
|
113
|
+
node_fs_1.default.mkdirSync(outputPath, { recursive: true });
|
|
114
|
+
}
|
|
115
|
+
// Write translation file
|
|
116
|
+
node_fs_1.default.writeFileSync(normalizedOptions.outFile, content);
|
|
117
|
+
if (normalizedOptions.progress) {
|
|
118
|
+
context.logger.info(`Extraction Complete. (Messages: ${extractionResult.messages.length})`);
|
|
119
|
+
}
|
|
120
|
+
return { success: true, outputPath: normalizedOptions.outFile };
|
|
121
|
+
}
|
|
122
|
+
exports.execute = execute;
|
|
123
|
+
async function createSerializer(localizeToolsModule, format, sourceLocale, basePath, useLegacyIds, diagnostics) {
|
|
124
|
+
const { XmbTranslationSerializer, LegacyMessageIdMigrationSerializer, ArbTranslationSerializer, Xliff1TranslationSerializer, Xliff2TranslationSerializer, SimpleJsonTranslationSerializer, } = localizeToolsModule;
|
|
125
|
+
switch (format) {
|
|
126
|
+
case schema_1.Format.Xmb:
|
|
127
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
128
|
+
return new XmbTranslationSerializer(basePath, useLegacyIds);
|
|
129
|
+
case schema_1.Format.Xlf:
|
|
130
|
+
case schema_1.Format.Xlif:
|
|
131
|
+
case schema_1.Format.Xliff:
|
|
132
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
133
|
+
return new Xliff1TranslationSerializer(sourceLocale, basePath, useLegacyIds, {});
|
|
134
|
+
case schema_1.Format.Xlf2:
|
|
135
|
+
case schema_1.Format.Xliff2:
|
|
136
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
137
|
+
return new Xliff2TranslationSerializer(sourceLocale, basePath, useLegacyIds, {});
|
|
138
|
+
case schema_1.Format.Json:
|
|
139
|
+
return new SimpleJsonTranslationSerializer(sourceLocale);
|
|
140
|
+
case schema_1.Format.LegacyMigrate:
|
|
141
|
+
return new LegacyMessageIdMigrationSerializer(diagnostics);
|
|
142
|
+
case schema_1.Format.Arb:
|
|
143
|
+
const fileSystem = {
|
|
144
|
+
relative(from, to) {
|
|
145
|
+
return node_path_1.default.relative(from, to);
|
|
146
|
+
},
|
|
147
|
+
};
|
|
148
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
149
|
+
return new ArbTranslationSerializer(sourceLocale, basePath, fileSystem);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL2J1aWxkZXJzL2V4dHJhY3QtaTE4bi9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSUgsc0RBQXlCO0FBQ3pCLDBEQUE2QjtBQUc3QixtREFBcUQ7QUFDckQseURBQStEO0FBQy9ELGlEQUFxRTtBQUNyRSx1Q0FBNkM7QUFDN0MscUNBQXVFO0FBRXZFOztHQUVHO0FBQ0ksS0FBSyxVQUFVLE9BQU8sQ0FDM0IsT0FBa0MsRUFDbEMsT0FBdUIsRUFDdkIsVUFFQztJQUVELHFEQUFxRDtJQUNyRCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQztJQUM1QyxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQ2hCLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLCtEQUErRCxDQUFDLENBQUM7UUFFdEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztLQUMzQjtJQUVELHlCQUF5QjtJQUN6QixJQUFBLHdDQUE4QixFQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUV0RCxxQ0FBcUM7SUFDckMsNERBQTREO0lBQzVELElBQUksbUJBQW1CLENBQUM7SUFDeEIsSUFBSTtRQUNGLG1CQUFtQixHQUFHLE1BQU0sSUFBQSx3QkFBYSxFQUN2Qyx5QkFBeUIsQ0FDMUIsQ0FBQztLQUNIO0lBQUMsTUFBTTtRQUNOLE9BQU87WUFDTCxPQUFPLEVBQUUsS0FBSztZQUNkLEtBQUssRUFDSCwyREFBMkQ7Z0JBQzNELHNEQUFzRDtTQUN6RCxDQUFDO0tBQ0g7SUFFRCxvQkFBb0I7SUFDcEIsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUEsMEJB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QUMsR0FBRztZQUNiLE1BQU0sVUFBVSxHQUFHO2dCQUNqQixRQUFRLENBQUMsSUFBWSxFQUFFLEVBQVU7b0JBQy9CLE9BQU8sbUJBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNqQyxDQUFDO2FBQ0YsQ0FBQztZQUVGLDhEQUE4RDtZQUM5RCxPQUFPLElBQUksd0JBQXdCLENBQUMsWUFBWSxFQUFFLFFBQWUsRUFBRSxVQUFpQixDQUFDLENBQUM7S0FDekY7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB0eXBlIHsgRGlhZ25vc3RpY3MgfSBmcm9tICdAYW5ndWxhci9sb2NhbGl6ZS90b29scyc7XG5pbXBvcnQgdHlwZSB7IEJ1aWxkZXJDb250ZXh0LCBCdWlsZGVyT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2FyY2hpdGVjdCc7XG5pbXBvcnQgZnMgZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHR5cGUgd2VicGFjayBmcm9tICd3ZWJwYWNrJztcbmltcG9ydCB0eXBlIHsgRXhlY3V0aW9uVHJhbnNmb3JtZXIgfSBmcm9tICcuLi8uLi90cmFuc2Zvcm1zJztcbmltcG9ydCB7IGxvYWRFc21Nb2R1bGUgfSBmcm9tICcuLi8uLi91dGlscy9sb2FkLWVzbSc7XG5pbXBvcnQgeyBwdXJnZVN0YWxlQnVpbGRDYWNoZSB9IGZyb20gJy4uLy4uL3V0aWxzL3B1cmdlLWNhY2hlJztcbmltcG9ydCB7IGFzc2VydENvbXBhdGlibGVBbmd1bGFyVmVyc2lvbiB9IGZyb20gJy4uLy4uL3V0aWxzL3ZlcnNpb24nO1xuaW1wb3J0IHsgbm9ybWFsaXplT3B0aW9ucyB9IGZyb20gJy4vb3B0aW9ucyc7XG5pbXBvcnQgeyBTY2hlbWEgYXMgRXh0cmFjdEkxOG5CdWlsZGVyT3B0aW9ucywgRm9ybWF0IH0gZnJvbSAnLi9zY2hlbWEnO1xuXG4vKipcbiAqIEBleHBlcmltZW50YWwgRGlyZWN0IHVzYWdlIG9mIHRoaXMgZnVuY3Rpb24gaXMgY29uc2lkZXJlZCBleHBlcmltZW50YWwuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleGVjdXRlKFxuICBvcHRpb25zOiBFeHRyYWN0STE4bkJ1aWxkZXJPcHRpb25zLFxuICBjb250ZXh0OiBCdWlsZGVyQ29udGV4dCxcbiAgdHJhbnNmb3Jtcz86IHtcbiAgICB3ZWJwYWNrQ29uZmlndXJhdGlvbj86IEV4ZWN1dGlvblRyYW5zZm9ybWVyPHdlYnBhY2suQ29uZmlndXJhdGlvbj47XG4gIH0sXG4pOiBQcm9taXNlPEJ1aWxkZXJPdXRwdXQ+IHtcbiAgLy8gRGV0ZXJtaW5lIHByb2plY3QgbmFtZSBmcm9tIGJ1aWxkZXIgY29udGV4dCB0YXJnZXRcbiAgY29uc3QgcHJvamVjdE5hbWUgPSBjb250ZXh0LnRhcmdldD8ucHJvamVjdDtcbiAgaWYgKCFwcm9qZWN0TmFtZSkge1xuICAgIGNvbnRleHQubG9nZ2VyLmVycm9yKGBUaGUgJ2V4dHJhY3QtaTE4bicgYnVpbGRlciByZXF1aXJlcyBhIHRhcmdldCB0byBiZSBzcGVjaWZpZWQuYCk7XG5cbiAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSB9O1xuICB9XG5cbiAgLy8gQ2hlY2sgQW5ndWxhciB2ZXJzaW9uLlxuICBhc3NlcnRDb21wYXRpYmxlQW5ndWxhclZlcnNpb24oY29udGV4dC53b3Jrc3BhY2VSb290KTtcblxuICAvLyBMb2FkIHRoZSBBbmd1bGFyIGxvY2FsaXplIHBhY2thZ2UuXG4gIC8vIFRoZSBwYWNrYWdlIGlzIGEgcGVlciBkZXBlbmRlbmN5IGFuZCBtaWdodCBub3QgYmUgcHJlc2VudFxuICBsZXQgbG9jYWxpemVUb29sc01vZHVsZTtcbiAgdHJ5IHtcbiAgICBsb2NhbGl6ZVRvb2xzTW9kdWxlID0gYXdhaXQgbG9hZEVzbU1vZHVsZTx0eXBlb2YgaW1wb3J0KCdAYW5ndWxhci9sb2NhbGl6ZS90b29scycpPihcbiAgICAgICdAYW5ndWxhci9sb2NhbGl6ZS90b29scycsXG4gICAgKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgZXJyb3I6XG4gICAgICAgIGBpMThuIGV4dHJhY3Rpb24gcmVxdWlyZXMgdGhlICdAYW5ndWxhci9sb2NhbGl6ZScgcGFja2FnZS5gICtcbiAgICAgICAgYCBZb3UgY2FuIGFkZCBpdCBieSB1c2luZyAnbmcgYWRkIEBhbmd1bGFyL2xvY2FsaXplJy5gLFxuICAgIH07XG4gIH1cblxuICAvLyBOb3JtYWxpemUgb3B0aW9uc1xuICBjb25zdCBub3JtYWxpemVkT3B0aW9ucyA9IGF3YWl0IG5vcm1hbGl6ZU9wdGlvbnMoY29udGV4dCwgcHJvamVjdE5hbWUsIG9wdGlvbnMpO1xuICBjb25zdCBidWlsZGVyTmFtZSA9IGF3YWl0IGNvbnRleHQuZ2V0QnVpbGRlck5hbWVGb3JUYXJnZXQobm9ybWFsaXplZE9wdGlvbnMuYnJvd3NlclRhcmdldCk7XG5cbiAgLy8gRXh0cmFjdCBtZXNzYWdlcyBiYXNlZCBvbiBjb25maWd1cmVkIGJ1aWxkZXJcbiAgbGV0IGV4dHJhY3Rpb25SZXN1bHQ7XG4gIGlmIChcbiAgICBidWlsZGVyTmFtZSA9PT0gJ0Bhbmd1bGFyLWRldmtpdC9idWlsZC1hbmd1bGFyOmFwcGxpY2F0aW9uJyB8fFxuICAgIGJ1aWxkZXJOYW1lID09PSAnQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXI6YnJvd3Nlci1lc2J1aWxkJ1xuICApIHtcbiAgICBjb25zdCB7IGV4dHJhY3RNZXNzYWdlcyB9ID0gYXdhaXQgaW1wb3J0KCcuL2FwcGxpY2F0aW9uLWV4dHJhY3Rpb24nKTtcbiAgICBleHRyYWN0aW9uUmVzdWx0ID0gYXdhaXQgZXh0cmFjdE1lc3NhZ2VzKFxuICAgICAgbm9ybWFsaXplZE9wdGlvbnMsXG4gICAgICBidWlsZGVyTmFtZSxcbiAgICAgIGNvbnRleHQsXG4gICAgICBsb2NhbGl6ZVRvb2xzTW9kdWxlLk1lc3NhZ2VFeHRyYWN0b3IsXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBQdXJnZSBvbGQgYnVpbGQgZGlzayBjYWNoZS5cbiAgICAvLyBPdGhlciBidWlsZCBzeXN0ZW1zIGhhbmRsZSBzdGFsZSBjYWNoZSBwdXJnaW5nIGRpcmVjdGx5LlxuICAgIGF3YWl0IHB1cmdlU3RhbGVCdWlsZENhY2hlKGNvbnRleHQpO1xuXG4gICAgY29uc3QgeyBleHRyYWN0TWVzc2FnZXMgfSA9IGF3YWl0IGltcG9ydCgnLi93ZWJwYWNrLWV4dHJhY3Rpb24nKTtcbiAgICBleHRyYWN0aW9uUmVzdWx0ID0gYXdhaXQgZXh0cmFjdE1lc3NhZ2VzKG5vcm1hbGl6ZWRPcHRpb25zLCBidWlsZGVyTmFtZSwgY29udGV4dCwgdHJhbnNmb3Jtcyk7XG4gIH1cblxuICAvLyBSZXR1cm4gdGhlIGJ1aWxkZXIgcmVzdWx0IGlmIGl0IGZhaWxlZFxuICBpZiAoIWV4dHJhY3Rpb25SZXN1bHQuYnVpbGRlclJlc3VsdC5zdWNjZXNzKSB7XG4gICAgcmV0dXJuIGV4dHJhY3Rpb25SZXN1bHQuYnVpbGRlclJlc3VsdDtcbiAgfVxuXG4gIC8vIFBlcmZvcm0gZHVwbGljYXRlIG1lc3NhZ2UgY2hlY2tzXG4gIGNvbnN0IHsgY2hlY2tEdXBsaWNhdGVNZXNzYWdlcyB9ID0gbG9jYWxpemVUb29sc01vZHVsZTtcblxuICAvLyBUaGUgZmlsZXN5c3RlbSBpcyB1c2VkIHRvIGNyZWF0ZSBhIHJlbGF0aXZlIHBhdGggZm9yIGVhY2ggZmlsZVxuICAvLyBmcm9tIHRoZSBiYXNlUGF0aC4gIFRoaXMgcmVsYXRpdmUgcGF0aCBpcyB0aGVuIHVzZWQgaW4gdGhlIGVycm9yIG1lc3NhZ2UuXG4gIGNvbnN0IGNoZWNrRmlsZVN5c3RlbSA9IHtcbiAgICByZWxhdGl2ZShmcm9tOiBzdHJpbmcsIHRvOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHBhdGgucmVsYXRpdmUoZnJvbSwgdG8pO1xuICAgIH0sXG4gIH07XG4gIGNvbnN0IGRpYWdub3N0aWNzID0gY2hlY2tEdXBsaWNhdGVNZXNzYWdlcyhcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGNoZWNrRmlsZVN5c3RlbSBhcyBhbnksXG4gICAgZXh0cmFjdGlvblJlc3VsdC5tZXNzYWdlcyxcbiAgICAnd2FybmluZycsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBleHRyYWN0aW9uUmVzdWx0LmJhc2VQYXRoIGFzIGFueSxcbiAgKTtcbiAgaWYgKGRpYWdub3N0aWNzLm1lc3NhZ2VzLmxlbmd0aCA+IDApIHtcbiAgICBjb250ZXh0LmxvZ2dlci53YXJuKGRpYWdub3N0aWNzLmZvcm1hdERpYWdub3N0aWNzKCcnKSk7XG4gIH1cblxuICAvLyBTZXJpYWxpemUgYWxsIGV4dHJhY3RlZCBtZXNzYWdlc1xuICBjb25zdCBzZXJpYWxpemVyID0gYXdhaXQgY3JlYXRlU2VyaWFsaXplcihcbiAgICBsb2NhbGl6ZVRvb2xzTW9kdWxlLFxuICAgIG5vcm1hbGl6ZWRPcHRpb25zLmZvcm1hdCxcbiAgICBub3JtYWxpemVkT3B0aW9ucy5pMThuT3B0aW9ucy5zb3VyY2VMb2NhbGUsXG4gICAgZXh0cmFjdGlvblJlc3VsdC5iYXNlUGF0aCxcbiAgICBleHRyYWN0aW9uUmVzdWx0LnVzZUxlZ2FjeUlkcyxcbiAgICBkaWFnbm9zdGljcyxcbiAgKTtcbiAgY29uc3QgY29udGVudCA9IHNlcmlhbGl6ZXIuc2VyaWFsaXplKGV4dHJhY3Rpb25SZXN1bHQubWVzc2FnZXMpO1xuXG4gIC8vIEVuc3VyZSBkaXJlY3RvcnkgZXhpc3RzXG4gIGNvbnN0IG91dHB1dFBhdGggPSBwYXRoLmRpcm5hbWUobm9ybWFsaXplZE9wdGlvbnMub3V0RmlsZSk7XG4gIGlmICghZnMuZXhpc3RzU3luYyhvdXRwdXRQYXRoKSkge1xuICAgIGZzLm1rZGlyU3luYyhvdXRwdXRQYXRoLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIC8vIFdyaXRlIHRyYW5zbGF0aW9uIGZpbGVcbiAgZnMud3JpdGVGaWxlU3luYyhub3JtYWxpemVkT3B0aW9ucy5vdXRGaWxlLCBjb250ZW50KTtcblxuICBpZiAobm9ybWFsaXplZE9wdGlvbnMucHJvZ3Jlc3MpIHtcbiAgICBjb250ZXh0LmxvZ2dlci5pbmZvKGBFeHRyYWN0aW9uIENvbXBsZXRlLiAoTWVzc2FnZXM6ICR7ZXh0cmFjdGlvblJlc3VsdC5tZXNzYWdlcy5sZW5ndGh9KWApO1xuICB9XG5cbiAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSwgb3V0cHV0UGF0aDogbm9ybWFsaXplZE9wdGlvbnMub3V0RmlsZSB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVTZXJpYWxpemVyKFxuICBsb2NhbGl6ZVRvb2xzTW9kdWxlOiB0eXBlb2YgaW1wb3J0KCdAYW5ndWxhci9sb2NhbGl6ZS90b29scycpLFxuICBmb3JtYXQ6IEZvcm1hdCxcbiAgc291cmNlTG9jYWxlOiBzdHJpbmcsXG4gIGJhc2VQYXRoOiBzdHJpbmcsXG4gIHVzZUxlZ2FjeUlkczogYm9vbGVhbixcbiAgZGlhZ25vc3RpY3M6IERpYWdub3N0aWNzLFxuKSB7XG4gIGNvbnN0IHtcbiAgICBYbWJUcmFuc2xhdGlvblNlcmlhbGl6ZXIsXG4gICAgTGVnYWN5TWVzc2FnZUlkTWlncmF0aW9uU2VyaWFsaXplcixcbiAgICBBcmJUcmFuc2xhdGlvblNlcmlhbGl6ZXIsXG4gICAgWGxpZmYxVHJhbnNsYXRpb25TZXJpYWxpemVyLFxuICAgIFhsaWZmMlRyYW5zbGF0aW9uU2VyaWFsaXplcixcbiAgICBTaW1wbGVKc29uVHJhbnNsYXRpb25TZXJpYWxpemVyLFxuICB9ID0gbG9jYWxpemVUb29sc01vZHVsZTtcblxuICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgIGNhc2UgRm9ybWF0LlhtYjpcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICByZXR1cm4gbmV3IFhtYlRyYW5zbGF0aW9uU2VyaWFsaXplcihiYXNlUGF0aCBhcyBhbnksIHVzZUxlZ2FjeUlkcyk7XG4gICAgY2FzZSBGb3JtYXQuWGxmOlxuICAgIGNhc2UgRm9ybWF0LlhsaWY6XG4gICAgY2FzZSBGb3JtYXQuWGxpZmY6XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgcmV0dXJuIG5ldyBYbGlmZjFUcmFuc2xhdGlvblNlcmlhbGl6ZXIoc291cmNlTG9jYWxlLCBiYXNlUGF0aCBhcyBhbnksIHVzZUxlZ2FjeUlkcywge30pO1xuICAgIGNhc2UgRm9ybWF0LlhsZjI6XG4gICAgY2FzZSBGb3JtYXQuWGxpZmYyOlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIHJldHVybiBuZXcgWGxpZmYyVHJhbnNsYXRpb25TZXJpYWxpemVyKHNvdXJjZUxvY2FsZSwgYmFzZVBhdGggYXMgYW55LCB1c2VMZWdhY3lJZHMsIHt9KTtcbiAgICBjYXNlIEZvcm1hdC5Kc29uOlxuICAgICAgcmV0dXJuIG5ldyBTaW1wbGVKc29uVHJhbnNsYXRpb25TZXJpYWxpemVyKHNvdXJjZUxvY2FsZSk7XG4gICAgY2FzZSBGb3JtYXQuTGVnYWN5TWlncmF0ZTpcbiAgICAgIHJldHVybiBuZXcgTGVnYWN5TWVzc2FnZUlkTWlncmF0aW9uU2VyaWFsaXplcihkaWFnbm9zdGljcyk7XG4gICAgY2FzZSBGb3JtYXQuQXJiOlxuICAgICAgY29uc3QgZmlsZVN5c3RlbSA9IHtcbiAgICAgICAgcmVsYXRpdmUoZnJvbTogc3RyaW5nLCB0bzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgICByZXR1cm4gcGF0aC5yZWxhdGl2ZShmcm9tLCB0byk7XG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgcmV0dXJuIG5ldyBBcmJUcmFuc2xhdGlvblNlcmlhbGl6ZXIoc291cmNlTG9jYWxlLCBiYXNlUGF0aCBhcyBhbnksIGZpbGVTeXN0ZW0gYXMgYW55KTtcbiAgfVxufVxuIl19
|
|
@@ -5,18 +5,8 @@
|
|
|
5
5
|
* Use of this source code is governed by an MIT-style license that can be
|
|
6
6
|
* found in the LICENSE file at https://angular.io/license
|
|
7
7
|
*/
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
import
|
|
12
|
-
import { ExecutionTransformer } from '../../transforms';
|
|
13
|
-
import { Schema } from './schema';
|
|
14
|
-
export type ExtractI18nBuilderOptions = Schema;
|
|
15
|
-
/**
|
|
16
|
-
* @experimental Direct usage of this function is considered experimental.
|
|
17
|
-
*/
|
|
18
|
-
export declare function execute(options: ExtractI18nBuilderOptions, context: BuilderContext, transforms?: {
|
|
19
|
-
webpackConfiguration?: ExecutionTransformer<webpack.Configuration>;
|
|
20
|
-
}): Promise<BuildResult>;
|
|
21
|
-
declare const _default: import("../../../../architect/src/internal").Builder<Schema & JsonObject>;
|
|
8
|
+
import { execute } from './builder';
|
|
9
|
+
import type { Schema as ExtractI18nBuilderOptions } from './schema';
|
|
10
|
+
export { ExtractI18nBuilderOptions, execute };
|
|
11
|
+
declare const _default: import("../../../../architect/src/internal").Builder<ExtractI18nBuilderOptions & import("../../../../core/src").JsonObject>;
|
|
22
12
|
export default _default;
|