@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.
Files changed (138) hide show
  1. package/{esm2015/index.js → esm2020/index.mjs} +0 -0
  2. package/esm2020/init/index.mjs +12 -0
  3. package/{esm2015/localize.js → esm2020/localize.mjs} +0 -0
  4. package/{esm2015/private.js → esm2020/private.mjs} +0 -0
  5. package/{esm2015/src/localize/index.js → esm2020/src/localize/index.mjs} +0 -0
  6. package/{esm2015/src/localize/src/global.js → esm2020/src/localize/src/global.mjs} +0 -0
  7. package/{esm2015/src/localize/src/localize.js → esm2020/src/localize/src/localize.mjs} +2 -2
  8. package/{esm2015/src/translate.js → esm2020/src/translate.mjs} +0 -0
  9. package/{esm2015/src/utils/index.js → esm2020/src/utils/index.mjs} +0 -0
  10. package/{esm2015/src/utils/src/constants.js → esm2020/src/utils/src/constants.mjs} +0 -0
  11. package/esm2020/src/utils/src/messages.mjs +159 -0
  12. package/{esm2015/src/utils/src/translations.js → esm2020/src/utils/src/translations.mjs} +0 -0
  13. package/fesm2015/{init.js → init.mjs} +3 -3
  14. package/fesm2015/init.mjs.map +1 -0
  15. package/fesm2015/{localize.js → localize.mjs} +7 -7
  16. package/fesm2015/localize.mjs.map +1 -0
  17. package/fesm2020/init.mjs +204 -0
  18. package/fesm2020/init.mjs.map +1 -0
  19. package/fesm2020/localize.mjs +449 -0
  20. package/fesm2020/localize.mjs.map +1 -0
  21. package/init/index.d.ts +1 -1
  22. package/init/package.json +5 -5
  23. package/package.json +43 -18
  24. package/schematics/ng-add/index.js +1 -1
  25. package/src/localize/src/localize.d.ts +1 -1
  26. package/src/utils/src/messages.d.ts +1 -1
  27. package/tools/README.md +4 -0
  28. package/tools/bundles/index.js +1929 -0
  29. package/tools/bundles/index.js.map +6 -0
  30. package/tools/bundles/src/extract/cli.js +1278 -0
  31. package/tools/bundles/src/extract/cli.js.map +6 -0
  32. package/tools/bundles/src/migrate/cli.js +77 -0
  33. package/tools/bundles/src/migrate/cli.js.map +6 -0
  34. package/tools/bundles/src/translate/cli.js +1340 -0
  35. package/tools/bundles/src/translate/cli.js.map +6 -0
  36. package/tools/bundles_metadata.json +1 -0
  37. package/tools/index.d.ts +26 -0
  38. package/tools/src/babel_core.d.ts +38 -0
  39. package/{src/tools → tools}/src/diagnostics.d.ts +1 -1
  40. package/tools/src/extract/cli.d.ts +10 -0
  41. package/{src/tools → tools}/src/extract/duplicates.d.ts +2 -2
  42. package/{src/tools → tools}/src/extract/extraction.d.ts +2 -3
  43. package/{src/tools/src/extract/main.d.ts → tools/src/extract/index.d.ts} +2 -4
  44. package/{src/tools → tools}/src/extract/source_files/es2015_extract_plugin.d.ts +3 -3
  45. package/{src/tools → tools}/src/extract/source_files/es5_extract_plugin.d.ts +3 -3
  46. package/{src/tools → tools}/src/extract/translation_files/arb_translation_serializer.d.ts +2 -2
  47. package/{src/tools → tools}/src/extract/translation_files/format_options.d.ts +1 -1
  48. package/{src/tools → tools}/src/extract/translation_files/icu_parsing.d.ts +1 -1
  49. package/{src/tools → tools}/src/extract/translation_files/json_translation_serializer.d.ts +1 -1
  50. package/{src/tools → tools}/src/extract/translation_files/legacy_message_id_migration_serializer.d.ts +1 -1
  51. package/{src/tools → tools}/src/extract/translation_files/translation_serializer.d.ts +1 -1
  52. package/{src/tools → tools}/src/extract/translation_files/utils.d.ts +1 -1
  53. package/{src/tools → tools}/src/extract/translation_files/xliff1_translation_serializer.d.ts +2 -2
  54. package/{src/tools → tools}/src/extract/translation_files/xliff2_translation_serializer.d.ts +2 -2
  55. package/{src/tools → tools}/src/extract/translation_files/xmb_translation_serializer.d.ts +2 -2
  56. package/{src/tools → tools}/src/extract/translation_files/xml_file.d.ts +1 -1
  57. package/tools/src/migrate/cli.d.ts +10 -0
  58. package/{src/tools/src/migrate/main.d.ts → tools/src/migrate/index.d.ts} +9 -3
  59. package/{src/tools → tools}/src/migrate/migrate.d.ts +1 -1
  60. package/{src/tools → tools}/src/source_file_utils.d.ts +3 -3
  61. package/{src/tools → tools}/src/translate/asset_files/asset_translation_handler.d.ts +2 -2
  62. package/tools/src/translate/cli.d.ts +3 -0
  63. package/{src/tools/src/translate/main.d.ts → tools/src/translate/index.d.ts} +1 -2
  64. package/{src/tools → tools}/src/translate/output_path.d.ts +2 -2
  65. package/{src/tools → tools}/src/translate/source_files/es2015_translate_plugin.d.ts +3 -3
  66. package/{src/tools → tools}/src/translate/source_files/es5_translate_plugin.d.ts +3 -3
  67. package/{src/tools → tools}/src/translate/source_files/locale_plugin.d.ts +2 -2
  68. package/{src/tools → tools}/src/translate/source_files/source_file_translation_handler.d.ts +2 -2
  69. package/{src/tools → tools}/src/translate/translation_files/base_visitor.d.ts +1 -1
  70. package/{src/tools → tools}/src/translate/translation_files/message_serialization/message_renderer.d.ts +1 -1
  71. package/{src/tools → tools}/src/translate/translation_files/message_serialization/message_serializer.d.ts +1 -1
  72. package/{src/tools → tools}/src/translate/translation_files/message_serialization/target_message_renderer.d.ts +1 -1
  73. package/{src/tools → tools}/src/translate/translation_files/translation_loader.d.ts +2 -2
  74. package/{src/tools → tools}/src/translate/translation_files/translation_parsers/arb_translation_parser.d.ts +1 -1
  75. package/{src/tools → tools}/src/translate/translation_files/translation_parsers/serialize_translation_message.d.ts +1 -1
  76. package/{src/tools → tools}/src/translate/translation_files/translation_parsers/simple_json_translation_parser.d.ts +1 -1
  77. package/{src/tools → tools}/src/translate/translation_files/translation_parsers/translation_parse_error.d.ts +1 -1
  78. package/{src/tools → tools}/src/translate/translation_files/translation_parsers/translation_parser.d.ts +2 -2
  79. package/{src/tools → tools}/src/translate/translation_files/translation_parsers/translation_utils.d.ts +1 -1
  80. package/{src/tools → tools}/src/translate/translation_files/translation_parsers/xliff1_translation_parser.d.ts +1 -1
  81. package/{src/tools → tools}/src/translate/translation_files/translation_parsers/xliff2_translation_parser.d.ts +1 -1
  82. package/{src/tools → tools}/src/translate/translation_files/translation_parsers/xtb_translation_parser.d.ts +1 -1
  83. package/{src/tools → tools}/src/translate/translator.d.ts +2 -2
  84. package/bundles/localize-init.umd.js +0 -218
  85. package/bundles/localize-init.umd.js.map +0 -1
  86. package/bundles/localize.umd.js +0 -782
  87. package/bundles/localize.umd.js.map +0 -1
  88. package/esm2015/init/index.js +0 -12
  89. package/esm2015/init/init.externs.js +0 -0
  90. package/esm2015/localize.externs.js +0 -0
  91. package/esm2015/src/localize/localize.externs.js +0 -0
  92. package/esm2015/src/utils/src/messages.js +0 -159
  93. package/esm2015/src/utils/utils.externs.js +0 -0
  94. package/fesm2015/init.js.map +0 -1
  95. package/fesm2015/localize.js.map +0 -1
  96. package/init.d.ts +0 -7
  97. package/src/tools/src/diagnostics.js +0 -68
  98. package/src/tools/src/extract/duplicates.js +0 -84
  99. package/src/tools/src/extract/extraction.js +0 -134
  100. package/src/tools/src/extract/main.js +0 -184
  101. package/src/tools/src/extract/source_files/es2015_extract_plugin.js +0 -36
  102. package/src/tools/src/extract/source_files/es5_extract_plugin.js +0 -49
  103. package/src/tools/src/extract/translation_files/arb_translation_serializer.js +0 -107
  104. package/src/tools/src/extract/translation_files/format_options.js +0 -52
  105. package/src/tools/src/extract/translation_files/icu_parsing.js +0 -224
  106. package/src/tools/src/extract/translation_files/json_translation_serializer.js +0 -47
  107. package/src/tools/src/extract/translation_files/legacy_message_id_migration_serializer.js +0 -63
  108. package/src/tools/src/extract/translation_files/translation_serializer.js +0 -13
  109. package/src/tools/src/extract/translation_files/utils.js +0 -102
  110. package/src/tools/src/extract/translation_files/xliff1_translation_serializer.js +0 -242
  111. package/src/tools/src/extract/translation_files/xliff2_translation_serializer.js +0 -231
  112. package/src/tools/src/extract/translation_files/xmb_translation_serializer.js +0 -139
  113. package/src/tools/src/extract/translation_files/xml_file.js +0 -117
  114. package/src/tools/src/migrate/main.js +0 -79
  115. package/src/tools/src/migrate/migrate.js +0 -48
  116. package/src/tools/src/source_file_utils.js +0 -443
  117. package/src/tools/src/translate/asset_files/asset_translation_handler.js +0 -65
  118. package/src/tools/src/translate/main.js +0 -157
  119. package/src/tools/src/translate/output_path.js +0 -28
  120. package/src/tools/src/translate/source_files/es2015_translate_plugin.js +0 -60
  121. package/src/tools/src/translate/source_files/es5_translate_plugin.js +0 -58
  122. package/src/tools/src/translate/source_files/locale_plugin.js +0 -95
  123. package/src/tools/src/translate/source_files/source_file_translation_handler.js +0 -127
  124. package/src/tools/src/translate/translation_files/base_visitor.js +0 -31
  125. package/src/tools/src/translate/translation_files/message_serialization/message_renderer.js +0 -20
  126. package/src/tools/src/translate/translation_files/message_serialization/message_serializer.js +0 -100
  127. package/src/tools/src/translate/translation_files/message_serialization/target_message_renderer.js +0 -84
  128. package/src/tools/src/translate/translation_files/translation_loader.js +0 -148
  129. package/src/tools/src/translate/translation_files/translation_parsers/arb_translation_parser.js +0 -111
  130. package/src/tools/src/translate/translation_files/translation_parsers/serialize_translation_message.js +0 -32
  131. package/src/tools/src/translate/translation_files/translation_parsers/simple_json_translation_parser.js +0 -96
  132. package/src/tools/src/translate/translation_files/translation_parsers/translation_parse_error.js +0 -47
  133. package/src/tools/src/translate/translation_files/translation_parsers/translation_parser.js +0 -13
  134. package/src/tools/src/translate/translation_files/translation_parsers/translation_utils.js +0 -175
  135. package/src/tools/src/translate/translation_files/translation_parsers/xliff1_translation_parser.js +0 -175
  136. package/src/tools/src/translate/translation_files/translation_parsers/xliff2_translation_parser.js +0 -166
  137. package/src/tools/src/translate/translation_files/translation_parsers/xtb_translation_parser.js +0 -133
  138. package/src/tools/src/translate/translator.js +0 -53
@@ -1,127 +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/translate/source_files/source_file_translation_handler", ["require", "exports", "tslib", "@angular/compiler-cli/src/ngtsc/file_system", "@babel/core", "@angular/localize/src/tools/src/translate/source_files/es2015_translate_plugin", "@angular/localize/src/tools/src/translate/source_files/es5_translate_plugin", "@angular/localize/src/tools/src/translate/source_files/locale_plugin"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.SourceFileTranslationHandler = void 0;
13
- var tslib_1 = require("tslib");
14
- /**
15
- * @license
16
- * Copyright Google LLC All Rights Reserved.
17
- *
18
- * Use of this source code is governed by an MIT-style license that can be
19
- * found in the LICENSE file at https://angular.io/license
20
- */
21
- var file_system_1 = require("@angular/compiler-cli/src/ngtsc/file_system");
22
- var core_1 = require("@babel/core");
23
- var es2015_translate_plugin_1 = require("@angular/localize/src/tools/src/translate/source_files/es2015_translate_plugin");
24
- var es5_translate_plugin_1 = require("@angular/localize/src/tools/src/translate/source_files/es5_translate_plugin");
25
- var locale_plugin_1 = require("@angular/localize/src/tools/src/translate/source_files/locale_plugin");
26
- /**
27
- * Translate a file by inlining all messages tagged by `$localize` with the appropriate translated
28
- * message.
29
- */
30
- var SourceFileTranslationHandler = /** @class */ (function () {
31
- function SourceFileTranslationHandler(fs, translationOptions) {
32
- if (translationOptions === void 0) { translationOptions = {}; }
33
- this.fs = fs;
34
- this.translationOptions = translationOptions;
35
- this.sourceLocaleOptions = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, this.translationOptions), { missingTranslation: 'ignore' });
36
- }
37
- SourceFileTranslationHandler.prototype.canTranslate = function (relativeFilePath, _contents) {
38
- return this.fs.extname(relativeFilePath) === '.js';
39
- };
40
- SourceFileTranslationHandler.prototype.translate = function (diagnostics, sourceRoot, relativeFilePath, contents, outputPathFn, translations, sourceLocale) {
41
- var e_1, _a, e_2, _b;
42
- var sourceCode = Buffer.from(contents).toString('utf8');
43
- // A short-circuit check to avoid parsing the file into an AST if it does not contain any
44
- // `$localize` identifiers.
45
- if (!sourceCode.includes('$localize')) {
46
- try {
47
- for (var translations_1 = (0, tslib_1.__values)(translations), translations_1_1 = translations_1.next(); !translations_1_1.done; translations_1_1 = translations_1.next()) {
48
- var translation = translations_1_1.value;
49
- this.writeSourceFile(diagnostics, outputPathFn, translation.locale, relativeFilePath, contents);
50
- }
51
- }
52
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
53
- finally {
54
- try {
55
- if (translations_1_1 && !translations_1_1.done && (_a = translations_1.return)) _a.call(translations_1);
56
- }
57
- finally { if (e_1) throw e_1.error; }
58
- }
59
- if (sourceLocale !== undefined) {
60
- this.writeSourceFile(diagnostics, outputPathFn, sourceLocale, relativeFilePath, contents);
61
- }
62
- }
63
- else {
64
- var ast = (0, core_1.parseSync)(sourceCode, { sourceRoot: sourceRoot, filename: relativeFilePath });
65
- if (!ast) {
66
- diagnostics.error("Unable to parse source file: " + this.fs.join(sourceRoot, relativeFilePath));
67
- return;
68
- }
69
- try {
70
- // Output a translated copy of the file for each locale.
71
- for (var translations_2 = (0, tslib_1.__values)(translations), translations_2_1 = translations_2.next(); !translations_2_1.done; translations_2_1 = translations_2.next()) {
72
- var translationBundle = translations_2_1.value;
73
- this.translateFile(diagnostics, ast, translationBundle, sourceRoot, relativeFilePath, outputPathFn, this.translationOptions);
74
- }
75
- }
76
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
77
- finally {
78
- try {
79
- if (translations_2_1 && !translations_2_1.done && (_b = translations_2.return)) _b.call(translations_2);
80
- }
81
- finally { if (e_2) throw e_2.error; }
82
- }
83
- if (sourceLocale !== undefined) {
84
- // Also output a copy of the file for the source locale.
85
- // There will be no translations - by definition - so we "ignore" `missingTranslations`.
86
- this.translateFile(diagnostics, ast, { locale: sourceLocale, translations: {} }, sourceRoot, relativeFilePath, outputPathFn, this.sourceLocaleOptions);
87
- }
88
- }
89
- };
90
- SourceFileTranslationHandler.prototype.translateFile = function (diagnostics, ast, translationBundle, sourceRoot, filename, outputPathFn, options) {
91
- var translated = (0, core_1.transformFromAstSync)(ast, undefined, {
92
- compact: true,
93
- generatorOpts: { minified: true },
94
- plugins: [
95
- (0, locale_plugin_1.makeLocalePlugin)(translationBundle.locale),
96
- (0, es2015_translate_plugin_1.makeEs2015TranslatePlugin)(diagnostics, translationBundle.translations, options, this.fs),
97
- (0, es5_translate_plugin_1.makeEs5TranslatePlugin)(diagnostics, translationBundle.translations, options, this.fs),
98
- ],
99
- cwd: sourceRoot,
100
- filename: filename,
101
- });
102
- if (translated && translated.code) {
103
- this.writeSourceFile(diagnostics, outputPathFn, translationBundle.locale, filename, translated.code);
104
- var outputPath = (0, file_system_1.absoluteFrom)(outputPathFn(translationBundle.locale, filename));
105
- this.fs.ensureDir(this.fs.dirname(outputPath));
106
- this.fs.writeFile(outputPath, translated.code);
107
- }
108
- else {
109
- diagnostics.error("Unable to translate source file: " + this.fs.join(sourceRoot, filename));
110
- return;
111
- }
112
- };
113
- SourceFileTranslationHandler.prototype.writeSourceFile = function (diagnostics, outputPathFn, locale, relativeFilePath, contents) {
114
- try {
115
- var outputPath = (0, file_system_1.absoluteFrom)(outputPathFn(locale, relativeFilePath));
116
- this.fs.ensureDir(this.fs.dirname(outputPath));
117
- this.fs.writeFile(outputPath, contents);
118
- }
119
- catch (e) {
120
- diagnostics.error(e.message);
121
- }
122
- };
123
- return SourceFileTranslationHandler;
124
- }());
125
- exports.SourceFileTranslationHandler = SourceFileTranslationHandler;
126
- });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlX2ZpbGVfdHJhbnNsYXRpb25faGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2xvY2FsaXplL3NyYy90b29scy9zcmMvdHJhbnNsYXRlL3NvdXJjZV9maWxlcy9zb3VyY2VfZmlsZV90cmFuc2xhdGlvbl9oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7SUFBQTs7Ozs7O09BTUc7SUFDSCwyRUFBa0g7SUFDbEgsb0NBQTREO0lBUTVELDBIQUFvRTtJQUNwRSxvSEFBOEQ7SUFDOUQsc0dBQWlEO0lBRWpEOzs7T0FHRztJQUNIO1FBR0Usc0NBQW9CLEVBQWMsRUFBVSxrQkFBK0M7WUFBL0MsbUNBQUEsRUFBQSx1QkFBK0M7WUFBdkUsT0FBRSxHQUFGLEVBQUUsQ0FBWTtZQUFVLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBNkI7WUFGbkYsd0JBQW1CLG1EQUNNLElBQUksQ0FBQyxrQkFBa0IsS0FBRSxrQkFBa0IsRUFBRSxRQUFRLElBQUU7UUFDTSxDQUFDO1FBRS9GLG1EQUFZLEdBQVosVUFBYSxnQkFBNEMsRUFBRSxTQUFxQjtZQUM5RSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEtBQUssS0FBSyxDQUFDO1FBQ3JELENBQUM7UUFFRCxnREFBUyxHQUFULFVBQ0ksV0FBd0IsRUFBRSxVQUEwQixFQUFFLGdCQUE2QixFQUNuRixRQUFvQixFQUFFLFlBQTBCLEVBQUUsWUFBaUMsRUFDbkYsWUFBcUI7O1lBQ3ZCLElBQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFELHlGQUF5RjtZQUN6RiwyQkFBMkI7WUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUU7O29C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LElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDaEQ7aUJBQU07Z0JBQ0wsV0FBVyxDQUFDLEtBQUssQ0FBQyxzQ0FBb0MsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBRyxDQUFDLENBQUM7Z0JBQzVGLE9BQU87YUFDUjtRQUNILENBQUM7UUFFTyxzREFBZSxHQUF2QixVQUNJLFdBQXdCLEVBQUUsWUFBMEIsRUFBRSxNQUFjLEVBQ3BFLGdCQUE2QixFQUFFLFFBQTJCO1lBQzVELElBQUk7Z0JBQ0YsSUFBTSxVQUFVLEdBQUcsSUFBQSwwQkFBWSxFQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO2dCQUN4RSxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUMvQyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDekM7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDVixXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUM5QjtRQUNILENBQUM7UUFDSCxtQ0FBQztJQUFELENBQUMsQUFyRkQsSUFxRkM7SUFyRlksb0VBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge2Fic29sdXRlRnJvbSwgQWJzb2x1dGVGc1BhdGgsIEZpbGVTeXN0ZW0sIFBhdGhTZWdtZW50fSBmcm9tICdAYW5ndWxhci9jb21waWxlci1jbGkvc3JjL25ndHNjL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7cGFyc2VTeW5jLCB0cmFuc2Zvcm1Gcm9tQXN0U3luY30gZnJvbSAnQGJhYmVsL2NvcmUnO1xuaW1wb3J0IHtGaWxlLCBQcm9ncmFtfSBmcm9tICdAYmFiZWwvdHlwZXMnO1xuXG5pbXBvcnQge0RpYWdub3N0aWNzfSBmcm9tICcuLi8uLi9kaWFnbm9zdGljcyc7XG5pbXBvcnQge1RyYW5zbGF0ZVBsdWdpbk9wdGlvbnN9IGZyb20gJy4uLy4uL3NvdXJjZV9maWxlX3V0aWxzJztcbmltcG9ydCB7T3V0cHV0UGF0aEZufSBmcm9tICcuLi9vdXRwdXRfcGF0aCc7XG5pbXBvcnQge1RyYW5zbGF0aW9uQnVuZGxlLCBUcmFuc2xhdGlvbkhhbmRsZXJ9IGZyb20gJy4uL3RyYW5zbGF0b3InO1xuXG5pbXBvcnQge21ha2VFczIwMTVUcmFuc2xhdGVQbHVnaW59IGZyb20gJy4vZXMyMDE1X3RyYW5zbGF0ZV9wbHVnaW4nO1xuaW1wb3J0IHttYWtlRXM1VHJhbnNsYXRlUGx1Z2lufSBmcm9tICcuL2VzNV90cmFuc2xhdGVfcGx1Z2luJztcbmltcG9ydCB7bWFrZUxvY2FsZVBsdWdpbn0gZnJvbSAnLi9sb2NhbGVfcGx1Z2luJztcblxuLyoqXG4gKiBUcmFuc2xhdGUgYSBmaWxlIGJ5IGlubGluaW5nIGFsbCBtZXNzYWdlcyB0YWdnZWQgYnkgYCRsb2NhbGl6ZWAgd2l0aCB0aGUgYXBwcm9wcmlhdGUgdHJhbnNsYXRlZFxuICogbWVzc2FnZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFNvdXJjZUZpbGVUcmFuc2xhdGlvbkhhbmRsZXIgaW1wbGVtZW50cyBUcmFuc2xhdGlvbkhhbmRsZXIge1xuICBwcml2YXRlIHNvdXJjZUxvY2FsZU9wdGlvbnM6XG4gICAgICBUcmFuc2xhdGVQbHVnaW5PcHRpb25zID0gey4uLnRoaXMudHJhbnNsYXRpb25PcHRpb25zLCBtaXNzaW5nVHJhbnNsYXRpb246ICdpZ25vcmUnfTtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmczogRmlsZVN5c3RlbSwgcHJpdmF0ZSB0cmFuc2xhdGlvbk9wdGlvbnM6IFRyYW5zbGF0ZVBsdWdpbk9wdGlvbnMgPSB7fSkge31cblxuICBjYW5UcmFuc2xhdGUocmVsYXRpdmVGaWxlUGF0aDogUGF0aFNlZ21lbnR8QWJzb2x1dGVGc1BhdGgsIF9jb250ZW50czogVWludDhBcnJheSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZzLmV4dG5hbWUocmVsYXRpdmVGaWxlUGF0aCkgPT09ICcuanMnO1xuICB9XG5cbiAgdHJhbnNsYXRlKFxuICAgICAgZGlhZ25vc3RpY3M6IERpYWdub3N0aWNzLCBzb3VyY2VSb290OiBBYnNvbHV0ZUZzUGF0aCwgcmVsYXRpdmVGaWxlUGF0aDogUGF0aFNlZ21lbnQsXG4gICAgICBjb250ZW50czogVWludDhBcnJheSwgb3V0cHV0UGF0aEZuOiBPdXRwdXRQYXRoRm4sIHRyYW5zbGF0aW9uczogVHJhbnNsYXRpb25CdW5kbGVbXSxcbiAgICAgIHNvdXJjZUxvY2FsZT86IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHNvdXJjZUNvZGUgPSBCdWZmZXIuZnJvbShjb250ZW50cykudG9TdHJpbmcoJ3V0ZjgnKTtcbiAgICAvLyBBIHNob3J0LWNpcmN1aXQgY2hlY2sgdG8gYXZvaWQgcGFyc2luZyB0aGUgZmlsZSBpbnRvIGFuIEFTVCBpZiBpdCBkb2VzIG5vdCBjb250YWluIGFueVxuICAgIC8vIGAkbG9jYWxpemVgIGlkZW50aWZpZXJzLlxuICAgIGlmICghc291cmNlQ29kZS5pbmNsdWRlcygnJGxvY2FsaXplJykpIHtcbiAgICAgIGZvciAoY29uc3QgdHJhbnNsYXRpb24gb2YgdHJhbnNsYXRpb25zKSB7XG4gICAgICAgIHRoaXMud3JpdGVTb3VyY2VGaWxlKFxuICAgICAgICAgICAgZGlhZ25vc3RpY3MsIG91dHB1dFBhdGhGbiwgdHJhbnNsYXRpb24ubG9jYWxlLCByZWxhdGl2ZUZpbGVQYXRoLCBjb250ZW50cyk7XG4gICAgICB9XG4gICAgICBpZiAoc291cmNlTG9jYWxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy53cml0ZVNvdXJjZUZpbGUoZGlhZ25vc3RpY3MsIG91dHB1dFBhdGhGbiwgc291cmNlTG9jYWxlLCByZWxhdGl2ZUZpbGVQYXRoLCBjb250ZW50cyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGFzdCA9IHBhcnNlU3luYyhzb3VyY2VDb2RlLCB7c291cmNlUm9vdCwgZmlsZW5hbWU6IHJlbGF0aXZlRmlsZVBhdGh9KTtcbiAgICAgIGlmICghYXN0KSB7XG4gICAgICAgIGRpYWdub3N0aWNzLmVycm9yKFxuICAgICAgICAgICAgYFVuYWJsZSB0byBwYXJzZSBzb3VyY2UgZmlsZTogJHt0aGlzLmZzLmpvaW4oc291cmNlUm9vdCwgcmVsYXRpdmVGaWxlUGF0aCl9YCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8vIE91dHB1dCBhIHRyYW5zbGF0ZWQgY29weSBvZiB0aGUgZmlsZSBmb3IgZWFjaCBsb2NhbGUuXG4gICAgICBmb3IgKGNvbnN0IHRyYW5zbGF0aW9uQnVuZGxlIG9mIHRyYW5zbGF0aW9ucykge1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZUZpbGUoXG4gICAgICAgICAgICBkaWFnbm9zdGljcywgYXN0LCB0cmFuc2xhdGlvbkJ1bmRsZSwgc291cmNlUm9vdCwgcmVsYXRpdmVGaWxlUGF0aCwgb3V0cHV0UGF0aEZuLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGlvbk9wdGlvbnMpO1xuICAgICAgfVxuICAgICAgaWYgKHNvdXJjZUxvY2FsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIEFsc28gb3V0cHV0IGEgY29weSBvZiB0aGUgZmlsZSBmb3IgdGhlIHNvdXJjZSBsb2NhbGUuXG4gICAgICAgIC8vIFRoZXJlIHdpbGwgYmUgbm8gdHJhbnNsYXRpb25zIC0gYnkgZGVmaW5pdGlvbiAtIHNvIHdlIFwiaWdub3JlXCIgYG1pc3NpbmdUcmFuc2xhdGlvbnNgLlxuICAgICAgICB0aGlzLnRyYW5zbGF0ZUZpbGUoXG4gICAgICAgICAgICBkaWFnbm9zdGljcywgYXN0LCB7bG9jYWxlOiBzb3VyY2VMb2NhbGUsIHRyYW5zbGF0aW9uczoge319LCBzb3VyY2VSb290LFxuICAgICAgICAgICAgcmVsYXRpdmVGaWxlUGF0aCwgb3V0cHV0UGF0aEZuLCB0aGlzLnNvdXJjZUxvY2FsZU9wdGlvbnMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNsYXRlRmlsZShcbiAgICAgIGRpYWdub3N0aWNzOiBEaWFnbm9zdGljcywgYXN0OiBGaWxlfFByb2dyYW0sIHRyYW5zbGF0aW9uQnVuZGxlOiBUcmFuc2xhdGlvbkJ1bmRsZSxcbiAgICAgIHNvdXJjZVJvb3Q6IEFic29sdXRlRnNQYXRoLCBmaWxlbmFtZTogUGF0aFNlZ21lbnQsIG91dHB1dFBhdGhGbjogT3V0cHV0UGF0aEZuLFxuICAgICAgb3B0aW9uczogVHJhbnNsYXRlUGx1Z2luT3B0aW9ucykge1xuICAgIGNvbnN0IHRyYW5zbGF0ZWQgPSB0cmFuc2Zvcm1Gcm9tQXN0U3luYyhhc3QsIHVuZGVmaW5lZCwge1xuICAgICAgY29tcGFjdDogdHJ1ZSxcbiAgICAgIGdlbmVyYXRvck9wdHM6IHttaW5pZmllZDogdHJ1ZX0sXG4gICAgICBwbHVnaW5zOiBbXG4gICAgICAgIG1ha2VMb2NhbGVQbHVnaW4odHJhbnNsYXRpb25CdW5kbGUubG9jYWxlKSxcbiAgICAgICAgbWFrZUVzMjAxNVRyYW5zbGF0ZVBsdWdpbihkaWFnbm9zdGljcywgdHJhbnNsYXRpb25CdW5kbGUudHJhbnNsYXRpb25zLCBvcHRpb25zLCB0aGlzLmZzKSxcbiAgICAgICAgbWFrZUVzNVRyYW5zbGF0ZVBsdWdpbihkaWFnbm9zdGljcywgdHJhbnNsYXRpb25CdW5kbGUudHJhbnNsYXRpb25zLCBvcHRpb25zLCB0aGlzLmZzKSxcbiAgICAgIF0sXG4gICAgICBjd2Q6IHNvdXJjZVJvb3QsXG4gICAgICBmaWxlbmFtZSxcbiAgICB9KTtcbiAgICBpZiAodHJhbnNsYXRlZCAmJiB0cmFuc2xhdGVkLmNvZGUpIHtcbiAgICAgIHRoaXMud3JpdGVTb3VyY2VGaWxlKFxuICAgICAgICAgIGRpYWdub3N0aWNzLCBvdXRwdXRQYXRoRm4sIHRyYW5zbGF0aW9uQnVuZGxlLmxvY2FsZSwgZmlsZW5hbWUsIHRyYW5zbGF0ZWQuY29kZSk7XG4gICAgICBjb25zdCBvdXRwdXRQYXRoID0gYWJzb2x1dGVGcm9tKG91dHB1dFBhdGhGbih0cmFuc2xhdGlvbkJ1bmRsZS5sb2NhbGUsIGZpbGVuYW1lKSk7XG4gICAgICB0aGlzLmZzLmVuc3VyZURpcih0aGlzLmZzLmRpcm5hbWUob3V0cHV0UGF0aCkpO1xuICAgICAgdGhpcy5mcy53cml0ZUZpbGUob3V0cHV0UGF0aCwgdHJhbnNsYXRlZC5jb2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlhZ25vc3RpY3MuZXJyb3IoYFVuYWJsZSB0byB0cmFuc2xhdGUgc291cmNlIGZpbGU6ICR7dGhpcy5mcy5qb2luKHNvdXJjZVJvb3QsIGZpbGVuYW1lKX1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHdyaXRlU291cmNlRmlsZShcbiAgICAgIGRpYWdub3N0aWNzOiBEaWFnbm9zdGljcywgb3V0cHV0UGF0aEZuOiBPdXRwdXRQYXRoRm4sIGxvY2FsZTogc3RyaW5nLFxuICAgICAgcmVsYXRpdmVGaWxlUGF0aDogUGF0aFNlZ21lbnQsIGNvbnRlbnRzOiBzdHJpbmd8VWludDhBcnJheSk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBvdXRwdXRQYXRoID0gYWJzb2x1dGVGcm9tKG91dHB1dFBhdGhGbihsb2NhbGUsIHJlbGF0aXZlRmlsZVBhdGgpKTtcbiAgICAgIHRoaXMuZnMuZW5zdXJlRGlyKHRoaXMuZnMuZGlybmFtZShvdXRwdXRQYXRoKSk7XG4gICAgICB0aGlzLmZzLndyaXRlRmlsZShvdXRwdXRQYXRoLCBjb250ZW50cyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgZGlhZ25vc3RpY3MuZXJyb3IoZS5tZXNzYWdlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,31 +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/translate/translation_files/base_visitor", ["require", "exports"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.BaseVisitor = void 0;
13
- /**
14
- * A simple base class for the `Visitor` interface, which is a noop for every method.
15
- *
16
- * Sub-classes only need to override the methods that they care about.
17
- */
18
- var BaseVisitor = /** @class */ (function () {
19
- function BaseVisitor() {
20
- }
21
- BaseVisitor.prototype.visitElement = function (_element, _context) { };
22
- BaseVisitor.prototype.visitAttribute = function (_attribute, _context) { };
23
- BaseVisitor.prototype.visitText = function (_text, _context) { };
24
- BaseVisitor.prototype.visitComment = function (_comment, _context) { };
25
- BaseVisitor.prototype.visitExpansion = function (_expansion, _context) { };
26
- BaseVisitor.prototype.visitExpansionCase = function (_expansionCase, _context) { };
27
- return BaseVisitor;
28
- }());
29
- exports.BaseVisitor = BaseVisitor;
30
- });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV92aXNpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbG9jYWxpemUvc3JjL3Rvb2xzL3NyYy90cmFuc2xhdGUvdHJhbnNsYXRpb25fZmlsZXMvYmFzZV92aXNpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQVNBOzs7O09BSUc7SUFDSDtRQUFBO1FBT0EsQ0FBQztRQU5DLGtDQUFZLEdBQVosVUFBYSxRQUFpQixFQUFFLFFBQWEsSUFBUSxDQUFDO1FBQ3RELG9DQUFjLEdBQWQsVUFBZSxVQUFxQixFQUFFLFFBQWEsSUFBUSxDQUFDO1FBQzVELCtCQUFTLEdBQVQsVUFBVSxLQUFXLEVBQUUsUUFBYSxJQUFRLENBQUM7UUFDN0Msa0NBQVksR0FBWixVQUFhLFFBQWlCLEVBQUUsUUFBYSxJQUFRLENBQUM7UUFDdEQsb0NBQWMsR0FBZCxVQUFlLFVBQXFCLEVBQUUsUUFBYSxJQUFRLENBQUM7UUFDNUQsd0NBQWtCLEdBQWxCLFVBQW1CLGNBQTZCLEVBQUUsUUFBYSxJQUFRLENBQUM7UUFDMUUsa0JBQUM7SUFBRCxDQUFDLEFBUEQsSUFPQztJQVBZLGtDQUFXIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge0F0dHJpYnV0ZSwgQ29tbWVudCwgRWxlbWVudCwgRXhwYW5zaW9uLCBFeHBhbnNpb25DYXNlLCBUZXh0LCBWaXNpdG9yfSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XG5cbi8qKlxuICogQSBzaW1wbGUgYmFzZSBjbGFzcyBmb3IgdGhlICBgVmlzaXRvcmAgaW50ZXJmYWNlLCB3aGljaCBpcyBhIG5vb3AgZm9yIGV2ZXJ5IG1ldGhvZC5cbiAqXG4gKiBTdWItY2xhc3NlcyBvbmx5IG5lZWQgdG8gb3ZlcnJpZGUgdGhlIG1ldGhvZHMgdGhhdCB0aGV5IGNhcmUgYWJvdXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBCYXNlVmlzaXRvciBpbXBsZW1lbnRzIFZpc2l0b3Ige1xuICB2aXNpdEVsZW1lbnQoX2VsZW1lbnQ6IEVsZW1lbnQsIF9jb250ZXh0OiBhbnkpOiBhbnkge31cbiAgdmlzaXRBdHRyaWJ1dGUoX2F0dHJpYnV0ZTogQXR0cmlidXRlLCBfY29udGV4dDogYW55KTogYW55IHt9XG4gIHZpc2l0VGV4dChfdGV4dDogVGV4dCwgX2NvbnRleHQ6IGFueSk6IGFueSB7fVxuICB2aXNpdENvbW1lbnQoX2NvbW1lbnQ6IENvbW1lbnQsIF9jb250ZXh0OiBhbnkpOiBhbnkge31cbiAgdmlzaXRFeHBhbnNpb24oX2V4cGFuc2lvbjogRXhwYW5zaW9uLCBfY29udGV4dDogYW55KTogYW55IHt9XG4gIHZpc2l0RXhwYW5zaW9uQ2FzZShfZXhwYW5zaW9uQ2FzZTogRXhwYW5zaW9uQ2FzZSwgX2NvbnRleHQ6IGFueSk6IGFueSB7fVxufVxuIl19
@@ -1,20 +0,0 @@
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
- (function (factory) {
9
- if (typeof module === "object" && typeof module.exports === "object") {
10
- var v = factory(require, exports);
11
- if (v !== undefined) module.exports = v;
12
- }
13
- else if (typeof define === "function" && define.amd) {
14
- define("@angular/localize/src/tools/src/translate/translation_files/message_serialization/message_renderer", ["require", "exports"], factory);
15
- }
16
- })(function (require, exports) {
17
- "use strict";
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZV9yZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2xvY2FsaXplL3NyYy90b29scy9zcmMvdHJhbnNsYXRlL3RyYW5zbGF0aW9uX2ZpbGVzL21lc3NhZ2Vfc2VyaWFsaXphdGlvbi9tZXNzYWdlX3JlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VSZW5kZXJlcjxUPiB7XG4gIG1lc3NhZ2U6IFQ7XG4gIHN0YXJ0UmVuZGVyKCk6IHZvaWQ7XG4gIGVuZFJlbmRlcigpOiB2b2lkO1xuICB0ZXh0KHRleHQ6IHN0cmluZyk6IHZvaWQ7XG4gIHBsYWNlaG9sZGVyKG5hbWU6IHN0cmluZywgYm9keTogc3RyaW5nfHVuZGVmaW5lZCk6IHZvaWQ7XG4gIHN0YXJ0UGxhY2Vob2xkZXIobmFtZTogc3RyaW5nKTogdm9pZDtcbiAgY2xvc2VQbGFjZWhvbGRlcihuYW1lOiBzdHJpbmcpOiB2b2lkO1xuICBzdGFydENvbnRhaW5lcigpOiB2b2lkO1xuICBjbG9zZUNvbnRhaW5lcigpOiB2b2lkO1xuICBzdGFydEljdSgpOiB2b2lkO1xuICBlbmRJY3UoKTogdm9pZDtcbn1cbiJdfQ==
@@ -1,100 +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/translate/translation_files/message_serialization/message_serializer", ["require", "exports", "tslib", "@angular/compiler", "@angular/localize/src/tools/src/translate/translation_files/base_visitor", "@angular/localize/src/tools/src/translate/translation_files/translation_parsers/translation_parse_error", "@angular/localize/src/tools/src/translate/translation_files/translation_parsers/translation_utils"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.MessageSerializer = void 0;
13
- var tslib_1 = require("tslib");
14
- /**
15
- * @license
16
- * Copyright Google LLC All Rights Reserved.
17
- *
18
- * Use of this source code is governed by an MIT-style license that can be
19
- * found in the LICENSE file at https://angular.io/license
20
- */
21
- var compiler_1 = require("@angular/compiler");
22
- var base_visitor_1 = require("@angular/localize/src/tools/src/translate/translation_files/base_visitor");
23
- var translation_parse_error_1 = require("@angular/localize/src/tools/src/translate/translation_files/translation_parsers/translation_parse_error");
24
- var translation_utils_1 = require("@angular/localize/src/tools/src/translate/translation_files/translation_parsers/translation_utils");
25
- /**
26
- * This visitor will walk over a set of XML nodes, which represent an i18n message, and serialize
27
- * them into a message object of type `T`.
28
- * The type of the serialized message is controlled by the
29
- */
30
- var MessageSerializer = /** @class */ (function (_super) {
31
- (0, tslib_1.__extends)(MessageSerializer, _super);
32
- function MessageSerializer(renderer, config) {
33
- var _this = _super.call(this) || this;
34
- _this.renderer = renderer;
35
- _this.config = config;
36
- return _this;
37
- }
38
- MessageSerializer.prototype.serialize = function (nodes) {
39
- this.renderer.startRender();
40
- (0, compiler_1.visitAll)(this, nodes);
41
- this.renderer.endRender();
42
- return this.renderer.message;
43
- };
44
- MessageSerializer.prototype.visitElement = function (element) {
45
- if (this.config.placeholder && element.name === this.config.placeholder.elementName) {
46
- var name = (0, translation_utils_1.getAttrOrThrow)(element, this.config.placeholder.nameAttribute);
47
- var body = this.config.placeholder.bodyAttribute &&
48
- (0, translation_utils_1.getAttribute)(element, this.config.placeholder.bodyAttribute);
49
- this.visitPlaceholder(name, body);
50
- }
51
- else if (this.config.placeholderContainer &&
52
- element.name === this.config.placeholderContainer.elementName) {
53
- var start = (0, translation_utils_1.getAttrOrThrow)(element, this.config.placeholderContainer.startAttribute);
54
- var end = (0, translation_utils_1.getAttrOrThrow)(element, this.config.placeholderContainer.endAttribute);
55
- this.visitPlaceholderContainer(start, element.children, end);
56
- }
57
- else if (this.config.inlineElements.indexOf(element.name) !== -1) {
58
- (0, compiler_1.visitAll)(this, element.children);
59
- }
60
- else {
61
- throw new translation_parse_error_1.TranslationParseError(element.sourceSpan, "Invalid element found in message.");
62
- }
63
- };
64
- MessageSerializer.prototype.visitText = function (text) {
65
- this.renderer.text(text.value);
66
- };
67
- MessageSerializer.prototype.visitExpansion = function (expansion) {
68
- this.renderer.startIcu();
69
- this.renderer.text(expansion.switchValue + ", " + expansion.type + ",");
70
- (0, compiler_1.visitAll)(this, expansion.cases);
71
- this.renderer.endIcu();
72
- };
73
- MessageSerializer.prototype.visitExpansionCase = function (expansionCase) {
74
- this.renderer.text(" " + expansionCase.value + " {");
75
- this.renderer.startContainer();
76
- (0, compiler_1.visitAll)(this, expansionCase.expression);
77
- this.renderer.closeContainer();
78
- this.renderer.text("}");
79
- };
80
- MessageSerializer.prototype.visitContainedNodes = function (nodes) {
81
- this.renderer.startContainer();
82
- (0, compiler_1.visitAll)(this, nodes);
83
- this.renderer.closeContainer();
84
- };
85
- MessageSerializer.prototype.visitPlaceholder = function (name, body) {
86
- this.renderer.placeholder(name, body);
87
- };
88
- MessageSerializer.prototype.visitPlaceholderContainer = function (startName, children, closeName) {
89
- this.renderer.startPlaceholder(startName);
90
- this.visitContainedNodes(children);
91
- this.renderer.closePlaceholder(closeName);
92
- };
93
- MessageSerializer.prototype.isPlaceholderContainer = function (node) {
94
- return node instanceof compiler_1.Element && node.name === this.config.placeholderContainer.elementName;
95
- };
96
- return MessageSerializer;
97
- }(base_visitor_1.BaseVisitor));
98
- exports.MessageSerializer = MessageSerializer;
99
- });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZV9zZXJpYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbG9jYWxpemUvc3JjL3Rvb2xzL3NyYy90cmFuc2xhdGUvdHJhbnNsYXRpb25fZmlsZXMvbWVzc2FnZV9zZXJpYWxpemF0aW9uL21lc3NhZ2Vfc2VyaWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0lBQUE7Ozs7OztPQU1HO0lBQ0gsOENBQTBGO0lBRTFGLHlHQUE0QztJQUM1QyxtSkFBcUY7SUFDckYsdUlBQXNGO0lBVXRGOzs7O09BSUc7SUFDSDtRQUEwQyxrREFBVztRQUNuRCwyQkFBb0IsUUFBNEIsRUFBVSxNQUErQjtZQUF6RixZQUNFLGlCQUFPLFNBQ1I7WUFGbUIsY0FBUSxHQUFSLFFBQVEsQ0FBb0I7WUFBVSxZQUFNLEdBQU4sTUFBTSxDQUF5Qjs7UUFFekYsQ0FBQztRQUVELHFDQUFTLEdBQVQsVUFBVSxLQUFhO1lBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDNUIsSUFBQSxtQkFBUSxFQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzFCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDL0IsQ0FBQztRQUVRLHdDQUFZLEdBQXJCLFVBQXNCLE9BQWdCO1lBQ3BDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUU7Z0JBQ25GLElBQU0sSUFBSSxHQUFHLElBQUEsa0NBQWMsRUFBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQzVFLElB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QUFpQjtZQUM5RSxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFFTyxrREFBc0IsR0FBOUIsVUFBK0IsSUFBVTtZQUN2QyxPQUFPLElBQUksWUFBWSxrQkFBTyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBcUIsQ0FBQyxXQUFXLENBQUM7UUFDaEcsQ0FBQztRQUNILHdCQUFDO0lBQUQsQ0FBQyxBQXJFRCxDQUEwQywwQkFBVyxHQXFFcEQ7SUFyRVksOENBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge0VsZW1lbnQsIEV4cGFuc2lvbiwgRXhwYW5zaW9uQ2FzZSwgTm9kZSwgVGV4dCwgdmlzaXRBbGx9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcblxuaW1wb3J0IHtCYXNlVmlzaXRvcn0gZnJvbSAnLi4vYmFzZV92aXNpdG9yJztcbmltcG9ydCB7VHJhbnNsYXRpb25QYXJzZUVycm9yfSBmcm9tICcuLi90cmFuc2xhdGlvbl9wYXJzZXJzL3RyYW5zbGF0aW9uX3BhcnNlX2Vycm9yJztcbmltcG9ydCB7Z2V0QXR0cmlidXRlLCBnZXRBdHRyT3JUaHJvd30gZnJvbSAnLi4vdHJhbnNsYXRpb25fcGFyc2Vycy90cmFuc2xhdGlvbl91dGlscyc7XG5cbmltcG9ydCB7TWVzc2FnZVJlbmRlcmVyfSBmcm9tICcuL21lc3NhZ2VfcmVuZGVyZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VTZXJpYWxpemVyQ29uZmlnIHtcbiAgaW5saW5lRWxlbWVudHM6IHN0cmluZ1tdO1xuICBwbGFjZWhvbGRlcj86IHtlbGVtZW50TmFtZTogc3RyaW5nOyBuYW1lQXR0cmlidXRlOiBzdHJpbmc7IGJvZHlBdHRyaWJ1dGU/OiBzdHJpbmc7fTtcbiAgcGxhY2Vob2xkZXJDb250YWluZXI/OiB7ZWxlbWVudE5hbWU6IHN0cmluZzsgc3RhcnRBdHRyaWJ1dGU6IHN0cmluZzsgZW5kQXR0cmlidXRlOiBzdHJpbmc7fTtcbn1cblxuLyoqXG4gKiBUaGlzIHZpc2l0b3Igd2lsbCB3YWxrIG92ZXIgYSBzZXQgb2YgWE1MIG5vZGVzLCB3aGljaCByZXByZXNlbnQgYW4gaTE4biBtZXNzYWdlLCBhbmQgc2VyaWFsaXplXG4gKiB0aGVtIGludG8gYSBtZXNzYWdlIG9iamVjdCBvZiB0eXBlIGBUYC5cbiAqIFRoZSB0eXBlIG9mIHRoZSBzZXJpYWxpemVkIG1lc3NhZ2UgaXMgY29udHJvbGxlZCBieSB0aGVcbiAqL1xuZXhwb3J0IGNsYXNzIE1lc3NhZ2VTZXJpYWxpemVyPFQ+IGV4dGVuZHMgQmFzZVZpc2l0b3Ige1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBNZXNzYWdlUmVuZGVyZXI8VD4sIHByaXZhdGUgY29uZmlnOiBNZXNzYWdlU2VyaWFsaXplckNvbmZpZykge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBzZXJpYWxpemUobm9kZXM6IE5vZGVbXSk6IFQge1xuICAgIHRoaXMucmVuZGVyZXIuc3RhcnRSZW5kZXIoKTtcbiAgICB2aXNpdEFsbCh0aGlzLCBub2Rlcyk7XG4gICAgdGhpcy5yZW5kZXJlci5lbmRSZW5kZXIoKTtcbiAgICByZXR1cm4gdGhpcy5yZW5kZXJlci5tZXNzYWdlO1xuICB9XG5cbiAgb3ZlcnJpZGUgdmlzaXRFbGVtZW50KGVsZW1lbnQ6IEVsZW1lbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb25maWcucGxhY2Vob2xkZXIgJiYgZWxlbWVudC5uYW1lID09PSB0aGlzLmNvbmZpZy5wbGFjZWhvbGRlci5lbGVtZW50TmFtZSkge1xuICAgICAgY29uc3QgbmFtZSA9IGdldEF0dHJPclRocm93KGVsZW1lbnQsIHRoaXMuY29uZmlnLnBsYWNlaG9sZGVyLm5hbWVBdHRyaWJ1dGUpO1xuICAgICAgY29uc3QgYm9keSA9IHRoaXMuY29uZmlnLnBsYWNlaG9sZGVyLmJvZHlBdHRyaWJ1dGUgJiZcbiAgICAgICAgICBnZXRBdHRyaWJ1dGUoZWxlbWVudCwgdGhpcy5jb25maWcucGxhY2Vob2xkZXIuYm9keUF0dHJpYnV0ZSk7XG4gICAgICB0aGlzLnZpc2l0UGxhY2Vob2xkZXIobmFtZSwgYm9keSk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgICAgdGhpcy5jb25maWcucGxhY2Vob2xkZXJDb250YWluZXIgJiZcbiAgICAgICAgZWxlbWVudC5uYW1lID09PSB0aGlzLmNvbmZpZy5wbGFjZWhvbGRlckNvbnRhaW5lci5lbGVtZW50TmFtZSkge1xuICAgICAgY29uc3Qgc3RhcnQgPSBnZXRBdHRyT3JUaHJvdyhlbGVtZW50LCB0aGlzLmNvbmZpZy5wbGFjZWhvbGRlckNvbnRhaW5lci5zdGFydEF0dHJpYnV0ZSk7XG4gICAgICBjb25zdCBlbmQgPSBnZXRBdHRyT3JUaHJvdyhlbGVtZW50LCB0aGlzLmNvbmZpZy5wbGFjZWhvbGRlckNvbnRhaW5lci5lbmRBdHRyaWJ1dGUpO1xuICAgICAgdGhpcy52aXNpdFBsYWNlaG9sZGVyQ29udGFpbmVyKHN0YXJ0LCBlbGVtZW50LmNoaWxkcmVuLCBlbmQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWcuaW5saW5lRWxlbWVudHMuaW5kZXhPZihlbGVtZW50Lm5hbWUpICE9PSAtMSkge1xuICAgICAgdmlzaXRBbGwodGhpcywgZWxlbWVudC5jaGlsZHJlbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBUcmFuc2xhdGlvblBhcnNlRXJyb3IoZWxlbWVudC5zb3VyY2VTcGFuLCBgSW52YWxpZCBlbGVtZW50IGZvdW5kIGluIG1lc3NhZ2UuYCk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgdmlzaXRUZXh0KHRleHQ6IFRleHQpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcmVyLnRleHQodGV4dC52YWx1ZSk7XG4gIH1cblxuICBvdmVycmlkZSB2aXNpdEV4cGFuc2lvbihleHBhbnNpb246IEV4cGFuc2lvbik6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyZXIuc3RhcnRJY3UoKTtcbiAgICB0aGlzLnJlbmRlcmVyLnRleHQoYCR7ZXhwYW5zaW9uLnN3aXRjaFZhbHVlfSwgJHtleHBhbnNpb24udHlwZX0sYCk7XG4gICAgdmlzaXRBbGwodGhpcywgZXhwYW5zaW9uLmNhc2VzKTtcbiAgICB0aGlzLnJlbmRlcmVyLmVuZEljdSgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgdmlzaXRFeHBhbnNpb25DYXNlKGV4cGFuc2lvbkNhc2U6IEV4cGFuc2lvbkNhc2UpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcmVyLnRleHQoYCAke2V4cGFuc2lvbkNhc2UudmFsdWV9IHtgKTtcbiAgICB0aGlzLnJlbmRlcmVyLnN0YXJ0Q29udGFpbmVyKCk7XG4gICAgdmlzaXRBbGwodGhpcywgZXhwYW5zaW9uQ2FzZS5leHByZXNzaW9uKTtcbiAgICB0aGlzLnJlbmRlcmVyLmNsb3NlQ29udGFpbmVyKCk7XG4gICAgdGhpcy5yZW5kZXJlci50ZXh0KGB9YCk7XG4gIH1cblxuICB2aXNpdENvbnRhaW5lZE5vZGVzKG5vZGVzOiBOb2RlW10pOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcmVyLnN0YXJ0Q29udGFpbmVyKCk7XG4gICAgdmlzaXRBbGwodGhpcywgbm9kZXMpO1xuICAgIHRoaXMucmVuZGVyZXIuY2xvc2VDb250YWluZXIoKTtcbiAgfVxuXG4gIHZpc2l0UGxhY2Vob2xkZXIobmFtZTogc3RyaW5nLCBib2R5OiBzdHJpbmd8dW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5wbGFjZWhvbGRlcihuYW1lLCBib2R5KTtcbiAgfVxuXG4gIHZpc2l0UGxhY2Vob2xkZXJDb250YWluZXIoc3RhcnROYW1lOiBzdHJpbmcsIGNoaWxkcmVuOiBOb2RlW10sIGNsb3NlTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5zdGFydFBsYWNlaG9sZGVyKHN0YXJ0TmFtZSk7XG4gICAgdGhpcy52aXNpdENvbnRhaW5lZE5vZGVzKGNoaWxkcmVuKTtcbiAgICB0aGlzLnJlbmRlcmVyLmNsb3NlUGxhY2Vob2xkZXIoY2xvc2VOYW1lKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNQbGFjZWhvbGRlckNvbnRhaW5lcihub2RlOiBOb2RlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG5vZGUgaW5zdGFuY2VvZiBFbGVtZW50ICYmIG5vZGUubmFtZSA9PT0gdGhpcy5jb25maWcucGxhY2Vob2xkZXJDb250YWluZXIhLmVsZW1lbnROYW1lO1xuICB9XG59XG4iXX0=
@@ -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/translate/translation_files/message_serialization/target_message_renderer", ["require", "exports", "@angular/localize"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.TargetMessageRenderer = void 0;
13
- /**
14
- * @license
15
- * Copyright Google LLC All Rights Reserved.
16
- *
17
- * Use of this source code is governed by an MIT-style license that can be
18
- * found in the LICENSE file at https://angular.io/license
19
- */
20
- var localize_1 = require("@angular/localize");
21
- /**
22
- * A message renderer that outputs `ɵParsedTranslation` objects.
23
- */
24
- var TargetMessageRenderer = /** @class */ (function () {
25
- function TargetMessageRenderer() {
26
- this.current = { messageParts: [], placeholderNames: [], text: '' };
27
- this.icuDepth = 0;
28
- }
29
- Object.defineProperty(TargetMessageRenderer.prototype, "message", {
30
- get: function () {
31
- var _a = this.current, messageParts = _a.messageParts, placeholderNames = _a.placeholderNames;
32
- return (0, localize_1.ɵmakeParsedTranslation)(messageParts, placeholderNames);
33
- },
34
- enumerable: false,
35
- configurable: true
36
- });
37
- TargetMessageRenderer.prototype.startRender = function () { };
38
- TargetMessageRenderer.prototype.endRender = function () {
39
- this.storeMessagePart();
40
- };
41
- TargetMessageRenderer.prototype.text = function (text) {
42
- this.current.text += text;
43
- };
44
- TargetMessageRenderer.prototype.placeholder = function (name, body) {
45
- this.renderPlaceholder(name);
46
- };
47
- TargetMessageRenderer.prototype.startPlaceholder = function (name) {
48
- this.renderPlaceholder(name);
49
- };
50
- TargetMessageRenderer.prototype.closePlaceholder = function (name) {
51
- this.renderPlaceholder(name);
52
- };
53
- TargetMessageRenderer.prototype.startContainer = function () { };
54
- TargetMessageRenderer.prototype.closeContainer = function () { };
55
- TargetMessageRenderer.prototype.startIcu = function () {
56
- this.icuDepth++;
57
- this.text('{');
58
- };
59
- TargetMessageRenderer.prototype.endIcu = function () {
60
- this.icuDepth--;
61
- this.text('}');
62
- };
63
- TargetMessageRenderer.prototype.normalizePlaceholderName = function (name) {
64
- return name.replace(/-/g, '_');
65
- };
66
- TargetMessageRenderer.prototype.renderPlaceholder = function (name) {
67
- name = this.normalizePlaceholderName(name);
68
- if (this.icuDepth > 0) {
69
- this.text("{" + name + "}");
70
- }
71
- else {
72
- this.storeMessagePart();
73
- this.current.placeholderNames.push(name);
74
- }
75
- };
76
- TargetMessageRenderer.prototype.storeMessagePart = function () {
77
- this.current.messageParts.push(this.current.text);
78
- this.current.text = '';
79
- };
80
- return TargetMessageRenderer;
81
- }());
82
- exports.TargetMessageRenderer = TargetMessageRenderer;
83
- });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFyZ2V0X21lc3NhZ2VfcmVuZGVyZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sb2NhbGl6ZS9zcmMvdG9vbHMvc3JjL3RyYW5zbGF0ZS90cmFuc2xhdGlvbl9maWxlcy9tZXNzYWdlX3NlcmlhbGl6YXRpb24vdGFyZ2V0X21lc3NhZ2VfcmVuZGVyZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQUE7Ozs7OztPQU1HO0lBQ0gsOENBQTZFO0lBSTdFOztPQUVHO0lBQ0g7UUFBQTtZQUNVLFlBQU8sR0FBZ0IsRUFBQyxZQUFZLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFDLENBQUM7WUFDMUUsYUFBUSxHQUFHLENBQUMsQ0FBQztRQWdEdkIsQ0FBQztRQTlDQyxzQkFBSSwwQ0FBTztpQkFBWDtnQkFDUSxJQUFBLEtBQW1DLElBQUksQ0FBQyxPQUFPLEVBQTlDLFlBQVksa0JBQUEsRUFBRSxnQkFBZ0Isc0JBQWdCLENBQUM7Z0JBQ3RELE9BQU8sSUFBQSxpQ0FBc0IsRUFBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUNoRSxDQUFDOzs7V0FBQTtRQUNELDJDQUFXLEdBQVgsY0FBcUIsQ0FBQztRQUN0Qix5Q0FBUyxHQUFUO1lBQ0UsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUNELG9DQUFJLEdBQUosVUFBSyxJQUFZO1lBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDO1FBQzVCLENBQUM7UUFDRCwyQ0FBVyxHQUFYLFVBQVksSUFBWSxFQUFFLElBQXNCO1lBQzlDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsZ0RBQWdCLEdBQWhCLFVBQWlCLElBQVk7WUFDM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLENBQUM7UUFDRCxnREFBZ0IsR0FBaEIsVUFBaUIsSUFBWTtZQUMzQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELDhDQUFjLEdBQWQsY0FBd0IsQ0FBQztRQUN6Qiw4Q0FBYyxHQUFkLGNBQXdCLENBQUM7UUFDekIsd0NBQVEsR0FBUjtZQUNFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxzQ0FBTSxHQUFOO1lBQ0UsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakIsQ0FBQztRQUNPLHdEQUF3QixHQUFoQyxVQUFpQyxJQUFZO1lBQzNDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUNPLGlEQUFpQixHQUF6QixVQUEwQixJQUFZO1lBQ3BDLElBQUksR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0MsSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsRUFBRTtnQkFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFJLElBQUksTUFBRyxDQUFDLENBQUM7YUFDeEI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzFDO1FBQ0gsQ0FBQztRQUNPLGdEQUFnQixHQUF4QjtZQUNFLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN6QixDQUFDO1FBQ0gsNEJBQUM7SUFBRCxDQUFDLEFBbERELElBa0RDO0lBbERZLHNEQUFxQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHvJtW1ha2VQYXJzZWRUcmFuc2xhdGlvbiwgybVQYXJzZWRUcmFuc2xhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvbG9jYWxpemUnO1xuXG5pbXBvcnQge01lc3NhZ2VSZW5kZXJlcn0gZnJvbSAnLi9tZXNzYWdlX3JlbmRlcmVyJztcblxuLyoqXG4gKiBBIG1lc3NhZ2UgcmVuZGVyZXIgdGhhdCBvdXRwdXRzIGDJtVBhcnNlZFRyYW5zbGF0aW9uYCBvYmplY3RzLlxuICovXG5leHBvcnQgY2xhc3MgVGFyZ2V0TWVzc2FnZVJlbmRlcmVyIGltcGxlbWVudHMgTWVzc2FnZVJlbmRlcmVyPMm1UGFyc2VkVHJhbnNsYXRpb24+IHtcbiAgcHJpdmF0ZSBjdXJyZW50OiBNZXNzYWdlSW5mbyA9IHttZXNzYWdlUGFydHM6IFtdLCBwbGFjZWhvbGRlck5hbWVzOiBbXSwgdGV4dDogJyd9O1xuICBwcml2YXRlIGljdURlcHRoID0gMDtcblxuICBnZXQgbWVzc2FnZSgpOiDJtVBhcnNlZFRyYW5zbGF0aW9uIHtcbiAgICBjb25zdCB7bWVzc2FnZVBhcnRzLCBwbGFjZWhvbGRlck5hbWVzfSA9IHRoaXMuY3VycmVudDtcbiAgICByZXR1cm4gybVtYWtlUGFyc2VkVHJhbnNsYXRpb24obWVzc2FnZVBhcnRzLCBwbGFjZWhvbGRlck5hbWVzKTtcbiAgfVxuICBzdGFydFJlbmRlcigpOiB2b2lkIHt9XG4gIGVuZFJlbmRlcigpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JlTWVzc2FnZVBhcnQoKTtcbiAgfVxuICB0ZXh0KHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudC50ZXh0ICs9IHRleHQ7XG4gIH1cbiAgcGxhY2Vob2xkZXIobmFtZTogc3RyaW5nLCBib2R5OiBzdHJpbmd8dW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJQbGFjZWhvbGRlcihuYW1lKTtcbiAgfVxuICBzdGFydFBsYWNlaG9sZGVyKG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyUGxhY2Vob2xkZXIobmFtZSk7XG4gIH1cbiAgY2xvc2VQbGFjZWhvbGRlcihuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlclBsYWNlaG9sZGVyKG5hbWUpO1xuICB9XG4gIHN0YXJ0Q29udGFpbmVyKCk6IHZvaWQge31cbiAgY2xvc2VDb250YWluZXIoKTogdm9pZCB7fVxuICBzdGFydEljdSgpOiB2b2lkIHtcbiAgICB0aGlzLmljdURlcHRoKys7XG4gICAgdGhpcy50ZXh0KCd7Jyk7XG4gIH1cbiAgZW5kSWN1KCk6IHZvaWQge1xuICAgIHRoaXMuaWN1RGVwdGgtLTtcbiAgICB0aGlzLnRleHQoJ30nKTtcbiAgfVxuICBwcml2YXRlIG5vcm1hbGl6ZVBsYWNlaG9sZGVyTmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmFtZS5yZXBsYWNlKC8tL2csICdfJyk7XG4gIH1cbiAgcHJpdmF0ZSByZW5kZXJQbGFjZWhvbGRlcihuYW1lOiBzdHJpbmcpIHtcbiAgICBuYW1lID0gdGhpcy5ub3JtYWxpemVQbGFjZWhvbGRlck5hbWUobmFtZSk7XG4gICAgaWYgKHRoaXMuaWN1RGVwdGggPiAwKSB7XG4gICAgICB0aGlzLnRleHQoYHske25hbWV9fWApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0b3JlTWVzc2FnZVBhcnQoKTtcbiAgICAgIHRoaXMuY3VycmVudC5wbGFjZWhvbGRlck5hbWVzLnB1c2gobmFtZSk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgc3RvcmVNZXNzYWdlUGFydCgpIHtcbiAgICB0aGlzLmN1cnJlbnQubWVzc2FnZVBhcnRzLnB1c2godGhpcy5jdXJyZW50LnRleHQpO1xuICAgIHRoaXMuY3VycmVudC50ZXh0ID0gJyc7XG4gIH1cbn1cblxuaW50ZXJmYWNlIE1lc3NhZ2VJbmZvIHtcbiAgbWVzc2FnZVBhcnRzOiBzdHJpbmdbXTtcbiAgcGxhY2Vob2xkZXJOYW1lczogc3RyaW5nW107XG4gIHRleHQ6IHN0cmluZztcbn1cbiJdfQ==
@@ -1,148 +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/translate/translation_files/translation_loader", ["require", "exports", "tslib"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.TranslationLoader = void 0;
13
- var tslib_1 = require("tslib");
14
- /**
15
- * Use this class to load a collection of translation files from disk.
16
- */
17
- var TranslationLoader = /** @class */ (function () {
18
- function TranslationLoader(fs, translationParsers, duplicateTranslation,
19
- /** @deprecated */ diagnostics) {
20
- this.fs = fs;
21
- this.translationParsers = translationParsers;
22
- this.duplicateTranslation = duplicateTranslation;
23
- this.diagnostics = diagnostics;
24
- }
25
- /**
26
- * Load and parse the translation files into a collection of `TranslationBundles`.
27
- *
28
- * @param translationFilePaths An array, per locale, of absolute paths to translation files.
29
- *
30
- * For each locale to be translated, there is an element in `translationFilePaths`. Each element
31
- * is an array of absolute paths to translation files for that locale.
32
- * If the array contains more than one translation file, then the translations are merged.
33
- * If allowed by the `duplicateTranslation` property, when more than one translation has the same
34
- * message id, the message from the earlier translation file in the array is used.
35
- * For example, if the files are `[app.xlf, lib-1.xlf, lib-2.xlif]` then a message that appears in
36
- * `app.xlf` will override the same message in `lib-1.xlf` or `lib-2.xlf`.
37
- *
38
- * @param translationFileLocales An array of locales for each of the translation files.
39
- *
40
- * If there is a locale provided in `translationFileLocales` then this is used rather than a
41
- * locale extracted from the file itself.
42
- * If there is neither a provided locale nor a locale parsed from the file, then an error is
43
- * thrown.
44
- * If there are both a provided locale and a locale parsed from the file, and they are not the
45
- * same, then a warning is reported.
46
- */
47
- TranslationLoader.prototype.loadBundles = function (translationFilePaths, translationFileLocales) {
48
- var _this = this;
49
- return translationFilePaths.map(function (filePaths, index) {
50
- var providedLocale = translationFileLocales[index];
51
- return _this.mergeBundles(filePaths, providedLocale);
52
- });
53
- };
54
- /**
55
- * Load all the translations from the file at the given `filePath`.
56
- */
57
- TranslationLoader.prototype.loadBundle = function (filePath, providedLocale) {
58
- var e_1, _a, e_2, _b;
59
- var fileContents = this.fs.readFile(filePath);
60
- var unusedParsers = new Map();
61
- try {
62
- for (var _c = (0, tslib_1.__values)(this.translationParsers), _d = _c.next(); !_d.done; _d = _c.next()) {
63
- var translationParser = _d.value;
64
- var result = translationParser.analyze(filePath, fileContents);
65
- if (!result.canParse) {
66
- unusedParsers.set(translationParser, result);
67
- continue;
68
- }
69
- var _e = translationParser.parse(filePath, fileContents, result.hint), parsedLocale = _e.locale, translations = _e.translations, diagnostics = _e.diagnostics;
70
- if (diagnostics.hasErrors) {
71
- throw new Error(diagnostics.formatDiagnostics("The translation file \"" + filePath + "\" could not be parsed."));
72
- }
73
- var locale = providedLocale || parsedLocale;
74
- if (locale === undefined) {
75
- throw new Error("The translation file \"" + filePath + "\" does not contain a target locale and no explicit locale was provided for this file.");
76
- }
77
- if (parsedLocale !== undefined && providedLocale !== undefined &&
78
- parsedLocale !== providedLocale) {
79
- diagnostics.warn("The provided locale \"" + providedLocale + "\" does not match the target locale \"" + parsedLocale + "\" found in the translation file \"" + filePath + "\".");
80
- }
81
- // If we were passed a diagnostics object then copy the messages over to it.
82
- if (this.diagnostics) {
83
- this.diagnostics.merge(diagnostics);
84
- }
85
- return { locale: locale, translations: translations, diagnostics: diagnostics };
86
- }
87
- }
88
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
89
- finally {
90
- try {
91
- if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
92
- }
93
- finally { if (e_1) throw e_1.error; }
94
- }
95
- var diagnosticsMessages = [];
96
- try {
97
- for (var _f = (0, tslib_1.__values)(unusedParsers.entries()), _g = _f.next(); !_g.done; _g = _f.next()) {
98
- var _h = (0, tslib_1.__read)(_g.value, 2), parser = _h[0], result = _h[1];
99
- diagnosticsMessages.push(result.diagnostics.formatDiagnostics("\n" + parser.constructor.name + " cannot parse translation file."));
100
- }
101
- }
102
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
103
- finally {
104
- try {
105
- if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
106
- }
107
- finally { if (e_2) throw e_2.error; }
108
- }
109
- throw new Error("There is no \"TranslationParser\" that can parse this translation file: " + filePath + "." +
110
- diagnosticsMessages.join('\n'));
111
- };
112
- /**
113
- * There is more than one `filePath` for this locale, so load each as a bundle and then merge
114
- * them all together.
115
- */
116
- TranslationLoader.prototype.mergeBundles = function (filePaths, providedLocale) {
117
- var _this = this;
118
- var bundles = filePaths.map(function (filePath) { return _this.loadBundle(filePath, providedLocale); });
119
- var bundle = bundles[0];
120
- var _loop_1 = function (i) {
121
- var nextBundle = bundles[i];
122
- if (nextBundle.locale !== bundle.locale) {
123
- if (this_1.diagnostics) {
124
- var previousFiles = filePaths.slice(0, i).map(function (f) { return "\"" + f + "\""; }).join(', ');
125
- this_1.diagnostics.warn("When merging multiple translation files, the target locale \"" + nextBundle.locale + "\" found in \"" + filePaths[i] + "\" does not match the target locale \"" + bundle.locale + "\" found in earlier files [" + previousFiles + "].");
126
- }
127
- }
128
- Object.keys(nextBundle.translations).forEach(function (messageId) {
129
- var _a;
130
- if (bundle.translations[messageId] !== undefined) {
131
- (_a = _this.diagnostics) === null || _a === void 0 ? void 0 : _a.add(_this.duplicateTranslation, "Duplicate translations for message \"" + messageId + "\" when merging \"" + filePaths[i] + "\".");
132
- }
133
- else {
134
- bundle.translations[messageId] = nextBundle.translations[messageId];
135
- }
136
- });
137
- };
138
- var this_1 = this;
139
- for (var i = 1; i < bundles.length; i++) {
140
- _loop_1(i);
141
- }
142
- return bundle;
143
- };
144
- return TranslationLoader;
145
- }());
146
- exports.TranslationLoader = TranslationLoader;
147
- });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb25fbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbG9jYWxpemUvc3JjL3Rvb2xzL3NyYy90cmFuc2xhdGUvdHJhbnNsYXRpb25fZmlsZXMvdHJhbnNsYXRpb25fbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7SUFhQTs7T0FFRztJQUNIO1FBQ0UsMkJBQ1ksRUFBc0IsRUFBVSxrQkFBNEMsRUFDNUUsb0JBQWdEO1FBQ3hELGtCQUFrQixDQUFTLFdBQXlCO1lBRjVDLE9BQUUsR0FBRixFQUFFLENBQW9CO1lBQVUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUEwQjtZQUM1RSx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQTRCO1lBQzdCLGdCQUFXLEdBQVgsV0FBVyxDQUFjO1FBQUcsQ0FBQztRQUU1RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1dBcUJHO1FBQ0gsdUNBQVcsR0FBWCxVQUNJLG9CQUF3QyxFQUN4QyxzQkFBNEM7WUFGaEQsaUJBT0M7WUFKQyxPQUFPLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxVQUFDLFNBQVMsRUFBRSxLQUFLO2dCQUMvQyxJQUFNLGNBQWMsR0FBRyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDckQsT0FBTyxLQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUN0RCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRDs7V0FFRztRQUNLLHNDQUFVLEdBQWxCLFVBQW1CLFFBQXdCLEVBQUUsY0FBZ0M7O1lBRTNFLElBQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hELElBQU0sYUFBYSxHQUFHLElBQUksR0FBRyxFQUE4QyxDQUFDOztnQkFDNUUsS0FBZ0MsSUFBQSxLQUFBLHNCQUFBLElBQUks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Q0FBQyxJQUFJLE9BQUEsT0FBSSxDQUFDLE9BQUcsRUFBUixDQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQzFFLE9BQUssV0FBVyxDQUFDLElBQUksQ0FBQyxrRUFDbEIsVUFBVSxDQUFDLE1BQU0sc0JBQWUsU0FBUyxDQUFDLENBQUMsQ0FBQyw4Q0FDNUMsTUFBTSxDQUFDLE1BQU0sbUNBQTZCLGFBQWEsT0FBSSxDQUFDLENBQUM7cUJBQ2xFO2lCQUNGO2dCQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFBLFNBQVM7O29CQUNwRCxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEtBQUssU0FBUyxFQUFFO3dCQUNoRCxNQUFBLEtBQUksQ0FBQyxXQUFXLDBDQUFFLEdBQUcsQ0FDakIsS0FBSSxDQUFDLG9CQUFvQixFQUN6QiwwQ0FBdUMsU0FBUywwQkFBbUIsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFJLENBQUMsQ0FBQztxQkFDMUY7eUJBQU07d0JBQ0wsTUFBTSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO3FCQUNyRTtnQkFDSCxDQUFDLENBQUMsQ0FBQzs7O1lBbEJMLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRTt3QkFBOUIsQ0FBQzthQW1CVDtZQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFDSCx3QkFBQztJQUFELENBQUMsQUF2SEQsSUF1SEM7SUF2SFksOENBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge0Fic29sdXRlRnNQYXRoLCBSZWFkb25seUZpbGVTeXN0ZW19IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvZmlsZV9zeXN0ZW0nO1xuaW1wb3J0IHtEaWFnbm9zdGljSGFuZGxpbmdTdHJhdGVneSwgRGlhZ25vc3RpY3N9IGZyb20gJy4uLy4uL2RpYWdub3N0aWNzJztcbmltcG9ydCB7VHJhbnNsYXRpb25CdW5kbGV9IGZyb20gJy4uL3RyYW5zbGF0b3InO1xuXG5pbXBvcnQge1BhcnNlQW5hbHlzaXMsIFRyYW5zbGF0aW9uUGFyc2VyfSBmcm9tICcuL3RyYW5zbGF0aW9uX3BhcnNlcnMvdHJhbnNsYXRpb25fcGFyc2VyJztcblxuLyoqXG4gKiBVc2UgdGhpcyBjbGFzcyB0byBsb2FkIGEgY29sbGVjdGlvbiBvZiB0cmFuc2xhdGlvbiBmaWxlcyBmcm9tIGRpc2suXG4gKi9cbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvbkxvYWRlciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBmczogUmVhZG9ubHlGaWxlU3lzdGVtLCBwcml2YXRlIHRyYW5zbGF0aW9uUGFyc2VyczogVHJhbnNsYXRpb25QYXJzZXI8YW55PltdLFxuICAgICAgcHJpdmF0ZSBkdXBsaWNhdGVUcmFuc2xhdGlvbjogRGlhZ25vc3RpY0hhbmRsaW5nU3RyYXRlZ3ksXG4gICAgICAvKiogQGRlcHJlY2F0ZWQgKi8gcHJpdmF0ZSBkaWFnbm9zdGljcz86IERpYWdub3N0aWNzKSB7fVxuXG4gIC8qKlxuICAgKiBMb2FkIGFuZCBwYXJzZSB0aGUgdHJhbnNsYXRpb24gZmlsZXMgaW50byBhIGNvbGxlY3Rpb24gb2YgYFRyYW5zbGF0aW9uQnVuZGxlc2AuXG4gICAqXG4gICAqIEBwYXJhbSB0cmFuc2xhdGlvbkZpbGVQYXRocyBBbiBhcnJheSwgcGVyIGxvY2FsZSwgb2YgYWJzb2x1dGUgcGF0aHMgdG8gdHJhbnNsYXRpb24gZmlsZXMuXG4gICAqXG4gICAqIEZvciBlYWNoIGxvY2FsZSB0byBiZSB0cmFuc2xhdGVkLCB0aGVyZSBpcyBhbiBlbGVtZW50IGluIGB0cmFuc2xhdGlvbkZpbGVQYXRoc2AuIEVhY2ggZWxlbWVudFxuICAgKiBpcyBhbiBhcnJheSBvZiBhYnNvbHV0ZSBwYXRocyB0byB0cmFuc2xhdGlvbiBmaWxlcyBmb3IgdGhhdCBsb2NhbGUuXG4gICAqIElmIHRoZSBhcnJheSBjb250YWlucyBtb3JlIHRoYW4gb25lIHRyYW5zbGF0aW9uIGZpbGUsIHRoZW4gdGhlIHRyYW5zbGF0aW9ucyBhcmUgbWVyZ2VkLlxuICAgKiBJZiBhbGxvd2VkIGJ5IHRoZSBgZHVwbGljYXRlVHJhbnNsYXRpb25gIHByb3BlcnR5LCB3aGVuIG1vcmUgdGhhbiBvbmUgdHJhbnNsYXRpb24gaGFzIHRoZSBzYW1lXG4gICAqIG1lc3NhZ2UgaWQsIHRoZSBtZXNzYWdlIGZyb20gdGhlIGVhcmxpZXIgdHJhbnNsYXRpb24gZmlsZSBpbiB0aGUgYXJyYXkgaXMgdXNlZC5cbiAgICogRm9yIGV4YW1wbGUsIGlmIHRoZSBmaWxlcyBhcmUgYFthcHAueGxmLCBsaWItMS54bGYsIGxpYi0yLnhsaWZdYCB0aGVuIGEgbWVzc2FnZSB0aGF0IGFwcGVhcnMgaW5cbiAgICogYGFwcC54bGZgIHdpbGwgb3ZlcnJpZGUgdGhlIHNhbWUgbWVzc2FnZSBpbiBgbGliLTEueGxmYCBvciBgbGliLTIueGxmYC5cbiAgICpcbiAgICogQHBhcmFtIHRyYW5zbGF0aW9uRmlsZUxvY2FsZXMgQW4gYXJyYXkgb2YgbG9jYWxlcyBmb3IgZWFjaCBvZiB0aGUgdHJhbnNsYXRpb24gZmlsZXMuXG4gICAqXG4gICAqIElmIHRoZXJlIGlzIGEgbG9jYWxlIHByb3ZpZGVkIGluIGB0cmFuc2xhdGlvbkZpbGVMb2NhbGVzYCB0aGVuIHRoaXMgaXMgdXNlZCByYXRoZXIgdGhhbiBhXG4gICAqIGxvY2FsZSBleHRyYWN0ZWQgZnJvbSB0aGUgZmlsZSBpdHNlbGYuXG4gICAqIElmIHRoZXJlIGlzIG5laXRoZXIgYSBwcm92aWRlZCBsb2NhbGUgbm9yIGEgbG9jYWxlIHBhcnNlZCBmcm9tIHRoZSBmaWxlLCB0aGVuIGFuIGVycm9yIGlzXG4gICAqIHRocm93bi5cbiAgICogSWYgdGhlcmUgYXJlIGJvdGggYSBwcm92aWRlZCBsb2NhbGUgYW5kIGEgbG9jYWxlIHBhcnNlZCBmcm9tIHRoZSBmaWxlLCBhbmQgdGhleSBhcmUgbm90IHRoZVxuICAgKiBzYW1lLCB0aGVuIGEgd2FybmluZyBpcyByZXBvcnRlZC5cbiAgICovXG4gIGxvYWRCdW5kbGVzKFxuICAgICAgdHJhbnNsYXRpb25GaWxlUGF0aHM6IEFic29sdXRlRnNQYXRoW11bXSxcbiAgICAgIHRyYW5zbGF0aW9uRmlsZUxvY2FsZXM6IChzdHJpbmd8dW5kZWZpbmVkKVtdKTogVHJhbnNsYXRpb25CdW5kbGVbXSB7XG4gICAgcmV0dXJuIHRyYW5zbGF0aW9uRmlsZVBhdGhzLm1hcCgoZmlsZVBhdGhzLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgcHJvdmlkZWRMb2NhbGUgPSB0cmFuc2xhdGlvbkZpbGVMb2NhbGVzW2luZGV4XTtcbiAgICAgIHJldHVybiB0aGlzLm1lcmdlQnVuZGxlcyhmaWxlUGF0aHMsIHByb3ZpZGVkTG9jYWxlKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGFsbCB0aGUgdHJhbnNsYXRpb25zIGZyb20gdGhlIGZpbGUgYXQgdGhlIGdpdmVuIGBmaWxlUGF0aGAuXG4gICAqL1xuICBwcml2YXRlIGxvYWRCdW5kbGUoZmlsZVBhdGg6IEFic29sdXRlRnNQYXRoLCBwcm92aWRlZExvY2FsZTogc3RyaW5nfHVuZGVmaW5lZCk6XG4gICAgICBUcmFuc2xhdGlvbkJ1bmRsZSB7XG4gICAgY29uc3QgZmlsZUNvbnRlbnRzID0gdGhpcy5mcy5yZWFkRmlsZShmaWxlUGF0aCk7XG4gICAgY29uc3QgdW51c2VkUGFyc2VycyA9IG5ldyBNYXA8VHJhbnNsYXRpb25QYXJzZXI8YW55PiwgUGFyc2VBbmFseXNpczxhbnk+PigpO1xuICAgIGZvciAoY29uc3QgdHJhbnNsYXRpb25QYXJzZXIgb2YgdGhpcy50cmFuc2xhdGlvblBhcnNlcnMpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRyYW5zbGF0aW9uUGFyc2VyLmFuYWx5emUoZmlsZVBhdGgsIGZpbGVDb250ZW50cyk7XG4gICAgICBpZiAoIXJlc3VsdC5jYW5QYXJzZSkge1xuICAgICAgICB1bnVzZWRQYXJzZXJzLnNldCh0cmFuc2xhdGlvblBhcnNlciwgcmVzdWx0KTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHtsb2NhbGU6IHBhcnNlZExvY2FsZSwgdHJhbnNsYXRpb25zLCBkaWFnbm9zdGljc30gPVxuICAgICAgICAgIHRyYW5zbGF0aW9uUGFyc2VyLnBhcnNlKGZpbGVQYXRoLCBmaWxlQ29udGVudHMsIHJlc3VsdC5oaW50KTtcbiAgICAgIGlmIChkaWFnbm9zdGljcy5oYXNFcnJvcnMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGRpYWdub3N0aWNzLmZvcm1hdERpYWdub3N0aWNzKFxuICAgICAgICAgICAgYFRoZSB0cmFuc2xhdGlvbiBmaWxlIFwiJHtmaWxlUGF0aH1cIiBjb3VsZCBub3QgYmUgcGFyc2VkLmApKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbG9jYWxlID0gcHJvdmlkZWRMb2NhbGUgfHwgcGFyc2VkTG9jYWxlO1xuICAgICAgaWYgKGxvY2FsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIHRyYW5zbGF0aW9uIGZpbGUgXCIke1xuICAgICAgICAgICAgZmlsZVBhdGh9XCIgZG9lcyBub3QgY29udGFpbiBhIHRhcmdldCBsb2NhbGUgYW5kIG5vIGV4cGxpY2l0IGxvY2FsZSB3YXMgcHJvdmlkZWQgZm9yIHRoaXMgZmlsZS5gKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHBhcnNlZExvY2FsZSAhPT0gdW5kZWZpbmVkICYmIHByb3ZpZGVkTG9jYWxlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICBwYXJzZWRMb2NhbGUgIT09IHByb3ZpZGVkTG9jYWxlKSB7XG4gICAgICAgIGRpYWdub3N0aWNzLndhcm4oXG4gICAgICAgICAgICBgVGhlIHByb3ZpZGVkIGxvY2FsZSBcIiR7cHJvdmlkZWRMb2NhbGV9XCIgZG9lcyBub3QgbWF0Y2ggdGhlIHRhcmdldCBsb2NhbGUgXCIke1xuICAgICAgICAgICAgICAgIHBhcnNlZExvY2FsZX1cIiBmb3VuZCBpbiB0aGUgdHJhbnNsYXRpb24gZmlsZSBcIiR7ZmlsZVBhdGh9XCIuYCk7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHdlIHdlcmUgcGFzc2VkIGEgZGlhZ25vc3RpY3Mgb2JqZWN0IHRoZW4gY29weSB0aGUgbWVzc2FnZXMgb3ZlciB0byBpdC5cbiAgICAgIGlmICh0aGlzLmRpYWdub3N0aWNzKSB7XG4gICAgICAgIHRoaXMuZGlhZ25vc3RpY3MubWVyZ2UoZGlhZ25vc3RpY3MpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge2xvY2FsZSwgdHJhbnNsYXRpb25zLCBkaWFnbm9zdGljc307XG4gICAgfVxuXG4gICAgY29uc3QgZGlhZ25vc3RpY3NNZXNzYWdlczogc3RyaW5nW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IFtwYXJzZXIsIHJlc3VsdF0gb2YgdW51c2VkUGFyc2Vycy5lbnRyaWVzKCkpIHtcbiAgICAgIGRpYWdub3N0aWNzTWVzc2FnZXMucHVzaChyZXN1bHQuZGlhZ25vc3RpY3MuZm9ybWF0RGlhZ25vc3RpY3MoXG4gICAgICAgICAgYFxcbiR7cGFyc2VyLmNvbnN0cnVjdG9yLm5hbWV9IGNhbm5vdCBwYXJzZSB0cmFuc2xhdGlvbiBmaWxlLmApKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgVGhlcmUgaXMgbm8gXCJUcmFuc2xhdGlvblBhcnNlclwiIHRoYXQgY2FuIHBhcnNlIHRoaXMgdHJhbnNsYXRpb24gZmlsZTogJHtmaWxlUGF0aH0uYCArXG4gICAgICAgIGRpYWdub3N0aWNzTWVzc2FnZXMuam9pbignXFxuJykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgYGZpbGVQYXRoYCBmb3IgdGhpcyBsb2NhbGUsIHNvIGxvYWQgZWFjaCBhcyBhIGJ1bmRsZSBhbmQgdGhlbiBtZXJnZVxuICAgKiB0aGVtIGFsbCB0b2dldGhlci5cbiAgICovXG4gIHByaXZhdGUgbWVyZ2VCdW5kbGVzKGZpbGVQYXRoczogQWJzb2x1dGVGc1BhdGhbXSwgcHJvdmlkZWRMb2NhbGU6IHN0cmluZ3x1bmRlZmluZWQpOlxuICAgICAgVHJhbnNsYXRpb25CdW5kbGUge1xuICAgIGNvbnN0IGJ1bmRsZXMgPSBmaWxlUGF0aHMubWFwKGZpbGVQYXRoID0+IHRoaXMubG9hZEJ1bmRsZShmaWxlUGF0aCwgcHJvdmlkZWRMb2NhbGUpKTtcbiAgICBjb25zdCBidW5kbGUgPSBidW5kbGVzWzBdO1xuICAgIGZvciAobGV0IGkgPSAxOyBpIDwgYnVuZGxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgbmV4dEJ1bmRsZSA9IGJ1bmRsZXNbaV07XG4gICAgICBpZiAobmV4dEJ1bmRsZS5sb2NhbGUgIT09IGJ1bmRsZS5sb2NhbGUpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlhZ25vc3RpY3MpIHtcbiAgICAgICAgICBjb25zdCBwcmV2aW91c0ZpbGVzID0gZmlsZVBhdGhzLnNsaWNlKDAsIGkpLm1hcChmID0+IGBcIiR7Zn1cImApLmpvaW4oJywgJyk7XG4gICAgICAgICAgdGhpcy5kaWFnbm9zdGljcy53YXJuKGBXaGVuIG1lcmdpbmcgbXVsdGlwbGUgdHJhbnNsYXRpb24gZmlsZXMsIHRoZSB0YXJnZXQgbG9jYWxlIFwiJHtcbiAgICAgICAgICAgICAgbmV4dEJ1bmRsZS5sb2NhbGV9XCIgZm91bmQgaW4gXCIke2ZpbGVQYXRoc1tpXX1cIiBkb2VzIG5vdCBtYXRjaCB0aGUgdGFyZ2V0IGxvY2FsZSBcIiR7XG4gICAgICAgICAgICAgIGJ1bmRsZS5sb2NhbGV9XCIgZm91bmQgaW4gZWFybGllciBmaWxlcyBbJHtwcmV2aW91c0ZpbGVzfV0uYCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIE9iamVjdC5rZXlzKG5leHRCdW5kbGUudHJhbnNsYXRpb25zKS5mb3JFYWNoKG1lc3NhZ2VJZCA9PiB7XG4gICAgICAgIGlmIChidW5kbGUudHJhbnNsYXRpb25zW21lc3NhZ2VJZF0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuZGlhZ25vc3RpY3M/LmFkZChcbiAgICAgICAgICAgICAgdGhpcy5kdXBsaWNhdGVUcmFuc2xhdGlvbixcbiAgICAgICAgICAgICAgYER1cGxpY2F0ZSB0cmFuc2xhdGlvbnMgZm9yIG1lc3NhZ2UgXCIke21lc3NhZ2VJZH1cIiB3aGVuIG1lcmdpbmcgXCIke2ZpbGVQYXRoc1tpXX1cIi5gKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBidW5kbGUudHJhbnNsYXRpb25zW21lc3NhZ2VJZF0gPSBuZXh0QnVuZGxlLnRyYW5zbGF0aW9uc1ttZXNzYWdlSWRdO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGJ1bmRsZTtcbiAgfVxufVxuIl19