@angular/core 15.1.0-next.3 → 15.1.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.
Files changed (74) hide show
  1. package/esm2020/src/application_ref.mjs +2 -2
  2. package/esm2020/src/di/injector_compatibility.mjs +2 -2
  3. package/esm2020/src/errors.mjs +1 -1
  4. package/esm2020/src/linker/view_ref.mjs +1 -1
  5. package/esm2020/src/render3/i18n/i18n_parse.mjs +17 -2
  6. package/esm2020/src/util/global.mjs +1 -1
  7. package/esm2020/src/version.mjs +1 -1
  8. package/esm2020/testing/src/component_fixture.mjs +1 -1
  9. package/esm2020/testing/src/logger.mjs +7 -7
  10. package/esm2020/testing/src/ng_zone_mock.mjs +3 -3
  11. package/fesm2015/core.mjs +101 -1558
  12. package/fesm2015/core.mjs.map +1 -1
  13. package/fesm2015/testing.mjs +78 -1333
  14. package/fesm2015/testing.mjs.map +1 -1
  15. package/fesm2020/core.mjs +103 -1582
  16. package/fesm2020/core.mjs.map +1 -1
  17. package/fesm2020/testing.mjs +80 -1357
  18. package/fesm2020/testing.mjs.map +1 -1
  19. package/index.d.ts +3 -3
  20. package/package.json +1 -1
  21. package/schematics/migrations/relative-link-resolution/bundle.js +265 -0
  22. package/schematics/migrations/relative-link-resolution/bundle.js.map +7 -0
  23. package/schematics/migrations/relative-link-resolution/bundle_metadata.json +1 -0
  24. package/schematics/migrations/router-link-with-href/bundle.js +350 -0
  25. package/schematics/migrations/router-link-with-href/bundle.js.map +7 -0
  26. package/schematics/migrations/router-link-with-href/bundle_metadata.json +1 -0
  27. package/schematics/migrations.json +2 -2
  28. package/testing/index.d.ts +1 -1
  29. package/esm2020/src/render3/util/debug_utils.mjs +0 -40
  30. package/esm2020/testing/src/lang_utils.mjs +0 -14
  31. package/schematics/migrations/relative-link-resolution/index.d.ts +0 -10
  32. package/schematics/migrations/relative-link-resolution/index.js +0 -68
  33. package/schematics/migrations/relative-link-resolution/util.d.ts +0 -20
  34. package/schematics/migrations/relative-link-resolution/util.js +0 -82
  35. package/schematics/migrations/router-link-with-href/index.d.ts +0 -10
  36. package/schematics/migrations/router-link-with-href/index.js +0 -70
  37. package/schematics/migrations/router-link-with-href/util.d.ts +0 -19
  38. package/schematics/migrations/router-link-with-href/util.js +0 -111
  39. package/schematics/utils/import_manager.d.ts +0 -57
  40. package/schematics/utils/import_manager.js +0 -234
  41. package/schematics/utils/line_mappings.d.ts +0 -18
  42. package/schematics/utils/line_mappings.js +0 -75
  43. package/schematics/utils/load_esm.d.ts +0 -32
  44. package/schematics/utils/load_esm.js +0 -79
  45. package/schematics/utils/ng_component_template.d.ts +0 -44
  46. package/schematics/utils/ng_component_template.js +0 -131
  47. package/schematics/utils/ng_decorators.d.ts +0 -23
  48. package/schematics/utils/ng_decorators.js +0 -37
  49. package/schematics/utils/parse_html.d.ts +0 -14
  50. package/schematics/utils/parse_html.js +0 -37
  51. package/schematics/utils/project_tsconfig_paths.d.ts +0 -17
  52. package/schematics/utils/project_tsconfig_paths.js +0 -122
  53. package/schematics/utils/template_ast_visitor.d.ts +0 -55
  54. package/schematics/utils/template_ast_visitor.js +0 -73
  55. package/schematics/utils/typescript/class_declaration.d.ts +0 -15
  56. package/schematics/utils/typescript/class_declaration.js +0 -52
  57. package/schematics/utils/typescript/compiler_host.d.ts +0 -34
  58. package/schematics/utils/typescript/compiler_host.js +0 -85
  59. package/schematics/utils/typescript/decorators.d.ts +0 -11
  60. package/schematics/utils/typescript/decorators.js +0 -37
  61. package/schematics/utils/typescript/find_base_classes.d.ts +0 -14
  62. package/schematics/utils/typescript/find_base_classes.js +0 -47
  63. package/schematics/utils/typescript/functions.d.ts +0 -17
  64. package/schematics/utils/typescript/functions.js +0 -46
  65. package/schematics/utils/typescript/imports.d.ts +0 -53
  66. package/schematics/utils/typescript/imports.js +0 -128
  67. package/schematics/utils/typescript/nodes.d.ts +0 -20
  68. package/schematics/utils/typescript/nodes.js +0 -77
  69. package/schematics/utils/typescript/parse_tsconfig.d.ts +0 -10
  70. package/schematics/utils/typescript/parse_tsconfig.js +0 -66
  71. package/schematics/utils/typescript/property_name.d.ts +0 -19
  72. package/schematics/utils/typescript/property_name.js +0 -41
  73. package/schematics/utils/typescript/symbol.d.ts +0 -19
  74. 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;