@angular/compiler-cli 10.0.6 → 10.0.10
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/ngcc/src/analysis/ngcc_trait_compiler.js +2 -1
- package/ngcc/src/host/esm2015_host.js +10 -4
- package/ngcc/src/host/esm5_host.d.ts +118 -0
- package/ngcc/src/host/esm5_host.js +210 -123
- package/ngcc/src/packages/build_marker.d.ts +1 -1
- package/ngcc/src/packages/build_marker.js +1 -1
- package/package.json +2 -2
- package/src/main.js +1 -2
- package/src/ngtsc/annotations/src/component.d.ts +1 -1
- package/src/ngtsc/annotations/src/component.js +3 -3
- package/src/ngtsc/annotations/src/diagnostics.js +2 -2
- package/src/ngtsc/annotations/src/metadata.js +3 -3
- package/src/ngtsc/annotations/src/ng_module.js +6 -6
- package/src/ngtsc/annotations/src/util.d.ts +4 -8
- package/src/ngtsc/annotations/src/util.js +73 -22
- package/src/ngtsc/core/src/compiler.d.ts +2 -1
- package/src/ngtsc/core/src/compiler.js +8 -9
- package/src/ngtsc/diagnostics/index.d.ts +1 -1
- package/src/ngtsc/diagnostics/index.js +2 -1
- package/src/ngtsc/diagnostics/src/error.d.ts +5 -6
- package/src/ngtsc/diagnostics/src/error.js +20 -20
- package/src/ngtsc/diagnostics/src/error_code.d.ts +10 -0
- package/src/ngtsc/diagnostics/src/error_code.js +11 -1
- package/src/ngtsc/imports/src/core.js +2 -1
- package/src/ngtsc/incremental/api.d.ts +12 -7
- package/src/ngtsc/incremental/api.js +1 -1
- package/src/ngtsc/incremental/src/noop.js +2 -1
- package/src/ngtsc/incremental/src/state.d.ts +1 -1
- package/src/ngtsc/incremental/src/state.js +1 -1
- package/src/ngtsc/program.d.ts +2 -1
- package/src/ngtsc/program.js +1 -1
- package/src/ngtsc/reflection/src/host.d.ts +110 -25
- package/src/ngtsc/reflection/src/host.js +1 -1
- package/src/ngtsc/reflection/src/type_to_value.d.ts +1 -1
- package/src/ngtsc/reflection/src/type_to_value.js +62 -11
- package/src/ngtsc/reflection/src/typescript.js +1 -4
- package/src/ngtsc/scope/src/local.js +4 -4
- package/src/ngtsc/shims/api.d.ts +6 -2
- package/src/ngtsc/shims/api.js +1 -1
- package/src/ngtsc/shims/src/factory_generator.d.ts +2 -2
- package/src/ngtsc/shims/src/factory_generator.js +58 -9
- package/src/ngtsc/transform/src/api.d.ts +1 -1
- package/src/ngtsc/transform/src/api.js +1 -1
- package/src/ngtsc/transform/src/compilation.d.ts +1 -1
- package/src/ngtsc/transform/src/compilation.js +1 -1
- package/src/ngtsc/transform/src/transform.js +2 -2
- package/src/ngtsc/tsc_plugin.d.ts +1 -1
- package/src/ngtsc/tsc_plugin.js +1 -1
- package/src/ngtsc/typecheck/{src → api}/api.d.ts +25 -2
- package/src/ngtsc/typecheck/{src → api}/api.js +2 -2
- package/src/ngtsc/typecheck/api/checker.d.ts +91 -0
- package/src/ngtsc/typecheck/api/checker.js +44 -0
- package/src/ngtsc/typecheck/api/context.d.ts +44 -0
- package/src/ngtsc/typecheck/api/context.js +20 -0
- package/src/ngtsc/typecheck/api/index.d.ts +11 -0
- package/src/ngtsc/typecheck/api/index.js +24 -0
- package/src/ngtsc/typecheck/index.d.ts +4 -5
- package/src/ngtsc/typecheck/index.js +6 -8
- package/src/ngtsc/typecheck/src/augmented_program.d.ts +3 -1
- package/src/ngtsc/typecheck/src/augmented_program.js +9 -3
- package/src/ngtsc/typecheck/src/checker.d.ts +63 -18
- package/src/ngtsc/typecheck/src/checker.js +394 -62
- package/src/ngtsc/typecheck/src/context.d.ts +76 -55
- package/src/ngtsc/typecheck/src/context.js +111 -67
- package/src/ngtsc/typecheck/src/diagnostics.d.ts +9 -3
- package/src/ngtsc/typecheck/src/diagnostics.js +28 -5
- package/src/ngtsc/typecheck/src/dom.d.ts +4 -5
- package/src/ngtsc/typecheck/src/dom.js +3 -3
- package/src/ngtsc/typecheck/src/environment.d.ts +1 -1
- package/src/ngtsc/typecheck/src/environment.js +1 -1
- package/src/ngtsc/typecheck/src/expression.d.ts +1 -1
- package/src/ngtsc/typecheck/src/expression.js +2 -2
- package/src/ngtsc/typecheck/src/oob.d.ts +9 -5
- package/src/ngtsc/typecheck/src/oob.js +25 -6
- package/src/ngtsc/typecheck/src/source.d.ts +4 -3
- package/src/ngtsc/typecheck/src/source.js +20 -4
- package/src/ngtsc/typecheck/src/template_semantics.d.ts +1 -1
- package/src/ngtsc/typecheck/src/template_semantics.js +1 -1
- package/src/ngtsc/typecheck/src/type_check_block.d.ts +1 -1
- package/src/ngtsc/typecheck/src/type_check_block.js +1 -1
- package/src/ngtsc/typecheck/src/type_check_file.d.ts +1 -1
- package/src/ngtsc/typecheck/src/type_check_file.js +1 -1
- package/src/ngtsc/typecheck/src/type_constructor.d.ts +1 -1
- package/src/ngtsc/typecheck/src/type_constructor.js +1 -1
- package/src/version.js +1 -1
|
@@ -6,11 +6,10 @@
|
|
|
6
6
|
* found in the LICENSE file at https://angular.io/license
|
|
7
7
|
*/
|
|
8
8
|
/// <amd-module name="@angular/compiler-cli/src/ngtsc/typecheck" />
|
|
9
|
-
export * from './src/api';
|
|
10
9
|
export { ReusedProgramStrategy } from './src/augmented_program';
|
|
11
|
-
export {
|
|
12
|
-
export {
|
|
13
|
-
export {
|
|
14
|
-
export { TypeCheckShimGenerator } from './src/shim';
|
|
10
|
+
export { FileTypeCheckingData, TemplateTypeCheckerImpl } from './src/checker';
|
|
11
|
+
export { TypeCheckContextImpl } from './src/context';
|
|
12
|
+
export { isTemplateDiagnostic, TemplateDiagnostic } from './src/diagnostics';
|
|
15
13
|
export { TypeCheckProgramHost } from './src/host';
|
|
14
|
+
export { TypeCheckShimGenerator } from './src/shim';
|
|
16
15
|
export { typeCheckFilePath } from './src/type_check_file';
|
|
@@ -11,26 +11,24 @@
|
|
|
11
11
|
if (v !== undefined) module.exports = v;
|
|
12
12
|
}
|
|
13
13
|
else if (typeof define === "function" && define.amd) {
|
|
14
|
-
define("@angular/compiler-cli/src/ngtsc/typecheck", ["require", "exports", "
|
|
14
|
+
define("@angular/compiler-cli/src/ngtsc/typecheck", ["require", "exports", "@angular/compiler-cli/src/ngtsc/typecheck/src/augmented_program", "@angular/compiler-cli/src/ngtsc/typecheck/src/checker", "@angular/compiler-cli/src/ngtsc/typecheck/src/context", "@angular/compiler-cli/src/ngtsc/typecheck/src/diagnostics", "@angular/compiler-cli/src/ngtsc/typecheck/src/host", "@angular/compiler-cli/src/ngtsc/typecheck/src/shim", "@angular/compiler-cli/src/ngtsc/typecheck/src/type_check_file"], factory);
|
|
15
15
|
}
|
|
16
16
|
})(function (require, exports) {
|
|
17
17
|
"use strict";
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
var tslib_1 = require("tslib");
|
|
20
|
-
tslib_1.__exportStar(require("@angular/compiler-cli/src/ngtsc/typecheck/src/api"), exports);
|
|
21
19
|
var augmented_program_1 = require("@angular/compiler-cli/src/ngtsc/typecheck/src/augmented_program");
|
|
22
20
|
Object.defineProperty(exports, "ReusedProgramStrategy", { enumerable: true, get: function () { return augmented_program_1.ReusedProgramStrategy; } });
|
|
23
21
|
var checker_1 = require("@angular/compiler-cli/src/ngtsc/typecheck/src/checker");
|
|
24
|
-
Object.defineProperty(exports, "
|
|
22
|
+
Object.defineProperty(exports, "TemplateTypeCheckerImpl", { enumerable: true, get: function () { return checker_1.TemplateTypeCheckerImpl; } });
|
|
25
23
|
var context_1 = require("@angular/compiler-cli/src/ngtsc/typecheck/src/context");
|
|
26
|
-
Object.defineProperty(exports, "
|
|
24
|
+
Object.defineProperty(exports, "TypeCheckContextImpl", { enumerable: true, get: function () { return context_1.TypeCheckContextImpl; } });
|
|
27
25
|
var diagnostics_1 = require("@angular/compiler-cli/src/ngtsc/typecheck/src/diagnostics");
|
|
28
26
|
Object.defineProperty(exports, "isTemplateDiagnostic", { enumerable: true, get: function () { return diagnostics_1.isTemplateDiagnostic; } });
|
|
29
|
-
var shim_1 = require("@angular/compiler-cli/src/ngtsc/typecheck/src/shim");
|
|
30
|
-
Object.defineProperty(exports, "TypeCheckShimGenerator", { enumerable: true, get: function () { return shim_1.TypeCheckShimGenerator; } });
|
|
31
27
|
var host_1 = require("@angular/compiler-cli/src/ngtsc/typecheck/src/host");
|
|
32
28
|
Object.defineProperty(exports, "TypeCheckProgramHost", { enumerable: true, get: function () { return host_1.TypeCheckProgramHost; } });
|
|
29
|
+
var shim_1 = require("@angular/compiler-cli/src/ngtsc/typecheck/src/shim");
|
|
30
|
+
Object.defineProperty(exports, "TypeCheckShimGenerator", { enumerable: true, get: function () { return shim_1.TypeCheckShimGenerator; } });
|
|
33
31
|
var type_check_file_1 = require("@angular/compiler-cli/src/ngtsc/typecheck/src/type_check_file");
|
|
34
32
|
Object.defineProperty(exports, "typeCheckFilePath", { enumerable: true, get: function () { return type_check_file_1.typeCheckFilePath; } });
|
|
35
33
|
});
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL3R5cGVjaGVjay9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7OztJQUVILHFHQUE4RDtJQUF0RCwwSEFBQSxxQkFBcUIsT0FBQTtJQUM3QixpRkFBNEU7SUFBOUMsa0hBQUEsdUJBQXVCLE9BQUE7SUFDckQsaUZBQW1EO0lBQTNDLCtHQUFBLG9CQUFvQixPQUFBO0lBQzVCLHlGQUEyRTtJQUFuRSxtSEFBQSxvQkFBb0IsT0FBQTtJQUM1QiwyRUFBZ0Q7SUFBeEMsNEdBQUEsb0JBQW9CLE9BQUE7SUFDNUIsMkVBQWtEO0lBQTFDLDhHQUFBLHNCQUFzQixPQUFBO0lBQzlCLGlHQUF3RDtJQUFoRCxvSEFBQSxpQkFBaUIsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQge1JldXNlZFByb2dyYW1TdHJhdGVneX0gZnJvbSAnLi9zcmMvYXVnbWVudGVkX3Byb2dyYW0nO1xuZXhwb3J0IHtGaWxlVHlwZUNoZWNraW5nRGF0YSwgVGVtcGxhdGVUeXBlQ2hlY2tlckltcGx9IGZyb20gJy4vc3JjL2NoZWNrZXInO1xuZXhwb3J0IHtUeXBlQ2hlY2tDb250ZXh0SW1wbH0gZnJvbSAnLi9zcmMvY29udGV4dCc7XG5leHBvcnQge2lzVGVtcGxhdGVEaWFnbm9zdGljLCBUZW1wbGF0ZURpYWdub3N0aWN9IGZyb20gJy4vc3JjL2RpYWdub3N0aWNzJztcbmV4cG9ydCB7VHlwZUNoZWNrUHJvZ3JhbUhvc3R9IGZyb20gJy4vc3JjL2hvc3QnO1xuZXhwb3J0IHtUeXBlQ2hlY2tTaGltR2VuZXJhdG9yfSBmcm9tICcuL3NyYy9zaGltJztcbmV4cG9ydCB7dHlwZUNoZWNrRmlsZVBhdGh9IGZyb20gJy4vc3JjL3R5cGVfY2hlY2tfZmlsZSc7XG4iXX0=
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
/// <amd-module name="@angular/compiler-cli/src/ngtsc/typecheck/src/augmented_program" />
|
|
9
9
|
import * as ts from 'typescript';
|
|
10
10
|
import { AbsoluteFsPath } from '../../file_system';
|
|
11
|
-
import { TypeCheckingProgramStrategy, UpdateMode } from '
|
|
11
|
+
import { TypeCheckingProgramStrategy, UpdateMode } from '../api';
|
|
12
12
|
/**
|
|
13
13
|
* Implements a template type-checking program using `ts.createProgram` and TypeScript's program
|
|
14
14
|
* reuse functionality.
|
|
@@ -27,6 +27,8 @@ export declare class ReusedProgramStrategy implements TypeCheckingProgramStrateg
|
|
|
27
27
|
private sfMap;
|
|
28
28
|
private program;
|
|
29
29
|
constructor(originalProgram: ts.Program, originalHost: ts.CompilerHost, options: ts.CompilerOptions, shimExtensionPrefixes: string[]);
|
|
30
|
+
readonly supportsInlineOperations = true;
|
|
30
31
|
getProgram(): ts.Program;
|
|
31
32
|
updateFiles(contents: Map<AbsoluteFsPath, string>, updateMode: UpdateMode): void;
|
|
33
|
+
shimPathForComponent(node: ts.ClassDeclaration): AbsoluteFsPath;
|
|
32
34
|
}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
if (v !== undefined) module.exports = v;
|
|
12
12
|
}
|
|
13
13
|
else if (typeof define === "function" && define.amd) {
|
|
14
|
-
define("@angular/compiler-cli/src/ngtsc/typecheck/src/augmented_program", ["require", "exports", "tslib", "typescript", "@angular/compiler-cli/src/ngtsc/shims", "@angular/compiler-cli/src/ngtsc/typecheck/
|
|
14
|
+
define("@angular/compiler-cli/src/ngtsc/typecheck/src/augmented_program", ["require", "exports", "tslib", "typescript", "@angular/compiler-cli/src/ngtsc/file_system", "@angular/compiler-cli/src/ngtsc/shims", "@angular/compiler-cli/src/ngtsc/typecheck/api", "@angular/compiler-cli/src/ngtsc/typecheck/src/host", "@angular/compiler-cli/src/ngtsc/typecheck/src/shim"], factory);
|
|
15
15
|
}
|
|
16
16
|
})(function (require, exports) {
|
|
17
17
|
"use strict";
|
|
@@ -19,9 +19,11 @@
|
|
|
19
19
|
exports.ReusedProgramStrategy = void 0;
|
|
20
20
|
var tslib_1 = require("tslib");
|
|
21
21
|
var ts = require("typescript");
|
|
22
|
+
var file_system_1 = require("@angular/compiler-cli/src/ngtsc/file_system");
|
|
22
23
|
var shims_1 = require("@angular/compiler-cli/src/ngtsc/shims");
|
|
23
|
-
var api_1 = require("@angular/compiler-cli/src/ngtsc/typecheck/
|
|
24
|
+
var api_1 = require("@angular/compiler-cli/src/ngtsc/typecheck/api");
|
|
24
25
|
var host_1 = require("@angular/compiler-cli/src/ngtsc/typecheck/src/host");
|
|
26
|
+
var shim_1 = require("@angular/compiler-cli/src/ngtsc/typecheck/src/shim");
|
|
25
27
|
/**
|
|
26
28
|
* Implements a template type-checking program using `ts.createProgram` and TypeScript's program
|
|
27
29
|
* reuse functionality.
|
|
@@ -40,6 +42,7 @@
|
|
|
40
42
|
*/
|
|
41
43
|
this.sfMap = new Map();
|
|
42
44
|
this.program = this.originalProgram;
|
|
45
|
+
this.supportsInlineOperations = true;
|
|
43
46
|
}
|
|
44
47
|
ReusedProgramStrategy.prototype.getProgram = function () {
|
|
45
48
|
return this.program;
|
|
@@ -88,8 +91,11 @@
|
|
|
88
91
|
shims_1.untagAllTsFiles(this.program);
|
|
89
92
|
shims_1.untagAllTsFiles(oldProgram);
|
|
90
93
|
};
|
|
94
|
+
ReusedProgramStrategy.prototype.shimPathForComponent = function (node) {
|
|
95
|
+
return shim_1.TypeCheckShimGenerator.shimFor(file_system_1.absoluteFromSourceFile(node.getSourceFile()));
|
|
96
|
+
};
|
|
91
97
|
return ReusedProgramStrategy;
|
|
92
98
|
}());
|
|
93
99
|
exports.ReusedProgramStrategy = ReusedProgramStrategy;
|
|
94
100
|
});
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVnbWVudGVkX3Byb2dyYW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL3R5cGVjaGVjay9zcmMvYXVnbWVudGVkX3Byb2dyYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7OztJQUVILCtCQUFpQztJQUVqQywyRUFBeUU7SUFDekUsK0RBQTZEO0lBQzdELHFFQUErRDtJQUUvRCwyRUFBNEM7SUFDNUMsMkVBQThDO0lBRTlDOzs7T0FHRztJQUNIO1FBV0UsK0JBQ1ksZUFBMkIsRUFBVSxZQUE2QixFQUNsRSxPQUEyQixFQUFVLHFCQUErQjtZQURwRSxvQkFBZSxHQUFmLGVBQWUsQ0FBWTtZQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFpQjtZQUNsRSxZQUFPLEdBQVAsT0FBTyxDQUFvQjtZQUFVLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBVTtZQVpoRjs7Ozs7ZUFLRztZQUNLLFVBQUssR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztZQUV6QyxZQUFPLEdBQWUsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQU0xQyw2QkFBd0IsR0FBRyxJQUFJLENBQUM7UUFGMEMsQ0FBQztRQUlwRiwwQ0FBVSxHQUFWO1lBQ0UsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3RCLENBQUM7UUFFRCwyQ0FBVyxHQUFYLFVBQVksUUFBcUMsRUFBRSxVQUFzQjs7WUFDdkUsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTtnQkFDdkIsd0VBQXdFO2dCQUN4RSw0RkFBNEY7Z0JBQzVGLHFGQUFxRjtnQkFFckYsSUFBSSxVQUFVLEtBQUssZ0JBQVUsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO29CQUMvRCx3RkFBd0Y7b0JBQ3hGLE9BQU87aUJBQ1I7YUFDRjtZQUVELElBQUksVUFBVSxLQUFLLGdCQUFVLENBQUMsUUFBUSxFQUFFO2dCQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ3BCOztnQkFFRCxLQUErQixJQUFBLEtBQUEsaUJBQUEsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFBLGdCQUFBLDRCQUFFO29CQUF4QyxJQUFBLEtBQUEsMkJBQWdCLEVBQWYsUUFBUSxRQUFBLEVBQUUsSUFBSSxRQUFBO29CQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDN0Y7Ozs7Ozs7OztZQUVELElBQU0sSUFBSSxHQUFHLElBQUksMkJBQW9CLENBQ2pDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3JGLElBQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFFaEMsNEZBQTRGO1lBQzVGLGFBQWE7WUFDYix1QkFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRTVCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztnQkFDOUIsSUFBSSxNQUFBO2dCQUNKLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFO2dCQUMxQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ3JCLFVBQVUsWUFBQTthQUNYLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1lBRWxDLDRGQUE0RjtZQUM1Riw0REFBNEQ7WUFDNUQsdUJBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUIsdUJBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QixDQUFDO1FBRUQsb0RBQW9CLEdBQXBCLFVBQXFCLElBQXlCO1lBQzVDLE9BQU8sNkJBQXNCLENBQUMsT0FBTyxDQUFDLG9DQUFzQixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdEYsQ0FBQztRQUNILDRCQUFDO0lBQUQsQ0FBQyxBQWxFRCxJQWtFQztJQWxFWSxzREFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7YWJzb2x1dGVGcm9tU291cmNlRmlsZSwgQWJzb2x1dGVGc1BhdGh9IGZyb20gJy4uLy4uL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7cmV0YWdBbGxUc0ZpbGVzLCB1bnRhZ0FsbFRzRmlsZXN9IGZyb20gJy4uLy4uL3NoaW1zJztcbmltcG9ydCB7VHlwZUNoZWNraW5nUHJvZ3JhbVN0cmF0ZWd5LCBVcGRhdGVNb2RlfSBmcm9tICcuLi9hcGknO1xuXG5pbXBvcnQge1R5cGVDaGVja1Byb2dyYW1Ib3N0fSBmcm9tICcuL2hvc3QnO1xuaW1wb3J0IHtUeXBlQ2hlY2tTaGltR2VuZXJhdG9yfSBmcm9tICcuL3NoaW0nO1xuXG4vKipcbiAqIEltcGxlbWVudHMgYSB0ZW1wbGF0ZSB0eXBlLWNoZWNraW5nIHByb2dyYW0gdXNpbmcgYHRzLmNyZWF0ZVByb2dyYW1gIGFuZCBUeXBlU2NyaXB0J3MgcHJvZ3JhbVxuICogcmV1c2UgZnVuY3Rpb25hbGl0eS5cbiAqL1xuZXhwb3J0IGNsYXNzIFJldXNlZFByb2dyYW1TdHJhdGVneSBpbXBsZW1lbnRzIFR5cGVDaGVja2luZ1Byb2dyYW1TdHJhdGVneSB7XG4gIC8qKlxuICAgKiBBIG1hcCBvZiBzb3VyY2UgZmlsZSBwYXRocyB0byByZXBsYWNlbWVudCBgdHMuU291cmNlRmlsZWBzIGZvciB0aG9zZSBwYXRocy5cbiAgICpcbiAgICogRWZmZWN0aXZlbHksIHRoaXMgdHJhY2tzIHRoZSBkZWx0YSBiZXR3ZWVuIHRoZSB1c2VyJ3MgcHJvZ3JhbSAocmVwcmVzZW50ZWQgYnkgdGhlXG4gICAqIGBvcmlnaW5hbEhvc3RgKSBhbmQgdGhlIHRlbXBsYXRlIHR5cGUtY2hlY2tpbmcgcHJvZ3JhbSBiZWluZyBtYW5hZ2VkLlxuICAgKi9cbiAgcHJpdmF0ZSBzZk1hcCA9IG5ldyBNYXA8c3RyaW5nLCB0cy5Tb3VyY2VGaWxlPigpO1xuXG4gIHByaXZhdGUgcHJvZ3JhbTogdHMuUHJvZ3JhbSA9IHRoaXMub3JpZ2luYWxQcm9ncmFtO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBvcmlnaW5hbFByb2dyYW06IHRzLlByb2dyYW0sIHByaXZhdGUgb3JpZ2luYWxIb3N0OiB0cy5Db21waWxlckhvc3QsXG4gICAgICBwcml2YXRlIG9wdGlvbnM6IHRzLkNvbXBpbGVyT3B0aW9ucywgcHJpdmF0ZSBzaGltRXh0ZW5zaW9uUHJlZml4ZXM6IHN0cmluZ1tdKSB7fVxuXG4gIHJlYWRvbmx5IHN1cHBvcnRzSW5saW5lT3BlcmF0aW9ucyA9IHRydWU7XG5cbiAgZ2V0UHJvZ3JhbSgpOiB0cy5Qcm9ncmFtIHtcbiAgICByZXR1cm4gdGhpcy5wcm9ncmFtO1xuICB9XG5cbiAgdXBkYXRlRmlsZXMoY29udGVudHM6IE1hcDxBYnNvbHV0ZUZzUGF0aCwgc3RyaW5nPiwgdXBkYXRlTW9kZTogVXBkYXRlTW9kZSk6IHZvaWQge1xuICAgIGlmIChjb250ZW50cy5zaXplID09PSAwKSB7XG4gICAgICAvLyBObyBjaGFuZ2VzIGhhdmUgYmVlbiByZXF1ZXN0ZWQuIElzIGl0IHNhZmUgdG8gc2tpcCB1cGRhdGluZyBlbnRpcmVseT9cbiAgICAgIC8vIElmIFVwZGF0ZU1vZGUgaXMgSW5jcmVtZW50YWwsIHRoZW4geWVzLiBJZiBVcGRhdGVNb2RlIGlzIENvbXBsZXRlLCB0aGVuIGl0J3Mgc2FmZSB0byBza2lwXG4gICAgICAvLyBvbmx5IGlmIHRoZXJlIGFyZSBubyBhY3RpdmUgY2hhbmdlcyBhbHJlYWR5ICh0aGF0IHdvdWxkIGJlIGNsZWFyZWQgYnkgdGhlIHVwZGF0ZSkuXG5cbiAgICAgIGlmICh1cGRhdGVNb2RlICE9PSBVcGRhdGVNb2RlLkNvbXBsZXRlIHx8IHRoaXMuc2ZNYXAuc2l6ZSA9PT0gMCkge1xuICAgICAgICAvLyBObyBjaGFuZ2VzIHdvdWxkIGJlIG1hZGUgdG8gdGhlIGB0cy5Qcm9ncmFtYCBhbnl3YXksIHNvIGl0J3Mgc2FmZSB0byBkbyBub3RoaW5nIGhlcmUuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodXBkYXRlTW9kZSA9PT0gVXBkYXRlTW9kZS5Db21wbGV0ZSkge1xuICAgICAgdGhpcy5zZk1hcC5jbGVhcigpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgW2ZpbGVQYXRoLCB0ZXh0XSBvZiBjb250ZW50cy5lbnRyaWVzKCkpIHtcbiAgICAgIHRoaXMuc2ZNYXAuc2V0KGZpbGVQYXRoLCB0cy5jcmVhdGVTb3VyY2VGaWxlKGZpbGVQYXRoLCB0ZXh0LCB0cy5TY3JpcHRUYXJnZXQuTGF0ZXN0LCB0cnVlKSk7XG4gICAgfVxuXG4gICAgY29uc3QgaG9zdCA9IG5ldyBUeXBlQ2hlY2tQcm9ncmFtSG9zdChcbiAgICAgICAgdGhpcy5zZk1hcCwgdGhpcy5vcmlnaW5hbFByb2dyYW0sIHRoaXMub3JpZ2luYWxIb3N0LCB0aGlzLnNoaW1FeHRlbnNpb25QcmVmaXhlcyk7XG4gICAgY29uc3Qgb2xkUHJvZ3JhbSA9IHRoaXMucHJvZ3JhbTtcblxuICAgIC8vIFJldGFnIHRoZSBvbGQgcHJvZ3JhbSdzIGB0cy5Tb3VyY2VGaWxlYHMgd2l0aCBzaGltIHRhZ3MsIHRvIGFsbG93IFR5cGVTY3JpcHQgdG8gcmV1c2UgdGhlXG4gICAgLy8gbW9zdCBkYXRhLlxuICAgIHJldGFnQWxsVHNGaWxlcyhvbGRQcm9ncmFtKTtcblxuICAgIHRoaXMucHJvZ3JhbSA9IHRzLmNyZWF0ZVByb2dyYW0oe1xuICAgICAgaG9zdCxcbiAgICAgIHJvb3ROYW1lczogdGhpcy5wcm9ncmFtLmdldFJvb3RGaWxlTmFtZXMoKSxcbiAgICAgIG9wdGlvbnM6IHRoaXMub3B0aW9ucyxcbiAgICAgIG9sZFByb2dyYW0sXG4gICAgfSk7XG4gICAgaG9zdC5wb3N0UHJvZ3JhbUNyZWF0aW9uQ2xlYW51cCgpO1xuXG4gICAgLy8gQW5kIHVudGFnIHRoZW0gYWZ0ZXJ3YXJkcy4gV2UgZXhwbGljaXRseSB1bnRhZyBib3RoIHByb2dyYW1zIGhlcmUsIGJlY2F1c2UgdGhlIG9sZFByb2dyYW1cbiAgICAvLyBtYXkgc3RpbGwgYmUgdXNlZCBmb3IgZW1pdCBhbmQgbmVlZHMgdG8gbm90IGNvbnRhaW4gdGFncy5cbiAgICB1bnRhZ0FsbFRzRmlsZXModGhpcy5wcm9ncmFtKTtcbiAgICB1bnRhZ0FsbFRzRmlsZXMob2xkUHJvZ3JhbSk7XG4gIH1cblxuICBzaGltUGF0aEZvckNvbXBvbmVudChub2RlOiB0cy5DbGFzc0RlY2xhcmF0aW9uKTogQWJzb2x1dGVGc1BhdGgge1xuICAgIHJldHVybiBUeXBlQ2hlY2tTaGltR2VuZXJhdG9yLnNoaW1Gb3IoYWJzb2x1dGVGcm9tU291cmNlRmlsZShub2RlLmdldFNvdXJjZUZpbGUoKSkpO1xuICB9XG59XG4iXX0=
|
|
@@ -6,43 +6,88 @@
|
|
|
6
6
|
* found in the LICENSE file at https://angular.io/license
|
|
7
7
|
*/
|
|
8
8
|
/// <amd-module name="@angular/compiler-cli/src/ngtsc/typecheck/src/checker" />
|
|
9
|
+
import { ParseError, TmplAstNode } from '@angular/compiler';
|
|
9
10
|
import * as ts from 'typescript';
|
|
11
|
+
import { AbsoluteFsPath } from '../../file_system';
|
|
10
12
|
import { ReferenceEmitter } from '../../imports';
|
|
11
13
|
import { IncrementalBuild } from '../../incremental/api';
|
|
12
14
|
import { ReflectionHost } from '../../reflection';
|
|
13
|
-
import { TypeCheckingConfig, TypeCheckingProgramStrategy } from '
|
|
14
|
-
import {
|
|
15
|
-
|
|
16
|
-
* Interface to trigger generation of type-checking code for a program given a new
|
|
17
|
-
* `TypeCheckContext`.
|
|
18
|
-
*/
|
|
19
|
-
export interface ProgramTypeCheckAdapter {
|
|
20
|
-
typeCheck(sf: ts.SourceFile, ctx: TypeCheckContext): void;
|
|
21
|
-
}
|
|
15
|
+
import { OptimizeFor, ProgramTypeCheckAdapter, TemplateId, TemplateTypeChecker, TypeCheckingConfig, TypeCheckingProgramStrategy } from '../api';
|
|
16
|
+
import { ShimTypeCheckingData } from './context';
|
|
17
|
+
import { TemplateSourceManager } from './source';
|
|
22
18
|
/**
|
|
23
19
|
* Primary template type-checking engine, which performs type-checking using a
|
|
24
20
|
* `TypeCheckingProgramStrategy` for type-checking program maintenance, and the
|
|
25
21
|
* `ProgramTypeCheckAdapter` for generation of template type-checking code.
|
|
26
22
|
*/
|
|
27
|
-
export declare class TemplateTypeChecker {
|
|
23
|
+
export declare class TemplateTypeCheckerImpl implements TemplateTypeChecker {
|
|
28
24
|
private originalProgram;
|
|
29
|
-
|
|
25
|
+
readonly typeCheckingStrategy: TypeCheckingProgramStrategy;
|
|
30
26
|
private typeCheckAdapter;
|
|
31
27
|
private config;
|
|
32
28
|
private refEmitter;
|
|
33
29
|
private reflector;
|
|
34
30
|
private compilerHost;
|
|
35
31
|
private priorBuild;
|
|
36
|
-
private
|
|
32
|
+
private state;
|
|
33
|
+
private isComplete;
|
|
37
34
|
constructor(originalProgram: ts.Program, typeCheckingStrategy: TypeCheckingProgramStrategy, typeCheckAdapter: ProgramTypeCheckAdapter, config: TypeCheckingConfig, refEmitter: ReferenceEmitter, reflector: ReflectionHost, compilerHost: Pick<ts.CompilerHost, 'getCanonicalFileName'>, priorBuild: IncrementalBuild<unknown, FileTypeCheckingData>);
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
35
|
+
resetOverrides(): void;
|
|
36
|
+
overrideComponentTemplate(component: ts.ClassDeclaration, template: string): {
|
|
37
|
+
nodes: TmplAstNode[];
|
|
38
|
+
errors?: ParseError[];
|
|
39
|
+
};
|
|
43
40
|
/**
|
|
44
41
|
* Retrieve type-checking diagnostics from the given `ts.SourceFile` using the most recent
|
|
45
42
|
* type-checking program.
|
|
46
43
|
*/
|
|
47
|
-
getDiagnosticsForFile(sf: ts.SourceFile): ts.Diagnostic[];
|
|
44
|
+
getDiagnosticsForFile(sf: ts.SourceFile, optimizeFor: OptimizeFor): ts.Diagnostic[];
|
|
45
|
+
getDiagnosticsForComponent(component: ts.ClassDeclaration): ts.Diagnostic[];
|
|
46
|
+
getTypeCheckBlock(component: ts.ClassDeclaration): ts.Node | null;
|
|
47
|
+
private maybeAdoptPriorResultsForFile;
|
|
48
|
+
private ensureAllShimsForAllFiles;
|
|
49
|
+
private ensureAllShimsForOneFile;
|
|
50
|
+
private ensureShimForComponent;
|
|
51
|
+
private newContext;
|
|
52
|
+
/**
|
|
53
|
+
* Remove any shim data that depends on inline operations applied to the type-checking program.
|
|
54
|
+
*
|
|
55
|
+
* This can be useful if new inlines need to be applied, and it's not possible to guarantee that
|
|
56
|
+
* they won't overwrite or corrupt existing inlines that are used by such shims.
|
|
57
|
+
*/
|
|
58
|
+
clearAllShimDataUsingInlines(): void;
|
|
59
|
+
private updateFromContext;
|
|
60
|
+
getFileData(path: AbsoluteFsPath): FileTypeCheckingData;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Data for template type-checking related to a specific input file in the user's program (which
|
|
64
|
+
* contains components to be checked).
|
|
65
|
+
*/
|
|
66
|
+
export interface FileTypeCheckingData {
|
|
67
|
+
/**
|
|
68
|
+
* Whether the type-checking shim required any inline changes to the original file, which affects
|
|
69
|
+
* whether the shim can be reused.
|
|
70
|
+
*/
|
|
71
|
+
hasInlines: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Source mapping information for mapping diagnostics from inlined type check blocks back to the
|
|
74
|
+
* original template.
|
|
75
|
+
*/
|
|
76
|
+
sourceManager: TemplateSourceManager;
|
|
77
|
+
/**
|
|
78
|
+
* Map of template overrides applied to any components in this input file.
|
|
79
|
+
*/
|
|
80
|
+
templateOverrides: Map<TemplateId, TmplAstNode[]> | null;
|
|
81
|
+
/**
|
|
82
|
+
* Data for each shim generated from this input file.
|
|
83
|
+
*
|
|
84
|
+
* A single input file will generate one or more shim files that actually contain template
|
|
85
|
+
* type-checking code.
|
|
86
|
+
*/
|
|
87
|
+
shimData: Map<AbsoluteFsPath, ShimTypeCheckingData>;
|
|
88
|
+
/**
|
|
89
|
+
* Whether the template type-checker is certain that all components from this input file have had
|
|
90
|
+
* type-checking code generated into shims.
|
|
91
|
+
*/
|
|
92
|
+
isComplete: boolean;
|
|
48
93
|
}
|