@angular/cdk 12.0.0-rc.2 → 12.0.2

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 (107) hide show
  1. package/a11y/focus-trap/focus-trap.d.ts +6 -2
  2. package/a11y/index.metadata.json +1 -1
  3. package/bundles/cdk-a11y.umd.js +7 -3
  4. package/bundles/cdk-a11y.umd.js.map +1 -1
  5. package/bundles/cdk-overlay.umd.js +14 -12
  6. package/bundles/cdk-overlay.umd.js.map +1 -1
  7. package/bundles/cdk-platform.umd.js +19 -0
  8. package/bundles/cdk-platform.umd.js.map +1 -1
  9. package/bundles/cdk-testing.umd.js +48 -4
  10. package/bundles/cdk-testing.umd.js.map +1 -1
  11. package/bundles/cdk.umd.js +1 -1
  12. package/bundles/cdk.umd.js.map +1 -1
  13. package/esm2015/a11y/focus-trap/focus-trap.js +9 -4
  14. package/esm2015/overlay/dispatchers/overlay-outside-click-dispatcher.js +15 -13
  15. package/esm2015/platform/features/shadow-dom.js +19 -1
  16. package/esm2015/testing/change-detection.js +8 -1
  17. package/esm2015/testing/component-harness.js +42 -4
  18. package/esm2015/version.js +1 -1
  19. package/fesm2015/a11y.js +8 -4
  20. package/fesm2015/a11y.js.map +1 -1
  21. package/fesm2015/cdk.js +1 -1
  22. package/fesm2015/cdk.js.map +1 -1
  23. package/fesm2015/overlay.js +14 -12
  24. package/fesm2015/overlay.js.map +1 -1
  25. package/fesm2015/platform.js +19 -1
  26. package/fesm2015/platform.js.map +1 -1
  27. package/fesm2015/testing.js +48 -3
  28. package/fesm2015/testing.js.map +1 -1
  29. package/package.json +3 -3
  30. package/platform/features/shadow-dom.d.ts +5 -0
  31. package/platform/index.metadata.json +1 -1
  32. package/schematics/index.mjs +33 -0
  33. package/schematics/ng-add/index.js +1 -1
  34. package/schematics/ng-add/index.mjs +39 -0
  35. package/schematics/ng-add/package-config.mjs +47 -0
  36. package/schematics/ng-add/schema.mjs +10 -0
  37. package/schematics/ng-generate/drag-drop/index.mjs +39 -0
  38. package/schematics/ng-generate/drag-drop/schema.mjs +10 -0
  39. package/schematics/ng-update/data/attribute-selectors.mjs +21 -0
  40. package/schematics/ng-update/data/class-names.mjs +40 -0
  41. package/schematics/ng-update/data/constructor-checks.mjs +66 -0
  42. package/schematics/ng-update/data/css-selectors.mjs +15 -0
  43. package/schematics/ng-update/data/element-selectors.mjs +15 -0
  44. package/schematics/ng-update/data/index.mjs +29 -0
  45. package/schematics/ng-update/data/input-names.mjs +81 -0
  46. package/schematics/ng-update/data/method-call-checks.mjs +43 -0
  47. package/schematics/ng-update/data/output-names.mjs +27 -0
  48. package/schematics/ng-update/data/property-names.mjs +129 -0
  49. package/schematics/ng-update/devkit-file-system.mjs +81 -0
  50. package/schematics/ng-update/devkit-migration-rule.mjs +136 -0
  51. package/schematics/ng-update/devkit-migration.mjs +20 -0
  52. package/schematics/ng-update/find-stylesheets.d.ts +8 -2
  53. package/schematics/ng-update/find-stylesheets.js +16 -5
  54. package/schematics/ng-update/find-stylesheets.mjs +42 -0
  55. package/schematics/ng-update/html-parsing/angular.mjs +52 -0
  56. package/schematics/ng-update/html-parsing/elements.mjs +62 -0
  57. package/schematics/ng-update/index.mjs +59 -0
  58. package/schematics/ng-update/migrations/attribute-selectors.mjs +67 -0
  59. package/schematics/ng-update/migrations/class-inheritance.mjs +58 -0
  60. package/schematics/ng-update/migrations/class-names.mjs +90 -0
  61. package/schematics/ng-update/migrations/constructor-signature.mjs +135 -0
  62. package/schematics/ng-update/migrations/css-selectors.mjs +74 -0
  63. package/schematics/ng-update/migrations/element-selectors.mjs +65 -0
  64. package/schematics/ng-update/migrations/input-names.mjs +60 -0
  65. package/schematics/ng-update/migrations/method-call-arguments.mjs +61 -0
  66. package/schematics/ng-update/migrations/misc-template.mjs +38 -0
  67. package/schematics/ng-update/migrations/output-names.mjs +47 -0
  68. package/schematics/ng-update/migrations/property-names.mjs +59 -0
  69. package/schematics/ng-update/public-api.mjs +30 -0
  70. package/schematics/ng-update/typescript/base-types.mjs +24 -0
  71. package/schematics/ng-update/typescript/imports.mjs +54 -0
  72. package/schematics/ng-update/typescript/literal.mjs +33 -0
  73. package/schematics/ng-update/typescript/module-specifiers.mjs +35 -0
  74. package/schematics/ng-update/upgrade-data.mjs +35 -0
  75. package/schematics/paths.mjs +16 -0
  76. package/schematics/schematics.externs.js +0 -0
  77. package/schematics/update-tool/component-resource-collector.mjs +147 -0
  78. package/schematics/update-tool/file-system.mjs +18 -0
  79. package/schematics/update-tool/index.mjs +158 -0
  80. package/schematics/update-tool/logger.mjs +18 -0
  81. package/schematics/update-tool/migration.mjs +67 -0
  82. package/schematics/update-tool/public-api.mjs +28 -0
  83. package/schematics/update-tool/target-version.mjs +34 -0
  84. package/schematics/update-tool/update-recorder.mjs +10 -0
  85. package/schematics/update-tool/update-tool.externs.js +0 -0
  86. package/schematics/update-tool/utils/decorators.mjs +38 -0
  87. package/schematics/update-tool/utils/functions.mjs +21 -0
  88. package/schematics/update-tool/utils/imports.mjs +111 -0
  89. package/schematics/update-tool/utils/line-mappings.mjs +76 -0
  90. package/schematics/update-tool/utils/parse-tsconfig.mjs +19 -0
  91. package/schematics/update-tool/utils/property-name.mjs +28 -0
  92. package/schematics/update-tool/utils/virtual-host.mjs +62 -0
  93. package/schematics/update-tool/version-changes.mjs +39 -0
  94. package/schematics/utils/ast/ng-module-imports.mjs +81 -0
  95. package/schematics/utils/ast.mjs +79 -0
  96. package/schematics/utils/build-component.mjs +193 -0
  97. package/schematics/utils/get-project.mjs +24 -0
  98. package/schematics/utils/html-manipulation.mjs +89 -0
  99. package/schematics/utils/index.mjs +31 -0
  100. package/schematics/utils/parse5-element.mjs +32 -0
  101. package/schematics/utils/project-index-file.mjs +21 -0
  102. package/schematics/utils/project-main-file.mjs +23 -0
  103. package/schematics/utils/project-style-file.mjs +44 -0
  104. package/schematics/utils/project-targets.mjs +34 -0
  105. package/schematics/utils/project-tsconfig-paths.mjs +50 -0
  106. package/schematics/utils/schematic-options.mjs +55 -0
  107. package/schematics/utils/vendored-ast-utils/index.mjs +480 -0
@@ -0,0 +1,129 @@
1
+ "use strict";
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
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.propertyNames = void 0;
11
+ const target_version_1 = require("../../update-tool/target-version");
12
+ exports.propertyNames = {
13
+ [target_version_1.TargetVersion.V9]: [
14
+ {
15
+ pr: 'https://github.com/angular/components/pull/17084',
16
+ changes: [{
17
+ replace: 'boundaryElementSelector',
18
+ replaceWith: 'boundaryElement',
19
+ limitedTo: { classes: ['CdkDrag'] }
20
+ }]
21
+ },
22
+ {
23
+ pr: 'https://github.com/angular/components/pull/17302',
24
+ changes: [{
25
+ replace: 'onChange',
26
+ replaceWith: 'changed',
27
+ limitedTo: { classes: ['SelectionModel'] }
28
+ }]
29
+ }
30
+ ],
31
+ [target_version_1.TargetVersion.V8]: [],
32
+ [target_version_1.TargetVersion.V7]: [
33
+ {
34
+ pr: 'https://github.com/angular/components/pull/8286',
35
+ changes: [{ replace: 'onChange', replaceWith: 'changed', limitedTo: { classes: ['SelectionModel'] } }]
36
+ },
37
+ {
38
+ pr: 'https://github.com/angular/components/pull/12927',
39
+ changes: [{
40
+ replace: 'flexibleDiemsions',
41
+ replaceWith: 'flexibleDimensions',
42
+ limitedTo: { classes: ['CdkConnectedOverlay'] }
43
+ }]
44
+ }
45
+ ],
46
+ [target_version_1.TargetVersion.V6]: [
47
+ {
48
+ pr: 'https://github.com/angular/components/pull/10161',
49
+ changes: [
50
+ {
51
+ replace: '_deprecatedOrigin',
52
+ replaceWith: 'origin',
53
+ limitedTo: { classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective'] }
54
+ },
55
+ {
56
+ replace: '_deprecatedPositions',
57
+ replaceWith: 'positions',
58
+ limitedTo: { classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective'] }
59
+ },
60
+ {
61
+ replace: '_deprecatedOffsetX',
62
+ replaceWith: 'offsetX',
63
+ limitedTo: { classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective'] }
64
+ },
65
+ {
66
+ replace: '_deprecatedOffsetY',
67
+ replaceWith: 'offsetY',
68
+ limitedTo: { classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective'] }
69
+ },
70
+ {
71
+ replace: '_deprecatedWidth',
72
+ replaceWith: 'width',
73
+ limitedTo: { classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective'] }
74
+ },
75
+ {
76
+ replace: '_deprecatedHeight',
77
+ replaceWith: 'height',
78
+ limitedTo: { classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective'] }
79
+ },
80
+ {
81
+ replace: '_deprecatedMinWidth',
82
+ replaceWith: 'minWidth',
83
+ limitedTo: { classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective'] }
84
+ },
85
+ {
86
+ replace: '_deprecatedMinHeight',
87
+ replaceWith: 'minHeight',
88
+ limitedTo: { classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective'] }
89
+ },
90
+ {
91
+ replace: '_deprecatedBackdropClass',
92
+ replaceWith: 'backdropClass',
93
+ limitedTo: { classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective'] }
94
+ },
95
+ {
96
+ replace: '_deprecatedScrollStrategy',
97
+ replaceWith: 'scrollStrategy',
98
+ limitedTo: { classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective'] }
99
+ },
100
+ {
101
+ replace: '_deprecatedOpen',
102
+ replaceWith: 'open',
103
+ limitedTo: { classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective'] }
104
+ },
105
+ {
106
+ replace: '_deprecatedHasBackdrop',
107
+ replaceWith: 'hasBackdrop',
108
+ limitedTo: { classes: ['CdkConnectedOverlay', 'ConnectedOverlayDirective'] }
109
+ }
110
+ ]
111
+ },
112
+ {
113
+ pr: 'https://github.com/angular/components/pull/10257',
114
+ changes: [
115
+ {
116
+ replace: '_deprecatedPortal',
117
+ replaceWith: 'portal',
118
+ limitedTo: { classes: ['CdkPortalOutlet'] }
119
+ },
120
+ {
121
+ replace: '_deprecatedPortalHost',
122
+ replaceWith: 'portal',
123
+ limitedTo: { classes: ['CdkPortalOutlet'] }
124
+ }
125
+ ]
126
+ },
127
+ ]
128
+ };
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktbmFtZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvbmctdXBkYXRlL2RhdGEvcHJvcGVydHktbmFtZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgscUVBQStEO0FBZWxELFFBQUEsYUFBYSxHQUE0QztJQUNwRSxDQUFDLDhCQUFhLENBQUMsRUFBRSxDQUFDLEVBQUU7UUFDbEI7WUFDRSxFQUFFLEVBQUUsa0RBQWtEO1lBQ3RELE9BQU8sRUFBRSxDQUFDO29CQUNSLE9BQU8sRUFBRSx5QkFBeUI7b0JBQ2xDLFdBQVcsRUFBRSxpQkFBaUI7b0JBQzlCLFNBQVMsRUFBRSxFQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFDO2lCQUNsQyxDQUFDO1NBQ0g7UUFDRDtZQUNFLEVBQUUsRUFBRSxrREFBa0Q7WUFDdEQsT0FBTyxFQUFFLENBQUM7b0JBQ1IsT0FBTyxFQUFFLFVBQVU7b0JBQ25CLFdBQVcsRUFBRSxTQUFTO29CQUN0QixTQUFTLEVBQUUsRUFBQyxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFDO2lCQUN6QyxDQUFDO1NBQ0g7S0FDRjtJQUNELENBQUMsOEJBQWEsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQ3RCLENBQUMsOEJBQWEsQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUNsQjtZQUNFLEVBQUUsRUFBRSxpREFBaUQ7WUFDckQsT0FBTyxFQUNILENBQUMsRUFBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEVBQUMsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsRUFBQyxFQUFDLENBQUM7U0FDOUY7UUFFRDtZQUNFLEVBQUUsRUFBRSxrREFBa0Q7WUFDdEQsT0FBTyxFQUFFLENBQUM7b0JBQ1IsT0FBTyxFQUFFLG1CQUFtQjtvQkFD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RSxDQUFDLGlCQUFpQixDQUFDLEVBQUM7aUJBQzFDO2dCQUNEO29CQUNFLE9BQU8sRUFBRSx1QkFBdUI7b0JBQ2hDLFdBQVcsRUFBRSxRQUFRO29CQUNyQixTQUFTLEVBQUUsRUFBQyxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFDO2lCQUMxQzthQUNGO1NBQ0Y7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtUYXJnZXRWZXJzaW9ufSBmcm9tICcuLi8uLi91cGRhdGUtdG9vbC90YXJnZXQtdmVyc2lvbic7XG5pbXBvcnQge1ZlcnNpb25DaGFuZ2VzfSBmcm9tICcuLi8uLi91cGRhdGUtdG9vbC92ZXJzaW9uLWNoYW5nZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5TmFtZVVwZ3JhZGVEYXRhIHtcbiAgLyoqIFRoZSBwcm9wZXJ0eSBuYW1lIHRvIHJlcGxhY2UuICovXG4gIHJlcGxhY2U6IHN0cmluZztcbiAgLyoqIFRoZSBuZXcgbmFtZSBmb3IgdGhlIHByb3BlcnR5LiAqL1xuICByZXBsYWNlV2l0aDogc3RyaW5nO1xuICAvKiogQ29udHJvbHMgd2hpY2ggY2xhc3NlcyBpbiB3aGljaCB0aGlzIHJlcGxhY2VtZW50IGlzIG1hZGUuICovXG4gIGxpbWl0ZWRUbzoge1xuICAgIC8qKiBSZXBsYWNlIHRoZSBwcm9wZXJ0eSBvbmx5IHdoZW4gaXRzIHR5cGUgaXMgb25lIG9mIHRoZSBnaXZlbiBDbGFzc2VzLiAqL1xuICAgIGNsYXNzZXM6IHN0cmluZ1tdO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgcHJvcGVydHlOYW1lczogVmVyc2lvbkNoYW5nZXM8UHJvcGVydHlOYW1lVXBncmFkZURhdGE+ID0ge1xuICBbVGFyZ2V0VmVyc2lvbi5WOV06IFtcbiAgICB7XG4gICAgICBwcjogJ2h0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvcHVsbC8xNzA4NCcsXG4gICAgICBjaGFuZ2VzOiBbe1xuICAgICAgICByZXBsYWNlOiAnYm91bmRhcnlFbGVtZW50U2VsZWN0b3InLFxuICAgICAgICByZXBsYWNlV2l0aDogJ2JvdW5kYXJ5RWxlbWVudCcsXG4gICAgICAgIGxpbWl0ZWRUbzoge2NsYXNzZXM6IFsnQ2RrRHJhZyddfVxuICAgICAgfV1cbiAgICB9LFxuICAgIHtcbiAgICAgIHByOiAnaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9wdWxsLzE3MzAyJyxcbiAgICAgIGNoYW5nZXM6IFt7XG4gICAgICAgIHJlcGxhY2U6ICdvbkNoYW5nZScsXG4gICAgICAgIHJlcGxhY2VXaXRoOiAnY2hhbmdlZCcsXG4gICAgICAgIGxpbWl0ZWRUbzoge2NsYXNzZXM6IFsnU2VsZWN0aW9uTW9kZWwnXX1cbiAgICAgIH1dXG4gICAgfVxuICBdLFxuICBbVGFyZ2V0VmVyc2lvbi5WOF06IFtdLFxuICBbVGFyZ2V0VmVyc2lvbi5WN106IFtcbiAgICB7XG4gICAgICBwcjogJ2h0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvcHVsbC84Mjg2JyxcbiAgICAgIGNoYW5nZXM6XG4gICAgICAgICAgW3tyZXBsYWNlOiAnb25DaGFuZ2UnLCByZXBsYWNlV2l0aDogJ2NoYW5nZWQnLCBsaW1pdGVkVG86IHtjbGFzc2VzOiBbJ1NlbGVjdGlvbk1vZGVsJ119fV1cbiAgICB9LFxuXG4gICAge1xuICAgICAgcHI6ICdodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL3B1bGwvMTI5MjcnLFxuICAgICAgY2hhbmdlczogW3tcbiAgICAgICAgcmVwbGFjZTogJ2ZsZXhpYmxlRGllbXNpb25zJyxcbiAgICAgICAgcmVwbGFjZVdpdGg6ICdmbGV4aWJsZURpbWVuc2lvbnMnLFxuICAgICAgICBsaW1pdGVkVG86IHtjbGFzc2VzOiBbJ0Nka0Nvbm5lY3RlZE92ZXJsYXknXX1cbiAgICAgIH1dXG4gICAgfVxuICBdLFxuXG4gIFtUYXJnZXRWZXJzaW9uLlY2XTogW1xuICAgIHtcbiAgICAgIHByOiAnaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9wdWxsLzEwMTYxJyxcbiAgICAgIGNoYW5nZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJlcGxhY2U6ICdfZGVwcmVjYXRlZE9yaWdpbicsXG4gICAgICAgICAgcmVwbGFjZVdpdGg6ICdvcmlnaW4nLFxuICAgICAgICAgIGxpbWl0ZWRUbzoge2NsYXNzZXM6IFsnQ2RrQ29ubmVjdGVkT3ZlcmxheScsICdDb25uZWN0ZWRPdmVybGF5RGlyZWN0aXZlJ119XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICByZXBsYWNlOiAnX2RlcHJlY2F0ZWRQb3NpdGlvbnMnLFxuICAgICAgICAgIHJlcGxhY2VXaXRoOiAncG9zaXRpb25zJyxcbiAgICAgICAgICBsaW1pdGVkVG86IHtjbGFzc2VzOiBbJ0Nka0Nvbm5lY3RlZE92ZXJsYXknLCAnQ29ubmVjdGVkT3ZlcmxheURpcmVjdGl2ZSddfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcmVwbGFjZTogJ19kZXByZWNhdGVkT2Zmc2V0WCcsXG4gICAgICAgICAgcmVwbGFjZVdpdGg6ICdvZmZzZXRYJyxcbiAgICAgICAgICBsaW1pdGVkVG86IHtjbGFzc2VzOiBbJ0Nka0Nvbm5lY3RlZE92ZXJsYXknLCAnQ29ubmVjdGVkT3ZlcmxheURpcmVjdGl2ZSddfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcmVwbGFjZTogJ19kZXByZWNhdGVkT2Zmc2V0WScsXG4gICAgICAgICAgcmVwbGFjZVdpdGg6ICdvZmZzZXRZJyxcbiAgICAgICAgICBsaW1pdGVkVG86IHtjbGFzc2VzOiBbJ0Nka0Nvbm5lY3RlZE92ZXJsYXknLCAnQ29ubmVjdGVkT3ZlcmxheURpcmVjdGl2ZSddfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcmVwbGFjZTogJ19kZXByZWNhdGVkV2lkdGgnLFxuICAgICAgICAgIHJlcGxhY2VXaXRoOiAnd2lkdGgnLFxuICAgICAgICAgIGxpbWl0ZWRUbzoge2NsYXNzZXM6IFsnQ2RrQ29ubmVjdGVkT3ZlcmxheScsICdDb25uZWN0ZWRPdmVybGF5RGlyZWN0aXZlJ119XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICByZXBsYWNlOiAnX2RlcHJlY2F0ZWRIZWlnaHQnLFxuICAgICAgICAgIHJlcGxhY2VXaXRoOiAnaGVpZ2h0JyxcbiAgICAgICAgICBsaW1pdGVkVG86IHtjbGFzc2VzOiBbJ0Nka0Nvbm5lY3RlZE92ZXJsYXknLCAnQ29ubmVjdGVkT3ZlcmxheURpcmVjdGl2ZSddfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcmVwbGFjZTogJ19kZXByZWNhdGVkTWluV2lkdGgnLFxuICAgICAgICAgIHJlcGxhY2VXaXRoOiAnbWluV2lkdGgnLFxuICAgICAgICAgIGxpbWl0ZWRUbzoge2NsYXNzZXM6IFsnQ2RrQ29ubmVjdGVkT3ZlcmxheScsICdDb25uZWN0ZWRPdmVybGF5RGlyZWN0aXZlJ119XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICByZXBsYWNlOiAnX2RlcHJlY2F0ZWRNaW5IZWlnaHQnLFxuICAgICAgICAgIHJlcGxhY2VXaXRoOiAnbWluSGVpZ2h0JyxcbiAgICAgICAgICBsaW1pdGVkVG86IHtjbGFzc2VzOiBbJ0Nka0Nvbm5lY3RlZE92ZXJsYXknLCAnQ29ubmVjdGVkT3ZlcmxheURpcmVjdGl2ZSddfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcmVwbGFjZTogJ19kZXByZWNhdGVkQmFja2Ryb3BDbGFzcycsXG4gICAgICAgICAgcmVwbGFjZVdpdGg6ICdiYWNrZHJvcENsYXNzJyxcbiAgICAgICAgICBsaW1pdGVkVG86IHtjbGFzc2VzOiBbJ0Nka0Nvbm5lY3RlZE92ZXJsYXknLCAnQ29ubmVjdGVkT3ZlcmxheURpcmVjdGl2ZSddfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcmVwbGFjZTogJ19kZXByZWNhdGVkU2Nyb2xsU3RyYXRlZ3knLFxuICAgICAgICAgIHJlcGxhY2VXaXRoOiAnc2Nyb2xsU3RyYXRlZ3knLFxuICAgICAgICAgIGxpbWl0ZWRUbzoge2NsYXNzZXM6IFsnQ2RrQ29ubmVjdGVkT3ZlcmxheScsICdDb25uZWN0ZWRPdmVybGF5RGlyZWN0aXZlJ119XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICByZXBsYWNlOiAnX2RlcHJlY2F0ZWRPcGVuJyxcbiAgICAgICAgICByZXBsYWNlV2l0aDogJ29wZW4nLFxuICAgICAgICAgIGxpbWl0ZWRUbzoge2NsYXNzZXM6IFsnQ2RrQ29ubmVjdGVkT3ZlcmxheScsICdDb25uZWN0ZWRPdmVybGF5RGlyZWN0aXZlJ119XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICByZXBsYWNlOiAnX2RlcHJlY2F0ZWRIYXNCYWNrZHJvcCcsXG4gICAgICAgICAgcmVwbGFjZVdpdGg6ICdoYXNCYWNrZHJvcCcsXG4gICAgICAgICAgbGltaXRlZFRvOiB7Y2xhc3NlczogWydDZGtDb25uZWN0ZWRPdmVybGF5JywgJ0Nvbm5lY3RlZE92ZXJsYXlEaXJlY3RpdmUnXX1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG5cbiAgICB7XG4gICAgICBwcjogJ2h0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvcHVsbC8xMDI1NycsXG4gICAgICBjaGFuZ2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICByZXBsYWNlOiAnX2RlcHJlY2F0ZWRQb3J0YWwnLFxuICAgICAgICAgIHJlcGxhY2VXaXRoOiAncG9ydGFsJyxcbiAgICAgICAgICBsaW1pdGVkVG86IHtjbGFzc2VzOiBbJ0Nka1BvcnRhbE91dGxldCddfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcmVwbGFjZTogJ19kZXByZWNhdGVkUG9ydGFsSG9zdCcsXG4gICAgICAgICAgcmVwbGFjZVdpdGg6ICdwb3J0YWwnLFxuICAgICAgICAgIGxpbWl0ZWRUbzoge2NsYXNzZXM6IFsnQ2RrUG9ydGFsT3V0bGV0J119XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICBdXG59O1xuIl19
@@ -0,0 +1,81 @@
1
+ "use strict";
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
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.DevkitFileSystem = void 0;
11
+ const core_1 = require("@angular-devkit/core");
12
+ const file_system_1 = require("../update-tool/file-system");
13
+ const path = require("path");
14
+ /**
15
+ * File system that leverages the virtual tree from the CLI devkit. This file
16
+ * system is commonly used by `ng update` migrations that run as part of the
17
+ * Angular CLI.
18
+ */
19
+ class DevkitFileSystem extends file_system_1.FileSystem {
20
+ constructor(_tree) {
21
+ super();
22
+ this._tree = _tree;
23
+ this._updateRecorderCache = new Map();
24
+ }
25
+ resolve(...segments) {
26
+ // Note: We use `posix.resolve` as the devkit paths are using posix separators.
27
+ return core_1.normalize(path.posix.resolve('/', ...segments.map(core_1.normalize)));
28
+ }
29
+ edit(filePath) {
30
+ if (this._updateRecorderCache.has(filePath)) {
31
+ return this._updateRecorderCache.get(filePath);
32
+ }
33
+ const recorder = this._tree.beginUpdate(filePath);
34
+ this._updateRecorderCache.set(filePath, recorder);
35
+ return recorder;
36
+ }
37
+ commitEdits() {
38
+ this._updateRecorderCache.forEach(r => this._tree.commitUpdate(r));
39
+ this._updateRecorderCache.clear();
40
+ }
41
+ exists(fileOrDirPath) {
42
+ // We need to check for both file or directory existence, in order
43
+ // to comply with the expectation from the TypeScript compiler.
44
+ return this._tree.exists(fileOrDirPath) || this._isExistingDirectory(fileOrDirPath);
45
+ }
46
+ overwrite(filePath, content) {
47
+ this._tree.overwrite(filePath, content);
48
+ }
49
+ create(filePath, content) {
50
+ this._tree.create(filePath, content);
51
+ }
52
+ delete(filePath) {
53
+ this._tree.delete(filePath);
54
+ }
55
+ read(filePath) {
56
+ const buffer = this._tree.read(filePath);
57
+ return buffer !== null ? buffer.toString() : null;
58
+ }
59
+ readDirectory(dirPath) {
60
+ const { subdirs: directories, subfiles: files } = this._tree.getDir(dirPath);
61
+ return { directories, files };
62
+ }
63
+ _isExistingDirectory(dirPath) {
64
+ if (dirPath === core_1.NormalizedRoot) {
65
+ return true;
66
+ }
67
+ const parent = core_1.dirname(dirPath);
68
+ const dirName = core_1.basename(dirPath);
69
+ // TypeScript also checks potential entry points, so e.g. importing
70
+ // package.json will result in a lookup of /package.json/package.json
71
+ // and /package.json/index.ts. In order to avoid failure, we check if
72
+ // the parent is an existing file and return false, if that is the case.
73
+ if (this._tree.exists(parent)) {
74
+ return false;
75
+ }
76
+ const dir = this._tree.getDir(parent);
77
+ return dir.subdirs.indexOf(dirName) !== -1;
78
+ }
79
+ }
80
+ exports.DevkitFileSystem = DevkitFileSystem;
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2a2l0LWZpbGUtc3lzdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL25nLXVwZGF0ZS9kZXZraXQtZmlsZS1zeXN0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgsK0NBQXdGO0FBRXhGLDREQUFzRTtBQUN0RSw2QkFBNkI7QUFFN0I7Ozs7R0FJRztBQUNILE1BQWEsZ0JBQWlCLFNBQVEsd0JBQVU7SUFHOUMsWUFBb0IsS0FBVztRQUM3QixLQUFLLEVBQUUsQ0FBQztRQURVLFVBQUssR0FBTCxLQUFLLENBQU07UUFGdkIseUJBQW9CLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUM7SUFJakUsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFHLFFBQWtCO1FBQzNCLCtFQUErRTtRQUMvRSxPQUFPLGdCQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxJQUFJLENBQUMsUUFBYztRQUNqQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDM0MsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBRSxDQUFDO1NBQ2pEO1FBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbEQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFtQjtRQUN4QixrRUFBa0U7UUFDbEUsK0RBQStEO1FBQy9ELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRCxTQUFTLENBQUMsUUFBYyxFQUFFLE9BQWU7UUFDdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBYyxFQUFFLE9BQWU7UUFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBYztRQUNuQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxDQUFDLFFBQWM7UUFDakIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekMsT0FBTyxNQUFNLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNwRCxDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQWE7UUFDekIsTUFBTSxFQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNFLE9BQU8sRUFBQyxXQUFXLEVBQUUsS0FBSyxFQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVPLG9CQUFvQixDQUFDLE9BQWE7UUFDeEMsSUFBSSxPQUFPLEtBQUsscUJBQWMsRUFBRTtZQUM5QixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsTUFBTSxNQUFNLEdBQUcsY0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sT0FBTyxHQUFHLGVBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxtRUFBbUU7UUFDbkUscUVBQXFFO1FBQ3JFLHFFQUFxRTtRQUNyRSx3RUFBd0U7UUFDeEUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM3QixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBQ0Y7QUF4RUQsNENBd0VDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7YmFzZW5hbWUsIGRpcm5hbWUsIG5vcm1hbGl6ZSwgTm9ybWFsaXplZFJvb3QsIFBhdGh9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlJztcbmltcG9ydCB7VHJlZSwgVXBkYXRlUmVjb3JkZXJ9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzJztcbmltcG9ydCB7RGlyZWN0b3J5RW50cnksIEZpbGVTeXN0ZW19IGZyb20gJy4uL3VwZGF0ZS10b29sL2ZpbGUtc3lzdGVtJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5cbi8qKlxuICogRmlsZSBzeXN0ZW0gdGhhdCBsZXZlcmFnZXMgdGhlIHZpcnR1YWwgdHJlZSBmcm9tIHRoZSBDTEkgZGV2a2l0LiBUaGlzIGZpbGVcbiAqIHN5c3RlbSBpcyBjb21tb25seSB1c2VkIGJ5IGBuZyB1cGRhdGVgIG1pZ3JhdGlvbnMgdGhhdCBydW4gYXMgcGFydCBvZiB0aGVcbiAqIEFuZ3VsYXIgQ0xJLlxuICovXG5leHBvcnQgY2xhc3MgRGV2a2l0RmlsZVN5c3RlbSBleHRlbmRzIEZpbGVTeXN0ZW0ge1xuICBwcml2YXRlIF91cGRhdGVSZWNvcmRlckNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIFVwZGF0ZVJlY29yZGVyPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3RyZWU6IFRyZWUpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcmVzb2x2ZSguLi5zZWdtZW50czogc3RyaW5nW10pOiBQYXRoIHtcbiAgICAvLyBOb3RlOiBXZSB1c2UgYHBvc2l4LnJlc29sdmVgIGFzIHRoZSBkZXZraXQgcGF0aHMgYXJlIHVzaW5nIHBvc2l4IHNlcGFyYXRvcnMuXG4gICAgcmV0dXJuIG5vcm1hbGl6ZShwYXRoLnBvc2l4LnJlc29sdmUoJy8nLCAuLi5zZWdtZW50cy5tYXAobm9ybWFsaXplKSkpO1xuICB9XG5cbiAgZWRpdChmaWxlUGF0aDogUGF0aCkge1xuICAgIGlmICh0aGlzLl91cGRhdGVSZWNvcmRlckNhY2hlLmhhcyhmaWxlUGF0aCkpIHtcbiAgICAgIHJldHVybiB0aGlzLl91cGRhdGVSZWNvcmRlckNhY2hlLmdldChmaWxlUGF0aCkhO1xuICAgIH1cbiAgICBjb25zdCByZWNvcmRlciA9IHRoaXMuX3RyZWUuYmVnaW5VcGRhdGUoZmlsZVBhdGgpO1xuICAgIHRoaXMuX3VwZGF0ZVJlY29yZGVyQ2FjaGUuc2V0KGZpbGVQYXRoLCByZWNvcmRlcik7XG4gICAgcmV0dXJuIHJlY29yZGVyO1xuICB9XG5cbiAgY29tbWl0RWRpdHMoKSB7XG4gICAgdGhpcy5fdXBkYXRlUmVjb3JkZXJDYWNoZS5mb3JFYWNoKHIgPT4gdGhpcy5fdHJlZS5jb21taXRVcGRhdGUocikpO1xuICAgIHRoaXMuX3VwZGF0ZVJlY29yZGVyQ2FjaGUuY2xlYXIoKTtcbiAgfVxuXG4gIGV4aXN0cyhmaWxlT3JEaXJQYXRoOiBQYXRoKSB7XG4gICAgLy8gV2UgbmVlZCB0byBjaGVjayBmb3IgYm90aCBmaWxlIG9yIGRpcmVjdG9yeSBleGlzdGVuY2UsIGluIG9yZGVyXG4gICAgLy8gdG8gY29tcGx5IHdpdGggdGhlIGV4cGVjdGF0aW9uIGZyb20gdGhlIFR5cGVTY3JpcHQgY29tcGlsZXIuXG4gICAgcmV0dXJuIHRoaXMuX3RyZWUuZXhpc3RzKGZpbGVPckRpclBhdGgpIHx8IHRoaXMuX2lzRXhpc3RpbmdEaXJlY3RvcnkoZmlsZU9yRGlyUGF0aCk7XG4gIH1cblxuICBvdmVyd3JpdGUoZmlsZVBhdGg6IFBhdGgsIGNvbnRlbnQ6IHN0cmluZykge1xuICAgIHRoaXMuX3RyZWUub3ZlcndyaXRlKGZpbGVQYXRoLCBjb250ZW50KTtcbiAgfVxuXG4gIGNyZWF0ZShmaWxlUGF0aDogUGF0aCwgY29udGVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5fdHJlZS5jcmVhdGUoZmlsZVBhdGgsIGNvbnRlbnQpO1xuICB9XG5cbiAgZGVsZXRlKGZpbGVQYXRoOiBQYXRoKSB7XG4gICAgdGhpcy5fdHJlZS5kZWxldGUoZmlsZVBhdGgpO1xuICB9XG5cbiAgcmVhZChmaWxlUGF0aDogUGF0aCkge1xuICAgIGNvbnN0IGJ1ZmZlciA9IHRoaXMuX3RyZWUucmVhZChmaWxlUGF0aCk7XG4gICAgcmV0dXJuIGJ1ZmZlciAhPT0gbnVsbCA/IGJ1ZmZlci50b1N0cmluZygpIDogbnVsbDtcbiAgfVxuXG4gIHJlYWREaXJlY3RvcnkoZGlyUGF0aDogUGF0aCk6IERpcmVjdG9yeUVudHJ5IHtcbiAgICBjb25zdCB7c3ViZGlyczogZGlyZWN0b3JpZXMsIHN1YmZpbGVzOiBmaWxlc30gPSB0aGlzLl90cmVlLmdldERpcihkaXJQYXRoKTtcbiAgICByZXR1cm4ge2RpcmVjdG9yaWVzLCBmaWxlc307XG4gIH1cblxuICBwcml2YXRlIF9pc0V4aXN0aW5nRGlyZWN0b3J5KGRpclBhdGg6IFBhdGgpIHtcbiAgICBpZiAoZGlyUGF0aCA9PT0gTm9ybWFsaXplZFJvb3QpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmVudCA9IGRpcm5hbWUoZGlyUGF0aCk7XG4gICAgY29uc3QgZGlyTmFtZSA9IGJhc2VuYW1lKGRpclBhdGgpO1xuICAgIC8vIFR5cGVTY3JpcHQgYWxzbyBjaGVja3MgcG90ZW50aWFsIGVudHJ5IHBvaW50cywgc28gZS5nLiBpbXBvcnRpbmdcbiAgICAvLyBwYWNrYWdlLmpzb24gd2lsbCByZXN1bHQgaW4gYSBsb29rdXAgb2YgL3BhY2thZ2UuanNvbi9wYWNrYWdlLmpzb25cbiAgICAvLyBhbmQgL3BhY2thZ2UuanNvbi9pbmRleC50cy4gSW4gb3JkZXIgdG8gYXZvaWQgZmFpbHVyZSwgd2UgY2hlY2sgaWZcbiAgICAvLyB0aGUgcGFyZW50IGlzIGFuIGV4aXN0aW5nIGZpbGUgYW5kIHJldHVybiBmYWxzZSwgaWYgdGhhdCBpcyB0aGUgY2FzZS5cbiAgICBpZiAodGhpcy5fdHJlZS5leGlzdHMocGFyZW50KSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGRpciA9IHRoaXMuX3RyZWUuZ2V0RGlyKHBhcmVudCk7XG4gICAgcmV0dXJuIGRpci5zdWJkaXJzLmluZGV4T2YoZGlyTmFtZSkgIT09IC0xO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,136 @@
1
+ "use strict";
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
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
10
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
11
+ return new (P || (P = Promise))(function (resolve, reject) {
12
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
13
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
14
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
15
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
16
+ });
17
+ };
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.isDevkitMigration = exports.createMigrationSchematicRule = exports.cdkMigrations = void 0;
20
+ const tasks_1 = require("@angular-devkit/schematics/tasks");
21
+ const update_tool_1 = require("../update-tool");
22
+ const project_tsconfig_paths_1 = require("../utils/project-tsconfig-paths");
23
+ const devkit_file_system_1 = require("./devkit-file-system");
24
+ const devkit_migration_1 = require("./devkit-migration");
25
+ const find_stylesheets_1 = require("./find-stylesheets");
26
+ const attribute_selectors_1 = require("./migrations/attribute-selectors");
27
+ const class_inheritance_1 = require("./migrations/class-inheritance");
28
+ const class_names_1 = require("./migrations/class-names");
29
+ const constructor_signature_1 = require("./migrations/constructor-signature");
30
+ const css_selectors_1 = require("./migrations/css-selectors");
31
+ const element_selectors_1 = require("./migrations/element-selectors");
32
+ const input_names_1 = require("./migrations/input-names");
33
+ const method_call_arguments_1 = require("./migrations/method-call-arguments");
34
+ const misc_template_1 = require("./migrations/misc-template");
35
+ const output_names_1 = require("./migrations/output-names");
36
+ const property_names_1 = require("./migrations/property-names");
37
+ /** List of migrations which run for the CDK update. */
38
+ exports.cdkMigrations = [
39
+ attribute_selectors_1.AttributeSelectorsMigration,
40
+ class_inheritance_1.ClassInheritanceMigration,
41
+ class_names_1.ClassNamesMigration,
42
+ constructor_signature_1.ConstructorSignatureMigration,
43
+ css_selectors_1.CssSelectorsMigration,
44
+ element_selectors_1.ElementSelectorsMigration,
45
+ input_names_1.InputNamesMigration,
46
+ method_call_arguments_1.MethodCallArgumentsMigration,
47
+ misc_template_1.MiscTemplateMigration,
48
+ output_names_1.OutputNamesMigration,
49
+ property_names_1.PropertyNamesMigration,
50
+ ];
51
+ /**
52
+ * Creates a Angular schematic rule that runs the upgrade for the
53
+ * specified target version.
54
+ */
55
+ function createMigrationSchematicRule(targetVersion, extraMigrations, upgradeData, onMigrationCompleteFn) {
56
+ return (tree, context) => __awaiter(this, void 0, void 0, function* () {
57
+ const logger = context.logger;
58
+ const workspace = yield project_tsconfig_paths_1.getWorkspaceConfigGracefully(tree);
59
+ if (workspace === null) {
60
+ logger.error('Could not find workspace configuration file.');
61
+ return;
62
+ }
63
+ // Keep track of all project source files which have been checked/migrated. This is
64
+ // necessary because multiple TypeScript projects can contain the same source file and
65
+ // we don't want to check these again, as this would result in duplicated failure messages.
66
+ const analyzedFiles = new Set();
67
+ const fileSystem = new devkit_file_system_1.DevkitFileSystem(tree);
68
+ const projectNames = workspace.projects.keys();
69
+ const migrations = [...exports.cdkMigrations, ...extraMigrations];
70
+ let hasFailures = false;
71
+ for (const projectName of projectNames) {
72
+ const project = workspace.projects.get(projectName);
73
+ const buildTsconfigPath = project_tsconfig_paths_1.getTargetTsconfigPath(project, 'build');
74
+ const testTsconfigPath = project_tsconfig_paths_1.getTargetTsconfigPath(project, 'test');
75
+ if (!buildTsconfigPath && !testTsconfigPath) {
76
+ logger.warn(`Could not find TypeScript project for project: ${projectName}`);
77
+ continue;
78
+ }
79
+ // In some applications, developers will have global stylesheets which are not
80
+ // specified in any Angular component. Therefore we glob up all CSS and SCSS files
81
+ // in the project and migrate them if needed.
82
+ // TODO: rework this to collect global stylesheets from the workspace config. COMP-280.
83
+ const additionalStylesheetPaths = find_stylesheets_1.findStylesheetFiles(tree, project.root);
84
+ if (buildTsconfigPath !== null) {
85
+ runMigrations(project, projectName, buildTsconfigPath, additionalStylesheetPaths, false);
86
+ }
87
+ if (testTsconfigPath !== null) {
88
+ runMigrations(project, projectName, testTsconfigPath, additionalStylesheetPaths, true);
89
+ }
90
+ }
91
+ let runPackageManager = false;
92
+ // Run the global post migration static members for all
93
+ // registered devkit migrations.
94
+ migrations.forEach(m => {
95
+ const actionResult = isDevkitMigration(m) && m.globalPostMigration !== undefined ?
96
+ m.globalPostMigration(tree, context) : null;
97
+ if (actionResult) {
98
+ runPackageManager = runPackageManager || actionResult.runPackageManager;
99
+ }
100
+ });
101
+ // If a migration requested the package manager to run, we run it as an
102
+ // asynchronous post migration task. We cannot run it synchronously,
103
+ // as file changes from the current migration task are not applied to
104
+ // the file system yet.
105
+ if (runPackageManager) {
106
+ context.addTask(new tasks_1.NodePackageInstallTask({ quiet: false }));
107
+ }
108
+ if (onMigrationCompleteFn) {
109
+ onMigrationCompleteFn(context, targetVersion, hasFailures);
110
+ }
111
+ /** Runs the migrations for the specified workspace project. */
112
+ function runMigrations(project, projectName, tsconfigPath, additionalStylesheetPaths, isTestTarget) {
113
+ const program = update_tool_1.UpdateProject.createProgramFromTsconfig(tsconfigPath, fileSystem);
114
+ const updateContext = {
115
+ isTestTarget,
116
+ projectName,
117
+ project,
118
+ tree,
119
+ };
120
+ const updateProject = new update_tool_1.UpdateProject(updateContext, program, fileSystem, analyzedFiles, context.logger);
121
+ const result = updateProject.migrate(migrations, targetVersion, upgradeData, additionalStylesheetPaths);
122
+ // Commit all recorded edits in the update recorder. We apply the edits after all
123
+ // migrations ran because otherwise offsets in the TypeScript program would be
124
+ // shifted and individual migrations could no longer update the same source file.
125
+ fileSystem.commitEdits();
126
+ hasFailures = hasFailures || result.hasFailures;
127
+ }
128
+ });
129
+ }
130
+ exports.createMigrationSchematicRule = createMigrationSchematicRule;
131
+ /** Whether the given migration type refers to a devkit migration */
132
+ function isDevkitMigration(value) {
133
+ return devkit_migration_1.DevkitMigration.isPrototypeOf(value);
134
+ }
135
+ exports.isDevkitMigration = isDevkitMigration;
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2a2l0LW1pZ3JhdGlvbi1ydWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL25nLXVwZGF0ZS9kZXZraXQtbWlncmF0aW9uLXJ1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7O0FBR0gsNERBQXdFO0FBR3hFLGdEQUE2QztBQUk3Qyw0RUFBb0c7QUFFcEcsNkRBQXNEO0FBQ3RELHlEQUF1RjtBQUN2Rix5REFBdUQ7QUFDdkQsMEVBQTZFO0FBQzdFLHNFQUF5RTtBQUN6RSwwREFBNkQ7QUFDN0QsOEVBQWlGO0FBQ2pGLDhEQUFpRTtBQUNqRSxzRUFBeUU7QUFDekUsMERBQTZEO0FBQzdELDhFQUFnRjtBQUNoRiw4REFBaUU7QUFDakUsNERBQStEO0FBQy9ELGdFQUFtRTtBQUluRSx1REFBdUQ7QUFDMUMsUUFBQSxhQUFhLEdBQWlDO0lBQ3pELGlEQUEyQjtJQUMzQiw2Q0FBeUI7SUFDekIsaUNBQW1CO0lBQ25CLHFEQUE2QjtJQUM3QixxQ0FBcUI7SUFDckIsNkNBQXlCO0lBQ3pCLGlDQUFtQjtJQUNuQixvREFBNEI7SUFDNUIscUNBQXFCO0lBQ3JCLG1DQUFvQjtJQUNwQix1Q0FBc0I7Q0FDdkIsQ0FBQztBQU9GOzs7R0FHRztBQUNILFNBQWdCLDRCQUE0QixDQUN4QyxhQUE0QixFQUFFLGVBQTBDLEVBQ3hFLFdBQXdCLEVBQUUscUJBQXVDO0lBQ25FLE9BQU8sQ0FBTyxJQUFVLEVBQUUsT0FBeUIsRUFBRSxFQUFFO1FBQ3JELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDOUIsTUFBTSxTQUFTLEdBQUcsTUFBTSxxREFBNEIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUzRCxJQUFJLFNBQVMsS0FBSyxJQUFJLEVBQUU7WUFDdEIsTUFBTSxDQUFDLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1lB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QU87Z0JBQ1AsSUFBSTthQUNMLENBQUM7WUFFRixNQUFNLGFBQWEsR0FBRyxJQUFJLDJCQUFhLENBQ3JDLGFBQWEsRUFDYixPQUFPLEVBQ1AsVUFBVSxFQUNWLGFBQWEsRUFDYixPQUFPLENBQUMsTUFBTSxDQUNmLENBQUM7WUFFRixNQUFNLE1BQU0sR0FDVixhQUFhLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLHlCQUF5QixDQUFDLENBQUM7WUFFM0YsaUZBQWlGO1lBQ2pGLDhFQUE4RTtZQUM5RSxpRkFBaUY7WUFDakYsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBRXpCLFdBQVcsR0FBRyxXQUFXLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUNsRCxDQUFDO0lBQ0gsQ0FBQyxDQUFBLENBQUM7QUFDSixDQUFDO0FBbkdELG9FQW1HQztBQUVELG9FQUFvRTtBQUNwRSxTQUFnQixpQkFBaUIsQ0FBQyxLQUE4QjtJQUU5RCxPQUFPLGtDQUFlLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFIRCw4Q0FHQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1J1bGUsIFNjaGVtYXRpY0NvbnRleHQsIFRyZWV9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzJztcbmltcG9ydCB7Tm9kZVBhY2thZ2VJbnN0YWxsVGFza30gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3MvdGFza3MnO1xuaW1wb3J0IHtQcm9qZWN0RGVmaW5pdGlvbn0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZSc7XG5cbmltcG9ydCB7VXBkYXRlUHJvamVjdH0gZnJvbSAnLi4vdXBkYXRlLXRvb2wnO1xuaW1wb3J0IHtXb3Jrc3BhY2VQYXRofSBmcm9tICcuLi91cGRhdGUtdG9vbC9maWxlLXN5c3RlbSc7XG5pbXBvcnQge01pZ3JhdGlvbkN0b3J9IGZyb20gJy4uL3VwZGF0ZS10b29sL21pZ3JhdGlvbic7XG5pbXBvcnQge1RhcmdldFZlcnNpb259IGZyb20gJy4uL3VwZGF0ZS10b29sL3RhcmdldC12ZXJzaW9uJztcbmltcG9ydCB7Z2V0VGFyZ2V0VHNjb25maWdQYXRoLCBnZXRXb3Jrc3BhY2VDb25maWdHcmFjZWZ1bGx5fSBmcm9tICcuLi91dGlscy9wcm9qZWN0LXRzY29uZmlnLXBhdGhzJztcblxuaW1wb3J0IHtEZXZraXRGaWxlU3lzdGVtfSBmcm9tICcuL2RldmtpdC1maWxlLXN5c3RlbSc7XG5pbXBvcnQge0RldmtpdENvbnRleHQsIERldmtpdE1pZ3JhdGlvbiwgRGV2a2l0TWlncmF0aW9uQ3Rvcn0gZnJvbSAnLi9kZXZraXQtbWlncmF0aW9uJztcbmltcG9ydCB7ZmluZFN0eWxlc2hlZXRGaWxlc30gZnJvbSAnLi9maW5kLXN0eWxlc2hlZXRzJztcbmltcG9ydCB7QXR0cmlidXRlU2VsZWN0b3JzTWlncmF0aW9ufSBmcm9tICcuL21pZ3JhdGlvbnMvYXR0cmlidXRlLXNlbGVjdG9ycyc7XG5pbXBvcnQge0NsYXNzSW5oZXJpdGFuY2VNaWdyYXRpb259IGZyb20gJy4vbWlncmF0aW9ucy9jbGFzcy1pbmhlcml0YW5jZSc7XG5pbXBvcnQge0NsYXNzTmFtZXNNaWdyYXRpb259IGZyb20gJy4vbWlncmF0aW9ucy9jbGFzcy1uYW1lcyc7XG5pbXBvcnQge0NvbnN0cnVjdG9yU2lnbmF0dXJlTWlncmF0aW9ufSBmcm9tICcuL21pZ3JhdGlvbnMvY29uc3RydWN0b3Itc2lnbmF0dXJlJztcbmltcG9ydCB7Q3NzU2VsZWN0b3JzTWlncmF0aW9ufSBmcm9tICcuL21pZ3JhdGlvbnMvY3NzLXNlbGVjdG9ycyc7XG5pbXBvcnQge0VsZW1lbnRTZWxlY3RvcnNNaWdyYXRpb259IGZyb20gJy4vbWlncmF0aW9ucy9lbGVtZW50LXNlbGVjdG9ycyc7XG5pbXBvcnQge0lucHV0TmFtZXNNaWdyYXRpb259IGZyb20gJy4vbWlncmF0aW9ucy9pbnB1dC1uYW1lcyc7XG5pbXBvcnQge01ldGhvZENhbGxBcmd1bWVudHNNaWdyYXRpb259IGZyb20gJy4vbWlncmF0aW9ucy9tZXRob2QtY2FsbC1hcmd1bWVudHMnO1xuaW1wb3J0IHtNaXNjVGVtcGxhdGVNaWdyYXRpb259IGZyb20gJy4vbWlncmF0aW9ucy9taXNjLXRlbXBsYXRlJztcbmltcG9ydCB7T3V0cHV0TmFtZXNNaWdyYXRpb259IGZyb20gJy4vbWlncmF0aW9ucy9vdXRwdXQtbmFtZXMnO1xuaW1wb3J0IHtQcm9wZXJ0eU5hbWVzTWlncmF0aW9ufSBmcm9tICcuL21pZ3JhdGlvbnMvcHJvcGVydHktbmFtZXMnO1xuaW1wb3J0IHtVcGdyYWRlRGF0YX0gZnJvbSAnLi91cGdyYWRlLWRhdGEnO1xuXG5cbi8qKiBMaXN0IG9mIG1pZ3JhdGlvbnMgd2hpY2ggcnVuIGZvciB0aGUgQ0RLIHVwZGF0ZS4gKi9cbmV4cG9ydCBjb25zdCBjZGtNaWdyYXRpb25zOiBNaWdyYXRpb25DdG9yPFVwZ3JhZGVEYXRhPltdID0gW1xuICBBdHRyaWJ1dGVTZWxlY3RvcnNNaWdyYXRpb24sXG4gIENsYXNzSW5oZXJpdGFuY2VNaWdyYXRpb24sXG4gIENsYXNzTmFtZXNNaWdyYXRpb24sXG4gIENvbnN0cnVjdG9yU2lnbmF0dXJlTWlncmF0aW9uLFxuICBDc3NTZWxlY3RvcnNNaWdyYXRpb24sXG4gIEVsZW1lbnRTZWxlY3RvcnNNaWdyYXRpb24sXG4gIElucHV0TmFtZXNNaWdyYXRpb24sXG4gIE1ldGhvZENhbGxBcmd1bWVudHNNaWdyYXRpb24sXG4gIE1pc2NUZW1wbGF0ZU1pZ3JhdGlvbixcbiAgT3V0cHV0TmFtZXNNaWdyYXRpb24sXG4gIFByb3BlcnR5TmFtZXNNaWdyYXRpb24sXG5dO1xuXG5leHBvcnQgdHlwZSBOdWxsYWJsZURldmtpdE1pZ3JhdGlvbiA9IE1pZ3JhdGlvbkN0b3I8VXBncmFkZURhdGF8bnVsbCwgRGV2a2l0Q29udGV4dD47XG5cbnR5cGUgUG9zdE1pZ3JhdGlvbkZuID1cbiAgICAoY29udGV4dDogU2NoZW1hdGljQ29udGV4dCwgdGFyZ2V0VmVyc2lvbjogVGFyZ2V0VmVyc2lvbiwgaGFzRmFpbHVyZTogYm9vbGVhbikgPT4gdm9pZDtcblxuLyoqXG4gKiBDcmVhdGVzIGEgQW5ndWxhciBzY2hlbWF0aWMgcnVsZSB0aGF0IHJ1bnMgdGhlIHVwZ3JhZGUgZm9yIHRoZVxuICogc3BlY2lmaWVkIHRhcmdldCB2ZXJzaW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWlncmF0aW9uU2NoZW1hdGljUnVsZShcbiAgICB0YXJnZXRWZXJzaW9uOiBUYXJnZXRWZXJzaW9uLCBleHRyYU1pZ3JhdGlvbnM6IE51bGxhYmxlRGV2a2l0TWlncmF0aW9uW10sXG4gICAgdXBncmFkZURhdGE6IFVwZ3JhZGVEYXRhLCBvbk1pZ3JhdGlvbkNvbXBsZXRlRm4/OiBQb3N0TWlncmF0aW9uRm4pOiBSdWxlIHtcbiAgcmV0dXJuIGFzeW5jICh0cmVlOiBUcmVlLCBjb250ZXh0OiBTY2hlbWF0aWNDb250ZXh0KSA9PiB7XG4gICAgY29uc3QgbG9nZ2VyID0gY29udGV4dC5sb2dnZXI7XG4gICAgY29uc3Qgd29ya3NwYWNlID0gYXdhaXQgZ2V0V29ya3NwYWNlQ29uZmlnR3JhY2VmdWxseSh0cmVlKTtcblxuICAgIGlmICh3b3Jrc3BhY2UgPT09IG51bGwpIHtcbiAgICAgIGxvZ2dlci5lcnJvcignQ291bGQgbm90IGZpbmQgd29ya3NwYWNlIGNvbmZpZ3VyYXRpb24gZmlsZS4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBLZWVwIHRyYWNrIG9mIGFsbCBwcm9qZWN0IHNvdXJjZSBmaWxlcyB3aGljaCBoYXZlIGJlZW4gY2hlY2tlZC9taWdyYXRlZC4gVGhpcyBpc1xuICAgIC8vIG5lY2Vzc2FyeSBiZWNhdXNlIG11bHRpcGxlIFR5cGVTY3JpcHQgcHJvamVjdHMgY2FuIGNvbnRhaW4gdGhlIHNhbWUgc291cmNlIGZpbGUgYW5kXG4gICAgLy8gd2UgZG9uJ3Qgd2FudCB0byBjaGVjayB0aGVzZSBhZ2FpbiwgYXMgdGhpcyB3b3VsZCByZXN1bHQgaW4gZHVwbGljYXRlZCBmYWlsdXJlIG1lc3NhZ2VzLlxuICAgIGNvbnN0IGFuYWx5emVkRmlsZXMgPSBuZXcgU2V0PFdvcmtzcGFjZVBhdGg+KCk7XG4gICAgY29uc3QgZmlsZVN5c3RlbSA9IG5ldyBEZXZraXRGaWxlU3lzdGVtKHRyZWUpO1xuICAgIGNvbnN0IHByb2plY3ROYW1lcyA9IHdvcmtzcGFjZS5wcm9qZWN0cy5rZXlzKCk7XG4gICAgY29uc3QgbWlncmF0aW9uczogTnVsbGFibGVEZXZraXRNaWdyYXRpb25bXSA9IFsuLi5jZGtNaWdyYXRpb25zLCAuLi5leHRyYU1pZ3JhdGlvbnNdO1xuICAgIGxldCBoYXNGYWlsdXJlcyA9IGZhbHNlO1xuXG4gICAgZm9yIChjb25zdCBwcm9qZWN0TmFtZSBvZiBwcm9qZWN0TmFtZXMpIHtcbiAgICAgIGNvbnN0IHByb2plY3QgPSB3b3Jrc3BhY2UucHJvamVjdHMuZ2V0KHByb2plY3ROYW1lKSE7XG4gICAgICBjb25zdCBidWlsZFRzY29uZmlnUGF0aCA9IGdldFRhcmdldFRzY29uZmlnUGF0aChwcm9qZWN0LCAnYnVpbGQnKTtcbiAgICAgIGNvbnN0IHRlc3RUc2NvbmZpZ1BhdGggPSBnZXRUYXJnZXRUc2NvbmZpZ1BhdGgocHJvamVjdCwgJ3Rlc3QnKTtcblxuICAgICAgaWYgKCFidWlsZFRzY29uZmlnUGF0aCAmJiAhdGVzdFRzY29uZmlnUGF0aCkge1xuICAgICAgICBsb2dnZXIud2FybihgQ291bGQgbm90IGZpbmQgVHlwZVNjcmlwdCBwcm9qZWN0IGZvciBwcm9qZWN0OiAke3Byb2plY3ROYW1lfWApO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgLy8gSW4gc29tZSBhcHBsaWNhdGlvbnMsIGRldmVsb3BlcnMgd2lsbCBoYXZlIGdsb2JhbCBzdHlsZXNoZWV0cyB3aGljaCBhcmUgbm90XG4gICAgICAvLyBzcGVjaWZpZWQgaW4gYW55IEFuZ3VsYXIgY29tcG9uZW50LiBUaGVyZWZvcmUgd2UgZ2xvYiB1cCBhbGwgQ1NTIGFuZCBTQ1NTIGZpbGVzXG4gICAgICAvLyBpbiB0aGUgcHJvamVjdCBhbmQgbWlncmF0ZSB0aGVtIGlmIG5lZWRlZC5cbiAgICAgIC8vIFRPRE86IHJld29yayB0aGlzIHRvIGNvbGxlY3QgZ2xvYmFsIHN0eWxlc2hlZXRzIGZyb20gdGhlIHdvcmtzcGFjZSBjb25maWcuIENPTVAtMjgwLlxuICAgICAgY29uc3QgYWRkaXRpb25hbFN0eWxlc2hlZXRQYXRocyA9IGZpbmRTdHlsZXNoZWV0RmlsZXModHJlZSwgcHJvamVjdC5yb290KTtcblxuICAgICAgaWYgKGJ1aWxkVHNjb25maWdQYXRoICE9PSBudWxsKSB7XG4gICAgICAgIHJ1bk1pZ3JhdGlvbnMocHJvamVjdCwgcHJvamVjdE5hbWUsIGJ1aWxkVHNjb25maWdQYXRoLCBhZGRpdGlvbmFsU3R5bGVzaGVldFBhdGhzLCBmYWxzZSk7XG4gICAgICB9XG4gICAgICBpZiAodGVzdFRzY29uZmlnUGF0aCAhPT0gbnVsbCkge1xuICAgICAgICBydW5NaWdyYXRpb25zKHByb2plY3QsIHByb2plY3ROYW1lLCB0ZXN0VHNjb25maWdQYXRoLCBhZGRpdGlvbmFsU3R5bGVzaGVldFBhdGhzLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgcnVuUGFja2FnZU1hbmFnZXIgPSBmYWxzZTtcbiAgICAvLyBSdW4gdGhlIGdsb2JhbCBwb3N0IG1pZ3JhdGlvbiBzdGF0aWMgbWVtYmVycyBmb3IgYWxsXG4gICAgLy8gcmVnaXN0ZXJlZCBkZXZraXQgbWlncmF0aW9ucy5cbiAgICBtaWdyYXRpb25zLmZvckVhY2gobSA9PiB7XG4gICAgICBjb25zdCBhY3Rpb25SZXN1bHQgPSBpc0RldmtpdE1pZ3JhdGlvbihtKSAmJiBtLmdsb2JhbFBvc3RNaWdyYXRpb24gIT09IHVuZGVmaW5lZCA/XG4gICAgICAgICAgbS5nbG9iYWxQb3N0TWlncmF0aW9uKHRyZWUsIGNvbnRleHQpIDogbnVsbDtcbiAgICAgIGlmIChhY3Rpb25SZXN1bHQpIHtcbiAgICAgICAgcnVuUGFja2FnZU1hbmFnZXIgPSBydW5QYWNrYWdlTWFuYWdlciB8fCBhY3Rpb25SZXN1bHQucnVuUGFja2FnZU1hbmFnZXI7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBJZiBhIG1pZ3JhdGlvbiByZXF1ZXN0ZWQgdGhlIHBhY2thZ2UgbWFuYWdlciB0byBydW4sIHdlIHJ1biBpdCBhcyBhblxuICAgIC8vIGFzeW5jaHJvbm91cyBwb3N0IG1pZ3JhdGlvbiB0YXNrLiBXZSBjYW5ub3QgcnVuIGl0IHN5bmNocm9ub3VzbHksXG4gICAgLy8gYXMgZmlsZSBjaGFuZ2VzIGZyb20gdGhlIGN1cnJlbnQgbWlncmF0aW9uIHRhc2sgYXJlIG5vdCBhcHBsaWVkIHRvXG4gICAgLy8gdGhlIGZpbGUgc3lzdGVtIHlldC5cbiAgICBpZiAocnVuUGFja2FnZU1hbmFnZXIpIHtcbiAgICAgIGNvbnRleHQuYWRkVGFzayhuZXcgTm9kZVBhY2thZ2VJbnN0YWxsVGFzayh7cXVpZXQ6IGZhbHNlfSkpO1xuICAgIH1cblxuICAgIGlmIChvbk1pZ3JhdGlvbkNvbXBsZXRlRm4pIHtcbiAgICAgIG9uTWlncmF0aW9uQ29tcGxldGVGbihjb250ZXh0LCB0YXJnZXRWZXJzaW9uLCBoYXNGYWlsdXJlcyk7XG4gICAgfVxuXG4gICAgLyoqIFJ1bnMgdGhlIG1pZ3JhdGlvbnMgZm9yIHRoZSBzcGVjaWZpZWQgd29ya3NwYWNlIHByb2plY3QuICovXG4gICAgZnVuY3Rpb24gcnVuTWlncmF0aW9ucyhwcm9qZWN0OiBQcm9qZWN0RGVmaW5pdGlvbiwgcHJvamVjdE5hbWU6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRzY29uZmlnUGF0aDogV29ya3NwYWNlUGF0aCwgYWRkaXRpb25hbFN0eWxlc2hlZXRQYXRoczogc3RyaW5nW10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBpc1Rlc3RUYXJnZXQ6IGJvb2xlYW4pIHtcbiAgICAgIGNvbnN0IHByb2dyYW0gPSBVcGRhdGVQcm9qZWN0LmNyZWF0ZVByb2dyYW1Gcm9tVHNjb25maWcodHNjb25maWdQYXRoLCBmaWxlU3lzdGVtKTtcbiAgICAgIGNvbnN0IHVwZGF0ZUNvbnRleHQ6IERldmtpdENvbnRleHQgPSB7XG4gICAgICAgIGlzVGVzdFRhcmdldCxcbiAgICAgICAgcHJvamVjdE5hbWUsXG4gICAgICAgIHByb2plY3QsXG4gICAgICAgIHRyZWUsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCB1cGRhdGVQcm9qZWN0ID0gbmV3IFVwZGF0ZVByb2plY3QoXG4gICAgICAgIHVwZGF0ZUNvbnRleHQsXG4gICAgICAgIHByb2dyYW0sXG4gICAgICAgIGZpbGVTeXN0ZW0sXG4gICAgICAgIGFuYWx5emVkRmlsZXMsXG4gICAgICAgIGNvbnRleHQubG9nZ2VyLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgcmVzdWx0ID1cbiAgICAgICAgdXBkYXRlUHJvamVjdC5taWdyYXRlKG1pZ3JhdGlvbnMsIHRhcmdldFZlcnNpb24sIHVwZ3JhZGVEYXRhLCBhZGRpdGlvbmFsU3R5bGVzaGVldFBhdGhzKTtcblxuICAgICAgLy8gQ29tbWl0IGFsbCByZWNvcmRlZCBlZGl0cyBpbiB0aGUgdXBkYXRlIHJlY29yZGVyLiBXZSBhcHBseSB0aGUgZWRpdHMgYWZ0ZXIgYWxsXG4gICAgICAvLyBtaWdyYXRpb25zIHJhbiBiZWNhdXNlIG90aGVyd2lzZSBvZmZzZXRzIGluIHRoZSBUeXBlU2NyaXB0IHByb2dyYW0gd291bGQgYmVcbiAgICAgIC8vIHNoaWZ0ZWQgYW5kIGluZGl2aWR1YWwgbWlncmF0aW9ucyBjb3VsZCBubyBsb25nZXIgdXBkYXRlIHRoZSBzYW1lIHNvdXJjZSBmaWxlLlxuICAgICAgZmlsZVN5c3RlbS5jb21taXRFZGl0cygpO1xuXG4gICAgICBoYXNGYWlsdXJlcyA9IGhhc0ZhaWx1cmVzIHx8IHJlc3VsdC5oYXNGYWlsdXJlcztcbiAgICB9XG4gIH07XG59XG5cbi8qKiBXaGV0aGVyIHRoZSBnaXZlbiBtaWdyYXRpb24gdHlwZSByZWZlcnMgdG8gYSBkZXZraXQgbWlncmF0aW9uICovXG5leHBvcnQgZnVuY3Rpb24gaXNEZXZraXRNaWdyYXRpb24odmFsdWU6IE1pZ3JhdGlvbkN0b3I8YW55LCBhbnk+KVxuICAgIDogdmFsdWUgaXMgRGV2a2l0TWlncmF0aW9uQ3Rvcjxhbnk+IHtcbiAgcmV0dXJuIERldmtpdE1pZ3JhdGlvbi5pc1Byb3RvdHlwZU9mKHZhbHVlKTtcbn1cbiJdfQ==
@@ -0,0 +1,20 @@
1
+ "use strict";
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
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.DevkitMigration = void 0;
11
+ const migration_1 = require("../update-tool/migration");
12
+ class DevkitMigration extends migration_1.Migration {
13
+ /** Prints an informative message with context on the current target. */
14
+ printInfo(text) {
15
+ const targetName = this.context.isTestTarget ? 'test' : 'build';
16
+ this.logger.info(`- ${this.context.projectName}@${targetName}: ${text}`);
17
+ }
18
+ }
19
+ exports.DevkitMigration = DevkitMigration;
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2a2l0LW1pZ3JhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy9uZy11cGRhdGUvZGV2a2l0LW1pZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFJSCx3REFBcUY7QUFhckYsTUFBc0IsZUFBc0IsU0FBUSxxQkFBOEI7SUFFaEYsd0VBQXdFO0lBQzlELFNBQVMsQ0FBQyxJQUFZO1FBQzlCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNoRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxJQUFJLFVBQVUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7Q0FTRjtBQWZELDBDQWVDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7U2NoZW1hdGljQ29udGV4dCwgVHJlZX0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3MnO1xuaW1wb3J0IHtQcm9qZWN0RGVmaW5pdGlvbn0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZSc7XG5pbXBvcnQge0NvbnN0cnVjdG9yLCBNaWdyYXRpb24sIFBvc3RNaWdyYXRpb25BY3Rpb259IGZyb20gJy4uL3VwZGF0ZS10b29sL21pZ3JhdGlvbic7XG5cbmV4cG9ydCB0eXBlIERldmtpdENvbnRleHQgPSB7XG4gIC8qKiBEZXZraXQgdHJlZSBmb3IgdGhlIGN1cnJlbnQgbWlncmF0aW9ucy4gQ2FuIGJlIHVzZWQgdG8gaW5zZXJ0L3JlbW92ZSBmaWxlcy4gKi9cbiAgdHJlZTogVHJlZSxcbiAgLyoqIE5hbWUgb2YgdGhlIHByb2plY3QgdGhlIG1pZ3JhdGlvbnMgcnVuIGFnYWluc3QuICovXG4gIHByb2plY3ROYW1lOiBzdHJpbmc7XG4gIC8qKiBXb3Jrc3BhY2UgcHJvamVjdCB0aGUgbWlncmF0aW9ucyBydW4gYWdhaW5zdC4gKi9cbiAgcHJvamVjdDogUHJvamVjdERlZmluaXRpb24sXG4gIC8qKiBXaGV0aGVyIHRoZSBtaWdyYXRpb25zIHJ1biBmb3IgYSB0ZXN0IHRhcmdldC4gKi9cbiAgaXNUZXN0VGFyZ2V0OiBib29sZWFuLFxufTtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERldmtpdE1pZ3JhdGlvbjxEYXRhPiBleHRlbmRzIE1pZ3JhdGlvbjxEYXRhLCBEZXZraXRDb250ZXh0PiB7XG5cbiAgLyoqIFByaW50cyBhbiBpbmZvcm1hdGl2ZSBtZXNzYWdlIHdpdGggY29udGV4dCBvbiB0aGUgY3VycmVudCB0YXJnZXQuICovXG4gIHByb3RlY3RlZCBwcmludEluZm8odGV4dDogc3RyaW5nKSB7XG4gICAgY29uc3QgdGFyZ2V0TmFtZSA9IHRoaXMuY29udGV4dC5pc1Rlc3RUYXJnZXQgPyAndGVzdCcgOiAnYnVpbGQnO1xuICAgIHRoaXMubG9nZ2VyLmluZm8oYC0gJHt0aGlzLmNvbnRleHQucHJvamVjdE5hbWV9QCR7dGFyZ2V0TmFtZX06ICR7dGV4dH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBzdGF0aWMgbWV0aG9kIHRoYXQgd2lsbCBiZSBjYWxsZWQgb25jZSB0aGUgbWlncmF0aW9uIG9mIGFsbCBwcm9qZWN0XG4gICAqIHRhcmdldHMgaGFzIGJlZW4gcGVyZm9ybWVkLiBUaGlzIG1ldGhvZCBjYW4gYmUgdXNlZCB0byBtYWtlIGNoYW5nZXMgcmVzcGVjdGluZyB0aGVcbiAgICogbWlncmF0aW9uIHJlc3VsdCBvZiBhbGwgaW5kaXZpZHVhbCB0YXJnZXRzLiBlLmcuIHJlbW92aW5nIEhhbW1lckpTIGlmIGl0XG4gICAqIGlzIG5vdCBuZWVkZWQgaW4gYW55IHByb2plY3QgdGFyZ2V0LlxuICAgKi9cbiAgc3RhdGljIGdsb2JhbFBvc3RNaWdyYXRpb24/KHRyZWU6IFRyZWUsIGNvbnRleHQ6IFNjaGVtYXRpY0NvbnRleHQpOiBQb3N0TWlncmF0aW9uQWN0aW9uO1xufVxuXG5leHBvcnQgdHlwZSBEZXZraXRNaWdyYXRpb25DdG9yPERhdGE+ID0gQ29uc3RydWN0b3I8RGV2a2l0TWlncmF0aW9uPERhdGE+PiAmXG4gICAge1ttIGluIGtleW9mIHR5cGVvZiBEZXZraXRNaWdyYXRpb25dOiAodHlwZW9mIERldmtpdE1pZ3JhdGlvbilbbV19O1xuIl19
@@ -6,5 +6,11 @@
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
8
  import { Tree } from '@angular-devkit/schematics';
9
- /** Finds stylesheets in the given directory from within the specified tree. */
10
- export declare function findStylesheetFiles(tree: Tree, baseDir: string): string[];
9
+ /**
10
+ * Finds stylesheets in the given directory from within the specified tree.
11
+ * @param tree Devkit tree where stylesheet files can be found in.
12
+ * @param startDirectory Optional start directory where stylesheets should be searched in.
13
+ * This can be useful if only stylesheets within a given folder are relevant (to avoid
14
+ * unnecessary iterations).
15
+ */
16
+ export declare function findStylesheetFiles(tree: Tree, startDirectory?: string): string[];
@@ -11,12 +11,23 @@ exports.findStylesheetFiles = void 0;
11
11
  const core_1 = require("@angular-devkit/core");
12
12
  /** Regular expression that matches stylesheet paths */
13
13
  const STYLESHEET_REGEX = /.*\.(css|scss)/;
14
- /** Finds stylesheets in the given directory from within the specified tree. */
15
- function findStylesheetFiles(tree, baseDir) {
14
+ /**
15
+ * Finds stylesheets in the given directory from within the specified tree.
16
+ * @param tree Devkit tree where stylesheet files can be found in.
17
+ * @param startDirectory Optional start directory where stylesheets should be searched in.
18
+ * This can be useful if only stylesheets within a given folder are relevant (to avoid
19
+ * unnecessary iterations).
20
+ */
21
+ function findStylesheetFiles(tree, startDirectory = '/') {
16
22
  const result = [];
17
23
  const visitDir = dirPath => {
18
24
  const { subfiles, subdirs } = tree.getDir(dirPath);
19
- result.push(...subfiles.filter(f => STYLESHEET_REGEX.test(f)));
25
+ subfiles.forEach(fileName => {
26
+ if (STYLESHEET_REGEX.test(fileName)) {
27
+ result.push(core_1.join(dirPath, fileName));
28
+ }
29
+ });
30
+ // Visit directories within the current directory to find other stylesheets.
20
31
  subdirs.forEach(fragment => {
21
32
  // Do not visit directories or files inside node modules or `dist/` folders.
22
33
  if (fragment !== 'node_modules' && fragment !== 'dist') {
@@ -24,8 +35,8 @@ function findStylesheetFiles(tree, baseDir) {
24
35
  }
25
36
  });
26
37
  };
27
- visitDir(baseDir);
38
+ visitDir(startDirectory);
28
39
  return result;
29
40
  }
30
41
  exports.findStylesheetFiles = findStylesheetFiles;
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1zdHlsZXNoZWV0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy9uZy11cGRhdGUvZmluZC1zdHlsZXNoZWV0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCwrQ0FBMEM7QUFHMUMsdURBQXVEO0FBQ3ZELE1BQU0sZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7QUFFMUMsK0VBQStFO0FBQy9FLFNBQWdCLG1CQUFtQixDQUFDLElBQVUsRUFBRSxPQUFlO0lBQzdELE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUM1QixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsRUFBRTtRQUN6QixNQUFNLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDekIsNEVBQTRFO1lBQzVFLElBQUksUUFBUSxLQUFLLGNBQWMsSUFBSSxRQUFRLEtBQUssTUFBTSxFQUFFO2dCQUN0RCxRQUFRLENBQUMsV0FBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO2FBQ25DO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFDRixRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEIsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQWRELGtEQWNDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7am9pbn0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUnO1xuaW1wb3J0IHtUcmVlfSBmcm9tICdAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcyc7XG5cbi8qKiBSZWd1bGFyIGV4cHJlc3Npb24gdGhhdCBtYXRjaGVzIHN0eWxlc2hlZXQgcGF0aHMgKi9cbmNvbnN0IFNUWUxFU0hFRVRfUkVHRVggPSAvLipcXC4oY3NzfHNjc3MpLztcblxuLyoqIEZpbmRzIHN0eWxlc2hlZXRzIGluIHRoZSBnaXZlbiBkaXJlY3RvcnkgZnJvbSB3aXRoaW4gdGhlIHNwZWNpZmllZCB0cmVlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRTdHlsZXNoZWV0RmlsZXModHJlZTogVHJlZSwgYmFzZURpcjogc3RyaW5nKTogc3RyaW5nW10ge1xuICBjb25zdCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IHZpc2l0RGlyID0gZGlyUGF0aCA9PiB7XG4gICAgY29uc3Qge3N1YmZpbGVzLCBzdWJkaXJzfSA9IHRyZWUuZ2V0RGlyKGRpclBhdGgpO1xuICAgIHJlc3VsdC5wdXNoKC4uLnN1YmZpbGVzLmZpbHRlcihmID0+IFNUWUxFU0hFRVRfUkVHRVgudGVzdChmKSkpO1xuICAgIHN1YmRpcnMuZm9yRWFjaChmcmFnbWVudCA9PiB7XG4gICAgICAvLyBEbyBub3QgdmlzaXQgZGlyZWN0b3JpZXMgb3IgZmlsZXMgaW5zaWRlIG5vZGUgbW9kdWxlcyBvciBgZGlzdC9gIGZvbGRlcnMuXG4gICAgICBpZiAoZnJhZ21lbnQgIT09ICdub2RlX21vZHVsZXMnICYmIGZyYWdtZW50ICE9PSAnZGlzdCcpIHtcbiAgICAgICAgdmlzaXREaXIoam9pbihkaXJQYXRoLCBmcmFnbWVudCkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuICB2aXNpdERpcihiYXNlRGlyKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1zdHlsZXNoZWV0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy9uZy11cGRhdGUvZmluZC1zdHlsZXNoZWV0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCwrQ0FBMEM7QUFHMUMsdURBQXVEO0FBQ3ZELE1BQU0sZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7QUFFMUM7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsSUFBVSxFQUFFLGlCQUF5QixHQUFHO0lBQzFFLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUM1QixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsRUFBRTtRQUN6QixNQUFNLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFakQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMxQixJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDbkMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7YUFDdEM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILDRFQUE0RTtRQUM1RSxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3pCLDRFQUE0RTtZQUM1RSxJQUFJLFFBQVEsS0FBSyxjQUFjLElBQUksUUFBUSxLQUFLLE1BQU0sRUFBRTtnQkFDdEQsUUFBUSxDQUFDLFdBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQzthQUNuQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBQ0YsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3pCLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFyQkQsa0RBcUJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7am9pbn0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUnO1xuaW1wb3J0IHtUcmVlfSBmcm9tICdAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcyc7XG5cbi8qKiBSZWd1bGFyIGV4cHJlc3Npb24gdGhhdCBtYXRjaGVzIHN0eWxlc2hlZXQgcGF0aHMgKi9cbmNvbnN0IFNUWUxFU0hFRVRfUkVHRVggPSAvLipcXC4oY3NzfHNjc3MpLztcblxuLyoqXG4gKiBGaW5kcyBzdHlsZXNoZWV0cyBpbiB0aGUgZ2l2ZW4gZGlyZWN0b3J5IGZyb20gd2l0aGluIHRoZSBzcGVjaWZpZWQgdHJlZS5cbiAqIEBwYXJhbSB0cmVlIERldmtpdCB0cmVlIHdoZXJlIHN0eWxlc2hlZXQgZmlsZXMgY2FuIGJlIGZvdW5kIGluLlxuICogQHBhcmFtIHN0YXJ0RGlyZWN0b3J5IE9wdGlvbmFsIHN0YXJ0IGRpcmVjdG9yeSB3aGVyZSBzdHlsZXNoZWV0cyBzaG91bGQgYmUgc2VhcmNoZWQgaW4uXG4gKiAgIFRoaXMgY2FuIGJlIHVzZWZ1bCBpZiBvbmx5IHN0eWxlc2hlZXRzIHdpdGhpbiBhIGdpdmVuIGZvbGRlciBhcmUgcmVsZXZhbnQgKHRvIGF2b2lkXG4gKiAgIHVubmVjZXNzYXJ5IGl0ZXJhdGlvbnMpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZFN0eWxlc2hlZXRGaWxlcyh0cmVlOiBUcmVlLCBzdGFydERpcmVjdG9yeTogc3RyaW5nID0gJy8nKTogc3RyaW5nW10ge1xuICBjb25zdCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IHZpc2l0RGlyID0gZGlyUGF0aCA9PiB7XG4gICAgY29uc3Qge3N1YmZpbGVzLCBzdWJkaXJzfSA9IHRyZWUuZ2V0RGlyKGRpclBhdGgpO1xuXG4gICAgc3ViZmlsZXMuZm9yRWFjaChmaWxlTmFtZSA9PiB7XG4gICAgICBpZiAoU1RZTEVTSEVFVF9SRUdFWC50ZXN0KGZpbGVOYW1lKSkge1xuICAgICAgICByZXN1bHQucHVzaChqb2luKGRpclBhdGgsIGZpbGVOYW1lKSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBWaXNpdCBkaXJlY3RvcmllcyB3aXRoaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHRvIGZpbmQgb3RoZXIgc3R5bGVzaGVldHMuXG4gICAgc3ViZGlycy5mb3JFYWNoKGZyYWdtZW50ID0+IHtcbiAgICAgIC8vIERvIG5vdCB2aXNpdCBkaXJlY3RvcmllcyBvciBmaWxlcyBpbnNpZGUgbm9kZSBtb2R1bGVzIG9yIGBkaXN0L2AgZm9sZGVycy5cbiAgICAgIGlmIChmcmFnbWVudCAhPT0gJ25vZGVfbW9kdWxlcycgJiYgZnJhZ21lbnQgIT09ICdkaXN0Jykge1xuICAgICAgICB2aXNpdERpcihqb2luKGRpclBhdGgsIGZyYWdtZW50KSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG4gIHZpc2l0RGlyKHN0YXJ0RGlyZWN0b3J5KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==
@@ -0,0 +1,42 @@
1
+ "use strict";
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
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.findStylesheetFiles = void 0;
11
+ const core_1 = require("@angular-devkit/core");
12
+ /** Regular expression that matches stylesheet paths */
13
+ const STYLESHEET_REGEX = /.*\.(css|scss)/;
14
+ /**
15
+ * Finds stylesheets in the given directory from within the specified tree.
16
+ * @param tree Devkit tree where stylesheet files can be found in.
17
+ * @param startDirectory Optional start directory where stylesheets should be searched in.
18
+ * This can be useful if only stylesheets within a given folder are relevant (to avoid
19
+ * unnecessary iterations).
20
+ */
21
+ function findStylesheetFiles(tree, startDirectory = '/') {
22
+ const result = [];
23
+ const visitDir = dirPath => {
24
+ const { subfiles, subdirs } = tree.getDir(dirPath);
25
+ subfiles.forEach(fileName => {
26
+ if (STYLESHEET_REGEX.test(fileName)) {
27
+ result.push(core_1.join(dirPath, fileName));
28
+ }
29
+ });
30
+ // Visit directories within the current directory to find other stylesheets.
31
+ subdirs.forEach(fragment => {
32
+ // Do not visit directories or files inside node modules or `dist/` folders.
33
+ if (fragment !== 'node_modules' && fragment !== 'dist') {
34
+ visitDir(core_1.join(dirPath, fragment));
35
+ }
36
+ });
37
+ };
38
+ visitDir(startDirectory);
39
+ return result;
40
+ }
41
+ exports.findStylesheetFiles = findStylesheetFiles;
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1zdHlsZXNoZWV0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy9uZy11cGRhdGUvZmluZC1zdHlsZXNoZWV0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCwrQ0FBMEM7QUFHMUMsdURBQXVEO0FBQ3ZELE1BQU0sZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7QUFFMUM7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsSUFBVSxFQUFFLGlCQUF5QixHQUFHO0lBQzFFLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUM1QixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsRUFBRTtRQUN6QixNQUFNLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFakQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMxQixJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDbkMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7YUFDdEM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILDRFQUE0RTtRQUM1RSxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3pCLDRFQUE0RTtZQUM1RSxJQUFJLFFBQVEsS0FBSyxjQUFjLElBQUksUUFBUSxLQUFLLE1BQU0sRUFBRTtnQkFDdEQsUUFBUSxDQUFDLFdBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQzthQUNuQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBQ0YsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3pCLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFyQkQsa0RBcUJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7am9pbn0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUnO1xuaW1wb3J0IHtUcmVlfSBmcm9tICdAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcyc7XG5cbi8qKiBSZWd1bGFyIGV4cHJlc3Npb24gdGhhdCBtYXRjaGVzIHN0eWxlc2hlZXQgcGF0aHMgKi9cbmNvbnN0IFNUWUxFU0hFRVRfUkVHRVggPSAvLipcXC4oY3NzfHNjc3MpLztcblxuLyoqXG4gKiBGaW5kcyBzdHlsZXNoZWV0cyBpbiB0aGUgZ2l2ZW4gZGlyZWN0b3J5IGZyb20gd2l0aGluIHRoZSBzcGVjaWZpZWQgdHJlZS5cbiAqIEBwYXJhbSB0cmVlIERldmtpdCB0cmVlIHdoZXJlIHN0eWxlc2hlZXQgZmlsZXMgY2FuIGJlIGZvdW5kIGluLlxuICogQHBhcmFtIHN0YXJ0RGlyZWN0b3J5IE9wdGlvbmFsIHN0YXJ0IGRpcmVjdG9yeSB3aGVyZSBzdHlsZXNoZWV0cyBzaG91bGQgYmUgc2VhcmNoZWQgaW4uXG4gKiAgIFRoaXMgY2FuIGJlIHVzZWZ1bCBpZiBvbmx5IHN0eWxlc2hlZXRzIHdpdGhpbiBhIGdpdmVuIGZvbGRlciBhcmUgcmVsZXZhbnQgKHRvIGF2b2lkXG4gKiAgIHVubmVjZXNzYXJ5IGl0ZXJhdGlvbnMpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZFN0eWxlc2hlZXRGaWxlcyh0cmVlOiBUcmVlLCBzdGFydERpcmVjdG9yeTogc3RyaW5nID0gJy8nKTogc3RyaW5nW10ge1xuICBjb25zdCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IHZpc2l0RGlyID0gZGlyUGF0aCA9PiB7XG4gICAgY29uc3Qge3N1YmZpbGVzLCBzdWJkaXJzfSA9IHRyZWUuZ2V0RGlyKGRpclBhdGgpO1xuXG4gICAgc3ViZmlsZXMuZm9yRWFjaChmaWxlTmFtZSA9PiB7XG4gICAgICBpZiAoU1RZTEVTSEVFVF9SRUdFWC50ZXN0KGZpbGVOYW1lKSkge1xuICAgICAgICByZXN1bHQucHVzaChqb2luKGRpclBhdGgsIGZpbGVOYW1lKSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBWaXNpdCBkaXJlY3RvcmllcyB3aXRoaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHRvIGZpbmQgb3RoZXIgc3R5bGVzaGVldHMuXG4gICAgc3ViZGlycy5mb3JFYWNoKGZyYWdtZW50ID0+IHtcbiAgICAgIC8vIERvIG5vdCB2aXNpdCBkaXJlY3RvcmllcyBvciBmaWxlcyBpbnNpZGUgbm9kZSBtb2R1bGVzIG9yIGBkaXN0L2AgZm9sZGVycy5cbiAgICAgIGlmIChmcmFnbWVudCAhPT0gJ25vZGVfbW9kdWxlcycgJiYgZnJhZ21lbnQgIT09ICdkaXN0Jykge1xuICAgICAgICB2aXNpdERpcihqb2luKGRpclBhdGgsIGZyYWdtZW50KSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG4gIHZpc2l0RGlyKHN0YXJ0RGlyZWN0b3J5KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==
@@ -0,0 +1,52 @@
1
+ "use strict";
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
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.findOutputsOnElementWithAttr = exports.findOutputsOnElementWithTag = exports.findInputsOnElementWithAttr = exports.findInputsOnElementWithTag = void 0;
11
+ const elements_1 = require("./elements");
12
+ /** Finds the specified Angular @Input in the given elements with tag name. */
13
+ function findInputsOnElementWithTag(html, inputName, tagNames) {
14
+ return [
15
+ // Inputs can be also used without brackets (e.g. `<mat-toolbar color="primary">`)
16
+ ...elements_1.findAttributeOnElementWithTag(html, inputName, tagNames),
17
+ // Add one column to the mapped offset because the first bracket for the @Input
18
+ // is part of the attribute and therefore also part of the offset. We only want to return
19
+ // the offset for the inner name of the bracketed input.
20
+ ...elements_1.findAttributeOnElementWithTag(html, `[${inputName}]`, tagNames).map(offset => offset + 1),
21
+ ];
22
+ }
23
+ exports.findInputsOnElementWithTag = findInputsOnElementWithTag;
24
+ /** Finds the specified Angular @Input in elements that have one of the specified attributes. */
25
+ function findInputsOnElementWithAttr(html, inputName, attrs) {
26
+ return [
27
+ // Inputs can be also used without brackets (e.g. `<button mat-button color="primary">`)
28
+ ...elements_1.findAttributeOnElementWithAttrs(html, inputName, attrs),
29
+ // Add one column to the mapped offset because the first bracket for the @Input
30
+ // is part of the attribute and therefore also part of the offset. We only want to return
31
+ // the offset for the inner name of the bracketed input.
32
+ ...elements_1.findAttributeOnElementWithAttrs(html, `[${inputName}]`, attrs).map(offset => offset + 1),
33
+ ];
34
+ }
35
+ exports.findInputsOnElementWithAttr = findInputsOnElementWithAttr;
36
+ /** Finds the specified Angular @Output in the given elements with tag name. */
37
+ function findOutputsOnElementWithTag(html, outputName, tagNames) {
38
+ // Add one column to the mapped offset because the first parenthesis for the @Output
39
+ // is part of the attribute and therefore also part of the offset. We only want to return
40
+ // the offset for the inner name of the output.
41
+ return elements_1.findAttributeOnElementWithTag(html, `(${outputName})`, tagNames).map(offset => offset + 1);
42
+ }
43
+ exports.findOutputsOnElementWithTag = findOutputsOnElementWithTag;
44
+ /** Finds the specified Angular @Output in elements that have one of the specified attributes. */
45
+ function findOutputsOnElementWithAttr(html, outputName, attrs) {
46
+ // Add one column to the mapped offset because the first bracket for the @Output
47
+ // is part of the attribute and therefore also part of the offset. We only want to return
48
+ // the offset for the inner name of the output.
49
+ return elements_1.findAttributeOnElementWithAttrs(html, `(${outputName})`, attrs).map(offset => offset + 1);
50
+ }
51
+ exports.findOutputsOnElementWithAttr = findOutputsOnElementWithAttr;
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2NoZW1hdGljcy9uZy11cGRhdGUvaHRtbC1wYXJzaW5nL2FuZ3VsYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgseUNBQTBGO0FBRTFGLDhFQUE4RTtBQUM5RSxTQUFnQiwwQkFBMEIsQ0FBQyxJQUFZLEVBQUUsU0FBaUIsRUFBRSxRQUFrQjtJQUM1RixPQUFPO1FBQ0wsa0ZBQWtGO1FBQ2xGLEdBQUcsd0NBQTZCLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUM7UUFDM0QsK0VBQStFO1FBQy9FLHlGQUF5RjtRQUN6Rix3REFBd0Q7UUFDeEQsR0FBRyx3Q0FBNkIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxTQUFTLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0tBQzdGLENBQUM7QUFDSixDQUFDO0FBVEQsZ0VBU0M7QUFFRCxnR0FBZ0c7QUFDaEcsU0FBZ0IsMkJBQTJCLENBQUMsSUFBWSxFQUFFLFNBQWlCLEVBQUUsS0FBZTtJQUMxRixPQUFPO1FBQ0wsd0ZBQXdGO1FBQ3hGLEdBQUcsMENBQStCLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDMUQsK0VBQStFO1FBQy9FLHlGQUF5RjtRQUN6Rix3REFBd0Q7UUFDeEQsR0FBRywwQ0FBK0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxTQUFTLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0tBQzVGLENBQUM7QUFDSixDQUFDO0FBVEQsa0VBU0M7QUFFRCwrRUFBK0U7QUFDL0UsU0FBZ0IsMkJBQTJCLENBQUMsSUFBWSxFQUFFLFVBQWtCLEVBQUUsUUFBa0I7SUFDOUYsb0ZBQW9GO0lBQ3BGLHlGQUF5RjtJQUN6RiwrQ0FBK0M7SUFDL0MsT0FBTyx3Q0FBNkIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxVQUFVLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDcEcsQ0FBQztBQUxELGtFQUtDO0FBRUQsaUdBQWlHO0FBQ2pHLFNBQWdCLDRCQUE0QixDQUFDLElBQVksRUFBRSxVQUFrQixFQUFFLEtBQWU7SUFDNUYsZ0ZBQWdGO0lBQ2hGLHlGQUF5RjtJQUN6RiwrQ0FBK0M7SUFDL0MsT0FBTywwQ0FBK0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxVQUFVLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDbkcsQ0FBQztBQUxELG9FQUtDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7ZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhBdHRycywgZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhUYWd9IGZyb20gJy4vZWxlbWVudHMnO1xuXG4vKiogRmluZHMgdGhlIHNwZWNpZmllZCBBbmd1bGFyIEBJbnB1dCBpbiB0aGUgZ2l2ZW4gZWxlbWVudHMgd2l0aCB0YWcgbmFtZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kSW5wdXRzT25FbGVtZW50V2l0aFRhZyhodG1sOiBzdHJpbmcsIGlucHV0TmFtZTogc3RyaW5nLCB0YWdOYW1lczogc3RyaW5nW10pIHtcbiAgcmV0dXJuIFtcbiAgICAvLyBJbnB1dHMgY2FuIGJlIGFsc28gdXNlZCB3aXRob3V0IGJyYWNrZXRzIChlLmcuIGA8bWF0LXRvb2xiYXIgY29sb3I9XCJwcmltYXJ5XCI+YClcbiAgICAuLi5maW5kQXR0cmlidXRlT25FbGVtZW50V2l0aFRhZyhodG1sLCBpbnB1dE5hbWUsIHRhZ05hbWVzKSxcbiAgICAvLyBBZGQgb25lIGNvbHVtbiB0byB0aGUgbWFwcGVkIG9mZnNldCBiZWNhdXNlIHRoZSBmaXJzdCBicmFja2V0IGZvciB0aGUgQElucHV0XG4gICAgLy8gaXMgcGFydCBvZiB0aGUgYXR0cmlidXRlIGFuZCB0aGVyZWZvcmUgYWxzbyBwYXJ0IG9mIHRoZSBvZmZzZXQuIFdlIG9ubHkgd2FudCB0byByZXR1cm5cbiAgICAvLyB0aGUgb2Zmc2V0IGZvciB0aGUgaW5uZXIgbmFtZSBvZiB0aGUgYnJhY2tldGVkIGlucHV0LlxuICAgIC4uLmZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoVGFnKGh0bWwsIGBbJHtpbnB1dE5hbWV9XWAsIHRhZ05hbWVzKS5tYXAob2Zmc2V0ID0+IG9mZnNldCArIDEpLFxuICBdO1xufVxuXG4vKiogRmluZHMgdGhlIHNwZWNpZmllZCBBbmd1bGFyIEBJbnB1dCBpbiBlbGVtZW50cyB0aGF0IGhhdmUgb25lIG9mIHRoZSBzcGVjaWZpZWQgYXR0cmlidXRlcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kSW5wdXRzT25FbGVtZW50V2l0aEF0dHIoaHRtbDogc3RyaW5nLCBpbnB1dE5hbWU6IHN0cmluZywgYXR0cnM6IHN0cmluZ1tdKSB7XG4gIHJldHVybiBbXG4gICAgLy8gSW5wdXRzIGNhbiBiZSBhbHNvIHVzZWQgd2l0aG91dCBicmFja2V0cyAoZS5nLiBgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiPmApXG4gICAgLi4uZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhBdHRycyhodG1sLCBpbnB1dE5hbWUsIGF0dHJzKSxcbiAgICAvLyBBZGQgb25lIGNvbHVtbiB0byB0aGUgbWFwcGVkIG9mZnNldCBiZWNhdXNlIHRoZSBmaXJzdCBicmFja2V0IGZvciB0aGUgQElucHV0XG4gICAgLy8gaXMgcGFydCBvZiB0aGUgYXR0cmlidXRlIGFuZCB0aGVyZWZvcmUgYWxzbyBwYXJ0IG9mIHRoZSBvZmZzZXQuIFdlIG9ubHkgd2FudCB0byByZXR1cm5cbiAgICAvLyB0aGUgb2Zmc2V0IGZvciB0aGUgaW5uZXIgbmFtZSBvZiB0aGUgYnJhY2tldGVkIGlucHV0LlxuICAgIC4uLmZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoQXR0cnMoaHRtbCwgYFske2lucHV0TmFtZX1dYCwgYXR0cnMpLm1hcChvZmZzZXQgPT4gb2Zmc2V0ICsgMSksXG4gIF07XG59XG5cbi8qKiBGaW5kcyB0aGUgc3BlY2lmaWVkIEFuZ3VsYXIgQE91dHB1dCBpbiB0aGUgZ2l2ZW4gZWxlbWVudHMgd2l0aCB0YWcgbmFtZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kT3V0cHV0c09uRWxlbWVudFdpdGhUYWcoaHRtbDogc3RyaW5nLCBvdXRwdXROYW1lOiBzdHJpbmcsIHRhZ05hbWVzOiBzdHJpbmdbXSkge1xuICAvLyBBZGQgb25lIGNvbHVtbiB0byB0aGUgbWFwcGVkIG9mZnNldCBiZWNhdXNlIHRoZSBmaXJzdCBwYXJlbnRoZXNpcyBmb3IgdGhlIEBPdXRwdXRcbiAgLy8gaXMgcGFydCBvZiB0aGUgYXR0cmlidXRlIGFuZCB0aGVyZWZvcmUgYWxzbyBwYXJ0IG9mIHRoZSBvZmZzZXQuIFdlIG9ubHkgd2FudCB0byByZXR1cm5cbiAgLy8gdGhlIG9mZnNldCBmb3IgdGhlIGlubmVyIG5hbWUgb2YgdGhlIG91dHB1dC5cbiAgcmV0dXJuIGZpbmRBdHRyaWJ1dGVPbkVsZW1lbnRXaXRoVGFnKGh0bWwsIGAoJHtvdXRwdXROYW1lfSlgLCB0YWdOYW1lcykubWFwKG9mZnNldCA9PiBvZmZzZXQgKyAxKTtcbn1cblxuLyoqIEZpbmRzIHRoZSBzcGVjaWZpZWQgQW5ndWxhciBAT3V0cHV0IGluIGVsZW1lbnRzIHRoYXQgaGF2ZSBvbmUgb2YgdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRPdXRwdXRzT25FbGVtZW50V2l0aEF0dHIoaHRtbDogc3RyaW5nLCBvdXRwdXROYW1lOiBzdHJpbmcsIGF0dHJzOiBzdHJpbmdbXSkge1xuICAvLyBBZGQgb25lIGNvbHVtbiB0byB0aGUgbWFwcGVkIG9mZnNldCBiZWNhdXNlIHRoZSBmaXJzdCBicmFja2V0IGZvciB0aGUgQE91dHB1dFxuICAvLyBpcyBwYXJ0IG9mIHRoZSBhdHRyaWJ1dGUgYW5kIHRoZXJlZm9yZSBhbHNvIHBhcnQgb2YgdGhlIG9mZnNldC4gV2Ugb25seSB3YW50IHRvIHJldHVyblxuICAvLyB0aGUgb2Zmc2V0IGZvciB0aGUgaW5uZXIgbmFtZSBvZiB0aGUgb3V0cHV0LlxuICByZXR1cm4gZmluZEF0dHJpYnV0ZU9uRWxlbWVudFdpdGhBdHRycyhodG1sLCBgKCR7b3V0cHV0TmFtZX0pYCwgYXR0cnMpLm1hcChvZmZzZXQgPT4gb2Zmc2V0ICsgMSk7XG59XG4iXX0=