@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,92 +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/missing-injectable/definition_collector", ["require", "exports", "typescript", "@angular/core/schematics/utils/ng_decorators", "@angular/core/schematics/utils/typescript/property_name"], factory);
|
|
18
|
-
}
|
|
19
|
-
})(function (require, exports) {
|
|
20
|
-
"use strict";
|
|
21
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.NgDefinitionCollector = void 0;
|
|
23
|
-
const typescript_1 = __importDefault(require("typescript"));
|
|
24
|
-
const ng_decorators_1 = require("@angular/core/schematics/utils/ng_decorators");
|
|
25
|
-
const property_name_1 = require("@angular/core/schematics/utils/typescript/property_name");
|
|
26
|
-
/**
|
|
27
|
-
* Visitor that walks through specified TypeScript nodes and collects all
|
|
28
|
-
* found NgModule, Directive or Component definitions.
|
|
29
|
-
*/
|
|
30
|
-
class NgDefinitionCollector {
|
|
31
|
-
constructor(typeChecker) {
|
|
32
|
-
this.typeChecker = typeChecker;
|
|
33
|
-
this.resolvedModules = [];
|
|
34
|
-
this.resolvedDirectives = [];
|
|
35
|
-
}
|
|
36
|
-
visitNode(node) {
|
|
37
|
-
if (typescript_1.default.isClassDeclaration(node)) {
|
|
38
|
-
this.visitClassDeclaration(node);
|
|
39
|
-
}
|
|
40
|
-
typescript_1.default.forEachChild(node, n => this.visitNode(n));
|
|
41
|
-
}
|
|
42
|
-
visitClassDeclaration(node) {
|
|
43
|
-
if (!node.decorators || !node.decorators.length) {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
const ngDecorators = (0, ng_decorators_1.getAngularDecorators)(this.typeChecker, node.decorators);
|
|
47
|
-
const directiveDecorator = ngDecorators.find(({ name }) => name === 'Component' || name == 'Directive');
|
|
48
|
-
const ngModuleDecorator = ngDecorators.find(({ name }) => name === 'NgModule');
|
|
49
|
-
if (ngModuleDecorator) {
|
|
50
|
-
this._visitNgModuleClass(node, ngModuleDecorator);
|
|
51
|
-
}
|
|
52
|
-
else if (directiveDecorator) {
|
|
53
|
-
this._visitDirectiveClass(node, directiveDecorator);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
_visitDirectiveClass(node, decorator) {
|
|
57
|
-
const decoratorCall = decorator.node.expression;
|
|
58
|
-
const metadata = decoratorCall.arguments[0];
|
|
59
|
-
if (!metadata || !typescript_1.default.isObjectLiteralExpression(metadata)) {
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
const providersNode = metadata.properties.filter(typescript_1.default.isPropertyAssignment)
|
|
63
|
-
.find(p => (0, property_name_1.getPropertyNameText)(p.name) === 'providers');
|
|
64
|
-
const viewProvidersNode = metadata.properties.filter(typescript_1.default.isPropertyAssignment)
|
|
65
|
-
.find(p => (0, property_name_1.getPropertyNameText)(p.name) === 'viewProviders');
|
|
66
|
-
this.resolvedDirectives.push({
|
|
67
|
-
name: node.name ? node.name.text : 'default',
|
|
68
|
-
node,
|
|
69
|
-
decorator,
|
|
70
|
-
providersExpr: providersNode !== undefined ? providersNode.initializer : null,
|
|
71
|
-
viewProvidersExpr: viewProvidersNode !== undefined ? viewProvidersNode.initializer : null,
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
_visitNgModuleClass(node, decorator) {
|
|
75
|
-
const decoratorCall = decorator.node.expression;
|
|
76
|
-
const metadata = decoratorCall.arguments[0];
|
|
77
|
-
if (!metadata || !typescript_1.default.isObjectLiteralExpression(metadata)) {
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
const providersNode = metadata.properties.filter(typescript_1.default.isPropertyAssignment)
|
|
81
|
-
.find(p => (0, property_name_1.getPropertyNameText)(p.name) === 'providers');
|
|
82
|
-
this.resolvedModules.push({
|
|
83
|
-
name: node.name ? node.name.text : 'default',
|
|
84
|
-
node,
|
|
85
|
-
decorator,
|
|
86
|
-
providersExpr: providersNode !== undefined ? providersNode.initializer : null,
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
exports.NgDefinitionCollector = NgDefinitionCollector;
|
|
91
|
-
});
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5pdGlvbl9jb2xsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NjaGVtYXRpY3MvbWlncmF0aW9ucy9taXNzaW5nLWluamVjdGFibGUvZGVmaW5pdGlvbl9jb2xsZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7Ozs7O0lBRUgsNERBQTRCO0lBRTVCLGdGQUE0RTtJQUM1RSwyRkFBeUU7SUFpQnpFOzs7T0FHRztJQUNILE1BQWEscUJBQXFCO1FBSWhDLFlBQW1CLFdBQTJCO1lBQTNCLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtZQUg5QyxvQkFBZSxHQUF1QixFQUFFLENBQUM7WUFDekMsdUJBQWtCLEdBQXdCLEVBQUUsQ0FBQztRQUVJLENBQUM7UUFFbEQsU0FBUyxDQUFDLElBQWE7WUFDckIsSUFBSSxvQkFBRSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUMvQixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDbEM7WUFFRCxvQkFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUVPLHFCQUFxQixDQUFDLElBQXlCO1lBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7Z0JBQy9DLE9BQU87YUFDUjtZQUVELE1BQU0sWUFBWSxHQUFHLElBQUEsb0NBQW9CLEVBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0UsTUFBTSxrQkFBa0IsR0FDcEIsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLEVB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QUNULGFBQWEsRUFBRSxhQUFhLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJO2FBQzlFLENBQUMsQ0FBQztRQUNMLENBQUM7S0FDRjtJQXZFRCxzREF1RUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge2dldEFuZ3VsYXJEZWNvcmF0b3JzLCBOZ0RlY29yYXRvcn0gZnJvbSAnLi4vLi4vdXRpbHMvbmdfZGVjb3JhdG9ycyc7XG5pbXBvcnQge2dldFByb3BlcnR5TmFtZVRleHR9IGZyb20gJy4uLy4uL3V0aWxzL3R5cGVzY3JpcHQvcHJvcGVydHlfbmFtZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZWROZ01vZHVsZSB7XG4gIG5hbWU6IHN0cmluZztcbiAgbm9kZTogdHMuQ2xhc3NEZWNsYXJhdGlvbjtcbiAgZGVjb3JhdG9yOiBOZ0RlY29yYXRvcjtcbiAgcHJvdmlkZXJzRXhwcjogdHMuRXhwcmVzc2lvbnxudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVkRGlyZWN0aXZlIHtcbiAgbmFtZTogc3RyaW5nO1xuICBub2RlOiB0cy5DbGFzc0RlY2xhcmF0aW9uO1xuICBkZWNvcmF0b3I6IE5nRGVjb3JhdG9yO1xuICBwcm92aWRlcnNFeHByOiB0cy5FeHByZXNzaW9ufG51bGw7XG4gIHZpZXdQcm92aWRlcnNFeHByOiB0cy5FeHByZXNzaW9ufG51bGw7XG59XG5cbi8qKlxuICogVmlzaXRvciB0aGF0IHdhbGtzIHRocm91Z2ggc3BlY2lmaWVkIFR5cGVTY3JpcHQgbm9kZXMgYW5kIGNvbGxlY3RzIGFsbFxuICogZm91bmQgTmdNb2R1bGUsIERpcmVjdGl2ZSBvciBDb21wb25lbnQgZGVmaW5pdGlvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBOZ0RlZmluaXRpb25Db2xsZWN0b3Ige1xuICByZXNvbHZlZE1vZHVsZXM6IFJlc29sdmVkTmdNb2R1bGVbXSA9IFtdO1xuICByZXNvbHZlZERpcmVjdGl2ZXM6IFJlc29sdmVkRGlyZWN0aXZlW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyKSB7fVxuXG4gIHZpc2l0Tm9kZShub2RlOiB0cy5Ob2RlKSB7XG4gICAgaWYgKHRzLmlzQ2xhc3NEZWNsYXJhdGlvbihub2RlKSkge1xuICAgICAgdGhpcy52aXNpdENsYXNzRGVjbGFyYXRpb24obm9kZSk7XG4gICAgfVxuXG4gICAgdHMuZm9yRWFjaENoaWxkKG5vZGUsIG4gPT4gdGhpcy52aXNpdE5vZGUobikpO1xuICB9XG5cbiAgcHJpdmF0ZSB2aXNpdENsYXNzRGVjbGFyYXRpb24obm9kZTogdHMuQ2xhc3NEZWNsYXJhdGlvbikge1xuICAgIGlmICghbm9kZS5kZWNvcmF0b3JzIHx8ICFub2RlLmRlY29yYXRvcnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmdEZWNvcmF0b3JzID0gZ2V0QW5ndWxhckRlY29yYXRvcnModGhpcy50eXBlQ2hlY2tlciwgbm9kZS5kZWNvcmF0b3JzKTtcbiAgICBjb25zdCBkaXJlY3RpdmVEZWNvcmF0b3IgPVxuICAgICAgICBuZ0RlY29yYXRvcnMuZmluZCgoe25hbWV9KSA9PiBuYW1lID09PSAnQ29tcG9uZW50JyB8fCBuYW1lID09ICdEaXJlY3RpdmUnKTtcbiAgICBjb25zdCBuZ01vZHVsZURlY29yYXRvciA9IG5nRGVjb3JhdG9ycy5maW5kKCh7bmFtZX0pID0+IG5hbWUgPT09ICdOZ01vZHVsZScpO1xuXG4gICAgaWYgKG5nTW9kdWxlRGVjb3JhdG9yKSB7XG4gICAgICB0aGlzLl92aXNpdE5nTW9kdWxlQ2xhc3Mobm9kZSwgbmdNb2R1bGVEZWNvcmF0b3IpO1xuICAgIH0gZWxzZSBpZiAoZGlyZWN0aXZlRGVjb3JhdG9yKSB7XG4gICAgICB0aGlzLl92aXNpdERpcmVjdGl2ZUNsYXNzKG5vZGUsIGRpcmVjdGl2ZURlY29yYXRvcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdmlzaXREaXJlY3RpdmVDbGFzcyhub2RlOiB0cy5DbGFzc0RlY2xhcmF0aW9uLCBkZWNvcmF0b3I6IE5nRGVjb3JhdG9yKSB7XG4gICAgY29uc3QgZGVjb3JhdG9yQ2FsbCA9IGRlY29yYXRvci5ub2RlLmV4cHJlc3Npb247XG4gICAgY29uc3QgbWV0YWRhdGEgPSBkZWNvcmF0b3JDYWxsLmFyZ3VtZW50c1swXTtcblxuICAgIGlmICghbWV0YWRhdGEgfHwgIXRzLmlzT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb24obWV0YWRhdGEpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcHJvdmlkZXJzTm9kZSA9IG1ldGFkYXRhLnByb3BlcnRpZXMuZmlsdGVyKHRzLmlzUHJvcGVydHlBc3NpZ25tZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQocCA9PiBnZXRQcm9wZXJ0eU5hbWVUZXh0KHAubmFtZSkgPT09ICdwcm92aWRlcnMnKTtcblxuICAgIGNvbnN0IHZpZXdQcm92aWRlcnNOb2RlID0gbWV0YWRhdGEucHJvcGVydGllcy5maWx0ZXIodHMuaXNQcm9wZXJ0eUFzc2lnbm1lbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQocCA9PiBnZXRQcm9wZXJ0eU5hbWVUZXh0KHAubmFtZSkgPT09ICd2aWV3UHJvdmlkZXJzJyk7XG5cbiAgICB0aGlzLnJlc29sdmVkRGlyZWN0aXZlcy5wdXNoKHtcbiAgICAgIG5hbWU6IG5vZGUubmFtZSA/IG5vZGUubmFtZS50ZXh0IDogJ2RlZmF1bHQnLFxuICAgICAgbm9kZSxcbiAgICAgIGRlY29yYXRvcixcbiAgICAgIHByb3ZpZGVyc0V4cHI6IHByb3ZpZGVyc05vZGUgIT09IHVuZGVmaW5lZCA/IHByb3ZpZGVyc05vZGUuaW5pdGlhbGl6ZXIgOiBudWxsLFxuICAgICAgdmlld1Byb3ZpZGVyc0V4cHI6IHZpZXdQcm92aWRlcnNOb2RlICE9PSB1bmRlZmluZWQgPyB2aWV3UHJvdmlkZXJzTm9kZS5pbml0aWFsaXplciA6IG51bGwsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF92aXNpdE5nTW9kdWxlQ2xhc3Mobm9kZTogdHMuQ2xhc3NEZWNsYXJhdGlvbiwgZGVjb3JhdG9yOiBOZ0RlY29yYXRvcikge1xuICAgIGNvbnN0IGRlY29yYXRvckNhbGwgPSBkZWNvcmF0b3Iubm9kZS5leHByZXNzaW9uO1xuICAgIGNvbnN0IG1ldGFkYXRhID0gZGVjb3JhdG9yQ2FsbC5hcmd1bWVudHNbMF07XG5cbiAgICBpZiAoIW1ldGFkYXRhIHx8ICF0cy5pc09iamVjdExpdGVyYWxFeHByZXNzaW9uKG1ldGFkYXRhKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHByb3ZpZGVyc05vZGUgPSBtZXRhZGF0YS5wcm9wZXJ0aWVzLmZpbHRlcih0cy5pc1Byb3BlcnR5QXNzaWdubWVudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKHAgPT4gZ2V0UHJvcGVydHlOYW1lVGV4dChwLm5hbWUpID09PSAncHJvdmlkZXJzJyk7XG4gICAgdGhpcy5yZXNvbHZlZE1vZHVsZXMucHVzaCh7XG4gICAgICBuYW1lOiBub2RlLm5hbWUgPyBub2RlLm5hbWUudGV4dCA6ICdkZWZhdWx0JyxcbiAgICAgIG5vZGUsXG4gICAgICBkZWNvcmF0b3IsXG4gICAgICBwcm92aWRlcnNFeHByOiBwcm92aWRlcnNOb2RlICE9PSB1bmRlZmluZWQgPyBwcm92aWRlcnNOb2RlLmluaXRpYWxpemVyIDogbnVsbCxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -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/missing-injectable" />
|
|
9
|
-
import { Rule } from '@angular-devkit/schematics';
|
|
10
|
-
/** Entry point for the V9 "missing @Injectable" schematic. */
|
|
11
|
-
export default function (): Rule;
|
|
@@ -1,136 +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/missing-injectable", ["require", "exports", "@angular-devkit/schematics", "path", "typescript", "@angular/core/schematics/utils/load_esm", "@angular/core/schematics/utils/project_tsconfig_paths", "@angular/core/schematics/utils/typescript/compiler_host", "@angular/core/schematics/migrations/missing-injectable/definition_collector", "@angular/core/schematics/migrations/missing-injectable/transform"], 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 load_esm_1 = require("@angular/core/schematics/utils/load_esm");
|
|
35
|
-
const project_tsconfig_paths_1 = require("@angular/core/schematics/utils/project_tsconfig_paths");
|
|
36
|
-
const compiler_host_1 = require("@angular/core/schematics/utils/typescript/compiler_host");
|
|
37
|
-
const definition_collector_1 = require("@angular/core/schematics/migrations/missing-injectable/definition_collector");
|
|
38
|
-
const transform_1 = require("@angular/core/schematics/migrations/missing-injectable/transform");
|
|
39
|
-
/** Entry point for the V9 "missing @Injectable" schematic. */
|
|
40
|
-
function default_1() {
|
|
41
|
-
return (tree, ctx) => __awaiter(this, void 0, void 0, function* () {
|
|
42
|
-
const { buildPaths, testPaths } = yield (0, project_tsconfig_paths_1.getProjectTsConfigPaths)(tree);
|
|
43
|
-
const basePath = process.cwd();
|
|
44
|
-
const failures = [];
|
|
45
|
-
if (!buildPaths.length && !testPaths.length) {
|
|
46
|
-
throw new schematics_1.SchematicsException('Could not find any tsconfig file. Cannot add the "@Injectable" decorator to providers ' +
|
|
47
|
-
'which don\'t have that decorator set.');
|
|
48
|
-
}
|
|
49
|
-
let compilerCliMigrationsModule;
|
|
50
|
-
try {
|
|
51
|
-
// Load ESM `@angular/compiler/private/migrations` using the TypeScript dynamic import
|
|
52
|
-
// workaround. Once TypeScript provides support for keeping the dynamic import this workaround
|
|
53
|
-
// can be changed to a direct dynamic import.
|
|
54
|
-
compilerCliMigrationsModule = yield (0, load_esm_1.loadCompilerCliMigrationsModule)();
|
|
55
|
-
}
|
|
56
|
-
catch (e) {
|
|
57
|
-
throw new schematics_1.SchematicsException(`Unable to load the '@angular/compiler-cli' package. Details: ${e.message}`);
|
|
58
|
-
}
|
|
59
|
-
for (const tsconfigPath of [...buildPaths, ...testPaths]) {
|
|
60
|
-
failures.push(...runMissingInjectableMigration(tree, tsconfigPath, basePath, compilerCliMigrationsModule));
|
|
61
|
-
}
|
|
62
|
-
if (failures.length) {
|
|
63
|
-
ctx.logger.info('Could not migrate all providers automatically. Please');
|
|
64
|
-
ctx.logger.info('manually migrate the following instances:');
|
|
65
|
-
failures.forEach(message => ctx.logger.warn(`⮑ ${message}`));
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
exports.default = default_1;
|
|
70
|
-
function runMissingInjectableMigration(tree, tsconfigPath, basePath, compilerCliMigrationsModule) {
|
|
71
|
-
const { program } = (0, compiler_host_1.createMigrationProgram)(tree, tsconfigPath, basePath);
|
|
72
|
-
const failures = [];
|
|
73
|
-
const typeChecker = program.getTypeChecker();
|
|
74
|
-
const definitionCollector = new definition_collector_1.NgDefinitionCollector(typeChecker);
|
|
75
|
-
const sourceFiles = program.getSourceFiles().filter(sourceFile => (0, compiler_host_1.canMigrateFile)(basePath, sourceFile, program));
|
|
76
|
-
// Analyze source files by detecting all modules, directives and components.
|
|
77
|
-
sourceFiles.forEach(sourceFile => definitionCollector.visitNode(sourceFile));
|
|
78
|
-
const { resolvedModules, resolvedDirectives } = definitionCollector;
|
|
79
|
-
const transformer = new transform_1.MissingInjectableTransform(typeChecker, getUpdateRecorder, compilerCliMigrationsModule);
|
|
80
|
-
const updateRecorders = new Map();
|
|
81
|
-
[...transformer.migrateModules(resolvedModules),
|
|
82
|
-
...transformer.migrateDirectives(resolvedDirectives),
|
|
83
|
-
].forEach(({ message, node }) => {
|
|
84
|
-
const nodeSourceFile = node.getSourceFile();
|
|
85
|
-
const relativeFilePath = (0, path_1.relative)(basePath, nodeSourceFile.fileName);
|
|
86
|
-
const { line, character } = typescript_1.default.getLineAndCharacterOfPosition(node.getSourceFile(), node.getStart());
|
|
87
|
-
failures.push(`${relativeFilePath}@${line + 1}:${character + 1}: ${message}`);
|
|
88
|
-
});
|
|
89
|
-
// Record the changes collected in the import manager and transformer.
|
|
90
|
-
transformer.recordChanges();
|
|
91
|
-
// Walk through each update recorder and commit the update. We need to commit the
|
|
92
|
-
// updates in batches per source file as there can be only one recorder per source
|
|
93
|
-
// file in order to avoid shift character offsets.
|
|
94
|
-
updateRecorders.forEach(recorder => recorder.commitUpdate());
|
|
95
|
-
return failures;
|
|
96
|
-
/** Gets the update recorder for the specified source file. */
|
|
97
|
-
function getUpdateRecorder(sourceFile) {
|
|
98
|
-
if (updateRecorders.has(sourceFile)) {
|
|
99
|
-
return updateRecorders.get(sourceFile);
|
|
100
|
-
}
|
|
101
|
-
const treeRecorder = tree.beginUpdate((0, path_1.relative)(basePath, sourceFile.fileName));
|
|
102
|
-
const recorder = {
|
|
103
|
-
addClassDecorator(node, text) {
|
|
104
|
-
// New imports should be inserted at the left while decorators should be inserted
|
|
105
|
-
// at the right in order to ensure that imports are inserted before the decorator
|
|
106
|
-
// if the start position of import and decorator is the source file start.
|
|
107
|
-
treeRecorder.insertRight(node.getStart(), `${text}\n`);
|
|
108
|
-
},
|
|
109
|
-
replaceDecorator(decorator, newText) {
|
|
110
|
-
treeRecorder.remove(decorator.getStart(), decorator.getWidth());
|
|
111
|
-
treeRecorder.insertRight(decorator.getStart(), newText);
|
|
112
|
-
},
|
|
113
|
-
addNewImport(start, importText) {
|
|
114
|
-
// New imports should be inserted at the left while decorators should be inserted
|
|
115
|
-
// at the right in order to ensure that imports are inserted before the decorator
|
|
116
|
-
// if the start position of import and decorator is the source file start.
|
|
117
|
-
treeRecorder.insertLeft(start, importText);
|
|
118
|
-
},
|
|
119
|
-
updateExistingImport(namedBindings, newNamedBindings) {
|
|
120
|
-
treeRecorder.remove(namedBindings.getStart(), namedBindings.getWidth());
|
|
121
|
-
treeRecorder.insertRight(namedBindings.getStart(), newNamedBindings);
|
|
122
|
-
},
|
|
123
|
-
updateObjectLiteral(node, newText) {
|
|
124
|
-
treeRecorder.remove(node.getStart(), node.getWidth());
|
|
125
|
-
treeRecorder.insertRight(node.getStart(), newText);
|
|
126
|
-
},
|
|
127
|
-
commitUpdate() {
|
|
128
|
-
tree.commitUpdate(treeRecorder);
|
|
129
|
-
}
|
|
130
|
-
};
|
|
131
|
-
updateRecorders.set(sourceFile, recorder);
|
|
132
|
-
return recorder;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
});
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NjaGVtYXRpY3MvbWlncmF0aW9ucy9taXNzaW5nLWluamVjdGFibGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFSCwyREFBNkY7SUFDN0YsK0JBQThCO0lBQzlCLDREQUE0QjtJQUU1QixzRUFBb0Y7SUFDcEYsa0dBQTJFO0lBQzNFLDJGQUE0RjtJQUM1RixzSEFBNkQ7SUFDN0QsZ0dBQXVEO0lBR3ZELDhEQUE4RDtJQUM5RDtRQUNFLE9BQU8sQ0FBTyxJQUFVLEVBQUUsR0FBcUIsRUFBRSxFQUFFO1lBQ2pELE1BQU0sRUFBQyxVQUFVLEVBQUUsU0FBUyxFQUFDLEdBQUcsTUFBTSxJQUFBLGdEQUF1QixFQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BFLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUMvQixNQUFNLFFBQVEsR0FBYSxFQUFFLENBQUM7WUFFOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO2dCQUMzQyxNQUFNLElBQUksZ0NBQW1CLENBQ3pCLHdGQUF3RjtvQkFDeEYsdUNBQXVDLENBQUMsQ0FBQzthQUM5QztZQUVELElBQUksMkJBQTJCLENBQUM7WUFDaEMsSUFBSTtnQkFDRixzRkFBc0Y7Z0JBQ3RGLDhGQUE4RjtnQkFDOUYsNkNBQTZDO2dCQUM3QywyQkFBMkIsR0FBRyxNQUFNLElBQUEsMENBQStCLEdBQUUsQ0FBQzthQUN2RTtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLE1BQU0sSUFBSSxnQ0FBbUIsQ0FDekIsZ0VBQWdFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2FBQ2xGO1lBRUQsS0FBSyxNQUFNLFlBQVksSUFBSSxD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WSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztnQkFDdkUsQ0FBQztnQkFDRCxtQkFBbUIsQ0FBQyxJQUFnQyxFQUFFLE9BQWU7b0JBQ25FLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO29CQUN0RCxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDckQsQ0FBQztnQkFDRCxZQUFZO29CQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ2xDLENBQUM7YUFDRixDQUFDO1lBQ0YsZUFBZSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDMUMsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtSdWxlLCBTY2hlbWF0aWNDb250ZXh0LCBTY2hlbWF0aWNzRXhjZXB0aW9uLCBUcmVlfSBmcm9tICdAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcyc7XG5pbXBvcnQge3JlbGF0aXZlfSBmcm9tICdwYXRoJztcbmltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHtsb2FkQ29tcGlsZXJDbGlNaWdyYXRpb25zTW9kdWxlLCBsb2FkRXNtTW9kdWxlfSBmcm9tICcuLi8uLi91dGlscy9sb2FkX2VzbSc7XG5pbXBvcnQge2dldFByb2plY3RUc0NvbmZpZ1BhdGhzfSBmcm9tICcuLi8uLi91dGlscy9wcm9qZWN0X3RzY29uZmlnX3BhdGhzJztcbmltcG9ydCB7Y2FuTWlncmF0ZUZpbGUsIGNyZWF0ZU1pZ3JhdGlvblByb2dyYW19IGZyb20gJy4uLy4uL3V0aWxzL3R5cGVzY3JpcHQvY29tcGlsZXJfaG9zdCc7XG5pbXBvcnQge05nRGVmaW5pdGlvbkNvbGxlY3Rvcn0gZnJvbSAnLi9kZWZpbml0aW9uX2NvbGxlY3Rvcic7XG5pbXBvcnQge01pc3NpbmdJbmplY3RhYmxlVHJhbnNmb3JtfSBmcm9tICcuL3RyYW5zZm9ybSc7XG5pbXBvcnQge1VwZGF0ZVJlY29yZGVyfSBmcm9tICcuL3VwZGF0ZV9yZWNvcmRlcic7XG5cbi8qKiBFbnRyeSBwb2ludCBmb3IgdGhlIFY5IFwibWlzc2luZyBASW5qZWN0YWJsZVwiIHNjaGVtYXRpYy4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCk6IFJ1bGUge1xuICByZXR1cm4gYXN5bmMgKHRyZWU6IFRyZWUsIGN0eDogU2NoZW1hdGljQ29udGV4dCkgPT4ge1xuICAgIGNvbnN0IHtidWlsZFBhdGhzLCB0ZXN0UGF0aHN9ID0gYXdhaXQgZ2V0UHJvamVjdFRzQ29uZmlnUGF0aHModHJlZSk7XG4gICAgY29uc3QgYmFzZVBhdGggPSBwcm9jZXNzLmN3ZCgpO1xuICAgIGNvbnN0IGZhaWx1cmVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgaWYgKCFidWlsZFBhdGhzLmxlbmd0aCAmJiAhdGVzdFBhdGhzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IFNjaGVtYXRpY3NFeGNlcHRpb24oXG4gICAgICAgICAgJ0NvdWxkIG5vdCBmaW5kIGFueSB0c2NvbmZpZyBmaWxlLiBDYW5ub3QgYWRkIHRoZSBcIkBJbmplY3RhYmxlXCIgZGVjb3JhdG9yIHRvIHByb3ZpZGVycyAnICtcbiAgICAgICAgICAnd2hpY2ggZG9uXFwndCBoYXZlIHRoYXQgZGVjb3JhdG9yIHNldC4nKTtcbiAgICB9XG5cbiAgICBsZXQgY29tcGlsZXJDbGlNaWdyYXRpb25zTW9kdWxlO1xuICAgIHRyeSB7XG4gICAgICAvLyBMb2FkIEVTTSBgQGFuZ3VsYXIvY29tcGlsZXIvcHJpdmF0ZS9taWdyYXRpb25zYCB1c2luZyB0aGUgVHlwZVNjcmlwdCBkeW5hbWljIGltcG9ydFxuICAgICAgLy8gd29ya2Fyb3VuZC4gT25jZSBUeXBlU2NyaXB0IHByb3ZpZGVzIHN1cHBvcnQgZm9yIGtlZXBpbmcgdGhlIGR5bmFtaWMgaW1wb3J0IHRoaXMgd29ya2Fyb3VuZFxuICAgICAgLy8gY2FuIGJlIGNoYW5nZWQgdG8gYSBkaXJlY3QgZHluYW1pYyBpbXBvcnQuXG4gICAgICBjb21waWxlckNsaU1pZ3JhdGlvbnNNb2R1bGUgPSBhd2FpdCBsb2FkQ29tcGlsZXJDbGlNaWdyYXRpb25zTW9kdWxlKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IFNjaGVtYXRpY3NFeGNlcHRpb24oXG4gICAgICAgICAgYFVuYWJsZSB0byBsb2FkIHRoZSAnQGFuZ3VsYXIvY29tcGlsZXItY2xpJyBwYWNrYWdlLiBEZXRhaWxzOiAke2UubWVzc2FnZX1gKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHRzY29uZmlnUGF0aCBvZiBbLi4uYnVpbGRQYXRocywgLi4udGVzdFBhdGhzXSkge1xuICAgICAgZmFpbHVyZXMucHVzaCguLi5ydW5NaXNzaW5nSW5qZWN0YWJsZU1pZ3JhdGlvbihcbiAgICAgICAgICB0cmVlLCB0c2NvbmZpZ1BhdGgsIGJhc2VQYXRoLCBjb21waWxlckNsaU1pZ3JhdGlvbnNNb2R1bGUpKTtcbiAgICB9XG5cbiAgICBpZiAoZmFpbHVyZXMubGVuZ3RoKSB7XG4gICAgICBjdHgubG9nZ2VyLmluZm8oJ0NvdWxkIG5vdCBtaWdyYXRlIGFsbCBwcm92aWRlcnMgYXV0b21hdGljYWxseS4gUGxlYXNlJyk7XG4gICAgICBjdHgubG9nZ2VyLmluZm8oJ21hbnVhbGx5IG1pZ3JhdGUgdGhlIGZvbGxvd2luZyBpbnN0YW5jZXM6Jyk7XG4gICAgICBmYWlsdXJlcy5mb3JFYWNoKG1lc3NhZ2UgPT4gY3R4LmxvZ2dlci53YXJuKGDirpEgICAke21lc3NhZ2V9YCkpO1xuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gcnVuTWlzc2luZ0luamVjdGFibGVNaWdyYXRpb24oXG4gICAgdHJlZTogVHJlZSwgdHNjb25maWdQYXRoOiBzdHJpbmcsIGJhc2VQYXRoOiBzdHJpbmcsXG4gICAgY29tcGlsZXJDbGlNaWdyYXRpb25zTW9kdWxlOiB0eXBlb2YgaW1wb3J0KCdAYW5ndWxhci9jb21waWxlci1jbGkvcHJpdmF0ZS9taWdyYXRpb25zJykpOlxuICAgIHN0cmluZ1tdIHtcbiAgY29uc3Qge3Byb2dyYW19ID0gY3JlYXRlTWlncmF0aW9uUHJvZ3JhbSh0cmVlLCB0c2NvbmZpZ1BhdGgsIGJhc2VQYXRoKTtcbiAgY29uc3QgZmFpbHVyZXM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IHR5cGVDaGVja2VyID0gcHJvZ3JhbS5nZXRUeXBlQ2hlY2tlcigpO1xuICBjb25zdCBkZWZpbml0aW9uQ29sbGVjdG9yID0gbmV3IE5nRGVmaW5pdGlvbkNvbGxlY3Rvcih0eXBlQ2hlY2tlcik7XG4gIGNvbnN0IHNvdXJjZUZpbGVzID1cbiAgICAgIHByb2dyYW0uZ2V0U291cmNlRmlsZXMoKS5maWx0ZXIoc291cmNlRmlsZSA9PiBjYW5NaWdyYXRlRmlsZShiYXNlUGF0aCwgc291cmNlRmlsZSwgcHJvZ3JhbSkpO1xuXG4gIC8vIEFuYWx5emUgc291cmNlIGZpbGVzIGJ5IGRldGVjdGluZyBhbGwgbW9kdWxlcywgZGlyZWN0aXZlcyBhbmQgY29tcG9uZW50cy5cbiAgc291cmNlRmlsZXMuZm9yRWFjaChzb3VyY2VGaWxlID0+IGRlZmluaXRpb25Db2xsZWN0b3IudmlzaXROb2RlKHNvdXJjZUZpbGUpKTtcblxuICBjb25zdCB7cmVzb2x2ZWRNb2R1bGVzLCByZXNvbHZlZERpcmVjdGl2ZXN9ID0gZGVmaW5pdGlvbkNvbGxlY3RvcjtcbiAgY29uc3QgdHJhbnNmb3JtZXIgPVxuICAgICAgbmV3IE1pc3NpbmdJbmplY3RhYmxlVHJhbnNmb3JtKHR5cGVDaGVja2VyLCBnZXRVcGRhdGVSZWNvcmRlciwgY29tcGlsZXJDbGlNaWdyYXRpb25zTW9kdWxlKTtcbiAgY29uc3QgdXBkYXRlUmVjb3JkZXJzID0gbmV3IE1hcDx0cy5Tb3VyY2VGaWxlLCBVcGRhdGVSZWNvcmRlcj4oKTtcblxuICBbLi4udHJhbnNmb3JtZXIubWlncmF0ZU1vZHVsZXMocmVzb2x2ZWRNb2R1bGVzKSxcbiAgIC4uLnRyYW5zZm9ybWVyLm1pZ3JhdGVEaXJlY3RpdmVzKHJlc29sdmVkRGlyZWN0aXZlcyksXG4gIF0uZm9yRWFjaCgoe21lc3NhZ2UsIG5vZGV9KSA9PiB7XG4gICAgY29uc3Qgbm9kZVNvdXJjZUZpbGUgPSBub2RlLmdldFNvdXJjZUZpbGUoKTtcbiAgICBjb25zdCByZWxhdGl2ZUZpbGVQYXRoID0gcmVsYXRpdmUoYmFzZVBhdGgsIG5vZGVTb3VyY2VGaWxlLmZpbGVOYW1lKTtcbiAgICBjb25zdCB7bGluZSwgY2hhcmFjdGVyfSA9XG4gICAgICAgIHRzLmdldExpbmVBbmRDaGFyYWN0ZXJPZlBvc2l0aW9uKG5vZGUuZ2V0U291cmNlRmlsZSgpLCBub2RlLmdldFN0YXJ0KCkpO1xuICAgIGZhaWx1cmVzLnB1c2goYCR7cmVsYXRpdmVGaWxlUGF0aH1AJHtsaW5lICsgMX06JHtjaGFyYWN0ZXIgKyAxfTogJHttZXNzYWdlfWApO1xuICB9KTtcblxuICAvLyBSZWNvcmQgdGhlIGNoYW5nZXMgY29sbGVjdGVkIGluIHRoZSBpbXBvcnQgbWFuYWdlciBhbmQgdHJhbnNmb3JtZXIuXG4gIHRyYW5zZm9ybWVyLnJlY29yZENoYW5nZXMoKTtcblxuICAvLyBXYWxrIHRocm91Z2ggZWFjaCB1cGRhdGUgcmVjb3JkZXIgYW5kIGNvbW1pdCB0aGUgdXBkYXRlLiBXZSBuZWVkIHRvIGNvbW1pdCB0aGVcbiAgLy8gdXBkYXRlcyBpbiBiYXRjaGVzIHBlciBzb3VyY2UgZmlsZSBhcyB0aGVyZSBjYW4gYmUgb25seSBvbmUgcmVjb3JkZXIgcGVyIHNvdXJjZVxuICAvLyBmaWxlIGluIG9yZGVyIHRvIGF2b2lkIHNoaWZ0IGNoYXJhY3RlciBvZmZzZXRzLlxuICB1cGRhdGVSZWNvcmRlcnMuZm9yRWFjaChyZWNvcmRlciA9PiByZWNvcmRlci5jb21taXRVcGRhdGUoKSk7XG5cbiAgcmV0dXJuIGZhaWx1cmVzO1xuXG4gIC8qKiBHZXRzIHRoZSB1cGRhdGUgcmVjb3JkZXIgZm9yIHRoZSBzcGVjaWZpZWQgc291cmNlIGZpbGUuICovXG4gIGZ1bmN0aW9uIGdldFVwZGF0ZVJlY29yZGVyKHNvdXJjZUZpbGU6IHRzLlNvdXJjZUZpbGUpOiBVcGRhdGVSZWNvcmRlciB7XG4gICAgaWYgKHVwZGF0ZVJlY29yZGVycy5oYXMoc291cmNlRmlsZSkpIHtcbiAgICAgIHJldHVybiB1cGRhdGVSZWNvcmRlcnMuZ2V0KHNvdXJjZUZpbGUpITtcbiAgICB9XG4gICAgY29uc3QgdHJlZVJlY29yZGVyID0gdHJlZS5iZWdpblVwZGF0ZShyZWxhdGl2ZShiYXNlUGF0aCwgc291cmNlRmlsZS5maWxlTmFtZSkpO1xuICAgIGNvbnN0IHJlY29yZGVyOiBVcGRhdGVSZWNvcmRlciA9IHtcbiAgICAgIGFkZENsYXNzRGVjb3JhdG9yKG5vZGU6IHRzLkNsYXNzRGVjbGFyYXRpb24sIHRleHQ6IHN0cmluZykge1xuICAgICAgICAvLyBOZXcgaW1wb3J0cyBzaG91bGQgYmUgaW5zZXJ0ZWQgYXQgdGhlIGxlZnQgd2hpbGUgZGVjb3JhdG9ycyBzaG91bGQgYmUgaW5zZXJ0ZWRcbiAgICAgICAgLy8gYXQgdGhlIHJpZ2h0IGluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IGltcG9ydHMgYXJlIGluc2VydGVkIGJlZm9yZSB0aGUgZGVjb3JhdG9yXG4gICAgICAgIC8vIGlmIHRoZSBzdGFydCBwb3NpdGlvbiBvZiBpbXBvcnQgYW5kIGRlY29yYXRvciBpcyB0aGUgc291cmNlIGZpbGUgc3RhcnQuXG4gICAgICAgIHRyZWVSZWNvcmRlci5pbnNlcnRSaWdodChub2RlLmdldFN0YXJ0KCksIGAke3RleHR9XFxuYCk7XG4gICAgICB9LFxuICAgICAgcmVwbGFjZURlY29yYXRvcihkZWNvcmF0b3I6IHRzLkRlY29yYXRvciwgbmV3VGV4dDogc3RyaW5nKSB7XG4gICAgICAgIHRyZWVSZWNvcmRlci5yZW1vdmUoZGVjb3JhdG9yLmdldFN0YXJ0KCksIGRlY29yYXRvci5nZXRXaWR0aCgpKTtcbiAgICAgICAgdHJlZVJlY29yZGVyLmluc2VydFJpZ2h0KGRlY29yYXRvci5nZXRTdGFydCgpLCBuZXdUZXh0KTtcbiAgICAgIH0sXG4gICAgICBhZGROZXdJbXBvcnQoc3RhcnQ6IG51bWJlciwgaW1wb3J0VGV4dDogc3RyaW5nKSB7XG4gICAgICAgIC8vIE5ldyBpbXBvcnRzIHNob3VsZCBiZSBpbnNlcnRlZCBhdCB0aGUgbGVmdCB3aGlsZSBkZWNvcmF0b3JzIHNob3VsZCBiZSBpbnNlcnRlZFxuICAgICAgICAvLyBhdCB0aGUgcmlnaHQgaW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQgaW1wb3J0cyBhcmUgaW5zZXJ0ZWQgYmVmb3JlIHRoZSBkZWNvcmF0b3JcbiAgICAgICAgLy8gaWYgdGhlIHN0YXJ0IHBvc2l0aW9uIG9mIGltcG9ydCBhbmQgZGVjb3JhdG9yIGlzIHRoZSBzb3VyY2UgZmlsZSBzdGFydC5cbiAgICAgICAgdHJlZVJlY29yZGVyLmluc2VydExlZnQoc3RhcnQsIGltcG9ydFRleHQpO1xuICAgICAgfSxcbiAgICAgIHVwZGF0ZUV4aXN0aW5nSW1wb3J0KG5hbWVkQmluZGluZ3M6IHRzLk5hbWVkSW1wb3J0cywgbmV3TmFtZWRCaW5kaW5nczogc3RyaW5nKSB7XG4gICAgICAgIHRyZWVSZWNvcmRlci5yZW1vdmUobmFtZWRCaW5kaW5ncy5nZXRTdGFydCgpLCBuYW1lZEJpbmRpbmdzLmdldFdpZHRoKCkpO1xuICAgICAgICB0cmVlUmVjb3JkZXIuaW5zZXJ0UmlnaHQobmFtZWRCaW5kaW5ncy5nZXRTdGFydCgpLCBuZXdOYW1lZEJpbmRpbmdzKTtcbiAgICAgIH0sXG4gICAgICB1cGRhdGVPYmplY3RMaXRlcmFsKG5vZGU6IHRzLk9iamVjdExpdGVyYWxFeHByZXNzaW9uLCBuZXdUZXh0OiBzdHJpbmcpIHtcbiAgICAgICAgdHJlZVJlY29yZGVyLnJlbW92ZShub2RlLmdldFN0YXJ0KCksIG5vZGUuZ2V0V2lkdGgoKSk7XG4gICAgICAgIHRyZWVSZWNvcmRlci5pbnNlcnRSaWdodChub2RlLmdldFN0YXJ0KCksIG5ld1RleHQpO1xuICAgICAgfSxcbiAgICAgIGNvbW1pdFVwZGF0ZSgpIHtcbiAgICAgICAgdHJlZS5jb21taXRVcGRhdGUodHJlZVJlY29yZGVyKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHVwZGF0ZVJlY29yZGVycy5zZXQoc291cmNlRmlsZSwgcmVjb3JkZXIpO1xuICAgIHJldHVybiByZWNvcmRlcjtcbiAgfVxufVxuIl19
|
|
@@ -1,26 +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/missing-injectable/providers_evaluator" />
|
|
9
|
-
import ts from 'typescript';
|
|
10
|
-
import type { ResolvedValue, TypeScriptReflectionHost } from '@angular/compiler-cli/private/migrations';
|
|
11
|
-
export interface ProviderLiteral {
|
|
12
|
-
node: ts.ObjectLiteralExpression;
|
|
13
|
-
resolvedValue: ResolvedValue;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* A factory function to create an evaluator for providers. This is required to be a
|
|
17
|
-
* factory function because the underlying class extends a class that is only available
|
|
18
|
-
* from within a dynamically imported module (`@angular/compiler-cli/private/migrations`)
|
|
19
|
-
* and is therefore not available at module evaluation time.
|
|
20
|
-
*/
|
|
21
|
-
export declare function createProvidersEvaluator(compilerCliMigrationsModule: typeof import('@angular/compiler-cli/private/migrations'), host: TypeScriptReflectionHost, checker: ts.TypeChecker): {
|
|
22
|
-
evaluate: (expr: ts.Expression) => {
|
|
23
|
-
resolvedValue: ResolvedValue;
|
|
24
|
-
literals: ProviderLiteral[];
|
|
25
|
-
};
|
|
26
|
-
};
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
(function (factory) {
|
|
9
|
-
if (typeof module === "object" && typeof module.exports === "object") {
|
|
10
|
-
var v = factory(require, exports);
|
|
11
|
-
if (v !== undefined) module.exports = v;
|
|
12
|
-
}
|
|
13
|
-
else if (typeof define === "function" && define.amd) {
|
|
14
|
-
define("@angular/core/schematics/migrations/missing-injectable/providers_evaluator", ["require", "exports"], factory);
|
|
15
|
-
}
|
|
16
|
-
})(function (require, exports) {
|
|
17
|
-
"use strict";
|
|
18
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.createProvidersEvaluator = void 0;
|
|
20
|
-
/**
|
|
21
|
-
* A factory function to create an evaluator for providers. This is required to be a
|
|
22
|
-
* factory function because the underlying class extends a class that is only available
|
|
23
|
-
* from within a dynamically imported module (`@angular/compiler-cli/private/migrations`)
|
|
24
|
-
* and is therefore not available at module evaluation time.
|
|
25
|
-
*/
|
|
26
|
-
function createProvidersEvaluator(compilerCliMigrationsModule, host, checker) {
|
|
27
|
-
/**
|
|
28
|
-
* Providers evaluator that extends the ngtsc static interpreter. This is necessary because
|
|
29
|
-
* the static interpreter by default only exposes the resolved value, but we are also interested
|
|
30
|
-
* in the TypeScript nodes that declare providers. It would be possible to manually traverse the
|
|
31
|
-
* AST to collect these nodes, but that would mean that we need to re-implement the static
|
|
32
|
-
* interpreter in order to handle all possible scenarios. (e.g. spread operator, function calls,
|
|
33
|
-
* callee scope). This can be avoided by simply extending the static interpreter and intercepting
|
|
34
|
-
* the "visitObjectLiteralExpression" method.
|
|
35
|
-
*/
|
|
36
|
-
class ProvidersEvaluator extends compilerCliMigrationsModule.StaticInterpreter {
|
|
37
|
-
constructor() {
|
|
38
|
-
super(...arguments);
|
|
39
|
-
this._providerLiterals = [];
|
|
40
|
-
}
|
|
41
|
-
visitObjectLiteralExpression(node, context) {
|
|
42
|
-
const resolvedValue = super.visitObjectLiteralExpression(node, Object.assign(Object.assign({}, context), { insideProviderDef: true }));
|
|
43
|
-
// do not collect nested object literals. e.g. a provider could use a
|
|
44
|
-
// spread assignment (which resolves to another object literal). In that
|
|
45
|
-
// case the referenced object literal is not a provider object literal.
|
|
46
|
-
if (!context.insideProviderDef) {
|
|
47
|
-
this._providerLiterals.push({ node, resolvedValue });
|
|
48
|
-
}
|
|
49
|
-
return resolvedValue;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Evaluates the given expression and returns its statically resolved value
|
|
53
|
-
* and a list of object literals which define Angular providers.
|
|
54
|
-
*/
|
|
55
|
-
evaluate(expr) {
|
|
56
|
-
this._providerLiterals = [];
|
|
57
|
-
const resolvedValue = this.visit(expr, {
|
|
58
|
-
originatingFile: expr.getSourceFile(),
|
|
59
|
-
absoluteModuleName: null,
|
|
60
|
-
resolutionContext: expr.getSourceFile().fileName,
|
|
61
|
-
scope: new Map(),
|
|
62
|
-
foreignFunctionResolver: compilerCliMigrationsModule.forwardRefResolver
|
|
63
|
-
});
|
|
64
|
-
return { resolvedValue, literals: this._providerLiterals };
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
return new ProvidersEvaluator(host, checker, /* dependencyTracker */ null);
|
|
68
|
-
}
|
|
69
|
-
exports.createProvidersEvaluator = createProvidersEvaluator;
|
|
70
|
-
});
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzX2V2YWx1YXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc2NoZW1hdGljcy9taWdyYXRpb25zL21pc3NpbmctaW5qZWN0YWJsZS9wcm92aWRlcnNfZXZhbHVhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7OztJQVdIOzs7OztPQUtHO0lBQ0gsU0FBZ0Isd0JBQXdCLENBQ3BDLDJCQUFzRixFQUN0RixJQUE4QixFQUFFLE9BQXVCO1FBTXpEOzs7Ozs7OztXQVFHO1FBQ0gsTUFBTSxrQkFBbUIsU0FBUSwyQkFBMkIsQ0FBQyxpQkFBaUI7WUFBOUU7O2dCQUNVLHNCQUFpQixHQUFzQixFQUFFLENBQUM7WUE2QnBELENBQUM7WUEzQlUsNEJBQTRCLENBQUMsSUFBZ0MsRUFBRSxPQUFZO2dCQUNsRixNQUFNLGFBQWEsR0FDZixLQUFLLENBQUMsNEJBQTRCLENBQUMsSUFBSSxrQ0FBTSxPQUFPLEtBQUUsaUJBQWlCLEVBQUUsSUFBSSxJQUFFLENBQUM7Z0JBQ3BGLHFFQUFxRTtnQkFDckUsd0VBQXdFO2dCQUN4RSx1RUFBdUU7Z0JBQ3ZFLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUU7b0JBQzlCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsYUFBYSxFQUFDLENBQUMsQ0FBQztpQkFDcEQ7Z0JBQ0QsT0FBTyxhQUFhLENBQUM7WUFDdkIsQ0FBQztZQUVEOzs7ZUFHRztZQUNILFFBQVEsQ0FBQyxJQUFtQjtnQkFDMUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztnQkFDNUIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7b0JBQ3JDLGVBQWUsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFO29CQUNyQyxrQkFBa0IsRUFBRSxJQUFJO29CQUN4QixpQkFBaUIsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsUUFBUTtvQkFDaEQsS0FBSyxFQUFFLElBQUksR0FBRyxFQUFFO29CQUNoQix1QkFBdUIsRUFBRSwyQkFBMkIsQ0FBQyxrQkFBa0I7aUJBQ3hFLENBQUMsQ0FBQztnQkFDSCxPQUFPLEVBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUMsQ0FBQztZQUMzRCxDQUFDO1NBQ0Y7UUFFRCxPQUFPLElBQUksa0JBQWtCLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBbERELDREQWtEQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB0eXBlIHtSZXNvbHZlZFZhbHVlLCBUeXBlU2NyaXB0UmVmbGVjdGlvbkhvc3R9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9wcml2YXRlL21pZ3JhdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyTGl0ZXJhbCB7XG4gIG5vZGU6IHRzLk9iamVjdExpdGVyYWxFeHByZXNzaW9uO1xuICByZXNvbHZlZFZhbHVlOiBSZXNvbHZlZFZhbHVlO1xufVxuXG4vKipcbiAqIEEgZmFjdG9yeSBmdW5jdGlvbiB0byBjcmVhdGUgYW4gZXZhbHVhdG9yIGZvciBwcm92aWRlcnMuIFRoaXMgaXMgcmVxdWlyZWQgdG8gYmUgYVxuICogZmFjdG9yeSBmdW5jdGlvbiBiZWNhdXNlIHRoZSB1bmRlcmx5aW5nIGNsYXNzIGV4dGVuZHMgYSBjbGFzcyB0aGF0IGlzIG9ubHkgYXZhaWxhYmxlXG4gKiBmcm9tIHdpdGhpbiBhIGR5bmFtaWNhbGx5IGltcG9ydGVkIG1vZHVsZSAoYEBhbmd1bGFyL2NvbXBpbGVyLWNsaS9wcml2YXRlL21pZ3JhdGlvbnNgKVxuICogYW5kIGlzIHRoZXJlZm9yZSBub3QgYXZhaWxhYmxlIGF0IG1vZHVsZSBldmFsdWF0aW9uIHRpbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQcm92aWRlcnNFdmFsdWF0b3IoXG4gICAgY29tcGlsZXJDbGlNaWdyYXRpb25zTW9kdWxlOiB0eXBlb2YgaW1wb3J0KCdAYW5ndWxhci9jb21waWxlci1jbGkvcHJpdmF0ZS9taWdyYXRpb25zJyksXG4gICAgaG9zdDogVHlwZVNjcmlwdFJlZmxlY3Rpb25Ib3N0LCBjaGVja2VyOiB0cy5UeXBlQ2hlY2tlcik6IHtcbiAgZXZhbHVhdGU6XG4gICAgICAoZXhwcjogdHMuRXhwcmVzc2lvbikgPT4ge1xuICAgICAgICByZXNvbHZlZFZhbHVlOiBSZXNvbHZlZFZhbHVlLCBsaXRlcmFsczogUHJvdmlkZXJMaXRlcmFsW11cbiAgICAgIH1cbn0ge1xuICAvKipcbiAgICogUHJvdmlkZXJzIGV2YWx1YXRvciB0aGF0IGV4dGVuZHMgdGhlIG5ndHNjIHN0YXRpYyBpbnRlcnByZXRlci4gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZVxuICAgKiB0aGUgc3RhdGljIGludGVycHJldGVyIGJ5IGRlZmF1bHQgb25seSBleHBvc2VzIHRoZSByZXNvbHZlZCB2YWx1ZSwgYnV0IHdlIGFyZSBhbHNvIGludGVyZXN0ZWRcbiAgICogaW4gdGhlIFR5cGVTY3JpcHQgbm9kZXMgdGhhdCBkZWNsYXJlIHByb3ZpZGVycy4gSXQgd291bGQgYmUgcG9zc2libGUgdG8gbWFudWFsbHkgdHJhdmVyc2UgdGhlXG4gICAqIEFTVCB0byBjb2xsZWN0IHRoZXNlIG5vZGVzLCBidXQgdGhhdCB3b3VsZCBtZWFuIHRoYXQgd2UgbmVlZCB0byByZS1pbXBsZW1lbnQgdGhlIHN0YXRpY1xuICAgKiBpbnRlcnByZXRlciBpbiBvcmRlciB0byBoYW5kbGUgYWxsIHBvc3NpYmxlIHNjZW5hcmlvcy4gKGUuZy4gc3ByZWFkIG9wZXJhdG9yLCBmdW5jdGlvbiBjYWxscyxcbiAgICogY2FsbGVlIHNjb3BlKS4gVGhpcyBjYW4gYmUgYXZvaWRlZCBieSBzaW1wbHkgZXh0ZW5kaW5nIHRoZSBzdGF0aWMgaW50ZXJwcmV0ZXIgYW5kIGludGVyY2VwdGluZ1xuICAgKiB0aGUgXCJ2aXNpdE9iamVjdExpdGVyYWxFeHByZXNzaW9uXCIgbWV0aG9kLlxuICAgKi9cbiAgY2xhc3MgUHJvdmlkZXJzRXZhbHVhdG9yIGV4dGVuZHMgY29tcGlsZXJDbGlNaWdyYXRpb25zTW9kdWxlLlN0YXRpY0ludGVycHJldGVyIHtcbiAgICBwcml2YXRlIF9wcm92aWRlckxpdGVyYWxzOiBQcm92aWRlckxpdGVyYWxbXSA9IFtdO1xuXG4gICAgb3ZlcnJpZGUgdmlzaXRPYmplY3RMaXRlcmFsRXhwcmVzc2lvbihub2RlOiB0cy5PYmplY3RMaXRlcmFsRXhwcmVzc2lvbiwgY29udGV4dDogYW55KSB7XG4gICAgICBjb25zdCByZXNvbHZlZFZhbHVlID1cbiAgICAgICAgICBzdXBlci52aXNpdE9iamVjdExpdGVyYWxFeHByZXNzaW9uKG5vZGUsIHsuLi5jb250ZXh0LCBpbnNpZGVQcm92aWRlckRlZjogdHJ1ZX0pO1xuICAgICAgLy8gZG8gbm90IGNvbGxlY3QgbmVzdGVkIG9iamVjdCBsaXRlcmFscy4gZS5nLiBhIHByb3ZpZGVyIGNvdWxkIHVzZSBhXG4gICAgICAvLyBzcHJlYWQgYXNzaWdubWVudCAod2hpY2ggcmVzb2x2ZXMgdG8gYW5vdGhlciBvYmplY3QgbGl0ZXJhbCkuIEluIHRoYXRcbiAgICAgIC8vIGNhc2UgdGhlIHJlZmVyZW5jZWQgb2JqZWN0IGxpdGVyYWwgaXMgbm90IGEgcHJvdmlkZXIgb2JqZWN0IGxpdGVyYWwuXG4gICAgICBpZiAoIWNvbnRleHQuaW5zaWRlUHJvdmlkZXJEZWYpIHtcbiAgICAgICAgdGhpcy5fcHJvdmlkZXJMaXRlcmFscy5wdXNoKHtub2RlLCByZXNvbHZlZFZhbHVlfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZWRWYWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFdmFsdWF0ZXMgdGhlIGdpdmVuIGV4cHJlc3Npb24gYW5kIHJldHVybnMgaXRzIHN0YXRpY2FsbHkgcmVzb2x2ZWQgdmFsdWVcbiAgICAgKiBhbmQgYSBsaXN0IG9mIG9iamVjdCBsaXRlcmFscyB3aGljaCBkZWZpbmUgQW5ndWxhciBwcm92aWRlcnMuXG4gICAgICovXG4gICAgZXZhbHVhdGUoZXhwcjogdHMuRXhwcmVzc2lvbikge1xuICAgICAgdGhpcy5fcHJvdmlkZXJMaXRlcmFscyA9IFtdO1xuICAgICAgY29uc3QgcmVzb2x2ZWRWYWx1ZSA9IHRoaXMudmlzaXQoZXhwciwge1xuICAgICAgICBvcmlnaW5hdGluZ0ZpbGU6IGV4cHIuZ2V0U291cmNlRmlsZSgpLFxuICAgICAgICBhYnNvbHV0ZU1vZHVsZU5hbWU6IG51bGwsXG4gICAgICAgIHJlc29sdXRpb25Db250ZXh0OiBleHByLmdldFNvdXJjZUZpbGUoKS5maWxlTmFtZSxcbiAgICAgICAgc2NvcGU6IG5ldyBNYXAoKSxcbiAgICAgICAgZm9yZWlnbkZ1bmN0aW9uUmVzb2x2ZXI6IGNvbXBpbGVyQ2xpTWlncmF0aW9uc01vZHVsZS5mb3J3YXJkUmVmUmVzb2x2ZXJcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHtyZXNvbHZlZFZhbHVlLCBsaXRlcmFsczogdGhpcy5fcHJvdmlkZXJMaXRlcmFsc307XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBQcm92aWRlcnNFdmFsdWF0b3IoaG9zdCwgY2hlY2tlciwgLyogZGVwZW5kZW5jeVRyYWNrZXIgKi8gbnVsbCk7XG59XG4iXX0=
|
|
@@ -1,70 +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/missing-injectable/transform" />
|
|
9
|
-
import ts from 'typescript';
|
|
10
|
-
import { ResolvedDirective, ResolvedNgModule } from './definition_collector';
|
|
11
|
-
import { UpdateRecorder } from './update_recorder';
|
|
12
|
-
export interface AnalysisFailure {
|
|
13
|
-
node: ts.Node;
|
|
14
|
-
message: string;
|
|
15
|
-
}
|
|
16
|
-
export declare class MissingInjectableTransform {
|
|
17
|
-
private typeChecker;
|
|
18
|
-
private getUpdateRecorder;
|
|
19
|
-
private compilerCliMigrationsModule;
|
|
20
|
-
private printer;
|
|
21
|
-
private importManager;
|
|
22
|
-
private providersEvaluator;
|
|
23
|
-
/** Set of provider class declarations which were already checked or migrated. */
|
|
24
|
-
private visitedProviderClasses;
|
|
25
|
-
/** Set of provider object literals which were already checked or migrated. */
|
|
26
|
-
private visitedProviderLiterals;
|
|
27
|
-
constructor(typeChecker: ts.TypeChecker, getUpdateRecorder: (sf: ts.SourceFile) => UpdateRecorder, compilerCliMigrationsModule: typeof import('@angular/compiler-cli/private/migrations'));
|
|
28
|
-
recordChanges(): void;
|
|
29
|
-
/**
|
|
30
|
-
* Migrates all specified NgModule's by walking through referenced providers
|
|
31
|
-
* and decorating them with "@Injectable" if needed.
|
|
32
|
-
*/
|
|
33
|
-
migrateModules(modules: ResolvedNgModule[]): AnalysisFailure[];
|
|
34
|
-
/**
|
|
35
|
-
* Migrates all specified directives by walking through referenced providers
|
|
36
|
-
* and decorating them with "@Injectable" if needed.
|
|
37
|
-
*/
|
|
38
|
-
migrateDirectives(directives: ResolvedDirective[]): AnalysisFailure[];
|
|
39
|
-
/** Migrates a given NgModule by walking through the referenced providers. */
|
|
40
|
-
migrateModule(module: ResolvedNgModule): AnalysisFailure[];
|
|
41
|
-
/**
|
|
42
|
-
* Migrates a given directive by walking through defined providers. This method
|
|
43
|
-
* also handles components with "viewProviders" defined.
|
|
44
|
-
*/
|
|
45
|
-
migrateDirective(directive: ResolvedDirective): AnalysisFailure[];
|
|
46
|
-
/**
|
|
47
|
-
* Migrates a given provider class if it is not decorated with
|
|
48
|
-
* any Angular decorator.
|
|
49
|
-
*/
|
|
50
|
-
migrateProviderClass(node: ts.ClassDeclaration, context: ResolvedNgModule | ResolvedDirective): void;
|
|
51
|
-
/**
|
|
52
|
-
* Migrates object literal providers which do not use "useValue", "useClass",
|
|
53
|
-
* "useExisting" or "useFactory". These providers behave differently in Ivy. e.g.
|
|
54
|
-
*
|
|
55
|
-
* ```ts
|
|
56
|
-
* {provide: X} -> {provide: X, useValue: undefined} // this is how it behaves in VE
|
|
57
|
-
* {provide: X} -> {provide: X, useClass: X} // this is how it behaves in Ivy
|
|
58
|
-
* ```
|
|
59
|
-
*
|
|
60
|
-
* To ensure forward compatibility, we migrate these empty object literal providers
|
|
61
|
-
* to explicitly use `useValue: undefined`.
|
|
62
|
-
*/
|
|
63
|
-
private _migrateLiteralProviders;
|
|
64
|
-
/**
|
|
65
|
-
* Visits the given resolved value of a provider. Providers can be nested in
|
|
66
|
-
* arrays and we need to recursively walk through the providers to be able to
|
|
67
|
-
* migrate all referenced provider classes. e.g. "providers: [[A, [B]]]".
|
|
68
|
-
*/
|
|
69
|
-
private _visitProviderResolvedValue;
|
|
70
|
-
}
|