@angular/localize 13.0.0-next.9 → 13.0.0-rc.3
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/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/esm2020/init/index.mjs +12 -0
- package/{esm2015/localize.js → esm2020/localize.mjs} +0 -0
- package/{esm2015/private.js → esm2020/private.mjs} +0 -0
- package/{esm2015/src/localize/index.js → esm2020/src/localize/index.mjs} +0 -0
- package/{esm2015/src/localize/src/global.js → esm2020/src/localize/src/global.mjs} +0 -0
- package/{esm2015/src/localize/src/localize.js → esm2020/src/localize/src/localize.mjs} +2 -2
- package/{esm2015/src/translate.js → esm2020/src/translate.mjs} +0 -0
- package/{esm2015/src/utils/index.js → esm2020/src/utils/index.mjs} +0 -0
- package/{esm2015/src/utils/src/constants.js → esm2020/src/utils/src/constants.mjs} +0 -0
- package/esm2020/src/utils/src/messages.mjs +159 -0
- package/{esm2015/src/utils/src/translations.js → esm2020/src/utils/src/translations.mjs} +0 -0
- package/fesm2015/{init.js → init.mjs} +3 -3
- package/fesm2015/init.mjs.map +1 -0
- package/fesm2015/{localize.js → localize.mjs} +7 -7
- package/fesm2015/localize.mjs.map +1 -0
- package/fesm2020/init.mjs +204 -0
- package/fesm2020/init.mjs.map +1 -0
- package/fesm2020/localize.mjs +449 -0
- package/fesm2020/localize.mjs.map +1 -0
- package/init/index.d.ts +1 -1
- package/init/package.json +5 -5
- package/package.json +43 -18
- package/schematics/ng-add/index.js +1 -1
- package/src/localize/src/localize.d.ts +1 -1
- package/src/utils/src/messages.d.ts +1 -1
- package/tools/README.md +4 -0
- package/tools/bundles/index.js +1929 -0
- package/tools/bundles/index.js.map +6 -0
- package/tools/bundles/src/extract/cli.js +1278 -0
- package/tools/bundles/src/extract/cli.js.map +6 -0
- package/tools/bundles/src/migrate/cli.js +77 -0
- package/tools/bundles/src/migrate/cli.js.map +6 -0
- package/tools/bundles/src/translate/cli.js +1340 -0
- package/tools/bundles/src/translate/cli.js.map +6 -0
- package/tools/bundles_metadata.json +1 -0
- package/tools/index.d.ts +26 -0
- package/tools/src/babel_core.d.ts +38 -0
- package/{src/tools → tools}/src/diagnostics.d.ts +1 -1
- package/tools/src/extract/cli.d.ts +10 -0
- package/{src/tools → tools}/src/extract/duplicates.d.ts +2 -2
- package/{src/tools → tools}/src/extract/extraction.d.ts +2 -3
- package/{src/tools/src/extract/main.d.ts → tools/src/extract/index.d.ts} +2 -4
- package/{src/tools → tools}/src/extract/source_files/es2015_extract_plugin.d.ts +3 -3
- package/{src/tools → tools}/src/extract/source_files/es5_extract_plugin.d.ts +3 -3
- package/{src/tools → tools}/src/extract/translation_files/arb_translation_serializer.d.ts +2 -2
- package/{src/tools → tools}/src/extract/translation_files/format_options.d.ts +1 -1
- package/{src/tools → tools}/src/extract/translation_files/icu_parsing.d.ts +1 -1
- package/{src/tools → tools}/src/extract/translation_files/json_translation_serializer.d.ts +1 -1
- package/{src/tools → tools}/src/extract/translation_files/legacy_message_id_migration_serializer.d.ts +1 -1
- package/{src/tools → tools}/src/extract/translation_files/translation_serializer.d.ts +1 -1
- package/{src/tools → tools}/src/extract/translation_files/utils.d.ts +1 -1
- package/{src/tools → tools}/src/extract/translation_files/xliff1_translation_serializer.d.ts +2 -2
- package/{src/tools → tools}/src/extract/translation_files/xliff2_translation_serializer.d.ts +2 -2
- package/{src/tools → tools}/src/extract/translation_files/xmb_translation_serializer.d.ts +2 -2
- package/{src/tools → tools}/src/extract/translation_files/xml_file.d.ts +1 -1
- package/tools/src/migrate/cli.d.ts +10 -0
- package/{src/tools/src/migrate/main.d.ts → tools/src/migrate/index.d.ts} +9 -3
- package/{src/tools → tools}/src/migrate/migrate.d.ts +1 -1
- package/{src/tools → tools}/src/source_file_utils.d.ts +3 -3
- package/{src/tools → tools}/src/translate/asset_files/asset_translation_handler.d.ts +2 -2
- package/tools/src/translate/cli.d.ts +3 -0
- package/{src/tools/src/translate/main.d.ts → tools/src/translate/index.d.ts} +1 -2
- package/{src/tools → tools}/src/translate/output_path.d.ts +2 -2
- package/{src/tools → tools}/src/translate/source_files/es2015_translate_plugin.d.ts +3 -3
- package/{src/tools → tools}/src/translate/source_files/es5_translate_plugin.d.ts +3 -3
- package/{src/tools → tools}/src/translate/source_files/locale_plugin.d.ts +2 -2
- package/{src/tools → tools}/src/translate/source_files/source_file_translation_handler.d.ts +2 -2
- package/{src/tools → tools}/src/translate/translation_files/base_visitor.d.ts +1 -1
- package/{src/tools → tools}/src/translate/translation_files/message_serialization/message_renderer.d.ts +1 -1
- package/{src/tools → tools}/src/translate/translation_files/message_serialization/message_serializer.d.ts +1 -1
- package/{src/tools → tools}/src/translate/translation_files/message_serialization/target_message_renderer.d.ts +1 -1
- package/{src/tools → tools}/src/translate/translation_files/translation_loader.d.ts +2 -2
- package/{src/tools → tools}/src/translate/translation_files/translation_parsers/arb_translation_parser.d.ts +1 -1
- package/{src/tools → tools}/src/translate/translation_files/translation_parsers/serialize_translation_message.d.ts +1 -1
- package/{src/tools → tools}/src/translate/translation_files/translation_parsers/simple_json_translation_parser.d.ts +1 -1
- package/{src/tools → tools}/src/translate/translation_files/translation_parsers/translation_parse_error.d.ts +1 -1
- package/{src/tools → tools}/src/translate/translation_files/translation_parsers/translation_parser.d.ts +2 -2
- package/{src/tools → tools}/src/translate/translation_files/translation_parsers/translation_utils.d.ts +1 -1
- package/{src/tools → tools}/src/translate/translation_files/translation_parsers/xliff1_translation_parser.d.ts +1 -1
- package/{src/tools → tools}/src/translate/translation_files/translation_parsers/xliff2_translation_parser.d.ts +1 -1
- package/{src/tools → tools}/src/translate/translation_files/translation_parsers/xtb_translation_parser.d.ts +1 -1
- package/{src/tools → tools}/src/translate/translator.d.ts +2 -2
- package/bundles/localize-init.umd.js +0 -218
- package/bundles/localize-init.umd.js.map +0 -1
- package/bundles/localize.umd.js +0 -782
- package/bundles/localize.umd.js.map +0 -1
- package/esm2015/init/index.js +0 -12
- package/esm2015/init/init.externs.js +0 -0
- package/esm2015/localize.externs.js +0 -0
- package/esm2015/src/localize/localize.externs.js +0 -0
- package/esm2015/src/utils/src/messages.js +0 -159
- package/esm2015/src/utils/utils.externs.js +0 -0
- package/fesm2015/init.js.map +0 -1
- package/fesm2015/localize.js.map +0 -1
- package/init.d.ts +0 -7
- package/src/tools/src/diagnostics.js +0 -68
- package/src/tools/src/extract/duplicates.js +0 -84
- package/src/tools/src/extract/extraction.js +0 -134
- package/src/tools/src/extract/main.js +0 -184
- package/src/tools/src/extract/source_files/es2015_extract_plugin.js +0 -36
- package/src/tools/src/extract/source_files/es5_extract_plugin.js +0 -49
- package/src/tools/src/extract/translation_files/arb_translation_serializer.js +0 -107
- package/src/tools/src/extract/translation_files/format_options.js +0 -52
- package/src/tools/src/extract/translation_files/icu_parsing.js +0 -224
- package/src/tools/src/extract/translation_files/json_translation_serializer.js +0 -47
- package/src/tools/src/extract/translation_files/legacy_message_id_migration_serializer.js +0 -63
- package/src/tools/src/extract/translation_files/translation_serializer.js +0 -13
- package/src/tools/src/extract/translation_files/utils.js +0 -102
- package/src/tools/src/extract/translation_files/xliff1_translation_serializer.js +0 -242
- package/src/tools/src/extract/translation_files/xliff2_translation_serializer.js +0 -231
- package/src/tools/src/extract/translation_files/xmb_translation_serializer.js +0 -139
- package/src/tools/src/extract/translation_files/xml_file.js +0 -117
- package/src/tools/src/migrate/main.js +0 -79
- package/src/tools/src/migrate/migrate.js +0 -48
- package/src/tools/src/source_file_utils.js +0 -443
- package/src/tools/src/translate/asset_files/asset_translation_handler.js +0 -65
- package/src/tools/src/translate/main.js +0 -157
- package/src/tools/src/translate/output_path.js +0 -28
- package/src/tools/src/translate/source_files/es2015_translate_plugin.js +0 -60
- package/src/tools/src/translate/source_files/es5_translate_plugin.js +0 -58
- package/src/tools/src/translate/source_files/locale_plugin.js +0 -95
- package/src/tools/src/translate/source_files/source_file_translation_handler.js +0 -127
- package/src/tools/src/translate/translation_files/base_visitor.js +0 -31
- package/src/tools/src/translate/translation_files/message_serialization/message_renderer.js +0 -20
- package/src/tools/src/translate/translation_files/message_serialization/message_serializer.js +0 -100
- package/src/tools/src/translate/translation_files/message_serialization/target_message_renderer.js +0 -84
- package/src/tools/src/translate/translation_files/translation_loader.js +0 -148
- package/src/tools/src/translate/translation_files/translation_parsers/arb_translation_parser.js +0 -111
- package/src/tools/src/translate/translation_files/translation_parsers/serialize_translation_message.js +0 -32
- package/src/tools/src/translate/translation_files/translation_parsers/simple_json_translation_parser.js +0 -96
- package/src/tools/src/translate/translation_files/translation_parsers/translation_parse_error.js +0 -47
- package/src/tools/src/translate/translation_files/translation_parsers/translation_parser.js +0 -13
- package/src/tools/src/translate/translation_files/translation_parsers/translation_utils.js +0 -175
- package/src/tools/src/translate/translation_files/translation_parsers/xliff1_translation_parser.js +0 -175
- package/src/tools/src/translate/translation_files/translation_parsers/xliff2_translation_parser.js +0 -166
- package/src/tools/src/translate/translation_files/translation_parsers/xtb_translation_parser.js +0 -133
- package/src/tools/src/translate/translator.js +0 -53
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
(function (factory) {
|
|
2
|
-
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
-
var v = factory(require, exports);
|
|
4
|
-
if (v !== undefined) module.exports = v;
|
|
5
|
-
}
|
|
6
|
-
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define("@angular/localize/src/tools/src/extract/duplicates", ["require", "exports", "tslib", "@angular/localize/src/tools/src/diagnostics", "@angular/localize/src/tools/src/source_file_utils"], factory);
|
|
8
|
-
}
|
|
9
|
-
})(function (require, exports) {
|
|
10
|
-
"use strict";
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.checkDuplicateMessages = void 0;
|
|
13
|
-
var tslib_1 = require("tslib");
|
|
14
|
-
var diagnostics_1 = require("@angular/localize/src/tools/src/diagnostics");
|
|
15
|
-
var source_file_utils_1 = require("@angular/localize/src/tools/src/source_file_utils");
|
|
16
|
-
/**
|
|
17
|
-
* Check each of the given `messages` to find those that have the same id but different message
|
|
18
|
-
* text. Add diagnostics messages for each of these duplicate messages to the given `diagnostics`
|
|
19
|
-
* object (as necessary).
|
|
20
|
-
*/
|
|
21
|
-
function checkDuplicateMessages(fs, messages, duplicateMessageHandling, basePath) {
|
|
22
|
-
var e_1, _a, e_2, _b;
|
|
23
|
-
var diagnostics = new diagnostics_1.Diagnostics();
|
|
24
|
-
if (duplicateMessageHandling === 'ignore')
|
|
25
|
-
return diagnostics;
|
|
26
|
-
var messageMap = new Map();
|
|
27
|
-
try {
|
|
28
|
-
for (var messages_1 = (0, tslib_1.__values)(messages), messages_1_1 = messages_1.next(); !messages_1_1.done; messages_1_1 = messages_1.next()) {
|
|
29
|
-
var message = messages_1_1.value;
|
|
30
|
-
if (messageMap.has(message.id)) {
|
|
31
|
-
messageMap.get(message.id).push(message);
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
messageMap.set(message.id, [message]);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
39
|
-
finally {
|
|
40
|
-
try {
|
|
41
|
-
if (messages_1_1 && !messages_1_1.done && (_a = messages_1.return)) _a.call(messages_1);
|
|
42
|
-
}
|
|
43
|
-
finally { if (e_1) throw e_1.error; }
|
|
44
|
-
}
|
|
45
|
-
var _loop_1 = function (duplicates) {
|
|
46
|
-
if (duplicates.length <= 1)
|
|
47
|
-
return "continue";
|
|
48
|
-
if (duplicates.every(function (message) { return message.text === duplicates[0].text; }))
|
|
49
|
-
return "continue";
|
|
50
|
-
var diagnosticMessage = "Duplicate messages with id \"" + duplicates[0].id + "\":\n" +
|
|
51
|
-
duplicates.map(function (message) { return serializeMessage(fs, basePath, message); }).join('\n');
|
|
52
|
-
diagnostics.add(duplicateMessageHandling, diagnosticMessage);
|
|
53
|
-
};
|
|
54
|
-
try {
|
|
55
|
-
for (var _c = (0, tslib_1.__values)(messageMap.values()), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
56
|
-
var duplicates = _d.value;
|
|
57
|
-
_loop_1(duplicates);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
61
|
-
finally {
|
|
62
|
-
try {
|
|
63
|
-
if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
|
|
64
|
-
}
|
|
65
|
-
finally { if (e_2) throw e_2.error; }
|
|
66
|
-
}
|
|
67
|
-
return diagnostics;
|
|
68
|
-
}
|
|
69
|
-
exports.checkDuplicateMessages = checkDuplicateMessages;
|
|
70
|
-
/**
|
|
71
|
-
* Serialize the given `message` object into a string.
|
|
72
|
-
*/
|
|
73
|
-
function serializeMessage(fs, basePath, message) {
|
|
74
|
-
if (message.location === undefined) {
|
|
75
|
-
return " - \"" + message.text + "\"";
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
var locationFile = fs.relative(basePath, message.location.file);
|
|
79
|
-
var locationPosition = (0, source_file_utils_1.serializeLocationPosition)(message.location);
|
|
80
|
-
return " - \"" + message.text + "\" : " + locationFile + ":" + locationPosition;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVwbGljYXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2xvY2FsaXplL3NyYy90b29scy9zcmMvZXh0cmFjdC9kdXBsaWNhdGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7SUFVQSwyRUFBdUU7SUFDdkUsdUZBQStEO0lBRS9EOzs7O09BSUc7SUFDSCxTQUFnQixzQkFBc0IsQ0FDbEMsRUFBb0IsRUFBRSxRQUEwQixFQUNoRCx3QkFBb0QsRUFBRSxRQUF3Qjs7UUFDaEYsSUFBTSxXQUFXLEdBQUcsSUFBSSx5QkFBVyxFQUFFLENBQUM7UUFDdEMsSUFBSSx3QkFBd0IsS0FBSyxRQUFRO1lBQUUsT0FBTyxXQUFXLENBQUM7UUFFOUQsSUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQWdDLENBQUM7O1lBQzNELEtBQXNCLElBQUEsYUFBQSxzQkFBQSxRQUFRLENBQUEsa0NBQUEsd0RBQUU7Z0JBQTNCLElBQU0sT0FBTyxxQkFBQTtnQkFDaEIsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTtvQkFDOUIsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUMzQztxQkFBTTtvQkFDTCxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2lCQUN2QzthQUNGOzs7Ozs7Ozs7Z0NBRVUsVUFBVTtZQUNuQixJQUFJLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQztrQ0FBVztZQUNyQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsVUFBQSxPQUFPLElBQUksT0FBQSxPQUFPLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQW5DLENBQW1DLENBQUM7a0NBQVc7WUFFL0UsSUFBTSxpQkFBaUIsR0FBRyxrQ0FBK0IsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBTTtnQkFDM0UsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFBLE9BQU8sSUFBSSxPQUFBLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQXZDLENBQXVDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEYsV0FBVyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDOzs7WUFOL0QsS0FBeUIsSUFBQSxLQUFBLHNCQUFBLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQSxnQkFBQTtnQkFBdkMsSUFBTSxVQUFVLFdBQUE7d0JBQVYsVUFBVTthQU9wQjs7Ozs7Ozs7O1FBRUQsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQXpCRCx3REF5QkM7SUFFRDs7T0FFRztJQUNILFNBQVMsZ0JBQWdCLENBQ3JCLEVBQW9CLEVBQUUsUUFBd0IsRUFBRSxPQUF1QjtRQUN6RSxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQ2xDLE9BQU8sWUFBUyxPQUFPLENBQUMsSUFBSSxPQUFHLENBQUM7U0FDakM7YUFBTTtZQUNMLElBQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEUsSUFBTSxnQkFBZ0IsR0FBRyxJQUFBLDZDQUF5QixFQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyRSxPQUFPLFlBQVMsT0FBTyxDQUFDLElBQUksYUFBTyxZQUFZLFNBQUksZ0JBQWtCLENBQUM7U0FDdkU7SUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge0Fic29sdXRlRnNQYXRoLCBQYXRoTWFuaXB1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb21waWxlci1jbGkvc3JjL25ndHNjL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7ybVNZXNzYWdlSWQsIMm1UGFyc2VkTWVzc2FnZX0gZnJvbSAnQGFuZ3VsYXIvbG9jYWxpemUnO1xuXG5pbXBvcnQge0RpYWdub3N0aWNIYW5kbGluZ1N0cmF0ZWd5LCBEaWFnbm9zdGljc30gZnJvbSAnLi4vZGlhZ25vc3RpY3MnO1xuaW1wb3J0IHtzZXJpYWxpemVMb2NhdGlvblBvc2l0aW9ufSBmcm9tICcuLi9zb3VyY2VfZmlsZV91dGlscyc7XG5cbi8qKlxuICogQ2hlY2sgZWFjaCBvZiB0aGUgZ2l2ZW4gYG1lc3NhZ2VzYCB0byBmaW5kIHRob3NlIHRoYXQgaGF2ZSB0aGUgc2FtZSBpZCBidXQgZGlmZmVyZW50IG1lc3NhZ2VcbiAqIHRleHQuIEFkZCBkaWFnbm9zdGljcyBtZXNzYWdlcyBmb3IgZWFjaCBvZiB0aGVzZSBkdXBsaWNhdGUgbWVzc2FnZXMgdG8gdGhlIGdpdmVuIGBkaWFnbm9zdGljc2BcbiAqIG9iamVjdCAoYXMgbmVjZXNzYXJ5KS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrRHVwbGljYXRlTWVzc2FnZXMoXG4gICAgZnM6IFBhdGhNYW5pcHVsYXRpb24sIG1lc3NhZ2VzOiDJtVBhcnNlZE1lc3NhZ2VbXSxcbiAgICBkdXBsaWNhdGVNZXNzYWdlSGFuZGxpbmc6IERpYWdub3N0aWNIYW5kbGluZ1N0cmF0ZWd5LCBiYXNlUGF0aDogQWJzb2x1dGVGc1BhdGgpOiBEaWFnbm9zdGljcyB7XG4gIGNvbnN0IGRpYWdub3N0aWNzID0gbmV3IERpYWdub3N0aWNzKCk7XG4gIGlmIChkdXBsaWNhdGVNZXNzYWdlSGFuZGxpbmcgPT09ICdpZ25vcmUnKSByZXR1cm4gZGlhZ25vc3RpY3M7XG5cbiAgY29uc3QgbWVzc2FnZU1hcCA9IG5ldyBNYXA8ybVNZXNzYWdlSWQsIMm1UGFyc2VkTWVzc2FnZVtdPigpO1xuICBmb3IgKGNvbnN0IG1lc3NhZ2Ugb2YgbWVzc2FnZXMpIHtcbiAgICBpZiAobWVzc2FnZU1hcC5oYXMobWVzc2FnZS5pZCkpIHtcbiAgICAgIG1lc3NhZ2VNYXAuZ2V0KG1lc3NhZ2UuaWQpIS5wdXNoKG1lc3NhZ2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICBtZXNzYWdlTWFwLnNldChtZXNzYWdlLmlkLCBbbWVzc2FnZV0pO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3QgZHVwbGljYXRlcyBvZiBtZXNzYWdlTWFwLnZhbHVlcygpKSB7XG4gICAgaWYgKGR1cGxpY2F0ZXMubGVuZ3RoIDw9IDEpIGNvbnRpbnVlO1xuICAgIGlmIChkdXBsaWNhdGVzLmV2ZXJ5KG1lc3NhZ2UgPT4gbWVzc2FnZS50ZXh0ID09PSBkdXBsaWNhdGVzWzBdLnRleHQpKSBjb250aW51ZTtcblxuICAgIGNvbnN0IGRpYWdub3N0aWNNZXNzYWdlID0gYER1cGxpY2F0ZSBtZXNzYWdlcyB3aXRoIGlkIFwiJHtkdXBsaWNhdGVzWzBdLmlkfVwiOlxcbmAgK1xuICAgICAgICBkdXBsaWNhdGVzLm1hcChtZXNzYWdlID0+IHNlcmlhbGl6ZU1lc3NhZ2UoZnMsIGJhc2VQYXRoLCBtZXNzYWdlKSkuam9pbignXFxuJyk7XG4gICAgZGlhZ25vc3RpY3MuYWRkKGR1cGxpY2F0ZU1lc3NhZ2VIYW5kbGluZywgZGlhZ25vc3RpY01lc3NhZ2UpO1xuICB9XG5cbiAgcmV0dXJuIGRpYWdub3N0aWNzO1xufVxuXG4vKipcbiAqIFNlcmlhbGl6ZSB0aGUgZ2l2ZW4gYG1lc3NhZ2VgIG9iamVjdCBpbnRvIGEgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBzZXJpYWxpemVNZXNzYWdlKFxuICAgIGZzOiBQYXRoTWFuaXB1bGF0aW9uLCBiYXNlUGF0aDogQWJzb2x1dGVGc1BhdGgsIG1lc3NhZ2U6IMm1UGFyc2VkTWVzc2FnZSk6IHN0cmluZyB7XG4gIGlmIChtZXNzYWdlLmxvY2F0aW9uID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gYCAgIC0gXCIke21lc3NhZ2UudGV4dH1cImA7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgbG9jYXRpb25GaWxlID0gZnMucmVsYXRpdmUoYmFzZVBhdGgsIG1lc3NhZ2UubG9jYXRpb24uZmlsZSk7XG4gICAgY29uc3QgbG9jYXRpb25Qb3NpdGlvbiA9IHNlcmlhbGl6ZUxvY2F0aW9uUG9zaXRpb24obWVzc2FnZS5sb2NhdGlvbik7XG4gICAgcmV0dXJuIGAgICAtIFwiJHttZXNzYWdlLnRleHR9XCIgOiAke2xvY2F0aW9uRmlsZX06JHtsb2NhdGlvblBvc2l0aW9ufWA7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
(function (factory) {
|
|
2
|
-
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
-
var v = factory(require, exports);
|
|
4
|
-
if (v !== undefined) module.exports = v;
|
|
5
|
-
}
|
|
6
|
-
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define("@angular/localize/src/tools/src/extract/extraction", ["require", "exports", "tslib", "@angular/compiler-cli/src/ngtsc/sourcemaps", "@babel/core", "@angular/localize/src/tools/src/extract/source_files/es2015_extract_plugin", "@angular/localize/src/tools/src/extract/source_files/es5_extract_plugin"], factory);
|
|
8
|
-
}
|
|
9
|
-
})(function (require, exports) {
|
|
10
|
-
"use strict";
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.MessageExtractor = void 0;
|
|
13
|
-
var tslib_1 = require("tslib");
|
|
14
|
-
var sourcemaps_1 = require("@angular/compiler-cli/src/ngtsc/sourcemaps");
|
|
15
|
-
var core_1 = require("@babel/core");
|
|
16
|
-
var es2015_extract_plugin_1 = require("@angular/localize/src/tools/src/extract/source_files/es2015_extract_plugin");
|
|
17
|
-
var es5_extract_plugin_1 = require("@angular/localize/src/tools/src/extract/source_files/es5_extract_plugin");
|
|
18
|
-
/**
|
|
19
|
-
* Extracts parsed messages from file contents, by parsing the contents as JavaScript
|
|
20
|
-
* and looking for occurrences of `$localize` in the source code.
|
|
21
|
-
*
|
|
22
|
-
* @publicApi used by CLI
|
|
23
|
-
*/
|
|
24
|
-
var MessageExtractor = /** @class */ (function () {
|
|
25
|
-
function MessageExtractor(fs, logger, _a) {
|
|
26
|
-
var basePath = _a.basePath, _b = _a.useSourceMaps, useSourceMaps = _b === void 0 ? true : _b, _c = _a.localizeName, localizeName = _c === void 0 ? '$localize' : _c;
|
|
27
|
-
this.fs = fs;
|
|
28
|
-
this.logger = logger;
|
|
29
|
-
this.basePath = basePath;
|
|
30
|
-
this.useSourceMaps = useSourceMaps;
|
|
31
|
-
this.localizeName = localizeName;
|
|
32
|
-
this.loader = new sourcemaps_1.SourceFileLoader(this.fs, this.logger, { webpack: basePath });
|
|
33
|
-
}
|
|
34
|
-
MessageExtractor.prototype.extractMessages = function (filename) {
|
|
35
|
-
var messages = [];
|
|
36
|
-
var sourceCode = this.fs.readFile(this.fs.resolve(this.basePath, filename));
|
|
37
|
-
if (sourceCode.includes(this.localizeName)) {
|
|
38
|
-
// Only bother to parse the file if it contains a reference to `$localize`.
|
|
39
|
-
(0, core_1.transformSync)(sourceCode, {
|
|
40
|
-
sourceRoot: this.basePath,
|
|
41
|
-
filename: filename,
|
|
42
|
-
plugins: [
|
|
43
|
-
(0, es2015_extract_plugin_1.makeEs2015ExtractPlugin)(this.fs, messages, this.localizeName),
|
|
44
|
-
(0, es5_extract_plugin_1.makeEs5ExtractPlugin)(this.fs, messages, this.localizeName),
|
|
45
|
-
],
|
|
46
|
-
code: false,
|
|
47
|
-
ast: false
|
|
48
|
-
});
|
|
49
|
-
if (this.useSourceMaps && messages.length > 0) {
|
|
50
|
-
this.updateSourceLocations(filename, sourceCode, messages);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
return messages;
|
|
54
|
-
};
|
|
55
|
-
/**
|
|
56
|
-
* Update the location of each message to point to the source-mapped original source location, if
|
|
57
|
-
* available.
|
|
58
|
-
*/
|
|
59
|
-
MessageExtractor.prototype.updateSourceLocations = function (filename, contents, messages) {
|
|
60
|
-
var e_1, _a, e_2, _b;
|
|
61
|
-
var _this = this;
|
|
62
|
-
var sourceFile = this.loader.loadSourceFile(this.fs.resolve(this.basePath, filename), contents);
|
|
63
|
-
if (sourceFile === null) {
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
try {
|
|
67
|
-
for (var messages_1 = (0, tslib_1.__values)(messages), messages_1_1 = messages_1.next(); !messages_1_1.done; messages_1_1 = messages_1.next()) {
|
|
68
|
-
var message = messages_1_1.value;
|
|
69
|
-
if (message.location !== undefined) {
|
|
70
|
-
message.location = this.getOriginalLocation(sourceFile, message.location);
|
|
71
|
-
if (message.messagePartLocations) {
|
|
72
|
-
message.messagePartLocations = message.messagePartLocations.map(function (location) { return location && _this.getOriginalLocation(sourceFile, location); });
|
|
73
|
-
}
|
|
74
|
-
if (message.substitutionLocations) {
|
|
75
|
-
var placeholderNames = Object.keys(message.substitutionLocations);
|
|
76
|
-
try {
|
|
77
|
-
for (var placeholderNames_1 = (e_2 = void 0, (0, tslib_1.__values)(placeholderNames)), placeholderNames_1_1 = placeholderNames_1.next(); !placeholderNames_1_1.done; placeholderNames_1_1 = placeholderNames_1.next()) {
|
|
78
|
-
var placeholderName = placeholderNames_1_1.value;
|
|
79
|
-
var location = message.substitutionLocations[placeholderName];
|
|
80
|
-
message.substitutionLocations[placeholderName] =
|
|
81
|
-
location && this.getOriginalLocation(sourceFile, location);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
85
|
-
finally {
|
|
86
|
-
try {
|
|
87
|
-
if (placeholderNames_1_1 && !placeholderNames_1_1.done && (_b = placeholderNames_1.return)) _b.call(placeholderNames_1);
|
|
88
|
-
}
|
|
89
|
-
finally { if (e_2) throw e_2.error; }
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
96
|
-
finally {
|
|
97
|
-
try {
|
|
98
|
-
if (messages_1_1 && !messages_1_1.done && (_a = messages_1.return)) _a.call(messages_1);
|
|
99
|
-
}
|
|
100
|
-
finally { if (e_1) throw e_1.error; }
|
|
101
|
-
}
|
|
102
|
-
};
|
|
103
|
-
/**
|
|
104
|
-
* Find the original location using source-maps if available.
|
|
105
|
-
*
|
|
106
|
-
* @param sourceFile The generated `sourceFile` that contains the `location`.
|
|
107
|
-
* @param location The location within the generated `sourceFile` that needs mapping.
|
|
108
|
-
*
|
|
109
|
-
* @returns A new location that refers to the original source location mapped from the given
|
|
110
|
-
* `location` in the generated `sourceFile`.
|
|
111
|
-
*/
|
|
112
|
-
MessageExtractor.prototype.getOriginalLocation = function (sourceFile, location) {
|
|
113
|
-
var originalStart = sourceFile.getOriginalLocation(location.start.line, location.start.column);
|
|
114
|
-
if (originalStart === null) {
|
|
115
|
-
return location;
|
|
116
|
-
}
|
|
117
|
-
var originalEnd = sourceFile.getOriginalLocation(location.end.line, location.end.column);
|
|
118
|
-
var start = { line: originalStart.line, column: originalStart.column };
|
|
119
|
-
// We check whether the files are the same, since the returned location can only have a single
|
|
120
|
-
// `file` and it would not make sense to store the end position from a different source file.
|
|
121
|
-
var end = (originalEnd !== null && originalEnd.file === originalStart.file) ?
|
|
122
|
-
{ line: originalEnd.line, column: originalEnd.column } :
|
|
123
|
-
start;
|
|
124
|
-
var originalSourceFile = sourceFile.sources.find(function (sf) { return (sf === null || sf === void 0 ? void 0 : sf.sourcePath) === originalStart.file; });
|
|
125
|
-
var startPos = originalSourceFile.startOfLinePositions[start.line] + start.column;
|
|
126
|
-
var endPos = originalSourceFile.startOfLinePositions[end.line] + end.column;
|
|
127
|
-
var text = originalSourceFile.contents.substring(startPos, endPos).trim();
|
|
128
|
-
return { file: originalStart.file, start: start, end: end, text: text };
|
|
129
|
-
};
|
|
130
|
-
return MessageExtractor;
|
|
131
|
-
}());
|
|
132
|
-
exports.MessageExtractor = MessageExtractor;
|
|
133
|
-
});
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2xvY2FsaXplL3NyYy90b29scy9zcmMvZXh0cmFjdC9leHRyYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7SUFTQSx5RUFBd0Y7SUFFeEYsb0NBQTBDO0lBRTFDLG9IQUE2RTtJQUM3RSw4R0FBdUU7SUFRdkU7Ozs7O09BS0c7SUFDSDtRQU1FLDBCQUNZLEVBQXNCLEVBQVUsTUFBYyxFQUN0RCxFQUErRTtnQkFBOUUsUUFBUSxjQUFBLEVBQUUscUJBQW9CLEVBQXBCLGFBQWEsbUJBQUcsSUFBSSxLQUFBLEVBQUUsb0JBQTBCLEVBQTFCLFlBQVksbUJBQUcsV0FBVyxLQUFBO1lBRG5ELE9BQUUsR0FBRixFQUFFLENBQW9CO1lBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtZQUV4RCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztZQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztZQUNqQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksNkJBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUMsT0FBTyxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUM7UUFDaEYsQ0FBQztRQUVELDBDQUFlLEdBQWYsVUFDSSxRQUFnQjtZQUVsQixJQUFNLFFBQVEsR0FBcUIsRUFBRSxDQUFDO1lBQ3RDLElBQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUM5RSxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlB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QUEsRUFBRSxJQUFJLE1BQUEsRUFBQyxDQUFDO1FBQ3RELENBQUM7UUFDSCx1QkFBQztJQUFELENBQUMsQUFwR0QsSUFvR0M7SUFwR1ksNENBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge0Fic29sdXRlRnNQYXRoLCBSZWFkb25seUZpbGVTeXN0ZW19IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvZmlsZV9zeXN0ZW0nO1xuaW1wb3J0IHtMb2dnZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvbG9nZ2luZyc7XG5pbXBvcnQge1NvdXJjZUZpbGUsIFNvdXJjZUZpbGVMb2FkZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2Mvc291cmNlbWFwcyc7XG5pbXBvcnQge8m1UGFyc2VkTWVzc2FnZSwgybVTb3VyY2VMb2NhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvbG9jYWxpemUnO1xuaW1wb3J0IHt0cmFuc2Zvcm1TeW5jfSBmcm9tICdAYmFiZWwvY29yZSc7XG5cbmltcG9ydCB7bWFrZUVzMjAxNUV4dHJhY3RQbHVnaW59IGZyb20gJy4vc291cmNlX2ZpbGVzL2VzMjAxNV9leHRyYWN0X3BsdWdpbic7XG5pbXBvcnQge21ha2VFczVFeHRyYWN0UGx1Z2lufSBmcm9tICcuL3NvdXJjZV9maWxlcy9lczVfZXh0cmFjdF9wbHVnaW4nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4dHJhY3Rpb25PcHRpb25zIHtcbiAgYmFzZVBhdGg6IEFic29sdXRlRnNQYXRoO1xuICB1c2VTb3VyY2VNYXBzPzogYm9vbGVhbjtcbiAgbG9jYWxpemVOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEV4dHJhY3RzIHBhcnNlZCBtZXNzYWdlcyBmcm9tIGZpbGUgY29udGVudHMsIGJ5IHBhcnNpbmcgdGhlIGNvbnRlbnRzIGFzIEphdmFTY3JpcHRcbiAqIGFuZCBsb29raW5nIGZvciBvY2N1cnJlbmNlcyBvZiBgJGxvY2FsaXplYCBpbiB0aGUgc291cmNlIGNvZGUuXG4gKlxuICogQHB1YmxpY0FwaSB1c2VkIGJ5IENMSVxuICovXG5leHBvcnQgY2xhc3MgTWVzc2FnZUV4dHJhY3RvciB7XG4gIHByaXZhdGUgYmFzZVBhdGg6IEFic29sdXRlRnNQYXRoO1xuICBwcml2YXRlIHVzZVNvdXJjZU1hcHM6IGJvb2xlYW47XG4gIHByaXZhdGUgbG9jYWxpemVOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgbG9hZGVyOiBTb3VyY2VGaWxlTG9hZGVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBmczogUmVhZG9ubHlGaWxlU3lzdGVtLCBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyLFxuICAgICAge2Jhc2VQYXRoLCB1c2VTb3VyY2VNYXBzID0gdHJ1ZSwgbG9jYWxpemVOYW1lID0gJyRsb2NhbGl6ZSd9OiBFeHRyYWN0aW9uT3B0aW9ucykge1xuICAgIHRoaXMuYmFzZVBhdGggPSBiYXNlUGF0aDtcbiAgICB0aGlzLnVzZVNvdXJjZU1hcHMgPSB1c2VTb3VyY2VNYXBzO1xuICAgIHRoaXMubG9jYWxpemVOYW1lID0gbG9jYWxpemVOYW1lO1xuICAgIHRoaXMubG9hZGVyID0gbmV3IFNvdXJjZUZpbGVMb2FkZXIodGhpcy5mcywgdGhpcy5sb2dnZXIsIHt3ZWJwYWNrOiBiYXNlUGF0aH0pO1xuICB9XG5cbiAgZXh0cmFjdE1lc3NhZ2VzKFxuICAgICAgZmlsZW5hbWU6IHN0cmluZyxcbiAgICAgICk6IMm1UGFyc2VkTWVzc2FnZVtdIHtcbiAgICBjb25zdCBtZXNzYWdlczogybVQYXJzZWRNZXNzYWdlW10gPSBbXTtcbiAgICBjb25zdCBzb3VyY2VDb2RlID0gdGhpcy5mcy5yZWFkRmlsZSh0aGlzLmZzLnJlc29sdmUodGhpcy5iYXNlUGF0aCwgZmlsZW5hbWUpKTtcbiAgICBpZiAoc291cmNlQ29kZS5pbmNsdWRlcyh0aGlzLmxvY2FsaXplTmFtZSkpIHtcbiAgICAgIC8vIE9ubHkgYm90aGVyIHRvIHBhcnNlIHRoZSBmaWxlIGlmIGl0IGNvbnRhaW5zIGEgcmVmZXJlbmNlIHRvIGAkbG9jYWxpemVgLlxuICAgICAgdHJhbnNmb3JtU3luYyhzb3VyY2VDb2RlLCB7XG4gICAgICAgIHNvdXJjZVJvb3Q6IHRoaXMuYmFzZVBhdGgsXG4gICAgICAgIGZpbGVuYW1lLFxuICAgICAgICBwbHVnaW5zOiBbXG4gICAgICAgICAgbWFrZUVzMjAxNUV4dHJhY3RQbHVnaW4odGhpcy5mcywgbWVzc2FnZXMsIHRoaXMubG9jYWxpemVOYW1lKSxcbiAgICAgICAgICBtYWtlRXM1RXh0cmFjdFBsdWdpbih0aGlzLmZzLCBtZXNzYWdlcywgdGhpcy5sb2NhbGl6ZU5hbWUpLFxuICAgICAgICBdLFxuICAgICAgICBjb2RlOiBmYWxzZSxcbiAgICAgICAgYXN0OiBmYWxzZVxuICAgICAgfSk7XG4gICAgICBpZiAodGhpcy51c2VTb3VyY2VNYXBzICYmIG1lc3NhZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy51cGRhdGVTb3VyY2VMb2NhdGlvbnMoZmlsZW5hbWUsIHNvdXJjZUNvZGUsIG1lc3NhZ2VzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2VzO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgbG9jYXRpb24gb2YgZWFjaCBtZXNzYWdlIHRvIHBvaW50IHRvIHRoZSBzb3VyY2UtbWFwcGVkIG9yaWdpbmFsIHNvdXJjZSBsb2NhdGlvbiwgaWZcbiAgICogYXZhaWxhYmxlLlxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVTb3VyY2VMb2NhdGlvbnMoZmlsZW5hbWU6IHN0cmluZywgY29udGVudHM6IHN0cmluZywgbWVzc2FnZXM6IMm1UGFyc2VkTWVzc2FnZVtdKTpcbiAgICAgIHZvaWQge1xuICAgIGNvbnN0IHNvdXJjZUZpbGUgPVxuICAgICAgICB0aGlzLmxvYWRlci5sb2FkU291cmNlRmlsZSh0aGlzLmZzLnJlc29sdmUodGhpcy5iYXNlUGF0aCwgZmlsZW5hbWUpLCBjb250ZW50cyk7XG4gICAgaWYgKHNvdXJjZUZpbGUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZm9yIChjb25zdCBtZXNzYWdlIG9mIG1lc3NhZ2VzKSB7XG4gICAgICBpZiAobWVzc2FnZS5sb2NhdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIG1lc3NhZ2UubG9jYXRpb24gPSB0aGlzLmdldE9yaWdpbmFsTG9jYXRpb24oc291cmNlRmlsZSwgbWVzc2FnZS5sb2NhdGlvbik7XG5cbiAgICAgICAgaWYgKG1lc3NhZ2UubWVzc2FnZVBhcnRMb2NhdGlvbnMpIHtcbiAgICAgICAgICBtZXNzYWdlLm1lc3NhZ2VQYXJ0TG9jYXRpb25zID0gbWVzc2FnZS5tZXNzYWdlUGFydExvY2F0aW9ucy5tYXAoXG4gICAgICAgICAgICAgIGxvY2F0aW9uID0+IGxvY2F0aW9uICYmIHRoaXMuZ2V0T3JpZ2luYWxMb2NhdGlvbihzb3VyY2VGaWxlLCBsb2NhdGlvbikpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1lc3NhZ2Uuc3Vic3RpdHV0aW9uTG9jYXRpb25zKSB7XG4gICAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJOYW1lcyA9IE9iamVjdC5rZXlzKG1lc3NhZ2Uuc3Vic3RpdHV0aW9uTG9jYXRpb25zKTtcbiAgICAgICAgICBmb3IgKGNvbnN0IHBsYWNlaG9sZGVyTmFtZSBvZiBwbGFjZWhvbGRlck5hbWVzKSB7XG4gICAgICAgICAgICBjb25zdCBsb2NhdGlvbiA9IG1lc3NhZ2Uuc3Vic3RpdHV0aW9uTG9jYXRpb25zW3BsYWNlaG9sZGVyTmFtZV07XG4gICAgICAgICAgICBtZXNzYWdlLnN1YnN0aXR1dGlvbkxvY2F0aW9uc1twbGFjZWhvbGRlck5hbWVdID1cbiAgICAgICAgICAgICAgICBsb2NhdGlvbiAmJiB0aGlzLmdldE9yaWdpbmFsTG9jYXRpb24oc291cmNlRmlsZSwgbG9jYXRpb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kIHRoZSBvcmlnaW5hbCBsb2NhdGlvbiB1c2luZyBzb3VyY2UtbWFwcyBpZiBhdmFpbGFibGUuXG4gICAqXG4gICAqIEBwYXJhbSBzb3VyY2VGaWxlIFRoZSBnZW5lcmF0ZWQgYHNvdXJjZUZpbGVgIHRoYXQgY29udGFpbnMgdGhlIGBsb2NhdGlvbmAuXG4gICAqIEBwYXJhbSBsb2NhdGlvbiBUaGUgbG9jYXRpb24gd2l0aGluIHRoZSBnZW5lcmF0ZWQgYHNvdXJjZUZpbGVgIHRoYXQgbmVlZHMgbWFwcGluZy5cbiAgICpcbiAgICogQHJldHVybnMgQSBuZXcgbG9jYXRpb24gdGhhdCByZWZlcnMgdG8gdGhlIG9yaWdpbmFsIHNvdXJjZSBsb2NhdGlvbiBtYXBwZWQgZnJvbSB0aGUgZ2l2ZW5cbiAgICogICAgIGBsb2NhdGlvbmAgaW4gdGhlIGdlbmVyYXRlZCBgc291cmNlRmlsZWAuXG4gICAqL1xuICBwcml2YXRlIGdldE9yaWdpbmFsTG9jYXRpb24oc291cmNlRmlsZTogU291cmNlRmlsZSwgbG9jYXRpb246IMm1U291cmNlTG9jYXRpb24pOiDJtVNvdXJjZUxvY2F0aW9uIHtcbiAgICBjb25zdCBvcmlnaW5hbFN0YXJ0ID1cbiAgICAgICAgc291cmNlRmlsZS5nZXRPcmlnaW5hbExvY2F0aW9uKGxvY2F0aW9uLnN0YXJ0LmxpbmUsIGxvY2F0aW9uLnN0YXJ0LmNvbHVtbik7XG4gICAgaWYgKG9yaWdpbmFsU3RhcnQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBsb2NhdGlvbjtcbiAgICB9XG4gICAgY29uc3Qgb3JpZ2luYWxFbmQgPSBzb3VyY2VGaWxlLmdldE9yaWdpbmFsTG9jYXRpb24obG9jYXRpb24uZW5kLmxpbmUsIGxvY2F0aW9uLmVuZC5jb2x1bW4pO1xuICAgIGNvbnN0IHN0YXJ0ID0ge2xpbmU6IG9yaWdpbmFsU3RhcnQubGluZSwgY29sdW1uOiBvcmlnaW5hbFN0YXJ0LmNvbHVtbn07XG4gICAgLy8gV2UgY2hlY2sgd2hldGhlciB0aGUgZmlsZXMgYXJlIHRoZSBzYW1lLCBzaW5jZSB0aGUgcmV0dXJuZWQgbG9jYXRpb24gY2FuIG9ubHkgaGF2ZSBhIHNpbmdsZVxuICAgIC8vIGBmaWxlYCBhbmQgaXQgd291bGQgbm90IG1ha2Ugc2Vuc2UgdG8gc3RvcmUgdGhlIGVuZCBwb3NpdGlvbiBmcm9tIGEgZGlmZmVyZW50IHNvdXJjZSBmaWxlLlxuICAgIGNvbnN0IGVuZCA9IChvcmlnaW5hbEVuZCAhPT0gbnVsbCAmJiBvcmlnaW5hbEVuZC5maWxlID09PSBvcmlnaW5hbFN0YXJ0LmZpbGUpID9cbiAgICAgICAge2xpbmU6IG9yaWdpbmFsRW5kLmxpbmUsIGNvbHVtbjogb3JpZ2luYWxFbmQuY29sdW1ufSA6XG4gICAgICAgIHN0YXJ0O1xuICAgIGNvbnN0IG9yaWdpbmFsU291cmNlRmlsZSA9XG4gICAgICAgIHNvdXJjZUZpbGUuc291cmNlcy5maW5kKHNmID0+IHNmPy5zb3VyY2VQYXRoID09PSBvcmlnaW5hbFN0YXJ0LmZpbGUpITtcbiAgICBjb25zdCBzdGFydFBvcyA9IG9yaWdpbmFsU291cmNlRmlsZS5zdGFydE9mTGluZVBvc2l0aW9uc1tzdGFydC5saW5lXSArIHN0YXJ0LmNvbHVtbjtcbiAgICBjb25zdCBlbmRQb3MgPSBvcmlnaW5hbFNvdXJjZUZpbGUuc3RhcnRPZkxpbmVQb3NpdGlvbnNbZW5kLmxpbmVdICsgZW5kLmNvbHVtbjtcbiAgICBjb25zdCB0ZXh0ID0gb3JpZ2luYWxTb3VyY2VGaWxlLmNvbnRlbnRzLnN1YnN0cmluZyhzdGFydFBvcywgZW5kUG9zKS50cmltKCk7XG4gICAgcmV0dXJuIHtmaWxlOiBvcmlnaW5hbFN0YXJ0LmZpbGUsIHN0YXJ0LCBlbmQsIHRleHR9O1xuICB9XG59XG4iXX0=
|
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
(function (factory) {
|
|
3
|
-
if (typeof module === "object" && typeof module.exports === "object") {
|
|
4
|
-
var v = factory(require, exports);
|
|
5
|
-
if (v !== undefined) module.exports = v;
|
|
6
|
-
}
|
|
7
|
-
else if (typeof define === "function" && define.amd) {
|
|
8
|
-
define("@angular/localize/src/tools/src/extract/main", ["require", "exports", "tslib", "@angular/compiler-cli/src/ngtsc/file_system", "@angular/compiler-cli/src/ngtsc/logging", "glob", "yargs", "@angular/localize/src/tools/src/extract/duplicates", "@angular/localize/src/tools/src/extract/extraction", "@angular/localize/src/tools/src/extract/translation_files/arb_translation_serializer", "@angular/localize/src/tools/src/extract/translation_files/json_translation_serializer", "@angular/localize/src/tools/src/extract/translation_files/xliff1_translation_serializer", "@angular/localize/src/tools/src/extract/translation_files/xliff2_translation_serializer", "@angular/localize/src/tools/src/extract/translation_files/xmb_translation_serializer", "@angular/localize/src/tools/src/extract/translation_files/format_options", "@angular/localize/src/tools/src/extract/translation_files/legacy_message_id_migration_serializer"], factory);
|
|
9
|
-
}
|
|
10
|
-
})(function (require, exports) {
|
|
11
|
-
"use strict";
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.extractTranslations = void 0;
|
|
14
|
-
var tslib_1 = require("tslib");
|
|
15
|
-
/**
|
|
16
|
-
* @license
|
|
17
|
-
* Copyright Google LLC All Rights Reserved.
|
|
18
|
-
*
|
|
19
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
20
|
-
* found in the LICENSE file at https://angular.io/license
|
|
21
|
-
*/
|
|
22
|
-
var file_system_1 = require("@angular/compiler-cli/src/ngtsc/file_system");
|
|
23
|
-
var logging_1 = require("@angular/compiler-cli/src/ngtsc/logging");
|
|
24
|
-
var glob = require("glob");
|
|
25
|
-
var yargs = require("yargs");
|
|
26
|
-
var duplicates_1 = require("@angular/localize/src/tools/src/extract/duplicates");
|
|
27
|
-
var extraction_1 = require("@angular/localize/src/tools/src/extract/extraction");
|
|
28
|
-
var arb_translation_serializer_1 = require("@angular/localize/src/tools/src/extract/translation_files/arb_translation_serializer");
|
|
29
|
-
var json_translation_serializer_1 = require("@angular/localize/src/tools/src/extract/translation_files/json_translation_serializer");
|
|
30
|
-
var xliff1_translation_serializer_1 = require("@angular/localize/src/tools/src/extract/translation_files/xliff1_translation_serializer");
|
|
31
|
-
var xliff2_translation_serializer_1 = require("@angular/localize/src/tools/src/extract/translation_files/xliff2_translation_serializer");
|
|
32
|
-
var xmb_translation_serializer_1 = require("@angular/localize/src/tools/src/extract/translation_files/xmb_translation_serializer");
|
|
33
|
-
var format_options_1 = require("@angular/localize/src/tools/src/extract/translation_files/format_options");
|
|
34
|
-
var legacy_message_id_migration_serializer_1 = require("@angular/localize/src/tools/src/extract/translation_files/legacy_message_id_migration_serializer");
|
|
35
|
-
if (require.main === module) {
|
|
36
|
-
process.title = 'Angular Localization Message Extractor (localize-extract)';
|
|
37
|
-
var args = process.argv.slice(2);
|
|
38
|
-
var options = yargs
|
|
39
|
-
.option('l', {
|
|
40
|
-
alias: 'locale',
|
|
41
|
-
describe: 'The locale of the source being processed',
|
|
42
|
-
default: 'en',
|
|
43
|
-
type: 'string',
|
|
44
|
-
})
|
|
45
|
-
.option('r', {
|
|
46
|
-
alias: 'root',
|
|
47
|
-
default: '.',
|
|
48
|
-
describe: 'The root path for other paths provided in these options.\n' +
|
|
49
|
-
'This should either be absolute or relative to the current working directory.',
|
|
50
|
-
type: 'string',
|
|
51
|
-
})
|
|
52
|
-
.option('s', {
|
|
53
|
-
alias: 'source',
|
|
54
|
-
required: true,
|
|
55
|
-
describe: 'A glob pattern indicating what files to search for translations, e.g. `./dist/**/*.js`.\n' +
|
|
56
|
-
'This should be relative to the root path.',
|
|
57
|
-
type: 'string',
|
|
58
|
-
})
|
|
59
|
-
.option('f', {
|
|
60
|
-
alias: 'format',
|
|
61
|
-
required: true,
|
|
62
|
-
choices: [
|
|
63
|
-
'xmb', 'xlf', 'xlif', 'xliff', 'xlf2', 'xlif2', 'xliff2', 'json', 'legacy-migrate'
|
|
64
|
-
],
|
|
65
|
-
describe: 'The format of the translation file.',
|
|
66
|
-
type: 'string',
|
|
67
|
-
})
|
|
68
|
-
.option('formatOptions', {
|
|
69
|
-
describe: 'Additional options to pass to the translation file serializer, in the form of JSON formatted key-value string pairs:\n' +
|
|
70
|
-
'For example: `--formatOptions {"xml:space":"preserve"}.\n' +
|
|
71
|
-
'The meaning of the options is specific to the format being serialized.',
|
|
72
|
-
type: 'string'
|
|
73
|
-
})
|
|
74
|
-
.option('o', {
|
|
75
|
-
alias: 'outputPath',
|
|
76
|
-
required: true,
|
|
77
|
-
describe: 'A path to where the translation file will be written. This should be relative to the root path.',
|
|
78
|
-
type: 'string',
|
|
79
|
-
})
|
|
80
|
-
.option('loglevel', {
|
|
81
|
-
describe: 'The lowest severity logging message that should be output.',
|
|
82
|
-
choices: ['debug', 'info', 'warn', 'error'],
|
|
83
|
-
type: 'string',
|
|
84
|
-
})
|
|
85
|
-
.option('useSourceMaps', {
|
|
86
|
-
type: 'boolean',
|
|
87
|
-
default: true,
|
|
88
|
-
describe: 'Whether to generate source information in the output files by following source-map mappings found in the source files',
|
|
89
|
-
})
|
|
90
|
-
.option('useLegacyIds', {
|
|
91
|
-
type: 'boolean',
|
|
92
|
-
default: true,
|
|
93
|
-
describe: 'Whether to use the legacy id format for messages that were extracted from Angular templates.',
|
|
94
|
-
})
|
|
95
|
-
.option('d', {
|
|
96
|
-
alias: 'duplicateMessageHandling',
|
|
97
|
-
describe: 'How to handle messages with the same id but different text.',
|
|
98
|
-
choices: ['error', 'warning', 'ignore'],
|
|
99
|
-
default: 'warning',
|
|
100
|
-
type: 'string',
|
|
101
|
-
})
|
|
102
|
-
.strict()
|
|
103
|
-
.help()
|
|
104
|
-
.parse(args);
|
|
105
|
-
var fileSystem = new file_system_1.NodeJSFileSystem();
|
|
106
|
-
(0, file_system_1.setFileSystem)(fileSystem);
|
|
107
|
-
var rootPath = options.r;
|
|
108
|
-
var sourceFilePaths = glob.sync(options.s, { cwd: rootPath, nodir: true });
|
|
109
|
-
var logLevel = options.loglevel;
|
|
110
|
-
var logger = new logging_1.ConsoleLogger(logLevel ? logging_1.LogLevel[logLevel] : logging_1.LogLevel.warn);
|
|
111
|
-
var duplicateMessageHandling = options.d;
|
|
112
|
-
var formatOptions = (0, format_options_1.parseFormatOptions)(options.formatOptions);
|
|
113
|
-
var format = options.f;
|
|
114
|
-
extractTranslations({
|
|
115
|
-
rootPath: rootPath,
|
|
116
|
-
sourceFilePaths: sourceFilePaths,
|
|
117
|
-
sourceLocale: options.l,
|
|
118
|
-
format: format,
|
|
119
|
-
outputPath: options.o,
|
|
120
|
-
logger: logger,
|
|
121
|
-
useSourceMaps: options.useSourceMaps,
|
|
122
|
-
useLegacyIds: format === 'legacy-migrate' || options.useLegacyIds,
|
|
123
|
-
duplicateMessageHandling: duplicateMessageHandling,
|
|
124
|
-
formatOptions: formatOptions,
|
|
125
|
-
fileSystem: fileSystem,
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
function extractTranslations(_a) {
|
|
129
|
-
var e_1, _b;
|
|
130
|
-
var rootPath = _a.rootPath, sourceFilePaths = _a.sourceFilePaths, sourceLocale = _a.sourceLocale, format = _a.format, output = _a.outputPath, logger = _a.logger, useSourceMaps = _a.useSourceMaps, useLegacyIds = _a.useLegacyIds, duplicateMessageHandling = _a.duplicateMessageHandling, _c = _a.formatOptions, formatOptions = _c === void 0 ? {} : _c, fs = _a.fileSystem;
|
|
131
|
-
var basePath = fs.resolve(rootPath);
|
|
132
|
-
var extractor = new extraction_1.MessageExtractor(fs, logger, { basePath: basePath, useSourceMaps: useSourceMaps });
|
|
133
|
-
var messages = [];
|
|
134
|
-
try {
|
|
135
|
-
for (var sourceFilePaths_1 = (0, tslib_1.__values)(sourceFilePaths), sourceFilePaths_1_1 = sourceFilePaths_1.next(); !sourceFilePaths_1_1.done; sourceFilePaths_1_1 = sourceFilePaths_1.next()) {
|
|
136
|
-
var file = sourceFilePaths_1_1.value;
|
|
137
|
-
messages.push.apply(messages, (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(extractor.extractMessages(file)), false));
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
141
|
-
finally {
|
|
142
|
-
try {
|
|
143
|
-
if (sourceFilePaths_1_1 && !sourceFilePaths_1_1.done && (_b = sourceFilePaths_1.return)) _b.call(sourceFilePaths_1);
|
|
144
|
-
}
|
|
145
|
-
finally { if (e_1) throw e_1.error; }
|
|
146
|
-
}
|
|
147
|
-
var diagnostics = (0, duplicates_1.checkDuplicateMessages)(fs, messages, duplicateMessageHandling, basePath);
|
|
148
|
-
if (diagnostics.hasErrors) {
|
|
149
|
-
throw new Error(diagnostics.formatDiagnostics('Failed to extract messages'));
|
|
150
|
-
}
|
|
151
|
-
var outputPath = fs.resolve(rootPath, output);
|
|
152
|
-
var serializer = getSerializer(format, sourceLocale, fs.dirname(outputPath), useLegacyIds, formatOptions, fs, diagnostics);
|
|
153
|
-
var translationFile = serializer.serialize(messages);
|
|
154
|
-
fs.ensureDir(fs.dirname(outputPath));
|
|
155
|
-
fs.writeFile(outputPath, translationFile);
|
|
156
|
-
if (diagnostics.messages.length) {
|
|
157
|
-
logger.warn(diagnostics.formatDiagnostics('Messages extracted with warnings'));
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
exports.extractTranslations = extractTranslations;
|
|
161
|
-
function getSerializer(format, sourceLocale, rootPath, useLegacyIds, formatOptions, fs, diagnostics) {
|
|
162
|
-
if (formatOptions === void 0) { formatOptions = {}; }
|
|
163
|
-
switch (format) {
|
|
164
|
-
case 'xlf':
|
|
165
|
-
case 'xlif':
|
|
166
|
-
case 'xliff':
|
|
167
|
-
return new xliff1_translation_serializer_1.Xliff1TranslationSerializer(sourceLocale, rootPath, useLegacyIds, formatOptions, fs);
|
|
168
|
-
case 'xlf2':
|
|
169
|
-
case 'xlif2':
|
|
170
|
-
case 'xliff2':
|
|
171
|
-
return new xliff2_translation_serializer_1.Xliff2TranslationSerializer(sourceLocale, rootPath, useLegacyIds, formatOptions, fs);
|
|
172
|
-
case 'xmb':
|
|
173
|
-
return new xmb_translation_serializer_1.XmbTranslationSerializer(rootPath, useLegacyIds, fs);
|
|
174
|
-
case 'json':
|
|
175
|
-
return new json_translation_serializer_1.SimpleJsonTranslationSerializer(sourceLocale);
|
|
176
|
-
case 'arb':
|
|
177
|
-
return new arb_translation_serializer_1.ArbTranslationSerializer(sourceLocale, rootPath, fs);
|
|
178
|
-
case 'legacy-migrate':
|
|
179
|
-
return new legacy_message_id_migration_serializer_1.LegacyMessageIdMigrationSerializer(diagnostics);
|
|
180
|
-
}
|
|
181
|
-
throw new Error("No translation serializer can handle the provided format: " + format);
|
|
182
|
-
}
|
|
183
|
-
});
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2xvY2FsaXplL3NyYy90b29scy9zcmMvZXh0cmFjdC9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0lBQ0E7Ozs7OztPQU1HO0lBQ0gsMkVBQTBJO0lBQzFJLG1FQUF3RjtJQUV4RiwyQkFBNkI7SUFDN0IsNkJBQStCO0lBSS9CLGlGQUFvRDtJQUNwRCxpRkFBOEM7SUFFOUMsbUlBQXdGO0lBQ3hGLHFJQUFnRztJQUNoRyx5SUFBOEY7SUFDOUYseUlBQThGO0lBQzlGLG1JQUF3RjtJQUN4RiwyR0FBcUY7SUFDckYsMkpBQThHO0lBRTlHLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7UUFDM0IsT0FBTyxDQUFDLEtBQUssR0FBRywyREFBMkQsQ0FBQztRQUM1RSxJQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxJQUFNLE9BQU8sR0FDVCxLQUFLO2FBQ0EsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLEtBQUssRUFBRSxRQUFRO1lBQ2YsUUFBUSxFQUFFLDBDQUEwQztZQUNwRCxPQUFPLEVBQUUsSUFBSTtZQUNiLElBQUksRUFBRSxRQUFRO1NBQ2YsQ0FBQzthQUNELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxLQUFLLEVBQUUsTUFBTTtZQUNiLE9BQU8sRUFBRSxHQUFHO1lBQ1osUUFBUSxFQUFFLDREQUE0RDtnQkFDbEUsOEVBQThFO1lBQ2xGLElBQUksRUFBRSxRQUFRO1NBQ2YsQ0FBQzthQUNELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxLQUFLLEVBQUUsUUFBUTtZQUNmLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUNKLDJGQUEyRjtnQkFDM0YsMkNBQTJDO1lBQy9DLElBQUksRUFBRSxRQUFRO1NB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LE9BQU8sSUFBSSxxREFBd0IsQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2xFLEtBQUssTUFBTTtnQkFDVCxPQUFPLElBQUksNkRBQStCLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDM0QsS0FBSyxLQUFLO2dCQUNSLE9BQU8sSUFBSSxxREFBd0IsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2xFLEtBQUssZ0JBQWdCO2dCQUNuQixPQUFPLElBQUksMkVBQWtDLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDOUQ7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLCtEQUE2RCxNQUFRLENBQUMsQ0FBQztJQUN6RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge3NldEZpbGVTeXN0ZW0sIE5vZGVKU0ZpbGVTeXN0ZW0sIEFic29sdXRlRnNQYXRoLCBGaWxlU3lzdGVtLCBQYXRoTWFuaXB1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb21waWxlci1jbGkvc3JjL25ndHNjL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7Q29uc29sZUxvZ2dlciwgTG9nZ2VyLCBMb2dMZXZlbH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy9sb2dnaW5nJztcbmltcG9ydCB7ybVQYXJzZWRNZXNzYWdlfSBmcm9tICdAYW5ndWxhci9sb2NhbGl6ZSc7XG5pbXBvcnQgKiBhcyBnbG9iIGZyb20gJ2dsb2InO1xuaW1wb3J0ICogYXMgeWFyZ3MgZnJvbSAneWFyZ3MnO1xuXG5pbXBvcnQge0RpYWdub3N0aWNzLCBEaWFnbm9zdGljSGFuZGxpbmdTdHJhdGVneX0gZnJvbSAnLi4vZGlhZ25vc3RpY3MnO1xuXG5pbXBvcnQge2NoZWNrRHVwbGljYXRlTWVzc2FnZXN9IGZyb20gJy4vZHVwbGljYXRlcyc7XG5pbXBvcnQge01lc3NhZ2VFeHRyYWN0b3J9IGZyb20gJy4vZXh0cmFjdGlvbic7XG5pbXBvcnQge1RyYW5zbGF0aW9uU2VyaWFsaXplcn0gZnJvbSAnLi90cmFuc2xhdGlvbl9maWxlcy90cmFuc2xhdGlvbl9zZXJpYWxpemVyJztcbmltcG9ydCB7QXJiVHJhbnNsYXRpb25TZXJpYWxpemVyfSBmcm9tICcuL3RyYW5zbGF0aW9uX2ZpbGVzL2FyYl90cmFuc2xhdGlvbl9zZXJpYWxpemVyJztcbmltcG9ydCB7U2ltcGxlSnNvblRyYW5zbGF0aW9uU2VyaWFsaXplcn0gZnJvbSAnLi90cmFuc2xhdGlvbl9maWxlcy9qc29uX3RyYW5zbGF0aW9uX3NlcmlhbGl6ZXInO1xuaW1wb3J0IHtYbGlmZjFUcmFuc2xhdGlvblNlcmlhbGl6ZXJ9IGZyb20gJy4vdHJhbnNsYXRpb25fZmlsZXMveGxpZmYxX3RyYW5zbGF0aW9uX3NlcmlhbGl6ZXInO1xuaW1wb3J0IHtYbGlmZjJUcmFuc2xhdGlvblNlcmlhbGl6ZXJ9IGZyb20gJy4vdHJhbnNsYXRpb25fZmlsZXMveGxpZmYyX3RyYW5zbGF0aW9uX3NlcmlhbGl6ZXInO1xuaW1wb3J0IHtYbWJUcmFuc2xhdGlvblNlcmlhbGl6ZXJ9IGZyb20gJy4vdHJhbnNsYXRpb25fZmlsZXMveG1iX3RyYW5zbGF0aW9uX3NlcmlhbGl6ZXInO1xuaW1wb3J0IHtGb3JtYXRPcHRpb25zLCBwYXJzZUZvcm1hdE9wdGlvbnN9IGZyb20gJy4vdHJhbnNsYXRpb25fZmlsZXMvZm9ybWF0X29wdGlvbnMnO1xuaW1wb3J0IHtMZWdhY3lNZXNzYWdlSWRNaWdyYXRpb25TZXJpYWxpemVyfSBmcm9tICcuL3RyYW5zbGF0aW9uX2ZpbGVzL2xlZ2FjeV9tZXNzYWdlX2lkX21pZ3JhdGlvbl9zZXJpYWxpemVyJztcblxuaWYgKHJlcXVpcmUubWFpbiA9PT0gbW9kdWxlKSB7XG4gIHByb2Nlc3MudGl0bGUgPSAnQW5ndWxhciBMb2NhbGl6YXRpb24gTWVzc2FnZSBFeHRyYWN0b3IgKGxvY2FsaXplLWV4dHJhY3QpJztcbiAgY29uc3QgYXJncyA9IHByb2Nlc3MuYXJndi5zbGljZSgyKTtcbiAgY29uc3Qgb3B0aW9ucyA9XG4gICAgICB5YXJnc1xuICAgICAgICAgIC5vcHRpb24oJ2wnLCB7XG4gICAgICAgICAgICBhbGlhczogJ2xvY2FsZScsXG4gICAgICAgICAgICBkZXNjcmliZTogJ1RoZSBsb2NhbGUgb2YgdGhlIHNvdXJjZSBiZWluZyBwcm9jZXNzZWQnLFxuICAgICAgICAgICAgZGVmYXVsdDogJ2VuJyxcbiAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLm9wdGlvbigncicsIHtcbiAgICAgICAgICAgIGFsaWFzOiAncm9vdCcsXG4gICAgICAgICAgICBkZWZhdWx0OiAnLicsXG4gICAgICAgICAgICBkZXNjcmliZTogJ1RoZSByb290IHBhdGggZm9yIG90aGVyIHBhdGhzIHByb3ZpZGVkIGluIHRoZXNlIG9wdGlvbnMuXFxuJyArXG4gICAgICAgICAgICAgICAgJ1RoaXMgc2hvdWxkIGVpdGhlciBiZSBhYnNvbHV0ZSBvciByZWxhdGl2ZSB0byB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4nLFxuICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgfSlcbiAgICAgICAgICAub3B0aW9uKCdzJywge1xuICAgICAgICAgICAgYWxpYXM6ICdzb3VyY2UnLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICBkZXNjcmliZTpcbiAgICAgICAgICAgICAgICAnQSBnbG9iIHBhdHRlcm4gaW5kaWNhdGluZyB3aGF0IGZpbGVzIHRvIHNlYXJjaCBmb3IgdHJhbnNsYXRpb25zLCBlLmcuIGAuL2Rpc3QvKiovKi5qc2AuXFxuJyArXG4gICAgICAgICAgICAgICAgJ1RoaXMgc2hvdWxkIGJlIHJlbGF0aXZlIHRvIHRoZSByb290IHBhdGguJyxcbiAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLm9wdGlvbignZicsIHtcbiAgICAgICAgICAgIGFsaWFzOiAnZm9ybWF0JyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgY2hvaWNlczogW1xuICAgICAgICAgICAgICAneG1iJywgJ3hsZicsICd4bGlmJywgJ3hsaWZmJywgJ3hsZjInLCAneGxpZjInLCAneGxpZmYyJywgJ2pzb24nLCAnbGVnYWN5LW1pZ3JhdGUnXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgZGVzY3JpYmU6ICdUaGUgZm9ybWF0IG9mIHRoZSB0cmFuc2xhdGlvbiBmaWxlLicsXG4gICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5vcHRpb24oJ2Zvcm1hdE9wdGlvbnMnLCB7XG4gICAgICAgICAgICBkZXNjcmliZTpcbiAgICAgICAgICAgICAgICAnQWRkaXRpb25hbCBvcHRpb25zIHRvIHBhc3MgdG8gdGhlIHRyYW5zbGF0aW9uIGZpbGUgc2VyaWFsaXplciwgaW4gdGhlIGZvcm0gb2YgSlNPTiBmb3JtYXR0ZWQga2V5LXZhbHVlIHN0cmluZyBwYWlyczpcXG4nICtcbiAgICAgICAgICAgICAgICAnRm9yIGV4YW1wbGU6IGAtLWZvcm1hdE9wdGlvbnMge1wieG1sOnNwYWNlXCI6XCJwcmVzZXJ2ZVwifS5cXG4nICtcbiAgICAgICAgICAgICAgICAnVGhlIG1lYW5pbmcgb2YgdGhlIG9wdGlvbnMgaXMgc3BlY2lmaWMgdG8gdGhlIGZvcm1hdCBiZWluZyBzZXJpYWxpemVkLicsXG4gICAgICAgICAgICB0eXBlOiAnc3RyaW5nJ1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLm9wdGlvbignbycsIHtcbiAgICAgICAgICAgIGFsaWFzOiAnb3V0cHV0UGF0aCcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIGRlc2NyaWJlOlxuICAgICAgICAgICAgICAgICdBIHBhdGggdG8gd2hlcmUgdGhlIHRyYW5zbGF0aW9uIGZpbGUgd2lsbCBiZSB3cml0dGVuLiBUaGlzIHNob3VsZCBiZSByZWxhdGl2ZSB0byB0aGUgcm9vdCBwYXRoLicsXG4gICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5vcHRpb24oJ2xvZ2xldmVsJywge1xuICAgICAgICAgICAgZGVzY3JpYmU6ICdUaGUgbG93ZXN0IHNldmVyaXR5IGxvZ2dpbmcgbWVzc2FnZSB0aGF0IHNob3VsZCBiZSBvdXRwdXQuJyxcbiAgICAgICAgICAgIGNob2ljZXM6IFsnZGVidWcnLCAnaW5mbycsICd3YXJuJywgJ2Vycm9yJ10sXG4gICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5vcHRpb24oJ3VzZVNvdXJjZU1hcHMnLCB7XG4gICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgICBkZWZhdWx0OiB0cnVlLFxuICAgICAgICAgICAgZGVzY3JpYmU6XG4gICAgICAgICAgICAgICAgJ1doZXRoZXIgdG8gZ2VuZXJhdGUgc291cmNlIGluZm9ybWF0aW9uIGluIHRoZSBvdXRwdXQgZmlsZXMgYnkgZm9sbG93aW5nIHNvdXJjZS1tYXAgbWFwcGluZ3MgZm91bmQgaW4gdGhlIHNvdXJjZSBmaWxlcycsXG4gICAgICAgICAgfSlcbiAgICAgICAgICAub3B0aW9uKCd1c2VMZWdhY3lJZHMnLCB7XG4gICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgICBkZWZhdWx0OiB0cnVlLFxuICAgICAgICAgICAgZGVzY3JpYmU6XG4gICAgICAgICAgICAgICAgJ1doZXRoZXIgdG8gdXNlIHRoZSBsZWdhY3kgaWQgZm9ybWF0IGZvciBtZXNzYWdlcyB0aGF0IHdlcmUgZXh0cmFjdGVkIGZyb20gQW5ndWxhciB0ZW1wbGF0ZXMuJyxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5vcHRpb24oJ2QnLCB7XG4gICAgICAgICAgICBhbGlhczogJ2R1cGxpY2F0ZU1lc3NhZ2VIYW5kbGluZycsXG4gICAgICAgICAgICBkZXNjcmliZTogJ0hvdyB0byBoYW5kbGUgbWVzc2FnZXMgd2l0aCB0aGUgc2FtZSBpZCBidXQgZGlmZmVyZW50IHRleHQuJyxcbiAgICAgICAgICAgIGNob2ljZXM6IFsnZXJyb3InLCAnd2FybmluZycsICdpZ25vcmUnXSxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICd3YXJuaW5nJyxcbiAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnN0cmljdCgpXG4gICAgICAgICAgLmhlbHAoKVxuICAgICAgICAgIC5wYXJzZShhcmdzKTtcblxuICBjb25zdCBmaWxlU3lzdGVtID0gbmV3IE5vZGVKU0ZpbGVTeXN0ZW0oKTtcbiAgc2V0RmlsZVN5c3RlbShmaWxlU3lzdGVtKTtcblxuICBjb25zdCByb290UGF0aCA9IG9wdGlvbnMucjtcbiAgY29uc3Qgc291cmNlRmlsZVBhdGhzID0gZ2xvYi5zeW5jKG9wdGlvbnMucywge2N3ZDogcm9vdFBhdGgsIG5vZGlyOiB0cnVlfSk7XG4gIGNvbnN0IGxvZ0xldmVsID0gb3B0aW9ucy5sb2dsZXZlbCBhcyAoa2V5b2YgdHlwZW9mIExvZ0xldmVsKSB8IHVuZGVmaW5lZDtcbiAgY29uc3QgbG9nZ2VyID0gbmV3IENvbnNvbGVMb2dnZXIobG9nTGV2ZWwgPyBMb2dMZXZlbFtsb2dMZXZlbF0gOiBMb2dMZXZlbC53YXJuKTtcbiAgY29uc3QgZHVwbGljYXRlTWVzc2FnZUhhbmRsaW5nID0gb3B0aW9ucy5kIGFzIERpYWdub3N0aWNIYW5kbGluZ1N0cmF0ZWd5O1xuICBjb25zdCBmb3JtYXRPcHRpb25zID0gcGFyc2VGb3JtYXRPcHRpb25zKG9wdGlvbnMuZm9ybWF0T3B0aW9ucyk7XG4gIGNvbnN0IGZvcm1hdCA9IG9wdGlvbnMuZjtcblxuICBleHRyYWN0VHJhbnNsYXRpb25zKHtcbiAgICByb290UGF0aCxcbiAgICBzb3VyY2VGaWxlUGF0aHMsXG4gICAgc291cmNlTG9jYWxlOiBvcHRpb25zLmwsXG4gICAgZm9ybWF0LFxuICAgIG91dHB1dFBhdGg6IG9wdGlvbnMubyxcbiAgICBsb2dnZXIsXG4gICAgdXNlU291cmNlTWFwczogb3B0aW9ucy51c2VTb3VyY2VNYXBzLFxuICAgIHVzZUxlZ2FjeUlkczogZm9ybWF0ID09PSAnbGVnYWN5LW1pZ3JhdGUnIHx8IG9wdGlvbnMudXNlTGVnYWN5SWRzLFxuICAgIGR1cGxpY2F0ZU1lc3NhZ2VIYW5kbGluZyxcbiAgICBmb3JtYXRPcHRpb25zLFxuICAgIGZpbGVTeXN0ZW0sXG4gIH0pO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4dHJhY3RUcmFuc2xhdGlvbnNPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBsb2NhbGUgb2YgdGhlIHNvdXJjZSBiZWluZyBwcm9jZXNzZWQuXG4gICAqL1xuICBzb3VyY2VMb2NhbGU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBiYXNlIHBhdGggZm9yIG90aGVyIHBhdGhzIHByb3ZpZGVkIGluIHRoZXNlIG9wdGlvbnMuXG4gICAqIFRoaXMgc2hvdWxkIGVpdGhlciBiZSBhYnNvbHV0ZSBvciByZWxhdGl2ZSB0byB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS5cbiAgICovXG4gIHJvb3RQYXRoOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBwYXRocyB0byBmaWxlcyB0byBzZWFyY2ggZm9yIHRyYW5zbGF0aW9ucy4gVGhlc2Ugc2hvdWxkIGJlIHJlbGF0aXZlIHRvIHRoZVxuICAgKiByb290UGF0aC5cbiAgICovXG4gIHNvdXJjZUZpbGVQYXRoczogc3RyaW5nW107XG4gIC8qKlxuICAgKiBUaGUgZm9ybWF0IG9mIHRoZSB0cmFuc2xhdGlvbiBmaWxlLlxuICAgKi9cbiAgZm9ybWF0OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIHBhdGggdG8gd2hlcmUgdGhlIHRyYW5zbGF0aW9uIGZpbGUgd2lsbCBiZSB3cml0dGVuLiBUaGlzIHNob3VsZCBiZSByZWxhdGl2ZSB0byB0aGUgcm9vdFBhdGguXG4gICAqL1xuICBvdXRwdXRQYXRoOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbG9nZ2VyIHRvIHVzZSBmb3IgZGlhZ25vc3RpYyBtZXNzYWdlcy5cbiAgICovXG4gIGxvZ2dlcjogTG9nZ2VyO1xuICAvKipcbiAgICogV2hldGhlciB0byBnZW5lcmF0ZSBzb3VyY2UgaW5mb3JtYXRpb24gaW4gdGhlIG91dHB1dCBmaWxlcyBieSBmb2xsb3dpbmcgc291cmNlLW1hcCBtYXBwaW5nc1xuICAgKiBmb3VuZCBpbiB0aGUgc291cmNlIGZpbGUuXG4gICAqL1xuICB1c2VTb3VyY2VNYXBzOiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciB0byB1c2UgdGhlIGxlZ2FjeSBpZCBmb3JtYXQgZm9yIG1lc3NhZ2VzIHRoYXQgd2VyZSBleHRyYWN0ZWQgZnJvbSBBbmd1bGFyIHRlbXBsYXRlc1xuICAgKi9cbiAgdXNlTGVnYWN5SWRzOiBib29sZWFuO1xuICAvKipcbiAgICogSG93IHRvIGhhbmRsZSBtZXNzYWdlcyB3aXRoIHRoZSBzYW1lIGlkIGJ1dCBub3QgdGhlIHNhbWUgdGV4dC5cbiAgICovXG4gIGR1cGxpY2F0ZU1lc3NhZ2VIYW5kbGluZzogRGlhZ25vc3RpY0hhbmRsaW5nU3RyYXRlZ3k7XG4gIC8qKlxuICAgKiBBIGNvbGxlY3Rpb24gb2YgZm9ybWF0dGluZyBvcHRpb25zIHRvIHBhc3MgdG8gdGhlIHRyYW5zbGF0aW9uIGZpbGUgc2VyaWFsaXplci5cbiAgICovXG4gIGZvcm1hdE9wdGlvbnM/OiBGb3JtYXRPcHRpb25zO1xuICAvKipcbiAgICogVGhlIGZpbGUtc3lzdGVtIGFic3RyYWN0aW9uIHRvIHVzZS5cbiAgICovXG4gIGZpbGVTeXN0ZW06IEZpbGVTeXN0ZW07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0VHJhbnNsYXRpb25zKHtcbiAgcm9vdFBhdGgsXG4gIHNvdXJjZUZpbGVQYXRocyxcbiAgc291cmNlTG9jYWxlLFxuICBmb3JtYXQsXG4gIG91dHB1dFBhdGg6IG91dHB1dCxcbiAgbG9nZ2VyLFxuICB1c2VTb3VyY2VNYXBzLFxuICB1c2VMZWdhY3lJZHMsXG4gIGR1cGxpY2F0ZU1lc3NhZ2VIYW5kbGluZyxcbiAgZm9ybWF0T3B0aW9ucyA9IHt9LFxuICBmaWxlU3lzdGVtOiBmcyxcbn06IEV4dHJhY3RUcmFuc2xhdGlvbnNPcHRpb25zKSB7XG4gIGNvbnN0IGJhc2VQYXRoID0gZnMucmVzb2x2ZShyb290UGF0aCk7XG4gIGNvbnN0IGV4dHJhY3RvciA9IG5ldyBNZXNzYWdlRXh0cmFjdG9yKGZzLCBsb2dnZXIsIHtiYXNlUGF0aCwgdXNlU291cmNlTWFwc30pO1xuXG4gIGNvbnN0IG1lc3NhZ2VzOiDJtVBhcnNlZE1lc3NhZ2VbXSA9IFtdO1xuICBmb3IgKGNvbnN0IGZpbGUgb2Ygc291cmNlRmlsZVBhdGhzKSB7XG4gICAgbWVzc2FnZXMucHVzaCguLi5leHRyYWN0b3IuZXh0cmFjdE1lc3NhZ2VzKGZpbGUpKTtcbiAgfVxuXG4gIGNvbnN0IGRpYWdub3N0aWNzID0gY2hlY2tEdXBsaWNhdGVNZXNzYWdlcyhmcywgbWVzc2FnZXMsIGR1cGxpY2F0ZU1lc3NhZ2VIYW5kbGluZywgYmFzZVBhdGgpO1xuICBpZiAoZGlhZ25vc3RpY3MuaGFzRXJyb3JzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGRpYWdub3N0aWNzLmZvcm1hdERpYWdub3N0aWNzKCdGYWlsZWQgdG8gZXh0cmFjdCBtZXNzYWdlcycpKTtcbiAgfVxuXG4gIGNvbnN0IG91dHB1dFBhdGggPSBmcy5yZXNvbHZlKHJvb3RQYXRoLCBvdXRwdXQpO1xuICBjb25zdCBzZXJpYWxpemVyID0gZ2V0U2VyaWFsaXplcihcbiAgICAgIGZvcm1hdCwgc291cmNlTG9jYWxlLCBmcy5kaXJuYW1lKG91dHB1dFBhdGgpLCB1c2VMZWdhY3lJZHMsIGZvcm1hdE9wdGlvbnMsIGZzLCBkaWFnbm9zdGljcyk7XG4gIGNvbnN0IHRyYW5zbGF0aW9uRmlsZSA9IHNlcmlhbGl6ZXIuc2VyaWFsaXplKG1lc3NhZ2VzKTtcbiAgZnMuZW5zdXJlRGlyKGZzLmRpcm5hbWUob3V0cHV0UGF0aCkpO1xuICBmcy53cml0ZUZpbGUob3V0cHV0UGF0aCwgdHJhbnNsYXRpb25GaWxlKTtcblxuICBpZiAoZGlhZ25vc3RpY3MubWVzc2FnZXMubGVuZ3RoKSB7XG4gICAgbG9nZ2VyLndhcm4oZGlhZ25vc3RpY3MuZm9ybWF0RGlhZ25vc3RpY3MoJ01lc3NhZ2VzIGV4dHJhY3RlZCB3aXRoIHdhcm5pbmdzJykpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFNlcmlhbGl6ZXIoXG4gICAgZm9ybWF0OiBzdHJpbmcsIHNvdXJjZUxvY2FsZTogc3RyaW5nLCByb290UGF0aDogQWJzb2x1dGVGc1BhdGgsIHVzZUxlZ2FjeUlkczogYm9vbGVhbixcbiAgICBmb3JtYXRPcHRpb25zOiBGb3JtYXRPcHRpb25zID0ge30sIGZzOiBQYXRoTWFuaXB1bGF0aW9uLFxuICAgIGRpYWdub3N0aWNzOiBEaWFnbm9zdGljcyk6IFRyYW5zbGF0aW9uU2VyaWFsaXplciB7XG4gIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgY2FzZSAneGxmJzpcbiAgICBjYXNlICd4bGlmJzpcbiAgICBjYXNlICd4bGlmZic6XG4gICAgICByZXR1cm4gbmV3IFhsaWZmMVRyYW5zbGF0aW9uU2VyaWFsaXplcihcbiAgICAgICAgICBzb3VyY2VMb2NhbGUsIHJvb3RQYXRoLCB1c2VMZWdhY3lJZHMsIGZvcm1hdE9wdGlvbnMsIGZzKTtcbiAgICBjYXNlICd4bGYyJzpcbiAgICBjYXNlICd4bGlmMic6XG4gICAgY2FzZSAneGxpZmYyJzpcbiAgICAgIHJldHVybiBuZXcgWGxpZmYyVHJhbnNsYXRpb25TZXJpYWxpemVyKFxuICAgICAgICAgIHNvdXJjZUxvY2FsZSwgcm9vdFBhdGgsIHVzZUxlZ2FjeUlkcywgZm9ybWF0T3B0aW9ucywgZnMpO1xuICAgIGNhc2UgJ3htYic6XG4gICAgICByZXR1cm4gbmV3IFhtYlRyYW5zbGF0aW9uU2VyaWFsaXplcihyb290UGF0aCwgdXNlTGVnYWN5SWRzLCBmcyk7XG4gICAgY2FzZSAnanNvbic6XG4gICAgICByZXR1cm4gbmV3IFNpbXBsZUpzb25UcmFuc2xhdGlvblNlcmlhbGl6ZXIoc291cmNlTG9jYWxlKTtcbiAgICBjYXNlICdhcmInOlxuICAgICAgcmV0dXJuIG5ldyBBcmJUcmFuc2xhdGlvblNlcmlhbGl6ZXIoc291cmNlTG9jYWxlLCByb290UGF0aCwgZnMpO1xuICAgIGNhc2UgJ2xlZ2FjeS1taWdyYXRlJzpcbiAgICAgIHJldHVybiBuZXcgTGVnYWN5TWVzc2FnZUlkTWlncmF0aW9uU2VyaWFsaXplcihkaWFnbm9zdGljcyk7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBObyB0cmFuc2xhdGlvbiBzZXJpYWxpemVyIGNhbiBoYW5kbGUgdGhlIHByb3ZpZGVkIGZvcm1hdDogJHtmb3JtYXR9YCk7XG59XG4iXX0=
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
(function (factory) {
|
|
2
|
-
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
-
var v = factory(require, exports);
|
|
4
|
-
if (v !== undefined) module.exports = v;
|
|
5
|
-
}
|
|
6
|
-
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define("@angular/localize/src/tools/src/extract/source_files/es2015_extract_plugin", ["require", "exports", "tslib", "@angular/localize", "@angular/localize/src/tools/src/source_file_utils"], factory);
|
|
8
|
-
}
|
|
9
|
-
})(function (require, exports) {
|
|
10
|
-
"use strict";
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.makeEs2015ExtractPlugin = void 0;
|
|
13
|
-
var tslib_1 = require("tslib");
|
|
14
|
-
var localize_1 = require("@angular/localize");
|
|
15
|
-
var source_file_utils_1 = require("@angular/localize/src/tools/src/source_file_utils");
|
|
16
|
-
function makeEs2015ExtractPlugin(fs, messages, localizeName) {
|
|
17
|
-
if (localizeName === void 0) { localizeName = '$localize'; }
|
|
18
|
-
return {
|
|
19
|
-
visitor: {
|
|
20
|
-
TaggedTemplateExpression: function (path) {
|
|
21
|
-
var tag = path.get('tag');
|
|
22
|
-
if ((0, source_file_utils_1.isNamedIdentifier)(tag, localizeName) && (0, source_file_utils_1.isGlobalIdentifier)(tag)) {
|
|
23
|
-
var quasiPath = path.get('quasi');
|
|
24
|
-
var _a = (0, tslib_1.__read)((0, source_file_utils_1.unwrapMessagePartsFromTemplateLiteral)(quasiPath.get('quasis'), fs), 2), messageParts = _a[0], messagePartLocations = _a[1];
|
|
25
|
-
var _b = (0, tslib_1.__read)((0, source_file_utils_1.unwrapExpressionsFromTemplateLiteral)(quasiPath, fs), 2), expressions = _b[0], expressionLocations = _b[1];
|
|
26
|
-
var location = (0, source_file_utils_1.getLocation)(fs, quasiPath);
|
|
27
|
-
var message = (0, localize_1.ɵparseMessage)(messageParts, expressions, location, messagePartLocations, expressionLocations);
|
|
28
|
-
messages.push(message);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
exports.makeEs2015ExtractPlugin = makeEs2015ExtractPlugin;
|
|
35
|
-
});
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMyMDE1X2V4dHJhY3RfcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbG9jYWxpemUvc3JjL3Rvb2xzL3NyYy9leHRyYWN0L3NvdXJjZV9maWxlcy9lczIwMTVfZXh0cmFjdF9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztJQVFBLDhDQUFnRTtJQUloRSx1RkFBd0s7SUFFeEssU0FBZ0IsdUJBQXVCLENBQ25DLEVBQW9CLEVBQUUsUUFBMEIsRUFBRSxZQUEwQjtRQUExQiw2QkFBQSxFQUFBLDBCQUEwQjtRQUM5RSxPQUFPO1lBQ0wsT0FBTyxFQUFFO2dCQUNQLHdCQUF3QixFQUF4QixVQUF5QixJQUF3QztvQkFDL0QsSUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDNUIsSUFBSSxJQUFBLHFDQUFpQixFQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsSUFBSSxJQUFBLHNDQUFrQixFQUFDLEdBQUcsQ0FBQyxFQUFFO3dCQUNuRSxJQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUM5QixJQUFBLEtBQUEsb0JBQ0YsSUFBQSx5REFBcUMsRUFBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFBLEVBRC9ELFlBQVksUUFBQSxFQUFFLG9CQUFvQixRQUM2QixDQUFDO3dCQUNqRSxJQUFBLEtBQUEsb0JBQ0YsSUFBQSx3REFBb0MsRUFBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUEsRUFEaEQsV0FBVyxRQUFBLEVBQUUsbUJBQW1CLFFBQ2dCLENBQUM7d0JBQ3hELElBQU0sUUFBUSxHQUFHLElBQUEsK0JBQVcsRUFBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7d0JBQzVDLElBQU0sT0FBTyxHQUFHLElBQUEsd0JBQWEsRUFDekIsWUFBWSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLENBQUMsQ0FBQzt3QkFDcEYsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDeEI7Z0JBQ0gsQ0FBQzthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFwQkQsMERBb0JDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge1BhdGhNYW5pcHVsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvZmlsZV9zeXN0ZW0nO1xuaW1wb3J0IHvJtVBhcnNlZE1lc3NhZ2UsIMm1cGFyc2VNZXNzYWdlfSBmcm9tICdAYW5ndWxhci9sb2NhbGl6ZSc7XG5pbXBvcnQge05vZGVQYXRoLCBQbHVnaW5PYmp9IGZyb20gJ0BiYWJlbC9jb3JlJztcbmltcG9ydCB7VGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9ufSBmcm9tICdAYmFiZWwvdHlwZXMnO1xuXG5pbXBvcnQge2dldExvY2F0aW9uLCBpc0dsb2JhbElkZW50aWZpZXIsIGlzTmFtZWRJZGVudGlmaWVyLCB1bndyYXBFeHByZXNzaW9uc0Zyb21UZW1wbGF0ZUxpdGVyYWwsIHVud3JhcE1lc3NhZ2VQYXJ0c0Zyb21UZW1wbGF0ZUxpdGVyYWx9IGZyb20gJy4uLy4uL3NvdXJjZV9maWxlX3V0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VFczIwMTVFeHRyYWN0UGx1Z2luKFxuICAgIGZzOiBQYXRoTWFuaXB1bGF0aW9uLCBtZXNzYWdlczogybVQYXJzZWRNZXNzYWdlW10sIGxvY2FsaXplTmFtZSA9ICckbG9jYWxpemUnKTogUGx1Z2luT2JqIHtcbiAgcmV0dXJuIHtcbiAgICB2aXNpdG9yOiB7XG4gICAgICBUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb24ocGF0aDogTm9kZVBhdGg8VGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uPikge1xuICAgICAgICBjb25zdCB0YWcgPSBwYXRoLmdldCgndGFnJyk7XG4gICAgICAgIGlmIChpc05hbWVkSWRlbnRpZmllcih0YWcsIGxvY2FsaXplTmFtZSkgJiYgaXNHbG9iYWxJZGVudGlmaWVyKHRhZykpIHtcbiAgICAgICAgICBjb25zdCBxdWFzaVBhdGggPSBwYXRoLmdldCgncXVhc2knKTtcbiAgICAgICAgICBjb25zdCBbbWVzc2FnZVBhcnRzLCBtZXNzYWdlUGFydExvY2F0aW9uc10gPVxuICAgICAgICAgICAgICB1bndyYXBNZXNzYWdlUGFydHNGcm9tVGVtcGxhdGVMaXRlcmFsKHF1YXNpUGF0aC5nZXQoJ3F1YXNpcycpLCBmcyk7XG4gICAgICAgICAgY29uc3QgW2V4cHJlc3Npb25zLCBleHByZXNzaW9uTG9jYXRpb25zXSA9XG4gICAgICAgICAgICAgIHVud3JhcEV4cHJlc3Npb25zRnJvbVRlbXBsYXRlTGl0ZXJhbChxdWFzaVBhdGgsIGZzKTtcbiAgICAgICAgICBjb25zdCBsb2NhdGlvbiA9IGdldExvY2F0aW9uKGZzLCBxdWFzaVBhdGgpO1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSDJtXBhcnNlTWVzc2FnZShcbiAgICAgICAgICAgICAgbWVzc2FnZVBhcnRzLCBleHByZXNzaW9ucywgbG9jYXRpb24sIG1lc3NhZ2VQYXJ0TG9jYXRpb25zLCBleHByZXNzaW9uTG9jYXRpb25zKTtcbiAgICAgICAgICBtZXNzYWdlcy5wdXNoKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuIl19
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
(function (factory) {
|
|
2
|
-
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
-
var v = factory(require, exports);
|
|
4
|
-
if (v !== undefined) module.exports = v;
|
|
5
|
-
}
|
|
6
|
-
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define("@angular/localize/src/tools/src/extract/source_files/es5_extract_plugin", ["require", "exports", "tslib", "@angular/localize", "@angular/localize/src/tools/src/source_file_utils"], factory);
|
|
8
|
-
}
|
|
9
|
-
})(function (require, exports) {
|
|
10
|
-
"use strict";
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.makeEs5ExtractPlugin = void 0;
|
|
13
|
-
var tslib_1 = require("tslib");
|
|
14
|
-
var localize_1 = require("@angular/localize");
|
|
15
|
-
var source_file_utils_1 = require("@angular/localize/src/tools/src/source_file_utils");
|
|
16
|
-
function makeEs5ExtractPlugin(fs, messages, localizeName) {
|
|
17
|
-
if (localizeName === void 0) { localizeName = '$localize'; }
|
|
18
|
-
return {
|
|
19
|
-
visitor: {
|
|
20
|
-
CallExpression: function (callPath) {
|
|
21
|
-
try {
|
|
22
|
-
var calleePath = callPath.get('callee');
|
|
23
|
-
if ((0, source_file_utils_1.isNamedIdentifier)(calleePath, localizeName) && (0, source_file_utils_1.isGlobalIdentifier)(calleePath)) {
|
|
24
|
-
var _a = (0, tslib_1.__read)((0, source_file_utils_1.unwrapMessagePartsFromLocalizeCall)(callPath, fs), 2), messageParts = _a[0], messagePartLocations = _a[1];
|
|
25
|
-
var _b = (0, tslib_1.__read)((0, source_file_utils_1.unwrapSubstitutionsFromLocalizeCall)(callPath, fs), 2), expressions = _b[0], expressionLocations = _b[1];
|
|
26
|
-
var _c = (0, tslib_1.__read)(callPath.get('arguments'), 2), messagePartsArg = _c[0], expressionsArg = _c[1];
|
|
27
|
-
var location = (0, source_file_utils_1.getLocation)(fs, messagePartsArg, expressionsArg);
|
|
28
|
-
var message = (0, localize_1.ɵparseMessage)(messageParts, expressions, location, messagePartLocations, expressionLocations);
|
|
29
|
-
messages.push(message);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
catch (e) {
|
|
33
|
-
if ((0, source_file_utils_1.isBabelParseError)(e)) {
|
|
34
|
-
// If we get a BabelParseError here then something went wrong with Babel itself
|
|
35
|
-
// since there must be something wrong with the structure of the AST generated
|
|
36
|
-
// by Babel parsing a TaggedTemplateExpression.
|
|
37
|
-
throw (0, source_file_utils_1.buildCodeFrameError)(fs, callPath, e);
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
throw e;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
exports.makeEs5ExtractPlugin = makeEs5ExtractPlugin;
|
|
48
|
-
});
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXM1X2V4dHJhY3RfcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbG9jYWxpemUvc3JjL3Rvb2xzL3NyYy9leHRyYWN0L3NvdXJjZV9maWxlcy9lczVfZXh0cmFjdF9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztJQVFBLDhDQUFnRTtJQUloRSx1RkFBNE07SUFFNU0sU0FBZ0Isb0JBQW9CLENBQ2hDLEVBQW9CLEVBQUUsUUFBMEIsRUFBRSxZQUEwQjtRQUExQiw2QkFBQSxFQUFBLDBCQUEwQjtRQUM5RSxPQUFPO1lBQ0wsT0FBTyxFQUFFO2dCQUNQLGNBQWMsRUFBZCxVQUFlLFFBQWtDO29CQUMvQyxJQUFJO3dCQUNGLElBQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7d0JBQzFDLElBQUksSUFBQSxxQ0FBaUIsRUFBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLElBQUksSUFBQSxzQ0FBa0IsRUFBQyxVQUFVLENBQUMsRUFBRTs0QkFDM0UsSUFBQSxLQUFBLG9CQUNGLElBQUEsc0RBQWtDLEVBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFBLEVBRDdDLFlBQVksUUFBQSxFQUFFLG9CQUFvQixRQUNXLENBQUM7NEJBQy9DLElBQUEsS0FBQSxvQkFDRixJQUFBLHVEQUFtQyxFQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBQSxFQUQ5QyxXQUFXLFFBQUEsRUFBRSxtQkFBbUIsUUFDYyxDQUFDOzRCQUNoRCxJQUFBLEtBQUEsb0JBQW9DLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUEsRUFBNUQsZUFBZSxRQUFBLEVBQUUsY0FBYyxRQUE2QixDQUFDOzRCQUNwRSxJQUFNLFFBQVEsR0FBRyxJQUFBLCtCQUFXLEVBQUMsRUFBRSxFQUFFLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQzs0QkFDbEUsSUFBTSxPQUFPLEdBQUcsSUFBQSx3QkFBYSxFQUN6QixZQUFZLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDOzRCQUNwRixRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3lCQUN4QjtxQkFDRjtvQkFBQyxPQUFPLENBQUMsRUFBRTt3QkFDVixJQUFJLElBQUEscUNBQWlCLEVBQUMsQ0FBQyxDQUFDLEVBQUU7NEJBQ3hCLCtFQUErRTs0QkFDL0UsOEVBQThFOzRCQUM5RSwrQ0FBK0M7NEJBQy9DLE1BQU0sSUFBQSx1Q0FBbUIsRUFBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO3lCQUM1Qzs2QkFBTTs0QkFDTCxNQUFNLENBQUMsQ0FBQzt5QkFDVDtxQkFDRjtnQkFDSCxDQUFDO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQS9CRCxvREErQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7UGF0aE1hbmlwdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy9maWxlX3N5c3RlbSc7XG5pbXBvcnQge8m1UGFyc2VkTWVzc2FnZSwgybVwYXJzZU1lc3NhZ2V9IGZyb20gJ0Bhbmd1bGFyL2xvY2FsaXplJztcbmltcG9ydCB7Tm9kZVBhdGgsIFBsdWdpbk9ian0gZnJvbSAnQGJhYmVsL2NvcmUnO1xuaW1wb3J0IHtDYWxsRXhwcmVzc2lvbn0gZnJvbSAnQGJhYmVsL3R5cGVzJztcblxuaW1wb3J0IHtidWlsZENvZGVGcmFtZUVycm9yLCBnZXRMb2NhdGlvbiwgaXNCYWJlbFBhcnNlRXJyb3IsIGlzR2xvYmFsSWRlbnRpZmllciwgaXNOYW1lZElkZW50aWZpZXIsIHVud3JhcE1lc3NhZ2VQYXJ0c0Zyb21Mb2NhbGl6ZUNhbGwsIHVud3JhcFN1YnN0aXR1dGlvbnNGcm9tTG9jYWxpemVDYWxsfSBmcm9tICcuLi8uLi9zb3VyY2VfZmlsZV91dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBtYWtlRXM1RXh0cmFjdFBsdWdpbihcbiAgICBmczogUGF0aE1hbmlwdWxhdGlvbiwgbWVzc2FnZXM6IMm1UGFyc2VkTWVzc2FnZVtdLCBsb2NhbGl6ZU5hbWUgPSAnJGxvY2FsaXplJyk6IFBsdWdpbk9iaiB7XG4gIHJldHVybiB7XG4gICAgdmlzaXRvcjoge1xuICAgICAgQ2FsbEV4cHJlc3Npb24oY2FsbFBhdGg6IE5vZGVQYXRoPENhbGxFeHByZXNzaW9uPikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGNhbGxlZVBhdGggPSBjYWxsUGF0aC5nZXQoJ2NhbGxlZScpO1xuICAgICAgICAgIGlmIChpc05hbWVkSWRlbnRpZmllcihjYWxsZWVQYXRoLCBsb2NhbGl6ZU5hbWUpICYmIGlzR2xvYmFsSWRlbnRpZmllcihjYWxsZWVQYXRoKSkge1xuICAgICAgICAgICAgY29uc3QgW21lc3NhZ2VQYXJ0cywgbWVzc2FnZVBhcnRMb2NhdGlvbnNdID1cbiAgICAgICAgICAgICAgICB1bndyYXBNZXNzYWdlUGFydHNGcm9tTG9jYWxpemVDYWxsKGNhbGxQYXRoLCBmcyk7XG4gICAgICAgICAgICBjb25zdCBbZXhwcmVzc2lvbnMsIGV4cHJlc3Npb25Mb2NhdGlvbnNdID1cbiAgICAgICAgICAgICAgICB1bndyYXBTdWJzdGl0dXRpb25zRnJvbUxvY2FsaXplQ2FsbChjYWxsUGF0aCwgZnMpO1xuICAgICAgICAgICAgY29uc3QgW21lc3NhZ2VQYXJ0c0FyZywgZXhwcmVzc2lvbnNBcmddID0gY2FsbFBhdGguZ2V0KCdhcmd1bWVudHMnKTtcbiAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uID0gZ2V0TG9jYXRpb24oZnMsIG1lc3NhZ2VQYXJ0c0FyZywgZXhwcmVzc2lvbnNBcmcpO1xuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IMm1cGFyc2VNZXNzYWdlKFxuICAgICAgICAgICAgICAgIG1lc3NhZ2VQYXJ0cywgZXhwcmVzc2lvbnMsIGxvY2F0aW9uLCBtZXNzYWdlUGFydExvY2F0aW9ucywgZXhwcmVzc2lvbkxvY2F0aW9ucyk7XG4gICAgICAgICAgICBtZXNzYWdlcy5wdXNoKG1lc3NhZ2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChpc0JhYmVsUGFyc2VFcnJvcihlKSkge1xuICAgICAgICAgICAgLy8gSWYgd2UgZ2V0IGEgQmFiZWxQYXJzZUVycm9yIGhlcmUgdGhlbiBzb21ldGhpbmcgd2VudCB3cm9uZyB3aXRoIEJhYmVsIGl0c2VsZlxuICAgICAgICAgICAgLy8gc2luY2UgdGhlcmUgbXVzdCBiZSBzb21ldGhpbmcgd3Jvbmcgd2l0aCB0aGUgc3RydWN0dXJlIG9mIHRoZSBBU1QgZ2VuZXJhdGVkXG4gICAgICAgICAgICAvLyBieSBCYWJlbCBwYXJzaW5nIGEgVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uLlxuICAgICAgICAgICAgdGhyb3cgYnVpbGRDb2RlRnJhbWVFcnJvcihmcywgY2FsbFBhdGgsIGUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cbiJdfQ==
|