@angular/core 13.0.0-next.8 → 13.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (567) hide show
  1. package/core.d.ts +590 -955
  2. package/esm2020/core.mjs +5 -0
  3. package/esm2020/index.mjs +14 -0
  4. package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
  5. package/esm2020/src/application_init.mjs +140 -0
  6. package/esm2020/src/application_module.mjs +135 -0
  7. package/esm2020/src/application_ref.mjs +738 -0
  8. package/{esm2015/src/application_tokens.js → esm2020/src/application_tokens.mjs} +0 -0
  9. package/esm2020/src/change_detection/change_detection.mjs +31 -0
  10. package/esm2020/src/change_detection/change_detection_util.mjs +64 -0
  11. package/esm2020/src/change_detection/change_detector_ref.mjs +89 -0
  12. package/{esm2015/src/change_detection/constants.js → esm2020/src/change_detection/constants.mjs} +0 -0
  13. package/esm2020/src/change_detection/differs/default_iterable_differ.mjs +666 -0
  14. package/{esm2015/src/change_detection/differs/default_keyvalue_differ.js → esm2020/src/change_detection/differs/default_keyvalue_differ.mjs} +0 -0
  15. package/{esm2015/src/change_detection/differs/iterable_differs.js → esm2020/src/change_detection/differs/iterable_differs.mjs} +0 -0
  16. package/{esm2015/src/change_detection/differs/keyvalue_differs.js → esm2020/src/change_detection/differs/keyvalue_differs.mjs} +0 -0
  17. package/{esm2015/src/change_detection/pipe_transform.js → esm2020/src/change_detection/pipe_transform.mjs} +0 -0
  18. package/esm2020/src/change_detection.mjs +14 -0
  19. package/esm2020/src/codegen_private_exports.mjs +11 -0
  20. package/{esm2015/src/compiler/compiler_facade.js → esm2020/src/compiler/compiler_facade.mjs} +0 -0
  21. package/{esm2015/src/compiler/compiler_facade_interface.js → esm2020/src/compiler/compiler_facade_interface.mjs} +1 -1
  22. package/esm2020/src/console.mjs +26 -0
  23. package/esm2020/src/core.mjs +52 -0
  24. package/esm2020/src/core_private_export.mjs +34 -0
  25. package/esm2020/src/core_render3_private_export.mjs +46 -0
  26. package/esm2020/src/debug/debug_node.mjs +625 -0
  27. package/{esm2015/src/debug/proxy.js → esm2020/src/debug/proxy.mjs} +0 -0
  28. package/{esm2015/src/di/forward_ref.js → esm2020/src/di/forward_ref.mjs} +0 -0
  29. package/{esm2015/src/di/index.js → esm2020/src/di/index.mjs} +0 -0
  30. package/{esm2015/src/di/inject_switch.js → esm2020/src/di/inject_switch.mjs} +0 -0
  31. package/esm2020/src/di/injectable.mjs +27 -0
  32. package/esm2020/src/di/injection_token.mjs +82 -0
  33. package/esm2020/src/di/injector.mjs +323 -0
  34. package/esm2020/src/di/injector_compatibility.mjs +185 -0
  35. package/{esm2015/src/di/injector_marker.js → esm2020/src/di/injector_marker.mjs} +0 -0
  36. package/{esm2015/src/di/injector_token.js → esm2020/src/di/injector_token.mjs} +0 -0
  37. package/{esm2015/src/di/interface/defs.js → esm2020/src/di/interface/defs.mjs} +0 -0
  38. package/{esm2015/src/di/interface/injector.js → esm2020/src/di/interface/injector.mjs} +0 -0
  39. package/{esm2015/src/di/interface/provider.js → esm2020/src/di/interface/provider.mjs} +0 -0
  40. package/{esm2015/src/di/jit/environment.js → esm2020/src/di/jit/environment.mjs} +0 -0
  41. package/esm2020/src/di/jit/injectable.mjs +94 -0
  42. package/{esm2015/src/di/jit/util.js → esm2020/src/di/jit/util.mjs} +0 -0
  43. package/esm2020/src/di/metadata.mjs +60 -0
  44. package/esm2020/src/di/metadata_attr.mjs +24 -0
  45. package/{esm2015/src/di/null_injector.js → esm2020/src/di/null_injector.mjs} +0 -0
  46. package/{esm2015/src/di/provider_token.js → esm2020/src/di/provider_token.mjs} +0 -0
  47. package/{esm2015/src/di/r3_injector.js → esm2020/src/di/r3_injector.mjs} +0 -0
  48. package/{esm2015/src/di/reflective_errors.js → esm2020/src/di/reflective_errors.mjs} +0 -0
  49. package/{esm2015/src/di/reflective_injector.js → esm2020/src/di/reflective_injector.mjs} +0 -0
  50. package/{esm2015/src/di/reflective_key.js → esm2020/src/di/reflective_key.mjs} +0 -0
  51. package/{esm2015/src/di/reflective_provider.js → esm2020/src/di/reflective_provider.mjs} +0 -0
  52. package/{esm2015/src/di/scope.js → esm2020/src/di/scope.mjs} +0 -0
  53. package/esm2020/src/di/util.mjs +51 -0
  54. package/{esm2015/src/di.js → esm2020/src/di.mjs} +0 -0
  55. package/{esm2015/src/error_handler.js → esm2020/src/error_handler.mjs} +0 -0
  56. package/{esm2015/src/errors.js → esm2020/src/errors.mjs} +0 -0
  57. package/esm2020/src/event_emitter.mjs +53 -0
  58. package/{esm2015/src/i18n/locale_data_api.js → esm2020/src/i18n/locale_data_api.mjs} +0 -0
  59. package/esm2020/src/i18n/locale_en.mjs +17 -0
  60. package/{esm2015/src/i18n/localization.js → esm2020/src/i18n/localization.mjs} +0 -0
  61. package/{esm2015/src/i18n/tokens.js → esm2020/src/i18n/tokens.mjs} +0 -0
  62. package/{esm2015/src/interface/lifecycle_hooks.js → esm2020/src/interface/lifecycle_hooks.mjs} +0 -0
  63. package/{esm2015/src/interface/simple_change.js → esm2020/src/interface/simple_change.mjs} +0 -0
  64. package/{esm2015/src/interface/type.js → esm2020/src/interface/type.mjs} +0 -0
  65. package/{esm2015/src/ivy_switch.js → esm2020/src/ivy_switch.mjs} +2 -2
  66. package/esm2020/src/linker/compiler.mjs +136 -0
  67. package/{esm2015/src/linker/component_factory.js → esm2020/src/linker/component_factory.mjs} +0 -0
  68. package/{esm2015/src/linker/component_factory_resolver.js → esm2020/src/linker/component_factory_resolver.mjs} +0 -0
  69. package/esm2020/src/linker/element_ref.mjs +59 -0
  70. package/esm2020/src/linker/ng_module_factory.mjs +29 -0
  71. package/esm2020/src/linker/ng_module_factory_loader.mjs +42 -0
  72. package/esm2020/src/linker/ng_module_factory_loader_impl.mjs +10 -0
  73. package/{esm2015/src/linker/ng_module_factory_registration.js → esm2020/src/linker/ng_module_factory_registration.mjs} +2 -2
  74. package/{esm2015/src/linker/query_list.js → esm2020/src/linker/query_list.mjs} +0 -0
  75. package/{esm2015/src/linker/template_ref.js → esm2020/src/linker/template_ref.mjs} +2 -2
  76. package/esm2020/src/linker/view_container_ref.mjs +283 -0
  77. package/{esm2015/src/linker/view_ref.js → esm2020/src/linker/view_ref.mjs} +0 -0
  78. package/esm2020/src/linker.mjs +19 -0
  79. package/esm2020/src/metadata/di.mjs +108 -0
  80. package/esm2020/src/metadata/directives.mjs +112 -0
  81. package/{esm2015/src/metadata/do_boostrap.js → esm2020/src/metadata/do_boostrap.mjs} +0 -0
  82. package/esm2020/src/metadata/ng_module.mjs +42 -0
  83. package/{esm2015/src/metadata/ng_module_def.js → esm2020/src/metadata/ng_module_def.mjs} +0 -0
  84. package/{esm2015/src/metadata/resource_loading.js → esm2020/src/metadata/resource_loading.mjs} +0 -0
  85. package/{esm2015/src/metadata/schema.js → esm2020/src/metadata/schema.mjs} +0 -0
  86. package/{esm2015/src/metadata/view.js → esm2020/src/metadata/view.mjs} +0 -0
  87. package/{esm2015/src/metadata.js → esm2020/src/metadata.mjs} +0 -0
  88. package/{esm2015/src/platform_core_providers.js → esm2020/src/platform_core_providers.mjs} +0 -0
  89. package/{esm2015/src/r3_symbols.js → esm2020/src/r3_symbols.mjs} +0 -0
  90. package/{esm2015/src/reflection/platform_reflection_capabilities.js → esm2020/src/reflection/platform_reflection_capabilities.mjs} +0 -0
  91. package/{esm2015/src/reflection/reflection.js → esm2020/src/reflection/reflection.mjs} +0 -0
  92. package/{esm2015/src/reflection/reflection_capabilities.js → esm2020/src/reflection/reflection_capabilities.mjs} +0 -0
  93. package/{esm2015/src/reflection/reflector.js → esm2020/src/reflection/reflector.mjs} +0 -0
  94. package/{esm2015/src/reflection/types.js → esm2020/src/reflection/types.mjs} +0 -0
  95. package/{esm2015/src/render/api.js → esm2020/src/render/api.mjs} +2 -2
  96. package/{esm2015/src/render/api_flags.js → esm2020/src/render/api_flags.mjs} +0 -0
  97. package/{esm2015/src/render.js → esm2020/src/render.mjs} +0 -0
  98. package/{esm2015/src/render3/assert.js → esm2020/src/render3/assert.mjs} +0 -0
  99. package/{esm2015/src/render3/bindings.js → esm2020/src/render3/bindings.mjs} +0 -0
  100. package/{esm2015/src/render3/collect_native_nodes.js → esm2020/src/render3/collect_native_nodes.mjs} +0 -0
  101. package/esm2020/src/render3/component.mjs +204 -0
  102. package/{esm2015/src/render3/component_ref.js → esm2020/src/render3/component_ref.mjs} +2 -2
  103. package/{esm2015/src/render3/context_discovery.js → esm2020/src/render3/context_discovery.mjs} +0 -0
  104. package/{esm2015/src/render3/definition.js → esm2020/src/render3/definition.mjs} +0 -0
  105. package/{esm2015/src/render3/definition_factory.js → esm2020/src/render3/definition_factory.mjs} +0 -0
  106. package/{esm2015/src/render3/di.js → esm2020/src/render3/di.mjs} +0 -0
  107. package/{esm2015/src/render3/di_setup.js → esm2020/src/render3/di_setup.mjs} +0 -0
  108. package/esm2020/src/render3/error_code.mjs +42 -0
  109. package/esm2020/src/render3/error_details_base_url.mjs +16 -0
  110. package/{esm2015/src/render3/errors.js → esm2020/src/render3/errors.mjs} +0 -0
  111. package/{esm2015/src/render3/errors_di.js → esm2020/src/render3/errors_di.mjs} +0 -0
  112. package/{esm2015/src/render3/features/copy_definition_feature.js → esm2020/src/render3/features/copy_definition_feature.mjs} +0 -0
  113. package/{esm2015/src/render3/features/inherit_definition_feature.js → esm2020/src/render3/features/inherit_definition_feature.mjs} +0 -0
  114. package/esm2020/src/render3/features/ng_onchanges_feature.mjs +92 -0
  115. package/{esm2015/src/render3/features/providers_feature.js → esm2020/src/render3/features/providers_feature.mjs} +0 -0
  116. package/{esm2015/src/render3/fields.js → esm2020/src/render3/fields.mjs} +0 -0
  117. package/{esm2015/src/render3/global_utils_api.js → esm2020/src/render3/global_utils_api.mjs} +0 -0
  118. package/{esm2015/src/render3/hooks.js → esm2020/src/render3/hooks.mjs} +0 -0
  119. package/{esm2015/src/render3/i18n/i18n_apply.js → esm2020/src/render3/i18n/i18n_apply.mjs} +0 -0
  120. package/{esm2015/src/render3/i18n/i18n_debug.js → esm2020/src/render3/i18n/i18n_debug.mjs} +0 -0
  121. package/{esm2015/src/render3/i18n/i18n_insert_before_index.js → esm2020/src/render3/i18n/i18n_insert_before_index.mjs} +0 -0
  122. package/{esm2015/src/render3/i18n/i18n_locale_id.js → esm2020/src/render3/i18n/i18n_locale_id.mjs} +0 -0
  123. package/{esm2015/src/render3/i18n/i18n_parse.js → esm2020/src/render3/i18n/i18n_parse.mjs} +0 -0
  124. package/{esm2015/src/render3/i18n/i18n_postprocess.js → esm2020/src/render3/i18n/i18n_postprocess.mjs} +0 -0
  125. package/{esm2015/src/render3/i18n/i18n_tree_shaking.js → esm2020/src/render3/i18n/i18n_tree_shaking.mjs} +0 -0
  126. package/{esm2015/src/render3/i18n/i18n_util.js → esm2020/src/render3/i18n/i18n_util.mjs} +0 -0
  127. package/{esm2015/src/render3/index.js → esm2020/src/render3/index.mjs} +0 -0
  128. package/{esm2015/src/render3/instructions/advance.js → esm2020/src/render3/instructions/advance.mjs} +0 -0
  129. package/{esm2015/src/render3/instructions/all.js → esm2020/src/render3/instructions/all.mjs} +0 -0
  130. package/{esm2015/src/render3/instructions/attribute.js → esm2020/src/render3/instructions/attribute.mjs} +0 -0
  131. package/{esm2015/src/render3/instructions/attribute_interpolation.js → esm2020/src/render3/instructions/attribute_interpolation.mjs} +0 -0
  132. package/{esm2015/src/render3/instructions/change_detection.js → esm2020/src/render3/instructions/change_detection.mjs} +0 -0
  133. package/{esm2015/src/render3/instructions/class_map_interpolation.js → esm2020/src/render3/instructions/class_map_interpolation.mjs} +0 -0
  134. package/{esm2015/src/render3/instructions/di.js → esm2020/src/render3/instructions/di.mjs} +0 -0
  135. package/{esm2015/src/render3/instructions/di_attr.js → esm2020/src/render3/instructions/di_attr.mjs} +0 -0
  136. package/{esm2015/src/render3/instructions/element.js → esm2020/src/render3/instructions/element.mjs} +0 -0
  137. package/{esm2015/src/render3/instructions/element_container.js → esm2020/src/render3/instructions/element_container.mjs} +0 -0
  138. package/{esm2015/src/render3/instructions/get_current_view.js → esm2020/src/render3/instructions/get_current_view.mjs} +0 -0
  139. package/{esm2015/src/render3/instructions/host_property.js → esm2020/src/render3/instructions/host_property.mjs} +0 -0
  140. package/{esm2015/src/render3/instructions/i18n.js → esm2020/src/render3/instructions/i18n.mjs} +0 -0
  141. package/{esm2015/src/render3/instructions/i18n_icu_container_visitor.js → esm2020/src/render3/instructions/i18n_icu_container_visitor.mjs} +0 -0
  142. package/{esm2015/src/render3/instructions/interpolation.js → esm2020/src/render3/instructions/interpolation.mjs} +0 -0
  143. package/{esm2015/src/render3/instructions/listener.js → esm2020/src/render3/instructions/listener.mjs} +0 -0
  144. package/{esm2015/src/render3/instructions/lview_debug.js → esm2020/src/render3/instructions/lview_debug.mjs} +0 -0
  145. package/{esm2015/src/render3/instructions/namespace.js → esm2020/src/render3/instructions/namespace.mjs} +0 -0
  146. package/{esm2015/src/render3/instructions/next_context.js → esm2020/src/render3/instructions/next_context.mjs} +0 -0
  147. package/{esm2015/src/render3/instructions/projection.js → esm2020/src/render3/instructions/projection.mjs} +0 -0
  148. package/{esm2015/src/render3/instructions/property.js → esm2020/src/render3/instructions/property.mjs} +0 -0
  149. package/{esm2015/src/render3/instructions/property_interpolation.js → esm2020/src/render3/instructions/property_interpolation.mjs} +0 -0
  150. package/esm2020/src/render3/instructions/shared.mjs +1811 -0
  151. package/{esm2015/src/render3/instructions/storage.js → esm2020/src/render3/instructions/storage.mjs} +0 -0
  152. package/{esm2015/src/render3/instructions/style_map_interpolation.js → esm2020/src/render3/instructions/style_map_interpolation.mjs} +0 -0
  153. package/{esm2015/src/render3/instructions/style_prop_interpolation.js → esm2020/src/render3/instructions/style_prop_interpolation.mjs} +0 -0
  154. package/{esm2015/src/render3/instructions/styling.js → esm2020/src/render3/instructions/styling.mjs} +0 -0
  155. package/{esm2015/src/render3/instructions/template.js → esm2020/src/render3/instructions/template.mjs} +0 -0
  156. package/{esm2015/src/render3/instructions/text.js → esm2020/src/render3/instructions/text.mjs} +0 -0
  157. package/{esm2015/src/render3/instructions/text_interpolation.js → esm2020/src/render3/instructions/text_interpolation.mjs} +0 -0
  158. package/{esm2015/src/render3/interfaces/container.js → esm2020/src/render3/interfaces/container.mjs} +0 -0
  159. package/{esm2015/src/render3/interfaces/context.js → esm2020/src/render3/interfaces/context.mjs} +0 -0
  160. package/{esm2015/src/render3/interfaces/definition.js → esm2020/src/render3/interfaces/definition.mjs} +0 -0
  161. package/{esm2015/src/render3/interfaces/document.js → esm2020/src/render3/interfaces/document.mjs} +0 -0
  162. package/{esm2015/src/render3/interfaces/i18n.js → esm2020/src/render3/interfaces/i18n.mjs} +0 -0
  163. package/{esm2015/src/render3/interfaces/injector.js → esm2020/src/render3/interfaces/injector.mjs} +0 -0
  164. package/{esm2015/src/render3/interfaces/node.js → esm2020/src/render3/interfaces/node.mjs} +0 -0
  165. package/{esm2015/src/render3/interfaces/player.js → esm2020/src/render3/interfaces/player.mjs} +0 -0
  166. package/{esm2015/src/render3/interfaces/projection.js → esm2020/src/render3/interfaces/projection.mjs} +0 -0
  167. package/{esm2015/src/render3/interfaces/public_definitions.js → esm2020/src/render3/interfaces/public_definitions.mjs} +0 -0
  168. package/{esm2015/src/render3/interfaces/query.js → esm2020/src/render3/interfaces/query.mjs} +0 -0
  169. package/esm2020/src/render3/interfaces/renderer.mjs +27 -0
  170. package/{esm2015/src/render3/interfaces/renderer_dom.js → esm2020/src/render3/interfaces/renderer_dom.mjs} +0 -0
  171. package/{esm2015/src/render3/interfaces/sanitization.js → esm2020/src/render3/interfaces/sanitization.mjs} +0 -0
  172. package/{esm2015/src/render3/interfaces/styling.js → esm2020/src/render3/interfaces/styling.mjs} +0 -0
  173. package/{esm2015/src/render3/interfaces/type_checks.js → esm2020/src/render3/interfaces/type_checks.mjs} +0 -0
  174. package/{esm2015/src/render3/interfaces/view.js → esm2020/src/render3/interfaces/view.mjs} +0 -0
  175. package/esm2020/src/render3/jit/directive.mjs +325 -0
  176. package/esm2020/src/render3/jit/environment.mjs +165 -0
  177. package/{esm2015/src/render3/jit/jit_options.js → esm2020/src/render3/jit/jit_options.mjs} +0 -0
  178. package/{esm2015/src/render3/jit/module.js → esm2020/src/render3/jit/module.mjs} +0 -0
  179. package/esm2020/src/render3/jit/partial.mjs +104 -0
  180. package/{esm2015/src/render3/jit/pipe.js → esm2020/src/render3/jit/pipe.mjs} +0 -0
  181. package/esm2020/src/render3/metadata.mjs +49 -0
  182. package/{esm2015/src/render3/namespaces.js → esm2020/src/render3/namespaces.mjs} +0 -0
  183. package/esm2020/src/render3/ng_module_ref.mjs +122 -0
  184. package/{esm2015/src/render3/node_assert.js → esm2020/src/render3/node_assert.mjs} +0 -0
  185. package/{esm2015/src/render3/node_manipulation.js → esm2020/src/render3/node_manipulation.mjs} +0 -0
  186. package/{esm2015/src/render3/node_manipulation_i18n.js → esm2020/src/render3/node_manipulation_i18n.mjs} +0 -0
  187. package/{esm2015/src/render3/node_selector_matcher.js → esm2020/src/render3/node_selector_matcher.mjs} +0 -0
  188. package/esm2020/src/render3/pipe.mjs +184 -0
  189. package/{esm2015/src/render3/profiler.js → esm2020/src/render3/profiler.mjs} +0 -0
  190. package/{esm2015/src/render3/pure_function.js → esm2020/src/render3/pure_function.mjs} +0 -0
  191. package/{esm2015/src/render3/query.js → esm2020/src/render3/query.mjs} +0 -0
  192. package/{esm2015/src/render3/state.js → esm2020/src/render3/state.mjs} +0 -0
  193. package/{esm2015/src/render3/styling/class_differ.js → esm2020/src/render3/styling/class_differ.mjs} +0 -0
  194. package/{esm2015/src/render3/styling/static_styling.js → esm2020/src/render3/styling/static_styling.mjs} +0 -0
  195. package/{esm2015/src/render3/styling/style_binding_list.js → esm2020/src/render3/styling/style_binding_list.mjs} +0 -0
  196. package/{esm2015/src/render3/styling/styling_parser.js → esm2020/src/render3/styling/styling_parser.mjs} +0 -0
  197. package/{esm2015/src/render3/tokens.js → esm2020/src/render3/tokens.mjs} +0 -0
  198. package/{esm2015/src/render3/util/attrs_utils.js → esm2020/src/render3/util/attrs_utils.mjs} +0 -0
  199. package/{esm2015/src/render3/util/change_detection_utils.js → esm2020/src/render3/util/change_detection_utils.mjs} +0 -0
  200. package/{esm2015/src/render3/util/debug_utils.js → esm2020/src/render3/util/debug_utils.mjs} +0 -0
  201. package/esm2020/src/render3/util/discovery_utils.mjs +411 -0
  202. package/esm2020/src/render3/util/global_utils.mjs +77 -0
  203. package/{esm2015/src/render3/util/injector_utils.js → esm2020/src/render3/util/injector_utils.mjs} +0 -0
  204. package/esm2020/src/render3/util/misc_utils.mjs +61 -0
  205. package/{esm2015/src/render3/util/stringify_utils.js → esm2020/src/render3/util/stringify_utils.mjs} +0 -0
  206. package/{esm2015/src/render3/util/view_traversal_utils.js → esm2020/src/render3/util/view_traversal_utils.mjs} +0 -0
  207. package/{esm2015/src/render3/util/view_utils.js → esm2020/src/render3/util/view_utils.mjs} +0 -0
  208. package/{esm2015/src/render3/view_engine_compatibility_prebound.js → esm2020/src/render3/view_engine_compatibility_prebound.mjs} +1 -1
  209. package/{esm2015/src/render3/view_ref.js → esm2020/src/render3/view_ref.mjs} +0 -0
  210. package/{esm2015/src/sanitization/bypass.js → esm2020/src/sanitization/bypass.mjs} +0 -0
  211. package/{esm2015/src/sanitization/html_sanitizer.js → esm2020/src/sanitization/html_sanitizer.mjs} +0 -0
  212. package/{esm2015/src/sanitization/inert_body.js → esm2020/src/sanitization/inert_body.mjs} +3 -3
  213. package/{esm2015/src/sanitization/sanitization.js → esm2020/src/sanitization/sanitization.mjs} +0 -0
  214. package/{esm2015/src/sanitization/sanitizer.js → esm2020/src/sanitization/sanitizer.mjs} +0 -0
  215. package/{esm2015/src/sanitization/security.js → esm2020/src/sanitization/security.mjs} +0 -0
  216. package/{esm2015/src/sanitization/url_sanitizer.js → esm2020/src/sanitization/url_sanitizer.mjs} +0 -0
  217. package/esm2020/src/testability/testability.mjs +258 -0
  218. package/{esm2015/src/util/array_utils.js → esm2020/src/util/array_utils.mjs} +0 -0
  219. package/{esm2015/src/util/assert.js → esm2020/src/util/assert.mjs} +0 -0
  220. package/{esm2015/src/util/char_code.js → esm2020/src/util/char_code.mjs} +0 -0
  221. package/{esm2015/src/util/closure.js → esm2020/src/util/closure.mjs} +0 -0
  222. package/{esm2015/src/util/comparison.js → esm2020/src/util/comparison.mjs} +0 -0
  223. package/{esm2015/src/util/decorators.js → esm2020/src/util/decorators.mjs} +0 -0
  224. package/{esm2015/src/util/dom.js → esm2020/src/util/dom.mjs} +0 -0
  225. package/{esm2015/src/util/empty.js → esm2020/src/util/empty.mjs} +0 -0
  226. package/{esm2015/src/util/errors.js → esm2020/src/util/errors.mjs} +0 -0
  227. package/{esm2015/src/util/global.js → esm2020/src/util/global.mjs} +0 -0
  228. package/{esm2015/src/util/is_dev_mode.js → esm2020/src/util/is_dev_mode.mjs} +0 -0
  229. package/{esm2015/src/util/iterable.js → esm2020/src/util/iterable.mjs} +0 -0
  230. package/{esm2015/src/util/lang.js → esm2020/src/util/lang.mjs} +0 -0
  231. package/{esm2015/src/util/microtask.js → esm2020/src/util/microtask.mjs} +0 -0
  232. package/{esm2015/src/util/named_array_type.js → esm2020/src/util/named_array_type.mjs} +0 -0
  233. package/{esm2015/src/util/ng_dev_mode.js → esm2020/src/util/ng_dev_mode.mjs} +0 -0
  234. package/{esm2015/src/util/ng_i18n_closure_mode.js → esm2020/src/util/ng_i18n_closure_mode.mjs} +0 -0
  235. package/{esm2015/src/util/ng_jit_mode.js → esm2020/src/util/ng_jit_mode.mjs} +0 -0
  236. package/{esm2015/src/util/ng_reflect.js → esm2020/src/util/ng_reflect.mjs} +0 -0
  237. package/{esm2015/src/util/noop.js → esm2020/src/util/noop.mjs} +0 -0
  238. package/{esm2015/src/util/property.js → esm2020/src/util/property.mjs} +0 -0
  239. package/{esm2015/src/util/raf.js → esm2020/src/util/raf.mjs} +0 -0
  240. package/{esm2015/src/util/security/trusted_type_defs.js → esm2020/src/util/security/trusted_type_defs.mjs} +0 -0
  241. package/esm2020/src/util/security/trusted_types.mjs +130 -0
  242. package/esm2020/src/util/security/trusted_types_bypass.mjs +83 -0
  243. package/{esm2015/src/util/stringify.js → esm2020/src/util/stringify.mjs} +0 -0
  244. package/{esm2015/src/util/symbol.js → esm2020/src/util/symbol.mjs} +0 -0
  245. package/{esm2015/src/version.js → esm2020/src/version.mjs} +1 -1
  246. package/{esm2015/src/view/element.js → esm2020/src/view/element.mjs} +0 -0
  247. package/{esm2015/src/view/entrypoint.js → esm2020/src/view/entrypoint.mjs} +0 -0
  248. package/{esm2015/src/view/errors.js → esm2020/src/view/errors.mjs} +0 -0
  249. package/{esm2015/src/view/index.js → esm2020/src/view/index.mjs} +2 -2
  250. package/{esm2015/src/view/ng_content.js → esm2020/src/view/ng_content.mjs} +0 -0
  251. package/{esm2015/src/view/ng_module.js → esm2020/src/view/ng_module.mjs} +0 -0
  252. package/esm2020/src/view/provider.mjs +490 -0
  253. package/esm2020/src/view/provider_flags.mjs +26 -0
  254. package/{esm2015/src/view/pure_expression.js → esm2020/src/view/pure_expression.mjs} +0 -0
  255. package/{esm2015/src/view/query.js → esm2020/src/view/query.mjs} +0 -0
  256. package/esm2020/src/view/refs.mjs +369 -0
  257. package/{esm2015/src/view/services.js → esm2020/src/view/services.mjs} +0 -0
  258. package/{esm2015/src/view/text.js → esm2020/src/view/text.mjs} +0 -0
  259. package/{esm2015/src/view/types.js → esm2020/src/view/types.mjs} +0 -0
  260. package/esm2020/src/view/util.mjs +369 -0
  261. package/{esm2015/src/view/view.js → esm2020/src/view/view.mjs} +0 -0
  262. package/{esm2015/src/view/view_attach.js → esm2020/src/view/view_attach.mjs} +0 -0
  263. package/{esm2015/src/zone/ng_zone.js → esm2020/src/zone/ng_zone.mjs} +0 -0
  264. package/{esm2015/src/zone.js → esm2020/src/zone.mjs} +0 -0
  265. package/{esm2015/testing/index.js → esm2020/testing/index.mjs} +0 -0
  266. package/{esm2015/testing/public_api.js → esm2020/testing/public_api.mjs} +0 -0
  267. package/{esm2015/testing/src/async.js → esm2020/testing/src/async.mjs} +0 -0
  268. package/{esm2015/testing/src/component_fixture.js → esm2020/testing/src/component_fixture.mjs} +0 -0
  269. package/{esm2015/testing/src/fake_async.js → esm2020/testing/src/fake_async.mjs} +0 -0
  270. package/{esm2015/testing/src/lang_utils.js → esm2020/testing/src/lang_utils.mjs} +0 -0
  271. package/esm2020/testing/src/logger.mjs +34 -0
  272. package/{esm2015/testing/src/metadata_override.js → esm2020/testing/src/metadata_override.mjs} +0 -0
  273. package/{esm2015/testing/src/metadata_overrider.js → esm2020/testing/src/metadata_overrider.mjs} +0 -0
  274. package/esm2020/testing/src/ng_zone_mock.mjs +33 -0
  275. package/{esm2015/testing/src/private_export_testing.js → esm2020/testing/src/private_export_testing.mjs} +0 -0
  276. package/esm2020/testing/src/r3_test_bed.mjs +397 -0
  277. package/esm2020/testing/src/r3_test_bed_compiler.mjs +735 -0
  278. package/{esm2015/testing/src/resolvers.js → esm2020/testing/src/resolvers.mjs} +0 -0
  279. package/{esm2015/testing/src/styling.js → esm2020/testing/src/styling.mjs} +0 -0
  280. package/esm2020/testing/src/test_bed.mjs +614 -0
  281. package/esm2020/testing/src/test_bed_common.mjs +28 -0
  282. package/esm2020/testing/src/test_compiler.mjs +69 -0
  283. package/{esm2015/testing/src/test_hooks.js → esm2020/testing/src/test_hooks.mjs} +0 -0
  284. package/{esm2015/testing/src/testing.js → esm2020/testing/src/testing.mjs} +0 -0
  285. package/{esm2015/testing/src/testing_internal.js → esm2020/testing/src/testing_internal.mjs} +0 -0
  286. package/esm2020/testing/testing.mjs +5 -0
  287. package/fesm2015/{core.js → core.mjs} +8641 -8712
  288. package/fesm2015/core.mjs.map +1 -0
  289. package/fesm2015/{testing.js → testing.mjs} +50 -61
  290. package/fesm2015/testing.mjs.map +1 -0
  291. package/fesm2020/core.mjs +33119 -0
  292. package/fesm2020/core.mjs.map +1 -0
  293. package/fesm2020/testing.mjs +2635 -0
  294. package/fesm2020/testing.mjs.map +1 -0
  295. package/package.json +33 -8
  296. package/schematics/migrations/router-link-empty-expression/analyze_template.d.ts +2 -2
  297. package/schematics/migrations/router-link-empty-expression/analyze_template.js +6 -7
  298. package/schematics/migrations/router-link-empty-expression/angular/html_routerlink_empty_expr_visitor.d.ts +7 -6
  299. package/schematics/migrations/router-link-empty-expression/angular/html_routerlink_empty_expr_visitor.js +10 -11
  300. package/schematics/migrations/router-link-empty-expression/index.js +22 -11
  301. package/schematics/migrations/{move-document → testbed-teardown}/index.d.ts +2 -2
  302. package/schematics/migrations/testbed-teardown/index.js +92 -0
  303. package/schematics/migrations/testbed-teardown/util.d.ts +35 -0
  304. package/schematics/migrations/testbed-teardown/util.js +188 -0
  305. package/schematics/migrations.json +6 -101
  306. package/schematics/package.json +3 -0
  307. package/schematics/utils/import_manager.d.ts +1 -1
  308. package/schematics/utils/import_manager.js +22 -19
  309. package/schematics/utils/load_esm.d.ts +32 -0
  310. package/schematics/utils/load_esm.js +79 -0
  311. package/schematics/utils/ng_component_template.d.ts +1 -1
  312. package/schematics/utils/ng_component_template.js +12 -9
  313. package/schematics/utils/ng_decorators.d.ts +1 -1
  314. package/schematics/utils/ng_decorators.js +1 -1
  315. package/schematics/utils/parse_html.d.ts +2 -2
  316. package/schematics/utils/parse_html.js +4 -5
  317. package/schematics/utils/template_ast_visitor.d.ts +55 -0
  318. package/schematics/utils/template_ast_visitor.js +73 -0
  319. package/schematics/utils/typescript/class_declaration.d.ts +1 -1
  320. package/schematics/utils/typescript/class_declaration.js +10 -7
  321. package/schematics/utils/typescript/compiler_host.d.ts +1 -1
  322. package/schematics/utils/typescript/compiler_host.js +7 -4
  323. package/schematics/utils/typescript/decorators.d.ts +1 -1
  324. package/schematics/utils/typescript/decorators.js +7 -4
  325. package/schematics/utils/typescript/find_base_classes.d.ts +1 -1
  326. package/schematics/utils/typescript/find_base_classes.js +6 -3
  327. package/schematics/utils/typescript/functions.d.ts +1 -1
  328. package/schematics/utils/typescript/functions.js +9 -6
  329. package/schematics/utils/typescript/imports.d.ts +1 -1
  330. package/schematics/utils/typescript/imports.js +12 -9
  331. package/schematics/utils/typescript/nodes.d.ts +1 -1
  332. package/schematics/utils/typescript/nodes.js +11 -8
  333. package/schematics/utils/typescript/parse_tsconfig.d.ts +1 -1
  334. package/schematics/utils/typescript/parse_tsconfig.js +31 -9
  335. package/schematics/utils/typescript/property_name.d.ts +1 -1
  336. package/schematics/utils/typescript/property_name.js +7 -4
  337. package/schematics/utils/typescript/symbol.d.ts +1 -1
  338. package/schematics/utils/typescript/symbol.js +15 -12
  339. package/testing/package.json +5 -5
  340. package/testing/testing.d.ts +57 -339
  341. package/bundles/core-testing.umd.js +0 -3179
  342. package/bundles/core-testing.umd.js.map +0 -1
  343. package/bundles/core.umd.js +0 -34489
  344. package/bundles/core.umd.js.map +0 -1
  345. package/core.metadata.json +0 -1
  346. package/esm2015/core.externs.js +0 -6
  347. package/esm2015/core.js +0 -38
  348. package/esm2015/index.js +0 -13
  349. package/esm2015/src/application_init.js +0 -142
  350. package/esm2015/src/application_module.js +0 -134
  351. package/esm2015/src/application_ref.js +0 -735
  352. package/esm2015/src/change_detection/change_detection.js +0 -31
  353. package/esm2015/src/change_detection/change_detection_util.js +0 -105
  354. package/esm2015/src/change_detection/change_detector_ref.js +0 -96
  355. package/esm2015/src/change_detection/differs/default_iterable_differ.js +0 -668
  356. package/esm2015/src/change_detection.js +0 -14
  357. package/esm2015/src/codegen_private_exports.js +0 -11
  358. package/esm2015/src/compiler/compiler.externs.js +0 -0
  359. package/esm2015/src/console.js +0 -23
  360. package/esm2015/src/core.js +0 -50
  361. package/esm2015/src/core_private_export.js +0 -35
  362. package/esm2015/src/core_render3_private_export.js +0 -45
  363. package/esm2015/src/debug/debug_node.js +0 -632
  364. package/esm2015/src/di/injectable.js +0 -36
  365. package/esm2015/src/di/injection_token.js +0 -75
  366. package/esm2015/src/di/injector.js +0 -326
  367. package/esm2015/src/di/injector_compatibility.js +0 -187
  368. package/esm2015/src/di/interface/interface.externs.js +0 -0
  369. package/esm2015/src/di/jit/injectable.js +0 -96
  370. package/esm2015/src/di/metadata.js +0 -62
  371. package/esm2015/src/di/metadata_attr.js +0 -24
  372. package/esm2015/src/di/util.js +0 -53
  373. package/esm2015/src/event_emitter.js +0 -54
  374. package/esm2015/src/i18n/locale_en.js +0 -17
  375. package/esm2015/src/interface/interface.externs.js +0 -0
  376. package/esm2015/src/linker/compiler.js +0 -118
  377. package/esm2015/src/linker/element_ref.js +0 -66
  378. package/esm2015/src/linker/ng_module_factory.js +0 -21
  379. package/esm2015/src/linker/ng_module_factory_loader.js +0 -41
  380. package/esm2015/src/linker/system_js_ng_module_factory_loader.js +0 -77
  381. package/esm2015/src/linker/view_container_ref.js +0 -252
  382. package/esm2015/src/linker.js +0 -20
  383. package/esm2015/src/metadata/di.js +0 -99
  384. package/esm2015/src/metadata/directives.js +0 -120
  385. package/esm2015/src/metadata/ng_module.js +0 -44
  386. package/esm2015/src/reflection/reflection.externs.js +0 -0
  387. package/esm2015/src/render3/component.js +0 -206
  388. package/esm2015/src/render3/error_code.js +0 -45
  389. package/esm2015/src/render3/features/ng_onchanges_feature.js +0 -92
  390. package/esm2015/src/render3/instructions/shared.js +0 -1813
  391. package/esm2015/src/render3/interfaces/renderer.js +0 -29
  392. package/esm2015/src/render3/jit/directive.js +0 -312
  393. package/esm2015/src/render3/jit/environment.js +0 -167
  394. package/esm2015/src/render3/jit/partial.js +0 -105
  395. package/esm2015/src/render3/metadata.js +0 -49
  396. package/esm2015/src/render3/ng_module_ref.js +0 -108
  397. package/esm2015/src/render3/pipe.js +0 -202
  398. package/esm2015/src/render3/util/discovery_utils.js +0 -411
  399. package/esm2015/src/render3/util/global_utils.js +0 -78
  400. package/esm2015/src/render3/util/misc_utils.js +0 -63
  401. package/esm2015/src/testability/testability.js +0 -256
  402. package/esm2015/src/util/security/trusted_types.js +0 -133
  403. package/esm2015/src/util/security/trusted_types_bypass.js +0 -86
  404. package/esm2015/src/util/util.externs.js +0 -0
  405. package/esm2015/src/view/provider.js +0 -507
  406. package/esm2015/src/view/refs.js +0 -362
  407. package/esm2015/src/view/util.js +0 -378
  408. package/esm2015/testing/src/logger.js +0 -32
  409. package/esm2015/testing/src/ng_zone_mock.js +0 -31
  410. package/esm2015/testing/src/r3_test_bed.js +0 -397
  411. package/esm2015/testing/src/r3_test_bed_compiler.js +0 -744
  412. package/esm2015/testing/src/test_bed.js +0 -608
  413. package/esm2015/testing/src/test_bed_common.js +0 -31
  414. package/esm2015/testing/src/test_compiler.js +0 -66
  415. package/esm2015/testing/testing.externs.js +0 -6
  416. package/esm2015/testing/testing.js +0 -7
  417. package/fesm2015/core.js.map +0 -1
  418. package/fesm2015/testing.js.map +0 -1
  419. package/schematics/migrations/abstract-control-parent/index.d.ts +0 -11
  420. package/schematics/migrations/abstract-control-parent/index.js +0 -69
  421. package/schematics/migrations/abstract-control-parent/util.d.ts +0 -14
  422. package/schematics/migrations/abstract-control-parent/util.js +0 -64
  423. package/schematics/migrations/activated-route-snapshot-fragment/index.d.ts +0 -13
  424. package/schematics/migrations/activated-route-snapshot-fragment/index.js +0 -70
  425. package/schematics/migrations/activated-route-snapshot-fragment/util.d.ts +0 -16
  426. package/schematics/migrations/activated-route-snapshot-fragment/util.js +0 -48
  427. package/schematics/migrations/can-activate-with-redirect-to/index.d.ts +0 -11
  428. package/schematics/migrations/can-activate-with-redirect-to/index.js +0 -66
  429. package/schematics/migrations/can-activate-with-redirect-to/util.d.ts +0 -11
  430. package/schematics/migrations/can-activate-with-redirect-to/util.js +0 -70
  431. package/schematics/migrations/deep-shadow-piercing-selector/index.d.ts +0 -10
  432. package/schematics/migrations/deep-shadow-piercing-selector/index.js +0 -49
  433. package/schematics/migrations/dynamic-queries/index.d.ts +0 -13
  434. package/schematics/migrations/dynamic-queries/index.js +0 -73
  435. package/schematics/migrations/dynamic-queries/util.d.ts +0 -25
  436. package/schematics/migrations/dynamic-queries/util.js +0 -81
  437. package/schematics/migrations/initial-navigation/collector.d.ts +0 -22
  438. package/schematics/migrations/initial-navigation/collector.js +0 -119
  439. package/schematics/migrations/initial-navigation/index.d.ts +0 -11
  440. package/schematics/migrations/initial-navigation/index.js +0 -83
  441. package/schematics/migrations/initial-navigation/transform.d.ts +0 -20
  442. package/schematics/migrations/initial-navigation/transform.js +0 -68
  443. package/schematics/migrations/initial-navigation/update_recorder.d.ts +0 -18
  444. package/schematics/migrations/initial-navigation/update_recorder.js +0 -20
  445. package/schematics/migrations/initial-navigation/util.d.ts +0 -12
  446. package/schematics/migrations/initial-navigation/util.js +0 -43
  447. package/schematics/migrations/missing-injectable/definition_collector.d.ts +0 -37
  448. package/schematics/migrations/missing-injectable/definition_collector.js +0 -89
  449. package/schematics/migrations/missing-injectable/index.d.ts +0 -11
  450. package/schematics/migrations/missing-injectable/index.js +0 -122
  451. package/schematics/migrations/missing-injectable/providers_evaluator.d.ts +0 -36
  452. package/schematics/migrations/missing-injectable/providers_evaluator.js +0 -64
  453. package/schematics/migrations/missing-injectable/transform.d.ts +0 -69
  454. package/schematics/migrations/missing-injectable/transform.js +0 -201
  455. package/schematics/migrations/missing-injectable/update_recorder.d.ts +0 -21
  456. package/schematics/migrations/missing-injectable/update_recorder.js +0 -20
  457. package/schematics/migrations/module-with-providers/collector.d.ts +0 -34
  458. package/schematics/migrations/module-with-providers/collector.js +0 -73
  459. package/schematics/migrations/module-with-providers/index.d.ts +0 -13
  460. package/schematics/migrations/module-with-providers/index.js +0 -93
  461. package/schematics/migrations/module-with-providers/transform.d.ts +0 -49
  462. package/schematics/migrations/module-with-providers/transform.js +0 -148
  463. package/schematics/migrations/module-with-providers/util.d.ts +0 -13
  464. package/schematics/migrations/module-with-providers/util.js +0 -40
  465. package/schematics/migrations/move-document/document_import_visitor.d.ts +0 -27
  466. package/schematics/migrations/move-document/document_import_visitor.js +0 -74
  467. package/schematics/migrations/move-document/index.js +0 -93
  468. package/schematics/migrations/move-document/move-import.d.ts +0 -12
  469. package/schematics/migrations/move-document/move-import.js +0 -61
  470. package/schematics/migrations/native-view-encapsulation/index.d.ts +0 -11
  471. package/schematics/migrations/native-view-encapsulation/index.js +0 -63
  472. package/schematics/migrations/native-view-encapsulation/util.d.ts +0 -11
  473. package/schematics/migrations/native-view-encapsulation/util.js +0 -48
  474. package/schematics/migrations/navigation-extras-omissions/index.d.ts +0 -11
  475. package/schematics/migrations/navigation-extras-omissions/index.js +0 -69
  476. package/schematics/migrations/navigation-extras-omissions/util.d.ts +0 -11
  477. package/schematics/migrations/navigation-extras-omissions/util.js +0 -126
  478. package/schematics/migrations/relative-link-resolution/collector.d.ts +0 -22
  479. package/schematics/migrations/relative-link-resolution/collector.js +0 -95
  480. package/schematics/migrations/relative-link-resolution/index.d.ts +0 -11
  481. package/schematics/migrations/relative-link-resolution/index.js +0 -84
  482. package/schematics/migrations/relative-link-resolution/transform.d.ts +0 -22
  483. package/schematics/migrations/relative-link-resolution/transform.js +0 -65
  484. package/schematics/migrations/relative-link-resolution/update_recorder.d.ts +0 -18
  485. package/schematics/migrations/relative-link-resolution/update_recorder.js +0 -20
  486. package/schematics/migrations/relative-link-resolution/util.d.ts +0 -12
  487. package/schematics/migrations/relative-link-resolution/util.js +0 -43
  488. package/schematics/migrations/renderer-to-renderer2/helpers.d.ts +0 -25
  489. package/schematics/migrations/renderer-to-renderer2/helpers.js +0 -238
  490. package/schematics/migrations/renderer-to-renderer2/index.d.ts +0 -14
  491. package/schematics/migrations/renderer-to-renderer2/index.js +0 -135
  492. package/schematics/migrations/renderer-to-renderer2/migration.d.ts +0 -18
  493. package/schematics/migrations/renderer-to-renderer2/migration.js +0 -225
  494. package/schematics/migrations/renderer-to-renderer2/util.d.ts +0 -18
  495. package/schematics/migrations/renderer-to-renderer2/util.js +0 -83
  496. package/schematics/migrations/router-preserve-query-params/index.d.ts +0 -14
  497. package/schematics/migrations/router-preserve-query-params/index.js +0 -72
  498. package/schematics/migrations/router-preserve-query-params/util.d.ts +0 -11
  499. package/schematics/migrations/router-preserve-query-params/util.js +0 -103
  500. package/schematics/migrations/static-queries/angular/directive_inputs.d.ts +0 -11
  501. package/schematics/migrations/static-queries/angular/directive_inputs.js +0 -84
  502. package/schematics/migrations/static-queries/angular/ng_query_visitor.d.ts +0 -45
  503. package/schematics/migrations/static-queries/angular/ng_query_visitor.js +0 -127
  504. package/schematics/migrations/static-queries/angular/query-definition.d.ts +0 -37
  505. package/schematics/migrations/static-queries/angular/query-definition.js +0 -33
  506. package/schematics/migrations/static-queries/angular/super_class.d.ts +0 -15
  507. package/schematics/migrations/static-queries/angular/super_class.js +0 -35
  508. package/schematics/migrations/static-queries/index.d.ts +0 -11
  509. package/schematics/migrations/static-queries/index.js +0 -219
  510. package/schematics/migrations/static-queries/strategies/template_strategy/template_strategy.d.ts +0 -38
  511. package/schematics/migrations/static-queries/strategies/template_strategy/template_strategy.js +0 -214
  512. package/schematics/migrations/static-queries/strategies/test_strategy/test_strategy.d.ts +0 -24
  513. package/schematics/migrations/static-queries/strategies/test_strategy/test_strategy.js +0 -38
  514. package/schematics/migrations/static-queries/strategies/timing-strategy.d.ts +0 -19
  515. package/schematics/migrations/static-queries/strategies/timing-strategy.js +0 -20
  516. package/schematics/migrations/static-queries/strategies/usage_strategy/declaration_usage_visitor.d.ts +0 -82
  517. package/schematics/migrations/static-queries/strategies/usage_strategy/declaration_usage_visitor.js +0 -369
  518. package/schematics/migrations/static-queries/strategies/usage_strategy/super_class_context.d.ts +0 -18
  519. package/schematics/migrations/static-queries/strategies/usage_strategy/super_class_context.js +0 -52
  520. package/schematics/migrations/static-queries/strategies/usage_strategy/template_usage_visitor.d.ts +0 -26
  521. package/schematics/migrations/static-queries/strategies/usage_strategy/template_usage_visitor.js +0 -94
  522. package/schematics/migrations/static-queries/strategies/usage_strategy/usage_strategy.d.ts +0 -33
  523. package/schematics/migrations/static-queries/strategies/usage_strategy/usage_strategy.js +0 -168
  524. package/schematics/migrations/static-queries/transform.d.ts +0 -21
  525. package/schematics/migrations/static-queries/transform.js +0 -102
  526. package/schematics/migrations/template-var-assignment/analyze_template.d.ts +0 -20
  527. package/schematics/migrations/template-var-assignment/analyze_template.js +0 -39
  528. package/schematics/migrations/template-var-assignment/angular/html_variable_assignment_visitor.d.ts +0 -27
  529. package/schematics/migrations/template-var-assignment/angular/html_variable_assignment_visitor.js +0 -79
  530. package/schematics/migrations/template-var-assignment/index.d.ts +0 -11
  531. package/schematics/migrations/template-var-assignment/index.js +0 -90
  532. package/schematics/migrations/undecorated-classes-with-decorated-fields/index.d.ts +0 -14
  533. package/schematics/migrations/undecorated-classes-with-decorated-fields/index.js +0 -114
  534. package/schematics/migrations/undecorated-classes-with-decorated-fields/transform.d.ts +0 -63
  535. package/schematics/migrations/undecorated-classes-with-decorated-fields/transform.js +0 -300
  536. package/schematics/migrations/undecorated-classes-with-decorated-fields/update_recorder.d.ts +0 -19
  537. package/schematics/migrations/undecorated-classes-with-decorated-fields/update_recorder.js +0 -20
  538. package/schematics/migrations/undecorated-classes-with-di/create_ngc_program.d.ts +0 -18
  539. package/schematics/migrations/undecorated-classes-with-di/create_ngc_program.js +0 -57
  540. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/convert_directive_metadata.d.ts +0 -18
  541. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/convert_directive_metadata.js +0 -97
  542. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/decorator_rewriter.d.ts +0 -39
  543. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/decorator_rewriter.js +0 -116
  544. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/import_rewrite_visitor.d.ts +0 -37
  545. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/import_rewrite_visitor.js +0 -126
  546. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/path_format.d.ts +0 -10
  547. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/path_format.js +0 -31
  548. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/source_file_exports.d.ts +0 -16
  549. package/schematics/migrations/undecorated-classes-with-di/decorator_rewrite/source_file_exports.js +0 -65
  550. package/schematics/migrations/undecorated-classes-with-di/index.d.ts +0 -11
  551. package/schematics/migrations/undecorated-classes-with-di/index.js +0 -184
  552. package/schematics/migrations/undecorated-classes-with-di/ng_declaration_collector.d.ts +0 -38
  553. package/schematics/migrations/undecorated-classes-with-di/ng_declaration_collector.js +0 -142
  554. package/schematics/migrations/undecorated-classes-with-di/transform.d.ts +0 -97
  555. package/schematics/migrations/undecorated-classes-with-di/transform.js +0 -370
  556. package/schematics/migrations/undecorated-classes-with-di/update_recorder.d.ts +0 -20
  557. package/schematics/migrations/undecorated-classes-with-di/update_recorder.js +0 -20
  558. package/schematics/migrations/wait-for-async/index.d.ts +0 -11
  559. package/schematics/migrations/wait-for-async/index.js +0 -98
  560. package/schematics/migrations/wait-for-async/util.d.ts +0 -11
  561. package/schematics/migrations/wait-for-async/util.js +0 -37
  562. package/schematics/migrations/xhr-factory/index.d.ts +0 -10
  563. package/schematics/migrations/xhr-factory/index.js +0 -104
  564. package/src/r3_symbols.d.ts +0 -1025
  565. package/testing/testing.metadata.json +0 -1
  566. package/testing.d.ts +0 -7
  567. package/testing.metadata.json +0 -1
@@ -1,184 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
- return new (P || (P = Promise))(function (resolve, reject) {
11
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
- step((generator = generator.apply(thisArg, _arguments || [])).next());
15
- });
16
- };
17
- (function (factory) {
18
- if (typeof module === "object" && typeof module.exports === "object") {
19
- var v = factory(require, exports);
20
- if (v !== undefined) module.exports = v;
21
- }
22
- else if (typeof define === "function" && define.amd) {
23
- define("@angular/core/schematics/migrations/undecorated-classes-with-di", ["require", "exports", "@angular-devkit/schematics", "@angular/compiler-cli/src/ngtsc/partial_evaluator", "@angular/compiler-cli/src/ngtsc/reflection", "path", "typescript", "@angular/core/schematics/utils/project_tsconfig_paths", "@angular/core/schematics/utils/typescript/compiler_host", "@angular/core/schematics/migrations/undecorated-classes-with-di/create_ngc_program", "@angular/core/schematics/migrations/undecorated-classes-with-di/ng_declaration_collector", "@angular/core/schematics/migrations/undecorated-classes-with-di/transform"], factory);
24
- }
25
- })(function (require, exports) {
26
- "use strict";
27
- Object.defineProperty(exports, "__esModule", { value: true });
28
- const schematics_1 = require("@angular-devkit/schematics");
29
- const partial_evaluator_1 = require("@angular/compiler-cli/src/ngtsc/partial_evaluator");
30
- const reflection_1 = require("@angular/compiler-cli/src/ngtsc/reflection");
31
- const path_1 = require("path");
32
- const ts = require("typescript");
33
- const project_tsconfig_paths_1 = require("@angular/core/schematics/utils/project_tsconfig_paths");
34
- const compiler_host_1 = require("@angular/core/schematics/utils/typescript/compiler_host");
35
- const create_ngc_program_1 = require("@angular/core/schematics/migrations/undecorated-classes-with-di/create_ngc_program");
36
- const ng_declaration_collector_1 = require("@angular/core/schematics/migrations/undecorated-classes-with-di/ng_declaration_collector");
37
- const transform_1 = require("@angular/core/schematics/migrations/undecorated-classes-with-di/transform");
38
- const MIGRATION_RERUN_MESSAGE = 'Migration can be rerun with: "ng update @angular/core ' +
39
- '--migrate-only migration-v9-undecorated-classes-with-di"';
40
- const MIGRATION_AOT_FAILURE = 'This migration uses the Angular compiler internally and ' +
41
- 'therefore projects that no longer build successfully after the update cannot run ' +
42
- 'the migration. Please ensure there are no AOT compilation errors and rerun the migration.';
43
- /** Entry point for the V9 "undecorated-classes-with-di" migration. */
44
- function default_1() {
45
- return (tree, ctx) => __awaiter(this, void 0, void 0, function* () {
46
- const { buildPaths } = yield (0, project_tsconfig_paths_1.getProjectTsConfigPaths)(tree);
47
- const basePath = process.cwd();
48
- const failures = [];
49
- let programError = false;
50
- if (!buildPaths.length) {
51
- throw new schematics_1.SchematicsException('Could not find any tsconfig file. Cannot migrate undecorated derived classes and ' +
52
- 'undecorated base classes which use DI.');
53
- }
54
- for (const tsconfigPath of buildPaths) {
55
- const result = runUndecoratedClassesMigration(tree, tsconfigPath, basePath, ctx.logger);
56
- failures.push(...result.failures);
57
- programError = programError || !!result.programError;
58
- }
59
- if (programError) {
60
- ctx.logger.info('Could not migrate all undecorated classes that use dependency');
61
- ctx.logger.info('injection. Some project targets could not be analyzed due to');
62
- ctx.logger.info('TypeScript program failures.\n');
63
- ctx.logger.info(`${MIGRATION_RERUN_MESSAGE}\n`);
64
- if (failures.length) {
65
- ctx.logger.info('Please manually fix the following failures and re-run the');
66
- ctx.logger.info('migration once the TypeScript program failures are resolved.');
67
- failures.forEach(message => ctx.logger.warn(`⮑ ${message}`));
68
- }
69
- }
70
- else if (failures.length) {
71
- ctx.logger.info('Could not migrate all undecorated classes that use dependency');
72
- ctx.logger.info('injection. Please manually fix the following failures:');
73
- failures.forEach(message => ctx.logger.warn(`⮑ ${message}`));
74
- }
75
- });
76
- }
77
- exports.default = default_1;
78
- function runUndecoratedClassesMigration(tree, tsconfigPath, basePath, logger) {
79
- const failures = [];
80
- const programData = gracefullyCreateProgram(tree, basePath, tsconfigPath, logger);
81
- // Gracefully exit if the program could not be created.
82
- if (programData === null) {
83
- return { failures: [], programError: true };
84
- }
85
- const { program, compiler } = programData;
86
- const typeChecker = program.getTypeChecker();
87
- const partialEvaluator = new partial_evaluator_1.PartialEvaluator(new reflection_1.TypeScriptReflectionHost(typeChecker), typeChecker, /* dependencyTracker */ null);
88
- const declarationCollector = new ng_declaration_collector_1.NgDeclarationCollector(typeChecker, partialEvaluator);
89
- const sourceFiles = program.getSourceFiles().filter(sourceFile => (0, compiler_host_1.canMigrateFile)(basePath, sourceFile, program));
90
- // Analyze source files by detecting all directives, components and providers.
91
- sourceFiles.forEach(sourceFile => declarationCollector.visitNode(sourceFile));
92
- const { decoratedDirectives, decoratedProviders, undecoratedDeclarations } = declarationCollector;
93
- const transform = new transform_1.UndecoratedClassesTransform(typeChecker, compiler, partialEvaluator, getUpdateRecorder);
94
- const updateRecorders = new Map();
95
- // Run the migrations for decorated providers and both decorated and undecorated
96
- // directives. The transform failures are collected and converted into human-readable
97
- // failures which can be printed to the console.
98
- [...transform.migrateDecoratedDirectives(decoratedDirectives),
99
- ...transform.migrateDecoratedProviders(decoratedProviders),
100
- ...transform.migrateUndecoratedDeclarations(Array.from(undecoratedDeclarations))]
101
- .forEach(({ node, message }) => {
102
- const nodeSourceFile = node.getSourceFile();
103
- const relativeFilePath = (0, path_1.relative)(basePath, nodeSourceFile.fileName);
104
- const { line, character } = ts.getLineAndCharacterOfPosition(node.getSourceFile(), node.getStart());
105
- failures.push(`${relativeFilePath}@${line + 1}:${character + 1}: ${message}`);
106
- });
107
- // Record the changes collected in the import manager and transformer.
108
- transform.recordChanges();
109
- // Walk through each update recorder and commit the update. We need to commit the
110
- // updates in batches per source file as there can be only one recorder per source
111
- // file in order to avoid shifted character offsets.
112
- updateRecorders.forEach(recorder => recorder.commitUpdate());
113
- return { failures };
114
- /** Gets the update recorder for the specified source file. */
115
- function getUpdateRecorder(sourceFile) {
116
- if (updateRecorders.has(sourceFile)) {
117
- return updateRecorders.get(sourceFile);
118
- }
119
- const treeRecorder = tree.beginUpdate((0, path_1.relative)(basePath, sourceFile.fileName));
120
- const recorder = {
121
- addClassComment(node, text) {
122
- treeRecorder.insertLeft(node.members.pos, `\n // ${text}\n`);
123
- },
124
- addClassDecorator(node, text) {
125
- // New imports should be inserted at the left while decorators should be inserted
126
- // at the right in order to ensure that imports are inserted before the decorator
127
- // if the start position of import and decorator is the source file start.
128
- treeRecorder.insertRight(node.getStart(), `${text}\n`);
129
- },
130
- addNewImport(start, importText) {
131
- // New imports should be inserted at the left while decorators should be inserted
132
- // at the right in order to ensure that imports are inserted before the decorator
133
- // if the start position of import and decorator is the source file start.
134
- treeRecorder.insertLeft(start, importText);
135
- },
136
- updateExistingImport(namedBindings, newNamedBindings) {
137
- treeRecorder.remove(namedBindings.getStart(), namedBindings.getWidth());
138
- treeRecorder.insertRight(namedBindings.getStart(), newNamedBindings);
139
- },
140
- commitUpdate() {
141
- tree.commitUpdate(treeRecorder);
142
- }
143
- };
144
- updateRecorders.set(sourceFile, recorder);
145
- return recorder;
146
- }
147
- }
148
- function getErrorDiagnostics(diagnostics) {
149
- return diagnostics.filter(d => d.category === ts.DiagnosticCategory.Error);
150
- }
151
- function gracefullyCreateProgram(tree, basePath, tsconfigPath, logger) {
152
- try {
153
- const { ngcProgram, host, program, compiler } = (0, create_ngc_program_1.createNgcProgram)((options) => (0, compiler_host_1.createMigrationCompilerHost)(tree, options, basePath), tsconfigPath);
154
- const syntacticDiagnostics = getErrorDiagnostics(ngcProgram.getTsSyntacticDiagnostics());
155
- const structuralDiagnostics = getErrorDiagnostics(ngcProgram.getNgStructuralDiagnostics());
156
- const configDiagnostics = getErrorDiagnostics([...program.getOptionsDiagnostics(), ...ngcProgram.getNgOptionDiagnostics()]);
157
- if (configDiagnostics.length) {
158
- logger.warn(`\nTypeScript project "${tsconfigPath}" has configuration errors. This could cause ` +
159
- `an incomplete migration. Please fix the following failures and rerun the migration:`);
160
- logger.error(ts.formatDiagnostics(configDiagnostics, host));
161
- return null;
162
- }
163
- // Syntactic TypeScript errors can throw off the query analysis and therefore we want
164
- // to notify the developer that we couldn't analyze parts of the project. Developers
165
- // can just re-run the migration after fixing these failures.
166
- if (syntacticDiagnostics.length) {
167
- logger.warn(`\nTypeScript project "${tsconfigPath}" has syntactical errors which could cause ` +
168
- `an incomplete migration. Please fix the following failures and rerun the migration:`);
169
- logger.error(ts.formatDiagnostics(syntacticDiagnostics, host));
170
- return null;
171
- }
172
- if (structuralDiagnostics.length) {
173
- throw new Error(ts.formatDiagnostics(structuralDiagnostics, host));
174
- }
175
- return { program, compiler };
176
- }
177
- catch (e) {
178
- logger.warn(`\n${MIGRATION_AOT_FAILURE} The following project failed: ${tsconfigPath}\n`);
179
- logger.error(`${e.toString()}\n`);
180
- return null;
181
- }
182
- }
183
- });
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NjaGVtYXRpY3MvbWlncmF0aW9ucy91bmRlY29yYXRlZC1jbGFzc2VzLXdpdGgtZGkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFHSCwyREFBNkY7SUFHN0YseUZBQW1GO0lBQ25GLDJFQUFvRjtJQUNwRiwrQkFBOEI7SUFDOUIsaUNBQWlDO0lBRWpDLGtHQUEyRTtJQUMzRSwyRkFBaUc7SUFFakcsMkhBQXNEO0lBQ3RELHVJQUFrRTtJQUNsRSx5R0FBd0Q7SUFHeEQsTUFBTSx1QkFBdUIsR0FBRyx3REFBd0Q7UUFDcEYsMERBQTBELENBQUM7SUFFL0QsTUFBTSxxQkFBcUIsR0FBRywwREFBMEQ7UUFDcEYsbUZBQW1GO1FBQ25GLDJGQUEyRixDQUFDO0lBRWhHLHNFQUFzRTtJQUN0RTtRQUNFLE9BQU8sQ0FBTyxJQUFVLEVBQUUsR0FBcUIsRUFBRSxFQUFFO1lBQ2pELE1BQU0sRUFBQyxVQUFVLEVBQUMsR0FBRyxNQUFNLElBQUEsZ0RBQXVCLEVBQUMsSUFBSSxDQUFDLENBQUM7WUFDekQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQy9CLE1BQU0sUUFBUSxHQUFhLEVBQUUsQ0FBQztZQUM5QixJQUFJLFlBQVksR0FBRyxLQUFLLENBQUM7WUFFekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3RCLE1BQU0sSUFBSSxnQ0FBbUIsQ0FDekIsbUZBQW1GO29CQUNuRix3Q0FBd0MsQ0FBQyxDQUFDO2FBQy9DO1lBRUQsS0FBSyxNQUFNLFlBQVksSUFBSSxVQUFVLEVBQUU7Z0JBQ3JDLE1BQU0sTUFBTSxHQUFHLDhCQUE4QixDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FB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QUFZLCtDQUErQztvQkFDcEYscUZBQXFGLENBQUMsQ0FBQztnQkFDM0YsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDNUQsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUVELHFGQUFxRjtZQUNyRixvRkFBb0Y7WUFDcEYsNkRBQTZEO1lBQzdELElBQUksb0JBQW9CLENBQUMsTUFBTSxFQUFFO2dCQUMvQixNQUFNLENBQUMsSUFBSSxDQUNQLHlCQUF5QixZQUFZLDZDQUE2QztvQkFDbEYscUZBQXFGLENBQUMsQ0FBQztnQkFDM0YsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDL0QsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUVELElBQUkscUJBQXFCLENBQUMsTUFBTSxFQUFFO2dCQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBa0IscUJBQXFCLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUNyRjtZQUVELE9BQU8sRUFBQyxPQUFPLEVBQUUsUUFBUSxFQUFDLENBQUM7U0FDNUI7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxxQkFBcUIsa0NBQWtDLFlBQVksSUFBSSxDQUFDLENBQUM7WUFDMUYsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbEMsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtsb2dnaW5nfSBmcm9tICdAYW5ndWxhci1kZXZraXQvY29yZSc7XG5pbXBvcnQge1J1bGUsIFNjaGVtYXRpY0NvbnRleHQsIFNjaGVtYXRpY3NFeGNlcHRpb24sIFRyZWV9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzJztcbmltcG9ydCB7QW90Q29tcGlsZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCB7RGlhZ25vc3RpYyBhcyBOZ0RpYWdub3N0aWN9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaSc7XG5pbXBvcnQge1BhcnRpYWxFdmFsdWF0b3J9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvcGFydGlhbF9ldmFsdWF0b3InO1xuaW1wb3J0IHtUeXBlU2NyaXB0UmVmbGVjdGlvbkhvc3R9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvcmVmbGVjdGlvbic7XG5pbXBvcnQge3JlbGF0aXZlfSBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge2dldFByb2plY3RUc0NvbmZpZ1BhdGhzfSBmcm9tICcuLi8uLi91dGlscy9wcm9qZWN0X3RzY29uZmlnX3BhdGhzJztcbmltcG9ydCB7Y2FuTWlncmF0ZUZpbGUsIGNyZWF0ZU1pZ3JhdGlvbkNvbXBpbGVySG9zdH0gZnJvbSAnLi4vLi4vdXRpbHMvdHlwZXNjcmlwdC9jb21waWxlcl9ob3N0JztcblxuaW1wb3J0IHtjcmVhdGVOZ2NQcm9ncmFtfSBmcm9tICcuL2NyZWF0ZV9uZ2NfcHJvZ3JhbSc7XG5pbXBvcnQge05nRGVjbGFyYXRpb25Db2xsZWN0b3J9IGZyb20gJy4vbmdfZGVjbGFyYXRpb25fY29sbGVjdG9yJztcbmltcG9ydCB7VW5kZWNvcmF0ZWRDbGFzc2VzVHJhbnNmb3JtfSBmcm9tICcuL3RyYW5zZm9ybSc7XG5pbXBvcnQge1VwZGF0ZVJlY29yZGVyfSBmcm9tICcuL3VwZGF0ZV9yZWNvcmRlcic7XG5cbmNvbnN0IE1JR1JBVElPTl9SRVJVTl9NRVNTQUdFID0gJ01pZ3JhdGlvbiBjYW4gYmUgcmVydW4gd2l0aDogXCJuZyB1cGRhdGUgQGFuZ3VsYXIvY29yZSAnICtcbiAgICAnLS1taWdyYXRlLW9ubHkgbWlncmF0aW9uLXY5LXVuZGVjb3JhdGVkLWNsYXNzZXMtd2l0aC1kaVwiJztcblxuY29uc3QgTUlHUkFUSU9OX0FPVF9GQUlMVVJFID0gJ1RoaXMgbWlncmF0aW9uIHVzZXMgdGhlIEFuZ3VsYXIgY29tcGlsZXIgaW50ZXJuYWxseSBhbmQgJyArXG4gICAgJ3RoZXJlZm9yZSBwcm9qZWN0cyB0aGF0IG5vIGxvbmdlciBidWlsZCBzdWNjZXNzZnVsbHkgYWZ0ZXIgdGhlIHVwZGF0ZSBjYW5ub3QgcnVuICcgK1xuICAgICd0aGUgbWlncmF0aW9uLiBQbGVhc2UgZW5zdXJlIHRoZXJlIGFyZSBubyBBT1QgY29tcGlsYXRpb24gZXJyb3JzIGFuZCByZXJ1biB0aGUgbWlncmF0aW9uLic7XG5cbi8qKiBFbnRyeSBwb2ludCBmb3IgdGhlIFY5IFwidW5kZWNvcmF0ZWQtY2xhc3Nlcy13aXRoLWRpXCIgbWlncmF0aW9uLiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oKTogUnVsZSB7XG4gIHJldHVybiBhc3luYyAodHJlZTogVHJlZSwgY3R4OiBTY2hlbWF0aWNDb250ZXh0KSA9PiB7XG4gICAgY29uc3Qge2J1aWxkUGF0aHN9ID0gYXdhaXQgZ2V0UHJvamVjdFRzQ29uZmlnUGF0aHModHJlZSk7XG4gICAgY29uc3QgYmFzZVBhdGggPSBwcm9jZXNzLmN3ZCgpO1xuICAgIGNvbnN0IGZhaWx1cmVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGxldCBwcm9ncmFtRXJyb3IgPSBmYWxzZTtcblxuICAgIGlmICghYnVpbGRQYXRocy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBTY2hlbWF0aWNzRXhjZXB0aW9uKFxuICAgICAgICAgICdDb3VsZCBub3QgZmluZCBhbnkgdHNjb25maWcgZmlsZS4gQ2Fubm90IG1pZ3JhdGUgdW5kZWNvcmF0ZWQgZGVyaXZlZCBjbGFzc2VzIGFuZCAnICtcbiAgICAgICAgICAndW5kZWNvcmF0ZWQgYmFzZSBjbGFzc2VzIHdoaWNoIHVzZSBESS4nKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHRzY29uZmlnUGF0aCBvZiBidWlsZFBhdGhzKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBydW5VbmRlY29yYXRlZENsYXNzZXNNaWdyYXRpb24odHJlZSwgdHNjb25maWdQYXRoLCBiYXNlUGF0aCwgY3R4LmxvZ2dlcik7XG4gICAgICBmYWlsdXJlcy5wdXNoKC4uLnJlc3VsdC5mYWlsdXJlcyk7XG4gICAgICBwcm9ncmFtRXJyb3IgPSBwcm9ncmFtRXJyb3IgfHwgISFyZXN1bHQucHJvZ3JhbUVycm9yO1xuICAgIH1cblxuICAgIGlmIChwcm9ncmFtRXJyb3IpIHtcbiAgICAgIGN0eC5sb2dnZXIuaW5mbygnQ291bGQgbm90IG1pZ3JhdGUgYWxsIHVuZGVjb3JhdGVkIGNsYXNzZXMgdGhhdCB1c2UgZGVwZW5kZW5jeScpO1xuICAgICAgY3R4LmxvZ2dlci5pbmZvKCdpbmplY3Rpb24uIFNvbWUgcHJvamVjdCB0YXJnZXRzIGNvdWxkIG5vdCBiZSBhbmFseXplZCBkdWUgdG8nKTtcbiAgICAgIGN0eC5sb2dnZXIuaW5mbygnVHlwZVNjcmlwdCBwcm9ncmFtIGZhaWx1cmVzLlxcbicpO1xuICAgICAgY3R4LmxvZ2dlci5pbmZvKGAke01JR1JBVElPTl9SRVJVTl9NRVNTQUdFfVxcbmApO1xuXG4gICAgICBpZiAoZmFpbHVyZXMubGVuZ3RoKSB7XG4gICAgICAgIGN0eC5sb2dnZXIuaW5mbygnUGxlYXNlIG1hbnVhbGx5IGZpeCB0aGUgZm9sbG93aW5nIGZhaWx1cmVzIGFuZCByZS1ydW4gdGhlJyk7XG4gICAgICAgIGN0eC5sb2dnZXIuaW5mbygnbWlncmF0aW9uIG9uY2UgdGhlIFR5cGVTY3JpcHQgcHJvZ3JhbSBmYWlsdXJlcyBhcmUgcmVzb2x2ZWQuJyk7XG4gICAgICAgIGZhaWx1cmVzLmZvckVhY2gobWVzc2FnZSA9PiBjdHgubG9nZ2VyLndhcm4oYOKukSAgICR7bWVzc2FnZX1gKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChmYWlsdXJlcy5sZW5ndGgpIHtcbiAgICAgIGN0eC5sb2dnZXIuaW5mbygnQ291bGQgbm90IG1pZ3JhdGUgYWxsIHVuZGVjb3JhdGVkIGNsYXNzZXMgdGhhdCB1c2UgZGVwZW5kZW5jeScpO1xuICAgICAgY3R4LmxvZ2dlci5pbmZvKCdpbmplY3Rpb24uIFBsZWFzZSBtYW51YWxseSBmaXggdGhlIGZvbGxvd2luZyBmYWlsdXJlczonKTtcbiAgICAgIGZhaWx1cmVzLmZvckVhY2gobWVzc2FnZSA9PiBjdHgubG9nZ2VyLndhcm4oYOKukSAgICR7bWVzc2FnZX1gKSk7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBydW5VbmRlY29yYXRlZENsYXNzZXNNaWdyYXRpb24oXG4gICAgdHJlZTogVHJlZSwgdHNjb25maWdQYXRoOiBzdHJpbmcsIGJhc2VQYXRoOiBzdHJpbmcsXG4gICAgbG9nZ2VyOiBsb2dnaW5nLkxvZ2dlckFwaSk6IHtmYWlsdXJlczogc3RyaW5nW10sIHByb2dyYW1FcnJvcj86IGJvb2xlYW59IHtcbiAgY29uc3QgZmFpbHVyZXM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IHByb2dyYW1EYXRhID0gZ3JhY2VmdWxseUNyZWF0ZVByb2dyYW0odHJlZSwgYmFzZVBhdGgsIHRzY29uZmlnUGF0aCwgbG9nZ2VyKTtcblxuICAvLyBHcmFjZWZ1bGx5IGV4aXQgaWYgdGhlIHByb2dyYW0gY291bGQgbm90IGJlIGNyZWF0ZWQuXG4gIGlmIChwcm9ncmFtRGF0YSA9PT0gbnVsbCkge1xuICAgIHJldHVybiB7ZmFpbHVyZXM6IFtdLCBwcm9ncmFtRXJyb3I6IHRydWV9O1xuICB9XG5cbiAgY29uc3Qge3Byb2dyYW0sIGNvbXBpbGVyfSA9IHByb2dyYW1EYXRhO1xuICBjb25zdCB0eXBlQ2hlY2tlciA9IHByb2dyYW0uZ2V0VHlwZUNoZWNrZXIoKTtcbiAgY29uc3QgcGFydGlhbEV2YWx1YXRvciA9IG5ldyBQYXJ0aWFsRXZhbHVhdG9yKFxuICAgICAgbmV3IFR5cGVTY3JpcHRSZWZsZWN0aW9uSG9zdCh0eXBlQ2hlY2tlciksIHR5cGVDaGVja2VyLCAvKiBkZXBlbmRlbmN5VHJhY2tlciAqLyBudWxsKTtcbiAgY29uc3QgZGVjbGFyYXRpb25Db2xsZWN0b3IgPSBuZXcgTmdEZWNsYXJhdGlvbkNvbGxlY3Rvcih0eXBlQ2hlY2tlciwgcGFydGlhbEV2YWx1YXRvcik7XG4gIGNvbnN0IHNvdXJjZUZpbGVzID1cbiAgICAgIHByb2dyYW0uZ2V0U291cmNlRmlsZXMoKS5maWx0ZXIoc291cmNlRmlsZSA9PiBjYW5NaWdyYXRlRmlsZShiYXNlUGF0aCwgc291cmNlRmlsZSwgcHJvZ3JhbSkpO1xuXG4gIC8vIEFuYWx5emUgc291cmNlIGZpbGVzIGJ5IGRldGVjdGluZyBhbGwgZGlyZWN0aXZlcywgY29tcG9uZW50cyBhbmQgcHJvdmlkZXJzLlxuICBzb3VyY2VGaWxlcy5mb3JFYWNoKHNvdXJjZUZpbGUgPT4gZGVjbGFyYXRpb25Db2xsZWN0b3IudmlzaXROb2RlKHNvdXJjZUZpbGUpKTtcblxuICBjb25zdCB7ZGVjb3JhdGVkRGlyZWN0aXZlcywgZGVjb3JhdGVkUHJvdmlkZXJzLCB1bmRlY29yYXRlZERlY2xhcmF0aW9uc30gPSBkZWNsYXJhdGlvbkNvbGxlY3RvcjtcbiAgY29uc3QgdHJhbnNmb3JtID1cbiAgICAgIG5ldyBVbmRlY29yYXRlZENsYXNzZXNUcmFuc2Zvcm0odHlwZUNoZWNrZXIsIGNvbXBpbGVyLCBwYXJ0aWFsRXZhbHVhdG9yLCBnZXRVcGRhdGVSZWNvcmRlcik7XG4gIGNvbnN0IHVwZGF0ZVJlY29yZGVycyA9IG5ldyBNYXA8dHMuU291cmNlRmlsZSwgVXBkYXRlUmVjb3JkZXI+KCk7XG5cbiAgLy8gUnVuIHRoZSBtaWdyYXRpb25zIGZvciBkZWNvcmF0ZWQgcHJvdmlkZXJzIGFuZCBib3RoIGRlY29yYXRlZCBhbmQgdW5kZWNvcmF0ZWRcbiAgLy8gZGlyZWN0aXZlcy4gVGhlIHRyYW5zZm9ybSBmYWlsdXJlcyBhcmUgY29sbGVjdGVkIGFuZCBjb252ZXJ0ZWQgaW50byBodW1hbi1yZWFkYWJsZVxuICAvLyBmYWlsdXJlcyB3aGljaCBjYW4gYmUgcHJpbnRlZCB0byB0aGUgY29uc29sZS5cbiAgWy4uLnRyYW5zZm9ybS5taWdyYXRlRGVjb3JhdGVkRGlyZWN0aXZlcyhkZWNvcmF0ZWREaXJlY3RpdmVzKSxcbiAgIC4uLnRyYW5zZm9ybS5taWdyYXRlRGVjb3JhdGVkUHJvdmlkZXJzKGRlY29yYXRlZFByb3ZpZGVycyksXG4gICAuLi50cmFuc2Zvcm0ubWlncmF0ZVVuZGVjb3JhdGVkRGVjbGFyYXRpb25zKEFycmF5LmZyb20odW5kZWNvcmF0ZWREZWNsYXJhdGlvbnMpKV1cbiAgICAgIC5mb3JFYWNoKCh7bm9kZSwgbWVzc2FnZX0pID0+IHtcbiAgICAgICAgY29uc3Qgbm9kZVNvdXJjZUZpbGUgPSBub2RlLmdldFNvdXJjZUZpbGUoKTtcbiAgICAgICAgY29uc3QgcmVsYXRpdmVGaWxlUGF0aCA9IHJlbGF0aXZlKGJhc2VQYXRoLCBub2RlU291cmNlRmlsZS5maWxlTmFtZSk7XG4gICAgICAgIGNvbnN0IHtsaW5lLCBjaGFyYWN0ZXJ9ID1cbiAgICAgICAgICAgIHRzLmdldExpbmVBbmRDaGFyYWN0ZXJPZlBvc2l0aW9uKG5vZGUuZ2V0U291cmNlRmlsZSgpLCBub2RlLmdldFN0YXJ0KCkpO1xuICAgICAgICBmYWlsdXJlcy5wdXNoKGAke3JlbGF0aXZlRmlsZVBhdGh9QCR7bGluZSArIDF9OiR7Y2hhcmFjdGVyICsgMX06ICR7bWVzc2FnZX1gKTtcbiAgICAgIH0pO1xuXG4gIC8vIFJlY29yZCB0aGUgY2hhbmdlcyBjb2xsZWN0ZWQgaW4gdGhlIGltcG9ydCBtYW5hZ2VyIGFuZCB0cmFuc2Zvcm1lci5cbiAgdHJhbnNmb3JtLnJlY29yZENoYW5nZXMoKTtcblxuICAvLyBXYWxrIHRocm91Z2ggZWFjaCB1cGRhdGUgcmVjb3JkZXIgYW5kIGNvbW1pdCB0aGUgdXBkYXRlLiBXZSBuZWVkIHRvIGNvbW1pdCB0aGVcbiAgLy8gdXBkYXRlcyBpbiBiYXRjaGVzIHBlciBzb3VyY2UgZmlsZSBhcyB0aGVyZSBjYW4gYmUgb25seSBvbmUgcmVjb3JkZXIgcGVyIHNvdXJjZVxuICAvLyBmaWxlIGluIG9yZGVyIHRvIGF2b2lkIHNoaWZ0ZWQgY2hhcmFjdGVyIG9mZnNldHMuXG4gIHVwZGF0ZVJlY29yZGVycy5mb3JFYWNoKHJlY29yZGVyID0+IHJlY29yZGVyLmNvbW1pdFVwZGF0ZSgpKTtcblxuICByZXR1cm4ge2ZhaWx1cmVzfTtcblxuICAvKiogR2V0cyB0aGUgdXBkYXRlIHJlY29yZGVyIGZvciB0aGUgc3BlY2lmaWVkIHNvdXJjZSBmaWxlLiAqL1xuICBmdW5jdGlvbiBnZXRVcGRhdGVSZWNvcmRlcihzb3VyY2VGaWxlOiB0cy5Tb3VyY2VGaWxlKTogVXBkYXRlUmVjb3JkZXIge1xuICAgIGlmICh1cGRhdGVSZWNvcmRlcnMuaGFzKHNvdXJjZUZpbGUpKSB7XG4gICAgICByZXR1cm4gdXBkYXRlUmVjb3JkZXJzLmdldChzb3VyY2VGaWxlKSE7XG4gICAgfVxuICAgIGNvbnN0IHRyZWVSZWNvcmRlciA9IHRyZWUuYmVnaW5VcGRhdGUocmVsYXRpdmUoYmFzZVBhdGgsIHNvdXJjZUZpbGUuZmlsZU5hbWUpKTtcbiAgICBjb25zdCByZWNvcmRlcjogVXBkYXRlUmVjb3JkZXIgPSB7XG4gICAgICBhZGRDbGFzc0NvbW1lbnQobm9kZTogdHMuQ2xhc3NEZWNsYXJhdGlvbiwgdGV4dDogc3RyaW5nKSB7XG4gICAgICAgIHRyZWVSZWNvcmRlci5pbnNlcnRMZWZ0KG5vZGUubWVtYmVycy5wb3MsIGBcXG4gIC8vICR7dGV4dH1cXG5gKTtcbiAgICAgIH0sXG4gICAgICBhZGRDbGFzc0RlY29yYXRvcihub2RlOiB0cy5DbGFzc0RlY2xhcmF0aW9uLCB0ZXh0OiBzdHJpbmcpIHtcbiAgICAgICAgLy8gTmV3IGltcG9ydHMgc2hvdWxkIGJlIGluc2VydGVkIGF0IHRoZSBsZWZ0IHdoaWxlIGRlY29yYXRvcnMgc2hvdWxkIGJlIGluc2VydGVkXG4gICAgICAgIC8vIGF0IHRoZSByaWdodCBpbiBvcmRlciB0byBlbnN1cmUgdGhhdCBpbXBvcnRzIGFyZSBpbnNlcnRlZCBiZWZvcmUgdGhlIGRlY29yYXRvclxuICAgICAgICAvLyBpZiB0aGUgc3RhcnQgcG9zaXRpb24gb2YgaW1wb3J0IGFuZCBkZWNvcmF0b3IgaXMgdGhlIHNvdXJjZSBmaWxlIHN0YXJ0LlxuICAgICAgICB0cmVlUmVjb3JkZXIuaW5zZXJ0UmlnaHQobm9kZS5nZXRTdGFydCgpLCBgJHt0ZXh0fVxcbmApO1xuICAgICAgfSxcbiAgICAgIGFkZE5ld0ltcG9ydChzdGFydDogbnVtYmVyLCBpbXBvcnRUZXh0OiBzdHJpbmcpIHtcbiAgICAgICAgLy8gTmV3IGltcG9ydHMgc2hvdWxkIGJlIGluc2VydGVkIGF0IHRoZSBsZWZ0IHdoaWxlIGRlY29yYXRvcnMgc2hvdWxkIGJlIGluc2VydGVkXG4gICAgICAgIC8vIGF0IHRoZSByaWdodCBpbiBvcmRlciB0byBlbnN1cmUgdGhhdCBpbXBvcnRzIGFyZSBpbnNlcnRlZCBiZWZvcmUgdGhlIGRlY29yYXRvclxuICAgICAgICAvLyBpZiB0aGUgc3RhcnQgcG9zaXRpb24gb2YgaW1wb3J0IGFuZCBkZWNvcmF0b3IgaXMgdGhlIHNvdXJjZSBmaWxlIHN0YXJ0LlxuICAgICAgICB0cmVlUmVjb3JkZXIuaW5zZXJ0TGVmdChzdGFydCwgaW1wb3J0VGV4dCk7XG4gICAgICB9LFxuICAgICAgdXBkYXRlRXhpc3RpbmdJbXBvcnQobmFtZWRCaW5kaW5nczogdHMuTmFtZWRJbXBvcnRzLCBuZXdOYW1lZEJpbmRpbmdzOiBzdHJpbmcpIHtcbiAgICAgICAgdHJlZVJlY29yZGVyLnJlbW92ZShuYW1lZEJpbmRpbmdzLmdldFN0YXJ0KCksIG5hbWVkQmluZGluZ3MuZ2V0V2lkdGgoKSk7XG4gICAgICAgIHRyZWVSZWNvcmRlci5pbnNlcnRSaWdodChuYW1lZEJpbmRpbmdzLmdldFN0YXJ0KCksIG5ld05hbWVkQmluZGluZ3MpO1xuICAgICAgfSxcbiAgICAgIGNvbW1pdFVwZGF0ZSgpIHtcbiAgICAgICAgdHJlZS5jb21taXRVcGRhdGUodHJlZVJlY29yZGVyKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHVwZGF0ZVJlY29yZGVycy5zZXQoc291cmNlRmlsZSwgcmVjb3JkZXIpO1xuICAgIHJldHVybiByZWNvcmRlcjtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRFcnJvckRpYWdub3N0aWNzKGRpYWdub3N0aWNzOiBSZWFkb25seUFycmF5PHRzLkRpYWdub3N0aWN8TmdEaWFnbm9zdGljPikge1xuICByZXR1cm4gPHRzLkRpYWdub3N0aWNbXT5kaWFnbm9zdGljcy5maWx0ZXIoZCA9PiBkLmNhdGVnb3J5ID09PSB0cy5EaWFnbm9zdGljQ2F0ZWdvcnkuRXJyb3IpO1xufVxuXG5mdW5jdGlvbiBncmFjZWZ1bGx5Q3JlYXRlUHJvZ3JhbShcbiAgICB0cmVlOiBUcmVlLCBiYXNlUGF0aDogc3RyaW5nLCB0c2NvbmZpZ1BhdGg6IHN0cmluZyxcbiAgICBsb2dnZXI6IGxvZ2dpbmcuTG9nZ2VyQXBpKToge2NvbXBpbGVyOiBBb3RDb21waWxlciwgcHJvZ3JhbTogdHMuUHJvZ3JhbX18bnVsbCB7XG4gIHRyeSB7XG4gICAgY29uc3Qge25nY1Byb2dyYW0sIGhvc3QsIHByb2dyYW0sIGNvbXBpbGVyfSA9IGNyZWF0ZU5nY1Byb2dyYW0oXG4gICAgICAgIChvcHRpb25zKSA9PiBjcmVhdGVNaWdyYXRpb25Db21waWxlckhvc3QodHJlZSwgb3B0aW9ucywgYmFzZVBhdGgpLCB0c2NvbmZpZ1BhdGgpO1xuICAgIGNvbnN0IHN5bnRhY3RpY0RpYWdub3N0aWNzID0gZ2V0RXJyb3JEaWFnbm9zdGljcyhuZ2NQcm9ncmFtLmdldFRzU3ludGFjdGljRGlhZ25vc3RpY3MoKSk7XG4gICAgY29uc3Qgc3RydWN0dXJhbERpYWdub3N0aWNzID0gZ2V0RXJyb3JEaWFnbm9zdGljcyhuZ2NQcm9ncmFtLmdldE5nU3RydWN0dXJhbERpYWdub3N0aWNzKCkpO1xuICAgIGNvbnN0IGNvbmZpZ0RpYWdub3N0aWNzID0gZ2V0RXJyb3JEaWFnbm9zdGljcyhcbiAgICAgICAgWy4uLnByb2dyYW0uZ2V0T3B0aW9uc0RpYWdub3N0aWNzKCksIC4uLm5nY1Byb2dyYW0uZ2V0TmdPcHRpb25EaWFnbm9zdGljcygpXSk7XG5cbiAgICBpZiAoY29uZmlnRGlhZ25vc3RpY3MubGVuZ3RoKSB7XG4gICAgICBsb2dnZXIud2FybihcbiAgICAgICAgICBgXFxuVHlwZVNjcmlwdCBwcm9qZWN0IFwiJHt0c2NvbmZpZ1BhdGh9XCIgaGFzIGNvbmZpZ3VyYXRpb24gZXJyb3JzLiBUaGlzIGNvdWxkIGNhdXNlIGAgK1xuICAgICAgICAgIGBhbiBpbmNvbXBsZXRlIG1pZ3JhdGlvbi4gUGxlYXNlIGZpeCB0aGUgZm9sbG93aW5nIGZhaWx1cmVzIGFuZCByZXJ1biB0aGUgbWlncmF0aW9uOmApO1xuICAgICAgbG9nZ2VyLmVycm9yKHRzLmZvcm1hdERpYWdub3N0aWNzKGNvbmZpZ0RpYWdub3N0aWNzLCBob3N0KSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBTeW50YWN0aWMgVHlwZVNjcmlwdCBlcnJvcnMgY2FuIHRocm93IG9mZiB0aGUgcXVlcnkgYW5hbHlzaXMgYW5kIHRoZXJlZm9yZSB3ZSB3YW50XG4gICAgLy8gdG8gbm90aWZ5IHRoZSBkZXZlbG9wZXIgdGhhdCB3ZSBjb3VsZG4ndCBhbmFseXplIHBhcnRzIG9mIHRoZSBwcm9qZWN0LiBEZXZlbG9wZXJzXG4gICAgLy8gY2FuIGp1c3QgcmUtcnVuIHRoZSBtaWdyYXRpb24gYWZ0ZXIgZml4aW5nIHRoZXNlIGZhaWx1cmVzLlxuICAgIGlmIChzeW50YWN0aWNEaWFnbm9zdGljcy5sZW5ndGgpIHtcbiAgICAgIGxvZ2dlci53YXJuKFxuICAgICAgICAgIGBcXG5UeXBlU2NyaXB0IHByb2plY3QgXCIke3RzY29uZmlnUGF0aH1cIiBoYXMgc3ludGFjdGljYWwgZXJyb3JzIHdoaWNoIGNvdWxkIGNhdXNlIGAgK1xuICAgICAgICAgIGBhbiBpbmNvbXBsZXRlIG1pZ3JhdGlvbi4gUGxlYXNlIGZpeCB0aGUgZm9sbG93aW5nIGZhaWx1cmVzIGFuZCByZXJ1biB0aGUgbWlncmF0aW9uOmApO1xuICAgICAgbG9nZ2VyLmVycm9yKHRzLmZvcm1hdERpYWdub3N0aWNzKHN5bnRhY3RpY0RpYWdub3N0aWNzLCBob3N0KSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoc3RydWN0dXJhbERpYWdub3N0aWNzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHRzLmZvcm1hdERpYWdub3N0aWNzKDx0cy5EaWFnbm9zdGljW10+c3RydWN0dXJhbERpYWdub3N0aWNzLCBob3N0KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtwcm9ncmFtLCBjb21waWxlcn07XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIud2FybihgXFxuJHtNSUdSQVRJT05fQU9UX0ZBSUxVUkV9IFRoZSBmb2xsb3dpbmcgcHJvamVjdCBmYWlsZWQ6ICR7dHNjb25maWdQYXRofVxcbmApO1xuICAgIGxvZ2dlci5lcnJvcihgJHtlLnRvU3RyaW5nKCl9XFxuYCk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdfQ==
@@ -1,38 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- /// <amd-module name="@angular/core/schematics/migrations/undecorated-classes-with-di/ng_declaration_collector" />
9
- import { PartialEvaluator } from '@angular/compiler-cli/src/ngtsc/partial_evaluator';
10
- import * as ts from 'typescript';
11
- import { NgDecorator } from '../../utils/ng_decorators';
12
- /**
13
- * Visitor that walks through specified TypeScript nodes and collects all defined
14
- * directives and provider classes. Directives are separated by decorated and
15
- * undecorated directives.
16
- */
17
- export declare class NgDeclarationCollector {
18
- typeChecker: ts.TypeChecker;
19
- private evaluator;
20
- /** List of resolved directives which are decorated. */
21
- decoratedDirectives: ts.ClassDeclaration[];
22
- /** List of resolved providers which are decorated. */
23
- decoratedProviders: ts.ClassDeclaration[];
24
- /** Set of resolved Angular declarations which are not decorated. */
25
- undecoratedDeclarations: Set<ts.ClassDeclaration>;
26
- constructor(typeChecker: ts.TypeChecker, evaluator: PartialEvaluator);
27
- visitNode(node: ts.Node): void;
28
- private _visitClassDeclaration;
29
- private _visitNgModuleDecorator;
30
- }
31
- /** Checks whether the given node has the "@Directive" or "@Component" decorator set. */
32
- export declare function hasDirectiveDecorator(node: ts.ClassDeclaration, typeChecker: ts.TypeChecker, ngDecorators?: NgDecorator[]): boolean;
33
- /** Checks whether the given node has the "@Injectable" decorator set. */
34
- export declare function hasInjectableDecorator(node: ts.ClassDeclaration, typeChecker: ts.TypeChecker, ngDecorators?: NgDecorator[]): boolean;
35
- /** Whether the given node has an explicit decorator that describes an Angular declaration. */
36
- export declare function hasNgDeclarationDecorator(node: ts.ClassDeclaration, typeChecker: ts.TypeChecker): boolean;
37
- /** Gets all Angular decorators of a given class declaration. */
38
- export declare function getNgClassDecorators(node: ts.ClassDeclaration, typeChecker: ts.TypeChecker): NgDecorator[];
@@ -1,142 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- (function (factory) {
9
- if (typeof module === "object" && typeof module.exports === "object") {
10
- var v = factory(require, exports);
11
- if (v !== undefined) module.exports = v;
12
- }
13
- else if (typeof define === "function" && define.amd) {
14
- define("@angular/core/schematics/migrations/undecorated-classes-with-di/ng_declaration_collector", ["require", "exports", "@angular/compiler-cli/src/ngtsc/imports", "typescript", "@angular/core/schematics/utils/ng_decorators", "@angular/core/schematics/utils/typescript/property_name"], factory);
15
- }
16
- })(function (require, exports) {
17
- "use strict";
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.getNgClassDecorators = exports.hasNgDeclarationDecorator = exports.hasInjectableDecorator = exports.hasDirectiveDecorator = exports.NgDeclarationCollector = void 0;
20
- const imports_1 = require("@angular/compiler-cli/src/ngtsc/imports");
21
- const ts = require("typescript");
22
- const ng_decorators_1 = require("@angular/core/schematics/utils/ng_decorators");
23
- const property_name_1 = require("@angular/core/schematics/utils/typescript/property_name");
24
- /**
25
- * Visitor that walks through specified TypeScript nodes and collects all defined
26
- * directives and provider classes. Directives are separated by decorated and
27
- * undecorated directives.
28
- */
29
- class NgDeclarationCollector {
30
- constructor(typeChecker, evaluator) {
31
- this.typeChecker = typeChecker;
32
- this.evaluator = evaluator;
33
- /** List of resolved directives which are decorated. */
34
- this.decoratedDirectives = [];
35
- /** List of resolved providers which are decorated. */
36
- this.decoratedProviders = [];
37
- /** Set of resolved Angular declarations which are not decorated. */
38
- this.undecoratedDeclarations = new Set();
39
- }
40
- visitNode(node) {
41
- if (ts.isClassDeclaration(node)) {
42
- this._visitClassDeclaration(node);
43
- }
44
- ts.forEachChild(node, n => this.visitNode(n));
45
- }
46
- _visitClassDeclaration(node) {
47
- if (!node.decorators || !node.decorators.length) {
48
- return;
49
- }
50
- const ngDecorators = (0, ng_decorators_1.getAngularDecorators)(this.typeChecker, node.decorators);
51
- const ngModuleDecorator = ngDecorators.find(({ name }) => name === 'NgModule');
52
- if (hasDirectiveDecorator(node, this.typeChecker, ngDecorators)) {
53
- this.decoratedDirectives.push(node);
54
- }
55
- else if (hasInjectableDecorator(node, this.typeChecker, ngDecorators)) {
56
- this.decoratedProviders.push(node);
57
- }
58
- else if (ngModuleDecorator) {
59
- this._visitNgModuleDecorator(ngModuleDecorator);
60
- }
61
- }
62
- _visitNgModuleDecorator(decorator) {
63
- const decoratorCall = decorator.node.expression;
64
- const metadata = decoratorCall.arguments[0];
65
- if (!metadata || !ts.isObjectLiteralExpression(metadata)) {
66
- return;
67
- }
68
- let entryComponentsNode = null;
69
- let declarationsNode = null;
70
- metadata.properties.forEach(p => {
71
- if (!ts.isPropertyAssignment(p)) {
72
- return;
73
- }
74
- const name = (0, property_name_1.getPropertyNameText)(p.name);
75
- if (name === 'entryComponents') {
76
- entryComponentsNode = p.initializer;
77
- }
78
- else if (name === 'declarations') {
79
- declarationsNode = p.initializer;
80
- }
81
- });
82
- // In case the module specifies the "entryComponents" field, walk through all
83
- // resolved entry components and collect the referenced directives.
84
- if (entryComponentsNode) {
85
- flattenTypeList(this.evaluator.evaluate(entryComponentsNode)).forEach(ref => {
86
- if (ts.isClassDeclaration(ref.node) &&
87
- !hasNgDeclarationDecorator(ref.node, this.typeChecker)) {
88
- this.undecoratedDeclarations.add(ref.node);
89
- }
90
- });
91
- }
92
- // In case the module specifies the "declarations" field, walk through all
93
- // resolved declarations and collect the referenced directives.
94
- if (declarationsNode) {
95
- flattenTypeList(this.evaluator.evaluate(declarationsNode)).forEach(ref => {
96
- if (ts.isClassDeclaration(ref.node) &&
97
- !hasNgDeclarationDecorator(ref.node, this.typeChecker)) {
98
- this.undecoratedDeclarations.add(ref.node);
99
- }
100
- });
101
- }
102
- }
103
- }
104
- exports.NgDeclarationCollector = NgDeclarationCollector;
105
- /** Flattens a list of type references. */
106
- function flattenTypeList(value) {
107
- if (Array.isArray(value)) {
108
- return value.reduce((res, v) => res.concat(flattenTypeList(v)), []);
109
- }
110
- else if (value instanceof imports_1.Reference) {
111
- return [value];
112
- }
113
- return [];
114
- }
115
- /** Checks whether the given node has the "@Directive" or "@Component" decorator set. */
116
- function hasDirectiveDecorator(node, typeChecker, ngDecorators) {
117
- return (ngDecorators || getNgClassDecorators(node, typeChecker))
118
- .some(({ name }) => name === 'Directive' || name === 'Component');
119
- }
120
- exports.hasDirectiveDecorator = hasDirectiveDecorator;
121
- /** Checks whether the given node has the "@Injectable" decorator set. */
122
- function hasInjectableDecorator(node, typeChecker, ngDecorators) {
123
- return (ngDecorators || getNgClassDecorators(node, typeChecker))
124
- .some(({ name }) => name === 'Injectable');
125
- }
126
- exports.hasInjectableDecorator = hasInjectableDecorator;
127
- /** Whether the given node has an explicit decorator that describes an Angular declaration. */
128
- function hasNgDeclarationDecorator(node, typeChecker) {
129
- return getNgClassDecorators(node, typeChecker)
130
- .some(({ name }) => name === 'Component' || name === 'Directive' || name === 'Pipe');
131
- }
132
- exports.hasNgDeclarationDecorator = hasNgDeclarationDecorator;
133
- /** Gets all Angular decorators of a given class declaration. */
134
- function getNgClassDecorators(node, typeChecker) {
135
- if (!node.decorators) {
136
- return [];
137
- }
138
- return (0, ng_decorators_1.getAngularDecorators)(typeChecker, node.decorators);
139
- }
140
- exports.getNgClassDecorators = getNgClassDecorators;
141
- });
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdfZGVjbGFyYXRpb25fY29sbGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zY2hlbWF0aWNzL21pZ3JhdGlvbnMvdW5kZWNvcmF0ZWQtY2xhc3Nlcy13aXRoLWRpL25nX2RlY2xhcmF0aW9uX2NvbGxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7SUFFSCxxRUFBa0U7SUFFbEUsaUNBQWlDO0lBRWpDLGdGQUE0RTtJQUM1RSwyRkFBeUU7SUFHekU7Ozs7T0FJRztJQUNILE1BQWEsc0JBQXNCO1FBVWpDLFlBQW1CLFdBQTJCLEVBQVUsU0FBMkI7WUFBaEUsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1lBQVUsY0FBUyxHQUFULFNBQVMsQ0FBa0I7WUFUbkYsdURBQXVEO1lBQ3ZELHdCQUFtQixHQUEwQixFQUFFLENBQUM7WUFFaEQsc0RBQXNEO1lBQ3RELHVCQUFrQixHQUEwQixFQUFFLENBQUM7WUFFL0Msb0VBQW9FO1lBQ3BFLDRCQUF1QixHQUFHLElBQUksR0FBRyxFQUF1QixDQUFDO1FBRTZCLENBQUM7UUFFdkYsU0FBUyxDQUFDLElBQWE7WUFDckIsSUFBSSxFQUFFLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNuQztZQUVELEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFFTyxzQkFBc0IsQ0FBQyxJQUF5QjtZQUN0RCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO2dCQUMvQyxPQUFPO2FBQ1I7WUFFRCxN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QztJQUpELHdEQUlDO0lBQ0QsOEZBQThGO0lBQzlGLFNBQWdCLHlCQUF5QixDQUFDLElBQXlCLEVBQUUsV0FBMkI7UUFDOUYsT0FBTyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDO2FBQ3pDLElBQUksQ0FBQyxDQUFDLEVBQUMsSUFBSSxFQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxXQUFXLElBQUksSUFBSSxLQUFLLFdBQVcsSUFBSSxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUhELDhEQUdDO0lBRUQsZ0VBQWdFO0lBQ2hFLFNBQWdCLG9CQUFvQixDQUNoQyxJQUF5QixFQUFFLFdBQTJCO1FBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxPQUFPLElBQUEsb0NBQW9CLEVBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBTkQsb0RBTUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtSZWZlcmVuY2V9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvaW1wb3J0cyc7XG5pbXBvcnQge1BhcnRpYWxFdmFsdWF0b3IsIFJlc29sdmVkVmFsdWV9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvcGFydGlhbF9ldmFsdWF0b3InO1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7Z2V0QW5ndWxhckRlY29yYXRvcnMsIE5nRGVjb3JhdG9yfSBmcm9tICcuLi8uLi91dGlscy9uZ19kZWNvcmF0b3JzJztcbmltcG9ydCB7Z2V0UHJvcGVydHlOYW1lVGV4dH0gZnJvbSAnLi4vLi4vdXRpbHMvdHlwZXNjcmlwdC9wcm9wZXJ0eV9uYW1lJztcblxuXG4vKipcbiAqIFZpc2l0b3IgdGhhdCB3YWxrcyB0aHJvdWdoIHNwZWNpZmllZCBUeXBlU2NyaXB0IG5vZGVzIGFuZCBjb2xsZWN0cyBhbGwgZGVmaW5lZFxuICogZGlyZWN0aXZlcyBhbmQgcHJvdmlkZXIgY2xhc3Nlcy4gRGlyZWN0aXZlcyBhcmUgc2VwYXJhdGVkIGJ5IGRlY29yYXRlZCBhbmRcbiAqIHVuZGVjb3JhdGVkIGRpcmVjdGl2ZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBOZ0RlY2xhcmF0aW9uQ29sbGVjdG9yIHtcbiAgLyoqIExpc3Qgb2YgcmVzb2x2ZWQgZGlyZWN0aXZlcyB3aGljaCBhcmUgZGVjb3JhdGVkLiAqL1xuICBkZWNvcmF0ZWREaXJlY3RpdmVzOiB0cy5DbGFzc0RlY2xhcmF0aW9uW10gPSBbXTtcblxuICAvKiogTGlzdCBvZiByZXNvbHZlZCBwcm92aWRlcnMgd2hpY2ggYXJlIGRlY29yYXRlZC4gKi9cbiAgZGVjb3JhdGVkUHJvdmlkZXJzOiB0cy5DbGFzc0RlY2xhcmF0aW9uW10gPSBbXTtcblxuICAvKiogU2V0IG9mIHJlc29sdmVkIEFuZ3VsYXIgZGVjbGFyYXRpb25zIHdoaWNoIGFyZSBub3QgZGVjb3JhdGVkLiAqL1xuICB1bmRlY29yYXRlZERlY2xhcmF0aW9ucyA9IG5ldyBTZXQ8dHMuQ2xhc3NEZWNsYXJhdGlvbj4oKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyLCBwcml2YXRlIGV2YWx1YXRvcjogUGFydGlhbEV2YWx1YXRvcikge31cblxuICB2aXNpdE5vZGUobm9kZTogdHMuTm9kZSkge1xuICAgIGlmICh0cy5pc0NsYXNzRGVjbGFyYXRpb24obm9kZSkpIHtcbiAgICAgIHRoaXMuX3Zpc2l0Q2xhc3NEZWNsYXJhdGlvbihub2RlKTtcbiAgICB9XG5cbiAgICB0cy5mb3JFYWNoQ2hpbGQobm9kZSwgbiA9PiB0aGlzLnZpc2l0Tm9kZShuKSk7XG4gIH1cblxuICBwcml2YXRlIF92aXNpdENsYXNzRGVjbGFyYXRpb24obm9kZTogdHMuQ2xhc3NEZWNsYXJhdGlvbikge1xuICAgIGlmICghbm9kZS5kZWNvcmF0b3JzIHx8ICFub2RlLmRlY29yYXRvcnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmdEZWNvcmF0b3JzID0gZ2V0QW5ndWxhckRlY29yYXRvcnModGhpcy50eXBlQ2hlY2tlciwgbm9kZS5kZWNvcmF0b3JzKTtcbiAgICBjb25zdCBuZ01vZHVsZURlY29yYXRvciA9IG5nRGVjb3JhdG9ycy5maW5kKCh7bmFtZX0pID0+IG5hbWUgPT09ICdOZ01vZHVsZScpO1xuXG4gICAgaWYgKGhhc0RpcmVjdGl2ZURlY29yYXRvcihub2RlLCB0aGlzLnR5cGVDaGVja2VyLCBuZ0RlY29yYXRvcnMpKSB7XG4gICAgICB0aGlzLmRlY29yYXRlZERpcmVjdGl2ZXMucHVzaChub2RlKTtcbiAgICB9IGVsc2UgaWYgKGhhc0luamVjdGFibGVEZWNvcmF0b3Iobm9kZSwgdGhpcy50eXBlQ2hlY2tlciwgbmdEZWNvcmF0b3JzKSkge1xuICAgICAgdGhpcy5kZWNvcmF0ZWRQcm92aWRlcnMucHVzaChub2RlKTtcbiAgICB9IGVsc2UgaWYgKG5nTW9kdWxlRGVjb3JhdG9yKSB7XG4gICAgICB0aGlzLl92aXNpdE5nTW9kdWxlRGVjb3JhdG9yKG5nTW9kdWxlRGVjb3JhdG9yKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF92aXNpdE5nTW9kdWxlRGVjb3JhdG9yKGRlY29yYXRvcjogTmdEZWNvcmF0b3IpIHtcbiAgICBjb25zdCBkZWNvcmF0b3JDYWxsID0gZGVjb3JhdG9yLm5vZGUuZXhwcmVzc2lvbjtcbiAgICBjb25zdCBtZXRhZGF0YSA9IGRlY29yYXRvckNhbGwuYXJndW1lbnRzWzBdO1xuXG4gICAgaWYgKCFtZXRhZGF0YSB8fCAhdHMuaXNPYmplY3RMaXRlcmFsRXhwcmVzc2lvbihtZXRhZGF0YSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgZW50cnlDb21wb25lbnRzTm9kZTogdHMuRXhwcmVzc2lvbnxudWxsID0gbnVsbDtcbiAgICBsZXQgZGVjbGFyYXRpb25zTm9kZTogdHMuRXhwcmVzc2lvbnxudWxsID0gbnVsbDtcblxuICAgIG1ldGFkYXRhLnByb3BlcnRpZXMuZm9yRWFjaChwID0+IHtcbiAgICAgIGlmICghdHMuaXNQcm9wZXJ0eUFzc2lnbm1lbnQocCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBuYW1lID0gZ2V0UHJvcGVydHlOYW1lVGV4dChwLm5hbWUpO1xuXG4gICAgICBpZiAobmFtZSA9PT0gJ2VudHJ5Q29tcG9uZW50cycpIHtcbiAgICAgICAgZW50cnlDb21wb25lbnRzTm9kZSA9IHAuaW5pdGlhbGl6ZXI7XG4gICAgICB9IGVsc2UgaWYgKG5hbWUgPT09ICdkZWNsYXJhdGlvbnMnKSB7XG4gICAgICAgIGRlY2xhcmF0aW9uc05vZGUgPSBwLmluaXRpYWxpemVyO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gSW4gY2FzZSB0aGUgbW9kdWxlIHNwZWNpZmllcyB0aGUgXCJlbnRyeUNvbXBvbmVudHNcIiBmaWVsZCwgd2FsayB0aHJvdWdoIGFsbFxuICAgIC8vIHJlc29sdmVkIGVudHJ5IGNvbXBvbmVudHMgYW5kIGNvbGxlY3QgdGhlIHJlZmVyZW5jZWQgZGlyZWN0aXZlcy5cbiAgICBpZiAoZW50cnlDb21wb25lbnRzTm9kZSkge1xuICAgICAgZmxhdHRlblR5cGVMaXN0KHRoaXMuZXZhbHVhdG9yLmV2YWx1YXRlKGVudHJ5Q29tcG9uZW50c05vZGUpKS5mb3JFYWNoKHJlZiA9PiB7XG4gICAgICAgIGlmICh0cy5pc0NsYXNzRGVjbGFyYXRpb24ocmVmLm5vZGUpICYmXG4gICAgICAgICAgICAhaGFzTmdEZWNsYXJhdGlvbkRlY29yYXRvcihyZWYubm9kZSwgdGhpcy50eXBlQ2hlY2tlcikpIHtcbiAgICAgICAgICB0aGlzLnVuZGVjb3JhdGVkRGVjbGFyYXRpb25zLmFkZChyZWYubm9kZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEluIGNhc2UgdGhlIG1vZHVsZSBzcGVjaWZpZXMgdGhlIFwiZGVjbGFyYXRpb25zXCIgZmllbGQsIHdhbGsgdGhyb3VnaCBhbGxcbiAgICAvLyByZXNvbHZlZCBkZWNsYXJhdGlvbnMgYW5kIGNvbGxlY3QgdGhlIHJlZmVyZW5jZWQgZGlyZWN0aXZlcy5cbiAgICBpZiAoZGVjbGFyYXRpb25zTm9kZSkge1xuICAgICAgZmxhdHRlblR5cGVMaXN0KHRoaXMuZXZhbHVhdG9yLmV2YWx1YXRlKGRlY2xhcmF0aW9uc05vZGUpKS5mb3JFYWNoKHJlZiA9PiB7XG4gICAgICAgIGlmICh0cy5pc0NsYXNzRGVjbGFyYXRpb24ocmVmLm5vZGUpICYmXG4gICAgICAgICAgICAhaGFzTmdEZWNsYXJhdGlvbkRlY29yYXRvcihyZWYubm9kZSwgdGhpcy50eXBlQ2hlY2tlcikpIHtcbiAgICAgICAgICB0aGlzLnVuZGVjb3JhdGVkRGVjbGFyYXRpb25zLmFkZChyZWYubm9kZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG4vKiogRmxhdHRlbnMgYSBsaXN0IG9mIHR5cGUgcmVmZXJlbmNlcy4gKi9cbmZ1bmN0aW9uIGZsYXR0ZW5UeXBlTGlzdCh2YWx1ZTogUmVzb2x2ZWRWYWx1ZSk6IFJlZmVyZW5jZVtdIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIDxSZWZlcmVuY2VbXT52YWx1ZS5yZWR1Y2UoXG4gICAgICAgIChyZXM6IFJlZmVyZW5jZVtdLCB2OiBSZXNvbHZlZFZhbHVlKSA9PiByZXMuY29uY2F0KGZsYXR0ZW5UeXBlTGlzdCh2KSksIFtdKTtcbiAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFJlZmVyZW5jZSkge1xuICAgIHJldHVybiBbdmFsdWVdO1xuICB9XG4gIHJldHVybiBbXTtcbn1cblxuLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBub2RlIGhhcyB0aGUgXCJARGlyZWN0aXZlXCIgb3IgXCJAQ29tcG9uZW50XCIgZGVjb3JhdG9yIHNldC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNEaXJlY3RpdmVEZWNvcmF0b3IoXG4gICAgbm9kZTogdHMuQ2xhc3NEZWNsYXJhdGlvbiwgdHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyLCBuZ0RlY29yYXRvcnM/OiBOZ0RlY29yYXRvcltdKTogYm9vbGVhbiB7XG4gIHJldHVybiAobmdEZWNvcmF0b3JzIHx8IGdldE5nQ2xhc3NEZWNvcmF0b3JzKG5vZGUsIHR5cGVDaGVja2VyKSlcbiAgICAgIC5zb21lKCh7bmFtZX0pID0+IG5hbWUgPT09ICdEaXJlY3RpdmUnIHx8IG5hbWUgPT09ICdDb21wb25lbnQnKTtcbn1cblxuXG5cbi8qKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gbm9kZSBoYXMgdGhlIFwiQEluamVjdGFibGVcIiBkZWNvcmF0b3Igc2V0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc0luamVjdGFibGVEZWNvcmF0b3IoXG4gICAgbm9kZTogdHMuQ2xhc3NEZWNsYXJhdGlvbiwgdHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyLCBuZ0RlY29yYXRvcnM/OiBOZ0RlY29yYXRvcltdKTogYm9vbGVhbiB7XG4gIHJldHVybiAobmdEZWNvcmF0b3JzIHx8IGdldE5nQ2xhc3NEZWNvcmF0b3JzKG5vZGUsIHR5cGVDaGVja2VyKSlcbiAgICAgIC5zb21lKCh7bmFtZX0pID0+IG5hbWUgPT09ICdJbmplY3RhYmxlJyk7XG59XG4vKiogV2hldGhlciB0aGUgZ2l2ZW4gbm9kZSBoYXMgYW4gZXhwbGljaXQgZGVjb3JhdG9yIHRoYXQgZGVzY3JpYmVzIGFuIEFuZ3VsYXIgZGVjbGFyYXRpb24uICovXG5leHBvcnQgZnVuY3Rpb24gaGFzTmdEZWNsYXJhdGlvbkRlY29yYXRvcihub2RlOiB0cy5DbGFzc0RlY2xhcmF0aW9uLCB0eXBlQ2hlY2tlcjogdHMuVHlwZUNoZWNrZXIpIHtcbiAgcmV0dXJuIGdldE5nQ2xhc3NEZWNvcmF0b3JzKG5vZGUsIHR5cGVDaGVja2VyKVxuICAgICAgLnNvbWUoKHtuYW1lfSkgPT4gbmFtZSA9PT0gJ0NvbXBvbmVudCcgfHwgbmFtZSA9PT0gJ0RpcmVjdGl2ZScgfHwgbmFtZSA9PT0gJ1BpcGUnKTtcbn1cblxuLyoqIEdldHMgYWxsIEFuZ3VsYXIgZGVjb3JhdG9ycyBvZiBhIGdpdmVuIGNsYXNzIGRlY2xhcmF0aW9uLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5nQ2xhc3NEZWNvcmF0b3JzKFxuICAgIG5vZGU6IHRzLkNsYXNzRGVjbGFyYXRpb24sIHR5cGVDaGVja2VyOiB0cy5UeXBlQ2hlY2tlcik6IE5nRGVjb3JhdG9yW10ge1xuICBpZiAoIW5vZGUuZGVjb3JhdG9ycykge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICByZXR1cm4gZ2V0QW5ndWxhckRlY29yYXRvcnModHlwZUNoZWNrZXIsIG5vZGUuZGVjb3JhdG9ycyk7XG59XG4iXX0=
@@ -1,97 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- /// <amd-module name="@angular/core/schematics/migrations/undecorated-classes-with-di/transform" />
9
- import { AotCompiler } from '@angular/compiler';
10
- import { PartialEvaluator } from '@angular/compiler-cli/src/ngtsc/partial_evaluator';
11
- import * as ts from 'typescript';
12
- import { UpdateRecorder } from './update_recorder';
13
- export interface TransformFailure {
14
- node: ts.Node;
15
- message: string;
16
- }
17
- export declare class UndecoratedClassesTransform {
18
- private typeChecker;
19
- private compiler;
20
- private evaluator;
21
- private getUpdateRecorder;
22
- private printer;
23
- private importManager;
24
- private decoratorRewriter;
25
- private compilerHost;
26
- private symbolResolver;
27
- private metadataResolver;
28
- /** Set of class declarations which have been decorated with "@Directive". */
29
- private decoratedDirectives;
30
- /** Set of class declarations which have been decorated with "@Injectable" */
31
- private decoratedProviders;
32
- /**
33
- * Set of class declarations which have been analyzed and need to specify
34
- * an explicit constructor.
35
- */
36
- private missingExplicitConstructorClasses;
37
- constructor(typeChecker: ts.TypeChecker, compiler: AotCompiler, evaluator: PartialEvaluator, getUpdateRecorder: (sf: ts.SourceFile) => UpdateRecorder);
38
- /**
39
- * Migrates decorated directives which can potentially inherit a constructor
40
- * from an undecorated base class. All base classes until the first one
41
- * with an explicit constructor will be decorated with the abstract "@Directive()"
42
- * decorator. See case 1 in the migration plan: https://hackmd.io/@alx/S1XKqMZeS
43
- */
44
- migrateDecoratedDirectives(directives: ts.ClassDeclaration[]): TransformFailure[];
45
- /**
46
- * Migrates decorated providers which can potentially inherit a constructor
47
- * from an undecorated base class. All base classes until the first one
48
- * with an explicit constructor will be decorated with the "@Injectable()".
49
- */
50
- migrateDecoratedProviders(providers: ts.ClassDeclaration[]): TransformFailure[];
51
- private _migrateProviderBaseClass;
52
- private _migrateDirectiveBaseClass;
53
- private _migrateDecoratedClassWithInheritedCtor;
54
- /**
55
- * Adds the abstract "@Directive()" decorator to the given class in case there
56
- * is no existing directive decorator.
57
- */
58
- private _addAbstractDirectiveDecorator;
59
- /**
60
- * Adds the abstract "@Injectable()" decorator to the given class in case there
61
- * is no existing directive decorator.
62
- */
63
- private _addInjectableDecorator;
64
- /** Adds a comment for adding an explicit constructor to the given class declaration. */
65
- private _addMissingExplicitConstructorTodo;
66
- /**
67
- * Migrates undecorated directives which were referenced in NgModule declarations.
68
- * These directives inherit the metadata from a parent base class, but with Ivy
69
- * these classes need to explicitly have a decorator for locality. The migration
70
- * determines the inherited decorator and copies it to the undecorated declaration.
71
- *
72
- * Note that the migration serializes the metadata for external declarations
73
- * where the decorator is not part of the source file AST.
74
- *
75
- * See case 2 in the migration plan: https://hackmd.io/@alx/S1XKqMZeS
76
- */
77
- migrateUndecoratedDeclarations(directives: ts.ClassDeclaration[]): TransformFailure[];
78
- private _migrateDerivedDeclaration;
79
- /** Records all changes that were made in the import manager. */
80
- recordChanges(): void;
81
- /**
82
- * Constructs a TypeScript decorator node from the specified declaration metadata. Returns
83
- * null if the metadata could not be simplified/resolved.
84
- */
85
- private _constructDecoratorFromMetadata;
86
- /**
87
- * Resolves the declaration metadata of a given static symbol. The metadata
88
- * is determined by resolving metadata for the static symbol.
89
- */
90
- private _resolveDeclarationMetadata;
91
- private _getStaticSymbolOfIdentifier;
92
- /**
93
- * Disables that static symbols are resolved through summaries. Summaries
94
- * cannot be used for decorator analysis as decorators are omitted in summaries.
95
- */
96
- private _disableSummaryResolution;
97
- }