@angular/compiler-cli 13.0.0-next.9 → 13.0.0-rc.3

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 (596) hide show
  1. package/bundles/index.js +20413 -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 +16038 -0
  8. package/bundles/ngcc/index.js.map +6 -0
  9. package/bundles/ngcc/main-ngcc.js +16126 -0
  10. package/bundles/ngcc/main-ngcc.js.map +6 -0
  11. package/bundles/ngcc/src/execution/cluster/ngcc_cluster_worker.js +13850 -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 +2183 -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 +20463 -0
  24. package/bundles/src/bin/ng_xi18n.js.map +6 -0
  25. package/bundles/src/bin/ngc.js +20465 -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 +1 -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/entry_point_bundle.d.ts +1 -1
  81. package/ngcc/src/packages/ngcc_compiler_host.d.ts +1 -1
  82. package/ngcc/src/packages/source_file_cache.d.ts +1 -1
  83. package/ngcc/src/packages/transformer.d.ts +1 -1
  84. package/ngcc/src/rendering/commonjs_rendering_formatter.d.ts +1 -1
  85. package/ngcc/src/rendering/dts_renderer.d.ts +1 -1
  86. package/ngcc/src/rendering/esm5_rendering_formatter.d.ts +1 -1
  87. package/ngcc/src/rendering/esm_rendering_formatter.d.ts +1 -1
  88. package/ngcc/src/rendering/renderer.d.ts +1 -1
  89. package/ngcc/src/rendering/rendering_formatter.d.ts +1 -1
  90. package/ngcc/src/rendering/source_maps.d.ts +3 -3
  91. package/ngcc/src/rendering/umd_rendering_formatter.d.ts +1 -1
  92. package/ngcc/src/rendering/utils.d.ts +1 -1
  93. package/ngcc/src/utils.d.ts +1 -1
  94. package/package.json +52 -13
  95. package/private/bazel.d.ts +13 -0
  96. package/private/localize.d.ts +15 -0
  97. package/private/migrations.d.ts +16 -0
  98. package/{src → private}/tooling.d.ts +2 -2
  99. package/src/bin/ng_xi18n.d.ts +10 -0
  100. package/{ngcc/main-ivy-ngcc.d.ts → src/bin/ngc.d.ts} +2 -1
  101. package/src/diagnostics/translate_diagnostics.d.ts +1 -1
  102. package/src/extract_i18n.d.ts +0 -5
  103. package/src/main.d.ts +9 -6
  104. package/src/metadata/bundle_index_host.d.ts +1 -1
  105. package/src/metadata/bundler.d.ts +1 -1
  106. package/src/metadata/collector.d.ts +1 -1
  107. package/src/metadata/evaluator.d.ts +1 -1
  108. package/src/metadata/symbols.d.ts +1 -1
  109. package/src/ngtsc/annotations/src/component.d.ts +1 -1
  110. package/src/ngtsc/annotations/src/diagnostics.d.ts +1 -1
  111. package/src/ngtsc/annotations/src/directive.d.ts +1 -1
  112. package/src/ngtsc/annotations/src/ng_module.d.ts +2 -3
  113. package/src/ngtsc/annotations/src/pipe.d.ts +1 -1
  114. package/src/ngtsc/annotations/src/util.d.ts +2 -4
  115. package/src/ngtsc/core/api/src/adapter.d.ts +1 -1
  116. package/src/ngtsc/core/api/src/interfaces.d.ts +1 -1
  117. package/src/ngtsc/core/api/src/options.d.ts +1 -1
  118. package/src/ngtsc/core/api/src/public_options.d.ts +5 -1
  119. package/src/ngtsc/core/src/compiler.d.ts +1 -1
  120. package/src/ngtsc/core/src/host.d.ts +1 -1
  121. package/src/ngtsc/cycles/src/analyzer.d.ts +1 -1
  122. package/src/ngtsc/cycles/src/imports.d.ts +1 -1
  123. package/src/ngtsc/diagnostics/index.d.ts +4 -2
  124. package/src/ngtsc/diagnostics/src/docs.d.ts +14 -0
  125. package/src/ngtsc/diagnostics/src/error.d.ts +1 -1
  126. package/src/ngtsc/diagnostics/src/error_details_base_url.d.ts +16 -0
  127. package/src/ngtsc/diagnostics/src/util.d.ts +2 -0
  128. package/src/ngtsc/entry_point/src/generator.d.ts +1 -1
  129. package/src/ngtsc/entry_point/src/private_export_checker.d.ts +1 -1
  130. package/src/ngtsc/file_system/src/compiler_host.d.ts +1 -1
  131. package/src/ngtsc/file_system/src/logical.d.ts +1 -1
  132. package/src/ngtsc/file_system/src/util.d.ts +1 -1
  133. package/src/ngtsc/imports/src/alias.d.ts +1 -1
  134. package/src/ngtsc/imports/src/default.d.ts +1 -1
  135. package/src/ngtsc/imports/src/emitter.d.ts +1 -1
  136. package/src/ngtsc/imports/src/find_export.d.ts +1 -1
  137. package/src/ngtsc/imports/src/references.d.ts +1 -1
  138. package/src/ngtsc/imports/src/resolver.d.ts +1 -1
  139. package/src/ngtsc/incremental/api.d.ts +1 -1
  140. package/src/ngtsc/incremental/src/dependency_tracking.d.ts +1 -1
  141. package/src/ngtsc/incremental/src/incremental.d.ts +1 -1
  142. package/src/ngtsc/incremental/src/state.d.ts +1 -1
  143. package/src/ngtsc/incremental/src/strategy.d.ts +1 -1
  144. package/src/ngtsc/metadata/src/api.d.ts +1 -1
  145. package/src/ngtsc/metadata/src/dts.d.ts +1 -1
  146. package/src/ngtsc/metadata/src/resource_registry.d.ts +1 -1
  147. package/src/ngtsc/metadata/src/util.d.ts +1 -1
  148. package/src/ngtsc/partial_evaluator/index.d.ts +1 -0
  149. package/src/ngtsc/partial_evaluator/src/builtin.d.ts +1 -1
  150. package/src/ngtsc/partial_evaluator/src/diagnostics.d.ts +1 -1
  151. package/src/ngtsc/partial_evaluator/src/dynamic.d.ts +1 -1
  152. package/src/ngtsc/partial_evaluator/src/interface.d.ts +1 -1
  153. package/src/ngtsc/partial_evaluator/src/interpreter.d.ts +1 -1
  154. package/src/ngtsc/partial_evaluator/src/result.d.ts +1 -1
  155. package/src/ngtsc/partial_evaluator/src/ts_helpers.d.ts +1 -1
  156. package/src/ngtsc/program.d.ts +1 -1
  157. package/src/ngtsc/program_driver/src/api.d.ts +1 -1
  158. package/src/ngtsc/program_driver/src/ts_create_program_driver.d.ts +1 -1
  159. package/src/ngtsc/reflection/src/host.d.ts +1 -1
  160. package/src/ngtsc/reflection/src/type_to_value.d.ts +1 -1
  161. package/src/ngtsc/reflection/src/typescript.d.ts +1 -1
  162. package/src/ngtsc/reflection/src/util.d.ts +1 -1
  163. package/src/ngtsc/resource/src/loader.d.ts +1 -1
  164. package/src/ngtsc/scope/src/local.d.ts +1 -1
  165. package/src/ngtsc/scope/src/typecheck.d.ts +1 -1
  166. package/src/ngtsc/shims/api.d.ts +1 -1
  167. package/src/ngtsc/shims/src/adapter.d.ts +1 -1
  168. package/src/ngtsc/shims/src/expando.d.ts +1 -1
  169. package/src/ngtsc/shims/src/factory_generator.d.ts +1 -1
  170. package/src/ngtsc/shims/src/reference_tagger.d.ts +1 -1
  171. package/src/ngtsc/shims/src/summary_generator.d.ts +1 -1
  172. package/src/ngtsc/switch/src/switch.d.ts +1 -1
  173. package/src/ngtsc/transform/src/alias.d.ts +1 -1
  174. package/src/ngtsc/transform/src/api.d.ts +1 -1
  175. package/src/ngtsc/transform/src/compilation.d.ts +1 -1
  176. package/src/ngtsc/transform/src/declaration.d.ts +1 -1
  177. package/src/ngtsc/transform/src/trait.d.ts +1 -1
  178. package/src/ngtsc/transform/src/transform.d.ts +1 -1
  179. package/src/ngtsc/transform/src/utils.d.ts +1 -1
  180. package/src/ngtsc/translator/src/import_manager.d.ts +1 -1
  181. package/src/ngtsc/translator/src/type_translator.d.ts +1 -1
  182. package/src/ngtsc/translator/src/typescript_ast_factory.d.ts +1 -1
  183. package/src/ngtsc/translator/src/typescript_translator.d.ts +1 -1
  184. package/src/ngtsc/tsc_plugin.d.ts +1 -1
  185. package/src/ngtsc/typecheck/api/api.d.ts +1 -1
  186. package/src/ngtsc/typecheck/api/checker.d.ts +3 -4
  187. package/src/ngtsc/typecheck/api/context.d.ts +1 -1
  188. package/src/ngtsc/typecheck/api/scope.d.ts +1 -1
  189. package/src/ngtsc/typecheck/api/symbols.d.ts +1 -1
  190. package/src/ngtsc/typecheck/diagnostics/src/diagnostic.d.ts +1 -1
  191. package/src/ngtsc/typecheck/extended/api/api.d.ts +1 -1
  192. package/src/ngtsc/typecheck/extended/api/extended_template_checker.d.ts +1 -1
  193. package/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.d.ts +1 -1
  194. package/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.d.ts +1 -1
  195. package/src/ngtsc/typecheck/extended/src/extended_template_checker.d.ts +1 -1
  196. package/src/ngtsc/typecheck/src/checker.d.ts +3 -4
  197. package/src/ngtsc/typecheck/src/comments.d.ts +1 -1
  198. package/src/ngtsc/typecheck/src/completion.d.ts +3 -5
  199. package/src/ngtsc/typecheck/src/context.d.ts +1 -1
  200. package/src/ngtsc/typecheck/src/diagnostics.d.ts +1 -1
  201. package/src/ngtsc/typecheck/src/environment.d.ts +1 -1
  202. package/src/ngtsc/typecheck/src/expression.d.ts +1 -1
  203. package/src/ngtsc/typecheck/src/oob.d.ts +3 -4
  204. package/src/ngtsc/typecheck/src/shim.d.ts +1 -1
  205. package/src/ngtsc/typecheck/src/source.d.ts +1 -1
  206. package/src/ngtsc/typecheck/src/tcb_util.d.ts +1 -1
  207. package/src/ngtsc/typecheck/src/template_symbol_builder.d.ts +1 -1
  208. package/src/ngtsc/typecheck/src/ts_util.d.ts +1 -1
  209. package/src/ngtsc/typecheck/src/type_check_block.d.ts +1 -1
  210. package/src/ngtsc/typecheck/src/type_check_file.d.ts +1 -1
  211. package/src/ngtsc/typecheck/src/type_constructor.d.ts +1 -1
  212. package/src/ngtsc/typecheck/src/type_emitter.d.ts +1 -1
  213. package/src/ngtsc/typecheck/src/type_parameter_emitter.d.ts +1 -1
  214. package/src/ngtsc/util/src/typescript.d.ts +1 -1
  215. package/src/ngtsc/util/src/visitor.d.ts +1 -1
  216. package/src/perform_compile.d.ts +1 -2
  217. package/src/perform_watch.d.ts +1 -1
  218. package/src/transformers/api.d.ts +1 -1
  219. package/src/transformers/compiler_host.d.ts +1 -1
  220. package/src/transformers/{downlevel_decorators_transform.d.ts → downlevel_decorators_transform/downlevel_decorators_transform.d.ts} +3 -3
  221. package/src/transformers/downlevel_decorators_transform/index.d.ts +9 -0
  222. package/src/transformers/{patch_alias_reference_resolution.d.ts → downlevel_decorators_transform/patch_alias_reference_resolution.d.ts} +2 -2
  223. package/src/transformers/i18n.d.ts +1 -1
  224. package/src/transformers/inline_resources.d.ts +1 -1
  225. package/src/transformers/lower_expressions.d.ts +1 -1
  226. package/src/transformers/metadata_cache.d.ts +1 -1
  227. package/src/transformers/node_emitter.d.ts +1 -1
  228. package/src/transformers/node_emitter_transform.d.ts +1 -1
  229. package/src/transformers/program.d.ts +1 -1
  230. package/src/transformers/r3_metadata_transform.d.ts +1 -1
  231. package/src/transformers/r3_transform.d.ts +1 -1
  232. package/src/transformers/util.d.ts +1 -1
  233. package/index.js +0 -40
  234. package/linker/babel/index.js +0 -25
  235. package/linker/babel/src/ast/babel_ast_factory.js +0 -153
  236. package/linker/babel/src/ast/babel_ast_host.js +0 -181
  237. package/linker/babel/src/babel_declaration_scope.js +0 -67
  238. package/linker/babel/src/babel_plugin.js +0 -38
  239. package/linker/babel/src/es2015_linker_plugin.js +0 -183
  240. package/linker/babel/src/linker_plugin_options.js +0 -13
  241. package/linker/index.js +0 -27
  242. package/linker/src/ast/ast_host.js +0 -20
  243. package/linker/src/ast/ast_value.js +0 -299
  244. package/linker/src/ast/typescript/typescript_ast_host.js +0 -183
  245. package/linker/src/ast/utils.js +0 -31
  246. package/linker/src/fatal_linker_error.js +0 -49
  247. package/linker/src/file_linker/declaration_scope.js +0 -20
  248. package/linker/src/file_linker/emit_scopes/emit_scope.js +0 -57
  249. package/linker/src/file_linker/emit_scopes/iife_emit_scope.js +0 -51
  250. package/linker/src/file_linker/file_linker.js +0 -97
  251. package/linker/src/file_linker/get_source_file.js +0 -42
  252. package/linker/src/file_linker/linker_environment.js +0 -38
  253. package/linker/src/file_linker/linker_options.js +0 -29
  254. package/linker/src/file_linker/needs_linking.js +0 -41
  255. package/linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.js +0 -47
  256. package/linker/src/file_linker/partial_linkers/partial_component_linker_1.js +0 -210
  257. package/linker/src/file_linker/partial_linkers/partial_directive_linker_1.js +0 -154
  258. package/linker/src/file_linker/partial_linkers/partial_factory_linker_1.js +0 -70
  259. package/linker/src/file_linker/partial_linkers/partial_injectable_linker_1.js +0 -74
  260. package/linker/src/file_linker/partial_linkers/partial_injector_linker_1.js +0 -56
  261. package/linker/src/file_linker/partial_linkers/partial_linker.js +0 -13
  262. package/linker/src/file_linker/partial_linkers/partial_linker_selector.js +0 -194
  263. package/linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.js +0 -126
  264. package/linker/src/file_linker/partial_linkers/partial_pipe_linker_1.js +0 -59
  265. package/linker/src/file_linker/partial_linkers/util.js +0 -95
  266. package/linker/src/file_linker/translator.js +0 -40
  267. package/linker/src/linker_import_generator.js +0 -43
  268. package/ngcc/index.js +0 -33
  269. package/ngcc/main-ivy-ngcc.js +0 -12
  270. package/ngcc/main-ngcc.js +0 -54
  271. package/ngcc/src/analysis/decoration_analyzer.js +0 -268
  272. package/ngcc/src/analysis/migration_host.js +0 -108
  273. package/ngcc/src/analysis/module_with_providers_analyzer.js +0 -197
  274. package/ngcc/src/analysis/ngcc_references_registry.js +0 -65
  275. package/ngcc/src/analysis/ngcc_trait_compiler.js +0 -117
  276. package/ngcc/src/analysis/private_declarations_analyzer.js +0 -63
  277. package/ngcc/src/analysis/switch_marker_analyzer.js +0 -50
  278. package/ngcc/src/analysis/types.js +0 -15
  279. package/ngcc/src/analysis/util.js +0 -36
  280. package/ngcc/src/command_line_options.js +0 -156
  281. package/ngcc/src/constants.js +0 -23
  282. package/ngcc/src/dependencies/commonjs_dependency_host.js +0 -129
  283. package/ngcc/src/dependencies/dependency_host.js +0 -143
  284. package/ngcc/src/dependencies/dependency_resolver.js +0 -180
  285. package/ngcc/src/dependencies/dts_dependency_host.js +0 -35
  286. package/ngcc/src/dependencies/esm_dependency_host.js +0 -307
  287. package/ngcc/src/dependencies/module_resolver.js +0 -269
  288. package/ngcc/src/dependencies/umd_dependency_host.js +0 -53
  289. package/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.js +0 -70
  290. package/ngcc/src/entry_point_finder/entry_point_collector.js +0 -157
  291. package/ngcc/src/entry_point_finder/interface.js +0 -13
  292. package/ngcc/src/entry_point_finder/program_based_entry_point_finder.js +0 -132
  293. package/ngcc/src/entry_point_finder/targeted_entry_point_finder.js +0 -268
  294. package/ngcc/src/entry_point_finder/tracing_entry_point_finder.js +0 -78
  295. package/ngcc/src/entry_point_finder/utils.js +0 -234
  296. package/ngcc/src/execution/analyze_entry_points.js +0 -197
  297. package/ngcc/src/execution/api.js +0 -13
  298. package/ngcc/src/execution/cluster/api.js +0 -20
  299. package/ngcc/src/execution/cluster/executor.js +0 -52
  300. package/ngcc/src/execution/cluster/master.js +0 -311
  301. package/ngcc/src/execution/cluster/package_json_updater.js +0 -79
  302. package/ngcc/src/execution/cluster/utils.js +0 -77
  303. package/ngcc/src/execution/cluster/worker.js +0 -123
  304. package/ngcc/src/execution/create_compile_function.js +0 -76
  305. package/ngcc/src/execution/single_process_executor.js +0 -91
  306. package/ngcc/src/execution/tasks/api.js +0 -35
  307. package/ngcc/src/execution/tasks/completion.js +0 -79
  308. package/ngcc/src/execution/tasks/queues/base_task_queue.js +0 -120
  309. package/ngcc/src/execution/tasks/queues/parallel_task_queue.js +0 -87
  310. package/ngcc/src/execution/tasks/queues/serial_task_queue.js +0 -49
  311. package/ngcc/src/execution/tasks/utils.js +0 -167
  312. package/ngcc/src/host/commonjs_host.js +0 -261
  313. package/ngcc/src/host/commonjs_umd_utils.js +0 -210
  314. package/ngcc/src/host/delegating_host.js +0 -156
  315. package/ngcc/src/host/esm2015_host.js +0 -2441
  316. package/ngcc/src/host/esm5_host.js +0 -745
  317. package/ngcc/src/host/ngcc_host.js +0 -29
  318. package/ngcc/src/host/umd_host.js +0 -539
  319. package/ngcc/src/host/utils.js +0 -26
  320. package/ngcc/src/locking/async_locker.js +0 -121
  321. package/ngcc/src/locking/lock_file.js +0 -18
  322. package/ngcc/src/locking/lock_file_with_child_process/index.js +0 -93
  323. package/ngcc/src/locking/lock_file_with_child_process/unlocker.js +0 -46
  324. package/ngcc/src/locking/lock_file_with_child_process/util.js +0 -43
  325. package/ngcc/src/locking/sync_locker.js +0 -67
  326. package/ngcc/src/main.js +0 -163
  327. package/ngcc/src/migrations/migration.js +0 -13
  328. package/ngcc/src/migrations/missing_injectable_migration.js +0 -227
  329. package/ngcc/src/migrations/undecorated_child_migration.js +0 -90
  330. package/ngcc/src/migrations/undecorated_parent_migration.js +0 -103
  331. package/ngcc/src/migrations/utils.js +0 -137
  332. package/ngcc/src/ngcc_options.js +0 -135
  333. package/ngcc/src/packages/build_marker.js +0 -124
  334. package/ngcc/src/packages/bundle_program.js +0 -80
  335. package/ngcc/src/packages/configuration.js +0 -334
  336. package/ngcc/src/packages/entry_point.js +0 -267
  337. package/ngcc/src/packages/entry_point_bundle.js +0 -96
  338. package/ngcc/src/packages/entry_point_manifest.js +0 -207
  339. package/ngcc/src/packages/ngcc_compiler_host.js +0 -101
  340. package/ngcc/src/packages/patch_ts_expando_initializer.js +0 -174
  341. package/ngcc/src/packages/source_file_cache.js +0 -207
  342. package/ngcc/src/packages/transformer.js +0 -157
  343. package/ngcc/src/path_mappings.js +0 -27
  344. package/ngcc/src/rendering/commonjs_rendering_formatter.js +0 -106
  345. package/ngcc/src/rendering/dts_renderer.js +0 -170
  346. package/ngcc/src/rendering/esm5_rendering_formatter.js +0 -70
  347. package/ngcc/src/rendering/esm_rendering_formatter.js +0 -291
  348. package/ngcc/src/rendering/ngcc_import_rewriter.js +0 -49
  349. package/ngcc/src/rendering/renderer.js +0 -204
  350. package/ngcc/src/rendering/rendering_formatter.js +0 -15
  351. package/ngcc/src/rendering/source_maps.js +0 -68
  352. package/ngcc/src/rendering/umd_rendering_formatter.js +0 -326
  353. package/ngcc/src/rendering/utils.js +0 -35
  354. package/ngcc/src/utils.js +0 -182
  355. package/ngcc/src/writing/cleaning/cleaning_strategies.js +0 -80
  356. package/ngcc/src/writing/cleaning/package_cleaner.js +0 -126
  357. package/ngcc/src/writing/cleaning/utils.js +0 -30
  358. package/ngcc/src/writing/file_writer.js +0 -13
  359. package/ngcc/src/writing/in_place_file_writer.js +0 -90
  360. package/ngcc/src/writing/new_entry_point_file_writer.js +0 -214
  361. package/ngcc/src/writing/package_json_updater.js +0 -182
  362. package/src/diagnostics/translate_diagnostics.js +0 -61
  363. package/src/diagnostics/typescript_version.js +0 -96
  364. package/src/extract_i18n.js +0 -62
  365. package/src/language_services.js +0 -34
  366. package/src/main.js +0 -210
  367. package/src/metadata/bundle_index_host.js +0 -133
  368. package/src/metadata/bundler.js +0 -624
  369. package/src/metadata/collector.js +0 -799
  370. package/src/metadata/evaluator.js +0 -677
  371. package/src/metadata/index.js +0 -24
  372. package/src/metadata/index_writer.js +0 -80
  373. package/src/metadata/schema.js +0 -136
  374. package/src/metadata/symbols.js +0 -149
  375. package/src/ngtsc/annotations/index.js +0 -35
  376. package/src/ngtsc/annotations/src/api.js +0 -20
  377. package/src/ngtsc/annotations/src/component.js +0 -1338
  378. package/src/ngtsc/annotations/src/diagnostics.js +0 -174
  379. package/src/ngtsc/annotations/src/directive.js +0 -724
  380. package/src/ngtsc/annotations/src/factory.js +0 -32
  381. package/src/ngtsc/annotations/src/injectable.js +0 -284
  382. package/src/ngtsc/annotations/src/metadata.js +0 -160
  383. package/src/ngtsc/annotations/src/ng_module.js +0 -671
  384. package/src/ngtsc/annotations/src/pipe.js +0 -171
  385. package/src/ngtsc/annotations/src/references_registry.js +0 -38
  386. package/src/ngtsc/annotations/src/util.js +0 -566
  387. package/src/ngtsc/core/api/index.js +0 -25
  388. package/src/ngtsc/core/api/src/adapter.js +0 -20
  389. package/src/ngtsc/core/api/src/interfaces.js +0 -20
  390. package/src/ngtsc/core/api/src/options.js +0 -20
  391. package/src/ngtsc/core/api/src/public_options.js +0 -20
  392. package/src/ngtsc/core/index.js +0 -25
  393. package/src/ngtsc/core/src/compiler.js +0 -1105
  394. package/src/ngtsc/core/src/host.js +0 -273
  395. package/src/ngtsc/cycles/index.js +0 -26
  396. package/src/ngtsc/cycles/src/analyzer.js +0 -163
  397. package/src/ngtsc/cycles/src/imports.js +0 -175
  398. package/src/ngtsc/diagnostics/index.js +0 -33
  399. package/src/ngtsc/diagnostics/src/error.js +0 -69
  400. package/src/ngtsc/diagnostics/src/error_code.js +0 -235
  401. package/src/ngtsc/diagnostics/src/util.js +0 -35
  402. package/src/ngtsc/entry_point/index.js +0 -29
  403. package/src/ngtsc/entry_point/src/generator.js +0 -45
  404. package/src/ngtsc/entry_point/src/logic.js +0 -61
  405. package/src/ngtsc/entry_point/src/private_export_checker.js +0 -137
  406. package/src/ngtsc/entry_point/src/reference_graph.js +0 -91
  407. package/src/ngtsc/file_system/index.js +0 -45
  408. package/src/ngtsc/file_system/src/compiler_host.js +0 -80
  409. package/src/ngtsc/file_system/src/helpers.js +0 -135
  410. package/src/ngtsc/file_system/src/invalid_file_system.js +0 -120
  411. package/src/ngtsc/file_system/src/logical.js +0 -100
  412. package/src/ngtsc/file_system/src/node_js_file_system.js +0 -179
  413. package/src/ngtsc/file_system/src/types.js +0 -20
  414. package/src/ngtsc/file_system/src/util.js +0 -38
  415. package/src/ngtsc/file_system/testing/index.d.ts +0 -13
  416. package/src/ngtsc/file_system/testing/index.js +0 -32
  417. package/src/ngtsc/file_system/testing/src/mock_file_system.d.ts +0 -72
  418. package/src/ngtsc/file_system/testing/src/mock_file_system.js +0 -333
  419. package/src/ngtsc/file_system/testing/src/mock_file_system_native.d.ts +0 -16
  420. package/src/ngtsc/file_system/testing/src/mock_file_system_native.js +0 -85
  421. package/src/ngtsc/file_system/testing/src/mock_file_system_posix.d.ts +0 -13
  422. package/src/ngtsc/file_system/testing/src/mock_file_system_posix.js +0 -68
  423. package/src/ngtsc/file_system/testing/src/mock_file_system_windows.d.ts +0 -13
  424. package/src/ngtsc/file_system/testing/src/mock_file_system_windows.js +0 -68
  425. package/src/ngtsc/file_system/testing/src/test_helper.d.ts +0 -17
  426. package/src/ngtsc/file_system/testing/src/test_helper.js +0 -143
  427. package/src/ngtsc/imports/index.js +0 -43
  428. package/src/ngtsc/imports/src/alias.js +0 -158
  429. package/src/ngtsc/imports/src/core.js +0 -98
  430. package/src/ngtsc/imports/src/default.js +0 -153
  431. package/src/ngtsc/imports/src/emitter.js +0 -317
  432. package/src/ngtsc/imports/src/find_export.js +0 -82
  433. package/src/ngtsc/imports/src/reexport.js +0 -20
  434. package/src/ngtsc/imports/src/references.js +0 -171
  435. package/src/ngtsc/imports/src/resolver.js +0 -39
  436. package/src/ngtsc/incremental/api.js +0 -20
  437. package/src/ngtsc/incremental/index.js +0 -29
  438. package/src/ngtsc/incremental/semantic_graph/index.js +0 -34
  439. package/src/ngtsc/incremental/semantic_graph/src/api.js +0 -51
  440. package/src/ngtsc/incremental/semantic_graph/src/graph.js +0 -302
  441. package/src/ngtsc/incremental/semantic_graph/src/type_parameters.js +0 -55
  442. package/src/ngtsc/incremental/semantic_graph/src/util.js +0 -111
  443. package/src/ngtsc/incremental/src/dependency_tracking.js +0 -165
  444. package/src/ngtsc/incremental/src/incremental.js +0 -393
  445. package/src/ngtsc/incremental/src/noop.js +0 -26
  446. package/src/ngtsc/incremental/src/state.js +0 -30
  447. package/src/ngtsc/incremental/src/strategy.js +0 -99
  448. package/src/ngtsc/indexer/index.js +0 -27
  449. package/src/ngtsc/indexer/src/api.js +0 -45
  450. package/src/ngtsc/indexer/src/context.js +0 -40
  451. package/src/ngtsc/indexer/src/template.js +0 -324
  452. package/src/ngtsc/indexer/src/transform.js +0 -66
  453. package/src/ngtsc/logging/index.js +0 -25
  454. package/src/ngtsc/logging/src/console_logger.js +0 -75
  455. package/src/ngtsc/logging/src/logger.js +0 -28
  456. package/src/ngtsc/logging/testing/index.js +0 -23
  457. package/src/ngtsc/logging/testing/src/mock_logger.d.ts +0 -20
  458. package/src/ngtsc/logging/testing/src/mock_logger.js +0 -64
  459. package/src/ngtsc/metadata/index.js +0 -39
  460. package/src/ngtsc/metadata/src/api.js +0 -26
  461. package/src/ngtsc/metadata/src/dts.js +0 -168
  462. package/src/ngtsc/metadata/src/inheritance.js +0 -122
  463. package/src/ngtsc/metadata/src/property_mapping.js +0 -244
  464. package/src/ngtsc/metadata/src/registry.js +0 -133
  465. package/src/ngtsc/metadata/src/resource_registry.js +0 -109
  466. package/src/ngtsc/metadata/src/util.js +0 -275
  467. package/src/ngtsc/partial_evaluator/index.js +0 -31
  468. package/src/ngtsc/partial_evaluator/src/builtin.js +0 -125
  469. package/src/ngtsc/partial_evaluator/src/diagnostics.js +0 -193
  470. package/src/ngtsc/partial_evaluator/src/dynamic.js +0 -109
  471. package/src/ngtsc/partial_evaluator/src/interface.js +0 -42
  472. package/src/ngtsc/partial_evaluator/src/interpreter.js +0 -780
  473. package/src/ngtsc/partial_evaluator/src/known_declaration.js +0 -57
  474. package/src/ngtsc/partial_evaluator/src/result.js +0 -72
  475. package/src/ngtsc/partial_evaluator/src/ts_helpers.js +0 -121
  476. package/src/ngtsc/perf/index.js +0 -28
  477. package/src/ngtsc/perf/src/api.js +0 -291
  478. package/src/ngtsc/perf/src/clock.js +0 -31
  479. package/src/ngtsc/perf/src/noop.js +0 -37
  480. package/src/ngtsc/perf/src/recorder.js +0 -143
  481. package/src/ngtsc/program.js +0 -360
  482. package/src/ngtsc/program_driver/index.js +0 -25
  483. package/src/ngtsc/program_driver/src/api.js +0 -36
  484. package/src/ngtsc/program_driver/src/ts_create_program_driver.js +0 -200
  485. package/src/ngtsc/reflection/index.js +0 -36
  486. package/src/ngtsc/reflection/src/host.js +0 -88
  487. package/src/ngtsc/reflection/src/type_to_value.js +0 -259
  488. package/src/ngtsc/reflection/src/typescript.js +0 -640
  489. package/src/ngtsc/reflection/src/util.js +0 -37
  490. package/src/ngtsc/resource/index.js +0 -23
  491. package/src/ngtsc/resource/src/loader.js +0 -285
  492. package/src/ngtsc/scope/index.js +0 -29
  493. package/src/ngtsc/scope/src/api.js +0 -20
  494. package/src/ngtsc/scope/src/component_scope.js +0 -69
  495. package/src/ngtsc/scope/src/dependency.js +0 -201
  496. package/src/ngtsc/scope/src/local.js +0 -665
  497. package/src/ngtsc/scope/src/typecheck.js +0 -120
  498. package/src/ngtsc/shims/api.js +0 -13
  499. package/src/ngtsc/shims/index.js +0 -39
  500. package/src/ngtsc/shims/src/adapter.js +0 -266
  501. package/src/ngtsc/shims/src/expando.js +0 -147
  502. package/src/ngtsc/shims/src/factory_generator.js +0 -292
  503. package/src/ngtsc/shims/src/reference_tagger.js +0 -94
  504. package/src/ngtsc/shims/src/summary_generator.js +0 -101
  505. package/src/ngtsc/shims/src/util.js +0 -41
  506. package/src/ngtsc/sourcemaps/index.js +0 -27
  507. package/src/ngtsc/sourcemaps/src/content_origin.js +0 -48
  508. package/src/ngtsc/sourcemaps/src/raw_source_map.js +0 -13
  509. package/src/ngtsc/sourcemaps/src/segment_marker.js +0 -55
  510. package/src/ngtsc/sourcemaps/src/source_file.js +0 -519
  511. package/src/ngtsc/sourcemaps/src/source_file_loader.js +0 -234
  512. package/src/ngtsc/switch/index.js +0 -23
  513. package/src/ngtsc/switch/src/switch.js +0 -141
  514. package/src/ngtsc/transform/index.js +0 -36
  515. package/src/ngtsc/transform/src/alias.js +0 -46
  516. package/src/ngtsc/transform/src/api.js +0 -76
  517. package/src/ngtsc/transform/src/compilation.js +0 -862
  518. package/src/ngtsc/transform/src/declaration.js +0 -234
  519. package/src/ngtsc/transform/src/trait.js +0 -111
  520. package/src/ngtsc/transform/src/transform.js +0 -333
  521. package/src/ngtsc/transform/src/utils.js +0 -73
  522. package/src/ngtsc/translator/index.js +0 -37
  523. package/src/ngtsc/translator/src/api/ast_factory.js +0 -20
  524. package/src/ngtsc/translator/src/api/import_generator.js +0 -20
  525. package/src/ngtsc/translator/src/context.js +0 -47
  526. package/src/ngtsc/translator/src/import_manager.js +0 -77
  527. package/src/ngtsc/translator/src/translator.js +0 -347
  528. package/src/ngtsc/translator/src/type_translator.js +0 -220
  529. package/src/ngtsc/translator/src/typescript_ast_factory.js +0 -251
  530. package/src/ngtsc/translator/src/typescript_translator.js +0 -34
  531. package/src/ngtsc/tsc_plugin.js +0 -129
  532. package/src/ngtsc/typecheck/api/api.js +0 -20
  533. package/src/ngtsc/typecheck/api/checker.js +0 -44
  534. package/src/ngtsc/typecheck/api/completion.js +0 -29
  535. package/src/ngtsc/typecheck/api/context.js +0 -20
  536. package/src/ngtsc/typecheck/api/index.js +0 -27
  537. package/src/ngtsc/typecheck/api/scope.js +0 -20
  538. package/src/ngtsc/typecheck/api/symbols.js +0 -35
  539. package/src/ngtsc/typecheck/diagnostics/index.js +0 -23
  540. package/src/ngtsc/typecheck/diagnostics/src/diagnostic.js +0 -141
  541. package/src/ngtsc/typecheck/diagnostics/src/id.js +0 -37
  542. package/src/ngtsc/typecheck/extended/api/api.js +0 -124
  543. package/src/ngtsc/typecheck/extended/api/extended_template_checker.js +0 -20
  544. package/src/ngtsc/typecheck/extended/api/index.js +0 -23
  545. package/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.js +0 -52
  546. package/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.js +0 -64
  547. package/src/ngtsc/typecheck/extended/index.js +0 -23
  548. package/src/ngtsc/typecheck/extended/src/extended_template_checker.js +0 -55
  549. package/src/ngtsc/typecheck/index.js +0 -29
  550. package/src/ngtsc/typecheck/src/checker.js +0 -767
  551. package/src/ngtsc/typecheck/src/comments.js +0 -181
  552. package/src/ngtsc/typecheck/src/completion.js +0 -230
  553. package/src/ngtsc/typecheck/src/context.js +0 -424
  554. package/src/ngtsc/typecheck/src/diagnostics.js +0 -114
  555. package/src/ngtsc/typecheck/src/dom.js +0 -87
  556. package/src/ngtsc/typecheck/src/environment.js +0 -160
  557. package/src/ngtsc/typecheck/src/expression.js +0 -417
  558. package/src/ngtsc/typecheck/src/line_mappings.js +0 -77
  559. package/src/ngtsc/typecheck/src/oob.js +0 -181
  560. package/src/ngtsc/typecheck/src/shim.js +0 -52
  561. package/src/ngtsc/typecheck/src/source.js +0 -91
  562. package/src/ngtsc/typecheck/src/tcb_util.js +0 -165
  563. package/src/ngtsc/typecheck/src/template_semantics.js +0 -52
  564. package/src/ngtsc/typecheck/src/template_symbol_builder.js +0 -551
  565. package/src/ngtsc/typecheck/src/ts_util.js +0 -202
  566. package/src/ngtsc/typecheck/src/type_check_block.js +0 -2212
  567. package/src/ngtsc/typecheck/src/type_check_file.js +0 -115
  568. package/src/ngtsc/typecheck/src/type_constructor.js +0 -255
  569. package/src/ngtsc/typecheck/src/type_emitter.js +0 -164
  570. package/src/ngtsc/typecheck/src/type_parameter_emitter.js +0 -115
  571. package/src/ngtsc/util/src/path.js +0 -33
  572. package/src/ngtsc/util/src/typescript.js +0 -176
  573. package/src/ngtsc/util/src/visitor.js +0 -119
  574. package/src/ngtsc/xi18n/index.js +0 -22
  575. package/src/ngtsc/xi18n/src/context.js +0 -20
  576. package/src/perform_compile.js +0 -322
  577. package/src/perform_watch.js +0 -263
  578. package/src/tooling.js +0 -47
  579. package/src/transformers/api.js +0 -42
  580. package/src/transformers/compiler_host.js +0 -623
  581. package/src/transformers/downlevel_decorators_transform.js +0 -611
  582. package/src/transformers/entry_points.js +0 -25
  583. package/src/transformers/i18n.js +0 -76
  584. package/src/transformers/inline_resources.js +0 -287
  585. package/src/transformers/lower_expressions.js +0 -365
  586. package/src/transformers/metadata_cache.js +0 -96
  587. package/src/transformers/metadata_reader.js +0 -120
  588. package/src/transformers/node_emitter.js +0 -637
  589. package/src/transformers/node_emitter_transform.js +0 -88
  590. package/src/transformers/patch_alias_reference_resolution.js +0 -129
  591. package/src/transformers/program.js +0 -998
  592. package/src/transformers/r3_metadata_transform.js +0 -73
  593. package/src/transformers/r3_transform.js +0 -44
  594. package/src/transformers/util.js +0 -122
  595. package/src/typescript_support.js +0 -74
  596. package/src/version.js +0 -28
@@ -1,317 +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/src/ngtsc/imports/src/emitter", ["require", "exports", "tslib", "@angular/compiler", "typescript", "@angular/compiler-cli/src/ngtsc/file_system", "@angular/compiler-cli/src/ngtsc/file_system/src/util", "@angular/compiler-cli/src/ngtsc/util/src/typescript", "@angular/compiler-cli/src/ngtsc/imports/src/find_export"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.UnifiedModulesStrategy = exports.RelativePathStrategy = exports.LogicalProjectStrategy = exports.AbsoluteModuleStrategy = exports.LocalIdentifierStrategy = exports.ReferenceEmitter = exports.ImportFlags = 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 compiler_1 = require("@angular/compiler");
22
- var ts = require("typescript");
23
- var file_system_1 = require("@angular/compiler-cli/src/ngtsc/file_system");
24
- var util_1 = require("@angular/compiler-cli/src/ngtsc/file_system/src/util");
25
- var typescript_1 = require("@angular/compiler-cli/src/ngtsc/util/src/typescript");
26
- var find_export_1 = require("@angular/compiler-cli/src/ngtsc/imports/src/find_export");
27
- /**
28
- * Flags which alter the imports generated by the `ReferenceEmitter`.
29
- */
30
- var ImportFlags;
31
- (function (ImportFlags) {
32
- ImportFlags[ImportFlags["None"] = 0] = "None";
33
- /**
34
- * Force the generation of a new import when generating a reference, even if an identifier already
35
- * exists in the target file which could be used instead.
36
- *
37
- * This is sometimes required if there's a risk TypeScript might remove imports during emit.
38
- */
39
- ImportFlags[ImportFlags["ForceNewImport"] = 1] = "ForceNewImport";
40
- /**
41
- * Don't make use of any aliasing information when emitting a reference.
42
- *
43
- * This is sometimes required if emitting into a context where generated references will be fed
44
- * into TypeScript and type-checked (such as in template type-checking).
45
- */
46
- ImportFlags[ImportFlags["NoAliasing"] = 2] = "NoAliasing";
47
- /**
48
- * Indicates that an import to a type-only declaration is allowed.
49
- *
50
- * For references that occur in type-positions, the referred declaration may be a type-only
51
- * declaration that is not retained during emit. Including this flag allows to emit references to
52
- * type-only declarations as used in e.g. template type-checking.
53
- */
54
- ImportFlags[ImportFlags["AllowTypeImports"] = 4] = "AllowTypeImports";
55
- })(ImportFlags = exports.ImportFlags || (exports.ImportFlags = {}));
56
- /**
57
- * Generates `Expression`s which refer to `Reference`s in a given context.
58
- *
59
- * A `ReferenceEmitter` uses one or more `ReferenceEmitStrategy` implementations to produce an
60
- * `Expression` which refers to a `Reference` in the context of a particular file.
61
- */
62
- var ReferenceEmitter = /** @class */ (function () {
63
- function ReferenceEmitter(strategies) {
64
- this.strategies = strategies;
65
- }
66
- ReferenceEmitter.prototype.emit = function (ref, context, importFlags) {
67
- var e_1, _a;
68
- if (importFlags === void 0) { importFlags = ImportFlags.None; }
69
- try {
70
- for (var _b = (0, tslib_1.__values)(this.strategies), _c = _b.next(); !_c.done; _c = _b.next()) {
71
- var strategy = _c.value;
72
- var emitted = strategy.emit(ref, context, importFlags);
73
- if (emitted !== null) {
74
- return emitted;
75
- }
76
- }
77
- }
78
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
79
- finally {
80
- try {
81
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
82
- }
83
- finally { if (e_1) throw e_1.error; }
84
- }
85
- throw new Error("Unable to write a reference to " + (0, typescript_1.nodeNameForError)(ref.node) + " in " + ref.node.getSourceFile().fileName + " from " + context.fileName);
86
- };
87
- return ReferenceEmitter;
88
- }());
89
- exports.ReferenceEmitter = ReferenceEmitter;
90
- /**
91
- * A `ReferenceEmitStrategy` which will refer to declarations by any local `ts.Identifier`s, if
92
- * such identifiers are available.
93
- */
94
- var LocalIdentifierStrategy = /** @class */ (function () {
95
- function LocalIdentifierStrategy() {
96
- }
97
- LocalIdentifierStrategy.prototype.emit = function (ref, context, importFlags) {
98
- var refSf = (0, typescript_1.getSourceFile)(ref.node);
99
- // If the emitter has specified ForceNewImport, then LocalIdentifierStrategy should not use a
100
- // local identifier at all, *except* in the source file where the node is actually declared.
101
- if (importFlags & ImportFlags.ForceNewImport && refSf !== context) {
102
- return null;
103
- }
104
- // If referenced node is not an actual TS declaration (e.g. `class Foo` or `function foo() {}`,
105
- // etc) and it is in the current file then just use it directly.
106
- // This is important because the reference could be a property access (e.g. `exports.foo`). In
107
- // such a case, the reference's `identities` property would be `[foo]`, which would result in an
108
- // invalid emission of a free-standing `foo` identifier, rather than `exports.foo`.
109
- if (!(0, typescript_1.isDeclaration)(ref.node) && refSf === context) {
110
- return {
111
- expression: new compiler_1.WrappedNodeExpr(ref.node),
112
- importedFile: null,
113
- };
114
- }
115
- // A Reference can have multiple identities in different files, so it may already have an
116
- // Identifier in the requested context file.
117
- var identifier = ref.getIdentityIn(context);
118
- if (identifier !== null) {
119
- return {
120
- expression: new compiler_1.WrappedNodeExpr(identifier),
121
- importedFile: null,
122
- };
123
- }
124
- else {
125
- return null;
126
- }
127
- };
128
- return LocalIdentifierStrategy;
129
- }());
130
- exports.LocalIdentifierStrategy = LocalIdentifierStrategy;
131
- /**
132
- * A `ReferenceEmitStrategy` which will refer to declarations that come from `node_modules` using
133
- * an absolute import.
134
- *
135
- * Part of this strategy involves looking at the target entry point and identifying the exported
136
- * name of the targeted declaration, as it might be different from the declared name (e.g. a
137
- * directive might be declared as FooDirImpl, but exported as FooDir). If no export can be found
138
- * which maps back to the original directive, an error is thrown.
139
- */
140
- var AbsoluteModuleStrategy = /** @class */ (function () {
141
- function AbsoluteModuleStrategy(program, checker, moduleResolver, reflectionHost) {
142
- this.program = program;
143
- this.checker = checker;
144
- this.moduleResolver = moduleResolver;
145
- this.reflectionHost = reflectionHost;
146
- /**
147
- * A cache of the exports of specific modules, because resolving a module to its exports is a
148
- * costly operation.
149
- */
150
- this.moduleExportsCache = new Map();
151
- }
152
- AbsoluteModuleStrategy.prototype.emit = function (ref, context, importFlags) {
153
- if (ref.bestGuessOwningModule === null) {
154
- // There is no module name available for this Reference, meaning it was arrived at via a
155
- // relative path.
156
- return null;
157
- }
158
- else if (!(0, typescript_1.isDeclaration)(ref.node)) {
159
- // It's not possible to import something which isn't a declaration.
160
- throw new Error("Debug assert: unable to import a Reference to non-declaration of type " + ts.SyntaxKind[ref.node.kind] + ".");
161
- }
162
- else if ((importFlags & ImportFlags.AllowTypeImports) === 0 && (0, typescript_1.isTypeDeclaration)(ref.node)) {
163
- throw new Error("Importing a type-only declaration of type " + ts.SyntaxKind[ref.node.kind] + " in a value position is not allowed.");
164
- }
165
- // Try to find the exported name of the declaration, if one is available.
166
- var _a = ref.bestGuessOwningModule, specifier = _a.specifier, resolutionContext = _a.resolutionContext;
167
- var exports = this.getExportsOfModule(specifier, resolutionContext);
168
- if (exports === null || !exports.exportMap.has(ref.node)) {
169
- // TODO(alxhub): make this error a ts.Diagnostic pointing at whatever caused this import to be
170
- // triggered.
171
- throw new Error("Symbol " + ref.debugName + " declared in " + (0, typescript_1.getSourceFile)(ref.node).fileName + " is not exported from " + specifier + " (import into " + context.fileName + ")");
172
- }
173
- var symbolName = exports.exportMap.get(ref.node);
174
- return {
175
- expression: new compiler_1.ExternalExpr(new compiler_1.ExternalReference(specifier, symbolName)),
176
- importedFile: exports.module,
177
- };
178
- };
179
- AbsoluteModuleStrategy.prototype.getExportsOfModule = function (moduleName, fromFile) {
180
- if (!this.moduleExportsCache.has(moduleName)) {
181
- this.moduleExportsCache.set(moduleName, this.enumerateExportsOfModule(moduleName, fromFile));
182
- }
183
- return this.moduleExportsCache.get(moduleName);
184
- };
185
- AbsoluteModuleStrategy.prototype.enumerateExportsOfModule = function (specifier, fromFile) {
186
- var e_2, _a;
187
- // First, resolve the module specifier to its entry point, and get the ts.Symbol for it.
188
- var entryPointFile = this.moduleResolver.resolveModule(specifier, fromFile);
189
- if (entryPointFile === null) {
190
- return null;
191
- }
192
- var exports = this.reflectionHost.getExportsOfModule(entryPointFile);
193
- if (exports === null) {
194
- return null;
195
- }
196
- var exportMap = new Map();
197
- try {
198
- for (var exports_1 = (0, tslib_1.__values)(exports), exports_1_1 = exports_1.next(); !exports_1_1.done; exports_1_1 = exports_1.next()) {
199
- var _b = (0, tslib_1.__read)(exports_1_1.value, 2), name_1 = _b[0], declaration = _b[1];
200
- if (exportMap.has(declaration.node)) {
201
- // An export for this declaration has already been registered. We prefer an export that
202
- // has the same name as the declared name, i.e. is not an aliased export. This is relevant
203
- // for partial compilations where emitted references should import symbols using a stable
204
- // name. This is particularly relevant for declarations inside VE-generated libraries, as
205
- // such libraries contain private, unstable reexports of symbols.
206
- var existingExport = exportMap.get(declaration.node);
207
- if ((0, typescript_1.isNamedDeclaration)(declaration.node) && declaration.node.name.text === existingExport) {
208
- continue;
209
- }
210
- }
211
- exportMap.set(declaration.node, name_1);
212
- }
213
- }
214
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
215
- finally {
216
- try {
217
- if (exports_1_1 && !exports_1_1.done && (_a = exports_1.return)) _a.call(exports_1);
218
- }
219
- finally { if (e_2) throw e_2.error; }
220
- }
221
- return { module: entryPointFile, exportMap: exportMap };
222
- };
223
- return AbsoluteModuleStrategy;
224
- }());
225
- exports.AbsoluteModuleStrategy = AbsoluteModuleStrategy;
226
- /**
227
- * A `ReferenceEmitStrategy` which will refer to declarations via relative paths, provided they're
228
- * both in the logical project "space" of paths.
229
- *
230
- * This is trickier than it sounds, as the two files may be in different root directories in the
231
- * project. Simply calculating a file system relative path between the two is not sufficient.
232
- * Instead, `LogicalProjectPath`s are used.
233
- */
234
- var LogicalProjectStrategy = /** @class */ (function () {
235
- function LogicalProjectStrategy(reflector, logicalFs) {
236
- this.reflector = reflector;
237
- this.logicalFs = logicalFs;
238
- }
239
- LogicalProjectStrategy.prototype.emit = function (ref, context) {
240
- var destSf = (0, typescript_1.getSourceFile)(ref.node);
241
- // Compute the relative path from the importing file to the file being imported. This is done
242
- // as a logical path computation, because the two files might be in different rootDirs.
243
- var destPath = this.logicalFs.logicalPathOfSf(destSf);
244
- if (destPath === null) {
245
- // The imported file is not within the logical project filesystem.
246
- return null;
247
- }
248
- var originPath = this.logicalFs.logicalPathOfSf(context);
249
- if (originPath === null) {
250
- throw new Error("Debug assert: attempt to import from " + context.fileName + " but it's outside the program?");
251
- }
252
- // There's no way to emit a relative reference from a file to itself.
253
- if (destPath === originPath) {
254
- return null;
255
- }
256
- var name = (0, find_export_1.findExportedNameOfNode)(ref.node, destSf, this.reflector);
257
- if (name === null) {
258
- // The target declaration isn't exported from the file it's declared in. This is an issue!
259
- return null;
260
- }
261
- // With both files expressed as LogicalProjectPaths, getting the module specifier as a relative
262
- // path is now straightforward.
263
- var moduleName = file_system_1.LogicalProjectPath.relativePathBetween(originPath, destPath);
264
- return {
265
- expression: new compiler_1.ExternalExpr({ moduleName: moduleName, name: name }),
266
- importedFile: destSf,
267
- };
268
- };
269
- return LogicalProjectStrategy;
270
- }());
271
- exports.LogicalProjectStrategy = LogicalProjectStrategy;
272
- /**
273
- * A `ReferenceEmitStrategy` which constructs relatives paths between `ts.SourceFile`s.
274
- *
275
- * This strategy can be used if there is no `rootDir`/`rootDirs` structure for the project which
276
- * necessitates the stronger logic of `LogicalProjectStrategy`.
277
- */
278
- var RelativePathStrategy = /** @class */ (function () {
279
- function RelativePathStrategy(reflector) {
280
- this.reflector = reflector;
281
- }
282
- RelativePathStrategy.prototype.emit = function (ref, context) {
283
- var destSf = (0, typescript_1.getSourceFile)(ref.node);
284
- var relativePath = (0, file_system_1.relative)((0, file_system_1.dirname)((0, file_system_1.absoluteFromSourceFile)(context)), (0, file_system_1.absoluteFromSourceFile)(destSf));
285
- var moduleName = (0, file_system_1.toRelativeImport)((0, util_1.stripExtension)(relativePath));
286
- var name = (0, find_export_1.findExportedNameOfNode)(ref.node, destSf, this.reflector);
287
- return { expression: new compiler_1.ExternalExpr({ moduleName: moduleName, name: name }), importedFile: destSf };
288
- };
289
- return RelativePathStrategy;
290
- }());
291
- exports.RelativePathStrategy = RelativePathStrategy;
292
- /**
293
- * A `ReferenceEmitStrategy` which uses a `UnifiedModulesHost` to generate absolute import
294
- * references.
295
- */
296
- var UnifiedModulesStrategy = /** @class */ (function () {
297
- function UnifiedModulesStrategy(reflector, unifiedModulesHost) {
298
- this.reflector = reflector;
299
- this.unifiedModulesHost = unifiedModulesHost;
300
- }
301
- UnifiedModulesStrategy.prototype.emit = function (ref, context) {
302
- var destSf = (0, typescript_1.getSourceFile)(ref.node);
303
- var name = (0, find_export_1.findExportedNameOfNode)(ref.node, destSf, this.reflector);
304
- if (name === null) {
305
- return null;
306
- }
307
- var moduleName = this.unifiedModulesHost.fileNameToModuleName(destSf.fileName, context.fileName);
308
- return {
309
- expression: new compiler_1.ExternalExpr({ moduleName: moduleName, name: name }),
310
- importedFile: destSf,
311
- };
312
- };
313
- return UnifiedModulesStrategy;
314
- }());
315
- exports.UnifiedModulesStrategy = UnifiedModulesStrategy;
316
- });
317
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvaW1wb3J0cy9zcmMvZW1pdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0lBQUE7Ozs7OztPQU1HO0lBQ0gsOENBQStGO0lBQy9GLCtCQUFpQztJQUdqQywyRUFBcUk7SUFDckksNkVBQTBEO0lBRTFELGtGQUFnSTtJQUVoSSx1RkFBcUQ7SUFLckQ7O09BRUc7SUFDSCxJQUFZLFdBMkJYO0lBM0JELFdBQVksV0FBVztRQUNyQiw2Q0FBVyxDQUFBO1FBRVg7Ozs7O1dBS0c7UUFDSCxpRUFBcUIsQ0FBQTtRQUVyQjs7Ozs7V0FLRztRQUNILHlEQUFpQixDQUFBO1FBRWpCOzs7Ozs7V0FNRztRQUNILHFFQUF1QixDQUFBO0lBQ3pCLENBQUMsRUEzQlcsV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUEyQnRCO0lBMEREOzs7OztPQUtHO0lBQ0g7UUFDRSwwQkFBb0IsVUFBbUM7WUFBbkMsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFBRyxDQUFDO1FBRTNELCtCQUFJLEdBQUosVUFBSyxHQUFjLEVBQUUsT0FBc0IsRUFBRSxXQUEyQzs7WUFBM0MsNEJBQUEsRUFBQSxjQUEyQixXQUFXLENBQUMsSUFBSTs7Z0JBRXRGLEtBQXVCLElBQUEsS0FBQSxzQkFBQSxJQUFJLENBQUMsVUFBVSxDQUFBLGdCQUFBLDRCQUFFO29CQUFuQyxJQUFNLFFBQVEsV0FBQTtvQkFDakIsSUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO29CQUN6RCxJQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7d0JBQ3BCLE9BQU8sT0FBTyxDQUFDO3FCQUNoQjtpQkFDRjs7Ozs7Ozs7O1lBQ0QsTUFBTSxJQUFJLEtBQUss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Z0I7WUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQUcsQ0FBQztRQUVqRyxxQ0FBSSxHQUFKLFVBQUssR0FBYyxFQUFFLE9BQXNCO1lBQ3pDLElBQU0sTUFBTSxHQUFHLElBQUEsMEJBQWEsRUFBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkMsSUFBTSxJQUFJLEdBQUcsSUFBQSxvQ0FBc0IsRUFBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdEUsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFO2dCQUNqQixPQUFPLElBQUksQ0FBQzthQUNiO1lBRUQsSUFBTSxVQUFVLEdBQ1osSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRXBGLE9BQU87Z0JBQ0wsVUFBVSxFQUFFLElBQUksdUJBQVksQ0FBQyxFQUFDLFVBQVUsWUFBQSxFQUFFLElBQUksTUFBQSxFQUFDLENBQUM7Z0JBQ2hELFlBQVksRUFBRSxNQUFNO2FBQ3JCLENBQUM7UUFDSixDQUFDO1FBQ0gsNkJBQUM7SUFBRCxDQUFDLEFBbEJELElBa0JDO0lBbEJZLHdEQUFzQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtFeHByZXNzaW9uLCBFeHRlcm5hbEV4cHIsIEV4dGVybmFsUmVmZXJlbmNlLCBXcmFwcGVkTm9kZUV4cHJ9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge1VuaWZpZWRNb2R1bGVzSG9zdH0gZnJvbSAnLi4vLi4vY29yZS9hcGknO1xuaW1wb3J0IHthYnNvbHV0ZUZyb21Tb3VyY2VGaWxlLCBkaXJuYW1lLCBMb2dpY2FsRmlsZVN5c3RlbSwgTG9naWNhbFByb2plY3RQYXRoLCByZWxhdGl2ZSwgdG9SZWxhdGl2ZUltcG9ydH0gZnJvbSAnLi4vLi4vZmlsZV9zeXN0ZW0nO1xuaW1wb3J0IHtzdHJpcEV4dGVuc2lvbn0gZnJvbSAnLi4vLi4vZmlsZV9zeXN0ZW0vc3JjL3V0aWwnO1xuaW1wb3J0IHtEZWNsYXJhdGlvbk5vZGUsIFJlZmxlY3Rpb25Ib3N0fSBmcm9tICcuLi8uLi9yZWZsZWN0aW9uJztcbmltcG9ydCB7Z2V0U291cmNlRmlsZSwgaXNEZWNsYXJhdGlvbiwgaXNOYW1lZERlY2xhcmF0aW9uLCBpc1R5cGVEZWNsYXJhdGlvbiwgbm9kZU5hbWVGb3JFcnJvcn0gZnJvbSAnLi4vLi4vdXRpbC9zcmMvdHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7ZmluZEV4cG9ydGVkTmFtZU9mTm9kZX0gZnJvbSAnLi9maW5kX2V4cG9ydCc7XG5pbXBvcnQge1JlZmVyZW5jZX0gZnJvbSAnLi9yZWZlcmVuY2VzJztcbmltcG9ydCB7TW9kdWxlUmVzb2x2ZXJ9IGZyb20gJy4vcmVzb2x2ZXInO1xuXG5cbi8qKlxuICogRmxhZ3Mgd2hpY2ggYWx0ZXIgdGhlIGltcG9ydHMgZ2VuZXJhdGVkIGJ5IHRoZSBgUmVmZXJlbmNlRW1pdHRlcmAuXG4gKi9cbmV4cG9ydCBlbnVtIEltcG9ydEZsYWdzIHtcbiAgTm9uZSA9IDB4MDAsXG5cbiAgLyoqXG4gICAqIEZvcmNlIHRoZSBnZW5lcmF0aW9uIG9mIGEgbmV3IGltcG9ydCB3aGVuIGdlbmVyYXRpbmcgYSByZWZlcmVuY2UsIGV2ZW4gaWYgYW4gaWRlbnRpZmllciBhbHJlYWR5XG4gICAqIGV4aXN0cyBpbiB0aGUgdGFyZ2V0IGZpbGUgd2hpY2ggY291bGQgYmUgdXNlZCBpbnN0ZWFkLlxuICAgKlxuICAgKiBUaGlzIGlzIHNvbWV0aW1lcyByZXF1aXJlZCBpZiB0aGVyZSdzIGEgcmlzayBUeXBlU2NyaXB0IG1pZ2h0IHJlbW92ZSBpbXBvcnRzIGR1cmluZyBlbWl0LlxuICAgKi9cbiAgRm9yY2VOZXdJbXBvcnQgPSAweDAxLFxuXG4gIC8qKlxuICAgKiBEb24ndCBtYWtlIHVzZSBvZiBhbnkgYWxpYXNpbmcgaW5mb3JtYXRpb24gd2hlbiBlbWl0dGluZyBhIHJlZmVyZW5jZS5cbiAgICpcbiAgICogVGhpcyBpcyBzb21ldGltZXMgcmVxdWlyZWQgaWYgZW1pdHRpbmcgaW50byBhIGNvbnRleHQgd2hlcmUgZ2VuZXJhdGVkIHJlZmVyZW5jZXMgd2lsbCBiZSBmZWRcbiAgICogaW50byBUeXBlU2NyaXB0IGFuZCB0eXBlLWNoZWNrZWQgKHN1Y2ggYXMgaW4gdGVtcGxhdGUgdHlwZS1jaGVja2luZykuXG4gICAqL1xuICBOb0FsaWFzaW5nID0gMHgwMixcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgYW4gaW1wb3J0IHRvIGEgdHlwZS1vbmx5IGRlY2xhcmF0aW9uIGlzIGFsbG93ZWQuXG4gICAqXG4gICAqIEZvciByZWZlcmVuY2VzIHRoYXQgb2NjdXIgaW4gdHlwZS1wb3NpdGlvbnMsIHRoZSByZWZlcnJlZCBkZWNsYXJhdGlvbiBtYXkgYmUgYSB0eXBlLW9ubHlcbiAgICogZGVjbGFyYXRpb24gdGhhdCBpcyBub3QgcmV0YWluZWQgZHVyaW5nIGVtaXQuIEluY2x1ZGluZyB0aGlzIGZsYWcgYWxsb3dzIHRvIGVtaXQgcmVmZXJlbmNlcyB0b1xuICAgKiB0eXBlLW9ubHkgZGVjbGFyYXRpb25zIGFzIHVzZWQgaW4gZS5nLiB0ZW1wbGF0ZSB0eXBlLWNoZWNraW5nLlxuICAgKi9cbiAgQWxsb3dUeXBlSW1wb3J0cyA9IDB4MDQsXG59XG5cbi8qKlxuICogQW4gZW1pdHRlciBzdHJhdGVneSBoYXMgdGhlIGFiaWxpdHkgdG8gaW5kaWNhdGUgd2hpY2ggYHRzLlNvdXJjZUZpbGVgIGlzIGJlaW5nIGltcG9ydGVkIGJ5IHRoZVxuICogZXhwcmVzc2lvbiB0aGF0IGl0IGhhcyBnZW5lcmF0ZWQuIFRoaXMgaW5mb3JtYXRpb24gaXMgdXNlZnVsIGZvciBjb25zdW1lcnMgb2YgdGhlIGVtaXR0ZWRcbiAqIHJlZmVyZW5jZSB0aGF0IHdvdWxkIG90aGVyd2lzZSBoYXZlIHRvIHBlcmZvcm0gYSByZWxhdGl2ZWx5IGV4cGVuc2l2ZSBtb2R1bGUgcmVzb2x1dGlvbiBzdGVwLFxuICogZS5nLiBmb3IgY3ljbGljIGltcG9ydCBhbmFseXNpcy4gSW4gY2FzZXMgdGhlIGVtaXR0ZXIgaXMgdW5hYmxlIHRvIGRlZmluaXRpdmVseSBkZXRlcm1pbmUgdGhlXG4gKiBpbXBvcnRlZCBzb3VyY2UgZmlsZSBvciBhIGNvbXB1dGF0aW9uIHdvdWxkIGJlIHJlcXVpcmVkIHRvIGFjdHVhbGx5IGRldGVybWluZSB0aGUgaW1wb3J0ZWRcbiAqIHNvdXJjZSBmaWxlLCB0aGVuIGAndW5rbm93bidgIHNob3VsZCBiZSByZXR1cm5lZC4gSWYgdGhlIGdlbmVyYXRlZCBleHByZXNzaW9uIGRvZXMgbm90IHJlcHJlc2VudFxuICogYW4gaW1wb3J0IHRoZW4gYG51bGxgIHNob3VsZCBiZSB1c2VkLlxuICovXG5leHBvcnQgdHlwZSBJbXBvcnRlZEZpbGUgPSB0cy5Tb3VyY2VGaWxlfCd1bmtub3duJ3xudWxsO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGVtaXR0ZWQgZXhwcmVzc2lvbiBvZiBhIGBSZWZlcmVuY2VgIHRoYXQgaXMgdmFsaWQgaW4gdGhlIHNvdXJjZSBmaWxlIGl0IHdhc1xuICogZW1pdHRlZCBmcm9tLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVtaXR0ZWRSZWZlcmVuY2Uge1xuICAvKipcbiAgICogVGhlIGV4cHJlc3Npb24gdGhhdCByZWZlcnMgdG8gYFJlZmVyZW5jZWAuXG4gICAqL1xuICBleHByZXNzaW9uOiBFeHByZXNzaW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgYHRzLlNvdXJjZUZpbGVgIHRoYXQgaXMgaW1wb3J0ZWQgYnkgYGV4cHJlc3Npb25gLiBUaGlzIGlzIG5vdCBuZWNlc3NhcmlseSB0aGUgc291cmNlIGZpbGVcbiAgICogb2YgdGhlIGBSZWZlcmVuY2VgJ3MgZGVjbGFyYXRpb24gbm9kZSwgYXMgdGhlIHJlZmVyZW5jZSBtYXkgaGF2ZSBiZWVuIHJld3JpdHRlbiB0aHJvdWdoIGFuXG4gICAqIGFsaWFzIGV4cG9ydC4gSXQgY291bGQgYWxzbyBiZSBgbnVsbGAgaWYgYGV4cHJlc3Npb25gIGlzIGEgbG9jYWwgaWRlbnRpZmllciwgb3IgYCd1bmtub3duJ2AgaWZcbiAgICogdGhlIGV4YWN0IHNvdXJjZSBmaWxlIHRoYXQgaXMgYmVpbmcgaW1wb3J0ZWQgaXMgbm90IGtub3duIHRvIHRoZSBlbWl0dGVyLlxuICAgKi9cbiAgaW1wb3J0ZWRGaWxlOiBJbXBvcnRlZEZpbGU7XG59XG5cbi8qKlxuICogQSBwYXJ0aWN1bGFyIHN0cmF0ZWd5IGZvciBnZW5lcmF0aW5nIGFuIGV4cHJlc3Npb24gd2hpY2ggcmVmZXJzIHRvIGEgYFJlZmVyZW5jZWAuXG4gKlxuICogVGhlcmUgYXJlIG1hbnkgcG90ZW50aWFsIHdheXMgYSBnaXZlbiBgUmVmZXJlbmNlYCBjb3VsZCBiZSByZWZlcnJlZCB0byBpbiB0aGUgY29udGV4dCBvZiBhIGdpdmVuXG4gKiBmaWxlLiBBIGxvY2FsIGRlY2xhcmF0aW9uIGNvdWxkIGJlIGF2YWlsYWJsZSwgdGhlIGBSZWZlcmVuY2VgIGNvdWxkIGJlIGltcG9ydGFibGUgdmlhIGEgcmVsYXRpdmVcbiAqIGltcG9ydCB3aXRoaW4gdGhlIHByb2plY3QsIG9yIGFuIGFic29sdXRlIGltcG9ydCBpbnRvIGBub2RlX21vZHVsZXNgIG1pZ2h0IGJlIG5lY2Vzc2FyeS5cbiAqXG4gKiBEaWZmZXJlbnQgYFJlZmVyZW5jZUVtaXRTdHJhdGVneWAgaW1wbGVtZW50YXRpb25zIGltcGxlbWVudCBzcGVjaWZpYyBsb2dpYyBmb3IgZ2VuZXJhdGluZyBzdWNoXG4gKiByZWZlcmVuY2VzLiBBIHNpbmdsZSBzdHJhdGVneSAoc3VjaCBhcyB1c2luZyBhIGxvY2FsIGRlY2xhcmF0aW9uKSBtYXkgbm90IGFsd2F5cyBiZSBhYmxlIHRvXG4gKiBnZW5lcmF0ZSBhbiBleHByZXNzaW9uIGZvciBldmVyeSBgUmVmZXJlbmNlYCAoZm9yIGV4YW1wbGUsIGlmIG5vIGxvY2FsIGlkZW50aWZpZXIgaXMgYXZhaWxhYmxlKSxcbiAqIGFuZCBtYXkgcmV0dXJuIGBudWxsYCBpbiBzdWNoIGEgY2FzZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWZlcmVuY2VFbWl0U3RyYXRlZ3kge1xuICAvKipcbiAgICogRW1pdCBhbiBgRXhwcmVzc2lvbmAgd2hpY2ggcmVmZXJzIHRvIHRoZSBnaXZlbiBgUmVmZXJlbmNlYCBpbiB0aGUgY29udGV4dCBvZiBhIHBhcnRpY3VsYXJcbiAgICogc291cmNlIGZpbGUsIGlmIHBvc3NpYmxlLlxuICAgKlxuICAgKiBAcGFyYW0gcmVmIHRoZSBgUmVmZXJlbmNlYCBmb3Igd2hpY2ggdG8gZ2VuZXJhdGUgYW4gZXhwcmVzc2lvblxuICAgKiBAcGFyYW0gY29udGV4dCB0aGUgc291cmNlIGZpbGUgaW4gd2hpY2ggdGhlIGBFeHByZXNzaW9uYCBtdXN0IGJlIHZhbGlkXG4gICAqIEBwYXJhbSBpbXBvcnRGbGFncyBhIGZsYWcgd2hpY2ggY29udHJvbHMgd2hldGhlciBpbXBvcnRzIHNob3VsZCBiZSBnZW5lcmF0ZWQgb3Igbm90XG4gICAqIEByZXR1cm5zIGFuIGBFbWl0dGVkUmVmZXJlbmNlYCB3aGljaCByZWZlcnMgdG8gdGhlIGBSZWZlcmVuY2VgLCBvciBgbnVsbGAgaWYgbm9uZSBjYW4gYmVcbiAgICogICBnZW5lcmF0ZWRcbiAgICovXG4gIGVtaXQocmVmOiBSZWZlcmVuY2UsIGNvbnRleHQ6IHRzLlNvdXJjZUZpbGUsIGltcG9ydEZsYWdzOiBJbXBvcnRGbGFncyk6IEVtaXR0ZWRSZWZlcmVuY2V8bnVsbDtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgYEV4cHJlc3Npb25gcyB3aGljaCByZWZlciB0byBgUmVmZXJlbmNlYHMgaW4gYSBnaXZlbiBjb250ZXh0LlxuICpcbiAqIEEgYFJlZmVyZW5jZUVtaXR0ZXJgIHVzZXMgb25lIG9yIG1vcmUgYFJlZmVyZW5jZUVtaXRTdHJhdGVneWAgaW1wbGVtZW50YXRpb25zIHRvIHByb2R1Y2UgYW5cbiAqIGBFeHByZXNzaW9uYCB3aGljaCByZWZlcnMgdG8gYSBgUmVmZXJlbmNlYCBpbiB0aGUgY29udGV4dCBvZiBhIHBhcnRpY3VsYXIgZmlsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlZmVyZW5jZUVtaXR0ZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0cmF0ZWdpZXM6IFJlZmVyZW5jZUVtaXRTdHJhdGVneVtdKSB7fVxuXG4gIGVtaXQocmVmOiBSZWZlcmVuY2UsIGNvbnRleHQ6IHRzLlNvdXJjZUZpbGUsIGltcG9ydEZsYWdzOiBJbXBvcnRGbGFncyA9IEltcG9ydEZsYWdzLk5vbmUpOlxuICAgICAgRW1pdHRlZFJlZmVyZW5jZSB7XG4gICAgZm9yIChjb25zdCBzdHJhdGVneSBvZiB0aGlzLnN0cmF0ZWdpZXMpIHtcbiAgICAgIGNvbnN0IGVtaXR0ZWQgPSBzdHJhdGVneS5lbWl0KHJlZiwgY29udGV4dCwgaW1wb3J0RmxhZ3MpO1xuICAgICAgaWYgKGVtaXR0ZWQgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGVtaXR0ZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIHdyaXRlIGEgcmVmZXJlbmNlIHRvICR7bm9kZU5hbWVGb3JFcnJvcihyZWYubm9kZSl9IGluICR7XG4gICAgICAgIHJlZi5ub2RlLmdldFNvdXJjZUZpbGUoKS5maWxlTmFtZX0gZnJvbSAke2NvbnRleHQuZmlsZU5hbWV9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBBIGBSZWZlcmVuY2VFbWl0U3RyYXRlZ3lgIHdoaWNoIHdpbGwgcmVmZXIgdG8gZGVjbGFyYXRpb25zIGJ5IGFueSBsb2NhbCBgdHMuSWRlbnRpZmllcmBzLCBpZlxuICogc3VjaCBpZGVudGlmaWVycyBhcmUgYXZhaWxhYmxlLlxuICovXG5leHBvcnQgY2xhc3MgTG9jYWxJZGVudGlmaWVyU3RyYXRlZ3kgaW1wbGVtZW50cyBSZWZlcmVuY2VFbWl0U3RyYXRlZ3kge1xuICBlbWl0KHJlZjogUmVmZXJlbmNlLCBjb250ZXh0OiB0cy5Tb3VyY2VGaWxlLCBpbXBvcnRGbGFnczogSW1wb3J0RmxhZ3MpOiBFbWl0dGVkUmVmZXJlbmNlfG51bGwge1xuICAgIGNvbnN0IHJlZlNmID0gZ2V0U291cmNlRmlsZShyZWYubm9kZSk7XG5cbiAgICAvLyBJZiB0aGUgZW1pdHRlciBoYXMgc3BlY2lmaWVkIEZvcmNlTmV3SW1wb3J0LCB0aGVuIExvY2FsSWRlbnRpZmllclN0cmF0ZWd5IHNob3VsZCBub3QgdXNlIGFcbiAgICAvLyBsb2NhbCBpZGVudGlmaWVyIGF0IGFsbCwgKmV4Y2VwdCogaW4gdGhlIHNvdXJjZSBmaWxlIHdoZXJlIHRoZSBub2RlIGlzIGFjdHVhbGx5IGRlY2xhcmVkLlxuICAgIGlmIChpbXBvcnRGbGFncyAmIEltcG9ydEZsYWdzLkZvcmNlTmV3SW1wb3J0ICYmIHJlZlNmICE9PSBjb250ZXh0KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBJZiByZWZlcmVuY2VkIG5vZGUgaXMgbm90IGFuIGFjdHVhbCBUUyBkZWNsYXJhdGlvbiAoZS5nLiBgY2xhc3MgRm9vYCBvciBgZnVuY3Rpb24gZm9vKCkge31gLFxuICAgIC8vIGV0YykgYW5kIGl0IGlzIGluIHRoZSBjdXJyZW50IGZpbGUgdGhlbiBqdXN0IHVzZSBpdCBkaXJlY3RseS5cbiAgICAvLyBUaGlzIGlzIGltcG9ydGFudCBiZWNhdXNlIHRoZSByZWZlcmVuY2UgY291bGQgYmUgYSBwcm9wZXJ0eSBhY2Nlc3MgKGUuZy4gYGV4cG9ydHMuZm9vYCkuIEluXG4gICAgLy8gc3VjaCBhIGNhc2UsIHRoZSByZWZlcmVuY2UncyBgaWRlbnRpdGllc2AgcHJvcGVydHkgd291bGQgYmUgYFtmb29dYCwgd2hpY2ggd291bGQgcmVzdWx0IGluIGFuXG4gICAgLy8gaW52YWxpZCBlbWlzc2lvbiBvZiBhIGZyZWUtc3RhbmRpbmcgYGZvb2AgaWRlbnRpZmllciwgcmF0aGVyIHRoYW4gYGV4cG9ydHMuZm9vYC5cbiAgICBpZiAoIWlzRGVjbGFyYXRpb24ocmVmLm5vZGUpICYmIHJlZlNmID09PSBjb250ZXh0KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBleHByZXNzaW9uOiBuZXcgV3JhcHBlZE5vZGVFeHByKHJlZi5ub2RlKSxcbiAgICAgICAgaW1wb3J0ZWRGaWxlOiBudWxsLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBBIFJlZmVyZW5jZSBjYW4gaGF2ZSBtdWx0aXBsZSBpZGVudGl0aWVzIGluIGRpZmZlcmVudCBmaWxlcywgc28gaXQgbWF5IGFscmVhZHkgaGF2ZSBhblxuICAgIC8vIElkZW50aWZpZXIgaW4gdGhlIHJlcXVlc3RlZCBjb250ZXh0IGZpbGUuXG4gICAgY29uc3QgaWRlbnRpZmllciA9IHJlZi5nZXRJZGVudGl0eUluKGNvbnRleHQpO1xuICAgIGlmIChpZGVudGlmaWVyICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBleHByZXNzaW9uOiBuZXcgV3JhcHBlZE5vZGVFeHByKGlkZW50aWZpZXIpLFxuICAgICAgICBpbXBvcnRlZEZpbGU6IG51bGwsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBleHBvcnRlZCBkZWNsYXJhdGlvbnMgZnJvbSBhIG1vZHVsZSBzb3VyY2UgZmlsZS5cbiAqL1xuaW50ZXJmYWNlIE1vZHVsZUV4cG9ydHMge1xuICAvKipcbiAgICogVGhlIHNvdXJjZSBmaWxlIG9mIHRoZSBtb2R1bGUuXG4gICAqL1xuICBtb2R1bGU6IHRzLlNvdXJjZUZpbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBtYXAgb2YgZGVjbGFyYXRpb25zIHRvIHRoZWlyIGV4cG9ydGVkIG5hbWUuXG4gICAqL1xuICBleHBvcnRNYXA6IE1hcDxEZWNsYXJhdGlvbk5vZGUsIHN0cmluZz47XG59XG5cbi8qKlxuICogQSBgUmVmZXJlbmNlRW1pdFN0cmF0ZWd5YCB3aGljaCB3aWxsIHJlZmVyIHRvIGRlY2xhcmF0aW9ucyB0aGF0IGNvbWUgZnJvbSBgbm9kZV9tb2R1bGVzYCB1c2luZ1xuICogYW4gYWJzb2x1dGUgaW1wb3J0LlxuICpcbiAqIFBhcnQgb2YgdGhpcyBzdHJhdGVneSBpbnZvbHZlcyBsb29raW5nIGF0IHRoZSB0YXJnZXQgZW50cnkgcG9pbnQgYW5kIGlkZW50aWZ5aW5nIHRoZSBleHBvcnRlZFxuICogbmFtZSBvZiB0aGUgdGFyZ2V0ZWQgZGVjbGFyYXRpb24sIGFzIGl0IG1pZ2h0IGJlIGRpZmZlcmVudCBmcm9tIHRoZSBkZWNsYXJlZCBuYW1lIChlLmcuIGFcbiAqIGRpcmVjdGl2ZSBtaWdodCBiZSBkZWNsYXJlZCBhcyBGb29EaXJJbXBsLCBidXQgZXhwb3J0ZWQgYXMgRm9vRGlyKS4gSWYgbm8gZXhwb3J0IGNhbiBiZSBmb3VuZFxuICogd2hpY2ggbWFwcyBiYWNrIHRvIHRoZSBvcmlnaW5hbCBkaXJlY3RpdmUsIGFuIGVycm9yIGlzIHRocm93bi5cbiAqL1xuZXhwb3J0IGNsYXNzIEFic29sdXRlTW9kdWxlU3RyYXRlZ3kgaW1wbGVtZW50cyBSZWZlcmVuY2VFbWl0U3RyYXRlZ3kge1xuICAvKipcbiAgICogQSBjYWNoZSBvZiB0aGUgZXhwb3J0cyBvZiBzcGVjaWZpYyBtb2R1bGVzLCBiZWNhdXNlIHJlc29sdmluZyBhIG1vZHVsZSB0byBpdHMgZXhwb3J0cyBpcyBhXG4gICAqIGNvc3RseSBvcGVyYXRpb24uXG4gICAqL1xuICBwcml2YXRlIG1vZHVsZUV4cG9ydHNDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBNb2R1bGVFeHBvcnRzfG51bGw+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcm90ZWN0ZWQgcHJvZ3JhbTogdHMuUHJvZ3JhbSwgcHJvdGVjdGVkIGNoZWNrZXI6IHRzLlR5cGVDaGVja2VyLFxuICAgICAgcHJvdGVjdGVkIG1vZHVsZVJlc29sdmVyOiBNb2R1bGVSZXNvbHZlciwgcHJpdmF0ZSByZWZsZWN0aW9uSG9zdDogUmVmbGVjdGlvbkhvc3QpIHt9XG5cbiAgZW1pdChyZWY6IFJlZmVyZW5jZSwgY29udGV4dDogdHMuU291cmNlRmlsZSwgaW1wb3J0RmxhZ3M6IEltcG9ydEZsYWdzKTogRW1pdHRlZFJlZmVyZW5jZXxudWxsIHtcbiAgICBpZiAocmVmLmJlc3RHdWVzc093bmluZ01vZHVsZSA9PT0gbnVsbCkge1xuICAgICAgLy8gVGhlcmUgaXMgbm8gbW9kdWxlIG5hbWUgYXZhaWxhYmxlIGZvciB0aGlzIFJlZmVyZW5jZSwgbWVhbmluZyBpdCB3YXMgYXJyaXZlZCBhdCB2aWEgYVxuICAgICAgLy8gcmVsYXRpdmUgcGF0aC5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSBpZiAoIWlzRGVjbGFyYXRpb24ocmVmLm5vZGUpKSB7XG4gICAgICAvLyBJdCdzIG5vdCBwb3NzaWJsZSB0byBpbXBvcnQgc29tZXRoaW5nIHdoaWNoIGlzbid0IGEgZGVjbGFyYXRpb24uXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYERlYnVnIGFzc2VydDogdW5hYmxlIHRvIGltcG9ydCBhIFJlZmVyZW5jZSB0byBub24tZGVjbGFyYXRpb24gb2YgdHlwZSAke1xuICAgICAgICAgIHRzLlN5bnRheEtpbmRbcmVmLm5vZGUua2luZF19LmApO1xuICAgIH0gZWxzZSBpZiAoKGltcG9ydEZsYWdzICYgSW1wb3J0RmxhZ3MuQWxsb3dUeXBlSW1wb3J0cykgPT09IDAgJiYgaXNUeXBlRGVjbGFyYXRpb24ocmVmLm5vZGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEltcG9ydGluZyBhIHR5cGUtb25seSBkZWNsYXJhdGlvbiBvZiB0eXBlICR7XG4gICAgICAgICAgdHMuU3ludGF4S2luZFtyZWYubm9kZS5raW5kXX0gaW4gYSB2YWx1ZSBwb3NpdGlvbiBpcyBub3QgYWxsb3dlZC5gKTtcbiAgICB9XG5cbiAgICAvLyBUcnkgdG8gZmluZCB0aGUgZXhwb3J0ZWQgbmFtZSBvZiB0aGUgZGVjbGFyYXRpb24sIGlmIG9uZSBpcyBhdmFpbGFibGUuXG4gICAgY29uc3Qge3NwZWNpZmllciwgcmVzb2x1dGlvbkNvbnRleHR9ID0gcmVmLmJlc3RHdWVzc093bmluZ01vZHVsZTtcbiAgICBjb25zdCBleHBvcnRzID0gdGhpcy5nZXRFeHBvcnRzT2ZNb2R1bGUoc3BlY2lmaWVyLCByZXNvbHV0aW9uQ29udGV4dCk7XG4gICAgaWYgKGV4cG9ydHMgPT09IG51bGwgfHwgIWV4cG9ydHMuZXhwb3J0TWFwLmhhcyhyZWYubm9kZSkpIHtcbiAgICAgIC8vIFRPRE8oYWx4aHViKTogbWFrZSB0aGlzIGVycm9yIGEgdHMuRGlhZ25vc3RpYyBwb2ludGluZyBhdCB3aGF0ZXZlciBjYXVzZWQgdGhpcyBpbXBvcnQgdG8gYmVcbiAgICAgIC8vIHRyaWdnZXJlZC5cbiAgICAgIHRocm93IG5ldyBFcnJvcihgU3ltYm9sICR7cmVmLmRlYnVnTmFtZX0gZGVjbGFyZWQgaW4gJHtcbiAgICAgICAgICBnZXRTb3VyY2VGaWxlKHJlZi5ub2RlKS5maWxlTmFtZX0gaXMgbm90IGV4cG9ydGVkIGZyb20gJHtzcGVjaWZpZXJ9IChpbXBvcnQgaW50byAke1xuICAgICAgICAgIGNvbnRleHQuZmlsZU5hbWV9KWApO1xuICAgIH1cbiAgICBjb25zdCBzeW1ib2xOYW1lID0gZXhwb3J0cy5leHBvcnRNYXAuZ2V0KHJlZi5ub2RlKSE7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZXhwcmVzc2lvbjogbmV3IEV4dGVybmFsRXhwcihuZXcgRXh0ZXJuYWxSZWZlcmVuY2Uoc3BlY2lmaWVyLCBzeW1ib2xOYW1lKSksXG4gICAgICBpbXBvcnRlZEZpbGU6IGV4cG9ydHMubW9kdWxlLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldEV4cG9ydHNPZk1vZHVsZShtb2R1bGVOYW1lOiBzdHJpbmcsIGZyb21GaWxlOiBzdHJpbmcpOiBNb2R1bGVFeHBvcnRzfG51bGwge1xuICAgIGlmICghdGhpcy5tb2R1bGVFeHBvcnRzQ2FjaGUuaGFzKG1vZHVsZU5hbWUpKSB7XG4gICAgICB0aGlzLm1vZHVsZUV4cG9ydHNDYWNoZS5zZXQobW9kdWxlTmFtZSwgdGhpcy5lbnVtZXJhdGVFeHBvcnRzT2ZNb2R1bGUobW9kdWxlTmFtZSwgZnJvbUZpbGUpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubW9kdWxlRXhwb3J0c0NhY2hlLmdldChtb2R1bGVOYW1lKSE7XG4gIH1cblxuICBwcm90ZWN0ZWQgZW51bWVyYXRlRXhwb3J0c09mTW9kdWxlKHNwZWNpZmllcjogc3RyaW5nLCBmcm9tRmlsZTogc3RyaW5nKTogTW9kdWxlRXhwb3J0c3xudWxsIHtcbiAgICAvLyBGaXJzdCwgcmVzb2x2ZSB0aGUgbW9kdWxlIHNwZWNpZmllciB0byBpdHMgZW50cnkgcG9pbnQsIGFuZCBnZXQgdGhlIHRzLlN5bWJvbCBmb3IgaXQuXG4gICAgY29uc3QgZW50cnlQb2ludEZpbGUgPSB0aGlzLm1vZHVsZVJlc29sdmVyLnJlc29sdmVNb2R1bGUoc3BlY2lmaWVyLCBmcm9tRmlsZSk7XG4gICAgaWYgKGVudHJ5UG9pbnRGaWxlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBleHBvcnRzID0gdGhpcy5yZWZsZWN0aW9uSG9zdC5nZXRFeHBvcnRzT2ZNb2R1bGUoZW50cnlQb2ludEZpbGUpO1xuICAgIGlmIChleHBvcnRzID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgZXhwb3J0TWFwID0gbmV3IE1hcDxEZWNsYXJhdGlvbk5vZGUsIHN0cmluZz4oKTtcbiAgICBmb3IgKGNvbnN0IFtuYW1lLCBkZWNsYXJhdGlvbl0gb2YgZXhwb3J0cykge1xuICAgICAgaWYgKGV4cG9ydE1hcC5oYXMoZGVjbGFyYXRpb24ubm9kZSkpIHtcbiAgICAgICAgLy8gQW4gZXhwb3J0IGZvciB0aGlzIGRlY2xhcmF0aW9uIGhhcyBhbHJlYWR5IGJlZW4gcmVnaXN0ZXJlZC4gV2UgcHJlZmVyIGFuIGV4cG9ydCB0aGF0XG4gICAgICAgIC8vIGhhcyB0aGUgc2FtZSBuYW1lIGFzIHRoZSBkZWNsYXJlZCBuYW1lLCBpLmUuIGlzIG5vdCBhbiBhbGlhc2VkIGV4cG9ydC4gVGhpcyBpcyByZWxldmFudFxuICAgICAgICAvLyBmb3IgcGFydGlhbCBjb21waWxhdGlvbnMgd2hlcmUgZW1pdHRlZCByZWZlcmVuY2VzIHNob3VsZCBpbXBvcnQgc3ltYm9scyB1c2luZyBhIHN0YWJsZVxuICAgICAgICAvLyBuYW1lLiBUaGlzIGlzIHBhcnRpY3VsYXJseSByZWxldmFudCBmb3IgZGVjbGFyYXRpb25zIGluc2lkZSBWRS1nZW5lcmF0ZWQgbGlicmFyaWVzLCBhc1xuICAgICAgICAvLyBzdWNoIGxpYnJhcmllcyBjb250YWluIHByaXZhdGUsIHVuc3RhYmxlIHJlZXhwb3J0cyBvZiBzeW1ib2xzLlxuICAgICAgICBjb25zdCBleGlzdGluZ0V4cG9ydCA9IGV4cG9ydE1hcC5nZXQoZGVjbGFyYXRpb24ubm9kZSkhO1xuICAgICAgICBpZiAoaXNOYW1lZERlY2xhcmF0aW9uKGRlY2xhcmF0aW9uLm5vZGUpICYmIGRlY2xhcmF0aW9uLm5vZGUubmFtZS50ZXh0ID09PSBleGlzdGluZ0V4cG9ydCkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBleHBvcnRNYXAuc2V0KGRlY2xhcmF0aW9uLm5vZGUsIG5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4ge21vZHVsZTogZW50cnlQb2ludEZpbGUsIGV4cG9ydE1hcH07XG4gIH1cbn1cblxuLyoqXG4gKiBBIGBSZWZlcmVuY2VFbWl0U3RyYXRlZ3lgIHdoaWNoIHdpbGwgcmVmZXIgdG8gZGVjbGFyYXRpb25zIHZpYSByZWxhdGl2ZSBwYXRocywgcHJvdmlkZWQgdGhleSdyZVxuICogYm90aCBpbiB0aGUgbG9naWNhbCBwcm9qZWN0IFwic3BhY2VcIiBvZiBwYXRocy5cbiAqXG4gKiBUaGlzIGlzIHRyaWNraWVyIHRoYW4gaXQgc291bmRzLCBhcyB0aGUgdHdvIGZpbGVzIG1heSBiZSBpbiBkaWZmZXJlbnQgcm9vdCBkaXJlY3RvcmllcyBpbiB0aGVcbiAqIHByb2plY3QuIFNpbXBseSBjYWxjdWxhdGluZyBhIGZpbGUgc3lzdGVtIHJlbGF0aXZlIHBhdGggYmV0d2VlbiB0aGUgdHdvIGlzIG5vdCBzdWZmaWNpZW50LlxuICogSW5zdGVhZCwgYExvZ2ljYWxQcm9qZWN0UGF0aGBzIGFyZSB1c2VkLlxuICovXG5leHBvcnQgY2xhc3MgTG9naWNhbFByb2plY3RTdHJhdGVneSBpbXBsZW1lbnRzIFJlZmVyZW5jZUVtaXRTdHJhdGVneSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmbGVjdG9yOiBSZWZsZWN0aW9uSG9zdCwgcHJpdmF0ZSBsb2dpY2FsRnM6IExvZ2ljYWxGaWxlU3lzdGVtKSB7fVxuXG4gIGVtaXQocmVmOiBSZWZlcmVuY2UsIGNvbnRleHQ6IHRzLlNvdXJjZUZpbGUpOiBFbWl0dGVkUmVmZXJlbmNlfG51bGwge1xuICAgIGNvbnN0IGRlc3RTZiA9IGdldFNvdXJjZUZpbGUocmVmLm5vZGUpO1xuXG4gICAgLy8gQ29tcHV0ZSB0aGUgcmVsYXRpdmUgcGF0aCBmcm9tIHRoZSBpbXBvcnRpbmcgZmlsZSB0byB0aGUgZmlsZSBiZWluZyBpbXBvcnRlZC4gVGhpcyBpcyBkb25lXG4gICAgLy8gYXMgYSBsb2dpY2FsIHBhdGggY29tcHV0YXRpb24sIGJlY2F1c2UgdGhlIHR3byBmaWxlcyBtaWdodCBiZSBpbiBkaWZmZXJlbnQgcm9vdERpcnMuXG4gICAgY29uc3QgZGVzdFBhdGggPSB0aGlzLmxvZ2ljYWxGcy5sb2dpY2FsUGF0aE9mU2YoZGVzdFNmKTtcbiAgICBpZiAoZGVzdFBhdGggPT09IG51bGwpIHtcbiAgICAgIC8vIFRoZSBpbXBvcnRlZCBmaWxlIGlzIG5vdCB3aXRoaW4gdGhlIGxvZ2ljYWwgcHJvamVjdCBmaWxlc3lzdGVtLlxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3Qgb3JpZ2luUGF0aCA9IHRoaXMubG9naWNhbEZzLmxvZ2ljYWxQYXRoT2ZTZihjb250ZXh0KTtcbiAgICBpZiAob3JpZ2luUGF0aCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBEZWJ1ZyBhc3NlcnQ6IGF0dGVtcHQgdG8gaW1wb3J0IGZyb20gJHtjb250ZXh0LmZpbGVOYW1lfSBidXQgaXQncyBvdXRzaWRlIHRoZSBwcm9ncmFtP2ApO1xuICAgIH1cblxuICAgIC8vIFRoZXJlJ3Mgbm8gd2F5IHRvIGVtaXQgYSByZWxhdGl2ZSByZWZlcmVuY2UgZnJvbSBhIGZpbGUgdG8gaXRzZWxmLlxuICAgIGlmIChkZXN0UGF0aCA9PT0gb3JpZ2luUGF0aCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgbmFtZSA9IGZpbmRFeHBvcnRlZE5hbWVPZk5vZGUocmVmLm5vZGUsIGRlc3RTZiwgdGhpcy5yZWZsZWN0b3IpO1xuICAgIGlmIChuYW1lID09PSBudWxsKSB7XG4gICAgICAvLyBUaGUgdGFyZ2V0IGRlY2xhcmF0aW9uIGlzbid0IGV4cG9ydGVkIGZyb20gdGhlIGZpbGUgaXQncyBkZWNsYXJlZCBpbi4gVGhpcyBpcyBhbiBpc3N1ZSFcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIFdpdGggYm90aCBmaWxlcyBleHByZXNzZWQgYXMgTG9naWNhbFByb2plY3RQYXRocywgZ2V0dGluZyB0aGUgbW9kdWxlIHNwZWNpZmllciBhcyBhIHJlbGF0aXZlXG4gICAgLy8gcGF0aCBpcyBub3cgc3RyYWlnaHRmb3J3YXJkLlxuICAgIGNvbnN0IG1vZHVsZU5hbWUgPSBMb2dpY2FsUHJvamVjdFBhdGgucmVsYXRpdmVQYXRoQmV0d2VlbihvcmlnaW5QYXRoLCBkZXN0UGF0aCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGV4cHJlc3Npb246IG5ldyBFeHRlcm5hbEV4cHIoe21vZHVsZU5hbWUsIG5hbWV9KSxcbiAgICAgIGltcG9ydGVkRmlsZTogZGVzdFNmLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBBIGBSZWZlcmVuY2VFbWl0U3RyYXRlZ3lgIHdoaWNoIGNvbnN0cnVjdHMgcmVsYXRpdmVzIHBhdGhzIGJldHdlZW4gYHRzLlNvdXJjZUZpbGVgcy5cbiAqXG4gKiBUaGlzIHN0cmF0ZWd5IGNhbiBiZSB1c2VkIGlmIHRoZXJlIGlzIG5vIGByb290RGlyYC9gcm9vdERpcnNgIHN0cnVjdHVyZSBmb3IgdGhlIHByb2plY3Qgd2hpY2hcbiAqIG5lY2Vzc2l0YXRlcyB0aGUgc3Ryb25nZXIgbG9naWMgb2YgYExvZ2ljYWxQcm9qZWN0U3RyYXRlZ3lgLlxuICovXG5leHBvcnQgY2xhc3MgUmVsYXRpdmVQYXRoU3RyYXRlZ3kgaW1wbGVtZW50cyBSZWZlcmVuY2VFbWl0U3RyYXRlZ3kge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZmxlY3RvcjogUmVmbGVjdGlvbkhvc3QpIHt9XG5cbiAgZW1pdChyZWY6IFJlZmVyZW5jZSwgY29udGV4dDogdHMuU291cmNlRmlsZSk6IEVtaXR0ZWRSZWZlcmVuY2V8bnVsbCB7XG4gICAgY29uc3QgZGVzdFNmID0gZ2V0U291cmNlRmlsZShyZWYubm9kZSk7XG4gICAgY29uc3QgcmVsYXRpdmVQYXRoID1cbiAgICAgICAgcmVsYXRpdmUoZGlybmFtZShhYnNvbHV0ZUZyb21Tb3VyY2VGaWxlKGNvbnRleHQpKSwgYWJzb2x1dGVGcm9tU291cmNlRmlsZShkZXN0U2YpKTtcbiAgICBjb25zdCBtb2R1bGVOYW1lID0gdG9SZWxhdGl2ZUltcG9ydChzdHJpcEV4dGVuc2lvbihyZWxhdGl2ZVBhdGgpKTtcblxuICAgIGNvbnN0IG5hbWUgPSBmaW5kRXhwb3J0ZWROYW1lT2ZOb2RlKHJlZi5ub2RlLCBkZXN0U2YsIHRoaXMucmVmbGVjdG9yKTtcbiAgICByZXR1cm4ge2V4cHJlc3Npb246IG5ldyBFeHRlcm5hbEV4cHIoe21vZHVsZU5hbWUsIG5hbWV9KSwgaW1wb3J0ZWRGaWxlOiBkZXN0U2Z9O1xuICB9XG59XG5cbi8qKlxuICogQSBgUmVmZXJlbmNlRW1pdFN0cmF0ZWd5YCB3aGljaCB1c2VzIGEgYFVuaWZpZWRNb2R1bGVzSG9zdGAgdG8gZ2VuZXJhdGUgYWJzb2x1dGUgaW1wb3J0XG4gKiByZWZlcmVuY2VzLlxuICovXG5leHBvcnQgY2xhc3MgVW5pZmllZE1vZHVsZXNTdHJhdGVneSBpbXBsZW1lbnRzIFJlZmVyZW5jZUVtaXRTdHJhdGVneSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmbGVjdG9yOiBSZWZsZWN0aW9uSG9zdCwgcHJpdmF0ZSB1bmlmaWVkTW9kdWxlc0hvc3Q6IFVuaWZpZWRNb2R1bGVzSG9zdCkge31cblxuICBlbWl0KHJlZjogUmVmZXJlbmNlLCBjb250ZXh0OiB0cy5Tb3VyY2VGaWxlKTogRW1pdHRlZFJlZmVyZW5jZXxudWxsIHtcbiAgICBjb25zdCBkZXN0U2YgPSBnZXRTb3VyY2VGaWxlKHJlZi5ub2RlKTtcbiAgICBjb25zdCBuYW1lID0gZmluZEV4cG9ydGVkTmFtZU9mTm9kZShyZWYubm9kZSwgZGVzdFNmLCB0aGlzLnJlZmxlY3Rvcik7XG4gICAgaWYgKG5hbWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IG1vZHVsZU5hbWUgPVxuICAgICAgICB0aGlzLnVuaWZpZWRNb2R1bGVzSG9zdC5maWxlTmFtZVRvTW9kdWxlTmFtZShkZXN0U2YuZmlsZU5hbWUsIGNvbnRleHQuZmlsZU5hbWUpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGV4cHJlc3Npb246IG5ldyBFeHRlcm5hbEV4cHIoe21vZHVsZU5hbWUsIG5hbWV9KSxcbiAgICAgIGltcG9ydGVkRmlsZTogZGVzdFNmLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -1,82 +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/src/ngtsc/imports/src/find_export", ["require", "exports", "tslib", "typescript", "@angular/compiler-cli/src/ngtsc/util/src/typescript"], factory);
15
- }
16
- })(function (require, exports) {
17
- "use strict";
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.findExportedNameOfNode = void 0;
20
- var tslib_1 = require("tslib");
21
- var ts = require("typescript");
22
- var typescript_1 = require("@angular/compiler-cli/src/ngtsc/util/src/typescript");
23
- /**
24
- * Find the name, if any, by which a node is exported from a given file.
25
- */
26
- function findExportedNameOfNode(target, file, reflector) {
27
- var e_1, _a;
28
- var exports = reflector.getExportsOfModule(file);
29
- if (exports === null) {
30
- return null;
31
- }
32
- var declaredName = (0, typescript_1.isNamedDeclaration)(target) ? target.name.text : null;
33
- // Look for the export which declares the node.
34
- var foundExportName = null;
35
- try {
36
- for (var exports_1 = (0, tslib_1.__values)(exports), exports_1_1 = exports_1.next(); !exports_1_1.done; exports_1_1 = exports_1.next()) {
37
- var _b = (0, tslib_1.__read)(exports_1_1.value, 2), exportName = _b[0], declaration = _b[1];
38
- if (declaration.node !== target) {
39
- continue;
40
- }
41
- if (exportName === declaredName) {
42
- // A non-alias export exists which is always preferred, so use that one.
43
- return exportName;
44
- }
45
- foundExportName = exportName;
46
- }
47
- }
48
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
49
- finally {
50
- try {
51
- if (exports_1_1 && !exports_1_1.done && (_a = exports_1.return)) _a.call(exports_1);
52
- }
53
- finally { if (e_1) throw e_1.error; }
54
- }
55
- if (foundExportName === null) {
56
- throw new Error("Failed to find exported name of node (" + target.getText() + ") in '" + file.fileName + "'.");
57
- }
58
- return foundExportName;
59
- }
60
- exports.findExportedNameOfNode = findExportedNameOfNode;
61
- /**
62
- * Check whether a given `ts.Symbol` represents a declaration of a given node.
63
- *
64
- * This is not quite as trivial as just checking the declarations, as some nodes are
65
- * `ts.ExportSpecifier`s and need to be unwrapped.
66
- */
67
- function symbolDeclaresNode(sym, node, checker) {
68
- if (sym.declarations === undefined) {
69
- return false;
70
- }
71
- return sym.declarations.some(function (decl) {
72
- if (ts.isExportSpecifier(decl)) {
73
- var exportedSymbol = checker.getExportSpecifierLocalTargetSymbol(decl);
74
- if (exportedSymbol !== undefined) {
75
- return symbolDeclaresNode(exportedSymbol, node, checker);
76
- }
77
- }
78
- return decl === node;
79
- });
80
- }
81
- });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZF9leHBvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL2ltcG9ydHMvc3JjL2ZpbmRfZXhwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7SUFFSCwrQkFBaUM7SUFFakMsa0ZBQTZEO0lBRTdEOztPQUVHO0lBQ0gsU0FBZ0Isc0JBQXNCLENBQ2xDLE1BQWUsRUFBRSxJQUFtQixFQUFFLFNBQXlCOztRQUNqRSxJQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkQsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFO1lBQ3BCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFNLFlBQVksR0FBRyxJQUFBLCtCQUFrQixFQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRTFFLCtDQUErQztRQUMvQyxJQUFJLGVBQWUsR0FBZ0IsSUFBSSxDQUFDOztZQUN4QyxLQUF3QyxJQUFBLFlBQUEsc0JBQUEsT0FBTyxDQUFBLGdDQUFBLHFEQUFFO2dCQUF0QyxJQUFBLEtBQUEseUNBQXlCLEVBQXhCLFVBQVUsUUFBQSxFQUFFLFdBQVcsUUFBQTtnQkFDakMsSUFBSSxXQUFXLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtvQkFDL0IsU0FBUztpQkFDVjtnQkFFRCxJQUFJLFVBQVUsS0FBSyxZQUFZLEVBQUU7b0JBQy9CLHdFQUF3RTtvQkFDeEUsT0FBTyxVQUFVLENBQUM7aUJBQ25CO2dCQUVELGVBQWUsR0FBRyxVQUFVLENBQUM7YUFDOUI7Ozs7Ozs7OztRQUVELElBQUksZUFBZSxLQUFLLElBQUksRUFBRTtZQUM1QixNQUFNLElBQUksS0FBSyxDQUNYLDJDQUF5QyxNQUFNLENBQUMsT0FBTyxFQUFFLGNBQVMsSUFBSSxDQUFDLFFBQVEsT0FBSSxDQUFDLENBQUM7U0FDMUY7UUFDRCxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0lBN0JELHdEQTZCQztJQUVEOzs7OztPQUtHO0lBQ0gsU0FBUyxrQkFBa0IsQ0FBQyxHQUFjLEVBQUUsSUFBYSxFQUFFLE9BQXVCO1FBQ2hGLElBQUksR0FBRyxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUU7WUFDbEMsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE9BQU8sR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBQSxJQUFJO1lBQy9CLElBQUksRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUM5QixJQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsbUNBQW1DLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3pFLElBQUksY0FBYyxLQUFLLFNBQVMsRUFBRTtvQkFDaEMsT0FBTyxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2lCQUMxRDthQUNGO1lBQ0QsT0FBTyxJQUFJLEtBQUssSUFBSSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7UmVmbGVjdGlvbkhvc3R9IGZyb20gJy4uLy4uL3JlZmxlY3Rpb24nO1xuaW1wb3J0IHtpc05hbWVkRGVjbGFyYXRpb259IGZyb20gJy4uLy4uL3V0aWwvc3JjL3R5cGVzY3JpcHQnO1xuXG4vKipcbiAqIEZpbmQgdGhlIG5hbWUsIGlmIGFueSwgYnkgd2hpY2ggYSBub2RlIGlzIGV4cG9ydGVkIGZyb20gYSBnaXZlbiBmaWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZEV4cG9ydGVkTmFtZU9mTm9kZShcbiAgICB0YXJnZXQ6IHRzLk5vZGUsIGZpbGU6IHRzLlNvdXJjZUZpbGUsIHJlZmxlY3RvcjogUmVmbGVjdGlvbkhvc3QpOiBzdHJpbmd8bnVsbCB7XG4gIGNvbnN0IGV4cG9ydHMgPSByZWZsZWN0b3IuZ2V0RXhwb3J0c09mTW9kdWxlKGZpbGUpO1xuICBpZiAoZXhwb3J0cyA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgZGVjbGFyZWROYW1lID0gaXNOYW1lZERlY2xhcmF0aW9uKHRhcmdldCkgPyB0YXJnZXQubmFtZS50ZXh0IDogbnVsbDtcblxuICAvLyBMb29rIGZvciB0aGUgZXhwb3J0IHdoaWNoIGRlY2xhcmVzIHRoZSBub2RlLlxuICBsZXQgZm91bmRFeHBvcnROYW1lOiBzdHJpbmd8bnVsbCA9IG51bGw7XG4gIGZvciAoY29uc3QgW2V4cG9ydE5hbWUsIGRlY2xhcmF0aW9uXSBvZiBleHBvcnRzKSB7XG4gICAgaWYgKGRlY2xhcmF0aW9uLm5vZGUgIT09IHRhcmdldCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKGV4cG9ydE5hbWUgPT09IGRlY2xhcmVkTmFtZSkge1xuICAgICAgLy8gQSBub24tYWxpYXMgZXhwb3J0IGV4aXN0cyB3aGljaCBpcyBhbHdheXMgcHJlZmVycmVkLCBzbyB1c2UgdGhhdCBvbmUuXG4gICAgICByZXR1cm4gZXhwb3J0TmFtZTtcbiAgICB9XG5cbiAgICBmb3VuZEV4cG9ydE5hbWUgPSBleHBvcnROYW1lO1xuICB9XG5cbiAgaWYgKGZvdW5kRXhwb3J0TmFtZSA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEZhaWxlZCB0byBmaW5kIGV4cG9ydGVkIG5hbWUgb2Ygbm9kZSAoJHt0YXJnZXQuZ2V0VGV4dCgpfSkgaW4gJyR7ZmlsZS5maWxlTmFtZX0nLmApO1xuICB9XG4gIHJldHVybiBmb3VuZEV4cG9ydE5hbWU7XG59XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciBhIGdpdmVuIGB0cy5TeW1ib2xgIHJlcHJlc2VudHMgYSBkZWNsYXJhdGlvbiBvZiBhIGdpdmVuIG5vZGUuXG4gKlxuICogVGhpcyBpcyBub3QgcXVpdGUgYXMgdHJpdmlhbCBhcyBqdXN0IGNoZWNraW5nIHRoZSBkZWNsYXJhdGlvbnMsIGFzIHNvbWUgbm9kZXMgYXJlXG4gKiBgdHMuRXhwb3J0U3BlY2lmaWVyYHMgYW5kIG5lZWQgdG8gYmUgdW53cmFwcGVkLlxuICovXG5mdW5jdGlvbiBzeW1ib2xEZWNsYXJlc05vZGUoc3ltOiB0cy5TeW1ib2wsIG5vZGU6IHRzLk5vZGUsIGNoZWNrZXI6IHRzLlR5cGVDaGVja2VyKTogYm9vbGVhbiB7XG4gIGlmIChzeW0uZGVjbGFyYXRpb25zID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gc3ltLmRlY2xhcmF0aW9ucy5zb21lKGRlY2wgPT4ge1xuICAgIGlmICh0cy5pc0V4cG9ydFNwZWNpZmllcihkZWNsKSkge1xuICAgICAgY29uc3QgZXhwb3J0ZWRTeW1ib2wgPSBjaGVja2VyLmdldEV4cG9ydFNwZWNpZmllckxvY2FsVGFyZ2V0U3ltYm9sKGRlY2wpO1xuICAgICAgaWYgKGV4cG9ydGVkU3ltYm9sICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHN5bWJvbERlY2xhcmVzTm9kZShleHBvcnRlZFN5bWJvbCwgbm9kZSwgY2hlY2tlcik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkZWNsID09PSBub2RlO1xuICB9KTtcbn1cbiJdfQ==
@@ -1,20 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- (function (factory) {
9
- if (typeof module === "object" && typeof module.exports === "object") {
10
- var v = factory(require, exports);
11
- if (v !== undefined) module.exports = v;
12
- }
13
- else if (typeof define === "function" && define.amd) {
14
- define("@angular/compiler-cli/src/ngtsc/imports/src/reexport", ["require", "exports"], factory);
15
- }
16
- })(function (require, exports) {
17
- "use strict";
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVleHBvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL2ltcG9ydHMvc3JjL3JlZXhwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlZXhwb3J0IHtcbiAgc3ltYm9sTmFtZTogc3RyaW5nO1xuICBhc0FsaWFzOiBzdHJpbmc7XG4gIGZyb21Nb2R1bGU6IHN0cmluZztcbn1cbiJdfQ==