@angular/compiler-cli 13.0.0-next.1 → 13.0.0-next.10

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 +20414 -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 +16043 -0
  8. package/bundles/ngcc/index.js.map +6 -0
  9. package/bundles/ngcc/main-ngcc.js +16131 -0
  10. package/bundles/ngcc/main-ngcc.js.map +6 -0
  11. package/bundles/ngcc/src/execution/cluster/ngcc_cluster_worker.js +13855 -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 +20466 -0
  24. package/bundles/src/bin/ng_xi18n.js.map +6 -0
  25. package/bundles/src/bin/ngc.js +20468 -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 +2 -2
  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 +52 -11
  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/{ngtsc/core/src/config.d.ts → bin/ng_xi18n.d.ts} +3 -2
  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 +6 -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 +16 -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/metadata.d.ts +2 -2
  114. package/src/ngtsc/annotations/src/ng_module.d.ts +2 -4
  115. package/src/ngtsc/annotations/src/pipe.d.ts +1 -1
  116. package/src/ngtsc/annotations/src/util.d.ts +2 -4
  117. package/src/ngtsc/core/api/src/adapter.d.ts +1 -1
  118. package/src/ngtsc/core/api/src/interfaces.d.ts +2 -13
  119. package/src/ngtsc/core/api/src/options.d.ts +11 -2
  120. package/src/ngtsc/core/src/compiler.d.ts +13 -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/diagnostics/src/error_code.d.ts +9 -0
  126. package/src/ngtsc/entry_point/src/generator.d.ts +1 -1
  127. package/src/ngtsc/entry_point/src/private_export_checker.d.ts +1 -1
  128. package/src/ngtsc/file_system/src/compiler_host.d.ts +1 -1
  129. package/src/ngtsc/file_system/src/logical.d.ts +1 -1
  130. package/src/ngtsc/file_system/src/util.d.ts +1 -1
  131. package/src/ngtsc/imports/src/alias.d.ts +1 -1
  132. package/src/ngtsc/imports/src/default.d.ts +1 -1
  133. package/src/ngtsc/imports/src/emitter.d.ts +1 -1
  134. package/src/ngtsc/imports/src/find_export.d.ts +1 -1
  135. package/src/ngtsc/imports/src/references.d.ts +1 -1
  136. package/src/ngtsc/imports/src/resolver.d.ts +1 -1
  137. package/src/ngtsc/incremental/api.d.ts +1 -1
  138. package/src/ngtsc/incremental/src/dependency_tracking.d.ts +1 -1
  139. package/src/ngtsc/incremental/src/incremental.d.ts +1 -1
  140. package/src/ngtsc/incremental/src/state.d.ts +1 -1
  141. package/src/ngtsc/incremental/src/strategy.d.ts +1 -1
  142. package/src/ngtsc/indexer/src/api.d.ts +5 -2
  143. package/src/ngtsc/metadata/src/api.d.ts +1 -1
  144. package/src/ngtsc/metadata/src/dts.d.ts +1 -1
  145. package/src/ngtsc/metadata/src/resource_registry.d.ts +1 -1
  146. package/src/ngtsc/metadata/src/util.d.ts +1 -1
  147. package/src/ngtsc/partial_evaluator/index.d.ts +1 -0
  148. package/src/ngtsc/partial_evaluator/src/builtin.d.ts +1 -1
  149. package/src/ngtsc/partial_evaluator/src/diagnostics.d.ts +1 -1
  150. package/src/ngtsc/partial_evaluator/src/dynamic.d.ts +1 -1
  151. package/src/ngtsc/partial_evaluator/src/interface.d.ts +1 -1
  152. package/src/ngtsc/partial_evaluator/src/interpreter.d.ts +1 -1
  153. package/src/ngtsc/partial_evaluator/src/result.d.ts +1 -1
  154. package/src/ngtsc/partial_evaluator/src/ts_helpers.d.ts +1 -1
  155. package/src/ngtsc/program.d.ts +1 -2
  156. package/src/ngtsc/program_driver/src/api.d.ts +1 -1
  157. package/src/ngtsc/program_driver/src/ts_create_program_driver.d.ts +1 -1
  158. package/src/ngtsc/reflection/src/host.d.ts +7 -7
  159. package/src/ngtsc/reflection/src/type_to_value.d.ts +1 -1
  160. package/src/ngtsc/reflection/src/typescript.d.ts +4 -4
  161. package/src/ngtsc/reflection/src/util.d.ts +1 -1
  162. package/src/ngtsc/resource/src/loader.d.ts +1 -1
  163. package/src/ngtsc/scope/src/local.d.ts +1 -1
  164. package/src/ngtsc/scope/src/typecheck.d.ts +1 -1
  165. package/src/ngtsc/shims/api.d.ts +1 -1
  166. package/src/ngtsc/shims/src/adapter.d.ts +1 -1
  167. package/src/ngtsc/shims/src/expando.d.ts +1 -1
  168. package/src/ngtsc/shims/src/factory_generator.d.ts +1 -1
  169. package/src/ngtsc/shims/src/reference_tagger.d.ts +1 -1
  170. package/src/ngtsc/shims/src/summary_generator.d.ts +1 -1
  171. package/src/ngtsc/switch/src/switch.d.ts +1 -1
  172. package/src/ngtsc/transform/src/alias.d.ts +1 -1
  173. package/src/ngtsc/transform/src/api.d.ts +3 -1
  174. package/src/ngtsc/transform/src/compilation.d.ts +3 -1
  175. package/src/ngtsc/transform/src/declaration.d.ts +1 -1
  176. package/src/ngtsc/transform/src/trait.d.ts +1 -1
  177. package/src/ngtsc/transform/src/transform.d.ts +1 -1
  178. package/src/ngtsc/transform/src/utils.d.ts +1 -1
  179. package/src/ngtsc/translator/src/import_manager.d.ts +1 -1
  180. package/src/ngtsc/translator/src/translator.d.ts +0 -1
  181. package/src/ngtsc/translator/src/type_translator.d.ts +1 -2
  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 +22 -1
  186. package/src/ngtsc/typecheck/api/checker.d.ts +10 -7
  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 +2 -16
  191. package/src/ngtsc/typecheck/extended/api/api.d.ts +50 -0
  192. package/src/ngtsc/typecheck/extended/api/extended_template_checker.d.ts +19 -0
  193. package/src/ngtsc/{routing → typecheck/extended/api}/index.d.ts +3 -3
  194. package/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.d.ts +22 -0
  195. package/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.d.ts +23 -0
  196. package/src/ngtsc/typecheck/extended/index.d.ts +9 -0
  197. package/src/ngtsc/typecheck/extended/src/extended_template_checker.d.ts +18 -0
  198. package/src/ngtsc/typecheck/src/checker.d.ts +7 -8
  199. package/src/ngtsc/typecheck/src/comments.d.ts +1 -1
  200. package/src/ngtsc/typecheck/src/completion.d.ts +4 -6
  201. package/src/ngtsc/typecheck/src/context.d.ts +2 -3
  202. package/src/ngtsc/typecheck/src/diagnostics.d.ts +2 -3
  203. package/src/ngtsc/typecheck/src/dom.d.ts +1 -2
  204. package/src/ngtsc/typecheck/src/environment.d.ts +1 -1
  205. package/src/ngtsc/typecheck/src/expression.d.ts +1 -1
  206. package/src/ngtsc/typecheck/src/oob.d.ts +4 -6
  207. package/src/ngtsc/typecheck/src/shim.d.ts +1 -1
  208. package/src/ngtsc/typecheck/src/source.d.ts +1 -1
  209. package/src/ngtsc/typecheck/src/tcb_util.d.ts +1 -1
  210. package/src/ngtsc/typecheck/src/template_symbol_builder.d.ts +1 -1
  211. package/src/ngtsc/typecheck/src/ts_util.d.ts +1 -1
  212. package/src/ngtsc/typecheck/src/type_check_block.d.ts +1 -1
  213. package/src/ngtsc/typecheck/src/type_check_file.d.ts +1 -1
  214. package/src/ngtsc/typecheck/src/type_constructor.d.ts +1 -1
  215. package/src/ngtsc/typecheck/src/type_emitter.d.ts +1 -1
  216. package/src/ngtsc/typecheck/src/type_parameter_emitter.d.ts +2 -2
  217. package/src/ngtsc/util/src/typescript.d.ts +1 -1
  218. package/src/ngtsc/util/src/visitor.d.ts +1 -1
  219. package/src/perform_compile.d.ts +1 -1
  220. package/src/perform_watch.d.ts +1 -1
  221. package/src/transformers/api.d.ts +2 -5
  222. package/src/transformers/compiler_host.d.ts +1 -1
  223. package/src/transformers/{downlevel_decorators_transform.d.ts → downlevel_decorators_transform/downlevel_decorators_transform.d.ts} +3 -3
  224. package/src/transformers/downlevel_decorators_transform/index.d.ts +9 -0
  225. package/src/transformers/{patch_alias_reference_resolution.d.ts → downlevel_decorators_transform/patch_alias_reference_resolution.d.ts} +2 -2
  226. package/src/transformers/i18n.d.ts +1 -1
  227. package/src/transformers/inline_resources.d.ts +1 -1
  228. package/src/transformers/lower_expressions.d.ts +1 -1
  229. package/src/transformers/metadata_cache.d.ts +1 -1
  230. package/src/transformers/node_emitter.d.ts +2 -3
  231. package/src/transformers/node_emitter_transform.d.ts +1 -1
  232. package/src/transformers/program.d.ts +1 -1
  233. package/src/transformers/r3_metadata_transform.d.ts +1 -1
  234. package/src/transformers/r3_transform.d.ts +1 -1
  235. package/src/transformers/util.d.ts +1 -1
  236. package/index.js +0 -40
  237. package/linker/babel/index.js +0 -25
  238. package/linker/babel/src/ast/babel_ast_factory.js +0 -153
  239. package/linker/babel/src/ast/babel_ast_host.js +0 -181
  240. package/linker/babel/src/babel_declaration_scope.js +0 -67
  241. package/linker/babel/src/babel_plugin.js +0 -38
  242. package/linker/babel/src/es2015_linker_plugin.js +0 -183
  243. package/linker/babel/src/linker_plugin_options.js +0 -13
  244. package/linker/index.js +0 -27
  245. package/linker/src/ast/ast_host.js +0 -20
  246. package/linker/src/ast/ast_value.js +0 -299
  247. package/linker/src/ast/typescript/typescript_ast_host.js +0 -183
  248. package/linker/src/ast/utils.js +0 -31
  249. package/linker/src/fatal_linker_error.js +0 -49
  250. package/linker/src/file_linker/declaration_scope.js +0 -20
  251. package/linker/src/file_linker/emit_scopes/emit_scope.js +0 -57
  252. package/linker/src/file_linker/emit_scopes/iife_emit_scope.js +0 -51
  253. package/linker/src/file_linker/file_linker.js +0 -97
  254. package/linker/src/file_linker/get_source_file.js +0 -42
  255. package/linker/src/file_linker/linker_environment.js +0 -38
  256. package/linker/src/file_linker/linker_options.js +0 -29
  257. package/linker/src/file_linker/needs_linking.js +0 -41
  258. package/linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.js +0 -47
  259. package/linker/src/file_linker/partial_linkers/partial_component_linker_1.js +0 -210
  260. package/linker/src/file_linker/partial_linkers/partial_directive_linker_1.js +0 -154
  261. package/linker/src/file_linker/partial_linkers/partial_factory_linker_1.js +0 -70
  262. package/linker/src/file_linker/partial_linkers/partial_injectable_linker_1.js +0 -74
  263. package/linker/src/file_linker/partial_linkers/partial_injector_linker_1.js +0 -56
  264. package/linker/src/file_linker/partial_linkers/partial_linker.js +0 -13
  265. package/linker/src/file_linker/partial_linkers/partial_linker_selector.js +0 -194
  266. package/linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.js +0 -126
  267. package/linker/src/file_linker/partial_linkers/partial_pipe_linker_1.js +0 -59
  268. package/linker/src/file_linker/partial_linkers/util.js +0 -95
  269. package/linker/src/file_linker/translator.js +0 -40
  270. package/linker/src/linker_import_generator.js +0 -43
  271. package/ngcc/index.js +0 -33
  272. package/ngcc/main-ivy-ngcc.js +0 -12
  273. package/ngcc/main-ngcc.js +0 -54
  274. package/ngcc/src/analysis/decoration_analyzer.js +0 -268
  275. package/ngcc/src/analysis/migration_host.js +0 -108
  276. package/ngcc/src/analysis/module_with_providers_analyzer.js +0 -197
  277. package/ngcc/src/analysis/ngcc_references_registry.js +0 -65
  278. package/ngcc/src/analysis/ngcc_trait_compiler.js +0 -117
  279. package/ngcc/src/analysis/private_declarations_analyzer.js +0 -63
  280. package/ngcc/src/analysis/switch_marker_analyzer.js +0 -50
  281. package/ngcc/src/analysis/types.js +0 -15
  282. package/ngcc/src/analysis/util.js +0 -36
  283. package/ngcc/src/command_line_options.js +0 -156
  284. package/ngcc/src/constants.js +0 -23
  285. package/ngcc/src/dependencies/commonjs_dependency_host.js +0 -129
  286. package/ngcc/src/dependencies/dependency_host.js +0 -143
  287. package/ngcc/src/dependencies/dependency_resolver.js +0 -180
  288. package/ngcc/src/dependencies/dts_dependency_host.js +0 -35
  289. package/ngcc/src/dependencies/esm_dependency_host.js +0 -307
  290. package/ngcc/src/dependencies/module_resolver.js +0 -269
  291. package/ngcc/src/dependencies/umd_dependency_host.js +0 -53
  292. package/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.js +0 -70
  293. package/ngcc/src/entry_point_finder/entry_point_collector.js +0 -157
  294. package/ngcc/src/entry_point_finder/interface.js +0 -13
  295. package/ngcc/src/entry_point_finder/program_based_entry_point_finder.js +0 -132
  296. package/ngcc/src/entry_point_finder/targeted_entry_point_finder.js +0 -268
  297. package/ngcc/src/entry_point_finder/tracing_entry_point_finder.js +0 -78
  298. package/ngcc/src/entry_point_finder/utils.js +0 -234
  299. package/ngcc/src/execution/analyze_entry_points.js +0 -197
  300. package/ngcc/src/execution/api.js +0 -13
  301. package/ngcc/src/execution/cluster/api.js +0 -20
  302. package/ngcc/src/execution/cluster/executor.js +0 -52
  303. package/ngcc/src/execution/cluster/master.js +0 -311
  304. package/ngcc/src/execution/cluster/package_json_updater.js +0 -79
  305. package/ngcc/src/execution/cluster/utils.js +0 -77
  306. package/ngcc/src/execution/cluster/worker.js +0 -123
  307. package/ngcc/src/execution/create_compile_function.js +0 -76
  308. package/ngcc/src/execution/single_process_executor.js +0 -91
  309. package/ngcc/src/execution/tasks/api.js +0 -35
  310. package/ngcc/src/execution/tasks/completion.js +0 -79
  311. package/ngcc/src/execution/tasks/queues/base_task_queue.js +0 -120
  312. package/ngcc/src/execution/tasks/queues/parallel_task_queue.js +0 -87
  313. package/ngcc/src/execution/tasks/queues/serial_task_queue.js +0 -49
  314. package/ngcc/src/execution/tasks/utils.js +0 -167
  315. package/ngcc/src/host/commonjs_host.js +0 -261
  316. package/ngcc/src/host/commonjs_umd_utils.js +0 -210
  317. package/ngcc/src/host/delegating_host.js +0 -156
  318. package/ngcc/src/host/esm2015_host.js +0 -2441
  319. package/ngcc/src/host/esm5_host.js +0 -744
  320. package/ngcc/src/host/ngcc_host.js +0 -29
  321. package/ngcc/src/host/umd_host.js +0 -539
  322. package/ngcc/src/host/utils.js +0 -26
  323. package/ngcc/src/locking/async_locker.js +0 -121
  324. package/ngcc/src/locking/lock_file.js +0 -18
  325. package/ngcc/src/locking/lock_file_with_child_process/index.js +0 -93
  326. package/ngcc/src/locking/lock_file_with_child_process/unlocker.js +0 -46
  327. package/ngcc/src/locking/lock_file_with_child_process/util.js +0 -43
  328. package/ngcc/src/locking/sync_locker.js +0 -67
  329. package/ngcc/src/main.js +0 -163
  330. package/ngcc/src/migrations/migration.js +0 -13
  331. package/ngcc/src/migrations/missing_injectable_migration.js +0 -227
  332. package/ngcc/src/migrations/undecorated_child_migration.js +0 -90
  333. package/ngcc/src/migrations/undecorated_parent_migration.js +0 -103
  334. package/ngcc/src/migrations/utils.js +0 -137
  335. package/ngcc/src/ngcc_options.js +0 -135
  336. package/ngcc/src/packages/build_marker.js +0 -124
  337. package/ngcc/src/packages/bundle_program.js +0 -80
  338. package/ngcc/src/packages/configuration.js +0 -277
  339. package/ngcc/src/packages/entry_point.js +0 -267
  340. package/ngcc/src/packages/entry_point_bundle.js +0 -96
  341. package/ngcc/src/packages/entry_point_manifest.js +0 -207
  342. package/ngcc/src/packages/ngcc_compiler_host.js +0 -101
  343. package/ngcc/src/packages/patch_ts_expando_initializer.js +0 -174
  344. package/ngcc/src/packages/source_file_cache.js +0 -207
  345. package/ngcc/src/packages/transformer.js +0 -157
  346. package/ngcc/src/path_mappings.js +0 -27
  347. package/ngcc/src/rendering/commonjs_rendering_formatter.js +0 -106
  348. package/ngcc/src/rendering/dts_renderer.js +0 -170
  349. package/ngcc/src/rendering/esm5_rendering_formatter.js +0 -70
  350. package/ngcc/src/rendering/esm_rendering_formatter.js +0 -291
  351. package/ngcc/src/rendering/ngcc_import_rewriter.js +0 -49
  352. package/ngcc/src/rendering/renderer.js +0 -204
  353. package/ngcc/src/rendering/rendering_formatter.js +0 -15
  354. package/ngcc/src/rendering/source_maps.js +0 -68
  355. package/ngcc/src/rendering/umd_rendering_formatter.js +0 -326
  356. package/ngcc/src/rendering/utils.js +0 -35
  357. package/ngcc/src/utils.js +0 -182
  358. package/ngcc/src/writing/cleaning/cleaning_strategies.js +0 -80
  359. package/ngcc/src/writing/cleaning/package_cleaner.js +0 -126
  360. package/ngcc/src/writing/cleaning/utils.js +0 -30
  361. package/ngcc/src/writing/file_writer.js +0 -13
  362. package/ngcc/src/writing/in_place_file_writer.js +0 -90
  363. package/ngcc/src/writing/new_entry_point_file_writer.js +0 -214
  364. package/ngcc/src/writing/package_json_updater.js +0 -182
  365. package/src/diagnostics/translate_diagnostics.js +0 -61
  366. package/src/diagnostics/typescript_version.js +0 -96
  367. package/src/extract_i18n.js +0 -62
  368. package/src/language_services.js +0 -34
  369. package/src/main.js +0 -210
  370. package/src/metadata/bundle_index_host.js +0 -133
  371. package/src/metadata/bundler.js +0 -624
  372. package/src/metadata/collector.js +0 -799
  373. package/src/metadata/evaluator.js +0 -677
  374. package/src/metadata/index.js +0 -24
  375. package/src/metadata/index_writer.js +0 -80
  376. package/src/metadata/schema.js +0 -136
  377. package/src/metadata/symbols.js +0 -149
  378. package/src/ngtsc/annotations/index.js +0 -35
  379. package/src/ngtsc/annotations/src/api.js +0 -20
  380. package/src/ngtsc/annotations/src/component.js +0 -1283
  381. package/src/ngtsc/annotations/src/diagnostics.js +0 -174
  382. package/src/ngtsc/annotations/src/directive.js +0 -724
  383. package/src/ngtsc/annotations/src/factory.js +0 -32
  384. package/src/ngtsc/annotations/src/injectable.js +0 -277
  385. package/src/ngtsc/annotations/src/metadata.js +0 -159
  386. package/src/ngtsc/annotations/src/ng_module.js +0 -677
  387. package/src/ngtsc/annotations/src/pipe.js +0 -171
  388. package/src/ngtsc/annotations/src/references_registry.js +0 -38
  389. package/src/ngtsc/annotations/src/util.js +0 -566
  390. package/src/ngtsc/core/api/index.js +0 -25
  391. package/src/ngtsc/core/api/src/adapter.js +0 -20
  392. package/src/ngtsc/core/api/src/interfaces.js +0 -20
  393. package/src/ngtsc/core/api/src/options.js +0 -20
  394. package/src/ngtsc/core/api/src/public_options.js +0 -20
  395. package/src/ngtsc/core/index.js +0 -25
  396. package/src/ngtsc/core/src/compiler.js +0 -1077
  397. package/src/ngtsc/core/src/config.js +0 -28
  398. package/src/ngtsc/core/src/host.js +0 -273
  399. package/src/ngtsc/cycles/index.js +0 -26
  400. package/src/ngtsc/cycles/src/analyzer.js +0 -163
  401. package/src/ngtsc/cycles/src/imports.js +0 -175
  402. package/src/ngtsc/diagnostics/index.js +0 -33
  403. package/src/ngtsc/diagnostics/src/error.js +0 -69
  404. package/src/ngtsc/diagnostics/src/error_code.js +0 -226
  405. package/src/ngtsc/diagnostics/src/util.js +0 -35
  406. package/src/ngtsc/entry_point/index.js +0 -29
  407. package/src/ngtsc/entry_point/src/generator.js +0 -45
  408. package/src/ngtsc/entry_point/src/logic.js +0 -61
  409. package/src/ngtsc/entry_point/src/private_export_checker.js +0 -137
  410. package/src/ngtsc/entry_point/src/reference_graph.js +0 -91
  411. package/src/ngtsc/file_system/index.js +0 -45
  412. package/src/ngtsc/file_system/src/compiler_host.js +0 -80
  413. package/src/ngtsc/file_system/src/helpers.js +0 -135
  414. package/src/ngtsc/file_system/src/invalid_file_system.js +0 -120
  415. package/src/ngtsc/file_system/src/logical.js +0 -100
  416. package/src/ngtsc/file_system/src/node_js_file_system.js +0 -179
  417. package/src/ngtsc/file_system/src/types.js +0 -20
  418. package/src/ngtsc/file_system/src/util.js +0 -38
  419. package/src/ngtsc/file_system/testing/index.d.ts +0 -13
  420. package/src/ngtsc/file_system/testing/index.js +0 -32
  421. package/src/ngtsc/file_system/testing/src/mock_file_system.d.ts +0 -72
  422. package/src/ngtsc/file_system/testing/src/mock_file_system.js +0 -333
  423. package/src/ngtsc/file_system/testing/src/mock_file_system_native.d.ts +0 -16
  424. package/src/ngtsc/file_system/testing/src/mock_file_system_native.js +0 -85
  425. package/src/ngtsc/file_system/testing/src/mock_file_system_posix.d.ts +0 -13
  426. package/src/ngtsc/file_system/testing/src/mock_file_system_posix.js +0 -68
  427. package/src/ngtsc/file_system/testing/src/mock_file_system_windows.d.ts +0 -13
  428. package/src/ngtsc/file_system/testing/src/mock_file_system_windows.js +0 -68
  429. package/src/ngtsc/file_system/testing/src/test_helper.d.ts +0 -17
  430. package/src/ngtsc/file_system/testing/src/test_helper.js +0 -142
  431. package/src/ngtsc/imports/index.js +0 -43
  432. package/src/ngtsc/imports/src/alias.js +0 -158
  433. package/src/ngtsc/imports/src/core.js +0 -98
  434. package/src/ngtsc/imports/src/default.js +0 -153
  435. package/src/ngtsc/imports/src/emitter.js +0 -317
  436. package/src/ngtsc/imports/src/find_export.js +0 -82
  437. package/src/ngtsc/imports/src/reexport.js +0 -20
  438. package/src/ngtsc/imports/src/references.js +0 -171
  439. package/src/ngtsc/imports/src/resolver.js +0 -39
  440. package/src/ngtsc/incremental/api.js +0 -20
  441. package/src/ngtsc/incremental/index.js +0 -29
  442. package/src/ngtsc/incremental/semantic_graph/index.js +0 -34
  443. package/src/ngtsc/incremental/semantic_graph/src/api.js +0 -51
  444. package/src/ngtsc/incremental/semantic_graph/src/graph.js +0 -302
  445. package/src/ngtsc/incremental/semantic_graph/src/type_parameters.js +0 -55
  446. package/src/ngtsc/incremental/semantic_graph/src/util.js +0 -111
  447. package/src/ngtsc/incremental/src/dependency_tracking.js +0 -165
  448. package/src/ngtsc/incremental/src/incremental.js +0 -393
  449. package/src/ngtsc/incremental/src/noop.js +0 -26
  450. package/src/ngtsc/incremental/src/state.js +0 -30
  451. package/src/ngtsc/incremental/src/strategy.js +0 -99
  452. package/src/ngtsc/indexer/index.js +0 -27
  453. package/src/ngtsc/indexer/src/api.js +0 -45
  454. package/src/ngtsc/indexer/src/context.js +0 -40
  455. package/src/ngtsc/indexer/src/template.js +0 -328
  456. package/src/ngtsc/indexer/src/transform.js +0 -66
  457. package/src/ngtsc/logging/index.js +0 -25
  458. package/src/ngtsc/logging/src/console_logger.js +0 -75
  459. package/src/ngtsc/logging/src/logger.js +0 -28
  460. package/src/ngtsc/logging/testing/index.js +0 -23
  461. package/src/ngtsc/logging/testing/src/mock_logger.d.ts +0 -20
  462. package/src/ngtsc/logging/testing/src/mock_logger.js +0 -64
  463. package/src/ngtsc/metadata/index.js +0 -39
  464. package/src/ngtsc/metadata/src/api.js +0 -26
  465. package/src/ngtsc/metadata/src/dts.js +0 -168
  466. package/src/ngtsc/metadata/src/inheritance.js +0 -122
  467. package/src/ngtsc/metadata/src/property_mapping.js +0 -244
  468. package/src/ngtsc/metadata/src/registry.js +0 -133
  469. package/src/ngtsc/metadata/src/resource_registry.js +0 -109
  470. package/src/ngtsc/metadata/src/util.js +0 -275
  471. package/src/ngtsc/partial_evaluator/index.js +0 -31
  472. package/src/ngtsc/partial_evaluator/src/builtin.js +0 -125
  473. package/src/ngtsc/partial_evaluator/src/diagnostics.js +0 -193
  474. package/src/ngtsc/partial_evaluator/src/dynamic.js +0 -109
  475. package/src/ngtsc/partial_evaluator/src/interface.js +0 -42
  476. package/src/ngtsc/partial_evaluator/src/interpreter.js +0 -780
  477. package/src/ngtsc/partial_evaluator/src/known_declaration.js +0 -57
  478. package/src/ngtsc/partial_evaluator/src/result.js +0 -72
  479. package/src/ngtsc/partial_evaluator/src/ts_helpers.js +0 -121
  480. package/src/ngtsc/perf/index.js +0 -28
  481. package/src/ngtsc/perf/src/api.js +0 -291
  482. package/src/ngtsc/perf/src/clock.js +0 -30
  483. package/src/ngtsc/perf/src/noop.js +0 -37
  484. package/src/ngtsc/perf/src/recorder.js +0 -143
  485. package/src/ngtsc/program.js +0 -361
  486. package/src/ngtsc/program_driver/index.js +0 -25
  487. package/src/ngtsc/program_driver/src/api.js +0 -36
  488. package/src/ngtsc/program_driver/src/ts_create_program_driver.js +0 -200
  489. package/src/ngtsc/reflection/index.js +0 -36
  490. package/src/ngtsc/reflection/src/host.js +0 -88
  491. package/src/ngtsc/reflection/src/type_to_value.js +0 -259
  492. package/src/ngtsc/reflection/src/typescript.js +0 -641
  493. package/src/ngtsc/reflection/src/util.js +0 -37
  494. package/src/ngtsc/resource/index.js +0 -23
  495. package/src/ngtsc/resource/src/loader.js +0 -285
  496. package/src/ngtsc/routing/index.js +0 -26
  497. package/src/ngtsc/routing/src/analyzer.d.ts +0 -37
  498. package/src/ngtsc/routing/src/analyzer.js +0 -82
  499. package/src/ngtsc/routing/src/lazy.d.ts +0 -19
  500. package/src/ngtsc/routing/src/lazy.js +0 -239
  501. package/src/ngtsc/routing/src/route.d.ts +0 -23
  502. package/src/ngtsc/routing/src/route.js +0 -77
  503. package/src/ngtsc/scope/index.js +0 -29
  504. package/src/ngtsc/scope/src/api.js +0 -20
  505. package/src/ngtsc/scope/src/component_scope.js +0 -69
  506. package/src/ngtsc/scope/src/dependency.js +0 -201
  507. package/src/ngtsc/scope/src/local.js +0 -665
  508. package/src/ngtsc/scope/src/typecheck.js +0 -120
  509. package/src/ngtsc/shims/api.js +0 -13
  510. package/src/ngtsc/shims/index.js +0 -39
  511. package/src/ngtsc/shims/src/adapter.js +0 -266
  512. package/src/ngtsc/shims/src/expando.js +0 -147
  513. package/src/ngtsc/shims/src/factory_generator.js +0 -292
  514. package/src/ngtsc/shims/src/reference_tagger.js +0 -94
  515. package/src/ngtsc/shims/src/summary_generator.js +0 -101
  516. package/src/ngtsc/shims/src/util.js +0 -41
  517. package/src/ngtsc/sourcemaps/index.js +0 -27
  518. package/src/ngtsc/sourcemaps/src/content_origin.js +0 -48
  519. package/src/ngtsc/sourcemaps/src/raw_source_map.js +0 -13
  520. package/src/ngtsc/sourcemaps/src/segment_marker.js +0 -55
  521. package/src/ngtsc/sourcemaps/src/source_file.js +0 -519
  522. package/src/ngtsc/sourcemaps/src/source_file_loader.js +0 -234
  523. package/src/ngtsc/switch/index.js +0 -23
  524. package/src/ngtsc/switch/src/switch.js +0 -141
  525. package/src/ngtsc/transform/index.js +0 -36
  526. package/src/ngtsc/transform/src/alias.js +0 -46
  527. package/src/ngtsc/transform/src/api.js +0 -76
  528. package/src/ngtsc/transform/src/compilation.js +0 -820
  529. package/src/ngtsc/transform/src/declaration.js +0 -234
  530. package/src/ngtsc/transform/src/trait.js +0 -111
  531. package/src/ngtsc/transform/src/transform.js +0 -333
  532. package/src/ngtsc/transform/src/utils.js +0 -73
  533. package/src/ngtsc/translator/index.js +0 -37
  534. package/src/ngtsc/translator/src/api/ast_factory.js +0 -20
  535. package/src/ngtsc/translator/src/api/import_generator.js +0 -20
  536. package/src/ngtsc/translator/src/context.js +0 -47
  537. package/src/ngtsc/translator/src/import_manager.js +0 -77
  538. package/src/ngtsc/translator/src/translator.js +0 -353
  539. package/src/ngtsc/translator/src/type_translator.js +0 -223
  540. package/src/ngtsc/translator/src/typescript_ast_factory.js +0 -251
  541. package/src/ngtsc/translator/src/typescript_translator.js +0 -34
  542. package/src/ngtsc/tsc_plugin.js +0 -129
  543. package/src/ngtsc/typecheck/api/api.js +0 -20
  544. package/src/ngtsc/typecheck/api/checker.js +0 -44
  545. package/src/ngtsc/typecheck/api/completion.js +0 -29
  546. package/src/ngtsc/typecheck/api/context.js +0 -20
  547. package/src/ngtsc/typecheck/api/index.js +0 -27
  548. package/src/ngtsc/typecheck/api/scope.js +0 -20
  549. package/src/ngtsc/typecheck/api/symbols.js +0 -35
  550. package/src/ngtsc/typecheck/diagnostics/index.js +0 -23
  551. package/src/ngtsc/typecheck/diagnostics/src/diagnostic.js +0 -141
  552. package/src/ngtsc/typecheck/diagnostics/src/id.js +0 -37
  553. package/src/ngtsc/typecheck/index.js +0 -29
  554. package/src/ngtsc/typecheck/src/checker.js +0 -763
  555. package/src/ngtsc/typecheck/src/comments.js +0 -181
  556. package/src/ngtsc/typecheck/src/completion.js +0 -232
  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 -441
  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 -546
  569. package/src/ngtsc/typecheck/src/ts_util.js +0 -202
  570. package/src/ngtsc/typecheck/src/type_check_block.js +0 -2210
  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 -111
  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 -618
  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 -643
  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,158 +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/alias", ["require", "exports", "@angular/compiler", "@angular/compiler-cli/src/ngtsc/imports/src/emitter"], factory);
15
- }
16
- })(function (require, exports) {
17
- "use strict";
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.AliasStrategy = exports.PrivateExportAliasingHost = exports.UnifiedModulesAliasingHost = void 0;
20
- var compiler_1 = require("@angular/compiler");
21
- var emitter_1 = require("@angular/compiler-cli/src/ngtsc/imports/src/emitter");
22
- // Escape anything that isn't alphanumeric, '/' or '_'.
23
- var CHARS_TO_ESCAPE = /[^a-zA-Z0-9/_]/g;
24
- /**
25
- * An `AliasingHost` which generates and consumes alias re-exports when module names for each file
26
- * are determined by a `UnifiedModulesHost`.
27
- *
28
- * When using a `UnifiedModulesHost`, aliasing prevents issues with transitive dependencies. See the
29
- * README.md for more details.
30
- */
31
- var UnifiedModulesAliasingHost = /** @class */ (function () {
32
- function UnifiedModulesAliasingHost(unifiedModulesHost) {
33
- this.unifiedModulesHost = unifiedModulesHost;
34
- /**
35
- * With a `UnifiedModulesHost`, aliases are chosen automatically without the need to look through
36
- * the exports present in a .d.ts file, so we can avoid cluttering the .d.ts files.
37
- */
38
- this.aliasExportsInDts = false;
39
- }
40
- UnifiedModulesAliasingHost.prototype.maybeAliasSymbolAs = function (ref, context, ngModuleName, isReExport) {
41
- if (!isReExport) {
42
- // Aliasing is used with a UnifiedModulesHost to prevent transitive dependencies. Thus,
43
- // aliases
44
- // only need to be created for directives/pipes which are not direct declarations of an
45
- // NgModule which exports them.
46
- return null;
47
- }
48
- return this.aliasName(ref.node, context);
49
- };
50
- /**
51
- * Generates an `Expression` to import `decl` from `via`, assuming an export was added when `via`
52
- * was compiled per `maybeAliasSymbolAs` above.
53
- */
54
- UnifiedModulesAliasingHost.prototype.getAliasIn = function (decl, via, isReExport) {
55
- if (!isReExport) {
56
- // Directly exported directives/pipes don't require an alias, per the logic in
57
- // `maybeAliasSymbolAs`.
58
- return null;
59
- }
60
- // viaModule is the module it'll actually be imported from.
61
- var moduleName = this.unifiedModulesHost.fileNameToModuleName(via.fileName, via.fileName);
62
- return new compiler_1.ExternalExpr({ moduleName: moduleName, name: this.aliasName(decl, via) });
63
- };
64
- /**
65
- * Generates an alias name based on the full module name of the file which declares the aliased
66
- * directive/pipe.
67
- */
68
- UnifiedModulesAliasingHost.prototype.aliasName = function (decl, context) {
69
- // The declared module is used to get the name of the alias.
70
- var declModule = this.unifiedModulesHost.fileNameToModuleName(decl.getSourceFile().fileName, context.fileName);
71
- var replaced = declModule.replace(CHARS_TO_ESCAPE, '_').replace(/\//g, '$');
72
- return 'ɵng$' + replaced + '$$' + decl.name.text;
73
- };
74
- return UnifiedModulesAliasingHost;
75
- }());
76
- exports.UnifiedModulesAliasingHost = UnifiedModulesAliasingHost;
77
- /**
78
- * An `AliasingHost` which exports directives from any file containing an NgModule in which they're
79
- * declared/exported, under a private symbol name.
80
- *
81
- * These exports support cases where an NgModule is imported deeply from an absolute module path
82
- * (that is, it's not part of an Angular Package Format entrypoint), and the compiler needs to
83
- * import any matched directives/pipes from the same path (to the NgModule file). See README.md for
84
- * more details.
85
- */
86
- var PrivateExportAliasingHost = /** @class */ (function () {
87
- function PrivateExportAliasingHost(host) {
88
- this.host = host;
89
- /**
90
- * Under private export aliasing, the `AbsoluteModuleStrategy` used for emitting references will
91
- * will select aliased exports that it finds in the .d.ts file for an NgModule's file. Thus,
92
- * emitting these exports in .d.ts is a requirement for the `PrivateExportAliasingHost` to
93
- * function correctly.
94
- */
95
- this.aliasExportsInDts = true;
96
- }
97
- PrivateExportAliasingHost.prototype.maybeAliasSymbolAs = function (ref, context, ngModuleName) {
98
- if (ref.hasOwningModuleGuess) {
99
- // Skip nodes that already have an associated absolute module specifier, since they can be
100
- // safely imported from that specifier.
101
- return null;
102
- }
103
- // Look for a user-provided export of `decl` in `context`. If one exists, then an alias export
104
- // is not needed.
105
- // TODO(alxhub): maybe add a host method to check for the existence of an export without going
106
- // through the entire list of exports.
107
- var exports = this.host.getExportsOfModule(context);
108
- if (exports === null) {
109
- // Something went wrong, and no exports were available at all. Bail rather than risk creating
110
- // re-exports when they're not needed.
111
- throw new Error("Could not determine the exports of: " + context.fileName);
112
- }
113
- var found = false;
114
- exports.forEach(function (value) {
115
- if (value.node === ref.node) {
116
- found = true;
117
- }
118
- });
119
- if (found) {
120
- // The module exports the declared class directly, no alias is necessary.
121
- return null;
122
- }
123
- return "\u0275ngExport\u0275" + ngModuleName + "\u0275" + ref.node.name.text;
124
- };
125
- /**
126
- * A `PrivateExportAliasingHost` only generates re-exports and does not direct the compiler to
127
- * directly consume the aliases it creates.
128
- *
129
- * Instead, they're consumed indirectly: `AbsoluteModuleStrategy` `ReferenceEmitterStrategy` will
130
- * select these alias exports automatically when looking for an export of the directive/pipe from
131
- * the same path as the NgModule was imported.
132
- *
133
- * Thus, `getAliasIn` always returns `null`.
134
- */
135
- PrivateExportAliasingHost.prototype.getAliasIn = function () {
136
- return null;
137
- };
138
- return PrivateExportAliasingHost;
139
- }());
140
- exports.PrivateExportAliasingHost = PrivateExportAliasingHost;
141
- /**
142
- * A `ReferenceEmitStrategy` which will consume the alias attached to a particular `Reference` to a
143
- * directive or pipe, if it exists.
144
- */
145
- var AliasStrategy = /** @class */ (function () {
146
- function AliasStrategy() {
147
- }
148
- AliasStrategy.prototype.emit = function (ref, context, importMode) {
149
- if (importMode & emitter_1.ImportFlags.NoAliasing || ref.alias === null) {
150
- return null;
151
- }
152
- return { expression: ref.alias, importedFile: 'unknown' };
153
- };
154
- return AliasStrategy;
155
- }());
156
- exports.AliasStrategy = AliasStrategy;
157
- });
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL2ltcG9ydHMvc3JjL2FsaWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7OztJQUVILDhDQUEyRDtJQU0zRCwrRUFBK0U7SUFJL0UsdURBQXVEO0lBQ3ZELElBQU0sZUFBZSxHQUFHLGlCQUFpQixDQUFDO0lBbUUxQzs7Ozs7O09BTUc7SUFDSDtRQUNFLG9DQUFvQixrQkFBc0M7WUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtZQUUxRDs7O2VBR0c7WUFDTSxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFOMEIsQ0FBQztRQVE5RCx1REFBa0IsR0FBbEIsVUFDSSxHQUFnQyxFQUFFLE9BQXNCLEVBQUUsWUFBb0IsRUFDOUUsVUFBbUI7WUFDckIsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDZix1RkFBdUY7Z0JBQ3ZGLFVBQVU7Z0JBQ1YsdUZBQXVGO2dCQUN2RiwrQkFBK0I7Z0JBQy9CLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBRUQ7OztXQUdHO1FBQ0gsK0NBQVUsR0FBVixVQUFXLElBQXNCLEVBQUUsR0FBa0IsRUFBRSxVQUFtQjtZQUN4RSxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNmLDhFQUE4RTtnQkFDOUUsd0JBQXdCO2dCQUN4QixPQUFPLElBQUksQ0FBQzthQUNiO1lBQ0QsMkRBQTJEO1lBQzNELElBQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM1RixPQUFPLElBQUksdUJBQVksQ0FBQyxFQUFDLFVBQVUsWUFBQSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBQyxDQUFDLENBQUM7UUFDekUsQ0FBQztRQUVEOzs7V0FHRztRQUNLLDhDQUFTLEdBQWpCLFVBQWtCLElBQXNCLEVBQUUsT0FBc0I7WUFDOUQsNERBQTREO1lBQzVELElBQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FDM0QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFckQsSUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztZQUM5RSxPQUFPLE1BQU0sR0FBRyxRQUFRLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ25ELENBQUM7UUFDSCxpQ0FBQztJQUFELENBQUMsQUFqREQsSUFpREM7SUFqRFksZ0VBQTBCO0lBbUR2Qzs7Ozs7Ozs7T0FRRztJQUNIO1FBQ0UsbUNBQW9CLElBQW9CO1lBQXBCLFNBQUksR0FBSixJQUFJLENBQWdCO1lBRXhDOzs7OztlQUtHO1lBQ00sc0JBQWlCLEdBQUcsSUFBSSxDQUFDO1FBUlMsQ0FBQztRQVU1QyxzREFBa0IsR0FBbEIsVUFDSSxHQUFnQyxFQUFFLE9BQXNCLEVBQUUsWUFBb0I7WUFDaEYsSUFBSSxHQUFHLENBQUMsb0JBQW9CLEVBQUU7Z0JBQzVCLDBGQUEwRjtnQkFDMUYsdUNBQXVDO2dCQUN2QyxPQUFPLElBQUksQ0FBQzthQUNiO1lBQ0QsOEZBQThGO1lBQzlGLGlCQUFpQjtZQUNqQiw4RkFBOEY7WUFDOUYsc0NBQXNDO1lBQ3RDLElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEQsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFO2dCQUNwQiw2RkFBNkY7Z0JBQzdGLHNDQUFzQztnQkFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBdUMsT0FBTyxDQUFDLFFBQVUsQ0FBQyxDQUFDO2FBQzVFO1lBQ0QsSUFBSSxLQUFLLEdBQVksS0FBSyxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBQSxLQUFLO2dCQUNuQixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksRUFBRTtvQkFDM0IsS0FBSyxHQUFHLElBQUksQ0FBQztpQkFDZDtZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxLQUFLLEVBQUU7Z0JBQ1QseUVBQXlFO2dCQUN6RSxPQUFPLElBQUksQ0FBQzthQUNiO1lBQ0QsT0FBTyx5QkFBYSxZQUFZLGNBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBTSxDQUFDO1FBQzNELENBQUM7UUFFRDs7Ozs7Ozs7O1dBU0c7UUFDSCw4Q0FBVSxHQUFWO1lBQ0UsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0gsZ0NBQUM7SUFBRCxDQUFDLEFBdERELElBc0RDO0lBdERZLDhEQUF5QjtJQXdEdEM7OztPQUdHO0lBQ0g7UUFBQTtRQVFBLENBQUM7UUFQQyw0QkFBSSxHQUFKLFVBQUssR0FBYyxFQUFFLE9BQXNCLEVBQUUsVUFBdUI7WUFDbEUsSUFBSSxVQUFVLEdBQUcscUJBQVcsQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUU7Z0JBQzdELE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFFRCxPQUFPLEVBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBQyxDQUFDO1FBQzFELENBQUM7UUFDSCxvQkFBQztJQUFELENBQUMsQUFSRCxJQVFDO0lBUlksc0NBQWEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtFeHByZXNzaW9uLCBFeHRlcm5hbEV4cHJ9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge1VuaWZpZWRNb2R1bGVzSG9zdH0gZnJvbSAnLi4vLi4vY29yZS9hcGknO1xuaW1wb3J0IHtDbGFzc0RlY2xhcmF0aW9uLCBSZWZsZWN0aW9uSG9zdH0gZnJvbSAnLi4vLi4vcmVmbGVjdGlvbic7XG5cbmltcG9ydCB7RW1pdHRlZFJlZmVyZW5jZSwgSW1wb3J0RmxhZ3MsIFJlZmVyZW5jZUVtaXRTdHJhdGVneX0gZnJvbSAnLi9lbWl0dGVyJztcbmltcG9ydCB7UmVmZXJlbmNlfSBmcm9tICcuL3JlZmVyZW5jZXMnO1xuXG5cbi8vIEVzY2FwZSBhbnl0aGluZyB0aGF0IGlzbid0IGFscGhhbnVtZXJpYywgJy8nIG9yICdfJy5cbmNvbnN0IENIQVJTX1RPX0VTQ0FQRSA9IC9bXmEtekEtWjAtOS9fXS9nO1xuXG4vKipcbiAqIEEgaG9zdCBmb3IgdGhlIGFsaWFzaW5nIHN5c3RlbSwgd2hpY2ggYWxsb3dzIGZvciBhbHRlcm5hdGl2ZSBleHBvcnRzL2ltcG9ydHMgb2YgZGlyZWN0aXZlcy9waXBlcy5cbiAqXG4gKiBHaXZlbiBhbiBpbXBvcnQgb2YgYW4gTmdNb2R1bGUgKGUuZy4gYENvbW1vbk1vZHVsZWApLCB0aGUgY29tcGlsZXIgbXVzdCBnZW5lcmF0ZSBpbXBvcnRzIHRvIHRoZVxuICogZGlyZWN0aXZlcyBhbmQgcGlwZXMgZXhwb3J0ZWQgYnkgdGhpcyBtb2R1bGUgKGUuZy4gYE5nSWZgKSB3aGVuIHRoZXkncmUgdXNlZCBpbiBhIHBhcnRpY3VsYXJcbiAqIHRlbXBsYXRlLiBJbiBpdHMgZGVmYXVsdCBjb25maWd1cmF0aW9uLCBpZiB0aGUgY29tcGlsZXIgaXMgbm90IGRpcmVjdGx5IGFibGUgdG8gaW1wb3J0IHRoZVxuICogY29tcG9uZW50IGZyb20gYW5vdGhlciBmaWxlIHdpdGhpbiB0aGUgc2FtZSBwcm9qZWN0LCBpdCB3aWxsIGF0dGVtcHQgdG8gaW1wb3J0IHRoZSBjb21wb25lbnRcbiAqIGZyb20gdGhlIHNhbWUgKGFic29sdXRlKSBwYXRoIGJ5IHdoaWNoIHRoZSBtb2R1bGUgd2FzIGltcG9ydGVkLiBTbyBpbiB0aGUgYWJvdmUgZXhhbXBsZSBpZlxuICogYENvbW1vbk1vZHVsZWAgd2FzIGltcG9ydGVkIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbicsIHRoZSBjb21waWxlciB3aWxsIGF0dGVtcHQgdG8gaW1wb3J0IGBOZ0lmYFxuICogZnJvbSAnQGFuZ3VsYXIvY29tbW9uJyBhcyB3ZWxsLlxuICpcbiAqIFRoZSBhbGlhc2luZyBzeXN0ZW0gaW50ZXJhY3RzIHdpdGggdGhlIGFib3ZlIGxvZ2ljIGluIHR3byBkaXN0aW5jdCB3YXlzLlxuICpcbiAqIDEpIEl0IGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBcImFsaWFzXCIgcmUtZXhwb3J0cyBmcm9tIGRpZmZlcmVudCBmaWxlcywgd2hpY2ggY2FuIGJlIHVzZWQgd2hlbiB0aGVcbiAqICAgIHVzZXIgaGFzbid0IGV4cG9ydGVkIHRoZSBkaXJlY3RpdmUocykgZnJvbSB0aGUgRVMgbW9kdWxlIGNvbnRhaW5pbmcgdGhlIE5nTW9kdWxlLiBUaGVzZSByZS1cbiAqICAgIGV4cG9ydHMgY2FuIGFsc28gYmUgaGVscGZ1bCB3aGVuIHVzaW5nIGEgYFVuaWZpZWRNb2R1bGVzSG9zdGAsIHdoaWNoIG92ZXJyaWRlcyB0aGUgaW1wb3J0XG4gKiAgICBsb2dpYyBkZXNjcmliZWQgYWJvdmUuXG4gKlxuICogMikgSXQgY2FuIGJlIHVzZWQgdG8gZ2V0IGFuIGFsdGVybmF0aXZlIGltcG9ydCBleHByZXNzaW9uIGZvciBhIGRpcmVjdGl2ZSBvciBwaXBlLCBpbnN0ZWFkIG9mXG4gKiAgICB0aGUgaW1wb3J0IHRoYXQgdGhlIG5vcm1hbCBsb2dpYyB3b3VsZCBhcHBseS4gVGhlIGFsaWFzIHVzZWQgZGVwZW5kcyBvbiB0aGUgcHJvdmVuYW5jZSBvZiB0aGVcbiAqICAgIGBSZWZlcmVuY2VgIHdoaWNoIHdhcyBvYnRhaW5lZCBmb3IgdGhlIGRpcmVjdGl2ZS9waXBlLCB3aGljaCBpcyB1c3VhbGx5IGEgcHJvcGVydHkgb2YgaG93IGl0XG4gKiAgICBjYW1lIHRvIGJlIGluIGEgdGVtcGxhdGUncyBzY29wZSAoZS5nLiBieSB3aGljaCBOZ01vZHVsZSkuXG4gKlxuICogU2VlIHRoZSBSRUFETUUubWQgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gaG93IGFsaWFzaW5nIHdvcmtzIHdpdGhpbiB0aGUgY29tcGlsZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWxpYXNpbmdIb3N0IHtcbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoZXRoZXIgYW55IGFsaWFzIHJlLWV4cG9ydHMgYXJlIHJlbmRlcmVkIGludG8gLmQudHMgZmlsZXMuXG4gICAqXG4gICAqIFRoaXMgaXMgbm90IGFsd2F5cyBuZWNlc3NhcnkgZm9yIGFsaWFzaW5nIHRvIGZ1bmN0aW9uIGNvcnJlY3RseSwgc28gdGhpcyBmbGFnIGFsbG93cyBhblxuICAgKiBgQWxpYXNpbmdIb3N0YCB0byBhdm9pZCBjbHV0dGVyaW5nIHRoZSAuZC50cyBmaWxlcyBpZiBleHBvcnRzIGFyZSBub3Qgc3RyaWN0bHkgbmVlZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxpYXNFeHBvcnRzSW5EdHM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIERldGVybWluZSBhIG5hbWUgYnkgd2hpY2ggYGRlY2xgIHNob3VsZCBiZSByZS1leHBvcnRlZCBmcm9tIGBjb250ZXh0YCwgZGVwZW5kaW5nIG9uIHRoZVxuICAgKiBwYXJ0aWN1bGFyIHNldCBvZiBhbGlhc2luZyBydWxlcyBpbiBwbGFjZS5cbiAgICpcbiAgICogYG1heWJlQWxpYXNTeW1ib2xBc2AgY2FuIHJldHVybiBgbnVsbGAsIGluIHdoaWNoIGNhc2Ugbm8gYWxpYXMgZXhwb3J0IHNob3VsZCBiZSBnZW5lcmF0ZWQuXG4gICAqXG4gICAqIEBwYXJhbSByZWYgYSBgUmVmZXJlbmNlYCB0byB0aGUgZGlyZWN0aXZlL3BpcGUgdG8gY29uc2lkZXIgZm9yIGFsaWFzaW5nLlxuICAgKiBAcGFyYW0gY29udGV4dCB0aGUgYHRzLlNvdXJjZUZpbGVgIGluIHdoaWNoIHRoZSBhbGlhcyByZS1leHBvcnQgbWlnaHQgbmVlZCB0byBiZSBnZW5lcmF0ZWQuXG4gICAqIEBwYXJhbSBuZ01vZHVsZU5hbWUgdGhlIGRlY2xhcmVkIG5hbWUgb2YgdGhlIGBOZ01vZHVsZWAgd2l0aGluIGBjb250ZXh0YCBmb3Igd2hpY2ggdGhlIGFsaWFzXG4gICAqIHdvdWxkIGJlIGdlbmVyYXRlZC5cbiAgICogQHBhcmFtIGlzUmVFeHBvcnQgd2hldGhlciB0aGUgZGlyZWN0aXZlL3BpcGUgdW5kZXIgY29uc2lkZXJhdGlvbiBpcyByZS1leHBvcnRlZCBmcm9tIGFub3RoZXJcbiAgICogTmdNb2R1bGUgKGFzIG9wcG9zZWQgdG8gYmVpbmcgZGVjbGFyZWQgYnkgaXQgZGlyZWN0bHkpLlxuICAgKi9cbiAgbWF5YmVBbGlhc1N5bWJvbEFzKFxuICAgICAgcmVmOiBSZWZlcmVuY2U8Q2xhc3NEZWNsYXJhdGlvbj4sIGNvbnRleHQ6IHRzLlNvdXJjZUZpbGUsIG5nTW9kdWxlTmFtZTogc3RyaW5nLFxuICAgICAgaXNSZUV4cG9ydDogYm9vbGVhbik6IHN0cmluZ3xudWxsO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmUgYW4gYEV4cHJlc3Npb25gIGJ5IHdoaWNoIGBkZWNsYCBzaG91bGQgYmUgaW1wb3J0ZWQgZnJvbSBgdmlhYCB1c2luZyBhbiBhbGlhcyBleHBvcnRcbiAgICogKHdoaWNoIHNob3VsZCBoYXZlIGJlZW4gcHJldmlvdXNseSBjcmVhdGVkIHdoZW4gY29tcGlsaW5nIGB2aWFgKS5cbiAgICpcbiAgICogYGdldEFsaWFzSW5gIGNhbiByZXR1cm4gYG51bGxgLCBpbiB3aGljaCBjYXNlIG5vIGFsaWFzIGlzIG5lZWRlZCB0byBpbXBvcnQgYGRlY2xgIGZyb20gYHZpYWBcbiAgICogKGFuZCB0aGUgbm9ybWFsIGltcG9ydCBydWxlcyBzaG91bGQgYmUgdXNlZCkuXG4gICAqXG4gICAqIEBwYXJhbSBkZWNsIHRoZSBkZWNsYXJhdGlvbiBvZiB0aGUgZGlyZWN0aXZlL3BpcGUgd2hpY2ggaXMgYmVpbmcgaW1wb3J0ZWQsIGFuZCB3aGljaCBtaWdodCBiZVxuICAgKiBhbGlhc2VkLlxuICAgKiBAcGFyYW0gdmlhIHRoZSBgdHMuU291cmNlRmlsZWAgd2hpY2ggbWlnaHQgY29udGFpbiBhbiBhbGlhcyB0byB0aGVcbiAgICovXG4gIGdldEFsaWFzSW4oZGVjbDogQ2xhc3NEZWNsYXJhdGlvbiwgdmlhOiB0cy5Tb3VyY2VGaWxlLCBpc1JlRXhwb3J0OiBib29sZWFuKTogRXhwcmVzc2lvbnxudWxsO1xufVxuXG4vKipcbiAqIEFuIGBBbGlhc2luZ0hvc3RgIHdoaWNoIGdlbmVyYXRlcyBhbmQgY29uc3VtZXMgYWxpYXMgcmUtZXhwb3J0cyB3aGVuIG1vZHVsZSBuYW1lcyBmb3IgZWFjaCBmaWxlXG4gKiBhcmUgZGV0ZXJtaW5lZCBieSBhIGBVbmlmaWVkTW9kdWxlc0hvc3RgLlxuICpcbiAqIFdoZW4gdXNpbmcgYSBgVW5pZmllZE1vZHVsZXNIb3N0YCwgYWxpYXNpbmcgcHJldmVudHMgaXNzdWVzIHdpdGggdHJhbnNpdGl2ZSBkZXBlbmRlbmNpZXMuIFNlZSB0aGVcbiAqIFJFQURNRS5tZCBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG5leHBvcnQgY2xhc3MgVW5pZmllZE1vZHVsZXNBbGlhc2luZ0hvc3QgaW1wbGVtZW50cyBBbGlhc2luZ0hvc3Qge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHVuaWZpZWRNb2R1bGVzSG9zdDogVW5pZmllZE1vZHVsZXNIb3N0KSB7fVxuXG4gIC8qKlxuICAgKiBXaXRoIGEgYFVuaWZpZWRNb2R1bGVzSG9zdGAsIGFsaWFzZXMgYXJlIGNob3NlbiBhdXRvbWF0aWNhbGx5IHdpdGhvdXQgdGhlIG5lZWQgdG8gbG9vayB0aHJvdWdoXG4gICAqIHRoZSBleHBvcnRzIHByZXNlbnQgaW4gYSAuZC50cyBmaWxlLCBzbyB3ZSBjYW4gYXZvaWQgY2x1dHRlcmluZyB0aGUgLmQudHMgZmlsZXMuXG4gICAqL1xuICByZWFkb25seSBhbGlhc0V4cG9ydHNJbkR0cyA9IGZhbHNlO1xuXG4gIG1heWJlQWxpYXNTeW1ib2xBcyhcbiAgICAgIHJlZjogUmVmZXJlbmNlPENsYXNzRGVjbGFyYXRpb24+LCBjb250ZXh0OiB0cy5Tb3VyY2VGaWxlLCBuZ01vZHVsZU5hbWU6IHN0cmluZyxcbiAgICAgIGlzUmVFeHBvcnQ6IGJvb2xlYW4pOiBzdHJpbmd8bnVsbCB7XG4gICAgaWYgKCFpc1JlRXhwb3J0KSB7XG4gICAgICAvLyBBbGlhc2luZyBpcyB1c2VkIHdpdGggYSBVbmlmaWVkTW9kdWxlc0hvc3QgdG8gcHJldmVudCB0cmFuc2l0aXZlIGRlcGVuZGVuY2llcy4gVGh1cyxcbiAgICAgIC8vIGFsaWFzZXNcbiAgICAgIC8vIG9ubHkgbmVlZCB0byBiZSBjcmVhdGVkIGZvciBkaXJlY3RpdmVzL3BpcGVzIHdoaWNoIGFyZSBub3QgZGlyZWN0IGRlY2xhcmF0aW9ucyBvZiBhblxuICAgICAgLy8gTmdNb2R1bGUgd2hpY2ggZXhwb3J0cyB0aGVtLlxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFsaWFzTmFtZShyZWYubm9kZSwgY29udGV4dCk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIGFuIGBFeHByZXNzaW9uYCB0byBpbXBvcnQgYGRlY2xgIGZyb20gYHZpYWAsIGFzc3VtaW5nIGFuIGV4cG9ydCB3YXMgYWRkZWQgd2hlbiBgdmlhYFxuICAgKiB3YXMgY29tcGlsZWQgcGVyIGBtYXliZUFsaWFzU3ltYm9sQXNgIGFib3ZlLlxuICAgKi9cbiAgZ2V0QWxpYXNJbihkZWNsOiBDbGFzc0RlY2xhcmF0aW9uLCB2aWE6IHRzLlNvdXJjZUZpbGUsIGlzUmVFeHBvcnQ6IGJvb2xlYW4pOiBFeHByZXNzaW9ufG51bGwge1xuICAgIGlmICghaXNSZUV4cG9ydCkge1xuICAgICAgLy8gRGlyZWN0bHkgZXhwb3J0ZWQgZGlyZWN0aXZlcy9waXBlcyBkb24ndCByZXF1aXJlIGFuIGFsaWFzLCBwZXIgdGhlIGxvZ2ljIGluXG4gICAgICAvLyBgbWF5YmVBbGlhc1N5bWJvbEFzYC5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICAvLyB2aWFNb2R1bGUgaXMgdGhlIG1vZHVsZSBpdCdsbCBhY3R1YWxseSBiZSBpbXBvcnRlZCBmcm9tLlxuICAgIGNvbnN0IG1vZHVsZU5hbWUgPSB0aGlzLnVuaWZpZWRNb2R1bGVzSG9zdC5maWxlTmFtZVRvTW9kdWxlTmFtZSh2aWEuZmlsZU5hbWUsIHZpYS5maWxlTmFtZSk7XG4gICAgcmV0dXJuIG5ldyBFeHRlcm5hbEV4cHIoe21vZHVsZU5hbWUsIG5hbWU6IHRoaXMuYWxpYXNOYW1lKGRlY2wsIHZpYSl9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYW4gYWxpYXMgbmFtZSBiYXNlZCBvbiB0aGUgZnVsbCBtb2R1bGUgbmFtZSBvZiB0aGUgZmlsZSB3aGljaCBkZWNsYXJlcyB0aGUgYWxpYXNlZFxuICAgKiBkaXJlY3RpdmUvcGlwZS5cbiAgICovXG4gIHByaXZhdGUgYWxpYXNOYW1lKGRlY2w6IENsYXNzRGVjbGFyYXRpb24sIGNvbnRleHQ6IHRzLlNvdXJjZUZpbGUpOiBzdHJpbmcge1xuICAgIC8vIFRoZSBkZWNsYXJlZCBtb2R1bGUgaXMgdXNlZCB0byBnZXQgdGhlIG5hbWUgb2YgdGhlIGFsaWFzLlxuICAgIGNvbnN0IGRlY2xNb2R1bGUgPSB0aGlzLnVuaWZpZWRNb2R1bGVzSG9zdC5maWxlTmFtZVRvTW9kdWxlTmFtZShcbiAgICAgICAgZGVjbC5nZXRTb3VyY2VGaWxlKCkuZmlsZU5hbWUsIGNvbnRleHQuZmlsZU5hbWUpO1xuXG4gICAgY29uc3QgcmVwbGFjZWQgPSBkZWNsTW9kdWxlLnJlcGxhY2UoQ0hBUlNfVE9fRVNDQVBFLCAnXycpLnJlcGxhY2UoL1xcLy9nLCAnJCcpO1xuICAgIHJldHVybiAnybVuZyQnICsgcmVwbGFjZWQgKyAnJCQnICsgZGVjbC5uYW1lLnRleHQ7XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBgQWxpYXNpbmdIb3N0YCB3aGljaCBleHBvcnRzIGRpcmVjdGl2ZXMgZnJvbSBhbnkgZmlsZSBjb250YWluaW5nIGFuIE5nTW9kdWxlIGluIHdoaWNoIHRoZXkncmVcbiAqIGRlY2xhcmVkL2V4cG9ydGVkLCB1bmRlciBhIHByaXZhdGUgc3ltYm9sIG5hbWUuXG4gKlxuICogVGhlc2UgZXhwb3J0cyBzdXBwb3J0IGNhc2VzIHdoZXJlIGFuIE5nTW9kdWxlIGlzIGltcG9ydGVkIGRlZXBseSBmcm9tIGFuIGFic29sdXRlIG1vZHVsZSBwYXRoXG4gKiAodGhhdCBpcywgaXQncyBub3QgcGFydCBvZiBhbiBBbmd1bGFyIFBhY2thZ2UgRm9ybWF0IGVudHJ5cG9pbnQpLCBhbmQgdGhlIGNvbXBpbGVyIG5lZWRzIHRvXG4gKiBpbXBvcnQgYW55IG1hdGNoZWQgZGlyZWN0aXZlcy9waXBlcyBmcm9tIHRoZSBzYW1lIHBhdGggKHRvIHRoZSBOZ01vZHVsZSBmaWxlKS4gU2VlIFJFQURNRS5tZCBmb3JcbiAqIG1vcmUgZGV0YWlscy5cbiAqL1xuZXhwb3J0IGNsYXNzIFByaXZhdGVFeHBvcnRBbGlhc2luZ0hvc3QgaW1wbGVtZW50cyBBbGlhc2luZ0hvc3Qge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGhvc3Q6IFJlZmxlY3Rpb25Ib3N0KSB7fVxuXG4gIC8qKlxuICAgKiBVbmRlciBwcml2YXRlIGV4cG9ydCBhbGlhc2luZywgdGhlIGBBYnNvbHV0ZU1vZHVsZVN0cmF0ZWd5YCB1c2VkIGZvciBlbWl0dGluZyByZWZlcmVuY2VzIHdpbGxcbiAgICogd2lsbCBzZWxlY3QgYWxpYXNlZCBleHBvcnRzIHRoYXQgaXQgZmluZHMgaW4gdGhlIC5kLnRzIGZpbGUgZm9yIGFuIE5nTW9kdWxlJ3MgZmlsZS4gVGh1cyxcbiAgICogZW1pdHRpbmcgdGhlc2UgZXhwb3J0cyBpbiAuZC50cyBpcyBhIHJlcXVpcmVtZW50IGZvciB0aGUgYFByaXZhdGVFeHBvcnRBbGlhc2luZ0hvc3RgIHRvXG4gICAqIGZ1bmN0aW9uIGNvcnJlY3RseS5cbiAgICovXG4gIHJlYWRvbmx5IGFsaWFzRXhwb3J0c0luRHRzID0gdHJ1ZTtcblxuICBtYXliZUFsaWFzU3ltYm9sQXMoXG4gICAgICByZWY6IFJlZmVyZW5jZTxDbGFzc0RlY2xhcmF0aW9uPiwgY29udGV4dDogdHMuU291cmNlRmlsZSwgbmdNb2R1bGVOYW1lOiBzdHJpbmcpOiBzdHJpbmd8bnVsbCB7XG4gICAgaWYgKHJlZi5oYXNPd25pbmdNb2R1bGVHdWVzcykge1xuICAgICAgLy8gU2tpcCBub2RlcyB0aGF0IGFscmVhZHkgaGF2ZSBhbiBhc3NvY2lhdGVkIGFic29sdXRlIG1vZHVsZSBzcGVjaWZpZXIsIHNpbmNlIHRoZXkgY2FuIGJlXG4gICAgICAvLyBzYWZlbHkgaW1wb3J0ZWQgZnJvbSB0aGF0IHNwZWNpZmllci5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICAvLyBMb29rIGZvciBhIHVzZXItcHJvdmlkZWQgZXhwb3J0IG9mIGBkZWNsYCBpbiBgY29udGV4dGAuIElmIG9uZSBleGlzdHMsIHRoZW4gYW4gYWxpYXMgZXhwb3J0XG4gICAgLy8gaXMgbm90IG5lZWRlZC5cbiAgICAvLyBUT0RPKGFseGh1Yik6IG1heWJlIGFkZCBhIGhvc3QgbWV0aG9kIHRvIGNoZWNrIGZvciB0aGUgZXhpc3RlbmNlIG9mIGFuIGV4cG9ydCB3aXRob3V0IGdvaW5nXG4gICAgLy8gdGhyb3VnaCB0aGUgZW50aXJlIGxpc3Qgb2YgZXhwb3J0cy5cbiAgICBjb25zdCBleHBvcnRzID0gdGhpcy5ob3N0LmdldEV4cG9ydHNPZk1vZHVsZShjb250ZXh0KTtcbiAgICBpZiAoZXhwb3J0cyA9PT0gbnVsbCkge1xuICAgICAgLy8gU29tZXRoaW5nIHdlbnQgd3JvbmcsIGFuZCBubyBleHBvcnRzIHdlcmUgYXZhaWxhYmxlIGF0IGFsbC4gQmFpbCByYXRoZXIgdGhhbiByaXNrIGNyZWF0aW5nXG4gICAgICAvLyByZS1leHBvcnRzIHdoZW4gdGhleSdyZSBub3QgbmVlZGVkLlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBleHBvcnRzIG9mOiAke2NvbnRleHQuZmlsZU5hbWV9YCk7XG4gICAgfVxuICAgIGxldCBmb3VuZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGV4cG9ydHMuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICBpZiAodmFsdWUubm9kZSA9PT0gcmVmLm5vZGUpIHtcbiAgICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmIChmb3VuZCkge1xuICAgICAgLy8gVGhlIG1vZHVsZSBleHBvcnRzIHRoZSBkZWNsYXJlZCBjbGFzcyBkaXJlY3RseSwgbm8gYWxpYXMgaXMgbmVjZXNzYXJ5LlxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBgybVuZ0V4cG9ydMm1JHtuZ01vZHVsZU5hbWV9ybUke3JlZi5ub2RlLm5hbWUudGV4dH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgYFByaXZhdGVFeHBvcnRBbGlhc2luZ0hvc3RgIG9ubHkgZ2VuZXJhdGVzIHJlLWV4cG9ydHMgYW5kIGRvZXMgbm90IGRpcmVjdCB0aGUgY29tcGlsZXIgdG9cbiAgICogZGlyZWN0bHkgY29uc3VtZSB0aGUgYWxpYXNlcyBpdCBjcmVhdGVzLlxuICAgKlxuICAgKiBJbnN0ZWFkLCB0aGV5J3JlIGNvbnN1bWVkIGluZGlyZWN0bHk6IGBBYnNvbHV0ZU1vZHVsZVN0cmF0ZWd5YCBgUmVmZXJlbmNlRW1pdHRlclN0cmF0ZWd5YCB3aWxsXG4gICAqIHNlbGVjdCB0aGVzZSBhbGlhcyBleHBvcnRzIGF1dG9tYXRpY2FsbHkgd2hlbiBsb29raW5nIGZvciBhbiBleHBvcnQgb2YgdGhlIGRpcmVjdGl2ZS9waXBlIGZyb21cbiAgICogdGhlIHNhbWUgcGF0aCBhcyB0aGUgTmdNb2R1bGUgd2FzIGltcG9ydGVkLlxuICAgKlxuICAgKiBUaHVzLCBgZ2V0QWxpYXNJbmAgYWx3YXlzIHJldHVybnMgYG51bGxgLlxuICAgKi9cbiAgZ2V0QWxpYXNJbigpOiBudWxsIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG4vKipcbiAqIEEgYFJlZmVyZW5jZUVtaXRTdHJhdGVneWAgd2hpY2ggd2lsbCBjb25zdW1lIHRoZSBhbGlhcyBhdHRhY2hlZCB0byBhIHBhcnRpY3VsYXIgYFJlZmVyZW5jZWAgdG8gYVxuICogZGlyZWN0aXZlIG9yIHBpcGUsIGlmIGl0IGV4aXN0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFsaWFzU3RyYXRlZ3kgaW1wbGVtZW50cyBSZWZlcmVuY2VFbWl0U3RyYXRlZ3kge1xuICBlbWl0KHJlZjogUmVmZXJlbmNlLCBjb250ZXh0OiB0cy5Tb3VyY2VGaWxlLCBpbXBvcnRNb2RlOiBJbXBvcnRGbGFncyk6IEVtaXR0ZWRSZWZlcmVuY2V8bnVsbCB7XG4gICAgaWYgKGltcG9ydE1vZGUgJiBJbXBvcnRGbGFncy5Ob0FsaWFzaW5nIHx8IHJlZi5hbGlhcyA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtleHByZXNzaW9uOiByZWYuYWxpYXMsIGltcG9ydGVkRmlsZTogJ3Vua25vd24nfTtcbiAgfVxufVxuIl19
@@ -1,98 +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/core", ["require", "exports", "@angular/compiler-cli/src/ngtsc/util/src/path"], factory);
15
- }
16
- })(function (require, exports) {
17
- "use strict";
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.validateAndRewriteCoreSymbol = exports.R3SymbolsImportRewriter = exports.NoopImportRewriter = void 0;
20
- var path_1 = require("@angular/compiler-cli/src/ngtsc/util/src/path");
21
- /**
22
- * `ImportRewriter` that does no rewriting.
23
- */
24
- var NoopImportRewriter = /** @class */ (function () {
25
- function NoopImportRewriter() {
26
- }
27
- NoopImportRewriter.prototype.shouldImportSymbol = function (symbol, specifier) {
28
- return true;
29
- };
30
- NoopImportRewriter.prototype.rewriteSymbol = function (symbol, specifier) {
31
- return symbol;
32
- };
33
- NoopImportRewriter.prototype.rewriteSpecifier = function (specifier, inContextOfFile) {
34
- return specifier;
35
- };
36
- return NoopImportRewriter;
37
- }());
38
- exports.NoopImportRewriter = NoopImportRewriter;
39
- /**
40
- * A mapping of supported symbols that can be imported from within @angular/core, and the names by
41
- * which they're exported from r3_symbols.
42
- */
43
- var CORE_SUPPORTED_SYMBOLS = new Map([
44
- ['ɵɵdefineInjectable', 'ɵɵdefineInjectable'],
45
- ['ɵɵdefineInjector', 'ɵɵdefineInjector'],
46
- ['ɵɵdefineNgModule', 'ɵɵdefineNgModule'],
47
- ['ɵɵsetNgModuleScope', 'ɵɵsetNgModuleScope'],
48
- ['ɵɵinject', 'ɵɵinject'],
49
- ['ɵɵFactoryDeclaration', 'ɵɵFactoryDeclaration'],
50
- ['ɵsetClassMetadata', 'setClassMetadata'],
51
- ['ɵɵInjectableDeclaration', 'ɵɵInjectableDeclaration'],
52
- ['ɵɵInjectorDeclaration', 'ɵɵInjectorDeclaration'],
53
- ['ɵɵNgModuleDeclaration', 'ɵɵNgModuleDeclaration'],
54
- ['ɵNgModuleFactory', 'NgModuleFactory'],
55
- ['ɵnoSideEffects', 'ɵnoSideEffects'],
56
- ]);
57
- var CORE_MODULE = '@angular/core';
58
- /**
59
- * `ImportRewriter` that rewrites imports from '@angular/core' to be imported from the r3_symbols.ts
60
- * file instead.
61
- */
62
- var R3SymbolsImportRewriter = /** @class */ (function () {
63
- function R3SymbolsImportRewriter(r3SymbolsPath) {
64
- this.r3SymbolsPath = r3SymbolsPath;
65
- }
66
- R3SymbolsImportRewriter.prototype.shouldImportSymbol = function (symbol, specifier) {
67
- return true;
68
- };
69
- R3SymbolsImportRewriter.prototype.rewriteSymbol = function (symbol, specifier) {
70
- if (specifier !== CORE_MODULE) {
71
- // This import isn't from core, so ignore it.
72
- return symbol;
73
- }
74
- return validateAndRewriteCoreSymbol(symbol);
75
- };
76
- R3SymbolsImportRewriter.prototype.rewriteSpecifier = function (specifier, inContextOfFile) {
77
- if (specifier !== CORE_MODULE) {
78
- // This module isn't core, so ignore it.
79
- return specifier;
80
- }
81
- var relativePathToR3Symbols = path_1.relativePathBetween(inContextOfFile, this.r3SymbolsPath);
82
- if (relativePathToR3Symbols === null) {
83
- throw new Error("Failed to rewrite import inside " + CORE_MODULE + ": " + inContextOfFile + " -> " + this.r3SymbolsPath);
84
- }
85
- return relativePathToR3Symbols;
86
- };
87
- return R3SymbolsImportRewriter;
88
- }());
89
- exports.R3SymbolsImportRewriter = R3SymbolsImportRewriter;
90
- function validateAndRewriteCoreSymbol(name) {
91
- if (!CORE_SUPPORTED_SYMBOLS.has(name)) {
92
- throw new Error("Importing unexpected symbol " + name + " while compiling " + CORE_MODULE);
93
- }
94
- return CORE_SUPPORTED_SYMBOLS.get(name);
95
- }
96
- exports.validateAndRewriteCoreSymbol = validateAndRewriteCoreSymbol;
97
- });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvaW1wb3J0cy9zcmMvY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7SUFFSCxzRUFBd0Q7SUEwQnhEOztPQUVHO0lBQ0g7UUFBQTtRQVlBLENBQUM7UUFYQywrQ0FBa0IsR0FBbEIsVUFBbUIsTUFBYyxFQUFFLFNBQWlCO1lBQ2xELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELDBDQUFhLEdBQWIsVUFBYyxNQUFjLEVBQUUsU0FBaUI7WUFDN0MsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUVELDZDQUFnQixHQUFoQixVQUFpQixTQUFpQixFQUFFLGVBQXVCO1lBQ3pELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDSCx5QkFBQztJQUFELENBQUMsQUFaRCxJQVlDO0lBWlksZ0RBQWtCO0lBYy9COzs7T0FHRztJQUNILElBQU0sc0JBQXNCLEdBQUcsSUFBSSxHQUFHLENBQWlCO1FBQ3JELENBQUMsb0JBQW9CLEVBQUUsb0JBQW9CLENBQUM7UUFDNUMsQ0FBQyxrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQztRQUN4QyxDQUFDLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDO1FBQ3hDLENBQUMsb0JBQW9CLEVBQUUsb0JBQW9CLENBQUM7UUFDNUMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDO1FBQ3hCLENBQUMsc0JBQXNCLEVBQUUsc0JBQXNCLENBQUM7UUFDaEQsQ0FBQyxtQkFBbUIsRUFBRSxrQkFBa0IsQ0FBQztRQUN6QyxDQUFDLHlCQUF5QixFQUFFLHlCQUF5QixDQUFDO1FBQ3RELENBQUMsdUJBQXVCLEVBQUUsdUJBQXVCLENBQUM7UUFDbEQsQ0FBQyx1QkFBdUIsRUFBRSx1QkFBdUIsQ0FBQztRQUNsRCxDQUFDLGtCQUFrQixFQUFFLGlCQUFpQixDQUFDO1FBQ3ZDLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUM7S0FDckMsQ0FBQyxDQUFDO0lBRUgsSUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDO0lBRXBDOzs7T0FHRztJQUNIO1FBQ0UsaUNBQW9CLGFBQXFCO1lBQXJCLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQUcsQ0FBQztRQUU3QyxvREFBa0IsR0FBbEIsVUFBbUIsTUFBYyxFQUFFLFNBQWlCO1lBQ2xELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELCtDQUFhLEdBQWIsVUFBYyxNQUFjLEVBQUUsU0FBaUI7WUFDN0MsSUFBSSxTQUFTLEtBQUssV0FBVyxFQUFFO2dCQUM3Qiw2Q0FBNkM7Z0JBQzdDLE9BQU8sTUFBTSxDQUFDO2FBQ2Y7WUFFRCxPQUFPLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFFRCxrREFBZ0IsR0FBaEIsVUFBaUIsU0FBaUIsRUFBRSxlQUF1QjtZQUN6RCxJQUFJLFNBQVMsS0FBSyxXQUFXLEVBQUU7Z0JBQzdCLHdDQUF3QztnQkFDeEMsT0FBTyxTQUFTLENBQUM7YUFDbEI7WUFFRCxJQUFNLHVCQUF1QixHQUFHLDBCQUFtQixDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekYsSUFBSSx1QkFBdUIsS0FBSyxJQUFJLEVBQUU7Z0JBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQW1DLFdBQVcsVUFBSyxlQUFlLFlBQzlFLElBQUksQ0FBQyxhQUFlLENBQUMsQ0FBQzthQUMzQjtZQUVELE9BQU8sdUJBQXVCLENBQUM7UUFDakMsQ0FBQztRQUNILDhCQUFDO0lBQUQsQ0FBQyxBQTlCRCxJQThCQztJQTlCWSwwREFBdUI7SUFnQ3BDLFNBQWdCLDRCQUE0QixDQUFDLElBQVk7UUFDdkQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUErQixJQUFJLHlCQUFvQixXQUFhLENBQUMsQ0FBQztTQUN2RjtRQUNELE9BQU8sc0JBQXNCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBRSxDQUFDO0lBQzNDLENBQUM7SUFMRCxvRUFLQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge3JlbGF0aXZlUGF0aEJldHdlZW59IGZyb20gJy4uLy4uL3V0aWwvc3JjL3BhdGgnO1xuXG4vKipcbiAqIFJld3JpdGVzIGltcG9ydHMgb2Ygc3ltYm9scyBiZWluZyB3cml0dGVuIGludG8gZ2VuZXJhdGVkIGNvZGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0UmV3cml0ZXIge1xuICAvKipcbiAgICogU2hvdWxkIHRoZSBnaXZlbiBzeW1ib2wgYmUgaW1wb3J0ZWQgYXQgYWxsP1xuICAgKlxuICAgKiBJZiBgdHJ1ZWAsIHRoZSBzeW1ib2wgc2hvdWxkIGJlIGltcG9ydGVkIGZyb20gdGhlIGdpdmVuIHNwZWNpZmllci4gSWYgYGZhbHNlYCwgdGhlIHN5bWJvbFxuICAgKiBzaG91bGQgYmUgcmVmZXJlbmNlZCBkaXJlY3RseSwgd2l0aG91dCBhbiBpbXBvcnQuXG4gICAqL1xuICBzaG91bGRJbXBvcnRTeW1ib2woc3ltYm9sOiBzdHJpbmcsIHNwZWNpZmllcjogc3RyaW5nKTogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3B0aW9uYWxseSByZXdyaXRlIGEgcmVmZXJlbmNlIHRvIGFuIGltcG9ydGVkIHN5bWJvbCwgY2hhbmdpbmcgZWl0aGVyIHRoZSBiaW5kaW5nIHByZWZpeCBvciB0aGVcbiAgICogc3ltYm9sIG5hbWUgaXRzZWxmLlxuICAgKi9cbiAgcmV3cml0ZVN5bWJvbChzeW1ib2w6IHN0cmluZywgc3BlY2lmaWVyOiBzdHJpbmcpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsbHkgcmV3cml0ZSB0aGUgZ2l2ZW4gbW9kdWxlIHNwZWNpZmllciBpbiB0aGUgY29udGV4dCBvZiBhIGdpdmVuIGZpbGUuXG4gICAqL1xuICByZXdyaXRlU3BlY2lmaWVyKHNwZWNpZmllcjogc3RyaW5nLCBpbkNvbnRleHRPZkZpbGU6IHN0cmluZyk6IHN0cmluZztcbn1cblxuLyoqXG4gKiBgSW1wb3J0UmV3cml0ZXJgIHRoYXQgZG9lcyBubyByZXdyaXRpbmcuXG4gKi9cbmV4cG9ydCBjbGFzcyBOb29wSW1wb3J0UmV3cml0ZXIgaW1wbGVtZW50cyBJbXBvcnRSZXdyaXRlciB7XG4gIHNob3VsZEltcG9ydFN5bWJvbChzeW1ib2w6IHN0cmluZywgc3BlY2lmaWVyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJld3JpdGVTeW1ib2woc3ltYm9sOiBzdHJpbmcsIHNwZWNpZmllcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3ltYm9sO1xuICB9XG5cbiAgcmV3cml0ZVNwZWNpZmllcihzcGVjaWZpZXI6IHN0cmluZywgaW5Db250ZXh0T2ZGaWxlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzcGVjaWZpZXI7XG4gIH1cbn1cblxuLyoqXG4gKiBBIG1hcHBpbmcgb2Ygc3VwcG9ydGVkIHN5bWJvbHMgdGhhdCBjYW4gYmUgaW1wb3J0ZWQgZnJvbSB3aXRoaW4gQGFuZ3VsYXIvY29yZSwgYW5kIHRoZSBuYW1lcyBieVxuICogd2hpY2ggdGhleSdyZSBleHBvcnRlZCBmcm9tIHIzX3N5bWJvbHMuXG4gKi9cbmNvbnN0IENPUkVfU1VQUE9SVEVEX1NZTUJPTFMgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbXG4gIFsnybXJtWRlZmluZUluamVjdGFibGUnLCAnybXJtWRlZmluZUluamVjdGFibGUnXSxcbiAgWyfJtcm1ZGVmaW5lSW5qZWN0b3InLCAnybXJtWRlZmluZUluamVjdG9yJ10sXG4gIFsnybXJtWRlZmluZU5nTW9kdWxlJywgJ8m1ybVkZWZpbmVOZ01vZHVsZSddLFxuICBbJ8m1ybVzZXROZ01vZHVsZVNjb3BlJywgJ8m1ybVzZXROZ01vZHVsZVNjb3BlJ10sXG4gIFsnybXJtWluamVjdCcsICfJtcm1aW5qZWN0J10sXG4gIFsnybXJtUZhY3RvcnlEZWNsYXJhdGlvbicsICfJtcm1RmFjdG9yeURlY2xhcmF0aW9uJ10sXG4gIFsnybVzZXRDbGFzc01ldGFkYXRhJywgJ3NldENsYXNzTWV0YWRhdGEnXSxcbiAgWyfJtcm1SW5qZWN0YWJsZURlY2xhcmF0aW9uJywgJ8m1ybVJbmplY3RhYmxlRGVjbGFyYXRpb24nXSxcbiAgWyfJtcm1SW5qZWN0b3JEZWNsYXJhdGlvbicsICfJtcm1SW5qZWN0b3JEZWNsYXJhdGlvbiddLFxuICBbJ8m1ybVOZ01vZHVsZURlY2xhcmF0aW9uJywgJ8m1ybVOZ01vZHVsZURlY2xhcmF0aW9uJ10sXG4gIFsnybVOZ01vZHVsZUZhY3RvcnknLCAnTmdNb2R1bGVGYWN0b3J5J10sXG4gIFsnybVub1NpZGVFZmZlY3RzJywgJ8m1bm9TaWRlRWZmZWN0cyddLFxuXSk7XG5cbmNvbnN0IENPUkVfTU9EVUxFID0gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIGBJbXBvcnRSZXdyaXRlcmAgdGhhdCByZXdyaXRlcyBpbXBvcnRzIGZyb20gJ0Bhbmd1bGFyL2NvcmUnIHRvIGJlIGltcG9ydGVkIGZyb20gdGhlIHIzX3N5bWJvbHMudHNcbiAqIGZpbGUgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFIzU3ltYm9sc0ltcG9ydFJld3JpdGVyIGltcGxlbWVudHMgSW1wb3J0UmV3cml0ZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHIzU3ltYm9sc1BhdGg6IHN0cmluZykge31cblxuICBzaG91bGRJbXBvcnRTeW1ib2woc3ltYm9sOiBzdHJpbmcsIHNwZWNpZmllcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXdyaXRlU3ltYm9sKHN5bWJvbDogc3RyaW5nLCBzcGVjaWZpZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHNwZWNpZmllciAhPT0gQ09SRV9NT0RVTEUpIHtcbiAgICAgIC8vIFRoaXMgaW1wb3J0IGlzbid0IGZyb20gY29yZSwgc28gaWdub3JlIGl0LlxuICAgICAgcmV0dXJuIHN5bWJvbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWRhdGVBbmRSZXdyaXRlQ29yZVN5bWJvbChzeW1ib2wpO1xuICB9XG5cbiAgcmV3cml0ZVNwZWNpZmllcihzcGVjaWZpZXI6IHN0cmluZywgaW5Db250ZXh0T2ZGaWxlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChzcGVjaWZpZXIgIT09IENPUkVfTU9EVUxFKSB7XG4gICAgICAvLyBUaGlzIG1vZHVsZSBpc24ndCBjb3JlLCBzbyBpZ25vcmUgaXQuXG4gICAgICByZXR1cm4gc3BlY2lmaWVyO1xuICAgIH1cblxuICAgIGNvbnN0IHJlbGF0aXZlUGF0aFRvUjNTeW1ib2xzID0gcmVsYXRpdmVQYXRoQmV0d2VlbihpbkNvbnRleHRPZkZpbGUsIHRoaXMucjNTeW1ib2xzUGF0aCk7XG4gICAgaWYgKHJlbGF0aXZlUGF0aFRvUjNTeW1ib2xzID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byByZXdyaXRlIGltcG9ydCBpbnNpZGUgJHtDT1JFX01PRFVMRX06ICR7aW5Db250ZXh0T2ZGaWxlfSAtPiAke1xuICAgICAgICAgIHRoaXMucjNTeW1ib2xzUGF0aH1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVsYXRpdmVQYXRoVG9SM1N5bWJvbHM7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlQW5kUmV3cml0ZUNvcmVTeW1ib2wobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCFDT1JFX1NVUFBPUlRFRF9TWU1CT0xTLmhhcyhuYW1lKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW1wb3J0aW5nIHVuZXhwZWN0ZWQgc3ltYm9sICR7bmFtZX0gd2hpbGUgY29tcGlsaW5nICR7Q09SRV9NT0RVTEV9YCk7XG4gIH1cbiAgcmV0dXJuIENPUkVfU1VQUE9SVEVEX1NZTUJPTFMuZ2V0KG5hbWUpITtcbn1cbiJdfQ==
@@ -1,153 +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/default", ["require", "exports", "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.DefaultImportTracker = exports.getDefaultImportDeclaration = exports.attachDefaultImportDeclaration = void 0;
20
- var ts = require("typescript");
21
- var typescript_1 = require("@angular/compiler-cli/src/ngtsc/util/src/typescript");
22
- var DefaultImportDeclaration = Symbol('DefaultImportDeclaration');
23
- /**
24
- * Attaches a default import declaration to `expr` to indicate the dependency of `expr` on the
25
- * default import.
26
- */
27
- function attachDefaultImportDeclaration(expr, importDecl) {
28
- expr[DefaultImportDeclaration] = importDecl;
29
- }
30
- exports.attachDefaultImportDeclaration = attachDefaultImportDeclaration;
31
- /**
32
- * Obtains the default import declaration that `expr` depends on, or `null` if there is no such
33
- * dependency.
34
- */
35
- function getDefaultImportDeclaration(expr) {
36
- var _a;
37
- return (_a = expr[DefaultImportDeclaration]) !== null && _a !== void 0 ? _a : null;
38
- }
39
- exports.getDefaultImportDeclaration = getDefaultImportDeclaration;
40
- /**
41
- * TypeScript has trouble with generating default imports inside of transformers for some module
42
- * formats. The issue is that for the statement:
43
- *
44
- * import X from 'some/module';
45
- * console.log(X);
46
- *
47
- * TypeScript will not use the "X" name in generated code. For normal user code, this is fine
48
- * because references to X will also be renamed. However, if both the import and any references are
49
- * added in a transformer, TypeScript does not associate the two, and will leave the "X" references
50
- * dangling while renaming the import variable. The generated code looks something like:
51
- *
52
- * const module_1 = require('some/module');
53
- * console.log(X); // now X is a dangling reference.
54
- *
55
- * Therefore, we cannot synthetically add default imports, and must reuse the imports that users
56
- * include. Doing this poses a challenge for imports that are only consumed in the type position in
57
- * the user's code. If Angular reuses the imported symbol in a value position (for example, we
58
- * see a constructor parameter of type Foo and try to write "inject(Foo)") we will also end up with
59
- * a dangling reference, as TS will elide the import because it was only used in the type position
60
- * originally.
61
- *
62
- * To avoid this, the compiler must "touch" the imports with `ts.getMutableClone`, and should
63
- * only do this for imports which are actually consumed. The `DefaultImportTracker` keeps track of
64
- * these imports as they're encountered and emitted, and implements a transform which can correctly
65
- * flag the imports as required.
66
- *
67
- * This problem does not exist for non-default imports as the compiler can easily insert
68
- * "import * as X" style imports for those, and the "X" identifier survives transformation.
69
- */
70
- var DefaultImportTracker = /** @class */ (function () {
71
- function DefaultImportTracker() {
72
- /**
73
- * A `Map` which tracks the `Set` of `ts.ImportDeclaration`s for default imports that were used in
74
- * a given `ts.SourceFile` and need to be preserved.
75
- */
76
- this.sourceFileToUsedImports = new Map();
77
- }
78
- DefaultImportTracker.prototype.recordUsedImport = function (importDecl) {
79
- var sf = typescript_1.getSourceFile(importDecl);
80
- // Add the default import declaration to the set of used import declarations for the file.
81
- if (!this.sourceFileToUsedImports.has(sf)) {
82
- this.sourceFileToUsedImports.set(sf, new Set());
83
- }
84
- this.sourceFileToUsedImports.get(sf).add(importDecl);
85
- };
86
- /**
87
- * Get a `ts.TransformerFactory` which will preserve default imports that were previously marked
88
- * as used.
89
- *
90
- * This transformer must run after any other transformers which call `recordUsedImport`.
91
- */
92
- DefaultImportTracker.prototype.importPreservingTransformer = function () {
93
- var _this = this;
94
- return function (context) {
95
- return function (sf) {
96
- return _this.transformSourceFile(sf);
97
- };
98
- };
99
- };
100
- /**
101
- * Process a `ts.SourceFile` and replace any `ts.ImportDeclaration`s.
102
- */
103
- DefaultImportTracker.prototype.transformSourceFile = function (sf) {
104
- var originalSf = ts.getOriginalNode(sf);
105
- // Take a fast path if no import declarations need to be preserved in the file.
106
- if (!this.sourceFileToUsedImports.has(originalSf)) {
107
- return sf;
108
- }
109
- // There are declarations that need to be preserved.
110
- var importsToPreserve = this.sourceFileToUsedImports.get(originalSf);
111
- // Generate a new statement list which preserves any imports present in `importsToPreserve`.
112
- var statements = sf.statements.map(function (stmt) {
113
- if (ts.isImportDeclaration(stmt) && importsToPreserve.has(stmt)) {
114
- // Preserving an import that's marked as unreferenced (type-only) is tricky in TypeScript.
115
- //
116
- // Various approaches have been tried, with mixed success:
117
- //
118
- // 1. Using `ts.updateImportDeclaration` does not cause the import to be retained.
119
- //
120
- // 2. Using `ts.createImportDeclaration` with the same `ts.ImportClause` causes the import
121
- // to correctly be retained, but when emitting CommonJS module format code, references
122
- // to the imported value will not match the import variable.
123
- //
124
- // 3. Emitting "import * as" imports instead generates the correct import variable, but
125
- // references are missing the ".default" access. This happens to work for tsickle code
126
- // with goog.module transformations as tsickle strips the ".default" anyway.
127
- //
128
- // 4. It's possible to trick TypeScript by setting `ts.NodeFlag.Synthesized` on the import
129
- // declaration. This causes the import to be correctly retained and generated, but can
130
- // violate invariants elsewhere in the compiler and cause crashes.
131
- //
132
- // 5. Using `ts.getMutableClone` seems to correctly preserve the import and correctly
133
- // generate references to the import variable across all module types.
134
- //
135
- // Therefore, option 5 is the one used here. It seems to be implemented as the correct way
136
- // to perform option 4, which preserves all the compiler's invariants.
137
- //
138
- // TODO(alxhub): discuss with the TypeScript team and determine if there's a better way to
139
- // deal with this issue.
140
- stmt = ts.getMutableClone(stmt);
141
- }
142
- return stmt;
143
- });
144
- // Save memory - there's no need to keep these around once the transform has run for the given
145
- // file.
146
- this.sourceFileToUsedImports.delete(originalSf);
147
- return ts.updateSourceFileNode(sf, statements);
148
- };
149
- return DefaultImportTracker;
150
- }());
151
- exports.DefaultImportTracker = DefaultImportTracker;
152
- });
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvaW1wb3J0cy9zcmMvZGVmYXVsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7SUFHSCwrQkFBaUM7SUFFakMsa0ZBQXdEO0lBRXhELElBQU0sd0JBQXdCLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFNcEU7OztPQUdHO0lBQ0gsU0FBZ0IsOEJBQThCLENBQzFDLElBQThCLEVBQUUsVUFBZ0M7UUFDakUsSUFBcUMsQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLFVBQVUsQ0FBQztJQUNoRixDQUFDO0lBSEQsd0VBR0M7SUFFRDs7O09BR0c7SUFDSCxTQUFnQiwyQkFBMkIsQ0FBQyxJQUE4Qjs7UUFFeEUsT0FBTyxNQUFDLElBQXFDLENBQUMsd0JBQXdCLENBQUMsbUNBQUksSUFBSSxDQUFDO0lBQ2xGLENBQUM7SUFIRCxrRUFHQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTZCRztJQUNIO1FBQUE7WUFDRTs7O2VBR0c7WUFDSyw0QkFBdUIsR0FBRyxJQUFJLEdBQUcsRUFBNEMsQ0FBQztRQStFeEYsQ0FBQztRQTdFQywrQ0FBZ0IsR0FBaEIsVUFBaUIsVUFBZ0M7WUFDL0MsSUFBTSxFQUFFLEdBQUcsMEJBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUVyQywwRkFBMEY7WUFDMUYsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksR0FBRyxFQUF3QixDQUFDLENBQUM7YUFDdkU7WUFDRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBRUQ7Ozs7O1dBS0c7UUFDSCwwREFBMkIsR0FBM0I7WUFBQSxpQkFNQztZQUxDLE9BQU8sVUFBQyxPQUFpQztnQkFDdkMsT0FBTyxVQUFDLEVBQWlCO29CQUN2QixPQUFPLEtBQUksQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDdEMsQ0FBQyxDQUFDO1lBQ0osQ0FBQyxDQUFDO1FBQ0osQ0FBQztRQUVEOztXQUVHO1FBQ0ssa0RBQW1CLEdBQTNCLFVBQTRCLEVBQWlCO1lBQzNDLElBQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFrQixDQUFDO1lBQzNELCtFQUErRTtZQUMvRSxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDakQsT0FBTyxFQUFFLENBQUM7YUFDWDtZQUVELG9EQUFvRDtZQUNwRCxJQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFFLENBQUM7WUFFeEUsNEZBQTRGO1lBQzVGLElBQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQUEsSUFBSTtnQkFDdkMsSUFBSSxFQUFFLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUMvRCwwRkFBMEY7b0JBQzFGLEVBQUU7b0JBQ0YsMERBQTBEO29CQUMxRCxFQUFFO29CQUNGLGtGQUFrRjtvQkFDbEYsRUFBRTtvQkFDRiwwRkFBMEY7b0JBQzFGLHlGQUF5RjtvQkFDekYsK0RBQStEO29CQUMvRCxFQUFFO29CQUNGLHVGQUF1RjtvQkFDdkYseUZBQXlGO29CQUN6RiwrRUFBK0U7b0JBQy9FLEVBQUU7b0JBQ0YsMEZBQTBGO29CQUMxRix5RkFBeUY7b0JBQ3pGLHFFQUFxRTtvQkFDckUsRUFBRTtvQkFDRixxRkFBcUY7b0JBQ3JGLHlFQUF5RTtvQkFDekUsRUFBRTtvQkFDRiwwRkFBMEY7b0JBQzFGLHNFQUFzRTtvQkFDdEUsRUFBRTtvQkFDRiwwRkFBMEY7b0JBQzFGLHdCQUF3QjtvQkFDeEIsSUFBSSxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ2pDO2dCQUNELE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQyxDQUFDLENBQUM7WUFFSCw4RkFBOEY7WUFDOUYsUUFBUTtZQUNSLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFaEQsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDSCwyQkFBQztJQUFELENBQUMsQUFwRkQsSUFvRkM7SUFwRlksb0RBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7V3JhcHBlZE5vZGVFeHByfSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHtnZXRTb3VyY2VGaWxlfSBmcm9tICcuLi8uLi91dGlsL3NyYy90eXBlc2NyaXB0JztcblxuY29uc3QgRGVmYXVsdEltcG9ydERlY2xhcmF0aW9uID0gU3ltYm9sKCdEZWZhdWx0SW1wb3J0RGVjbGFyYXRpb24nKTtcblxuaW50ZXJmYWNlIFdpdGhEZWZhdWx0SW1wb3J0RGVjbGFyYXRpb24ge1xuICBbRGVmYXVsdEltcG9ydERlY2xhcmF0aW9uXT86IHRzLkltcG9ydERlY2xhcmF0aW9uO1xufVxuXG4vKipcbiAqIEF0dGFjaGVzIGEgZGVmYXVsdCBpbXBvcnQgZGVjbGFyYXRpb24gdG8gYGV4cHJgIHRvIGluZGljYXRlIHRoZSBkZXBlbmRlbmN5IG9mIGBleHByYCBvbiB0aGVcbiAqIGRlZmF1bHQgaW1wb3J0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXR0YWNoRGVmYXVsdEltcG9ydERlY2xhcmF0aW9uKFxuICAgIGV4cHI6IFdyYXBwZWROb2RlRXhwcjx1bmtub3duPiwgaW1wb3J0RGVjbDogdHMuSW1wb3J0RGVjbGFyYXRpb24pOiB2b2lkIHtcbiAgKGV4cHIgYXMgV2l0aERlZmF1bHRJbXBvcnREZWNsYXJhdGlvbilbRGVmYXVsdEltcG9ydERlY2xhcmF0aW9uXSA9IGltcG9ydERlY2w7XG59XG5cbi8qKlxuICogT2J0YWlucyB0aGUgZGVmYXVsdCBpbXBvcnQgZGVjbGFyYXRpb24gdGhhdCBgZXhwcmAgZGVwZW5kcyBvbiwgb3IgYG51bGxgIGlmIHRoZXJlIGlzIG5vIHN1Y2hcbiAqIGRlcGVuZGVuY3kuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0SW1wb3J0RGVjbGFyYXRpb24oZXhwcjogV3JhcHBlZE5vZGVFeHByPHVua25vd24+KTogdHMuSW1wb3J0RGVjbGFyYXRpb258XG4gICAgbnVsbCB7XG4gIHJldHVybiAoZXhwciBhcyBXaXRoRGVmYXVsdEltcG9ydERlY2xhcmF0aW9uKVtEZWZhdWx0SW1wb3J0RGVjbGFyYXRpb25dID8/IG51bGw7XG59XG5cbi8qKlxuICogVHlwZVNjcmlwdCBoYXMgdHJvdWJsZSB3aXRoIGdlbmVyYXRpbmcgZGVmYXVsdCBpbXBvcnRzIGluc2lkZSBvZiB0cmFuc2Zvcm1lcnMgZm9yIHNvbWUgbW9kdWxlXG4gKiBmb3JtYXRzLiBUaGUgaXNzdWUgaXMgdGhhdCBmb3IgdGhlIHN0YXRlbWVudDpcbiAqXG4gKiBpbXBvcnQgWCBmcm9tICdzb21lL21vZHVsZSc7XG4gKiBjb25zb2xlLmxvZyhYKTtcbiAqXG4gKiBUeXBlU2NyaXB0IHdpbGwgbm90IHVzZSB0aGUgXCJYXCIgbmFtZSBpbiBnZW5lcmF0ZWQgY29kZS4gRm9yIG5vcm1hbCB1c2VyIGNvZGUsIHRoaXMgaXMgZmluZVxuICogYmVjYXVzZSByZWZlcmVuY2VzIHRvIFggd2lsbCBhbHNvIGJlIHJlbmFtZWQuIEhvd2V2ZXIsIGlmIGJvdGggdGhlIGltcG9ydCBhbmQgYW55IHJlZmVyZW5jZXMgYXJlXG4gKiBhZGRlZCBpbiBhIHRyYW5zZm9ybWVyLCBUeXBlU2NyaXB0IGRvZXMgbm90IGFzc29jaWF0ZSB0aGUgdHdvLCBhbmQgd2lsbCBsZWF2ZSB0aGUgXCJYXCIgcmVmZXJlbmNlc1xuICogZGFuZ2xpbmcgd2hpbGUgcmVuYW1pbmcgdGhlIGltcG9ydCB2YXJpYWJsZS4gVGhlIGdlbmVyYXRlZCBjb2RlIGxvb2tzIHNvbWV0aGluZyBsaWtlOlxuICpcbiAqIGNvbnN0IG1vZHVsZV8xID0gcmVxdWlyZSgnc29tZS9tb2R1bGUnKTtcbiAqIGNvbnNvbGUubG9nKFgpOyAvLyBub3cgWCBpcyBhIGRhbmdsaW5nIHJlZmVyZW5jZS5cbiAqXG4gKiBUaGVyZWZvcmUsIHdlIGNhbm5vdCBzeW50aGV0aWNhbGx5IGFkZCBkZWZhdWx0IGltcG9ydHMsIGFuZCBtdXN0IHJldXNlIHRoZSBpbXBvcnRzIHRoYXQgdXNlcnNcbiAqIGluY2x1ZGUuIERvaW5nIHRoaXMgcG9zZXMgYSBjaGFsbGVuZ2UgZm9yIGltcG9ydHMgdGhhdCBhcmUgb25seSBjb25zdW1lZCBpbiB0aGUgdHlwZSBwb3NpdGlvbiBpblxuICogdGhlIHVzZXIncyBjb2RlLiBJZiBBbmd1bGFyIHJldXNlcyB0aGUgaW1wb3J0ZWQgc3ltYm9sIGluIGEgdmFsdWUgcG9zaXRpb24gKGZvciBleGFtcGxlLCB3ZVxuICogc2VlIGEgY29uc3RydWN0b3IgcGFyYW1ldGVyIG9mIHR5cGUgRm9vIGFuZCB0cnkgdG8gd3JpdGUgXCJpbmplY3QoRm9vKVwiKSB3ZSB3aWxsIGFsc28gZW5kIHVwIHdpdGhcbiAqIGEgZGFuZ2xpbmcgcmVmZXJlbmNlLCBhcyBUUyB3aWxsIGVsaWRlIHRoZSBpbXBvcnQgYmVjYXVzZSBpdCB3YXMgb25seSB1c2VkIGluIHRoZSB0eXBlIHBvc2l0aW9uXG4gKiBvcmlnaW5hbGx5LlxuICpcbiAqIFRvIGF2b2lkIHRoaXMsIHRoZSBjb21waWxlciBtdXN0IFwidG91Y2hcIiB0aGUgaW1wb3J0cyB3aXRoIGB0cy5nZXRNdXRhYmxlQ2xvbmVgLCBhbmQgc2hvdWxkXG4gKiBvbmx5IGRvIHRoaXMgZm9yIGltcG9ydHMgd2hpY2ggYXJlIGFjdHVhbGx5IGNvbnN1bWVkLiBUaGUgYERlZmF1bHRJbXBvcnRUcmFja2VyYCBrZWVwcyB0cmFjayBvZlxuICogdGhlc2UgaW1wb3J0cyBhcyB0aGV5J3JlIGVuY291bnRlcmVkIGFuZCBlbWl0dGVkLCBhbmQgaW1wbGVtZW50cyBhIHRyYW5zZm9ybSB3aGljaCBjYW4gY29ycmVjdGx5XG4gKiBmbGFnIHRoZSBpbXBvcnRzIGFzIHJlcXVpcmVkLlxuICpcbiAqIFRoaXMgcHJvYmxlbSBkb2VzIG5vdCBleGlzdCBmb3Igbm9uLWRlZmF1bHQgaW1wb3J0cyBhcyB0aGUgY29tcGlsZXIgY2FuIGVhc2lseSBpbnNlcnRcbiAqIFwiaW1wb3J0ICogYXMgWFwiIHN0eWxlIGltcG9ydHMgZm9yIHRob3NlLCBhbmQgdGhlIFwiWFwiIGlkZW50aWZpZXIgc3Vydml2ZXMgdHJhbnNmb3JtYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBEZWZhdWx0SW1wb3J0VHJhY2tlciB7XG4gIC8qKlxuICAgKiBBIGBNYXBgIHdoaWNoIHRyYWNrcyB0aGUgYFNldGAgb2YgYHRzLkltcG9ydERlY2xhcmF0aW9uYHMgZm9yIGRlZmF1bHQgaW1wb3J0cyB0aGF0IHdlcmUgdXNlZCBpblxuICAgKiBhIGdpdmVuIGB0cy5Tb3VyY2VGaWxlYCBhbmQgbmVlZCB0byBiZSBwcmVzZXJ2ZWQuXG4gICAqL1xuICBwcml2YXRlIHNvdXJjZUZpbGVUb1VzZWRJbXBvcnRzID0gbmV3IE1hcDx0cy5Tb3VyY2VGaWxlLCBTZXQ8dHMuSW1wb3J0RGVjbGFyYXRpb24+PigpO1xuXG4gIHJlY29yZFVzZWRJbXBvcnQoaW1wb3J0RGVjbDogdHMuSW1wb3J0RGVjbGFyYXRpb24pOiB2b2lkIHtcbiAgICBjb25zdCBzZiA9IGdldFNvdXJjZUZpbGUoaW1wb3J0RGVjbCk7XG5cbiAgICAvLyBBZGQgdGhlIGRlZmF1bHQgaW1wb3J0IGRlY2xhcmF0aW9uIHRvIHRoZSBzZXQgb2YgdXNlZCBpbXBvcnQgZGVjbGFyYXRpb25zIGZvciB0aGUgZmlsZS5cbiAgICBpZiAoIXRoaXMuc291cmNlRmlsZVRvVXNlZEltcG9ydHMuaGFzKHNmKSkge1xuICAgICAgdGhpcy5zb3VyY2VGaWxlVG9Vc2VkSW1wb3J0cy5zZXQoc2YsIG5ldyBTZXQ8dHMuSW1wb3J0RGVjbGFyYXRpb24+KCkpO1xuICAgIH1cbiAgICB0aGlzLnNvdXJjZUZpbGVUb1VzZWRJbXBvcnRzLmdldChzZikhLmFkZChpbXBvcnREZWNsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBgdHMuVHJhbnNmb3JtZXJGYWN0b3J5YCB3aGljaCB3aWxsIHByZXNlcnZlIGRlZmF1bHQgaW1wb3J0cyB0aGF0IHdlcmUgcHJldmlvdXNseSBtYXJrZWRcbiAgICogYXMgdXNlZC5cbiAgICpcbiAgICogVGhpcyB0cmFuc2Zvcm1lciBtdXN0IHJ1biBhZnRlciBhbnkgb3RoZXIgdHJhbnNmb3JtZXJzIHdoaWNoIGNhbGwgYHJlY29yZFVzZWRJbXBvcnRgLlxuICAgKi9cbiAgaW1wb3J0UHJlc2VydmluZ1RyYW5zZm9ybWVyKCk6IHRzLlRyYW5zZm9ybWVyRmFjdG9yeTx0cy5Tb3VyY2VGaWxlPiB7XG4gICAgcmV0dXJuIChjb250ZXh0OiB0cy5UcmFuc2Zvcm1hdGlvbkNvbnRleHQpID0+IHtcbiAgICAgIHJldHVybiAoc2Y6IHRzLlNvdXJjZUZpbGUpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtU291cmNlRmlsZShzZik7XG4gICAgICB9O1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUHJvY2VzcyBhIGB0cy5Tb3VyY2VGaWxlYCBhbmQgcmVwbGFjZSBhbnkgYHRzLkltcG9ydERlY2xhcmF0aW9uYHMuXG4gICAqL1xuICBwcml2YXRlIHRyYW5zZm9ybVNvdXJjZUZpbGUoc2Y6IHRzLlNvdXJjZUZpbGUpOiB0cy5Tb3VyY2VGaWxlIHtcbiAgICBjb25zdCBvcmlnaW5hbFNmID0gdHMuZ2V0T3JpZ2luYWxOb2RlKHNmKSBhcyB0cy5Tb3VyY2VGaWxlO1xuICAgIC8vIFRha2UgYSBmYXN0IHBhdGggaWYgbm8gaW1wb3J0IGRlY2xhcmF0aW9ucyBuZWVkIHRvIGJlIHByZXNlcnZlZCBpbiB0aGUgZmlsZS5cbiAgICBpZiAoIXRoaXMuc291cmNlRmlsZVRvVXNlZEltcG9ydHMuaGFzKG9yaWdpbmFsU2YpKSB7XG4gICAgICByZXR1cm4gc2Y7XG4gICAgfVxuXG4gICAgLy8gVGhlcmUgYXJlIGRlY2xhcmF0aW9ucyB0aGF0IG5lZWQgdG8gYmUgcHJlc2VydmVkLlxuICAgIGNvbnN0IGltcG9ydHNUb1ByZXNlcnZlID0gdGhpcy5zb3VyY2VGaWxlVG9Vc2VkSW1wb3J0cy5nZXQob3JpZ2luYWxTZikhO1xuXG4gICAgLy8gR2VuZXJhdGUgYSBuZXcgc3RhdGVtZW50IGxpc3Qgd2hpY2ggcHJlc2VydmVzIGFueSBpbXBvcnRzIHByZXNlbnQgaW4gYGltcG9ydHNUb1ByZXNlcnZlYC5cbiAgICBjb25zdCBzdGF0ZW1lbnRzID0gc2Yuc3RhdGVtZW50cy5tYXAoc3RtdCA9PiB7XG4gICAgICBpZiAodHMuaXNJbXBvcnREZWNsYXJhdGlvbihzdG10KSAmJiBpbXBvcnRzVG9QcmVzZXJ2ZS5oYXMoc3RtdCkpIHtcbiAgICAgICAgLy8gUHJlc2VydmluZyBhbiBpbXBvcnQgdGhhdCdzIG1hcmtlZCBhcyB1bnJlZmVyZW5jZWQgKHR5cGUtb25seSkgaXMgdHJpY2t5IGluIFR5cGVTY3JpcHQuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFZhcmlvdXMgYXBwcm9hY2hlcyBoYXZlIGJlZW4gdHJpZWQsIHdpdGggbWl4ZWQgc3VjY2VzczpcbiAgICAgICAgLy9cbiAgICAgICAgLy8gMS4gVXNpbmcgYHRzLnVwZGF0ZUltcG9ydERlY2xhcmF0aW9uYCBkb2VzIG5vdCBjYXVzZSB0aGUgaW1wb3J0IHRvIGJlIHJldGFpbmVkLlxuICAgICAgICAvL1xuICAgICAgICAvLyAyLiBVc2luZyBgdHMuY3JlYXRlSW1wb3J0RGVjbGFyYXRpb25gIHdpdGggdGhlIHNhbWUgYHRzLkltcG9ydENsYXVzZWAgY2F1c2VzIHRoZSBpbXBvcnRcbiAgICAgICAgLy8gICAgdG8gY29ycmVjdGx5IGJlIHJldGFpbmVkLCBidXQgd2hlbiBlbWl0dGluZyBDb21tb25KUyBtb2R1bGUgZm9ybWF0IGNvZGUsIHJlZmVyZW5jZXNcbiAgICAgICAgLy8gICAgdG8gdGhlIGltcG9ydGVkIHZhbHVlIHdpbGwgbm90IG1hdGNoIHRoZSBpbXBvcnQgdmFyaWFibGUuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIDMuIEVtaXR0aW5nIFwiaW1wb3J0ICogYXNcIiBpbXBvcnRzIGluc3RlYWQgZ2VuZXJhdGVzIHRoZSBjb3JyZWN0IGltcG9ydCB2YXJpYWJsZSwgYnV0XG4gICAgICAgIC8vICAgIHJlZmVyZW5jZXMgYXJlIG1pc3NpbmcgdGhlIFwiLmRlZmF1bHRcIiBhY2Nlc3MuIFRoaXMgaGFwcGVucyB0byB3b3JrIGZvciB0c2lja2xlIGNvZGVcbiAgICAgICAgLy8gICAgd2l0aCBnb29nLm1vZHVsZSB0cmFuc2Zvcm1hdGlvbnMgYXMgdHNpY2tsZSBzdHJpcHMgdGhlIFwiLmRlZmF1bHRcIiBhbnl3YXkuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIDQuIEl0J3MgcG9zc2libGUgdG8gdHJpY2sgVHlwZVNjcmlwdCBieSBzZXR0aW5nIGB0cy5Ob2RlRmxhZy5TeW50aGVzaXplZGAgb24gdGhlIGltcG9ydFxuICAgICAgICAvLyAgICBkZWNsYXJhdGlvbi4gVGhpcyBjYXVzZXMgdGhlIGltcG9ydCB0byBiZSBjb3JyZWN0bHkgcmV0YWluZWQgYW5kIGdlbmVyYXRlZCwgYnV0IGNhblxuICAgICAgICAvLyAgICB2aW9sYXRlIGludmFyaWFudHMgZWxzZXdoZXJlIGluIHRoZSBjb21waWxlciBhbmQgY2F1c2UgY3Jhc2hlcy5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gNS4gVXNpbmcgYHRzLmdldE11dGFibGVDbG9uZWAgc2VlbXMgdG8gY29ycmVjdGx5IHByZXNlcnZlIHRoZSBpbXBvcnQgYW5kIGNvcnJlY3RseVxuICAgICAgICAvLyAgICBnZW5lcmF0ZSByZWZlcmVuY2VzIHRvIHRoZSBpbXBvcnQgdmFyaWFibGUgYWNyb3NzIGFsbCBtb2R1bGUgdHlwZXMuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFRoZXJlZm9yZSwgb3B0aW9uIDUgaXMgdGhlIG9uZSB1c2VkIGhlcmUuIEl0IHNlZW1zIHRvIGJlIGltcGxlbWVudGVkIGFzIHRoZSBjb3JyZWN0IHdheVxuICAgICAgICAvLyB0byBwZXJmb3JtIG9wdGlvbiA0LCB3aGljaCBwcmVzZXJ2ZXMgYWxsIHRoZSBjb21waWxlcidzIGludmFyaWFudHMuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFRPRE8oYWx4aHViKTogZGlzY3VzcyB3aXRoIHRoZSBUeXBlU2NyaXB0IHRlYW0gYW5kIGRldGVybWluZSBpZiB0aGVyZSdzIGEgYmV0dGVyIHdheSB0b1xuICAgICAgICAvLyBkZWFsIHdpdGggdGhpcyBpc3N1ZS5cbiAgICAgICAgc3RtdCA9IHRzLmdldE11dGFibGVDbG9uZShzdG10KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzdG10O1xuICAgIH0pO1xuXG4gICAgLy8gU2F2ZSBtZW1vcnkgLSB0aGVyZSdzIG5vIG5lZWQgdG8ga2VlcCB0aGVzZSBhcm91bmQgb25jZSB0aGUgdHJhbnNmb3JtIGhhcyBydW4gZm9yIHRoZSBnaXZlblxuICAgIC8vIGZpbGUuXG4gICAgdGhpcy5zb3VyY2VGaWxlVG9Vc2VkSW1wb3J0cy5kZWxldGUob3JpZ2luYWxTZik7XG5cbiAgICByZXR1cm4gdHMudXBkYXRlU291cmNlRmlsZU5vZGUoc2YsIHN0YXRlbWVudHMpO1xuICB9XG59XG4iXX0=