@angular/core 13.0.0-rc.1 → 13.0.0-rc.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 (163) hide show
  1. package/core.d.ts +1 -1
  2. package/esm2020/index.mjs +6 -5
  3. package/esm2020/src/render3/error_code.mjs +2 -5
  4. package/esm2020/src/render3/error_details_base_url.mjs +16 -0
  5. package/esm2020/src/version.mjs +1 -1
  6. package/esm2020/testing/src/logger.mjs +3 -3
  7. package/esm2020/testing/src/ng_zone_mock.mjs +3 -3
  8. package/esm2020/testing/src/test_compiler.mjs +3 -3
  9. package/fesm2015/core.mjs +17 -5
  10. package/fesm2015/core.mjs.map +1 -1
  11. package/fesm2015/testing.mjs +4 -4
  12. package/fesm2020/core.mjs +17 -5
  13. package/fesm2020/core.mjs.map +1 -1
  14. package/fesm2020/testing.mjs +4 -4
  15. package/package.json +1 -1
  16. package/schematics/migrations.json +0 -100
  17. package/testing/testing.d.ts +1 -1
  18. package/schematics/migrations/abstract-control-parent/index.d.ts +0 -11
  19. package/schematics/migrations/abstract-control-parent/index.js +0 -69
  20. package/schematics/migrations/abstract-control-parent/util.d.ts +0 -14
  21. package/schematics/migrations/abstract-control-parent/util.js +0 -67
  22. package/schematics/migrations/activated-route-snapshot-fragment/index.d.ts +0 -13
  23. package/schematics/migrations/activated-route-snapshot-fragment/index.js +0 -73
  24. package/schematics/migrations/activated-route-snapshot-fragment/util.d.ts +0 -16
  25. package/schematics/migrations/activated-route-snapshot-fragment/util.js +0 -51
  26. package/schematics/migrations/can-activate-with-redirect-to/index.d.ts +0 -11
  27. package/schematics/migrations/can-activate-with-redirect-to/index.js +0 -69
  28. package/schematics/migrations/can-activate-with-redirect-to/util.d.ts +0 -11
  29. package/schematics/migrations/can-activate-with-redirect-to/util.js +0 -73
  30. package/schematics/migrations/deep-shadow-piercing-selector/index.d.ts +0 -10
  31. package/schematics/migrations/deep-shadow-piercing-selector/index.js +0 -49
  32. package/schematics/migrations/dynamic-queries/index.d.ts +0 -13
  33. package/schematics/migrations/dynamic-queries/index.js +0 -76
  34. package/schematics/migrations/dynamic-queries/util.d.ts +0 -25
  35. package/schematics/migrations/dynamic-queries/util.js +0 -84
  36. package/schematics/migrations/initial-navigation/collector.d.ts +0 -22
  37. package/schematics/migrations/initial-navigation/collector.js +0 -122
  38. package/schematics/migrations/initial-navigation/index.d.ts +0 -11
  39. package/schematics/migrations/initial-navigation/index.js +0 -83
  40. package/schematics/migrations/initial-navigation/transform.d.ts +0 -20
  41. package/schematics/migrations/initial-navigation/transform.js +0 -71
  42. package/schematics/migrations/initial-navigation/update_recorder.d.ts +0 -18
  43. package/schematics/migrations/initial-navigation/update_recorder.js +0 -20
  44. package/schematics/migrations/initial-navigation/util.d.ts +0 -12
  45. package/schematics/migrations/initial-navigation/util.js +0 -46
  46. package/schematics/migrations/missing-injectable/definition_collector.d.ts +0 -37
  47. package/schematics/migrations/missing-injectable/definition_collector.js +0 -92
  48. package/schematics/migrations/missing-injectable/index.d.ts +0 -11
  49. package/schematics/migrations/missing-injectable/index.js +0 -136
  50. package/schematics/migrations/missing-injectable/providers_evaluator.d.ts +0 -26
  51. package/schematics/migrations/missing-injectable/providers_evaluator.js +0 -71
  52. package/schematics/migrations/missing-injectable/transform.d.ts +0 -70
  53. package/schematics/migrations/missing-injectable/transform.js +0 -203
  54. package/schematics/migrations/missing-injectable/update_recorder.d.ts +0 -21
  55. package/schematics/migrations/missing-injectable/update_recorder.js +0 -20
  56. package/schematics/migrations/module-with-providers/collector.d.ts +0 -34
  57. package/schematics/migrations/module-with-providers/collector.js +0 -76
  58. package/schematics/migrations/module-with-providers/index.d.ts +0 -13
  59. package/schematics/migrations/module-with-providers/index.js +0 -107
  60. package/schematics/migrations/module-with-providers/transform.d.ts +0 -50
  61. package/schematics/migrations/module-with-providers/transform.js +0 -149
  62. package/schematics/migrations/module-with-providers/util.d.ts +0 -13
  63. package/schematics/migrations/module-with-providers/util.js +0 -43
  64. package/schematics/migrations/move-document/document_import_visitor.d.ts +0 -27
  65. package/schematics/migrations/move-document/document_import_visitor.js +0 -77
  66. package/schematics/migrations/move-document/index.d.ts +0 -11
  67. package/schematics/migrations/move-document/index.js +0 -93
  68. package/schematics/migrations/move-document/move-import.d.ts +0 -12
  69. package/schematics/migrations/move-document/move-import.js +0 -64
  70. package/schematics/migrations/native-view-encapsulation/index.d.ts +0 -11
  71. package/schematics/migrations/native-view-encapsulation/index.js +0 -63
  72. package/schematics/migrations/native-view-encapsulation/util.d.ts +0 -11
  73. package/schematics/migrations/native-view-encapsulation/util.js +0 -51
  74. package/schematics/migrations/navigation-extras-omissions/index.d.ts +0 -11
  75. package/schematics/migrations/navigation-extras-omissions/index.js +0 -72
  76. package/schematics/migrations/navigation-extras-omissions/util.d.ts +0 -11
  77. package/schematics/migrations/navigation-extras-omissions/util.js +0 -129
  78. package/schematics/migrations/relative-link-resolution/collector.d.ts +0 -22
  79. package/schematics/migrations/relative-link-resolution/collector.js +0 -98
  80. package/schematics/migrations/relative-link-resolution/index.d.ts +0 -11
  81. package/schematics/migrations/relative-link-resolution/index.js +0 -84
  82. package/schematics/migrations/relative-link-resolution/transform.d.ts +0 -22
  83. package/schematics/migrations/relative-link-resolution/transform.js +0 -68
  84. package/schematics/migrations/relative-link-resolution/update_recorder.d.ts +0 -18
  85. package/schematics/migrations/relative-link-resolution/update_recorder.js +0 -20
  86. package/schematics/migrations/relative-link-resolution/util.d.ts +0 -12
  87. package/schematics/migrations/relative-link-resolution/util.js +0 -46
  88. package/schematics/migrations/renderer-to-renderer2/helpers.d.ts +0 -25
  89. package/schematics/migrations/renderer-to-renderer2/helpers.js +0 -241
  90. package/schematics/migrations/renderer-to-renderer2/index.d.ts +0 -14
  91. package/schematics/migrations/renderer-to-renderer2/index.js +0 -138
  92. package/schematics/migrations/renderer-to-renderer2/migration.d.ts +0 -18
  93. package/schematics/migrations/renderer-to-renderer2/migration.js +0 -228
  94. package/schematics/migrations/renderer-to-renderer2/util.d.ts +0 -18
  95. package/schematics/migrations/renderer-to-renderer2/util.js +0 -86
  96. package/schematics/migrations/router-preserve-query-params/index.d.ts +0 -14
  97. package/schematics/migrations/router-preserve-query-params/index.js +0 -75
  98. package/schematics/migrations/router-preserve-query-params/util.d.ts +0 -11
  99. package/schematics/migrations/router-preserve-query-params/util.js +0 -106
  100. package/schematics/migrations/static-queries/angular/directive_inputs.d.ts +0 -11
  101. package/schematics/migrations/static-queries/angular/directive_inputs.js +0 -87
  102. package/schematics/migrations/static-queries/angular/ng_query_visitor.d.ts +0 -45
  103. package/schematics/migrations/static-queries/angular/ng_query_visitor.js +0 -130
  104. package/schematics/migrations/static-queries/angular/query-definition.d.ts +0 -37
  105. package/schematics/migrations/static-queries/angular/query-definition.js +0 -33
  106. package/schematics/migrations/static-queries/angular/super_class.d.ts +0 -15
  107. package/schematics/migrations/static-queries/angular/super_class.js +0 -35
  108. package/schematics/migrations/static-queries/index.d.ts +0 -11
  109. package/schematics/migrations/static-queries/index.js +0 -244
  110. package/schematics/migrations/static-queries/strategies/template_strategy/template_strategy.d.ts +0 -41
  111. package/schematics/migrations/static-queries/strategies/template_strategy/template_strategy.js +0 -210
  112. package/schematics/migrations/static-queries/strategies/test_strategy/test_strategy.d.ts +0 -24
  113. package/schematics/migrations/static-queries/strategies/test_strategy/test_strategy.js +0 -38
  114. package/schematics/migrations/static-queries/strategies/timing-strategy.d.ts +0 -19
  115. package/schematics/migrations/static-queries/strategies/timing-strategy.js +0 -20
  116. package/schematics/migrations/static-queries/strategies/usage_strategy/declaration_usage_visitor.d.ts +0 -82
  117. package/schematics/migrations/static-queries/strategies/usage_strategy/declaration_usage_visitor.js +0 -372
  118. package/schematics/migrations/static-queries/strategies/usage_strategy/super_class_context.d.ts +0 -18
  119. package/schematics/migrations/static-queries/strategies/usage_strategy/super_class_context.js +0 -55
  120. package/schematics/migrations/static-queries/strategies/usage_strategy/template_usage_visitor.d.ts +0 -27
  121. package/schematics/migrations/static-queries/strategies/usage_strategy/template_usage_visitor.js +0 -93
  122. package/schematics/migrations/static-queries/strategies/usage_strategy/usage_strategy.d.ts +0 -34
  123. package/schematics/migrations/static-queries/strategies/usage_strategy/usage_strategy.js +0 -172
  124. package/schematics/migrations/static-queries/transform.d.ts +0 -21
  125. package/schematics/migrations/static-queries/transform.js +0 -105
  126. package/schematics/migrations/template-var-assignment/analyze_template.d.ts +0 -20
  127. package/schematics/migrations/template-var-assignment/analyze_template.js +0 -38
  128. package/schematics/migrations/template-var-assignment/angular/html_variable_assignment_visitor.d.ts +0 -28
  129. package/schematics/migrations/template-var-assignment/angular/html_variable_assignment_visitor.js +0 -80
  130. package/schematics/migrations/template-var-assignment/index.d.ts +0 -11
  131. package/schematics/migrations/template-var-assignment/index.js +0 -101
  132. package/schematics/migrations/undecorated-classes-with-decorated-fields/index.d.ts +0 -14
  133. package/schematics/migrations/undecorated-classes-with-decorated-fields/index.js +0 -128
  134. package/schematics/migrations/undecorated-classes-with-decorated-fields/transform.d.ts +0 -64
  135. package/schematics/migrations/undecorated-classes-with-decorated-fields/transform.js +0 -302
  136. package/schematics/migrations/undecorated-classes-with-decorated-fields/update_recorder.d.ts +0 -19
  137. package/schematics/migrations/undecorated-classes-with-decorated-fields/update_recorder.js +0 -20
  138. package/schematics/migrations/undecorated-classes-with-di/create_ngc_program.d.ts +0 -18
  139. package/schematics/migrations/undecorated-classes-with-di/create_ngc_program.js +0 -56
  140. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/convert_directive_metadata.d.ts +0 -18
  141. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/convert_directive_metadata.js +0 -99
  142. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/decorator_rewriter.d.ts +0 -37
  143. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/decorator_rewriter.js +0 -118
  144. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/import_rewrite_visitor.d.ts +0 -37
  145. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/import_rewrite_visitor.js +0 -129
  146. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/path_format.d.ts +0 -10
  147. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/path_format.js +0 -31
  148. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/source_file_exports.d.ts +0 -16
  149. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/source_file_exports.js +0 -68
  150. package/schematics/migrations/undecorated-classes-with-di/index.d.ts +0 -11
  151. package/schematics/migrations/undecorated-classes-with-di/index.js +0 -226
  152. package/schematics/migrations/undecorated-classes-with-di/ng_declaration_collector.d.ts +0 -38
  153. package/schematics/migrations/undecorated-classes-with-di/ng_declaration_collector.js +0 -135
  154. package/schematics/migrations/undecorated-classes-with-di/transform.d.ts +0 -97
  155. package/schematics/migrations/undecorated-classes-with-di/transform.js +0 -373
  156. package/schematics/migrations/undecorated-classes-with-di/update_recorder.d.ts +0 -20
  157. package/schematics/migrations/undecorated-classes-with-di/update_recorder.js +0 -20
  158. package/schematics/migrations/wait-for-async/index.d.ts +0 -11
  159. package/schematics/migrations/wait-for-async/index.js +0 -101
  160. package/schematics/migrations/wait-for-async/util.d.ts +0 -11
  161. package/schematics/migrations/wait-for-async/util.js +0 -40
  162. package/schematics/migrations/xhr-factory/index.d.ts +0 -10
  163. package/schematics/migrations/xhr-factory/index.js +0 -107
@@ -1,26 +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/missing-injectable/providers_evaluator" />
9
- import ts from 'typescript';
10
- import type { ResolvedValue, TypeScriptReflectionHost } from '@angular/compiler-cli/private/migrations';
11
- export interface ProviderLiteral {
12
- node: ts.ObjectLiteralExpression;
13
- resolvedValue: ResolvedValue;
14
- }
15
- /**
16
- * A factory function to create an evaluator for providers. This is required to be a
17
- * factory function because the underlying class extends a class that is only available
18
- * from within a dynamically imported module (`@angular/compiler-cli/private/migrations`)
19
- * and is therefore not available at module evaluation time.
20
- */
21
- export declare function createProvidersEvaluator(compilerCliMigrationsModule: typeof import('@angular/compiler-cli/private/migrations'), host: TypeScriptReflectionHost, checker: ts.TypeChecker): {
22
- evaluate: (expr: ts.Expression) => {
23
- resolvedValue: ResolvedValue;
24
- literals: ProviderLiteral[];
25
- };
26
- };
@@ -1,71 +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
- (function (factory) {
9
- if (typeof module === "object" && typeof module.exports === "object") {
10
- var v = factory(require, exports);
11
- if (v !== undefined) module.exports = v;
12
- }
13
- else if (typeof define === "function" && define.amd) {
14
- define("@angular/core/schematics/migrations/missing-injectable/providers_evaluator", ["require", "exports"], factory);
15
- }
16
- })(function (require, exports) {
17
- "use strict";
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.createProvidersEvaluator = void 0;
20
- /**
21
- * A factory function to create an evaluator for providers. This is required to be a
22
- * factory function because the underlying class extends a class that is only available
23
- * from within a dynamically imported module (`@angular/compiler-cli/private/migrations`)
24
- * and is therefore not available at module evaluation time.
25
- */
26
- function createProvidersEvaluator(compilerCliMigrationsModule, host, checker) {
27
- /**
28
- * Providers evaluator that extends the ngtsc static interpreter. This is necessary because
29
- * the static interpreter by default only exposes the resolved value, but we are also interested
30
- * in the TypeScript nodes that declare providers. It would be possible to manually traverse the
31
- * AST to collect these nodes, but that would mean that we need to re-implement the static
32
- * interpreter in order to handle all possible scenarios. (e.g. spread operator, function calls,
33
- * callee scope). This can be avoided by simply extending the static interpreter and intercepting
34
- * the "visitObjectLiteralExpression" method.
35
- */
36
- class ProvidersEvaluator extends compilerCliMigrationsModule.StaticInterpreter {
37
- constructor() {
38
- super(...arguments);
39
- this._providerLiterals = [];
40
- }
41
- visitObjectLiteralExpression(node, context) {
42
- const resolvedValue = super.visitObjectLiteralExpression(node, Object.assign(Object.assign({}, context), { insideProviderDef: true }));
43
- // do not collect nested object literals. e.g. a provider could use a
44
- // spread assignment (which resolves to another object literal). In that
45
- // case the referenced object literal is not a provider object literal.
46
- if (!context.insideProviderDef) {
47
- this._providerLiterals.push({ node, resolvedValue });
48
- }
49
- return resolvedValue;
50
- }
51
- /**
52
- * Evaluates the given expression and returns its statically resolved value
53
- * and a list of object literals which define Angular providers.
54
- */
55
- evaluate(expr) {
56
- this._providerLiterals = [];
57
- const resolvedValue = this.visit(expr, {
58
- originatingFile: expr.getSourceFile(),
59
- absoluteModuleName: null,
60
- resolutionContext: expr.getSourceFile().fileName,
61
- scope: new Map(),
62
- foreignFunctionResolver: compilerCliMigrationsModule.forwardRefResolver
63
- });
64
- return { resolvedValue, literals: this._providerLiterals };
65
- }
66
- }
67
- return new ProvidersEvaluator(host, checker, /* dependencyTracker */ null);
68
- }
69
- exports.createProvidersEvaluator = createProvidersEvaluator;
70
- });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzX2V2YWx1YXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc2NoZW1hdGljcy9taWdyYXRpb25zL21pc3NpbmctaW5qZWN0YWJsZS9wcm92aWRlcnNfZXZhbHVhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7OztJQVdIOzs7OztPQUtHO0lBQ0gsU0FBZ0Isd0JBQXdCLENBQ3BDLDJCQUFzRixFQUN0RixJQUE4QixFQUFFLE9BQXVCO1FBTXpEOzs7Ozs7OztXQVFHO1FBQ0gsTUFBTSxrQkFBbUIsU0FBUSwyQkFBMkIsQ0FBQyxpQkFBaUI7WUFBOUU7O2dCQUNVLHNCQUFpQixHQUFzQixFQUFFLENBQUM7WUE2QnBELENBQUM7WUEzQlUsNEJBQTRCLENBQUMsSUFBZ0MsRUFBRSxPQUFZO2dCQUNsRixNQUFNLGFBQWEsR0FDZixLQUFLLENBQUMsNEJBQTRCLENBQUMsSUFBSSxrQ0FBTSxPQUFPLEtBQUUsaUJBQWlCLEVBQUUsSUFBSSxJQUFFLENBQUM7Z0JBQ3BGLHFFQUFxRTtnQkFDckUsd0VBQXdFO2dCQUN4RSx1RUFBdUU7Z0JBQ3ZFLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUU7b0JBQzlCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsYUFBYSxFQUFDLENBQUMsQ0FBQztpQkFDcEQ7Z0JBQ0QsT0FBTyxhQUFhLENBQUM7WUFDdkIsQ0FBQztZQUVEOzs7ZUFHRztZQUNILFFBQVEsQ0FBQyxJQUFtQjtnQkFDMUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztnQkFDNUIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7b0JBQ3JDLGVBQWUsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFO29CQUNyQyxrQkFBa0IsRUFBRSxJQUFJO29CQUN4QixpQkFBaUIsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsUUFBUTtvQkFDaEQsS0FBSyxFQUFFLElBQUksR0FBRyxFQUFFO29CQUNoQix1QkFBdUIsRUFBRSwyQkFBMkIsQ0FBQyxrQkFBa0I7aUJBQ3hFLENBQUMsQ0FBQztnQkFDSCxPQUFPLEVBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUMsQ0FBQztZQUMzRCxDQUFDO1NBQ0Y7UUFFRCxPQUFPLElBQUksa0JBQWtCLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBbERELDREQWtEQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB0eXBlIHtSZXNvbHZlZFZhbHVlLCBUeXBlU2NyaXB0UmVmbGVjdGlvbkhvc3R9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9wcml2YXRlL21pZ3JhdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyTGl0ZXJhbCB7XG4gIG5vZGU6IHRzLk9iamVjdExpdGVyYWxFeHByZXNzaW9uO1xuICByZXNvbHZlZFZhbHVlOiBSZXNvbHZlZFZhbHVlO1xufVxuXG4vKipcbiAqIEEgZmFjdG9yeSBmdW5jdGlvbiB0byBjcmVhdGUgYW4gZXZhbHVhdG9yIGZvciBwcm92aWRlcnMuIFRoaXMgaXMgcmVxdWlyZWQgdG8gYmUgYVxuICogZmFjdG9yeSBmdW5jdGlvbiBiZWNhdXNlIHRoZSB1bmRlcmx5aW5nIGNsYXNzIGV4dGVuZHMgYSBjbGFzcyB0aGF0IGlzIG9ubHkgYXZhaWxhYmxlXG4gKiBmcm9tIHdpdGhpbiBhIGR5bmFtaWNhbGx5IGltcG9ydGVkIG1vZHVsZSAoYEBhbmd1bGFyL2NvbXBpbGVyLWNsaS9wcml2YXRlL21pZ3JhdGlvbnNgKVxuICogYW5kIGlzIHRoZXJlZm9yZSBub3QgYXZhaWxhYmxlIGF0IG1vZHVsZSBldmFsdWF0aW9uIHRpbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQcm92aWRlcnNFdmFsdWF0b3IoXG4gICAgY29tcGlsZXJDbGlNaWdyYXRpb25zTW9kdWxlOiB0eXBlb2YgaW1wb3J0KCdAYW5ndWxhci9jb21waWxlci1jbGkvcHJpdmF0ZS9taWdyYXRpb25zJyksXG4gICAgaG9zdDogVHlwZVNjcmlwdFJlZmxlY3Rpb25Ib3N0LCBjaGVja2VyOiB0cy5UeXBlQ2hlY2tlcik6IHtcbiAgZXZhbHVhdGU6XG4gICAgICAoZXhwcjogdHMuRXhwcmVzc2lvbikgPT4ge1xuICAgICAgICByZXNvbHZlZFZhbHVlOiBSZXNvbHZlZFZhbHVlLCBsaXRlcmFsczogUHJvdmlkZXJMaXRlcmFsW11cbiAgICAgIH1cbn0ge1xuICAvKipcbiAgICogUHJvdmlkZXJzIGV2YWx1YXRvciB0aGF0IGV4dGVuZHMgdGhlIG5ndHNjIHN0YXRpYyBpbnRlcnByZXRlci4gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZVxuICAgKiB0aGUgc3RhdGljIGludGVycHJldGVyIGJ5IGRlZmF1bHQgb25seSBleHBvc2VzIHRoZSByZXNvbHZlZCB2YWx1ZSwgYnV0IHdlIGFyZSBhbHNvIGludGVyZXN0ZWRcbiAgICogaW4gdGhlIFR5cGVTY3JpcHQgbm9kZXMgdGhhdCBkZWNsYXJlIHByb3ZpZGVycy4gSXQgd291bGQgYmUgcG9zc2libGUgdG8gbWFudWFsbHkgdHJhdmVyc2UgdGhlXG4gICAqIEFTVCB0byBjb2xsZWN0IHRoZXNlIG5vZGVzLCBidXQgdGhhdCB3b3VsZCBtZWFuIHRoYXQgd2UgbmVlZCB0byByZS1pbXBsZW1lbnQgdGhlIHN0YXRpY1xuICAgKiBpbnRlcnByZXRlciBpbiBvcmRlciB0byBoYW5kbGUgYWxsIHBvc3NpYmxlIHNjZW5hcmlvcy4gKGUuZy4gc3ByZWFkIG9wZXJhdG9yLCBmdW5jdGlvbiBjYWxscyxcbiAgICogY2FsbGVlIHNjb3BlKS4gVGhpcyBjYW4gYmUgYXZvaWRlZCBieSBzaW1wbHkgZXh0ZW5kaW5nIHRoZSBzdGF0aWMgaW50ZXJwcmV0ZXIgYW5kIGludGVyY2VwdGluZ1xuICAgKiB0aGUgXCJ2aXNpdE9iamVjdExpdGVyYWxFeHByZXNzaW9uXCIgbWV0aG9kLlxuICAgKi9cbiAgY2xhc3MgUHJvdmlkZXJzRXZhbHVhdG9yIGV4dGVuZHMgY29tcGlsZXJDbGlNaWdyYXRpb25zTW9kdWxlLlN0YXRpY0ludGVycHJldGVyIHtcbiAgICBwcml2YXRlIF9wcm92aWRlckxpdGVyYWxzOiBQcm92aWRlckxpdGVyYWxbXSA9IFtdO1xuXG4gICAgb3ZlcnJpZGUgdmlzaXRPYmplY3RMaXRlcmFsRXhwcmVzc2lvbihub2RlOiB0cy5PYmplY3RMaXRlcmFsRXhwcmVzc2lvbiwgY29udGV4dDogYW55KSB7XG4gICAgICBjb25zdCByZXNvbHZlZFZhbHVlID1cbiAgICAgICAgICBzdXBlci52aXNpdE9iamVjdExpdGVyYWxFeHByZXNzaW9uKG5vZGUsIHsuLi5jb250ZXh0LCBpbnNpZGVQcm92aWRlckRlZjogdHJ1ZX0pO1xuICAgICAgLy8gZG8gbm90IGNvbGxlY3QgbmVzdGVkIG9iamVjdCBsaXRlcmFscy4gZS5nLiBhIHByb3ZpZGVyIGNvdWxkIHVzZSBhXG4gICAgICAvLyBzcHJlYWQgYXNzaWdubWVudCAod2hpY2ggcmVzb2x2ZXMgdG8gYW5vdGhlciBvYmplY3QgbGl0ZXJhbCkuIEluIHRoYXRcbiAgICAgIC8vIGNhc2UgdGhlIHJlZmVyZW5jZWQgb2JqZWN0IGxpdGVyYWwgaXMgbm90IGEgcHJvdmlkZXIgb2JqZWN0IGxpdGVyYWwuXG4gICAgICBpZiAoIWNvbnRleHQuaW5zaWRlUHJvdmlkZXJEZWYpIHtcbiAgICAgICAgdGhpcy5fcHJvdmlkZXJMaXRlcmFscy5wdXNoKHtub2RlLCByZXNvbHZlZFZhbHVlfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZWRWYWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFdmFsdWF0ZXMgdGhlIGdpdmVuIGV4cHJlc3Npb24gYW5kIHJldHVybnMgaXRzIHN0YXRpY2FsbHkgcmVzb2x2ZWQgdmFsdWVcbiAgICAgKiBhbmQgYSBsaXN0IG9mIG9iamVjdCBsaXRlcmFscyB3aGljaCBkZWZpbmUgQW5ndWxhciBwcm92aWRlcnMuXG4gICAgICovXG4gICAgZXZhbHVhdGUoZXhwcjogdHMuRXhwcmVzc2lvbikge1xuICAgICAgdGhpcy5fcHJvdmlkZXJMaXRlcmFscyA9IFtdO1xuICAgICAgY29uc3QgcmVzb2x2ZWRWYWx1ZSA9IHRoaXMudmlzaXQoZXhwciwge1xuICAgICAgICBvcmlnaW5hdGluZ0ZpbGU6IGV4cHIuZ2V0U291cmNlRmlsZSgpLFxuICAgICAgICBhYnNvbHV0ZU1vZHVsZU5hbWU6IG51bGwsXG4gICAgICAgIHJlc29sdXRpb25Db250ZXh0OiBleHByLmdldFNvdXJjZUZpbGUoKS5maWxlTmFtZSxcbiAgICAgICAgc2NvcGU6IG5ldyBNYXAoKSxcbiAgICAgICAgZm9yZWlnbkZ1bmN0aW9uUmVzb2x2ZXI6IGNvbXBpbGVyQ2xpTWlncmF0aW9uc01vZHVsZS5mb3J3YXJkUmVmUmVzb2x2ZXJcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHtyZXNvbHZlZFZhbHVlLCBsaXRlcmFsczogdGhpcy5fcHJvdmlkZXJMaXRlcmFsc307XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBQcm92aWRlcnNFdmFsdWF0b3IoaG9zdCwgY2hlY2tlciwgLyogZGVwZW5kZW5jeVRyYWNrZXIgKi8gbnVsbCk7XG59XG4iXX0=
@@ -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
- /// <amd-module name="@angular/core/schematics/migrations/missing-injectable/transform" />
9
- import ts from 'typescript';
10
- import { ResolvedDirective, ResolvedNgModule } from './definition_collector';
11
- import { UpdateRecorder } from './update_recorder';
12
- export interface AnalysisFailure {
13
- node: ts.Node;
14
- message: string;
15
- }
16
- export declare class MissingInjectableTransform {
17
- private typeChecker;
18
- private getUpdateRecorder;
19
- private compilerCliMigrationsModule;
20
- private printer;
21
- private importManager;
22
- private providersEvaluator;
23
- /** Set of provider class declarations which were already checked or migrated. */
24
- private visitedProviderClasses;
25
- /** Set of provider object literals which were already checked or migrated. */
26
- private visitedProviderLiterals;
27
- constructor(typeChecker: ts.TypeChecker, getUpdateRecorder: (sf: ts.SourceFile) => UpdateRecorder, compilerCliMigrationsModule: typeof import('@angular/compiler-cli/private/migrations'));
28
- recordChanges(): void;
29
- /**
30
- * Migrates all specified NgModule's by walking through referenced providers
31
- * and decorating them with "@Injectable" if needed.
32
- */
33
- migrateModules(modules: ResolvedNgModule[]): AnalysisFailure[];
34
- /**
35
- * Migrates all specified directives by walking through referenced providers
36
- * and decorating them with "@Injectable" if needed.
37
- */
38
- migrateDirectives(directives: ResolvedDirective[]): AnalysisFailure[];
39
- /** Migrates a given NgModule by walking through the referenced providers. */
40
- migrateModule(module: ResolvedNgModule): AnalysisFailure[];
41
- /**
42
- * Migrates a given directive by walking through defined providers. This method
43
- * also handles components with "viewProviders" defined.
44
- */
45
- migrateDirective(directive: ResolvedDirective): AnalysisFailure[];
46
- /**
47
- * Migrates a given provider class if it is not decorated with
48
- * any Angular decorator.
49
- */
50
- migrateProviderClass(node: ts.ClassDeclaration, context: ResolvedNgModule | ResolvedDirective): void;
51
- /**
52
- * Migrates object literal providers which do not use "useValue", "useClass",
53
- * "useExisting" or "useFactory". These providers behave differently in Ivy. e.g.
54
- *
55
- * ```ts
56
- * {provide: X} -> {provide: X, useValue: undefined} // this is how it behaves in VE
57
- * {provide: X} -> {provide: X, useClass: X} // this is how it behaves in Ivy
58
- * ```
59
- *
60
- * To ensure forward compatibility, we migrate these empty object literal providers
61
- * to explicitly use `useValue: undefined`.
62
- */
63
- private _migrateLiteralProviders;
64
- /**
65
- * Visits the given resolved value of a provider. Providers can be nested in
66
- * arrays and we need to recursively walk through the providers to be able to
67
- * migrate all referenced provider classes. e.g. "providers: [[A, [B]]]".
68
- */
69
- private _visitProviderResolvedValue;
70
- }
@@ -1,203 +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/missing-injectable/transform", ["require", "exports", "typescript", "@angular/core/schematics/utils/import_manager", "@angular/core/schematics/utils/ng_decorators", "@angular/core/schematics/migrations/missing-injectable/providers_evaluator"], factory);
18
- }
19
- })(function (require, exports) {
20
- "use strict";
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.MissingInjectableTransform = void 0;
23
- const typescript_1 = __importDefault(require("typescript"));
24
- const import_manager_1 = require("@angular/core/schematics/utils/import_manager");
25
- const ng_decorators_1 = require("@angular/core/schematics/utils/ng_decorators");
26
- const providers_evaluator_1 = require("@angular/core/schematics/migrations/missing-injectable/providers_evaluator");
27
- /**
28
- * Name of decorators which imply that a given class does not need to be migrated.
29
- * - `@Injectable`, `@Directive`, `@Component` and `@Pipe` instruct the compiler
30
- * to generate a factory definition.
31
- * - `@NgModule` instructs the compiler to generate a provider definition that holds
32
- * the factory function.
33
- */
34
- const NO_MIGRATE_DECORATORS = ['Injectable', 'Directive', 'Component', 'Pipe', 'NgModule'];
35
- class MissingInjectableTransform {
36
- constructor(typeChecker, getUpdateRecorder, compilerCliMigrationsModule) {
37
- this.typeChecker = typeChecker;
38
- this.getUpdateRecorder = getUpdateRecorder;
39
- this.compilerCliMigrationsModule = compilerCliMigrationsModule;
40
- this.printer = typescript_1.default.createPrinter();
41
- this.importManager = new import_manager_1.ImportManager(this.getUpdateRecorder, this.printer);
42
- /** Set of provider class declarations which were already checked or migrated. */
43
- this.visitedProviderClasses = new Set();
44
- /** Set of provider object literals which were already checked or migrated. */
45
- this.visitedProviderLiterals = new Set();
46
- this.providersEvaluator = (0, providers_evaluator_1.createProvidersEvaluator)(compilerCliMigrationsModule, new compilerCliMigrationsModule.TypeScriptReflectionHost(typeChecker), typeChecker);
47
- }
48
- recordChanges() {
49
- this.importManager.recordChanges();
50
- }
51
- /**
52
- * Migrates all specified NgModule's by walking through referenced providers
53
- * and decorating them with "@Injectable" if needed.
54
- */
55
- migrateModules(modules) {
56
- return modules.reduce((failures, node) => failures.concat(this.migrateModule(node)), []);
57
- }
58
- /**
59
- * Migrates all specified directives by walking through referenced providers
60
- * and decorating them with "@Injectable" if needed.
61
- */
62
- migrateDirectives(directives) {
63
- return directives.reduce((failures, node) => failures.concat(this.migrateDirective(node)), []);
64
- }
65
- /** Migrates a given NgModule by walking through the referenced providers. */
66
- migrateModule(module) {
67
- if (module.providersExpr === null) {
68
- return [];
69
- }
70
- const { resolvedValue, literals } = this.providersEvaluator.evaluate(module.providersExpr);
71
- this._migrateLiteralProviders(literals);
72
- if (!Array.isArray(resolvedValue)) {
73
- return [
74
- { node: module.providersExpr, message: 'Providers of module are not statically analyzable.' }
75
- ];
76
- }
77
- return this._visitProviderResolvedValue(resolvedValue, module);
78
- }
79
- /**
80
- * Migrates a given directive by walking through defined providers. This method
81
- * also handles components with "viewProviders" defined.
82
- */
83
- migrateDirective(directive) {
84
- const failures = [];
85
- // Migrate "providers" on directives and components if defined.
86
- if (directive.providersExpr) {
87
- const { resolvedValue, literals } = this.providersEvaluator.evaluate(directive.providersExpr);
88
- this._migrateLiteralProviders(literals);
89
- if (!Array.isArray(resolvedValue)) {
90
- return [
91
- { node: directive.providersExpr, message: `Providers are not statically analyzable.` }
92
- ];
93
- }
94
- failures.push(...this._visitProviderResolvedValue(resolvedValue, directive));
95
- }
96
- // Migrate "viewProviders" on components if defined.
97
- if (directive.viewProvidersExpr) {
98
- const { resolvedValue, literals } = this.providersEvaluator.evaluate(directive.viewProvidersExpr);
99
- this._migrateLiteralProviders(literals);
100
- if (!Array.isArray(resolvedValue)) {
101
- return [
102
- { node: directive.viewProvidersExpr, message: `Providers are not statically analyzable.` }
103
- ];
104
- }
105
- failures.push(...this._visitProviderResolvedValue(resolvedValue, directive));
106
- }
107
- return failures;
108
- }
109
- /**
110
- * Migrates a given provider class if it is not decorated with
111
- * any Angular decorator.
112
- */
113
- migrateProviderClass(node, context) {
114
- if (this.visitedProviderClasses.has(node)) {
115
- return;
116
- }
117
- this.visitedProviderClasses.add(node);
118
- const sourceFile = node.getSourceFile();
119
- // We cannot migrate provider classes outside of source files. This is because the
120
- // migration for third-party library files should happen in "ngcc", and in general
121
- // would also involve metadata parsing.
122
- if (sourceFile.isDeclarationFile) {
123
- return;
124
- }
125
- const ngDecorators = node.decorators ? (0, ng_decorators_1.getAngularDecorators)(this.typeChecker, node.decorators) : null;
126
- if (ngDecorators !== null &&
127
- ngDecorators.some(d => NO_MIGRATE_DECORATORS.indexOf(d.name) !== -1)) {
128
- return;
129
- }
130
- const updateRecorder = this.getUpdateRecorder(sourceFile);
131
- const importExpr = this.importManager.addImportToSourceFile(sourceFile, 'Injectable', '@angular/core');
132
- const newDecoratorExpr = typescript_1.default.createDecorator(typescript_1.default.createCall(importExpr, undefined, undefined));
133
- const newDecoratorText = this.printer.printNode(typescript_1.default.EmitHint.Unspecified, newDecoratorExpr, sourceFile);
134
- // In case the class is already decorated with "@Inject(..)", we replace the "@Inject"
135
- // decorator with "@Injectable()" since using "@Inject(..)" on a class is a noop and
136
- // most likely was meant to be "@Injectable()".
137
- const existingInjectDecorator = ngDecorators !== null ? ngDecorators.find(d => d.name === 'Inject') : null;
138
- if (existingInjectDecorator) {
139
- updateRecorder.replaceDecorator(existingInjectDecorator.node, newDecoratorText, context.name);
140
- }
141
- else {
142
- updateRecorder.addClassDecorator(node, newDecoratorText, context.name);
143
- }
144
- }
145
- /**
146
- * Migrates object literal providers which do not use "useValue", "useClass",
147
- * "useExisting" or "useFactory". These providers behave differently in Ivy. e.g.
148
- *
149
- * ```ts
150
- * {provide: X} -> {provide: X, useValue: undefined} // this is how it behaves in VE
151
- * {provide: X} -> {provide: X, useClass: X} // this is how it behaves in Ivy
152
- * ```
153
- *
154
- * To ensure forward compatibility, we migrate these empty object literal providers
155
- * to explicitly use `useValue: undefined`.
156
- */
157
- _migrateLiteralProviders(literals) {
158
- for (let { node, resolvedValue } of literals) {
159
- if (this.visitedProviderLiterals.has(node)) {
160
- continue;
161
- }
162
- this.visitedProviderLiterals.add(node);
163
- if (!resolvedValue || !(resolvedValue instanceof Map) || !resolvedValue.has('provide') ||
164
- resolvedValue.has('useClass') || resolvedValue.has('useValue') ||
165
- resolvedValue.has('useExisting') || resolvedValue.has('useFactory')) {
166
- continue;
167
- }
168
- const sourceFile = node.getSourceFile();
169
- const newObjectLiteral = typescript_1.default.updateObjectLiteral(node, node.properties.concat(typescript_1.default.createPropertyAssignment('useValue', typescript_1.default.createIdentifier('undefined'))));
170
- this.getUpdateRecorder(sourceFile)
171
- .updateObjectLiteral(node, this.printer.printNode(typescript_1.default.EmitHint.Unspecified, newObjectLiteral, sourceFile));
172
- }
173
- }
174
- /**
175
- * Visits the given resolved value of a provider. Providers can be nested in
176
- * arrays and we need to recursively walk through the providers to be able to
177
- * migrate all referenced provider classes. e.g. "providers: [[A, [B]]]".
178
- */
179
- _visitProviderResolvedValue(value, module) {
180
- if (value instanceof this.compilerCliMigrationsModule.Reference &&
181
- typescript_1.default.isClassDeclaration(value.node)) {
182
- this.migrateProviderClass(value.node, module);
183
- }
184
- else if (value instanceof Map) {
185
- // If a "ClassProvider" has the "deps" property set, then we do not need to
186
- // decorate the class. This is because the class is instantiated through the
187
- // specified "deps" and the class does not need a factory definition.
188
- if (value.has('provide') && value.has('useClass') && value.get('deps') == null) {
189
- return this._visitProviderResolvedValue(value.get('useClass'), module);
190
- }
191
- }
192
- else if (Array.isArray(value)) {
193
- return value.reduce((res, v) => res.concat(this._visitProviderResolvedValue(v, module)), []);
194
- }
195
- else if (value instanceof this.compilerCliMigrationsModule.DynamicValue) {
196
- return [{ node: value.node, message: `Provider is not statically analyzable.` }];
197
- }
198
- return [];
199
- }
200
- }
201
- exports.MissingInjectableTransform = MissingInjectableTransform;
202
- });
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zY2hlbWF0aWNzL21pZ3JhdGlvbnMvbWlzc2luZy1pbmplY3RhYmxlL3RyYW5zZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7Ozs7SUFHSCw0REFBNEI7SUFFNUIsa0ZBQXlEO0lBQ3pELGdGQUErRDtJQUcvRCxvSEFBZ0Y7SUFHaEY7Ozs7OztPQU1HO0lBQ0gsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztJQU8zRixNQUFhLDBCQUEwQjtRQVdyQyxZQUNZLFdBQTJCLEVBQzNCLGlCQUF3RCxFQUN4RCwyQkFDcUQ7WUFIckQsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1lBQzNCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBdUM7WUFDeEQsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUMwQjtZQWR6RCxZQUFPLEdBQUcsb0JBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM3QixrQkFBYSxHQUFHLElBQUksOEJBQWEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBR2hGLGlGQUFpRjtZQUN6RSwyQkFBc0IsR0FBRyxJQUFJLEdBQUcsRUFBdUIsQ0FBQztZQUVoRSw4RUFBOEU7WUFDdEUsNEJBQXVCLEdBQUcsSUFBSSxHQUFHLEVBQThCLENBQUM7WUFPdEUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUEsOENBQXdCLEVBQzlDLDJCQUEyQixFQUMzQixJQUFJLDJCQUEyQixDQUFDLHdCQUF3QixDQUFDLFdBQVcsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzFGLENBQUM7UUFFRCxhQUFhO1lBQ1gsSUFBSSxDQUFDLGFBQWEsQ0FB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MkJBQTJCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztpQkFDekU7YUFDRjtpQkFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQy9CLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FDZixDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUNuRSxFQUF1QixDQUFDLENBQUM7YUFDOUI7aUJBQU0sSUFBSSxLQUFLLFlBQVksSUFBSSxDQUFDLDJCQUEyQixDQUFDLFlBQVksRUFBRTtnQkFDekUsT0FBTyxDQUFDLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLHdDQUF3QyxFQUFDLENBQUMsQ0FBQzthQUNoRjtZQUNELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztLQUNGO0lBOU1ELGdFQThNQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgdHlwZSB7UmVzb2x2ZWRWYWx1ZX0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXItY2xpL3ByaXZhdGUvbWlncmF0aW9ucyc7XG5pbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7SW1wb3J0TWFuYWdlcn0gZnJvbSAnLi4vLi4vdXRpbHMvaW1wb3J0X21hbmFnZXInO1xuaW1wb3J0IHtnZXRBbmd1bGFyRGVjb3JhdG9yc30gZnJvbSAnLi4vLi4vdXRpbHMvbmdfZGVjb3JhdG9ycyc7XG5cbmltcG9ydCB7UmVzb2x2ZWREaXJlY3RpdmUsIFJlc29sdmVkTmdNb2R1bGV9IGZyb20gJy4vZGVmaW5pdGlvbl9jb2xsZWN0b3InO1xuaW1wb3J0IHtjcmVhdGVQcm92aWRlcnNFdmFsdWF0b3IsIFByb3ZpZGVyTGl0ZXJhbH0gZnJvbSAnLi9wcm92aWRlcnNfZXZhbHVhdG9yJztcbmltcG9ydCB7VXBkYXRlUmVjb3JkZXJ9IGZyb20gJy4vdXBkYXRlX3JlY29yZGVyJztcblxuLyoqXG4gKiBOYW1lIG9mIGRlY29yYXRvcnMgd2hpY2ggaW1wbHkgdGhhdCBhIGdpdmVuIGNsYXNzIGRvZXMgbm90IG5lZWQgdG8gYmUgbWlncmF0ZWQuXG4gKiAgICAtIGBASW5qZWN0YWJsZWAsIGBARGlyZWN0aXZlYCwgYEBDb21wb25lbnRgIGFuZCBgQFBpcGVgIGluc3RydWN0IHRoZSBjb21waWxlclxuICogICAgICAgdG8gZ2VuZXJhdGUgYSBmYWN0b3J5IGRlZmluaXRpb24uXG4gKiAgICAtIGBATmdNb2R1bGVgIGluc3RydWN0cyB0aGUgY29tcGlsZXIgdG8gZ2VuZXJhdGUgYSBwcm92aWRlciBkZWZpbml0aW9uIHRoYXQgaG9sZHNcbiAqICAgICAgIHRoZSBmYWN0b3J5IGZ1bmN0aW9uLlxuICovXG5jb25zdCBOT19NSUdSQVRFX0RFQ09SQVRPUlMgPSBbJ0luamVjdGFibGUnLCAnRGlyZWN0aXZlJywgJ0NvbXBvbmVudCcsICdQaXBlJywgJ05nTW9kdWxlJ107XG5cbmV4cG9ydCBpbnRlcmZhY2UgQW5hbHlzaXNGYWlsdXJlIHtcbiAgbm9kZTogdHMuTm9kZTtcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTWlzc2luZ0luamVjdGFibGVUcmFuc2Zvcm0ge1xuICBwcml2YXRlIHByaW50ZXIgPSB0cy5jcmVhdGVQcmludGVyKCk7XG4gIHByaXZhdGUgaW1wb3J0TWFuYWdlciA9IG5ldyBJbXBvcnRNYW5hZ2VyKHRoaXMuZ2V0VXBkYXRlUmVjb3JkZXIsIHRoaXMucHJpbnRlcik7XG4gIHByaXZhdGUgcHJvdmlkZXJzRXZhbHVhdG9yO1xuXG4gIC8qKiBTZXQgb2YgcHJvdmlkZXIgY2xhc3MgZGVjbGFyYXRpb25zIHdoaWNoIHdlcmUgYWxyZWFkeSBjaGVja2VkIG9yIG1pZ3JhdGVkLiAqL1xuICBwcml2YXRlIHZpc2l0ZWRQcm92aWRlckNsYXNzZXMgPSBuZXcgU2V0PHRzLkNsYXNzRGVjbGFyYXRpb24+KCk7XG5cbiAgLyoqIFNldCBvZiBwcm92aWRlciBvYmplY3QgbGl0ZXJhbHMgd2hpY2ggd2VyZSBhbHJlYWR5IGNoZWNrZWQgb3IgbWlncmF0ZWQuICovXG4gIHByaXZhdGUgdmlzaXRlZFByb3ZpZGVyTGl0ZXJhbHMgPSBuZXcgU2V0PHRzLk9iamVjdExpdGVyYWxFeHByZXNzaW9uPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSB0eXBlQ2hlY2tlcjogdHMuVHlwZUNoZWNrZXIsXG4gICAgICBwcml2YXRlIGdldFVwZGF0ZVJlY29yZGVyOiAoc2Y6IHRzLlNvdXJjZUZpbGUpID0+IFVwZGF0ZVJlY29yZGVyLFxuICAgICAgcHJpdmF0ZSBjb21waWxlckNsaU1pZ3JhdGlvbnNNb2R1bGU6XG4gICAgICAgICAgdHlwZW9mIGltcG9ydCgnQGFuZ3VsYXIvY29tcGlsZXItY2xpL3ByaXZhdGUvbWlncmF0aW9ucycpKSB7XG4gICAgdGhpcy5wcm92aWRlcnNFdmFsdWF0b3IgPSBjcmVhdGVQcm92aWRlcnNFdmFsdWF0b3IoXG4gICAgICAgIGNvbXBpbGVyQ2xpTWlncmF0aW9uc01vZHVsZSxcbiAgICAgICAgbmV3IGNvbXBpbGVyQ2xpTWlncmF0aW9uc01vZHVsZS5UeXBlU2NyaXB0UmVmbGVjdGlvbkhvc3QodHlwZUNoZWNrZXIpLCB0eXBlQ2hlY2tlcik7XG4gIH1cblxuICByZWNvcmRDaGFuZ2VzKCkge1xuICAgIHRoaXMuaW1wb3J0TWFuYWdlci5yZWNvcmRDaGFuZ2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogTWlncmF0ZXMgYWxsIHNwZWNpZmllZCBOZ01vZHVsZSdzIGJ5IHdhbGtpbmcgdGhyb3VnaCByZWZlcmVuY2VkIHByb3ZpZGVyc1xuICAgKiBhbmQgZGVjb3JhdGluZyB0aGVtIHdpdGggXCJASW5qZWN0YWJsZVwiIGlmIG5lZWRlZC5cbiAgICovXG4gIG1pZ3JhdGVNb2R1bGVzKG1vZHVsZXM6IFJlc29sdmVkTmdNb2R1bGVbXSk6IEFuYWx5c2lzRmFpbHVyZVtdIHtcbiAgICByZXR1cm4gbW9kdWxlcy5yZWR1Y2UoXG4gICAgICAgIChmYWlsdXJlcywgbm9kZSkgPT4gZmFpbHVyZXMuY29uY2F0KHRoaXMubWlncmF0ZU1vZHVsZShub2RlKSksIFtdIGFzIEFuYWx5c2lzRmFpbHVyZVtdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNaWdyYXRlcyBhbGwgc3BlY2lmaWVkIGRpcmVjdGl2ZXMgYnkgd2Fsa2luZyB0aHJvdWdoIHJlZmVyZW5jZWQgcHJvdmlkZXJzXG4gICAqIGFuZCBkZWNvcmF0aW5nIHRoZW0gd2l0aCBcIkBJbmplY3RhYmxlXCIgaWYgbmVlZGVkLlxuICAgKi9cbiAgbWlncmF0ZURpcmVjdGl2ZXMoZGlyZWN0aXZlczogUmVzb2x2ZWREaXJlY3RpdmVbXSk6IEFuYWx5c2lzRmFpbHVyZVtdIHtcbiAgICByZXR1cm4gZGlyZWN0aXZlcy5yZWR1Y2UoXG4gICAgICAgIChmYWlsdXJlcywgbm9kZSkgPT4gZmFpbHVyZXMuY29uY2F0KHRoaXMubWlncmF0ZURpcmVjdGl2ZShub2RlKSksIFtdIGFzIEFuYWx5c2lzRmFpbHVyZVtdKTtcbiAgfVxuXG4gIC8qKiBNaWdyYXRlcyBhIGdpdmVuIE5nTW9kdWxlIGJ5IHdhbGtpbmcgdGhyb3VnaCB0aGUgcmVmZXJlbmNlZCBwcm92aWRlcnMuICovXG4gIG1pZ3JhdGVNb2R1bGUobW9kdWxlOiBSZXNvbHZlZE5nTW9kdWxlKTogQW5hbHlzaXNGYWlsdXJlW10ge1xuICAgIGlmIChtb2R1bGUucHJvdmlkZXJzRXhwciA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHtyZXNvbHZlZFZhbHVlLCBsaXRlcmFsc30gPSB0aGlzLnByb3ZpZGVyc0V2YWx1YXRvci5ldmFsdWF0ZShtb2R1bGUucHJvdmlkZXJzRXhwcik7XG4gICAgdGhpcy5fbWlncmF0ZUxpdGVyYWxQcm92aWRlcnMobGl0ZXJhbHMpO1xuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHJlc29sdmVkVmFsdWUpKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICB7bm9kZTogbW9kdWxlLnByb3ZpZGVyc0V4cHIsIG1lc3NhZ2U6ICdQcm92aWRlcnMgb2YgbW9kdWxlIGFyZSBub3Qgc3RhdGljYWxseSBhbmFseXphYmxlLid9XG4gICAgICBdO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl92aXNpdFByb3ZpZGVyUmVzb2x2ZWRWYWx1ZShyZXNvbHZlZFZhbHVlLCBtb2R1bGUpO1xuICB9XG5cblxuICAvKipcbiAgICogTWlncmF0ZXMgYSBnaXZlbiBkaXJlY3RpdmUgYnkgd2Fsa2luZyB0aHJvdWdoIGRlZmluZWQgcHJvdmlkZXJzLiBUaGlzIG1ldGhvZFxuICAgKiBhbHNvIGhhbmRsZXMgY29tcG9uZW50cyB3aXRoIFwidmlld1Byb3ZpZGVyc1wiIGRlZmluZWQuXG4gICAqL1xuICBtaWdyYXRlRGlyZWN0aXZlKGRpcmVjdGl2ZTogUmVzb2x2ZWREaXJlY3RpdmUpOiBBbmFseXNpc0ZhaWx1cmVbXSB7XG4gICAgY29uc3QgZmFpbHVyZXM6IEFuYWx5c2lzRmFpbHVyZVtdID0gW107XG5cbiAgICAvLyBNaWdyYXRlIFwicHJvdmlkZXJzXCIgb24gZGlyZWN0aXZlcyBhbmQgY29tcG9uZW50cyBpZiBkZWZpbmVkLlxuICAgIGlmIChkaXJlY3RpdmUucHJvdmlkZXJzRXhwcikge1xuICAgICAgY29uc3Qge3Jlc29sdmVkVmFsdWUsIGxpdGVyYWxzfSA9IHRoaXMucHJvdmlkZXJzRXZhbHVhdG9yLmV2YWx1YXRlKGRpcmVjdGl2ZS5wcm92aWRlcnNFeHByKTtcbiAgICAgIHRoaXMuX21pZ3JhdGVMaXRlcmFsUHJvdmlkZXJzKGxpdGVyYWxzKTtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShyZXNvbHZlZFZhbHVlKSkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHtub2RlOiBkaXJlY3RpdmUucHJvdmlkZXJzRXhwciwgbWVzc2FnZTogYFByb3ZpZGVycyBhcmUgbm90IHN0YXRpY2FsbHkgYW5hbHl6YWJsZS5gfVxuICAgICAgICBdO1xuICAgICAgfVxuICAgICAgZmFpbHVyZXMucHVzaCguLi50aGlzLl92aXNpdFByb3ZpZGVyUmVzb2x2ZWRWYWx1ZShyZXNvbHZlZFZhbHVlLCBkaXJlY3RpdmUpKTtcbiAgICB9XG5cbiAgICAvLyBNaWdyYXRlIFwidmlld1Byb3ZpZGVyc1wiIG9uIGNvbXBvbmVudHMgaWYgZGVmaW5lZC5cbiAgICBpZiAoZGlyZWN0aXZlLnZpZXdQcm92aWRlcnNFeHByKSB7XG4gICAgICBjb25zdCB7cmVzb2x2ZWRWYWx1ZSwgbGl0ZXJhbHN9ID1cbiAgICAgICAgICB0aGlzLnByb3ZpZGVyc0V2YWx1YXRvci5ldmFsdWF0ZShkaXJlY3RpdmUudmlld1Byb3ZpZGVyc0V4cHIpO1xuICAgICAgdGhpcy5fbWlncmF0ZUxpdGVyYWxQcm92aWRlcnMobGl0ZXJhbHMpO1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHJlc29sdmVkVmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAge25vZGU6IGRpcmVjdGl2ZS52aWV3UHJvdmlkZXJzRXhwciwgbWVzc2FnZTogYFByb3ZpZGVycyBhcmUgbm90IHN0YXRpY2FsbHkgYW5hbHl6YWJsZS5gfVxuICAgICAgICBdO1xuICAgICAgfVxuICAgICAgZmFpbHVyZXMucHVzaCguLi50aGlzLl92aXNpdFByb3ZpZGVyUmVzb2x2ZWRWYWx1ZShyZXNvbHZlZFZhbHVlLCBkaXJlY3RpdmUpKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhaWx1cmVzO1xuICB9XG5cbiAgLyoqXG4gICAqIE1pZ3JhdGVzIGEgZ2l2ZW4gcHJvdmlkZXIgY2xhc3MgaWYgaXQgaXMgbm90IGRlY29yYXRlZCB3aXRoXG4gICAqIGFueSBBbmd1bGFyIGRlY29yYXRvci5cbiAgICovXG4gIG1pZ3JhdGVQcm92aWRlckNsYXNzKG5vZGU6IHRzLkNsYXNzRGVjbGFyYXRpb24sIGNvbnRleHQ6IFJlc29sdmVkTmdNb2R1bGV8UmVzb2x2ZWREaXJlY3RpdmUpIHtcbiAgICBpZiAodGhpcy52aXNpdGVkUHJvdmlkZXJDbGFzc2VzLmhhcyhub2RlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnZpc2l0ZWRQcm92aWRlckNsYXNzZXMuYWRkKG5vZGUpO1xuXG4gICAgY29uc3Qgc291cmNlRmlsZSA9IG5vZGUuZ2V0U291cmNlRmlsZSgpO1xuXG4gICAgLy8gV2UgY2Fubm90IG1pZ3JhdGUgcHJvdmlkZXIgY2xhc3NlcyBvdXRzaWRlIG9mIHNvdXJjZSBmaWxlcy4gVGhpcyBpcyBiZWNhdXNlIHRoZVxuICAgIC8vIG1pZ3JhdGlvbiBmb3IgdGhpcmQtcGFydHkgbGlicmFyeSBmaWxlcyBzaG91bGQgaGFwcGVuIGluIFwibmdjY1wiLCBhbmQgaW4gZ2VuZXJhbFxuICAgIC8vIHdvdWxkIGFsc28gaW52b2x2ZSBtZXRhZGF0YSBwYXJzaW5nLlxuICAgIGlmIChzb3VyY2VGaWxlLmlzRGVjbGFyYXRpb25GaWxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmdEZWNvcmF0b3JzID1cbiAgICAgICAgbm9kZS5kZWNvcmF0b3JzID8gZ2V0QW5ndWxhckRlY29yYXRvcnModGhpcy50eXBlQ2hlY2tlciwgbm9kZS5kZWNvcmF0b3JzKSA6IG51bGw7XG5cbiAgICBpZiAobmdEZWNvcmF0b3JzICE9PSBudWxsICYmXG4gICAgICAgIG5nRGVjb3JhdG9ycy5zb21lKGQgPT4gTk9fTUlHUkFURV9ERUNPUkFUT1JTLmluZGV4T2YoZC5uYW1lKSAhPT0gLTEpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdXBkYXRlUmVjb3JkZXIgPSB0aGlzLmdldFVwZGF0ZVJlY29yZGVyKHNvdXJjZUZpbGUpO1xuICAgIGNvbnN0IGltcG9ydEV4cHIgPVxuICAgICAgICB0aGlzLmltcG9ydE1hbmFnZXIuYWRkSW1wb3J0VG9Tb3VyY2VGaWxlKHNvdXJjZUZpbGUsICdJbmplY3RhYmxlJywgJ0Bhbmd1bGFyL2NvcmUnKTtcbiAgICBjb25zdCBuZXdEZWNvcmF0b3JFeHByID0gdHMuY3JlYXRlRGVjb3JhdG9yKHRzLmNyZWF0ZUNhbGwoaW1wb3J0RXhwciwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTtcbiAgICBjb25zdCBuZXdEZWNvcmF0b3JUZXh0ID1cbiAgICAgICAgdGhpcy5wcmludGVyLnByaW50Tm9kZSh0cy5FbWl0SGludC5VbnNwZWNpZmllZCwgbmV3RGVjb3JhdG9yRXhwciwgc291cmNlRmlsZSk7XG5cblxuICAgIC8vIEluIGNhc2UgdGhlIGNsYXNzIGlzIGFscmVhZHkgZGVjb3JhdGVkIHdpdGggXCJASW5qZWN0KC4uKVwiLCB3ZSByZXBsYWNlIHRoZSBcIkBJbmplY3RcIlxuICAgIC8vIGRlY29yYXRvciB3aXRoIFwiQEluamVjdGFibGUoKVwiIHNpbmNlIHVzaW5nIFwiQEluamVjdCguLilcIiBvbiBhIGNsYXNzIGlzIGEgbm9vcCBhbmRcbiAgICAvLyBtb3N0IGxpa2VseSB3YXMgbWVhbnQgdG8gYmUgXCJASW5qZWN0YWJsZSgpXCIuXG4gICAgY29uc3QgZXhpc3RpbmdJbmplY3REZWNvcmF0b3IgPVxuICAgICAgICBuZ0RlY29yYXRvcnMgIT09IG51bGwgPyBuZ0RlY29yYXRvcnMuZmluZChkID0+IGQubmFtZSA9PT0gJ0luamVjdCcpIDogbnVsbDtcbiAgICBpZiAoZXhpc3RpbmdJbmplY3REZWNvcmF0b3IpIHtcbiAgICAgIHVwZGF0ZVJlY29yZGVyLnJlcGxhY2VEZWNvcmF0b3IoZXhpc3RpbmdJbmplY3REZWNvcmF0b3Iubm9kZSwgbmV3RGVjb3JhdG9yVGV4dCwgY29udGV4dC5uYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdXBkYXRlUmVjb3JkZXIuYWRkQ2xhc3NEZWNvcmF0b3Iobm9kZSwgbmV3RGVjb3JhdG9yVGV4dCwgY29udGV4dC5uYW1lKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWlncmF0ZXMgb2JqZWN0IGxpdGVyYWwgcHJvdmlkZXJzIHdoaWNoIGRvIG5vdCB1c2UgXCJ1c2VWYWx1ZVwiLCBcInVzZUNsYXNzXCIsXG4gICAqIFwidXNlRXhpc3RpbmdcIiBvciBcInVzZUZhY3RvcnlcIi4gVGhlc2UgcHJvdmlkZXJzIGJlaGF2ZSBkaWZmZXJlbnRseSBpbiBJdnkuIGUuZy5cbiAgICpcbiAgICogYGBgdHNcbiAgICogICB7cHJvdmlkZTogWH0gLT4ge3Byb3ZpZGU6IFgsIHVzZVZhbHVlOiB1bmRlZmluZWR9IC8vIHRoaXMgaXMgaG93IGl0IGJlaGF2ZXMgaW4gVkVcbiAgICogICB7cHJvdmlkZTogWH0gLT4ge3Byb3ZpZGU6IFgsIHVzZUNsYXNzOiBYfSAvLyB0aGlzIGlzIGhvdyBpdCBiZWhhdmVzIGluIEl2eVxuICAgKiBgYGBcbiAgICpcbiAgICogVG8gZW5zdXJlIGZvcndhcmQgY29tcGF0aWJpbGl0eSwgd2UgbWlncmF0ZSB0aGVzZSBlbXB0eSBvYmplY3QgbGl0ZXJhbCBwcm92aWRlcnNcbiAgICogdG8gZXhwbGljaXRseSB1c2UgYHVzZVZhbHVlOiB1bmRlZmluZWRgLlxuICAgKi9cbiAgcHJpdmF0ZSBfbWlncmF0ZUxpdGVyYWxQcm92aWRlcnMobGl0ZXJhbHM6IFByb3ZpZGVyTGl0ZXJhbFtdKSB7XG4gICAgZm9yIChsZXQge25vZGUsIHJlc29sdmVkVmFsdWV9IG9mIGxpdGVyYWxzKSB7XG4gICAgICBpZiAodGhpcy52aXNpdGVkUHJvdmlkZXJMaXRlcmFscy5oYXMobm9kZSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICB0aGlzLnZpc2l0ZWRQcm92aWRlckxpdGVyYWxzLmFkZChub2RlKTtcblxuICAgICAgaWYgKCFyZXNvbHZlZFZhbHVlIHx8ICEocmVzb2x2ZWRWYWx1ZSBpbnN0YW5jZW9mIE1hcCkgfHwgIXJlc29sdmVkVmFsdWUuaGFzKCdwcm92aWRlJykgfHxcbiAgICAgICAgICByZXNvbHZlZFZhbHVlLmhhcygndXNlQ2xhc3MnKSB8fCByZXNvbHZlZFZhbHVlLmhhcygndXNlVmFsdWUnKSB8fFxuICAgICAgICAgIHJlc29sdmVkVmFsdWUuaGFzKCd1c2VFeGlzdGluZycpIHx8IHJlc29sdmVkVmFsdWUuaGFzKCd1c2VGYWN0b3J5JykpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHNvdXJjZUZpbGUgPSBub2RlLmdldFNvdXJjZUZpbGUoKTtcbiAgICAgIGNvbnN0IG5ld09iamVjdExpdGVyYWwgPSB0cy51cGRhdGVPYmplY3RMaXRlcmFsKFxuICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgbm9kZS5wcm9wZXJ0aWVzLmNvbmNhdChcbiAgICAgICAgICAgICAgdHMuY3JlYXRlUHJvcGVydHlBc3NpZ25tZW50KCd1c2VWYWx1ZScsIHRzLmNyZWF0ZUlkZW50aWZpZXIoJ3VuZGVmaW5lZCcpKSkpO1xuXG4gICAgICB0aGlzLmdldFVwZGF0ZVJlY29yZGVyKHNvdXJjZUZpbGUpXG4gICAgICAgICAgLnVwZGF0ZU9iamVjdExpdGVyYWwoXG4gICAgICAgICAgICAgIG5vZGUsIHRoaXMucHJpbnRlci5wcmludE5vZGUodHMuRW1pdEhpbnQuVW5zcGVjaWZpZWQsIG5ld09iamVjdExpdGVyYWwsIHNvdXJjZUZpbGUpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmlzaXRzIHRoZSBnaXZlbiByZXNvbHZlZCB2YWx1ZSBvZiBhIHByb3ZpZGVyLiBQcm92aWRlcnMgY2FuIGJlIG5lc3RlZCBpblxuICAgKiBhcnJheXMgYW5kIHdlIG5lZWQgdG8gcmVjdXJzaXZlbHkgd2FsayB0aHJvdWdoIHRoZSBwcm92aWRlcnMgdG8gYmUgYWJsZSB0b1xuICAgKiBtaWdyYXRlIGFsbCByZWZlcmVuY2VkIHByb3ZpZGVyIGNsYXNzZXMuIGUuZy4gXCJwcm92aWRlcnM6IFtbQSwgW0JdXV1cIi5cbiAgICovXG4gIHByaXZhdGUgX3Zpc2l0UHJvdmlkZXJSZXNvbHZlZFZhbHVlKHZhbHVlOiBSZXNvbHZlZFZhbHVlLCBtb2R1bGU6IFJlc29sdmVkTmdNb2R1bGUpOlxuICAgICAgQW5hbHlzaXNGYWlsdXJlW10ge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIHRoaXMuY29tcGlsZXJDbGlNaWdyYXRpb25zTW9kdWxlLlJlZmVyZW5jZSAmJlxuICAgICAgICB0cy5pc0NsYXNzRGVjbGFyYXRpb24odmFsdWUubm9kZSkpIHtcbiAgICAgIHRoaXMubWlncmF0ZVByb3ZpZGVyQ2xhc3ModmFsdWUubm9kZSwgbW9kdWxlKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgTWFwKSB7XG4gICAgICAvLyBJZiBhIFwiQ2xhc3NQcm92aWRlclwiIGhhcyB0aGUgXCJkZXBzXCIgcHJvcGVydHkgc2V0LCB0aGVuIHdlIGRvIG5vdCBuZWVkIHRvXG4gICAgICAvLyBkZWNvcmF0ZSB0aGUgY2xhc3MuIFRoaXMgaXMgYmVjYXVzZSB0aGUgY2xhc3MgaXMgaW5zdGFudGlhdGVkIHRocm91Z2ggdGhlXG4gICAgICAvLyBzcGVjaWZpZWQgXCJkZXBzXCIgYW5kIHRoZSBjbGFzcyBkb2VzIG5vdCBuZWVkIGEgZmFjdG9yeSBkZWZpbml0aW9uLlxuICAgICAgaWYgKHZhbHVlLmhhcygncHJvdmlkZScpICYmIHZhbHVlLmhhcygndXNlQ2xhc3MnKSAmJiB2YWx1ZS5nZXQoJ2RlcHMnKSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpdFByb3ZpZGVyUmVzb2x2ZWRWYWx1ZSh2YWx1ZS5nZXQoJ3VzZUNsYXNzJykhLCBtb2R1bGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5yZWR1Y2UoXG4gICAgICAgICAgKHJlcywgdikgPT4gcmVzLmNvbmNhdCh0aGlzLl92aXNpdFByb3ZpZGVyUmVzb2x2ZWRWYWx1ZSh2LCBtb2R1bGUpKSxcbiAgICAgICAgICBbXSBhcyBBbmFseXNpc0ZhaWx1cmVbXSk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIHRoaXMuY29tcGlsZXJDbGlNaWdyYXRpb25zTW9kdWxlLkR5bmFtaWNWYWx1ZSkge1xuICAgICAgcmV0dXJuIFt7bm9kZTogdmFsdWUubm9kZSwgbWVzc2FnZTogYFByb3ZpZGVyIGlzIG5vdCBzdGF0aWNhbGx5IGFuYWx5emFibGUuYH1dO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cbn1cbiJdfQ==
@@ -1,21 +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/missing-injectable/update_recorder" />
9
- import ts from 'typescript';
10
- import { ImportManagerUpdateRecorder } from '../../utils/import_manager';
11
- /**
12
- * Update recorder interface that is used to transform source files in a non-colliding
13
- * way. Also this indirection makes it possible to re-use logic for both TSLint rules
14
- * and CLI devkit schematic updates.
15
- */
16
- export interface UpdateRecorder extends ImportManagerUpdateRecorder {
17
- addClassDecorator(node: ts.ClassDeclaration, text: string, className: string): void;
18
- replaceDecorator(node: ts.Decorator, newText: string, className: string): void;
19
- updateObjectLiteral(node: ts.ObjectLiteralExpression, newText: string): void;
20
- commitUpdate(): void;
21
- }
@@ -1,20 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- (function (factory) {
9
- if (typeof module === "object" && typeof module.exports === "object") {
10
- var v = factory(require, exports);
11
- if (v !== undefined) module.exports = v;
12
- }
13
- else if (typeof define === "function" && define.amd) {
14
- define("@angular/core/schematics/migrations/missing-injectable/update_recorder", ["require", "exports"], factory);
15
- }
16
- })(function (require, exports) {
17
- "use strict";
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlX3JlY29yZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zY2hlbWF0aWNzL21pZ3JhdGlvbnMvbWlzc2luZy1pbmplY3RhYmxlL3VwZGF0ZV9yZWNvcmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtJbXBvcnRNYW5hZ2VyVXBkYXRlUmVjb3JkZXJ9IGZyb20gJy4uLy4uL3V0aWxzL2ltcG9ydF9tYW5hZ2VyJztcblxuLyoqXG4gKiBVcGRhdGUgcmVjb3JkZXIgaW50ZXJmYWNlIHRoYXQgaXMgdXNlZCB0byB0cmFuc2Zvcm0gc291cmNlIGZpbGVzIGluIGEgbm9uLWNvbGxpZGluZ1xuICogd2F5LiBBbHNvIHRoaXMgaW5kaXJlY3Rpb24gbWFrZXMgaXQgcG9zc2libGUgdG8gcmUtdXNlIGxvZ2ljIGZvciBib3RoIFRTTGludCBydWxlc1xuICogYW5kIENMSSBkZXZraXQgc2NoZW1hdGljIHVwZGF0ZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlUmVjb3JkZXIgZXh0ZW5kcyBJbXBvcnRNYW5hZ2VyVXBkYXRlUmVjb3JkZXIge1xuICBhZGRDbGFzc0RlY29yYXRvcihub2RlOiB0cy5DbGFzc0RlY2xhcmF0aW9uLCB0ZXh0OiBzdHJpbmcsIGNsYXNzTmFtZTogc3RyaW5nKTogdm9pZDtcbiAgcmVwbGFjZURlY29yYXRvcihub2RlOiB0cy5EZWNvcmF0b3IsIG5ld1RleHQ6IHN0cmluZywgY2xhc3NOYW1lOiBzdHJpbmcpOiB2b2lkO1xuICB1cGRhdGVPYmplY3RMaXRlcmFsKG5vZGU6IHRzLk9iamVjdExpdGVyYWxFeHByZXNzaW9uLCBuZXdUZXh0OiBzdHJpbmcpOiB2b2lkO1xuICBjb21taXRVcGRhdGUoKTogdm9pZDtcbn1cbiJdfQ==
@@ -1,34 +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/module-with-providers/collector" />
9
- import ts from 'typescript';
10
- import { NgDecorator } from '../../utils/ng_decorators';
11
- export interface ResolvedNgModule {
12
- name: string;
13
- node: ts.ClassDeclaration;
14
- decorator: NgDecorator;
15
- /**
16
- * List of found static method declarations on the module which do not
17
- * declare an explicit return type.
18
- */
19
- staticMethodsWithoutType: ts.MethodDeclaration[];
20
- }
21
- /**
22
- * Visitor that walks through specified TypeScript nodes and collects all
23
- * found NgModule static methods without types and all ModuleWithProviders
24
- * usages without generic types attached.
25
- */
26
- export declare class Collector {
27
- typeChecker: ts.TypeChecker;
28
- resolvedModules: ResolvedNgModule[];
29
- resolvedNonGenerics: ts.TypeReferenceNode[];
30
- constructor(typeChecker: ts.TypeChecker);
31
- visitNode(node: ts.Node): void;
32
- private visitClassDeclaration;
33
- private _visitNgModuleClass;
34
- }
@@ -1,76 +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/module-with-providers/collector", ["require", "exports", "typescript", "@angular/core/schematics/utils/ng_decorators", "@angular/core/schematics/migrations/module-with-providers/util"], factory);
18
- }
19
- })(function (require, exports) {
20
- "use strict";
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.Collector = void 0;
23
- const typescript_1 = __importDefault(require("typescript"));
24
- const ng_decorators_1 = require("@angular/core/schematics/utils/ng_decorators");
25
- const util_1 = require("@angular/core/schematics/migrations/module-with-providers/util");
26
- /**
27
- * Visitor that walks through specified TypeScript nodes and collects all
28
- * found NgModule static methods without types and all ModuleWithProviders
29
- * usages without generic types attached.
30
- */
31
- class Collector {
32
- constructor(typeChecker) {
33
- this.typeChecker = typeChecker;
34
- this.resolvedModules = [];
35
- this.resolvedNonGenerics = [];
36
- }
37
- visitNode(node) {
38
- if (typescript_1.default.isClassDeclaration(node)) {
39
- this.visitClassDeclaration(node);
40
- }
41
- else if ((0, util_1.isModuleWithProvidersNotGeneric)(this.typeChecker, node)) {
42
- this.resolvedNonGenerics.push(node);
43
- }
44
- typescript_1.default.forEachChild(node, n => this.visitNode(n));
45
- }
46
- visitClassDeclaration(node) {
47
- if (!node.decorators || !node.decorators.length) {
48
- return;
49
- }
50
- const ngDecorators = (0, ng_decorators_1.getAngularDecorators)(this.typeChecker, node.decorators);
51
- const ngModuleDecorator = ngDecorators.find(({ name }) => name === 'NgModule');
52
- if (ngModuleDecorator) {
53
- this._visitNgModuleClass(node, ngModuleDecorator);
54
- }
55
- }
56
- _visitNgModuleClass(node, decorator) {
57
- const decoratorCall = decorator.node.expression;
58
- const metadata = decoratorCall.arguments[0];
59
- if (!metadata || !typescript_1.default.isObjectLiteralExpression(metadata)) {
60
- return;
61
- }
62
- this.resolvedModules.push({
63
- name: node.name ? node.name.text : 'default',
64
- node,
65
- decorator,
66
- staticMethodsWithoutType: node.members.filter(isStaticMethodNoType),
67
- });
68
- }
69
- }
70
- exports.Collector = Collector;
71
- function isStaticMethodNoType(node) {
72
- return typescript_1.default.isMethodDeclaration(node) && !!node.modifiers &&
73
- node.modifiers.findIndex(m => m.kind === typescript_1.default.SyntaxKind.StaticKeyword) > -1 && !node.type;
74
- }
75
- });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zY2hlbWF0aWNzL21pZ3JhdGlvbnMvbW9kdWxlLXdpdGgtcHJvdmlkZXJzL2NvbGxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFSCw0REFBNEI7SUFFNUIsZ0ZBQTRFO0lBRTVFLHlGQUF1RDtJQWF2RDs7OztPQUlHO0lBQ0gsTUFBYSxTQUFTO1FBSXBCLFlBQW1CLFdBQTJCO1lBQTNCLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtZQUg5QyxvQkFBZSxHQUF1QixFQUFFLENBQUM7WUFDekMsd0JBQW1CLEdBQTJCLEVBQUUsQ0FBQztRQUVBLENBQUM7UUFFbEQsU0FBUyxDQUFDLElBQWE7WUFDckIsSUFBSSxvQkFBRSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUMvQixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDbEM7aUJBQU0sSUFBSSxJQUFBLHNDQUErQixFQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQ2xFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDckM7WUFFRCxvQkFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUVPLHFCQUFxQixDQUFDLElBQXlCO1lBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7Z0JBQy9DLE9BQU87YUFDUjtZQUVELE1BQU0sWUFBWSxHQUFHLElBQUEsb0NBQW9CLEVBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0UsTUFBTSxpQkFBaUIsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDO1lBRTdFLElBQUksaUJBQWlCLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsQ0FBQzthQUNuRDtRQUNILENBQUM7UUFFTyxtQkFBbUIsQ0FBQyxJQUF5QixFQUFFLFNBQXNCO1lBQzNFLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ2hELE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFNUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLG9CQUFFLENBQUMseUJBQXlCLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3hELE9BQU87YUFDUjtZQUVELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO2dCQUN4QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQzVDLElBQUk7Z0JBQ0osU0FBUztnQkFDVCx3QkFBd0IsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQzthQUNwRSxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQ0Y7SUE1Q0QsOEJBNENDO0lBRUQsU0FBUyxvQkFBb0IsQ0FBQyxJQUFxQjtRQUNqRCxPQUFPLG9CQUFFLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxvQkFBRSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDL0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7Z2V0QW5ndWxhckRlY29yYXRvcnMsIE5nRGVjb3JhdG9yfSBmcm9tICcuLi8uLi91dGlscy9uZ19kZWNvcmF0b3JzJztcblxuaW1wb3J0IHtpc01vZHVsZVdpdGhQcm92aWRlcnNOb3RHZW5lcmljfSBmcm9tICcuL3V0aWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVkTmdNb2R1bGUge1xuICBuYW1lOiBzdHJpbmc7XG4gIG5vZGU6IHRzLkNsYXNzRGVjbGFyYXRpb247XG4gIGRlY29yYXRvcjogTmdEZWNvcmF0b3I7XG4gIC8qKlxuICAgKiBMaXN0IG9mIGZvdW5kIHN0YXRpYyBtZXRob2QgZGVjbGFyYXRpb25zIG9uIHRoZSBtb2R1bGUgd2hpY2ggZG8gbm90XG4gICAqIGRlY2xhcmUgYW4gZXhwbGljaXQgcmV0dXJuIHR5cGUuXG4gICAqL1xuICBzdGF0aWNNZXRob2RzV2l0aG91dFR5cGU6IHRzLk1ldGhvZERlY2xhcmF0aW9uW107XG59XG5cbi8qKlxuICogVmlzaXRvciB0aGF0IHdhbGtzIHRocm91Z2ggc3BlY2lmaWVkIFR5cGVTY3JpcHQgbm9kZXMgYW5kIGNvbGxlY3RzIGFsbFxuICogZm91bmQgTmdNb2R1bGUgc3RhdGljIG1ldGhvZHMgd2l0aG91dCB0eXBlcyBhbmQgYWxsIE1vZHVsZVdpdGhQcm92aWRlcnNcbiAqIHVzYWdlcyB3aXRob3V0IGdlbmVyaWMgdHlwZXMgYXR0YWNoZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb2xsZWN0b3Ige1xuICByZXNvbHZlZE1vZHVsZXM6IFJlc29sdmVkTmdNb2R1bGVbXSA9IFtdO1xuICByZXNvbHZlZE5vbkdlbmVyaWNzOiB0cy5UeXBlUmVmZXJlbmNlTm9kZVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHVibGljIHR5cGVDaGVja2VyOiB0cy5UeXBlQ2hlY2tlcikge31cblxuICB2aXNpdE5vZGUobm9kZTogdHMuTm9kZSkge1xuICAgIGlmICh0cy5pc0NsYXNzRGVjbGFyYXRpb24obm9kZSkpIHtcbiAgICAgIHRoaXMudmlzaXRDbGFzc0RlY2xhcmF0aW9uKG5vZGUpO1xuICAgIH0gZWxzZSBpZiAoaXNNb2R1bGVXaXRoUHJvdmlkZXJzTm90R2VuZXJpYyh0aGlzLnR5cGVDaGVja2VyLCBub2RlKSkge1xuICAgICAgdGhpcy5yZXNvbHZlZE5vbkdlbmVyaWNzLnB1c2gobm9kZSk7XG4gICAgfVxuXG4gICAgdHMuZm9yRWFjaENoaWxkKG5vZGUsIG4gPT4gdGhpcy52aXNpdE5vZGUobikpO1xuICB9XG5cbiAgcHJpdmF0ZSB2aXNpdENsYXNzRGVjbGFyYXRpb24obm9kZTogdHMuQ2xhc3NEZWNsYXJhdGlvbikge1xuICAgIGlmICghbm9kZS5kZWNvcmF0b3JzIHx8ICFub2RlLmRlY29yYXRvcnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmdEZWNvcmF0b3JzID0gZ2V0QW5ndWxhckRlY29yYXRvcnModGhpcy50eXBlQ2hlY2tlciwgbm9kZS5kZWNvcmF0b3JzKTtcbiAgICBjb25zdCBuZ01vZHVsZURlY29yYXRvciA9IG5nRGVjb3JhdG9ycy5maW5kKCh7bmFtZX0pID0+IG5hbWUgPT09ICdOZ01vZHVsZScpO1xuXG4gICAgaWYgKG5nTW9kdWxlRGVjb3JhdG9yKSB7XG4gICAgICB0aGlzLl92aXNpdE5nTW9kdWxlQ2xhc3Mobm9kZSwgbmdNb2R1bGVEZWNvcmF0b3IpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3Zpc2l0TmdNb2R1bGVDbGFzcyhub2RlOiB0cy5DbGFzc0RlY2xhcmF0aW9uLCBkZWNvcmF0b3I6IE5nRGVjb3JhdG9yKSB7XG4gICAgY29uc3QgZGVjb3JhdG9yQ2FsbCA9IGRlY29yYXRvci5ub2RlLmV4cHJlc3Npb247XG4gICAgY29uc3QgbWV0YWRhdGEgPSBkZWNvcmF0b3JDYWxsLmFyZ3VtZW50c1swXTtcblxuICAgIGlmICghbWV0YWRhdGEgfHwgIXRzLmlzT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb24obWV0YWRhdGEpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yZXNvbHZlZE1vZHVsZXMucHVzaCh7XG4gICAgICBuYW1lOiBub2RlLm5hbWUgPyBub2RlLm5hbWUudGV4dCA6ICdkZWZhdWx0JyxcbiAgICAgIG5vZGUsXG4gICAgICBkZWNvcmF0b3IsXG4gICAgICBzdGF0aWNNZXRob2RzV2l0aG91dFR5cGU6IG5vZGUubWVtYmVycy5maWx0ZXIoaXNTdGF0aWNNZXRob2ROb1R5cGUpLFxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzU3RhdGljTWV0aG9kTm9UeXBlKG5vZGU6IHRzLkNsYXNzRWxlbWVudCk6IG5vZGUgaXMgdHMuTWV0aG9kRGVjbGFyYXRpb24ge1xuICByZXR1cm4gdHMuaXNNZXRob2REZWNsYXJhdGlvbihub2RlKSAmJiAhIW5vZGUubW9kaWZpZXJzICYmXG4gICAgICBub2RlLm1vZGlmaWVycy5maW5kSW5kZXgobSA9PiBtLmtpbmQgPT09IHRzLlN5bnRheEtpbmQuU3RhdGljS2V5d29yZCkgPiAtMSAmJiAhbm9kZS50eXBlO1xufVxuIl19
@@ -1,13 +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/module-with-providers" />
9
- import { Rule } from '@angular-devkit/schematics';
10
- /**
11
- * Runs the ModuleWithProviders migration for all TypeScript projects in the current CLI workspace.
12
- */
13
- export default function (): Rule;