@angular/compiler-cli 11.1.0-next.4 → 11.1.1

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 (147) hide show
  1. package/linker/babel/src/ast/babel_ast_factory.d.ts +5 -0
  2. package/linker/babel/src/ast/babel_ast_factory.js +10 -5
  3. package/linker/babel/src/es2015_linker_plugin.d.ts +2 -2
  4. package/linker/babel/src/es2015_linker_plugin.js +26 -11
  5. package/linker/babel/src/linker_plugin_options.d.ts +21 -0
  6. package/linker/babel/src/linker_plugin_options.js +13 -0
  7. package/linker/src/file_linker/emit_scopes/emit_scope.d.ts +3 -3
  8. package/linker/src/file_linker/emit_scopes/emit_scope.js +6 -6
  9. package/linker/src/file_linker/emit_scopes/iife_emit_scope.d.ts +4 -0
  10. package/linker/src/file_linker/emit_scopes/iife_emit_scope.js +9 -8
  11. package/linker/src/file_linker/file_linker.d.ts +2 -3
  12. package/linker/src/file_linker/file_linker.js +6 -7
  13. package/linker/src/file_linker/get_source_file.d.ts +19 -0
  14. package/linker/src/file_linker/get_source_file.js +42 -0
  15. package/linker/src/file_linker/linker_environment.d.ts +8 -2
  16. package/linker/src/file_linker/linker_environment.js +11 -6
  17. package/linker/src/file_linker/linker_options.d.ts +5 -0
  18. package/linker/src/file_linker/linker_options.js +2 -1
  19. package/linker/src/file_linker/partial_linkers/partial_component_linker_1.d.ts +24 -10
  20. package/linker/src/file_linker/partial_linkers/partial_component_linker_1.js +138 -97
  21. package/linker/src/file_linker/partial_linkers/partial_directive_linker_1.d.ts +6 -2
  22. package/linker/src/file_linker/partial_linkers/partial_directive_linker_1.js +7 -4
  23. package/linker/src/file_linker/partial_linkers/partial_linker.d.ts +1 -1
  24. package/linker/src/file_linker/partial_linkers/partial_linker.js +1 -1
  25. package/linker/src/file_linker/partial_linkers/partial_linker_selector.d.ts +21 -18
  26. package/linker/src/file_linker/partial_linkers/partial_linker_selector.js +37 -31
  27. package/ngcc/src/analysis/decoration_analyzer.d.ts +3 -3
  28. package/ngcc/src/analysis/decoration_analyzer.js +3 -3
  29. package/ngcc/src/command_line_options.js +4 -3
  30. package/ngcc/src/dependencies/dependency_host.d.ts +3 -3
  31. package/ngcc/src/dependencies/dependency_host.js +1 -1
  32. package/ngcc/src/dependencies/dependency_resolver.d.ts +2 -2
  33. package/ngcc/src/dependencies/dependency_resolver.js +3 -4
  34. package/ngcc/src/dependencies/dts_dependency_host.d.ts +2 -2
  35. package/ngcc/src/dependencies/dts_dependency_host.js +1 -1
  36. package/ngcc/src/dependencies/esm_dependency_host.d.ts +2 -2
  37. package/ngcc/src/dependencies/esm_dependency_host.js +1 -1
  38. package/ngcc/src/dependencies/module_resolver.d.ts +2 -2
  39. package/ngcc/src/dependencies/module_resolver.js +15 -24
  40. package/ngcc/src/entry_point_finder/entry_point_collector.d.ts +2 -2
  41. package/ngcc/src/entry_point_finder/entry_point_collector.js +1 -1
  42. package/ngcc/src/entry_point_finder/program_based_entry_point_finder.d.ts +2 -2
  43. package/ngcc/src/entry_point_finder/program_based_entry_point_finder.js +2 -2
  44. package/ngcc/src/entry_point_finder/targeted_entry_point_finder.d.ts +11 -2
  45. package/ngcc/src/entry_point_finder/targeted_entry_point_finder.js +24 -20
  46. package/ngcc/src/entry_point_finder/tracing_entry_point_finder.d.ts +3 -3
  47. package/ngcc/src/entry_point_finder/tracing_entry_point_finder.js +1 -1
  48. package/ngcc/src/entry_point_finder/utils.d.ts +0 -9
  49. package/ngcc/src/entry_point_finder/utils.js +8 -9
  50. package/ngcc/src/execution/cluster/executor.d.ts +2 -2
  51. package/ngcc/src/execution/cluster/executor.js +1 -1
  52. package/ngcc/src/execution/cluster/master.d.ts +2 -2
  53. package/ngcc/src/execution/cluster/master.js +1 -1
  54. package/ngcc/src/execution/tasks/completion.d.ts +4 -4
  55. package/ngcc/src/execution/tasks/completion.js +4 -12
  56. package/ngcc/src/host/umd_host.js +2 -2
  57. package/ngcc/src/locking/lock_file.d.ts +2 -2
  58. package/ngcc/src/locking/lock_file.js +1 -1
  59. package/ngcc/src/main.js +6 -6
  60. package/ngcc/src/ngcc_options.js +2 -2
  61. package/ngcc/src/packages/build_marker.d.ts +1 -1
  62. package/ngcc/src/packages/build_marker.js +1 -1
  63. package/ngcc/src/packages/bundle_program.d.ts +3 -3
  64. package/ngcc/src/packages/bundle_program.js +6 -7
  65. package/ngcc/src/packages/configuration.d.ts +3 -3
  66. package/ngcc/src/packages/configuration.js +8 -9
  67. package/ngcc/src/packages/entry_point.d.ts +3 -3
  68. package/ngcc/src/packages/entry_point.js +13 -16
  69. package/ngcc/src/packages/entry_point_bundle.js +1 -1
  70. package/ngcc/src/packages/source_file_cache.d.ts +6 -6
  71. package/ngcc/src/packages/source_file_cache.js +1 -1
  72. package/ngcc/src/packages/transformer.d.ts +2 -2
  73. package/ngcc/src/packages/transformer.js +6 -6
  74. package/ngcc/src/path_mappings.d.ts +2 -2
  75. package/ngcc/src/path_mappings.js +4 -12
  76. package/ngcc/src/rendering/commonjs_rendering_formatter.d.ts +9 -1
  77. package/ngcc/src/rendering/commonjs_rendering_formatter.js +6 -13
  78. package/ngcc/src/rendering/dts_renderer.d.ts +2 -2
  79. package/ngcc/src/rendering/dts_renderer.js +1 -1
  80. package/ngcc/src/rendering/esm_rendering_formatter.d.ts +4 -3
  81. package/ngcc/src/rendering/esm_rendering_formatter.js +7 -5
  82. package/ngcc/src/rendering/renderer.d.ts +2 -2
  83. package/ngcc/src/rendering/renderer.js +1 -1
  84. package/ngcc/src/rendering/source_maps.d.ts +2 -2
  85. package/ngcc/src/rendering/source_maps.js +18 -19
  86. package/ngcc/src/rendering/umd_rendering_formatter.d.ts +9 -1
  87. package/ngcc/src/rendering/umd_rendering_formatter.js +6 -13
  88. package/ngcc/src/utils.d.ts +2 -2
  89. package/ngcc/src/utils.js +1 -1
  90. package/ngcc/src/writing/cleaning/package_cleaner.d.ts +2 -2
  91. package/ngcc/src/writing/cleaning/package_cleaner.js +1 -1
  92. package/ngcc/src/writing/cleaning/utils.d.ts +2 -2
  93. package/ngcc/src/writing/cleaning/utils.js +1 -1
  94. package/ngcc/src/writing/new_entry_point_file_writer.d.ts +14 -1
  95. package/ngcc/src/writing/new_entry_point_file_writer.js +54 -18
  96. package/package.json +2 -2
  97. package/src/ngtsc/annotations/src/component.d.ts +48 -10
  98. package/src/ngtsc/annotations/src/component.js +197 -116
  99. package/src/ngtsc/annotations/src/directive.js +18 -3
  100. package/src/ngtsc/core/api/src/public_options.d.ts +2 -2
  101. package/src/ngtsc/core/api/src/public_options.js +1 -1
  102. package/src/ngtsc/core/index.d.ts +1 -1
  103. package/src/ngtsc/core/index.js +5 -5
  104. package/src/ngtsc/core/src/compiler.d.ts +95 -12
  105. package/src/ngtsc/core/src/compiler.js +240 -81
  106. package/src/ngtsc/diagnostics/index.d.ts +1 -1
  107. package/src/ngtsc/diagnostics/index.js +4 -2
  108. package/src/ngtsc/diagnostics/src/error_code.d.ts +6 -1
  109. package/src/ngtsc/diagnostics/src/error_code.js +29 -2
  110. package/src/ngtsc/file_system/index.d.ts +1 -1
  111. package/src/ngtsc/file_system/index.js +1 -1
  112. package/src/ngtsc/file_system/src/node_js_file_system.d.ts +29 -19
  113. package/src/ngtsc/file_system/src/node_js_file_system.js +102 -80
  114. package/src/ngtsc/file_system/src/types.d.ts +34 -23
  115. package/src/ngtsc/file_system/src/types.js +1 -1
  116. package/src/ngtsc/incremental/src/strategy.d.ts +7 -0
  117. package/src/ngtsc/incremental/src/strategy.js +7 -1
  118. package/src/ngtsc/program.js +51 -20
  119. package/src/ngtsc/resource/src/loader.d.ts +4 -0
  120. package/src/ngtsc/resource/src/loader.js +7 -1
  121. package/src/ngtsc/sourcemaps/index.d.ts +3 -2
  122. package/src/ngtsc/sourcemaps/index.js +12 -3
  123. package/src/ngtsc/sourcemaps/src/content_origin.d.ts +34 -0
  124. package/src/ngtsc/sourcemaps/src/content_origin.js +48 -0
  125. package/src/ngtsc/sourcemaps/src/raw_source_map.d.ts +19 -1
  126. package/src/ngtsc/sourcemaps/src/raw_source_map.js +1 -8
  127. package/src/ngtsc/sourcemaps/src/segment_marker.d.ts +1 -1
  128. package/src/ngtsc/sourcemaps/src/segment_marker.js +1 -1
  129. package/src/ngtsc/sourcemaps/src/source_file.d.ts +7 -11
  130. package/src/ngtsc/sourcemaps/src/source_file.js +108 -32
  131. package/src/ngtsc/sourcemaps/src/source_file_loader.d.ts +36 -16
  132. package/src/ngtsc/sourcemaps/src/source_file_loader.js +72 -19
  133. package/src/ngtsc/transform/src/api.d.ts +5 -0
  134. package/src/ngtsc/transform/src/api.js +1 -1
  135. package/src/ngtsc/transform/src/compilation.d.ts +1 -0
  136. package/src/ngtsc/transform/src/compilation.js +40 -17
  137. package/src/ngtsc/tsc_plugin.js +26 -5
  138. package/src/ngtsc/typecheck/api/checker.d.ts +5 -0
  139. package/src/ngtsc/typecheck/api/checker.js +1 -1
  140. package/src/ngtsc/typecheck/src/checker.d.ts +1 -0
  141. package/src/ngtsc/typecheck/src/checker.js +17 -1
  142. package/src/ngtsc/typecheck/src/template_symbol_builder.js +104 -55
  143. package/src/perform_compile.d.ts +2 -2
  144. package/src/perform_compile.js +1 -1
  145. package/src/transformers/downlevel_decorators_transform.js +7 -8
  146. package/src/transformers/patch_alias_reference_resolution.js +25 -13
  147. package/src/version.js +1 -1
@@ -12,6 +12,11 @@ import { AstFactory, BinaryOperator, LeadingComment, ObjectLiteralProperty, Sour
12
12
  * A Babel flavored implementation of the AstFactory.
13
13
  */
14
14
  export declare class BabelAstFactory implements AstFactory<t.Statement, t.Expression> {
15
+ /** The absolute path to the source file being compiled. */
16
+ private sourceUrl;
17
+ constructor(
18
+ /** The absolute path to the source file being compiled. */
19
+ sourceUrl: string);
15
20
  attachComments(statement: t.Statement, leadingComments: LeadingComment[]): void;
16
21
  createArrayLiteral: typeof t.arrayExpression;
17
22
  createAssignment(target: t.Expression, value: t.Expression): t.Expression;
@@ -23,7 +23,10 @@
23
23
  * A Babel flavored implementation of the AstFactory.
24
24
  */
25
25
  var BabelAstFactory = /** @class */ (function () {
26
- function BabelAstFactory() {
26
+ function BabelAstFactory(
27
+ /** The absolute path to the source file being compiled. */
28
+ sourceUrl) {
29
+ this.sourceUrl = sourceUrl;
27
30
  this.createArrayLiteral = t.arrayExpression;
28
31
  this.createBlock = t.blockStatement;
29
32
  this.createConditional = t.conditionalExpression;
@@ -119,9 +122,11 @@
119
122
  if (sourceMapRange === null) {
120
123
  return node;
121
124
  }
122
- // Note that the linker only works on a single file at a time, so there is no need to track the
123
- // filename. Babel will just use the current filename in the source-map.
124
125
  node.loc = {
126
+ // Add in the filename so that we can map to external template files.
127
+ // Note that Babel gets confused if you specify a filename when it is the original source
128
+ // file. This happens when the template is inline, in which case just use `undefined`.
129
+ filename: sourceMapRange.url !== this.sourceUrl ? sourceMapRange.url : undefined,
125
130
  start: {
126
131
  line: sourceMapRange.start.line + 1,
127
132
  column: sourceMapRange.start.column,
@@ -130,7 +135,7 @@
130
135
  line: sourceMapRange.end.line + 1,
131
136
  column: sourceMapRange.end.column,
132
137
  },
133
- };
138
+ }; // Needed because the Babel typings for `loc` don't include `filename`.
134
139
  node.start = sourceMapRange.start.offset;
135
140
  node.end = sourceMapRange.end.offset;
136
141
  return node;
@@ -144,4 +149,4 @@
144
149
  return t.isLVal(expr);
145
150
  }
146
151
  });
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFiZWxfYXN0X2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL2JhYmVsL3NyYy9hc3QvYmFiZWxfYXN0X2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQUE7Ozs7OztPQU1HO0lBQ0gsZ0NBQWtDO0lBRWxDLHVEQUEwQztJQUcxQzs7T0FFRztJQUNIO1FBQUE7WUFTRSx1QkFBa0IsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDO1lBbUJ2QyxnQkFBVyxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUM7WUFVL0Isc0JBQWlCLEdBQUcsQ0FBQyxDQUFDLHFCQUFxQixDQUFDO1lBTTVDLDhCQUF5QixHQUFHLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztZQWdCbEQscUJBQWdCLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQztZQUVoQyxzQkFBaUIsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDO1lBa0JsQyx3QkFBbUIsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1lBVXRDLGtDQUE2QixHQUFHLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQztZQU0xRCwwQkFBcUIsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDO1lBUzFDLHlCQUFvQixHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUM7WUFNeEMsMEJBQXFCLEdBQUcsQ0FBQyxDQUFDLGVBQWUsQ0FBQztRQStCNUMsQ0FBQztRQTdJQyx3Q0FBYyxHQUFkLFVBQWUsU0FBc0IsRUFBRSxlQUFpQztZQUN0RSwrRkFBK0Y7WUFDL0YsS0FBSyxJQUFJLENBQUMsR0FBRyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNwRCxJQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLENBQUMs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QUFDLE1BQU07aUJBQ3BDO2dCQUNELEdBQUcsRUFBRTtvQkFDSCxJQUFJLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQztvQkFDakMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTTtpQkFDbEM7YUFDRixDQUFDO1lBQ0YsSUFBSSxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUN6QyxJQUFJLENBQUMsR0FBRyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO1lBRXJDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNILHNCQUFDO0lBQUQsQ0FBQyxBQTlJRCxJQThJQztJQTlJWSwwQ0FBZTtJQWdKNUIsU0FBUyxhQUFhLENBQUMsSUFBa0I7UUFDdkMsaUZBQWlGO1FBQ2pGLDRCQUE0QjtRQUM1QixPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0ICogYXMgdCBmcm9tICdAYmFiZWwvdHlwZXMnO1xuXG5pbXBvcnQge2Fzc2VydH0gZnJvbSAnLi4vLi4vLi4vLi4vbGlua2VyJztcbmltcG9ydCB7QXN0RmFjdG9yeSwgQmluYXJ5T3BlcmF0b3IsIExlYWRpbmdDb21tZW50LCBPYmplY3RMaXRlcmFsUHJvcGVydHksIFNvdXJjZU1hcFJhbmdlLCBUZW1wbGF0ZUxpdGVyYWwsIFZhcmlhYmxlRGVjbGFyYXRpb25UeXBlfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvbmd0c2MvdHJhbnNsYXRvcic7XG5cbi8qKlxuICogQSBCYWJlbCBmbGF2b3JlZCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgQXN0RmFjdG9yeS5cbiAqL1xuZXhwb3J0IGNsYXNzIEJhYmVsQXN0RmFjdG9yeSBpbXBsZW1lbnRzIEFzdEZhY3Rvcnk8dC5TdGF0ZW1lbnQsIHQuRXhwcmVzc2lvbj4ge1xuICBhdHRhY2hDb21tZW50cyhzdGF0ZW1lbnQ6IHQuU3RhdGVtZW50LCBsZWFkaW5nQ29tbWVudHM6IExlYWRpbmdDb21tZW50W10pOiB2b2lkIHtcbiAgICAvLyBXZSBtdXN0IHByb2Nlc3MgdGhlIGNvbW1lbnRzIGluIHJldmVyc2UgYmVjYXVzZSBgdC5hZGRDb21tZW50KClgIHdpbGwgYWRkIG5ldyBvbmVzIGluIGZyb250LlxuICAgIGZvciAobGV0IGkgPSBsZWFkaW5nQ29tbWVudHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IGNvbW1lbnQgPSBsZWFkaW5nQ29tbWVudHNbaV07XG4gICAgICB0LmFkZENvbW1lbnQoc3RhdGVtZW50LCAnbGVhZGluZycsIGNvbW1lbnQudG9TdHJpbmcoKSwgIWNvbW1lbnQubXVsdGlsaW5lKTtcbiAgICB9XG4gIH1cblxuICBjcmVhdGVBcnJheUxpdGVyYWwgPSB0LmFycmF5RXhwcmVzc2lvbjtcblxuICBjcmVhdGVBc3NpZ25tZW50KHRhcmdldDogdC5FeHByZXNzaW9uLCB2YWx1ZTogdC5FeHByZXNzaW9uKTogdC5FeHByZXNzaW9uIHtcbiAgICBhc3NlcnQodGFyZ2V0LCBpc0xFeHByZXNzaW9uLCAnbXVzdCBiZSBhIGxlZnQgaGFuZCBzaWRlIGV4cHJlc3Npb24nKTtcbiAgICByZXR1cm4gdC5hc3NpZ25tZW50RXhwcmVzc2lvbignPScsIHRhcmdldCwgdmFsdWUpO1xuICB9XG5cbiAgY3JlYXRlQmluYXJ5RXhwcmVzc2lvbihcbiAgICAgIGxlZnRPcGVyYW5kOiB0LkV4cHJlc3Npb24sIG9wZXJhdG9yOiBCaW5hcnlPcGVyYXRvcixcbiAgICAgIHJpZ2h0T3BlcmFuZDogdC5FeHByZXNzaW9uKTogdC5FeHByZXNzaW9uIHtcbiAgICBzd2l0Y2ggKG9wZXJhdG9yKSB7XG4gICAgICBjYXNlICcmJic6XG4gICAgICBjYXNlICd8fCc6XG4gICAgICAgIHJldHVybiB0LmxvZ2ljYWxFeHByZXNzaW9uKG9wZXJhdG9yLCBsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5kKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0LmJpbmFyeUV4cHJlc3Npb24ob3BlcmF0b3IsIGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQpO1xuICAgIH1cbiAgfVxuXG4gIGNyZWF0ZUJsb2NrID0gdC5ibG9ja1N0YXRlbWVudDtcblxuICBjcmVhdGVDYWxsRXhwcmVzc2lvbihjYWxsZWU6IHQuRXhwcmVzc2lvbiwgYXJnczogdC5FeHByZXNzaW9uW10sIHB1cmU6IGJvb2xlYW4pOiB0LkV4cHJlc3Npb24ge1xuICAgIGNvbnN0IGNhbGwgPSB0LmNhbGxFeHByZXNzaW9uKGNhbGxlZSwgYXJncyk7XG4gICAgaWYgKHB1cmUpIHtcbiAgICAgIHQuYWRkQ29tbWVudChjYWxsLCAnbGVhZGluZycsICcgQF9fUFVSRV9fICcsIC8qIGxpbmUgKi8gZmFsc2UpO1xuICAgIH1cbiAgICByZXR1cm4gY2FsbDtcbiAgfVxuXG4gIGNyZWF0ZUNvbmRpdGlvbmFsID0gdC5jb25kaXRpb25hbEV4cHJlc3Npb247XG5cbiAgY3JlYXRlRWxlbWVudEFjY2VzcyhleHByZXNzaW9uOiB0LkV4cHJlc3Npb24sIGVsZW1lbnQ6IHQuRXhwcmVzc2lvbik6IHQuRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIHQubWVtYmVyRXhwcmVzc2lvbihleHByZXNzaW9uLCBlbGVtZW50LCAvKiBjb21wdXRlZCAqLyB0cnVlKTtcbiAgfVxuXG4gIGNyZWF0ZUV4cHJlc3Npb25TdGF0ZW1lbnQgPSB0LmV4cHJlc3Npb25TdGF0ZW1lbnQ7XG5cbiAgY3JlYXRlRnVuY3Rpb25EZWNsYXJhdGlvbihmdW5jdGlvbk5hbWU6IHN0cmluZywgcGFyYW1ldGVyczogc3RyaW5nW10sIGJvZHk6IHQuU3RhdGVtZW50KTpcbiAgICAgIHQuU3RhdGVtZW50IHtcbiAgICBhc3NlcnQoYm9keSwgdC5pc0Jsb2NrU3RhdGVtZW50LCAnYSBibG9jaycpO1xuICAgIHJldHVybiB0LmZ1bmN0aW9uRGVjbGFyYXRpb24oXG4gICAgICAgIHQuaWRlbnRpZmllcihmdW5jdGlvbk5hbWUpLCBwYXJhbWV0ZXJzLm1hcChwYXJhbSA9PiB0LmlkZW50aWZpZXIocGFyYW0pKSwgYm9keSk7XG4gIH1cblxuICBjcmVhdGVGdW5jdGlvbkV4cHJlc3Npb24oZnVuY3Rpb25OYW1lOiBzdHJpbmd8bnVsbCwgcGFyYW1ldGVyczogc3RyaW5nW10sIGJvZHk6IHQuU3RhdGVtZW50KTpcbiAgICAgIHQuRXhwcmVzc2lvbiB7XG4gICAgYXNzZXJ0KGJvZHksIHQuaXNCbG9ja1N0YXRlbWVudCwgJ2EgYmxvY2snKTtcbiAgICBjb25zdCBuYW1lID0gZnVuY3Rpb25OYW1lICE9PSBudWxsID8gdC5pZGVudGlmaWVyKGZ1bmN0aW9uTmFtZSkgOiBudWxsO1xuICAgIHJldHVybiB0LmZ1bmN0aW9uRXhwcmVzc2lvbihuYW1lLCBwYXJhbWV0ZXJzLm1hcChwYXJhbSA9PiB0LmlkZW50aWZpZXIocGFyYW0pKSwgYm9keSk7XG4gIH1cblxuICBjcmVhdGVJZGVudGlmaWVyID0gdC5pZGVudGlmaWVyO1xuXG4gIGNyZWF0ZUlmU3RhdGVtZW50ID0gdC5pZlN0YXRlbWVudDtcblxuICBjcmVhdGVMaXRlcmFsKHZhbHVlOiBzdHJpbmd8bnVtYmVyfGJvb2xlYW58bnVsbHx1bmRlZmluZWQpOiB0LkV4cHJlc3Npb24ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdC5zdHJpbmdMaXRlcmFsKHZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiB0Lm51bWVyaWNMaXRlcmFsKHZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICByZXR1cm4gdC5ib29sZWFuTGl0ZXJhbCh2YWx1ZSk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdC5pZGVudGlmaWVyKCd1bmRlZmluZWQnKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gdC5udWxsTGl0ZXJhbCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbGl0ZXJhbDogJHt2YWx1ZX0gKCR7dHlwZW9mIHZhbHVlfSlgKTtcbiAgICB9XG4gIH1cblxuICBjcmVhdGVOZXdFeHByZXNzaW9uID0gdC5uZXdFeHByZXNzaW9uO1xuXG4gIGNyZWF0ZU9iamVjdExpdGVyYWwocHJvcGVydGllczogT2JqZWN0TGl0ZXJhbFByb3BlcnR5PHQuRXhwcmVzc2lvbj5bXSk6IHQuRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIHQub2JqZWN0RXhwcmVzc2lvbihwcm9wZXJ0aWVzLm1hcChwcm9wID0+IHtcbiAgICAgIGNvbnN0IGtleSA9XG4gICAgICAgICAgcHJvcC5xdW90ZWQgPyB0LnN0cmluZ0xpdGVyYWwocHJvcC5wcm9wZXJ0eU5hbWUpIDogdC5pZGVudGlmaWVyKHByb3AucHJvcGVydHlOYW1lKTtcbiAgICAgIHJldHVybiB0Lm9iamVjdFByb3BlcnR5KGtleSwgcHJvcC52YWx1ZSk7XG4gICAgfSkpO1xuICB9XG5cbiAgY3JlYXRlUGFyZW50aGVzaXplZEV4cHJlc3Npb24gPSB0LnBhcmVudGhlc2l6ZWRFeHByZXNzaW9uO1xuXG4gIGNyZWF0ZVByb3BlcnR5QWNjZXNzKGV4cHJlc3Npb246IHQuRXhwcmVzc2lvbiwgcHJvcGVydHlOYW1lOiBzdHJpbmcpOiB0LkV4cHJlc3Npb24ge1xuICAgIHJldHVybiB0Lm1lbWJlckV4cHJlc3Npb24oZXhwcmVzc2lvbiwgdC5pZGVudGlmaWVyKHByb3BlcnR5TmFtZSksIC8qIGNvbXB1dGVkICovIGZhbHNlKTtcbiAgfVxuXG4gIGNyZWF0ZVJldHVyblN0YXRlbWVudCA9IHQucmV0dXJuU3RhdGVtZW50O1xuXG4gIGNyZWF0ZVRhZ2dlZFRlbXBsYXRlKHRhZzogdC5FeHByZXNzaW9uLCB0ZW1wbGF0ZTogVGVtcGxhdGVMaXRlcmFsPHQuRXhwcmVzc2lvbj4pOiB0LkV4cHJlc3Npb24ge1xuICAgIGNvbnN0IGVsZW1lbnRzID0gdGVtcGxhdGUuZWxlbWVudHMubWFwKFxuICAgICAgICAoZWxlbWVudCwgaSkgPT4gdGhpcy5zZXRTb3VyY2VNYXBSYW5nZShcbiAgICAgICAgICAgIHQudGVtcGxhdGVFbGVtZW50KGVsZW1lbnQsIGkgPT09IHRlbXBsYXRlLmVsZW1lbnRzLmxlbmd0aCAtIDEpLCBlbGVtZW50LnJhbmdlKSk7XG4gICAgcmV0dXJuIHQudGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uKHRhZywgdC50ZW1wbGF0ZUxpdGVyYWwoZWxlbWVudHMsIHRlbXBsYXRlLmV4cHJlc3Npb25zKSk7XG4gIH1cblxuICBjcmVhdGVUaHJvd1N0YXRlbWVudCA9IHQudGhyb3dTdGF0ZW1lbnQ7XG5cbiAgY3JlYXRlVHlwZU9mRXhwcmVzc2lvbihleHByZXNzaW9uOiB0LkV4cHJlc3Npb24pOiB0LkV4cHJlc3Npb24ge1xuICAgIHJldHVybiB0LnVuYXJ5RXhwcmVzc2lvbigndHlwZW9mJywgZXhwcmVzc2lvbik7XG4gIH1cblxuICBjcmVhdGVVbmFyeUV4cHJlc3Npb24gPSB0LnVuYXJ5RXhwcmVzc2lvbjtcblxuICBjcmVhdGVWYXJpYWJsZURlY2xhcmF0aW9uKFxuICAgICAgdmFyaWFibGVOYW1lOiBzdHJpbmcsIGluaXRpYWxpemVyOiB0LkV4cHJlc3Npb258bnVsbCxcbiAgICAgIHR5cGU6IFZhcmlhYmxlRGVjbGFyYXRpb25UeXBlKTogdC5TdGF0ZW1lbnQge1xuICAgIHJldHVybiB0LnZhcmlhYmxlRGVjbGFyYXRpb24oXG4gICAgICAgIHR5cGUsIFt0LnZhcmlhYmxlRGVjbGFyYXRvcih0LmlkZW50aWZpZXIodmFyaWFibGVOYW1lKSwgaW5pdGlhbGl6ZXIpXSk7XG4gIH1cblxuICBzZXRTb3VyY2VNYXBSYW5nZTxUIGV4dGVuZHMgdC5TdGF0ZW1lbnR8dC5FeHByZXNzaW9ufHQuVGVtcGxhdGVFbGVtZW50PihcbiAgICAgIG5vZGU6IFQsIHNvdXJjZU1hcFJhbmdlOiBTb3VyY2VNYXBSYW5nZXxudWxsKTogVCB7XG4gICAgaWYgKHNvdXJjZU1hcFJhbmdlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG4gICAgLy8gTm90ZSB0aGF0IHRoZSBsaW5rZXIgb25seSB3b3JrcyBvbiBhIHNpbmdsZSBmaWxlIGF0IGEgdGltZSwgc28gdGhlcmUgaXMgbm8gbmVlZCB0byB0cmFjayB0aGVcbiAgICAvLyBmaWxlbmFtZS4gQmFiZWwgd2lsbCBqdXN0IHVzZSB0aGUgY3VycmVudCBmaWxlbmFtZSBpbiB0aGUgc291cmNlLW1hcC5cbiAgICBub2RlLmxvYyA9IHtcbiAgICAgIHN0YXJ0OiB7XG4gICAgICAgIGxpbmU6IHNvdXJjZU1hcFJhbmdlLnN0YXJ0LmxpbmUgKyAxLCAgLy8gbGluZXMgYXJlIDEtYmFzZWQgaW4gQmFiZWwuXG4gICAgICAgIGNvbHVtbjogc291cmNlTWFwUmFuZ2Uuc3RhcnQuY29sdW1uLFxuICAgICAgfSxcbiAgICAgIGVuZDoge1xuICAgICAgICBsaW5lOiBzb3VyY2VNYXBSYW5nZS5lbmQubGluZSArIDEsICAvLyBsaW5lcyBhcmUgMS1iYXNlZCBpbiBCYWJlbC5cbiAgICAgICAgY29sdW1uOiBzb3VyY2VNYXBSYW5nZS5lbmQuY29sdW1uLFxuICAgICAgfSxcbiAgICB9O1xuICAgIG5vZGUuc3RhcnQgPSBzb3VyY2VNYXBSYW5nZS5zdGFydC5vZmZzZXQ7XG4gICAgbm9kZS5lbmQgPSBzb3VyY2VNYXBSYW5nZS5lbmQub2Zmc2V0O1xuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNMRXhwcmVzc2lvbihleHByOiB0LkV4cHJlc3Npb24pOiBleHByIGlzIEV4dHJhY3Q8dC5MVmFsLCB0LkV4cHJlc3Npb24+IHtcbiAgLy8gU29tZSBMVmFsIHR5cGVzIGFyZSBub3QgZXhwcmVzc2lvbnMsIHdoaWNoIHByZXZlbnRzIHVzIGZyb20gdXNpbmcgYHQuaXNMVmFsKClgXG4gIC8vIGRpcmVjdGx5IHdpdGggYGFzc2VydCgpYC5cbiAgcmV0dXJuIHQuaXNMVmFsKGV4cHIpO1xufVxuIl19
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFiZWxfYXN0X2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL2JhYmVsL3NyYy9hc3QvYmFiZWxfYXN0X2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQUE7Ozs7OztPQU1HO0lBQ0gsZ0NBQWtDO0lBRWxDLHVEQUEwQztJQUcxQzs7T0FFRztJQUNIO1FBQ0U7UUFDSSwyREFBMkQ7UUFDbkQsU0FBaUI7WUFBakIsY0FBUyxHQUFULFNBQVMsQ0FBUTtZQVU3Qix1QkFBa0IsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDO1lBbUJ2QyxnQkFBVyxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUM7WUFVL0Isc0JBQWlCLEdBQUcsQ0FBQyxDQUFDLHFCQUFxQixDQUFDO1lBTTVDLDhCQUF5QixHQUFHLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztZQWdCbEQscUJBQWdCLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQztZQUVoQyxzQkFBaUIsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDO1lBa0JsQyx3QkFBbUIsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1lBVXRDLGtDQUE2QixHQUFHLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQztZQU0xRCwwQkFBcUIsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDO1lBUzFDLHlCQUFvQixHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUM7WUFNeEMsMEJBQXFCLEdBQUcsQ0FBQyxDQUFDLGVBQWUsQ0FBQztRQWhIVixDQUFDO1FBRWpDLHdDQUFjLEdBQWQsVUFBZSxTQUFzQixFQUFFLGVBQWlDO1lBQ3RFLCtGQUErRjtZQUMvRixLQUFLLElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3BELElB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SyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUNoRixLQUFLLEVBQUU7b0JBQ0wsSUFBSSxFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUM7b0JBQ25DLE1BQU0sRUFBRSxjQUFjLENBQUMsS0FBSyxDQUFDLE1BQU07aUJBQ3BDO2dCQUNELEdBQUcsRUFBRTtvQkFDSCxJQUFJLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQztvQkFDakMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTTtpQkFDbEM7YUFDSyxDQUFDLENBQUUsdUVBQXVFO1lBQ2xGLElBQUksQ0FBQyxLQUFLLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDekMsSUFBSSxDQUFDLEdBQUcsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztZQUVyQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDSCxzQkFBQztJQUFELENBQUMsQUFwSkQsSUFvSkM7SUFwSlksMENBQWU7SUFzSjVCLFNBQVMsYUFBYSxDQUFDLElBQWtCO1FBQ3ZDLGlGQUFpRjtRQUNqRiw0QkFBNEI7UUFDNUIsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCAqIGFzIHQgZnJvbSAnQGJhYmVsL3R5cGVzJztcblxuaW1wb3J0IHthc3NlcnR9IGZyb20gJy4uLy4uLy4uLy4uL2xpbmtlcic7XG5pbXBvcnQge0FzdEZhY3RvcnksIEJpbmFyeU9wZXJhdG9yLCBMZWFkaW5nQ29tbWVudCwgT2JqZWN0TGl0ZXJhbFByb3BlcnR5LCBTb3VyY2VNYXBSYW5nZSwgVGVtcGxhdGVMaXRlcmFsLCBWYXJpYWJsZURlY2xhcmF0aW9uVHlwZX0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL25ndHNjL3RyYW5zbGF0b3InO1xuXG4vKipcbiAqIEEgQmFiZWwgZmxhdm9yZWQgaW1wbGVtZW50YXRpb24gb2YgdGhlIEFzdEZhY3RvcnkuXG4gKi9cbmV4cG9ydCBjbGFzcyBCYWJlbEFzdEZhY3RvcnkgaW1wbGVtZW50cyBBc3RGYWN0b3J5PHQuU3RhdGVtZW50LCB0LkV4cHJlc3Npb24+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgICAvKiogVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHNvdXJjZSBmaWxlIGJlaW5nIGNvbXBpbGVkLiAqL1xuICAgICAgcHJpdmF0ZSBzb3VyY2VVcmw6IHN0cmluZykge31cblxuICBhdHRhY2hDb21tZW50cyhzdGF0ZW1lbnQ6IHQuU3RhdGVtZW50LCBsZWFkaW5nQ29tbWVudHM6IExlYWRpbmdDb21tZW50W10pOiB2b2lkIHtcbiAgICAvLyBXZSBtdXN0IHByb2Nlc3MgdGhlIGNvbW1lbnRzIGluIHJldmVyc2UgYmVjYXVzZSBgdC5hZGRDb21tZW50KClgIHdpbGwgYWRkIG5ldyBvbmVzIGluIGZyb250LlxuICAgIGZvciAobGV0IGkgPSBsZWFkaW5nQ29tbWVudHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IGNvbW1lbnQgPSBsZWFkaW5nQ29tbWVudHNbaV07XG4gICAgICB0LmFkZENvbW1lbnQoc3RhdGVtZW50LCAnbGVhZGluZycsIGNvbW1lbnQudG9TdHJpbmcoKSwgIWNvbW1lbnQubXVsdGlsaW5lKTtcbiAgICB9XG4gIH1cblxuICBjcmVhdGVBcnJheUxpdGVyYWwgPSB0LmFycmF5RXhwcmVzc2lvbjtcblxuICBjcmVhdGVBc3NpZ25tZW50KHRhcmdldDogdC5FeHByZXNzaW9uLCB2YWx1ZTogdC5FeHByZXNzaW9uKTogdC5FeHByZXNzaW9uIHtcbiAgICBhc3NlcnQodGFyZ2V0LCBpc0xFeHByZXNzaW9uLCAnbXVzdCBiZSBhIGxlZnQgaGFuZCBzaWRlIGV4cHJlc3Npb24nKTtcbiAgICByZXR1cm4gdC5hc3NpZ25tZW50RXhwcmVzc2lvbignPScsIHRhcmdldCwgdmFsdWUpO1xuICB9XG5cbiAgY3JlYXRlQmluYXJ5RXhwcmVzc2lvbihcbiAgICAgIGxlZnRPcGVyYW5kOiB0LkV4cHJlc3Npb24sIG9wZXJhdG9yOiBCaW5hcnlPcGVyYXRvcixcbiAgICAgIHJpZ2h0T3BlcmFuZDogdC5FeHByZXNzaW9uKTogdC5FeHByZXNzaW9uIHtcbiAgICBzd2l0Y2ggKG9wZXJhdG9yKSB7XG4gICAgICBjYXNlICcmJic6XG4gICAgICBjYXNlICd8fCc6XG4gICAgICAgIHJldHVybiB0LmxvZ2ljYWxFeHByZXNzaW9uKG9wZXJhdG9yLCBsZWZ0T3BlcmFuZCwgcmlnaHRPcGVyYW5kKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0LmJpbmFyeUV4cHJlc3Npb24ob3BlcmF0b3IsIGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQpO1xuICAgIH1cbiAgfVxuXG4gIGNyZWF0ZUJsb2NrID0gdC5ibG9ja1N0YXRlbWVudDtcblxuICBjcmVhdGVDYWxsRXhwcmVzc2lvbihjYWxsZWU6IHQuRXhwcmVzc2lvbiwgYXJnczogdC5FeHByZXNzaW9uW10sIHB1cmU6IGJvb2xlYW4pOiB0LkV4cHJlc3Npb24ge1xuICAgIGNvbnN0IGNhbGwgPSB0LmNhbGxFeHByZXNzaW9uKGNhbGxlZSwgYXJncyk7XG4gICAgaWYgKHB1cmUpIHtcbiAgICAgIHQuYWRkQ29tbWVudChjYWxsLCAnbGVhZGluZycsICcgQF9fUFVSRV9fICcsIC8qIGxpbmUgKi8gZmFsc2UpO1xuICAgIH1cbiAgICByZXR1cm4gY2FsbDtcbiAgfVxuXG4gIGNyZWF0ZUNvbmRpdGlvbmFsID0gdC5jb25kaXRpb25hbEV4cHJlc3Npb247XG5cbiAgY3JlYXRlRWxlbWVudEFjY2VzcyhleHByZXNzaW9uOiB0LkV4cHJlc3Npb24sIGVsZW1lbnQ6IHQuRXhwcmVzc2lvbik6IHQuRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIHQubWVtYmVyRXhwcmVzc2lvbihleHByZXNzaW9uLCBlbGVtZW50LCAvKiBjb21wdXRlZCAqLyB0cnVlKTtcbiAgfVxuXG4gIGNyZWF0ZUV4cHJlc3Npb25TdGF0ZW1lbnQgPSB0LmV4cHJlc3Npb25TdGF0ZW1lbnQ7XG5cbiAgY3JlYXRlRnVuY3Rpb25EZWNsYXJhdGlvbihmdW5jdGlvbk5hbWU6IHN0cmluZywgcGFyYW1ldGVyczogc3RyaW5nW10sIGJvZHk6IHQuU3RhdGVtZW50KTpcbiAgICAgIHQuU3RhdGVtZW50IHtcbiAgICBhc3NlcnQoYm9keSwgdC5pc0Jsb2NrU3RhdGVtZW50LCAnYSBibG9jaycpO1xuICAgIHJldHVybiB0LmZ1bmN0aW9uRGVjbGFyYXRpb24oXG4gICAgICAgIHQuaWRlbnRpZmllcihmdW5jdGlvbk5hbWUpLCBwYXJhbWV0ZXJzLm1hcChwYXJhbSA9PiB0LmlkZW50aWZpZXIocGFyYW0pKSwgYm9keSk7XG4gIH1cblxuICBjcmVhdGVGdW5jdGlvbkV4cHJlc3Npb24oZnVuY3Rpb25OYW1lOiBzdHJpbmd8bnVsbCwgcGFyYW1ldGVyczogc3RyaW5nW10sIGJvZHk6IHQuU3RhdGVtZW50KTpcbiAgICAgIHQuRXhwcmVzc2lvbiB7XG4gICAgYXNzZXJ0KGJvZHksIHQuaXNCbG9ja1N0YXRlbWVudCwgJ2EgYmxvY2snKTtcbiAgICBjb25zdCBuYW1lID0gZnVuY3Rpb25OYW1lICE9PSBudWxsID8gdC5pZGVudGlmaWVyKGZ1bmN0aW9uTmFtZSkgOiBudWxsO1xuICAgIHJldHVybiB0LmZ1bmN0aW9uRXhwcmVzc2lvbihuYW1lLCBwYXJhbWV0ZXJzLm1hcChwYXJhbSA9PiB0LmlkZW50aWZpZXIocGFyYW0pKSwgYm9keSk7XG4gIH1cblxuICBjcmVhdGVJZGVudGlmaWVyID0gdC5pZGVudGlmaWVyO1xuXG4gIGNyZWF0ZUlmU3RhdGVtZW50ID0gdC5pZlN0YXRlbWVudDtcblxuICBjcmVhdGVMaXRlcmFsKHZhbHVlOiBzdHJpbmd8bnVtYmVyfGJvb2xlYW58bnVsbHx1bmRlZmluZWQpOiB0LkV4cHJlc3Npb24ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdC5zdHJpbmdMaXRlcmFsKHZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiB0Lm51bWVyaWNMaXRlcmFsKHZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICByZXR1cm4gdC5ib29sZWFuTGl0ZXJhbCh2YWx1ZSk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdC5pZGVudGlmaWVyKCd1bmRlZmluZWQnKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gdC5udWxsTGl0ZXJhbCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbGl0ZXJhbDogJHt2YWx1ZX0gKCR7dHlwZW9mIHZhbHVlfSlgKTtcbiAgICB9XG4gIH1cblxuICBjcmVhdGVOZXdFeHByZXNzaW9uID0gdC5uZXdFeHByZXNzaW9uO1xuXG4gIGNyZWF0ZU9iamVjdExpdGVyYWwocHJvcGVydGllczogT2JqZWN0TGl0ZXJhbFByb3BlcnR5PHQuRXhwcmVzc2lvbj5bXSk6IHQuRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIHQub2JqZWN0RXhwcmVzc2lvbihwcm9wZXJ0aWVzLm1hcChwcm9wID0+IHtcbiAgICAgIGNvbnN0IGtleSA9XG4gICAgICAgICAgcHJvcC5xdW90ZWQgPyB0LnN0cmluZ0xpdGVyYWwocHJvcC5wcm9wZXJ0eU5hbWUpIDogdC5pZGVudGlmaWVyKHByb3AucHJvcGVydHlOYW1lKTtcbiAgICAgIHJldHVybiB0Lm9iamVjdFByb3BlcnR5KGtleSwgcHJvcC52YWx1ZSk7XG4gICAgfSkpO1xuICB9XG5cbiAgY3JlYXRlUGFyZW50aGVzaXplZEV4cHJlc3Npb24gPSB0LnBhcmVudGhlc2l6ZWRFeHByZXNzaW9uO1xuXG4gIGNyZWF0ZVByb3BlcnR5QWNjZXNzKGV4cHJlc3Npb246IHQuRXhwcmVzc2lvbiwgcHJvcGVydHlOYW1lOiBzdHJpbmcpOiB0LkV4cHJlc3Npb24ge1xuICAgIHJldHVybiB0Lm1lbWJlckV4cHJlc3Npb24oZXhwcmVzc2lvbiwgdC5pZGVudGlmaWVyKHByb3BlcnR5TmFtZSksIC8qIGNvbXB1dGVkICovIGZhbHNlKTtcbiAgfVxuXG4gIGNyZWF0ZVJldHVyblN0YXRlbWVudCA9IHQucmV0dXJuU3RhdGVtZW50O1xuXG4gIGNyZWF0ZVRhZ2dlZFRlbXBsYXRlKHRhZzogdC5FeHByZXNzaW9uLCB0ZW1wbGF0ZTogVGVtcGxhdGVMaXRlcmFsPHQuRXhwcmVzc2lvbj4pOiB0LkV4cHJlc3Npb24ge1xuICAgIGNvbnN0IGVsZW1lbnRzID0gdGVtcGxhdGUuZWxlbWVudHMubWFwKFxuICAgICAgICAoZWxlbWVudCwgaSkgPT4gdGhpcy5zZXRTb3VyY2VNYXBSYW5nZShcbiAgICAgICAgICAgIHQudGVtcGxhdGVFbGVtZW50KGVsZW1lbnQsIGkgPT09IHRlbXBsYXRlLmVsZW1lbnRzLmxlbmd0aCAtIDEpLCBlbGVtZW50LnJhbmdlKSk7XG4gICAgcmV0dXJuIHQudGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uKHRhZywgdC50ZW1wbGF0ZUxpdGVyYWwoZWxlbWVudHMsIHRlbXBsYXRlLmV4cHJlc3Npb25zKSk7XG4gIH1cblxuICBjcmVhdGVUaHJvd1N0YXRlbWVudCA9IHQudGhyb3dTdGF0ZW1lbnQ7XG5cbiAgY3JlYXRlVHlwZU9mRXhwcmVzc2lvbihleHByZXNzaW9uOiB0LkV4cHJlc3Npb24pOiB0LkV4cHJlc3Npb24ge1xuICAgIHJldHVybiB0LnVuYXJ5RXhwcmVzc2lvbigndHlwZW9mJywgZXhwcmVzc2lvbik7XG4gIH1cblxuICBjcmVhdGVVbmFyeUV4cHJlc3Npb24gPSB0LnVuYXJ5RXhwcmVzc2lvbjtcblxuICBjcmVhdGVWYXJpYWJsZURlY2xhcmF0aW9uKFxuICAgICAgdmFyaWFibGVOYW1lOiBzdHJpbmcsIGluaXRpYWxpemVyOiB0LkV4cHJlc3Npb258bnVsbCxcbiAgICAgIHR5cGU6IFZhcmlhYmxlRGVjbGFyYXRpb25UeXBlKTogdC5TdGF0ZW1lbnQge1xuICAgIHJldHVybiB0LnZhcmlhYmxlRGVjbGFyYXRpb24oXG4gICAgICAgIHR5cGUsIFt0LnZhcmlhYmxlRGVjbGFyYXRvcih0LmlkZW50aWZpZXIodmFyaWFibGVOYW1lKSwgaW5pdGlhbGl6ZXIpXSk7XG4gIH1cblxuICBzZXRTb3VyY2VNYXBSYW5nZTxUIGV4dGVuZHMgdC5TdGF0ZW1lbnR8dC5FeHByZXNzaW9ufHQuVGVtcGxhdGVFbGVtZW50PihcbiAgICAgIG5vZGU6IFQsIHNvdXJjZU1hcFJhbmdlOiBTb3VyY2VNYXBSYW5nZXxudWxsKTogVCB7XG4gICAgaWYgKHNvdXJjZU1hcFJhbmdlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG4gICAgbm9kZS5sb2MgPSB7XG4gICAgICAvLyBBZGQgaW4gdGhlIGZpbGVuYW1lIHNvIHRoYXQgd2UgY2FuIG1hcCB0byBleHRlcm5hbCB0ZW1wbGF0ZSBmaWxlcy5cbiAgICAgIC8vIE5vdGUgdGhhdCBCYWJlbCBnZXRzIGNvbmZ1c2VkIGlmIHlvdSBzcGVjaWZ5IGEgZmlsZW5hbWUgd2hlbiBpdCBpcyB0aGUgb3JpZ2luYWwgc291cmNlXG4gICAgICAvLyBmaWxlLiBUaGlzIGhhcHBlbnMgd2hlbiB0aGUgdGVtcGxhdGUgaXMgaW5saW5lLCBpbiB3aGljaCBjYXNlIGp1c3QgdXNlIGB1bmRlZmluZWRgLlxuICAgICAgZmlsZW5hbWU6IHNvdXJjZU1hcFJhbmdlLnVybCAhPT0gdGhpcy5zb3VyY2VVcmwgPyBzb3VyY2VNYXBSYW5nZS51cmwgOiB1bmRlZmluZWQsXG4gICAgICBzdGFydDoge1xuICAgICAgICBsaW5lOiBzb3VyY2VNYXBSYW5nZS5zdGFydC5saW5lICsgMSwgIC8vIGxpbmVzIGFyZSAxLWJhc2VkIGluIEJhYmVsLlxuICAgICAgICBjb2x1bW46IHNvdXJjZU1hcFJhbmdlLnN0YXJ0LmNvbHVtbixcbiAgICAgIH0sXG4gICAgICBlbmQ6IHtcbiAgICAgICAgbGluZTogc291cmNlTWFwUmFuZ2UuZW5kLmxpbmUgKyAxLCAgLy8gbGluZXMgYXJlIDEtYmFzZWQgaW4gQmFiZWwuXG4gICAgICAgIGNvbHVtbjogc291cmNlTWFwUmFuZ2UuZW5kLmNvbHVtbixcbiAgICAgIH0sXG4gICAgfSBhcyBhbnk7ICAvLyBOZWVkZWQgYmVjYXVzZSB0aGUgQmFiZWwgdHlwaW5ncyBmb3IgYGxvY2AgZG9uJ3QgaW5jbHVkZSBgZmlsZW5hbWVgLlxuICAgIG5vZGUuc3RhcnQgPSBzb3VyY2VNYXBSYW5nZS5zdGFydC5vZmZzZXQ7XG4gICAgbm9kZS5lbmQgPSBzb3VyY2VNYXBSYW5nZS5lbmQub2Zmc2V0O1xuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNMRXhwcmVzc2lvbihleHByOiB0LkV4cHJlc3Npb24pOiBleHByIGlzIEV4dHJhY3Q8dC5MVmFsLCB0LkV4cHJlc3Npb24+IHtcbiAgLy8gU29tZSBMVmFsIHR5cGVzIGFyZSBub3QgZXhwcmVzc2lvbnMsIHdoaWNoIHByZXZlbnRzIHVzIGZyb20gdXNpbmcgYHQuaXNMVmFsKClgXG4gIC8vIGRpcmVjdGx5IHdpdGggYGFzc2VydCgpYC5cbiAgcmV0dXJuIHQuaXNMVmFsKGV4cHIpO1xufVxuIl19
@@ -7,11 +7,11 @@
7
7
  * found in the LICENSE file at https://angular.io/license
8
8
  */
9
9
  import { PluginObj } from '@babel/core';
10
- import { LinkerOptions } from '../../../linker';
10
+ import { LinkerPluginOptions } from './linker_plugin_options';
11
11
  /**
12
12
  * Create a Babel plugin that visits the program, identifying and linking partial declarations.
13
13
  *
14
14
  * The plugin delegates most of its work to a generic `FileLinker` for each file (`t.Program` in
15
15
  * Babel) that is visited.
16
16
  */
17
- export declare function createEs2015LinkerPlugin(options?: Partial<LinkerOptions>): PluginObj;
17
+ export declare function createEs2015LinkerPlugin({ fileSystem, logger, ...options }: LinkerPluginOptions): PluginObj;
@@ -22,10 +22,9 @@
22
22
  * The plugin delegates most of its work to a generic `FileLinker` for each file (`t.Program` in
23
23
  * Babel) that is visited.
24
24
  */
25
- function createEs2015LinkerPlugin(options) {
26
- if (options === void 0) { options = {}; }
25
+ function createEs2015LinkerPlugin(_a) {
26
+ var fileSystem = _a.fileSystem, logger = _a.logger, options = tslib_1.__rest(_a, ["fileSystem", "logger"]);
27
27
  var fileLinker = null;
28
- var linkerEnvironment = linker_1.LinkerEnvironment.create(new babel_ast_host_1.BabelAstHost(), new babel_ast_factory_1.BabelAstFactory(), options);
29
28
  return {
30
29
  visitor: {
31
30
  Program: {
@@ -33,10 +32,18 @@
33
32
  * Create a new `FileLinker` as we enter each file (`t.Program` in Babel).
34
33
  */
35
34
  enter: function (path) {
36
- var _a;
35
+ var _a, _b;
37
36
  assertNull(fileLinker);
37
+ // Babel can be configured with a `filename` or `relativeFilename` (or both, or neither) -
38
+ // possibly relative to the optional `cwd` path.
38
39
  var file = path.hub.file;
39
- fileLinker = new linker_1.FileLinker(linkerEnvironment, (_a = file.opts.filename) !== null && _a !== void 0 ? _a : '', file.code);
40
+ var filename = (_a = file.opts.filename) !== null && _a !== void 0 ? _a : file.opts.filenameRelative;
41
+ if (!filename) {
42
+ throw new Error('No filename (nor filenameRelative) provided by Babel. This is required for the linking of partially compiled directives and components.');
43
+ }
44
+ var sourceUrl = fileSystem.resolve((_b = file.opts.cwd) !== null && _b !== void 0 ? _b : '.', filename);
45
+ var linkerEnvironment = linker_1.LinkerEnvironment.create(fileSystem, logger, new babel_ast_host_1.BabelAstHost(), new babel_ast_factory_1.BabelAstFactory(sourceUrl), options);
46
+ fileLinker = new linker_1.FileLinker(linkerEnvironment, sourceUrl, file.code);
40
47
  },
41
48
  /**
42
49
  * On exiting the file, insert any shared constant statements that were generated during
@@ -73,11 +80,7 @@
73
80
  return;
74
81
  }
75
82
  try {
76
- var callee = call.node.callee;
77
- if (!t.isExpression(callee)) {
78
- return;
79
- }
80
- var calleeName = linkerEnvironment.host.getSymbolName(callee);
83
+ var calleeName = getCalleeName(call);
81
84
  if (calleeName === null) {
82
85
  return;
83
86
  }
@@ -131,6 +134,18 @@
131
134
  importStatements[importStatements.length - 1].insertAfter(statements);
132
135
  }
133
136
  }
137
+ function getCalleeName(call) {
138
+ var callee = call.node.callee;
139
+ if (t.isIdentifier(callee)) {
140
+ return callee.name;
141
+ }
142
+ else if (t.isMemberExpression(callee) && t.isIdentifier(callee.property)) {
143
+ return callee.property.name;
144
+ }
145
+ else {
146
+ return null;
147
+ }
148
+ }
134
149
  /**
135
150
  * Return true if all the `nodes` are Babel expressions.
136
151
  */
@@ -162,4 +177,4 @@
162
177
  return filename + ": " + error.message;
163
178
  }
164
179
  });
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMyMDE1X2xpbmtlcl9wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL2JhYmVsL3NyYy9lczIwMTVfbGlua2VyX3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0lBU0EsZ0NBQWtDO0lBRWxDLHVEQUFpRztJQUVqRyxrR0FBd0Q7SUFDeEQsNEZBQWtEO0lBQ2xELDBHQUFtRjtJQUVuRjs7Ozs7T0FLRztJQUNILFNBQWdCLHdCQUF3QixDQUFDLE9BQW9DO1FBQXBDLHdCQUFBLEVBQUEsWUFBb0M7UUFDM0UsSUFBSSxVQUFVLEdBQWtFLElBQUksQ0FBQztRQUVyRixJQUFNLGlCQUFpQixHQUFHLDBCQUFpQixDQUFDLE1BQU0sQ0FDOUMsSUFBSSw2QkFBWSxFQUFFLEVBQUUsSUFBSSxtQ0FBZSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFeEQsT0FBTztZQUNMLE9BQU8sRUFBRTtnQkFDUCxPQUFPLEVBQUU7b0JBRVA7O3VCQUVHO29CQUNILEtBQUssRUFBTCxVQUFNLElBQXlCOzt3QkFDN0IsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO3dCQUN2QixJQUFNLElBQUksR0FBYyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQzt3QkFDdEMsVUFBVSxHQUFHLElBQUksbUJBQVUsQ0FBQyxpQkFBaUIsUUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsbUNBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDdEYsQ0FBQztvQkFFRDs7O3VCQUdHO29CQUNILElBQUksRUFBSjs7d0JBQ0UsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDOzs0QkFDMUIsS0FBMEMsSUFBQSxLQUFBLGlCQUFBLFVBQVUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFBLGdCQUFBLDRCQUFFO2dDQUFuRSxJQUFBLGFB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QUFFO1lBQ2pDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDOUM7YUFBTTtZQUNMLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDdkU7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTLGlCQUFpQixDQUFDLEtBQWU7UUFDeEMsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBcEIsQ0FBb0IsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVMsVUFBVSxDQUFJLEdBQVc7UUFDaEMsSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztTQUNwRDtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVMsYUFBYSxDQUFJLEdBQVc7UUFDbkMsSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztTQUN4RDtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVMsbUJBQW1CLENBQUMsSUFBZSxFQUFFLE9BQWUsRUFBRSxJQUFZO1FBQ3pFLElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLGdCQUFnQixDQUFDO1FBQ3hELElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdEQsT0FBVSxRQUFRLFVBQUssS0FBSyxDQUFDLE9BQVMsQ0FBQztJQUN6QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge1BsdWdpbk9ian0gZnJvbSAnQGJhYmVsL2NvcmUnO1xuaW1wb3J0IHtOb2RlUGF0aH0gZnJvbSAnQGJhYmVsL3RyYXZlcnNlJztcbmltcG9ydCAqIGFzIHQgZnJvbSAnQGJhYmVsL3R5cGVzJztcblxuaW1wb3J0IHtGaWxlTGlua2VyLCBpc0ZhdGFsTGlua2VyRXJyb3IsIExpbmtlckVudmlyb25tZW50LCBMaW5rZXJPcHRpb25zfSBmcm9tICcuLi8uLi8uLi9saW5rZXInO1xuXG5pbXBvcnQge0JhYmVsQXN0RmFjdG9yeX0gZnJvbSAnLi9hc3QvYmFiZWxfYXN0X2ZhY3RvcnknO1xuaW1wb3J0IHtCYWJlbEFzdEhvc3R9IGZyb20gJy4vYXN0L2JhYmVsX2FzdF9ob3N0JztcbmltcG9ydCB7QmFiZWxEZWNsYXJhdGlvblNjb3BlLCBDb25zdGFudFNjb3BlUGF0aH0gZnJvbSAnLi9iYWJlbF9kZWNsYXJhdGlvbl9zY29wZSc7XG5cbi8qKlxuICogQ3JlYXRlIGEgQmFiZWwgcGx1Z2luIHRoYXQgdmlzaXRzIHRoZSBwcm9ncmFtLCBpZGVudGlmeWluZyBhbmQgbGlua2luZyBwYXJ0aWFsIGRlY2xhcmF0aW9ucy5cbiAqXG4gKiBUaGUgcGx1Z2luIGRlbGVnYXRlcyBtb3N0IG9mIGl0cyB3b3JrIHRvIGEgZ2VuZXJpYyBgRmlsZUxpbmtlcmAgZm9yIGVhY2ggZmlsZSAoYHQuUHJvZ3JhbWAgaW5cbiAqIEJhYmVsKSB0aGF0IGlzIHZpc2l0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFczIwMTVMaW5rZXJQbHVnaW4ob3B0aW9uczogUGFydGlhbDxMaW5rZXJPcHRpb25zPiA9IHt9KTogUGx1Z2luT2JqIHtcbiAgbGV0IGZpbGVMaW5rZXI6IEZpbGVMaW5rZXI8Q29uc3RhbnRTY29wZVBhdGgsIHQuU3RhdGVtZW50LCB0LkV4cHJlc3Npb24+fG51bGwgPSBudWxsO1xuXG4gIGNvbnN0IGxpbmtlckVudmlyb25tZW50ID0gTGlua2VyRW52aXJvbm1lbnQuY3JlYXRlPHQuU3RhdGVtZW50LCB0LkV4cHJlc3Npb24+KFxuICAgICAgbmV3IEJhYmVsQXN0SG9zdCgpLCBuZXcgQmFiZWxBc3RGYWN0b3J5KCksIG9wdGlvbnMpO1xuXG4gIHJldHVybiB7XG4gICAgdmlzaXRvcjoge1xuICAgICAgUHJvZ3JhbToge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDcmVhdGUgYSBuZXcgYEZpbGVMaW5rZXJgIGFzIHdlIGVudGVyIGVhY2ggZmlsZSAoYHQuUHJvZ3JhbWAgaW4gQmFiZWwpLlxuICAgICAgICAgKi9cbiAgICAgICAgZW50ZXIocGF0aDogTm9kZVBhdGg8dC5Qcm9ncmFtPik6IHZvaWQge1xuICAgICAgICAgIGFzc2VydE51bGwoZmlsZUxpbmtlcik7XG4gICAgICAgICAgY29uc3QgZmlsZTogQmFiZWxGaWxlID0gcGF0aC5odWIuZmlsZTtcbiAgICAgICAgICBmaWxlTGlua2VyID0gbmV3IEZpbGVMaW5rZXIobGlua2VyRW52aXJvbm1lbnQsIGZpbGUub3B0cy5maWxlbmFtZSA/PyAnJywgZmlsZS5jb2RlKTtcbiAgICAgICAgfSxcblxuICAgICAgICAvKipcbiAgICAgICAgICogT24gZXhpdGluZyB0aGUgZmlsZSwgaW5zZXJ0IGFueSBzaGFyZWQgY29uc3RhbnQgc3RhdGVtZW50cyB0aGF0IHdlcmUgZ2VuZXJhdGVkIGR1cmluZ1xuICAgICAgICAgKiBsaW5raW5nIG9mIHRoZSBwYXJ0aWFsIGRlY2xhcmF0aW9ucy5cbiAgICAgICAgICovXG4gICAgICAgIGV4aXQoKTogdm9pZCB7XG4gICAgICAgICAgYXNzZXJ0Tm90TnVsbChmaWxlTGlua2VyKTtcbiAgICAgICAgICBmb3IgKGNvbnN0IHtjb25zdGFudFNjb3BlLCBzdGF0ZW1lbnRzfSBvZiBmaWxlTGlua2VyLmdldENvbnN0YW50U3RhdGVtZW50cygpKSB7XG4gICAgICAgICAgICBpbnNlcnRTdGF0ZW1lbnRzKGNvbnN0YW50U2NvcGUsIHN0YXRlbWVudHMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmaWxlTGlua2VyID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgLyoqXG4gICAgICAgKiBUZXN0IGVhY2ggY2FsbCBleHByZXNzaW9uIHRvIHNlZSBpZiBpdCBpcyBhIHBhcnRpYWwgZGVjbGFyYXRpb247IGl0IGlmIGlzIHRoZW4gcmVwbGFjZSBpdFxuICAgICAgICogd2l0aCB0aGUgcmVzdWx0cyBvZiBsaW5raW5nIHRoZSBkZWNsYXJhdGlvbi5cbiAgICAgICAqL1xuICAgICAgQ2FsbEV4cHJlc3Npb24oY2FsbDogTm9kZVBhdGg8dC5DYWxsRXhwcmVzc2lvbj4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGZpbGVMaW5rZXIgPT09IG51bGwpIHtcbiAgICAgICAgICAvLyBBbnkgc3RhdGVtZW50cyB0aGF0IGFyZSBpbnNlcnRlZCB1cG9uIHByb2dyYW0gZXhpdCB3aWxsIGJlIHZpc2l0ZWQgb3V0c2lkZSBvZiBhbiBhY3RpdmVcbiAgICAgICAgICAvLyBsaW5rZXIgY29udGV4dC4gVGhlc2UgY2FsbCBleHByZXNzaW9ucyBhcmUga25vd24gbm90IHRvIGNvbnRhaW4gcGFydGlhbCBkZWNsYXJhdGlvbnMsXG4gICAgICAgICAgLy8gc28gaXQncyBzYWZlIHRvIHNraXAgdmlzaXRpbmcgdGhvc2UgY2FsbCBleHByZXNzaW9ucy5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGNhbGxlZSA9IGNhbGwubm9kZS5jYWxsZWU7XG4gICAgICAgICAgaWYgKCF0LmlzRXhwcmVzc2lvbihjYWxsZWUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGNhbGxlZU5hbWUgPSBsaW5rZXJFbnZpcm9ubWVudC5ob3N0LmdldFN5bWJvbE5hbWUoY2FsbGVlKTtcbiAgICAgICAgICBpZiAoY2FsbGVlTmFtZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBhcmdzID0gY2FsbC5ub2RlLmFyZ3VtZW50cztcbiAgICAgICAgICBpZiAoIWZpbGVMaW5rZXIuaXNQYXJ0aWFsRGVjbGFyYXRpb24oY2FsbGVlTmFtZSkgfHwgIWlzRXhwcmVzc2lvbkFycmF5KGFyZ3MpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZGVjbGFyYXRpb25TY29wZSA9IG5ldyBCYWJlbERlY2xhcmF0aW9uU2NvcGUoY2FsbC5zY29wZSk7XG4gICAgICAgICAgY29uc3QgcmVwbGFjZW1lbnQgPSBmaWxlTGlua2VyLmxpbmtQYXJ0aWFsRGVjbGFyYXRpb24oY2FsbGVlTmFtZSwgYXJncywgZGVjbGFyYXRpb25TY29wZSk7XG5cbiAgICAgICAgICBjYWxsLnJlcGxhY2VXaXRoKHJlcGxhY2VtZW50KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGNvbnN0IG5vZGUgPSBpc0ZhdGFsTGlua2VyRXJyb3IoZSkgPyBlLm5vZGUgYXMgdC5Ob2RlIDogY2FsbC5ub2RlO1xuICAgICAgICAgIHRocm93IGJ1aWxkQ29kZUZyYW1lRXJyb3IoY2FsbC5odWIuZmlsZSwgZS5tZXNzYWdlLCBub2RlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBJbnNlcnQgdGhlIGBzdGF0ZW1lbnRzYCBhdCB0aGUgbG9jYXRpb24gZGVmaW5lZCBieSBgcGF0aGAuXG4gKlxuICogVGhlIGFjdHVhbCBpbnNlcnRpb24gc3RyYXRlZ3kgZGVwZW5kcyB1cG9uIHRoZSB0eXBlIG9mIHRoZSBgcGF0aGAuXG4gKi9cbmZ1bmN0aW9uIGluc2VydFN0YXRlbWVudHMocGF0aDogQ29uc3RhbnRTY29wZVBhdGgsIHN0YXRlbWVudHM6IHQuU3RhdGVtZW50W10pOiB2b2lkIHtcbiAgaWYgKHBhdGguaXNGdW5jdGlvbigpKSB7XG4gICAgaW5zZXJ0SW50b0Z1bmN0aW9uKHBhdGgsIHN0YXRlbWVudHMpO1xuICB9IGVsc2UgaWYgKHBhdGguaXNQcm9ncmFtKCkpIHtcbiAgICBpbnNlcnRJbnRvUHJvZ3JhbShwYXRoLCBzdGF0ZW1lbnRzKTtcbiAgfVxufVxuXG4vKipcbiAqIEluc2VydCB0aGUgYHN0YXRlbWVudHNgIGF0IHRoZSB0b3Agb2YgdGhlIGJvZHkgb2YgdGhlIGBmbmAgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGluc2VydEludG9GdW5jdGlvbihmbjogTm9kZVBhdGg8dC5GdW5jdGlvbj4sIHN0YXRlbWVudHM6IHQuU3RhdGVtZW50W10pOiB2b2lkIHtcbiAgY29uc3QgYm9keSA9IGZuLmdldCgnYm9keScpO1xuICBib2R5LnVuc2hpZnRDb250YWluZXIoJ2JvZHknLCBzdGF0ZW1lbnRzKTtcbn1cblxuLyoqXG4gKiBJbnNlcnQgdGhlIGBzdGF0ZW1lbnRzYCBhdCB0aGUgdG9wIG9mIHRoZSBgcHJvZ3JhbWAsIGJlbG93IGFueSBpbXBvcnQgc3RhdGVtZW50cy5cbiAqL1xuZnVuY3Rpb24gaW5zZXJ0SW50b1Byb2dyYW0ocHJvZ3JhbTogTm9kZVBhdGg8dC5Qcm9ncmFtPiwgc3RhdGVtZW50czogdC5TdGF0ZW1lbnRbXSk6IHZvaWQge1xuICBjb25zdCBib2R5ID0gcHJvZ3JhbS5nZXQoJ2JvZHknKTtcbiAgY29uc3QgaW1wb3J0U3RhdGVtZW50cyA9IGJvZHkuZmlsdGVyKHN0YXRlbWVudCA9PiBzdGF0ZW1lbnQuaXNJbXBvcnREZWNsYXJhdGlvbigpKTtcbiAgaWYgKGltcG9ydFN0YXRlbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgcHJvZ3JhbS51bnNoaWZ0Q29udGFpbmVyKCdib2R5Jywgc3RhdGVtZW50cyk7XG4gIH0gZWxzZSB7XG4gICAgaW1wb3J0U3RhdGVtZW50c1tpbXBvcnRTdGF0ZW1lbnRzLmxlbmd0aCAtIDFdLmluc2VydEFmdGVyKHN0YXRlbWVudHMpO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJuIHRydWUgaWYgYWxsIHRoZSBgbm9kZXNgIGFyZSBCYWJlbCBleHByZXNzaW9ucy5cbiAqL1xuZnVuY3Rpb24gaXNFeHByZXNzaW9uQXJyYXkobm9kZXM6IHQuTm9kZVtdKTogbm9kZXMgaXMgdC5FeHByZXNzaW9uW10ge1xuICByZXR1cm4gbm9kZXMuZXZlcnkobm9kZSA9PiB0LmlzRXhwcmVzc2lvbihub2RlKSk7XG59XG5cbi8qKlxuICogQXNzZXJ0IHRoYXQgdGhlIGdpdmVuIGBvYmpgIGlzIGBudWxsYC5cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0TnVsbDxUPihvYmo6IFR8bnVsbCk6IGFzc2VydHMgb2JqIGlzIG51bGwge1xuICBpZiAob2JqICE9PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdCVUcgLSBleHBlY3RlZCBgb2JqYCB0byBiZSBudWxsJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBBc3NlcnQgdGhhdCB0aGUgZ2l2ZW4gYG9iamAgaXMgbm90IGBudWxsYC5cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0Tm90TnVsbDxUPihvYmo6IFR8bnVsbCk6IGFzc2VydHMgb2JqIGlzIFQge1xuICBpZiAob2JqID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdCVUcgLSBleHBlY3RlZCBgb2JqYCBub3QgdG8gYmUgbnVsbCcpO1xuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIGVycm9yIHRoYXQgaW5jbHVkZXMgdGhlIGNvZGUgZnJhbWUgb2YgdGhlIGBub2RlYC5cbiAqL1xuZnVuY3Rpb24gYnVpbGRDb2RlRnJhbWVFcnJvcihmaWxlOiBCYWJlbEZpbGUsIG1lc3NhZ2U6IHN0cmluZywgbm9kZTogdC5Ob2RlKTogc3RyaW5nIHtcbiAgY29uc3QgZmlsZW5hbWUgPSBmaWxlLm9wdHMuZmlsZW5hbWUgfHwgJyh1bmtub3duIGZpbGUpJztcbiAgY29uc3QgZXJyb3IgPSBmaWxlLmJ1aWxkQ29kZUZyYW1lRXJyb3Iobm9kZSwgbWVzc2FnZSk7XG4gIHJldHVybiBgJHtmaWxlbmFtZX06ICR7ZXJyb3IubWVzc2FnZX1gO1xufVxuXG4vKipcbiAqIFRoaXMgaW50ZXJmYWNlIGlzIG1ha2luZyB1cCBmb3IgdGhlIGZhY3QgdGhhdCB0aGUgQmFiZWwgdHlwaW5ncyBmb3IgYE5vZGVQYXRoLmh1Yi5maWxlYCBhcmVcbiAqIGxhY2tpbmcuXG4gKi9cbmludGVyZmFjZSBCYWJlbEZpbGUge1xuICBjb2RlOiBzdHJpbmc7XG4gIG9wdHM6IHtmaWxlbmFtZT86IHN0cmluZzt9O1xuXG4gIGJ1aWxkQ29kZUZyYW1lRXJyb3Iobm9kZTogdC5Ob2RlLCBtZXNzYWdlOiBzdHJpbmcpOiBFcnJvcjtcbn1cbiJdfQ==
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMyMDE1X2xpbmtlcl9wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL2JhYmVsL3NyYy9lczIwMTVfbGlua2VyX3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0lBU0EsZ0NBQWtDO0lBRWxDLHVEQUFrRjtJQUVsRixrR0FBd0Q7SUFDeEQsNEZBQWtEO0lBQ2xELDBHQUFtRjtJQUluRjs7Ozs7T0FLRztJQUNILFNBQWdCLHdCQUF3QixDQUFDLEVBQXFEO1FBQXBELElBQUEsVUFBVSxnQkFBQSxFQUFFLE1BQU0sWUFBQSxFQUFLLE9BQU8sc0JBQS9CLHdCQUFnQyxDQUFEO1FBRXRFLElBQUksVUFBVSxHQUFrRSxJQUFJLENBQUM7UUFFckYsT0FBTztZQUNMLE9BQU8sRUFBRTtnQkFDUCxPQUFPLEVBQUU7b0JBRVA7O3VCQUVHO29CQUNILEtBQUssRUFBTCxVQUFNLElBQXlCOzt3QkFDN0IsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO3dCQUN2QiwwRkFBMEY7d0JBQzFGLGdEQUFnRDt3QkFDaEQsSUFBTSxJQUFJLEdBQWMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7d0JBQ3RDLElBQU0sUUFBUSxTQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxtQ0FBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO3dCQUNsRSxJQUFJLENBQUMsUUFBUSxFQUFFOzRCQUNiLE1BQU0sSUFBSSxLQUFLLENBQ1gseUlBQXlJLENBQUMsQ0FBQzt5QkFDaEo7d0JBQ0QsSUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLE9BQU8sT0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsbUNBQUksR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO3dCQUVyRSxJQUFNLGlCQUFpQixHQUFHLDBCQUFpQixDQUFDLE1BQU0s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QUksRUFBRTtZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7U0FDcEQ7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTLGFBQWEsQ0FBSSxHQUFXO1FBQ25DLElBQUksR0FBRyxLQUFLLElBQUksRUFBRTtZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7U0FDeEQ7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTLG1CQUFtQixDQUFDLElBQWUsRUFBRSxPQUFlLEVBQUUsSUFBWTtRQUN6RSxJQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxnQkFBZ0IsQ0FBQztRQUN4RCxJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3RELE9BQVUsUUFBUSxVQUFLLEtBQUssQ0FBQyxPQUFTLENBQUM7SUFDekMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtQbHVnaW5PYmp9IGZyb20gJ0BiYWJlbC9jb3JlJztcbmltcG9ydCB7Tm9kZVBhdGh9IGZyb20gJ0BiYWJlbC90cmF2ZXJzZSc7XG5pbXBvcnQgKiBhcyB0IGZyb20gJ0BiYWJlbC90eXBlcyc7XG5cbmltcG9ydCB7RmlsZUxpbmtlciwgaXNGYXRhbExpbmtlckVycm9yLCBMaW5rZXJFbnZpcm9ubWVudH0gZnJvbSAnLi4vLi4vLi4vbGlua2VyJztcblxuaW1wb3J0IHtCYWJlbEFzdEZhY3Rvcnl9IGZyb20gJy4vYXN0L2JhYmVsX2FzdF9mYWN0b3J5JztcbmltcG9ydCB7QmFiZWxBc3RIb3N0fSBmcm9tICcuL2FzdC9iYWJlbF9hc3RfaG9zdCc7XG5pbXBvcnQge0JhYmVsRGVjbGFyYXRpb25TY29wZSwgQ29uc3RhbnRTY29wZVBhdGh9IGZyb20gJy4vYmFiZWxfZGVjbGFyYXRpb25fc2NvcGUnO1xuaW1wb3J0IHtMaW5rZXJQbHVnaW5PcHRpb25zfSBmcm9tICcuL2xpbmtlcl9wbHVnaW5fb3B0aW9ucyc7XG5cblxuLyoqXG4gKiBDcmVhdGUgYSBCYWJlbCBwbHVnaW4gdGhhdCB2aXNpdHMgdGhlIHByb2dyYW0sIGlkZW50aWZ5aW5nIGFuZCBsaW5raW5nIHBhcnRpYWwgZGVjbGFyYXRpb25zLlxuICpcbiAqIFRoZSBwbHVnaW4gZGVsZWdhdGVzIG1vc3Qgb2YgaXRzIHdvcmsgdG8gYSBnZW5lcmljIGBGaWxlTGlua2VyYCBmb3IgZWFjaCBmaWxlIChgdC5Qcm9ncmFtYCBpblxuICogQmFiZWwpIHRoYXQgaXMgdmlzaXRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVzMjAxNUxpbmtlclBsdWdpbih7ZmlsZVN5c3RlbSwgbG9nZ2VyLCAuLi5vcHRpb25zfTogTGlua2VyUGx1Z2luT3B0aW9ucyk6XG4gICAgUGx1Z2luT2JqIHtcbiAgbGV0IGZpbGVMaW5rZXI6IEZpbGVMaW5rZXI8Q29uc3RhbnRTY29wZVBhdGgsIHQuU3RhdGVtZW50LCB0LkV4cHJlc3Npb24+fG51bGwgPSBudWxsO1xuXG4gIHJldHVybiB7XG4gICAgdmlzaXRvcjoge1xuICAgICAgUHJvZ3JhbToge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDcmVhdGUgYSBuZXcgYEZpbGVMaW5rZXJgIGFzIHdlIGVudGVyIGVhY2ggZmlsZSAoYHQuUHJvZ3JhbWAgaW4gQmFiZWwpLlxuICAgICAgICAgKi9cbiAgICAgICAgZW50ZXIocGF0aDogTm9kZVBhdGg8dC5Qcm9ncmFtPik6IHZvaWQge1xuICAgICAgICAgIGFzc2VydE51bGwoZmlsZUxpbmtlcik7XG4gICAgICAgICAgLy8gQmFiZWwgY2FuIGJlIGNvbmZpZ3VyZWQgd2l0aCBhIGBmaWxlbmFtZWAgb3IgYHJlbGF0aXZlRmlsZW5hbWVgIChvciBib3RoLCBvciBuZWl0aGVyKSAtXG4gICAgICAgICAgLy8gcG9zc2libHkgcmVsYXRpdmUgdG8gdGhlIG9wdGlvbmFsIGBjd2RgIHBhdGguXG4gICAgICAgICAgY29uc3QgZmlsZTogQmFiZWxGaWxlID0gcGF0aC5odWIuZmlsZTtcbiAgICAgICAgICBjb25zdCBmaWxlbmFtZSA9IGZpbGUub3B0cy5maWxlbmFtZSA/PyBmaWxlLm9wdHMuZmlsZW5hbWVSZWxhdGl2ZTtcbiAgICAgICAgICBpZiAoIWZpbGVuYW1lKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgJ05vIGZpbGVuYW1lIChub3IgZmlsZW5hbWVSZWxhdGl2ZSkgcHJvdmlkZWQgYnkgQmFiZWwuIFRoaXMgaXMgcmVxdWlyZWQgZm9yIHRoZSBsaW5raW5nIG9mIHBhcnRpYWxseSBjb21waWxlZCBkaXJlY3RpdmVzIGFuZCBjb21wb25lbnRzLicpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBzb3VyY2VVcmwgPSBmaWxlU3lzdGVtLnJlc29sdmUoZmlsZS5vcHRzLmN3ZCA/PyAnLicsIGZpbGVuYW1lKTtcblxuICAgICAgICAgIGNvbnN0IGxpbmtlckVudmlyb25tZW50ID0gTGlua2VyRW52aXJvbm1lbnQuY3JlYXRlPHQuU3RhdGVtZW50LCB0LkV4cHJlc3Npb24+KFxuICAgICAgICAgICAgICBmaWxlU3lzdGVtLCBsb2dnZXIsIG5ldyBCYWJlbEFzdEhvc3QoKSwgbmV3IEJhYmVsQXN0RmFjdG9yeShzb3VyY2VVcmwpLCBvcHRpb25zKTtcbiAgICAgICAgICBmaWxlTGlua2VyID0gbmV3IEZpbGVMaW5rZXIobGlua2VyRW52aXJvbm1lbnQsIHNvdXJjZVVybCwgZmlsZS5jb2RlKTtcbiAgICAgICAgfSxcblxuICAgICAgICAvKipcbiAgICAgICAgICogT24gZXhpdGluZyB0aGUgZmlsZSwgaW5zZXJ0IGFueSBzaGFyZWQgY29uc3RhbnQgc3RhdGVtZW50cyB0aGF0IHdlcmUgZ2VuZXJhdGVkIGR1cmluZ1xuICAgICAgICAgKiBsaW5raW5nIG9mIHRoZSBwYXJ0aWFsIGRlY2xhcmF0aW9ucy5cbiAgICAgICAgICovXG4gICAgICAgIGV4aXQoKTogdm9pZCB7XG4gICAgICAgICAgYXNzZXJ0Tm90TnVsbChmaWxlTGlua2VyKTtcbiAgICAgICAgICBmb3IgKGNvbnN0IHtjb25zdGFudFNjb3BlLCBzdGF0ZW1lbnRzfSBvZiBmaWxlTGlua2VyLmdldENvbnN0YW50U3RhdGVtZW50cygpKSB7XG4gICAgICAgICAgICBpbnNlcnRTdGF0ZW1lbnRzKGNvbnN0YW50U2NvcGUsIHN0YXRlbWVudHMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmaWxlTGlua2VyID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgLyoqXG4gICAgICAgKiBUZXN0IGVhY2ggY2FsbCBleHByZXNzaW9uIHRvIHNlZSBpZiBpdCBpcyBhIHBhcnRpYWwgZGVjbGFyYXRpb247IGl0IGlmIGlzIHRoZW4gcmVwbGFjZSBpdFxuICAgICAgICogd2l0aCB0aGUgcmVzdWx0cyBvZiBsaW5raW5nIHRoZSBkZWNsYXJhdGlvbi5cbiAgICAgICAqL1xuICAgICAgQ2FsbEV4cHJlc3Npb24oY2FsbDogTm9kZVBhdGg8dC5DYWxsRXhwcmVzc2lvbj4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGZpbGVMaW5rZXIgPT09IG51bGwpIHtcbiAgICAgICAgICAvLyBBbnkgc3RhdGVtZW50cyB0aGF0IGFyZSBpbnNlcnRlZCB1cG9uIHByb2dyYW0gZXhpdCB3aWxsIGJlIHZpc2l0ZWQgb3V0c2lkZSBvZiBhbiBhY3RpdmVcbiAgICAgICAgICAvLyBsaW5rZXIgY29udGV4dC4gVGhlc2UgY2FsbCBleHByZXNzaW9ucyBhcmUga25vd24gbm90IHRvIGNvbnRhaW4gcGFydGlhbCBkZWNsYXJhdGlvbnMsXG4gICAgICAgICAgLy8gc28gaXQncyBzYWZlIHRvIHNraXAgdmlzaXRpbmcgdGhvc2UgY2FsbCBleHByZXNzaW9ucy5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGNhbGxlZU5hbWUgPSBnZXRDYWxsZWVOYW1lKGNhbGwpO1xuICAgICAgICAgIGlmIChjYWxsZWVOYW1lID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGFyZ3MgPSBjYWxsLm5vZGUuYXJndW1lbnRzO1xuICAgICAgICAgIGlmICghZmlsZUxpbmtlci5pc1BhcnRpYWxEZWNsYXJhdGlvbihjYWxsZWVOYW1lKSB8fCAhaXNFeHByZXNzaW9uQXJyYXkoYXJncykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBkZWNsYXJhdGlvblNjb3BlID0gbmV3IEJhYmVsRGVjbGFyYXRpb25TY29wZShjYWxsLnNjb3BlKTtcbiAgICAgICAgICBjb25zdCByZXBsYWNlbWVudCA9IGZpbGVMaW5rZXIubGlua1BhcnRpYWxEZWNsYXJhdGlvbihjYWxsZWVOYW1lLCBhcmdzLCBkZWNsYXJhdGlvblNjb3BlKTtcblxuICAgICAgICAgIGNhbGwucmVwbGFjZVdpdGgocmVwbGFjZW1lbnQpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgY29uc3Qgbm9kZSA9IGlzRmF0YWxMaW5rZXJFcnJvcihlKSA/IGUubm9kZSBhcyB0Lk5vZGUgOiBjYWxsLm5vZGU7XG4gICAgICAgICAgdGhyb3cgYnVpbGRDb2RlRnJhbWVFcnJvcihjYWxsLmh1Yi5maWxlLCBlLm1lc3NhZ2UsIG5vZGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIEluc2VydCB0aGUgYHN0YXRlbWVudHNgIGF0IHRoZSBsb2NhdGlvbiBkZWZpbmVkIGJ5IGBwYXRoYC5cbiAqXG4gKiBUaGUgYWN0dWFsIGluc2VydGlvbiBzdHJhdGVneSBkZXBlbmRzIHVwb24gdGhlIHR5cGUgb2YgdGhlIGBwYXRoYC5cbiAqL1xuZnVuY3Rpb24gaW5zZXJ0U3RhdGVtZW50cyhwYXRoOiBDb25zdGFudFNjb3BlUGF0aCwgc3RhdGVtZW50czogdC5TdGF0ZW1lbnRbXSk6IHZvaWQge1xuICBpZiAocGF0aC5pc0Z1bmN0aW9uKCkpIHtcbiAgICBpbnNlcnRJbnRvRnVuY3Rpb24ocGF0aCwgc3RhdGVtZW50cyk7XG4gIH0gZWxzZSBpZiAocGF0aC5pc1Byb2dyYW0oKSkge1xuICAgIGluc2VydEludG9Qcm9ncmFtKHBhdGgsIHN0YXRlbWVudHMpO1xuICB9XG59XG5cbi8qKlxuICogSW5zZXJ0IHRoZSBgc3RhdGVtZW50c2AgYXQgdGhlIHRvcCBvZiB0aGUgYm9keSBvZiB0aGUgYGZuYCBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gaW5zZXJ0SW50b0Z1bmN0aW9uKGZuOiBOb2RlUGF0aDx0LkZ1bmN0aW9uPiwgc3RhdGVtZW50czogdC5TdGF0ZW1lbnRbXSk6IHZvaWQge1xuICBjb25zdCBib2R5ID0gZm4uZ2V0KCdib2R5Jyk7XG4gIGJvZHkudW5zaGlmdENvbnRhaW5lcignYm9keScsIHN0YXRlbWVudHMpO1xufVxuXG4vKipcbiAqIEluc2VydCB0aGUgYHN0YXRlbWVudHNgIGF0IHRoZSB0b3Agb2YgdGhlIGBwcm9ncmFtYCwgYmVsb3cgYW55IGltcG9ydCBzdGF0ZW1lbnRzLlxuICovXG5mdW5jdGlvbiBpbnNlcnRJbnRvUHJvZ3JhbShwcm9ncmFtOiBOb2RlUGF0aDx0LlByb2dyYW0+LCBzdGF0ZW1lbnRzOiB0LlN0YXRlbWVudFtdKTogdm9pZCB7XG4gIGNvbnN0IGJvZHkgPSBwcm9ncmFtLmdldCgnYm9keScpO1xuICBjb25zdCBpbXBvcnRTdGF0ZW1lbnRzID0gYm9keS5maWx0ZXIoc3RhdGVtZW50ID0+IHN0YXRlbWVudC5pc0ltcG9ydERlY2xhcmF0aW9uKCkpO1xuICBpZiAoaW1wb3J0U3RhdGVtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICBwcm9ncmFtLnVuc2hpZnRDb250YWluZXIoJ2JvZHknLCBzdGF0ZW1lbnRzKTtcbiAgfSBlbHNlIHtcbiAgICBpbXBvcnRTdGF0ZW1lbnRzW2ltcG9ydFN0YXRlbWVudHMubGVuZ3RoIC0gMV0uaW5zZXJ0QWZ0ZXIoc3RhdGVtZW50cyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0Q2FsbGVlTmFtZShjYWxsOiBOb2RlUGF0aDx0LkNhbGxFeHByZXNzaW9uPik6IHN0cmluZ3xudWxsIHtcbiAgY29uc3QgY2FsbGVlID0gY2FsbC5ub2RlLmNhbGxlZTtcbiAgaWYgKHQuaXNJZGVudGlmaWVyKGNhbGxlZSkpIHtcbiAgICByZXR1cm4gY2FsbGVlLm5hbWU7XG4gIH0gZWxzZSBpZiAodC5pc01lbWJlckV4cHJlc3Npb24oY2FsbGVlKSAmJiB0LmlzSWRlbnRpZmllcihjYWxsZWUucHJvcGVydHkpKSB7XG4gICAgcmV0dXJuIGNhbGxlZS5wcm9wZXJ0eS5uYW1lO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJuIHRydWUgaWYgYWxsIHRoZSBgbm9kZXNgIGFyZSBCYWJlbCBleHByZXNzaW9ucy5cbiAqL1xuZnVuY3Rpb24gaXNFeHByZXNzaW9uQXJyYXkobm9kZXM6IHQuTm9kZVtdKTogbm9kZXMgaXMgdC5FeHByZXNzaW9uW10ge1xuICByZXR1cm4gbm9kZXMuZXZlcnkobm9kZSA9PiB0LmlzRXhwcmVzc2lvbihub2RlKSk7XG59XG5cbi8qKlxuICogQXNzZXJ0IHRoYXQgdGhlIGdpdmVuIGBvYmpgIGlzIGBudWxsYC5cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0TnVsbDxUPihvYmo6IFR8bnVsbCk6IGFzc2VydHMgb2JqIGlzIG51bGwge1xuICBpZiAob2JqICE9PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdCVUcgLSBleHBlY3RlZCBgb2JqYCB0byBiZSBudWxsJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBBc3NlcnQgdGhhdCB0aGUgZ2l2ZW4gYG9iamAgaXMgbm90IGBudWxsYC5cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0Tm90TnVsbDxUPihvYmo6IFR8bnVsbCk6IGFzc2VydHMgb2JqIGlzIFQge1xuICBpZiAob2JqID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdCVUcgLSBleHBlY3RlZCBgb2JqYCBub3QgdG8gYmUgbnVsbCcpO1xuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIGVycm9yIHRoYXQgaW5jbHVkZXMgdGhlIGNvZGUgZnJhbWUgb2YgdGhlIGBub2RlYC5cbiAqL1xuZnVuY3Rpb24gYnVpbGRDb2RlRnJhbWVFcnJvcihmaWxlOiBCYWJlbEZpbGUsIG1lc3NhZ2U6IHN0cmluZywgbm9kZTogdC5Ob2RlKTogc3RyaW5nIHtcbiAgY29uc3QgZmlsZW5hbWUgPSBmaWxlLm9wdHMuZmlsZW5hbWUgfHwgJyh1bmtub3duIGZpbGUpJztcbiAgY29uc3QgZXJyb3IgPSBmaWxlLmJ1aWxkQ29kZUZyYW1lRXJyb3Iobm9kZSwgbWVzc2FnZSk7XG4gIHJldHVybiBgJHtmaWxlbmFtZX06ICR7ZXJyb3IubWVzc2FnZX1gO1xufVxuXG4vKipcbiAqIFRoaXMgaW50ZXJmYWNlIGlzIG1ha2luZyB1cCBmb3IgdGhlIGZhY3QgdGhhdCB0aGUgQmFiZWwgdHlwaW5ncyBmb3IgYE5vZGVQYXRoLmh1Yi5maWxlYCBhcmVcbiAqIGxhY2tpbmcuXG4gKi9cbmludGVyZmFjZSBCYWJlbEZpbGUge1xuICBjb2RlOiBzdHJpbmc7XG4gIG9wdHM6IHtcbiAgICBmaWxlbmFtZT86IHN0cmluZyxcbiAgICBmaWxlbmFtZVJlbGF0aXZlPzogc3RyaW5nLFxuICAgIGN3ZD86IHN0cmluZyxcbiAgfTtcblxuICBidWlsZENvZGVGcmFtZUVycm9yKG5vZGU6IHQuTm9kZSwgbWVzc2FnZTogc3RyaW5nKTogRXJyb3I7XG59XG4iXX0=
@@ -0,0 +1,21 @@
1
+ /// <amd-module name="@angular/compiler-cli/linker/babel/src/linker_plugin_options" />
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.io/license
8
+ */
9
+ import { LinkerOptions } from '../..';
10
+ import { ReadonlyFileSystem } from '../../../src/ngtsc/file_system';
11
+ import { Logger } from '../../../src/ngtsc/logging';
12
+ export interface LinkerPluginOptions extends Partial<LinkerOptions> {
13
+ /**
14
+ * File-system, used to load up the input source-map and content.
15
+ */
16
+ fileSystem: ReadonlyFileSystem;
17
+ /**
18
+ * Logger used by the linker.
19
+ */
20
+ logger: Logger;
21
+ }
@@ -0,0 +1,13 @@
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/compiler-cli/linker/babel/src/linker_plugin_options", ["require", "exports"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ });
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2VyX3BsdWdpbl9vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL2xpbmtlci9iYWJlbC9zcmMvbGlua2VyX3BsdWdpbl9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7TGlua2VyT3B0aW9uc30gZnJvbSAnLi4vLi4nO1xuaW1wb3J0IHtSZWFkb25seUZpbGVTeXN0ZW19IGZyb20gJy4uLy4uLy4uL3NyYy9uZ3RzYy9maWxlX3N5c3RlbSc7XG5pbXBvcnQge0xvZ2dlcn0gZnJvbSAnLi4vLi4vLi4vc3JjL25ndHNjL2xvZ2dpbmcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExpbmtlclBsdWdpbk9wdGlvbnMgZXh0ZW5kcyBQYXJ0aWFsPExpbmtlck9wdGlvbnM+IHtcbiAgLyoqXG4gICAqIEZpbGUtc3lzdGVtLCB1c2VkIHRvIGxvYWQgdXAgdGhlIGlucHV0IHNvdXJjZS1tYXAgYW5kIGNvbnRlbnQuXG4gICAqL1xuICBmaWxlU3lzdGVtOiBSZWFkb25seUZpbGVTeXN0ZW07XG5cbiAgLyoqXG4gICAqIExvZ2dlciB1c2VkIGJ5IHRoZSBsaW5rZXIuXG4gICAqL1xuICBsb2dnZXI6IExvZ2dlcjtcbn1cbiJdfQ==
@@ -8,7 +8,7 @@
8
8
  */
9
9
  import { ConstantPool } from '@angular/compiler';
10
10
  import * as o from '@angular/compiler/src/output/output_ast';
11
- import { LinkerEnvironment } from '../linker_environment';
11
+ import { Translator } from '../translator';
12
12
  /**
13
13
  * This class represents (from the point of view of the `FileLinker`) the scope in which
14
14
  * statements and expressions related to a linked partial declaration will be emitted.
@@ -20,9 +20,9 @@ import { LinkerEnvironment } from '../linker_environment';
20
20
  */
21
21
  export declare class EmitScope<TStatement, TExpression> {
22
22
  protected readonly ngImport: TExpression;
23
- protected readonly linkerEnvironment: LinkerEnvironment<TStatement, TExpression>;
23
+ protected readonly translator: Translator<TStatement, TExpression>;
24
24
  readonly constantPool: ConstantPool;
25
- constructor(ngImport: TExpression, linkerEnvironment: LinkerEnvironment<TStatement, TExpression>);
25
+ constructor(ngImport: TExpression, translator: Translator<TStatement, TExpression>);
26
26
  /**
27
27
  * Translate the given Output AST definition expression into a generic `TExpression`.
28
28
  *
@@ -29,9 +29,9 @@
29
29
  * This implementation will emit the definition and the constant statements separately.
30
30
  */
31
31
  var EmitScope = /** @class */ (function () {
32
- function EmitScope(ngImport, linkerEnvironment) {
32
+ function EmitScope(ngImport, translator) {
33
33
  this.ngImport = ngImport;
34
- this.linkerEnvironment = linkerEnvironment;
34
+ this.translator = translator;
35
35
  this.constantPool = new compiler_1.ConstantPool();
36
36
  }
37
37
  /**
@@ -40,18 +40,18 @@
40
40
  * Use a `LinkerImportGenerator` to handle any imports in the definition.
41
41
  */
42
42
  EmitScope.prototype.translateDefinition = function (definition) {
43
- return this.linkerEnvironment.translator.translateExpression(definition, new linker_import_generator_1.LinkerImportGenerator(this.ngImport));
43
+ return this.translator.translateExpression(definition, new linker_import_generator_1.LinkerImportGenerator(this.ngImport));
44
44
  };
45
45
  /**
46
46
  * Return any constant statements that are shared between all uses of this `EmitScope`.
47
47
  */
48
48
  EmitScope.prototype.getConstantStatements = function () {
49
- var translator = this.linkerEnvironment.translator;
49
+ var _this = this;
50
50
  var importGenerator = new linker_import_generator_1.LinkerImportGenerator(this.ngImport);
51
- return this.constantPool.statements.map(function (statement) { return translator.translateStatement(statement, importGenerator); });
51
+ return this.constantPool.statements.map(function (statement) { return _this.translator.translateStatement(statement, importGenerator); });
52
52
  };
53
53
  return EmitScope;
54
54
  }());
55
55
  exports.EmitScope = EmitScope;
56
56
  });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pdF9zY29wZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9saW5rZXIvc3JjL2ZpbGVfbGlua2VyL2VtaXRfc2NvcGVzL2VtaXRfc2NvcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQUE7Ozs7OztPQU1HO0lBQ0gsOENBQStDO0lBRS9DLG9HQUFvRTtJQUdwRTs7Ozs7Ozs7T0FRRztJQUNIO1FBR0UsbUJBQ3VCLFFBQXFCLEVBQ3JCLGlCQUE2RDtZQUQ3RCxhQUFRLEdBQVIsUUFBUSxDQUFhO1lBQ3JCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBNEM7WUFKM0UsaUJBQVksR0FBRyxJQUFJLHVCQUFZLEVBQUUsQ0FBQztRQUk0QyxDQUFDO1FBRXhGOzs7O1dBSUc7UUFDSCx1Q0FBbUIsR0FBbkIsVUFBb0IsVUFBd0I7WUFDMUMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUN4RCxVQUFVLEVBQUUsSUFBSSwrQ0FBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBRUQ7O1dBRUc7UUFDSCx5Q0FBcUIsR0FBckI7WUFDUyxJQUFBLFVBQVUsR0FBSSxJQUFJLENBQUMsaUJBQWlCLFdBQTFCLENBQTJCO1lBQzVDLElBQU0sZUFBZSxHQUFHLElBQUksK0NBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUNuQyxVQUFBLFNBQVMsSUFBSSxPQUFBLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLEVBQXpELENBQXlELENBQUMsQ0FBQztRQUM5RSxDQUFDO1FBQ0gsZ0JBQUM7SUFBRCxDQUFDLEFBMUJELElBMEJDO0lBMUJZLDhCQUFTIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge0NvbnN0YW50UG9vbH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0ICogYXMgbyBmcm9tICdAYW5ndWxhci9jb21waWxlci9zcmMvb3V0cHV0L291dHB1dF9hc3QnO1xuaW1wb3J0IHtMaW5rZXJJbXBvcnRHZW5lcmF0b3J9IGZyb20gJy4uLy4uL2xpbmtlcl9pbXBvcnRfZ2VuZXJhdG9yJztcbmltcG9ydCB7TGlua2VyRW52aXJvbm1lbnR9IGZyb20gJy4uL2xpbmtlcl9lbnZpcm9ubWVudCc7XG5cbi8qKlxuICogVGhpcyBjbGFzcyByZXByZXNlbnRzIChmcm9tIHRoZSBwb2ludCBvZiB2aWV3IG9mIHRoZSBgRmlsZUxpbmtlcmApIHRoZSBzY29wZSBpbiB3aGljaFxuICogc3RhdGVtZW50cyBhbmQgZXhwcmVzc2lvbnMgcmVsYXRlZCB0byBhIGxpbmtlZCBwYXJ0aWFsIGRlY2xhcmF0aW9uIHdpbGwgYmUgZW1pdHRlZC5cbiAqXG4gKiBJdCBob2xkcyBhIGNvcHkgb2YgYSBgQ29uc3RhbnRQb29sYCB0aGF0IGlzIHVzZWQgdG8gY2FwdHVyZSBhbnkgY29uc3RhbnQgc3RhdGVtZW50cyB0aGF0IG5lZWQgdG9cbiAqIGJlIGVtaXR0ZWQgaW4gdGhpcyBjb250ZXh0LlxuICpcbiAqIFRoaXMgaW1wbGVtZW50YXRpb24gd2lsbCBlbWl0IHRoZSBkZWZpbml0aW9uIGFuZCB0aGUgY29uc3RhbnQgc3RhdGVtZW50cyBzZXBhcmF0ZWx5LlxuICovXG5leHBvcnQgY2xhc3MgRW1pdFNjb3BlPFRTdGF0ZW1lbnQsIFRFeHByZXNzaW9uPiB7XG4gIHJlYWRvbmx5IGNvbnN0YW50UG9vbCA9IG5ldyBDb25zdGFudFBvb2woKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByb3RlY3RlZCByZWFkb25seSBuZ0ltcG9ydDogVEV4cHJlc3Npb24sXG4gICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGlua2VyRW52aXJvbm1lbnQ6IExpbmtlckVudmlyb25tZW50PFRTdGF0ZW1lbnQsIFRFeHByZXNzaW9uPikge31cblxuICAvKipcbiAgICogVHJhbnNsYXRlIHRoZSBnaXZlbiBPdXRwdXQgQVNUIGRlZmluaXRpb24gZXhwcmVzc2lvbiBpbnRvIGEgZ2VuZXJpYyBgVEV4cHJlc3Npb25gLlxuICAgKlxuICAgKiBVc2UgYSBgTGlua2VySW1wb3J0R2VuZXJhdG9yYCB0byBoYW5kbGUgYW55IGltcG9ydHMgaW4gdGhlIGRlZmluaXRpb24uXG4gICAqL1xuICB0cmFuc2xhdGVEZWZpbml0aW9uKGRlZmluaXRpb246IG8uRXhwcmVzc2lvbik6IFRFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gdGhpcy5saW5rZXJFbnZpcm9ubWVudC50cmFuc2xhdG9yLnRyYW5zbGF0ZUV4cHJlc3Npb24oXG4gICAgICAgIGRlZmluaXRpb24sIG5ldyBMaW5rZXJJbXBvcnRHZW5lcmF0b3IodGhpcy5uZ0ltcG9ydCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbnkgY29uc3RhbnQgc3RhdGVtZW50cyB0aGF0IGFyZSBzaGFyZWQgYmV0d2VlbiBhbGwgdXNlcyBvZiB0aGlzIGBFbWl0U2NvcGVgLlxuICAgKi9cbiAgZ2V0Q29uc3RhbnRTdGF0ZW1lbnRzKCk6IFRTdGF0ZW1lbnRbXSB7XG4gICAgY29uc3Qge3RyYW5zbGF0b3J9ID0gdGhpcy5saW5rZXJFbnZpcm9ubWVudDtcbiAgICBjb25zdCBpbXBvcnRHZW5lcmF0b3IgPSBuZXcgTGlua2VySW1wb3J0R2VuZXJhdG9yKHRoaXMubmdJbXBvcnQpO1xuICAgIHJldHVybiB0aGlzLmNvbnN0YW50UG9vbC5zdGF0ZW1lbnRzLm1hcChcbiAgICAgICAgc3RhdGVtZW50ID0+IHRyYW5zbGF0b3IudHJhbnNsYXRlU3RhdGVtZW50KHN0YXRlbWVudCwgaW1wb3J0R2VuZXJhdG9yKSk7XG4gIH1cbn1cbiJdfQ==
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pdF9zY29wZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9saW5rZXIvc3JjL2ZpbGVfbGlua2VyL2VtaXRfc2NvcGVzL2VtaXRfc2NvcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQUE7Ozs7OztPQU1HO0lBQ0gsOENBQStDO0lBRS9DLG9HQUFvRTtJQUdwRTs7Ozs7Ozs7T0FRRztJQUNIO1FBR0UsbUJBQ3VCLFFBQXFCLEVBQ3JCLFVBQStDO1lBRC9DLGFBQVEsR0FBUixRQUFRLENBQWE7WUFDckIsZUFBVSxHQUFWLFVBQVUsQ0FBcUM7WUFKN0QsaUJBQVksR0FBRyxJQUFJLHVCQUFZLEVBQUUsQ0FBQztRQUk4QixDQUFDO1FBRTFFOzs7O1dBSUc7UUFDSCx1Q0FBbUIsR0FBbkIsVUFBb0IsVUFBd0I7WUFDMUMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUN0QyxVQUFVLEVBQUUsSUFBSSwrQ0FBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBRUQ7O1dBRUc7UUFDSCx5Q0FBcUIsR0FBckI7WUFBQSxpQkFJQztZQUhDLElBQU0sZUFBZSxHQUFHLElBQUksK0NBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUNuQyxVQUFBLFNBQVMsSUFBSSxPQUFBLEtBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQyxFQUE5RCxDQUE4RCxDQUFDLENBQUM7UUFDbkYsQ0FBQztRQUNILGdCQUFDO0lBQUQsQ0FBQyxBQXpCRCxJQXlCQztJQXpCWSw4QkFBUyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtDb25zdGFudFBvb2x9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCAqIGFzIG8gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXIvc3JjL291dHB1dC9vdXRwdXRfYXN0JztcbmltcG9ydCB7TGlua2VySW1wb3J0R2VuZXJhdG9yfSBmcm9tICcuLi8uLi9saW5rZXJfaW1wb3J0X2dlbmVyYXRvcic7XG5pbXBvcnQge1RyYW5zbGF0b3J9IGZyb20gJy4uL3RyYW5zbGF0b3InO1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgcmVwcmVzZW50cyAoZnJvbSB0aGUgcG9pbnQgb2YgdmlldyBvZiB0aGUgYEZpbGVMaW5rZXJgKSB0aGUgc2NvcGUgaW4gd2hpY2hcbiAqIHN0YXRlbWVudHMgYW5kIGV4cHJlc3Npb25zIHJlbGF0ZWQgdG8gYSBsaW5rZWQgcGFydGlhbCBkZWNsYXJhdGlvbiB3aWxsIGJlIGVtaXR0ZWQuXG4gKlxuICogSXQgaG9sZHMgYSBjb3B5IG9mIGEgYENvbnN0YW50UG9vbGAgdGhhdCBpcyB1c2VkIHRvIGNhcHR1cmUgYW55IGNvbnN0YW50IHN0YXRlbWVudHMgdGhhdCBuZWVkIHRvXG4gKiBiZSBlbWl0dGVkIGluIHRoaXMgY29udGV4dC5cbiAqXG4gKiBUaGlzIGltcGxlbWVudGF0aW9uIHdpbGwgZW1pdCB0aGUgZGVmaW5pdGlvbiBhbmQgdGhlIGNvbnN0YW50IHN0YXRlbWVudHMgc2VwYXJhdGVseS5cbiAqL1xuZXhwb3J0IGNsYXNzIEVtaXRTY29wZTxUU3RhdGVtZW50LCBURXhwcmVzc2lvbj4ge1xuICByZWFkb25seSBjb25zdGFudFBvb2wgPSBuZXcgQ29uc3RhbnRQb29sKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmdJbXBvcnQ6IFRFeHByZXNzaW9uLFxuICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRyYW5zbGF0b3I6IFRyYW5zbGF0b3I8VFN0YXRlbWVudCwgVEV4cHJlc3Npb24+KSB7fVxuXG4gIC8qKlxuICAgKiBUcmFuc2xhdGUgdGhlIGdpdmVuIE91dHB1dCBBU1QgZGVmaW5pdGlvbiBleHByZXNzaW9uIGludG8gYSBnZW5lcmljIGBURXhwcmVzc2lvbmAuXG4gICAqXG4gICAqIFVzZSBhIGBMaW5rZXJJbXBvcnRHZW5lcmF0b3JgIHRvIGhhbmRsZSBhbnkgaW1wb3J0cyBpbiB0aGUgZGVmaW5pdGlvbi5cbiAgICovXG4gIHRyYW5zbGF0ZURlZmluaXRpb24oZGVmaW5pdGlvbjogby5FeHByZXNzaW9uKTogVEV4cHJlc3Npb24ge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0b3IudHJhbnNsYXRlRXhwcmVzc2lvbihcbiAgICAgICAgZGVmaW5pdGlvbiwgbmV3IExpbmtlckltcG9ydEdlbmVyYXRvcih0aGlzLm5nSW1wb3J0KSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFueSBjb25zdGFudCBzdGF0ZW1lbnRzIHRoYXQgYXJlIHNoYXJlZCBiZXR3ZWVuIGFsbCB1c2VzIG9mIHRoaXMgYEVtaXRTY29wZWAuXG4gICAqL1xuICBnZXRDb25zdGFudFN0YXRlbWVudHMoKTogVFN0YXRlbWVudFtdIHtcbiAgICBjb25zdCBpbXBvcnRHZW5lcmF0b3IgPSBuZXcgTGlua2VySW1wb3J0R2VuZXJhdG9yKHRoaXMubmdJbXBvcnQpO1xuICAgIHJldHVybiB0aGlzLmNvbnN0YW50UG9vbC5zdGF0ZW1lbnRzLm1hcChcbiAgICAgICAgc3RhdGVtZW50ID0+IHRoaXMudHJhbnNsYXRvci50cmFuc2xhdGVTdGF0ZW1lbnQoc3RhdGVtZW50LCBpbXBvcnRHZW5lcmF0b3IpKTtcbiAgfVxufVxuIl19
@@ -7,6 +7,8 @@
7
7
  * found in the LICENSE file at https://angular.io/license
8
8
  */
9
9
  import * as o from '@angular/compiler/src/output/output_ast';
10
+ import { AstFactory } from '../../../../src/ngtsc/translator';
11
+ import { Translator } from '../translator';
10
12
  import { EmitScope } from './emit_scope';
11
13
  /**
12
14
  * This class is a specialization of the `EmitScope` class that is designed for the situation where
@@ -14,6 +16,8 @@ import { EmitScope } from './emit_scope';
14
16
  * translated definition inside an IIFE.
15
17
  */
16
18
  export declare class IifeEmitScope<TStatement, TExpression> extends EmitScope<TStatement, TExpression> {
19
+ private readonly factory;
20
+ constructor(ngImport: TExpression, translator: Translator<TStatement, TExpression>, factory: AstFactory<TStatement, TExpression>);
17
21
  /**
18
22
  * Translate the given Output AST definition expression into a generic `TExpression`.
19
23
  *
@@ -19,8 +19,10 @@
19
19
  */
20
20
  var IifeEmitScope = /** @class */ (function (_super) {
21
21
  tslib_1.__extends(IifeEmitScope, _super);
22
- function IifeEmitScope() {
23
- return _super !== null && _super.apply(this, arguments) || this;
22
+ function IifeEmitScope(ngImport, translator, factory) {
23
+ var _this = _super.call(this, ngImport, translator) || this;
24
+ _this.factory = factory;
25
+ return _this;
24
26
  }
25
27
  /**
26
28
  * Translate the given Output AST definition expression into a generic `TExpression`.
@@ -29,12 +31,11 @@
29
31
  * in an IIFE.
30
32
  */
31
33
  IifeEmitScope.prototype.translateDefinition = function (definition) {
32
- var factory = this.linkerEnvironment.factory;
33
34
  var constantStatements = _super.prototype.getConstantStatements.call(this);
34
- var returnStatement = factory.createReturnStatement(_super.prototype.translateDefinition.call(this, definition));
35
- var body = factory.createBlock(tslib_1.__spread(constantStatements, [returnStatement]));
36
- var fn = factory.createFunctionExpression(/* name */ null, /* args */ [], body);
37
- return factory.createCallExpression(fn, /* args */ [], /* pure */ false);
35
+ var returnStatement = this.factory.createReturnStatement(_super.prototype.translateDefinition.call(this, definition));
36
+ var body = this.factory.createBlock(tslib_1.__spread(constantStatements, [returnStatement]));
37
+ var fn = this.factory.createFunctionExpression(/* name */ null, /* args */ [], body);
38
+ return this.factory.createCallExpression(fn, /* args */ [], /* pure */ false);
38
39
  };
39
40
  /**
40
41
  * It is not valid to call this method, since there will be no shared constant statements - they
@@ -47,4 +48,4 @@
47
48
  }(emit_scope_1.EmitScope));
48
49
  exports.IifeEmitScope = IifeEmitScope;
49
50
  });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWlmZV9lbWl0X3Njb3BlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL2xpbmtlci9zcmMvZmlsZV9saW5rZXIvZW1pdF9zY29wZXMvaWlmZV9lbWl0X3Njb3BlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7SUFRQSxrR0FBdUM7SUFFdkM7Ozs7T0FJRztJQUNIO1FBQTRELHlDQUFrQztRQUE5Rjs7UUF3QkEsQ0FBQztRQXZCQzs7Ozs7V0FLRztRQUNILDJDQUFtQixHQUFuQixVQUFvQixVQUF3QjtZQUNuQyxJQUFBLE9BQU8sR0FBSSxJQUFJLENBQUMsaUJBQWlCLFFBQTFCLENBQTJCO1lBQ3pDLElBQU0sa0JBQWtCLEdBQUcsaUJBQU0scUJBQXFCLFdBQUUsQ0FBQztZQUV6RCxJQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMscUJBQXFCLENBQUMsaUJBQU0sbUJBQW1CLFlBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUM3RixJQUFNLElBQUksR0FBRyxPQUFPLENBQUMsV0FBVyxrQkFBSyxrQkFBa0IsR0FBRSxlQUFlLEdBQUUsQ0FBQztZQUMzRSxJQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUEsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2pGLE9BQU8sT0FBTyxDQUFDLG9CQUFvQixDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUEsRUFBRSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBRUQ7OztXQUdHO1FBQ0gsNkNBQXFCLEdBQXJCO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQywrREFBK0QsQ0FBQyxDQUFDO1FBQ25GLENBQUM7UUFDSCxvQkFBQztJQUFELENBQUMsQUF4QkQsQ0FBNEQsc0JBQVMsR0F3QnBFO0lBeEJZLHNDQUFhIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQgKiBhcyBvIGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyL3NyYy9vdXRwdXQvb3V0cHV0X2FzdCc7XG5pbXBvcnQge0VtaXRTY29wZX0gZnJvbSAnLi9lbWl0X3Njb3BlJztcblxuLyoqXG4gKiBUaGlzIGNsYXNzIGlzIGEgc3BlY2lhbGl6YXRpb24gb2YgdGhlIGBFbWl0U2NvcGVgIGNsYXNzIHRoYXQgaXMgZGVzaWduZWQgZm9yIHRoZSBzaXR1YXRpb24gd2hlcmVcbiAqIHRoZXJlIGlzIG5vIGNsZWFyIHNoYXJlZCBzY29wZSBmb3IgY29uc3RhbnQgc3RhdGVtZW50cy4gSW4gdGhpcyBjYXNlIHRoZXkgYXJlIGJ1bmRsZWQgd2l0aCB0aGVcbiAqIHRyYW5zbGF0ZWQgZGVmaW5pdGlvbiBpbnNpZGUgYW4gSUlGRS5cbiAqL1xuZXhwb3J0IGNsYXNzIElpZmVFbWl0U2NvcGU8VFN0YXRlbWVudCwgVEV4cHJlc3Npb24+IGV4dGVuZHMgRW1pdFNjb3BlPFRTdGF0ZW1lbnQsIFRFeHByZXNzaW9uPiB7XG4gIC8qKlxuICAgKiBUcmFuc2xhdGUgdGhlIGdpdmVuIE91dHB1dCBBU1QgZGVmaW5pdGlvbiBleHByZXNzaW9uIGludG8gYSBnZW5lcmljIGBURXhwcmVzc2lvbmAuXG4gICAqXG4gICAqIFdyYXBzIHRoZSBvdXRwdXQgZnJvbSBgRW1pdFNjb3BlLnRyYW5zbGF0ZURlZmluaXRpb24oKWAgYW5kIGBFbWl0U2NvcGUuZ2V0Q29uc3RhbnRTdGF0ZW1lbnRzKClgXG4gICAqIGluIGFuIElJRkUuXG4gICAqL1xuICB0cmFuc2xhdGVEZWZpbml0aW9uKGRlZmluaXRpb246IG8uRXhwcmVzc2lvbik6IFRFeHByZXNzaW9uIHtcbiAgICBjb25zdCB7ZmFjdG9yeX0gPSB0aGlzLmxpbmtlckVudmlyb25tZW50O1xuICAgIGNvbnN0IGNvbnN0YW50U3RhdGVtZW50cyA9IHN1cGVyLmdldENvbnN0YW50U3RhdGVtZW50cygpO1xuXG4gICAgY29uc3QgcmV0dXJuU3RhdGVtZW50ID0gZmFjdG9yeS5jcmVhdGVSZXR1cm5TdGF0ZW1lbnQoc3VwZXIudHJhbnNsYXRlRGVmaW5pdGlvbihkZWZpbml0aW9uKSk7XG4gICAgY29uc3QgYm9keSA9IGZhY3RvcnkuY3JlYXRlQmxvY2soWy4uLmNvbnN0YW50U3RhdGVtZW50cywgcmV0dXJuU3RhdGVtZW50XSk7XG4gICAgY29uc3QgZm4gPSBmYWN0b3J5LmNyZWF0ZUZ1bmN0aW9uRXhwcmVzc2lvbigvKiBuYW1lICovIG51bGwsIC8qIGFyZ3MgKi9bXSwgYm9keSk7XG4gICAgcmV0dXJuIGZhY3RvcnkuY3JlYXRlQ2FsbEV4cHJlc3Npb24oZm4sIC8qIGFyZ3MgKi9bXSwgLyogcHVyZSAqLyBmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogSXQgaXMgbm90IHZhbGlkIHRvIGNhbGwgdGhpcyBtZXRob2QsIHNpbmNlIHRoZXJlIHdpbGwgYmUgbm8gc2hhcmVkIGNvbnN0YW50IHN0YXRlbWVudHMgLSB0aGV5XG4gICAqIGFyZSBhbHJlYWR5IGVtaXR0ZWQgaW4gdGhlIElJRkUgYWxvbmdzaWRlIHRoZSB0cmFuc2xhdGVkIGRlZmluaXRpb24uXG4gICAqL1xuICBnZXRDb25zdGFudFN0YXRlbWVudHMoKTogVFN0YXRlbWVudFtdIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0JVRyAtIElpZmVFbWl0U2NvcGUgc2hvdWxkIG5vdCBleHBvc2UgYW55IGNvbnN0YW50IHN0YXRlbWVudHMnKTtcbiAgfVxufVxuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWlmZV9lbWl0X3Njb3BlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL2xpbmtlci9zcmMvZmlsZV9saW5rZXIvZW1pdF9zY29wZXMvaWlmZV9lbWl0X3Njb3BlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7SUFZQSxrR0FBdUM7SUFFdkM7Ozs7T0FJRztJQUNIO1FBQTRELHlDQUFrQztRQUM1Rix1QkFDSSxRQUFxQixFQUFFLFVBQStDLEVBQ3JELE9BQTRDO1lBRmpFLFlBR0Usa0JBQU0sUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUM1QjtZQUZvQixhQUFPLEdBQVAsT0FBTyxDQUFxQzs7UUFFakUsQ0FBQztRQUVEOzs7OztXQUtHO1FBQ0gsMkNBQW1CLEdBQW5CLFVBQW9CLFVBQXdCO1lBQzFDLElBQU0sa0JBQWtCLEdBQUcsaUJBQU0scUJBQXFCLFdBQUUsQ0FBQztZQUV6RCxJQUFNLGVBQWUsR0FDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBTSxtQkFBbUIsWUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQzlFLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxrQkFBSyxrQkFBa0IsR0FBRSxlQUFlLEdBQUUsQ0FBQztZQUNoRixJQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFBLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN0RixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQSxFQUFFLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9FLENBQUM7UUFFRDs7O1dBR0c7UUFDSCw2Q0FBcUIsR0FBckI7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLCtEQUErRCxDQUFDLENBQUM7UUFDbkYsQ0FBQztRQUNILG9CQUFDO0lBQUQsQ0FBQyxBQTlCRCxDQUE0RCxzQkFBUyxHQThCcEU7SUE5Qlksc0NBQWEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCAqIGFzIG8gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXIvc3JjL291dHB1dC9vdXRwdXRfYXN0JztcblxuaW1wb3J0IHtBc3RGYWN0b3J5fSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvbmd0c2MvdHJhbnNsYXRvcic7XG5pbXBvcnQge1RyYW5zbGF0b3J9IGZyb20gJy4uL3RyYW5zbGF0b3InO1xuXG5pbXBvcnQge0VtaXRTY29wZX0gZnJvbSAnLi9lbWl0X3Njb3BlJztcblxuLyoqXG4gKiBUaGlzIGNsYXNzIGlzIGEgc3BlY2lhbGl6YXRpb24gb2YgdGhlIGBFbWl0U2NvcGVgIGNsYXNzIHRoYXQgaXMgZGVzaWduZWQgZm9yIHRoZSBzaXR1YXRpb24gd2hlcmVcbiAqIHRoZXJlIGlzIG5vIGNsZWFyIHNoYXJlZCBzY29wZSBmb3IgY29uc3RhbnQgc3RhdGVtZW50cy4gSW4gdGhpcyBjYXNlIHRoZXkgYXJlIGJ1bmRsZWQgd2l0aCB0aGVcbiAqIHRyYW5zbGF0ZWQgZGVmaW5pdGlvbiBpbnNpZGUgYW4gSUlGRS5cbiAqL1xuZXhwb3J0IGNsYXNzIElpZmVFbWl0U2NvcGU8VFN0YXRlbWVudCwgVEV4cHJlc3Npb24+IGV4dGVuZHMgRW1pdFNjb3BlPFRTdGF0ZW1lbnQsIFRFeHByZXNzaW9uPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgICAgbmdJbXBvcnQ6IFRFeHByZXNzaW9uLCB0cmFuc2xhdG9yOiBUcmFuc2xhdG9yPFRTdGF0ZW1lbnQsIFRFeHByZXNzaW9uPixcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmFjdG9yeTogQXN0RmFjdG9yeTxUU3RhdGVtZW50LCBURXhwcmVzc2lvbj4pIHtcbiAgICBzdXBlcihuZ0ltcG9ydCwgdHJhbnNsYXRvcik7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNsYXRlIHRoZSBnaXZlbiBPdXRwdXQgQVNUIGRlZmluaXRpb24gZXhwcmVzc2lvbiBpbnRvIGEgZ2VuZXJpYyBgVEV4cHJlc3Npb25gLlxuICAgKlxuICAgKiBXcmFwcyB0aGUgb3V0cHV0IGZyb20gYEVtaXRTY29wZS50cmFuc2xhdGVEZWZpbml0aW9uKClgIGFuZCBgRW1pdFNjb3BlLmdldENvbnN0YW50U3RhdGVtZW50cygpYFxuICAgKiBpbiBhbiBJSUZFLlxuICAgKi9cbiAgdHJhbnNsYXRlRGVmaW5pdGlvbihkZWZpbml0aW9uOiBvLkV4cHJlc3Npb24pOiBURXhwcmVzc2lvbiB7XG4gICAgY29uc3QgY29uc3RhbnRTdGF0ZW1lbnRzID0gc3VwZXIuZ2V0Q29uc3RhbnRTdGF0ZW1lbnRzKCk7XG5cbiAgICBjb25zdCByZXR1cm5TdGF0ZW1lbnQgPVxuICAgICAgICB0aGlzLmZhY3RvcnkuY3JlYXRlUmV0dXJuU3RhdGVtZW50KHN1cGVyLnRyYW5zbGF0ZURlZmluaXRpb24oZGVmaW5pdGlvbikpO1xuICAgIGNvbnN0IGJvZHkgPSB0aGlzLmZhY3RvcnkuY3JlYXRlQmxvY2soWy4uLmNvbnN0YW50U3RhdGVtZW50cywgcmV0dXJuU3RhdGVtZW50XSk7XG4gICAgY29uc3QgZm4gPSB0aGlzLmZhY3RvcnkuY3JlYXRlRnVuY3Rpb25FeHByZXNzaW9uKC8qIG5hbWUgKi8gbnVsbCwgLyogYXJncyAqL1tdLCBib2R5KTtcbiAgICByZXR1cm4gdGhpcy5mYWN0b3J5LmNyZWF0ZUNhbGxFeHByZXNzaW9uKGZuLCAvKiBhcmdzICovW10sIC8qIHB1cmUgKi8gZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0IGlzIG5vdCB2YWxpZCB0byBjYWxsIHRoaXMgbWV0aG9kLCBzaW5jZSB0aGVyZSB3aWxsIGJlIG5vIHNoYXJlZCBjb25zdGFudCBzdGF0ZW1lbnRzIC0gdGhleVxuICAgKiBhcmUgYWxyZWFkeSBlbWl0dGVkIGluIHRoZSBJSUZFIGFsb25nc2lkZSB0aGUgdHJhbnNsYXRlZCBkZWZpbml0aW9uLlxuICAgKi9cbiAgZ2V0Q29uc3RhbnRTdGF0ZW1lbnRzKCk6IFRTdGF0ZW1lbnRbXSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdCVUcgLSBJaWZlRW1pdFNjb3BlIHNob3VsZCBub3QgZXhwb3NlIGFueSBjb25zdGFudCBzdGF0ZW1lbnRzJyk7XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  /// <amd-module name="@angular/compiler-cli/linker/src/file_linker/file_linker" />
2
+ import { AbsoluteFsPath } from '../../../src/ngtsc/file_system';
2
3
  import { DeclarationScope } from './declaration_scope';
3
4
  import { LinkerEnvironment } from './linker_environment';
4
5
  export declare const NO_STATEMENTS: Readonly<any[]>;
@@ -7,11 +8,9 @@ export declare const NO_STATEMENTS: Readonly<any[]>;
7
8
  */
8
9
  export declare class FileLinker<TConstantScope, TStatement, TExpression> {
9
10
  private linkerEnvironment;
10
- private sourceUrl;
11
- readonly code: string;
12
11
  private linkerSelector;
13
12
  private emitScopes;
14
- constructor(linkerEnvironment: LinkerEnvironment<TStatement, TExpression>, sourceUrl: string, code: string);
13
+ constructor(linkerEnvironment: LinkerEnvironment<TStatement, TExpression>, sourceUrl: AbsoluteFsPath, code: string);
15
14
  /**
16
15
  * Return true if the given callee name matches a partial declaration that can be linked.
17
16
  */
@@ -22,10 +22,9 @@
22
22
  var FileLinker = /** @class */ (function () {
23
23
  function FileLinker(linkerEnvironment, sourceUrl, code) {
24
24
  this.linkerEnvironment = linkerEnvironment;
25
- this.sourceUrl = sourceUrl;
26
- this.code = code;
27
- this.linkerSelector = new partial_linker_selector_1.PartialLinkerSelector(this.linkerEnvironment.options);
28
25
  this.emitScopes = new Map();
26
+ this.linkerSelector =
27
+ new partial_linker_selector_1.PartialLinkerSelector(this.linkerEnvironment, sourceUrl, code);
29
28
  }
30
29
  /**
31
30
  * Return true if the given callee name matches a partial declaration that can be linked.
@@ -54,7 +53,7 @@
54
53
  var emitScope = this.getEmitScope(ngImport, declarationScope);
55
54
  var version = metaObj.getString('version');
56
55
  var linker = this.linkerSelector.getLinker(declarationFn, version);
57
- var definition = linker.linkPartialDeclaration(this.sourceUrl, this.code, emitScope.constantPool, metaObj);
56
+ var definition = linker.linkPartialDeclaration(emitScope.constantPool, metaObj);
58
57
  return emitScope.translateDefinition(definition);
59
58
  };
60
59
  /**
@@ -84,10 +83,10 @@
84
83
  var constantScope = declarationScope.getConstantScopeRef(ngImport);
85
84
  if (constantScope === null) {
86
85
  // There is no constant scope so we will emit extra statements into the definition IIFE.
87
- return new iife_emit_scope_1.IifeEmitScope(ngImport, this.linkerEnvironment);
86
+ return new iife_emit_scope_1.IifeEmitScope(ngImport, this.linkerEnvironment.translator, this.linkerEnvironment.factory);
88
87
  }
89
88
  if (!this.emitScopes.has(constantScope)) {
90
- this.emitScopes.set(constantScope, new emit_scope_1.EmitScope(ngImport, this.linkerEnvironment));
89
+ this.emitScopes.set(constantScope, new emit_scope_1.EmitScope(ngImport, this.linkerEnvironment.translator));
91
90
  }
92
91
  return this.emitScopes.get(constantScope);
93
92
  };
@@ -95,4 +94,4 @@
95
94
  }());
96
95
  exports.FileLinker = FileLinker;
97
96
  });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZV9saW5rZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL3NyYy9maWxlX2xpbmtlci9maWxlX2xpbmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0lBUUEsNEVBQTJDO0lBRTNDLGtHQUFtRDtJQUNuRCw0R0FBNEQ7SUFFNUQsZ0lBQWdGO0lBRW5FLFFBQUEsYUFBYSxHQUFvQixFQUFXLENBQUM7SUFFMUQ7O09BRUc7SUFDSDtRQUlFLG9CQUNZLGlCQUE2RCxFQUM3RCxTQUFpQixFQUFXLElBQVk7WUFEeEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUE0QztZQUM3RCxjQUFTLEdBQVQsU0FBUyxDQUFRO1lBQVcsU0FBSSxHQUFKLElBQUksQ0FBUTtZQUw1QyxtQkFBYyxHQUFHLElBQUksK0NBQXFCLENBQWMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hGLGVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBc0QsQ0FBQztRQUk1QixDQUFDO1FBRXhEOztXQUVHO1FBQ0gseUNBQW9CLEdBQXBCLFVBQXFCLFVBQWtCO1lBQ3JDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBRUQ7Ozs7Ozs7Ozs7O1dBV0c7UUFDSCwyQ0FBc0IsR0FBdEIsVUFDSSxhQUFxQixFQUFFLElBQW1CLEVBQzFDLGdCQUErRDtZQUNqRSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUNyQixNQUFNLElBQUksS0FBSyxDQUNYLGdHQUNJLElBQUksQ0FBQyxNQUFNLE1BQUcsQ0FBQyxDQUFDO2FBQ3pCO1lBRUQsSUFBTSxPQUFPLEdBQ1QscUJBQVMsQ0FBQyxLQUFLLENBQW9DLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0YsSUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM3QyxJQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1lBRWhFLElBQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0MsSUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3JFLElBQU0sVUFBVSxHQUNaLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztZQUU5RixPQUFPLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBRUQ7OztXQUdHO1FBQ0gsMENBQXFCLEdBQXJCOztZQUNFLElBQU0sT0FBTyxHQUFnRSxFQUFFLENBQUM7O2dCQUNoRixLQUF5QyxJQUFBLEtBQUEsaUJBQUEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQSxnQkFBQSw0QkFBRTtvQkFBekQsSUFBQSxLQUFBLDJCQUEwQixFQUF6QixhQUFhLFFBQUEsRUFBRSxTQUFTLFFBQUE7b0JBQ2xDLElBQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO29CQUNyRCxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUMsYUFBYSxlQUFBLEVBQUUsVUFBVSxZQUFBLEVBQUMsQ0FBQyxDQUFDO2lCQUMzQzs7Ozs7Ozs7O1lBQ0QsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUVPLGlDQUFZLEdBQXBCLFVBQ0ksUUFBcUIsRUFBRSxnQkFBK0Q7WUFFeEYsSUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckUsSUFBSSxhQUFhLEtBQUssSUFBSSxFQUFFO2dCQUMxQix3RkFBd0Y7Z0JBQ3hGLE9BQU8sSUFBSSwrQkFBYSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQzthQUM1RDtZQUVELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLElBQUksc0JBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQzthQUNyRjtZQUNELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFFLENBQUM7UUFDN0MsQ0FBQztRQUNILGlCQUFDO0lBQUQsQ0FBQyxBQTVFRCxJQTRFQztJQTVFWSxnQ0FBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtSM1BhcnRpYWxEZWNsYXJhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0IHtBc3RPYmplY3R9IGZyb20gJy4uL2FzdC9hc3RfdmFsdWUnO1xuaW1wb3J0IHtEZWNsYXJhdGlvblNjb3BlfSBmcm9tICcuL2RlY2xhcmF0aW9uX3Njb3BlJztcbmltcG9ydCB7RW1pdFNjb3BlfSBmcm9tICcuL2VtaXRfc2NvcGVzL2VtaXRfc2NvcGUnO1xuaW1wb3J0IHtJaWZlRW1pdFNjb3BlfSBmcm9tICcuL2VtaXRfc2NvcGVzL2lpZmVfZW1pdF9zY29wZSc7XG5pbXBvcnQge0xpbmtlckVudmlyb25tZW50fSBmcm9tICcuL2xpbmtlcl9lbnZpcm9ubWVudCc7XG5pbXBvcnQge1BhcnRpYWxMaW5rZXJTZWxlY3Rvcn0gZnJvbSAnLi9wYXJ0aWFsX2xpbmtlcnMvcGFydGlhbF9saW5rZXJfc2VsZWN0b3InO1xuXG5leHBvcnQgY29uc3QgTk9fU1RBVEVNRU5UUzogUmVhZG9ubHk8YW55W10+ID0gW10gYXMgY29uc3Q7XG5cbi8qKlxuICogVGhpcyBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3IgbGlua2luZyBhbGwgdGhlIHBhcnRpYWwgZGVjbGFyYXRpb25zIGZvdW5kIGluIGEgc2luZ2xlIGZpbGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBGaWxlTGlua2VyPFRDb25zdGFudFNjb3BlLCBUU3RhdGVtZW50LCBURXhwcmVzc2lvbj4ge1xuICBwcml2YXRlIGxpbmtlclNlbGVjdG9yID0gbmV3IFBhcnRpYWxMaW5rZXJTZWxlY3RvcjxURXhwcmVzc2lvbj4odGhpcy5saW5rZXJFbnZpcm9ubWVudC5vcHRpb25zKTtcbiAgcHJpdmF0ZSBlbWl0U2NvcGVzID0gbmV3IE1hcDxUQ29uc3RhbnRTY29wZSwgRW1pdFNjb3BlPFRTdGF0ZW1lbnQsIFRFeHByZXNzaW9uPj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgbGlua2VyRW52aXJvbm1lbnQ6IExpbmtlckVudmlyb25tZW50PFRTdGF0ZW1lbnQsIFRFeHByZXNzaW9uPixcbiAgICAgIHByaXZhdGUgc291cmNlVXJsOiBzdHJpbmcsIHJlYWRvbmx5IGNvZGU6IHN0cmluZykge31cblxuICAvKipcbiAgICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGNhbGxlZSBuYW1lIG1hdGNoZXMgYSBwYXJ0aWFsIGRlY2xhcmF0aW9uIHRoYXQgY2FuIGJlIGxpbmtlZC5cbiAgICovXG4gIGlzUGFydGlhbERlY2xhcmF0aW9uKGNhbGxlZU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxpbmtlclNlbGVjdG9yLnN1cHBvcnRzRGVjbGFyYXRpb24oY2FsbGVlTmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogTGluayB0aGUgbWV0YWRhdGEgZXh0cmFjdGVkIGZyb20gdGhlIGFyZ3Mgb2YgYSBjYWxsIHRvIGEgcGFydGlhbCBkZWNsYXJhdGlvbiBmdW5jdGlvbi5cbiAgICpcbiAgICogVGhlIGBkZWNsYXJhdGlvblNjb3BlYCBpcyB1c2VkIHRvIGRldGVybWluZSB0aGUgc2NvcGUgYW5kIHN0cmF0ZWd5IG9mIGVtaXNzaW9uIG9mIHRoZSBsaW5rZWRcbiAgICogZGVmaW5pdGlvbiBhbmQgYW55IHNoYXJlZCBjb25zdGFudCBzdGF0ZW1lbnRzLlxuICAgKlxuICAgKiBAcGFyYW0gZGVjbGFyYXRpb25GbiB0aGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24gdXNlZCB0byBkZWNsYXJlIHRoZSBwYXJ0aWFsIGRlY2xhcmF0aW9uIC0gZS5nLlxuICAgKiAgICAgYMm1ybVuZ0RlY2xhcmVEaXJlY3RpdmVgLlxuICAgKiBAcGFyYW0gYXJncyB0aGUgYXJndW1lbnRzIHBhc3NlZCB0byB0aGUgZGVjbGFyYXRpb24gZnVuY3Rpb24sIHNob3VsZCBiZSBhIHNpbmdsZSBvYmplY3QgdGhhdFxuICAgKiAgICAgY29ycmVzcG9uZHMgdG8gdGhlIGBSM0RlY2xhcmVEaXJlY3RpdmVNZXRhZGF0YWAgb3IgYFIzRGVjbGFyZUNvbXBvbmVudE1ldGFkYXRhYCBpbnRlcmZhY2VzLlxuICAgKiBAcGFyYW0gZGVjbGFyYXRpb25TY29wZSB0aGUgc2NvcGUgdGhhdCBjb250YWlucyB0aGlzIGNhbGwgdG8gdGhlIGRlY2xhcmF0aW9uIGZ1bmN0aW9uLlxuICAgKi9cbiAgbGlua1BhcnRpYWxEZWNsYXJhdGlvbihcbiAgICAgIGRlY2xhcmF0aW9uRm46IHN0cmluZywgYXJnczogVEV4cHJlc3Npb25bXSxcbiAgICAgIGRlY2xhcmF0aW9uU2NvcGU6IERlY2xhcmF0aW9uU2NvcGU8VENvbnN0YW50U2NvcGUsIFRFeHByZXNzaW9uPik6IFRFeHByZXNzaW9uIHtcbiAgICBpZiAoYXJncy5sZW5ndGggIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBmdW5jdGlvbiBjYWxsOiBJdCBzaG91bGQgaGF2ZSBvbmx5IGEgc2luZ2xlIG9iamVjdCBsaXRlcmFsIGFyZ3VtZW50LCBidXQgY29udGFpbmVkICR7XG4gICAgICAgICAgICAgIGFyZ3MubGVuZ3RofS5gKTtcbiAgICB9XG5cbiAgICBjb25zdCBtZXRhT2JqID1cbiAgICAgICAgQXN0T2JqZWN0LnBhcnNlPFIzUGFydGlhbERlY2xhcmF0aW9uLCBURXhwcmVzc2lvbj4oYXJnc1swXSwgdGhpcy5saW5rZXJFbnZpcm9ubWVudC5ob3N0KTtcbiAgICBjb25zdCBuZ0ltcG9ydCA9IG1ldGFPYmouZ2V0Tm9kZSgnbmdJbXBvcnQnKTtcbiAgICBjb25zdCBlbWl0U2NvcGUgPSB0aGlzLmdldEVtaXRTY29wZShuZ0ltcG9ydCwgZGVjbGFyYXRpb25TY29wZSk7XG5cbiAgICBjb25zdCB2ZXJzaW9uID0gbWV0YU9iai5nZXRTdHJpbmcoJ3ZlcnNpb24nKTtcbiAgICBjb25zdCBsaW5rZXIgPSB0aGlzLmxpbmtlclNlbGVjdG9yLmdldExpbmtlcihkZWNsYXJhdGlvbkZuLCB2ZXJzaW9uKTtcbiAgICBjb25zdCBkZWZpbml0aW9uID1cbiAgICAgICAgbGlua2VyLmxpbmtQYXJ0aWFsRGVjbGFyYXRpb24odGhpcy5zb3VyY2VVcmwsIHRoaXMuY29kZSwgZW1pdFNjb3BlLmNvbnN0YW50UG9vbCwgbWV0YU9iaik7XG5cbiAgICByZXR1cm4gZW1pdFNjb3BlLnRyYW5zbGF0ZURlZmluaXRpb24oZGVmaW5pdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFsbCB0aGUgc2hhcmVkIGNvbnN0YW50IHN0YXRlbWVudHMgYW5kIHRoZWlyIGFzc29jaWF0ZWQgY29uc3RhbnQgc2NvcGUgcmVmZXJlbmNlcywgc29cbiAgICogdGhhdCB0aGV5IGNhbiBiZSBpbnNlcnRlZCBpbnRvIHRoZSBzb3VyY2UgY29kZS5cbiAgICovXG4gIGdldENvbnN0YW50U3RhdGVtZW50cygpOiB7Y29uc3RhbnRTY29wZTogVENvbnN0YW50U2NvcGUsIHN0YXRlbWVudHM6IFRTdGF0ZW1lbnRbXX1bXSB7XG4gICAgY29uc3QgcmVzdWx0czoge2NvbnN0YW50U2NvcGU6IFRDb25zdGFudFNjb3BlLCBzdGF0ZW1lbnRzOiBUU3RhdGVtZW50W119W10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IFtjb25zdGFudFNjb3BlLCBlbWl0U2NvcGVdIG9mIHRoaXMuZW1pdFNjb3Blcy5lbnRyaWVzKCkpIHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudHMgPSBlbWl0U2NvcGUuZ2V0Q29uc3RhbnRTdGF0ZW1lbnRzKCk7XG4gICAgICByZXN1bHRzLnB1c2goe2NvbnN0YW50U2NvcGUsIHN0YXRlbWVudHN9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdHM7XG4gIH1cblxuICBwcml2YXRlIGdldEVtaXRTY29wZShcbiAgICAgIG5nSW1wb3J0OiBURXhwcmVzc2lvbiwgZGVjbGFyYXRpb25TY29wZTogRGVjbGFyYXRpb25TY29wZTxUQ29uc3RhbnRTY29wZSwgVEV4cHJlc3Npb24+KTpcbiAgICAgIEVtaXRTY29wZTxUU3RhdGVtZW50LCBURXhwcmVzc2lvbj4ge1xuICAgIGNvbnN0IGNvbnN0YW50U2NvcGUgPSBkZWNsYXJhdGlvblNjb3BlLmdldENvbnN0YW50U2NvcGVSZWYobmdJbXBvcnQpO1xuICAgIGlmIChjb25zdGFudFNjb3BlID09PSBudWxsKSB7XG4gICAgICAvLyBUaGVyZSBpcyBubyBjb25zdGFudCBzY29wZSBzbyB3ZSB3aWxsIGVtaXQgZXh0cmEgc3RhdGVtZW50cyBpbnRvIHRoZSBkZWZpbml0aW9uIElJRkUuXG4gICAgICByZXR1cm4gbmV3IElpZmVFbWl0U2NvcGUobmdJbXBvcnQsIHRoaXMubGlua2VyRW52aXJvbm1lbnQpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5lbWl0U2NvcGVzLmhhcyhjb25zdGFudFNjb3BlKSkge1xuICAgICAgdGhpcy5lbWl0U2NvcGVzLnNldChjb25zdGFudFNjb3BlLCBuZXcgRW1pdFNjb3BlKG5nSW1wb3J0LCB0aGlzLmxpbmtlckVudmlyb25tZW50KSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmVtaXRTY29wZXMuZ2V0KGNvbnN0YW50U2NvcGUpITtcbiAgfVxufVxuIl19
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZV9saW5rZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL3NyYy9maWxlX2xpbmtlci9maWxlX2xpbmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0lBU0EsNEVBQTJDO0lBRTNDLGtHQUFtRDtJQUNuRCw0R0FBNEQ7SUFFNUQsZ0lBQWdGO0lBRW5FLFFBQUEsYUFBYSxHQUFvQixFQUFXLENBQUM7SUFFMUQ7O09BRUc7SUFDSDtRQUlFLG9CQUNZLGlCQUE2RCxFQUNyRSxTQUF5QixFQUFFLElBQVk7WUFEL0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUE0QztZQUhqRSxlQUFVLEdBQUcsSUFBSSxHQUFHLEVBQXNELENBQUM7WUFLakYsSUFBSSxDQUFDLGNBQWM7Z0JBQ2YsSUFBSSwrQ0FBcUIsQ0FBMEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRyxDQUFDO1FBRUQ7O1dBRUc7UUFDSCx5Q0FBb0IsR0FBcEIsVUFBcUIsVUFBa0I7WUFDckMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFFRDs7Ozs7Ozs7Ozs7V0FXRztRQUNILDJDQUFzQixHQUF0QixVQUNJLGFBQXFCLEVBQUUsSUFBbUIsRUFDMUMsZ0JBQStEO1lBQ2pFLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQ1gsZ0dBQ0ksSUFBSSxDQUFDLE1BQU0sTUFBRyxDQUFDLENBQUM7YUFDekI7WUFFRCxJQUFNLE9BQU8sR0FDVCxxQkFBUyxDQUFDLEtBQUssQ0FBb0MsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3RixJQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzdDLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFFaEUsSUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM3QyxJQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDckUsSUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFFbEYsT0FBTyxTQUFTLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUVEOzs7V0FHRztRQUNILDBDQUFxQixHQUFyQjs7WUFDRSxJQUFNLE9BQU8sR0FBZ0UsRUFBRSxDQUFDOztnQkFDaEYsS0FBeUMsSUFBQSxLQUFBLGlCQUFBLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUEsZ0JBQUEsNEJBQUU7b0JBQXpELElBQUEsS0FBQSwyQkFBMEIsRUFBekIsYUFBYSxRQUFBLEVBQUUsU0FBUyxRQUFBO29CQUNsQyxJQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMscUJBQXFCLEVBQUUsQ0FBQztvQkFDckQsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDLGFBQWEsZUFBQSxFQUFFLFVBQVUsWUFBQSxFQUFDLENBQUMsQ0FBQztpQkFDM0M7Ozs7Ozs7OztZQUNELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7UUFFTyxpQ0FBWSxHQUFwQixVQUNJLFFBQXFCLEVBQUUsZ0JBQStEO1lBRXhGLElBQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JFLElBQUksYUFBYSxLQUFLLElBQUksRUFBRTtnQkFDMUIsd0ZBQXdGO2dCQUN4RixPQUFPLElBQUksK0JBQWEsQ0FDcEIsUUFBUSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ2xGO1lBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFO2dCQUN2QyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FDZixhQUFhLEVBQUUsSUFBSSxzQkFBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQzthQUNoRjtZQUNELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFFLENBQUM7UUFDN0MsQ0FBQztRQUNILGlCQUFDO0lBQUQsQ0FBQyxBQWhGRCxJQWdGQztJQWhGWSxnQ0FBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtSM1BhcnRpYWxEZWNsYXJhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0IHtBYnNvbHV0ZUZzUGF0aH0gZnJvbSAnLi4vLi4vLi4vc3JjL25ndHNjL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7QXN0T2JqZWN0fSBmcm9tICcuLi9hc3QvYXN0X3ZhbHVlJztcbmltcG9ydCB7RGVjbGFyYXRpb25TY29wZX0gZnJvbSAnLi9kZWNsYXJhdGlvbl9zY29wZSc7XG5pbXBvcnQge0VtaXRTY29wZX0gZnJvbSAnLi9lbWl0X3Njb3Blcy9lbWl0X3Njb3BlJztcbmltcG9ydCB7SWlmZUVtaXRTY29wZX0gZnJvbSAnLi9lbWl0X3Njb3Blcy9paWZlX2VtaXRfc2NvcGUnO1xuaW1wb3J0IHtMaW5rZXJFbnZpcm9ubWVudH0gZnJvbSAnLi9saW5rZXJfZW52aXJvbm1lbnQnO1xuaW1wb3J0IHtQYXJ0aWFsTGlua2VyU2VsZWN0b3J9IGZyb20gJy4vcGFydGlhbF9saW5rZXJzL3BhcnRpYWxfbGlua2VyX3NlbGVjdG9yJztcblxuZXhwb3J0IGNvbnN0IE5PX1NUQVRFTUVOVFM6IFJlYWRvbmx5PGFueVtdPiA9IFtdIGFzIGNvbnN0O1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIGxpbmtpbmcgYWxsIHRoZSBwYXJ0aWFsIGRlY2xhcmF0aW9ucyBmb3VuZCBpbiBhIHNpbmdsZSBmaWxlLlxuICovXG5leHBvcnQgY2xhc3MgRmlsZUxpbmtlcjxUQ29uc3RhbnRTY29wZSwgVFN0YXRlbWVudCwgVEV4cHJlc3Npb24+IHtcbiAgcHJpdmF0ZSBsaW5rZXJTZWxlY3RvcjogUGFydGlhbExpbmtlclNlbGVjdG9yPFRTdGF0ZW1lbnQsIFRFeHByZXNzaW9uPjtcbiAgcHJpdmF0ZSBlbWl0U2NvcGVzID0gbmV3IE1hcDxUQ29uc3RhbnRTY29wZSwgRW1pdFNjb3BlPFRTdGF0ZW1lbnQsIFRFeHByZXNzaW9uPj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgbGlua2VyRW52aXJvbm1lbnQ6IExpbmtlckVudmlyb25tZW50PFRTdGF0ZW1lbnQsIFRFeHByZXNzaW9uPixcbiAgICAgIHNvdXJjZVVybDogQWJzb2x1dGVGc1BhdGgsIGNvZGU6IHN0cmluZykge1xuICAgIHRoaXMubGlua2VyU2VsZWN0b3IgPVxuICAgICAgICBuZXcgUGFydGlhbExpbmtlclNlbGVjdG9yPFRTdGF0ZW1lbnQsIFRFeHByZXNzaW9uPih0aGlzLmxpbmtlckVudmlyb25tZW50LCBzb3VyY2VVcmwsIGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBjYWxsZWUgbmFtZSBtYXRjaGVzIGEgcGFydGlhbCBkZWNsYXJhdGlvbiB0aGF0IGNhbiBiZSBsaW5rZWQuXG4gICAqL1xuICBpc1BhcnRpYWxEZWNsYXJhdGlvbihjYWxsZWVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5saW5rZXJTZWxlY3Rvci5zdXBwb3J0c0RlY2xhcmF0aW9uKGNhbGxlZU5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpbmsgdGhlIG1ldGFkYXRhIGV4dHJhY3RlZCBmcm9tIHRoZSBhcmdzIG9mIGEgY2FsbCB0byBhIHBhcnRpYWwgZGVjbGFyYXRpb24gZnVuY3Rpb24uXG4gICAqXG4gICAqIFRoZSBgZGVjbGFyYXRpb25TY29wZWAgaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHNjb3BlIGFuZCBzdHJhdGVneSBvZiBlbWlzc2lvbiBvZiB0aGUgbGlua2VkXG4gICAqIGRlZmluaXRpb24gYW5kIGFueSBzaGFyZWQgY29uc3RhbnQgc3RhdGVtZW50cy5cbiAgICpcbiAgICogQHBhcmFtIGRlY2xhcmF0aW9uRm4gdGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uIHVzZWQgdG8gZGVjbGFyZSB0aGUgcGFydGlhbCBkZWNsYXJhdGlvbiAtIGUuZy5cbiAgICogICAgIGDJtcm1bmdEZWNsYXJlRGlyZWN0aXZlYC5cbiAgICogQHBhcmFtIGFyZ3MgdGhlIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIGRlY2xhcmF0aW9uIGZ1bmN0aW9uLCBzaG91bGQgYmUgYSBzaW5nbGUgb2JqZWN0IHRoYXRcbiAgICogICAgIGNvcnJlc3BvbmRzIHRvIHRoZSBgUjNEZWNsYXJlRGlyZWN0aXZlTWV0YWRhdGFgIG9yIGBSM0RlY2xhcmVDb21wb25lbnRNZXRhZGF0YWAgaW50ZXJmYWNlcy5cbiAgICogQHBhcmFtIGRlY2xhcmF0aW9uU2NvcGUgdGhlIHNjb3BlIHRoYXQgY29udGFpbnMgdGhpcyBjYWxsIHRvIHRoZSBkZWNsYXJhdGlvbiBmdW5jdGlvbi5cbiAgICovXG4gIGxpbmtQYXJ0aWFsRGVjbGFyYXRpb24oXG4gICAgICBkZWNsYXJhdGlvbkZuOiBzdHJpbmcsIGFyZ3M6IFRFeHByZXNzaW9uW10sXG4gICAgICBkZWNsYXJhdGlvblNjb3BlOiBEZWNsYXJhdGlvblNjb3BlPFRDb25zdGFudFNjb3BlLCBURXhwcmVzc2lvbj4pOiBURXhwcmVzc2lvbiB7XG4gICAgaWYgKGFyZ3MubGVuZ3RoICE9PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEludmFsaWQgZnVuY3Rpb24gY2FsbDogSXQgc2hvdWxkIGhhdmUgb25seSBhIHNpbmdsZSBvYmplY3QgbGl0ZXJhbCBhcmd1bWVudCwgYnV0IGNvbnRhaW5lZCAke1xuICAgICAgICAgICAgICBhcmdzLmxlbmd0aH0uYCk7XG4gICAgfVxuXG4gICAgY29uc3QgbWV0YU9iaiA9XG4gICAgICAgIEFzdE9iamVjdC5wYXJzZTxSM1BhcnRpYWxEZWNsYXJhdGlvbiwgVEV4cHJlc3Npb24+KGFyZ3NbMF0sIHRoaXMubGlua2VyRW52aXJvbm1lbnQuaG9zdCk7XG4gICAgY29uc3QgbmdJbXBvcnQgPSBtZXRhT2JqLmdldE5vZGUoJ25nSW1wb3J0Jyk7XG4gICAgY29uc3QgZW1pdFNjb3BlID0gdGhpcy5nZXRFbWl0U2NvcGUobmdJbXBvcnQsIGRlY2xhcmF0aW9uU2NvcGUpO1xuXG4gICAgY29uc3QgdmVyc2lvbiA9IG1ldGFPYmouZ2V0U3RyaW5nKCd2ZXJzaW9uJyk7XG4gICAgY29uc3QgbGlua2VyID0gdGhpcy5saW5rZXJTZWxlY3Rvci5nZXRMaW5rZXIoZGVjbGFyYXRpb25GbiwgdmVyc2lvbik7XG4gICAgY29uc3QgZGVmaW5pdGlvbiA9IGxpbmtlci5saW5rUGFydGlhbERlY2xhcmF0aW9uKGVtaXRTY29wZS5jb25zdGFudFBvb2wsIG1ldGFPYmopO1xuXG4gICAgcmV0dXJuIGVtaXRTY29wZS50cmFuc2xhdGVEZWZpbml0aW9uKGRlZmluaXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbGwgdGhlIHNoYXJlZCBjb25zdGFudCBzdGF0ZW1lbnRzIGFuZCB0aGVpciBhc3NvY2lhdGVkIGNvbnN0YW50IHNjb3BlIHJlZmVyZW5jZXMsIHNvXG4gICAqIHRoYXQgdGhleSBjYW4gYmUgaW5zZXJ0ZWQgaW50byB0aGUgc291cmNlIGNvZGUuXG4gICAqL1xuICBnZXRDb25zdGFudFN0YXRlbWVudHMoKToge2NvbnN0YW50U2NvcGU6IFRDb25zdGFudFNjb3BlLCBzdGF0ZW1lbnRzOiBUU3RhdGVtZW50W119W10ge1xuICAgIGNvbnN0IHJlc3VsdHM6IHtjb25zdGFudFNjb3BlOiBUQ29uc3RhbnRTY29wZSwgc3RhdGVtZW50czogVFN0YXRlbWVudFtdfVtdID0gW107XG4gICAgZm9yIChjb25zdCBbY29uc3RhbnRTY29wZSwgZW1pdFNjb3BlXSBvZiB0aGlzLmVtaXRTY29wZXMuZW50cmllcygpKSB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnRzID0gZW1pdFNjb3BlLmdldENvbnN0YW50U3RhdGVtZW50cygpO1xuICAgICAgcmVzdWx0cy5wdXNoKHtjb25zdGFudFNjb3BlLCBzdGF0ZW1lbnRzfSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFbWl0U2NvcGUoXG4gICAgICBuZ0ltcG9ydDogVEV4cHJlc3Npb24sIGRlY2xhcmF0aW9uU2NvcGU6IERlY2xhcmF0aW9uU2NvcGU8VENvbnN0YW50U2NvcGUsIFRFeHByZXNzaW9uPik6XG4gICAgICBFbWl0U2NvcGU8VFN0YXRlbWVudCwgVEV4cHJlc3Npb24+IHtcbiAgICBjb25zdCBjb25zdGFudFNjb3BlID0gZGVjbGFyYXRpb25TY29wZS5nZXRDb25zdGFudFNjb3BlUmVmKG5nSW1wb3J0KTtcbiAgICBpZiAoY29uc3RhbnRTY29wZSA9PT0gbnVsbCkge1xuICAgICAgLy8gVGhlcmUgaXMgbm8gY29uc3RhbnQgc2NvcGUgc28gd2Ugd2lsbCBlbWl0IGV4dHJhIHN0YXRlbWVudHMgaW50byB0aGUgZGVmaW5pdGlvbiBJSUZFLlxuICAgICAgcmV0dXJuIG5ldyBJaWZlRW1pdFNjb3BlKFxuICAgICAgICAgIG5nSW1wb3J0LCB0aGlzLmxpbmtlckVudmlyb25tZW50LnRyYW5zbGF0b3IsIHRoaXMubGlua2VyRW52aXJvbm1lbnQuZmFjdG9yeSk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmVtaXRTY29wZXMuaGFzKGNvbnN0YW50U2NvcGUpKSB7XG4gICAgICB0aGlzLmVtaXRTY29wZXMuc2V0KFxuICAgICAgICAgIGNvbnN0YW50U2NvcGUsIG5ldyBFbWl0U2NvcGUobmdJbXBvcnQsIHRoaXMubGlua2VyRW52aXJvbm1lbnQudHJhbnNsYXRvcikpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5lbWl0U2NvcGVzLmdldChjb25zdGFudFNjb3BlKSE7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,19 @@
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
+ /// <amd-module name="@angular/compiler-cli/linker/src/file_linker/get_source_file" />
9
+ import { AbsoluteFsPath } from '../../../src/ngtsc/file_system';
10
+ import { SourceFile, SourceFileLoader } from '../../../src/ngtsc/sourcemaps';
11
+ /**
12
+ * A function that will return a `SourceFile` object (or null) for the current file being linked.
13
+ */
14
+ export declare type GetSourceFileFn = () => SourceFile | null;
15
+ /**
16
+ * Create a `GetSourceFileFn` that will return the `SourceFile` being linked or `null`, if not
17
+ * available.
18
+ */
19
+ export declare function createGetSourceFile(sourceUrl: AbsoluteFsPath, code: string, loader: SourceFileLoader | null): GetSourceFileFn;
@@ -0,0 +1,42 @@
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/compiler-cli/linker/src/file_linker/get_source_file", ["require", "exports"], factory);
15
+ }
16
+ })(function (require, exports) {
17
+ "use strict";
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.createGetSourceFile = void 0;
20
+ /**
21
+ * Create a `GetSourceFileFn` that will return the `SourceFile` being linked or `null`, if not
22
+ * available.
23
+ */
24
+ function createGetSourceFile(sourceUrl, code, loader) {
25
+ if (loader === null) {
26
+ // No source-mapping so just return a function that always returns `null`.
27
+ return function () { return null; };
28
+ }
29
+ else {
30
+ // Source-mapping is available so return a function that will load (and cache) the `SourceFile`.
31
+ var sourceFile_1 = undefined;
32
+ return function () {
33
+ if (sourceFile_1 === undefined) {
34
+ sourceFile_1 = loader.loadSourceFile(sourceUrl, code);
35
+ }
36
+ return sourceFile_1;
37
+ };
38
+ }
39
+ }
40
+ exports.createGetSourceFile = createGetSourceFile;
41
+ });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0X3NvdXJjZV9maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL2xpbmtlci9zcmMvZmlsZV9saW5rZXIvZ2V0X3NvdXJjZV9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7OztJQVVIOzs7T0FHRztJQUNILFNBQWdCLG1CQUFtQixDQUMvQixTQUF5QixFQUFFLElBQVksRUFBRSxNQUE2QjtRQUN4RSxJQUFJLE1BQU0sS0FBSyxJQUFJLEVBQUU7WUFDbkIsMEVBQTBFO1lBQzFFLE9BQU8sY0FBTSxPQUFBLElBQUksRUFBSixDQUFJLENBQUM7U0FDbkI7YUFBTTtZQUNMLGdHQUFnRztZQUNoRyxJQUFJLFlBQVUsR0FBOEIsU0FBUyxDQUFDO1lBQ3RELE9BQU87Z0JBQ0wsSUFBSSxZQUFVLEtBQUssU0FBUyxFQUFFO29CQUM1QixZQUFVLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7aUJBQ3JEO2dCQUNELE9BQU8sWUFBVSxDQUFDO1lBQ3BCLENBQUMsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQWZELGtEQWVDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7QWJzb2x1dGVGc1BhdGh9IGZyb20gJy4uLy4uLy4uL3NyYy9uZ3RzYy9maWxlX3N5c3RlbSc7XG5pbXBvcnQge1NvdXJjZUZpbGUsIFNvdXJjZUZpbGVMb2FkZXJ9IGZyb20gJy4uLy4uLy4uL3NyYy9uZ3RzYy9zb3VyY2VtYXBzJztcblxuLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgd2lsbCByZXR1cm4gYSBgU291cmNlRmlsZWAgb2JqZWN0IChvciBudWxsKSBmb3IgdGhlIGN1cnJlbnQgZmlsZSBiZWluZyBsaW5rZWQuXG4gKi9cbmV4cG9ydCB0eXBlIEdldFNvdXJjZUZpbGVGbiA9ICgpID0+IFNvdXJjZUZpbGV8bnVsbDtcblxuLyoqXG4gKiBDcmVhdGUgYSBgR2V0U291cmNlRmlsZUZuYCB0aGF0IHdpbGwgcmV0dXJuIHRoZSBgU291cmNlRmlsZWAgYmVpbmcgbGlua2VkIG9yIGBudWxsYCwgaWYgbm90XG4gKiBhdmFpbGFibGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVHZXRTb3VyY2VGaWxlKFxuICAgIHNvdXJjZVVybDogQWJzb2x1dGVGc1BhdGgsIGNvZGU6IHN0cmluZywgbG9hZGVyOiBTb3VyY2VGaWxlTG9hZGVyfG51bGwpOiBHZXRTb3VyY2VGaWxlRm4ge1xuICBpZiAobG9hZGVyID09PSBudWxsKSB7XG4gICAgLy8gTm8gc291cmNlLW1hcHBpbmcgc28ganVzdCByZXR1cm4gYSBmdW5jdGlvbiB0aGF0IGFsd2F5cyByZXR1cm5zIGBudWxsYC5cbiAgICByZXR1cm4gKCkgPT4gbnVsbDtcbiAgfSBlbHNlIHtcbiAgICAvLyBTb3VyY2UtbWFwcGluZyBpcyBhdmFpbGFibGUgc28gcmV0dXJuIGEgZnVuY3Rpb24gdGhhdCB3aWxsIGxvYWQgKGFuZCBjYWNoZSkgdGhlIGBTb3VyY2VGaWxlYC5cbiAgICBsZXQgc291cmNlRmlsZTogU291cmNlRmlsZXxudWxsfHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHNvdXJjZUZpbGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBzb3VyY2VGaWxlID0gbG9hZGVyLmxvYWRTb3VyY2VGaWxlKHNvdXJjZVVybCwgY29kZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gc291cmNlRmlsZTtcbiAgICB9O1xuICB9XG59XG4iXX0=