@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.
- package/linker/babel/src/ast/babel_ast_factory.d.ts +5 -0
- package/linker/babel/src/ast/babel_ast_factory.js +10 -5
- package/linker/babel/src/es2015_linker_plugin.d.ts +2 -2
- package/linker/babel/src/es2015_linker_plugin.js +26 -11
- package/linker/babel/src/linker_plugin_options.d.ts +21 -0
- package/linker/babel/src/linker_plugin_options.js +13 -0
- package/linker/src/file_linker/emit_scopes/emit_scope.d.ts +3 -3
- package/linker/src/file_linker/emit_scopes/emit_scope.js +6 -6
- package/linker/src/file_linker/emit_scopes/iife_emit_scope.d.ts +4 -0
- package/linker/src/file_linker/emit_scopes/iife_emit_scope.js +9 -8
- package/linker/src/file_linker/file_linker.d.ts +2 -3
- package/linker/src/file_linker/file_linker.js +6 -7
- package/linker/src/file_linker/get_source_file.d.ts +19 -0
- package/linker/src/file_linker/get_source_file.js +42 -0
- package/linker/src/file_linker/linker_environment.d.ts +8 -2
- package/linker/src/file_linker/linker_environment.js +11 -6
- package/linker/src/file_linker/linker_options.d.ts +5 -0
- package/linker/src/file_linker/linker_options.js +2 -1
- package/linker/src/file_linker/partial_linkers/partial_component_linker_1.d.ts +24 -10
- package/linker/src/file_linker/partial_linkers/partial_component_linker_1.js +138 -97
- package/linker/src/file_linker/partial_linkers/partial_directive_linker_1.d.ts +6 -2
- package/linker/src/file_linker/partial_linkers/partial_directive_linker_1.js +7 -4
- package/linker/src/file_linker/partial_linkers/partial_linker.d.ts +1 -1
- package/linker/src/file_linker/partial_linkers/partial_linker.js +1 -1
- package/linker/src/file_linker/partial_linkers/partial_linker_selector.d.ts +21 -18
- package/linker/src/file_linker/partial_linkers/partial_linker_selector.js +37 -31
- package/ngcc/src/analysis/decoration_analyzer.d.ts +3 -3
- package/ngcc/src/analysis/decoration_analyzer.js +3 -3
- package/ngcc/src/command_line_options.js +4 -3
- package/ngcc/src/dependencies/dependency_host.d.ts +3 -3
- package/ngcc/src/dependencies/dependency_host.js +1 -1
- package/ngcc/src/dependencies/dependency_resolver.d.ts +2 -2
- package/ngcc/src/dependencies/dependency_resolver.js +3 -4
- package/ngcc/src/dependencies/dts_dependency_host.d.ts +2 -2
- package/ngcc/src/dependencies/dts_dependency_host.js +1 -1
- package/ngcc/src/dependencies/esm_dependency_host.d.ts +2 -2
- package/ngcc/src/dependencies/esm_dependency_host.js +1 -1
- package/ngcc/src/dependencies/module_resolver.d.ts +2 -2
- package/ngcc/src/dependencies/module_resolver.js +15 -24
- package/ngcc/src/entry_point_finder/entry_point_collector.d.ts +2 -2
- package/ngcc/src/entry_point_finder/entry_point_collector.js +1 -1
- package/ngcc/src/entry_point_finder/program_based_entry_point_finder.d.ts +2 -2
- package/ngcc/src/entry_point_finder/program_based_entry_point_finder.js +2 -2
- package/ngcc/src/entry_point_finder/targeted_entry_point_finder.d.ts +11 -2
- package/ngcc/src/entry_point_finder/targeted_entry_point_finder.js +24 -20
- package/ngcc/src/entry_point_finder/tracing_entry_point_finder.d.ts +3 -3
- package/ngcc/src/entry_point_finder/tracing_entry_point_finder.js +1 -1
- package/ngcc/src/entry_point_finder/utils.d.ts +0 -9
- package/ngcc/src/entry_point_finder/utils.js +8 -9
- package/ngcc/src/execution/cluster/executor.d.ts +2 -2
- package/ngcc/src/execution/cluster/executor.js +1 -1
- package/ngcc/src/execution/cluster/master.d.ts +2 -2
- package/ngcc/src/execution/cluster/master.js +1 -1
- package/ngcc/src/execution/tasks/completion.d.ts +4 -4
- package/ngcc/src/execution/tasks/completion.js +4 -12
- package/ngcc/src/host/umd_host.js +2 -2
- package/ngcc/src/locking/lock_file.d.ts +2 -2
- package/ngcc/src/locking/lock_file.js +1 -1
- package/ngcc/src/main.js +6 -6
- package/ngcc/src/ngcc_options.js +2 -2
- package/ngcc/src/packages/build_marker.d.ts +1 -1
- package/ngcc/src/packages/build_marker.js +1 -1
- package/ngcc/src/packages/bundle_program.d.ts +3 -3
- package/ngcc/src/packages/bundle_program.js +6 -7
- package/ngcc/src/packages/configuration.d.ts +3 -3
- package/ngcc/src/packages/configuration.js +8 -9
- package/ngcc/src/packages/entry_point.d.ts +3 -3
- package/ngcc/src/packages/entry_point.js +13 -16
- package/ngcc/src/packages/entry_point_bundle.js +1 -1
- package/ngcc/src/packages/source_file_cache.d.ts +6 -6
- package/ngcc/src/packages/source_file_cache.js +1 -1
- package/ngcc/src/packages/transformer.d.ts +2 -2
- package/ngcc/src/packages/transformer.js +6 -6
- package/ngcc/src/path_mappings.d.ts +2 -2
- package/ngcc/src/path_mappings.js +4 -12
- package/ngcc/src/rendering/commonjs_rendering_formatter.d.ts +9 -1
- package/ngcc/src/rendering/commonjs_rendering_formatter.js +6 -13
- package/ngcc/src/rendering/dts_renderer.d.ts +2 -2
- package/ngcc/src/rendering/dts_renderer.js +1 -1
- package/ngcc/src/rendering/esm_rendering_formatter.d.ts +4 -3
- package/ngcc/src/rendering/esm_rendering_formatter.js +7 -5
- package/ngcc/src/rendering/renderer.d.ts +2 -2
- package/ngcc/src/rendering/renderer.js +1 -1
- package/ngcc/src/rendering/source_maps.d.ts +2 -2
- package/ngcc/src/rendering/source_maps.js +18 -19
- package/ngcc/src/rendering/umd_rendering_formatter.d.ts +9 -1
- package/ngcc/src/rendering/umd_rendering_formatter.js +6 -13
- package/ngcc/src/utils.d.ts +2 -2
- package/ngcc/src/utils.js +1 -1
- package/ngcc/src/writing/cleaning/package_cleaner.d.ts +2 -2
- package/ngcc/src/writing/cleaning/package_cleaner.js +1 -1
- package/ngcc/src/writing/cleaning/utils.d.ts +2 -2
- package/ngcc/src/writing/cleaning/utils.js +1 -1
- package/ngcc/src/writing/new_entry_point_file_writer.d.ts +14 -1
- package/ngcc/src/writing/new_entry_point_file_writer.js +54 -18
- package/package.json +2 -2
- package/src/ngtsc/annotations/src/component.d.ts +48 -10
- package/src/ngtsc/annotations/src/component.js +197 -116
- package/src/ngtsc/annotations/src/directive.js +18 -3
- package/src/ngtsc/core/api/src/public_options.d.ts +2 -2
- package/src/ngtsc/core/api/src/public_options.js +1 -1
- package/src/ngtsc/core/index.d.ts +1 -1
- package/src/ngtsc/core/index.js +5 -5
- package/src/ngtsc/core/src/compiler.d.ts +95 -12
- package/src/ngtsc/core/src/compiler.js +240 -81
- package/src/ngtsc/diagnostics/index.d.ts +1 -1
- package/src/ngtsc/diagnostics/index.js +4 -2
- package/src/ngtsc/diagnostics/src/error_code.d.ts +6 -1
- package/src/ngtsc/diagnostics/src/error_code.js +29 -2
- package/src/ngtsc/file_system/index.d.ts +1 -1
- package/src/ngtsc/file_system/index.js +1 -1
- package/src/ngtsc/file_system/src/node_js_file_system.d.ts +29 -19
- package/src/ngtsc/file_system/src/node_js_file_system.js +102 -80
- package/src/ngtsc/file_system/src/types.d.ts +34 -23
- package/src/ngtsc/file_system/src/types.js +1 -1
- package/src/ngtsc/incremental/src/strategy.d.ts +7 -0
- package/src/ngtsc/incremental/src/strategy.js +7 -1
- package/src/ngtsc/program.js +51 -20
- package/src/ngtsc/resource/src/loader.d.ts +4 -0
- package/src/ngtsc/resource/src/loader.js +7 -1
- package/src/ngtsc/sourcemaps/index.d.ts +3 -2
- package/src/ngtsc/sourcemaps/index.js +12 -3
- package/src/ngtsc/sourcemaps/src/content_origin.d.ts +34 -0
- package/src/ngtsc/sourcemaps/src/content_origin.js +48 -0
- package/src/ngtsc/sourcemaps/src/raw_source_map.d.ts +19 -1
- package/src/ngtsc/sourcemaps/src/raw_source_map.js +1 -8
- package/src/ngtsc/sourcemaps/src/segment_marker.d.ts +1 -1
- package/src/ngtsc/sourcemaps/src/segment_marker.js +1 -1
- package/src/ngtsc/sourcemaps/src/source_file.d.ts +7 -11
- package/src/ngtsc/sourcemaps/src/source_file.js +108 -32
- package/src/ngtsc/sourcemaps/src/source_file_loader.d.ts +36 -16
- package/src/ngtsc/sourcemaps/src/source_file_loader.js +72 -19
- package/src/ngtsc/transform/src/api.d.ts +5 -0
- package/src/ngtsc/transform/src/api.js +1 -1
- package/src/ngtsc/transform/src/compilation.d.ts +1 -0
- package/src/ngtsc/transform/src/compilation.js +40 -17
- package/src/ngtsc/tsc_plugin.js +26 -5
- package/src/ngtsc/typecheck/api/checker.d.ts +5 -0
- package/src/ngtsc/typecheck/api/checker.js +1 -1
- package/src/ngtsc/typecheck/src/checker.d.ts +1 -0
- package/src/ngtsc/typecheck/src/checker.js +17 -1
- package/src/ngtsc/typecheck/src/template_symbol_builder.js +104 -55
- package/src/perform_compile.d.ts +2 -2
- package/src/perform_compile.js +1 -1
- package/src/transformers/downlevel_decorators_transform.js +7 -8
- package/src/transformers/patch_alias_reference_resolution.js +25 -13
- 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFiZWxfYXN0X2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL2JhYmVsL3NyYy9hc3QvYmFiZWxfYXN0X2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQUE7Ozs7OztPQU1HO0lBQ0gsZ0NBQWtDO0lBRWxDLHVEQUEwQztJQUcxQzs7T0FFRztJQUNIO1FBQUE7WUFTRSx1QkFBa0IsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDO1lBbUJ2QyxnQkFBVyxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUM7WUFVL0Isc0JBQWlCLEdBQUcsQ0FBQyxDQUFDLHFCQUFxQixDQUFDO1lBTTVDLDhCQUF5QixHQUFHLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztZQWdCbEQscUJBQWdCLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQztZQUVoQyxzQkFBaUIsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDO1lBa0JsQyx3QkFBbUIsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1lBVXRDLGtDQUE2QixHQUFHLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQztZQU0xRCwwQkFBcUIsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDO1lBUzFDLHlCQUFvQixHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUM7WUFNeEMsMEJBQXFCLEdBQUcsQ0FBQyxDQUFDLGVBQWUsQ0FBQztRQStCNUMsQ0FBQztRQTdJQyx3Q0FBYyxHQUFkLFVBQWUsU0FBc0IsRUFBRSxlQUFpQztZQUN0RSwrRkFBK0Y7WUFDL0YsS0FBSyxJQUFJLENBQUMsR0FBRyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNwRCxJQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDNUU7UUFDSCxDQUFDO1FBSUQsMENBQWdCLEdBQWhCLFVBQWlCLE1BQW9CLEVBQUUsS0FBbUI7WUFDeEQsZUFBTSxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUscUNBQXFDLENBQUMsQ0FBQztZQUNyRSxPQUFPLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFFRCxnREFBc0IsR0FBdEIsVUFDSSxXQUF5QixFQUFFLFFBQXdCLEVBQ25ELFlBQTBCO1lBQzVCLFFBQVEsUUFBUSxFQUFFO2dCQUNoQixLQUFLLElBQUksQ0FBQztnQkFDVixLQUFLLElBQUk7b0JBQ1AsT0FBTyxDQUFDLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztnQkFDbEU7b0JBQ0UsT0FBTyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQzthQUNsRTtRQUNILENBQUM7UUFJRCw4Q0FBb0IsR0FBcEIsVUFBcUIsTUFBb0IsRUFBRSxJQUFvQixFQUFFLElBQWE7WUFDNUUsSUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDNUMsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDaEU7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFJRCw2Q0FBbUIsR0FBbkIsVUFBb0IsVUFBd0IsRUFBRSxPQUFxQjtZQUNqRSxPQUFPLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBSUQsbURBQXlCLEdBQXpCLFVBQTBCLFlBQW9CLEVBQUUsVUFBb0IsRUFBRSxJQUFpQjtZQUVyRixlQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM1QyxPQUFPLENBQUMsQ0FBQyxtQkFBbUIsQ0FDeEIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQUEsS0FBSyxJQUFJLE9BQUEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBbkIsQ0FBbUIsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RGLENBQUM7UUFFRCxrREFBd0IsR0FBeEIsVUFBeUIsWUFBeUIsRUFBRSxVQUFvQixFQUFFLElBQWlCO1lBRXpGLGVBQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzVDLElBQU0sSUFBSSxHQUFHLFlBQVksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN2RSxPQUFPLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFBLEtBQUssSUFBSSxPQUFBLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQW5CLENBQW1CLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RixDQUFDO1FBTUQsdUNBQWEsR0FBYixVQUFjLEtBQTJDO1lBQ3ZELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO2dCQUM3QixPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDL0I7aUJBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7Z0JBQ3BDLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNoQztpQkFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFNBQVMsRUFBRTtnQkFDckMsT0FBTyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2hDO2lCQUFNLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtnQkFDOUIsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ2xDO2lCQUFNLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtnQkFDekIsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDeEI7aUJBQU07Z0JBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBb0IsS0FBSyxVQUFLLE9BQU8sS0FBSyxNQUFHLENBQUMsQ0FBQzthQUNoRTtRQUNILENBQUM7UUFJRCw2Q0FBbUIsR0FBbkIsVUFBb0IsVUFBaUQ7WUFDbkUsT0FBTyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFBLElBQUk7Z0JBQzNDLElBQU0sR0FBRyxHQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDdkYsT0FBTyxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0MsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNOLENBQUM7UUFJRCw4Q0FBb0IsR0FBcEIsVUFBcUIsVUFBd0IsRUFBRSxZQUFvQjtZQUNqRSxPQUFPLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUYsQ0FBQztRQUlELDhDQUFvQixHQUFwQixVQUFxQixHQUFpQixFQUFFLFFBQXVDO1lBQS9FLGlCQUtDO1lBSkMsSUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQ2xDLFVBQUMsT0FBTyxFQUFFLENBQUMsSUFBSyxPQUFBLEtBQUksQ0FBQyxpQkFBaUIsQ0FDbEMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFEbEUsQ0FDa0UsQ0FBQyxDQUFDO1lBQ3hGLE9BQU8sQ0FBQyxDQUFDLHdCQUF3QixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUM1RixDQUFDO1FBSUQsZ0RBQXNCLEdBQXRCLFVBQXVCLFVBQXdCO1lBQzdDLE9BQU8sQ0FBQyxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUlELG1EQUF5QixHQUF6QixVQUNJLFlBQW9CLEVBQUUsV0FBOEIsRUFDcEQsSUFBNkI7WUFDL0IsT0FBTyxDQUFDLENBQUMsbUJBQW1CLENBQ3hCLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RSxDQUFDO1FBRUQsMkNBQWlCLEdBQWpCLFVBQ0ksSUFBTyxFQUFFLGNBQW1DO1lBQzlDLElBQUksY0FBYyxLQUFLLElBQUksRUFBRTtnQkFDM0IsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUNELCtGQUErRjtZQUMvRix3RUFBd0U7WUFDeEUsSUFBSSxDQUFDLEdBQUcsR0FBRztnQkFDVCxLQUFLLEVBQUU7b0JBQ0wsSUFBSSxFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUM7b0JBQ25DLE1BQU0sRUFBRSxjQUFjLENBQUMsS0FBSyxDQUFDLE1BQU07aUJBQ3BDO2dCQUNELEdBQUcsRUFBRTtvQkFDSCxJQUFJLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQztvQkFDakMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTTtpQkFDbEM7YUFDRixDQUFDO1lBQ0YsSUFBSSxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUN6QyxJQUFJLENBQUMsR0FBRyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO1lBRXJDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNILHNCQUFDO0lBQUQsQ0FBQyxBQTlJRCxJQThJQztJQTlJWSwwQ0FBZTtJQWdKNUIsU0FBUyxhQUFhLENBQUMsSUFBa0I7UUFDdkMsaUZBQWlGO1FBQ2pGLDRCQUE0QjtRQUM1QixPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0ICogYXMgdCBmcm9tICdAYmFiZWwvdHlwZXMnO1xuXG5pbXBvcnQge2Fzc2VydH0gZnJvbSAnLi4vLi4vLi4vLi4vbGlua2VyJztcbmltcG9ydCB7QXN0RmFjdG9yeSwgQmluYXJ5T3BlcmF0b3IsIExlYWRpbmdDb21tZW50LCBPYmplY3RMaXRlcmFsUHJvcGVydHksIFNvdXJjZU1hcFJhbmdlLCBUZW1wbGF0ZUxpdGVyYWwsIFZhcmlhYmxlRGVjbGFyYXRpb25UeXBlfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvbmd0c2MvdHJhbnNsYXRvcic7XG5cbi8qKlxuICogQSBCYWJlbCBmbGF2b3JlZCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgQXN0RmFjdG9yeS5cbiAqL1xuZXhwb3J0IGNsYXNzIEJhYmVsQXN0RmFjdG9yeSBpbXBsZW1lbnRzIEFzdEZhY3Rvcnk8dC5TdGF0ZW1lbnQsIHQuRXhwcmVzc2lvbj4ge1xuICBhdHRhY2hDb21tZW50cyhzdGF0ZW1lbnQ6IHQuU3RhdGVtZW50LCBsZWFkaW5nQ29tbWVudHM6IExlYWRpbmdDb21tZW50W10pOiB2b2lkIHtcbiAgICAvLyBXZSBtdXN0IHByb2Nlc3MgdGhlIGNvbW1lbnRzIGluIHJldmVyc2UgYmVjYXVzZSBgdC5hZGRDb21tZW50KClgIHdpbGwgYWRkIG5ldyBvbmVzIGluIGZyb250LlxuICAgIGZvciAobGV0IGkgPSBsZWFkaW5nQ29tbWVudHMubGVuZ3RoIC0gMTsgaSA+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 {
|
|
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
|
|
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(
|
|
26
|
-
|
|
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
|
-
|
|
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
|
|
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 {
|
|
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
|
|
23
|
+
protected readonly translator: Translator<TStatement, TExpression>;
|
|
24
24
|
readonly constantPool: ConstantPool;
|
|
25
|
-
constructor(ngImport: 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,
|
|
32
|
+
function EmitScope(ngImport, translator) {
|
|
33
33
|
this.ngImport = ngImport;
|
|
34
|
-
this.
|
|
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.
|
|
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
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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:
|
|
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(
|
|
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,
|
|
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=
|