@angular/core 12.1.1 → 12.1.5

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 (159) hide show
  1. package/bundles/core-testing.umd.js +15 -4
  2. package/bundles/core-testing.umd.js.map +1 -1
  3. package/bundles/core.umd.js +91 -41
  4. package/bundles/core.umd.js.map +1 -1
  5. package/core.d.ts +12 -12
  6. package/core.metadata.json +1 -1
  7. package/esm2015/src/application_init.js +5 -5
  8. package/esm2015/src/application_ref.js +6 -2
  9. package/esm2015/src/change_detection/differs/iterable_differs.js +1 -1
  10. package/esm2015/src/compiler/compiler_facade.js +31 -8
  11. package/esm2015/src/compiler/compiler_facade_interface.js +1 -1
  12. package/esm2015/src/di/jit/injectable.js +4 -3
  13. package/esm2015/src/di/r3_injector.js +5 -2
  14. package/esm2015/src/error_handler.js +4 -8
  15. package/esm2015/src/errors.js +2 -2
  16. package/esm2015/src/event_emitter.js +1 -1
  17. package/esm2015/src/linker/component_factory_resolver.js +1 -1
  18. package/esm2015/src/linker/template_ref.js +1 -1
  19. package/esm2015/src/linker/view_container_ref.js +1 -1
  20. package/esm2015/src/metadata/di.js +1 -1
  21. package/esm2015/src/render3/component_ref.js +1 -1
  22. package/esm2015/src/render3/jit/directive.js +6 -5
  23. package/esm2015/src/render3/jit/module.js +7 -4
  24. package/esm2015/src/render3/jit/partial.js +27 -9
  25. package/esm2015/src/render3/jit/pipe.js +5 -3
  26. package/esm2015/src/render3/ng_module_ref.js +1 -1
  27. package/esm2015/src/render3/view_ref.js +1 -1
  28. package/esm2015/src/sanitization/bypass.js +1 -1
  29. package/esm2015/src/version.js +1 -1
  30. package/esm2015/src/view/entrypoint.js +1 -1
  31. package/esm2015/src/view/refs.js +1 -1
  32. package/esm2015/testing/src/ng_zone_mock.js +1 -1
  33. package/esm2015/testing/src/r3_test_bed_compiler.js +4 -1
  34. package/esm2015/testing/src/resolvers.js +1 -1
  35. package/esm2015/testing/src/test_bed.js +12 -4
  36. package/fesm2015/core.js +91 -41
  37. package/fesm2015/core.js.map +1 -1
  38. package/fesm2015/testing.js +15 -4
  39. package/fesm2015/testing.js.map +1 -1
  40. package/package.json +1 -1
  41. package/schematics/migrations/missing-injectable/providers_evaluator.js +1 -1
  42. package/schematics/migrations/static-queries/strategies/usage_strategy/template_usage_visitor.js +1 -1
  43. package/schematics/migrations/template-var-assignment/angular/html_variable_assignment_visitor.js +1 -1
  44. package/schematics/migrations.json +1 -1
  45. package/src/r3_symbols.d.ts +2 -3
  46. package/testing/testing.d.ts +2 -1
  47. package/testing/testing.metadata.json +1 -1
  48. package/testing.d.ts +1 -1
  49. package/schematics/migrations/abstract-control-parent/abstract-control-parent.externs.js +0 -0
  50. package/schematics/migrations/abstract-control-parent/index.mjs +0 -47
  51. package/schematics/migrations/abstract-control-parent/util.mjs +0 -50
  52. package/schematics/migrations/activated-route-snapshot-fragment/activated-route-snapshot-fragment.externs.js +0 -0
  53. package/schematics/migrations/activated-route-snapshot-fragment/index.mjs +0 -48
  54. package/schematics/migrations/activated-route-snapshot-fragment/util.mjs +0 -33
  55. package/schematics/migrations/can-activate-with-redirect-to/can-activate-with-redirect-to.externs.js +0 -0
  56. package/schematics/migrations/can-activate-with-redirect-to/index.mjs +0 -44
  57. package/schematics/migrations/can-activate-with-redirect-to/util.mjs +0 -55
  58. package/schematics/migrations/deep-shadow-piercing-selector/deep-shadow-piercing-selector.externs.js +0 -0
  59. package/schematics/migrations/deep-shadow-piercing-selector/index.mjs +0 -36
  60. package/schematics/migrations/dynamic-queries/dynamic-queries.externs.js +0 -0
  61. package/schematics/migrations/dynamic-queries/index.mjs +0 -51
  62. package/schematics/migrations/dynamic-queries/util.mjs +0 -65
  63. package/schematics/migrations/initial-navigation/collector.mjs +0 -105
  64. package/schematics/migrations/initial-navigation/index.mjs +0 -61
  65. package/schematics/migrations/initial-navigation/initial-navigation.externs.js +0 -0
  66. package/schematics/migrations/initial-navigation/transform.mjs +0 -54
  67. package/schematics/migrations/initial-navigation/update_recorder.mjs +0 -9
  68. package/schematics/migrations/initial-navigation/util.mjs +0 -28
  69. package/schematics/migrations/missing-injectable/definition_collector.mjs +0 -75
  70. package/schematics/migrations/missing-injectable/index.mjs +0 -100
  71. package/schematics/migrations/missing-injectable/missing-injectable.externs.js +0 -0
  72. package/schematics/migrations/missing-injectable/providers_evaluator.mjs +0 -50
  73. package/schematics/migrations/missing-injectable/transform.mjs +0 -187
  74. package/schematics/migrations/missing-injectable/update_recorder.mjs +0 -9
  75. package/schematics/migrations/module-with-providers/collector.mjs +0 -59
  76. package/schematics/migrations/module-with-providers/index.mjs +0 -71
  77. package/schematics/migrations/module-with-providers/module-with-providers.externs.js +0 -0
  78. package/schematics/migrations/module-with-providers/transform.mjs +0 -134
  79. package/schematics/migrations/module-with-providers/util.mjs +0 -25
  80. package/schematics/migrations/move-document/document_import_visitor.mjs +0 -60
  81. package/schematics/migrations/move-document/index.mjs +0 -71
  82. package/schematics/migrations/move-document/move-document.externs.js +0 -0
  83. package/schematics/migrations/move-document/move-import.mjs +0 -45
  84. package/schematics/migrations/native-view-encapsulation/index.mjs +0 -41
  85. package/schematics/migrations/native-view-encapsulation/native-view-encapsulation.externs.js +0 -0
  86. package/schematics/migrations/native-view-encapsulation/util.mjs +0 -34
  87. package/schematics/migrations/navigation-extras-omissions/index.mjs +0 -47
  88. package/schematics/migrations/navigation-extras-omissions/navigation-extras-omissions.externs.js +0 -0
  89. package/schematics/migrations/navigation-extras-omissions/util.mjs +0 -111
  90. package/schematics/migrations/relative-link-resolution/collector.mjs +0 -81
  91. package/schematics/migrations/relative-link-resolution/index.mjs +0 -62
  92. package/schematics/migrations/relative-link-resolution/relative-link-resolution.externs.js +0 -0
  93. package/schematics/migrations/relative-link-resolution/transform.mjs +0 -51
  94. package/schematics/migrations/relative-link-resolution/update_recorder.mjs +0 -9
  95. package/schematics/migrations/relative-link-resolution/util.mjs +0 -28
  96. package/schematics/migrations/renderer-to-renderer2/helpers.mjs +0 -224
  97. package/schematics/migrations/renderer-to-renderer2/index.mjs +0 -113
  98. package/schematics/migrations/renderer-to-renderer2/migration.mjs +0 -211
  99. package/schematics/migrations/renderer-to-renderer2/renderer-to-renderer2.externs.js +0 -0
  100. package/schematics/migrations/renderer-to-renderer2/util.mjs +0 -69
  101. package/schematics/migrations/router-preserve-query-params/index.mjs +0 -50
  102. package/schematics/migrations/router-preserve-query-params/router-preserve-query-params.externs.js +0 -0
  103. package/schematics/migrations/router-preserve-query-params/util.mjs +0 -88
  104. package/schematics/migrations/static-queries/angular/directive_inputs.mjs +0 -70
  105. package/schematics/migrations/static-queries/angular/ng_query_visitor.mjs +0 -113
  106. package/schematics/migrations/static-queries/angular/query-definition.mjs +0 -20
  107. package/schematics/migrations/static-queries/angular/super_class.mjs +0 -21
  108. package/schematics/migrations/static-queries/index.mjs +0 -206
  109. package/schematics/migrations/static-queries/static-queries.externs.js +0 -0
  110. package/schematics/migrations/static-queries/strategies/template_strategy/template_strategy.mjs +0 -200
  111. package/schematics/migrations/static-queries/strategies/test_strategy/test_strategy.mjs +0 -24
  112. package/schematics/migrations/static-queries/strategies/timing-strategy.mjs +0 -9
  113. package/schematics/migrations/static-queries/strategies/usage_strategy/declaration_usage_visitor.mjs +0 -355
  114. package/schematics/migrations/static-queries/strategies/usage_strategy/super_class_context.mjs +0 -38
  115. package/schematics/migrations/static-queries/strategies/usage_strategy/template_usage_visitor.mjs +0 -80
  116. package/schematics/migrations/static-queries/strategies/usage_strategy/usage_strategy.mjs +0 -154
  117. package/schematics/migrations/static-queries/transform.mjs +0 -88
  118. package/schematics/migrations/template-var-assignment/analyze_template.mjs +0 -25
  119. package/schematics/migrations/template-var-assignment/angular/html_variable_assignment_visitor.mjs +0 -65
  120. package/schematics/migrations/template-var-assignment/index.mjs +0 -68
  121. package/schematics/migrations/template-var-assignment/template-var-assignment.externs.js +0 -0
  122. package/schematics/migrations/undecorated-classes-with-decorated-fields/index.mjs +0 -92
  123. package/schematics/migrations/undecorated-classes-with-decorated-fields/transform.mjs +0 -286
  124. package/schematics/migrations/undecorated-classes-with-decorated-fields/undecorated-classes-with-decorated-fields.externs.js +0 -0
  125. package/schematics/migrations/undecorated-classes-with-decorated-fields/update_recorder.mjs +0 -9
  126. package/schematics/migrations/undecorated-classes-with-di/create_ngc_program.mjs +0 -43
  127. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/convert_directive_metadata.mjs +0 -82
  128. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/decorator_rewriter.mjs +0 -102
  129. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/import_rewrite_visitor.mjs +0 -111
  130. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/path_format.mjs +0 -17
  131. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/source_file_exports.mjs +0 -51
  132. package/schematics/migrations/undecorated-classes-with-di/index.mjs +0 -162
  133. package/schematics/migrations/undecorated-classes-with-di/ng_declaration_collector.mjs +0 -124
  134. package/schematics/migrations/undecorated-classes-with-di/transform.mjs +0 -356
  135. package/schematics/migrations/undecorated-classes-with-di/undecorated-classes-with-di.externs.js +0 -0
  136. package/schematics/migrations/undecorated-classes-with-di/update_recorder.mjs +0 -9
  137. package/schematics/migrations/wait-for-async/index.mjs +0 -76
  138. package/schematics/migrations/wait-for-async/util.mjs +0 -23
  139. package/schematics/migrations/wait-for-async/wait-for-async.externs.js +0 -0
  140. package/schematics/migrations/xhr-factory/index.mjs +0 -91
  141. package/schematics/migrations/xhr-factory/xhr-factory.externs.js +0 -0
  142. package/schematics/utils/import_manager.mjs +0 -197
  143. package/schematics/utils/line_mappings.mjs +0 -60
  144. package/schematics/utils/ng_component_template.mjs +0 -96
  145. package/schematics/utils/ng_decorators.mjs +0 -23
  146. package/schematics/utils/parse_html.mjs +0 -24
  147. package/schematics/utils/project_tsconfig_paths.mjs +0 -74
  148. package/schematics/utils/schematics_prompt.mjs +0 -30
  149. package/schematics/utils/typescript/class_declaration.mjs +0 -33
  150. package/schematics/utils/typescript/compiler_host.mjs +0 -66
  151. package/schematics/utils/typescript/decorators.mjs +0 -20
  152. package/schematics/utils/typescript/find_base_classes.mjs +0 -30
  153. package/schematics/utils/typescript/functions.mjs +0 -28
  154. package/schematics/utils/typescript/imports.mjs +0 -91
  155. package/schematics/utils/typescript/nodes.mjs +0 -57
  156. package/schematics/utils/typescript/parse_tsconfig.mjs +0 -26
  157. package/schematics/utils/typescript/property_name.mjs +0 -23
  158. package/schematics/utils/typescript/symbol.mjs +0 -72
  159. package/schematics/utils/utils.externs.js +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/core",
3
- "version": "12.1.1",
3
+ "version": "12.1.5",
4
4
  "description": "Angular - the core framework",
5
5
  "author": "angular",
6
6
  "license": "MIT",
@@ -61,4 +61,4 @@
61
61
  }
62
62
  exports.ProvidersEvaluator = ProvidersEvaluator;
63
63
  });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzX2V2YWx1YXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc2NoZW1hdGljcy9taWdyYXRpb25zL21pc3NpbmctaW5qZWN0YWJsZS9wcm92aWRlcnNfZXZhbHVhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7OztJQUVILDZFQUErRTtJQUUvRSxtR0FBb0c7SUFRcEc7Ozs7Ozs7O09BUUc7SUFDSCxNQUFhLGtCQUFtQixTQUFRLCtCQUFpQjtRQUF6RDs7WUFDVSxzQkFBaUIsR0FBc0IsRUFBRSxDQUFDO1FBNkJwRCxDQUFDO1FBM0JDLDRCQUE0QixDQUFDLElBQWdDLEVBQUUsT0FBWTtZQUN6RSxNQUFNLGFBQWEsR0FDZixLQUFLLENBQUMsNEJBQTRCLENBQUMsSUFBSSxrQ0FBTSxPQUFPLEtBQUUsaUJBQWlCLEVBQUUsSUFBSSxJQUFFLENBQUM7WUFDcEYscUVBQXFFO1lBQ3JFLHdFQUF3RTtZQUN4RSx1RUFBdUU7WUFDdkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxhQUFhLEVBQUMsQ0FBQyxDQUFDO2FBQ3BEO1lBQ0QsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQztRQUVEOzs7V0FHRztRQUNILFFBQVEsQ0FBQyxJQUFtQjtZQUMxQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO1lBQzVCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFO2dCQUNyQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDckMsa0JBQWtCLEVBQUUsSUFBSTtnQkFDeEIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVE7Z0JBQ2hELEtBQUssRUFBRSxJQUFJLEdBQUcsRUFBRTtnQkFDaEIsdUJBQXVCLEVBQUUsZ0NBQWtCO2FBQzVDLENBQUMsQ0FBQztZQUNILE9BQU8sRUFBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBQyxDQUFDO1FBQzNELENBQUM7S0FDRjtJQTlCRCxnREE4QkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtmb3J3YXJkUmVmUmVzb2x2ZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvYW5ub3RhdGlvbnMnO1xuaW1wb3J0IHtSZXNvbHZlZFZhbHVlfSBmcm9tICdAYW5ndWxhci9jb21waWxlci1jbGkvc3JjL25ndHNjL3BhcnRpYWxfZXZhbHVhdG9yJztcbmltcG9ydCB7U3RhdGljSW50ZXJwcmV0ZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvcGFydGlhbF9ldmFsdWF0b3Ivc3JjL2ludGVycHJldGVyJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyTGl0ZXJhbCB7XG4gIG5vZGU6IHRzLk9iamVjdExpdGVyYWxFeHByZXNzaW9uO1xuICByZXNvbHZlZFZhbHVlOiBSZXNvbHZlZFZhbHVlO1xufVxuXG4vKipcbiAqIFByb3ZpZGVycyBldmFsdWF0b3IgdGhhdCBleHRlbmRzIHRoZSBuZ3RzYyBzdGF0aWMgaW50ZXJwcmV0ZXIuIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2VcbiAqIHRoZSBzdGF0aWMgaW50ZXJwcmV0ZXIgYnkgZGVmYXVsdCBvbmx5IGV4cG9zZXMgdGhlIHJlc29sdmVkIHZhbHVlLCBidXQgd2UgYXJlIGFsc28gaW50ZXJlc3RlZFxuICogaW4gdGhlIFR5cGVTY3JpcHQgbm9kZXMgdGhhdCBkZWNsYXJlIHByb3ZpZGVycy4gSXQgd291bGQgYmUgcG9zc2libGUgdG8gbWFudWFsbHkgdHJhdmVyc2UgdGhlXG4gKiBBU1QgdG8gY29sbGVjdCB0aGVzZSBub2RlcywgYnV0IHRoYXQgd291bGQgbWVhbiB0aGF0IHdlIG5lZWQgdG8gcmUtaW1wbGVtZW50IHRoZSBzdGF0aWNcbiAqIGludGVycHJldGVyIGluIG9yZGVyIHRvIGhhbmRsZSBhbGwgcG9zc2libGUgc2NlbmFyaW9zLiAoZS5nLiBzcHJlYWQgb3BlcmF0b3IsIGZ1bmN0aW9uIGNhbGxzLFxuICogY2FsbGVlIHNjb3BlKS4gVGhpcyBjYW4gYmUgYXZvaWRlZCBieSBzaW1wbHkgZXh0ZW5kaW5nIHRoZSBzdGF0aWMgaW50ZXJwcmV0ZXIgYW5kIGludGVyY2VwdGluZ1xuICogdGhlIFwidmlzaXRPYmplY3RMaXRlcmFsRXhwcmVzc2lvblwiIG1ldGhvZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFByb3ZpZGVyc0V2YWx1YXRvciBleHRlbmRzIFN0YXRpY0ludGVycHJldGVyIHtcbiAgcHJpdmF0ZSBfcHJvdmlkZXJMaXRlcmFsczogUHJvdmlkZXJMaXRlcmFsW10gPSBbXTtcblxuICB2aXNpdE9iamVjdExpdGVyYWxFeHByZXNzaW9uKG5vZGU6IHRzLk9iamVjdExpdGVyYWxFeHByZXNzaW9uLCBjb250ZXh0OiBhbnkpIHtcbiAgICBjb25zdCByZXNvbHZlZFZhbHVlID1cbiAgICAgICAgc3VwZXIudmlzaXRPYmplY3RMaXRlcmFsRXhwcmVzc2lvbihub2RlLCB7Li4uY29udGV4dCwgaW5zaWRlUHJvdmlkZXJEZWY6IHRydWV9KTtcbiAgICAvLyBkbyBub3QgY29sbGVjdCBuZXN0ZWQgb2JqZWN0IGxpdGVyYWxzLiBlLmcuIGEgcHJvdmlkZXIgY291bGQgdXNlIGFcbiAgICAvLyBzcHJlYWQgYXNzaWdubWVudCAod2hpY2ggcmVzb2x2ZXMgdG8gYW5vdGhlciBvYmplY3QgbGl0ZXJhbCkuIEluIHRoYXRcbiAgICAvLyBjYXNlIHRoZSByZWZlcmVuY2VkIG9iamVjdCBsaXRlcmFsIGlzIG5vdCBhIHByb3ZpZGVyIG9iamVjdCBsaXRlcmFsLlxuICAgIGlmICghY29udGV4dC5pbnNpZGVQcm92aWRlckRlZikge1xuICAgICAgdGhpcy5fcHJvdmlkZXJMaXRlcmFscy5wdXNoKHtub2RlLCByZXNvbHZlZFZhbHVlfSk7XG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlZFZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlcyB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBhbmQgcmV0dXJucyBpdHMgc3RhdGljYWxseSByZXNvbHZlZCB2YWx1ZVxuICAgKiBhbmQgYSBsaXN0IG9mIG9iamVjdCBsaXRlcmFscyB3aGljaCBkZWZpbmUgQW5ndWxhciBwcm92aWRlcnMuXG4gICAqL1xuICBldmFsdWF0ZShleHByOiB0cy5FeHByZXNzaW9uKSB7XG4gICAgdGhpcy5fcHJvdmlkZXJMaXRlcmFscyA9IFtdO1xuICAgIGNvbnN0IHJlc29sdmVkVmFsdWUgPSB0aGlzLnZpc2l0KGV4cHIsIHtcbiAgICAgIG9yaWdpbmF0aW5nRmlsZTogZXhwci5nZXRTb3VyY2VGaWxlKCksXG4gICAgICBhYnNvbHV0ZU1vZHVsZU5hbWU6IG51bGwsXG4gICAgICByZXNvbHV0aW9uQ29udGV4dDogZXhwci5nZXRTb3VyY2VGaWxlKCkuZmlsZU5hbWUsXG4gICAgICBzY29wZTogbmV3IE1hcCgpLFxuICAgICAgZm9yZWlnbkZ1bmN0aW9uUmVzb2x2ZXI6IGZvcndhcmRSZWZSZXNvbHZlclxuICAgIH0pO1xuICAgIHJldHVybiB7cmVzb2x2ZWRWYWx1ZSwgbGl0ZXJhbHM6IHRoaXMuX3Byb3ZpZGVyTGl0ZXJhbHN9O1xuICB9XG59XG4iXX0=
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzX2V2YWx1YXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc2NoZW1hdGljcy9taWdyYXRpb25zL21pc3NpbmctaW5qZWN0YWJsZS9wcm92aWRlcnNfZXZhbHVhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7OztJQUVILDZFQUErRTtJQUUvRSxtR0FBb0c7SUFRcEc7Ozs7Ozs7O09BUUc7SUFDSCxNQUFhLGtCQUFtQixTQUFRLCtCQUFpQjtRQUF6RDs7WUFDVSxzQkFBaUIsR0FBc0IsRUFBRSxDQUFDO1FBNkJwRCxDQUFDO1FBM0JVLDRCQUE0QixDQUFDLElBQWdDLEVBQUUsT0FBWTtZQUNsRixNQUFNLGFBQWEsR0FDZixLQUFLLENBQUMsNEJBQTRCLENBQUMsSUFBSSxrQ0FBTSxPQUFPLEtBQUUsaUJBQWlCLEVBQUUsSUFBSSxJQUFFLENBQUM7WUFDcEYscUVBQXFFO1lBQ3JFLHdFQUF3RTtZQUN4RSx1RUFBdUU7WUFDdkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxhQUFhLEVBQUMsQ0FBQyxDQUFDO2FBQ3BEO1lBQ0QsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQztRQUVEOzs7V0FHRztRQUNILFFBQVEsQ0FBQyxJQUFtQjtZQUMxQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO1lBQzVCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFO2dCQUNyQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDckMsa0JBQWtCLEVBQUUsSUFBSTtnQkFDeEIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVE7Z0JBQ2hELEtBQUssRUFBRSxJQUFJLEdBQUcsRUFBRTtnQkFDaEIsdUJBQXVCLEVBQUUsZ0NBQWtCO2FBQzVDLENBQUMsQ0FBQztZQUNILE9BQU8sRUFBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBQyxDQUFDO1FBQzNELENBQUM7S0FDRjtJQTlCRCxnREE4QkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtmb3J3YXJkUmVmUmVzb2x2ZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvYW5ub3RhdGlvbnMnO1xuaW1wb3J0IHtSZXNvbHZlZFZhbHVlfSBmcm9tICdAYW5ndWxhci9jb21waWxlci1jbGkvc3JjL25ndHNjL3BhcnRpYWxfZXZhbHVhdG9yJztcbmltcG9ydCB7U3RhdGljSW50ZXJwcmV0ZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvcGFydGlhbF9ldmFsdWF0b3Ivc3JjL2ludGVycHJldGVyJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyTGl0ZXJhbCB7XG4gIG5vZGU6IHRzLk9iamVjdExpdGVyYWxFeHByZXNzaW9uO1xuICByZXNvbHZlZFZhbHVlOiBSZXNvbHZlZFZhbHVlO1xufVxuXG4vKipcbiAqIFByb3ZpZGVycyBldmFsdWF0b3IgdGhhdCBleHRlbmRzIHRoZSBuZ3RzYyBzdGF0aWMgaW50ZXJwcmV0ZXIuIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2VcbiAqIHRoZSBzdGF0aWMgaW50ZXJwcmV0ZXIgYnkgZGVmYXVsdCBvbmx5IGV4cG9zZXMgdGhlIHJlc29sdmVkIHZhbHVlLCBidXQgd2UgYXJlIGFsc28gaW50ZXJlc3RlZFxuICogaW4gdGhlIFR5cGVTY3JpcHQgbm9kZXMgdGhhdCBkZWNsYXJlIHByb3ZpZGVycy4gSXQgd291bGQgYmUgcG9zc2libGUgdG8gbWFudWFsbHkgdHJhdmVyc2UgdGhlXG4gKiBBU1QgdG8gY29sbGVjdCB0aGVzZSBub2RlcywgYnV0IHRoYXQgd291bGQgbWVhbiB0aGF0IHdlIG5lZWQgdG8gcmUtaW1wbGVtZW50IHRoZSBzdGF0aWNcbiAqIGludGVycHJldGVyIGluIG9yZGVyIHRvIGhhbmRsZSBhbGwgcG9zc2libGUgc2NlbmFyaW9zLiAoZS5nLiBzcHJlYWQgb3BlcmF0b3IsIGZ1bmN0aW9uIGNhbGxzLFxuICogY2FsbGVlIHNjb3BlKS4gVGhpcyBjYW4gYmUgYXZvaWRlZCBieSBzaW1wbHkgZXh0ZW5kaW5nIHRoZSBzdGF0aWMgaW50ZXJwcmV0ZXIgYW5kIGludGVyY2VwdGluZ1xuICogdGhlIFwidmlzaXRPYmplY3RMaXRlcmFsRXhwcmVzc2lvblwiIG1ldGhvZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFByb3ZpZGVyc0V2YWx1YXRvciBleHRlbmRzIFN0YXRpY0ludGVycHJldGVyIHtcbiAgcHJpdmF0ZSBfcHJvdmlkZXJMaXRlcmFsczogUHJvdmlkZXJMaXRlcmFsW10gPSBbXTtcblxuICBvdmVycmlkZSB2aXNpdE9iamVjdExpdGVyYWxFeHByZXNzaW9uKG5vZGU6IHRzLk9iamVjdExpdGVyYWxFeHByZXNzaW9uLCBjb250ZXh0OiBhbnkpIHtcbiAgICBjb25zdCByZXNvbHZlZFZhbHVlID1cbiAgICAgICAgc3VwZXIudmlzaXRPYmplY3RMaXRlcmFsRXhwcmVzc2lvbihub2RlLCB7Li4uY29udGV4dCwgaW5zaWRlUHJvdmlkZXJEZWY6IHRydWV9KTtcbiAgICAvLyBkbyBub3QgY29sbGVjdCBuZXN0ZWQgb2JqZWN0IGxpdGVyYWxzLiBlLmcuIGEgcHJvdmlkZXIgY291bGQgdXNlIGFcbiAgICAvLyBzcHJlYWQgYXNzaWdubWVudCAod2hpY2ggcmVzb2x2ZXMgdG8gYW5vdGhlciBvYmplY3QgbGl0ZXJhbCkuIEluIHRoYXRcbiAgICAvLyBjYXNlIHRoZSByZWZlcmVuY2VkIG9iamVjdCBsaXRlcmFsIGlzIG5vdCBhIHByb3ZpZGVyIG9iamVjdCBsaXRlcmFsLlxuICAgIGlmICghY29udGV4dC5pbnNpZGVQcm92aWRlckRlZikge1xuICAgICAgdGhpcy5fcHJvdmlkZXJMaXRlcmFscy5wdXNoKHtub2RlLCByZXNvbHZlZFZhbHVlfSk7XG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlZFZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlcyB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBhbmQgcmV0dXJucyBpdHMgc3RhdGljYWxseSByZXNvbHZlZCB2YWx1ZVxuICAgKiBhbmQgYSBsaXN0IG9mIG9iamVjdCBsaXRlcmFscyB3aGljaCBkZWZpbmUgQW5ndWxhciBwcm92aWRlcnMuXG4gICAqL1xuICBldmFsdWF0ZShleHByOiB0cy5FeHByZXNzaW9uKSB7XG4gICAgdGhpcy5fcHJvdmlkZXJMaXRlcmFscyA9IFtdO1xuICAgIGNvbnN0IHJlc29sdmVkVmFsdWUgPSB0aGlzLnZpc2l0KGV4cHIsIHtcbiAgICAgIG9yaWdpbmF0aW5nRmlsZTogZXhwci5nZXRTb3VyY2VGaWxlKCksXG4gICAgICBhYnNvbHV0ZU1vZHVsZU5hbWU6IG51bGwsXG4gICAgICByZXNvbHV0aW9uQ29udGV4dDogZXhwci5nZXRTb3VyY2VGaWxlKCkuZmlsZU5hbWUsXG4gICAgICBzY29wZTogbmV3IE1hcCgpLFxuICAgICAgZm9yZWlnbkZ1bmN0aW9uUmVzb2x2ZXI6IGZvcndhcmRSZWZSZXNvbHZlclxuICAgIH0pO1xuICAgIHJldHVybiB7cmVzb2x2ZWRWYWx1ZSwgbGl0ZXJhbHM6IHRoaXMuX3Byb3ZpZGVyTGl0ZXJhbHN9O1xuICB9XG59XG4iXX0=
@@ -91,4 +91,4 @@
91
91
  }
92
92
  }
93
93
  });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGVfdXNhZ2VfdmlzaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc2NoZW1hdGljcy9taWdyYXRpb25zL3N0YXRpYy1xdWVyaWVzL3N0cmF0ZWdpZXMvdXNhZ2Vfc3RyYXRlZ3kvdGVtcGxhdGVfdXNhZ2VfdmlzaXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7SUFFSCxnREFBdUc7SUFDdkcsaUVBQTJJO0lBRTNJOzs7T0FHRztJQUNILE1BQWEsb0JBQXFCLFNBQVEsb0JBQVc7UUFJbkQsWUFBbUIsaUJBQXlCO1lBQzFDLEtBQUssRUFBRSxDQUFDO1lBRFMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFRO1lBSHBDLDhCQUF5QixHQUFHLEtBQUssQ0FBQztZQUNsQyx5QkFBb0IsR0FBRyxJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBSWhGLENBQUM7UUFFRCw2RkFBNkY7UUFDN0YscUJBQXFCLENBQUMsU0FBaUI7WUFDckMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLEtBQUssQ0FBQztZQUN2QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1lBRXZELDBFQUEwRTtZQUMxRSxpQkFBUSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztZQUUxQixPQUFPLENBQUMsSUFBSSxDQUFDLHlCQUF5QixJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxvQkFBb0IsQ0FBQztRQUMzRixDQUFDO1FBRUQsWUFBWSxDQUFDLE9BQWdCO1lBQzNCLGtGQUFrRjtZQUNsRixrRkFBa0Y7WUFDbEYsK0VBQStFO1lBQy9FLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO2dCQUNuRSxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDO2dCQUN0QyxPQUFPO2FBQ1I7WUFFRCxpQkFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbkMsaUJBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQy9CLGlCQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoQyxpQkFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUVELGFBQWEsQ0FBQyxRQUFrQjtZQUM5QixpQkFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDcEMsaUJBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hDLGlCQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUVqQywyRUFBMkU7WUFDM0UsbUZBQW1GO1lBQ25GLGtDQUFrQztRQUNwQyxDQUFDO1FBRUQsbUJBQW1CLENBQUMsU0FBeUI7WUFDM0MsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBRUQsY0FBYyxDQUFDLElBQWU7WUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBRUQsZUFBZSxDQUFDLElBQWdCO1lBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEUsQ0FBQztLQUNGO0lBdkRELG9EQXVEQztJQUVEOzs7T0FHRztJQUNILE1BQU0sb0JBQXFCLFNBQVEsOEJBQW1CO1FBR3BELFlBQW9CLGlCQUF5QjtZQUMzQyxLQUFLLEVBQUUsQ0FBQztZQURVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtZQUY3Qyx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFJN0IsQ0FBQztRQUVELGlCQUFpQixDQUFDLElBQWtCLEVBQUUsSUFBcUI7WUFDekQsbUZBQW1GO1lBQ25GLDBEQUEwRDtZQUMxRCxJQUFJLElBQUksQ0FBQyxRQUFRLFlBQVksMkJBQWdCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ3JGLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7Z0JBQ2pDLE9BQU87YUFDUjtZQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEMsQ0FBQztLQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7SW1wbGljaXRSZWNlaXZlciwgUGFyc2VTb3VyY2VTcGFuLCBQcm9wZXJ0eVJlYWQsIFJlY3Vyc2l2ZUFzdFZpc2l0b3J9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCB7Qm91bmRBdHRyaWJ1dGUsIEJvdW5kRXZlbnQsIEJvdW5kVGV4dCwgRWxlbWVudCwgTm9kZSwgTnVsbFZpc2l0b3IsIFRlbXBsYXRlLCB2aXNpdEFsbH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXIvc3JjL3JlbmRlcjMvcjNfYXN0JztcblxuLyoqXG4gKiBBU1QgdmlzaXRvciB0aGF0IHRyYXZlcnNlcyB0aGUgUmVuZGVyMyBIVE1MIEFTVCBpbiBvcmRlciB0byBjaGVjayBpZiB0aGUgZ2l2ZW5cbiAqIHF1ZXJ5IHByb3BlcnR5IGlzIGFjY2Vzc2VkIHN0YXRpY2FsbHkgaW4gdGhlIHRlbXBsYXRlLlxuICovXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVVc2FnZVZpc2l0b3IgZXh0ZW5kcyBOdWxsVmlzaXRvciB7XG4gIHByaXZhdGUgaGFzUXVlcnlUZW1wbGF0ZVJlZmVyZW5jZSA9IGZhbHNlO1xuICBwcml2YXRlIGV4cHJlc3Npb25Bc3RWaXNpdG9yID0gbmV3IEV4cHJlc3Npb25Bc3RWaXNpdG9yKHRoaXMucXVlcnlQcm9wZXJ0eU5hbWUpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBxdWVyeVByb3BlcnR5TmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gcXVlcnkgaXMgc3RhdGljYWxseSBhY2Nlc3NlZCB3aXRoaW4gdGhlIHNwZWNpZmllZCBIVE1MIG5vZGVzLiAqL1xuICBpc1F1ZXJ5VXNlZFN0YXRpY2FsbHkoaHRtbE5vZGVzOiBOb2RlW10pOiBib29sZWFuIHtcbiAgICB0aGlzLmhhc1F1ZXJ5VGVtcGxhdGVSZWZlcmVuY2UgPSBmYWxzZTtcbiAgICB0aGlzLmV4cHJlc3Npb25Bc3RWaXNpdG9yLmhhc1F1ZXJ5UHJvcGVydHlSZWFkID0gZmFsc2U7XG5cbiAgICAvLyBWaXNpdCBhbGwgQVNUIG5vZGVzIGFuZCBjaGVjayBpZiB0aGUgcXVlcnkgcHJvcGVydHkgaXMgdXNlZCBzdGF0aWNhbGx5LlxuICAgIHZpc2l0QWxsKHRoaXMsIGh0bWxOb2Rlcyk7XG5cbiAgICByZXR1cm4gIXRoaXMuaGFzUXVlcnlUZW1wbGF0ZVJlZmVyZW5jZSAmJiB0aGlzLmV4cHJlc3Npb25Bc3RWaXNpdG9yLmhhc1F1ZXJ5UHJvcGVydHlSZWFkO1xuICB9XG5cbiAgdmlzaXRFbGVtZW50KGVsZW1lbnQ6IEVsZW1lbnQpOiB2b2lkIHtcbiAgICAvLyBJbiBjYXNlIHRoZXJlIGlzIGEgdGVtcGxhdGUgcmVmZXJlbmNlcyB2YXJpYWJsZSB0aGF0IG1hdGNoZXMgdGhlIHF1ZXJ5IHByb3BlcnR5XG4gICAgLy8gbmFtZSwgd2UgY2FuIGZpbmlzaCB0aGlzIHZpc2l0b3IgYXMgc3VjaCBhIHRlbXBsYXRlIHZhcmlhYmxlIGNhbiBiZSB1c2VkIGluIHRoZVxuICAgIC8vIGVudGlyZSB0ZW1wbGF0ZSBhbmQgdGhlIHF1ZXJ5IHRoZXJlZm9yZSBjYW4ndCBiZSBhY2Nlc3NlZCBmcm9tIHRoZSB0ZW1wbGF0ZS5cbiAgICBpZiAoZWxlbWVudC5yZWZlcmVuY2VzLnNvbWUociA9PiByLm5hbWUgPT09IHRoaXMucXVlcnlQcm9wZXJ0eU5hbWUpKSB7XG4gICAgICB0aGlzLmhhc1F1ZXJ5VGVtcGxhdGVSZWZlcmVuY2UgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZpc2l0QWxsKHRoaXMsIGVsZW1lbnQuYXR0cmlidXRlcyk7XG4gICAgdmlzaXRBbGwodGhpcywgZWxlbWVudC5pbnB1dHMpO1xuICAgIHZpc2l0QWxsKHRoaXMsIGVsZW1lbnQub3V0cHV0cyk7XG4gICAgdmlzaXRBbGwodGhpcywgZWxlbWVudC5jaGlsZHJlbik7XG4gIH1cblxuICB2aXNpdFRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZSk6IHZvaWQge1xuICAgIHZpc2l0QWxsKHRoaXMsIHRlbXBsYXRlLmF0dHJpYnV0ZXMpO1xuICAgIHZpc2l0QWxsKHRoaXMsIHRlbXBsYXRlLmlucHV0cyk7XG4gICAgdmlzaXRBbGwodGhpcywgdGVtcGxhdGUub3V0cHV0cyk7XG5cbiAgICAvLyBXZSBkb24ndCB3YW50IHRvIHZpc2l0IGFueSBjaGlsZHJlbiBvZiB0aGUgdGVtcGxhdGUgYXMgdGhlc2UgbmV2ZXIgY2FuJ3RcbiAgICAvLyBhY2Nlc3MgYSBxdWVyeSBzdGF0aWNhbGx5LiBUaGUgdGVtcGxhdGVzIGNhbiBiZSByZW5kZXJlZCBpbiB0aGUgbmdBZnRlclZpZXdJbml0XCJcbiAgICAvLyBsaWZlY3ljbGUgaG9vayBhdCB0aGUgZWFybGllc3QuXG4gIH1cblxuICB2aXNpdEJvdW5kQXR0cmlidXRlKGF0dHJpYnV0ZTogQm91bmRBdHRyaWJ1dGUpIHtcbiAgICBhdHRyaWJ1dGUudmFsdWUudmlzaXQodGhpcy5leHByZXNzaW9uQXN0VmlzaXRvciwgYXR0cmlidXRlLnNvdXJjZVNwYW4pO1xuICB9XG5cbiAgdmlzaXRCb3VuZFRleHQodGV4dDogQm91bmRUZXh0KSB7XG4gICAgdGV4dC52YWx1ZS52aXNpdCh0aGlzLmV4cHJlc3Npb25Bc3RWaXNpdG9yLCB0ZXh0LnNvdXJjZVNwYW4pO1xuICB9XG5cbiAgdmlzaXRCb3VuZEV2ZW50KG5vZGU6IEJvdW5kRXZlbnQpIHtcbiAgICBub2RlLmhhbmRsZXIudmlzaXQodGhpcy5leHByZXNzaW9uQXN0VmlzaXRvciwgbm9kZS5oYW5kbGVyU3Bhbik7XG4gIH1cbn1cblxuLyoqXG4gKiBBU1QgdmlzaXRvciB0aGF0IGNoZWNrcyBpZiB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBjb250YWlucyBwcm9wZXJ0eSByZWFkcyB0aGF0XG4gKiByZWZlciB0byB0aGUgc3BlY2lmaWVkIHF1ZXJ5IHByb3BlcnR5IG5hbWUuXG4gKi9cbmNsYXNzIEV4cHJlc3Npb25Bc3RWaXNpdG9yIGV4dGVuZHMgUmVjdXJzaXZlQXN0VmlzaXRvciB7XG4gIGhhc1F1ZXJ5UHJvcGVydHlSZWFkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBxdWVyeVByb3BlcnR5TmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHZpc2l0UHJvcGVydHlSZWFkKG5vZGU6IFByb3BlcnR5UmVhZCwgc3BhbjogUGFyc2VTb3VyY2VTcGFuKTogYW55IHtcbiAgICAvLyBUaGUgcmVjZWl2ZXIgb2YgdGhlIHByb3BlcnR5IHJlYWQgbmVlZHMgdG8gYmUgXCJpbXBsaWNpdFwiIGFzIHF1ZXJpZXMgYXJlIGFjY2Vzc2VkXG4gICAgLy8gZnJvbSB0aGUgY29tcG9uZW50IGluc3RhbmNlIGFuZCBub3QgZnJvbSBvdGhlciBvYmplY3RzLlxuICAgIGlmIChub2RlLnJlY2VpdmVyIGluc3RhbmNlb2YgSW1wbGljaXRSZWNlaXZlciAmJiBub2RlLm5hbWUgPT09IHRoaXMucXVlcnlQcm9wZXJ0eU5hbWUpIHtcbiAgICAgIHRoaXMuaGFzUXVlcnlQcm9wZXJ0eVJlYWQgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN1cGVyLnZpc2l0UHJvcGVydHlSZWFkKG5vZGUsIHNwYW4pO1xuICB9XG59XG4iXX0=
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGVfdXNhZ2VfdmlzaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc2NoZW1hdGljcy9taWdyYXRpb25zL3N0YXRpYy1xdWVyaWVzL3N0cmF0ZWdpZXMvdXNhZ2Vfc3RyYXRlZ3kvdGVtcGxhdGVfdXNhZ2VfdmlzaXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7SUFFSCxnREFBdUc7SUFDdkcsaUVBQTJJO0lBRTNJOzs7T0FHRztJQUNILE1BQWEsb0JBQXFCLFNBQVEsb0JBQVc7UUFJbkQsWUFBbUIsaUJBQXlCO1lBQzFDLEtBQUssRUFBRSxDQUFDO1lBRFMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFRO1lBSHBDLDhCQUF5QixHQUFHLEtBQUssQ0FBQztZQUNsQyx5QkFBb0IsR0FBRyxJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBSWhGLENBQUM7UUFFRCw2RkFBNkY7UUFDN0YscUJBQXFCLENBQUMsU0FBaUI7WUFDckMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLEtBQUssQ0FBQztZQUN2QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1lBRXZELDBFQUEwRTtZQUMxRSxpQkFBUSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztZQUUxQixPQUFPLENBQUMsSUFBSSxDQUFDLHlCQUF5QixJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxvQkFBb0IsQ0FBQztRQUMzRixDQUFDO1FBRVEsWUFBWSxDQUFDLE9BQWdCO1lBQ3BDLGtGQUFrRjtZQUNsRixrRkFBa0Y7WUFDbEYsK0VBQStFO1lBQy9FLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO2dCQUNuRSxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDO2dCQUN0QyxPQUFPO2FBQ1I7WUFFRCxpQkFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbkMsaUJBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQy9CLGlCQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoQyxpQkFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUVRLGFBQWEsQ0FBQyxRQUFrQjtZQUN2QyxpQkFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDcEMsaUJBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hDLGlCQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUVqQywyRUFBMkU7WUFDM0UsbUZBQW1GO1lBQ25GLGtDQUFrQztRQUNwQyxDQUFDO1FBRVEsbUJBQW1CLENBQUMsU0FBeUI7WUFDcEQsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBRVEsY0FBYyxDQUFDLElBQWU7WUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBRVEsZUFBZSxDQUFDLElBQWdCO1lBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEUsQ0FBQztLQUNGO0lBdkRELG9EQXVEQztJQUVEOzs7T0FHRztJQUNILE1BQU0sb0JBQXFCLFNBQVEsOEJBQW1CO1FBR3BELFlBQW9CLGlCQUF5QjtZQUMzQyxLQUFLLEVBQUUsQ0FBQztZQURVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtZQUY3Qyx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFJN0IsQ0FBQztRQUVRLGlCQUFpQixDQUFDLElBQWtCLEVBQUUsSUFBcUI7WUFDbEUsbUZBQW1GO1lBQ25GLDBEQUEwRDtZQUMxRCxJQUFJLElBQUksQ0FBQyxRQUFRLFlBQVksMkJBQWdCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ3JGLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7Z0JBQ2pDLE9BQU87YUFDUjtZQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEMsQ0FBQztLQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7SW1wbGljaXRSZWNlaXZlciwgUGFyc2VTb3VyY2VTcGFuLCBQcm9wZXJ0eVJlYWQsIFJlY3Vyc2l2ZUFzdFZpc2l0b3J9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCB7Qm91bmRBdHRyaWJ1dGUsIEJvdW5kRXZlbnQsIEJvdW5kVGV4dCwgRWxlbWVudCwgTm9kZSwgTnVsbFZpc2l0b3IsIFRlbXBsYXRlLCB2aXNpdEFsbH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXIvc3JjL3JlbmRlcjMvcjNfYXN0JztcblxuLyoqXG4gKiBBU1QgdmlzaXRvciB0aGF0IHRyYXZlcnNlcyB0aGUgUmVuZGVyMyBIVE1MIEFTVCBpbiBvcmRlciB0byBjaGVjayBpZiB0aGUgZ2l2ZW5cbiAqIHF1ZXJ5IHByb3BlcnR5IGlzIGFjY2Vzc2VkIHN0YXRpY2FsbHkgaW4gdGhlIHRlbXBsYXRlLlxuICovXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVVc2FnZVZpc2l0b3IgZXh0ZW5kcyBOdWxsVmlzaXRvciB7XG4gIHByaXZhdGUgaGFzUXVlcnlUZW1wbGF0ZVJlZmVyZW5jZSA9IGZhbHNlO1xuICBwcml2YXRlIGV4cHJlc3Npb25Bc3RWaXNpdG9yID0gbmV3IEV4cHJlc3Npb25Bc3RWaXNpdG9yKHRoaXMucXVlcnlQcm9wZXJ0eU5hbWUpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBxdWVyeVByb3BlcnR5TmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gcXVlcnkgaXMgc3RhdGljYWxseSBhY2Nlc3NlZCB3aXRoaW4gdGhlIHNwZWNpZmllZCBIVE1MIG5vZGVzLiAqL1xuICBpc1F1ZXJ5VXNlZFN0YXRpY2FsbHkoaHRtbE5vZGVzOiBOb2RlW10pOiBib29sZWFuIHtcbiAgICB0aGlzLmhhc1F1ZXJ5VGVtcGxhdGVSZWZlcmVuY2UgPSBmYWxzZTtcbiAgICB0aGlzLmV4cHJlc3Npb25Bc3RWaXNpdG9yLmhhc1F1ZXJ5UHJvcGVydHlSZWFkID0gZmFsc2U7XG5cbiAgICAvLyBWaXNpdCBhbGwgQVNUIG5vZGVzIGFuZCBjaGVjayBpZiB0aGUgcXVlcnkgcHJvcGVydHkgaXMgdXNlZCBzdGF0aWNhbGx5LlxuICAgIHZpc2l0QWxsKHRoaXMsIGh0bWxOb2Rlcyk7XG5cbiAgICByZXR1cm4gIXRoaXMuaGFzUXVlcnlUZW1wbGF0ZVJlZmVyZW5jZSAmJiB0aGlzLmV4cHJlc3Npb25Bc3RWaXNpdG9yLmhhc1F1ZXJ5UHJvcGVydHlSZWFkO1xuICB9XG5cbiAgb3ZlcnJpZGUgdmlzaXRFbGVtZW50KGVsZW1lbnQ6IEVsZW1lbnQpOiB2b2lkIHtcbiAgICAvLyBJbiBjYXNlIHRoZXJlIGlzIGEgdGVtcGxhdGUgcmVmZXJlbmNlcyB2YXJpYWJsZSB0aGF0IG1hdGNoZXMgdGhlIHF1ZXJ5IHByb3BlcnR5XG4gICAgLy8gbmFtZSwgd2UgY2FuIGZpbmlzaCB0aGlzIHZpc2l0b3IgYXMgc3VjaCBhIHRlbXBsYXRlIHZhcmlhYmxlIGNhbiBiZSB1c2VkIGluIHRoZVxuICAgIC8vIGVudGlyZSB0ZW1wbGF0ZSBhbmQgdGhlIHF1ZXJ5IHRoZXJlZm9yZSBjYW4ndCBiZSBhY2Nlc3NlZCBmcm9tIHRoZSB0ZW1wbGF0ZS5cbiAgICBpZiAoZWxlbWVudC5yZWZlcmVuY2VzLnNvbWUociA9PiByLm5hbWUgPT09IHRoaXMucXVlcnlQcm9wZXJ0eU5hbWUpKSB7XG4gICAgICB0aGlzLmhhc1F1ZXJ5VGVtcGxhdGVSZWZlcmVuY2UgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZpc2l0QWxsKHRoaXMsIGVsZW1lbnQuYXR0cmlidXRlcyk7XG4gICAgdmlzaXRBbGwodGhpcywgZWxlbWVudC5pbnB1dHMpO1xuICAgIHZpc2l0QWxsKHRoaXMsIGVsZW1lbnQub3V0cHV0cyk7XG4gICAgdmlzaXRBbGwodGhpcywgZWxlbWVudC5jaGlsZHJlbik7XG4gIH1cblxuICBvdmVycmlkZSB2aXNpdFRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZSk6IHZvaWQge1xuICAgIHZpc2l0QWxsKHRoaXMsIHRlbXBsYXRlLmF0dHJpYnV0ZXMpO1xuICAgIHZpc2l0QWxsKHRoaXMsIHRlbXBsYXRlLmlucHV0cyk7XG4gICAgdmlzaXRBbGwodGhpcywgdGVtcGxhdGUub3V0cHV0cyk7XG5cbiAgICAvLyBXZSBkb24ndCB3YW50IHRvIHZpc2l0IGFueSBjaGlsZHJlbiBvZiB0aGUgdGVtcGxhdGUgYXMgdGhlc2UgbmV2ZXIgY2FuJ3RcbiAgICAvLyBhY2Nlc3MgYSBxdWVyeSBzdGF0aWNhbGx5LiBUaGUgdGVtcGxhdGVzIGNhbiBiZSByZW5kZXJlZCBpbiB0aGUgbmdBZnRlclZpZXdJbml0XCJcbiAgICAvLyBsaWZlY3ljbGUgaG9vayBhdCB0aGUgZWFybGllc3QuXG4gIH1cblxuICBvdmVycmlkZSB2aXNpdEJvdW5kQXR0cmlidXRlKGF0dHJpYnV0ZTogQm91bmRBdHRyaWJ1dGUpIHtcbiAgICBhdHRyaWJ1dGUudmFsdWUudmlzaXQodGhpcy5leHByZXNzaW9uQXN0VmlzaXRvciwgYXR0cmlidXRlLnNvdXJjZVNwYW4pO1xuICB9XG5cbiAgb3ZlcnJpZGUgdmlzaXRCb3VuZFRleHQodGV4dDogQm91bmRUZXh0KSB7XG4gICAgdGV4dC52YWx1ZS52aXNpdCh0aGlzLmV4cHJlc3Npb25Bc3RWaXNpdG9yLCB0ZXh0LnNvdXJjZVNwYW4pO1xuICB9XG5cbiAgb3ZlcnJpZGUgdmlzaXRCb3VuZEV2ZW50KG5vZGU6IEJvdW5kRXZlbnQpIHtcbiAgICBub2RlLmhhbmRsZXIudmlzaXQodGhpcy5leHByZXNzaW9uQXN0VmlzaXRvciwgbm9kZS5oYW5kbGVyU3Bhbik7XG4gIH1cbn1cblxuLyoqXG4gKiBBU1QgdmlzaXRvciB0aGF0IGNoZWNrcyBpZiB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBjb250YWlucyBwcm9wZXJ0eSByZWFkcyB0aGF0XG4gKiByZWZlciB0byB0aGUgc3BlY2lmaWVkIHF1ZXJ5IHByb3BlcnR5IG5hbWUuXG4gKi9cbmNsYXNzIEV4cHJlc3Npb25Bc3RWaXNpdG9yIGV4dGVuZHMgUmVjdXJzaXZlQXN0VmlzaXRvciB7XG4gIGhhc1F1ZXJ5UHJvcGVydHlSZWFkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBxdWVyeVByb3BlcnR5TmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHZpc2l0UHJvcGVydHlSZWFkKG5vZGU6IFByb3BlcnR5UmVhZCwgc3BhbjogUGFyc2VTb3VyY2VTcGFuKTogYW55IHtcbiAgICAvLyBUaGUgcmVjZWl2ZXIgb2YgdGhlIHByb3BlcnR5IHJlYWQgbmVlZHMgdG8gYmUgXCJpbXBsaWNpdFwiIGFzIHF1ZXJpZXMgYXJlIGFjY2Vzc2VkXG4gICAgLy8gZnJvbSB0aGUgY29tcG9uZW50IGluc3RhbmNlIGFuZCBub3QgZnJvbSBvdGhlciBvYmplY3RzLlxuICAgIGlmIChub2RlLnJlY2VpdmVyIGluc3RhbmNlb2YgSW1wbGljaXRSZWNlaXZlciAmJiBub2RlLm5hbWUgPT09IHRoaXMucXVlcnlQcm9wZXJ0eU5hbWUpIHtcbiAgICAgIHRoaXMuaGFzUXVlcnlQcm9wZXJ0eVJlYWQgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN1cGVyLnZpc2l0UHJvcGVydHlSZWFkKG5vZGUsIHNwYW4pO1xuICB9XG59XG4iXX0=
@@ -76,4 +76,4 @@
76
76
  }
77
77
  }
78
78
  });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbF92YXJpYWJsZV9hc3NpZ25tZW50X3Zpc2l0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NjaGVtYXRpY3MvbWlncmF0aW9ucy90ZW1wbGF0ZS12YXItYXNzaWdubWVudC9hbmd1bGFyL2h0bWxfdmFyaWFibGVfYXNzaWdubWVudF92aXNpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7OztJQUVILGdEQUF3RztJQUN4RyxpRUFBb0g7SUFRcEg7OztPQUdHO0lBQ0gsTUFBYSw2QkFBOEIsU0FBUSxvQkFBVztRQUE5RDs7WUFDRSx3QkFBbUIsR0FBaUMsRUFBRSxDQUFDO1lBRS9DLHFCQUFnQixHQUFlLEVBQUUsQ0FBQztZQUNsQyx5QkFBb0IsR0FDeEIsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUErQmhGLENBQUM7UUE3QkMsWUFBWSxDQUFDLE9BQWdCO1lBQzNCLGlCQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoQyxpQkFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUVELGFBQWEsQ0FBQyxRQUFrQjtZQUM5Qiw2RUFBNkU7WUFDN0UsNkNBQTZDO1lBQzdDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFbEQsOEVBQThFO1lBQzlFLGlGQUFpRjtZQUNqRiwyQ0FBMkM7WUFDM0MsaUJBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRWxDLDZFQUE2RTtZQUM3RSxtQ0FBbUM7WUFDbkMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzdCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRXJELElBQUksV0FBVyxLQUFLLENBQUMsQ0FBQyxFQUFFO29CQUN0QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDOUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxlQUFlLENBQUMsSUFBZ0I7WUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsRSxDQUFDO0tBQ0Y7SUFwQ0Qsc0VBb0NDO0lBRUQsd0ZBQXdGO0lBQ3hGLE1BQU0sb0JBQXFCLFNBQVEsOEJBQW1CO1FBQ3BELFlBQ1ksbUJBQWlELEVBQ2pELGdCQUE0QjtZQUN0QyxLQUFLLEVBQUUsQ0FBQztZQUZFLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBOEI7WUFDakQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFZO1FBRXhDLENBQUM7UUFFRCxrQkFBa0IsQ0FBQyxJQUFtQixFQUFFLElBQXFCO1lBQzNELElBQUksSUFBSSxDQUFDLFFBQVEsWUFBWSwyQkFBZ0I7Z0JBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDekQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQztvQkFDNUIsSUFBSSxFQUFFLElBQUk7b0JBQ1YsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTTtvQkFDeEIsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTTtpQkFDckIsQ0FBQyxDQUFDO2FBQ0o7WUFDRCxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7S0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0ltcGxpY2l0UmVjZWl2ZXIsIFBhcnNlU291cmNlU3BhbiwgUHJvcGVydHlXcml0ZSwgUmVjdXJzaXZlQXN0VmlzaXRvcn0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0IHtCb3VuZEV2ZW50LCBFbGVtZW50LCBOdWxsVmlzaXRvciwgVGVtcGxhdGUsIFZhcmlhYmxlLCB2aXNpdEFsbH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXIvc3JjL3JlbmRlcjMvcjNfYXN0JztcblxuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZVZhcmlhYmxlQXNzaWdubWVudCB7XG4gIHN0YXJ0OiBudW1iZXI7XG4gIGVuZDogbnVtYmVyO1xuICBub2RlOiBQcm9wZXJ0eVdyaXRlO1xufVxuXG4vKipcbiAqIEhUTUwgQVNUIHZpc2l0b3IgdGhhdCB0cmF2ZXJzZXMgdGhlIFJlbmRlcjMgSFRNTCBBU1QgaW4gb3JkZXIgdG8gZmluZCBhbGxcbiAqIGV4cHJlc3Npb25zIHRoYXQgd3JpdGUgdG8gbG9jYWwgdGVtcGxhdGUgdmFyaWFibGVzIHdpdGhpbiBib3VuZCBldmVudHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBIdG1sVmFyaWFibGVBc3NpZ25tZW50VmlzaXRvciBleHRlbmRzIE51bGxWaXNpdG9yIHtcbiAgdmFyaWFibGVBc3NpZ25tZW50czogVGVtcGxhdGVWYXJpYWJsZUFzc2lnbm1lbnRbXSA9IFtdO1xuXG4gIHByaXZhdGUgY3VycmVudFZhcmlhYmxlczogVmFyaWFibGVbXSA9IFtdO1xuICBwcml2YXRlIGV4cHJlc3Npb25Bc3RWaXNpdG9yID1cbiAgICAgIG5ldyBFeHByZXNzaW9uQXN0VmlzaXRvcih0aGlzLnZhcmlhYmxlQXNzaWdubWVudHMsIHRoaXMuY3VycmVudFZhcmlhYmxlcyk7XG5cbiAgdmlzaXRFbGVtZW50KGVsZW1lbnQ6IEVsZW1lbnQpOiB2b2lkIHtcbiAgICB2aXNpdEFsbCh0aGlzLCBlbGVtZW50Lm91dHB1dHMpO1xuICAgIHZpc2l0QWxsKHRoaXMsIGVsZW1lbnQuY2hpbGRyZW4pO1xuICB9XG5cbiAgdmlzaXRUZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGUpOiB2b2lkIHtcbiAgICAvLyBLZWVwIHRyYWNrIG9mIHRoZSB0ZW1wbGF0ZSB2YXJpYWJsZXMgd2hpY2ggY2FuIGJlIGFjY2Vzc2VkIGJ5IHRoZSB0ZW1wbGF0ZVxuICAgIC8vIGNoaWxkIG5vZGVzIHRocm91Z2ggdGhlIGltcGxpY2l0IHJlY2VpdmVyLlxuICAgIHRoaXMuY3VycmVudFZhcmlhYmxlcy5wdXNoKC4uLnRlbXBsYXRlLnZhcmlhYmxlcyk7XG5cbiAgICAvLyBWaXNpdCBhbGwgY2hpbGRyZW4gb2YgdGhlIHRlbXBsYXRlLiBUaGUgdGVtcGxhdGUgcHJveGllcyB0aGUgb3V0cHV0cyBvZiB0aGVcbiAgICAvLyBpbW1lZGlhdGUgY2hpbGQgZWxlbWVudHMsIHNvIHdlIGp1c3QgaWdub3JlIG91dHB1dHMgb24gdGhlIFwiVGVtcGxhdGVcIiBpbiBvcmRlclxuICAgIC8vIHRvIG5vdCB2aXNpdCBzaW1pbGFyIGJvdW5kIGV2ZW50cyB0d2ljZS5cbiAgICB2aXNpdEFsbCh0aGlzLCB0ZW1wbGF0ZS5jaGlsZHJlbik7XG5cbiAgICAvLyBSZW1vdmUgYWxsIHByZXZpb3VzbHkgYWRkZWQgdmFyaWFibGVzIHNpbmNlIGFsbCBjaGlsZHJlbiB0aGF0IGNvdWxkIGFjY2Vzc1xuICAgIC8vIHRoZXNlIGhhdmUgYmVlbiB2aXNpdGVkIGFscmVhZHkuXG4gICAgdGVtcGxhdGUudmFyaWFibGVzLmZvckVhY2godiA9PiB7XG4gICAgICBjb25zdCB2YXJpYWJsZUlkeCA9IHRoaXMuY3VycmVudFZhcmlhYmxlcy5pbmRleE9mKHYpO1xuXG4gICAgICBpZiAodmFyaWFibGVJZHggIT09IC0xKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFZhcmlhYmxlcy5zcGxpY2UodmFyaWFibGVJZHgsIDEpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgdmlzaXRCb3VuZEV2ZW50KG5vZGU6IEJvdW5kRXZlbnQpIHtcbiAgICBub2RlLmhhbmRsZXIudmlzaXQodGhpcy5leHByZXNzaW9uQXN0VmlzaXRvciwgbm9kZS5oYW5kbGVyU3Bhbik7XG4gIH1cbn1cblxuLyoqIEFTVCB2aXNpdG9yIHRoYXQgcmVzb2x2ZXMgYWxsIHZhcmlhYmxlIGFzc2lnbm1lbnRzIHdpdGhpbiBhIGdpdmVuIGV4cHJlc3Npb24gQVNULiAqL1xuY2xhc3MgRXhwcmVzc2lvbkFzdFZpc2l0b3IgZXh0ZW5kcyBSZWN1cnNpdmVBc3RWaXNpdG9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIHZhcmlhYmxlQXNzaWdubWVudHM6IFRlbXBsYXRlVmFyaWFibGVBc3NpZ25tZW50W10sXG4gICAgICBwcml2YXRlIGN1cnJlbnRWYXJpYWJsZXM6IFZhcmlhYmxlW10pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgdmlzaXRQcm9wZXJ0eVdyaXRlKG5vZGU6IFByb3BlcnR5V3JpdGUsIHNwYW46IFBhcnNlU291cmNlU3Bhbikge1xuICAgIGlmIChub2RlLnJlY2VpdmVyIGluc3RhbmNlb2YgSW1wbGljaXRSZWNlaXZlciAmJlxuICAgICAgICB0aGlzLmN1cnJlbnRWYXJpYWJsZXMuc29tZSh2ID0+IHYubmFtZSA9PT0gbm9kZS5uYW1lKSkge1xuICAgICAgdGhpcy52YXJpYWJsZUFzc2lnbm1lbnRzLnB1c2goe1xuICAgICAgICBub2RlOiBub2RlLFxuICAgICAgICBzdGFydDogc3Bhbi5zdGFydC5vZmZzZXQsXG4gICAgICAgIGVuZDogc3Bhbi5lbmQub2Zmc2V0LFxuICAgICAgfSk7XG4gICAgfVxuICAgIHN1cGVyLnZpc2l0UHJvcGVydHlXcml0ZShub2RlLCBzcGFuKTtcbiAgfVxufVxuIl19
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbF92YXJpYWJsZV9hc3NpZ25tZW50X3Zpc2l0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NjaGVtYXRpY3MvbWlncmF0aW9ucy90ZW1wbGF0ZS12YXItYXNzaWdubWVudC9hbmd1bGFyL2h0bWxfdmFyaWFibGVfYXNzaWdubWVudF92aXNpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7OztJQUVILGdEQUF3RztJQUN4RyxpRUFBb0g7SUFRcEg7OztPQUdHO0lBQ0gsTUFBYSw2QkFBOEIsU0FBUSxvQkFBVztRQUE5RDs7WUFDRSx3QkFBbUIsR0FBaUMsRUFBRSxDQUFDO1lBRS9DLHFCQUFnQixHQUFlLEVBQUUsQ0FBQztZQUNsQyx5QkFBb0IsR0FDeEIsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUErQmhGLENBQUM7UUE3QlUsWUFBWSxDQUFDLE9BQWdCO1lBQ3BDLGlCQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoQyxpQkFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUVRLGFBQWEsQ0FBQyxRQUFrQjtZQUN2Qyw2RUFBNkU7WUFDN0UsNkNBQTZDO1lBQzdDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFbEQsOEVBQThFO1lBQzlFLGlGQUFpRjtZQUNqRiwyQ0FBMkM7WUFDM0MsaUJBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRWxDLDZFQUE2RTtZQUM3RSxtQ0FBbUM7WUFDbkMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzdCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRXJELElBQUksV0FBVyxLQUFLLENBQUMsQ0FBQyxFQUFFO29CQUN0QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDOUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFUSxlQUFlLENBQUMsSUFBZ0I7WUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsRSxDQUFDO0tBQ0Y7SUFwQ0Qsc0VBb0NDO0lBRUQsd0ZBQXdGO0lBQ3hGLE1BQU0sb0JBQXFCLFNBQVEsOEJBQW1CO1FBQ3BELFlBQ1ksbUJBQWlELEVBQ2pELGdCQUE0QjtZQUN0QyxLQUFLLEVBQUUsQ0FBQztZQUZFLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBOEI7WUFDakQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFZO1FBRXhDLENBQUM7UUFFUSxrQkFBa0IsQ0FBQyxJQUFtQixFQUFFLElBQXFCO1lBQ3BFLElBQUksSUFBSSxDQUFDLFFBQVEsWUFBWSwyQkFBZ0I7Z0JBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDekQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQztvQkFDNUIsSUFBSSxFQUFFLElBQUk7b0JBQ1YsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTTtvQkFDeEIsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTTtpQkFDckIsQ0FBQyxDQUFDO2FBQ0o7WUFDRCxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7S0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0ltcGxpY2l0UmVjZWl2ZXIsIFBhcnNlU291cmNlU3BhbiwgUHJvcGVydHlXcml0ZSwgUmVjdXJzaXZlQXN0VmlzaXRvcn0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0IHtCb3VuZEV2ZW50LCBFbGVtZW50LCBOdWxsVmlzaXRvciwgVGVtcGxhdGUsIFZhcmlhYmxlLCB2aXNpdEFsbH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXIvc3JjL3JlbmRlcjMvcjNfYXN0JztcblxuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZVZhcmlhYmxlQXNzaWdubWVudCB7XG4gIHN0YXJ0OiBudW1iZXI7XG4gIGVuZDogbnVtYmVyO1xuICBub2RlOiBQcm9wZXJ0eVdyaXRlO1xufVxuXG4vKipcbiAqIEhUTUwgQVNUIHZpc2l0b3IgdGhhdCB0cmF2ZXJzZXMgdGhlIFJlbmRlcjMgSFRNTCBBU1QgaW4gb3JkZXIgdG8gZmluZCBhbGxcbiAqIGV4cHJlc3Npb25zIHRoYXQgd3JpdGUgdG8gbG9jYWwgdGVtcGxhdGUgdmFyaWFibGVzIHdpdGhpbiBib3VuZCBldmVudHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBIdG1sVmFyaWFibGVBc3NpZ25tZW50VmlzaXRvciBleHRlbmRzIE51bGxWaXNpdG9yIHtcbiAgdmFyaWFibGVBc3NpZ25tZW50czogVGVtcGxhdGVWYXJpYWJsZUFzc2lnbm1lbnRbXSA9IFtdO1xuXG4gIHByaXZhdGUgY3VycmVudFZhcmlhYmxlczogVmFyaWFibGVbXSA9IFtdO1xuICBwcml2YXRlIGV4cHJlc3Npb25Bc3RWaXNpdG9yID1cbiAgICAgIG5ldyBFeHByZXNzaW9uQXN0VmlzaXRvcih0aGlzLnZhcmlhYmxlQXNzaWdubWVudHMsIHRoaXMuY3VycmVudFZhcmlhYmxlcyk7XG5cbiAgb3ZlcnJpZGUgdmlzaXRFbGVtZW50KGVsZW1lbnQ6IEVsZW1lbnQpOiB2b2lkIHtcbiAgICB2aXNpdEFsbCh0aGlzLCBlbGVtZW50Lm91dHB1dHMpO1xuICAgIHZpc2l0QWxsKHRoaXMsIGVsZW1lbnQuY2hpbGRyZW4pO1xuICB9XG5cbiAgb3ZlcnJpZGUgdmlzaXRUZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGUpOiB2b2lkIHtcbiAgICAvLyBLZWVwIHRyYWNrIG9mIHRoZSB0ZW1wbGF0ZSB2YXJpYWJsZXMgd2hpY2ggY2FuIGJlIGFjY2Vzc2VkIGJ5IHRoZSB0ZW1wbGF0ZVxuICAgIC8vIGNoaWxkIG5vZGVzIHRocm91Z2ggdGhlIGltcGxpY2l0IHJlY2VpdmVyLlxuICAgIHRoaXMuY3VycmVudFZhcmlhYmxlcy5wdXNoKC4uLnRlbXBsYXRlLnZhcmlhYmxlcyk7XG5cbiAgICAvLyBWaXNpdCBhbGwgY2hpbGRyZW4gb2YgdGhlIHRlbXBsYXRlLiBUaGUgdGVtcGxhdGUgcHJveGllcyB0aGUgb3V0cHV0cyBvZiB0aGVcbiAgICAvLyBpbW1lZGlhdGUgY2hpbGQgZWxlbWVudHMsIHNvIHdlIGp1c3QgaWdub3JlIG91dHB1dHMgb24gdGhlIFwiVGVtcGxhdGVcIiBpbiBvcmRlclxuICAgIC8vIHRvIG5vdCB2aXNpdCBzaW1pbGFyIGJvdW5kIGV2ZW50cyB0d2ljZS5cbiAgICB2aXNpdEFsbCh0aGlzLCB0ZW1wbGF0ZS5jaGlsZHJlbik7XG5cbiAgICAvLyBSZW1vdmUgYWxsIHByZXZpb3VzbHkgYWRkZWQgdmFyaWFibGVzIHNpbmNlIGFsbCBjaGlsZHJlbiB0aGF0IGNvdWxkIGFjY2Vzc1xuICAgIC8vIHRoZXNlIGhhdmUgYmVlbiB2aXNpdGVkIGFscmVhZHkuXG4gICAgdGVtcGxhdGUudmFyaWFibGVzLmZvckVhY2godiA9PiB7XG4gICAgICBjb25zdCB2YXJpYWJsZUlkeCA9IHRoaXMuY3VycmVudFZhcmlhYmxlcy5pbmRleE9mKHYpO1xuXG4gICAgICBpZiAodmFyaWFibGVJZHggIT09IC0xKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFZhcmlhYmxlcy5zcGxpY2UodmFyaWFibGVJZHgsIDEpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgdmlzaXRCb3VuZEV2ZW50KG5vZGU6IEJvdW5kRXZlbnQpIHtcbiAgICBub2RlLmhhbmRsZXIudmlzaXQodGhpcy5leHByZXNzaW9uQXN0VmlzaXRvciwgbm9kZS5oYW5kbGVyU3Bhbik7XG4gIH1cbn1cblxuLyoqIEFTVCB2aXNpdG9yIHRoYXQgcmVzb2x2ZXMgYWxsIHZhcmlhYmxlIGFzc2lnbm1lbnRzIHdpdGhpbiBhIGdpdmVuIGV4cHJlc3Npb24gQVNULiAqL1xuY2xhc3MgRXhwcmVzc2lvbkFzdFZpc2l0b3IgZXh0ZW5kcyBSZWN1cnNpdmVBc3RWaXNpdG9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIHZhcmlhYmxlQXNzaWdubWVudHM6IFRlbXBsYXRlVmFyaWFibGVBc3NpZ25tZW50W10sXG4gICAgICBwcml2YXRlIGN1cnJlbnRWYXJpYWJsZXM6IFZhcmlhYmxlW10pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgdmlzaXRQcm9wZXJ0eVdyaXRlKG5vZGU6IFByb3BlcnR5V3JpdGUsIHNwYW46IFBhcnNlU291cmNlU3Bhbikge1xuICAgIGlmIChub2RlLnJlY2VpdmVyIGluc3RhbmNlb2YgSW1wbGljaXRSZWNlaXZlciAmJlxuICAgICAgICB0aGlzLmN1cnJlbnRWYXJpYWJsZXMuc29tZSh2ID0+IHYubmFtZSA9PT0gbm9kZS5uYW1lKSkge1xuICAgICAgdGhpcy52YXJpYWJsZUFzc2lnbm1lbnRzLnB1c2goe1xuICAgICAgICBub2RlOiBub2RlLFxuICAgICAgICBzdGFydDogc3Bhbi5zdGFydC5vZmZzZXQsXG4gICAgICAgIGVuZDogc3Bhbi5lbmQub2Zmc2V0LFxuICAgICAgfSk7XG4gICAgfVxuICAgIHN1cGVyLnZpc2l0UHJvcGVydHlXcml0ZShub2RlLCBzcGFuKTtcbiAgfVxufVxuIl19
@@ -97,7 +97,7 @@
97
97
  },
98
98
  "migration-v12-deep-shadow-piercing-selector": {
99
99
  "version": "12.0.2",
100
- "description": "Automatically migrates shadow-piercing selector from `/deep/` to the recommanded alternative `::ng-deep`.",
100
+ "description": "Automatically migrates shadow-piercing selector from `/deep/` to the recommended alternative `::ng-deep`.",
101
101
  "factory": "./migrations/deep-shadow-piercing-selector/index"
102
102
  }
103
103
  }
@@ -1,10 +1,9 @@
1
1
  /**
2
- * @license Angular v12.1.1
2
+ * @license Angular v12.1.5
3
3
  * (c) 2010-2021 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
6
6
 
7
-
8
7
  /**
9
8
  * @description
10
9
  *
@@ -167,7 +166,7 @@ declare abstract class ComponentFactory<C> {
167
166
  * @see [Dynamic Components](guide/dynamic-component-loader)
168
167
  * @see [Usage Example](guide/dynamic-component-loader#resolving-components)
169
168
  * @see <live-example name="dynamic-component-loader" noDownload></live-example>
170
- of the code in this cookbook
169
+ of the code in this cookbook
171
170
  * @publicApi
172
171
  */
173
172
  declare abstract class ComponentFactoryResolver {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v12.1.1
2
+ * @license Angular v12.1.5
3
3
  * (c) 2010-2021 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -619,6 +619,7 @@ export declare class ɵangular_packages_core_testing_testing_a implements TestBe
619
619
  private _compiler;
620
620
  private _moduleRef;
621
621
  private _moduleFactory;
622
+ private _pendingModuleFactory;
622
623
  private _compilerOptions;
623
624
  private _moduleOverrides;
624
625
  private _componentOverrides;
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"ɵangular_packages_core_testing_testing_a":{"__symbolic":"class","members":{"initTestEnvironment":[{"__symbolic":"method"}],"resetTestEnvironment":[{"__symbolic":"method"}],"resetTestingModule":[{"__symbolic":"method"}],"configureCompiler":[{"__symbolic":"method"}],"configureTestingModule":[{"__symbolic":"method"}],"compileComponents":[{"__symbolic":"method"}],"_initIfNeeded":[{"__symbolic":"method"}],"_createCompilerAndModule":[{"__symbolic":"method"}],"_assertNotInstantiated":[{"__symbolic":"method"}],"inject":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"get":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"execute":[{"__symbolic":"method"}],"overrideModule":[{"__symbolic":"method"}],"overrideComponent":[{"__symbolic":"method"}],"overrideDirective":[{"__symbolic":"method"}],"overridePipe":[{"__symbolic":"method"}],"overrideProvider":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"overrideProviderImpl":[{"__symbolic":"method"}],"overrideTemplateUsingTestingModule":[{"__symbolic":"method"}],"createComponent":[{"__symbolic":"method"}],"destroyActiveFixtures":[{"__symbolic":"method"}],"shouldRethrowTeardownErrors":[{"__symbolic":"method"}],"shouldTearDownTestingModule":[{"__symbolic":"method"}],"tearDownTestingModule":[{"__symbolic":"method"}]},"statics":{"_environmentTeardownOptions":{"__symbolic":"error","message":"Variable not initialized","line":106,"character":17},"compileComponents":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"getTestBed"}},"member":"compileComponents"}}},"inject":{"__symbolic":"function","parameters":["token","notFoundValue","flags"],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":743,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}},"get":{"__symbolic":"function","parameters":["token","notFoundValue","flags"],"defaults":[null,{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":244,"character":39},"member":"THROW_IF_NOT_FOUND"},{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectFlags","line":245,"character":27},"member":"Default"}],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":743,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}},"createComponent":{"__symbolic":"function","parameters":["component"],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":743,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}},"shouldTearDownTestingModule":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":743,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}}}},"waitForAsync":{"__symbolic":"function"},"async":{"__symbolic":"function","parameters":["fn"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"waitForAsync"},"arguments":[{"__symbolic":"reference","name":"fn"}]}},"ComponentFixture":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ComponentRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":53,"character":40,"context":{"typeName":"T"},"module":"./testing"}]},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":53,"character":59},{"__symbolic":"reference","name":"boolean"}]}],"_tick":[{"__symbolic":"method"}],"detectChanges":[{"__symbolic":"method"}],"checkNoChanges":[{"__symbolic":"method"}],"autoDetectChanges":[{"__symbolic":"method"}],"isStable":[{"__symbolic":"method"}],"whenStable":[{"__symbolic":"method"}],"_getRenderer":[{"__symbolic":"method"}],"whenRenderingDone":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}]}},"resetFakeAsyncZone":{"__symbolic":"function"},"fakeAsync":{"__symbolic":"function"},"tick":{"__symbolic":"function"},"flush":{"__symbolic":"function"},"discardPeriodicTasks":{"__symbolic":"function"},"flushMicrotasks":{"__symbolic":"function"},"TestBed":{"__symbolic":"if","condition":{"__symbolic":"reference","module":"@angular/core","name":"ɵivyEnabled","line":730,"character":4},"thenExpression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_b"},"elseExpression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_a"}},"getTestBed":{"__symbolic":"if","condition":{"__symbolic":"reference","module":"@angular/core","name":"ɵivyEnabled","line":739,"character":41},"thenExpression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"},"elseExpression":{"__symbolic":"error","message":"Reference to a non-exported function","line":743,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}},"inject":{"__symbolic":"function"},"InjectSetupWrapper":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":778,"character":34,"module":"./testing"}]}],"_addModule":[{"__symbolic":"method"}],"inject":[{"__symbolic":"method"}]}},"withModule":{"__symbolic":"function"},"TestComponentRenderer":{"__symbolic":"class","members":{"insertRootElement":[{"__symbolic":"method"}],"removeAllRootElements":[{"__symbolic":"method"}]}},"ComponentFixtureAutoDetect":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":34,"character":8},"arguments":["ComponentFixtureAutoDetect"]},"ComponentFixtureNoNgZone":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":39,"character":44},"arguments":["ComponentFixtureNoNgZone"]},"TestModuleMetadata":{"__symbolic":"interface"},"TestEnvironmentOptions":{"__symbolic":"interface"},"ModuleTeardownOptions":{"__symbolic":"interface"},"TestBedStatic":{"__symbolic":"interface"},"MetadataOverride":{"__symbolic":"interface"},"ɵMetadataOverrider":{"__symbolic":"class","members":{"overrideMetadata":[{"__symbolic":"method"}]}},"ɵTestingCompiler":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/core","name":"Compiler","line":22,"character":37},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":21,"character":1}}],"members":{"overrideModule":[{"__symbolic":"method"}],"overrideDirective":[{"__symbolic":"method"}],"overrideComponent":[{"__symbolic":"method"}],"overridePipe":[{"__symbolic":"method"}],"loadAotSummaries":[{"__symbolic":"method"}],"getComponentFactory":[{"__symbolic":"method"}],"getComponentFromError":[{"__symbolic":"method"}]}},"ɵTestingCompilerFactory":{"__symbolic":"class","members":{"createTestingCompiler":[{"__symbolic":"method"}]}},"ɵangular_packages_core_testing_testing_b":{"__symbolic":"class","members":{"initTestEnvironment":[{"__symbolic":"method"}],"resetTestEnvironment":[{"__symbolic":"method"}],"resetTestingModule":[{"__symbolic":"method"}],"configureCompiler":[{"__symbolic":"method"}],"configureTestingModule":[{"__symbolic":"method"}],"compileComponents":[{"__symbolic":"method"}],"inject":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"get":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"execute":[{"__symbolic":"method"}],"overrideModule":[{"__symbolic":"method"}],"overrideComponent":[{"__symbolic":"method"}],"overrideTemplateUsingTestingModule":[{"__symbolic":"method"}],"overrideDirective":[{"__symbolic":"method"}],"overridePipe":[{"__symbolic":"method"}],"overrideProvider":[{"__symbolic":"method"}],"createComponent":[{"__symbolic":"method"}],"assertNotInstantiated":[{"__symbolic":"method"}],"checkGlobalCompilationFinished":[{"__symbolic":"method"}],"destroyActiveFixtures":[{"__symbolic":"method"}],"shouldRethrowTeardownErrors":[{"__symbolic":"method"}],"shouldTearDownTestingModule":[{"__symbolic":"method"}],"tearDownTestingModule":[{"__symbolic":"method"}]},"statics":{"_environmentTeardownOptions":{"__symbolic":"error","message":"Variable not initialized","line":58,"character":17},"compileComponents":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"compileComponents"}}},"inject":{"__symbolic":"function","parameters":["token","notFoundValue","flags"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"inject"},"arguments":[{"__symbolic":"reference","name":"token"},{"__symbolic":"reference","name":"notFoundValue"},{"__symbolic":"reference","name":"flags"}]}},"get":{"__symbolic":"function","parameters":["token","notFoundValue","flags"],"defaults":[null,{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":183,"character":39},"member":"THROW_IF_NOT_FOUND"},{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectFlags","line":184,"character":27},"member":"Default"}],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"inject"},"arguments":[{"__symbolic":"reference","name":"token"},{"__symbolic":"reference","name":"notFoundValue"},{"__symbolic":"reference","name":"flags"}]}},"createComponent":{"__symbolic":"function","parameters":["component"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"createComponent"},"arguments":[{"__symbolic":"reference","name":"component"}]}},"shouldTearDownTestingModule":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"shouldTearDownTestingModule"}}}}},"ɵangular_packages_core_testing_testing_c":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"binop","operator":"=","left":{"__symbolic":"error","message":"Reference to a local symbol","line":515,"character":4,"context":{"name":"testBed"},"module":"./testing"},"right":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"error","message":"Reference to a local symbol","line":515,"character":4,"context":{"name":"testBed"},"module":"./testing"},"right":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_b"}}}}}},"origins":{"ɵangular_packages_core_testing_testing_a":"./testing","waitForAsync":"./testing","async":"./testing","ComponentFixture":"./testing","resetFakeAsyncZone":"./testing","fakeAsync":"./testing","tick":"./testing","flush":"./testing","discardPeriodicTasks":"./testing","flushMicrotasks":"./testing","TestBed":"./testing","getTestBed":"./testing","inject":"./testing","InjectSetupWrapper":"./testing","withModule":"./testing","TestComponentRenderer":"./testing","ComponentFixtureAutoDetect":"./testing","ComponentFixtureNoNgZone":"./testing","TestModuleMetadata":"./testing","TestEnvironmentOptions":"./testing","ModuleTeardownOptions":"./testing","TestBedStatic":"./testing","__core_private_testing_placeholder__":"./testing","MetadataOverride":"./testing","ɵMetadataOverrider":"./testing","ɵTestingCompiler":"./testing","ɵTestingCompilerFactory":"./testing","ɵangular_packages_core_testing_testing_b":"./testing","ɵangular_packages_core_testing_testing_c":"./testing"},"importAs":"@angular/core/testing"}
1
+ {"__symbolic":"module","version":4,"metadata":{"ɵangular_packages_core_testing_testing_a":{"__symbolic":"class","members":{"initTestEnvironment":[{"__symbolic":"method"}],"resetTestEnvironment":[{"__symbolic":"method"}],"resetTestingModule":[{"__symbolic":"method"}],"configureCompiler":[{"__symbolic":"method"}],"configureTestingModule":[{"__symbolic":"method"}],"compileComponents":[{"__symbolic":"method"}],"_initIfNeeded":[{"__symbolic":"method"}],"_createCompilerAndModule":[{"__symbolic":"method"}],"_assertNotInstantiated":[{"__symbolic":"method"}],"inject":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"get":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"execute":[{"__symbolic":"method"}],"overrideModule":[{"__symbolic":"method"}],"overrideComponent":[{"__symbolic":"method"}],"overrideDirective":[{"__symbolic":"method"}],"overridePipe":[{"__symbolic":"method"}],"overrideProvider":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"overrideProviderImpl":[{"__symbolic":"method"}],"overrideTemplateUsingTestingModule":[{"__symbolic":"method"}],"createComponent":[{"__symbolic":"method"}],"destroyActiveFixtures":[{"__symbolic":"method"}],"shouldRethrowTeardownErrors":[{"__symbolic":"method"}],"shouldTearDownTestingModule":[{"__symbolic":"method"}],"tearDownTestingModule":[{"__symbolic":"method"}]},"statics":{"_environmentTeardownOptions":{"__symbolic":"error","message":"Variable not initialized","line":106,"character":17},"compileComponents":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"getTestBed"}},"member":"compileComponents"}}},"inject":{"__symbolic":"function","parameters":["token","notFoundValue","flags"],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":751,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}},"get":{"__symbolic":"function","parameters":["token","notFoundValue","flags"],"defaults":[null,{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":244,"character":39},"member":"THROW_IF_NOT_FOUND"},{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectFlags","line":245,"character":27},"member":"Default"}],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":751,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}},"createComponent":{"__symbolic":"function","parameters":["component"],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":751,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}},"shouldTearDownTestingModule":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":751,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}}}},"waitForAsync":{"__symbolic":"function"},"async":{"__symbolic":"function","parameters":["fn"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"waitForAsync"},"arguments":[{"__symbolic":"reference","name":"fn"}]}},"ComponentFixture":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ComponentRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":53,"character":40,"context":{"typeName":"T"},"module":"./testing"}]},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":53,"character":59},{"__symbolic":"reference","name":"boolean"}]}],"_tick":[{"__symbolic":"method"}],"detectChanges":[{"__symbolic":"method"}],"checkNoChanges":[{"__symbolic":"method"}],"autoDetectChanges":[{"__symbolic":"method"}],"isStable":[{"__symbolic":"method"}],"whenStable":[{"__symbolic":"method"}],"_getRenderer":[{"__symbolic":"method"}],"whenRenderingDone":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}]}},"resetFakeAsyncZone":{"__symbolic":"function"},"fakeAsync":{"__symbolic":"function"},"tick":{"__symbolic":"function"},"flush":{"__symbolic":"function"},"discardPeriodicTasks":{"__symbolic":"function"},"flushMicrotasks":{"__symbolic":"function"},"TestBed":{"__symbolic":"if","condition":{"__symbolic":"reference","module":"@angular/core","name":"ɵivyEnabled","line":738,"character":4},"thenExpression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_b"},"elseExpression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_a"}},"getTestBed":{"__symbolic":"if","condition":{"__symbolic":"reference","module":"@angular/core","name":"ɵivyEnabled","line":747,"character":41},"thenExpression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"},"elseExpression":{"__symbolic":"error","message":"Reference to a non-exported function","line":751,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}},"inject":{"__symbolic":"function"},"InjectSetupWrapper":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":786,"character":34,"module":"./testing"}]}],"_addModule":[{"__symbolic":"method"}],"inject":[{"__symbolic":"method"}]}},"withModule":{"__symbolic":"function"},"TestComponentRenderer":{"__symbolic":"class","members":{"insertRootElement":[{"__symbolic":"method"}],"removeAllRootElements":[{"__symbolic":"method"}]}},"ComponentFixtureAutoDetect":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":34,"character":8},"arguments":["ComponentFixtureAutoDetect"]},"ComponentFixtureNoNgZone":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":39,"character":44},"arguments":["ComponentFixtureNoNgZone"]},"TestModuleMetadata":{"__symbolic":"interface"},"TestEnvironmentOptions":{"__symbolic":"interface"},"ModuleTeardownOptions":{"__symbolic":"interface"},"TestBedStatic":{"__symbolic":"interface"},"MetadataOverride":{"__symbolic":"interface"},"ɵMetadataOverrider":{"__symbolic":"class","members":{"overrideMetadata":[{"__symbolic":"method"}]}},"ɵTestingCompiler":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/core","name":"Compiler","line":22,"character":37},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":21,"character":1}}],"members":{"overrideModule":[{"__symbolic":"method"}],"overrideDirective":[{"__symbolic":"method"}],"overrideComponent":[{"__symbolic":"method"}],"overridePipe":[{"__symbolic":"method"}],"loadAotSummaries":[{"__symbolic":"method"}],"getComponentFactory":[{"__symbolic":"method"}],"getComponentFromError":[{"__symbolic":"method"}]}},"ɵTestingCompilerFactory":{"__symbolic":"class","members":{"createTestingCompiler":[{"__symbolic":"method"}]}},"ɵangular_packages_core_testing_testing_b":{"__symbolic":"class","members":{"initTestEnvironment":[{"__symbolic":"method"}],"resetTestEnvironment":[{"__symbolic":"method"}],"resetTestingModule":[{"__symbolic":"method"}],"configureCompiler":[{"__symbolic":"method"}],"configureTestingModule":[{"__symbolic":"method"}],"compileComponents":[{"__symbolic":"method"}],"inject":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"get":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"execute":[{"__symbolic":"method"}],"overrideModule":[{"__symbolic":"method"}],"overrideComponent":[{"__symbolic":"method"}],"overrideTemplateUsingTestingModule":[{"__symbolic":"method"}],"overrideDirective":[{"__symbolic":"method"}],"overridePipe":[{"__symbolic":"method"}],"overrideProvider":[{"__symbolic":"method"}],"createComponent":[{"__symbolic":"method"}],"assertNotInstantiated":[{"__symbolic":"method"}],"checkGlobalCompilationFinished":[{"__symbolic":"method"}],"destroyActiveFixtures":[{"__symbolic":"method"}],"shouldRethrowTeardownErrors":[{"__symbolic":"method"}],"shouldTearDownTestingModule":[{"__symbolic":"method"}],"tearDownTestingModule":[{"__symbolic":"method"}]},"statics":{"_environmentTeardownOptions":{"__symbolic":"error","message":"Variable not initialized","line":58,"character":17},"compileComponents":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"compileComponents"}}},"inject":{"__symbolic":"function","parameters":["token","notFoundValue","flags"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"inject"},"arguments":[{"__symbolic":"reference","name":"token"},{"__symbolic":"reference","name":"notFoundValue"},{"__symbolic":"reference","name":"flags"}]}},"get":{"__symbolic":"function","parameters":["token","notFoundValue","flags"],"defaults":[null,{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":183,"character":39},"member":"THROW_IF_NOT_FOUND"},{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectFlags","line":184,"character":27},"member":"Default"}],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"inject"},"arguments":[{"__symbolic":"reference","name":"token"},{"__symbolic":"reference","name":"notFoundValue"},{"__symbolic":"reference","name":"flags"}]}},"createComponent":{"__symbolic":"function","parameters":["component"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"createComponent"},"arguments":[{"__symbolic":"reference","name":"component"}]}},"shouldTearDownTestingModule":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"shouldTearDownTestingModule"}}}}},"ɵangular_packages_core_testing_testing_c":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"binop","operator":"=","left":{"__symbolic":"error","message":"Reference to a local symbol","line":515,"character":4,"context":{"name":"testBed"},"module":"./testing"},"right":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"error","message":"Reference to a local symbol","line":515,"character":4,"context":{"name":"testBed"},"module":"./testing"},"right":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_b"}}}}}},"origins":{"ɵangular_packages_core_testing_testing_a":"./testing","waitForAsync":"./testing","async":"./testing","ComponentFixture":"./testing","resetFakeAsyncZone":"./testing","fakeAsync":"./testing","tick":"./testing","flush":"./testing","discardPeriodicTasks":"./testing","flushMicrotasks":"./testing","TestBed":"./testing","getTestBed":"./testing","inject":"./testing","InjectSetupWrapper":"./testing","withModule":"./testing","TestComponentRenderer":"./testing","ComponentFixtureAutoDetect":"./testing","ComponentFixtureNoNgZone":"./testing","TestModuleMetadata":"./testing","TestEnvironmentOptions":"./testing","ModuleTeardownOptions":"./testing","TestBedStatic":"./testing","__core_private_testing_placeholder__":"./testing","MetadataOverride":"./testing","ɵMetadataOverrider":"./testing","ɵTestingCompiler":"./testing","ɵTestingCompilerFactory":"./testing","ɵangular_packages_core_testing_testing_b":"./testing","ɵangular_packages_core_testing_testing_c":"./testing"},"importAs":"@angular/core/testing"}
package/testing.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v12.1.1
2
+ * @license Angular v12.1.5
3
3
  * (c) 2010-2021 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -1,47 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import { SchematicsException } from '@angular-devkit/schematics';
9
- import { relative } from 'path';
10
- import { getProjectTsConfigPaths } from '../../utils/project_tsconfig_paths';
11
- import { canMigrateFile, createMigrationProgram } from '../../utils/typescript/compiler_host';
12
- import { findParentAccesses } from './util';
13
- /** Migration that marks accesses of `AbstractControl.parent` as non-null. */
14
- export default function () {
15
- return (tree) => {
16
- const { buildPaths, testPaths } = getProjectTsConfigPaths(tree);
17
- const basePath = process.cwd();
18
- const allPaths = [...buildPaths, ...testPaths];
19
- if (!allPaths.length) {
20
- throw new SchematicsException('Could not find any tsconfig file. Cannot migrate AbstractControl.parent accesses.');
21
- }
22
- for (const tsconfigPath of allPaths) {
23
- runNativeAbstractControlParentMigration(tree, tsconfigPath, basePath);
24
- }
25
- };
26
- }
27
- function runNativeAbstractControlParentMigration(tree, tsconfigPath, basePath) {
28
- const { program } = createMigrationProgram(tree, tsconfigPath, basePath);
29
- const typeChecker = program.getTypeChecker();
30
- const sourceFiles = program.getSourceFiles().filter(sourceFile => canMigrateFile(basePath, sourceFile, program));
31
- sourceFiles.forEach(sourceFile => {
32
- // We sort the nodes based on their position in the file and we offset the positions by one
33
- // for each non-null assertion that we've added. We have to do it this way, rather than
34
- // creating and printing a new AST node like in other migrations, because property access
35
- // expressions can be nested (e.g. `control.parent.parent.value`), but the node positions
36
- // aren't being updated as we're inserting new code. If we were to go through the AST,
37
- // we'd have to update the `SourceFile` and start over after each operation.
38
- findParentAccesses(typeChecker, sourceFile)
39
- .sort((a, b) => a.getStart() - b.getStart())
40
- .forEach((node, index) => {
41
- const update = tree.beginUpdate(relative(basePath, sourceFile.fileName));
42
- update.insertRight(node.getStart() + node.getWidth() + index, '!');
43
- tree.commitUpdate(update);
44
- });
45
- });
46
- }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NjaGVtYXRpY3MvbWlncmF0aW9ucy9hYnN0cmFjdC1jb250cm9sLXBhcmVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQU8sbUJBQW1CLEVBQU8sTUFBTSw0QkFBNEIsQ0FBQztBQUMzRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTlCLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxjQUFjLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFHMUMsNkVBQTZFO0FBQzdFLE1BQU0sQ0FBQyxPQUFPO0lBQ1osT0FBTyxDQUFDLElBQVUsRUFBRSxFQUFFO1FBQ3BCLE1BQU0sRUFBQyxVQUFVLEVBQUUsU0FBUyxFQUFDLEdBQUcsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQy9CLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxVQUFVLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUUvQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUNwQixNQUFNLElBQUksbUJBQW1CLENBQ3pCLG1GQUFtRixDQUFDLENBQUM7U0FDMUY7UUFFRCxLQUFLLE1BQU0sWUFBWSxJQUFJLFFBQVEsRUFBRTtZQUNuQyx1Q0FBdUMsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ3ZFO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsdUNBQXVDLENBQzVDLElBQVUsRUFBRSxZQUFvQixFQUFFLFFBQWdCO0lBQ3BELE1BQU0sRUFBQyxPQUFPLEVBQUMsR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZFLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM3QyxNQUFNLFdBQVcsR0FDYixPQUFPLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUVqRyxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQy9CLDJGQUEyRjtRQUMzRix1RkFBdUY7UUFDdkYseUZBQXlGO1FBQ3pGLHlGQUF5RjtRQUN6RixzRkFBc0Y7UUFDdEYsNEVBQTRFO1FBQzVFLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUM7YUFDdEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUMzQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDdkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDbkUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNULENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1J1bGUsIFNjaGVtYXRpY3NFeGNlcHRpb24sIFRyZWV9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzJztcbmltcG9ydCB7cmVsYXRpdmV9IGZyb20gJ3BhdGgnO1xuXG5pbXBvcnQge2dldFByb2plY3RUc0NvbmZpZ1BhdGhzfSBmcm9tICcuLi8uLi91dGlscy9wcm9qZWN0X3RzY29uZmlnX3BhdGhzJztcbmltcG9ydCB7Y2FuTWlncmF0ZUZpbGUsIGNyZWF0ZU1pZ3JhdGlvblByb2dyYW19IGZyb20gJy4uLy4uL3V0aWxzL3R5cGVzY3JpcHQvY29tcGlsZXJfaG9zdCc7XG5pbXBvcnQge2ZpbmRQYXJlbnRBY2Nlc3Nlc30gZnJvbSAnLi91dGlsJztcblxuXG4vKiogTWlncmF0aW9uIHRoYXQgbWFya3MgYWNjZXNzZXMgb2YgYEFic3RyYWN0Q29udHJvbC5wYXJlbnRgIGFzIG5vbi1udWxsLiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKTogUnVsZSB7XG4gIHJldHVybiAodHJlZTogVHJlZSkgPT4ge1xuICAgIGNvbnN0IHtidWlsZFBhdGhzLCB0ZXN0UGF0aHN9ID0gZ2V0UHJvamVjdFRzQ29uZmlnUGF0aHModHJlZSk7XG4gICAgY29uc3QgYmFzZVBhdGggPSBwcm9jZXNzLmN3ZCgpO1xuICAgIGNvbnN0IGFsbFBhdGhzID0gWy4uLmJ1aWxkUGF0aHMsIC4uLnRlc3RQYXRoc107XG5cbiAgICBpZiAoIWFsbFBhdGhzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IFNjaGVtYXRpY3NFeGNlcHRpb24oXG4gICAgICAgICAgJ0NvdWxkIG5vdCBmaW5kIGFueSB0c2NvbmZpZyBmaWxlLiBDYW5ub3QgbWlncmF0ZSBBYnN0cmFjdENvbnRyb2wucGFyZW50IGFjY2Vzc2VzLicpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgdHNjb25maWdQYXRoIG9mIGFsbFBhdGhzKSB7XG4gICAgICBydW5OYXRpdmVBYnN0cmFjdENvbnRyb2xQYXJlbnRNaWdyYXRpb24odHJlZSwgdHNjb25maWdQYXRoLCBiYXNlUGF0aCk7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBydW5OYXRpdmVBYnN0cmFjdENvbnRyb2xQYXJlbnRNaWdyYXRpb24oXG4gICAgdHJlZTogVHJlZSwgdHNjb25maWdQYXRoOiBzdHJpbmcsIGJhc2VQYXRoOiBzdHJpbmcpIHtcbiAgY29uc3Qge3Byb2dyYW19ID0gY3JlYXRlTWlncmF0aW9uUHJvZ3JhbSh0cmVlLCB0c2NvbmZpZ1BhdGgsIGJhc2VQYXRoKTtcbiAgY29uc3QgdHlwZUNoZWNrZXIgPSBwcm9ncmFtLmdldFR5cGVDaGVja2VyKCk7XG4gIGNvbnN0IHNvdXJjZUZpbGVzID1cbiAgICAgIHByb2dyYW0uZ2V0U291cmNlRmlsZXMoKS5maWx0ZXIoc291cmNlRmlsZSA9PiBjYW5NaWdyYXRlRmlsZShiYXNlUGF0aCwgc291cmNlRmlsZSwgcHJvZ3JhbSkpO1xuXG4gIHNvdXJjZUZpbGVzLmZvckVhY2goc291cmNlRmlsZSA9PiB7XG4gICAgLy8gV2Ugc29ydCB0aGUgbm9kZXMgYmFzZWQgb24gdGhlaXIgcG9zaXRpb24gaW4gdGhlIGZpbGUgYW5kIHdlIG9mZnNldCB0aGUgcG9zaXRpb25zIGJ5IG9uZVxuICAgIC8vIGZvciBlYWNoIG5vbi1udWxsIGFzc2VydGlvbiB0aGF0IHdlJ3ZlIGFkZGVkLiBXZSBoYXZlIHRvIGRvIGl0IHRoaXMgd2F5LCByYXRoZXIgdGhhblxuICAgIC8vIGNyZWF0aW5nIGFuZCBwcmludGluZyBhIG5ldyBBU1Qgbm9kZSBsaWtlIGluIG90aGVyIG1pZ3JhdGlvbnMsIGJlY2F1c2UgcHJvcGVydHkgYWNjZXNzXG4gICAgLy8gZXhwcmVzc2lvbnMgY2FuIGJlIG5lc3RlZCAoZS5nLiBgY29udHJvbC5wYXJlbnQucGFyZW50LnZhbHVlYCksIGJ1dCB0aGUgbm9kZSBwb3NpdGlvbnNcbiAgICAvLyBhcmVuJ3QgYmVpbmcgdXBkYXRlZCBhcyB3ZSdyZSBpbnNlcnRpbmcgbmV3IGNvZGUuIElmIHdlIHdlcmUgdG8gZ28gdGhyb3VnaCB0aGUgQVNULFxuICAgIC8vIHdlJ2QgaGF2ZSB0byB1cGRhdGUgdGhlIGBTb3VyY2VGaWxlYCBhbmQgc3RhcnQgb3ZlciBhZnRlciBlYWNoIG9wZXJhdGlvbi5cbiAgICBmaW5kUGFyZW50QWNjZXNzZXModHlwZUNoZWNrZXIsIHNvdXJjZUZpbGUpXG4gICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmdldFN0YXJ0KCkgLSBiLmdldFN0YXJ0KCkpXG4gICAgICAgIC5mb3JFYWNoKChub2RlLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZSA9IHRyZWUuYmVnaW5VcGRhdGUocmVsYXRpdmUoYmFzZVBhdGgsIHNvdXJjZUZpbGUuZmlsZU5hbWUpKTtcbiAgICAgICAgICB1cGRhdGUuaW5zZXJ0UmlnaHQobm9kZS5nZXRTdGFydCgpICsgbm9kZS5nZXRXaWR0aCgpICsgaW5kZXgsICchJyk7XG4gICAgICAgICAgdHJlZS5jb21taXRVcGRhdGUodXBkYXRlKTtcbiAgICAgICAgfSk7XG4gIH0pO1xufVxuIl19
@@ -1,50 +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
- import { normalize } from 'path';
9
- import * as ts from 'typescript';
10
- import { isNullCheck, isSafeAccess } from '../../utils/typescript/nodes';
11
- import { hasOneOfTypes, isNullableType } from '../../utils/typescript/symbol';
12
- /** Names of symbols from `@angular/forms` whose `parent` accesses have to be migrated. */
13
- const abstractControlSymbols = ['AbstractControl', 'FormArray', 'FormControl', 'FormGroup'];
14
- /**
15
- * Finds the `PropertyAccessExpression`-s that are accessing the `parent` property in
16
- * such a way that may result in a compilation error after the v11 type changes.
17
- */
18
- export function findParentAccesses(typeChecker, sourceFile) {
19
- const results = [];
20
- sourceFile.forEachChild(function walk(node) {
21
- if (ts.isPropertyAccessExpression(node) && node.name.text === 'parent' && !isNullCheck(node) &&
22
- !isSafeAccess(node) && results.indexOf(node) === -1 &&
23
- isAbstractControlReference(typeChecker, node) && isNullableType(typeChecker, node)) {
24
- results.unshift(node);
25
- }
26
- node.forEachChild(walk);
27
- });
28
- return results;
29
- }
30
- /** Checks whether a property access is on an `AbstractControl` coming from `@angular/forms`. */
31
- function isAbstractControlReference(typeChecker, node) {
32
- var _a, _b;
33
- let current = node;
34
- const formsPattern = /node_modules\/?.*\/@angular\/forms/;
35
- // Walks up the property access chain and tries to find a symbol tied to a `SourceFile`.
36
- // If such a node is found, we check whether the type is one of the `AbstractControl` symbols
37
- // and whether it comes from the `@angular/forms` directory in the `node_modules`.
38
- while (ts.isPropertyAccessExpression(current)) {
39
- const symbol = (_a = typeChecker.getTypeAtLocation(current.expression)) === null || _a === void 0 ? void 0 : _a.getSymbol();
40
- if (symbol) {
41
- const sourceFile = (_b = symbol.valueDeclaration) === null || _b === void 0 ? void 0 : _b.getSourceFile();
42
- return sourceFile != null &&
43
- formsPattern.test(normalize(sourceFile.fileName).replace(/\\/g, '/')) &&
44
- hasOneOfTypes(typeChecker, current.expression, abstractControlSymbols);
45
- }
46
- current = current.expression;
47
- }
48
- return false;
49
- }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc2NoZW1hdGljcy9taWdyYXRpb25zL2Fic3RyYWN0LWNvbnRyb2wtcGFyZW50L3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNqQyxPQUFPLEVBQUMsV0FBVyxFQUFFLFlBQVksRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxhQUFhLEVBQUUsY0FBYyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFNUUsMEZBQTBGO0FBQzFGLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBRTVGOzs7R0FHRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FDOUIsV0FBMkIsRUFBRSxVQUF5QjtJQUN4RCxNQUFNLE9BQU8sR0FBa0MsRUFBRSxDQUFDO0lBRWxELFVBQVUsQ0FBQyxZQUFZLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBYTtRQUNqRCxJQUFJLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ3hGLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25ELDBCQUEwQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxjQUFjLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ3RGLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkI7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVELGdHQUFnRztBQUNoRyxTQUFTLDBCQUEwQixDQUMvQixXQUEyQixFQUFFLElBQWlDOztJQUNoRSxJQUFJLE9BQU8sR0FBa0IsSUFBSSxDQUFDO0lBQ2xDLE1BQU0sWUFBWSxHQUFHLG9DQUFvQyxDQUFDO0lBQzFELHdGQUF3RjtJQUN4Riw2RkFBNkY7SUFDN0Ysa0ZBQWtGO0lBQ2xGLE9BQU8sRUFBRSxDQUFDLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzdDLE1BQU0sTUFBTSxHQUFHLE1BQUEsV0FBVyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsMENBQUUsU0FBUyxFQUFFLENBQUM7UUFDOUUsSUFBSSxNQUFNLEVBQUU7WUFDVixNQUFNLFVBQVUsR0FBRyxNQUFBLE1BQU0sQ0FBQyxnQkFBZ0IsMENBQUUsYUFBYSxFQUFFLENBQUM7WUFDNUQsT0FBTyxVQUFVLElBQUksSUFBSTtnQkFDckIsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3JFLGFBQWEsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1NBQzVFO1FBQ0QsT0FBTyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7S0FDOUI7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtub3JtYWxpemV9IGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQge2lzTnVsbENoZWNrLCBpc1NhZmVBY2Nlc3N9IGZyb20gJy4uLy4uL3V0aWxzL3R5cGVzY3JpcHQvbm9kZXMnO1xuaW1wb3J0IHtoYXNPbmVPZlR5cGVzLCBpc051bGxhYmxlVHlwZX0gZnJvbSAnLi4vLi4vdXRpbHMvdHlwZXNjcmlwdC9zeW1ib2wnO1xuXG4vKiogTmFtZXMgb2Ygc3ltYm9scyBmcm9tIGBAYW5ndWxhci9mb3Jtc2Agd2hvc2UgYHBhcmVudGAgYWNjZXNzZXMgaGF2ZSB0byBiZSBtaWdyYXRlZC4gKi9cbmNvbnN0IGFic3RyYWN0Q29udHJvbFN5bWJvbHMgPSBbJ0Fic3RyYWN0Q29udHJvbCcsICdGb3JtQXJyYXknLCAnRm9ybUNvbnRyb2wnLCAnRm9ybUdyb3VwJ107XG5cbi8qKlxuICogRmluZHMgdGhlIGBQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb25gLXMgdGhhdCBhcmUgYWNjZXNzaW5nIHRoZSBgcGFyZW50YCBwcm9wZXJ0eSBpblxuICogc3VjaCBhIHdheSB0aGF0IG1heSByZXN1bHQgaW4gYSBjb21waWxhdGlvbiBlcnJvciBhZnRlciB0aGUgdjExIHR5cGUgY2hhbmdlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRQYXJlbnRBY2Nlc3NlcyhcbiAgICB0eXBlQ2hlY2tlcjogdHMuVHlwZUNoZWNrZXIsIHNvdXJjZUZpbGU6IHRzLlNvdXJjZUZpbGUpOiB0cy5Qcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb25bXSB7XG4gIGNvbnN0IHJlc3VsdHM6IHRzLlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbltdID0gW107XG5cbiAgc291cmNlRmlsZS5mb3JFYWNoQ2hpbGQoZnVuY3Rpb24gd2Fsayhub2RlOiB0cy5Ob2RlKSB7XG4gICAgaWYgKHRzLmlzUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uKG5vZGUpICYmIG5vZGUubmFtZS50ZXh0ID09PSAncGFyZW50JyAmJiAhaXNOdWxsQ2hlY2sobm9kZSkgJiZcbiAgICAgICAgIWlzU2FmZUFjY2Vzcyhub2RlKSAmJiByZXN1bHRzLmluZGV4T2Yobm9kZSkgPT09IC0xICYmXG4gICAgICAgIGlzQWJzdHJhY3RDb250cm9sUmVmZXJlbmNlKHR5cGVDaGVja2VyLCBub2RlKSAmJiBpc051bGxhYmxlVHlwZSh0eXBlQ2hlY2tlciwgbm9kZSkpIHtcbiAgICAgIHJlc3VsdHMudW5zaGlmdChub2RlKTtcbiAgICB9XG5cbiAgICBub2RlLmZvckVhY2hDaGlsZCh3YWxrKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHJlc3VsdHM7XG59XG5cbi8qKiBDaGVja3Mgd2hldGhlciBhIHByb3BlcnR5IGFjY2VzcyBpcyBvbiBhbiBgQWJzdHJhY3RDb250cm9sYCBjb21pbmcgZnJvbSBgQGFuZ3VsYXIvZm9ybXNgLiAqL1xuZnVuY3Rpb24gaXNBYnN0cmFjdENvbnRyb2xSZWZlcmVuY2UoXG4gICAgdHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyLCBub2RlOiB0cy5Qcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24pOiBib29sZWFuIHtcbiAgbGV0IGN1cnJlbnQ6IHRzLkV4cHJlc3Npb24gPSBub2RlO1xuICBjb25zdCBmb3Jtc1BhdHRlcm4gPSAvbm9kZV9tb2R1bGVzXFwvPy4qXFwvQGFuZ3VsYXJcXC9mb3Jtcy87XG4gIC8vIFdhbGtzIHVwIHRoZSBwcm9wZXJ0eSBhY2Nlc3MgY2hhaW4gYW5kIHRyaWVzIHRvIGZpbmQgYSBzeW1ib2wgdGllZCB0byBhIGBTb3VyY2VGaWxlYC5cbiAgLy8gSWYgc3VjaCBhIG5vZGUgaXMgZm91bmQsIHdlIGNoZWNrIHdoZXRoZXIgdGhlIHR5cGUgaXMgb25lIG9mIHRoZSBgQWJzdHJhY3RDb250cm9sYCBzeW1ib2xzXG4gIC8vIGFuZCB3aGV0aGVyIGl0IGNvbWVzIGZyb20gdGhlIGBAYW5ndWxhci9mb3Jtc2AgZGlyZWN0b3J5IGluIHRoZSBgbm9kZV9tb2R1bGVzYC5cbiAgd2hpbGUgKHRzLmlzUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uKGN1cnJlbnQpKSB7XG4gICAgY29uc3Qgc3ltYm9sID0gdHlwZUNoZWNrZXIuZ2V0VHlwZUF0TG9jYXRpb24oY3VycmVudC5leHByZXNzaW9uKT8uZ2V0U3ltYm9sKCk7XG4gICAgaWYgKHN5bWJvbCkge1xuICAgICAgY29uc3Qgc291cmNlRmlsZSA9IHN5bWJvbC52YWx1ZURlY2xhcmF0aW9uPy5nZXRTb3VyY2VGaWxlKCk7XG4gICAgICByZXR1cm4gc291cmNlRmlsZSAhPSBudWxsICYmXG4gICAgICAgICAgZm9ybXNQYXR0ZXJuLnRlc3Qobm9ybWFsaXplKHNvdXJjZUZpbGUuZmlsZU5hbWUpLnJlcGxhY2UoL1xcXFwvZywgJy8nKSkgJiZcbiAgICAgICAgICBoYXNPbmVPZlR5cGVzKHR5cGVDaGVja2VyLCBjdXJyZW50LmV4cHJlc3Npb24sIGFic3RyYWN0Q29udHJvbFN5bWJvbHMpO1xuICAgIH1cbiAgICBjdXJyZW50ID0gY3VycmVudC5leHByZXNzaW9uO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==
@@ -1,48 +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
- import { SchematicsException } from '@angular-devkit/schematics';
9
- import { relative } from 'path';
10
- import * as ts from 'typescript';
11
- import { getProjectTsConfigPaths } from '../../utils/project_tsconfig_paths';
12
- import { canMigrateFile, createMigrationProgram } from '../../utils/typescript/compiler_host';
13
- import { findFragmentAccesses, migrateActivatedRouteSnapshotFragment } from './util';
14
- /**
15
- * Migration that marks accesses of `ActivatedRouteSnapshot.fragment` as non-null.
16
- */
17
- export default function () {
18
- return (tree) => {
19
- const { buildPaths, testPaths } = getProjectTsConfigPaths(tree);
20
- const basePath = process.cwd();
21
- const allPaths = [...buildPaths, ...testPaths];
22
- if (!allPaths.length) {
23
- throw new SchematicsException('Could not find any tsconfig file. Cannot migrate ' +
24
- '`ActivatedRouteSnapshot.fragment` accesses.');
25
- }
26
- for (const tsconfigPath of allPaths) {
27
- runActivatedRouteSnapshotFragmentMigration(tree, tsconfigPath, basePath);
28
- }
29
- };
30
- }
31
- function runActivatedRouteSnapshotFragmentMigration(tree, tsconfigPath, basePath) {
32
- const { program } = createMigrationProgram(tree, tsconfigPath, basePath);
33
- const typeChecker = program.getTypeChecker();
34
- const sourceFiles = program.getSourceFiles().filter(sourceFile => canMigrateFile(basePath, sourceFile, program));
35
- const printer = ts.createPrinter();
36
- sourceFiles.forEach(sourceFile => {
37
- const nodesToMigrate = findFragmentAccesses(typeChecker, sourceFile);
38
- if (nodesToMigrate.size > 0) {
39
- const update = tree.beginUpdate(relative(basePath, sourceFile.fileName));
40
- nodesToMigrate.forEach(node => {
41
- update.remove(node.getStart(), node.getWidth());
42
- update.insertRight(node.getStart(), printer.printNode(ts.EmitHint.Unspecified, migrateActivatedRouteSnapshotFragment(node), sourceFile));
43
- });
44
- tree.commitUpdate(update);
45
- }
46
- });
47
- }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NjaGVtYXRpY3MvbWlncmF0aW9ucy9hY3RpdmF0ZWQtcm91dGUtc25hcHNob3QtZnJhZ21lbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFPLG1CQUFtQixFQUFPLE1BQU0sNEJBQTRCLENBQUM7QUFDM0UsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5QixPQUFPLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVqQyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQUMsY0FBYyxFQUFFLHNCQUFzQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDNUYsT0FBTyxFQUFDLG9CQUFvQixFQUFFLHFDQUFxQyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBR25GOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE9BQU87SUFDWixPQUFPLENBQUMsSUFBVSxFQUFFLEVBQUU7UUFDcEIsTUFBTSxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUMsR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDL0IsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLFVBQVUsRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDO1FBRS9DLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxtQkFBbUIsQ0FDekIsbURBQW1EO2dCQUNuRCw2Q0FBNkMsQ0FBQyxDQUFDO1NBQ3BEO1FBRUQsS0FBSyxNQUFNLFlBQVksSUFBSSxRQUFRLEVBQUU7WUFDbkMsMENBQTBDLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztTQUMxRTtJQUNILENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLDBDQUEwQyxDQUMvQyxJQUFVLEVBQUUsWUFBb0IsRUFBRSxRQUFnQjtJQUNwRCxNQUFNLEVBQUMsT0FBTyxFQUFDLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2RSxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDN0MsTUFBTSxXQUFXLEdBQ2IsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDakcsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBRW5DLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDL0IsTUFBTSxjQUFjLEdBQUcsb0JBQW9CLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXJFLElBQUksY0FBYyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUU7WUFDM0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3pFLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzVCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUNoRCxNQUFNLENBQUMsV0FBVyxDQUNkLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFDZixPQUFPLENBQUMsU0FBUyxDQUNiLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLHFDQUFxQyxDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDN0YsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7UnVsZSwgU2NoZW1hdGljc0V4Y2VwdGlvbiwgVHJlZX0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3MnO1xuaW1wb3J0IHtyZWxhdGl2ZX0gZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHtnZXRQcm9qZWN0VHNDb25maWdQYXRoc30gZnJvbSAnLi4vLi4vdXRpbHMvcHJvamVjdF90c2NvbmZpZ19wYXRocyc7XG5pbXBvcnQge2Nhbk1pZ3JhdGVGaWxlLCBjcmVhdGVNaWdyYXRpb25Qcm9ncmFtfSBmcm9tICcuLi8uLi91dGlscy90eXBlc2NyaXB0L2NvbXBpbGVyX2hvc3QnO1xuaW1wb3J0IHtmaW5kRnJhZ21lbnRBY2Nlc3NlcywgbWlncmF0ZUFjdGl2YXRlZFJvdXRlU25hcHNob3RGcmFnbWVudH0gZnJvbSAnLi91dGlsJztcblxuXG4vKipcbiAqIE1pZ3JhdGlvbiB0aGF0IG1hcmtzIGFjY2Vzc2VzIG9mIGBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LmZyYWdtZW50YCBhcyBub24tbnVsbC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKTogUnVsZSB7XG4gIHJldHVybiAodHJlZTogVHJlZSkgPT4ge1xuICAgIGNvbnN0IHtidWlsZFBhdGhzLCB0ZXN0UGF0aHN9ID0gZ2V0UHJvamVjdFRzQ29uZmlnUGF0aHModHJlZSk7XG4gICAgY29uc3QgYmFzZVBhdGggPSBwcm9jZXNzLmN3ZCgpO1xuICAgIGNvbnN0IGFsbFBhdGhzID0gWy4uLmJ1aWxkUGF0aHMsIC4uLnRlc3RQYXRoc107XG5cbiAgICBpZiAoIWFsbFBhdGhzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IFNjaGVtYXRpY3NFeGNlcHRpb24oXG4gICAgICAgICAgJ0NvdWxkIG5vdCBmaW5kIGFueSB0c2NvbmZpZyBmaWxlLiBDYW5ub3QgbWlncmF0ZSAnICtcbiAgICAgICAgICAnYEFjdGl2YXRlZFJvdXRlU25hcHNob3QuZnJhZ21lbnRgIGFjY2Vzc2VzLicpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgdHNjb25maWdQYXRoIG9mIGFsbFBhdGhzKSB7XG4gICAgICBydW5BY3RpdmF0ZWRSb3V0ZVNuYXBzaG90RnJhZ21lbnRNaWdyYXRpb24odHJlZSwgdHNjb25maWdQYXRoLCBiYXNlUGF0aCk7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBydW5BY3RpdmF0ZWRSb3V0ZVNuYXBzaG90RnJhZ21lbnRNaWdyYXRpb24oXG4gICAgdHJlZTogVHJlZSwgdHNjb25maWdQYXRoOiBzdHJpbmcsIGJhc2VQYXRoOiBzdHJpbmcpIHtcbiAgY29uc3Qge3Byb2dyYW19ID0gY3JlYXRlTWlncmF0aW9uUHJvZ3JhbSh0cmVlLCB0c2NvbmZpZ1BhdGgsIGJhc2VQYXRoKTtcbiAgY29uc3QgdHlwZUNoZWNrZXIgPSBwcm9ncmFtLmdldFR5cGVDaGVja2VyKCk7XG4gIGNvbnN0IHNvdXJjZUZpbGVzID1cbiAgICAgIHByb2dyYW0uZ2V0U291cmNlRmlsZXMoKS5maWx0ZXIoc291cmNlRmlsZSA9PiBjYW5NaWdyYXRlRmlsZShiYXNlUGF0aCwgc291cmNlRmlsZSwgcHJvZ3JhbSkpO1xuICBjb25zdCBwcmludGVyID0gdHMuY3JlYXRlUHJpbnRlcigpO1xuXG4gIHNvdXJjZUZpbGVzLmZvckVhY2goc291cmNlRmlsZSA9PiB7XG4gICAgY29uc3Qgbm9kZXNUb01pZ3JhdGUgPSBmaW5kRnJhZ21lbnRBY2Nlc3Nlcyh0eXBlQ2hlY2tlciwgc291cmNlRmlsZSk7XG5cbiAgICBpZiAobm9kZXNUb01pZ3JhdGUuc2l6ZSA+IDApIHtcbiAgICAgIGNvbnN0IHVwZGF0ZSA9IHRyZWUuYmVnaW5VcGRhdGUocmVsYXRpdmUoYmFzZVBhdGgsIHNvdXJjZUZpbGUuZmlsZU5hbWUpKTtcbiAgICAgIG5vZGVzVG9NaWdyYXRlLmZvckVhY2gobm9kZSA9PiB7XG4gICAgICAgIHVwZGF0ZS5yZW1vdmUobm9kZS5nZXRTdGFydCgpLCBub2RlLmdldFdpZHRoKCkpO1xuICAgICAgICB1cGRhdGUuaW5zZXJ0UmlnaHQoXG4gICAgICAgICAgICBub2RlLmdldFN0YXJ0KCksXG4gICAgICAgICAgICBwcmludGVyLnByaW50Tm9kZShcbiAgICAgICAgICAgICAgICB0cy5FbWl0SGludC5VbnNwZWNpZmllZCwgbWlncmF0ZUFjdGl2YXRlZFJvdXRlU25hcHNob3RGcmFnbWVudChub2RlKSwgc291cmNlRmlsZSkpO1xuICAgICAgfSk7XG4gICAgICB0cmVlLmNvbW1pdFVwZGF0ZSh1cGRhdGUpO1xuICAgIH1cbiAgfSk7XG59XG4iXX0=
@@ -1,33 +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
- import * as ts from 'typescript';
9
- import { isNullCheck, isSafeAccess } from '../../utils/typescript/nodes';
10
- import { hasOneOfTypes, isNullableType } from '../../utils/typescript/symbol';
11
- /**
12
- * Finds all the accesses of `ActivatedRouteSnapshot.fragment`
13
- * that need to be migrated within a particular file.
14
- */
15
- export function findFragmentAccesses(typeChecker, sourceFile) {
16
- const results = new Set();
17
- sourceFile.forEachChild(function walk(node) {
18
- if (ts.isPropertyAccessExpression(node) && node.name.text === 'fragment' &&
19
- !results.has(node) && !isNullCheck(node) && !isSafeAccess(node) &&
20
- hasOneOfTypes(typeChecker, node.expression, ['ActivatedRouteSnapshot']) &&
21
- isNullableType(typeChecker, node)) {
22
- results.add(node);
23
- }
24
- node.forEachChild(walk);
25
- });
26
- return results;
27
- }
28
- /** Migrates an `ActivatedRouteSnapshot.fragment` access. */
29
- export function migrateActivatedRouteSnapshotFragment(node) {
30
- // Turns `foo.fragment` into `foo.fragment!`.
31
- return ts.createNonNullExpression(node);
32
- }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc2NoZW1hdGljcy9taWdyYXRpb25zL2FjdGl2YXRlZC1yb3V0ZS1zbmFwc2hvdC1mcmFnbWVudC91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2pDLE9BQU8sRUFBQyxXQUFXLEVBQUUsWUFBWSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFDLGFBQWEsRUFBRSxjQUFjLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RTs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQ2hDLFdBQTJCLEVBQUUsVUFBeUI7SUFDeEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQStCLENBQUM7SUFFdkQsVUFBVSxDQUFDLFlBQVksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFhO1FBQ2pELElBQUksRUFBRSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFVBQVU7WUFDcEUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztZQUMvRCxhQUFhLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1lBQ3ZFLGNBQWMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNuQjtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQsNERBQTREO0FBQzVELE1BQU0sVUFBVSxxQ0FBcUMsQ0FBQyxJQUFpQztJQUNyRiw2Q0FBNkM7SUFDN0MsT0FBTyxFQUFFLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7aXNOdWxsQ2hlY2ssIGlzU2FmZUFjY2Vzc30gZnJvbSAnLi4vLi4vdXRpbHMvdHlwZXNjcmlwdC9ub2Rlcyc7XG5pbXBvcnQge2hhc09uZU9mVHlwZXMsIGlzTnVsbGFibGVUeXBlfSBmcm9tICcuLi8uLi91dGlscy90eXBlc2NyaXB0L3N5bWJvbCc7XG5cbi8qKlxuICogRmluZHMgYWxsIHRoZSBhY2Nlc3NlcyBvZiBgQWN0aXZhdGVkUm91dGVTbmFwc2hvdC5mcmFnbWVudGBcbiAqIHRoYXQgbmVlZCB0byBiZSBtaWdyYXRlZCB3aXRoaW4gYSBwYXJ0aWN1bGFyIGZpbGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kRnJhZ21lbnRBY2Nlc3NlcyhcbiAgICB0eXBlQ2hlY2tlcjogdHMuVHlwZUNoZWNrZXIsIHNvdXJjZUZpbGU6IHRzLlNvdXJjZUZpbGUpOiBTZXQ8dHMuUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uPiB7XG4gIGNvbnN0IHJlc3VsdHMgPSBuZXcgU2V0PHRzLlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbj4oKTtcblxuICBzb3VyY2VGaWxlLmZvckVhY2hDaGlsZChmdW5jdGlvbiB3YWxrKG5vZGU6IHRzLk5vZGUpIHtcbiAgICBpZiAodHMuaXNQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24obm9kZSkgJiYgbm9kZS5uYW1lLnRleHQgPT09ICdmcmFnbWVudCcgJiZcbiAgICAgICAgIXJlc3VsdHMuaGFzKG5vZGUpICYmICFpc051bGxDaGVjayhub2RlKSAmJiAhaXNTYWZlQWNjZXNzKG5vZGUpICYmXG4gICAgICAgIGhhc09uZU9mVHlwZXModHlwZUNoZWNrZXIsIG5vZGUuZXhwcmVzc2lvbiwgWydBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90J10pICYmXG4gICAgICAgIGlzTnVsbGFibGVUeXBlKHR5cGVDaGVja2VyLCBub2RlKSkge1xuICAgICAgcmVzdWx0cy5hZGQobm9kZSk7XG4gICAgfVxuXG4gICAgbm9kZS5mb3JFYWNoQ2hpbGQod2Fsayk7XG4gIH0pO1xuXG4gIHJldHVybiByZXN1bHRzO1xufVxuXG4vKiogTWlncmF0ZXMgYW4gYEFjdGl2YXRlZFJvdXRlU25hcHNob3QuZnJhZ21lbnRgIGFjY2Vzcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtaWdyYXRlQWN0aXZhdGVkUm91dGVTbmFwc2hvdEZyYWdtZW50KG5vZGU6IHRzLlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbik6IHRzLk5vZGUge1xuICAvLyBUdXJucyBgZm9vLmZyYWdtZW50YCBpbnRvIGBmb28uZnJhZ21lbnQhYC5cbiAgcmV0dXJuIHRzLmNyZWF0ZU5vbk51bGxFeHByZXNzaW9uKG5vZGUpO1xufVxuIl19
@@ -1,44 +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
- import { SchematicsException } from '@angular-devkit/schematics';
9
- import { relative } from 'path';
10
- import * as ts from 'typescript';
11
- import { getProjectTsConfigPaths } from '../../utils/project_tsconfig_paths';
12
- import { canMigrateFile, createMigrationProgram } from '../../utils/typescript/compiler_host';
13
- import { findLiteralsToMigrate, migrateLiteral } from './util';
14
- /** Migration that removes `canActivate` property from routes that also have `redirectTo`. */
15
- export default function () {
16
- return (tree) => {
17
- const { buildPaths, testPaths } = getProjectTsConfigPaths(tree);
18
- const basePath = process.cwd();
19
- const allPaths = [...buildPaths, ...testPaths];
20
- if (!allPaths.length) {
21
- throw new SchematicsException('Could not find any tsconfig file. Cannot migrate ' +
22
- 'Router.navigateByUrl and Router.createUrlTree calls.');
23
- }
24
- for (const tsconfigPath of allPaths) {
25
- runCanActivateWithRedirectToMigration(tree, tsconfigPath, basePath);
26
- }
27
- };
28
- }
29
- function runCanActivateWithRedirectToMigration(tree, tsconfigPath, basePath) {
30
- const { program } = createMigrationProgram(tree, tsconfigPath, basePath);
31
- const printer = ts.createPrinter();
32
- const sourceFiles = program.getSourceFiles().filter(sourceFile => canMigrateFile(basePath, sourceFile, program));
33
- sourceFiles.forEach(sourceFile => {
34
- const literalsToMigrate = findLiteralsToMigrate(sourceFile);
35
- const update = tree.beginUpdate(relative(basePath, sourceFile.fileName));
36
- for (const literal of Array.from(literalsToMigrate)) {
37
- const migratedNode = migrateLiteral(literal);
38
- update.remove(literal.getStart(), literal.getWidth());
39
- update.insertRight(literal.getStart(), printer.printNode(ts.EmitHint.Unspecified, migratedNode, sourceFile));
40
- }
41
- tree.commitUpdate(update);
42
- });
43
- }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NjaGVtYXRpY3MvbWlncmF0aW9ucy9jYW4tYWN0aXZhdGUtd2l0aC1yZWRpcmVjdC10by9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQU8sbUJBQW1CLEVBQU8sTUFBTSw0QkFBNEIsQ0FBQztBQUMzRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzlCLE9BQU8sS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWpDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxjQUFjLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RixPQUFPLEVBQUMscUJBQXFCLEVBQUUsY0FBYyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBRzdELDZGQUE2RjtBQUM3RixNQUFNLENBQUMsT0FBTztJQUNaLE9BQU8sQ0FBQyxJQUFVLEVBQUUsRUFBRTtRQUNwQixNQUFNLEVBQUMsVUFBVSxFQUFFLFNBQVMsRUFBQyxHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUMvQixNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsVUFBVSxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDcEIsTUFBTSxJQUFJLG1CQUFtQixDQUN6QixtREFBbUQ7Z0JBQ25ELHNEQUFzRCxDQUFDLENBQUM7U0FDN0Q7UUFFRCxLQUFLLE1BQU0sWUFBWSxJQUFJLFFBQVEsRUFBRTtZQUNuQyxxQ0FBcUMsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ3JFO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMscUNBQXFDLENBQUMsSUFBVSxFQUFFLFlBQW9CLEVBQUUsUUFBZ0I7SUFDL0YsTUFBTSxFQUFDLE9BQU8sRUFBQyxHQUFHLHNCQUFzQixDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdkUsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ25DLE1BQU0sV0FBVyxHQUNiLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBRWpHLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDL0IsTUFBTSxpQkFBaUIsR0FBRyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFekUsS0FBSyxNQUFNLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDbkQsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELE1BQU0sQ0FBQyxXQUFXLENBQ2QsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7U0FDL0Y7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1J1bGUsIFNjaGVtYXRpY3NFeGNlcHRpb24sIFRyZWV9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzJztcbmltcG9ydCB7cmVsYXRpdmV9IGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7Z2V0UHJvamVjdFRzQ29uZmlnUGF0aHN9IGZyb20gJy4uLy4uL3V0aWxzL3Byb2plY3RfdHNjb25maWdfcGF0aHMnO1xuaW1wb3J0IHtjYW5NaWdyYXRlRmlsZSwgY3JlYXRlTWlncmF0aW9uUHJvZ3JhbX0gZnJvbSAnLi4vLi4vdXRpbHMvdHlwZXNjcmlwdC9jb21waWxlcl9ob3N0JztcbmltcG9ydCB7ZmluZExpdGVyYWxzVG9NaWdyYXRlLCBtaWdyYXRlTGl0ZXJhbH0gZnJvbSAnLi91dGlsJztcblxuXG4vKiogTWlncmF0aW9uIHRoYXQgcmVtb3ZlcyBgY2FuQWN0aXZhdGVgIHByb3BlcnR5IGZyb20gcm91dGVzIHRoYXQgYWxzbyBoYXZlIGByZWRpcmVjdFRvYC4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKCk6IFJ1bGUge1xuICByZXR1cm4gKHRyZWU6IFRyZWUpID0+IHtcbiAgICBjb25zdCB7YnVpbGRQYXRocywgdGVzdFBhdGhzfSA9IGdldFByb2plY3RUc0NvbmZpZ1BhdGhzKHRyZWUpO1xuICAgIGNvbnN0IGJhc2VQYXRoID0gcHJvY2Vzcy5jd2QoKTtcbiAgICBjb25zdCBhbGxQYXRocyA9IFsuLi5idWlsZFBhdGhzLCAuLi50ZXN0UGF0aHNdO1xuXG4gICAgaWYgKCFhbGxQYXRocy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBTY2hlbWF0aWNzRXhjZXB0aW9uKFxuICAgICAgICAgICdDb3VsZCBub3QgZmluZCBhbnkgdHNjb25maWcgZmlsZS4gQ2Fubm90IG1pZ3JhdGUgJyArXG4gICAgICAgICAgJ1JvdXRlci5uYXZpZ2F0ZUJ5VXJsIGFuZCBSb3V0ZXIuY3JlYXRlVXJsVHJlZSBjYWxscy4nKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHRzY29uZmlnUGF0aCBvZiBhbGxQYXRocykge1xuICAgICAgcnVuQ2FuQWN0aXZhdGVXaXRoUmVkaXJlY3RUb01pZ3JhdGlvbih0cmVlLCB0c2NvbmZpZ1BhdGgsIGJhc2VQYXRoKTtcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIHJ1bkNhbkFjdGl2YXRlV2l0aFJlZGlyZWN0VG9NaWdyYXRpb24odHJlZTogVHJlZSwgdHNjb25maWdQYXRoOiBzdHJpbmcsIGJhc2VQYXRoOiBzdHJpbmcpIHtcbiAgY29uc3Qge3Byb2dyYW19ID0gY3JlYXRlTWlncmF0aW9uUHJvZ3JhbSh0cmVlLCB0c2NvbmZpZ1BhdGgsIGJhc2VQYXRoKTtcbiAgY29uc3QgcHJpbnRlciA9IHRzLmNyZWF0ZVByaW50ZXIoKTtcbiAgY29uc3Qgc291cmNlRmlsZXMgPVxuICAgICAgcHJvZ3JhbS5nZXRTb3VyY2VGaWxlcygpLmZpbHRlcihzb3VyY2VGaWxlID0+IGNhbk1pZ3JhdGVGaWxlKGJhc2VQYXRoLCBzb3VyY2VGaWxlLCBwcm9ncmFtKSk7XG5cbiAgc291cmNlRmlsZXMuZm9yRWFjaChzb3VyY2VGaWxlID0+IHtcbiAgICBjb25zdCBsaXRlcmFsc1RvTWlncmF0ZSA9IGZpbmRMaXRlcmFsc1RvTWlncmF0ZShzb3VyY2VGaWxlKTtcbiAgICBjb25zdCB1cGRhdGUgPSB0cmVlLmJlZ2luVXBkYXRlKHJlbGF0aXZlKGJhc2VQYXRoLCBzb3VyY2VGaWxlLmZpbGVOYW1lKSk7XG5cbiAgICBmb3IgKGNvbnN0IGxpdGVyYWwgb2YgQXJyYXkuZnJvbShsaXRlcmFsc1RvTWlncmF0ZSkpIHtcbiAgICAgIGNvbnN0IG1pZ3JhdGVkTm9kZSA9IG1pZ3JhdGVMaXRlcmFsKGxpdGVyYWwpO1xuICAgICAgdXBkYXRlLnJlbW92ZShsaXRlcmFsLmdldFN0YXJ0KCksIGxpdGVyYWwuZ2V0V2lkdGgoKSk7XG4gICAgICB1cGRhdGUuaW5zZXJ0UmlnaHQoXG4gICAgICAgICAgbGl0ZXJhbC5nZXRTdGFydCgpLCBwcmludGVyLnByaW50Tm9kZSh0cy5FbWl0SGludC5VbnNwZWNpZmllZCwgbWlncmF0ZWROb2RlLCBzb3VyY2VGaWxlKSk7XG4gICAgfVxuXG4gICAgdHJlZS5jb21taXRVcGRhdGUodXBkYXRlKTtcbiAgfSk7XG59XG4iXX0=