@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,82 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
- (function (factory) {
12
- if (typeof module === "object" && typeof module.exports === "object") {
13
- var v = factory(require, exports);
14
- if (v !== undefined) module.exports = v;
15
- }
16
- else if (typeof define === "function" && define.amd) {
17
- define("@angular/core/schematics/migrations/relative-link-resolution/util", ["require", "exports", "typescript"], factory);
18
- }
19
- })(function (require, exports) {
20
- "use strict";
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.migrateFile = void 0;
23
- const typescript_1 = __importDefault(require("typescript"));
24
- const relativeLinkResolution = 'relativeLinkResolution';
25
- const knownConfigValues = new Set([`'legacy'`, `'corrected'`]);
26
- function migrateFile(sourceFile, rewriteFn) {
27
- let rewrites = [];
28
- const usages = getUsages(sourceFile);
29
- for (const { objectLiteral, property } of usages) {
30
- const replacementNode = typescript_1.default.factory.updateObjectLiteralExpression(objectLiteral, objectLiteral.properties.filter(prop => prop !== property));
31
- const printer = typescript_1.default.createPrinter();
32
- const replacementText = printer.printNode(typescript_1.default.EmitHint.Unspecified, replacementNode, sourceFile);
33
- rewrites.push({
34
- startPos: objectLiteral.getStart(),
35
- width: objectLiteral.getWidth(),
36
- replacement: replacementText,
37
- });
38
- }
39
- // Process rewrites last-to-first (based on start pos) to avoid offset shifts during rewrites.
40
- rewrites = sortByStartPosDescending(rewrites);
41
- for (const rewrite of rewrites) {
42
- rewriteFn(rewrite.startPos, rewrite.width, rewrite.replacement);
43
- }
44
- }
45
- exports.migrateFile = migrateFile;
46
- function getUsages(sourceFile) {
47
- const usages = [];
48
- const visitNode = (node) => {
49
- if (typescript_1.default.isObjectLiteralExpression(node)) {
50
- // Look for patterns like the following:
51
- // ```
52
- // { ... relativeLinkResolution: 'legacy', ... }
53
- // ```
54
- // or:
55
- // ```
56
- // { ... relativeLinkResolution: 'corrected', ... }
57
- // ```
58
- // If the value is unknown (i.e. not 'legacy' or 'corrected'),
59
- // do not attempt to rewrite (this might be an application-specific
60
- // configuration, not a part of Router).
61
- const property = node.properties.find(prop => typescript_1.default.isPropertyAssignment(prop) && typescript_1.default.isIdentifier(prop.name) &&
62
- prop.name.text === relativeLinkResolution &&
63
- knownConfigValues.has(prop.initializer.getText()));
64
- if (property) {
65
- usages.push({ objectLiteral: node, property });
66
- }
67
- }
68
- typescript_1.default.forEachChild(node, visitNode);
69
- };
70
- typescript_1.default.forEachChild(sourceFile, visitNode);
71
- return usages;
72
- }
73
- /**
74
- * Sort all found usages based on their start positions in the source file in descending order (i.e.
75
- * last usage goes first on the list, etc). This is needed to avoid shifting offsets in the source
76
- * file (in case there are multiple usages) as we rewrite symbols.
77
- */
78
- function sortByStartPosDescending(rewrites) {
79
- return rewrites.sort((entityA, entityB) => entityB.startPos - entityA.startPos);
80
- }
81
- });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc2NoZW1hdGljcy9taWdyYXRpb25zL3JlbGF0aXZlLWxpbmstcmVzb2x1dGlvbi91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7OztJQUVILDREQUE0QjtJQUU1QixNQUFNLHNCQUFzQixHQUFHLHdCQUF3QixDQUFDO0lBQ3hELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztJQWUvRCxTQUFnQixXQUFXLENBQUMsVUFBeUIsRUFBRSxTQUFvQjtRQUN6RSxJQUFJLFFBQVEsR0FBb0IsRUFBRSxDQUFDO1FBQ25DLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyQyxLQUFLLE1BQU0sRUFBQyxhQUFhLEVBQUUsUUFBUSxFQUFDLElBQUksTUFBTSxFQUFFO1lBQzlDLE1BQU0sZUFBZSxHQUFHLG9CQUFFLENBQUMsT0FBTyxDQUFDLDZCQUE2QixDQUM1RCxhQUFhLEVBQUUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztZQUMvRSxNQUFNLE9BQU8sR0FBRyxvQkFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ25DLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsb0JBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLGVBQWUsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNoRyxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUNaLFFBQVEsRUFBRSxhQUFhLENBQUMsUUFBUSxFQUFFO2dCQUNsQyxLQUFLLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRTtnQkFDL0IsV0FBVyxFQUFFLGVBQWU7YUFDN0IsQ0FBQyxDQUFDO1NBQ0o7UUFFRCw4RkFBOEY7UUFDOUYsUUFBUSxHQUFHLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFO1lBQzlCLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQztJQXBCRCxrQ0FvQkM7SUFFRCxTQUFTLFNBQVMsQ0FBQyxVQUF5QjtRQUMxQyxNQUFNLE1BQU0sR0FBcUIsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBYSxFQUFFLEVBQUU7WUFDbEMsSUFBSSxvQkFBRSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN0Qyx3Q0FBd0M7Z0JBQ3hDLE1BQU07Z0JBQ04sZ0RBQWdEO2dCQUNoRCxNQUFNO2dCQUNOLE1BQU07Z0JBQ04sTUFBTTtnQkFDTixtREFBbUQ7Z0JBQ25ELE1BQU07Z0JBQ04sOERBQThEO2dCQUM5RCxtRUFBbUU7Z0JBQ25FLHdDQUF3QztnQkFDeEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ2pDLElBQUksQ0FBQyxFQUFFLENBQUMsb0JBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxvQkFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO29CQUMvRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxzQkFBc0I7b0JBQ3pDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxRQUFRLEVBQUU7b0JBQ1osTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQztpQkFDOUM7YUFDRjtZQUNELG9CQUFFLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUM7UUFDRixvQkFBRSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdkMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxTQUFTLHdCQUF3QixDQUFDLFFBQXlCO1FBQ3pELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5jb25zdCByZWxhdGl2ZUxpbmtSZXNvbHV0aW9uID0gJ3JlbGF0aXZlTGlua1Jlc29sdXRpb24nO1xuY29uc3Qga25vd25Db25maWdWYWx1ZXMgPSBuZXcgU2V0KFtgJ2xlZ2FjeSdgLCBgJ2NvcnJlY3RlZCdgXSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmV3cml0ZUVudGl0eSB7XG4gIHN0YXJ0UG9zOiBudW1iZXI7XG4gIHdpZHRoOiBudW1iZXI7XG4gIHJlcGxhY2VtZW50OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWlncmF0YWJsZU5vZGUge1xuICBvYmplY3RMaXRlcmFsOiB0cy5PYmplY3RMaXRlcmFsRXhwcmVzc2lvbjtcbiAgcHJvcGVydHk6IHRzLk9iamVjdExpdGVyYWxFbGVtZW50TGlrZTtcbn1cblxuZXhwb3J0IHR5cGUgUmV3cml0ZUZuID0gKHN0YXJ0UG9zOiBudW1iZXIsIG9yaWdMZW5ndGg6IG51bWJlciwgdGV4dDogc3RyaW5nKSA9PiB2b2lkO1xuXG5leHBvcnQgZnVuY3Rpb24gbWlncmF0ZUZpbGUoc291cmNlRmlsZTogdHMuU291cmNlRmlsZSwgcmV3cml0ZUZuOiBSZXdyaXRlRm4pIHtcbiAgbGV0IHJld3JpdGVzOiBSZXdyaXRlRW50aXR5W10gPSBbXTtcbiAgY29uc3QgdXNhZ2VzID0gZ2V0VXNhZ2VzKHNvdXJjZUZpbGUpO1xuICBmb3IgKGNvbnN0IHtvYmplY3RMaXRlcmFsLCBwcm9wZXJ0eX0gb2YgdXNhZ2VzKSB7XG4gICAgY29uc3QgcmVwbGFjZW1lbnROb2RlID0gdHMuZmFjdG9yeS51cGRhdGVPYmplY3RMaXRlcmFsRXhwcmVzc2lvbihcbiAgICAgICAgb2JqZWN0TGl0ZXJhbCwgb2JqZWN0TGl0ZXJhbC5wcm9wZXJ0aWVzLmZpbHRlcihwcm9wID0+IHByb3AgIT09IHByb3BlcnR5KSk7XG4gICAgY29uc3QgcHJpbnRlciA9IHRzLmNyZWF0ZVByaW50ZXIoKTtcbiAgICBjb25zdCByZXBsYWNlbWVudFRleHQgPSBwcmludGVyLnByaW50Tm9kZSh0cy5FbWl0SGludC5VbnNwZWNpZmllZCwgcmVwbGFjZW1lbnROb2RlLCBzb3VyY2VGaWxlKTtcbiAgICByZXdyaXRlcy5wdXNoKHtcbiAgICAgIHN0YXJ0UG9zOiBvYmplY3RMaXRlcmFsLmdldFN0YXJ0KCksXG4gICAgICB3aWR0aDogb2JqZWN0TGl0ZXJhbC5nZXRXaWR0aCgpLFxuICAgICAgcmVwbGFjZW1lbnQ6IHJlcGxhY2VtZW50VGV4dCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFByb2Nlc3MgcmV3cml0ZXMgbGFzdC10by1maXJzdCAoYmFzZWQgb24gc3RhcnQgcG9zKSB0byBhdm9pZCBvZmZzZXQgc2hpZnRzIGR1cmluZyByZXdyaXRlcy5cbiAgcmV3cml0ZXMgPSBzb3J0QnlTdGFydFBvc0Rlc2NlbmRpbmcocmV3cml0ZXMpO1xuICBmb3IgKGNvbnN0IHJld3JpdGUgb2YgcmV3cml0ZXMpIHtcbiAgICByZXdyaXRlRm4ocmV3cml0ZS5zdGFydFBvcywgcmV3cml0ZS53aWR0aCwgcmV3cml0ZS5yZXBsYWNlbWVudCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0VXNhZ2VzKHNvdXJjZUZpbGU6IHRzLlNvdXJjZUZpbGUpOiBNaWdyYXRhYmxlTm9kZVtdIHtcbiAgY29uc3QgdXNhZ2VzOiBNaWdyYXRhYmxlTm9kZVtdID0gW107XG4gIGNvbnN0IHZpc2l0Tm9kZSA9IChub2RlOiB0cy5Ob2RlKSA9PiB7XG4gICAgaWYgKHRzLmlzT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb24obm9kZSkpIHtcbiAgICAgIC8vIExvb2sgZm9yIHBhdHRlcm5zIGxpa2UgdGhlIGZvbGxvd2luZzpcbiAgICAgIC8vIGBgYFxuICAgICAgLy8geyAuLi4gcmVsYXRpdmVMaW5rUmVzb2x1dGlvbjogJ2xlZ2FjeScsIC4uLiB9XG4gICAgICAvLyBgYGBcbiAgICAgIC8vIG9yOlxuICAgICAgLy8gYGBgXG4gICAgICAvLyB7IC4uLiByZWxhdGl2ZUxpbmtSZXNvbHV0aW9uOiAnY29ycmVjdGVkJywgLi4uIH1cbiAgICAgIC8vIGBgYFxuICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIHVua25vd24gKGkuZS4gbm90ICdsZWdhY3knIG9yICdjb3JyZWN0ZWQnKSxcbiAgICAgIC8vIGRvIG5vdCBhdHRlbXB0IHRvIHJld3JpdGUgKHRoaXMgbWlnaHQgYmUgYW4gYXBwbGljYXRpb24tc3BlY2lmaWNcbiAgICAgIC8vIGNvbmZpZ3VyYXRpb24sIG5vdCBhIHBhcnQgb2YgUm91dGVyKS5cbiAgICAgIGNvbnN0IHByb3BlcnR5ID0gbm9kZS5wcm9wZXJ0aWVzLmZpbmQoXG4gICAgICAgICAgcHJvcCA9PiB0cy5pc1Byb3BlcnR5QXNzaWdubWVudChwcm9wKSAmJiB0cy5pc0lkZW50aWZpZXIocHJvcC5uYW1lKSAmJlxuICAgICAgICAgICAgICBwcm9wLm5hbWUudGV4dCA9PT0gcmVsYXRpdmVMaW5rUmVzb2x1dGlvbiAmJlxuICAgICAgICAgICAgICBrbm93bkNvbmZpZ1ZhbHVlcy5oYXMocHJvcC5pbml0aWFsaXplci5nZXRUZXh0KCkpKTtcbiAgICAgIGlmIChwcm9wZXJ0eSkge1xuICAgICAgICB1c2FnZXMucHVzaCh7b2JqZWN0TGl0ZXJhbDogbm9kZSwgcHJvcGVydHl9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdHMuZm9yRWFjaENoaWxkKG5vZGUsIHZpc2l0Tm9kZSk7XG4gIH07XG4gIHRzLmZvckVhY2hDaGlsZChzb3VyY2VGaWxlLCB2aXNpdE5vZGUpO1xuICByZXR1cm4gdXNhZ2VzO1xufVxuXG4vKipcbiAqIFNvcnQgYWxsIGZvdW5kIHVzYWdlcyBiYXNlZCBvbiB0aGVpciBzdGFydCBwb3NpdGlvbnMgaW4gdGhlIHNvdXJjZSBmaWxlIGluIGRlc2NlbmRpbmcgb3JkZXIgKGkuZS5cbiAqIGxhc3QgdXNhZ2UgZ29lcyBmaXJzdCBvbiB0aGUgbGlzdCwgZXRjKS4gVGhpcyBpcyBuZWVkZWQgdG8gYXZvaWQgc2hpZnRpbmcgb2Zmc2V0cyBpbiB0aGUgc291cmNlXG4gKiBmaWxlIChpbiBjYXNlIHRoZXJlIGFyZSBtdWx0aXBsZSB1c2FnZXMpIGFzIHdlIHJld3JpdGUgc3ltYm9scy5cbiAqL1xuZnVuY3Rpb24gc29ydEJ5U3RhcnRQb3NEZXNjZW5kaW5nKHJld3JpdGVzOiBSZXdyaXRlRW50aXR5W10pOiBSZXdyaXRlRW50aXR5W10ge1xuICByZXR1cm4gcmV3cml0ZXMuc29ydCgoZW50aXR5QSwgZW50aXR5QikgPT4gZW50aXR5Qi5zdGFydFBvcyAtIGVudGl0eUEuc3RhcnRQb3MpO1xufVxuIl19
@@ -1,10 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- /// <amd-module name="@angular/core/schematics/migrations/router-link-with-href" />
9
- import { Rule } from '@angular-devkit/schematics';
10
- export default function (): Rule;
@@ -1,70 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
- return new (P || (P = Promise))(function (resolve, reject) {
11
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
- step((generator = generator.apply(thisArg, _arguments || [])).next());
15
- });
16
- };
17
- (function (factory) {
18
- if (typeof module === "object" && typeof module.exports === "object") {
19
- var v = factory(require, exports);
20
- if (v !== undefined) module.exports = v;
21
- }
22
- else if (typeof define === "function" && define.amd) {
23
- define("@angular/core/schematics/migrations/router-link-with-href", ["require", "exports", "@angular-devkit/schematics", "path", "@angular/core/schematics/utils/project_tsconfig_paths", "@angular/core/schematics/utils/typescript/compiler_host", "@angular/core/schematics/migrations/router-link-with-href/util"], factory);
24
- }
25
- })(function (require, exports) {
26
- "use strict";
27
- Object.defineProperty(exports, "__esModule", { value: true });
28
- const schematics_1 = require("@angular-devkit/schematics");
29
- const path_1 = require("path");
30
- const project_tsconfig_paths_1 = require("@angular/core/schematics/utils/project_tsconfig_paths");
31
- const compiler_host_1 = require("@angular/core/schematics/utils/typescript/compiler_host");
32
- const util_1 = require("@angular/core/schematics/migrations/router-link-with-href/util");
33
- function default_1() {
34
- return (tree) => __awaiter(this, void 0, void 0, function* () {
35
- const { buildPaths, testPaths } = yield (0, project_tsconfig_paths_1.getProjectTsConfigPaths)(tree);
36
- const basePath = process.cwd();
37
- const allPaths = [...buildPaths, ...testPaths];
38
- if (!allPaths.length) {
39
- throw new schematics_1.SchematicsException('Could not find any tsconfig file. Cannot run the `RouterLinkWithHref` migration.');
40
- }
41
- for (const tsconfigPath of allPaths) {
42
- runRouterLinkWithHrefMigration(tree, tsconfigPath, basePath);
43
- }
44
- });
45
- }
46
- exports.default = default_1;
47
- function runRouterLinkWithHrefMigration(tree, tsconfigPath, basePath) {
48
- const { program } = (0, compiler_host_1.createMigrationProgram)(tree, tsconfigPath, basePath);
49
- const typeChecker = program.getTypeChecker();
50
- const sourceFiles = program.getSourceFiles().filter(sourceFile => (0, compiler_host_1.canMigrateFile)(basePath, sourceFile, program));
51
- for (const sourceFile of sourceFiles) {
52
- let update = null;
53
- const rewriter = (startPos, width, text) => {
54
- if (update === null) {
55
- // Lazily initialize update, because most files will not require migration.
56
- update = tree.beginUpdate((0, path_1.relative)(basePath, sourceFile.fileName));
57
- }
58
- update.remove(startPos, width);
59
- if (text !== null) {
60
- update.insertLeft(startPos, text);
61
- }
62
- };
63
- (0, util_1.migrateFile)(sourceFile, typeChecker, rewriter);
64
- if (update !== null) {
65
- tree.commitUpdate(update);
66
- }
67
- }
68
- }
69
- });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NjaGVtYXRpY3MvbWlncmF0aW9ucy9yb3V0ZXItbGluay13aXRoLWhyZWYvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFSCwyREFBMkY7SUFDM0YsK0JBQThCO0lBRTlCLGtHQUEyRTtJQUMzRSwyRkFBNEY7SUFFNUYseUZBQW1DO0lBRW5DO1FBQ0UsT0FBTyxDQUFPLElBQVUsRUFBRSxFQUFFO1lBQzFCLE1BQU0sRUFBQyxVQUFVLEVBQUUsU0FBUyxFQUFDLEdBQUcsTUFBTSxJQUFBLGdEQUF1QixFQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BFLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUMvQixNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsVUFBVSxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUM7WUFFL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3BCLE1BQU0sSUFBSSxnQ0FBbUIsQ0FDekIsa0ZBQWtGLENBQUMsQ0FBQzthQUN6RjtZQUVELEtBQUssTUFBTSxZQUFZLElBQUksUUFBUSxFQUFFO2dCQUNuQyw4QkFBOEIsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2FBQzlEO1FBQ0gsQ0FBQyxDQUFBLENBQUM7SUFDSixDQUFDO0lBZkQsNEJBZUM7SUFFRCxTQUFTLDhCQUE4QixDQUFDLElBQVUsRUFBRSxZQUFvQixFQUFFLFFBQWdCO1FBQ3hGLE1BQU0sRUFBQyxPQUFPLEVBQUMsR0FBRyxJQUFBLHNDQUFzQixFQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdkUsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzdDLE1BQU0sV0FBVyxHQUNiLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFBLDhCQUFjLEVBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRWpHLEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFO1lBQ3BDLElBQUksTUFBTSxHQUF3QixJQUFJLENBQUM7WUFFdkMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxRQUFnQixFQUFFLEtBQWEsRUFBRSxJQUFpQixFQUFFLEVBQUU7Z0JBQ3RFLElBQUksTUFBTSxLQUFLLElBQUksRUFBRTtvQkFDbkIsMkVBQTJFO29CQUMzRSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFBLGVBQVEsRUFBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7aUJBQ3BFO2dCQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUMvQixJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7b0JBQ2pCLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO2lCQUNuQztZQUNILENBQUMsQ0FBQztZQUVGLElBQUEsa0JBQVcsRUFBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBRS9DLElBQUksTUFBTSxLQUFLLElBQUksRUFBRTtnQkFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUMzQjtTQUNGO0lBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1J1bGUsIFNjaGVtYXRpY3NFeGNlcHRpb24sIFRyZWUsIFVwZGF0ZVJlY29yZGVyfSBmcm9tICdAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcyc7XG5pbXBvcnQge3JlbGF0aXZlfSBmcm9tICdwYXRoJztcblxuaW1wb3J0IHtnZXRQcm9qZWN0VHNDb25maWdQYXRoc30gZnJvbSAnLi4vLi4vdXRpbHMvcHJvamVjdF90c2NvbmZpZ19wYXRocyc7XG5pbXBvcnQge2Nhbk1pZ3JhdGVGaWxlLCBjcmVhdGVNaWdyYXRpb25Qcm9ncmFtfSBmcm9tICcuLi8uLi91dGlscy90eXBlc2NyaXB0L2NvbXBpbGVyX2hvc3QnO1xuXG5pbXBvcnQge21pZ3JhdGVGaWxlfSBmcm9tICcuL3V0aWwnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbigpOiBSdWxlIHtcbiAgcmV0dXJuIGFzeW5jICh0cmVlOiBUcmVlKSA9PiB7XG4gICAgY29uc3Qge2J1aWxkUGF0aHMsIHRlc3RQYXRoc30gPSBhd2FpdCBnZXRQcm9qZWN0VHNDb25maWdQYXRocyh0cmVlKTtcbiAgICBjb25zdCBiYXNlUGF0aCA9IHByb2Nlc3MuY3dkKCk7XG4gICAgY29uc3QgYWxsUGF0aHMgPSBbLi4uYnVpbGRQYXRocywgLi4udGVzdFBhdGhzXTtcblxuICAgIGlmICghYWxsUGF0aHMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgU2NoZW1hdGljc0V4Y2VwdGlvbihcbiAgICAgICAgICAnQ291bGQgbm90IGZpbmQgYW55IHRzY29uZmlnIGZpbGUuIENhbm5vdCBydW4gdGhlIGBSb3V0ZXJMaW5rV2l0aEhyZWZgIG1pZ3JhdGlvbi4nKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHRzY29uZmlnUGF0aCBvZiBhbGxQYXRocykge1xuICAgICAgcnVuUm91dGVyTGlua1dpdGhIcmVmTWlncmF0aW9uKHRyZWUsIHRzY29uZmlnUGF0aCwgYmFzZVBhdGgpO1xuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gcnVuUm91dGVyTGlua1dpdGhIcmVmTWlncmF0aW9uKHRyZWU6IFRyZWUsIHRzY29uZmlnUGF0aDogc3RyaW5nLCBiYXNlUGF0aDogc3RyaW5nKSB7XG4gIGNvbnN0IHtwcm9ncmFtfSA9IGNyZWF0ZU1pZ3JhdGlvblByb2dyYW0odHJlZSwgdHNjb25maWdQYXRoLCBiYXNlUGF0aCk7XG4gIGNvbnN0IHR5cGVDaGVja2VyID0gcHJvZ3JhbS5nZXRUeXBlQ2hlY2tlcigpO1xuICBjb25zdCBzb3VyY2VGaWxlcyA9XG4gICAgICBwcm9ncmFtLmdldFNvdXJjZUZpbGVzKCkuZmlsdGVyKHNvdXJjZUZpbGUgPT4gY2FuTWlncmF0ZUZpbGUoYmFzZVBhdGgsIHNvdXJjZUZpbGUsIHByb2dyYW0pKTtcblxuICBmb3IgKGNvbnN0IHNvdXJjZUZpbGUgb2Ygc291cmNlRmlsZXMpIHtcbiAgICBsZXQgdXBkYXRlOiBVcGRhdGVSZWNvcmRlcnxudWxsID0gbnVsbDtcblxuICAgIGNvbnN0IHJld3JpdGVyID0gKHN0YXJ0UG9zOiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIHRleHQ6IHN0cmluZ3xudWxsKSA9PiB7XG4gICAgICBpZiAodXBkYXRlID09PSBudWxsKSB7XG4gICAgICAgIC8vIExhemlseSBpbml0aWFsaXplIHVwZGF0ZSwgYmVjYXVzZSBtb3N0IGZpbGVzIHdpbGwgbm90IHJlcXVpcmUgbWlncmF0aW9uLlxuICAgICAgICB1cGRhdGUgPSB0cmVlLmJlZ2luVXBkYXRlKHJlbGF0aXZlKGJhc2VQYXRoLCBzb3VyY2VGaWxlLmZpbGVOYW1lKSk7XG4gICAgICB9XG4gICAgICB1cGRhdGUucmVtb3ZlKHN0YXJ0UG9zLCB3aWR0aCk7XG4gICAgICBpZiAodGV4dCAhPT0gbnVsbCkge1xuICAgICAgICB1cGRhdGUuaW5zZXJ0TGVmdChzdGFydFBvcywgdGV4dCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIG1pZ3JhdGVGaWxlKHNvdXJjZUZpbGUsIHR5cGVDaGVja2VyLCByZXdyaXRlcik7XG5cbiAgICBpZiAodXBkYXRlICE9PSBudWxsKSB7XG4gICAgICB0cmVlLmNvbW1pdFVwZGF0ZSh1cGRhdGUpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,19 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- /// <amd-module name="@angular/core/schematics/migrations/router-link-with-href/util" />
9
- import ts from 'typescript';
10
- export declare const routerLink = "RouterLink";
11
- export declare const routerLinkWithHref = "RouterLinkWithHref";
12
- export declare const routerModule = "@angular/router";
13
- export interface RewriteEntity {
14
- startPos: number;
15
- width: number;
16
- replacement: string;
17
- }
18
- export type RewriteFn = (startPos: number, width: number, text: string) => void;
19
- export declare function migrateFile(sourceFile: ts.SourceFile, typeChecker: ts.TypeChecker, rewrite: RewriteFn): void;
@@ -1,111 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
- (function (factory) {
12
- if (typeof module === "object" && typeof module.exports === "object") {
13
- var v = factory(require, exports);
14
- if (v !== undefined) module.exports = v;
15
- }
16
- else if (typeof define === "function" && define.amd) {
17
- define("@angular/core/schematics/migrations/router-link-with-href/util", ["require", "exports", "typescript", "@angular/core/schematics/utils/typescript/imports", "@angular/core/schematics/utils/typescript/nodes"], factory);
18
- }
19
- })(function (require, exports) {
20
- "use strict";
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.migrateFile = exports.routerModule = exports.routerLinkWithHref = exports.routerLink = void 0;
23
- const typescript_1 = __importDefault(require("typescript"));
24
- const imports_1 = require("@angular/core/schematics/utils/typescript/imports");
25
- const nodes_1 = require("@angular/core/schematics/utils/typescript/nodes");
26
- exports.routerLink = 'RouterLink';
27
- exports.routerLinkWithHref = 'RouterLinkWithHref';
28
- exports.routerModule = '@angular/router';
29
- function migrateFile(sourceFile, typeChecker, rewrite) {
30
- const routerLinkWithHrefSpec = (0, imports_1.getImportSpecifier)(sourceFile, exports.routerModule, exports.routerLinkWithHref);
31
- // No `RouterLinkWithHref` found, nothing to migrate, exit early.
32
- if (routerLinkWithHrefSpec === null)
33
- return;
34
- let rewrites = findUsages(sourceFile, typeChecker);
35
- // There are some usages of the `RouterLinkWithHref` symbol, which need to
36
- // be rewritten to `RouterLink` instead. Let's check if the `RouterLink` is
37
- // already imported.
38
- const routerLinkSpec = (0, imports_1.getImportSpecifier)(sourceFile, exports.routerModule, exports.routerLink);
39
- if (routerLinkSpec) {
40
- // The `RouterLink` symbol is already imported, just drop the `RouterLinkWithHref` one.
41
- const routerLinkNamedImports = routerLinkWithHrefSpec ?
42
- (0, nodes_1.closestNode)(routerLinkWithHrefSpec, typescript_1.default.SyntaxKind.NamedImports) :
43
- null;
44
- if (routerLinkNamedImports !== null) {
45
- // Given an original import like this one:
46
- // ```
47
- // import {RouterModule, RouterLinkWithHref, RouterLink} from '@angular/router';
48
- // ```
49
- // The code below removes the `RouterLinkWithHref` from the named imports section
50
- // (i.e. `{RouterModule, RouterLinkWithHref, RouterLink}`) and prints an updated
51
- // version (`{RouterModule, RouterLink}`) to a string, which is used as a
52
- // replacement.
53
- const rewrittenNamedImports = (0, imports_1.removeSymbolFromNamedImports)(routerLinkNamedImports, routerLinkWithHrefSpec);
54
- const printer = typescript_1.default.createPrinter();
55
- const replacement = printer.printNode(typescript_1.default.EmitHint.Unspecified, rewrittenNamedImports, sourceFile);
56
- rewrites.push({
57
- startPos: routerLinkNamedImports.getStart(),
58
- width: routerLinkNamedImports.getWidth(),
59
- replacement: replacement,
60
- });
61
- }
62
- }
63
- else {
64
- // The `RouterLink` symbol is not imported, but the `RouterLinkWithHref` is imported,
65
- // so rewrite `RouterLinkWithHref` -> `RouterLink`.
66
- rewrites.push({
67
- startPos: routerLinkWithHrefSpec.getStart(),
68
- width: routerLinkWithHrefSpec.getWidth(),
69
- replacement: exports.routerLink,
70
- });
71
- }
72
- // Process rewrites last-to-first (based on start pos) to avoid offset shifts during rewrites.
73
- rewrites = sortByStartPosDescending(rewrites);
74
- for (const usage of rewrites) {
75
- rewrite(usage.startPos, usage.width, usage.replacement);
76
- }
77
- }
78
- exports.migrateFile = migrateFile;
79
- function findUsages(sourceFile, typeChecker) {
80
- const usages = [];
81
- const visitNode = (node) => {
82
- if (typescript_1.default.isImportSpecifier(node)) {
83
- // Skip this node and all of its children; imports are a special case.
84
- return;
85
- }
86
- if (typescript_1.default.isIdentifier(node)) {
87
- const importIdentifier = (0, imports_1.getImportOfIdentifier)(typeChecker, node);
88
- if ((importIdentifier === null || importIdentifier === void 0 ? void 0 : importIdentifier.importModule) === exports.routerModule &&
89
- importIdentifier.name === exports.routerLinkWithHref) {
90
- usages.push({
91
- startPos: node.getStart(),
92
- width: node.getWidth(),
93
- replacement: exports.routerLink,
94
- });
95
- }
96
- }
97
- typescript_1.default.forEachChild(node, visitNode);
98
- };
99
- typescript_1.default.forEachChild(sourceFile, visitNode);
100
- return usages;
101
- }
102
- /**
103
- * Sort all found usages based on their start positions in the source file in descending order (i.e.
104
- * last usage goes first on the list, etc). This is needed to avoid shifting offsets in the source
105
- * file (in case there are multiple usages) as we rewrite symbols.
106
- */
107
- function sortByStartPosDescending(rewrites) {
108
- return rewrites.sort((entityA, entityB) => entityB.startPos - entityA.startPos);
109
- }
110
- });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc2NoZW1hdGljcy9taWdyYXRpb25zL3JvdXRlci1saW5rLXdpdGgtaHJlZi91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7OztJQUVILDREQUE0QjtJQUU1QiwrRUFBdUg7SUFDdkgsMkVBQXlEO0lBRTVDLFFBQUEsVUFBVSxHQUFHLFlBQVksQ0FBQztJQUMxQixRQUFBLGtCQUFrQixHQUFHLG9CQUFvQixDQUFDO0lBQzFDLFFBQUEsWUFBWSxHQUFHLGlCQUFpQixDQUFDO0lBVTlDLFNBQWdCLFdBQVcsQ0FDdkIsVUFBeUIsRUFBRSxXQUEyQixFQUFFLE9BQWtCO1FBQzVFLE1BQU0sc0JBQXNCLEdBQUcsSUFBQSw0QkFBa0IsRUFBQyxVQUFVLEVBQUUsb0JBQVksRUFBRSwwQkFBa0IsQ0FBQyxDQUFDO1FBRWhHLGlFQUFpRTtRQUNqRSxJQUFJLHNCQUFzQixLQUFLLElBQUk7WUFBRSxPQUFPO1FBRTVDLElBQUksUUFBUSxHQUFHLFVBQVUsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFbkQsMEVBQTBFO1FBQzFFLDJFQUEyRTtRQUMzRSxvQkFBb0I7UUFDcEIsTUFBTSxjQUFjLEdBQUcsSUFBQSw0QkFBa0IsRUFBQyxVQUFVLEVBQUUsb0JBQVksRUFBRSxrQkFBVSxDQUFDLENBQUM7UUFFaEYsSUFBSSxjQUFjLEVBQUU7WUFDbEIsdUZBQXVGO1lBQ3ZGLE1BQU0sc0JBQXNCLEdBQUcsc0JBQXNCLENBQUMsQ0FBQztnQkFDbkQsSUFBQSxtQkFBVyxFQUFrQixzQkFBc0IsRUFBRSxvQkFBRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO2dCQUNsRixJQUFJLENBQUM7WUFDVCxJQUFJLHNCQUFzQixLQUFLLElBQUksRUFBRTtnQkFDbkMsMENBQTBDO2dCQUMxQyxNQUFNO2dCQUNOLGdGQUFnRjtnQkFDaEYsTUFBTTtnQkFDTixpRkFBaUY7Z0JBQ2pGLGdGQUFnRjtnQkFDaEYseUVBQXlFO2dCQUN6RSxlQUFlO2dCQUNmLE1BQU0scUJBQXFCLEdBQ3ZCLElBQUEsc0NBQTRCLEVBQUMsc0JBQXNCLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztnQkFDakYsTUFBTSxPQUFPLEdBQUcsb0JBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDbkMsTUFBTSxXQUFXLEdBQ2IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxvQkFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUscUJBQXFCLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQ2xGLFFBQVEsQ0FBQyxJQUFJLENBQUM7b0JBQ1osUUFBUSxFQUFFLHNCQUFzQixDQUFDLFFBQVEsRUFBRTtvQkFDM0MsS0FBSyxFQUFFLHNCQUFzQixDQUFDLFFBQVEsRUFBRTtvQkFDeEMsV0FBVyxFQUFFLFdBQVc7aUJBQ3pCLENBQUMsQ0FBQzthQUNKO1NBQ0Y7YUFBTTtZQUNMLHFGQUFxRjtZQUNyRixtREFBbUQ7WUFDbkQsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDWixRQUFRLEVBQUUsc0JBQXNCLENBQUMsUUFBUSxFQUFFO2dCQUMzQyxLQUFLLEVBQUUsc0JBQXNCLENBQUMsUUFBUSxFQUFFO2dCQUN4QyxXQUFXLEVBQUUsa0JBQVU7YUFDeEIsQ0FBQyxDQUFDO1NBQ0o7UUFFRCw4RkFBOEY7UUFDOUYsUUFBUSxHQUFHLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLEtBQUssTUFBTSxLQUFLLElBQUksUUFBUSxFQUFFO1lBQzVCLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3pEO0lBQ0gsQ0FBQztJQXRERCxrQ0FzREM7SUFFRCxTQUFTLFVBQVUsQ0FBQyxVQUF5QixFQUFFLFdBQTJCO1FBQ3hFLE1BQU0sTUFBTSxHQUFvQixFQUFFLENBQUM7UUFDbkMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFhLEVBQUUsRUFBRTtZQUNsQyxJQUFJLG9CQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzlCLHNFQUFzRTtnQkFDdEUsT0FBTzthQUNSO1lBQ0QsSUFBSSxvQkFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDekIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLCtCQUFxQixFQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDbEUsSUFBSSxDQUFBLGdCQUFnQixhQUFoQixnQkFBZ0IsdUJBQWhCLGdCQUFnQixDQUFFLFlBQVksTUFBSyxvQkFBWTtvQkFDL0MsZ0JBQWdCLENBQUMsSUFBSSxLQUFLLDBCQUFrQixFQUFFO29CQUNoRCxNQUFNLENBQUMsSUFBSSxDQUFDO3dCQUNWLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFO3dCQUN6QixLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTt3QkFDdEIsV0FBVyxFQUFFLGtCQUFVO3FCQUN4QixDQUFDLENBQUM7aUJBQ0o7YUFDRjtZQUNELG9CQUFFLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUM7UUFDRixvQkFBRSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdkMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxTQUFTLHdCQUF3QixDQUFDLFFBQXlCO1FBQ3pELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge2dldEltcG9ydE9mSWRlbnRpZmllciwgZ2V0SW1wb3J0U3BlY2lmaWVyLCByZW1vdmVTeW1ib2xGcm9tTmFtZWRJbXBvcnRzfSBmcm9tICcuLi8uLi91dGlscy90eXBlc2NyaXB0L2ltcG9ydHMnO1xuaW1wb3J0IHtjbG9zZXN0Tm9kZX0gZnJvbSAnLi4vLi4vdXRpbHMvdHlwZXNjcmlwdC9ub2Rlcyc7XG5cbmV4cG9ydCBjb25zdCByb3V0ZXJMaW5rID0gJ1JvdXRlckxpbmsnO1xuZXhwb3J0IGNvbnN0IHJvdXRlckxpbmtXaXRoSHJlZiA9ICdSb3V0ZXJMaW5rV2l0aEhyZWYnO1xuZXhwb3J0IGNvbnN0IHJvdXRlck1vZHVsZSA9ICdAYW5ndWxhci9yb3V0ZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJld3JpdGVFbnRpdHkge1xuICBzdGFydFBvczogbnVtYmVyO1xuICB3aWR0aDogbnVtYmVyO1xuICByZXBsYWNlbWVudDogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBSZXdyaXRlRm4gPSAoc3RhcnRQb3M6IG51bWJlciwgd2lkdGg6IG51bWJlciwgdGV4dDogc3RyaW5nKSA9PiB2b2lkO1xuXG5leHBvcnQgZnVuY3Rpb24gbWlncmF0ZUZpbGUoXG4gICAgc291cmNlRmlsZTogdHMuU291cmNlRmlsZSwgdHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyLCByZXdyaXRlOiBSZXdyaXRlRm4pIHtcbiAgY29uc3Qgcm91dGVyTGlua1dpdGhIcmVmU3BlYyA9IGdldEltcG9ydFNwZWNpZmllcihzb3VyY2VGaWxlLCByb3V0ZXJNb2R1bGUsIHJvdXRlckxpbmtXaXRoSHJlZik7XG5cbiAgLy8gTm8gYFJvdXRlckxpbmtXaXRoSHJlZmAgZm91bmQsIG5vdGhpbmcgdG8gbWlncmF0ZSwgZXhpdCBlYXJseS5cbiAgaWYgKHJvdXRlckxpbmtXaXRoSHJlZlNwZWMgPT09IG51bGwpIHJldHVybjtcblxuICBsZXQgcmV3cml0ZXMgPSBmaW5kVXNhZ2VzKHNvdXJjZUZpbGUsIHR5cGVDaGVja2VyKTtcblxuICAvLyBUaGVyZSBhcmUgc29tZSB1c2FnZXMgb2YgdGhlIGBSb3V0ZXJMaW5rV2l0aEhyZWZgIHN5bWJvbCwgd2hpY2ggbmVlZCB0b1xuICAvLyBiZSByZXdyaXR0ZW4gdG8gYFJvdXRlckxpbmtgIGluc3RlYWQuIExldCdzIGNoZWNrIGlmIHRoZSBgUm91dGVyTGlua2AgaXNcbiAgLy8gYWxyZWFkeSBpbXBvcnRlZC5cbiAgY29uc3Qgcm91dGVyTGlua1NwZWMgPSBnZXRJbXBvcnRTcGVjaWZpZXIoc291cmNlRmlsZSwgcm91dGVyTW9kdWxlLCByb3V0ZXJMaW5rKTtcblxuICBpZiAocm91dGVyTGlua1NwZWMpIHtcbiAgICAvLyBUaGUgYFJvdXRlckxpbmtgIHN5bWJvbCBpcyBhbHJlYWR5IGltcG9ydGVkLCBqdXN0IGRyb3AgdGhlIGBSb3V0ZXJMaW5rV2l0aEhyZWZgIG9uZS5cbiAgICBjb25zdCByb3V0ZXJMaW5rTmFtZWRJbXBvcnRzID0gcm91dGVyTGlua1dpdGhIcmVmU3BlYyA/XG4gICAgICAgIGNsb3Nlc3ROb2RlPHRzLk5hbWVkSW1wb3J0cz4ocm91dGVyTGlua1dpdGhIcmVmU3BlYywgdHMuU3ludGF4S2luZC5OYW1lZEltcG9ydHMpIDpcbiAgICAgICAgbnVsbDtcbiAgICBpZiAocm91dGVyTGlua05hbWVkSW1wb3J0cyAhPT0gbnVsbCkge1xuICAgICAgLy8gR2l2ZW4gYW4gb3JpZ2luYWwgaW1wb3J0IGxpa2UgdGhpcyBvbmU6XG4gICAgICAvLyBgYGBcbiAgICAgIC8vIGltcG9ydCB7Um91dGVyTW9kdWxlLCBSb3V0ZXJMaW5rV2l0aEhyZWYsIFJvdXRlckxpbmt9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG4gICAgICAvLyBgYGBcbiAgICAgIC8vIFRoZSBjb2RlIGJlbG93IHJlbW92ZXMgdGhlIGBSb3V0ZXJMaW5rV2l0aEhyZWZgIGZyb20gdGhlIG5hbWVkIGltcG9ydHMgc2VjdGlvblxuICAgICAgLy8gKGkuZS4gYHtSb3V0ZXJNb2R1bGUsIFJvdXRlckxpbmtXaXRoSHJlZiwgUm91dGVyTGlua31gKSBhbmQgcHJpbnRzIGFuIHVwZGF0ZWRcbiAgICAgIC8vIHZlcnNpb24gKGB7Um91dGVyTW9kdWxlLCBSb3V0ZXJMaW5rfWApIHRvIGEgc3RyaW5nLCB3aGljaCBpcyB1c2VkIGFzIGFcbiAgICAgIC8vIHJlcGxhY2VtZW50LlxuICAgICAgY29uc3QgcmV3cml0dGVuTmFtZWRJbXBvcnRzID1cbiAgICAgICAgICByZW1vdmVTeW1ib2xGcm9tTmFtZWRJbXBvcnRzKHJvdXRlckxpbmtOYW1lZEltcG9ydHMsIHJvdXRlckxpbmtXaXRoSHJlZlNwZWMpO1xuICAgICAgY29uc3QgcHJpbnRlciA9IHRzLmNyZWF0ZVByaW50ZXIoKTtcbiAgICAgIGNvbnN0IHJlcGxhY2VtZW50ID1cbiAgICAgICAgICBwcmludGVyLnByaW50Tm9kZSh0cy5FbWl0SGludC5VbnNwZWNpZmllZCwgcmV3cml0dGVuTmFtZWRJbXBvcnRzLCBzb3VyY2VGaWxlKTtcbiAgICAgIHJld3JpdGVzLnB1c2goe1xuICAgICAgICBzdGFydFBvczogcm91dGVyTGlua05hbWVkSW1wb3J0cy5nZXRTdGFydCgpLFxuICAgICAgICB3aWR0aDogcm91dGVyTGlua05hbWVkSW1wb3J0cy5nZXRXaWR0aCgpLFxuICAgICAgICByZXBsYWNlbWVudDogcmVwbGFjZW1lbnQsXG4gICAgICB9KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gVGhlIGBSb3V0ZXJMaW5rYCBzeW1ib2wgaXMgbm90IGltcG9ydGVkLCBidXQgdGhlIGBSb3V0ZXJMaW5rV2l0aEhyZWZgIGlzIGltcG9ydGVkLFxuICAgIC8vIHNvIHJld3JpdGUgYFJvdXRlckxpbmtXaXRoSHJlZmAgLT4gYFJvdXRlckxpbmtgLlxuICAgIHJld3JpdGVzLnB1c2goe1xuICAgICAgc3RhcnRQb3M6IHJvdXRlckxpbmtXaXRoSHJlZlNwZWMuZ2V0U3RhcnQoKSxcbiAgICAgIHdpZHRoOiByb3V0ZXJMaW5rV2l0aEhyZWZTcGVjLmdldFdpZHRoKCksXG4gICAgICByZXBsYWNlbWVudDogcm91dGVyTGluayxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFByb2Nlc3MgcmV3cml0ZXMgbGFzdC10by1maXJzdCAoYmFzZWQgb24gc3RhcnQgcG9zKSB0byBhdm9pZCBvZmZzZXQgc2hpZnRzIGR1cmluZyByZXdyaXRlcy5cbiAgcmV3cml0ZXMgPSBzb3J0QnlTdGFydFBvc0Rlc2NlbmRpbmcocmV3cml0ZXMpO1xuICBmb3IgKGNvbnN0IHVzYWdlIG9mIHJld3JpdGVzKSB7XG4gICAgcmV3cml0ZSh1c2FnZS5zdGFydFBvcywgdXNhZ2Uud2lkdGgsIHVzYWdlLnJlcGxhY2VtZW50KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kVXNhZ2VzKHNvdXJjZUZpbGU6IHRzLlNvdXJjZUZpbGUsIHR5cGVDaGVja2VyOiB0cy5UeXBlQ2hlY2tlcik6IFJld3JpdGVFbnRpdHlbXSB7XG4gIGNvbnN0IHVzYWdlczogUmV3cml0ZUVudGl0eVtdID0gW107XG4gIGNvbnN0IHZpc2l0Tm9kZSA9IChub2RlOiB0cy5Ob2RlKSA9PiB7XG4gICAgaWYgKHRzLmlzSW1wb3J0U3BlY2lmaWVyKG5vZGUpKSB7XG4gICAgICAvLyBTa2lwIHRoaXMgbm9kZSBhbmQgYWxsIG9mIGl0cyBjaGlsZHJlbjsgaW1wb3J0cyBhcmUgYSBzcGVjaWFsIGNhc2UuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0cy5pc0lkZW50aWZpZXIobm9kZSkpIHtcbiAgICAgIGNvbnN0IGltcG9ydElkZW50aWZpZXIgPSBnZXRJbXBvcnRPZklkZW50aWZpZXIodHlwZUNoZWNrZXIsIG5vZGUpO1xuICAgICAgaWYgKGltcG9ydElkZW50aWZpZXI/LmltcG9ydE1vZHVsZSA9PT0gcm91dGVyTW9kdWxlICYmXG4gICAgICAgICAgaW1wb3J0SWRlbnRpZmllci5uYW1lID09PSByb3V0ZXJMaW5rV2l0aEhyZWYpIHtcbiAgICAgICAgdXNhZ2VzLnB1c2goe1xuICAgICAgICAgIHN0YXJ0UG9zOiBub2RlLmdldFN0YXJ0KCksXG4gICAgICAgICAgd2lkdGg6IG5vZGUuZ2V0V2lkdGgoKSxcbiAgICAgICAgICByZXBsYWNlbWVudDogcm91dGVyTGluayxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRzLmZvckVhY2hDaGlsZChub2RlLCB2aXNpdE5vZGUpO1xuICB9O1xuICB0cy5mb3JFYWNoQ2hpbGQoc291cmNlRmlsZSwgdmlzaXROb2RlKTtcbiAgcmV0dXJuIHVzYWdlcztcbn1cblxuLyoqXG4gKiBTb3J0IGFsbCBmb3VuZCB1c2FnZXMgYmFzZWQgb24gdGhlaXIgc3RhcnQgcG9zaXRpb25zIGluIHRoZSBzb3VyY2UgZmlsZSBpbiBkZXNjZW5kaW5nIG9yZGVyIChpLmUuXG4gKiBsYXN0IHVzYWdlIGdvZXMgZmlyc3Qgb24gdGhlIGxpc3QsIGV0YykuIFRoaXMgaXMgbmVlZGVkIHRvIGF2b2lkIHNoaWZ0aW5nIG9mZnNldHMgaW4gdGhlIHNvdXJjZVxuICogZmlsZSAoaW4gY2FzZSB0aGVyZSBhcmUgbXVsdGlwbGUgdXNhZ2VzKSBhcyB3ZSByZXdyaXRlIHN5bWJvbHMuXG4gKi9cbmZ1bmN0aW9uIHNvcnRCeVN0YXJ0UG9zRGVzY2VuZGluZyhyZXdyaXRlczogUmV3cml0ZUVudGl0eVtdKTogUmV3cml0ZUVudGl0eVtdIHtcbiAgcmV0dXJuIHJld3JpdGVzLnNvcnQoKGVudGl0eUEsIGVudGl0eUIpID0+IGVudGl0eUIuc3RhcnRQb3MgLSBlbnRpdHlBLnN0YXJ0UG9zKTtcbn1cbiJdfQ==
@@ -1,57 +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/import_manager" />
9
- import ts from 'typescript';
10
- /** Update recorder for managing imports. */
11
- export interface ImportManagerUpdateRecorder {
12
- addNewImport(start: number, importText: string): void;
13
- updateExistingImport(namedBindings: ts.NamedImports, newNamedBindings: string): void;
14
- }
15
- /**
16
- * Import manager that can be used to add TypeScript imports to given source
17
- * files. The manager ensures that multiple transformations are applied properly
18
- * without shifted offsets and that similar existing import declarations are re-used.
19
- */
20
- export declare class ImportManager {
21
- private getUpdateRecorder;
22
- private printer;
23
- /** Map of import declarations that need to be updated to include the given symbols. */
24
- private updatedImports;
25
- /** Map of source-files and their previously used identifier names. */
26
- private usedIdentifierNames;
27
- /**
28
- * Array of previously resolved symbol imports. Cache can be re-used to return
29
- * the same identifier without checking the source-file again.
30
- */
31
- private importCache;
32
- constructor(getUpdateRecorder: (sf: ts.SourceFile) => ImportManagerUpdateRecorder, printer: ts.Printer);
33
- /**
34
- * Adds an import to the given source-file and returns the TypeScript
35
- * identifier that can be used to access the newly imported symbol.
36
- */
37
- addImportToSourceFile(sourceFile: ts.SourceFile, symbolName: string | null, moduleName: string, typeImport?: boolean): ts.Expression;
38
- /**
39
- * Stores the collected import changes within the appropriate update recorders. The
40
- * updated imports can only be updated *once* per source-file because previous updates
41
- * could otherwise shift the source-file offsets.
42
- */
43
- recordChanges(): void;
44
- /** Gets an unique identifier with a base name for the given source file. */
45
- private _getUniqueIdentifier;
46
- /**
47
- * Checks whether the specified identifier name is used within the given
48
- * source file.
49
- */
50
- private isUniqueIdentifierName;
51
- private _recordUsedIdentifier;
52
- /**
53
- * Determines the full end of a given node. By default the end position of a node is
54
- * before all trailing comments. This could mean that generated imports shift comments.
55
- */
56
- private _getEndPositionOfNode;
57
- }