@angular/core 13.0.0-rc.1 → 13.0.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/core.d.ts +224 -221
- package/esm2020/index.mjs +6 -5
- package/esm2020/src/application_module.mjs +2 -7
- package/esm2020/src/core_render3_private_export.mjs +2 -1
- package/esm2020/src/debug/debug_node.mjs +2 -3
- package/esm2020/src/linker/component_factory_resolver.mjs +5 -5
- package/esm2020/src/linker/ng_module_factory.mjs +1 -1
- package/esm2020/src/metadata/view.mjs +3 -1
- package/esm2020/src/render3/definition.mjs +2 -7
- package/esm2020/src/render3/di.mjs +3 -3
- package/esm2020/src/render3/di_setup.mjs +1 -1
- package/esm2020/src/render3/error_code.mjs +2 -5
- package/esm2020/src/render3/error_details_base_url.mjs +16 -0
- package/esm2020/src/render3/fields.mjs +1 -2
- package/esm2020/src/render3/instructions/lview_debug.mjs +36 -13
- package/esm2020/src/render3/instructions/shared.mjs +3 -5
- package/esm2020/src/render3/ng_module_ref.mjs +2 -5
- package/esm2020/src/render3/util/view_traversal_utils.mjs +1 -1
- package/esm2020/src/version.mjs +1 -1
- package/esm2020/testing/src/logger.mjs +3 -3
- package/esm2020/testing/src/ng_zone_mock.mjs +3 -3
- package/esm2020/testing/src/test_compiler.mjs +3 -3
- package/fesm2015/core.mjs +103 -78
- package/fesm2015/core.mjs.map +1 -1
- package/fesm2015/testing.mjs +4 -4
- package/fesm2020/core.mjs +103 -78
- package/fesm2020/core.mjs.map +1 -1
- package/fesm2020/testing.mjs +4 -4
- package/package.json +1 -1
- package/schematics/migrations/router-link-empty-expression/index.js +2 -2
- package/schematics/migrations.json +0 -100
- package/schematics/utils/ng_component_template.d.ts +4 -1
- package/schematics/utils/ng_component_template.js +28 -14
- package/testing/testing.d.ts +1 -1
- package/schematics/migrations/abstract-control-parent/index.d.ts +0 -11
- package/schematics/migrations/abstract-control-parent/index.js +0 -69
- package/schematics/migrations/abstract-control-parent/util.d.ts +0 -14
- package/schematics/migrations/abstract-control-parent/util.js +0 -67
- package/schematics/migrations/activated-route-snapshot-fragment/index.d.ts +0 -13
- package/schematics/migrations/activated-route-snapshot-fragment/index.js +0 -73
- package/schematics/migrations/activated-route-snapshot-fragment/util.d.ts +0 -16
- package/schematics/migrations/activated-route-snapshot-fragment/util.js +0 -51
- package/schematics/migrations/can-activate-with-redirect-to/index.d.ts +0 -11
- package/schematics/migrations/can-activate-with-redirect-to/index.js +0 -69
- package/schematics/migrations/can-activate-with-redirect-to/util.d.ts +0 -11
- package/schematics/migrations/can-activate-with-redirect-to/util.js +0 -73
- package/schematics/migrations/deep-shadow-piercing-selector/index.d.ts +0 -10
- package/schematics/migrations/deep-shadow-piercing-selector/index.js +0 -49
- package/schematics/migrations/dynamic-queries/index.d.ts +0 -13
- package/schematics/migrations/dynamic-queries/index.js +0 -76
- package/schematics/migrations/dynamic-queries/util.d.ts +0 -25
- package/schematics/migrations/dynamic-queries/util.js +0 -84
- package/schematics/migrations/initial-navigation/collector.d.ts +0 -22
- package/schematics/migrations/initial-navigation/collector.js +0 -122
- package/schematics/migrations/initial-navigation/index.d.ts +0 -11
- package/schematics/migrations/initial-navigation/index.js +0 -83
- package/schematics/migrations/initial-navigation/transform.d.ts +0 -20
- package/schematics/migrations/initial-navigation/transform.js +0 -71
- package/schematics/migrations/initial-navigation/update_recorder.d.ts +0 -18
- package/schematics/migrations/initial-navigation/update_recorder.js +0 -20
- package/schematics/migrations/initial-navigation/util.d.ts +0 -12
- package/schematics/migrations/initial-navigation/util.js +0 -46
- package/schematics/migrations/missing-injectable/definition_collector.d.ts +0 -37
- package/schematics/migrations/missing-injectable/definition_collector.js +0 -92
- package/schematics/migrations/missing-injectable/index.d.ts +0 -11
- package/schematics/migrations/missing-injectable/index.js +0 -136
- package/schematics/migrations/missing-injectable/providers_evaluator.d.ts +0 -26
- package/schematics/migrations/missing-injectable/providers_evaluator.js +0 -71
- package/schematics/migrations/missing-injectable/transform.d.ts +0 -70
- package/schematics/migrations/missing-injectable/transform.js +0 -203
- package/schematics/migrations/missing-injectable/update_recorder.d.ts +0 -21
- package/schematics/migrations/missing-injectable/update_recorder.js +0 -20
- package/schematics/migrations/module-with-providers/collector.d.ts +0 -34
- package/schematics/migrations/module-with-providers/collector.js +0 -76
- package/schematics/migrations/module-with-providers/index.d.ts +0 -13
- package/schematics/migrations/module-with-providers/index.js +0 -107
- package/schematics/migrations/module-with-providers/transform.d.ts +0 -50
- package/schematics/migrations/module-with-providers/transform.js +0 -149
- package/schematics/migrations/module-with-providers/util.d.ts +0 -13
- package/schematics/migrations/module-with-providers/util.js +0 -43
- package/schematics/migrations/move-document/document_import_visitor.d.ts +0 -27
- package/schematics/migrations/move-document/document_import_visitor.js +0 -77
- package/schematics/migrations/move-document/index.d.ts +0 -11
- package/schematics/migrations/move-document/index.js +0 -93
- package/schematics/migrations/move-document/move-import.d.ts +0 -12
- package/schematics/migrations/move-document/move-import.js +0 -64
- package/schematics/migrations/native-view-encapsulation/index.d.ts +0 -11
- package/schematics/migrations/native-view-encapsulation/index.js +0 -63
- package/schematics/migrations/native-view-encapsulation/util.d.ts +0 -11
- package/schematics/migrations/native-view-encapsulation/util.js +0 -51
- package/schematics/migrations/navigation-extras-omissions/index.d.ts +0 -11
- package/schematics/migrations/navigation-extras-omissions/index.js +0 -72
- package/schematics/migrations/navigation-extras-omissions/util.d.ts +0 -11
- package/schematics/migrations/navigation-extras-omissions/util.js +0 -129
- package/schematics/migrations/relative-link-resolution/collector.d.ts +0 -22
- package/schematics/migrations/relative-link-resolution/collector.js +0 -98
- package/schematics/migrations/relative-link-resolution/index.d.ts +0 -11
- package/schematics/migrations/relative-link-resolution/index.js +0 -84
- package/schematics/migrations/relative-link-resolution/transform.d.ts +0 -22
- package/schematics/migrations/relative-link-resolution/transform.js +0 -68
- package/schematics/migrations/relative-link-resolution/update_recorder.d.ts +0 -18
- package/schematics/migrations/relative-link-resolution/update_recorder.js +0 -20
- package/schematics/migrations/relative-link-resolution/util.d.ts +0 -12
- package/schematics/migrations/relative-link-resolution/util.js +0 -46
- package/schematics/migrations/renderer-to-renderer2/helpers.d.ts +0 -25
- package/schematics/migrations/renderer-to-renderer2/helpers.js +0 -241
- package/schematics/migrations/renderer-to-renderer2/index.d.ts +0 -14
- package/schematics/migrations/renderer-to-renderer2/index.js +0 -138
- package/schematics/migrations/renderer-to-renderer2/migration.d.ts +0 -18
- package/schematics/migrations/renderer-to-renderer2/migration.js +0 -228
- package/schematics/migrations/renderer-to-renderer2/util.d.ts +0 -18
- package/schematics/migrations/renderer-to-renderer2/util.js +0 -86
- package/schematics/migrations/router-preserve-query-params/index.d.ts +0 -14
- package/schematics/migrations/router-preserve-query-params/index.js +0 -75
- package/schematics/migrations/router-preserve-query-params/util.d.ts +0 -11
- package/schematics/migrations/router-preserve-query-params/util.js +0 -106
- package/schematics/migrations/static-queries/angular/directive_inputs.d.ts +0 -11
- package/schematics/migrations/static-queries/angular/directive_inputs.js +0 -87
- package/schematics/migrations/static-queries/angular/ng_query_visitor.d.ts +0 -45
- package/schematics/migrations/static-queries/angular/ng_query_visitor.js +0 -130
- package/schematics/migrations/static-queries/angular/query-definition.d.ts +0 -37
- package/schematics/migrations/static-queries/angular/query-definition.js +0 -33
- package/schematics/migrations/static-queries/angular/super_class.d.ts +0 -15
- package/schematics/migrations/static-queries/angular/super_class.js +0 -35
- package/schematics/migrations/static-queries/index.d.ts +0 -11
- package/schematics/migrations/static-queries/index.js +0 -244
- package/schematics/migrations/static-queries/strategies/template_strategy/template_strategy.d.ts +0 -41
- package/schematics/migrations/static-queries/strategies/template_strategy/template_strategy.js +0 -210
- package/schematics/migrations/static-queries/strategies/test_strategy/test_strategy.d.ts +0 -24
- package/schematics/migrations/static-queries/strategies/test_strategy/test_strategy.js +0 -38
- package/schematics/migrations/static-queries/strategies/timing-strategy.d.ts +0 -19
- package/schematics/migrations/static-queries/strategies/timing-strategy.js +0 -20
- package/schematics/migrations/static-queries/strategies/usage_strategy/declaration_usage_visitor.d.ts +0 -82
- package/schematics/migrations/static-queries/strategies/usage_strategy/declaration_usage_visitor.js +0 -372
- package/schematics/migrations/static-queries/strategies/usage_strategy/super_class_context.d.ts +0 -18
- package/schematics/migrations/static-queries/strategies/usage_strategy/super_class_context.js +0 -55
- package/schematics/migrations/static-queries/strategies/usage_strategy/template_usage_visitor.d.ts +0 -27
- package/schematics/migrations/static-queries/strategies/usage_strategy/template_usage_visitor.js +0 -93
- package/schematics/migrations/static-queries/strategies/usage_strategy/usage_strategy.d.ts +0 -34
- package/schematics/migrations/static-queries/strategies/usage_strategy/usage_strategy.js +0 -172
- package/schematics/migrations/static-queries/transform.d.ts +0 -21
- package/schematics/migrations/static-queries/transform.js +0 -105
- package/schematics/migrations/template-var-assignment/analyze_template.d.ts +0 -20
- package/schematics/migrations/template-var-assignment/analyze_template.js +0 -38
- package/schematics/migrations/template-var-assignment/angular/html_variable_assignment_visitor.d.ts +0 -28
- package/schematics/migrations/template-var-assignment/angular/html_variable_assignment_visitor.js +0 -80
- package/schematics/migrations/template-var-assignment/index.d.ts +0 -11
- package/schematics/migrations/template-var-assignment/index.js +0 -101
- package/schematics/migrations/undecorated-classes-with-decorated-fields/index.d.ts +0 -14
- package/schematics/migrations/undecorated-classes-with-decorated-fields/index.js +0 -128
- package/schematics/migrations/undecorated-classes-with-decorated-fields/transform.d.ts +0 -64
- package/schematics/migrations/undecorated-classes-with-decorated-fields/transform.js +0 -302
- package/schematics/migrations/undecorated-classes-with-decorated-fields/update_recorder.d.ts +0 -19
- package/schematics/migrations/undecorated-classes-with-decorated-fields/update_recorder.js +0 -20
- package/schematics/migrations/undecorated-classes-with-di/create_ngc_program.d.ts +0 -18
- package/schematics/migrations/undecorated-classes-with-di/create_ngc_program.js +0 -56
- package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/convert_directive_metadata.d.ts +0 -18
- package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/convert_directive_metadata.js +0 -99
- package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/decorator_rewriter.d.ts +0 -37
- package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/decorator_rewriter.js +0 -118
- package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/import_rewrite_visitor.d.ts +0 -37
- package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/import_rewrite_visitor.js +0 -129
- package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/path_format.d.ts +0 -10
- package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/path_format.js +0 -31
- package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/source_file_exports.d.ts +0 -16
- package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/source_file_exports.js +0 -68
- package/schematics/migrations/undecorated-classes-with-di/index.d.ts +0 -11
- package/schematics/migrations/undecorated-classes-with-di/index.js +0 -226
- package/schematics/migrations/undecorated-classes-with-di/ng_declaration_collector.d.ts +0 -38
- package/schematics/migrations/undecorated-classes-with-di/ng_declaration_collector.js +0 -135
- package/schematics/migrations/undecorated-classes-with-di/transform.d.ts +0 -97
- package/schematics/migrations/undecorated-classes-with-di/transform.js +0 -373
- package/schematics/migrations/undecorated-classes-with-di/update_recorder.d.ts +0 -20
- package/schematics/migrations/undecorated-classes-with-di/update_recorder.js +0 -20
- package/schematics/migrations/wait-for-async/index.d.ts +0 -11
- package/schematics/migrations/wait-for-async/index.js +0 -101
- package/schematics/migrations/wait-for-async/util.d.ts +0 -11
- package/schematics/migrations/wait-for-async/util.js +0 -40
- package/schematics/migrations/xhr-factory/index.d.ts +0 -10
- package/schematics/migrations/xhr-factory/index.js +0 -107
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
9
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
10
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
11
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
12
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
13
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
14
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
|
-
(function (factory) {
|
|
18
|
-
if (typeof module === "object" && typeof module.exports === "object") {
|
|
19
|
-
var v = factory(require, exports);
|
|
20
|
-
if (v !== undefined) module.exports = v;
|
|
21
|
-
}
|
|
22
|
-
else if (typeof define === "function" && define.amd) {
|
|
23
|
-
define("@angular/core/schematics/migrations/native-view-encapsulation", ["require", "exports", "@angular-devkit/schematics", "path", "@angular/core/schematics/utils/project_tsconfig_paths", "@angular/core/schematics/utils/typescript/compiler_host", "@angular/core/schematics/migrations/native-view-encapsulation/util"], factory);
|
|
24
|
-
}
|
|
25
|
-
})(function (require, exports) {
|
|
26
|
-
"use strict";
|
|
27
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
-
const schematics_1 = require("@angular-devkit/schematics");
|
|
29
|
-
const path_1 = require("path");
|
|
30
|
-
const project_tsconfig_paths_1 = require("@angular/core/schematics/utils/project_tsconfig_paths");
|
|
31
|
-
const compiler_host_1 = require("@angular/core/schematics/utils/typescript/compiler_host");
|
|
32
|
-
const util_1 = require("@angular/core/schematics/migrations/native-view-encapsulation/util");
|
|
33
|
-
/** Migration that switches from `ViewEncapsulation.Native` to `ViewEncapsulation.ShadowDom`. */
|
|
34
|
-
function default_1() {
|
|
35
|
-
return (tree) => __awaiter(this, void 0, void 0, function* () {
|
|
36
|
-
const { buildPaths, testPaths } = yield (0, project_tsconfig_paths_1.getProjectTsConfigPaths)(tree);
|
|
37
|
-
const basePath = process.cwd();
|
|
38
|
-
const allPaths = [...buildPaths, ...testPaths];
|
|
39
|
-
if (!allPaths.length) {
|
|
40
|
-
throw new schematics_1.SchematicsException('Could not find any tsconfig file. Cannot migrate away from Native view encapsulation.');
|
|
41
|
-
}
|
|
42
|
-
for (const tsconfigPath of allPaths) {
|
|
43
|
-
runNativeViewEncapsulationMigration(tree, tsconfigPath, basePath);
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
exports.default = default_1;
|
|
48
|
-
function runNativeViewEncapsulationMigration(tree, tsconfigPath, basePath) {
|
|
49
|
-
const { program } = (0, compiler_host_1.createMigrationProgram)(tree, tsconfigPath, basePath);
|
|
50
|
-
const typeChecker = program.getTypeChecker();
|
|
51
|
-
const sourceFiles = program.getSourceFiles().filter(sourceFile => (0, compiler_host_1.canMigrateFile)(basePath, sourceFile, program));
|
|
52
|
-
sourceFiles.forEach(sourceFile => {
|
|
53
|
-
const update = tree.beginUpdate((0, path_1.relative)(basePath, sourceFile.fileName));
|
|
54
|
-
const identifiers = (0, util_1.findNativeEncapsulationNodes)(typeChecker, sourceFile);
|
|
55
|
-
identifiers.forEach(node => {
|
|
56
|
-
update.remove(node.getStart(), node.getWidth());
|
|
57
|
-
update.insertRight(node.getStart(), 'ShadowDom');
|
|
58
|
-
});
|
|
59
|
-
tree.commitUpdate(update);
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NjaGVtYXRpY3MvbWlncmF0aW9ucy9uYXRpdmUtdmlldy1lbmNhcHN1bGF0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBRUgsMkRBQTJFO0lBQzNFLCtCQUE4QjtJQUU5QixrR0FBMkU7SUFDM0UsMkZBQTRGO0lBQzVGLDZGQUFvRDtJQUdwRCxnR0FBZ0c7SUFDaEc7UUFDRSxPQUFPLENBQU8sSUFBVSxFQUFFLEVBQUU7WUFDMUIsTUFBTSxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUMsR0FBRyxNQUFNLElBQUEsZ0RBQXVCLEVBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEUsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQy9CLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxVQUFVLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQztZQUUvQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtnQkFDcEIsTUFBTSxJQUFJLGdDQUFtQixDQUN6Qix1RkFBdUYsQ0FBQyxDQUFDO2FBQzlGO1lBRUQsS0FBSyxNQUFNLFlBQVksSUFBSSxRQUFRLEVBQUU7Z0JBQ25DLG1DQUFtQyxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDbkU7UUFDSCxDQUFDLENBQUEsQ0FBQztJQUNKLENBQUM7SUFmRCw0QkFlQztJQUVELFNBQVMsbUNBQW1DLENBQUMsSUFBVSxFQUFFLFlBQW9CLEVBQUUsUUFBZ0I7UUFDN0YsTUFBTSxFQUFDLE9BQU8sRUFBQyxHQUFHLElBQUEsc0NBQXNCLEVBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN2RSxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDN0MsTUFBTSxXQUFXLEdBQ2IsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUEsOEJBQWMsRUFBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFakcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUMvQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUEsZUFBUSxFQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUN6RSxNQUFNLFdBQVcsR0FBRyxJQUFBLG1DQUE0QixFQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUUxRSxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN6QixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDaEQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDbkQsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1J1bGUsIFNjaGVtYXRpY3NFeGNlcHRpb24sIFRyZWV9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzJztcbmltcG9ydCB7cmVsYXRpdmV9IGZyb20gJ3BhdGgnO1xuXG5pbXBvcnQge2dldFByb2plY3RUc0NvbmZpZ1BhdGhzfSBmcm9tICcuLi8uLi91dGlscy9wcm9qZWN0X3RzY29uZmlnX3BhdGhzJztcbmltcG9ydCB7Y2FuTWlncmF0ZUZpbGUsIGNyZWF0ZU1pZ3JhdGlvblByb2dyYW19IGZyb20gJy4uLy4uL3V0aWxzL3R5cGVzY3JpcHQvY29tcGlsZXJfaG9zdCc7XG5pbXBvcnQge2ZpbmROYXRpdmVFbmNhcHN1bGF0aW9uTm9kZXN9IGZyb20gJy4vdXRpbCc7XG5cblxuLyoqIE1pZ3JhdGlvbiB0aGF0IHN3aXRjaGVzIGZyb20gYFZpZXdFbmNhcHN1bGF0aW9uLk5hdGl2ZWAgdG8gYFZpZXdFbmNhcHN1bGF0aW9uLlNoYWRvd0RvbWAuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpOiBSdWxlIHtcbiAgcmV0dXJuIGFzeW5jICh0cmVlOiBUcmVlKSA9PiB7XG4gICAgY29uc3Qge2J1aWxkUGF0aHMsIHRlc3RQYXRoc30gPSBhd2FpdCBnZXRQcm9qZWN0VHNDb25maWdQYXRocyh0cmVlKTtcbiAgICBjb25zdCBiYXNlUGF0aCA9IHByb2Nlc3MuY3dkKCk7XG4gICAgY29uc3QgYWxsUGF0aHMgPSBbLi4uYnVpbGRQYXRocywgLi4udGVzdFBhdGhzXTtcblxuICAgIGlmICghYWxsUGF0aHMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgU2NoZW1hdGljc0V4Y2VwdGlvbihcbiAgICAgICAgICAnQ291bGQgbm90IGZpbmQgYW55IHRzY29uZmlnIGZpbGUuIENhbm5vdCBtaWdyYXRlIGF3YXkgZnJvbSBOYXRpdmUgdmlldyBlbmNhcHN1bGF0aW9uLicpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgdHNjb25maWdQYXRoIG9mIGFsbFBhdGhzKSB7XG4gICAgICBydW5OYXRpdmVWaWV3RW5jYXBzdWxhdGlvbk1pZ3JhdGlvbih0cmVlLCB0c2NvbmZpZ1BhdGgsIGJhc2VQYXRoKTtcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIHJ1bk5hdGl2ZVZpZXdFbmNhcHN1bGF0aW9uTWlncmF0aW9uKHRyZWU6IFRyZWUsIHRzY29uZmlnUGF0aDogc3RyaW5nLCBiYXNlUGF0aDogc3RyaW5nKSB7XG4gIGNvbnN0IHtwcm9ncmFtfSA9IGNyZWF0ZU1pZ3JhdGlvblByb2dyYW0odHJlZSwgdHNjb25maWdQYXRoLCBiYXNlUGF0aCk7XG4gIGNvbnN0IHR5cGVDaGVja2VyID0gcHJvZ3JhbS5nZXRUeXBlQ2hlY2tlcigpO1xuICBjb25zdCBzb3VyY2VGaWxlcyA9XG4gICAgICBwcm9ncmFtLmdldFNvdXJjZUZpbGVzKCkuZmlsdGVyKHNvdXJjZUZpbGUgPT4gY2FuTWlncmF0ZUZpbGUoYmFzZVBhdGgsIHNvdXJjZUZpbGUsIHByb2dyYW0pKTtcblxuICBzb3VyY2VGaWxlcy5mb3JFYWNoKHNvdXJjZUZpbGUgPT4ge1xuICAgIGNvbnN0IHVwZGF0ZSA9IHRyZWUuYmVnaW5VcGRhdGUocmVsYXRpdmUoYmFzZVBhdGgsIHNvdXJjZUZpbGUuZmlsZU5hbWUpKTtcbiAgICBjb25zdCBpZGVudGlmaWVycyA9IGZpbmROYXRpdmVFbmNhcHN1bGF0aW9uTm9kZXModHlwZUNoZWNrZXIsIHNvdXJjZUZpbGUpO1xuXG4gICAgaWRlbnRpZmllcnMuZm9yRWFjaChub2RlID0+IHtcbiAgICAgIHVwZGF0ZS5yZW1vdmUobm9kZS5nZXRTdGFydCgpLCBub2RlLmdldFdpZHRoKCkpO1xuICAgICAgdXBkYXRlLmluc2VydFJpZ2h0KG5vZGUuZ2V0U3RhcnQoKSwgJ1NoYWRvd0RvbScpO1xuICAgIH0pO1xuXG4gICAgdHJlZS5jb21taXRVcGRhdGUodXBkYXRlKTtcbiAgfSk7XG59XG4iXX0=
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
/// <amd-module name="@angular/core/schematics/migrations/native-view-encapsulation/util" />
|
|
9
|
-
import ts from 'typescript';
|
|
10
|
-
/** Finds all the Identifier nodes in a file that refer to `Native` view encapsulation. */
|
|
11
|
-
export declare function findNativeEncapsulationNodes(typeChecker: ts.TypeChecker, sourceFile: ts.SourceFile): Set<ts.Identifier>;
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
-
};
|
|
11
|
-
(function (factory) {
|
|
12
|
-
if (typeof module === "object" && typeof module.exports === "object") {
|
|
13
|
-
var v = factory(require, exports);
|
|
14
|
-
if (v !== undefined) module.exports = v;
|
|
15
|
-
}
|
|
16
|
-
else if (typeof define === "function" && define.amd) {
|
|
17
|
-
define("@angular/core/schematics/migrations/native-view-encapsulation/util", ["require", "exports", "typescript", "@angular/core/schematics/utils/typescript/imports"], factory);
|
|
18
|
-
}
|
|
19
|
-
})(function (require, exports) {
|
|
20
|
-
"use strict";
|
|
21
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.findNativeEncapsulationNodes = void 0;
|
|
23
|
-
const typescript_1 = __importDefault(require("typescript"));
|
|
24
|
-
const imports_1 = require("@angular/core/schematics/utils/typescript/imports");
|
|
25
|
-
/** Finds all the Identifier nodes in a file that refer to `Native` view encapsulation. */
|
|
26
|
-
function findNativeEncapsulationNodes(typeChecker, sourceFile) {
|
|
27
|
-
const results = new Set();
|
|
28
|
-
sourceFile.forEachChild(function walkNode(node) {
|
|
29
|
-
// Note that we look directly for nodes in the form of `<something>.Native`, rather than going
|
|
30
|
-
// for `Component` class decorators, because it's much simpler and it allows us to handle cases
|
|
31
|
-
// where `ViewEncapsulation.Native` might be used in a different context (e.g. a variable).
|
|
32
|
-
// Using the encapsulation outside of a decorator is an edge case, but we do have public APIs
|
|
33
|
-
// where it can be passed in (see the `defaultViewEncapsulation` property on the
|
|
34
|
-
// `COMPILER_OPTIONS` provider).
|
|
35
|
-
if (typescript_1.default.isPropertyAccessExpression(node) && typescript_1.default.isIdentifier(node.name) &&
|
|
36
|
-
node.name.text === 'Native' && typescript_1.default.isIdentifier(node.expression)) {
|
|
37
|
-
const expressionImport = (0, imports_1.getImportOfIdentifier)(typeChecker, node.expression);
|
|
38
|
-
if (expressionImport && expressionImport.name === 'ViewEncapsulation' &&
|
|
39
|
-
expressionImport.importModule === '@angular/core') {
|
|
40
|
-
results.add(node.name);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
node.forEachChild(walkNode);
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
return results;
|
|
48
|
-
}
|
|
49
|
-
exports.findNativeEncapsulationNodes = findNativeEncapsulationNodes;
|
|
50
|
-
});
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc2NoZW1hdGljcy9taWdyYXRpb25zL25hdGl2ZS12aWV3LWVuY2Fwc3VsYXRpb24vdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFSCw0REFBNEI7SUFFNUIsK0VBQXFFO0lBRXJFLDBGQUEwRjtJQUMxRixTQUFnQiw0QkFBNEIsQ0FDeEMsV0FBMkIsRUFBRSxVQUF5QjtRQUN4RCxNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBaUIsQ0FBQztRQUV6QyxVQUFVLENBQUMsWUFBWSxDQUFDLFNBQVMsUUFBUSxDQUFDLElBQWE7WUFDckQsOEZBQThGO1lBQzlGLCtGQUErRjtZQUMvRiwyRkFBMkY7WUFDM0YsNkZBQTZGO1lBQzdGLGdGQUFnRjtZQUNoRixnQ0FBZ0M7WUFDaEMsSUFBSSxvQkFBRSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxJQUFJLG9CQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ2pFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxvQkFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ25FLE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSwrQkFBcUIsRUFBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUM3RSxJQUFJLGdCQUFnQixJQUFJLGdCQUFnQixDQUFDLElBQUksS0FBSyxtQkFBbUI7b0JBQ2pFLGdCQUFnQixDQUFDLFlBQVksS0FBSyxlQUFlLEVBQUU7b0JBQ3JELE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUN4QjthQUNGO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDN0I7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUF4QkQsb0VBd0JDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHtnZXRJbXBvcnRPZklkZW50aWZpZXJ9IGZyb20gJy4uLy4uL3V0aWxzL3R5cGVzY3JpcHQvaW1wb3J0cyc7XG5cbi8qKiBGaW5kcyBhbGwgdGhlIElkZW50aWZpZXIgbm9kZXMgaW4gYSBmaWxlIHRoYXQgcmVmZXIgdG8gYE5hdGl2ZWAgdmlldyBlbmNhcHN1bGF0aW9uLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmROYXRpdmVFbmNhcHN1bGF0aW9uTm9kZXMoXG4gICAgdHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyLCBzb3VyY2VGaWxlOiB0cy5Tb3VyY2VGaWxlKTogU2V0PHRzLklkZW50aWZpZXI+IHtcbiAgY29uc3QgcmVzdWx0cyA9IG5ldyBTZXQ8dHMuSWRlbnRpZmllcj4oKTtcblxuICBzb3VyY2VGaWxlLmZvckVhY2hDaGlsZChmdW5jdGlvbiB3YWxrTm9kZShub2RlOiB0cy5Ob2RlKSB7XG4gICAgLy8gTm90ZSB0aGF0IHdlIGxvb2sgZGlyZWN0bHkgZm9yIG5vZGVzIGluIHRoZSBmb3JtIG9mIGA8c29tZXRoaW5nPi5OYXRpdmVgLCByYXRoZXIgdGhhbiBnb2luZ1xuICAgIC8vIGZvciBgQ29tcG9uZW50YCBjbGFzcyBkZWNvcmF0b3JzLCBiZWNhdXNlIGl0J3MgbXVjaCBzaW1wbGVyIGFuZCBpdCBhbGxvd3MgdXMgdG8gaGFuZGxlIGNhc2VzXG4gICAgLy8gd2hlcmUgYFZpZXdFbmNhcHN1bGF0aW9uLk5hdGl2ZWAgbWlnaHQgYmUgdXNlZCBpbiBhIGRpZmZlcmVudCBjb250ZXh0IChlLmcuIGEgdmFyaWFibGUpLlxuICAgIC8vIFVzaW5nIHRoZSBlbmNhcHN1bGF0aW9uIG91dHNpZGUgb2YgYSBkZWNvcmF0b3IgaXMgYW4gZWRnZSBjYXNlLCBidXQgd2UgZG8gaGF2ZSBwdWJsaWMgQVBJc1xuICAgIC8vIHdoZXJlIGl0IGNhbiBiZSBwYXNzZWQgaW4gKHNlZSB0aGUgYGRlZmF1bHRWaWV3RW5jYXBzdWxhdGlvbmAgcHJvcGVydHkgb24gdGhlXG4gICAgLy8gYENPTVBJTEVSX09QVElPTlNgIHByb3ZpZGVyKS5cbiAgICBpZiAodHMuaXNQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24obm9kZSkgJiYgdHMuaXNJZGVudGlmaWVyKG5vZGUubmFtZSkgJiZcbiAgICAgICAgbm9kZS5uYW1lLnRleHQgPT09ICdOYXRpdmUnICYmIHRzLmlzSWRlbnRpZmllcihub2RlLmV4cHJlc3Npb24pKSB7XG4gICAgICBjb25zdCBleHByZXNzaW9uSW1wb3J0ID0gZ2V0SW1wb3J0T2ZJZGVudGlmaWVyKHR5cGVDaGVja2VyLCBub2RlLmV4cHJlc3Npb24pO1xuICAgICAgaWYgKGV4cHJlc3Npb25JbXBvcnQgJiYgZXhwcmVzc2lvbkltcG9ydC5uYW1lID09PSAnVmlld0VuY2Fwc3VsYXRpb24nICYmXG4gICAgICAgICAgZXhwcmVzc2lvbkltcG9ydC5pbXBvcnRNb2R1bGUgPT09ICdAYW5ndWxhci9jb3JlJykge1xuICAgICAgICByZXN1bHRzLmFkZChub2RlLm5hbWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBub2RlLmZvckVhY2hDaGlsZCh3YWxrTm9kZSk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gcmVzdWx0cztcbn1cbiJdfQ==
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
/// <amd-module name="@angular/core/schematics/migrations/navigation-extras-omissions" />
|
|
9
|
-
import { Rule } from '@angular-devkit/schematics';
|
|
10
|
-
/** Migration that switches `Router.navigateByUrl` and `Router.createUrlTree` to a new signature. */
|
|
11
|
-
export default function (): Rule;
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
9
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
10
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
11
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
12
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
13
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
14
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
-
};
|
|
20
|
-
(function (factory) {
|
|
21
|
-
if (typeof module === "object" && typeof module.exports === "object") {
|
|
22
|
-
var v = factory(require, exports);
|
|
23
|
-
if (v !== undefined) module.exports = v;
|
|
24
|
-
}
|
|
25
|
-
else if (typeof define === "function" && define.amd) {
|
|
26
|
-
define("@angular/core/schematics/migrations/navigation-extras-omissions", ["require", "exports", "@angular-devkit/schematics", "path", "typescript", "@angular/core/schematics/utils/project_tsconfig_paths", "@angular/core/schematics/utils/typescript/compiler_host", "@angular/core/schematics/migrations/navigation-extras-omissions/util"], factory);
|
|
27
|
-
}
|
|
28
|
-
})(function (require, exports) {
|
|
29
|
-
"use strict";
|
|
30
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
-
const schematics_1 = require("@angular-devkit/schematics");
|
|
32
|
-
const path_1 = require("path");
|
|
33
|
-
const typescript_1 = __importDefault(require("typescript"));
|
|
34
|
-
const project_tsconfig_paths_1 = require("@angular/core/schematics/utils/project_tsconfig_paths");
|
|
35
|
-
const compiler_host_1 = require("@angular/core/schematics/utils/typescript/compiler_host");
|
|
36
|
-
const util_1 = require("@angular/core/schematics/migrations/navigation-extras-omissions/util");
|
|
37
|
-
/** Migration that switches `Router.navigateByUrl` and `Router.createUrlTree` to a new signature. */
|
|
38
|
-
function default_1() {
|
|
39
|
-
return (tree) => __awaiter(this, void 0, void 0, function* () {
|
|
40
|
-
const { buildPaths, testPaths } = yield (0, project_tsconfig_paths_1.getProjectTsConfigPaths)(tree);
|
|
41
|
-
const basePath = process.cwd();
|
|
42
|
-
const allPaths = [...buildPaths, ...testPaths];
|
|
43
|
-
if (!allPaths.length) {
|
|
44
|
-
throw new schematics_1.SchematicsException('Could not find any tsconfig file. Cannot migrate ' +
|
|
45
|
-
'Router.navigateByUrl and Router.createUrlTree calls.');
|
|
46
|
-
}
|
|
47
|
-
for (const tsconfigPath of allPaths) {
|
|
48
|
-
runNavigationExtrasOmissionsMigration(tree, tsconfigPath, basePath);
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
exports.default = default_1;
|
|
53
|
-
function runNavigationExtrasOmissionsMigration(tree, tsconfigPath, basePath) {
|
|
54
|
-
const { program } = (0, compiler_host_1.createMigrationProgram)(tree, tsconfigPath, basePath);
|
|
55
|
-
const typeChecker = program.getTypeChecker();
|
|
56
|
-
const printer = typescript_1.default.createPrinter();
|
|
57
|
-
const sourceFiles = program.getSourceFiles().filter(sourceFile => (0, compiler_host_1.canMigrateFile)(basePath, sourceFile, program));
|
|
58
|
-
sourceFiles.forEach(sourceFile => {
|
|
59
|
-
const literalsToMigrate = (0, util_1.findLiteralsToMigrate)(sourceFile, typeChecker);
|
|
60
|
-
const update = tree.beginUpdate((0, path_1.relative)(basePath, sourceFile.fileName));
|
|
61
|
-
literalsToMigrate.forEach((instances, methodName) => instances.forEach(instance => {
|
|
62
|
-
const migratedNode = (0, util_1.migrateLiteral)(methodName, instance);
|
|
63
|
-
if (migratedNode !== instance) {
|
|
64
|
-
update.remove(instance.getStart(), instance.getWidth());
|
|
65
|
-
update.insertRight(instance.getStart(), printer.printNode(typescript_1.default.EmitHint.Unspecified, migratedNode, sourceFile));
|
|
66
|
-
}
|
|
67
|
-
}));
|
|
68
|
-
tree.commitUpdate(update);
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NjaGVtYXRpY3MvbWlncmF0aW9ucy9uYXZpZ2F0aW9uLWV4dHJhcy1vbWlzc2lvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFSCwyREFBMkU7SUFDM0UsK0JBQThCO0lBQzlCLDREQUE0QjtJQUU1QixrR0FBMkU7SUFDM0UsMkZBQTRGO0lBQzVGLCtGQUE2RDtJQUc3RCxvR0FBb0c7SUFDcEc7UUFDRSxPQUFPLENBQU8sSUFBVSxFQUFFLEVBQUU7WUFDMUIsTUFBTSxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUMsR0FBRyxNQUFNLElBQUEsZ0RBQXVCLEVBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEUsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQy9CLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxVQUFVLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQztZQUUvQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtnQkFDcEIsTUFBTSxJQUFJLGdDQUFtQixDQUN6QixtREFBbUQ7b0JBQ25ELHNEQUFzRCxDQUFDLENBQUM7YUFDN0Q7WUFFRCxLQUFLLE1BQU0sWUFBWSxJQUFJLFFBQVEsRUFBRTtnQkFDbkMscUNBQXFDLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQzthQUNyRTtRQUNILENBQUMsQ0FBQSxDQUFDO0lBQ0osQ0FBQztJQWhCRCw0QkFnQkM7SUFFRCxTQUFTLHFDQUFxQyxDQUFDLElBQVUsRUFBRSxZQUFvQixFQUFFLFFBQWdCO1FBQy9GLE1BQU0sRUFBQyxPQUFPLEVBQUMsR0FBRyxJQUFBLHNDQUFzQixFQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdkUsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzdDLE1BQU0sT0FBTyxHQUFHLG9CQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDbkMsTUFBTSxXQUFXLEdBQ2IsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUEsOEJBQWMsRUFBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFakcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUMvQixNQUFNLGlCQUFpQixHQUFHLElBQUEsNEJBQXFCLEVBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBQSxlQUFRLEVBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBRXpFLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ2hGLE1BQU0sWUFBWSxHQUFHLElBQUEscUJBQWMsRUFBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBRTFELElBQUksWUFBWSxLQUFLLFFBQVEsRUFBRTtvQkFDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7b0JBQ3hELE1BQU0sQ0FBQyxXQUFXLENBQ2QsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUNuQixPQUFPLENBQUMsU0FBUyxDQUFDLG9CQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztpQkFDM0U7WUFDSCxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRUosSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtSdWxlLCBTY2hlbWF0aWNzRXhjZXB0aW9uLCBUcmVlfSBmcm9tICdAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcyc7XG5pbXBvcnQge3JlbGF0aXZlfSBmcm9tICdwYXRoJztcbmltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHtnZXRQcm9qZWN0VHNDb25maWdQYXRoc30gZnJvbSAnLi4vLi4vdXRpbHMvcHJvamVjdF90c2NvbmZpZ19wYXRocyc7XG5pbXBvcnQge2Nhbk1pZ3JhdGVGaWxlLCBjcmVhdGVNaWdyYXRpb25Qcm9ncmFtfSBmcm9tICcuLi8uLi91dGlscy90eXBlc2NyaXB0L2NvbXBpbGVyX2hvc3QnO1xuaW1wb3J0IHtmaW5kTGl0ZXJhbHNUb01pZ3JhdGUsIG1pZ3JhdGVMaXRlcmFsfSBmcm9tICcuL3V0aWwnO1xuXG5cbi8qKiBNaWdyYXRpb24gdGhhdCBzd2l0Y2hlcyBgUm91dGVyLm5hdmlnYXRlQnlVcmxgIGFuZCBgUm91dGVyLmNyZWF0ZVVybFRyZWVgIHRvIGEgbmV3IHNpZ25hdHVyZS4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCk6IFJ1bGUge1xuICByZXR1cm4gYXN5bmMgKHRyZWU6IFRyZWUpID0+IHtcbiAgICBjb25zdCB7YnVpbGRQYXRocywgdGVzdFBhdGhzfSA9IGF3YWl0IGdldFByb2plY3RUc0NvbmZpZ1BhdGhzKHRyZWUpO1xuICAgIGNvbnN0IGJhc2VQYXRoID0gcHJvY2Vzcy5jd2QoKTtcbiAgICBjb25zdCBhbGxQYXRocyA9IFsuLi5idWlsZFBhdGhzLCAuLi50ZXN0UGF0aHNdO1xuXG4gICAgaWYgKCFhbGxQYXRocy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBTY2hlbWF0aWNzRXhjZXB0aW9uKFxuICAgICAgICAgICdDb3VsZCBub3QgZmluZCBhbnkgdHNjb25maWcgZmlsZS4gQ2Fubm90IG1pZ3JhdGUgJyArXG4gICAgICAgICAgJ1JvdXRlci5uYXZpZ2F0ZUJ5VXJsIGFuZCBSb3V0ZXIuY3JlYXRlVXJsVHJlZSBjYWxscy4nKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHRzY29uZmlnUGF0aCBvZiBhbGxQYXRocykge1xuICAgICAgcnVuTmF2aWdhdGlvbkV4dHJhc09taXNzaW9uc01pZ3JhdGlvbih0cmVlLCB0c2NvbmZpZ1BhdGgsIGJhc2VQYXRoKTtcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIHJ1bk5hdmlnYXRpb25FeHRyYXNPbWlzc2lvbnNNaWdyYXRpb24odHJlZTogVHJlZSwgdHNjb25maWdQYXRoOiBzdHJpbmcsIGJhc2VQYXRoOiBzdHJpbmcpIHtcbiAgY29uc3Qge3Byb2dyYW19ID0gY3JlYXRlTWlncmF0aW9uUHJvZ3JhbSh0cmVlLCB0c2NvbmZpZ1BhdGgsIGJhc2VQYXRoKTtcbiAgY29uc3QgdHlwZUNoZWNrZXIgPSBwcm9ncmFtLmdldFR5cGVDaGVja2VyKCk7XG4gIGNvbnN0IHByaW50ZXIgPSB0cy5jcmVhdGVQcmludGVyKCk7XG4gIGNvbnN0IHNvdXJjZUZpbGVzID1cbiAgICAgIHByb2dyYW0uZ2V0U291cmNlRmlsZXMoKS5maWx0ZXIoc291cmNlRmlsZSA9PiBjYW5NaWdyYXRlRmlsZShiYXNlUGF0aCwgc291cmNlRmlsZSwgcHJvZ3JhbSkpO1xuXG4gIHNvdXJjZUZpbGVzLmZvckVhY2goc291cmNlRmlsZSA9PiB7XG4gICAgY29uc3QgbGl0ZXJhbHNUb01pZ3JhdGUgPSBmaW5kTGl0ZXJhbHNUb01pZ3JhdGUoc291cmNlRmlsZSwgdHlwZUNoZWNrZXIpO1xuICAgIGNvbnN0IHVwZGF0ZSA9IHRyZWUuYmVnaW5VcGRhdGUocmVsYXRpdmUoYmFzZVBhdGgsIHNvdXJjZUZpbGUuZmlsZU5hbWUpKTtcblxuICAgIGxpdGVyYWxzVG9NaWdyYXRlLmZvckVhY2goKGluc3RhbmNlcywgbWV0aG9kTmFtZSkgPT4gaW5zdGFuY2VzLmZvckVhY2goaW5zdGFuY2UgPT4ge1xuICAgICAgY29uc3QgbWlncmF0ZWROb2RlID0gbWlncmF0ZUxpdGVyYWwobWV0aG9kTmFtZSwgaW5zdGFuY2UpO1xuXG4gICAgICBpZiAobWlncmF0ZWROb2RlICE9PSBpbnN0YW5jZSkge1xuICAgICAgICB1cGRhdGUucmVtb3ZlKGluc3RhbmNlLmdldFN0YXJ0KCksIGluc3RhbmNlLmdldFdpZHRoKCkpO1xuICAgICAgICB1cGRhdGUuaW5zZXJ0UmlnaHQoXG4gICAgICAgICAgICBpbnN0YW5jZS5nZXRTdGFydCgpLFxuICAgICAgICAgICAgcHJpbnRlci5wcmludE5vZGUodHMuRW1pdEhpbnQuVW5zcGVjaWZpZWQsIG1pZ3JhdGVkTm9kZSwgc291cmNlRmlsZSkpO1xuICAgICAgfVxuICAgIH0pKTtcblxuICAgIHRyZWUuY29tbWl0VXBkYXRlKHVwZGF0ZSk7XG4gIH0pO1xufVxuIl19
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
/// <amd-module name="@angular/core/schematics/migrations/navigation-extras-omissions/util" />
|
|
9
|
-
import ts from 'typescript';
|
|
10
|
-
export declare function migrateLiteral(methodName: string, node: ts.ObjectLiteralExpression): ts.ObjectLiteralExpression;
|
|
11
|
-
export declare function findLiteralsToMigrate(sourceFile: ts.SourceFile, typeChecker: ts.TypeChecker): Map<string, Set<ts.ObjectLiteralExpression>>;
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
-
};
|
|
11
|
-
(function (factory) {
|
|
12
|
-
if (typeof module === "object" && typeof module.exports === "object") {
|
|
13
|
-
var v = factory(require, exports);
|
|
14
|
-
if (v !== undefined) module.exports = v;
|
|
15
|
-
}
|
|
16
|
-
else if (typeof define === "function" && define.amd) {
|
|
17
|
-
define("@angular/core/schematics/migrations/navigation-extras-omissions/util", ["require", "exports", "typescript", "@angular/core/schematics/utils/typescript/imports", "@angular/core/schematics/utils/typescript/symbol"], factory);
|
|
18
|
-
}
|
|
19
|
-
})(function (require, exports) {
|
|
20
|
-
"use strict";
|
|
21
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.findLiteralsToMigrate = exports.migrateLiteral = void 0;
|
|
23
|
-
const typescript_1 = __importDefault(require("typescript"));
|
|
24
|
-
const imports_1 = require("@angular/core/schematics/utils/typescript/imports");
|
|
25
|
-
const symbol_1 = require("@angular/core/schematics/utils/typescript/symbol");
|
|
26
|
-
/**
|
|
27
|
-
* Configures the methods that the migration should be looking for
|
|
28
|
-
* and the properties from `NavigationExtras` that should be preserved.
|
|
29
|
-
*/
|
|
30
|
-
const methodConfig = new Map([
|
|
31
|
-
['navigateByUrl', new Set(['skipLocationChange', 'replaceUrl', 'state'])],
|
|
32
|
-
[
|
|
33
|
-
'createUrlTree', new Set([
|
|
34
|
-
'relativeTo', 'queryParams', 'fragment', 'preserveQueryParams', 'queryParamsHandling',
|
|
35
|
-
'preserveFragment'
|
|
36
|
-
])
|
|
37
|
-
]
|
|
38
|
-
]);
|
|
39
|
-
function migrateLiteral(methodName, node) {
|
|
40
|
-
const allowedProperties = methodConfig.get(methodName);
|
|
41
|
-
if (!allowedProperties) {
|
|
42
|
-
throw Error(`Attempting to migrate unconfigured method called ${methodName}.`);
|
|
43
|
-
}
|
|
44
|
-
const propertiesToKeep = [];
|
|
45
|
-
const removedPropertyNames = [];
|
|
46
|
-
node.properties.forEach(property => {
|
|
47
|
-
// Only look for regular and shorthand property assignments since resolving things
|
|
48
|
-
// like spread operators becomes too complicated for this migration.
|
|
49
|
-
if ((typescript_1.default.isPropertyAssignment(property) || typescript_1.default.isShorthandPropertyAssignment(property)) &&
|
|
50
|
-
(typescript_1.default.isStringLiteralLike(property.name) || typescript_1.default.isNumericLiteral(property.name) ||
|
|
51
|
-
typescript_1.default.isIdentifier(property.name))) {
|
|
52
|
-
if (allowedProperties.has(property.name.text)) {
|
|
53
|
-
propertiesToKeep.push(property);
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
removedPropertyNames.push(property.name.text);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
propertiesToKeep.push(property);
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
// Don't modify the node if there's nothing to remove.
|
|
64
|
-
if (removedPropertyNames.length === 0) {
|
|
65
|
-
return node;
|
|
66
|
-
}
|
|
67
|
-
// Note that the trailing/leading spaces are necessary so the comment looks good.
|
|
68
|
-
const removalComment = ` Removed unsupported properties by Angular migration: ${removedPropertyNames.join(', ')}. `;
|
|
69
|
-
if (propertiesToKeep.length > 0) {
|
|
70
|
-
propertiesToKeep[0] = addUniqueLeadingComment(propertiesToKeep[0], removalComment);
|
|
71
|
-
return typescript_1.default.createObjectLiteral(propertiesToKeep);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
return addUniqueLeadingComment(typescript_1.default.createObjectLiteral(propertiesToKeep), removalComment);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
exports.migrateLiteral = migrateLiteral;
|
|
78
|
-
function findLiteralsToMigrate(sourceFile, typeChecker) {
|
|
79
|
-
const results = new Map(Array.from(methodConfig.keys(), key => [key, new Set()]));
|
|
80
|
-
const routerImport = (0, imports_1.getImportSpecifier)(sourceFile, '@angular/router', 'Router');
|
|
81
|
-
const seenLiterals = new Map();
|
|
82
|
-
if (routerImport) {
|
|
83
|
-
sourceFile.forEachChild(function visitNode(node) {
|
|
84
|
-
var _a;
|
|
85
|
-
// Look for calls that look like `foo.<method to migrate>` with more than one parameter.
|
|
86
|
-
if (typescript_1.default.isCallExpression(node) && node.arguments.length > 1 &&
|
|
87
|
-
typescript_1.default.isPropertyAccessExpression(node.expression) && typescript_1.default.isIdentifier(node.expression.name) &&
|
|
88
|
-
methodConfig.has(node.expression.name.text)) {
|
|
89
|
-
// Check whether the type of the object on which the
|
|
90
|
-
// function is called refers to the Router import.
|
|
91
|
-
if ((0, symbol_1.isReferenceToImport)(typeChecker, node.expression.expression, routerImport)) {
|
|
92
|
-
const methodName = node.expression.name.text;
|
|
93
|
-
const parameterDeclaration = (_a = typeChecker.getTypeAtLocation(node.arguments[1]).getSymbol()) === null || _a === void 0 ? void 0 : _a.valueDeclaration;
|
|
94
|
-
// Find the source of the object literal.
|
|
95
|
-
if (parameterDeclaration && typescript_1.default.isObjectLiteralExpression(parameterDeclaration)) {
|
|
96
|
-
if (!seenLiterals.has(parameterDeclaration)) {
|
|
97
|
-
results.get(methodName).add(parameterDeclaration);
|
|
98
|
-
seenLiterals.set(parameterDeclaration, methodName);
|
|
99
|
-
// If the same literal has been passed into multiple different methods, we can't
|
|
100
|
-
// migrate it, because the supported properties are different. When we detect such
|
|
101
|
-
// a case, we drop it from the results so that it gets ignored. If it's used multiple
|
|
102
|
-
// times for the same method, it can still be migrated.
|
|
103
|
-
}
|
|
104
|
-
else if (seenLiterals.get(parameterDeclaration) !== methodName) {
|
|
105
|
-
results.forEach(literals => literals.delete(parameterDeclaration));
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
node.forEachChild(visitNode);
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
return results;
|
|
116
|
-
}
|
|
117
|
-
exports.findLiteralsToMigrate = findLiteralsToMigrate;
|
|
118
|
-
/** Adds a leading comment to a node, if the node doesn't have such a comment already. */
|
|
119
|
-
function addUniqueLeadingComment(node, comment) {
|
|
120
|
-
const existingComments = typescript_1.default.getSyntheticLeadingComments(node);
|
|
121
|
-
// This logic is primarily to ensure that we don't add the same comment multiple
|
|
122
|
-
// times when tslint runs over the same file again with outdated information.
|
|
123
|
-
if (!existingComments || existingComments.every(c => c.text !== comment)) {
|
|
124
|
-
return typescript_1.default.addSyntheticLeadingComment(node, typescript_1.default.SyntaxKind.MultiLineCommentTrivia, comment);
|
|
125
|
-
}
|
|
126
|
-
return node;
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc2NoZW1hdGljcy9taWdyYXRpb25zL25hdmlnYXRpb24tZXh0cmFzLW9taXNzaW9ucy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7OztJQUVILDREQUE0QjtJQUU1QiwrRUFBa0U7SUFDbEUsNkVBQWtFO0lBRWxFOzs7T0FHRztJQUNILE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxDQUFzQjtRQUNoRCxDQUFDLGVBQWUsRUFBRSxJQUFJLEdBQUcsQ0FBUyxDQUFDLG9CQUFvQixFQUFFLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2pGO1lBQ0UsZUFBZSxFQUFFLElBQUksR0FBRyxDQUFTO2dCQUMvQixZQUFZLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUI7Z0JBQ3JGLGtCQUFrQjthQUNuQixDQUFDO1NBQ0g7S0FDRixDQUFDLENBQUM7SUFFSCxTQUFnQixjQUFjLENBQzFCLFVBQWtCLEVBQUUsSUFBZ0M7UUFDdEQsTUFBTSxpQkFBaUIsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUN0QixNQUFNLEtBQUssQ0FBQyxvREFBb0QsVUFBVSxHQUFHLENBQUMsQ0FBQztTQUNoRjtRQUVELE1BQU0sZ0JBQWdCLEdBQWtDLEVBQUUsQ0FBQztRQUMzRCxNQUFNLG9CQUFvQixHQUFhLEVBQUUsQ0FBQztRQUUxQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNqQyxrRkFBa0Y7WUFDbEYsb0VBQW9FO1lBQ3BFLElBQUksQ0FBQyxvQkFBRSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxJQUFJLG9CQUFFLENB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QUMsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLEVBQUU7WUFDeEUsT0FBTyxvQkFBRSxDQUFDLDBCQUEwQixDQUFDLElBQUksRUFBRSxvQkFBRSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUMzRjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7Z2V0SW1wb3J0U3BlY2lmaWVyfSBmcm9tICcuLi8uLi91dGlscy90eXBlc2NyaXB0L2ltcG9ydHMnO1xuaW1wb3J0IHtpc1JlZmVyZW5jZVRvSW1wb3J0fSBmcm9tICcuLi8uLi91dGlscy90eXBlc2NyaXB0L3N5bWJvbCc7XG5cbi8qKlxuICogQ29uZmlndXJlcyB0aGUgbWV0aG9kcyB0aGF0IHRoZSBtaWdyYXRpb24gc2hvdWxkIGJlIGxvb2tpbmcgZm9yXG4gKiBhbmQgdGhlIHByb3BlcnRpZXMgZnJvbSBgTmF2aWdhdGlvbkV4dHJhc2AgdGhhdCBzaG91bGQgYmUgcHJlc2VydmVkLlxuICovXG5jb25zdCBtZXRob2RDb25maWcgPSBuZXcgTWFwPHN0cmluZywgU2V0PHN0cmluZz4+KFtcbiAgWyduYXZpZ2F0ZUJ5VXJsJywgbmV3IFNldDxzdHJpbmc+KFsnc2tpcExvY2F0aW9uQ2hhbmdlJywgJ3JlcGxhY2VVcmwnLCAnc3RhdGUnXSldLFxuICBbXG4gICAgJ2NyZWF0ZVVybFRyZWUnLCBuZXcgU2V0PHN0cmluZz4oW1xuICAgICAgJ3JlbGF0aXZlVG8nLCAncXVlcnlQYXJhbXMnLCAnZnJhZ21lbnQnLCAncHJlc2VydmVRdWVyeVBhcmFtcycsICdxdWVyeVBhcmFtc0hhbmRsaW5nJyxcbiAgICAgICdwcmVzZXJ2ZUZyYWdtZW50J1xuICAgIF0pXG4gIF1cbl0pO1xuXG5leHBvcnQgZnVuY3Rpb24gbWlncmF0ZUxpdGVyYWwoXG4gICAgbWV0aG9kTmFtZTogc3RyaW5nLCBub2RlOiB0cy5PYmplY3RMaXRlcmFsRXhwcmVzc2lvbik6IHRzLk9iamVjdExpdGVyYWxFeHByZXNzaW9uIHtcbiAgY29uc3QgYWxsb3dlZFByb3BlcnRpZXMgPSBtZXRob2RDb25maWcuZ2V0KG1ldGhvZE5hbWUpO1xuXG4gIGlmICghYWxsb3dlZFByb3BlcnRpZXMpIHtcbiAgICB0aHJvdyBFcnJvcihgQXR0ZW1wdGluZyB0byBtaWdyYXRlIHVuY29uZmlndXJlZCBtZXRob2QgY2FsbGVkICR7bWV0aG9kTmFtZX0uYCk7XG4gIH1cblxuICBjb25zdCBwcm9wZXJ0aWVzVG9LZWVwOiB0cy5PYmplY3RMaXRlcmFsRWxlbWVudExpa2VbXSA9IFtdO1xuICBjb25zdCByZW1vdmVkUHJvcGVydHlOYW1lczogc3RyaW5nW10gPSBbXTtcblxuICBub2RlLnByb3BlcnRpZXMuZm9yRWFjaChwcm9wZXJ0eSA9PiB7XG4gICAgLy8gT25seSBsb29rIGZvciByZWd1bGFyIGFuZCBzaG9ydGhhbmQgcHJvcGVydHkgYXNzaWdubWVudHMgc2luY2UgcmVzb2x2aW5nIHRoaW5nc1xuICAgIC8vIGxpa2Ugc3ByZWFkIG9wZXJhdG9ycyBiZWNvbWVzIHRvbyBjb21wbGljYXRlZCBmb3IgdGhpcyBtaWdyYXRpb24uXG4gICAgaWYgKCh0cy5pc1Byb3BlcnR5QXNzaWdubWVudChwcm9wZXJ0eSkgfHwgdHMuaXNTaG9ydGhhbmRQcm9wZXJ0eUFzc2lnbm1lbnQocHJvcGVydHkpKSAmJlxuICAgICAgICAodHMuaXNTdHJpbmdMaXRlcmFsTGlrZShwcm9wZXJ0eS5uYW1lKSB8fCB0cy5pc051bWVyaWNMaXRlcmFsKHByb3BlcnR5Lm5hbWUpIHx8XG4gICAgICAgICB0cy5pc0lkZW50aWZpZXIocHJvcGVydHkubmFtZSkpKSB7XG4gICAgICBpZiAoYWxsb3dlZFByb3BlcnRpZXMuaGFzKHByb3BlcnR5Lm5hbWUudGV4dCkpIHtcbiAgICAgICAgcHJvcGVydGllc1RvS2VlcC5wdXNoKHByb3BlcnR5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlbW92ZWRQcm9wZXJ0eU5hbWVzLnB1c2gocHJvcGVydHkubmFtZS50ZXh0KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcHJvcGVydGllc1RvS2VlcC5wdXNoKHByb3BlcnR5KTtcbiAgICB9XG4gIH0pO1xuXG4gIC8vIERvbid0IG1vZGlmeSB0aGUgbm9kZSBpZiB0aGVyZSdzIG5vdGhpbmcgdG8gcmVtb3ZlLlxuICBpZiAocmVtb3ZlZFByb3BlcnR5TmFtZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICAvLyBOb3RlIHRoYXQgdGhlIHRyYWlsaW5nL2xlYWRpbmcgc3BhY2VzIGFyZSBuZWNlc3Nhcnkgc28gdGhlIGNvbW1lbnQgbG9va3MgZ29vZC5cbiAgY29uc3QgcmVtb3ZhbENvbW1lbnQgPVxuICAgICAgYCBSZW1vdmVkIHVuc3VwcG9ydGVkIHByb3BlcnRpZXMgYnkgQW5ndWxhciBtaWdyYXRpb246ICR7cmVtb3ZlZFByb3BlcnR5TmFtZXMuam9pbignLCAnKX0uIGA7XG5cbiAgaWYgKHByb3BlcnRpZXNUb0tlZXAubGVuZ3RoID4gMCkge1xuICAgIHByb3BlcnRpZXNUb0tlZXBbMF0gPSBhZGRVbmlxdWVMZWFkaW5nQ29tbWVudChwcm9wZXJ0aWVzVG9LZWVwWzBdLCByZW1vdmFsQ29tbWVudCk7XG4gICAgcmV0dXJuIHRzLmNyZWF0ZU9iamVjdExpdGVyYWwocHJvcGVydGllc1RvS2VlcCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGFkZFVuaXF1ZUxlYWRpbmdDb21tZW50KHRzLmNyZWF0ZU9iamVjdExpdGVyYWwocHJvcGVydGllc1RvS2VlcCksIHJlbW92YWxDb21tZW50KTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZExpdGVyYWxzVG9NaWdyYXRlKHNvdXJjZUZpbGU6IHRzLlNvdXJjZUZpbGUsIHR5cGVDaGVja2VyOiB0cy5UeXBlQ2hlY2tlcikge1xuICBjb25zdCByZXN1bHRzID0gbmV3IE1hcDxzdHJpbmcsIFNldDx0cy5PYmplY3RMaXRlcmFsRXhwcmVzc2lvbj4+KFxuICAgICAgQXJyYXkuZnJvbShtZXRob2RDb25maWcua2V5cygpLCBrZXkgPT4gW2tleSwgbmV3IFNldCgpXSkpO1xuICBjb25zdCByb3V0ZXJJbXBvcnQgPSBnZXRJbXBvcnRTcGVjaWZpZXIoc291cmNlRmlsZSwgJ0Bhbmd1bGFyL3JvdXRlcicsICdSb3V0ZXInKTtcbiAgY29uc3Qgc2VlbkxpdGVyYWxzID0gbmV3IE1hcDx0cy5PYmplY3RMaXRlcmFsRXhwcmVzc2lvbiwgc3RyaW5nPigpO1xuXG4gIGlmIChyb3V0ZXJJbXBvcnQpIHtcbiAgICBzb3VyY2VGaWxlLmZvckVhY2hDaGlsZChmdW5jdGlvbiB2aXNpdE5vZGUobm9kZTogdHMuTm9kZSkge1xuICAgICAgLy8gTG9vayBmb3IgY2FsbHMgdGhhdCBsb29rIGxpa2UgYGZvby48bWV0aG9kIHRvIG1pZ3JhdGU+YCB3aXRoIG1vcmUgdGhhbiBvbmUgcGFyYW1ldGVyLlxuICAgICAgaWYgKHRzLmlzQ2FsbEV4cHJlc3Npb24obm9kZSkgJiYgbm9kZS5hcmd1bWVudHMubGVuZ3RoID4gMSAmJlxuICAgICAgICAgIHRzLmlzUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uKG5vZGUuZXhwcmVzc2lvbikgJiYgdHMuaXNJZGVudGlmaWVyKG5vZGUuZXhwcmVzc2lvbi5uYW1lKSAmJlxuICAgICAgICAgIG1ldGhvZENvbmZpZy5oYXMobm9kZS5leHByZXNzaW9uLm5hbWUudGV4dCkpIHtcbiAgICAgICAgLy8gQ2hlY2sgd2hldGhlciB0aGUgdHlwZSBvZiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZVxuICAgICAgICAvLyBmdW5jdGlvbiBpcyBjYWxsZWQgcmVmZXJzIHRvIHRoZSBSb3V0ZXIgaW1wb3J0LlxuICAgICAgICBpZiAoaXNSZWZlcmVuY2VUb0ltcG9ydCh0eXBlQ2hlY2tlciwgbm9kZS5leHByZXNzaW9uLmV4cHJlc3Npb24sIHJvdXRlckltcG9ydCkpIHtcbiAgICAgICAgICBjb25zdCBtZXRob2ROYW1lID0gbm9kZS5leHByZXNzaW9uLm5hbWUudGV4dDtcbiAgICAgICAgICBjb25zdCBwYXJhbWV0ZXJEZWNsYXJhdGlvbiA9XG4gICAgICAgICAgICAgIHR5cGVDaGVja2VyLmdldFR5cGVBdExvY2F0aW9uKG5vZGUuYXJndW1lbnRzWzFdKS5nZXRTeW1ib2woKT8udmFsdWVEZWNsYXJhdGlvbjtcblxuICAgICAgICAgIC8vIEZpbmQgdGhlIHNvdXJjZSBvZiB0aGUgb2JqZWN0IGxpdGVyYWwuXG4gICAgICAgICAgaWYgKHBhcmFtZXRlckRlY2xhcmF0aW9uICYmIHRzLmlzT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb24ocGFyYW1ldGVyRGVjbGFyYXRpb24pKSB7XG4gICAgICAgICAgICBpZiAoIXNlZW5MaXRlcmFscy5oYXMocGFyYW1ldGVyRGVjbGFyYXRpb24pKSB7XG4gICAgICAgICAgICAgIHJlc3VsdHMuZ2V0KG1ldGhvZE5hbWUpIS5hZGQocGFyYW1ldGVyRGVjbGFyYXRpb24pO1xuICAgICAgICAgICAgICBzZWVuTGl0ZXJhbHMuc2V0KHBhcmFtZXRlckRlY2xhcmF0aW9uLCBtZXRob2ROYW1lKTtcbiAgICAgICAgICAgICAgLy8gSWYgdGhlIHNhbWUgbGl0ZXJhbCBoYXMgYmVlbiBwYXNzZWQgaW50byBtdWx0aXBsZSBkaWZmZXJlbnQgbWV0aG9kcywgd2UgY2FuJ3RcbiAgICAgICAgICAgICAgLy8gbWlncmF0ZSBpdCwgYmVjYXVzZSB0aGUgc3VwcG9ydGVkIHByb3BlcnRpZXMgYXJlIGRpZmZlcmVudC4gV2hlbiB3ZSBkZXRlY3Qgc3VjaFxuICAgICAgICAgICAgICAvLyBhIGNhc2UsIHdlIGRyb3AgaXQgZnJvbSB0aGUgcmVzdWx0cyBzbyB0aGF0IGl0IGdldHMgaWdub3JlZC4gSWYgaXQncyB1c2VkIG11bHRpcGxlXG4gICAgICAgICAgICAgIC8vIHRpbWVzIGZvciB0aGUgc2FtZSBtZXRob2QsIGl0IGNhbiBzdGlsbCBiZSBtaWdyYXRlZC5cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc2VlbkxpdGVyYWxzLmdldChwYXJhbWV0ZXJEZWNsYXJhdGlvbikgIT09IG1ldGhvZE5hbWUpIHtcbiAgICAgICAgICAgICAgcmVzdWx0cy5mb3JFYWNoKGxpdGVyYWxzID0+IGxpdGVyYWxzLmRlbGV0ZShwYXJhbWV0ZXJEZWNsYXJhdGlvbikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZS5mb3JFYWNoQ2hpbGQodmlzaXROb2RlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHRzO1xufVxuXG4vKiogQWRkcyBhIGxlYWRpbmcgY29tbWVudCB0byBhIG5vZGUsIGlmIHRoZSBub2RlIGRvZXNuJ3QgaGF2ZSBzdWNoIGEgY29tbWVudCBhbHJlYWR5LiAqL1xuZnVuY3Rpb24gYWRkVW5pcXVlTGVhZGluZ0NvbW1lbnQ8VCBleHRlbmRzIHRzLk5vZGU+KG5vZGU6IFQsIGNvbW1lbnQ6IHN0cmluZyk6IFQge1xuICBjb25zdCBleGlzdGluZ0NvbW1lbnRzID0gdHMuZ2V0U3ludGhldGljTGVhZGluZ0NvbW1lbnRzKG5vZGUpO1xuXG4gIC8vIFRoaXMgbG9naWMgaXMgcHJpbWFyaWx5IHRvIGVuc3VyZSB0aGF0IHdlIGRvbid0IGFkZCB0aGUgc2FtZSBjb21tZW50IG11bHRpcGxlXG4gIC8vIHRpbWVzIHdoZW4gdHNsaW50IHJ1bnMgb3ZlciB0aGUgc2FtZSBmaWxlIGFnYWluIHdpdGggb3V0ZGF0ZWQgaW5mb3JtYXRpb24uXG4gIGlmICghZXhpc3RpbmdDb21tZW50cyB8fCBleGlzdGluZ0NvbW1lbnRzLmV2ZXJ5KGMgPT4gYy50ZXh0ICE9PSBjb21tZW50KSkge1xuICAgIHJldHVybiB0cy5hZGRTeW50aGV0aWNMZWFkaW5nQ29tbWVudChub2RlLCB0cy5TeW50YXhLaW5kLk11bHRpTGluZUNvbW1lbnRUcml2aWEsIGNvbW1lbnQpO1xuICB9XG5cbiAgcmV0dXJuIG5vZGU7XG59XG4iXX0=
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/// <amd-module name="@angular/core/schematics/migrations/relative-link-resolution/collector" />
|
|
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 ts from 'typescript';
|
|
10
|
-
/**
|
|
11
|
-
* Visitor that walks through specified TypeScript nodes and collects all
|
|
12
|
-
* found ExtraOptions#RelativeLinkResolution assignments.
|
|
13
|
-
*/
|
|
14
|
-
export declare class RelativeLinkResolutionCollector {
|
|
15
|
-
private readonly typeChecker;
|
|
16
|
-
readonly forRootCalls: ts.CallExpression[];
|
|
17
|
-
readonly extraOptionsLiterals: ts.ObjectLiteralExpression[];
|
|
18
|
-
constructor(typeChecker: ts.TypeChecker);
|
|
19
|
-
visitNode(node: ts.Node): void;
|
|
20
|
-
private getLiteralNeedingMigrationFromIdentifier;
|
|
21
|
-
private getLiteralNeedingMigration;
|
|
22
|
-
}
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
2
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
3
|
-
};
|
|
4
|
-
(function (factory) {
|
|
5
|
-
if (typeof module === "object" && typeof module.exports === "object") {
|
|
6
|
-
var v = factory(require, exports);
|
|
7
|
-
if (v !== undefined) module.exports = v;
|
|
8
|
-
}
|
|
9
|
-
else if (typeof define === "function" && define.amd) {
|
|
10
|
-
define("@angular/core/schematics/migrations/relative-link-resolution/collector", ["require", "exports", "typescript", "@angular/core/schematics/migrations/relative-link-resolution/util"], factory);
|
|
11
|
-
}
|
|
12
|
-
})(function (require, exports) {
|
|
13
|
-
"use strict";
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.RelativeLinkResolutionCollector = void 0;
|
|
16
|
-
/**
|
|
17
|
-
* @license
|
|
18
|
-
* Copyright Google LLC All Rights Reserved.
|
|
19
|
-
*
|
|
20
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
21
|
-
* found in the LICENSE file at https://angular.io/license
|
|
22
|
-
*/
|
|
23
|
-
const typescript_1 = __importDefault(require("typescript"));
|
|
24
|
-
const util_1 = require("@angular/core/schematics/migrations/relative-link-resolution/util");
|
|
25
|
-
/**
|
|
26
|
-
* Visitor that walks through specified TypeScript nodes and collects all
|
|
27
|
-
* found ExtraOptions#RelativeLinkResolution assignments.
|
|
28
|
-
*/
|
|
29
|
-
class RelativeLinkResolutionCollector {
|
|
30
|
-
constructor(typeChecker) {
|
|
31
|
-
this.typeChecker = typeChecker;
|
|
32
|
-
this.forRootCalls = [];
|
|
33
|
-
this.extraOptionsLiterals = [];
|
|
34
|
-
}
|
|
35
|
-
visitNode(node) {
|
|
36
|
-
let forRootCall = null;
|
|
37
|
-
let literal = null;
|
|
38
|
-
if ((0, util_1.isRouterModuleForRoot)(this.typeChecker, node) && node.arguments.length > 0) {
|
|
39
|
-
if (node.arguments.length === 1) {
|
|
40
|
-
forRootCall = node;
|
|
41
|
-
}
|
|
42
|
-
else if (typescript_1.default.isObjectLiteralExpression(node.arguments[1])) {
|
|
43
|
-
literal = node.arguments[1];
|
|
44
|
-
}
|
|
45
|
-
else if (typescript_1.default.isIdentifier(node.arguments[1])) {
|
|
46
|
-
literal = this.getLiteralNeedingMigrationFromIdentifier(node.arguments[1]);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
else if (typescript_1.default.isVariableDeclaration(node)) {
|
|
50
|
-
literal = this.getLiteralNeedingMigration(node);
|
|
51
|
-
}
|
|
52
|
-
if (literal !== null) {
|
|
53
|
-
this.extraOptionsLiterals.push(literal);
|
|
54
|
-
}
|
|
55
|
-
else if (forRootCall !== null) {
|
|
56
|
-
this.forRootCalls.push(forRootCall);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
// no match found, continue iteration
|
|
60
|
-
typescript_1.default.forEachChild(node, n => this.visitNode(n));
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
getLiteralNeedingMigrationFromIdentifier(id) {
|
|
64
|
-
const symbolForIdentifier = this.typeChecker.getSymbolAtLocation(id);
|
|
65
|
-
if (symbolForIdentifier === undefined) {
|
|
66
|
-
return null;
|
|
67
|
-
}
|
|
68
|
-
if (symbolForIdentifier.declarations === undefined ||
|
|
69
|
-
symbolForIdentifier.declarations.length === 0) {
|
|
70
|
-
return null;
|
|
71
|
-
}
|
|
72
|
-
const declarationNode = symbolForIdentifier.declarations[0];
|
|
73
|
-
if (!typescript_1.default.isVariableDeclaration(declarationNode) || declarationNode.initializer === undefined ||
|
|
74
|
-
!typescript_1.default.isObjectLiteralExpression(declarationNode.initializer)) {
|
|
75
|
-
return null;
|
|
76
|
-
}
|
|
77
|
-
return declarationNode.initializer;
|
|
78
|
-
}
|
|
79
|
-
getLiteralNeedingMigration(node) {
|
|
80
|
-
if (node.initializer === undefined) {
|
|
81
|
-
return null;
|
|
82
|
-
}
|
|
83
|
-
// declaration could be `x: ExtraOptions = {}` or `x = {} as ExtraOptions`
|
|
84
|
-
if (typescript_1.default.isAsExpression(node.initializer) &&
|
|
85
|
-
typescript_1.default.isObjectLiteralExpression(node.initializer.expression) &&
|
|
86
|
-
(0, util_1.isExtraOptions)(this.typeChecker, node.initializer.type)) {
|
|
87
|
-
return node.initializer.expression;
|
|
88
|
-
}
|
|
89
|
-
else if (node.type !== undefined && typescript_1.default.isObjectLiteralExpression(node.initializer) &&
|
|
90
|
-
(0, util_1.isExtraOptions)(this.typeChecker, node.type)) {
|
|
91
|
-
return node.initializer;
|
|
92
|
-
}
|
|
93
|
-
return null;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
exports.RelativeLinkResolutionCollector = RelativeLinkResolutionCollector;
|
|
97
|
-
});
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zY2hlbWF0aWNzL21pZ3JhdGlvbnMvcmVsYXRpdmUtbGluay1yZXNvbHV0aW9uL2NvbGxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7SUFBQTs7Ozs7O09BTUc7SUFDSCw0REFBNEI7SUFFNUIsNEZBQTZEO0lBRzdEOzs7T0FHRztJQUNILE1BQWEsK0JBQStCO1FBSTFDLFlBQTZCLFdBQTJCO1lBQTNCLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtZQUgvQyxpQkFBWSxHQUF3QixFQUFFLENBQUM7WUFDdkMseUJBQW9CLEdBQWlDLEVBQUUsQ0FBQztRQUVOLENBQUM7UUFFNUQsU0FBUyxDQUFDLElBQWE7WUFDckIsSUFBSSxXQUFXLEdBQTJCLElBQUksQ0FBQztZQUMvQyxJQUFJLE9BQU8sR0FBb0MsSUFBSSxDQUFDO1lBQ3BELElBQUksSUFBQSw0QkFBcUIsRUFBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDOUUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7b0JBQy9CLFdBQVcsR0FBRyxJQUFJLENBQUM7aUJBQ3BCO3FCQUFNLElBQUksb0JBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQzFELE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBK0IsQ0FBQztpQkFDM0Q7cUJBQU0sSUFBSSxvQkFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQzdDLE9BQU8sR0FBRyxJQUFJLENBQUMsd0NBQXdDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQWtCLENBQUMsQ0FBQztpQkFDN0Y7YUFDRjtpQkFBTSxJQUFJLG9CQUFFLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3pDLE9BQU8sR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDakQ7WUFFRCxJQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDekM7aUJBQU0sSUFBSSxXQUFXLEtBQUssSUFBSSxFQUFFO2dCQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNyQztpQkFBTTtnQkFDTCxxQ0FBcUM7Z0JBQ3JDLG9CQUFFLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMvQztRQUNILENBQUM7UUFFTyx3Q0FBd0MsQ0FBQyxFQUFpQjtZQUVoRSxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDckUsSUFBSSxtQkFBbUIsS0FBSyxTQUFTLEVBQUU7Z0JBQ3JDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFFRCxJQUFJLG1CQUFtQixDQUFDLFlBQVksS0FBSyxTQUFTO2dCQUM5QyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDakQsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUVELE1BQU0sZUFBZSxHQUFHLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsb0JBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxlQUFlLENBQUMsV0FBVyxLQUFLLFNBQVM7Z0JBQ3ZGLENBQUMsb0JBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQzlELE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFFRCxPQUFPLGVBQWUsQ0FBQyxXQUFXLENBQUM7UUFDckMsQ0FBQztRQUVPLDBCQUEwQixDQUFDLElBQTRCO1lBRTdELElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUU7Z0JBQ2xDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFFRCwwRUFBMEU7WUFDMUUsSUFBSSxvQkFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO2dCQUNuQyxvQkFBRSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO2dCQUN6RCxJQUFBLHFCQUFjLEVBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUMzRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO2FBQ3BDO2lCQUFNLElBQ0gsSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksb0JBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO2dCQUN6RSxJQUFBLHFCQUFjLEVBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQy9DLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQzthQUN6QjtZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztLQUNGO0lBdkVELDBFQXVFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge2lzRXh0cmFPcHRpb25zLCBpc1JvdXRlck1vZHVsZUZvclJvb3R9IGZyb20gJy4vdXRpbCc7XG5cblxuLyoqXG4gKiBWaXNpdG9yIHRoYXQgd2Fsa3MgdGhyb3VnaCBzcGVjaWZpZWQgVHlwZVNjcmlwdCBub2RlcyBhbmQgY29sbGVjdHMgYWxsXG4gKiBmb3VuZCBFeHRyYU9wdGlvbnMjUmVsYXRpdmVMaW5rUmVzb2x1dGlvbiBhc3NpZ25tZW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlbGF0aXZlTGlua1Jlc29sdXRpb25Db2xsZWN0b3Ige1xuICByZWFkb25seSBmb3JSb290Q2FsbHM6IHRzLkNhbGxFeHByZXNzaW9uW10gPSBbXTtcbiAgcmVhZG9ubHkgZXh0cmFPcHRpb25zTGl0ZXJhbHM6IHRzLk9iamVjdExpdGVyYWxFeHByZXNzaW9uW10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHR5cGVDaGVja2VyOiB0cy5UeXBlQ2hlY2tlcikge31cblxuICB2aXNpdE5vZGUobm9kZTogdHMuTm9kZSkge1xuICAgIGxldCBmb3JSb290Q2FsbDogdHMuQ2FsbEV4cHJlc3Npb258bnVsbCA9IG51bGw7XG4gICAgbGV0IGxpdGVyYWw6IHRzLk9iamVjdExpdGVyYWxFeHByZXNzaW9ufG51bGwgPSBudWxsO1xuICAgIGlmIChpc1JvdXRlck1vZHVsZUZvclJvb3QodGhpcy50eXBlQ2hlY2tlciwgbm9kZSkgJiYgbm9kZS5hcmd1bWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKG5vZGUuYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICBmb3JSb290Q2FsbCA9IG5vZGU7XG4gICAgICB9IGVsc2UgaWYgKHRzLmlzT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb24obm9kZS5hcmd1bWVudHNbMV0pKSB7XG4gICAgICAgIGxpdGVyYWwgPSBub2RlLmFyZ3VtZW50c1sxXSBhcyB0cy5PYmplY3RMaXRlcmFsRXhwcmVzc2lvbjtcbiAgICAgIH0gZWxzZSBpZiAodHMuaXNJZGVudGlmaWVyKG5vZGUuYXJndW1lbnRzWzFdKSkge1xuICAgICAgICBsaXRlcmFsID0gdGhpcy5nZXRMaXRlcmFsTmVlZGluZ01pZ3JhdGlvbkZyb21JZGVudGlmaWVyKG5vZGUuYXJndW1lbnRzWzFdIGFzIHRzLklkZW50aWZpZXIpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHMuaXNWYXJpYWJsZURlY2xhcmF0aW9uKG5vZGUpKSB7XG4gICAgICBsaXRlcmFsID0gdGhpcy5nZXRMaXRlcmFsTmVlZGluZ01pZ3JhdGlvbihub2RlKTtcbiAgICB9XG5cbiAgICBpZiAobGl0ZXJhbCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5leHRyYU9wdGlvbnNMaXRlcmFscy5wdXNoKGxpdGVyYWwpO1xuICAgIH0gZWxzZSBpZiAoZm9yUm9vdENhbGwgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuZm9yUm9vdENhbGxzLnB1c2goZm9yUm9vdENhbGwpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBubyBtYXRjaCBmb3VuZCwgY29udGludWUgaXRlcmF0aW9uXG4gICAgICB0cy5mb3JFYWNoQ2hpbGQobm9kZSwgbiA9PiB0aGlzLnZpc2l0Tm9kZShuKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRMaXRlcmFsTmVlZGluZ01pZ3JhdGlvbkZyb21JZGVudGlmaWVyKGlkOiB0cy5JZGVudGlmaWVyKTogdHMuT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb25cbiAgICAgIHxudWxsIHtcbiAgICBjb25zdCBzeW1ib2xGb3JJZGVudGlmaWVyID0gdGhpcy50eXBlQ2hlY2tlci5nZXRTeW1ib2xBdExvY2F0aW9uKGlkKTtcbiAgICBpZiAoc3ltYm9sRm9ySWRlbnRpZmllciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoc3ltYm9sRm9ySWRlbnRpZmllci5kZWNsYXJhdGlvbnMgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICBzeW1ib2xGb3JJZGVudGlmaWVyLmRlY2xhcmF0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGRlY2xhcmF0aW9uTm9kZSA9IHN5bWJvbEZvcklkZW50aWZpZXIuZGVjbGFyYXRpb25zWzBdO1xuICAgIGlmICghdHMuaXNWYXJpYWJsZURlY2xhcmF0aW9uKGRlY2xhcmF0aW9uTm9kZSkgfHwgZGVjbGFyYXRpb25Ob2RlLmluaXRpYWxpemVyID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgIXRzLmlzT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb24oZGVjbGFyYXRpb25Ob2RlLmluaXRpYWxpemVyKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlY2xhcmF0aW9uTm9kZS5pbml0aWFsaXplcjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGl0ZXJhbE5lZWRpbmdNaWdyYXRpb24obm9kZTogdHMuVmFyaWFibGVEZWNsYXJhdGlvbik6IHRzLk9iamVjdExpdGVyYWxFeHByZXNzaW9uXG4gICAgICB8bnVsbCB7XG4gICAgaWYgKG5vZGUuaW5pdGlhbGl6ZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gZGVjbGFyYXRpb24gY291bGQgYmUgYHg6IEV4dHJhT3B0aW9ucyA9IHt9YCBvciBgeCA9IHt9IGFzIEV4dHJhT3B0aW9uc2BcbiAgICBpZiAodHMuaXNBc0V4cHJlc3Npb24obm9kZS5pbml0aWFsaXplcikgJiZcbiAgICAgICAgdHMuaXNPYmplY3RMaXRlcmFsRXhwcmVzc2lvbihub2RlLmluaXRpYWxpemVyLmV4cHJlc3Npb24pICYmXG4gICAgICAgIGlzRXh0cmFPcHRpb25zKHRoaXMudHlwZUNoZWNrZXIsIG5vZGUuaW5pdGlhbGl6ZXIudHlwZSkpIHtcbiAgICAgIHJldHVybiBub2RlLmluaXRpYWxpemVyLmV4cHJlc3Npb247XG4gICAgfSBlbHNlIGlmIChcbiAgICAgICAgbm9kZS50eXBlICE9PSB1bmRlZmluZWQgJiYgdHMuaXNPYmplY3RMaXRlcmFsRXhwcmVzc2lvbihub2RlLmluaXRpYWxpemVyKSAmJlxuICAgICAgICBpc0V4dHJhT3B0aW9ucyh0aGlzLnR5cGVDaGVja2VyLCBub2RlLnR5cGUpKSB7XG4gICAgICByZXR1cm4gbm9kZS5pbml0aWFsaXplcjtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl19
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
/// <amd-module name="@angular/core/schematics/migrations/relative-link-resolution" />
|
|
9
|
-
import { Rule } from '@angular-devkit/schematics';
|
|
10
|
-
/** Entry point for the v11 "relativeLinkResolution RouterModule options" schematic. */
|
|
11
|
-
export default function (): Rule;
|