@angular/core 15.1.0-next.3 → 15.1.0-rc.0
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/esm2020/src/application_ref.mjs +2 -2
- package/esm2020/src/di/injector_compatibility.mjs +2 -2
- package/esm2020/src/errors.mjs +1 -1
- package/esm2020/src/linker/view_ref.mjs +1 -1
- package/esm2020/src/render3/i18n/i18n_parse.mjs +17 -2
- package/esm2020/src/util/global.mjs +1 -1
- package/esm2020/src/version.mjs +1 -1
- package/esm2020/testing/src/component_fixture.mjs +1 -1
- package/esm2020/testing/src/logger.mjs +7 -7
- package/esm2020/testing/src/ng_zone_mock.mjs +3 -3
- package/fesm2015/core.mjs +101 -1558
- package/fesm2015/core.mjs.map +1 -1
- package/fesm2015/testing.mjs +78 -1333
- package/fesm2015/testing.mjs.map +1 -1
- package/fesm2020/core.mjs +103 -1582
- package/fesm2020/core.mjs.map +1 -1
- package/fesm2020/testing.mjs +80 -1357
- package/fesm2020/testing.mjs.map +1 -1
- package/index.d.ts +3 -3
- package/package.json +1 -1
- package/schematics/migrations/relative-link-resolution/bundle.js +265 -0
- package/schematics/migrations/relative-link-resolution/bundle.js.map +7 -0
- package/schematics/migrations/relative-link-resolution/bundle_metadata.json +1 -0
- package/schematics/migrations/router-link-with-href/bundle.js +350 -0
- package/schematics/migrations/router-link-with-href/bundle.js.map +7 -0
- package/schematics/migrations/router-link-with-href/bundle_metadata.json +1 -0
- package/schematics/migrations.json +2 -2
- package/testing/index.d.ts +1 -1
- package/esm2020/src/render3/util/debug_utils.mjs +0 -40
- package/esm2020/testing/src/lang_utils.mjs +0 -14
- package/schematics/migrations/relative-link-resolution/index.d.ts +0 -10
- package/schematics/migrations/relative-link-resolution/index.js +0 -68
- package/schematics/migrations/relative-link-resolution/util.d.ts +0 -20
- package/schematics/migrations/relative-link-resolution/util.js +0 -82
- package/schematics/migrations/router-link-with-href/index.d.ts +0 -10
- package/schematics/migrations/router-link-with-href/index.js +0 -70
- package/schematics/migrations/router-link-with-href/util.d.ts +0 -19
- package/schematics/migrations/router-link-with-href/util.js +0 -111
- package/schematics/utils/import_manager.d.ts +0 -57
- package/schematics/utils/import_manager.js +0 -234
- package/schematics/utils/line_mappings.d.ts +0 -18
- package/schematics/utils/line_mappings.js +0 -75
- package/schematics/utils/load_esm.d.ts +0 -32
- package/schematics/utils/load_esm.js +0 -79
- package/schematics/utils/ng_component_template.d.ts +0 -44
- package/schematics/utils/ng_component_template.js +0 -131
- package/schematics/utils/ng_decorators.d.ts +0 -23
- package/schematics/utils/ng_decorators.js +0 -37
- package/schematics/utils/parse_html.d.ts +0 -14
- package/schematics/utils/parse_html.js +0 -37
- package/schematics/utils/project_tsconfig_paths.d.ts +0 -17
- package/schematics/utils/project_tsconfig_paths.js +0 -122
- package/schematics/utils/template_ast_visitor.d.ts +0 -55
- package/schematics/utils/template_ast_visitor.js +0 -73
- package/schematics/utils/typescript/class_declaration.d.ts +0 -15
- package/schematics/utils/typescript/class_declaration.js +0 -52
- package/schematics/utils/typescript/compiler_host.d.ts +0 -34
- package/schematics/utils/typescript/compiler_host.js +0 -85
- package/schematics/utils/typescript/decorators.d.ts +0 -11
- package/schematics/utils/typescript/decorators.js +0 -37
- package/schematics/utils/typescript/find_base_classes.d.ts +0 -14
- package/schematics/utils/typescript/find_base_classes.js +0 -47
- package/schematics/utils/typescript/functions.d.ts +0 -17
- package/schematics/utils/typescript/functions.js +0 -46
- package/schematics/utils/typescript/imports.d.ts +0 -53
- package/schematics/utils/typescript/imports.js +0 -128
- package/schematics/utils/typescript/nodes.d.ts +0 -20
- package/schematics/utils/typescript/nodes.js +0 -77
- package/schematics/utils/typescript/parse_tsconfig.d.ts +0 -10
- package/schematics/utils/typescript/parse_tsconfig.js +0 -66
- package/schematics/utils/typescript/property_name.d.ts +0 -19
- package/schematics/utils/typescript/property_name.js +0 -41
- package/schematics/utils/typescript/symbol.d.ts +0 -19
- package/schematics/utils/typescript/symbol.js +0 -93
|
@@ -1,52 +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/utils/typescript/class_declaration", ["require", "exports", "typescript"], factory);
|
|
18
|
-
}
|
|
19
|
-
})(function (require, exports) {
|
|
20
|
-
"use strict";
|
|
21
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.hasExplicitConstructor = exports.findParentClassDeclaration = exports.getBaseTypeIdentifiers = void 0;
|
|
23
|
-
const typescript_1 = __importDefault(require("typescript"));
|
|
24
|
-
/** Determines the base type identifiers of a specified class declaration. */
|
|
25
|
-
function getBaseTypeIdentifiers(node) {
|
|
26
|
-
if (!node.heritageClauses) {
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
return node.heritageClauses.filter(clause => clause.token === typescript_1.default.SyntaxKind.ExtendsKeyword)
|
|
30
|
-
.reduce((types, clause) => types.concat(clause.types), [])
|
|
31
|
-
.map(typeExpression => typeExpression.expression)
|
|
32
|
-
.filter(typescript_1.default.isIdentifier);
|
|
33
|
-
}
|
|
34
|
-
exports.getBaseTypeIdentifiers = getBaseTypeIdentifiers;
|
|
35
|
-
/** Gets the first found parent class declaration of a given node. */
|
|
36
|
-
function findParentClassDeclaration(node) {
|
|
37
|
-
while (!typescript_1.default.isClassDeclaration(node)) {
|
|
38
|
-
if (typescript_1.default.isSourceFile(node)) {
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
node = node.parent;
|
|
42
|
-
}
|
|
43
|
-
return node;
|
|
44
|
-
}
|
|
45
|
-
exports.findParentClassDeclaration = findParentClassDeclaration;
|
|
46
|
-
/** Checks whether the given class declaration has an explicit constructor or not. */
|
|
47
|
-
function hasExplicitConstructor(node) {
|
|
48
|
-
return node.members.some(typescript_1.default.isConstructorDeclaration);
|
|
49
|
-
}
|
|
50
|
-
exports.hasExplicitConstructor = hasExplicitConstructor;
|
|
51
|
-
});
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NfZGVjbGFyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NjaGVtYXRpY3MvdXRpbHMvdHlwZXNjcmlwdC9jbGFzc19kZWNsYXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFSCw0REFBNEI7SUFFNUIsNkVBQTZFO0lBQzdFLFNBQWdCLHNCQUFzQixDQUFDLElBQXlCO1FBQzlELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxvQkFBRSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUM7YUFDdEYsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBc0MsQ0FBQzthQUM3RixHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO2FBQ2hELE1BQU0sQ0FBQyxvQkFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFURCx3REFTQztJQUVELHFFQUFxRTtJQUNyRSxTQUFnQiwwQkFBMEIsQ0FBQyxJQUFhO1FBQ3RELE9BQU8sQ0FBQyxvQkFBRSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ25DLElBQUksb0JBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3pCLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFDRCxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUNwQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQVJELGdFQVFDO0lBRUQscUZBQXFGO0lBQ3JGLFNBQWdCLHNCQUFzQixDQUFDLElBQXlCO1FBQzlELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFGRCx3REFFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbi8qKiBEZXRlcm1pbmVzIHRoZSBiYXNlIHR5cGUgaWRlbnRpZmllcnMgb2YgYSBzcGVjaWZpZWQgY2xhc3MgZGVjbGFyYXRpb24uICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QmFzZVR5cGVJZGVudGlmaWVycyhub2RlOiB0cy5DbGFzc0RlY2xhcmF0aW9uKTogdHMuSWRlbnRpZmllcltdfG51bGwge1xuICBpZiAoIW5vZGUuaGVyaXRhZ2VDbGF1c2VzKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gbm9kZS5oZXJpdGFnZUNsYXVzZXMuZmlsdGVyKGNsYXVzZSA9PiBjbGF1c2UudG9rZW4gPT09IHRzLlN5bnRheEtpbmQuRXh0ZW5kc0tleXdvcmQpXG4gICAgICAucmVkdWNlKCh0eXBlcywgY2xhdXNlKSA9PiB0eXBlcy5jb25jYXQoY2xhdXNlLnR5cGVzKSwgW10gYXMgdHMuRXhwcmVzc2lvbldpdGhUeXBlQXJndW1lbnRzW10pXG4gICAgICAubWFwKHR5cGVFeHByZXNzaW9uID0+IHR5cGVFeHByZXNzaW9uLmV4cHJlc3Npb24pXG4gICAgICAuZmlsdGVyKHRzLmlzSWRlbnRpZmllcik7XG59XG5cbi8qKiBHZXRzIHRoZSBmaXJzdCBmb3VuZCBwYXJlbnQgY2xhc3MgZGVjbGFyYXRpb24gb2YgYSBnaXZlbiBub2RlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRQYXJlbnRDbGFzc0RlY2xhcmF0aW9uKG5vZGU6IHRzLk5vZGUpOiB0cy5DbGFzc0RlY2xhcmF0aW9ufG51bGwge1xuICB3aGlsZSAoIXRzLmlzQ2xhc3NEZWNsYXJhdGlvbihub2RlKSkge1xuICAgIGlmICh0cy5pc1NvdXJjZUZpbGUobm9kZSkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBub2RlID0gbm9kZS5wYXJlbnQ7XG4gIH1cbiAgcmV0dXJuIG5vZGU7XG59XG5cbi8qKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gY2xhc3MgZGVjbGFyYXRpb24gaGFzIGFuIGV4cGxpY2l0IGNvbnN0cnVjdG9yIG9yIG5vdC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNFeHBsaWNpdENvbnN0cnVjdG9yKG5vZGU6IHRzLkNsYXNzRGVjbGFyYXRpb24pOiBib29sZWFuIHtcbiAgcmV0dXJuIG5vZGUubWVtYmVycy5zb21lKHRzLmlzQ29uc3RydWN0b3JEZWNsYXJhdGlvbik7XG59XG4iXX0=
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/// <amd-module name="@angular/core/schematics/utils/typescript/compiler_host" />
|
|
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 { Tree } from '@angular-devkit/schematics';
|
|
10
|
-
import ts from 'typescript';
|
|
11
|
-
export type FakeReadFileFn = (fileName: string) => string | undefined;
|
|
12
|
-
/**
|
|
13
|
-
* Creates a TypeScript program instance for a TypeScript project within
|
|
14
|
-
* the virtual file system tree.
|
|
15
|
-
* @param tree Virtual file system tree that contains the source files.
|
|
16
|
-
* @param tsconfigPath Virtual file system path that resolves to the TypeScript project.
|
|
17
|
-
* @param basePath Base path for the virtual file system tree.
|
|
18
|
-
* @param fakeFileRead Optional file reader function. Can be used to overwrite files in
|
|
19
|
-
* the TypeScript program, or to add in-memory files (e.g. to add global types).
|
|
20
|
-
* @param additionalFiles Additional file paths that should be added to the program.
|
|
21
|
-
*/
|
|
22
|
-
export declare function createMigrationProgram(tree: Tree, tsconfigPath: string, basePath: string, fakeFileRead?: FakeReadFileFn, additionalFiles?: string[]): {
|
|
23
|
-
parsed: ts.ParsedCommandLine;
|
|
24
|
-
host: ts.CompilerHost;
|
|
25
|
-
program: ts.Program;
|
|
26
|
-
};
|
|
27
|
-
export declare function createMigrationCompilerHost(tree: Tree, options: ts.CompilerOptions, basePath: string, fakeRead?: FakeReadFileFn): ts.CompilerHost;
|
|
28
|
-
/**
|
|
29
|
-
* Checks whether a file can be migrate by our automated migrations.
|
|
30
|
-
* @param basePath Absolute path to the project.
|
|
31
|
-
* @param sourceFile File being checked.
|
|
32
|
-
* @param program Program that includes the source file.
|
|
33
|
-
*/
|
|
34
|
-
export declare function canMigrateFile(basePath: string, sourceFile: ts.SourceFile, program: ts.Program): boolean;
|
|
@@ -1,85 +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/utils/typescript/compiler_host", ["require", "exports", "path", "typescript", "@angular/core/schematics/utils/typescript/parse_tsconfig"], factory);
|
|
11
|
-
}
|
|
12
|
-
})(function (require, exports) {
|
|
13
|
-
"use strict";
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.canMigrateFile = exports.createMigrationCompilerHost = exports.createMigrationProgram = void 0;
|
|
16
|
-
const path_1 = require("path");
|
|
17
|
-
const typescript_1 = __importDefault(require("typescript"));
|
|
18
|
-
const parse_tsconfig_1 = require("@angular/core/schematics/utils/typescript/parse_tsconfig");
|
|
19
|
-
/**
|
|
20
|
-
* Creates a TypeScript program instance for a TypeScript project within
|
|
21
|
-
* the virtual file system tree.
|
|
22
|
-
* @param tree Virtual file system tree that contains the source files.
|
|
23
|
-
* @param tsconfigPath Virtual file system path that resolves to the TypeScript project.
|
|
24
|
-
* @param basePath Base path for the virtual file system tree.
|
|
25
|
-
* @param fakeFileRead Optional file reader function. Can be used to overwrite files in
|
|
26
|
-
* the TypeScript program, or to add in-memory files (e.g. to add global types).
|
|
27
|
-
* @param additionalFiles Additional file paths that should be added to the program.
|
|
28
|
-
*/
|
|
29
|
-
function createMigrationProgram(tree, tsconfigPath, basePath, fakeFileRead, additionalFiles) {
|
|
30
|
-
// Resolve the tsconfig path to an absolute path. This is needed as TypeScript otherwise
|
|
31
|
-
// is not able to resolve root directories in the given tsconfig. More details can be found
|
|
32
|
-
// in the following issue: https://github.com/microsoft/TypeScript/issues/37731.
|
|
33
|
-
tsconfigPath = (0, path_1.resolve)(basePath, tsconfigPath);
|
|
34
|
-
const parsed = (0, parse_tsconfig_1.parseTsconfigFile)(tsconfigPath, (0, path_1.dirname)(tsconfigPath));
|
|
35
|
-
const host = createMigrationCompilerHost(tree, parsed.options, basePath, fakeFileRead);
|
|
36
|
-
const program = typescript_1.default.createProgram(parsed.fileNames.concat(additionalFiles || []), parsed.options, host);
|
|
37
|
-
return { parsed, host, program };
|
|
38
|
-
}
|
|
39
|
-
exports.createMigrationProgram = createMigrationProgram;
|
|
40
|
-
function createMigrationCompilerHost(tree, options, basePath, fakeRead) {
|
|
41
|
-
const host = typescript_1.default.createCompilerHost(options, true);
|
|
42
|
-
const defaultReadFile = host.readFile;
|
|
43
|
-
// We need to overwrite the host "readFile" method, as we want the TypeScript
|
|
44
|
-
// program to be based on the file contents in the virtual file tree. Otherwise
|
|
45
|
-
// if we run multiple migrations we might have intersecting changes and
|
|
46
|
-
// source files.
|
|
47
|
-
host.readFile = fileName => {
|
|
48
|
-
var _a;
|
|
49
|
-
const treeRelativePath = (0, path_1.relative)(basePath, fileName);
|
|
50
|
-
let result = fakeRead === null || fakeRead === void 0 ? void 0 : fakeRead(treeRelativePath);
|
|
51
|
-
if (result === undefined) {
|
|
52
|
-
// If the relative path resolved to somewhere outside of the tree, fall back to
|
|
53
|
-
// TypeScript's default file reading function since the `tree` will throw an error.
|
|
54
|
-
result = treeRelativePath.startsWith('..') ? defaultReadFile.call(host, fileName) :
|
|
55
|
-
(_a = tree.read(treeRelativePath)) === null || _a === void 0 ? void 0 : _a.toString();
|
|
56
|
-
}
|
|
57
|
-
// Strip BOM as otherwise TSC methods (Ex: getWidth) will return an offset,
|
|
58
|
-
// which breaks the CLI UpdateRecorder.
|
|
59
|
-
// See: https://github.com/angular/angular/pull/30719
|
|
60
|
-
return result ? result.replace(/^\uFEFF/, '') : undefined;
|
|
61
|
-
};
|
|
62
|
-
return host;
|
|
63
|
-
}
|
|
64
|
-
exports.createMigrationCompilerHost = createMigrationCompilerHost;
|
|
65
|
-
/**
|
|
66
|
-
* Checks whether a file can be migrate by our automated migrations.
|
|
67
|
-
* @param basePath Absolute path to the project.
|
|
68
|
-
* @param sourceFile File being checked.
|
|
69
|
-
* @param program Program that includes the source file.
|
|
70
|
-
*/
|
|
71
|
-
function canMigrateFile(basePath, sourceFile, program) {
|
|
72
|
-
// We shouldn't migrate .d.ts files or files from an external library.
|
|
73
|
-
if (sourceFile.isDeclarationFile || program.isSourceFileFromExternalLibrary(sourceFile)) {
|
|
74
|
-
return false;
|
|
75
|
-
}
|
|
76
|
-
// Our migrations are set up to create a `Program` from the project's tsconfig and to migrate all
|
|
77
|
-
// the files within the program. This can include files that are outside of the Angular CLI
|
|
78
|
-
// project. We can't migrate files outside of the project, because our file system interactions
|
|
79
|
-
// go through the CLI's `Tree` which assumes that all files are within the project. See:
|
|
80
|
-
// https://github.com/angular/angular-cli/blob/0b0961c9c233a825b6e4bb59ab7f0790f9b14676/packages/angular_devkit/schematics/src/tree/host-tree.ts#L131
|
|
81
|
-
return !(0, path_1.relative)(basePath, sourceFile.fileName).startsWith('..');
|
|
82
|
-
}
|
|
83
|
-
exports.canMigrateFile = canMigrateFile;
|
|
84
|
-
});
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZXJfaG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc2NoZW1hdGljcy91dGlscy90eXBlc2NyaXB0L2NvbXBpbGVyX2hvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0lBUUEsK0JBQWdEO0lBQ2hELDREQUE0QjtJQUM1Qiw2RkFBbUQ7SUFJbkQ7Ozs7Ozs7OztPQVNHO0lBQ0gsU0FBZ0Isc0JBQXNCLENBQ2xDLElBQVUsRUFBRSxZQUFvQixFQUFFLFFBQWdCLEVBQUUsWUFBNkIsRUFDakYsZUFBMEI7UUFDNUIsd0ZBQXdGO1FBQ3hGLDJGQUEyRjtRQUMzRixnRkFBZ0Y7UUFDaEYsWUFBWSxHQUFHLElBQUEsY0FBTyxFQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMvQyxNQUFNLE1BQU0sR0FBRyxJQUFBLGtDQUFpQixFQUFDLFlBQVksRUFBRSxJQUFBLGNBQU8sRUFBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sSUFBSSxHQUFHLDJCQUEyQixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUN2RixNQUFNLE9BQU8sR0FDVCxvQkFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzRixPQUFPLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUMsQ0FBQztJQUNqQyxDQUFDO0lBWkQsd0RBWUM7SUFFRCxTQUFnQiwyQkFBMkIsQ0FDdkMsSUFBVSxFQUFFLE9BQTJCLEVBQUUsUUFBZ0IsRUFDekQsUUFBeUI7UUFDM0IsTUFBTSxJQUFJLEdBQUcsb0JBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUV0Qyw2RUFBNkU7UUFDN0UsK0VBQStFO1FBQy9FLHVFQUF1RTtRQUN2RSxnQkFBZ0I7UUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsRUFBRTs7WUFDekIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLGVBQVEsRUFBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDdEQsSUFBSSxNQUFNLEdBQXFCLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRyxnQkFBZ0IsQ0FBQyxDQUFDO1lBRTVELElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtnQkFDeEIsK0VBQStFO2dCQUMvRSxtRkFBbUY7Z0JBQ25GLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7b0JBQ3RDLE1BQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQywwQ0FBRSxRQUFRLEVBQUUsQ0FBQzthQUN0RjtZQUVELDJFQUEyRTtZQUMzRSx1Q0FBdUM7WUFDdkMscURBQXFEO1lBQ3JELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzVELENBQUMsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQTVCRCxrRUE0QkM7SUFFRDs7Ozs7T0FLRztJQUNILFNBQWdCLGNBQWMsQ0FDMUIsUUFBZ0IsRUFBRSxVQUF5QixFQUFFLE9BQW1CO1FBQ2xFLHNFQUFzRTtRQUN0RSxJQUFJLFVBQVUsQ0FBQyxpQkFBaUIsSUFBSSxPQUFPLENBQUMsK0JBQStCLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDdkYsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELGlHQUFpRztRQUNqRywyRkFBMkY7UUFDM0YsK0ZBQStGO1FBQy9GLHdGQUF3RjtRQUN4RixxSkFBcUo7UUFDckosT0FBTyxDQUFDLElBQUEsZUFBUSxFQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFiRCx3Q0FhQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtUcmVlfSBmcm9tICdAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcyc7XG5pbXBvcnQge2Rpcm5hbWUsIHJlbGF0aXZlLCByZXNvbHZlfSBmcm9tICdwYXRoJztcbmltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7cGFyc2VUc2NvbmZpZ0ZpbGV9IGZyb20gJy4vcGFyc2VfdHNjb25maWcnO1xuXG5leHBvcnQgdHlwZSBGYWtlUmVhZEZpbGVGbiA9IChmaWxlTmFtZTogc3RyaW5nKSA9PiBzdHJpbmd8dW5kZWZpbmVkO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBUeXBlU2NyaXB0IHByb2dyYW0gaW5zdGFuY2UgZm9yIGEgVHlwZVNjcmlwdCBwcm9qZWN0IHdpdGhpblxuICogdGhlIHZpcnR1YWwgZmlsZSBzeXN0ZW0gdHJlZS5cbiAqIEBwYXJhbSB0cmVlIFZpcnR1YWwgZmlsZSBzeXN0ZW0gdHJlZSB0aGF0IGNvbnRhaW5zIHRoZSBzb3VyY2UgZmlsZXMuXG4gKiBAcGFyYW0gdHNjb25maWdQYXRoIFZpcnR1YWwgZmlsZSBzeXN0ZW0gcGF0aCB0aGF0IHJlc29sdmVzIHRvIHRoZSBUeXBlU2NyaXB0IHByb2plY3QuXG4gKiBAcGFyYW0gYmFzZVBhdGggQmFzZSBwYXRoIGZvciB0aGUgdmlydHVhbCBmaWxlIHN5c3RlbSB0cmVlLlxuICogQHBhcmFtIGZha2VGaWxlUmVhZCBPcHRpb25hbCBmaWxlIHJlYWRlciBmdW5jdGlvbi4gQ2FuIGJlIHVzZWQgdG8gb3ZlcndyaXRlIGZpbGVzIGluXG4gKiAgIHRoZSBUeXBlU2NyaXB0IHByb2dyYW0sIG9yIHRvIGFkZCBpbi1tZW1vcnkgZmlsZXMgKGUuZy4gdG8gYWRkIGdsb2JhbCB0eXBlcykuXG4gKiBAcGFyYW0gYWRkaXRpb25hbEZpbGVzIEFkZGl0aW9uYWwgZmlsZSBwYXRocyB0aGF0IHNob3VsZCBiZSBhZGRlZCB0byB0aGUgcHJvZ3JhbS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1pZ3JhdGlvblByb2dyYW0oXG4gICAgdHJlZTogVHJlZSwgdHNjb25maWdQYXRoOiBzdHJpbmcsIGJhc2VQYXRoOiBzdHJpbmcsIGZha2VGaWxlUmVhZD86IEZha2VSZWFkRmlsZUZuLFxuICAgIGFkZGl0aW9uYWxGaWxlcz86IHN0cmluZ1tdKSB7XG4gIC8vIFJlc29sdmUgdGhlIHRzY29uZmlnIHBhdGggdG8gYW4gYWJzb2x1dGUgcGF0aC4gVGhpcyBpcyBuZWVkZWQgYXMgVHlwZVNjcmlwdCBvdGhlcndpc2VcbiAgLy8gaXMgbm90IGFibGUgdG8gcmVzb2x2ZSByb290IGRpcmVjdG9yaWVzIGluIHRoZSBnaXZlbiB0c2NvbmZpZy4gTW9yZSBkZXRhaWxzIGNhbiBiZSBmb3VuZFxuICAvLyBpbiB0aGUgZm9sbG93aW5nIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQvaXNzdWVzLzM3NzMxLlxuICB0c2NvbmZpZ1BhdGggPSByZXNvbHZlKGJhc2VQYXRoLCB0c2NvbmZpZ1BhdGgpO1xuICBjb25zdCBwYXJzZWQgPSBwYXJzZVRzY29uZmlnRmlsZSh0c2NvbmZpZ1BhdGgsIGRpcm5hbWUodHNjb25maWdQYXRoKSk7XG4gIGNvbnN0IGhvc3QgPSBjcmVhdGVNaWdyYXRpb25Db21waWxlckhvc3QodHJlZSwgcGFyc2VkLm9wdGlvbnMsIGJhc2VQYXRoLCBmYWtlRmlsZVJlYWQpO1xuICBjb25zdCBwcm9ncmFtID1cbiAgICAgIHRzLmNyZWF0ZVByb2dyYW0ocGFyc2VkLmZpbGVOYW1lcy5jb25jYXQoYWRkaXRpb25hbEZpbGVzIHx8IFtdKSwgcGFyc2VkLm9wdGlvbnMsIGhvc3QpO1xuICByZXR1cm4ge3BhcnNlZCwgaG9zdCwgcHJvZ3JhbX07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNaWdyYXRpb25Db21waWxlckhvc3QoXG4gICAgdHJlZTogVHJlZSwgb3B0aW9uczogdHMuQ29tcGlsZXJPcHRpb25zLCBiYXNlUGF0aDogc3RyaW5nLFxuICAgIGZha2VSZWFkPzogRmFrZVJlYWRGaWxlRm4pOiB0cy5Db21waWxlckhvc3Qge1xuICBjb25zdCBob3N0ID0gdHMuY3JlYXRlQ29tcGlsZXJIb3N0KG9wdGlvbnMsIHRydWUpO1xuICBjb25zdCBkZWZhdWx0UmVhZEZpbGUgPSBob3N0LnJlYWRGaWxlO1xuXG4gIC8vIFdlIG5lZWQgdG8gb3ZlcndyaXRlIHRoZSBob3N0IFwicmVhZEZpbGVcIiBtZXRob2QsIGFzIHdlIHdhbnQgdGhlIFR5cGVTY3JpcHRcbiAgLy8gcHJvZ3JhbSB0byBiZSBiYXNlZCBvbiB0aGUgZmlsZSBjb250ZW50cyBpbiB0aGUgdmlydHVhbCBmaWxlIHRyZWUuIE90aGVyd2lzZVxuICAvLyBpZiB3ZSBydW4gbXVsdGlwbGUgbWlncmF0aW9ucyB3ZSBtaWdodCBoYXZlIGludGVyc2VjdGluZyBjaGFuZ2VzIGFuZFxuICAvLyBzb3VyY2UgZmlsZXMuXG4gIGhvc3QucmVhZEZpbGUgPSBmaWxlTmFtZSA9PiB7XG4gICAgY29uc3QgdHJlZVJlbGF0aXZlUGF0aCA9IHJlbGF0aXZlKGJhc2VQYXRoLCBmaWxlTmFtZSk7XG4gICAgbGV0IHJlc3VsdDogc3RyaW5nfHVuZGVmaW5lZCA9IGZha2VSZWFkPy4odHJlZVJlbGF0aXZlUGF0aCk7XG5cbiAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIElmIHRoZSByZWxhdGl2ZSBwYXRoIHJlc29sdmVkIHRvIHNvbWV3aGVyZSBvdXRzaWRlIG9mIHRoZSB0cmVlLCBmYWxsIGJhY2sgdG9cbiAgICAgIC8vIFR5cGVTY3JpcHQncyBkZWZhdWx0IGZpbGUgcmVhZGluZyBmdW5jdGlvbiBzaW5jZSB0aGUgYHRyZWVgIHdpbGwgdGhyb3cgYW4gZXJyb3IuXG4gICAgICByZXN1bHQgPSB0cmVlUmVsYXRpdmVQYXRoLnN0YXJ0c1dpdGgoJy4uJykgPyBkZWZhdWx0UmVhZEZpbGUuY2FsbChob3N0LCBmaWxlTmFtZSkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJlZS5yZWFkKHRyZWVSZWxhdGl2ZVBhdGgpPy50b1N0cmluZygpO1xuICAgIH1cblxuICAgIC8vIFN0cmlwIEJPTSBhcyBvdGhlcndpc2UgVFNDIG1ldGhvZHMgKEV4OiBnZXRXaWR0aCkgd2lsbCByZXR1cm4gYW4gb2Zmc2V0LFxuICAgIC8vIHdoaWNoIGJyZWFrcyB0aGUgQ0xJIFVwZGF0ZVJlY29yZGVyLlxuICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9wdWxsLzMwNzE5XG4gICAgcmV0dXJuIHJlc3VsdCA/IHJlc3VsdC5yZXBsYWNlKC9eXFx1RkVGRi8sICcnKSA6IHVuZGVmaW5lZDtcbiAgfTtcblxuICByZXR1cm4gaG9zdDtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIGZpbGUgY2FuIGJlIG1pZ3JhdGUgYnkgb3VyIGF1dG9tYXRlZCBtaWdyYXRpb25zLlxuICogQHBhcmFtIGJhc2VQYXRoIEFic29sdXRlIHBhdGggdG8gdGhlIHByb2plY3QuXG4gKiBAcGFyYW0gc291cmNlRmlsZSBGaWxlIGJlaW5nIGNoZWNrZWQuXG4gKiBAcGFyYW0gcHJvZ3JhbSBQcm9ncmFtIHRoYXQgaW5jbHVkZXMgdGhlIHNvdXJjZSBmaWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FuTWlncmF0ZUZpbGUoXG4gICAgYmFzZVBhdGg6IHN0cmluZywgc291cmNlRmlsZTogdHMuU291cmNlRmlsZSwgcHJvZ3JhbTogdHMuUHJvZ3JhbSk6IGJvb2xlYW4ge1xuICAvLyBXZSBzaG91bGRuJ3QgbWlncmF0ZSAuZC50cyBmaWxlcyBvciBmaWxlcyBmcm9tIGFuIGV4dGVybmFsIGxpYnJhcnkuXG4gIGlmIChzb3VyY2VGaWxlLmlzRGVjbGFyYXRpb25GaWxlIHx8IHByb2dyYW0uaXNTb3VyY2VGaWxlRnJvbUV4dGVybmFsTGlicmFyeShzb3VyY2VGaWxlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIE91ciBtaWdyYXRpb25zIGFyZSBzZXQgdXAgdG8gY3JlYXRlIGEgYFByb2dyYW1gIGZyb20gdGhlIHByb2plY3QncyB0c2NvbmZpZyBhbmQgdG8gbWlncmF0ZSBhbGxcbiAgLy8gdGhlIGZpbGVzIHdpdGhpbiB0aGUgcHJvZ3JhbS4gVGhpcyBjYW4gaW5jbHVkZSBmaWxlcyB0aGF0IGFyZSBvdXRzaWRlIG9mIHRoZSBBbmd1bGFyIENMSVxuICAvLyBwcm9qZWN0LiBXZSBjYW4ndCBtaWdyYXRlIGZpbGVzIG91dHNpZGUgb2YgdGhlIHByb2plY3QsIGJlY2F1c2Ugb3VyIGZpbGUgc3lzdGVtIGludGVyYWN0aW9uc1xuICAvLyBnbyB0aHJvdWdoIHRoZSBDTEkncyBgVHJlZWAgd2hpY2ggYXNzdW1lcyB0aGF0IGFsbCBmaWxlcyBhcmUgd2l0aGluIHRoZSBwcm9qZWN0LiBTZWU6XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXItY2xpL2Jsb2IvMGIwOTYxYzljMjMzYTgyNWI2ZTRiYjU5YWI3ZjA3OTBmOWIxNDY3Ni9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL2hvc3QtdHJlZS50cyNMMTMxXG4gIHJldHVybiAhcmVsYXRpdmUoYmFzZVBhdGgsIHNvdXJjZUZpbGUuZmlsZU5hbWUpLnN0YXJ0c1dpdGgoJy4uJyk7XG59XG4iXX0=
|
|
@@ -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/utils/typescript/decorators" />
|
|
9
|
-
import ts from 'typescript';
|
|
10
|
-
import { Import } from './imports';
|
|
11
|
-
export declare function getCallDecoratorImport(typeChecker: ts.TypeChecker, decorator: ts.Decorator): Import | null;
|
|
@@ -1,37 +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/utils/typescript/decorators", ["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.getCallDecoratorImport = void 0;
|
|
23
|
-
const typescript_1 = __importDefault(require("typescript"));
|
|
24
|
-
const imports_1 = require("@angular/core/schematics/utils/typescript/imports");
|
|
25
|
-
function getCallDecoratorImport(typeChecker, decorator) {
|
|
26
|
-
// Note that this does not cover the edge case where decorators are called from
|
|
27
|
-
// a namespace import: e.g. "@core.Component()". This is not handled by Ngtsc either.
|
|
28
|
-
if (!typescript_1.default.isCallExpression(decorator.expression) ||
|
|
29
|
-
!typescript_1.default.isIdentifier(decorator.expression.expression)) {
|
|
30
|
-
return null;
|
|
31
|
-
}
|
|
32
|
-
const identifier = decorator.expression.expression;
|
|
33
|
-
return (0, imports_1.getImportOfIdentifier)(typeChecker, identifier);
|
|
34
|
-
}
|
|
35
|
-
exports.getCallDecoratorImport = getCallDecoratorImport;
|
|
36
|
-
});
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc2NoZW1hdGljcy91dGlscy90eXBlc2NyaXB0L2RlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7Ozs7O0lBRUgsNERBQTRCO0lBRTVCLCtFQUF3RDtJQUV4RCxTQUFnQixzQkFBc0IsQ0FDbEMsV0FBMkIsRUFBRSxTQUF1QjtRQUN0RCwrRUFBK0U7UUFDL0UscUZBQXFGO1FBQ3JGLElBQUksQ0FBQyxvQkFBRSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUM7WUFDMUMsQ0FBQyxvQkFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3JELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztRQUNuRCxPQUFPLElBQUEsK0JBQXFCLEVBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFYRCx3REFXQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7Z2V0SW1wb3J0T2ZJZGVudGlmaWVyLCBJbXBvcnR9IGZyb20gJy4vaW1wb3J0cyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDYWxsRGVjb3JhdG9ySW1wb3J0KFxuICAgIHR5cGVDaGVja2VyOiB0cy5UeXBlQ2hlY2tlciwgZGVjb3JhdG9yOiB0cy5EZWNvcmF0b3IpOiBJbXBvcnR8bnVsbCB7XG4gIC8vIE5vdGUgdGhhdCB0aGlzIGRvZXMgbm90IGNvdmVyIHRoZSBlZGdlIGNhc2Ugd2hlcmUgZGVjb3JhdG9ycyBhcmUgY2FsbGVkIGZyb21cbiAgLy8gYSBuYW1lc3BhY2UgaW1wb3J0OiBlLmcuIFwiQGNvcmUuQ29tcG9uZW50KClcIi4gVGhpcyBpcyBub3QgaGFuZGxlZCBieSBOZ3RzYyBlaXRoZXIuXG4gIGlmICghdHMuaXNDYWxsRXhwcmVzc2lvbihkZWNvcmF0b3IuZXhwcmVzc2lvbikgfHxcbiAgICAgICF0cy5pc0lkZW50aWZpZXIoZGVjb3JhdG9yLmV4cHJlc3Npb24uZXhwcmVzc2lvbikpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGlkZW50aWZpZXIgPSBkZWNvcmF0b3IuZXhwcmVzc2lvbi5leHByZXNzaW9uO1xuICByZXR1cm4gZ2V0SW1wb3J0T2ZJZGVudGlmaWVyKHR5cGVDaGVja2VyLCBpZGVudGlmaWVyKTtcbn1cbiJdfQ==
|
|
@@ -1,14 +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/utils/typescript/find_base_classes" />
|
|
9
|
-
import ts from 'typescript';
|
|
10
|
-
/** Gets all base class declarations of the specified class declaration. */
|
|
11
|
-
export declare function findBaseClassDeclarations(node: ts.ClassDeclaration, typeChecker: ts.TypeChecker): {
|
|
12
|
-
identifier: ts.Identifier;
|
|
13
|
-
node: ts.ClassDeclaration;
|
|
14
|
-
}[];
|
|
@@ -1,47 +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/utils/typescript/find_base_classes", ["require", "exports", "typescript", "@angular/core/schematics/utils/typescript/class_declaration"], factory);
|
|
18
|
-
}
|
|
19
|
-
})(function (require, exports) {
|
|
20
|
-
"use strict";
|
|
21
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.findBaseClassDeclarations = void 0;
|
|
23
|
-
const typescript_1 = __importDefault(require("typescript"));
|
|
24
|
-
const class_declaration_1 = require("@angular/core/schematics/utils/typescript/class_declaration");
|
|
25
|
-
/** Gets all base class declarations of the specified class declaration. */
|
|
26
|
-
function findBaseClassDeclarations(node, typeChecker) {
|
|
27
|
-
const result = [];
|
|
28
|
-
let currentClass = node;
|
|
29
|
-
while (currentClass) {
|
|
30
|
-
const baseTypes = (0, class_declaration_1.getBaseTypeIdentifiers)(currentClass);
|
|
31
|
-
if (!baseTypes || baseTypes.length !== 1) {
|
|
32
|
-
break;
|
|
33
|
-
}
|
|
34
|
-
const symbol = typeChecker.getTypeAtLocation(baseTypes[0]).getSymbol();
|
|
35
|
-
// Note: `ts.Symbol#valueDeclaration` can be undefined. TypeScript has an incorrect type
|
|
36
|
-
// for this: https://github.com/microsoft/TypeScript/issues/24706.
|
|
37
|
-
if (!symbol || !symbol.valueDeclaration || !typescript_1.default.isClassDeclaration(symbol.valueDeclaration)) {
|
|
38
|
-
break;
|
|
39
|
-
}
|
|
40
|
-
result.push({ identifier: baseTypes[0], node: symbol.valueDeclaration });
|
|
41
|
-
currentClass = symbol.valueDeclaration;
|
|
42
|
-
}
|
|
43
|
-
return result;
|
|
44
|
-
}
|
|
45
|
-
exports.findBaseClassDeclarations = findBaseClassDeclarations;
|
|
46
|
-
});
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZF9iYXNlX2NsYXNzZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NjaGVtYXRpY3MvdXRpbHMvdHlwZXNjcmlwdC9maW5kX2Jhc2VfY2xhc3Nlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFSCw0REFBNEI7SUFDNUIsbUdBQTJEO0lBRTNELDJFQUEyRTtJQUMzRSxTQUFnQix5QkFBeUIsQ0FBQyxJQUF5QixFQUFFLFdBQTJCO1FBQzlGLE1BQU0sTUFBTSxHQUE2RCxFQUFFLENBQUM7UUFDNUUsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBRXhCLE9BQU8sWUFBWSxFQUFFO1lBQ25CLE1BQU0sU0FBUyxHQUFHLElBQUEsMENBQXNCLEVBQUMsWUFBWSxDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDeEMsTUFBTTthQUNQO1lBQ0QsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3ZFLHdGQUF3RjtZQUN4RixrRUFBa0U7WUFDbEUsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLG9CQUFFLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEVBQUU7Z0JBQzFGLE1BQU07YUFDUDtZQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsZ0JBQWdCLEVBQUMsQ0FBQyxDQUFDO1lBQ3ZFLFlBQVksR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7U0FDeEM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBbkJELDhEQW1CQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQge2dldEJhc2VUeXBlSWRlbnRpZmllcnN9IGZyb20gJy4vY2xhc3NfZGVjbGFyYXRpb24nO1xuXG4vKiogR2V0cyBhbGwgYmFzZSBjbGFzcyBkZWNsYXJhdGlvbnMgb2YgdGhlIHNwZWNpZmllZCBjbGFzcyBkZWNsYXJhdGlvbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQmFzZUNsYXNzRGVjbGFyYXRpb25zKG5vZGU6IHRzLkNsYXNzRGVjbGFyYXRpb24sIHR5cGVDaGVja2VyOiB0cy5UeXBlQ2hlY2tlcikge1xuICBjb25zdCByZXN1bHQ6IHtpZGVudGlmaWVyOiB0cy5JZGVudGlmaWVyLCBub2RlOiB0cy5DbGFzc0RlY2xhcmF0aW9ufVtdID0gW107XG4gIGxldCBjdXJyZW50Q2xhc3MgPSBub2RlO1xuXG4gIHdoaWxlIChjdXJyZW50Q2xhc3MpIHtcbiAgICBjb25zdCBiYXNlVHlwZXMgPSBnZXRCYXNlVHlwZUlkZW50aWZpZXJzKGN1cnJlbnRDbGFzcyk7XG4gICAgaWYgKCFiYXNlVHlwZXMgfHwgYmFzZVR5cGVzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNvbnN0IHN5bWJvbCA9IHR5cGVDaGVja2VyLmdldFR5cGVBdExvY2F0aW9uKGJhc2VUeXBlc1swXSkuZ2V0U3ltYm9sKCk7XG4gICAgLy8gTm90ZTogYHRzLlN5bWJvbCN2YWx1ZURlY2xhcmF0aW9uYCBjYW4gYmUgdW5kZWZpbmVkLiBUeXBlU2NyaXB0IGhhcyBhbiBpbmNvcnJlY3QgdHlwZVxuICAgIC8vIGZvciB0aGlzOiBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQvaXNzdWVzLzI0NzA2LlxuICAgIGlmICghc3ltYm9sIHx8ICFzeW1ib2wudmFsdWVEZWNsYXJhdGlvbiB8fCAhdHMuaXNDbGFzc0RlY2xhcmF0aW9uKHN5bWJvbC52YWx1ZURlY2xhcmF0aW9uKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJlc3VsdC5wdXNoKHtpZGVudGlmaWVyOiBiYXNlVHlwZXNbMF0sIG5vZGU6IHN5bWJvbC52YWx1ZURlY2xhcmF0aW9ufSk7XG4gICAgY3VycmVudENsYXNzID0gc3ltYm9sLnZhbHVlRGVjbGFyYXRpb247XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==
|
|
@@ -1,17 +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/utils/typescript/functions" />
|
|
9
|
-
import ts from 'typescript';
|
|
10
|
-
/** Checks whether a given node is a function like declaration. */
|
|
11
|
-
export declare function isFunctionLikeDeclaration(node: ts.Node): node is ts.FunctionLikeDeclaration;
|
|
12
|
-
/**
|
|
13
|
-
* Unwraps a given expression TypeScript node. Expressions can be wrapped within multiple
|
|
14
|
-
* parentheses or as expression. e.g. "(((({exp}))))()". The function should return the
|
|
15
|
-
* TypeScript node referring to the inner expression. e.g "exp".
|
|
16
|
-
*/
|
|
17
|
-
export declare function unwrapExpression(node: ts.Expression | ts.ParenthesizedExpression): ts.Expression;
|
|
@@ -1,46 +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/utils/typescript/functions", ["require", "exports", "typescript"], factory);
|
|
18
|
-
}
|
|
19
|
-
})(function (require, exports) {
|
|
20
|
-
"use strict";
|
|
21
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.unwrapExpression = exports.isFunctionLikeDeclaration = void 0;
|
|
23
|
-
const typescript_1 = __importDefault(require("typescript"));
|
|
24
|
-
/** Checks whether a given node is a function like declaration. */
|
|
25
|
-
function isFunctionLikeDeclaration(node) {
|
|
26
|
-
return typescript_1.default.isFunctionDeclaration(node) || typescript_1.default.isMethodDeclaration(node) ||
|
|
27
|
-
typescript_1.default.isArrowFunction(node) || typescript_1.default.isFunctionExpression(node) ||
|
|
28
|
-
typescript_1.default.isGetAccessorDeclaration(node) || typescript_1.default.isSetAccessorDeclaration(node);
|
|
29
|
-
}
|
|
30
|
-
exports.isFunctionLikeDeclaration = isFunctionLikeDeclaration;
|
|
31
|
-
/**
|
|
32
|
-
* Unwraps a given expression TypeScript node. Expressions can be wrapped within multiple
|
|
33
|
-
* parentheses or as expression. e.g. "(((({exp}))))()". The function should return the
|
|
34
|
-
* TypeScript node referring to the inner expression. e.g "exp".
|
|
35
|
-
*/
|
|
36
|
-
function unwrapExpression(node) {
|
|
37
|
-
if (typescript_1.default.isParenthesizedExpression(node) || typescript_1.default.isAsExpression(node)) {
|
|
38
|
-
return unwrapExpression(node.expression);
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
return node;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
exports.unwrapExpression = unwrapExpression;
|
|
45
|
-
});
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zY2hlbWF0aWNzL3V0aWxzL3R5cGVzY3JpcHQvZnVuY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7OztJQUVILDREQUE0QjtJQUU1QixrRUFBa0U7SUFDbEUsU0FBZ0IseUJBQXlCLENBQUMsSUFBYTtRQUNyRCxPQUFPLG9CQUFFLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksb0JBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7WUFDakUsb0JBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksb0JBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7WUFDekQsb0JBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxvQkFBRSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFKRCw4REFJQztJQUVEOzs7O09BSUc7SUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxJQUE4QztRQUM3RSxJQUFJLG9CQUFFLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLElBQUksb0JBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDakUsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDMUM7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBTkQsNENBTUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG4vKiogQ2hlY2tzIHdoZXRoZXIgYSBnaXZlbiBub2RlIGlzIGEgZnVuY3Rpb24gbGlrZSBkZWNsYXJhdGlvbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uTGlrZURlY2xhcmF0aW9uKG5vZGU6IHRzLk5vZGUpOiBub2RlIGlzIHRzLkZ1bmN0aW9uTGlrZURlY2xhcmF0aW9uIHtcbiAgcmV0dXJuIHRzLmlzRnVuY3Rpb25EZWNsYXJhdGlvbihub2RlKSB8fCB0cy5pc01ldGhvZERlY2xhcmF0aW9uKG5vZGUpIHx8XG4gICAgICB0cy5pc0Fycm93RnVuY3Rpb24obm9kZSkgfHwgdHMuaXNGdW5jdGlvbkV4cHJlc3Npb24obm9kZSkgfHxcbiAgICAgIHRzLmlzR2V0QWNjZXNzb3JEZWNsYXJhdGlvbihub2RlKSB8fCB0cy5pc1NldEFjY2Vzc29yRGVjbGFyYXRpb24obm9kZSk7XG59XG5cbi8qKlxuICogVW53cmFwcyBhIGdpdmVuIGV4cHJlc3Npb24gVHlwZVNjcmlwdCBub2RlLiBFeHByZXNzaW9ucyBjYW4gYmUgd3JhcHBlZCB3aXRoaW4gbXVsdGlwbGVcbiAqIHBhcmVudGhlc2VzIG9yIGFzIGV4cHJlc3Npb24uIGUuZy4gXCIoKCgoe2V4cH0pKSkpKClcIi4gVGhlIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gdGhlXG4gKiBUeXBlU2NyaXB0IG5vZGUgcmVmZXJyaW5nIHRvIHRoZSBpbm5lciBleHByZXNzaW9uLiBlLmcgXCJleHBcIi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVud3JhcEV4cHJlc3Npb24obm9kZTogdHMuRXhwcmVzc2lvbnx0cy5QYXJlbnRoZXNpemVkRXhwcmVzc2lvbik6IHRzLkV4cHJlc3Npb24ge1xuICBpZiAodHMuaXNQYXJlbnRoZXNpemVkRXhwcmVzc2lvbihub2RlKSB8fCB0cy5pc0FzRXhwcmVzc2lvbihub2RlKSkge1xuICAgIHJldHVybiB1bndyYXBFeHByZXNzaW9uKG5vZGUuZXhwcmVzc2lvbik7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,53 +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/utils/typescript/imports" />
|
|
9
|
-
import ts from 'typescript';
|
|
10
|
-
export type Import = {
|
|
11
|
-
name: string;
|
|
12
|
-
importModule: string;
|
|
13
|
-
node: ts.ImportDeclaration;
|
|
14
|
-
};
|
|
15
|
-
/** Gets import information about the specified identifier by using the Type checker. */
|
|
16
|
-
export declare function getImportOfIdentifier(typeChecker: ts.TypeChecker, node: ts.Identifier): Import | null;
|
|
17
|
-
/**
|
|
18
|
-
* Gets a top-level import specifier with a specific name that is imported from a particular module.
|
|
19
|
-
* E.g. given a file that looks like:
|
|
20
|
-
*
|
|
21
|
-
* ```
|
|
22
|
-
* import { Component, Directive } from '@angular/core';
|
|
23
|
-
* import { Foo } from './foo';
|
|
24
|
-
* ```
|
|
25
|
-
*
|
|
26
|
-
* Calling `getImportSpecifier(sourceFile, '@angular/core', 'Directive')` will yield the node
|
|
27
|
-
* referring to `Directive` in the top import.
|
|
28
|
-
*
|
|
29
|
-
* @param sourceFile File in which to look for imports.
|
|
30
|
-
* @param moduleName Name of the import's module.
|
|
31
|
-
* @param specifierName Original name of the specifier to look for. Aliases will be resolved to
|
|
32
|
-
* their original name.
|
|
33
|
-
*/
|
|
34
|
-
export declare function getImportSpecifier(sourceFile: ts.SourceFile, moduleName: string, specifierName: string): ts.ImportSpecifier | null;
|
|
35
|
-
/**
|
|
36
|
-
* Replaces an import inside a named imports node with a different one.
|
|
37
|
-
*
|
|
38
|
-
* @param node Node that contains the imports.
|
|
39
|
-
* @param existingImport Import that should be replaced.
|
|
40
|
-
* @param newImportName Import that should be inserted.
|
|
41
|
-
*/
|
|
42
|
-
export declare function replaceImport(node: ts.NamedImports, existingImport: string, newImportName: string): ts.NamedImports;
|
|
43
|
-
/**
|
|
44
|
-
* Removes a symbol from the named imports and updates a node
|
|
45
|
-
* that represents a given named imports.
|
|
46
|
-
*
|
|
47
|
-
* @param node Node that contains the imports.
|
|
48
|
-
* @param symbol Symbol that should be removed.
|
|
49
|
-
* @returns An updated node (ts.NamedImports).
|
|
50
|
-
*/
|
|
51
|
-
export declare function removeSymbolFromNamedImports(node: ts.NamedImports, symbol: ts.ImportSpecifier): ts.NamedImports;
|
|
52
|
-
/** Finds an import specifier with a particular name. */
|
|
53
|
-
export declare function findImportSpecifier(nodes: ts.NodeArray<ts.ImportSpecifier>, specifierName: string): ts.ImportSpecifier | undefined;
|
|
@@ -1,128 +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/utils/typescript/imports", ["require", "exports", "typescript"], factory);
|
|
18
|
-
}
|
|
19
|
-
})(function (require, exports) {
|
|
20
|
-
"use strict";
|
|
21
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.findImportSpecifier = exports.removeSymbolFromNamedImports = exports.replaceImport = exports.getImportSpecifier = exports.getImportOfIdentifier = void 0;
|
|
23
|
-
const typescript_1 = __importDefault(require("typescript"));
|
|
24
|
-
/** Gets import information about the specified identifier by using the Type checker. */
|
|
25
|
-
function getImportOfIdentifier(typeChecker, node) {
|
|
26
|
-
const symbol = typeChecker.getSymbolAtLocation(node);
|
|
27
|
-
if (!symbol || symbol.declarations === undefined || !symbol.declarations.length) {
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
|
-
const decl = symbol.declarations[0];
|
|
31
|
-
if (!typescript_1.default.isImportSpecifier(decl)) {
|
|
32
|
-
return null;
|
|
33
|
-
}
|
|
34
|
-
const importDecl = decl.parent.parent.parent;
|
|
35
|
-
if (!typescript_1.default.isStringLiteral(importDecl.moduleSpecifier)) {
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
return {
|
|
39
|
-
// Handles aliased imports: e.g. "import {Component as myComp} from ...";
|
|
40
|
-
name: decl.propertyName ? decl.propertyName.text : decl.name.text,
|
|
41
|
-
importModule: importDecl.moduleSpecifier.text,
|
|
42
|
-
node: importDecl
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
exports.getImportOfIdentifier = getImportOfIdentifier;
|
|
46
|
-
/**
|
|
47
|
-
* Gets a top-level import specifier with a specific name that is imported from a particular module.
|
|
48
|
-
* E.g. given a file that looks like:
|
|
49
|
-
*
|
|
50
|
-
* ```
|
|
51
|
-
* import { Component, Directive } from '@angular/core';
|
|
52
|
-
* import { Foo } from './foo';
|
|
53
|
-
* ```
|
|
54
|
-
*
|
|
55
|
-
* Calling `getImportSpecifier(sourceFile, '@angular/core', 'Directive')` will yield the node
|
|
56
|
-
* referring to `Directive` in the top import.
|
|
57
|
-
*
|
|
58
|
-
* @param sourceFile File in which to look for imports.
|
|
59
|
-
* @param moduleName Name of the import's module.
|
|
60
|
-
* @param specifierName Original name of the specifier to look for. Aliases will be resolved to
|
|
61
|
-
* their original name.
|
|
62
|
-
*/
|
|
63
|
-
function getImportSpecifier(sourceFile, moduleName, specifierName) {
|
|
64
|
-
for (const node of sourceFile.statements) {
|
|
65
|
-
if (typescript_1.default.isImportDeclaration(node) && typescript_1.default.isStringLiteral(node.moduleSpecifier) &&
|
|
66
|
-
node.moduleSpecifier.text === moduleName) {
|
|
67
|
-
const namedBindings = node.importClause && node.importClause.namedBindings;
|
|
68
|
-
if (namedBindings && typescript_1.default.isNamedImports(namedBindings)) {
|
|
69
|
-
const match = findImportSpecifier(namedBindings.elements, specifierName);
|
|
70
|
-
if (match) {
|
|
71
|
-
return match;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return null;
|
|
77
|
-
}
|
|
78
|
-
exports.getImportSpecifier = getImportSpecifier;
|
|
79
|
-
/**
|
|
80
|
-
* Replaces an import inside a named imports node with a different one.
|
|
81
|
-
*
|
|
82
|
-
* @param node Node that contains the imports.
|
|
83
|
-
* @param existingImport Import that should be replaced.
|
|
84
|
-
* @param newImportName Import that should be inserted.
|
|
85
|
-
*/
|
|
86
|
-
function replaceImport(node, existingImport, newImportName) {
|
|
87
|
-
const isAlreadyImported = findImportSpecifier(node.elements, newImportName);
|
|
88
|
-
if (isAlreadyImported) {
|
|
89
|
-
return node;
|
|
90
|
-
}
|
|
91
|
-
const existingImportNode = findImportSpecifier(node.elements, existingImport);
|
|
92
|
-
if (!existingImportNode) {
|
|
93
|
-
return node;
|
|
94
|
-
}
|
|
95
|
-
const importPropertyName = existingImportNode.propertyName ? typescript_1.default.factory.createIdentifier(newImportName) : undefined;
|
|
96
|
-
const importName = existingImportNode.propertyName ? existingImportNode.name :
|
|
97
|
-
typescript_1.default.factory.createIdentifier(newImportName);
|
|
98
|
-
return typescript_1.default.factory.updateNamedImports(node, [
|
|
99
|
-
...node.elements.filter(current => current !== existingImportNode),
|
|
100
|
-
// Create a new import while trying to preserve the alias of the old one.
|
|
101
|
-
typescript_1.default.factory.createImportSpecifier(false, importPropertyName, importName)
|
|
102
|
-
]);
|
|
103
|
-
}
|
|
104
|
-
exports.replaceImport = replaceImport;
|
|
105
|
-
/**
|
|
106
|
-
* Removes a symbol from the named imports and updates a node
|
|
107
|
-
* that represents a given named imports.
|
|
108
|
-
*
|
|
109
|
-
* @param node Node that contains the imports.
|
|
110
|
-
* @param symbol Symbol that should be removed.
|
|
111
|
-
* @returns An updated node (ts.NamedImports).
|
|
112
|
-
*/
|
|
113
|
-
function removeSymbolFromNamedImports(node, symbol) {
|
|
114
|
-
return typescript_1.default.factory.updateNamedImports(node, [
|
|
115
|
-
...node.elements.filter(current => current !== symbol),
|
|
116
|
-
]);
|
|
117
|
-
}
|
|
118
|
-
exports.removeSymbolFromNamedImports = removeSymbolFromNamedImports;
|
|
119
|
-
/** Finds an import specifier with a particular name. */
|
|
120
|
-
function findImportSpecifier(nodes, specifierName) {
|
|
121
|
-
return nodes.find(element => {
|
|
122
|
-
const { name, propertyName } = element;
|
|
123
|
-
return propertyName ? propertyName.text === specifierName : name.text === specifierName;
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
exports.findImportSpecifier = findImportSpecifier;
|
|
127
|
-
});
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc2NoZW1hdGljcy91dGlscy90eXBlc2NyaXB0L2ltcG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7Ozs7O0lBRUgsNERBQTRCO0lBUTVCLHdGQUF3RjtJQUN4RixTQUFnQixxQkFBcUIsQ0FBQyxXQUEyQixFQUFFLElBQW1CO1FBRXBGLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxZQUFZLEtBQUssU0FBUyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUU7WUFDL0UsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFcEMsSUFBSSxDQUFDLG9CQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDL0IsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUU3QyxJQUFJLENBQUMsb0JBQUUsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ25ELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPO1lBQ0wseUVBQXlFO1lBQ3pFLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQ2pFLFlBQVksRUFBRSxVQUFVLENBQUMsZUFBZSxDQUFDLElBQUk7WUFDN0MsSUFBSSxFQUFFLFVBQVU7U0FDakIsQ0FBQztJQUNKLENBQUM7SUExQkQsc0RBMEJDO0lBR0Q7Ozs7Ozs7Ozs7Ozs7Ozs7T0FnQkc7SUFDSCxTQUFnQixrQkFBa0IsQ0FDOUIsVUFBeUIsRUFBRSxVQUFrQixFQUFFLGFBQXFCO1FBQ3RFLEtBQUssTUFBTSxJQUFJLElBQUksVUFBVSxDQUFDLFVBQVUsRUFBRTtZQUN4QyxJQUFJLG9CQUFFLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksb0JBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztnQkFDeEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFO2dCQUM1QyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDO2dCQUMzRSxJQUFJLGFBQWEsSUFBSSxvQkFBRSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsRUFBRTtvQkFDckQsTUFBTSxLQUFLLEdBQUcsbUJBQW1CLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztvQkFDekUsSUFBSSxLQUFLLEVBQUU7d0JBQ1QsT0FBTyxLQUFLLENBQUM7cUJBQ2Q7aUJBQ0Y7YUFDRjtTQUNGO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBaEJELGdEQWdCQztJQUdEOzs7Ozs7T0FNRztJQUNILFNBQWdCLGFBQWEsQ0FDekIsSUFBcUIsRUFBRSxjQUFzQixFQUFFLGFBQXFCO1FBQ3RFLE1BQU0saUJBQWlCLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUM1RSxJQUFJLGlCQUFpQixFQUFFO1lBQ3JCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxNQUFNLGtCQUFrQixHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxNQUFNLGtCQUFrQixHQUNwQixrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLG9CQUFFLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDN0YsTUFBTSxVQUFVLEdBQUcsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QixvQkFBRSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVoRyxPQUFPLG9CQUFFLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRTtZQUN6QyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLGtCQUFrQixDQUFDO1lBQ2xFLHlFQUF5RTtZQUN6RSxvQkFBRSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxDQUFDO1NBQ3hFLENBQUMsQ0FBQztJQUNMLENBQUM7SUF0QkQsc0NBc0JDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILFNBQWdCLDRCQUE0QixDQUFDLElBQXFCLEVBQUUsTUFBMEI7UUFDNUYsT0FBTyxvQkFBRSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUU7WUFDekMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxNQUFNLENBQUM7U0FDdkQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUpELG9FQUlDO0lBRUQsd0RBQXdEO0lBQ3hELFNBQWdCLG1CQUFtQixDQUMvQixLQUF1QyxFQUFFLGFBQXFCO1FBQ2hFLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMxQixNQUFNLEVBQUMsSUFBSSxFQUFFLFlBQVksRUFBQyxHQUFHLE9BQU8sQ0FBQztZQUNyQyxPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDO1FBQzFGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQU5ELGtEQU1DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuZXhwb3J0IHR5cGUgSW1wb3J0ID0ge1xuICBuYW1lOiBzdHJpbmcsXG4gIGltcG9ydE1vZHVsZTogc3RyaW5nLFxuICBub2RlOiB0cy5JbXBvcnREZWNsYXJhdGlvblxufTtcblxuLyoqIEdldHMgaW1wb3J0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBzcGVjaWZpZWQgaWRlbnRpZmllciBieSB1c2luZyB0aGUgVHlwZSBjaGVja2VyLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEltcG9ydE9mSWRlbnRpZmllcih0eXBlQ2hlY2tlcjogdHMuVHlwZUNoZWNrZXIsIG5vZGU6IHRzLklkZW50aWZpZXIpOiBJbXBvcnR8XG4gICAgbnVsbCB7XG4gIGNvbnN0IHN5bWJvbCA9IHR5cGVDaGVja2VyLmdldFN5bWJvbEF0TG9jYXRpb24obm9kZSk7XG5cbiAgaWYgKCFzeW1ib2wgfHwgc3ltYm9sLmRlY2xhcmF0aW9ucyA9PT0gdW5kZWZpbmVkIHx8ICFzeW1ib2wuZGVjbGFyYXRpb25zLmxlbmd0aCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgZGVjbCA9IHN5bWJvbC5kZWNsYXJhdGlvbnNbMF07XG5cbiAgaWYgKCF0cy5pc0ltcG9ydFNwZWNpZmllcihkZWNsKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgaW1wb3J0RGVjbCA9IGRlY2wucGFyZW50LnBhcmVudC5wYXJlbnQ7XG5cbiAgaWYgKCF0cy5pc1N0cmluZ0xpdGVyYWwoaW1wb3J0RGVjbC5tb2R1bGVTcGVjaWZpZXIpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC8vIEhhbmRsZXMgYWxpYXNlZCBpbXBvcnRzOiBlLmcuIFwiaW1wb3J0IHtDb21wb25lbnQgYXMgbXlDb21wfSBmcm9tIC4uLlwiO1xuICAgIG5hbWU6IGRlY2wucHJvcGVydHlOYW1lID8gZGVjbC5wcm9wZXJ0eU5hbWUudGV4dCA6IGRlY2wubmFtZS50ZXh0LFxuICAgIGltcG9ydE1vZHVsZTogaW1wb3J0RGVjbC5tb2R1bGVTcGVjaWZpZXIudGV4dCxcbiAgICBub2RlOiBpbXBvcnREZWNsXG4gIH07XG59XG5cblxuLyoqXG4gKiBHZXRzIGEgdG9wLWxldmVsIGltcG9ydCBzcGVjaWZpZXIgd2l0aCBhIHNwZWNpZmljIG5hbWUgdGhhdCBpcyBpbXBvcnRlZCBmcm9tIGEgcGFydGljdWxhciBtb2R1bGUuXG4gKiBFLmcuIGdpdmVuIGEgZmlsZSB0aGF0IGxvb2tzIGxpa2U6XG4gKlxuICogYGBgXG4gKiBpbXBvcnQgeyBDb21wb25lbnQsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuICogaW1wb3J0IHsgRm9vIH0gZnJvbSAnLi9mb28nO1xuICogYGBgXG4gKlxuICogQ2FsbGluZyBgZ2V0SW1wb3J0U3BlY2lmaWVyKHNvdXJjZUZpbGUsICdAYW5ndWxhci9jb3JlJywgJ0RpcmVjdGl2ZScpYCB3aWxsIHlpZWxkIHRoZSBub2RlXG4gKiByZWZlcnJpbmcgdG8gYERpcmVjdGl2ZWAgaW4gdGhlIHRvcCBpbXBvcnQuXG4gKlxuICogQHBhcmFtIHNvdXJjZUZpbGUgRmlsZSBpbiB3aGljaCB0byBsb29rIGZvciBpbXBvcnRzLlxuICogQHBhcmFtIG1vZHVsZU5hbWUgTmFtZSBvZiB0aGUgaW1wb3J0J3MgbW9kdWxlLlxuICogQHBhcmFtIHNwZWNpZmllck5hbWUgT3JpZ2luYWwgbmFtZSBvZiB0aGUgc3BlY2lmaWVyIHRvIGxvb2sgZm9yLiBBbGlhc2VzIHdpbGwgYmUgcmVzb2x2ZWQgdG9cbiAqICAgIHRoZWlyIG9yaWdpbmFsIG5hbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbXBvcnRTcGVjaWZpZXIoXG4gICAgc291cmNlRmlsZTogdHMuU291cmNlRmlsZSwgbW9kdWxlTmFtZTogc3RyaW5nLCBzcGVjaWZpZXJOYW1lOiBzdHJpbmcpOiB0cy5JbXBvcnRTcGVjaWZpZXJ8bnVsbCB7XG4gIGZvciAoY29uc3Qgbm9kZSBvZiBzb3VyY2VGaWxlLnN0YXRlbWVudHMpIHtcbiAgICBpZiAodHMuaXNJbXBvcnREZWNsYXJhdGlvbihub2RlKSAmJiB0cy5pc1N0cmluZ0xpdGVyYWwobm9kZS5tb2R1bGVTcGVjaWZpZXIpICYmXG4gICAgICAgIG5vZGUubW9kdWxlU3BlY2lmaWVyLnRleHQgPT09IG1vZHVsZU5hbWUpIHtcbiAgICAgIGNvbnN0IG5hbWVkQmluZGluZ3MgPSBub2RlLmltcG9ydENsYXVzZSAmJiBub2RlLmltcG9ydENsYXVzZS5uYW1lZEJpbmRpbmdzO1xuICAgICAgaWYgKG5hbWVkQmluZGluZ3MgJiYgdHMuaXNOYW1lZEltcG9ydHMobmFtZWRCaW5kaW5ncykpIHtcbiAgICAgICAgY29uc3QgbWF0Y2ggPSBmaW5kSW1wb3J0U3BlY2lmaWVyKG5hbWVkQmluZGluZ3MuZWxlbWVudHMsIHNwZWNpZmllck5hbWUpO1xuICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICByZXR1cm4gbWF0Y2g7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuXG4vKipcbiAqIFJlcGxhY2VzIGFuIGltcG9ydCBpbnNpZGUgYSBuYW1lZCBpbXBvcnRzIG5vZGUgd2l0aCBhIGRpZmZlcmVudCBvbmUuXG4gKlxuICogQHBhcmFtIG5vZGUgTm9kZSB0aGF0IGNvbnRhaW5zIHRoZSBpbXBvcnRzLlxuICogQHBhcmFtIGV4aXN0aW5nSW1wb3J0IEltcG9ydCB0aGF0IHNob3VsZCBiZSByZXBsYWNlZC5cbiAqIEBwYXJhbSBuZXdJbXBvcnROYW1lIEltcG9ydCB0aGF0IHNob3VsZCBiZSBpbnNlcnRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VJbXBvcnQoXG4gICAgbm9kZTogdHMuTmFtZWRJbXBvcnRzLCBleGlzdGluZ0ltcG9ydDogc3RyaW5nLCBuZXdJbXBvcnROYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgaXNBbHJlYWR5SW1wb3J0ZWQgPSBmaW5kSW1wb3J0U3BlY2lmaWVyKG5vZGUuZWxlbWVudHMsIG5ld0ltcG9ydE5hbWUpO1xuICBpZiAoaXNBbHJlYWR5SW1wb3J0ZWQpIHtcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIGNvbnN0IGV4aXN0aW5nSW1wb3J0Tm9kZSA9IGZpbmRJbXBvcnRTcGVjaWZpZXIobm9kZS5lbGVtZW50cywgZXhpc3RpbmdJbXBvcnQpO1xuICBpZiAoIWV4aXN0aW5nSW1wb3J0Tm9kZSkge1xuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgY29uc3QgaW1wb3J0UHJvcGVydHlOYW1lID1cbiAgICAgIGV4aXN0aW5nSW1wb3J0Tm9kZS5wcm9wZXJ0eU5hbWUgPyB0cy5mYWN0b3J5LmNyZWF0ZUlkZW50aWZpZXIobmV3SW1wb3J0TmFtZSkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGltcG9ydE5hbWUgPSBleGlzdGluZ0ltcG9ydE5vZGUucHJvcGVydHlOYW1lID8gZXhpc3RpbmdJbXBvcnROb2RlLm5hbWUgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRzLmZhY3RvcnkuY3JlYXRlSWRlbnRpZmllcihuZXdJbXBvcnROYW1lKTtcblxuICByZXR1cm4gdHMuZmFjdG9yeS51cGRhdGVOYW1lZEltcG9ydHMobm9kZSwgW1xuICAgIC4uLm5vZGUuZWxlbWVudHMuZmlsdGVyKGN1cnJlbnQgPT4gY3VycmVudCAhPT0gZXhpc3RpbmdJbXBvcnROb2RlKSxcbiAgICAvLyBDcmVhdGUgYSBuZXcgaW1wb3J0IHdoaWxlIHRyeWluZyB0byBwcmVzZXJ2ZSB0aGUgYWxpYXMgb2YgdGhlIG9sZCBvbmUuXG4gICAgdHMuZmFjdG9yeS5jcmVhdGVJbXBvcnRTcGVjaWZpZXIoZmFsc2UsIGltcG9ydFByb3BlcnR5TmFtZSwgaW1wb3J0TmFtZSlcbiAgXSk7XG59XG5cbi8qKlxuICogUmVtb3ZlcyBhIHN5bWJvbCBmcm9tIHRoZSBuYW1lZCBpbXBvcnRzIGFuZCB1cGRhdGVzIGEgbm9kZVxuICogdGhhdCByZXByZXNlbnRzIGEgZ2l2ZW4gbmFtZWQgaW1wb3J0cy5cbiAqXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRoYXQgY29udGFpbnMgdGhlIGltcG9ydHMuXG4gKiBAcGFyYW0gc3ltYm9sIFN5bWJvbCB0aGF0IHNob3VsZCBiZSByZW1vdmVkLlxuICogQHJldHVybnMgQW4gdXBkYXRlZCBub2RlICh0cy5OYW1lZEltcG9ydHMpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlU3ltYm9sRnJvbU5hbWVkSW1wb3J0cyhub2RlOiB0cy5OYW1lZEltcG9ydHMsIHN5bWJvbDogdHMuSW1wb3J0U3BlY2lmaWVyKSB7XG4gIHJldHVybiB0cy5mYWN0b3J5LnVwZGF0ZU5hbWVkSW1wb3J0cyhub2RlLCBbXG4gICAgLi4ubm9kZS5lbGVtZW50cy5maWx0ZXIoY3VycmVudCA9PiBjdXJyZW50ICE9PSBzeW1ib2wpLFxuICBdKTtcbn1cblxuLyoqIEZpbmRzIGFuIGltcG9ydCBzcGVjaWZpZXIgd2l0aCBhIHBhcnRpY3VsYXIgbmFtZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kSW1wb3J0U3BlY2lmaWVyKFxuICAgIG5vZGVzOiB0cy5Ob2RlQXJyYXk8dHMuSW1wb3J0U3BlY2lmaWVyPiwgc3BlY2lmaWVyTmFtZTogc3RyaW5nKTogdHMuSW1wb3J0U3BlY2lmaWVyfHVuZGVmaW5lZCB7XG4gIHJldHVybiBub2Rlcy5maW5kKGVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IHtuYW1lLCBwcm9wZXJ0eU5hbWV9ID0gZWxlbWVudDtcbiAgICByZXR1cm4gcHJvcGVydHlOYW1lID8gcHJvcGVydHlOYW1lLnRleHQgPT09IHNwZWNpZmllck5hbWUgOiBuYW1lLnRleHQgPT09IHNwZWNpZmllck5hbWU7XG4gIH0pO1xufVxuIl19
|
|
@@ -1,20 +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/utils/typescript/nodes" />
|
|
9
|
-
import ts from 'typescript';
|
|
10
|
-
/** Checks whether the given TypeScript node has the specified modifier set. */
|
|
11
|
-
export declare function hasModifier(node: ts.Node, modifierKind: ts.SyntaxKind): boolean;
|
|
12
|
-
/** Find the closest parent node of a particular kind. */
|
|
13
|
-
export declare function closestNode<T extends ts.Node>(node: ts.Node, kind: ts.SyntaxKind): T | null;
|
|
14
|
-
/**
|
|
15
|
-
* Checks whether a particular node is part of a null check. E.g. given:
|
|
16
|
-
* `foo.bar ? foo.bar.value : null` the null check would be `foo.bar`.
|
|
17
|
-
*/
|
|
18
|
-
export declare function isNullCheck(node: ts.Node): boolean;
|
|
19
|
-
/** Checks whether a property access is safe (e.g. `foo.parent?.value`). */
|
|
20
|
-
export declare function isSafeAccess(node: ts.Node): boolean;
|