@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,157 +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/translate/main", ["require", "exports", "@angular/compiler-cli/src/ngtsc/file_system", "glob", "yargs", "@angular/localize/src/tools/src/diagnostics", "@angular/localize/src/tools/src/translate/asset_files/asset_translation_handler", "@angular/localize/src/tools/src/translate/output_path", "@angular/localize/src/tools/src/translate/source_files/source_file_translation_handler", "@angular/localize/src/tools/src/translate/translation_files/translation_loader", "@angular/localize/src/tools/src/translate/translation_files/translation_parsers/arb_translation_parser", "@angular/localize/src/tools/src/translate/translation_files/translation_parsers/simple_json_translation_parser", "@angular/localize/src/tools/src/translate/translation_files/translation_parsers/xliff1_translation_parser", "@angular/localize/src/tools/src/translate/translation_files/translation_parsers/xliff2_translation_parser", "@angular/localize/src/tools/src/translate/translation_files/translation_parsers/xtb_translation_parser", "@angular/localize/src/tools/src/translate/translator"], factory);
9
- }
10
- })(function (require, exports) {
11
- "use strict";
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.translateFiles = void 0;
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 glob = require("glob");
23
- var yargs = require("yargs");
24
- var diagnostics_1 = require("@angular/localize/src/tools/src/diagnostics");
25
- var asset_translation_handler_1 = require("@angular/localize/src/tools/src/translate/asset_files/asset_translation_handler");
26
- var output_path_1 = require("@angular/localize/src/tools/src/translate/output_path");
27
- var source_file_translation_handler_1 = require("@angular/localize/src/tools/src/translate/source_files/source_file_translation_handler");
28
- var translation_loader_1 = require("@angular/localize/src/tools/src/translate/translation_files/translation_loader");
29
- var arb_translation_parser_1 = require("@angular/localize/src/tools/src/translate/translation_files/translation_parsers/arb_translation_parser");
30
- var simple_json_translation_parser_1 = require("@angular/localize/src/tools/src/translate/translation_files/translation_parsers/simple_json_translation_parser");
31
- var xliff1_translation_parser_1 = require("@angular/localize/src/tools/src/translate/translation_files/translation_parsers/xliff1_translation_parser");
32
- var xliff2_translation_parser_1 = require("@angular/localize/src/tools/src/translate/translation_files/translation_parsers/xliff2_translation_parser");
33
- var xtb_translation_parser_1 = require("@angular/localize/src/tools/src/translate/translation_files/translation_parsers/xtb_translation_parser");
34
- var translator_1 = require("@angular/localize/src/tools/src/translate/translator");
35
- if (require.main === module) {
36
- process.title = 'Angular Localization Message Translator (localize-translate)';
37
- var args = process.argv.slice(2);
38
- var options = yargs
39
- .option('r', {
40
- alias: 'root',
41
- required: true,
42
- describe: 'The root path of the files to translate, either absolute or relative to the current working directory. E.g. `dist/en`.',
43
- type: 'string',
44
- })
45
- .option('s', {
46
- alias: 'source',
47
- required: true,
48
- describe: 'A glob pattern indicating what files to translate, relative to the `root` path. E.g. `bundles/**/*`.',
49
- type: 'string',
50
- })
51
- .option('l', {
52
- alias: 'source-locale',
53
- describe: 'The source locale of the application. If this is provided then a copy of the application will be created with no translation but just the `$localize` calls stripped out.',
54
- type: 'string',
55
- })
56
- .option('t', {
57
- alias: 'translations',
58
- required: true,
59
- array: true,
60
- describe: 'A list of paths to the translation files to load, either absolute or relative to the current working directory.\n' +
61
- 'E.g. `-t src/locale/messages.en.xlf src/locale/messages.fr.xlf src/locale/messages.de.xlf`.\n' +
62
- 'If you want to merge multiple translation files for each locale, then provide the list of files in an array.\n' +
63
- 'Note that the arrays must be in double quotes if you include any whitespace within the array.\n' +
64
- 'E.g. `-t "[src/locale/messages.en.xlf, src/locale/messages-2.en.xlf]" [src/locale/messages.fr.xlf,src/locale/messages-2.fr.xlf]`',
65
- type: 'string',
66
- })
67
- .option('target-locales', {
68
- array: true,
69
- describe: 'A list of target locales for the translation files, which will override any target locale parsed from the translation file.\n' +
70
- 'E.g. "-t en fr de".',
71
- type: 'string',
72
- })
73
- .option('o', {
74
- alias: 'outputPath',
75
- required: true,
76
- describe: 'A output path pattern to where the translated files will be written.\n' +
77
- 'The path must be either absolute or relative to the current working directory.\n' +
78
- 'The marker `{{LOCALE}}` will be replaced with the target locale. E.g. `dist/{{LOCALE}}`.',
79
- type: 'string',
80
- })
81
- .option('m', {
82
- alias: 'missingTranslation',
83
- describe: 'How to handle missing translations.',
84
- choices: ['error', 'warning', 'ignore'],
85
- default: 'warning',
86
- type: 'string',
87
- })
88
- .option('d', {
89
- alias: 'duplicateTranslation',
90
- describe: 'How to handle duplicate translations.',
91
- choices: ['error', 'warning', 'ignore'],
92
- default: 'warning',
93
- type: 'string',
94
- })
95
- .strict()
96
- .help()
97
- .parse(args);
98
- var fs = new file_system_1.NodeJSFileSystem();
99
- (0, file_system_1.setFileSystem)(fs);
100
- var sourceRootPath = options.r;
101
- var sourceFilePaths = glob.sync(options.s, { cwd: sourceRootPath, nodir: true });
102
- var translationFilePaths = convertArraysFromArgs(options.t);
103
- var outputPathFn = (0, output_path_1.getOutputPathFn)(fs, fs.resolve(options.o));
104
- var diagnostics = new diagnostics_1.Diagnostics();
105
- var missingTranslation = options.m;
106
- var duplicateTranslation = options.d;
107
- var sourceLocale = options.l;
108
- var translationFileLocales = options['target-locales'] || [];
109
- translateFiles({
110
- sourceRootPath: sourceRootPath,
111
- sourceFilePaths: sourceFilePaths,
112
- translationFilePaths: translationFilePaths,
113
- translationFileLocales: translationFileLocales,
114
- outputPathFn: outputPathFn,
115
- diagnostics: diagnostics,
116
- missingTranslation: missingTranslation,
117
- duplicateTranslation: duplicateTranslation,
118
- sourceLocale: sourceLocale
119
- });
120
- diagnostics.messages.forEach(function (m) { return console.warn(m.type + ": " + m.message); });
121
- process.exit(diagnostics.hasErrors ? 1 : 0);
122
- }
123
- function translateFiles(_a) {
124
- var sourceRootPath = _a.sourceRootPath, sourceFilePaths = _a.sourceFilePaths, translationFilePaths = _a.translationFilePaths, translationFileLocales = _a.translationFileLocales, outputPathFn = _a.outputPathFn, diagnostics = _a.diagnostics, missingTranslation = _a.missingTranslation, duplicateTranslation = _a.duplicateTranslation, sourceLocale = _a.sourceLocale;
125
- var fs = (0, file_system_1.getFileSystem)();
126
- var translationLoader = new translation_loader_1.TranslationLoader(fs, [
127
- new xliff2_translation_parser_1.Xliff2TranslationParser(),
128
- new xliff1_translation_parser_1.Xliff1TranslationParser(),
129
- new xtb_translation_parser_1.XtbTranslationParser(),
130
- new simple_json_translation_parser_1.SimpleJsonTranslationParser(),
131
- new arb_translation_parser_1.ArbTranslationParser(),
132
- ], duplicateTranslation, diagnostics);
133
- var resourceProcessor = new translator_1.Translator(fs, [
134
- new source_file_translation_handler_1.SourceFileTranslationHandler(fs, { missingTranslation: missingTranslation }),
135
- new asset_translation_handler_1.AssetTranslationHandler(fs),
136
- ], diagnostics);
137
- // Convert all the `translationFilePaths` elements to arrays.
138
- var translationFilePathsArrays = translationFilePaths.map(function (filePaths) {
139
- return Array.isArray(filePaths) ? filePaths.map(function (p) { return fs.resolve(p); }) : [fs.resolve(filePaths)];
140
- });
141
- var translations = translationLoader.loadBundles(translationFilePathsArrays, translationFileLocales);
142
- sourceRootPath = fs.resolve(sourceRootPath);
143
- resourceProcessor.translateFiles(sourceFilePaths.map(file_system_1.relativeFrom), fs.resolve(sourceRootPath), outputPathFn, translations, sourceLocale);
144
- }
145
- exports.translateFiles = translateFiles;
146
- /**
147
- * Parse each of the given string `args` and convert it to an array if it is of the form
148
- * `[abc, def, ghi]`, i.e. it is enclosed in square brackets with comma delimited items.
149
- * @param args The string to potentially convert to arrays.
150
- */
151
- function convertArraysFromArgs(args) {
152
- return args.map(function (arg) { return (arg.startsWith('[') && arg.endsWith(']')) ?
153
- arg.slice(1, -1).split(',').map(function (arg) { return arg.trim(); }) :
154
- arg; });
155
- }
156
- });
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2xvY2FsaXplL3NyYy90b29scy9zcmMvdHJhbnNsYXRlL21haW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztJQUNBOzs7Ozs7T0FNRztJQUNILDJFQUF5SDtJQUN6SCwyQkFBNkI7SUFDN0IsNkJBQStCO0lBRS9CLDJFQUF1RTtJQUN2RSw2SEFBZ0Y7SUFDaEYscUZBQTREO0lBQzVELDBJQUE0RjtJQUM1RixxSEFBeUU7SUFDekUsaUpBQW9HO0lBQ3BHLGlLQUFtSDtJQUNuSCx1SkFBMEc7SUFDMUcsdUpBQTBHO0lBQzFHLGlKQUFvRztJQUNwRyxtRkFBd0M7SUFFeEMsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtRQUMzQixPQUFPLENBQUMsS0FBSyxHQUFHLDhEQUE4RCxDQUFDO1FBQy9FLElBQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLElBQU0sT0FBTyxHQUNULEtBQUs7YUFDQSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsS0FBSyxFQUFFLE1BQU07WUFDYixRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFDSix3SEFBd0g7WUFDNUgsSUFBSSxFQUFFLFFBQVE7U0FDZixDQUFDO2FBQ0QsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLEtBQUssRUFBRSxRQUFRO1lBQ2YsUUFBUSxFQUFFLElBQUk7WUFDZCxRQUFRLEVBQ0osc0dBQXNHO1lBQzFHLElBQUksRUFBRSxRQUFRO1NBQ2YsQ0FBQzthQUVELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxLQUFLLEVBQUUsZUFBZTtZQUN0QixRQUFRLEVBQ0osMktBQTJLO1lBQy9LLElBQUksRUFBRSxRQUFRO1NBQ2YsQ0FBQzthQUVELE1BQU0sQ0FBQyxHQUFHLEVBQUU7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QUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUF0RixDQUFzRixDQUFDLENBQUM7UUFFaEcsSUFBTSxZQUFZLEdBQ2QsaUJBQWlCLENBQUMsV0FBVyxDQUFDLDBCQUEwQixFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFDdEYsY0FBYyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDNUMsaUJBQWlCLENBQUMsY0FBYyxDQUM1QixlQUFlLENBQUMsR0FBRyxDQUFDLDBCQUFZLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQ3pGLFlBQVksQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUExQ0Qsd0NBMENDO0lBRUQ7Ozs7T0FJRztJQUNILFNBQVMscUJBQXFCLENBQUMsSUFBYztRQUMzQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQ1gsVUFBQSxHQUFHLElBQUksT0FBQSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0MsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQUEsR0FBRyxJQUFJLE9BQUEsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFWLENBQVUsQ0FBQyxDQUFDLENBQUM7WUFDcEQsR0FBRyxFQUZBLENBRUEsQ0FBQyxDQUFDO0lBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtnZXRGaWxlU3lzdGVtLCBOb2RlSlNGaWxlU3lzdGVtLCBzZXRGaWxlU3lzdGVtLCByZWxhdGl2ZUZyb219IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvZmlsZV9zeXN0ZW0nO1xuaW1wb3J0ICogYXMgZ2xvYiBmcm9tICdnbG9iJztcbmltcG9ydCAqIGFzIHlhcmdzIGZyb20gJ3lhcmdzJztcblxuaW1wb3J0IHtEaWFnbm9zdGljSGFuZGxpbmdTdHJhdGVneSwgRGlhZ25vc3RpY3N9IGZyb20gJy4uL2RpYWdub3N0aWNzJztcbmltcG9ydCB7QXNzZXRUcmFuc2xhdGlvbkhhbmRsZXJ9IGZyb20gJy4vYXNzZXRfZmlsZXMvYXNzZXRfdHJhbnNsYXRpb25faGFuZGxlcic7XG5pbXBvcnQge2dldE91dHB1dFBhdGhGbiwgT3V0cHV0UGF0aEZufSBmcm9tICcuL291dHB1dF9wYXRoJztcbmltcG9ydCB7U291cmNlRmlsZVRyYW5zbGF0aW9uSGFuZGxlcn0gZnJvbSAnLi9zb3VyY2VfZmlsZXMvc291cmNlX2ZpbGVfdHJhbnNsYXRpb25faGFuZGxlcic7XG5pbXBvcnQge1RyYW5zbGF0aW9uTG9hZGVyfSBmcm9tICcuL3RyYW5zbGF0aW9uX2ZpbGVzL3RyYW5zbGF0aW9uX2xvYWRlcic7XG5pbXBvcnQge0FyYlRyYW5zbGF0aW9uUGFyc2VyfSBmcm9tICcuL3RyYW5zbGF0aW9uX2ZpbGVzL3RyYW5zbGF0aW9uX3BhcnNlcnMvYXJiX3RyYW5zbGF0aW9uX3BhcnNlcic7XG5pbXBvcnQge1NpbXBsZUpzb25UcmFuc2xhdGlvblBhcnNlcn0gZnJvbSAnLi90cmFuc2xhdGlvbl9maWxlcy90cmFuc2xhdGlvbl9wYXJzZXJzL3NpbXBsZV9qc29uX3RyYW5zbGF0aW9uX3BhcnNlcic7XG5pbXBvcnQge1hsaWZmMVRyYW5zbGF0aW9uUGFyc2VyfSBmcm9tICcuL3RyYW5zbGF0aW9uX2ZpbGVzL3RyYW5zbGF0aW9uX3BhcnNlcnMveGxpZmYxX3RyYW5zbGF0aW9uX3BhcnNlcic7XG5pbXBvcnQge1hsaWZmMlRyYW5zbGF0aW9uUGFyc2VyfSBmcm9tICcuL3RyYW5zbGF0aW9uX2ZpbGVzL3RyYW5zbGF0aW9uX3BhcnNlcnMveGxpZmYyX3RyYW5zbGF0aW9uX3BhcnNlcic7XG5pbXBvcnQge1h0YlRyYW5zbGF0aW9uUGFyc2VyfSBmcm9tICcuL3RyYW5zbGF0aW9uX2ZpbGVzL3RyYW5zbGF0aW9uX3BhcnNlcnMveHRiX3RyYW5zbGF0aW9uX3BhcnNlcic7XG5pbXBvcnQge1RyYW5zbGF0b3J9IGZyb20gJy4vdHJhbnNsYXRvcic7XG5cbmlmIChyZXF1aXJlLm1haW4gPT09IG1vZHVsZSkge1xuICBwcm9jZXNzLnRpdGxlID0gJ0FuZ3VsYXIgTG9jYWxpemF0aW9uIE1lc3NhZ2UgVHJhbnNsYXRvciAobG9jYWxpemUtdHJhbnNsYXRlKSc7XG4gIGNvbnN0IGFyZ3MgPSBwcm9jZXNzLmFyZ3Yuc2xpY2UoMik7XG4gIGNvbnN0IG9wdGlvbnMgPVxuICAgICAgeWFyZ3NcbiAgICAgICAgICAub3B0aW9uKCdyJywge1xuICAgICAgICAgICAgYWxpYXM6ICdyb290JyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgZGVzY3JpYmU6XG4gICAgICAgICAgICAgICAgJ1RoZSByb290IHBhdGggb2YgdGhlIGZpbGVzIHRvIHRyYW5zbGF0ZSwgZWl0aGVyIGFic29sdXRlIG9yIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LiBFLmcuIGBkaXN0L2VuYC4nLFxuICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgfSlcbiAgICAgICAgICAub3B0aW9uKCdzJywge1xuICAgICAgICAgICAgYWxpYXM6ICdzb3VyY2UnLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICBkZXNjcmliZTpcbiAgICAgICAgICAgICAgICAnQSBnbG9iIHBhdHRlcm4gaW5kaWNhdGluZyB3aGF0IGZpbGVzIHRvIHRyYW5zbGF0ZSwgcmVsYXRpdmUgdG8gdGhlIGByb290YCBwYXRoLiBFLmcuIGBidW5kbGVzLyoqLypgLicsXG4gICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgLm9wdGlvbignbCcsIHtcbiAgICAgICAgICAgIGFsaWFzOiAnc291cmNlLWxvY2FsZScsXG4gICAgICAgICAgICBkZXNjcmliZTpcbiAgICAgICAgICAgICAgICAnVGhlIHNvdXJjZSBsb2NhbGUgb2YgdGhlIGFwcGxpY2F0aW9uLiBJZiB0aGlzIGlzIHByb3ZpZGVkIHRoZW4gYSBjb3B5IG9mIHRoZSBhcHBsaWNhdGlvbiB3aWxsIGJlIGNyZWF0ZWQgd2l0aCBubyB0cmFuc2xhdGlvbiBidXQganVzdCB0aGUgYCRsb2NhbGl6ZWAgY2FsbHMgc3RyaXBwZWQgb3V0LicsXG4gICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgLm9wdGlvbigndCcsIHtcbiAgICAgICAgICAgIGFsaWFzOiAndHJhbnNsYXRpb25zJyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgYXJyYXk6IHRydWUsXG4gICAgICAgICAgICBkZXNjcmliZTpcbiAgICAgICAgICAgICAgICAnQSBsaXN0IG9mIHBhdGhzIHRvIHRoZSB0cmFuc2xhdGlvbiBmaWxlcyB0byBsb2FkLCBlaXRoZXIgYWJzb2x1dGUgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuXFxuJyArXG4gICAgICAgICAgICAgICAgJ0UuZy4gYC10IHNyYy9sb2NhbGUvbWVzc2FnZXMuZW4ueGxmIHNyYy9sb2NhbGUvbWVzc2FnZXMuZnIueGxmIHNyYy9sb2NhbGUvbWVzc2FnZXMuZGUueGxmYC5cXG4nICtcbiAgICAgICAgICAgICAgICAnSWYgeW91IHdhbnQgdG8gbWVyZ2UgbXVsdGlwbGUgdHJhbnNsYXRpb24gZmlsZXMgZm9yIGVhY2ggbG9jYWxlLCB0aGVuIHByb3ZpZGUgdGhlIGxpc3Qgb2YgZmlsZXMgaW4gYW4gYXJyYXkuXFxuJyArXG4gICAgICAgICAgICAgICAgJ05vdGUgdGhhdCB0aGUgYXJyYXlzIG11c3QgYmUgaW4gZG91YmxlIHF1b3RlcyBpZiB5b3UgaW5jbHVkZSBhbnkgd2hpdGVzcGFjZSB3aXRoaW4gdGhlIGFycmF5LlxcbicgK1xuICAgICAgICAgICAgICAgICdFLmcuIGAtdCBcIltzcmMvbG9jYWxlL21lc3NhZ2VzLmVuLnhsZiwgc3JjL2xvY2FsZS9tZXNzYWdlcy0yLmVuLnhsZl1cIiBbc3JjL2xvY2FsZS9tZXNzYWdlcy5mci54bGYsc3JjL2xvY2FsZS9tZXNzYWdlcy0yLmZyLnhsZl1gJyxcbiAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICAub3B0aW9uKCd0YXJnZXQtbG9jYWxlcycsIHtcbiAgICAgICAgICAgIGFycmF5OiB0cnVlLFxuICAgICAgICAgICAgZGVzY3JpYmU6XG4gICAgICAgICAgICAgICAgJ0EgbGlzdCBvZiB0YXJnZXQgbG9jYWxlcyBmb3IgdGhlIHRyYW5zbGF0aW9uIGZpbGVzLCB3aGljaCB3aWxsIG92ZXJyaWRlIGFueSB0YXJnZXQgbG9jYWxlIHBhcnNlZCBmcm9tIHRoZSB0cmFuc2xhdGlvbiBmaWxlLlxcbicgK1xuICAgICAgICAgICAgICAgICdFLmcuIFwiLXQgZW4gZnIgZGVcIi4nLFxuICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIC5vcHRpb24oJ28nLCB7XG4gICAgICAgICAgICBhbGlhczogJ291dHB1dFBhdGgnLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICBkZXNjcmliZTogJ0Egb3V0cHV0IHBhdGggcGF0dGVybiB0byB3aGVyZSB0aGUgdHJhbnNsYXRlZCBmaWxlcyB3aWxsIGJlIHdyaXR0ZW4uXFxuJyArXG4gICAgICAgICAgICAgICAgJ1RoZSBwYXRoIG11c3QgYmUgZWl0aGVyIGFic29sdXRlIG9yIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LlxcbicgK1xuICAgICAgICAgICAgICAgICdUaGUgbWFya2VyIGB7e0xPQ0FMRX19YCB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhlIHRhcmdldCBsb2NhbGUuIEUuZy4gYGRpc3Qve3tMT0NBTEV9fWAuJyxcbiAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICAub3B0aW9uKCdtJywge1xuICAgICAgICAgICAgYWxpYXM6ICdtaXNzaW5nVHJhbnNsYXRpb24nLFxuICAgICAgICAgICAgZGVzY3JpYmU6ICdIb3cgdG8gaGFuZGxlIG1pc3NpbmcgdHJhbnNsYXRpb25zLicsXG4gICAgICAgICAgICBjaG9pY2VzOiBbJ2Vycm9yJywgJ3dhcm5pbmcnLCAnaWdub3JlJ10sXG4gICAgICAgICAgICBkZWZhdWx0OiAnd2FybmluZycsXG4gICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgLm9wdGlvbignZCcsIHtcbiAgICAgICAgICAgIGFsaWFzOiAnZHVwbGljYXRlVHJhbnNsYXRpb24nLFxuICAgICAgICAgICAgZGVzY3JpYmU6ICdIb3cgdG8gaGFuZGxlIGR1cGxpY2F0ZSB0cmFuc2xhdGlvbnMuJyxcbiAgICAgICAgICAgIGNob2ljZXM6IFsnZXJyb3InLCAnd2FybmluZycsICdpZ25vcmUnXSxcbiAgICAgICAgICAgIGRlZmF1bHQ6ICd3YXJuaW5nJyxcbiAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICAuc3RyaWN0KClcbiAgICAgICAgICAuaGVscCgpXG4gICAgICAgICAgLnBhcnNlKGFyZ3MpO1xuXG4gIGNvbnN0IGZzID0gbmV3IE5vZGVKU0ZpbGVTeXN0ZW0oKTtcbiAgc2V0RmlsZVN5c3RlbShmcyk7XG5cbiAgY29uc3Qgc291cmNlUm9vdFBhdGggPSBvcHRpb25zLnI7XG4gIGNvbnN0IHNvdXJjZUZpbGVQYXRocyA9IGdsb2Iuc3luYyhvcHRpb25zLnMsIHtjd2Q6IHNvdXJjZVJvb3RQYXRoLCBub2RpcjogdHJ1ZX0pO1xuICBjb25zdCB0cmFuc2xhdGlvbkZpbGVQYXRoczogKHN0cmluZ3xzdHJpbmdbXSlbXSA9IGNvbnZlcnRBcnJheXNGcm9tQXJncyhvcHRpb25zLnQpO1xuICBjb25zdCBvdXRwdXRQYXRoRm4gPSBnZXRPdXRwdXRQYXRoRm4oZnMsIGZzLnJlc29sdmUob3B0aW9ucy5vKSk7XG4gIGNvbnN0IGRpYWdub3N0aWNzID0gbmV3IERpYWdub3N0aWNzKCk7XG4gIGNvbnN0IG1pc3NpbmdUcmFuc2xhdGlvbiA9IG9wdGlvbnMubSBhcyBEaWFnbm9zdGljSGFuZGxpbmdTdHJhdGVneTtcbiAgY29uc3QgZHVwbGljYXRlVHJhbnNsYXRpb24gPSBvcHRpb25zLmQgYXMgRGlhZ25vc3RpY0hhbmRsaW5nU3RyYXRlZ3k7XG4gIGNvbnN0IHNvdXJjZUxvY2FsZTogc3RyaW5nfHVuZGVmaW5lZCA9IG9wdGlvbnMubDtcbiAgY29uc3QgdHJhbnNsYXRpb25GaWxlTG9jYWxlczogc3RyaW5nW10gPSBvcHRpb25zWyd0YXJnZXQtbG9jYWxlcyddIHx8IFtdO1xuXG4gIHRyYW5zbGF0ZUZpbGVzKHtcbiAgICBzb3VyY2VSb290UGF0aCxcbiAgICBzb3VyY2VGaWxlUGF0aHMsXG4gICAgdHJhbnNsYXRpb25GaWxlUGF0aHMsXG4gICAgdHJhbnNsYXRpb25GaWxlTG9jYWxlcyxcbiAgICBvdXRwdXRQYXRoRm4sXG4gICAgZGlhZ25vc3RpY3MsXG4gICAgbWlzc2luZ1RyYW5zbGF0aW9uLFxuICAgIGR1cGxpY2F0ZVRyYW5zbGF0aW9uLFxuICAgIHNvdXJjZUxvY2FsZVxuICB9KTtcblxuICBkaWFnbm9zdGljcy5tZXNzYWdlcy5mb3JFYWNoKG0gPT4gY29uc29sZS53YXJuKGAke20udHlwZX06ICR7bS5tZXNzYWdlfWApKTtcbiAgcHJvY2Vzcy5leGl0KGRpYWdub3N0aWNzLmhhc0Vycm9ycyA/IDEgOiAwKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2xhdGVGaWxlc09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHJvb3QgcGF0aCBvZiB0aGUgZmlsZXMgdG8gdHJhbnNsYXRlLCBlaXRoZXIgYWJzb2x1dGUgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgd29ya2luZ1xuICAgKiBkaXJlY3RvcnkuIEUuZy4gYGRpc3QvZW5gXG4gICAqL1xuICBzb3VyY2VSb290UGF0aDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGZpbGVzIHRvIHRyYW5zbGF0ZSwgcmVsYXRpdmUgdG8gdGhlIGByb290YCBwYXRoLlxuICAgKi9cbiAgc291cmNlRmlsZVBhdGhzOiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIHBhdGhzIHRvIHRoZSB0cmFuc2xhdGlvbiBmaWxlcyB0byBsb2FkLCBlaXRoZXIgYWJzb2x1dGUgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnRcbiAgICogd29ya2luZyBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEZvciBlYWNoIGxvY2FsZSB0byBiZSB0cmFuc2xhdGVkLCB0aGVyZSBzaG91bGQgYmUgYW4gZWxlbWVudCBpbiBgdHJhbnNsYXRpb25GaWxlUGF0aHNgLlxuICAgKiBFYWNoIGVsZW1lbnQgaXMgZWl0aGVyIGFuIGFic29sdXRlIHBhdGggdG8gdGhlIHRyYW5zbGF0aW9uIGZpbGUsIG9yIGFuIGFycmF5IG9mIGFic29sdXRlIHBhdGhzXG4gICAqIHRvIHRyYW5zbGF0aW9uIGZpbGVzLCBmb3IgdGhhdCBsb2NhbGUuXG4gICAqXG4gICAqIElmIHRoZSBlbGVtZW50IGNvbnRhaW5zIG1vcmUgdGhhbiBvbmUgdHJhbnNsYXRpb24gZmlsZSwgdGhlbiB0aGUgdHJhbnNsYXRpb25zIGFyZSBtZXJnZWQuXG4gICAqXG4gICAqIElmIGFsbG93ZWQgYnkgdGhlIGBkdXBsaWNhdGVUcmFuc2xhdGlvbmAgcHJvcGVydHksIHdoZW4gbW9yZSB0aGFuIG9uZSB0cmFuc2xhdGlvbiBoYXMgdGhlIHNhbWVcbiAgICogbWVzc2FnZSBpZCwgdGhlIG1lc3NhZ2UgZnJvbSB0aGUgZWFybGllciB0cmFuc2xhdGlvbiBmaWxlIGluIHRoZSBhcnJheSBpcyB1c2VkLlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgaWYgdGhlIGZpbGVzIGFyZSBgW2FwcC54bGYsIGxpYi0xLnhsZiwgbGliLTIueGxpZl1gIHRoZW4gYSBtZXNzYWdlIHRoYXQgYXBwZWFycyBpblxuICAgKiBgYXBwLnhsZmAgd2lsbCBvdmVycmlkZSB0aGUgc2FtZSBtZXNzYWdlIGluIGBsaWItMS54bGZgIG9yIGBsaWItMi54bGZgLlxuICAgKi9cbiAgdHJhbnNsYXRpb25GaWxlUGF0aHM6IChzdHJpbmd8c3RyaW5nW10pW107XG4gIC8qKlxuICAgKiBBIGNvbGxlY3Rpb24gb2YgdGhlIHRhcmdldCBsb2NhbGVzIGZvciB0aGUgdHJhbnNsYXRpb24gZmlsZXMuXG4gICAqXG4gICAqIElmIHRoZXJlIGlzIGEgbG9jYWxlIHByb3ZpZGVkIGluIGB0cmFuc2xhdGlvbkZpbGVMb2NhbGVzYCB0aGVuIHRoaXMgaXMgdXNlZCByYXRoZXIgdGhhbiBhXG4gICAqIGxvY2FsZSBleHRyYWN0ZWQgZnJvbSB0aGUgZmlsZSBpdHNlbGYuXG4gICAqIElmIHRoZXJlIGlzIG5laXRoZXIgYSBwcm92aWRlZCBsb2NhbGUgbm9yIGEgbG9jYWxlIHBhcnNlZCBmcm9tIHRoZSBmaWxlLCB0aGVuIGFuIGVycm9yIGlzXG4gICAqIHRocm93bi5cbiAgICogSWYgdGhlcmUgYXJlIGJvdGggYSBwcm92aWRlZCBsb2NhbGUgYW5kIGEgbG9jYWxlIHBhcnNlZCBmcm9tIHRoZSBmaWxlLCBhbmQgdGhleSBhcmUgbm90IHRoZVxuICAgKiBzYW1lLCB0aGVuIGEgd2FybmluZyBpcyByZXBvcnRlZC5cbiAgICovXG4gIHRyYW5zbGF0aW9uRmlsZUxvY2FsZXM6IChzdHJpbmd8dW5kZWZpbmVkKVtdO1xuICAvKipcbiAgICogQSBmdW5jdGlvbiB0aGF0IGNvbXB1dGVzIHRoZSBvdXRwdXQgcGF0aCBvZiB3aGVyZSB0aGUgdHJhbnNsYXRlZCBmaWxlcyB3aWxsIGJlXG4gICAqIHdyaXR0ZW4uIFRoZSBtYXJrZXIgYHt7TE9DQUxFfX1gIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgdGFyZ2V0IGxvY2FsZS4gRS5nLlxuICAgKiBgZGlzdC97e0xPQ0FMRX19YC5cbiAgICovXG4gIG91dHB1dFBhdGhGbjogT3V0cHV0UGF0aEZuO1xuICAvKipcbiAgICogQW4gb2JqZWN0IHRoYXQgd2lsbCByZWNlaXZlIGFueSBkaWFnbm9zdGljcyBtZXNzYWdlcyBkdWUgdG8gdGhlIHByb2Nlc3NpbmcuXG4gICAqL1xuICBkaWFnbm9zdGljczogRGlhZ25vc3RpY3M7XG4gIC8qKlxuICAgKiBIb3cgdG8gaGFuZGxlIG1pc3NpbmcgdHJhbnNsYXRpb25zLlxuICAgKi9cbiAgbWlzc2luZ1RyYW5zbGF0aW9uOiBEaWFnbm9zdGljSGFuZGxpbmdTdHJhdGVneTtcbiAgLyoqXG4gICAqIEhvdyB0byBoYW5kbGUgZHVwbGljYXRlIHRyYW5zbGF0aW9ucy5cbiAgICovXG4gIGR1cGxpY2F0ZVRyYW5zbGF0aW9uOiBEaWFnbm9zdGljSGFuZGxpbmdTdHJhdGVneTtcbiAgLyoqXG4gICAqIFRoZSBsb2NhbGUgb2YgdGhlIHNvdXJjZSBmaWxlcy5cbiAgICogSWYgdGhpcyBpcyBwcm92aWRlZCB0aGVuIGEgY29weSBvZiB0aGUgYXBwbGljYXRpb24gd2lsbCBiZSBjcmVhdGVkIHdpdGggbm8gdHJhbnNsYXRpb24gYnV0IGp1c3RcbiAgICogdGhlIGAkbG9jYWxpemVgIGNhbGxzIHN0cmlwcGVkIG91dC5cbiAgICovXG4gIHNvdXJjZUxvY2FsZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zbGF0ZUZpbGVzKHtcbiAgc291cmNlUm9vdFBhdGgsXG4gIHNvdXJjZUZpbGVQYXRocyxcbiAgdHJhbnNsYXRpb25GaWxlUGF0aHMsXG4gIHRyYW5zbGF0aW9uRmlsZUxvY2FsZXMsXG4gIG91dHB1dFBhdGhGbixcbiAgZGlhZ25vc3RpY3MsXG4gIG1pc3NpbmdUcmFuc2xhdGlvbixcbiAgZHVwbGljYXRlVHJhbnNsYXRpb24sXG4gIHNvdXJjZUxvY2FsZVxufTogVHJhbnNsYXRlRmlsZXNPcHRpb25zKSB7XG4gIGNvbnN0IGZzID0gZ2V0RmlsZVN5c3RlbSgpO1xuICBjb25zdCB0cmFuc2xhdGlvbkxvYWRlciA9IG5ldyBUcmFuc2xhdGlvbkxvYWRlcihcbiAgICAgIGZzLFxuICAgICAgW1xuICAgICAgICBuZXcgWGxpZmYyVHJhbnNsYXRpb25QYXJzZXIoKSxcbiAgICAgICAgbmV3IFhsaWZmMVRyYW5zbGF0aW9uUGFyc2VyKCksXG4gICAgICAgIG5ldyBYdGJUcmFuc2xhdGlvblBhcnNlcigpLFxuICAgICAgICBuZXcgU2ltcGxlSnNvblRyYW5zbGF0aW9uUGFyc2VyKCksXG4gICAgICAgIG5ldyBBcmJUcmFuc2xhdGlvblBhcnNlcigpLFxuICAgICAgXSxcbiAgICAgIGR1cGxpY2F0ZVRyYW5zbGF0aW9uLCBkaWFnbm9zdGljcyk7XG5cbiAgY29uc3QgcmVzb3VyY2VQcm9jZXNzb3IgPSBuZXcgVHJhbnNsYXRvcihcbiAgICAgIGZzLFxuICAgICAgW1xuICAgICAgICBuZXcgU291cmNlRmlsZVRyYW5zbGF0aW9uSGFuZGxlcihmcywge21pc3NpbmdUcmFuc2xhdGlvbn0pLFxuICAgICAgICBuZXcgQXNzZXRUcmFuc2xhdGlvbkhhbmRsZXIoZnMpLFxuICAgICAgXSxcbiAgICAgIGRpYWdub3N0aWNzKTtcblxuICAvLyBDb252ZXJ0IGFsbCB0aGUgYHRyYW5zbGF0aW9uRmlsZVBhdGhzYCBlbGVtZW50cyB0byBhcnJheXMuXG4gIGNvbnN0IHRyYW5zbGF0aW9uRmlsZVBhdGhzQXJyYXlzID0gdHJhbnNsYXRpb25GaWxlUGF0aHMubWFwKFxuICAgICAgZmlsZVBhdGhzID0+XG4gICAgICAgICAgQXJyYXkuaXNBcnJheShmaWxlUGF0aHMpID8gZmlsZVBhdGhzLm1hcChwID0+IGZzLnJlc29sdmUocCkpIDogW2ZzLnJlc29sdmUoZmlsZVBhdGhzKV0pO1xuXG4gIGNvbnN0IHRyYW5zbGF0aW9ucyA9XG4gICAgICB0cmFuc2xhdGlvbkxvYWRlci5sb2FkQnVuZGxlcyh0cmFuc2xhdGlvbkZpbGVQYXRoc0FycmF5cywgdHJhbnNsYXRpb25GaWxlTG9jYWxlcyk7XG4gIHNvdXJjZVJvb3RQYXRoID0gZnMucmVzb2x2ZShzb3VyY2VSb290UGF0aCk7XG4gIHJlc291cmNlUHJvY2Vzc29yLnRyYW5zbGF0ZUZpbGVzKFxuICAgICAgc291cmNlRmlsZVBhdGhzLm1hcChyZWxhdGl2ZUZyb20pLCBmcy5yZXNvbHZlKHNvdXJjZVJvb3RQYXRoKSwgb3V0cHV0UGF0aEZuLCB0cmFuc2xhdGlvbnMsXG4gICAgICBzb3VyY2VMb2NhbGUpO1xufVxuXG4vKipcbiAqIFBhcnNlIGVhY2ggb2YgdGhlIGdpdmVuIHN0cmluZyBgYXJnc2AgYW5kIGNvbnZlcnQgaXQgdG8gYW4gYXJyYXkgaWYgaXQgaXMgb2YgdGhlIGZvcm1cbiAqIGBbYWJjLCBkZWYsIGdoaV1gLCBpLmUuIGl0IGlzIGVuY2xvc2VkIGluIHNxdWFyZSBicmFja2V0cyB3aXRoIGNvbW1hIGRlbGltaXRlZCBpdGVtcy5cbiAqIEBwYXJhbSBhcmdzIFRoZSBzdHJpbmcgdG8gcG90ZW50aWFsbHkgY29udmVydCB0byBhcnJheXMuXG4gKi9cbmZ1bmN0aW9uIGNvbnZlcnRBcnJheXNGcm9tQXJncyhhcmdzOiBzdHJpbmdbXSk6IChzdHJpbmd8c3RyaW5nW10pW10ge1xuICByZXR1cm4gYXJncy5tYXAoXG4gICAgICBhcmcgPT4gKGFyZy5zdGFydHNXaXRoKCdbJykgJiYgYXJnLmVuZHNXaXRoKCddJykpID9cbiAgICAgICAgICBhcmcuc2xpY2UoMSwgLTEpLnNwbGl0KCcsJykubWFwKGFyZyA9PiBhcmcudHJpbSgpKSA6XG4gICAgICAgICAgYXJnKTtcbn1cbiJdfQ==
@@ -1,28 +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/output_path", ["require", "exports", "tslib"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.getOutputPathFn = void 0;
13
- var tslib_1 = require("tslib");
14
- /**
15
- * Create a function that will compute the absolute path to where a translated file should be
16
- * written.
17
- *
18
- * The special `{{LOCALE}}` marker will be replaced with the locale code of the current translation.
19
- * @param outputFolder An absolute path to the folder containing this set of translations.
20
- */
21
- function getOutputPathFn(fs, outputFolder) {
22
- var _a = (0, tslib_1.__read)(outputFolder.split('{{LOCALE}}'), 2), pre = _a[0], post = _a[1];
23
- return post === undefined ? function (_locale, relativePath) { return fs.join(pre, relativePath); } :
24
- function (locale, relativePath) { return fs.join(pre + locale + post, relativePath); };
25
- }
26
- exports.getOutputPathFn = getOutputPathFn;
27
- });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0X3BhdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sb2NhbGl6ZS9zcmMvdG9vbHMvc3JjL3RyYW5zbGF0ZS9vdXRwdXRfcGF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0lBaUJBOzs7Ozs7T0FNRztJQUNILFNBQWdCLGVBQWUsQ0FBQyxFQUFvQixFQUFFLFlBQTRCO1FBQzFFLElBQUEsS0FBQSxvQkFBYyxZQUFZLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFBLEVBQTdDLEdBQUcsUUFBQSxFQUFFLElBQUksUUFBb0MsQ0FBQztRQUNyRCxPQUFPLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQUMsT0FBTyxFQUFFLFlBQVksSUFBSyxPQUFBLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxFQUExQixDQUEwQixDQUFDLENBQUM7WUFDdkQsVUFBQyxNQUFNLEVBQUUsWUFBWSxJQUFLLE9BQUEsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxHQUFHLElBQUksRUFBRSxZQUFZLENBQUMsRUFBMUMsQ0FBMEMsQ0FBQztJQUNuRyxDQUFDO0lBSkQsMENBSUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7QWJzb2x1dGVGc1BhdGgsIFBhdGhNYW5pcHVsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvZmlsZV9zeXN0ZW0nO1xuXG4vKipcbiAqIEEgZnVuY3Rpb24gdGhhdCB3aWxsIHJldHVybiBhbiBhYnNvbHV0ZSBwYXRoIHRvIHdoZXJlIGEgZmlsZSBpcyB0byBiZSB3cml0dGVuLCBnaXZlbiBhIGxvY2FsZSBhbmRcbiAqIGEgcmVsYXRpdmUgcGF0aC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPdXRwdXRQYXRoRm4ge1xuICAobG9jYWxlOiBzdHJpbmcsIHJlbGF0aXZlUGF0aDogc3RyaW5nKTogc3RyaW5nO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIGZ1bmN0aW9uIHRoYXQgd2lsbCBjb21wdXRlIHRoZSBhYnNvbHV0ZSBwYXRoIHRvIHdoZXJlIGEgdHJhbnNsYXRlZCBmaWxlIHNob3VsZCBiZVxuICogd3JpdHRlbi5cbiAqXG4gKiBUaGUgc3BlY2lhbCBge3tMT0NBTEV9fWAgbWFya2VyIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgbG9jYWxlIGNvZGUgb2YgdGhlIGN1cnJlbnQgdHJhbnNsYXRpb24uXG4gKiBAcGFyYW0gb3V0cHV0Rm9sZGVyIEFuIGFic29sdXRlIHBhdGggdG8gdGhlIGZvbGRlciBjb250YWluaW5nIHRoaXMgc2V0IG9mIHRyYW5zbGF0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE91dHB1dFBhdGhGbihmczogUGF0aE1hbmlwdWxhdGlvbiwgb3V0cHV0Rm9sZGVyOiBBYnNvbHV0ZUZzUGF0aCk6IE91dHB1dFBhdGhGbiB7XG4gIGNvbnN0IFtwcmUsIHBvc3RdID0gb3V0cHV0Rm9sZGVyLnNwbGl0KCd7e0xPQ0FMRX19Jyk7XG4gIHJldHVybiBwb3N0ID09PSB1bmRlZmluZWQgPyAoX2xvY2FsZSwgcmVsYXRpdmVQYXRoKSA9PiBmcy5qb2luKHByZSwgcmVsYXRpdmVQYXRoKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9jYWxlLCByZWxhdGl2ZVBhdGgpID0+IGZzLmpvaW4ocHJlICsgbG9jYWxlICsgcG9zdCwgcmVsYXRpdmVQYXRoKTtcbn1cbiJdfQ==
@@ -1,60 +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/es2015_translate_plugin", ["require", "exports", "tslib", "@angular/compiler-cli/src/ngtsc/file_system", "@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.makeEs2015TranslatePlugin = 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 source_file_utils_1 = require("@angular/localize/src/tools/src/source_file_utils");
23
- /**
24
- * Create a Babel plugin that can be used to do compile-time translation of `$localize` tagged
25
- * messages.
26
- *
27
- * @publicApi used by CLI
28
- */
29
- function makeEs2015TranslatePlugin(diagnostics, translations, _a, fs) {
30
- var _b = _a === void 0 ? {} : _a, _c = _b.missingTranslation, missingTranslation = _c === void 0 ? 'error' : _c, _d = _b.localizeName, localizeName = _d === void 0 ? '$localize' : _d;
31
- if (fs === void 0) { fs = (0, file_system_1.getFileSystem)(); }
32
- return {
33
- visitor: {
34
- TaggedTemplateExpression: function (path) {
35
- try {
36
- var tag = path.get('tag');
37
- if ((0, source_file_utils_1.isLocalize)(tag, localizeName)) {
38
- var _a = (0, tslib_1.__read)((0, source_file_utils_1.unwrapMessagePartsFromTemplateLiteral)(path.get('quasi').get('quasis'), fs), 1), messageParts = _a[0];
39
- var translated = (0, source_file_utils_1.translate)(diagnostics, translations, messageParts, path.node.quasi.expressions, missingTranslation);
40
- path.replaceWith((0, source_file_utils_1.buildLocalizeReplacement)(translated[0], translated[1]));
41
- }
42
- }
43
- catch (e) {
44
- if ((0, source_file_utils_1.isBabelParseError)(e)) {
45
- // If we get a BabelParseError here then something went wrong with Babel itself
46
- // since there must be something wrong with the structure of the AST generated
47
- // by Babel parsing a TaggedTemplateExpression.
48
- throw (0, source_file_utils_1.buildCodeFrameError)(fs, path, e);
49
- }
50
- else {
51
- throw e;
52
- }
53
- }
54
- }
55
- }
56
- };
57
- }
58
- exports.makeEs2015TranslatePlugin = makeEs2015TranslatePlugin;
59
- });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMyMDE1X3RyYW5zbGF0ZV9wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sb2NhbGl6ZS9zcmMvdG9vbHMvc3JjL3RyYW5zbGF0ZS9zb3VyY2VfZmlsZXMvZXMyMDE1X3RyYW5zbGF0ZV9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztJQUFBOzs7Ozs7T0FNRztJQUNILDJFQUE0RjtJQU01Rix1RkFBK0w7SUFFL0w7Ozs7O09BS0c7SUFDSCxTQUFnQix5QkFBeUIsQ0FDckMsV0FBd0IsRUFBRSxZQUFnRCxFQUMxRSxFQUF1RixFQUN2RixFQUFzQztZQUR0QyxxQkFBcUYsRUFBRSxLQUFBLEVBQXRGLDBCQUE0QixFQUE1QixrQkFBa0IsbUJBQUcsT0FBTyxLQUFBLEVBQUUsb0JBQTBCLEVBQTFCLFlBQVksbUJBQUcsV0FBVyxLQUFBO1FBQ3pELG1CQUFBLEVBQUEsU0FBdUIsMkJBQWEsR0FBRTtRQUN4QyxPQUFPO1lBQ0wsT0FBTyxFQUFFO2dCQUNQLHdCQUF3QixFQUF4QixVQUF5QixJQUF3QztvQkFDL0QsSUFBSTt3QkFDRixJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUM1QixJQUFJLElBQUEsOEJBQVUsRUFBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLEVBQUU7NEJBQzNCLElBQUEsS0FBQSxvQkFDRixJQUFBLHlEQUFxQyxFQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFBLEVBRHZFLFlBQVksUUFDMkQsQ0FBQzs0QkFDL0UsSUFBTSxVQUFVLEdBQUcsSUFBQSw2QkFBUyxFQUN4QixXQUFXLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQ3BFLGtCQUFrQixDQUFDLENBQUM7NEJBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBQSw0Q0FBd0IsRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt5QkFDMUU7cUJBQ0Y7b0JBQUMsT0FBTyxDQUFDLEVBQUU7d0JBQ1YsSUFBSSxJQUFBLHFDQUFpQixFQUFDLENBQUMsQ0FBQyxFQUFFOzRCQUN4QiwrRUFBK0U7NEJBQy9FLDhFQUE4RTs0QkFDOUUsK0NBQStDOzRCQUMvQyxNQUFNLElBQUEsdUNBQW1CLEVBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQzt5QkFDeEM7NkJBQU07NEJBQ0wsTUFBTSxDQUFDLENBQUM7eUJBQ1Q7cUJBQ0Y7Z0JBQ0gsQ0FBQzthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUE5QkQsOERBOEJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge2dldEZpbGVTeXN0ZW0sIFBhdGhNYW5pcHVsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvZmlsZV9zeXN0ZW0nO1xuaW1wb3J0IHvJtVBhcnNlZFRyYW5zbGF0aW9ufSBmcm9tICdAYW5ndWxhci9sb2NhbGl6ZSc7XG5pbXBvcnQge05vZGVQYXRoLCBQbHVnaW5PYmp9IGZyb20gJ0BiYWJlbC9jb3JlJztcbmltcG9ydCB7VGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9ufSBmcm9tICdAYmFiZWwvdHlwZXMnO1xuXG5pbXBvcnQge0RpYWdub3N0aWNzfSBmcm9tICcuLi8uLi9kaWFnbm9zdGljcyc7XG5pbXBvcnQge2J1aWxkQ29kZUZyYW1lRXJyb3IsIGJ1aWxkTG9jYWxpemVSZXBsYWNlbWVudCwgaXNCYWJlbFBhcnNlRXJyb3IsIGlzTG9jYWxpemUsIHRyYW5zbGF0ZSwgVHJhbnNsYXRlUGx1Z2luT3B0aW9ucywgdW53cmFwTWVzc2FnZVBhcnRzRnJvbVRlbXBsYXRlTGl0ZXJhbH0gZnJvbSAnLi4vLi4vc291cmNlX2ZpbGVfdXRpbHMnO1xuXG4vKipcbiAqIENyZWF0ZSBhIEJhYmVsIHBsdWdpbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGRvIGNvbXBpbGUtdGltZSB0cmFuc2xhdGlvbiBvZiBgJGxvY2FsaXplYCB0YWdnZWRcbiAqIG1lc3NhZ2VzLlxuICpcbiAqIEBwdWJsaWNBcGkgdXNlZCBieSBDTElcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VFczIwMTVUcmFuc2xhdGVQbHVnaW4oXG4gICAgZGlhZ25vc3RpY3M6IERpYWdub3N0aWNzLCB0cmFuc2xhdGlvbnM6IFJlY29yZDxzdHJpbmcsIMm1UGFyc2VkVHJhbnNsYXRpb24+LFxuICAgIHttaXNzaW5nVHJhbnNsYXRpb24gPSAnZXJyb3InLCBsb2NhbGl6ZU5hbWUgPSAnJGxvY2FsaXplJ306IFRyYW5zbGF0ZVBsdWdpbk9wdGlvbnMgPSB7fSxcbiAgICBmczogUGF0aE1hbmlwdWxhdGlvbiA9IGdldEZpbGVTeXN0ZW0oKSk6IFBsdWdpbk9iaiB7XG4gIHJldHVybiB7XG4gICAgdmlzaXRvcjoge1xuICAgICAgVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uKHBhdGg6IE5vZGVQYXRoPFRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvbj4pIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB0YWcgPSBwYXRoLmdldCgndGFnJyk7XG4gICAgICAgICAgaWYgKGlzTG9jYWxpemUodGFnLCBsb2NhbGl6ZU5hbWUpKSB7XG4gICAgICAgICAgICBjb25zdCBbbWVzc2FnZVBhcnRzXSA9XG4gICAgICAgICAgICAgICAgdW53cmFwTWVzc2FnZVBhcnRzRnJvbVRlbXBsYXRlTGl0ZXJhbChwYXRoLmdldCgncXVhc2knKS5nZXQoJ3F1YXNpcycpLCBmcyk7XG4gICAgICAgICAgICBjb25zdCB0cmFuc2xhdGVkID0gdHJhbnNsYXRlKFxuICAgICAgICAgICAgICAgIGRpYWdub3N0aWNzLCB0cmFuc2xhdGlvbnMsIG1lc3NhZ2VQYXJ0cywgcGF0aC5ub2RlLnF1YXNpLmV4cHJlc3Npb25zLFxuICAgICAgICAgICAgICAgIG1pc3NpbmdUcmFuc2xhdGlvbik7XG4gICAgICAgICAgICBwYXRoLnJlcGxhY2VXaXRoKGJ1aWxkTG9jYWxpemVSZXBsYWNlbWVudCh0cmFuc2xhdGVkWzBdLCB0cmFuc2xhdGVkWzFdKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGlzQmFiZWxQYXJzZUVycm9yKGUpKSB7XG4gICAgICAgICAgICAvLyBJZiB3ZSBnZXQgYSBCYWJlbFBhcnNlRXJyb3IgaGVyZSB0aGVuIHNvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggQmFiZWwgaXRzZWxmXG4gICAgICAgICAgICAvLyBzaW5jZSB0aGVyZSBtdXN0IGJlIHNvbWV0aGluZyB3cm9uZyB3aXRoIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIEFTVCBnZW5lcmF0ZWRcbiAgICAgICAgICAgIC8vIGJ5IEJhYmVsIHBhcnNpbmcgYSBUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb24uXG4gICAgICAgICAgICB0aHJvdyBidWlsZENvZGVGcmFtZUVycm9yKGZzLCBwYXRoLCBlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG59XG4iXX0=
@@ -1,58 +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/es5_translate_plugin", ["require", "exports", "tslib", "@angular/compiler-cli/src/ngtsc/file_system", "@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.makeEs5TranslatePlugin = 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 source_file_utils_1 = require("@angular/localize/src/tools/src/source_file_utils");
23
- /**
24
- * Create a Babel plugin that can be used to do compile-time translation of `$localize` tagged
25
- * messages.
26
- *
27
- * @publicApi used by CLI
28
- */
29
- function makeEs5TranslatePlugin(diagnostics, translations, _a, fs) {
30
- var _b = _a === void 0 ? {} : _a, _c = _b.missingTranslation, missingTranslation = _c === void 0 ? 'error' : _c, _d = _b.localizeName, localizeName = _d === void 0 ? '$localize' : _d;
31
- if (fs === void 0) { fs = (0, file_system_1.getFileSystem)(); }
32
- return {
33
- visitor: {
34
- CallExpression: function (callPath) {
35
- try {
36
- var calleePath = callPath.get('callee');
37
- if ((0, source_file_utils_1.isLocalize)(calleePath, localizeName)) {
38
- var _a = (0, tslib_1.__read)((0, source_file_utils_1.unwrapMessagePartsFromLocalizeCall)(callPath, fs), 1), messageParts = _a[0];
39
- var _b = (0, tslib_1.__read)((0, source_file_utils_1.unwrapSubstitutionsFromLocalizeCall)(callPath, fs), 1), expressions = _b[0];
40
- var translated = (0, source_file_utils_1.translate)(diagnostics, translations, messageParts, expressions, missingTranslation);
41
- callPath.replaceWith((0, source_file_utils_1.buildLocalizeReplacement)(translated[0], translated[1]));
42
- }
43
- }
44
- catch (e) {
45
- if ((0, source_file_utils_1.isBabelParseError)(e)) {
46
- diagnostics.error((0, source_file_utils_1.buildCodeFrameError)(fs, callPath, e));
47
- }
48
- else {
49
- throw e;
50
- }
51
- }
52
- }
53
- }
54
- };
55
- }
56
- exports.makeEs5TranslatePlugin = makeEs5TranslatePlugin;
57
- });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXM1X3RyYW5zbGF0ZV9wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sb2NhbGl6ZS9zcmMvdG9vbHMvc3JjL3RyYW5zbGF0ZS9zb3VyY2VfZmlsZXMvZXM1X3RyYW5zbGF0ZV9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztJQUFBOzs7Ozs7T0FNRztJQUNILDJFQUE0RjtJQU01Rix1RkFBaU87SUFFak87Ozs7O09BS0c7SUFDSCxTQUFnQixzQkFBc0IsQ0FDbEMsV0FBd0IsRUFBRSxZQUFnRCxFQUMxRSxFQUF1RixFQUN2RixFQUFzQztZQUR0QyxxQkFBcUYsRUFBRSxLQUFBLEVBQXRGLDBCQUE0QixFQUE1QixrQkFBa0IsbUJBQUcsT0FBTyxLQUFBLEVBQUUsb0JBQTBCLEVBQTFCLFlBQVksbUJBQUcsV0FBVyxLQUFBO1FBQ3pELG1CQUFBLEVBQUEsU0FBdUIsMkJBQWEsR0FBRTtRQUN4QyxPQUFPO1lBQ0wsT0FBTyxFQUFFO2dCQUNQLGNBQWMsRUFBZCxVQUFlLFFBQWtDO29CQUMvQyxJQUFJO3dCQUNGLElBQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7d0JBQzFDLElBQUksSUFBQSw4QkFBVSxFQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsRUFBRTs0QkFDbEMsSUFBQSxLQUFBLG9CQUFpQixJQUFBLHNEQUFrQyxFQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBQSxFQUFoRSxZQUFZLFFBQW9ELENBQUM7NEJBQ2xFLElBQUEsS0FBQSxvQkFBZ0IsSUFBQSx1REFBbUMsRUFBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUEsRUFBaEUsV0FBVyxRQUFxRCxDQUFDOzRCQUN4RSxJQUFNLFVBQVUsR0FDWixJQUFBLDZCQUFTLEVBQUMsV0FBVyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixDQUFDLENBQUM7NEJBQ3hGLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBQSw0Q0FBd0IsRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt5QkFDOUU7cUJBQ0Y7b0JBQUMsT0FBTyxDQUFDLEVBQUU7d0JBQ1YsSUFBSSxJQUFBLHFDQUFpQixFQUFDLENBQUMsQ0FBQyxFQUFFOzRCQUN4QixXQUFXLENBQUMsS0FBSyxDQUFDLElBQUEsdUNBQW1CLEVBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO3lCQUN6RDs2QkFBTTs0QkFDTCxNQUFNLENBQUMsQ0FBQzt5QkFDVDtxQkFDRjtnQkFDSCxDQUFDO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQTFCRCx3REEwQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7Z2V0RmlsZVN5c3RlbSwgUGF0aE1hbmlwdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy9maWxlX3N5c3RlbSc7XG5pbXBvcnQge8m1UGFyc2VkVHJhbnNsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2xvY2FsaXplJztcbmltcG9ydCB7Tm9kZVBhdGgsIFBsdWdpbk9ian0gZnJvbSAnQGJhYmVsL2NvcmUnO1xuaW1wb3J0IHtDYWxsRXhwcmVzc2lvbn0gZnJvbSAnQGJhYmVsL3R5cGVzJztcblxuaW1wb3J0IHtEaWFnbm9zdGljc30gZnJvbSAnLi4vLi4vZGlhZ25vc3RpY3MnO1xuaW1wb3J0IHtidWlsZENvZGVGcmFtZUVycm9yLCBidWlsZExvY2FsaXplUmVwbGFjZW1lbnQsIGlzQmFiZWxQYXJzZUVycm9yLCBpc0xvY2FsaXplLCB0cmFuc2xhdGUsIFRyYW5zbGF0ZVBsdWdpbk9wdGlvbnMsIHVud3JhcE1lc3NhZ2VQYXJ0c0Zyb21Mb2NhbGl6ZUNhbGwsIHVud3JhcFN1YnN0aXR1dGlvbnNGcm9tTG9jYWxpemVDYWxsfSBmcm9tICcuLi8uLi9zb3VyY2VfZmlsZV91dGlscyc7XG5cbi8qKlxuICogQ3JlYXRlIGEgQmFiZWwgcGx1Z2luIHRoYXQgY2FuIGJlIHVzZWQgdG8gZG8gY29tcGlsZS10aW1lIHRyYW5zbGF0aW9uIG9mIGAkbG9jYWxpemVgIHRhZ2dlZFxuICogbWVzc2FnZXMuXG4gKlxuICogQHB1YmxpY0FwaSB1c2VkIGJ5IENMSVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFrZUVzNVRyYW5zbGF0ZVBsdWdpbihcbiAgICBkaWFnbm9zdGljczogRGlhZ25vc3RpY3MsIHRyYW5zbGF0aW9uczogUmVjb3JkPHN0cmluZywgybVQYXJzZWRUcmFuc2xhdGlvbj4sXG4gICAge21pc3NpbmdUcmFuc2xhdGlvbiA9ICdlcnJvcicsIGxvY2FsaXplTmFtZSA9ICckbG9jYWxpemUnfTogVHJhbnNsYXRlUGx1Z2luT3B0aW9ucyA9IHt9LFxuICAgIGZzOiBQYXRoTWFuaXB1bGF0aW9uID0gZ2V0RmlsZVN5c3RlbSgpKTogUGx1Z2luT2JqIHtcbiAgcmV0dXJuIHtcbiAgICB2aXNpdG9yOiB7XG4gICAgICBDYWxsRXhwcmVzc2lvbihjYWxsUGF0aDogTm9kZVBhdGg8Q2FsbEV4cHJlc3Npb24+KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgY2FsbGVlUGF0aCA9IGNhbGxQYXRoLmdldCgnY2FsbGVlJyk7XG4gICAgICAgICAgaWYgKGlzTG9jYWxpemUoY2FsbGVlUGF0aCwgbG9jYWxpemVOYW1lKSkge1xuICAgICAgICAgICAgY29uc3QgW21lc3NhZ2VQYXJ0c10gPSB1bndyYXBNZXNzYWdlUGFydHNGcm9tTG9jYWxpemVDYWxsKGNhbGxQYXRoLCBmcyk7XG4gICAgICAgICAgICBjb25zdCBbZXhwcmVzc2lvbnNdID0gdW53cmFwU3Vic3RpdHV0aW9uc0Zyb21Mb2NhbGl6ZUNhbGwoY2FsbFBhdGgsIGZzKTtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zbGF0ZWQgPVxuICAgICAgICAgICAgICAgIHRyYW5zbGF0ZShkaWFnbm9zdGljcywgdHJhbnNsYXRpb25zLCBtZXNzYWdlUGFydHMsIGV4cHJlc3Npb25zLCBtaXNzaW5nVHJhbnNsYXRpb24pO1xuICAgICAgICAgICAgY2FsbFBhdGgucmVwbGFjZVdpdGgoYnVpbGRMb2NhbGl6ZVJlcGxhY2VtZW50KHRyYW5zbGF0ZWRbMF0sIHRyYW5zbGF0ZWRbMV0pKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBpZiAoaXNCYWJlbFBhcnNlRXJyb3IoZSkpIHtcbiAgICAgICAgICAgIGRpYWdub3N0aWNzLmVycm9yKGJ1aWxkQ29kZUZyYW1lRXJyb3IoZnMsIGNhbGxQYXRoLCBlKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuIl19
@@ -1,95 +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/locale_plugin", ["require", "exports", "@babel/types", "@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.makeLocalePlugin = void 0;
13
- var types_1 = require("@babel/types");
14
- var source_file_utils_1 = require("@angular/localize/src/tools/src/source_file_utils");
15
- /**
16
- * This Babel plugin will replace the following code forms with a string literal containing the
17
- * given `locale`.
18
- *
19
- * * `$localize.locale` -> `"locale"`
20
- * * `typeof $localize !== "undefined" && $localize.locale` -> `"locale"`
21
- * * `xxx && typeof $localize !== "undefined" && $localize.locale` -> `"xxx && locale"`
22
- * * `$localize.locale || default` -> `"locale" || default`
23
- *
24
- * @param locale The name of the locale to inline into the code.
25
- * @param options Additional options including the name of the `$localize` function.
26
- * @publicApi used by CLI
27
- */
28
- function makeLocalePlugin(locale, _a) {
29
- var _b = _a === void 0 ? {} : _a, _c = _b.localizeName, localizeName = _c === void 0 ? '$localize' : _c;
30
- return {
31
- visitor: {
32
- MemberExpression: function (expression) {
33
- var obj = expression.get('object');
34
- if (!(0, source_file_utils_1.isLocalize)(obj, localizeName)) {
35
- return;
36
- }
37
- var property = expression.get('property');
38
- if (!property.isIdentifier({ name: 'locale' })) {
39
- return;
40
- }
41
- if (expression.parentPath.isAssignmentExpression() &&
42
- expression.parentPath.get('left') === expression) {
43
- return;
44
- }
45
- // Check for the `$localize.locale` being guarded by a check on the existence of
46
- // `$localize`.
47
- var parent = expression.parentPath;
48
- if (parent.isLogicalExpression({ operator: '&&' }) && parent.get('right') === expression) {
49
- var left = parent.get('left');
50
- if (isLocalizeGuard(left, localizeName)) {
51
- // Replace `typeof $localize !== "undefined" && $localize.locale` with
52
- // `$localize.locale`
53
- parent.replaceWith(expression);
54
- }
55
- else if (left.isLogicalExpression({ operator: '&&' }) &&
56
- isLocalizeGuard(left.get('right'), localizeName)) {
57
- // The `$localize` is part of a preceding logical AND.
58
- // Replace XXX && typeof $localize !== "undefined" && $localize.locale` with `XXX &&
59
- // $localize.locale`
60
- left.replaceWith(left.get('left'));
61
- }
62
- }
63
- // Replace the `$localize.locale` with the string literal
64
- expression.replaceWith((0, types_1.stringLiteral)(locale));
65
- }
66
- }
67
- };
68
- }
69
- exports.makeLocalePlugin = makeLocalePlugin;
70
- /**
71
- * Returns true if the expression one of:
72
- * * `typeof $localize !== "undefined"`
73
- * * `"undefined" !== typeof $localize`
74
- * * `typeof $localize != "undefined"`
75
- * * `"undefined" != typeof $localize`
76
- *
77
- * @param expression the expression to check
78
- * @param localizeName the name of the `$localize` symbol
79
- */
80
- function isLocalizeGuard(expression, localizeName) {
81
- if (!expression.isBinaryExpression() ||
82
- !(expression.node.operator === '!==' || expression.node.operator === '!=')) {
83
- return false;
84
- }
85
- var left = expression.get('left');
86
- var right = expression.get('right');
87
- return (left.isUnaryExpression({ operator: 'typeof' }) &&
88
- (0, source_file_utils_1.isLocalize)(left.get('argument'), localizeName) &&
89
- right.isStringLiteral({ value: 'undefined' })) ||
90
- (right.isUnaryExpression({ operator: 'typeof' }) &&
91
- (0, source_file_utils_1.isLocalize)(right.get('argument'), localizeName) &&
92
- left.isStringLiteral({ value: 'undefined' }));
93
- }
94
- });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlX3BsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2xvY2FsaXplL3NyYy90b29scy9zcmMvdHJhbnNsYXRlL3NvdXJjZV9maWxlcy9sb2NhbGVfcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQVFBLHNDQUE2RDtJQUU3RCx1RkFBMkU7SUFFM0U7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0gsU0FBZ0IsZ0JBQWdCLENBQzVCLE1BQWMsRUFBRSxFQUF5RDtZQUF6RCxxQkFBdUQsRUFBRSxLQUFBLEVBQXhELG9CQUEwQixFQUExQixZQUFZLG1CQUFHLFdBQVcsS0FBQTtRQUM3QyxPQUFPO1lBQ0wsT0FBTyxFQUFFO2dCQUNQLGdCQUFnQixFQUFoQixVQUFpQixVQUFzQztvQkFDckQsSUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDckMsSUFBSSxDQUFDLElBQUEsOEJBQVUsRUFBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLEVBQUU7d0JBQ2xDLE9BQU87cUJBQ1I7b0JBQ0QsSUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQWEsQ0FBQztvQkFDeEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFDLENBQUMsRUFBRTt3QkFDNUMsT0FBTztxQkFDUjtvQkFDRCxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsc0JBQXNCLEVBQUU7d0JBQzlDLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLFVBQVUsRUFBRTt3QkFDcEQsT0FBTztxQkFDUjtvQkFDRCxnRkFBZ0Y7b0JBQ2hGLGVBQWU7b0JBQ2YsSUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQztvQkFDckMsSUFBSSxNQUFNLENBQUMsbUJBQW1CLENBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLFVBQVUsRUFBRTt3QkFDdEYsSUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDaEMsSUFBSSxlQUFlLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxFQUFFOzRCQUN2QyxzRUFBc0U7NEJBQ3RFLHFCQUFxQjs0QkFDckIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQzt5QkFDaEM7NkJBQU0sSUFDSCxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUM7NEJBQzFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLFlBQVksQ0FBQyxFQUFFOzRCQUNwRCxzREFBc0Q7NEJBQ3RELG9GQUFvRjs0QkFDcEYsb0JBQW9COzRCQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQzt5QkFDcEM7cUJBQ0Y7b0JBQ0QseURBQXlEO29CQUN6RCxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUEscUJBQWEsRUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUNoRCxDQUFDO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQXhDRCw0Q0F3Q0M7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxTQUFTLGVBQWUsQ0FBQyxVQUFvQixFQUFFLFlBQW9CO1FBQ2pFLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLEVBQUU7WUFDaEMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLEtBQUssSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsRUFBRTtZQUM5RSxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsSUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxJQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXRDLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBQyxRQUFRLEVBQUUsUUFBUSxFQUFDLENBQUM7WUFDNUMsSUFBQSw4QkFBVSxFQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsWUFBWSxDQUFDO1lBQzlDLEtBQUssQ0FBQyxlQUFlLENBQUMsRUFBQyxLQUFLLEVBQUUsV0FBVyxFQUFDLENBQUMsQ0FBQztZQUNoRCxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUMsQ0FBQztnQkFDN0MsSUFBQSw4QkFBVSxFQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsWUFBWSxDQUFDO2dCQUMvQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUMsS0FBSyxFQUFFLFdBQVcsRUFBQyxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge05vZGVQYXRoLCBQbHVnaW5PYmp9IGZyb20gJ0BiYWJlbC9jb3JlJztcbmltcG9ydCB7TWVtYmVyRXhwcmVzc2lvbiwgc3RyaW5nTGl0ZXJhbH0gZnJvbSAnQGJhYmVsL3R5cGVzJztcblxuaW1wb3J0IHtpc0xvY2FsaXplLCBUcmFuc2xhdGVQbHVnaW5PcHRpb25zfSBmcm9tICcuLi8uLi9zb3VyY2VfZmlsZV91dGlscyc7XG5cbi8qKlxuICogVGhpcyBCYWJlbCBwbHVnaW4gd2lsbCByZXBsYWNlIHRoZSBmb2xsb3dpbmcgY29kZSBmb3JtcyB3aXRoIGEgc3RyaW5nIGxpdGVyYWwgY29udGFpbmluZyB0aGVcbiAqIGdpdmVuIGBsb2NhbGVgLlxuICpcbiAqICogYCRsb2NhbGl6ZS5sb2NhbGVgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiBgXCJsb2NhbGVcImBcbiAqICogYHR5cGVvZiAkbG9jYWxpemUgIT09IFwidW5kZWZpbmVkXCIgJiYgJGxvY2FsaXplLmxvY2FsZWAgICAgICAgIC0+IGBcImxvY2FsZVwiYFxuICogKiBgeHh4ICYmIHR5cGVvZiAkbG9jYWxpemUgIT09IFwidW5kZWZpbmVkXCIgJiYgJGxvY2FsaXplLmxvY2FsZWAgLT4gYFwieHh4ICYmIGxvY2FsZVwiYFxuICogKiBgJGxvY2FsaXplLmxvY2FsZSB8fCBkZWZhdWx0YCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+IGBcImxvY2FsZVwiIHx8IGRlZmF1bHRgXG4gKlxuICogQHBhcmFtIGxvY2FsZSBUaGUgbmFtZSBvZiB0aGUgbG9jYWxlIHRvIGlubGluZSBpbnRvIHRoZSBjb2RlLlxuICogQHBhcmFtIG9wdGlvbnMgQWRkaXRpb25hbCBvcHRpb25zIGluY2x1ZGluZyB0aGUgbmFtZSBvZiB0aGUgYCRsb2NhbGl6ZWAgZnVuY3Rpb24uXG4gKiBAcHVibGljQXBpIHVzZWQgYnkgQ0xJXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYWtlTG9jYWxlUGx1Z2luKFxuICAgIGxvY2FsZTogc3RyaW5nLCB7bG9jYWxpemVOYW1lID0gJyRsb2NhbGl6ZSd9OiBUcmFuc2xhdGVQbHVnaW5PcHRpb25zID0ge30pOiBQbHVnaW5PYmoge1xuICByZXR1cm4ge1xuICAgIHZpc2l0b3I6IHtcbiAgICAgIE1lbWJlckV4cHJlc3Npb24oZXhwcmVzc2lvbjogTm9kZVBhdGg8TWVtYmVyRXhwcmVzc2lvbj4pIHtcbiAgICAgICAgY29uc3Qgb2JqID0gZXhwcmVzc2lvbi5nZXQoJ29iamVjdCcpO1xuICAgICAgICBpZiAoIWlzTG9jYWxpemUob2JqLCBsb2NhbGl6ZU5hbWUpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByb3BlcnR5ID0gZXhwcmVzc2lvbi5nZXQoJ3Byb3BlcnR5JykgYXMgTm9kZVBhdGg7XG4gICAgICAgIGlmICghcHJvcGVydHkuaXNJZGVudGlmaWVyKHtuYW1lOiAnbG9jYWxlJ30pKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChleHByZXNzaW9uLnBhcmVudFBhdGguaXNBc3NpZ25tZW50RXhwcmVzc2lvbigpICYmXG4gICAgICAgICAgICBleHByZXNzaW9uLnBhcmVudFBhdGguZ2V0KCdsZWZ0JykgPT09IGV4cHJlc3Npb24pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2hlY2sgZm9yIHRoZSBgJGxvY2FsaXplLmxvY2FsZWAgYmVpbmcgZ3VhcmRlZCBieSBhIGNoZWNrIG9uIHRoZSBleGlzdGVuY2Ugb2ZcbiAgICAgICAgLy8gYCRsb2NhbGl6ZWAuXG4gICAgICAgIGNvbnN0IHBhcmVudCA9IGV4cHJlc3Npb24ucGFyZW50UGF0aDtcbiAgICAgICAgaWYgKHBhcmVudC5pc0xvZ2ljYWxFeHByZXNzaW9uKHtvcGVyYXRvcjogJyYmJ30pICYmIHBhcmVudC5nZXQoJ3JpZ2h0JykgPT09IGV4cHJlc3Npb24pIHtcbiAgICAgICAgICBjb25zdCBsZWZ0ID0gcGFyZW50LmdldCgnbGVmdCcpO1xuICAgICAgICAgIGlmIChpc0xvY2FsaXplR3VhcmQobGVmdCwgbG9jYWxpemVOYW1lKSkge1xuICAgICAgICAgICAgLy8gUmVwbGFjZSBgdHlwZW9mICRsb2NhbGl6ZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiAkbG9jYWxpemUubG9jYWxlYCB3aXRoXG4gICAgICAgICAgICAvLyBgJGxvY2FsaXplLmxvY2FsZWBcbiAgICAgICAgICAgIHBhcmVudC5yZXBsYWNlV2l0aChleHByZXNzaW9uKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICBsZWZ0LmlzTG9naWNhbEV4cHJlc3Npb24oe29wZXJhdG9yOiAnJiYnfSkgJiZcbiAgICAgICAgICAgICAgaXNMb2NhbGl6ZUd1YXJkKGxlZnQuZ2V0KCdyaWdodCcpLCBsb2NhbGl6ZU5hbWUpKSB7XG4gICAgICAgICAgICAvLyBUaGUgYCRsb2NhbGl6ZWAgaXMgcGFydCBvZiBhIHByZWNlZGluZyBsb2dpY2FsIEFORC5cbiAgICAgICAgICAgIC8vIFJlcGxhY2UgWFhYICYmIHR5cGVvZiAkbG9jYWxpemUgIT09IFwidW5kZWZpbmVkXCIgJiYgJGxvY2FsaXplLmxvY2FsZWAgd2l0aCBgWFhYICYmXG4gICAgICAgICAgICAvLyAkbG9jYWxpemUubG9jYWxlYFxuICAgICAgICAgICAgbGVmdC5yZXBsYWNlV2l0aChsZWZ0LmdldCgnbGVmdCcpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gUmVwbGFjZSB0aGUgYCRsb2NhbGl6ZS5sb2NhbGVgIHdpdGggdGhlIHN0cmluZyBsaXRlcmFsXG4gICAgICAgIGV4cHJlc3Npb24ucmVwbGFjZVdpdGgoc3RyaW5nTGl0ZXJhbChsb2NhbGUpKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBleHByZXNzaW9uIG9uZSBvZjpcbiAqICogYHR5cGVvZiAkbG9jYWxpemUgIT09IFwidW5kZWZpbmVkXCJgXG4gKiAqIGBcInVuZGVmaW5lZFwiICE9PSB0eXBlb2YgJGxvY2FsaXplYFxuICogKiBgdHlwZW9mICRsb2NhbGl6ZSAhPSBcInVuZGVmaW5lZFwiYFxuICogKiBgXCJ1bmRlZmluZWRcIiAhPSB0eXBlb2YgJGxvY2FsaXplYFxuICpcbiAqIEBwYXJhbSBleHByZXNzaW9uIHRoZSBleHByZXNzaW9uIHRvIGNoZWNrXG4gKiBAcGFyYW0gbG9jYWxpemVOYW1lIHRoZSBuYW1lIG9mIHRoZSBgJGxvY2FsaXplYCBzeW1ib2xcbiAqL1xuZnVuY3Rpb24gaXNMb2NhbGl6ZUd1YXJkKGV4cHJlc3Npb246IE5vZGVQYXRoLCBsb2NhbGl6ZU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoIWV4cHJlc3Npb24uaXNCaW5hcnlFeHByZXNzaW9uKCkgfHxcbiAgICAgICEoZXhwcmVzc2lvbi5ub2RlLm9wZXJhdG9yID09PSAnIT09JyB8fCBleHByZXNzaW9uLm5vZGUub3BlcmF0b3IgPT09ICchPScpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IGxlZnQgPSBleHByZXNzaW9uLmdldCgnbGVmdCcpO1xuICBjb25zdCByaWdodCA9IGV4cHJlc3Npb24uZ2V0KCdyaWdodCcpO1xuXG4gIHJldHVybiAobGVmdC5pc1VuYXJ5RXhwcmVzc2lvbih7b3BlcmF0b3I6ICd0eXBlb2YnfSkgJiZcbiAgICAgICAgICBpc0xvY2FsaXplKGxlZnQuZ2V0KCdhcmd1bWVudCcpLCBsb2NhbGl6ZU5hbWUpICYmXG4gICAgICAgICAgcmlnaHQuaXNTdHJpbmdMaXRlcmFsKHt2YWx1ZTogJ3VuZGVmaW5lZCd9KSkgfHxcbiAgICAgIChyaWdodC5pc1VuYXJ5RXhwcmVzc2lvbih7b3BlcmF0b3I6ICd0eXBlb2YnfSkgJiZcbiAgICAgICBpc0xvY2FsaXplKHJpZ2h0LmdldCgnYXJndW1lbnQnKSwgbG9jYWxpemVOYW1lKSAmJlxuICAgICAgIGxlZnQuaXNTdHJpbmdMaXRlcmFsKHt2YWx1ZTogJ3VuZGVmaW5lZCd9KSk7XG59XG4iXX0=