@angular/compiler-cli 13.0.0-next.7 → 13.0.0-rc.1

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 (600) hide show
  1. package/bundles/index.js +20418 -0
  2. package/bundles/index.js.map +6 -0
  3. package/bundles/linker/babel/index.js +2384 -0
  4. package/bundles/linker/babel/index.js.map +6 -0
  5. package/bundles/linker/index.js +1849 -0
  6. package/bundles/linker/index.js.map +6 -0
  7. package/bundles/ngcc/index.js +16054 -0
  8. package/bundles/ngcc/index.js.map +6 -0
  9. package/bundles/ngcc/main-ngcc.js +16142 -0
  10. package/bundles/ngcc/main-ngcc.js.map +6 -0
  11. package/bundles/ngcc/src/execution/cluster/ngcc_cluster_worker.js +13866 -0
  12. package/bundles/ngcc/src/execution/cluster/ngcc_cluster_worker.js.map +6 -0
  13. package/bundles/ngcc/src/locking/lock_file_with_child_process/ngcc_lock_unlocker.js +334 -0
  14. package/bundles/ngcc/src/locking/lock_file_with_child_process/ngcc_lock_unlocker.js.map +6 -0
  15. package/bundles/private/bazel.js +97 -0
  16. package/bundles/private/bazel.js.map +6 -0
  17. package/bundles/private/localize.js +911 -0
  18. package/bundles/private/localize.js.map +6 -0
  19. package/bundles/private/migrations.js +2181 -0
  20. package/bundles/private/migrations.js.map +6 -0
  21. package/bundles/private/tooling.js +942 -0
  22. package/bundles/private/tooling.js.map +6 -0
  23. package/bundles/src/bin/ng_xi18n.js +20468 -0
  24. package/bundles/src/bin/ng_xi18n.js.map +6 -0
  25. package/bundles/src/bin/ngc.js +20470 -0
  26. package/bundles/src/bin/ngc.js.map +6 -0
  27. package/bundles_metadata.json +1 -0
  28. package/import_meta_url.d.ts +14 -0
  29. package/index.d.ts +4 -1
  30. package/linker/babel/src/ast/babel_ast_factory.d.ts +1 -8
  31. package/linker/babel/src/ast/babel_ast_host.d.ts +1 -1
  32. package/linker/babel/src/babel_core.d.ts +36 -0
  33. package/linker/babel/src/babel_declaration_scope.d.ts +1 -1
  34. package/linker/babel/src/babel_plugin.d.ts +1 -8
  35. package/linker/babel/src/es2015_linker_plugin.d.ts +2 -2
  36. package/linker/src/ast/typescript/typescript_ast_host.d.ts +1 -1
  37. package/linker/src/file_linker/emit_scopes/emit_scope.d.ts +1 -2
  38. package/linker/src/file_linker/emit_scopes/iife_emit_scope.d.ts +1 -1
  39. package/linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.d.ts +1 -2
  40. package/linker/src/file_linker/partial_linkers/partial_component_linker_1.d.ts +1 -2
  41. package/linker/src/file_linker/partial_linkers/partial_directive_linker_1.d.ts +1 -2
  42. package/linker/src/file_linker/partial_linkers/partial_factory_linker_1.d.ts +1 -2
  43. package/linker/src/file_linker/partial_linkers/partial_injectable_linker_1.d.ts +1 -2
  44. package/linker/src/file_linker/partial_linkers/partial_injector_linker_1.d.ts +1 -2
  45. package/linker/src/file_linker/partial_linkers/partial_linker.d.ts +1 -2
  46. package/linker/src/file_linker/partial_linkers/partial_linker_selector.d.ts +2 -2
  47. package/linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.d.ts +1 -2
  48. package/linker/src/file_linker/partial_linkers/partial_pipe_linker_1.d.ts +1 -2
  49. package/linker/src/file_linker/partial_linkers/util.d.ts +1 -2
  50. package/ngcc/index.d.ts +15 -0
  51. package/ngcc/src/analysis/decoration_analyzer.d.ts +1 -1
  52. package/ngcc/src/analysis/module_with_providers_analyzer.d.ts +1 -1
  53. package/ngcc/src/analysis/ngcc_references_registry.d.ts +1 -1
  54. package/ngcc/src/analysis/ngcc_trait_compiler.d.ts +1 -1
  55. package/ngcc/src/analysis/private_declarations_analyzer.d.ts +1 -1
  56. package/ngcc/src/analysis/switch_marker_analyzer.d.ts +1 -1
  57. package/ngcc/src/analysis/types.d.ts +1 -1
  58. package/ngcc/src/dependencies/esm_dependency_host.d.ts +1 -1
  59. package/ngcc/src/execution/cluster/api.d.ts +5 -1
  60. package/ngcc/src/execution/cluster/master.d.ts +5 -3
  61. package/{src/ngtsc/logging/testing/index.d.ts → ngcc/src/execution/cluster/ngcc_cluster_worker.d.ts} +2 -2
  62. package/ngcc/src/host/commonjs_host.d.ts +1 -1
  63. package/ngcc/src/host/commonjs_umd_utils.d.ts +1 -1
  64. package/ngcc/src/host/delegating_host.d.ts +1 -1
  65. package/ngcc/src/host/esm2015_host.d.ts +1 -1
  66. package/ngcc/src/host/esm5_host.d.ts +2 -1
  67. package/ngcc/src/host/ngcc_host.d.ts +1 -1
  68. package/ngcc/src/host/umd_host.d.ts +1 -1
  69. package/ngcc/src/host/utils.d.ts +1 -1
  70. package/ngcc/src/locking/lock_file.d.ts +1 -1
  71. package/ngcc/src/locking/lock_file_with_child_process/index.d.ts +2 -0
  72. package/ngcc/src/locking/lock_file_with_child_process/{unlocker.d.ts → ngcc_lock_unlocker.d.ts} +1 -1
  73. package/ngcc/src/migrations/migration.d.ts +1 -1
  74. package/ngcc/src/migrations/missing_injectable_migration.d.ts +1 -1
  75. package/ngcc/src/migrations/undecorated_child_migration.d.ts +1 -1
  76. package/ngcc/src/migrations/undecorated_parent_migration.d.ts +1 -1
  77. package/ngcc/src/migrations/utils.d.ts +1 -1
  78. package/ngcc/src/packages/build_marker.d.ts +1 -1
  79. package/ngcc/src/packages/bundle_program.d.ts +1 -1
  80. package/ngcc/src/packages/configuration.d.ts +41 -4
  81. package/ngcc/src/packages/entry_point_bundle.d.ts +1 -1
  82. package/ngcc/src/packages/ngcc_compiler_host.d.ts +1 -1
  83. package/ngcc/src/packages/source_file_cache.d.ts +1 -1
  84. package/ngcc/src/packages/transformer.d.ts +1 -1
  85. package/ngcc/src/rendering/commonjs_rendering_formatter.d.ts +1 -1
  86. package/ngcc/src/rendering/dts_renderer.d.ts +1 -1
  87. package/ngcc/src/rendering/esm5_rendering_formatter.d.ts +1 -1
  88. package/ngcc/src/rendering/esm_rendering_formatter.d.ts +1 -1
  89. package/ngcc/src/rendering/renderer.d.ts +1 -1
  90. package/ngcc/src/rendering/rendering_formatter.d.ts +1 -1
  91. package/ngcc/src/rendering/source_maps.d.ts +3 -3
  92. package/ngcc/src/rendering/umd_rendering_formatter.d.ts +1 -1
  93. package/ngcc/src/rendering/utils.d.ts +1 -1
  94. package/ngcc/src/utils.d.ts +1 -1
  95. package/package.json +53 -14
  96. package/private/bazel.d.ts +13 -0
  97. package/private/localize.d.ts +15 -0
  98. package/private/migrations.d.ts +16 -0
  99. package/{src → private}/tooling.d.ts +2 -2
  100. package/src/bin/ng_xi18n.d.ts +10 -0
  101. package/{ngcc/main-ivy-ngcc.d.ts → src/bin/ngc.d.ts} +2 -1
  102. package/src/diagnostics/translate_diagnostics.d.ts +1 -1
  103. package/src/extract_i18n.d.ts +0 -5
  104. package/src/main.d.ts +9 -6
  105. package/src/metadata/bundle_index_host.d.ts +1 -1
  106. package/src/metadata/bundler.d.ts +1 -1
  107. package/src/metadata/collector.d.ts +1 -1
  108. package/src/metadata/evaluator.d.ts +1 -1
  109. package/src/metadata/symbols.d.ts +1 -1
  110. package/src/ngtsc/annotations/src/component.d.ts +1 -1
  111. package/src/ngtsc/annotations/src/diagnostics.d.ts +1 -1
  112. package/src/ngtsc/annotations/src/directive.d.ts +1 -1
  113. package/src/ngtsc/annotations/src/ng_module.d.ts +2 -4
  114. package/src/ngtsc/annotations/src/pipe.d.ts +1 -1
  115. package/src/ngtsc/annotations/src/util.d.ts +2 -4
  116. package/src/ngtsc/core/api/src/adapter.d.ts +1 -1
  117. package/src/ngtsc/core/api/src/interfaces.d.ts +1 -12
  118. package/src/ngtsc/core/api/src/options.d.ts +1 -1
  119. package/src/ngtsc/core/api/src/public_options.d.ts +5 -1
  120. package/src/ngtsc/core/src/compiler.d.ts +2 -8
  121. package/src/ngtsc/core/src/host.d.ts +1 -1
  122. package/src/ngtsc/cycles/src/analyzer.d.ts +1 -1
  123. package/src/ngtsc/cycles/src/imports.d.ts +1 -1
  124. package/src/ngtsc/diagnostics/src/error.d.ts +1 -1
  125. package/src/ngtsc/entry_point/src/generator.d.ts +1 -1
  126. package/src/ngtsc/entry_point/src/private_export_checker.d.ts +1 -1
  127. package/src/ngtsc/file_system/src/compiler_host.d.ts +1 -1
  128. package/src/ngtsc/file_system/src/logical.d.ts +1 -1
  129. package/src/ngtsc/file_system/src/util.d.ts +1 -1
  130. package/src/ngtsc/imports/src/alias.d.ts +1 -1
  131. package/src/ngtsc/imports/src/default.d.ts +1 -1
  132. package/src/ngtsc/imports/src/emitter.d.ts +1 -1
  133. package/src/ngtsc/imports/src/find_export.d.ts +1 -1
  134. package/src/ngtsc/imports/src/references.d.ts +1 -1
  135. package/src/ngtsc/imports/src/resolver.d.ts +1 -1
  136. package/src/ngtsc/incremental/api.d.ts +1 -1
  137. package/src/ngtsc/incremental/src/dependency_tracking.d.ts +1 -1
  138. package/src/ngtsc/incremental/src/incremental.d.ts +1 -1
  139. package/src/ngtsc/incremental/src/state.d.ts +1 -1
  140. package/src/ngtsc/incremental/src/strategy.d.ts +1 -1
  141. package/src/ngtsc/metadata/src/api.d.ts +1 -1
  142. package/src/ngtsc/metadata/src/dts.d.ts +1 -1
  143. package/src/ngtsc/metadata/src/resource_registry.d.ts +1 -1
  144. package/src/ngtsc/metadata/src/util.d.ts +1 -1
  145. package/src/ngtsc/partial_evaluator/index.d.ts +1 -0
  146. package/src/ngtsc/partial_evaluator/src/builtin.d.ts +1 -1
  147. package/src/ngtsc/partial_evaluator/src/diagnostics.d.ts +1 -1
  148. package/src/ngtsc/partial_evaluator/src/dynamic.d.ts +1 -1
  149. package/src/ngtsc/partial_evaluator/src/interface.d.ts +1 -1
  150. package/src/ngtsc/partial_evaluator/src/interpreter.d.ts +1 -1
  151. package/src/ngtsc/partial_evaluator/src/result.d.ts +1 -1
  152. package/src/ngtsc/partial_evaluator/src/ts_helpers.d.ts +1 -1
  153. package/src/ngtsc/program.d.ts +1 -1
  154. package/src/ngtsc/program_driver/src/api.d.ts +1 -1
  155. package/src/ngtsc/program_driver/src/ts_create_program_driver.d.ts +1 -1
  156. package/src/ngtsc/reflection/src/host.d.ts +1 -1
  157. package/src/ngtsc/reflection/src/type_to_value.d.ts +1 -1
  158. package/src/ngtsc/reflection/src/typescript.d.ts +1 -1
  159. package/src/ngtsc/reflection/src/util.d.ts +1 -1
  160. package/src/ngtsc/resource/src/loader.d.ts +1 -1
  161. package/src/ngtsc/scope/src/local.d.ts +1 -1
  162. package/src/ngtsc/scope/src/typecheck.d.ts +1 -1
  163. package/src/ngtsc/shims/api.d.ts +1 -1
  164. package/src/ngtsc/shims/src/adapter.d.ts +1 -1
  165. package/src/ngtsc/shims/src/expando.d.ts +1 -1
  166. package/src/ngtsc/shims/src/factory_generator.d.ts +1 -1
  167. package/src/ngtsc/shims/src/reference_tagger.d.ts +1 -1
  168. package/src/ngtsc/shims/src/summary_generator.d.ts +1 -1
  169. package/src/ngtsc/switch/src/switch.d.ts +1 -1
  170. package/src/ngtsc/transform/src/alias.d.ts +1 -1
  171. package/src/ngtsc/transform/src/api.d.ts +1 -1
  172. package/src/ngtsc/transform/src/compilation.d.ts +1 -1
  173. package/src/ngtsc/transform/src/declaration.d.ts +1 -1
  174. package/src/ngtsc/transform/src/trait.d.ts +1 -1
  175. package/src/ngtsc/transform/src/transform.d.ts +1 -1
  176. package/src/ngtsc/transform/src/utils.d.ts +1 -1
  177. package/src/ngtsc/translator/src/import_manager.d.ts +1 -1
  178. package/src/ngtsc/translator/src/type_translator.d.ts +1 -1
  179. package/src/ngtsc/translator/src/typescript_ast_factory.d.ts +1 -1
  180. package/src/ngtsc/translator/src/typescript_translator.d.ts +1 -1
  181. package/src/ngtsc/tsc_plugin.d.ts +1 -1
  182. package/src/ngtsc/typecheck/api/api.d.ts +1 -1
  183. package/src/ngtsc/typecheck/api/checker.d.ts +7 -4
  184. package/src/ngtsc/typecheck/api/context.d.ts +1 -1
  185. package/src/ngtsc/typecheck/api/scope.d.ts +1 -1
  186. package/src/ngtsc/typecheck/api/symbols.d.ts +1 -1
  187. package/src/ngtsc/typecheck/diagnostics/src/diagnostic.d.ts +1 -1
  188. package/src/ngtsc/typecheck/extended/api/api.d.ts +1 -1
  189. package/src/ngtsc/typecheck/extended/api/extended_template_checker.d.ts +1 -1
  190. package/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.d.ts +1 -1
  191. package/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.d.ts +1 -1
  192. package/src/ngtsc/typecheck/extended/src/extended_template_checker.d.ts +1 -1
  193. package/src/ngtsc/typecheck/src/checker.d.ts +4 -4
  194. package/src/ngtsc/typecheck/src/comments.d.ts +1 -1
  195. package/src/ngtsc/typecheck/src/completion.d.ts +3 -5
  196. package/src/ngtsc/typecheck/src/context.d.ts +1 -1
  197. package/src/ngtsc/typecheck/src/diagnostics.d.ts +1 -1
  198. package/src/ngtsc/typecheck/src/environment.d.ts +1 -1
  199. package/src/ngtsc/typecheck/src/expression.d.ts +1 -1
  200. package/src/ngtsc/typecheck/src/oob.d.ts +3 -4
  201. package/src/ngtsc/typecheck/src/shim.d.ts +1 -1
  202. package/src/ngtsc/typecheck/src/source.d.ts +1 -1
  203. package/src/ngtsc/typecheck/src/tcb_util.d.ts +1 -1
  204. package/src/ngtsc/typecheck/src/template_symbol_builder.d.ts +1 -1
  205. package/src/ngtsc/typecheck/src/ts_util.d.ts +1 -1
  206. package/src/ngtsc/typecheck/src/type_check_block.d.ts +1 -1
  207. package/src/ngtsc/typecheck/src/type_check_file.d.ts +1 -1
  208. package/src/ngtsc/typecheck/src/type_constructor.d.ts +1 -1
  209. package/src/ngtsc/typecheck/src/type_emitter.d.ts +1 -1
  210. package/src/ngtsc/typecheck/src/type_parameter_emitter.d.ts +1 -1
  211. package/src/ngtsc/util/src/typescript.d.ts +1 -1
  212. package/src/ngtsc/util/src/visitor.d.ts +1 -1
  213. package/src/perform_compile.d.ts +1 -2
  214. package/src/perform_watch.d.ts +1 -1
  215. package/src/transformers/api.d.ts +2 -5
  216. package/src/transformers/compiler_host.d.ts +1 -1
  217. package/src/transformers/{downlevel_decorators_transform.d.ts → downlevel_decorators_transform/downlevel_decorators_transform.d.ts} +3 -3
  218. package/src/{ngtsc/routing → transformers/downlevel_decorators_transform}/index.d.ts +2 -3
  219. package/src/transformers/{patch_alias_reference_resolution.d.ts → downlevel_decorators_transform/patch_alias_reference_resolution.d.ts} +2 -2
  220. package/src/transformers/i18n.d.ts +1 -1
  221. package/src/transformers/inline_resources.d.ts +1 -1
  222. package/src/transformers/lower_expressions.d.ts +1 -1
  223. package/src/transformers/metadata_cache.d.ts +1 -1
  224. package/src/transformers/node_emitter.d.ts +1 -1
  225. package/src/transformers/node_emitter_transform.d.ts +1 -1
  226. package/src/transformers/program.d.ts +1 -1
  227. package/src/transformers/r3_metadata_transform.d.ts +1 -1
  228. package/src/transformers/r3_transform.d.ts +1 -1
  229. package/src/transformers/util.d.ts +1 -1
  230. package/index.js +0 -40
  231. package/linker/babel/index.js +0 -25
  232. package/linker/babel/src/ast/babel_ast_factory.js +0 -153
  233. package/linker/babel/src/ast/babel_ast_host.js +0 -181
  234. package/linker/babel/src/babel_declaration_scope.js +0 -67
  235. package/linker/babel/src/babel_plugin.js +0 -38
  236. package/linker/babel/src/es2015_linker_plugin.js +0 -183
  237. package/linker/babel/src/linker_plugin_options.js +0 -13
  238. package/linker/index.js +0 -27
  239. package/linker/src/ast/ast_host.js +0 -20
  240. package/linker/src/ast/ast_value.js +0 -299
  241. package/linker/src/ast/typescript/typescript_ast_host.js +0 -183
  242. package/linker/src/ast/utils.js +0 -31
  243. package/linker/src/fatal_linker_error.js +0 -49
  244. package/linker/src/file_linker/declaration_scope.js +0 -20
  245. package/linker/src/file_linker/emit_scopes/emit_scope.js +0 -57
  246. package/linker/src/file_linker/emit_scopes/iife_emit_scope.js +0 -51
  247. package/linker/src/file_linker/file_linker.js +0 -97
  248. package/linker/src/file_linker/get_source_file.js +0 -42
  249. package/linker/src/file_linker/linker_environment.js +0 -38
  250. package/linker/src/file_linker/linker_options.js +0 -29
  251. package/linker/src/file_linker/needs_linking.js +0 -41
  252. package/linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.js +0 -47
  253. package/linker/src/file_linker/partial_linkers/partial_component_linker_1.js +0 -210
  254. package/linker/src/file_linker/partial_linkers/partial_directive_linker_1.js +0 -154
  255. package/linker/src/file_linker/partial_linkers/partial_factory_linker_1.js +0 -70
  256. package/linker/src/file_linker/partial_linkers/partial_injectable_linker_1.js +0 -74
  257. package/linker/src/file_linker/partial_linkers/partial_injector_linker_1.js +0 -56
  258. package/linker/src/file_linker/partial_linkers/partial_linker.js +0 -13
  259. package/linker/src/file_linker/partial_linkers/partial_linker_selector.js +0 -194
  260. package/linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.js +0 -126
  261. package/linker/src/file_linker/partial_linkers/partial_pipe_linker_1.js +0 -59
  262. package/linker/src/file_linker/partial_linkers/util.js +0 -95
  263. package/linker/src/file_linker/translator.js +0 -40
  264. package/linker/src/linker_import_generator.js +0 -43
  265. package/ngcc/index.js +0 -33
  266. package/ngcc/main-ivy-ngcc.js +0 -12
  267. package/ngcc/main-ngcc.js +0 -54
  268. package/ngcc/src/analysis/decoration_analyzer.js +0 -268
  269. package/ngcc/src/analysis/migration_host.js +0 -108
  270. package/ngcc/src/analysis/module_with_providers_analyzer.js +0 -197
  271. package/ngcc/src/analysis/ngcc_references_registry.js +0 -65
  272. package/ngcc/src/analysis/ngcc_trait_compiler.js +0 -117
  273. package/ngcc/src/analysis/private_declarations_analyzer.js +0 -63
  274. package/ngcc/src/analysis/switch_marker_analyzer.js +0 -50
  275. package/ngcc/src/analysis/types.js +0 -15
  276. package/ngcc/src/analysis/util.js +0 -36
  277. package/ngcc/src/command_line_options.js +0 -156
  278. package/ngcc/src/constants.js +0 -23
  279. package/ngcc/src/dependencies/commonjs_dependency_host.js +0 -129
  280. package/ngcc/src/dependencies/dependency_host.js +0 -143
  281. package/ngcc/src/dependencies/dependency_resolver.js +0 -180
  282. package/ngcc/src/dependencies/dts_dependency_host.js +0 -35
  283. package/ngcc/src/dependencies/esm_dependency_host.js +0 -307
  284. package/ngcc/src/dependencies/module_resolver.js +0 -269
  285. package/ngcc/src/dependencies/umd_dependency_host.js +0 -53
  286. package/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.js +0 -70
  287. package/ngcc/src/entry_point_finder/entry_point_collector.js +0 -157
  288. package/ngcc/src/entry_point_finder/interface.js +0 -13
  289. package/ngcc/src/entry_point_finder/program_based_entry_point_finder.js +0 -132
  290. package/ngcc/src/entry_point_finder/targeted_entry_point_finder.js +0 -268
  291. package/ngcc/src/entry_point_finder/tracing_entry_point_finder.js +0 -78
  292. package/ngcc/src/entry_point_finder/utils.js +0 -234
  293. package/ngcc/src/execution/analyze_entry_points.js +0 -197
  294. package/ngcc/src/execution/api.js +0 -13
  295. package/ngcc/src/execution/cluster/api.js +0 -20
  296. package/ngcc/src/execution/cluster/executor.js +0 -52
  297. package/ngcc/src/execution/cluster/master.js +0 -311
  298. package/ngcc/src/execution/cluster/package_json_updater.js +0 -79
  299. package/ngcc/src/execution/cluster/utils.js +0 -77
  300. package/ngcc/src/execution/cluster/worker.js +0 -123
  301. package/ngcc/src/execution/create_compile_function.js +0 -76
  302. package/ngcc/src/execution/single_process_executor.js +0 -91
  303. package/ngcc/src/execution/tasks/api.js +0 -35
  304. package/ngcc/src/execution/tasks/completion.js +0 -79
  305. package/ngcc/src/execution/tasks/queues/base_task_queue.js +0 -120
  306. package/ngcc/src/execution/tasks/queues/parallel_task_queue.js +0 -87
  307. package/ngcc/src/execution/tasks/queues/serial_task_queue.js +0 -49
  308. package/ngcc/src/execution/tasks/utils.js +0 -167
  309. package/ngcc/src/host/commonjs_host.js +0 -261
  310. package/ngcc/src/host/commonjs_umd_utils.js +0 -210
  311. package/ngcc/src/host/delegating_host.js +0 -156
  312. package/ngcc/src/host/esm2015_host.js +0 -2441
  313. package/ngcc/src/host/esm5_host.js +0 -744
  314. package/ngcc/src/host/ngcc_host.js +0 -29
  315. package/ngcc/src/host/umd_host.js +0 -539
  316. package/ngcc/src/host/utils.js +0 -26
  317. package/ngcc/src/locking/async_locker.js +0 -121
  318. package/ngcc/src/locking/lock_file.js +0 -18
  319. package/ngcc/src/locking/lock_file_with_child_process/index.js +0 -93
  320. package/ngcc/src/locking/lock_file_with_child_process/unlocker.js +0 -46
  321. package/ngcc/src/locking/lock_file_with_child_process/util.js +0 -43
  322. package/ngcc/src/locking/sync_locker.js +0 -67
  323. package/ngcc/src/main.js +0 -163
  324. package/ngcc/src/migrations/migration.js +0 -13
  325. package/ngcc/src/migrations/missing_injectable_migration.js +0 -227
  326. package/ngcc/src/migrations/undecorated_child_migration.js +0 -90
  327. package/ngcc/src/migrations/undecorated_parent_migration.js +0 -103
  328. package/ngcc/src/migrations/utils.js +0 -137
  329. package/ngcc/src/ngcc_options.js +0 -135
  330. package/ngcc/src/packages/build_marker.js +0 -124
  331. package/ngcc/src/packages/bundle_program.js +0 -80
  332. package/ngcc/src/packages/configuration.js +0 -277
  333. package/ngcc/src/packages/entry_point.js +0 -267
  334. package/ngcc/src/packages/entry_point_bundle.js +0 -96
  335. package/ngcc/src/packages/entry_point_manifest.js +0 -207
  336. package/ngcc/src/packages/ngcc_compiler_host.js +0 -101
  337. package/ngcc/src/packages/patch_ts_expando_initializer.js +0 -174
  338. package/ngcc/src/packages/source_file_cache.js +0 -207
  339. package/ngcc/src/packages/transformer.js +0 -157
  340. package/ngcc/src/path_mappings.js +0 -27
  341. package/ngcc/src/rendering/commonjs_rendering_formatter.js +0 -106
  342. package/ngcc/src/rendering/dts_renderer.js +0 -170
  343. package/ngcc/src/rendering/esm5_rendering_formatter.js +0 -70
  344. package/ngcc/src/rendering/esm_rendering_formatter.js +0 -291
  345. package/ngcc/src/rendering/ngcc_import_rewriter.js +0 -49
  346. package/ngcc/src/rendering/renderer.js +0 -204
  347. package/ngcc/src/rendering/rendering_formatter.js +0 -15
  348. package/ngcc/src/rendering/source_maps.js +0 -68
  349. package/ngcc/src/rendering/umd_rendering_formatter.js +0 -326
  350. package/ngcc/src/rendering/utils.js +0 -35
  351. package/ngcc/src/utils.js +0 -182
  352. package/ngcc/src/writing/cleaning/cleaning_strategies.js +0 -80
  353. package/ngcc/src/writing/cleaning/package_cleaner.js +0 -126
  354. package/ngcc/src/writing/cleaning/utils.js +0 -30
  355. package/ngcc/src/writing/file_writer.js +0 -13
  356. package/ngcc/src/writing/in_place_file_writer.js +0 -90
  357. package/ngcc/src/writing/new_entry_point_file_writer.js +0 -214
  358. package/ngcc/src/writing/package_json_updater.js +0 -182
  359. package/src/diagnostics/translate_diagnostics.js +0 -61
  360. package/src/diagnostics/typescript_version.js +0 -96
  361. package/src/extract_i18n.js +0 -62
  362. package/src/language_services.js +0 -34
  363. package/src/main.js +0 -210
  364. package/src/metadata/bundle_index_host.js +0 -133
  365. package/src/metadata/bundler.js +0 -624
  366. package/src/metadata/collector.js +0 -799
  367. package/src/metadata/evaluator.js +0 -677
  368. package/src/metadata/index.js +0 -24
  369. package/src/metadata/index_writer.js +0 -80
  370. package/src/metadata/schema.js +0 -136
  371. package/src/metadata/symbols.js +0 -149
  372. package/src/ngtsc/annotations/index.js +0 -35
  373. package/src/ngtsc/annotations/src/api.js +0 -20
  374. package/src/ngtsc/annotations/src/component.js +0 -1338
  375. package/src/ngtsc/annotations/src/diagnostics.js +0 -174
  376. package/src/ngtsc/annotations/src/directive.js +0 -724
  377. package/src/ngtsc/annotations/src/factory.js +0 -32
  378. package/src/ngtsc/annotations/src/injectable.js +0 -277
  379. package/src/ngtsc/annotations/src/metadata.js +0 -160
  380. package/src/ngtsc/annotations/src/ng_module.js +0 -677
  381. package/src/ngtsc/annotations/src/pipe.js +0 -171
  382. package/src/ngtsc/annotations/src/references_registry.js +0 -38
  383. package/src/ngtsc/annotations/src/util.js +0 -566
  384. package/src/ngtsc/core/api/index.js +0 -25
  385. package/src/ngtsc/core/api/src/adapter.js +0 -20
  386. package/src/ngtsc/core/api/src/interfaces.js +0 -20
  387. package/src/ngtsc/core/api/src/options.js +0 -20
  388. package/src/ngtsc/core/api/src/public_options.js +0 -20
  389. package/src/ngtsc/core/index.js +0 -25
  390. package/src/ngtsc/core/src/compiler.js +0 -1142
  391. package/src/ngtsc/core/src/host.js +0 -273
  392. package/src/ngtsc/cycles/index.js +0 -26
  393. package/src/ngtsc/cycles/src/analyzer.js +0 -163
  394. package/src/ngtsc/cycles/src/imports.js +0 -175
  395. package/src/ngtsc/diagnostics/index.js +0 -33
  396. package/src/ngtsc/diagnostics/src/error.js +0 -69
  397. package/src/ngtsc/diagnostics/src/error_code.js +0 -235
  398. package/src/ngtsc/diagnostics/src/util.js +0 -35
  399. package/src/ngtsc/entry_point/index.js +0 -29
  400. package/src/ngtsc/entry_point/src/generator.js +0 -45
  401. package/src/ngtsc/entry_point/src/logic.js +0 -61
  402. package/src/ngtsc/entry_point/src/private_export_checker.js +0 -137
  403. package/src/ngtsc/entry_point/src/reference_graph.js +0 -91
  404. package/src/ngtsc/file_system/index.js +0 -45
  405. package/src/ngtsc/file_system/src/compiler_host.js +0 -80
  406. package/src/ngtsc/file_system/src/helpers.js +0 -135
  407. package/src/ngtsc/file_system/src/invalid_file_system.js +0 -120
  408. package/src/ngtsc/file_system/src/logical.js +0 -100
  409. package/src/ngtsc/file_system/src/node_js_file_system.js +0 -179
  410. package/src/ngtsc/file_system/src/types.js +0 -20
  411. package/src/ngtsc/file_system/src/util.js +0 -38
  412. package/src/ngtsc/file_system/testing/index.d.ts +0 -13
  413. package/src/ngtsc/file_system/testing/index.js +0 -32
  414. package/src/ngtsc/file_system/testing/src/mock_file_system.d.ts +0 -72
  415. package/src/ngtsc/file_system/testing/src/mock_file_system.js +0 -333
  416. package/src/ngtsc/file_system/testing/src/mock_file_system_native.d.ts +0 -16
  417. package/src/ngtsc/file_system/testing/src/mock_file_system_native.js +0 -85
  418. package/src/ngtsc/file_system/testing/src/mock_file_system_posix.d.ts +0 -13
  419. package/src/ngtsc/file_system/testing/src/mock_file_system_posix.js +0 -68
  420. package/src/ngtsc/file_system/testing/src/mock_file_system_windows.d.ts +0 -13
  421. package/src/ngtsc/file_system/testing/src/mock_file_system_windows.js +0 -68
  422. package/src/ngtsc/file_system/testing/src/test_helper.d.ts +0 -17
  423. package/src/ngtsc/file_system/testing/src/test_helper.js +0 -142
  424. package/src/ngtsc/imports/index.js +0 -43
  425. package/src/ngtsc/imports/src/alias.js +0 -158
  426. package/src/ngtsc/imports/src/core.js +0 -98
  427. package/src/ngtsc/imports/src/default.js +0 -153
  428. package/src/ngtsc/imports/src/emitter.js +0 -317
  429. package/src/ngtsc/imports/src/find_export.js +0 -82
  430. package/src/ngtsc/imports/src/reexport.js +0 -20
  431. package/src/ngtsc/imports/src/references.js +0 -171
  432. package/src/ngtsc/imports/src/resolver.js +0 -39
  433. package/src/ngtsc/incremental/api.js +0 -20
  434. package/src/ngtsc/incremental/index.js +0 -29
  435. package/src/ngtsc/incremental/semantic_graph/index.js +0 -34
  436. package/src/ngtsc/incremental/semantic_graph/src/api.js +0 -51
  437. package/src/ngtsc/incremental/semantic_graph/src/graph.js +0 -302
  438. package/src/ngtsc/incremental/semantic_graph/src/type_parameters.js +0 -55
  439. package/src/ngtsc/incremental/semantic_graph/src/util.js +0 -111
  440. package/src/ngtsc/incremental/src/dependency_tracking.js +0 -165
  441. package/src/ngtsc/incremental/src/incremental.js +0 -393
  442. package/src/ngtsc/incremental/src/noop.js +0 -26
  443. package/src/ngtsc/incremental/src/state.js +0 -30
  444. package/src/ngtsc/incremental/src/strategy.js +0 -99
  445. package/src/ngtsc/indexer/index.js +0 -27
  446. package/src/ngtsc/indexer/src/api.js +0 -45
  447. package/src/ngtsc/indexer/src/context.js +0 -40
  448. package/src/ngtsc/indexer/src/template.js +0 -324
  449. package/src/ngtsc/indexer/src/transform.js +0 -66
  450. package/src/ngtsc/logging/index.js +0 -25
  451. package/src/ngtsc/logging/src/console_logger.js +0 -75
  452. package/src/ngtsc/logging/src/logger.js +0 -28
  453. package/src/ngtsc/logging/testing/index.js +0 -23
  454. package/src/ngtsc/logging/testing/src/mock_logger.d.ts +0 -20
  455. package/src/ngtsc/logging/testing/src/mock_logger.js +0 -64
  456. package/src/ngtsc/metadata/index.js +0 -39
  457. package/src/ngtsc/metadata/src/api.js +0 -26
  458. package/src/ngtsc/metadata/src/dts.js +0 -168
  459. package/src/ngtsc/metadata/src/inheritance.js +0 -122
  460. package/src/ngtsc/metadata/src/property_mapping.js +0 -244
  461. package/src/ngtsc/metadata/src/registry.js +0 -133
  462. package/src/ngtsc/metadata/src/resource_registry.js +0 -109
  463. package/src/ngtsc/metadata/src/util.js +0 -275
  464. package/src/ngtsc/partial_evaluator/index.js +0 -31
  465. package/src/ngtsc/partial_evaluator/src/builtin.js +0 -125
  466. package/src/ngtsc/partial_evaluator/src/diagnostics.js +0 -193
  467. package/src/ngtsc/partial_evaluator/src/dynamic.js +0 -109
  468. package/src/ngtsc/partial_evaluator/src/interface.js +0 -42
  469. package/src/ngtsc/partial_evaluator/src/interpreter.js +0 -780
  470. package/src/ngtsc/partial_evaluator/src/known_declaration.js +0 -57
  471. package/src/ngtsc/partial_evaluator/src/result.js +0 -72
  472. package/src/ngtsc/partial_evaluator/src/ts_helpers.js +0 -121
  473. package/src/ngtsc/perf/index.js +0 -28
  474. package/src/ngtsc/perf/src/api.js +0 -291
  475. package/src/ngtsc/perf/src/clock.js +0 -30
  476. package/src/ngtsc/perf/src/noop.js +0 -37
  477. package/src/ngtsc/perf/src/recorder.js +0 -143
  478. package/src/ngtsc/program.js +0 -360
  479. package/src/ngtsc/program_driver/index.js +0 -25
  480. package/src/ngtsc/program_driver/src/api.js +0 -36
  481. package/src/ngtsc/program_driver/src/ts_create_program_driver.js +0 -200
  482. package/src/ngtsc/reflection/index.js +0 -36
  483. package/src/ngtsc/reflection/src/host.js +0 -88
  484. package/src/ngtsc/reflection/src/type_to_value.js +0 -259
  485. package/src/ngtsc/reflection/src/typescript.js +0 -640
  486. package/src/ngtsc/reflection/src/util.js +0 -37
  487. package/src/ngtsc/resource/index.js +0 -23
  488. package/src/ngtsc/resource/src/loader.js +0 -285
  489. package/src/ngtsc/routing/index.js +0 -26
  490. package/src/ngtsc/routing/src/analyzer.d.ts +0 -37
  491. package/src/ngtsc/routing/src/analyzer.js +0 -82
  492. package/src/ngtsc/routing/src/lazy.d.ts +0 -19
  493. package/src/ngtsc/routing/src/lazy.js +0 -239
  494. package/src/ngtsc/routing/src/route.d.ts +0 -23
  495. package/src/ngtsc/routing/src/route.js +0 -77
  496. package/src/ngtsc/scope/index.js +0 -29
  497. package/src/ngtsc/scope/src/api.js +0 -20
  498. package/src/ngtsc/scope/src/component_scope.js +0 -69
  499. package/src/ngtsc/scope/src/dependency.js +0 -201
  500. package/src/ngtsc/scope/src/local.js +0 -665
  501. package/src/ngtsc/scope/src/typecheck.js +0 -120
  502. package/src/ngtsc/shims/api.js +0 -13
  503. package/src/ngtsc/shims/index.js +0 -39
  504. package/src/ngtsc/shims/src/adapter.js +0 -266
  505. package/src/ngtsc/shims/src/expando.js +0 -147
  506. package/src/ngtsc/shims/src/factory_generator.js +0 -292
  507. package/src/ngtsc/shims/src/reference_tagger.js +0 -94
  508. package/src/ngtsc/shims/src/summary_generator.js +0 -101
  509. package/src/ngtsc/shims/src/util.js +0 -41
  510. package/src/ngtsc/sourcemaps/index.js +0 -27
  511. package/src/ngtsc/sourcemaps/src/content_origin.js +0 -48
  512. package/src/ngtsc/sourcemaps/src/raw_source_map.js +0 -13
  513. package/src/ngtsc/sourcemaps/src/segment_marker.js +0 -55
  514. package/src/ngtsc/sourcemaps/src/source_file.js +0 -519
  515. package/src/ngtsc/sourcemaps/src/source_file_loader.js +0 -234
  516. package/src/ngtsc/switch/index.js +0 -23
  517. package/src/ngtsc/switch/src/switch.js +0 -141
  518. package/src/ngtsc/transform/index.js +0 -36
  519. package/src/ngtsc/transform/src/alias.js +0 -46
  520. package/src/ngtsc/transform/src/api.js +0 -76
  521. package/src/ngtsc/transform/src/compilation.js +0 -862
  522. package/src/ngtsc/transform/src/declaration.js +0 -234
  523. package/src/ngtsc/transform/src/trait.js +0 -111
  524. package/src/ngtsc/transform/src/transform.js +0 -333
  525. package/src/ngtsc/transform/src/utils.js +0 -73
  526. package/src/ngtsc/translator/index.js +0 -37
  527. package/src/ngtsc/translator/src/api/ast_factory.js +0 -20
  528. package/src/ngtsc/translator/src/api/import_generator.js +0 -20
  529. package/src/ngtsc/translator/src/context.js +0 -47
  530. package/src/ngtsc/translator/src/import_manager.js +0 -77
  531. package/src/ngtsc/translator/src/translator.js +0 -347
  532. package/src/ngtsc/translator/src/type_translator.js +0 -220
  533. package/src/ngtsc/translator/src/typescript_ast_factory.js +0 -251
  534. package/src/ngtsc/translator/src/typescript_translator.js +0 -34
  535. package/src/ngtsc/tsc_plugin.js +0 -129
  536. package/src/ngtsc/typecheck/api/api.js +0 -20
  537. package/src/ngtsc/typecheck/api/checker.js +0 -44
  538. package/src/ngtsc/typecheck/api/completion.js +0 -29
  539. package/src/ngtsc/typecheck/api/context.js +0 -20
  540. package/src/ngtsc/typecheck/api/index.js +0 -27
  541. package/src/ngtsc/typecheck/api/scope.js +0 -20
  542. package/src/ngtsc/typecheck/api/symbols.js +0 -35
  543. package/src/ngtsc/typecheck/diagnostics/index.js +0 -23
  544. package/src/ngtsc/typecheck/diagnostics/src/diagnostic.js +0 -141
  545. package/src/ngtsc/typecheck/diagnostics/src/id.js +0 -37
  546. package/src/ngtsc/typecheck/extended/api/api.js +0 -124
  547. package/src/ngtsc/typecheck/extended/api/extended_template_checker.js +0 -20
  548. package/src/ngtsc/typecheck/extended/api/index.js +0 -23
  549. package/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.js +0 -52
  550. package/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.js +0 -64
  551. package/src/ngtsc/typecheck/extended/index.js +0 -23
  552. package/src/ngtsc/typecheck/extended/src/extended_template_checker.js +0 -55
  553. package/src/ngtsc/typecheck/index.js +0 -29
  554. package/src/ngtsc/typecheck/src/checker.js +0 -764
  555. package/src/ngtsc/typecheck/src/comments.js +0 -181
  556. package/src/ngtsc/typecheck/src/completion.js +0 -230
  557. package/src/ngtsc/typecheck/src/context.js +0 -424
  558. package/src/ngtsc/typecheck/src/diagnostics.js +0 -114
  559. package/src/ngtsc/typecheck/src/dom.js +0 -87
  560. package/src/ngtsc/typecheck/src/environment.js +0 -160
  561. package/src/ngtsc/typecheck/src/expression.js +0 -417
  562. package/src/ngtsc/typecheck/src/line_mappings.js +0 -77
  563. package/src/ngtsc/typecheck/src/oob.js +0 -181
  564. package/src/ngtsc/typecheck/src/shim.js +0 -52
  565. package/src/ngtsc/typecheck/src/source.js +0 -91
  566. package/src/ngtsc/typecheck/src/tcb_util.js +0 -165
  567. package/src/ngtsc/typecheck/src/template_semantics.js +0 -52
  568. package/src/ngtsc/typecheck/src/template_symbol_builder.js +0 -551
  569. package/src/ngtsc/typecheck/src/ts_util.js +0 -202
  570. package/src/ngtsc/typecheck/src/type_check_block.js +0 -2212
  571. package/src/ngtsc/typecheck/src/type_check_file.js +0 -115
  572. package/src/ngtsc/typecheck/src/type_constructor.js +0 -255
  573. package/src/ngtsc/typecheck/src/type_emitter.js +0 -164
  574. package/src/ngtsc/typecheck/src/type_parameter_emitter.js +0 -115
  575. package/src/ngtsc/util/src/path.js +0 -33
  576. package/src/ngtsc/util/src/typescript.js +0 -176
  577. package/src/ngtsc/util/src/visitor.js +0 -119
  578. package/src/ngtsc/xi18n/index.js +0 -22
  579. package/src/ngtsc/xi18n/src/context.js +0 -20
  580. package/src/perform_compile.js +0 -322
  581. package/src/perform_watch.js +0 -263
  582. package/src/tooling.js +0 -47
  583. package/src/transformers/api.js +0 -42
  584. package/src/transformers/compiler_host.js +0 -623
  585. package/src/transformers/downlevel_decorators_transform.js +0 -612
  586. package/src/transformers/entry_points.js +0 -25
  587. package/src/transformers/i18n.js +0 -76
  588. package/src/transformers/inline_resources.js +0 -287
  589. package/src/transformers/lower_expressions.js +0 -365
  590. package/src/transformers/metadata_cache.js +0 -96
  591. package/src/transformers/metadata_reader.js +0 -120
  592. package/src/transformers/node_emitter.js +0 -637
  593. package/src/transformers/node_emitter_transform.js +0 -88
  594. package/src/transformers/patch_alias_reference_resolution.js +0 -129
  595. package/src/transformers/program.js +0 -1000
  596. package/src/transformers/r3_metadata_transform.js +0 -73
  597. package/src/transformers/r3_transform.js +0 -44
  598. package/src/transformers/util.js +0 -122
  599. package/src/typescript_support.js +0 -74
  600. package/src/version.js +0 -28
@@ -1,108 +0,0 @@
1
- (function (factory) {
2
- if (typeof module === "object" && typeof module.exports === "object") {
3
- var v = factory(require, exports);
4
- if (v !== undefined) module.exports = v;
5
- }
6
- else if (typeof define === "function" && define.amd) {
7
- define("@angular/compiler-cli/ngcc/src/analysis/migration_host", ["require", "exports", "tslib", "typescript", "@angular/compiler-cli/src/ngtsc/file_system", "@angular/compiler-cli/src/ngtsc/transform", "@angular/compiler-cli/ngcc/src/analysis/util"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.DefaultMigrationHost = void 0;
13
- var tslib_1 = require("tslib");
14
- /**
15
- * @license
16
- * Copyright Google LLC All Rights Reserved.
17
- *
18
- * Use of this source code is governed by an MIT-style license that can be
19
- * found in the LICENSE file at https://angular.io/license
20
- */
21
- var ts = require("typescript");
22
- var file_system_1 = require("@angular/compiler-cli/src/ngtsc/file_system");
23
- var transform_1 = require("@angular/compiler-cli/src/ngtsc/transform");
24
- var util_1 = require("@angular/compiler-cli/ngcc/src/analysis/util");
25
- /**
26
- * The standard implementation of `MigrationHost`, which is created by the `DecorationAnalyzer`.
27
- */
28
- var DefaultMigrationHost = /** @class */ (function () {
29
- function DefaultMigrationHost(reflectionHost, metadata, evaluator, compiler, entryPointPath) {
30
- this.reflectionHost = reflectionHost;
31
- this.metadata = metadata;
32
- this.evaluator = evaluator;
33
- this.compiler = compiler;
34
- this.entryPointPath = entryPointPath;
35
- }
36
- DefaultMigrationHost.prototype.injectSyntheticDecorator = function (clazz, decorator, flags) {
37
- var e_1, _a;
38
- var migratedTraits = this.compiler.injectSyntheticDecorator(clazz, decorator, flags);
39
- try {
40
- for (var migratedTraits_1 = tslib_1.__values(migratedTraits), migratedTraits_1_1 = migratedTraits_1.next(); !migratedTraits_1_1.done; migratedTraits_1_1 = migratedTraits_1.next()) {
41
- var trait = migratedTraits_1_1.value;
42
- if ((trait.state === transform_1.TraitState.Analyzed || trait.state === transform_1.TraitState.Resolved) &&
43
- trait.analysisDiagnostics !== null) {
44
- trait.analysisDiagnostics = trait.analysisDiagnostics.map(function (diag) { return createMigrationDiagnostic(diag, clazz, decorator); });
45
- }
46
- if (trait.state === transform_1.TraitState.Resolved && trait.resolveDiagnostics !== null) {
47
- trait.resolveDiagnostics =
48
- trait.resolveDiagnostics.map(function (diag) { return createMigrationDiagnostic(diag, clazz, decorator); });
49
- }
50
- }
51
- }
52
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
53
- finally {
54
- try {
55
- if (migratedTraits_1_1 && !migratedTraits_1_1.done && (_a = migratedTraits_1.return)) _a.call(migratedTraits_1);
56
- }
57
- finally { if (e_1) throw e_1.error; }
58
- }
59
- };
60
- DefaultMigrationHost.prototype.getAllDecorators = function (clazz) {
61
- return this.compiler.getAllDecorators(clazz);
62
- };
63
- DefaultMigrationHost.prototype.isInScope = function (clazz) {
64
- return util_1.isWithinPackage(this.entryPointPath, file_system_1.absoluteFromSourceFile(clazz.getSourceFile()));
65
- };
66
- return DefaultMigrationHost;
67
- }());
68
- exports.DefaultMigrationHost = DefaultMigrationHost;
69
- /**
70
- * Creates a diagnostic from another one, containing additional information about the synthetic
71
- * decorator.
72
- */
73
- function createMigrationDiagnostic(diagnostic, source, decorator) {
74
- var _a;
75
- var clone = tslib_1.__assign({}, diagnostic);
76
- var chain = [{
77
- messageText: "Occurs for @" + decorator.name + " decorator inserted by an automatic migration",
78
- category: ts.DiagnosticCategory.Message,
79
- code: 0,
80
- }];
81
- if (decorator.args !== null) {
82
- var args = decorator.args.map(function (arg) { return arg.getText(); }).join(', ');
83
- chain.push({
84
- messageText: "@" + decorator.name + "(" + args + ")",
85
- category: ts.DiagnosticCategory.Message,
86
- code: 0,
87
- });
88
- }
89
- if (typeof clone.messageText === 'string') {
90
- clone.messageText = {
91
- messageText: clone.messageText,
92
- category: diagnostic.category,
93
- code: diagnostic.code,
94
- next: chain,
95
- };
96
- }
97
- else {
98
- if (clone.messageText.next === undefined) {
99
- clone.messageText.next = chain;
100
- }
101
- else {
102
- (_a = clone.messageText.next).push.apply(_a, tslib_1.__spreadArray([], tslib_1.__read(chain)));
103
- }
104
- }
105
- return clone;
106
- }
107
- });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9uX2hvc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbmdjYy9zcmMvYW5hbHlzaXMvbWlncmF0aW9uX2hvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztJQUFBOzs7Ozs7T0FNRztJQUNILCtCQUFpQztJQUVqQywyRUFBc0Y7SUFJdEYsdUVBQXNFO0lBS3RFLHFFQUF1QztJQUV2Qzs7T0FFRztJQUNIO1FBQ0UsOEJBQ2EsY0FBa0MsRUFBVyxRQUF3QixFQUNyRSxTQUEyQixFQUFVLFFBQTJCLEVBQ2pFLGNBQThCO1lBRjdCLG1CQUFjLEdBQWQsY0FBYyxDQUFvQjtZQUFXLGFBQVEsR0FBUixRQUFRLENBQWdCO1lBQ3JFLGNBQVMsR0FBVCxTQUFTLENBQWtCO1lBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7WUFDakUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQUcsQ0FBQztRQUU5Qyx1REFBd0IsR0FBeEIsVUFBeUIsS0FBdUIsRUFBRSxTQUFvQixFQUFFLEtBQW9COztZQUUxRixJQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7O2dCQUV2RixLQUFvQixJQUFBLG1CQUFBLGlCQUFBLGNBQWMsQ0FBQSw4Q0FBQSwwRUFBRTtvQkFBL0IsSUFBTSxLQUFLLDJCQUFBO29CQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLHNCQUFVLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssc0JBQVUsQ0FBQyxRQUFRLENBQUM7d0JBQzVFLEtBQUssQ0FBQyxtQkFBbUIsS0FBSyxJQUFJLEVBQUU7d0JBQ3RDLEtBQUssQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUNyRCxVQUFBLElBQUksSUFBSSxPQUFBLHlCQUF5QixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLEVBQWpELENBQWlELENBQUMsQ0FBQztxQkFDaEU7b0JBQ0QsSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLHNCQUFVLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsS0FBSyxJQUFJLEVBQUU7d0JBQzVFLEtBQUssQ0FBQyxrQkFBa0I7NEJBQ3BCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSx5QkFBeUIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUFqRCxDQUFpRCxDQUFDLENBQUM7cUJBQzdGO2lCQUNGOzs7Ozs7Ozs7UUFDSCxDQUFDO1FBRUQsK0NBQWdCLEdBQWhCLFVBQWlCLEtBQXVCO1lBQ3RDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBRUQsd0NBQVMsR0FBVCxVQUFVLEtBQXVCO1lBQy9CLE9BQU8sc0JBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLG9DQUFzQixDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDN0YsQ0FBQztRQUNILDJCQUFDO0lBQUQsQ0FBQyxBQTlCRCxJQThCQztJQTlCWSxvREFBb0I7SUFnQ2pDOzs7T0FHRztJQUNILFNBQVMseUJBQXlCLENBQzlCLFVBQXlCLEVBQUUsTUFBZSxFQUFFLFNBQW9COztRQUNsRSxJQUFNLEtBQUssd0JBQU8sVUFBVSxDQUFDLENBQUM7UUFFOUIsSUFBTSxLQUFLLEdBQWdDLENBQUM7Z0JBQzFDLFdBQVcsRUFBRSxpQkFBZSxTQUFTLENBQUMsSUFBSSxrREFBK0M7Z0JBQ3pGLFFBQVEsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsT0FBTztnQkFDdkMsSUFBSSxFQUFFLENBQUM7YUFDUixDQUFDLENBQUM7UUFFSCxJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQzNCLElBQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQUEsR0FBRyxJQUFJLE9BQUEsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFiLENBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqRSxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUNULFdBQVcsRUFBRSxNQUFJLFNBQVMsQ0FBQyxJQUFJLFNBQUksSUFBSSxNQUFHO2dCQUMxQyxRQUFRLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLE9BQU87Z0JBQ3ZDLElBQUksRUFBRSxDQUFDO2FBQ1IsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLE9BQU8sS0FBSyxDQUFDLFdBQVcsS0FBSyxRQUFRLEVBQUU7WUFDekMsS0FBSyxDQUFDLFdBQVcsR0FBRztnQkFDbEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO2dCQUM5QixRQUFRLEVBQUUsVUFBVSxDQUFDLFFBQVE7Z0JBQzdCLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtnQkFDckIsSUFBSSxFQUFFLEtBQUs7YUFDWixDQUFDO1NBQ0g7YUFBTTtZQUNMLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO2dCQUN4QyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7YUFDaEM7aUJBQU07Z0JBQ0wsQ0FBQSxLQUFBLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFBLENBQUMsSUFBSSxvREFBSSxLQUFLLElBQUU7YUFDdkM7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7YWJzb2x1dGVGcm9tU291cmNlRmlsZSwgQWJzb2x1dGVGc1BhdGh9IGZyb20gJy4uLy4uLy4uL3NyYy9uZ3RzYy9maWxlX3N5c3RlbSc7XG5pbXBvcnQge01ldGFkYXRhUmVhZGVyfSBmcm9tICcuLi8uLi8uLi9zcmMvbmd0c2MvbWV0YWRhdGEnO1xuaW1wb3J0IHtQYXJ0aWFsRXZhbHVhdG9yfSBmcm9tICcuLi8uLi8uLi9zcmMvbmd0c2MvcGFydGlhbF9ldmFsdWF0b3InO1xuaW1wb3J0IHtDbGFzc0RlY2xhcmF0aW9uLCBEZWNvcmF0b3J9IGZyb20gJy4uLy4uLy4uL3NyYy9uZ3RzYy9yZWZsZWN0aW9uJztcbmltcG9ydCB7SGFuZGxlckZsYWdzLCBUcmFpdFN0YXRlfSBmcm9tICcuLi8uLi8uLi9zcmMvbmd0c2MvdHJhbnNmb3JtJztcbmltcG9ydCB7TmdjY1JlZmxlY3Rpb25Ib3N0fSBmcm9tICcuLi9ob3N0L25nY2NfaG9zdCc7XG5pbXBvcnQge01pZ3JhdGlvbkhvc3R9IGZyb20gJy4uL21pZ3JhdGlvbnMvbWlncmF0aW9uJztcblxuaW1wb3J0IHtOZ2NjVHJhaXRDb21waWxlcn0gZnJvbSAnLi9uZ2NjX3RyYWl0X2NvbXBpbGVyJztcbmltcG9ydCB7aXNXaXRoaW5QYWNrYWdlfSBmcm9tICcuL3V0aWwnO1xuXG4vKipcbiAqIFRoZSBzdGFuZGFyZCBpbXBsZW1lbnRhdGlvbiBvZiBgTWlncmF0aW9uSG9zdGAsIHdoaWNoIGlzIGNyZWF0ZWQgYnkgdGhlIGBEZWNvcmF0aW9uQW5hbHl6ZXJgLlxuICovXG5leHBvcnQgY2xhc3MgRGVmYXVsdE1pZ3JhdGlvbkhvc3QgaW1wbGVtZW50cyBNaWdyYXRpb25Ib3N0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgICByZWFkb25seSByZWZsZWN0aW9uSG9zdDogTmdjY1JlZmxlY3Rpb25Ib3N0LCByZWFkb25seSBtZXRhZGF0YTogTWV0YWRhdGFSZWFkZXIsXG4gICAgICByZWFkb25seSBldmFsdWF0b3I6IFBhcnRpYWxFdmFsdWF0b3IsIHByaXZhdGUgY29tcGlsZXI6IE5nY2NUcmFpdENvbXBpbGVyLFxuICAgICAgcHJpdmF0ZSBlbnRyeVBvaW50UGF0aDogQWJzb2x1dGVGc1BhdGgpIHt9XG5cbiAgaW5qZWN0U3ludGhldGljRGVjb3JhdG9yKGNsYXp6OiBDbGFzc0RlY2xhcmF0aW9uLCBkZWNvcmF0b3I6IERlY29yYXRvciwgZmxhZ3M/OiBIYW5kbGVyRmxhZ3MpOlxuICAgICAgdm9pZCB7XG4gICAgY29uc3QgbWlncmF0ZWRUcmFpdHMgPSB0aGlzLmNvbXBpbGVyLmluamVjdFN5bnRoZXRpY0RlY29yYXRvcihjbGF6eiwgZGVjb3JhdG9yLCBmbGFncyk7XG5cbiAgICBmb3IgKGNvbnN0IHRyYWl0IG9mIG1pZ3JhdGVkVHJhaXRzKSB7XG4gICAgICBpZiAoKHRyYWl0LnN0YXRlID09PSBUcmFpdFN0YXRlLkFuYWx5emVkIHx8IHRyYWl0LnN0YXRlID09PSBUcmFpdFN0YXRlLlJlc29sdmVkKSAmJlxuICAgICAgICAgIHRyYWl0LmFuYWx5c2lzRGlhZ25vc3RpY3MgIT09IG51bGwpIHtcbiAgICAgICAgdHJhaXQuYW5hbHlzaXNEaWFnbm9zdGljcyA9IHRyYWl0LmFuYWx5c2lzRGlhZ25vc3RpY3MubWFwKFxuICAgICAgICAgICAgZGlhZyA9PiBjcmVhdGVNaWdyYXRpb25EaWFnbm9zdGljKGRpYWcsIGNsYXp6LCBkZWNvcmF0b3IpKTtcbiAgICAgIH1cbiAgICAgIGlmICh0cmFpdC5zdGF0ZSA9PT0gVHJhaXRTdGF0ZS5SZXNvbHZlZCAmJiB0cmFpdC5yZXNvbHZlRGlhZ25vc3RpY3MgIT09IG51bGwpIHtcbiAgICAgICAgdHJhaXQucmVzb2x2ZURpYWdub3N0aWNzID1cbiAgICAgICAgICAgIHRyYWl0LnJlc29sdmVEaWFnbm9zdGljcy5tYXAoZGlhZyA9PiBjcmVhdGVNaWdyYXRpb25EaWFnbm9zdGljKGRpYWcsIGNsYXp6LCBkZWNvcmF0b3IpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRBbGxEZWNvcmF0b3JzKGNsYXp6OiBDbGFzc0RlY2xhcmF0aW9uKTogRGVjb3JhdG9yW118bnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuY29tcGlsZXIuZ2V0QWxsRGVjb3JhdG9ycyhjbGF6eik7XG4gIH1cblxuICBpc0luU2NvcGUoY2xheno6IENsYXNzRGVjbGFyYXRpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNXaXRoaW5QYWNrYWdlKHRoaXMuZW50cnlQb2ludFBhdGgsIGFic29sdXRlRnJvbVNvdXJjZUZpbGUoY2xhenouZ2V0U291cmNlRmlsZSgpKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgZGlhZ25vc3RpYyBmcm9tIGFub3RoZXIgb25lLCBjb250YWluaW5nIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHN5bnRoZXRpY1xuICogZGVjb3JhdG9yLlxuICovXG5mdW5jdGlvbiBjcmVhdGVNaWdyYXRpb25EaWFnbm9zdGljKFxuICAgIGRpYWdub3N0aWM6IHRzLkRpYWdub3N0aWMsIHNvdXJjZTogdHMuTm9kZSwgZGVjb3JhdG9yOiBEZWNvcmF0b3IpOiB0cy5EaWFnbm9zdGljIHtcbiAgY29uc3QgY2xvbmUgPSB7Li4uZGlhZ25vc3RpY307XG5cbiAgY29uc3QgY2hhaW46IHRzLkRpYWdub3N0aWNNZXNzYWdlQ2hhaW5bXSA9IFt7XG4gICAgbWVzc2FnZVRleHQ6IGBPY2N1cnMgZm9yIEAke2RlY29yYXRvci5uYW1lfSBkZWNvcmF0b3IgaW5zZXJ0ZWQgYnkgYW4gYXV0b21hdGljIG1pZ3JhdGlvbmAsXG4gICAgY2F0ZWdvcnk6IHRzLkRpYWdub3N0aWNDYXRlZ29yeS5NZXNzYWdlLFxuICAgIGNvZGU6IDAsXG4gIH1dO1xuXG4gIGlmIChkZWNvcmF0b3IuYXJncyAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGFyZ3MgPSBkZWNvcmF0b3IuYXJncy5tYXAoYXJnID0+IGFyZy5nZXRUZXh0KCkpLmpvaW4oJywgJyk7XG4gICAgY2hhaW4ucHVzaCh7XG4gICAgICBtZXNzYWdlVGV4dDogYEAke2RlY29yYXRvci5uYW1lfSgke2FyZ3N9KWAsXG4gICAgICBjYXRlZ29yeTogdHMuRGlhZ25vc3RpY0NhdGVnb3J5Lk1lc3NhZ2UsXG4gICAgICBjb2RlOiAwLFxuICAgIH0pO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBjbG9uZS5tZXNzYWdlVGV4dCA9PT0gJ3N0cmluZycpIHtcbiAgICBjbG9uZS5tZXNzYWdlVGV4dCA9IHtcbiAgICAgIG1lc3NhZ2VUZXh0OiBjbG9uZS5tZXNzYWdlVGV4dCxcbiAgICAgIGNhdGVnb3J5OiBkaWFnbm9zdGljLmNhdGVnb3J5LFxuICAgICAgY29kZTogZGlhZ25vc3RpYy5jb2RlLFxuICAgICAgbmV4dDogY2hhaW4sXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBpZiAoY2xvbmUubWVzc2FnZVRleHQubmV4dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjbG9uZS5tZXNzYWdlVGV4dC5uZXh0ID0gY2hhaW47XG4gICAgfSBlbHNlIHtcbiAgICAgIGNsb25lLm1lc3NhZ2VUZXh0Lm5leHQucHVzaCguLi5jaGFpbik7XG4gICAgfVxuICB9XG4gIHJldHVybiBjbG9uZTtcbn1cbiJdfQ==
@@ -1,197 +0,0 @@
1
- (function (factory) {
2
- if (typeof module === "object" && typeof module.exports === "object") {
3
- var v = factory(require, exports);
4
- if (v !== undefined) module.exports = v;
5
- }
6
- else if (typeof define === "function" && define.amd) {
7
- define("@angular/compiler-cli/ngcc/src/analysis/module_with_providers_analyzer", ["require", "exports", "typescript", "@angular/compiler-cli/src/ngtsc/imports", "@angular/compiler-cli/src/ngtsc/partial_evaluator", "@angular/compiler-cli/src/ngtsc/reflection", "@angular/compiler-cli/ngcc/src/utils"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ModuleWithProvidersAnalyzer = exports.ModuleWithProvidersAnalyses = void 0;
13
- /**
14
- * @license
15
- * Copyright Google LLC All Rights Reserved.
16
- *
17
- * Use of this source code is governed by an MIT-style license that can be
18
- * found in the LICENSE file at https://angular.io/license
19
- */
20
- var ts = require("typescript");
21
- var imports_1 = require("@angular/compiler-cli/src/ngtsc/imports");
22
- var partial_evaluator_1 = require("@angular/compiler-cli/src/ngtsc/partial_evaluator");
23
- var reflection_1 = require("@angular/compiler-cli/src/ngtsc/reflection");
24
- var utils_1 = require("@angular/compiler-cli/ngcc/src/utils");
25
- exports.ModuleWithProvidersAnalyses = Map;
26
- var ModuleWithProvidersAnalyzer = /** @class */ (function () {
27
- function ModuleWithProvidersAnalyzer(host, typeChecker, referencesRegistry, processDts) {
28
- this.host = host;
29
- this.typeChecker = typeChecker;
30
- this.referencesRegistry = referencesRegistry;
31
- this.processDts = processDts;
32
- this.evaluator = new partial_evaluator_1.PartialEvaluator(this.host, this.typeChecker, null);
33
- }
34
- ModuleWithProvidersAnalyzer.prototype.analyzeProgram = function (program) {
35
- var _this = this;
36
- var analyses = new exports.ModuleWithProvidersAnalyses();
37
- var rootFiles = this.getRootFiles(program);
38
- rootFiles.forEach(function (f) {
39
- var fns = _this.getModuleWithProvidersFunctions(f);
40
- fns && fns.forEach(function (fn) {
41
- if (fn.ngModule.bestGuessOwningModule === null) {
42
- // Record the usage of an internal module as it needs to become an exported symbol
43
- _this.referencesRegistry.add(fn.ngModule.node, new imports_1.Reference(fn.ngModule.node));
44
- }
45
- // Only when processing the dts files do we need to determine which declaration to update.
46
- if (_this.processDts) {
47
- var dtsFn = _this.getDtsModuleWithProvidersFunction(fn);
48
- var dtsFnType = dtsFn.declaration.type;
49
- var typeParam = dtsFnType && ts.isTypeReferenceNode(dtsFnType) &&
50
- dtsFnType.typeArguments && dtsFnType.typeArguments[0] ||
51
- null;
52
- if (!typeParam || isAnyKeyword(typeParam)) {
53
- var dtsFile = dtsFn.declaration.getSourceFile();
54
- var analysis = analyses.has(dtsFile) ? analyses.get(dtsFile) : [];
55
- analysis.push(dtsFn);
56
- analyses.set(dtsFile, analysis);
57
- }
58
- }
59
- });
60
- });
61
- return analyses;
62
- };
63
- ModuleWithProvidersAnalyzer.prototype.getRootFiles = function (program) {
64
- return program.getRootFileNames().map(function (f) { return program.getSourceFile(f); }).filter(utils_1.isDefined);
65
- };
66
- ModuleWithProvidersAnalyzer.prototype.getModuleWithProvidersFunctions = function (f) {
67
- var _this = this;
68
- var exports = this.host.getExportsOfModule(f);
69
- if (!exports)
70
- return [];
71
- var infos = [];
72
- exports.forEach(function (declaration) {
73
- if (declaration.node === null) {
74
- return;
75
- }
76
- if (_this.host.isClass(declaration.node)) {
77
- _this.host.getMembersOfClass(declaration.node).forEach(function (member) {
78
- if (member.isStatic) {
79
- var info = _this.parseForModuleWithProviders(member.name, member.node, member.implementation, declaration.node);
80
- if (info) {
81
- infos.push(info);
82
- }
83
- }
84
- });
85
- }
86
- else {
87
- if (utils_1.hasNameIdentifier(declaration.node)) {
88
- var info = _this.parseForModuleWithProviders(declaration.node.name.text, declaration.node);
89
- if (info) {
90
- infos.push(info);
91
- }
92
- }
93
- }
94
- });
95
- return infos;
96
- };
97
- /**
98
- * Parse a function/method node (or its implementation), to see if it returns a
99
- * `ModuleWithProviders` object.
100
- * @param name The name of the function.
101
- * @param node the node to check - this could be a function, a method or a variable declaration.
102
- * @param implementation the actual function expression if `node` is a variable declaration.
103
- * @param container the class that contains the function, if it is a method.
104
- * @returns info about the function if it does return a `ModuleWithProviders` object; `null`
105
- * otherwise.
106
- */
107
- ModuleWithProvidersAnalyzer.prototype.parseForModuleWithProviders = function (name, node, implementation, container) {
108
- if (implementation === void 0) { implementation = node; }
109
- if (container === void 0) { container = null; }
110
- if (implementation === null ||
111
- (!ts.isFunctionDeclaration(implementation) && !ts.isMethodDeclaration(implementation) &&
112
- !ts.isFunctionExpression(implementation))) {
113
- return null;
114
- }
115
- var declaration = implementation;
116
- var definition = this.host.getDefinitionOfFunction(declaration);
117
- if (definition === null) {
118
- return null;
119
- }
120
- var body = definition.body;
121
- if (body === null || body.length === 0) {
122
- return null;
123
- }
124
- // Get hold of the return statement expression for the function
125
- var lastStatement = body[body.length - 1];
126
- if (!ts.isReturnStatement(lastStatement) || lastStatement.expression === undefined) {
127
- return null;
128
- }
129
- // Evaluate this expression and extract the `ngModule` reference
130
- var result = this.evaluator.evaluate(lastStatement.expression);
131
- if (!(result instanceof Map) || !result.has('ngModule')) {
132
- return null;
133
- }
134
- var ngModuleRef = result.get('ngModule');
135
- if (!(ngModuleRef instanceof imports_1.Reference)) {
136
- return null;
137
- }
138
- if (!reflection_1.isNamedClassDeclaration(ngModuleRef.node) &&
139
- !reflection_1.isNamedVariableDeclaration(ngModuleRef.node)) {
140
- throw new Error("The identity given by " + ngModuleRef.debugName + " referenced in \"" + declaration.getText() + "\" doesn't appear to be a \"class\" declaration.");
141
- }
142
- var ngModule = ngModuleRef;
143
- return { name: name, ngModule: ngModule, declaration: declaration, container: container };
144
- };
145
- ModuleWithProvidersAnalyzer.prototype.getDtsModuleWithProvidersFunction = function (fn) {
146
- var dtsFn = null;
147
- var containerClass = fn.container && this.host.getClassSymbol(fn.container);
148
- if (containerClass) {
149
- var dtsClass = this.host.getDtsDeclaration(containerClass.declaration.valueDeclaration);
150
- // Get the declaration of the matching static method
151
- dtsFn = dtsClass && ts.isClassDeclaration(dtsClass) ?
152
- dtsClass.members.find(function (member) { return ts.isMethodDeclaration(member) && ts.isIdentifier(member.name) &&
153
- member.name.text === fn.name; }) :
154
- null;
155
- }
156
- else {
157
- dtsFn = this.host.getDtsDeclaration(fn.declaration);
158
- }
159
- if (!dtsFn) {
160
- throw new Error("Matching type declaration for " + fn.declaration.getText() + " is missing");
161
- }
162
- if (!isFunctionOrMethod(dtsFn)) {
163
- throw new Error("Matching type declaration for " + fn.declaration.getText() + " is not a function: " + dtsFn.getText());
164
- }
165
- var container = containerClass ? containerClass.declaration.valueDeclaration : null;
166
- var ngModule = this.resolveNgModuleReference(fn);
167
- return { name: fn.name, container: container, declaration: dtsFn, ngModule: ngModule };
168
- };
169
- ModuleWithProvidersAnalyzer.prototype.resolveNgModuleReference = function (fn) {
170
- var ngModule = fn.ngModule;
171
- // For external module references, use the declaration as is.
172
- if (ngModule.bestGuessOwningModule !== null) {
173
- return ngModule;
174
- }
175
- // For internal (non-library) module references, redirect the module's value declaration
176
- // to its type declaration.
177
- var dtsNgModule = this.host.getDtsDeclaration(ngModule.node);
178
- if (!dtsNgModule) {
179
- throw new Error("No typings declaration can be found for the referenced NgModule class in " + fn.declaration.getText() + ".");
180
- }
181
- if (!reflection_1.isNamedClassDeclaration(dtsNgModule)) {
182
- throw new Error("The referenced NgModule in " + fn.declaration
183
- .getText() + " is not a named class declaration in the typings program; instead we get " + dtsNgModule.getText());
184
- }
185
- return new imports_1.Reference(dtsNgModule, null);
186
- };
187
- return ModuleWithProvidersAnalyzer;
188
- }());
189
- exports.ModuleWithProvidersAnalyzer = ModuleWithProvidersAnalyzer;
190
- function isFunctionOrMethod(declaration) {
191
- return ts.isFunctionDeclaration(declaration) || ts.isMethodDeclaration(declaration);
192
- }
193
- function isAnyKeyword(typeParam) {
194
- return typeParam.kind === ts.SyntaxKind.AnyKeyword;
195
- }
196
- });
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlX3dpdGhfcHJvdmlkZXJzX2FuYWx5emVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL25nY2Mvc3JjL2FuYWx5c2lzL21vZHVsZV93aXRoX3Byb3ZpZGVyc19hbmFseXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFBQTs7Ozs7O09BTUc7SUFDSCwrQkFBaUM7SUFHakMsbUVBQXFEO0lBQ3JELHVGQUFzRTtJQUN0RSx5RUFBcUk7SUFFckksOERBQXNEO0lBMkJ6QyxRQUFBLDJCQUEyQixHQUFHLEdBQUcsQ0FBQztJQUUvQztRQUdFLHFDQUNZLElBQXdCLEVBQVUsV0FBMkIsRUFDN0Qsa0JBQXNDLEVBQVUsVUFBbUI7WUFEbkUsU0FBSSxHQUFKLElBQUksQ0FBb0I7WUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7WUFDN0QsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtZQUFVLGVBQVUsR0FBVixVQUFVLENBQVM7WUFKdkUsY0FBUyxHQUFHLElBQUksb0NBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBSU0sQ0FBQztRQUVuRixvREFBYyxHQUFkLFVBQWUsT0FBbUI7WUFBbEMsaUJBNEJDO1lBM0JDLElBQU0sUUFBUSxHQUFnQyxJQUFJLG1DQUEyQixFQUFFLENBQUM7WUFDaEYsSUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3QyxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQUEsQ0FBQztnQkFDakIsSUFBTSxHQUFHLEdBQUcsS0FBSSxDQUFDLCtCQUErQixDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwRCxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFBLEVBQUU7b0JBQ25CLElBQUksRUFBRSxD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QUFJLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQsU0FBUyxZQUFZLENBQUMsU0FBc0I7UUFDMUMsT0FBTyxTQUFTLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO0lBQ3JELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge1JlZmVyZW5jZXNSZWdpc3RyeX0gZnJvbSAnLi4vLi4vLi4vc3JjL25ndHNjL2Fubm90YXRpb25zJztcbmltcG9ydCB7UmVmZXJlbmNlfSBmcm9tICcuLi8uLi8uLi9zcmMvbmd0c2MvaW1wb3J0cyc7XG5pbXBvcnQge1BhcnRpYWxFdmFsdWF0b3J9IGZyb20gJy4uLy4uLy4uL3NyYy9uZ3RzYy9wYXJ0aWFsX2V2YWx1YXRvcic7XG5pbXBvcnQge0NsYXNzRGVjbGFyYXRpb24sIERlY2xhcmF0aW9uTm9kZSwgaXNOYW1lZENsYXNzRGVjbGFyYXRpb24sIGlzTmFtZWRWYXJpYWJsZURlY2xhcmF0aW9ufSBmcm9tICcuLi8uLi8uLi9zcmMvbmd0c2MvcmVmbGVjdGlvbic7XG5pbXBvcnQge05nY2NSZWZsZWN0aW9uSG9zdH0gZnJvbSAnLi4vaG9zdC9uZ2NjX2hvc3QnO1xuaW1wb3J0IHtoYXNOYW1lSWRlbnRpZmllciwgaXNEZWZpbmVkfSBmcm9tICcuLi91dGlscyc7XG5cbi8qKlxuICogQSBzdHJ1Y3R1cmUgcmV0dXJuZWQgZnJvbSBgZ2V0TW9kdWxlV2l0aFByb3ZpZGVyc0Z1bmN0aW9ucygpYCB0aGF0IGRlc2NyaWJlcyBmdW5jdGlvbnNcbiAqIHRoYXQgcmV0dXJuIE1vZHVsZVdpdGhQcm92aWRlcnMgb2JqZWN0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb2R1bGVXaXRoUHJvdmlkZXJzSW5mbyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZGVjbGFyZWQgZnVuY3Rpb24uXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZGVjbGFyYXRpb24gb2YgdGhlIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgYE1vZHVsZVdpdGhQcm92aWRlcnNgIG9iamVjdC5cbiAgICovXG4gIGRlY2xhcmF0aW9uOiB0cy5TaWduYXR1cmVEZWNsYXJhdGlvbjtcbiAgLyoqXG4gICAqIERlY2xhcmF0aW9uIG9mIHRoZSBjb250YWluaW5nIGNsYXNzIChpZiB0aGlzIGlzIGEgbWV0aG9kKVxuICAgKi9cbiAgY29udGFpbmVyOiBEZWNsYXJhdGlvbk5vZGV8bnVsbDtcbiAgLyoqXG4gICAqIFRoZSBkZWNsYXJhdGlvbiBvZiB0aGUgY2xhc3MgdGhhdCB0aGUgYG5nTW9kdWxlYCBwcm9wZXJ0eSBvbiB0aGUgYE1vZHVsZVdpdGhQcm92aWRlcnNgIG9iamVjdFxuICAgKiByZWZlcnMgdG8uXG4gICAqL1xuICBuZ01vZHVsZTogUmVmZXJlbmNlPENsYXNzRGVjbGFyYXRpb24+O1xufVxuXG5leHBvcnQgdHlwZSBNb2R1bGVXaXRoUHJvdmlkZXJzQW5hbHlzZXMgPSBNYXA8dHMuU291cmNlRmlsZSwgTW9kdWxlV2l0aFByb3ZpZGVyc0luZm9bXT47XG5leHBvcnQgY29uc3QgTW9kdWxlV2l0aFByb3ZpZGVyc0FuYWx5c2VzID0gTWFwO1xuXG5leHBvcnQgY2xhc3MgTW9kdWxlV2l0aFByb3ZpZGVyc0FuYWx5emVyIHtcbiAgcHJpdmF0ZSBldmFsdWF0b3IgPSBuZXcgUGFydGlhbEV2YWx1YXRvcih0aGlzLmhvc3QsIHRoaXMudHlwZUNoZWNrZXIsIG51bGwpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBob3N0OiBOZ2NjUmVmbGVjdGlvbkhvc3QsIHByaXZhdGUgdHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyLFxuICAgICAgcHJpdmF0ZSByZWZlcmVuY2VzUmVnaXN0cnk6IFJlZmVyZW5jZXNSZWdpc3RyeSwgcHJpdmF0ZSBwcm9jZXNzRHRzOiBib29sZWFuKSB7fVxuXG4gIGFuYWx5emVQcm9ncmFtKHByb2dyYW06IHRzLlByb2dyYW0pOiBNb2R1bGVXaXRoUHJvdmlkZXJzQW5hbHlzZXMge1xuICAgIGNvbnN0IGFuYWx5c2VzOiBNb2R1bGVXaXRoUHJvdmlkZXJzQW5hbHlzZXMgPSBuZXcgTW9kdWxlV2l0aFByb3ZpZGVyc0FuYWx5c2VzKCk7XG4gICAgY29uc3Qgcm9vdEZpbGVzID0gdGhpcy5nZXRSb290RmlsZXMocHJvZ3JhbSk7XG4gICAgcm9vdEZpbGVzLmZvckVhY2goZiA9PiB7XG4gICAgICBjb25zdCBmbnMgPSB0aGlzLmdldE1vZHVsZVdpdGhQcm92aWRlcnNGdW5jdGlvbnMoZik7XG4gICAgICBmbnMgJiYgZm5zLmZvckVhY2goZm4gPT4ge1xuICAgICAgICBpZiAoZm4ubmdNb2R1bGUuYmVzdEd1ZXNzT3duaW5nTW9kdWxlID09PSBudWxsKSB7XG4gICAgICAgICAgLy8gUmVjb3JkIHRoZSB1c2FnZSBvZiBhbiBpbnRlcm5hbCBtb2R1bGUgYXMgaXQgbmVlZHMgdG8gYmVjb21lIGFuIGV4cG9ydGVkIHN5bWJvbFxuICAgICAgICAgIHRoaXMucmVmZXJlbmNlc1JlZ2lzdHJ5LmFkZChmbi5uZ01vZHVsZS5ub2RlLCBuZXcgUmVmZXJlbmNlKGZuLm5nTW9kdWxlLm5vZGUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9ubHkgd2hlbiBwcm9jZXNzaW5nIHRoZSBkdHMgZmlsZXMgZG8gd2UgbmVlZCB0byBkZXRlcm1pbmUgd2hpY2ggZGVjbGFyYXRpb24gdG8gdXBkYXRlLlxuICAgICAgICBpZiAodGhpcy5wcm9jZXNzRHRzKSB7XG4gICAgICAgICAgY29uc3QgZHRzRm4gPSB0aGlzLmdldER0c01vZHVsZVdpdGhQcm92aWRlcnNGdW5jdGlvbihmbik7XG4gICAgICAgICAgY29uc3QgZHRzRm5UeXBlID0gZHRzRm4uZGVjbGFyYXRpb24udHlwZTtcbiAgICAgICAgICBjb25zdCB0eXBlUGFyYW0gPSBkdHNGblR5cGUgJiYgdHMuaXNUeXBlUmVmZXJlbmNlTm9kZShkdHNGblR5cGUpICYmXG4gICAgICAgICAgICAgICAgICBkdHNGblR5cGUudHlwZUFyZ3VtZW50cyAmJiBkdHNGblR5cGUudHlwZUFyZ3VtZW50c1swXSB8fFxuICAgICAgICAgICAgICBudWxsO1xuICAgICAgICAgIGlmICghdHlwZVBhcmFtIHx8IGlzQW55S2V5d29yZCh0eXBlUGFyYW0pKSB7XG4gICAgICAgICAgICBjb25zdCBkdHNGaWxlID0gZHRzRm4uZGVjbGFyYXRpb24uZ2V0U291cmNlRmlsZSgpO1xuICAgICAgICAgICAgY29uc3QgYW5hbHlzaXMgPSBhbmFseXNlcy5oYXMoZHRzRmlsZSkgPyBhbmFseXNlcy5nZXQoZHRzRmlsZSkhIDogW107XG4gICAgICAgICAgICBhbmFseXNpcy5wdXNoKGR0c0ZuKTtcbiAgICAgICAgICAgIGFuYWx5c2VzLnNldChkdHNGaWxlLCBhbmFseXNpcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gYW5hbHlzZXM7XG4gIH1cblxuICBwcml2YXRlIGdldFJvb3RGaWxlcyhwcm9ncmFtOiB0cy5Qcm9ncmFtKTogdHMuU291cmNlRmlsZVtdIHtcbiAgICByZXR1cm4gcHJvZ3JhbS5nZXRSb290RmlsZU5hbWVzKCkubWFwKGYgPT4gcHJvZ3JhbS5nZXRTb3VyY2VGaWxlKGYpKS5maWx0ZXIoaXNEZWZpbmVkKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TW9kdWxlV2l0aFByb3ZpZGVyc0Z1bmN0aW9ucyhmOiB0cy5Tb3VyY2VGaWxlKTogTW9kdWxlV2l0aFByb3ZpZGVyc0luZm9bXSB7XG4gICAgY29uc3QgZXhwb3J0cyA9IHRoaXMuaG9zdC5nZXRFeHBvcnRzT2ZNb2R1bGUoZik7XG4gICAgaWYgKCFleHBvcnRzKSByZXR1cm4gW107XG4gICAgY29uc3QgaW5mb3M6IE1vZHVsZVdpdGhQcm92aWRlcnNJbmZvW10gPSBbXTtcbiAgICBleHBvcnRzLmZvckVhY2goKGRlY2xhcmF0aW9uKSA9PiB7XG4gICAgICBpZiAoZGVjbGFyYXRpb24ubm9kZSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5ob3N0LmlzQ2xhc3MoZGVjbGFyYXRpb24ubm9kZSkpIHtcbiAgICAgICAgdGhpcy5ob3N0LmdldE1lbWJlcnNPZkNsYXNzKGRlY2xhcmF0aW9uLm5vZGUpLmZvckVhY2gobWVtYmVyID0+IHtcbiAgICAgICAgICBpZiAobWVtYmVyLmlzU3RhdGljKSB7XG4gICAgICAgICAgICBjb25zdCBpbmZvID0gdGhpcy5wYXJzZUZvck1vZHVsZVdpdGhQcm92aWRlcnMoXG4gICAgICAgICAgICAgICAgbWVtYmVyLm5hbWUsIG1lbWJlci5ub2RlLCBtZW1iZXIuaW1wbGVtZW50YXRpb24sIGRlY2xhcmF0aW9uLm5vZGUpO1xuICAgICAgICAgICAgaWYgKGluZm8pIHtcbiAgICAgICAgICAgICAgaW5mb3MucHVzaChpbmZvKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGhhc05hbWVJZGVudGlmaWVyKGRlY2xhcmF0aW9uLm5vZGUpKSB7XG4gICAgICAgICAgY29uc3QgaW5mbyA9XG4gICAgICAgICAgICAgIHRoaXMucGFyc2VGb3JNb2R1bGVXaXRoUHJvdmlkZXJzKGRlY2xhcmF0aW9uLm5vZGUubmFtZS50ZXh0LCBkZWNsYXJhdGlvbi5ub2RlKTtcbiAgICAgICAgICBpZiAoaW5mbykge1xuICAgICAgICAgICAgaW5mb3MucHVzaChpbmZvKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gaW5mb3M7XG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgYSBmdW5jdGlvbi9tZXRob2Qgbm9kZSAob3IgaXRzIGltcGxlbWVudGF0aW9uKSwgdG8gc2VlIGlmIGl0IHJldHVybnMgYVxuICAgKiBgTW9kdWxlV2l0aFByb3ZpZGVyc2Agb2JqZWN0LlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24uXG4gICAqIEBwYXJhbSBub2RlIHRoZSBub2RlIHRvIGNoZWNrIC0gdGhpcyBjb3VsZCBiZSBhIGZ1bmN0aW9uLCBhIG1ldGhvZCBvciBhIHZhcmlhYmxlIGRlY2xhcmF0aW9uLlxuICAgKiBAcGFyYW0gaW1wbGVtZW50YXRpb24gdGhlIGFjdHVhbCBmdW5jdGlvbiBleHByZXNzaW9uIGlmIGBub2RlYCBpcyBhIHZhcmlhYmxlIGRlY2xhcmF0aW9uLlxuICAgKiBAcGFyYW0gY29udGFpbmVyIHRoZSBjbGFzcyB0aGF0IGNvbnRhaW5zIHRoZSBmdW5jdGlvbiwgaWYgaXQgaXMgYSBtZXRob2QuXG4gICAqIEByZXR1cm5zIGluZm8gYWJvdXQgdGhlIGZ1bmN0aW9uIGlmIGl0IGRvZXMgcmV0dXJuIGEgYE1vZHVsZVdpdGhQcm92aWRlcnNgIG9iamVjdDsgYG51bGxgXG4gICAqIG90aGVyd2lzZS5cbiAgICovXG4gIHByaXZhdGUgcGFyc2VGb3JNb2R1bGVXaXRoUHJvdmlkZXJzKFxuICAgICAgbmFtZTogc3RyaW5nLCBub2RlOiB0cy5Ob2RlfG51bGwsIGltcGxlbWVudGF0aW9uOiB0cy5Ob2RlfG51bGwgPSBub2RlLFxuICAgICAgY29udGFpbmVyOiBEZWNsYXJhdGlvbk5vZGV8bnVsbCA9IG51bGwpOiBNb2R1bGVXaXRoUHJvdmlkZXJzSW5mb3xudWxsIHtcbiAgICBpZiAoaW1wbGVtZW50YXRpb24gPT09IG51bGwgfHxcbiAgICAgICAgKCF0cy5pc0Z1bmN0aW9uRGVjbGFyYXRpb24oaW1wbGVtZW50YXRpb24pICYmICF0cy5pc01ldGhvZERlY2xhcmF0aW9uKGltcGxlbWVudGF0aW9uKSAmJlxuICAgICAgICAgIXRzLmlzRnVuY3Rpb25FeHByZXNzaW9uKGltcGxlbWVudGF0aW9uKSkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBkZWNsYXJhdGlvbiA9IGltcGxlbWVudGF0aW9uO1xuICAgIGNvbnN0IGRlZmluaXRpb24gPSB0aGlzLmhvc3QuZ2V0RGVmaW5pdGlvbk9mRnVuY3Rpb24oZGVjbGFyYXRpb24pO1xuICAgIGlmIChkZWZpbml0aW9uID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBib2R5ID0gZGVmaW5pdGlvbi5ib2R5O1xuICAgIGlmIChib2R5ID09PSBudWxsIHx8IGJvZHkubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBHZXQgaG9sZCBvZiB0aGUgcmV0dXJuIHN0YXRlbWVudCBleHByZXNzaW9uIGZvciB0aGUgZnVuY3Rpb25cbiAgICBjb25zdCBsYXN0U3RhdGVtZW50ID0gYm9keVtib2R5Lmxlbmd0aCAtIDFdO1xuICAgIGlmICghdHMuaXNSZXR1cm5TdGF0ZW1lbnQobGFzdFN0YXRlbWVudCkgfHwgbGFzdFN0YXRlbWVudC5leHByZXNzaW9uID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIEV2YWx1YXRlIHRoaXMgZXhwcmVzc2lvbiBhbmQgZXh0cmFjdCB0aGUgYG5nTW9kdWxlYCByZWZlcmVuY2VcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLmV2YWx1YXRvci5ldmFsdWF0ZShsYXN0U3RhdGVtZW50LmV4cHJlc3Npb24pO1xuICAgIGlmICghKHJlc3VsdCBpbnN0YW5jZW9mIE1hcCkgfHwgIXJlc3VsdC5oYXMoJ25nTW9kdWxlJykpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IG5nTW9kdWxlUmVmID0gcmVzdWx0LmdldCgnbmdNb2R1bGUnKSE7XG4gICAgaWYgKCEobmdNb2R1bGVSZWYgaW5zdGFuY2VvZiBSZWZlcmVuY2UpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoIWlzTmFtZWRDbGFzc0RlY2xhcmF0aW9uKG5nTW9kdWxlUmVmLm5vZGUpICYmXG4gICAgICAgICFpc05hbWVkVmFyaWFibGVEZWNsYXJhdGlvbihuZ01vZHVsZVJlZi5ub2RlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgaWRlbnRpdHkgZ2l2ZW4gYnkgJHtuZ01vZHVsZVJlZi5kZWJ1Z05hbWV9IHJlZmVyZW5jZWQgaW4gXCIke1xuICAgICAgICAgIGRlY2xhcmF0aW9uIS5nZXRUZXh0KCl9XCIgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSBcImNsYXNzXCIgZGVjbGFyYXRpb24uYCk7XG4gICAgfVxuXG4gICAgY29uc3QgbmdNb2R1bGUgPSBuZ01vZHVsZVJlZiBhcyBSZWZlcmVuY2U8Q2xhc3NEZWNsYXJhdGlvbj47XG4gICAgcmV0dXJuIHtuYW1lLCBuZ01vZHVsZSwgZGVjbGFyYXRpb24sIGNvbnRhaW5lcn07XG4gIH1cblxuICBwcml2YXRlIGdldER0c01vZHVsZVdpdGhQcm92aWRlcnNGdW5jdGlvbihmbjogTW9kdWxlV2l0aFByb3ZpZGVyc0luZm8pOiBNb2R1bGVXaXRoUHJvdmlkZXJzSW5mbyB7XG4gICAgbGV0IGR0c0ZuOiB0cy5EZWNsYXJhdGlvbnxudWxsID0gbnVsbDtcbiAgICBjb25zdCBjb250YWluZXJDbGFzcyA9IGZuLmNvbnRhaW5lciAmJiB0aGlzLmhvc3QuZ2V0Q2xhc3NTeW1ib2woZm4uY29udGFpbmVyKTtcbiAgICBpZiAoY29udGFpbmVyQ2xhc3MpIHtcbiAgICAgIGNvbnN0IGR0c0NsYXNzID0gdGhpcy5ob3N0LmdldER0c0RlY2xhcmF0aW9uKGNvbnRhaW5lckNsYXNzLmRlY2xhcmF0aW9uLnZhbHVlRGVjbGFyYXRpb24pO1xuICAgICAgLy8gR2V0IHRoZSBkZWNsYXJhdGlvbiBvZiB0aGUgbWF0Y2hpbmcgc3RhdGljIG1ldGhvZFxuICAgICAgZHRzRm4gPSBkdHNDbGFzcyAmJiB0cy5pc0NsYXNzRGVjbGFyYXRpb24oZHRzQ2xhc3MpID9cbiAgICAgICAgICBkdHNDbGFzcy5tZW1iZXJzLmZpbmQoXG4gICAgICAgICAgICAgIG1lbWJlciA9PiB0cy5pc01ldGhvZERlY2xhcmF0aW9uKG1lbWJlcikgJiYgdHMuaXNJZGVudGlmaWVyKG1lbWJlci5uYW1lKSAmJlxuICAgICAgICAgICAgICAgICAgbWVtYmVyLm5hbWUudGV4dCA9PT0gZm4ubmFtZSkgYXMgdHMuRGVjbGFyYXRpb24gOlxuICAgICAgICAgIG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGR0c0ZuID0gdGhpcy5ob3N0LmdldER0c0RlY2xhcmF0aW9uKGZuLmRlY2xhcmF0aW9uKTtcbiAgICB9XG4gICAgaWYgKCFkdHNGbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNYXRjaGluZyB0eXBlIGRlY2xhcmF0aW9uIGZvciAke2ZuLmRlY2xhcmF0aW9uLmdldFRleHQoKX0gaXMgbWlzc2luZ2ApO1xuICAgIH1cbiAgICBpZiAoIWlzRnVuY3Rpb25Pck1ldGhvZChkdHNGbikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTWF0Y2hpbmcgdHlwZSBkZWNsYXJhdGlvbiBmb3IgJHtcbiAgICAgICAgICBmbi5kZWNsYXJhdGlvbi5nZXRUZXh0KCl9IGlzIG5vdCBhIGZ1bmN0aW9uOiAke2R0c0ZuLmdldFRleHQoKX1gKTtcbiAgICB9XG4gICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyQ2xhc3MgPyBjb250YWluZXJDbGFzcy5kZWNsYXJhdGlvbi52YWx1ZURlY2xhcmF0aW9uIDogbnVsbDtcbiAgICBjb25zdCBuZ01vZHVsZSA9IHRoaXMucmVzb2x2ZU5nTW9kdWxlUmVmZXJlbmNlKGZuKTtcbiAgICByZXR1cm4ge25hbWU6IGZuLm5hbWUsIGNvbnRhaW5lciwgZGVjbGFyYXRpb246IGR0c0ZuLCBuZ01vZHVsZX07XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVOZ01vZHVsZVJlZmVyZW5jZShmbjogTW9kdWxlV2l0aFByb3ZpZGVyc0luZm8pOiBSZWZlcmVuY2U8Q2xhc3NEZWNsYXJhdGlvbj4ge1xuICAgIGNvbnN0IG5nTW9kdWxlID0gZm4ubmdNb2R1bGU7XG5cbiAgICAvLyBGb3IgZXh0ZXJuYWwgbW9kdWxlIHJlZmVyZW5jZXMsIHVzZSB0aGUgZGVjbGFyYXRpb24gYXMgaXMuXG4gICAgaWYgKG5nTW9kdWxlLmJlc3RHdWVzc093bmluZ01vZHVsZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG5nTW9kdWxlO1xuICAgIH1cblxuICAgIC8vIEZvciBpbnRlcm5hbCAobm9uLWxpYnJhcnkpIG1vZHVsZSByZWZlcmVuY2VzLCByZWRpcmVjdCB0aGUgbW9kdWxlJ3MgdmFsdWUgZGVjbGFyYXRpb25cbiAgICAvLyB0byBpdHMgdHlwZSBkZWNsYXJhdGlvbi5cbiAgICBjb25zdCBkdHNOZ01vZHVsZSA9IHRoaXMuaG9zdC5nZXREdHNEZWNsYXJhdGlvbihuZ01vZHVsZS5ub2RlKTtcbiAgICBpZiAoIWR0c05nTW9kdWxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHR5cGluZ3MgZGVjbGFyYXRpb24gY2FuIGJlIGZvdW5kIGZvciB0aGUgcmVmZXJlbmNlZCBOZ01vZHVsZSBjbGFzcyBpbiAke1xuICAgICAgICAgIGZuLmRlY2xhcmF0aW9uLmdldFRleHQoKX0uYCk7XG4gICAgfVxuICAgIGlmICghaXNOYW1lZENsYXNzRGVjbGFyYXRpb24oZHRzTmdNb2R1bGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSByZWZlcmVuY2VkIE5nTW9kdWxlIGluICR7XG4gICAgICAgICAgZm4uZGVjbGFyYXRpb25cbiAgICAgICAgICAgICAgLmdldFRleHQoKX0gaXMgbm90IGEgbmFtZWQgY2xhc3MgZGVjbGFyYXRpb24gaW4gdGhlIHR5cGluZ3MgcHJvZ3JhbTsgaW5zdGVhZCB3ZSBnZXQgJHtcbiAgICAgICAgICBkdHNOZ01vZHVsZS5nZXRUZXh0KCl9YCk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgUmVmZXJlbmNlKGR0c05nTW9kdWxlLCBudWxsKTtcbiAgfVxufVxuXG5cbmZ1bmN0aW9uIGlzRnVuY3Rpb25Pck1ldGhvZChkZWNsYXJhdGlvbjogdHMuRGVjbGFyYXRpb24pOiBkZWNsYXJhdGlvbiBpcyB0cy5GdW5jdGlvbkRlY2xhcmF0aW9ufFxuICAgIHRzLk1ldGhvZERlY2xhcmF0aW9uIHtcbiAgcmV0dXJuIHRzLmlzRnVuY3Rpb25EZWNsYXJhdGlvbihkZWNsYXJhdGlvbikgfHwgdHMuaXNNZXRob2REZWNsYXJhdGlvbihkZWNsYXJhdGlvbik7XG59XG5cbmZ1bmN0aW9uIGlzQW55S2V5d29yZCh0eXBlUGFyYW06IHRzLlR5cGVOb2RlKTogdHlwZVBhcmFtIGlzIHRzLktleXdvcmRUeXBlTm9kZSB7XG4gIHJldHVybiB0eXBlUGFyYW0ua2luZCA9PT0gdHMuU3ludGF4S2luZC5BbnlLZXl3b3JkO1xufVxuIl19
@@ -1,65 +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/compiler-cli/ngcc/src/analysis/ngcc_references_registry", ["require", "exports", "@angular/compiler-cli/ngcc/src/utils"], factory);
15
- }
16
- })(function (require, exports) {
17
- "use strict";
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.NgccReferencesRegistry = void 0;
20
- var utils_1 = require("@angular/compiler-cli/ngcc/src/utils");
21
- /**
22
- * This is a place for DecoratorHandlers to register references that they
23
- * find in their analysis of the code.
24
- *
25
- * This registry is used to ensure that these references are publicly exported
26
- * from libraries that are compiled by ngcc.
27
- */
28
- var NgccReferencesRegistry = /** @class */ (function () {
29
- function NgccReferencesRegistry(host) {
30
- this.host = host;
31
- this.map = new Map();
32
- }
33
- /**
34
- * Register one or more references in the registry.
35
- * Only `ResolveReference` references are stored. Other types are ignored.
36
- * @param references A collection of references to register.
37
- */
38
- NgccReferencesRegistry.prototype.add = function (source) {
39
- var _this = this;
40
- var references = [];
41
- for (var _i = 1; _i < arguments.length; _i++) {
42
- references[_i - 1] = arguments[_i];
43
- }
44
- references.forEach(function (ref) {
45
- // Only store relative references. We are not interested in literals.
46
- if (ref.bestGuessOwningModule === null && utils_1.hasNameIdentifier(ref.node)) {
47
- var declaration = _this.host.getDeclarationOfIdentifier(ref.node.name);
48
- if (declaration && utils_1.hasNameIdentifier(declaration.node)) {
49
- _this.map.set(declaration.node.name, declaration);
50
- }
51
- }
52
- });
53
- };
54
- /**
55
- * Create and return a mapping for the registered resolved references.
56
- * @returns A map of reference identifiers to reference declarations.
57
- */
58
- NgccReferencesRegistry.prototype.getDeclarationMap = function () {
59
- return this.map;
60
- };
61
- return NgccReferencesRegistry;
62
- }());
63
- exports.NgccReferencesRegistry = NgccReferencesRegistry;
64
- });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdjY19yZWZlcmVuY2VzX3JlZ2lzdHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL25nY2Mvc3JjL2FuYWx5c2lzL25nY2NfcmVmZXJlbmNlc19yZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7SUFNSCw4REFBMkM7SUFFM0M7Ozs7OztPQU1HO0lBQ0g7UUFHRSxnQ0FBb0IsSUFBb0I7WUFBcEIsU0FBSSxHQUFKLElBQUksQ0FBZ0I7WUFGaEMsUUFBRyxHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO1FBRVQsQ0FBQztRQUU1Qzs7OztXQUlHO1FBQ0gsb0NBQUcsR0FBSCxVQUFJLE1BQXVCO1lBQTNCLGlCQVVDO1lBVjRCLG9CQUEyQztpQkFBM0MsVUFBMkMsRUFBM0MscUJBQTJDLEVBQTNDLElBQTJDO2dCQUEzQyxtQ0FBMkM7O1lBQ3RFLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBQSxHQUFHO2dCQUNwQixxRUFBcUU7Z0JBQ3JFLElBQUksR0FBRyxDQUFDLHFCQUFxQixLQUFLLElBQUksSUFBSSx5QkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3JFLElBQU0sV0FBVyxHQUFHLEtBQUksQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDeEUsSUFBSSxXQUFXLElBQUkseUJBQWlCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFO3dCQUN0RCxLQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztxQkFDbEQ7aUJBQ0Y7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRDs7O1dBR0c7UUFDSCxrREFBaUIsR0FBakI7WUFDRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDbEIsQ0FBQztRQUNILDZCQUFDO0lBQUQsQ0FBQyxBQTdCRCxJQTZCQztJQTdCWSx3REFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQge1JlZmVyZW5jZXNSZWdpc3RyeX0gZnJvbSAnLi4vLi4vLi4vc3JjL25ndHNjL2Fubm90YXRpb25zJztcbmltcG9ydCB7UmVmZXJlbmNlfSBmcm9tICcuLi8uLi8uLi9zcmMvbmd0c2MvaW1wb3J0cyc7XG5pbXBvcnQge0RlY2xhcmF0aW9uLCBEZWNsYXJhdGlvbk5vZGUsIFJlZmxlY3Rpb25Ib3N0fSBmcm9tICcuLi8uLi8uLi9zcmMvbmd0c2MvcmVmbGVjdGlvbic7XG5pbXBvcnQge2hhc05hbWVJZGVudGlmaWVyfSBmcm9tICcuLi91dGlscyc7XG5cbi8qKlxuICogVGhpcyBpcyBhIHBsYWNlIGZvciBEZWNvcmF0b3JIYW5kbGVycyB0byByZWdpc3RlciByZWZlcmVuY2VzIHRoYXQgdGhleVxuICogZmluZCBpbiB0aGVpciBhbmFseXNpcyBvZiB0aGUgY29kZS5cbiAqXG4gKiBUaGlzIHJlZ2lzdHJ5IGlzIHVzZWQgdG8gZW5zdXJlIHRoYXQgdGhlc2UgcmVmZXJlbmNlcyBhcmUgcHVibGljbHkgZXhwb3J0ZWRcbiAqIGZyb20gbGlicmFyaWVzIHRoYXQgYXJlIGNvbXBpbGVkIGJ5IG5nY2MuXG4gKi9cbmV4cG9ydCBjbGFzcyBOZ2NjUmVmZXJlbmNlc1JlZ2lzdHJ5IGltcGxlbWVudHMgUmVmZXJlbmNlc1JlZ2lzdHJ5IHtcbiAgcHJpdmF0ZSBtYXAgPSBuZXcgTWFwPHRzLklkZW50aWZpZXIsIERlY2xhcmF0aW9uPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaG9zdDogUmVmbGVjdGlvbkhvc3QpIHt9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIG9uZSBvciBtb3JlIHJlZmVyZW5jZXMgaW4gdGhlIHJlZ2lzdHJ5LlxuICAgKiBPbmx5IGBSZXNvbHZlUmVmZXJlbmNlYCByZWZlcmVuY2VzIGFyZSBzdG9yZWQuIE90aGVyIHR5cGVzIGFyZSBpZ25vcmVkLlxuICAgKiBAcGFyYW0gcmVmZXJlbmNlcyBBIGNvbGxlY3Rpb24gb2YgcmVmZXJlbmNlcyB0byByZWdpc3Rlci5cbiAgICovXG4gIGFkZChzb3VyY2U6IERlY2xhcmF0aW9uTm9kZSwgLi4ucmVmZXJlbmNlczogUmVmZXJlbmNlPERlY2xhcmF0aW9uTm9kZT5bXSk6IHZvaWQge1xuICAgIHJlZmVyZW5jZXMuZm9yRWFjaChyZWYgPT4ge1xuICAgICAgLy8gT25seSBzdG9yZSByZWxhdGl2ZSByZWZlcmVuY2VzLiBXZSBhcmUgbm90IGludGVyZXN0ZWQgaW4gbGl0ZXJhbHMuXG4gICAgICBpZiAocmVmLmJlc3RHdWVzc093bmluZ01vZHVsZSA9PT0gbnVsbCAmJiBoYXNOYW1lSWRlbnRpZmllcihyZWYubm9kZSkpIHtcbiAgICAgICAgY29uc3QgZGVjbGFyYXRpb24gPSB0aGlzLmhvc3QuZ2V0RGVjbGFyYXRpb25PZklkZW50aWZpZXIocmVmLm5vZGUubmFtZSk7XG4gICAgICAgIGlmIChkZWNsYXJhdGlvbiAmJiBoYXNOYW1lSWRlbnRpZmllcihkZWNsYXJhdGlvbi5ub2RlKSkge1xuICAgICAgICAgIHRoaXMubWFwLnNldChkZWNsYXJhdGlvbi5ub2RlLm5hbWUsIGRlY2xhcmF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbmQgcmV0dXJuIGEgbWFwcGluZyBmb3IgdGhlIHJlZ2lzdGVyZWQgcmVzb2x2ZWQgcmVmZXJlbmNlcy5cbiAgICogQHJldHVybnMgQSBtYXAgb2YgcmVmZXJlbmNlIGlkZW50aWZpZXJzIHRvIHJlZmVyZW5jZSBkZWNsYXJhdGlvbnMuXG4gICAqL1xuICBnZXREZWNsYXJhdGlvbk1hcCgpOiBNYXA8dHMuSWRlbnRpZmllciwgRGVjbGFyYXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5tYXA7XG4gIH1cbn1cbiJdfQ==
@@ -1,117 +0,0 @@
1
- (function (factory) {
2
- if (typeof module === "object" && typeof module.exports === "object") {
3
- var v = factory(require, exports);
4
- if (v !== undefined) module.exports = v;
5
- }
6
- else if (typeof define === "function" && define.amd) {
7
- define("@angular/compiler-cli/ngcc/src/analysis/ngcc_trait_compiler", ["require", "exports", "tslib", "@angular/compiler-cli/src/ngtsc/perf", "@angular/compiler-cli/src/ngtsc/transform", "@angular/compiler-cli/ngcc/src/utils"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.NgccTraitCompiler = void 0;
13
- var tslib_1 = require("tslib");
14
- var perf_1 = require("@angular/compiler-cli/src/ngtsc/perf");
15
- var transform_1 = require("@angular/compiler-cli/src/ngtsc/transform");
16
- var utils_1 = require("@angular/compiler-cli/ngcc/src/utils");
17
- /**
18
- * Specializes the `TraitCompiler` for ngcc purposes. Mainly, this includes an alternative way of
19
- * scanning for classes to compile using the reflection host's `findClassSymbols`, together with
20
- * support to inject synthetic decorators into the compilation for ad-hoc migrations that ngcc
21
- * performs.
22
- */
23
- var NgccTraitCompiler = /** @class */ (function (_super) {
24
- tslib_1.__extends(NgccTraitCompiler, _super);
25
- function NgccTraitCompiler(handlers, ngccReflector) {
26
- var _this = _super.call(this, handlers, ngccReflector, perf_1.NOOP_PERF_RECORDER, new NoIncrementalBuild(),
27
- /* compileNonExportedClasses */ true, transform_1.CompilationMode.FULL, new transform_1.DtsTransformRegistry(),
28
- /* semanticDepGraphUpdater */ null) || this;
29
- _this.ngccReflector = ngccReflector;
30
- return _this;
31
- }
32
- Object.defineProperty(NgccTraitCompiler.prototype, "analyzedFiles", {
33
- get: function () {
34
- return Array.from(this.fileToClasses.keys());
35
- },
36
- enumerable: false,
37
- configurable: true
38
- });
39
- /**
40
- * Analyzes the source file in search for classes to process. For any class that is found in the
41
- * file, a `ClassRecord` is created and the source file is included in the `analyzedFiles` array.
42
- */
43
- NgccTraitCompiler.prototype.analyzeFile = function (sf) {
44
- var e_1, _a;
45
- var ngccClassSymbols = this.ngccReflector.findClassSymbols(sf);
46
- try {
47
- for (var ngccClassSymbols_1 = tslib_1.__values(ngccClassSymbols), ngccClassSymbols_1_1 = ngccClassSymbols_1.next(); !ngccClassSymbols_1_1.done; ngccClassSymbols_1_1 = ngccClassSymbols_1.next()) {
48
- var classSymbol = ngccClassSymbols_1_1.value;
49
- this.analyzeClass(classSymbol.declaration.valueDeclaration, null);
50
- }
51
- }
52
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
53
- finally {
54
- try {
55
- if (ngccClassSymbols_1_1 && !ngccClassSymbols_1_1.done && (_a = ngccClassSymbols_1.return)) _a.call(ngccClassSymbols_1);
56
- }
57
- finally { if (e_1) throw e_1.error; }
58
- }
59
- return undefined;
60
- };
61
- /**
62
- * Associate a new synthesized decorator, which did not appear in the original source, with a
63
- * given class.
64
- * @param clazz the class to receive the new decorator.
65
- * @param decorator the decorator to inject.
66
- * @param flags optional bitwise flag to influence the compilation of the decorator.
67
- */
68
- NgccTraitCompiler.prototype.injectSyntheticDecorator = function (clazz, decorator, flags) {
69
- var e_2, _a;
70
- var migratedTraits = this.detectTraits(clazz, [decorator]);
71
- if (migratedTraits === null) {
72
- return [];
73
- }
74
- try {
75
- for (var migratedTraits_1 = tslib_1.__values(migratedTraits), migratedTraits_1_1 = migratedTraits_1.next(); !migratedTraits_1_1.done; migratedTraits_1_1 = migratedTraits_1.next()) {
76
- var trait = migratedTraits_1_1.value;
77
- this.analyzeTrait(clazz, trait, flags);
78
- }
79
- }
80
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
81
- finally {
82
- try {
83
- if (migratedTraits_1_1 && !migratedTraits_1_1.done && (_a = migratedTraits_1.return)) _a.call(migratedTraits_1);
84
- }
85
- finally { if (e_2) throw e_2.error; }
86
- }
87
- return migratedTraits;
88
- };
89
- /**
90
- * Returns all decorators that have been recognized for the provided class, including any
91
- * synthetically injected decorators.
92
- * @param clazz the declaration for which the decorators are returned.
93
- */
94
- NgccTraitCompiler.prototype.getAllDecorators = function (clazz) {
95
- var record = this.recordFor(clazz);
96
- if (record === null) {
97
- return null;
98
- }
99
- return record.traits.map(function (trait) { return trait.detected.decorator; }).filter(utils_1.isDefined);
100
- };
101
- return NgccTraitCompiler;
102
- }(transform_1.TraitCompiler));
103
- exports.NgccTraitCompiler = NgccTraitCompiler;
104
- var NoIncrementalBuild = /** @class */ (function () {
105
- function NoIncrementalBuild() {
106
- }
107
- NoIncrementalBuild.prototype.priorAnalysisFor = function (sf) {
108
- return null;
109
- };
110
- NoIncrementalBuild.prototype.priorTypeCheckingResultsFor = function () {
111
- return null;
112
- };
113
- NoIncrementalBuild.prototype.recordSuccessfulTypeCheck = function () { };
114
- return NoIncrementalBuild;
115
- }());
116
- });
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdjY190cmFpdF9jb21waWxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9uZ2NjL3NyYy9hbmFseXNpcy9uZ2NjX3RyYWl0X2NvbXBpbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7SUFXQSw2REFBMkQ7SUFFM0QsdUVBQXlJO0lBRXpJLDhEQUFtQztJQUVuQzs7Ozs7T0FLRztJQUNIO1FBQXVDLDZDQUFhO1FBQ2xELDJCQUNJLFFBQTRFLEVBQ3BFLGFBQWlDO1lBRjdDLFlBR0Usa0JBQ0ksUUFBUSxFQUFFLGFBQWEsRUFBRSx5QkFBa0IsRUFBRSxJQUFJLGtCQUFrQixFQUFFO1lBQ3JFLCtCQUErQixDQUFDLElBQUksRUFBRSwyQkFBZSxDQUFDLElBQUksRUFBRSxJQUFJLGdDQUFvQixFQUFFO1lBQ3RGLDZCQUE2QixDQUFDLElBQUksQ0FBQyxTQUN4QztZQUxXLG1CQUFhLEdBQWIsYUFBYSxDQUFvQjs7UUFLN0MsQ0FBQztRQUVELHNCQUFJLDRDQUFhO2lCQUFqQjtnQkFDRSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQy9DLENBQUM7OztXQUFBO1FBRUQ7OztXQUdHO1FBQ0gsdUNBQVcsR0FBWCxVQUFZLEVBQWlCOztZQUMzQixJQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7O2dCQUNqRSxLQUEwQixJQUFBLHFCQUFBLGlCQUFBLGdCQUFnQixDQUFBLGtEQUFBLGdGQUFFO29CQUF2QyxJQUFNLFdBQVcsNkJBQUE7b0JBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztpQkFDbkU7Ozs7Ozs7OztZQUVELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRDs7Ozs7O1dBTUc7UUFDSCxvREFBd0IsR0FBeEIsVUFBeUIsS0FBdUIsRUFBRSxTQUFvQixFQUFFLEtBQW9COztZQUUxRixJQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDN0QsSUFBSSxjQUFjLEtBQUssSUFBSSxFQUFFO2dCQUMzQixPQUFPLEVBQUUsQ0FBQzthQUNYOztnQkFFRCxLQUFvQixJQUFBLG1CQUFBLGlCQUFBLGNBQWMsQ0FBQSw4Q0FBQSwwRUFBRTtvQkFBL0IsSUFBTSxLQUFLLDJCQUFBO29CQUNkLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztpQkFDeEM7Ozs7Ozs7OztZQUVELE9BQU8sY0FBYyxDQUFDO1FBQ3hCLENBQUM7UUFFRDs7OztXQUlHO1FBQ0gsNENBQWdCLEdBQWhCLFVBQWlCLEtBQXVCO1lBQ3RDLElBQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckMsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFO2dCQUNuQixPQUFPLElBQUksQ0FBQzthQUNiO1lBRUQsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFBLEtBQUssSUFBSSxPQUFBLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUF4QixDQUF3QixDQUFDLENBQUMsTUFBTSxDQUFDLGlCQUFTLENBQUMsQ0FBQztRQUNoRixDQUFDO1FBQ0gsd0JBQUM7SUFBRCxDQUFDLEFBN0RELENBQXVDLHlCQUFhLEdBNkRuRDtJQTdEWSw4Q0FBaUI7SUErRDlCO1FBQUE7UUFVQSxDQUFDO1FBVEMsNkNBQWdCLEdBQWhCLFVBQWlCLEVBQWlCO1lBQ2hDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELHdEQUEyQixHQUEzQjtZQUNFLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELHNEQUF5QixHQUF6QixjQUFtQyxDQUFDO1FBQ3RDLHlCQUFDO0lBQUQsQ0FBQyxBQVZELElBVUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge0luY3JlbWVudGFsQnVpbGR9IGZyb20gJy4uLy4uLy4uL3NyYy9uZ3RzYy9pbmNyZW1lbnRhbC9hcGknO1xuaW1wb3J0IHtTZW1hbnRpY1N5bWJvbH0gZnJvbSAnLi4vLi4vLi4vc3JjL25ndHNjL2luY3JlbWVudGFsL3NlbWFudGljX2dyYXBoJztcbmltcG9ydCB7Tk9PUF9QRVJGX1JFQ09SREVSfSBmcm9tICcuLi8uLi8uLi9zcmMvbmd0c2MvcGVyZic7XG5pbXBvcnQge0NsYXNzRGVjbGFyYXRpb24sIERlY29yYXRvcn0gZnJvbSAnLi4vLi4vLi4vc3JjL25ndHNjL3JlZmxlY3Rpb24nO1xuaW1wb3J0IHtDb21waWxhdGlvbk1vZGUsIERlY29yYXRvckhhbmRsZXIsIER0c1RyYW5zZm9ybVJlZ2lzdHJ5LCBIYW5kbGVyRmxhZ3MsIFRyYWl0LCBUcmFpdENvbXBpbGVyfSBmcm9tICcuLi8uLi8uLi9zcmMvbmd0c2MvdHJhbnNmb3JtJztcbmltcG9ydCB7TmdjY1JlZmxlY3Rpb25Ib3N0fSBmcm9tICcuLi9ob3N0L25nY2NfaG9zdCc7XG5pbXBvcnQge2lzRGVmaW5lZH0gZnJvbSAnLi4vdXRpbHMnO1xuXG4vKipcbiAqIFNwZWNpYWxpemVzIHRoZSBgVHJhaXRDb21waWxlcmAgZm9yIG5nY2MgcHVycG9zZXMuIE1haW5seSwgdGhpcyBpbmNsdWRlcyBhbiBhbHRlcm5hdGl2ZSB3YXkgb2ZcbiAqIHNjYW5uaW5nIGZvciBjbGFzc2VzIHRvIGNvbXBpbGUgdXNpbmcgdGhlIHJlZmxlY3Rpb24gaG9zdCdzIGBmaW5kQ2xhc3NTeW1ib2xzYCwgdG9nZXRoZXIgd2l0aFxuICogc3VwcG9ydCB0byBpbmplY3Qgc3ludGhldGljIGRlY29yYXRvcnMgaW50byB0aGUgY29tcGlsYXRpb24gZm9yIGFkLWhvYyBtaWdyYXRpb25zIHRoYXQgbmdjY1xuICogcGVyZm9ybXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBOZ2NjVHJhaXRDb21waWxlciBleHRlbmRzIFRyYWl0Q29tcGlsZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICAgIGhhbmRsZXJzOiBEZWNvcmF0b3JIYW5kbGVyPHVua25vd24sIHVua25vd24sIFNlbWFudGljU3ltYm9sfG51bGwsIHVua25vd24+W10sXG4gICAgICBwcml2YXRlIG5nY2NSZWZsZWN0b3I6IE5nY2NSZWZsZWN0aW9uSG9zdCkge1xuICAgIHN1cGVyKFxuICAgICAgICBoYW5kbGVycywgbmdjY1JlZmxlY3RvciwgTk9PUF9QRVJGX1JFQ09SREVSLCBuZXcgTm9JbmNyZW1lbnRhbEJ1aWxkKCksXG4gICAgICAgIC8qIGNvbXBpbGVOb25FeHBvcnRlZENsYXNzZXMgKi8gdHJ1ZSwgQ29tcGlsYXRpb25Nb2RlLkZVTEwsIG5ldyBEdHNUcmFuc2Zvcm1SZWdpc3RyeSgpLFxuICAgICAgICAvKiBzZW1hbnRpY0RlcEdyYXBoVXBkYXRlciAqLyBudWxsKTtcbiAgfVxuXG4gIGdldCBhbmFseXplZEZpbGVzKCk6IHRzLlNvdXJjZUZpbGVbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5maWxlVG9DbGFzc2VzLmtleXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogQW5hbHl6ZXMgdGhlIHNvdXJjZSBmaWxlIGluIHNlYXJjaCBmb3IgY2xhc3NlcyB0byBwcm9jZXNzLiBGb3IgYW55IGNsYXNzIHRoYXQgaXMgZm91bmQgaW4gdGhlXG4gICAqIGZpbGUsIGEgYENsYXNzUmVjb3JkYCBpcyBjcmVhdGVkIGFuZCB0aGUgc291cmNlIGZpbGUgaXMgaW5jbHVkZWQgaW4gdGhlIGBhbmFseXplZEZpbGVzYCBhcnJheS5cbiAgICovXG4gIGFuYWx5emVGaWxlKHNmOiB0cy5Tb3VyY2VGaWxlKTogdm9pZCB7XG4gICAgY29uc3QgbmdjY0NsYXNzU3ltYm9scyA9IHRoaXMubmdjY1JlZmxlY3Rvci5maW5kQ2xhc3NTeW1ib2xzKHNmKTtcbiAgICBmb3IgKGNvbnN0IGNsYXNzU3ltYm9sIG9mIG5nY2NDbGFzc1N5bWJvbHMpIHtcbiAgICAgIHRoaXMuYW5hbHl6ZUNsYXNzKGNsYXNzU3ltYm9sLmRlY2xhcmF0aW9uLnZhbHVlRGVjbGFyYXRpb24sIG51bGwpO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogQXNzb2NpYXRlIGEgbmV3IHN5bnRoZXNpemVkIGRlY29yYXRvciwgd2hpY2ggZGlkIG5vdCBhcHBlYXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZSwgd2l0aCBhXG4gICAqIGdpdmVuIGNsYXNzLlxuICAgKiBAcGFyYW0gY2xhenogdGhlIGNsYXNzIHRvIHJlY2VpdmUgdGhlIG5ldyBkZWNvcmF0b3IuXG4gICAqIEBwYXJhbSBkZWNvcmF0b3IgdGhlIGRlY29yYXRvciB0byBpbmplY3QuXG4gICAqIEBwYXJhbSBmbGFncyBvcHRpb25hbCBiaXR3aXNlIGZsYWcgdG8gaW5mbHVlbmNlIHRoZSBjb21waWxhdGlvbiBvZiB0aGUgZGVjb3JhdG9yLlxuICAgKi9cbiAgaW5qZWN0U3ludGhldGljRGVjb3JhdG9yKGNsYXp6OiBDbGFzc0RlY2xhcmF0aW9uLCBkZWNvcmF0b3I6IERlY29yYXRvciwgZmxhZ3M/OiBIYW5kbGVyRmxhZ3MpOlxuICAgICAgVHJhaXQ8dW5rbm93biwgdW5rbm93biwgU2VtYW50aWNTeW1ib2x8bnVsbCwgdW5rbm93bj5bXSB7XG4gICAgY29uc3QgbWlncmF0ZWRUcmFpdHMgPSB0aGlzLmRldGVjdFRyYWl0cyhjbGF6eiwgW2RlY29yYXRvcl0pO1xuICAgIGlmIChtaWdyYXRlZFRyYWl0cyA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgdHJhaXQgb2YgbWlncmF0ZWRUcmFpdHMpIHtcbiAgICAgIHRoaXMuYW5hbHl6ZVRyYWl0KGNsYXp6LCB0cmFpdCwgZmxhZ3MpO1xuICAgIH1cblxuICAgIHJldHVybiBtaWdyYXRlZFRyYWl0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFsbCBkZWNvcmF0b3JzIHRoYXQgaGF2ZSBiZWVuIHJlY29nbml6ZWQgZm9yIHRoZSBwcm92aWRlZCBjbGFzcywgaW5jbHVkaW5nIGFueVxuICAgKiBzeW50aGV0aWNhbGx5IGluamVjdGVkIGRlY29yYXRvcnMuXG4gICAqIEBwYXJhbSBjbGF6eiB0aGUgZGVjbGFyYXRpb24gZm9yIHdoaWNoIHRoZSBkZWNvcmF0b3JzIGFyZSByZXR1cm5lZC5cbiAgICovXG4gIGdldEFsbERlY29yYXRvcnMoY2xheno6IENsYXNzRGVjbGFyYXRpb24pOiBEZWNvcmF0b3JbXXxudWxsIHtcbiAgICBjb25zdCByZWNvcmQgPSB0aGlzLnJlY29yZEZvcihjbGF6eik7XG4gICAgaWYgKHJlY29yZCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlY29yZC50cmFpdHMubWFwKHRyYWl0ID0+IHRyYWl0LmRldGVjdGVkLmRlY29yYXRvcikuZmlsdGVyKGlzRGVmaW5lZCk7XG4gIH1cbn1cblxuY2xhc3MgTm9JbmNyZW1lbnRhbEJ1aWxkIGltcGxlbWVudHMgSW5jcmVtZW50YWxCdWlsZDxhbnksIGFueT4ge1xuICBwcmlvckFuYWx5c2lzRm9yKHNmOiB0cy5Tb3VyY2VGaWxlKTogYW55W118bnVsbCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcmlvclR5cGVDaGVja2luZ1Jlc3VsdHNGb3IoKTogbnVsbCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZWNvcmRTdWNjZXNzZnVsVHlwZUNoZWNrKCk6IHZvaWQge31cbn1cbiJdfQ==