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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (596) hide show
  1. package/bundles/index.js +20413 -0
  2. package/bundles/index.js.map +6 -0
  3. package/bundles/linker/babel/index.js +2384 -0
  4. package/bundles/linker/babel/index.js.map +6 -0
  5. package/bundles/linker/index.js +1849 -0
  6. package/bundles/linker/index.js.map +6 -0
  7. package/bundles/ngcc/index.js +16038 -0
  8. package/bundles/ngcc/index.js.map +6 -0
  9. package/bundles/ngcc/main-ngcc.js +16126 -0
  10. package/bundles/ngcc/main-ngcc.js.map +6 -0
  11. package/bundles/ngcc/src/execution/cluster/ngcc_cluster_worker.js +13850 -0
  12. package/bundles/ngcc/src/execution/cluster/ngcc_cluster_worker.js.map +6 -0
  13. package/bundles/ngcc/src/locking/lock_file_with_child_process/ngcc_lock_unlocker.js +334 -0
  14. package/bundles/ngcc/src/locking/lock_file_with_child_process/ngcc_lock_unlocker.js.map +6 -0
  15. package/bundles/private/bazel.js +97 -0
  16. package/bundles/private/bazel.js.map +6 -0
  17. package/bundles/private/localize.js +911 -0
  18. package/bundles/private/localize.js.map +6 -0
  19. package/bundles/private/migrations.js +2183 -0
  20. package/bundles/private/migrations.js.map +6 -0
  21. package/bundles/private/tooling.js +942 -0
  22. package/bundles/private/tooling.js.map +6 -0
  23. package/bundles/src/bin/ng_xi18n.js +20463 -0
  24. package/bundles/src/bin/ng_xi18n.js.map +6 -0
  25. package/bundles/src/bin/ngc.js +20465 -0
  26. package/bundles/src/bin/ngc.js.map +6 -0
  27. package/bundles_metadata.json +1 -0
  28. package/import_meta_url.d.ts +14 -0
  29. package/index.d.ts +4 -1
  30. package/linker/babel/src/ast/babel_ast_factory.d.ts +1 -8
  31. package/linker/babel/src/ast/babel_ast_host.d.ts +1 -1
  32. package/linker/babel/src/babel_core.d.ts +36 -0
  33. package/linker/babel/src/babel_declaration_scope.d.ts +1 -1
  34. package/linker/babel/src/babel_plugin.d.ts +1 -8
  35. package/linker/babel/src/es2015_linker_plugin.d.ts +2 -2
  36. package/linker/src/ast/typescript/typescript_ast_host.d.ts +1 -1
  37. package/linker/src/file_linker/emit_scopes/emit_scope.d.ts +1 -2
  38. package/linker/src/file_linker/emit_scopes/iife_emit_scope.d.ts +1 -1
  39. package/linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.d.ts +1 -2
  40. package/linker/src/file_linker/partial_linkers/partial_component_linker_1.d.ts +1 -2
  41. package/linker/src/file_linker/partial_linkers/partial_directive_linker_1.d.ts +1 -2
  42. package/linker/src/file_linker/partial_linkers/partial_factory_linker_1.d.ts +1 -2
  43. package/linker/src/file_linker/partial_linkers/partial_injectable_linker_1.d.ts +1 -2
  44. package/linker/src/file_linker/partial_linkers/partial_injector_linker_1.d.ts +1 -2
  45. package/linker/src/file_linker/partial_linkers/partial_linker.d.ts +1 -2
  46. package/linker/src/file_linker/partial_linkers/partial_linker_selector.d.ts +2 -2
  47. package/linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.d.ts +1 -2
  48. package/linker/src/file_linker/partial_linkers/partial_pipe_linker_1.d.ts +1 -2
  49. package/linker/src/file_linker/partial_linkers/util.d.ts +1 -2
  50. package/ngcc/index.d.ts +15 -0
  51. package/ngcc/src/analysis/decoration_analyzer.d.ts +1 -1
  52. package/ngcc/src/analysis/module_with_providers_analyzer.d.ts +1 -1
  53. package/ngcc/src/analysis/ngcc_references_registry.d.ts +1 -1
  54. package/ngcc/src/analysis/ngcc_trait_compiler.d.ts +1 -1
  55. package/ngcc/src/analysis/private_declarations_analyzer.d.ts +1 -1
  56. package/ngcc/src/analysis/switch_marker_analyzer.d.ts +1 -1
  57. package/ngcc/src/analysis/types.d.ts +1 -1
  58. package/ngcc/src/dependencies/esm_dependency_host.d.ts +1 -1
  59. package/ngcc/src/execution/cluster/api.d.ts +5 -1
  60. package/ngcc/src/execution/cluster/master.d.ts +5 -3
  61. package/{src/ngtsc/logging/testing/index.d.ts → ngcc/src/execution/cluster/ngcc_cluster_worker.d.ts} +2 -2
  62. package/ngcc/src/host/commonjs_host.d.ts +1 -1
  63. package/ngcc/src/host/commonjs_umd_utils.d.ts +1 -1
  64. package/ngcc/src/host/delegating_host.d.ts +1 -1
  65. package/ngcc/src/host/esm2015_host.d.ts +1 -1
  66. package/ngcc/src/host/esm5_host.d.ts +1 -1
  67. package/ngcc/src/host/ngcc_host.d.ts +1 -1
  68. package/ngcc/src/host/umd_host.d.ts +1 -1
  69. package/ngcc/src/host/utils.d.ts +1 -1
  70. package/ngcc/src/locking/lock_file.d.ts +1 -1
  71. package/ngcc/src/locking/lock_file_with_child_process/index.d.ts +2 -0
  72. package/ngcc/src/locking/lock_file_with_child_process/{unlocker.d.ts → ngcc_lock_unlocker.d.ts} +1 -1
  73. package/ngcc/src/migrations/migration.d.ts +1 -1
  74. package/ngcc/src/migrations/missing_injectable_migration.d.ts +1 -1
  75. package/ngcc/src/migrations/undecorated_child_migration.d.ts +1 -1
  76. package/ngcc/src/migrations/undecorated_parent_migration.d.ts +1 -1
  77. package/ngcc/src/migrations/utils.d.ts +1 -1
  78. package/ngcc/src/packages/build_marker.d.ts +1 -1
  79. package/ngcc/src/packages/bundle_program.d.ts +1 -1
  80. package/ngcc/src/packages/entry_point_bundle.d.ts +1 -1
  81. package/ngcc/src/packages/ngcc_compiler_host.d.ts +1 -1
  82. package/ngcc/src/packages/source_file_cache.d.ts +1 -1
  83. package/ngcc/src/packages/transformer.d.ts +1 -1
  84. package/ngcc/src/rendering/commonjs_rendering_formatter.d.ts +1 -1
  85. package/ngcc/src/rendering/dts_renderer.d.ts +1 -1
  86. package/ngcc/src/rendering/esm5_rendering_formatter.d.ts +1 -1
  87. package/ngcc/src/rendering/esm_rendering_formatter.d.ts +1 -1
  88. package/ngcc/src/rendering/renderer.d.ts +1 -1
  89. package/ngcc/src/rendering/rendering_formatter.d.ts +1 -1
  90. package/ngcc/src/rendering/source_maps.d.ts +3 -3
  91. package/ngcc/src/rendering/umd_rendering_formatter.d.ts +1 -1
  92. package/ngcc/src/rendering/utils.d.ts +1 -1
  93. package/ngcc/src/utils.d.ts +1 -1
  94. package/package.json +52 -13
  95. package/private/bazel.d.ts +13 -0
  96. package/private/localize.d.ts +15 -0
  97. package/private/migrations.d.ts +16 -0
  98. package/{src → private}/tooling.d.ts +2 -2
  99. package/src/bin/ng_xi18n.d.ts +10 -0
  100. package/{ngcc/main-ivy-ngcc.d.ts → src/bin/ngc.d.ts} +2 -1
  101. package/src/diagnostics/translate_diagnostics.d.ts +1 -1
  102. package/src/extract_i18n.d.ts +0 -5
  103. package/src/main.d.ts +9 -6
  104. package/src/metadata/bundle_index_host.d.ts +1 -1
  105. package/src/metadata/bundler.d.ts +1 -1
  106. package/src/metadata/collector.d.ts +1 -1
  107. package/src/metadata/evaluator.d.ts +1 -1
  108. package/src/metadata/symbols.d.ts +1 -1
  109. package/src/ngtsc/annotations/src/component.d.ts +1 -1
  110. package/src/ngtsc/annotations/src/diagnostics.d.ts +1 -1
  111. package/src/ngtsc/annotations/src/directive.d.ts +1 -1
  112. package/src/ngtsc/annotations/src/ng_module.d.ts +2 -3
  113. package/src/ngtsc/annotations/src/pipe.d.ts +1 -1
  114. package/src/ngtsc/annotations/src/util.d.ts +2 -4
  115. package/src/ngtsc/core/api/src/adapter.d.ts +1 -1
  116. package/src/ngtsc/core/api/src/interfaces.d.ts +1 -1
  117. package/src/ngtsc/core/api/src/options.d.ts +1 -1
  118. package/src/ngtsc/core/api/src/public_options.d.ts +5 -1
  119. package/src/ngtsc/core/src/compiler.d.ts +1 -1
  120. package/src/ngtsc/core/src/host.d.ts +1 -1
  121. package/src/ngtsc/cycles/src/analyzer.d.ts +1 -1
  122. package/src/ngtsc/cycles/src/imports.d.ts +1 -1
  123. package/src/ngtsc/diagnostics/index.d.ts +4 -2
  124. package/src/ngtsc/diagnostics/src/docs.d.ts +14 -0
  125. package/src/ngtsc/diagnostics/src/error.d.ts +1 -1
  126. package/src/ngtsc/diagnostics/src/error_details_base_url.d.ts +16 -0
  127. package/src/ngtsc/diagnostics/src/util.d.ts +2 -0
  128. package/src/ngtsc/entry_point/src/generator.d.ts +1 -1
  129. package/src/ngtsc/entry_point/src/private_export_checker.d.ts +1 -1
  130. package/src/ngtsc/file_system/src/compiler_host.d.ts +1 -1
  131. package/src/ngtsc/file_system/src/logical.d.ts +1 -1
  132. package/src/ngtsc/file_system/src/util.d.ts +1 -1
  133. package/src/ngtsc/imports/src/alias.d.ts +1 -1
  134. package/src/ngtsc/imports/src/default.d.ts +1 -1
  135. package/src/ngtsc/imports/src/emitter.d.ts +1 -1
  136. package/src/ngtsc/imports/src/find_export.d.ts +1 -1
  137. package/src/ngtsc/imports/src/references.d.ts +1 -1
  138. package/src/ngtsc/imports/src/resolver.d.ts +1 -1
  139. package/src/ngtsc/incremental/api.d.ts +1 -1
  140. package/src/ngtsc/incremental/src/dependency_tracking.d.ts +1 -1
  141. package/src/ngtsc/incremental/src/incremental.d.ts +1 -1
  142. package/src/ngtsc/incremental/src/state.d.ts +1 -1
  143. package/src/ngtsc/incremental/src/strategy.d.ts +1 -1
  144. package/src/ngtsc/metadata/src/api.d.ts +1 -1
  145. package/src/ngtsc/metadata/src/dts.d.ts +1 -1
  146. package/src/ngtsc/metadata/src/resource_registry.d.ts +1 -1
  147. package/src/ngtsc/metadata/src/util.d.ts +1 -1
  148. package/src/ngtsc/partial_evaluator/index.d.ts +1 -0
  149. package/src/ngtsc/partial_evaluator/src/builtin.d.ts +1 -1
  150. package/src/ngtsc/partial_evaluator/src/diagnostics.d.ts +1 -1
  151. package/src/ngtsc/partial_evaluator/src/dynamic.d.ts +1 -1
  152. package/src/ngtsc/partial_evaluator/src/interface.d.ts +1 -1
  153. package/src/ngtsc/partial_evaluator/src/interpreter.d.ts +1 -1
  154. package/src/ngtsc/partial_evaluator/src/result.d.ts +1 -1
  155. package/src/ngtsc/partial_evaluator/src/ts_helpers.d.ts +1 -1
  156. package/src/ngtsc/program.d.ts +1 -1
  157. package/src/ngtsc/program_driver/src/api.d.ts +1 -1
  158. package/src/ngtsc/program_driver/src/ts_create_program_driver.d.ts +1 -1
  159. package/src/ngtsc/reflection/src/host.d.ts +1 -1
  160. package/src/ngtsc/reflection/src/type_to_value.d.ts +1 -1
  161. package/src/ngtsc/reflection/src/typescript.d.ts +1 -1
  162. package/src/ngtsc/reflection/src/util.d.ts +1 -1
  163. package/src/ngtsc/resource/src/loader.d.ts +1 -1
  164. package/src/ngtsc/scope/src/local.d.ts +1 -1
  165. package/src/ngtsc/scope/src/typecheck.d.ts +1 -1
  166. package/src/ngtsc/shims/api.d.ts +1 -1
  167. package/src/ngtsc/shims/src/adapter.d.ts +1 -1
  168. package/src/ngtsc/shims/src/expando.d.ts +1 -1
  169. package/src/ngtsc/shims/src/factory_generator.d.ts +1 -1
  170. package/src/ngtsc/shims/src/reference_tagger.d.ts +1 -1
  171. package/src/ngtsc/shims/src/summary_generator.d.ts +1 -1
  172. package/src/ngtsc/switch/src/switch.d.ts +1 -1
  173. package/src/ngtsc/transform/src/alias.d.ts +1 -1
  174. package/src/ngtsc/transform/src/api.d.ts +1 -1
  175. package/src/ngtsc/transform/src/compilation.d.ts +1 -1
  176. package/src/ngtsc/transform/src/declaration.d.ts +1 -1
  177. package/src/ngtsc/transform/src/trait.d.ts +1 -1
  178. package/src/ngtsc/transform/src/transform.d.ts +1 -1
  179. package/src/ngtsc/transform/src/utils.d.ts +1 -1
  180. package/src/ngtsc/translator/src/import_manager.d.ts +1 -1
  181. package/src/ngtsc/translator/src/type_translator.d.ts +1 -1
  182. package/src/ngtsc/translator/src/typescript_ast_factory.d.ts +1 -1
  183. package/src/ngtsc/translator/src/typescript_translator.d.ts +1 -1
  184. package/src/ngtsc/tsc_plugin.d.ts +1 -1
  185. package/src/ngtsc/typecheck/api/api.d.ts +1 -1
  186. package/src/ngtsc/typecheck/api/checker.d.ts +3 -4
  187. package/src/ngtsc/typecheck/api/context.d.ts +1 -1
  188. package/src/ngtsc/typecheck/api/scope.d.ts +1 -1
  189. package/src/ngtsc/typecheck/api/symbols.d.ts +1 -1
  190. package/src/ngtsc/typecheck/diagnostics/src/diagnostic.d.ts +1 -1
  191. package/src/ngtsc/typecheck/extended/api/api.d.ts +1 -1
  192. package/src/ngtsc/typecheck/extended/api/extended_template_checker.d.ts +1 -1
  193. package/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.d.ts +1 -1
  194. package/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.d.ts +1 -1
  195. package/src/ngtsc/typecheck/extended/src/extended_template_checker.d.ts +1 -1
  196. package/src/ngtsc/typecheck/src/checker.d.ts +3 -4
  197. package/src/ngtsc/typecheck/src/comments.d.ts +1 -1
  198. package/src/ngtsc/typecheck/src/completion.d.ts +3 -5
  199. package/src/ngtsc/typecheck/src/context.d.ts +1 -1
  200. package/src/ngtsc/typecheck/src/diagnostics.d.ts +1 -1
  201. package/src/ngtsc/typecheck/src/environment.d.ts +1 -1
  202. package/src/ngtsc/typecheck/src/expression.d.ts +1 -1
  203. package/src/ngtsc/typecheck/src/oob.d.ts +3 -4
  204. package/src/ngtsc/typecheck/src/shim.d.ts +1 -1
  205. package/src/ngtsc/typecheck/src/source.d.ts +1 -1
  206. package/src/ngtsc/typecheck/src/tcb_util.d.ts +1 -1
  207. package/src/ngtsc/typecheck/src/template_symbol_builder.d.ts +1 -1
  208. package/src/ngtsc/typecheck/src/ts_util.d.ts +1 -1
  209. package/src/ngtsc/typecheck/src/type_check_block.d.ts +1 -1
  210. package/src/ngtsc/typecheck/src/type_check_file.d.ts +1 -1
  211. package/src/ngtsc/typecheck/src/type_constructor.d.ts +1 -1
  212. package/src/ngtsc/typecheck/src/type_emitter.d.ts +1 -1
  213. package/src/ngtsc/typecheck/src/type_parameter_emitter.d.ts +1 -1
  214. package/src/ngtsc/util/src/typescript.d.ts +1 -1
  215. package/src/ngtsc/util/src/visitor.d.ts +1 -1
  216. package/src/perform_compile.d.ts +1 -2
  217. package/src/perform_watch.d.ts +1 -1
  218. package/src/transformers/api.d.ts +1 -1
  219. package/src/transformers/compiler_host.d.ts +1 -1
  220. package/src/transformers/{downlevel_decorators_transform.d.ts → downlevel_decorators_transform/downlevel_decorators_transform.d.ts} +3 -3
  221. package/src/transformers/downlevel_decorators_transform/index.d.ts +9 -0
  222. package/src/transformers/{patch_alias_reference_resolution.d.ts → downlevel_decorators_transform/patch_alias_reference_resolution.d.ts} +2 -2
  223. package/src/transformers/i18n.d.ts +1 -1
  224. package/src/transformers/inline_resources.d.ts +1 -1
  225. package/src/transformers/lower_expressions.d.ts +1 -1
  226. package/src/transformers/metadata_cache.d.ts +1 -1
  227. package/src/transformers/node_emitter.d.ts +1 -1
  228. package/src/transformers/node_emitter_transform.d.ts +1 -1
  229. package/src/transformers/program.d.ts +1 -1
  230. package/src/transformers/r3_metadata_transform.d.ts +1 -1
  231. package/src/transformers/r3_transform.d.ts +1 -1
  232. package/src/transformers/util.d.ts +1 -1
  233. package/index.js +0 -40
  234. package/linker/babel/index.js +0 -25
  235. package/linker/babel/src/ast/babel_ast_factory.js +0 -153
  236. package/linker/babel/src/ast/babel_ast_host.js +0 -181
  237. package/linker/babel/src/babel_declaration_scope.js +0 -67
  238. package/linker/babel/src/babel_plugin.js +0 -38
  239. package/linker/babel/src/es2015_linker_plugin.js +0 -183
  240. package/linker/babel/src/linker_plugin_options.js +0 -13
  241. package/linker/index.js +0 -27
  242. package/linker/src/ast/ast_host.js +0 -20
  243. package/linker/src/ast/ast_value.js +0 -299
  244. package/linker/src/ast/typescript/typescript_ast_host.js +0 -183
  245. package/linker/src/ast/utils.js +0 -31
  246. package/linker/src/fatal_linker_error.js +0 -49
  247. package/linker/src/file_linker/declaration_scope.js +0 -20
  248. package/linker/src/file_linker/emit_scopes/emit_scope.js +0 -57
  249. package/linker/src/file_linker/emit_scopes/iife_emit_scope.js +0 -51
  250. package/linker/src/file_linker/file_linker.js +0 -97
  251. package/linker/src/file_linker/get_source_file.js +0 -42
  252. package/linker/src/file_linker/linker_environment.js +0 -38
  253. package/linker/src/file_linker/linker_options.js +0 -29
  254. package/linker/src/file_linker/needs_linking.js +0 -41
  255. package/linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.js +0 -47
  256. package/linker/src/file_linker/partial_linkers/partial_component_linker_1.js +0 -210
  257. package/linker/src/file_linker/partial_linkers/partial_directive_linker_1.js +0 -154
  258. package/linker/src/file_linker/partial_linkers/partial_factory_linker_1.js +0 -70
  259. package/linker/src/file_linker/partial_linkers/partial_injectable_linker_1.js +0 -74
  260. package/linker/src/file_linker/partial_linkers/partial_injector_linker_1.js +0 -56
  261. package/linker/src/file_linker/partial_linkers/partial_linker.js +0 -13
  262. package/linker/src/file_linker/partial_linkers/partial_linker_selector.js +0 -194
  263. package/linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.js +0 -126
  264. package/linker/src/file_linker/partial_linkers/partial_pipe_linker_1.js +0 -59
  265. package/linker/src/file_linker/partial_linkers/util.js +0 -95
  266. package/linker/src/file_linker/translator.js +0 -40
  267. package/linker/src/linker_import_generator.js +0 -43
  268. package/ngcc/index.js +0 -33
  269. package/ngcc/main-ivy-ngcc.js +0 -12
  270. package/ngcc/main-ngcc.js +0 -54
  271. package/ngcc/src/analysis/decoration_analyzer.js +0 -268
  272. package/ngcc/src/analysis/migration_host.js +0 -108
  273. package/ngcc/src/analysis/module_with_providers_analyzer.js +0 -197
  274. package/ngcc/src/analysis/ngcc_references_registry.js +0 -65
  275. package/ngcc/src/analysis/ngcc_trait_compiler.js +0 -117
  276. package/ngcc/src/analysis/private_declarations_analyzer.js +0 -63
  277. package/ngcc/src/analysis/switch_marker_analyzer.js +0 -50
  278. package/ngcc/src/analysis/types.js +0 -15
  279. package/ngcc/src/analysis/util.js +0 -36
  280. package/ngcc/src/command_line_options.js +0 -156
  281. package/ngcc/src/constants.js +0 -23
  282. package/ngcc/src/dependencies/commonjs_dependency_host.js +0 -129
  283. package/ngcc/src/dependencies/dependency_host.js +0 -143
  284. package/ngcc/src/dependencies/dependency_resolver.js +0 -180
  285. package/ngcc/src/dependencies/dts_dependency_host.js +0 -35
  286. package/ngcc/src/dependencies/esm_dependency_host.js +0 -307
  287. package/ngcc/src/dependencies/module_resolver.js +0 -269
  288. package/ngcc/src/dependencies/umd_dependency_host.js +0 -53
  289. package/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.js +0 -70
  290. package/ngcc/src/entry_point_finder/entry_point_collector.js +0 -157
  291. package/ngcc/src/entry_point_finder/interface.js +0 -13
  292. package/ngcc/src/entry_point_finder/program_based_entry_point_finder.js +0 -132
  293. package/ngcc/src/entry_point_finder/targeted_entry_point_finder.js +0 -268
  294. package/ngcc/src/entry_point_finder/tracing_entry_point_finder.js +0 -78
  295. package/ngcc/src/entry_point_finder/utils.js +0 -234
  296. package/ngcc/src/execution/analyze_entry_points.js +0 -197
  297. package/ngcc/src/execution/api.js +0 -13
  298. package/ngcc/src/execution/cluster/api.js +0 -20
  299. package/ngcc/src/execution/cluster/executor.js +0 -52
  300. package/ngcc/src/execution/cluster/master.js +0 -311
  301. package/ngcc/src/execution/cluster/package_json_updater.js +0 -79
  302. package/ngcc/src/execution/cluster/utils.js +0 -77
  303. package/ngcc/src/execution/cluster/worker.js +0 -123
  304. package/ngcc/src/execution/create_compile_function.js +0 -76
  305. package/ngcc/src/execution/single_process_executor.js +0 -91
  306. package/ngcc/src/execution/tasks/api.js +0 -35
  307. package/ngcc/src/execution/tasks/completion.js +0 -79
  308. package/ngcc/src/execution/tasks/queues/base_task_queue.js +0 -120
  309. package/ngcc/src/execution/tasks/queues/parallel_task_queue.js +0 -87
  310. package/ngcc/src/execution/tasks/queues/serial_task_queue.js +0 -49
  311. package/ngcc/src/execution/tasks/utils.js +0 -167
  312. package/ngcc/src/host/commonjs_host.js +0 -261
  313. package/ngcc/src/host/commonjs_umd_utils.js +0 -210
  314. package/ngcc/src/host/delegating_host.js +0 -156
  315. package/ngcc/src/host/esm2015_host.js +0 -2441
  316. package/ngcc/src/host/esm5_host.js +0 -745
  317. package/ngcc/src/host/ngcc_host.js +0 -29
  318. package/ngcc/src/host/umd_host.js +0 -539
  319. package/ngcc/src/host/utils.js +0 -26
  320. package/ngcc/src/locking/async_locker.js +0 -121
  321. package/ngcc/src/locking/lock_file.js +0 -18
  322. package/ngcc/src/locking/lock_file_with_child_process/index.js +0 -93
  323. package/ngcc/src/locking/lock_file_with_child_process/unlocker.js +0 -46
  324. package/ngcc/src/locking/lock_file_with_child_process/util.js +0 -43
  325. package/ngcc/src/locking/sync_locker.js +0 -67
  326. package/ngcc/src/main.js +0 -163
  327. package/ngcc/src/migrations/migration.js +0 -13
  328. package/ngcc/src/migrations/missing_injectable_migration.js +0 -227
  329. package/ngcc/src/migrations/undecorated_child_migration.js +0 -90
  330. package/ngcc/src/migrations/undecorated_parent_migration.js +0 -103
  331. package/ngcc/src/migrations/utils.js +0 -137
  332. package/ngcc/src/ngcc_options.js +0 -135
  333. package/ngcc/src/packages/build_marker.js +0 -124
  334. package/ngcc/src/packages/bundle_program.js +0 -80
  335. package/ngcc/src/packages/configuration.js +0 -334
  336. package/ngcc/src/packages/entry_point.js +0 -267
  337. package/ngcc/src/packages/entry_point_bundle.js +0 -96
  338. package/ngcc/src/packages/entry_point_manifest.js +0 -207
  339. package/ngcc/src/packages/ngcc_compiler_host.js +0 -101
  340. package/ngcc/src/packages/patch_ts_expando_initializer.js +0 -174
  341. package/ngcc/src/packages/source_file_cache.js +0 -207
  342. package/ngcc/src/packages/transformer.js +0 -157
  343. package/ngcc/src/path_mappings.js +0 -27
  344. package/ngcc/src/rendering/commonjs_rendering_formatter.js +0 -106
  345. package/ngcc/src/rendering/dts_renderer.js +0 -170
  346. package/ngcc/src/rendering/esm5_rendering_formatter.js +0 -70
  347. package/ngcc/src/rendering/esm_rendering_formatter.js +0 -291
  348. package/ngcc/src/rendering/ngcc_import_rewriter.js +0 -49
  349. package/ngcc/src/rendering/renderer.js +0 -204
  350. package/ngcc/src/rendering/rendering_formatter.js +0 -15
  351. package/ngcc/src/rendering/source_maps.js +0 -68
  352. package/ngcc/src/rendering/umd_rendering_formatter.js +0 -326
  353. package/ngcc/src/rendering/utils.js +0 -35
  354. package/ngcc/src/utils.js +0 -182
  355. package/ngcc/src/writing/cleaning/cleaning_strategies.js +0 -80
  356. package/ngcc/src/writing/cleaning/package_cleaner.js +0 -126
  357. package/ngcc/src/writing/cleaning/utils.js +0 -30
  358. package/ngcc/src/writing/file_writer.js +0 -13
  359. package/ngcc/src/writing/in_place_file_writer.js +0 -90
  360. package/ngcc/src/writing/new_entry_point_file_writer.js +0 -214
  361. package/ngcc/src/writing/package_json_updater.js +0 -182
  362. package/src/diagnostics/translate_diagnostics.js +0 -61
  363. package/src/diagnostics/typescript_version.js +0 -96
  364. package/src/extract_i18n.js +0 -62
  365. package/src/language_services.js +0 -34
  366. package/src/main.js +0 -210
  367. package/src/metadata/bundle_index_host.js +0 -133
  368. package/src/metadata/bundler.js +0 -624
  369. package/src/metadata/collector.js +0 -799
  370. package/src/metadata/evaluator.js +0 -677
  371. package/src/metadata/index.js +0 -24
  372. package/src/metadata/index_writer.js +0 -80
  373. package/src/metadata/schema.js +0 -136
  374. package/src/metadata/symbols.js +0 -149
  375. package/src/ngtsc/annotations/index.js +0 -35
  376. package/src/ngtsc/annotations/src/api.js +0 -20
  377. package/src/ngtsc/annotations/src/component.js +0 -1338
  378. package/src/ngtsc/annotations/src/diagnostics.js +0 -174
  379. package/src/ngtsc/annotations/src/directive.js +0 -724
  380. package/src/ngtsc/annotations/src/factory.js +0 -32
  381. package/src/ngtsc/annotations/src/injectable.js +0 -284
  382. package/src/ngtsc/annotations/src/metadata.js +0 -160
  383. package/src/ngtsc/annotations/src/ng_module.js +0 -671
  384. package/src/ngtsc/annotations/src/pipe.js +0 -171
  385. package/src/ngtsc/annotations/src/references_registry.js +0 -38
  386. package/src/ngtsc/annotations/src/util.js +0 -566
  387. package/src/ngtsc/core/api/index.js +0 -25
  388. package/src/ngtsc/core/api/src/adapter.js +0 -20
  389. package/src/ngtsc/core/api/src/interfaces.js +0 -20
  390. package/src/ngtsc/core/api/src/options.js +0 -20
  391. package/src/ngtsc/core/api/src/public_options.js +0 -20
  392. package/src/ngtsc/core/index.js +0 -25
  393. package/src/ngtsc/core/src/compiler.js +0 -1105
  394. package/src/ngtsc/core/src/host.js +0 -273
  395. package/src/ngtsc/cycles/index.js +0 -26
  396. package/src/ngtsc/cycles/src/analyzer.js +0 -163
  397. package/src/ngtsc/cycles/src/imports.js +0 -175
  398. package/src/ngtsc/diagnostics/index.js +0 -33
  399. package/src/ngtsc/diagnostics/src/error.js +0 -69
  400. package/src/ngtsc/diagnostics/src/error_code.js +0 -235
  401. package/src/ngtsc/diagnostics/src/util.js +0 -35
  402. package/src/ngtsc/entry_point/index.js +0 -29
  403. package/src/ngtsc/entry_point/src/generator.js +0 -45
  404. package/src/ngtsc/entry_point/src/logic.js +0 -61
  405. package/src/ngtsc/entry_point/src/private_export_checker.js +0 -137
  406. package/src/ngtsc/entry_point/src/reference_graph.js +0 -91
  407. package/src/ngtsc/file_system/index.js +0 -45
  408. package/src/ngtsc/file_system/src/compiler_host.js +0 -80
  409. package/src/ngtsc/file_system/src/helpers.js +0 -135
  410. package/src/ngtsc/file_system/src/invalid_file_system.js +0 -120
  411. package/src/ngtsc/file_system/src/logical.js +0 -100
  412. package/src/ngtsc/file_system/src/node_js_file_system.js +0 -179
  413. package/src/ngtsc/file_system/src/types.js +0 -20
  414. package/src/ngtsc/file_system/src/util.js +0 -38
  415. package/src/ngtsc/file_system/testing/index.d.ts +0 -13
  416. package/src/ngtsc/file_system/testing/index.js +0 -32
  417. package/src/ngtsc/file_system/testing/src/mock_file_system.d.ts +0 -72
  418. package/src/ngtsc/file_system/testing/src/mock_file_system.js +0 -333
  419. package/src/ngtsc/file_system/testing/src/mock_file_system_native.d.ts +0 -16
  420. package/src/ngtsc/file_system/testing/src/mock_file_system_native.js +0 -85
  421. package/src/ngtsc/file_system/testing/src/mock_file_system_posix.d.ts +0 -13
  422. package/src/ngtsc/file_system/testing/src/mock_file_system_posix.js +0 -68
  423. package/src/ngtsc/file_system/testing/src/mock_file_system_windows.d.ts +0 -13
  424. package/src/ngtsc/file_system/testing/src/mock_file_system_windows.js +0 -68
  425. package/src/ngtsc/file_system/testing/src/test_helper.d.ts +0 -17
  426. package/src/ngtsc/file_system/testing/src/test_helper.js +0 -143
  427. package/src/ngtsc/imports/index.js +0 -43
  428. package/src/ngtsc/imports/src/alias.js +0 -158
  429. package/src/ngtsc/imports/src/core.js +0 -98
  430. package/src/ngtsc/imports/src/default.js +0 -153
  431. package/src/ngtsc/imports/src/emitter.js +0 -317
  432. package/src/ngtsc/imports/src/find_export.js +0 -82
  433. package/src/ngtsc/imports/src/reexport.js +0 -20
  434. package/src/ngtsc/imports/src/references.js +0 -171
  435. package/src/ngtsc/imports/src/resolver.js +0 -39
  436. package/src/ngtsc/incremental/api.js +0 -20
  437. package/src/ngtsc/incremental/index.js +0 -29
  438. package/src/ngtsc/incremental/semantic_graph/index.js +0 -34
  439. package/src/ngtsc/incremental/semantic_graph/src/api.js +0 -51
  440. package/src/ngtsc/incremental/semantic_graph/src/graph.js +0 -302
  441. package/src/ngtsc/incremental/semantic_graph/src/type_parameters.js +0 -55
  442. package/src/ngtsc/incremental/semantic_graph/src/util.js +0 -111
  443. package/src/ngtsc/incremental/src/dependency_tracking.js +0 -165
  444. package/src/ngtsc/incremental/src/incremental.js +0 -393
  445. package/src/ngtsc/incremental/src/noop.js +0 -26
  446. package/src/ngtsc/incremental/src/state.js +0 -30
  447. package/src/ngtsc/incremental/src/strategy.js +0 -99
  448. package/src/ngtsc/indexer/index.js +0 -27
  449. package/src/ngtsc/indexer/src/api.js +0 -45
  450. package/src/ngtsc/indexer/src/context.js +0 -40
  451. package/src/ngtsc/indexer/src/template.js +0 -324
  452. package/src/ngtsc/indexer/src/transform.js +0 -66
  453. package/src/ngtsc/logging/index.js +0 -25
  454. package/src/ngtsc/logging/src/console_logger.js +0 -75
  455. package/src/ngtsc/logging/src/logger.js +0 -28
  456. package/src/ngtsc/logging/testing/index.js +0 -23
  457. package/src/ngtsc/logging/testing/src/mock_logger.d.ts +0 -20
  458. package/src/ngtsc/logging/testing/src/mock_logger.js +0 -64
  459. package/src/ngtsc/metadata/index.js +0 -39
  460. package/src/ngtsc/metadata/src/api.js +0 -26
  461. package/src/ngtsc/metadata/src/dts.js +0 -168
  462. package/src/ngtsc/metadata/src/inheritance.js +0 -122
  463. package/src/ngtsc/metadata/src/property_mapping.js +0 -244
  464. package/src/ngtsc/metadata/src/registry.js +0 -133
  465. package/src/ngtsc/metadata/src/resource_registry.js +0 -109
  466. package/src/ngtsc/metadata/src/util.js +0 -275
  467. package/src/ngtsc/partial_evaluator/index.js +0 -31
  468. package/src/ngtsc/partial_evaluator/src/builtin.js +0 -125
  469. package/src/ngtsc/partial_evaluator/src/diagnostics.js +0 -193
  470. package/src/ngtsc/partial_evaluator/src/dynamic.js +0 -109
  471. package/src/ngtsc/partial_evaluator/src/interface.js +0 -42
  472. package/src/ngtsc/partial_evaluator/src/interpreter.js +0 -780
  473. package/src/ngtsc/partial_evaluator/src/known_declaration.js +0 -57
  474. package/src/ngtsc/partial_evaluator/src/result.js +0 -72
  475. package/src/ngtsc/partial_evaluator/src/ts_helpers.js +0 -121
  476. package/src/ngtsc/perf/index.js +0 -28
  477. package/src/ngtsc/perf/src/api.js +0 -291
  478. package/src/ngtsc/perf/src/clock.js +0 -31
  479. package/src/ngtsc/perf/src/noop.js +0 -37
  480. package/src/ngtsc/perf/src/recorder.js +0 -143
  481. package/src/ngtsc/program.js +0 -360
  482. package/src/ngtsc/program_driver/index.js +0 -25
  483. package/src/ngtsc/program_driver/src/api.js +0 -36
  484. package/src/ngtsc/program_driver/src/ts_create_program_driver.js +0 -200
  485. package/src/ngtsc/reflection/index.js +0 -36
  486. package/src/ngtsc/reflection/src/host.js +0 -88
  487. package/src/ngtsc/reflection/src/type_to_value.js +0 -259
  488. package/src/ngtsc/reflection/src/typescript.js +0 -640
  489. package/src/ngtsc/reflection/src/util.js +0 -37
  490. package/src/ngtsc/resource/index.js +0 -23
  491. package/src/ngtsc/resource/src/loader.js +0 -285
  492. package/src/ngtsc/scope/index.js +0 -29
  493. package/src/ngtsc/scope/src/api.js +0 -20
  494. package/src/ngtsc/scope/src/component_scope.js +0 -69
  495. package/src/ngtsc/scope/src/dependency.js +0 -201
  496. package/src/ngtsc/scope/src/local.js +0 -665
  497. package/src/ngtsc/scope/src/typecheck.js +0 -120
  498. package/src/ngtsc/shims/api.js +0 -13
  499. package/src/ngtsc/shims/index.js +0 -39
  500. package/src/ngtsc/shims/src/adapter.js +0 -266
  501. package/src/ngtsc/shims/src/expando.js +0 -147
  502. package/src/ngtsc/shims/src/factory_generator.js +0 -292
  503. package/src/ngtsc/shims/src/reference_tagger.js +0 -94
  504. package/src/ngtsc/shims/src/summary_generator.js +0 -101
  505. package/src/ngtsc/shims/src/util.js +0 -41
  506. package/src/ngtsc/sourcemaps/index.js +0 -27
  507. package/src/ngtsc/sourcemaps/src/content_origin.js +0 -48
  508. package/src/ngtsc/sourcemaps/src/raw_source_map.js +0 -13
  509. package/src/ngtsc/sourcemaps/src/segment_marker.js +0 -55
  510. package/src/ngtsc/sourcemaps/src/source_file.js +0 -519
  511. package/src/ngtsc/sourcemaps/src/source_file_loader.js +0 -234
  512. package/src/ngtsc/switch/index.js +0 -23
  513. package/src/ngtsc/switch/src/switch.js +0 -141
  514. package/src/ngtsc/transform/index.js +0 -36
  515. package/src/ngtsc/transform/src/alias.js +0 -46
  516. package/src/ngtsc/transform/src/api.js +0 -76
  517. package/src/ngtsc/transform/src/compilation.js +0 -862
  518. package/src/ngtsc/transform/src/declaration.js +0 -234
  519. package/src/ngtsc/transform/src/trait.js +0 -111
  520. package/src/ngtsc/transform/src/transform.js +0 -333
  521. package/src/ngtsc/transform/src/utils.js +0 -73
  522. package/src/ngtsc/translator/index.js +0 -37
  523. package/src/ngtsc/translator/src/api/ast_factory.js +0 -20
  524. package/src/ngtsc/translator/src/api/import_generator.js +0 -20
  525. package/src/ngtsc/translator/src/context.js +0 -47
  526. package/src/ngtsc/translator/src/import_manager.js +0 -77
  527. package/src/ngtsc/translator/src/translator.js +0 -347
  528. package/src/ngtsc/translator/src/type_translator.js +0 -220
  529. package/src/ngtsc/translator/src/typescript_ast_factory.js +0 -251
  530. package/src/ngtsc/translator/src/typescript_translator.js +0 -34
  531. package/src/ngtsc/tsc_plugin.js +0 -129
  532. package/src/ngtsc/typecheck/api/api.js +0 -20
  533. package/src/ngtsc/typecheck/api/checker.js +0 -44
  534. package/src/ngtsc/typecheck/api/completion.js +0 -29
  535. package/src/ngtsc/typecheck/api/context.js +0 -20
  536. package/src/ngtsc/typecheck/api/index.js +0 -27
  537. package/src/ngtsc/typecheck/api/scope.js +0 -20
  538. package/src/ngtsc/typecheck/api/symbols.js +0 -35
  539. package/src/ngtsc/typecheck/diagnostics/index.js +0 -23
  540. package/src/ngtsc/typecheck/diagnostics/src/diagnostic.js +0 -141
  541. package/src/ngtsc/typecheck/diagnostics/src/id.js +0 -37
  542. package/src/ngtsc/typecheck/extended/api/api.js +0 -124
  543. package/src/ngtsc/typecheck/extended/api/extended_template_checker.js +0 -20
  544. package/src/ngtsc/typecheck/extended/api/index.js +0 -23
  545. package/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.js +0 -52
  546. package/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.js +0 -64
  547. package/src/ngtsc/typecheck/extended/index.js +0 -23
  548. package/src/ngtsc/typecheck/extended/src/extended_template_checker.js +0 -55
  549. package/src/ngtsc/typecheck/index.js +0 -29
  550. package/src/ngtsc/typecheck/src/checker.js +0 -767
  551. package/src/ngtsc/typecheck/src/comments.js +0 -181
  552. package/src/ngtsc/typecheck/src/completion.js +0 -230
  553. package/src/ngtsc/typecheck/src/context.js +0 -424
  554. package/src/ngtsc/typecheck/src/diagnostics.js +0 -114
  555. package/src/ngtsc/typecheck/src/dom.js +0 -87
  556. package/src/ngtsc/typecheck/src/environment.js +0 -160
  557. package/src/ngtsc/typecheck/src/expression.js +0 -417
  558. package/src/ngtsc/typecheck/src/line_mappings.js +0 -77
  559. package/src/ngtsc/typecheck/src/oob.js +0 -181
  560. package/src/ngtsc/typecheck/src/shim.js +0 -52
  561. package/src/ngtsc/typecheck/src/source.js +0 -91
  562. package/src/ngtsc/typecheck/src/tcb_util.js +0 -165
  563. package/src/ngtsc/typecheck/src/template_semantics.js +0 -52
  564. package/src/ngtsc/typecheck/src/template_symbol_builder.js +0 -551
  565. package/src/ngtsc/typecheck/src/ts_util.js +0 -202
  566. package/src/ngtsc/typecheck/src/type_check_block.js +0 -2212
  567. package/src/ngtsc/typecheck/src/type_check_file.js +0 -115
  568. package/src/ngtsc/typecheck/src/type_constructor.js +0 -255
  569. package/src/ngtsc/typecheck/src/type_emitter.js +0 -164
  570. package/src/ngtsc/typecheck/src/type_parameter_emitter.js +0 -115
  571. package/src/ngtsc/util/src/path.js +0 -33
  572. package/src/ngtsc/util/src/typescript.js +0 -176
  573. package/src/ngtsc/util/src/visitor.js +0 -119
  574. package/src/ngtsc/xi18n/index.js +0 -22
  575. package/src/ngtsc/xi18n/src/context.js +0 -20
  576. package/src/perform_compile.js +0 -322
  577. package/src/perform_watch.js +0 -263
  578. package/src/tooling.js +0 -47
  579. package/src/transformers/api.js +0 -42
  580. package/src/transformers/compiler_host.js +0 -623
  581. package/src/transformers/downlevel_decorators_transform.js +0 -611
  582. package/src/transformers/entry_points.js +0 -25
  583. package/src/transformers/i18n.js +0 -76
  584. package/src/transformers/inline_resources.js +0 -287
  585. package/src/transformers/lower_expressions.js +0 -365
  586. package/src/transformers/metadata_cache.js +0 -96
  587. package/src/transformers/metadata_reader.js +0 -120
  588. package/src/transformers/node_emitter.js +0 -637
  589. package/src/transformers/node_emitter_transform.js +0 -88
  590. package/src/transformers/patch_alias_reference_resolution.js +0 -129
  591. package/src/transformers/program.js +0 -998
  592. package/src/transformers/r3_metadata_transform.js +0 -73
  593. package/src/transformers/r3_transform.js +0 -44
  594. package/src/transformers/util.js +0 -122
  595. package/src/typescript_support.js +0 -74
  596. package/src/version.js +0 -28
@@ -1,333 +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/transform/src/transform", ["require", "exports", "tslib", "@angular/compiler", "typescript", "@angular/compiler-cli/src/ngtsc/imports/src/default", "@angular/compiler-cli/src/ngtsc/perf", "@angular/compiler-cli/src/ngtsc/translator", "@angular/compiler-cli/src/ngtsc/util/src/visitor", "@angular/compiler-cli/src/ngtsc/transform/src/utils"], factory);
15
- }
16
- })(function (require, exports) {
17
- "use strict";
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.ivyTransformFactory = void 0;
20
- var tslib_1 = require("tslib");
21
- var compiler_1 = require("@angular/compiler");
22
- var ts = require("typescript");
23
- var default_1 = require("@angular/compiler-cli/src/ngtsc/imports/src/default");
24
- var perf_1 = require("@angular/compiler-cli/src/ngtsc/perf");
25
- var translator_1 = require("@angular/compiler-cli/src/ngtsc/translator");
26
- var visitor_1 = require("@angular/compiler-cli/src/ngtsc/util/src/visitor");
27
- var utils_1 = require("@angular/compiler-cli/src/ngtsc/transform/src/utils");
28
- var NO_DECORATORS = new Set();
29
- var CLOSURE_FILE_OVERVIEW_REGEXP = /\s+@fileoverview\s+/i;
30
- function ivyTransformFactory(compilation, reflector, importRewriter, defaultImportTracker, perf, isCore, isClosureCompilerEnabled) {
31
- var recordWrappedNode = createRecorderFn(defaultImportTracker);
32
- return function (context) {
33
- return function (file) {
34
- return perf.inPhase(perf_1.PerfPhase.Compile, function () { return transformIvySourceFile(compilation, context, reflector, importRewriter, file, isCore, isClosureCompilerEnabled, recordWrappedNode); });
35
- };
36
- };
37
- }
38
- exports.ivyTransformFactory = ivyTransformFactory;
39
- /**
40
- * Visits all classes, performs Ivy compilation where Angular decorators are present and collects
41
- * result in a Map that associates a ts.ClassDeclaration with Ivy compilation results. This visitor
42
- * does NOT perform any TS transformations.
43
- */
44
- var IvyCompilationVisitor = /** @class */ (function (_super) {
45
- (0, tslib_1.__extends)(IvyCompilationVisitor, _super);
46
- function IvyCompilationVisitor(compilation, constantPool) {
47
- var _this = _super.call(this) || this;
48
- _this.compilation = compilation;
49
- _this.constantPool = constantPool;
50
- _this.classCompilationMap = new Map();
51
- return _this;
52
- }
53
- IvyCompilationVisitor.prototype.visitClassDeclaration = function (node) {
54
- // Determine if this class has an Ivy field that needs to be added, and compile the field
55
- // to an expression if so.
56
- var result = this.compilation.compile(node, this.constantPool);
57
- if (result !== null) {
58
- this.classCompilationMap.set(node, result);
59
- }
60
- return { node: node };
61
- };
62
- return IvyCompilationVisitor;
63
- }(visitor_1.Visitor));
64
- /**
65
- * Visits all classes and performs transformation of corresponding TS nodes based on the Ivy
66
- * compilation results (provided as an argument).
67
- */
68
- var IvyTransformationVisitor = /** @class */ (function (_super) {
69
- (0, tslib_1.__extends)(IvyTransformationVisitor, _super);
70
- function IvyTransformationVisitor(compilation, classCompilationMap, reflector, importManager, recordWrappedNodeExpr, isClosureCompilerEnabled, isCore) {
71
- var _this = _super.call(this) || this;
72
- _this.compilation = compilation;
73
- _this.classCompilationMap = classCompilationMap;
74
- _this.reflector = reflector;
75
- _this.importManager = importManager;
76
- _this.recordWrappedNodeExpr = recordWrappedNodeExpr;
77
- _this.isClosureCompilerEnabled = isClosureCompilerEnabled;
78
- _this.isCore = isCore;
79
- return _this;
80
- }
81
- IvyTransformationVisitor.prototype.visitClassDeclaration = function (node) {
82
- var e_1, _a;
83
- var _this = this;
84
- // If this class is not registered in the map, it means that it doesn't have Angular decorators,
85
- // thus no further processing is required.
86
- if (!this.classCompilationMap.has(node)) {
87
- return { node: node };
88
- }
89
- var translateOptions = {
90
- recordWrappedNode: this.recordWrappedNodeExpr,
91
- annotateForClosureCompiler: this.isClosureCompilerEnabled,
92
- };
93
- // There is at least one field to add.
94
- var statements = [];
95
- var members = (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(node.members), false);
96
- try {
97
- for (var _b = (0, tslib_1.__values)(this.classCompilationMap.get(node)), _c = _b.next(); !_c.done; _c = _b.next()) {
98
- var field = _c.value;
99
- // Translate the initializer for the field into TS nodes.
100
- var exprNode = (0, translator_1.translateExpression)(field.initializer, this.importManager, translateOptions);
101
- // Create a static property declaration for the new field.
102
- var property = ts.createProperty(undefined, [ts.createToken(ts.SyntaxKind.StaticKeyword)], field.name, undefined, undefined, exprNode);
103
- if (this.isClosureCompilerEnabled) {
104
- // Closure compiler transforms the form `Service.ɵprov = X` into `Service$ɵprov = X`. To
105
- // prevent this transformation, such assignments need to be annotated with @nocollapse.
106
- // Note that tsickle is typically responsible for adding such annotations, however it
107
- // doesn't yet handle synthetic fields added during other transformations.
108
- ts.addSyntheticLeadingComment(property, ts.SyntaxKind.MultiLineCommentTrivia, '* @nocollapse ',
109
- /* hasTrailingNewLine */ false);
110
- }
111
- field.statements.map(function (stmt) { return (0, translator_1.translateStatement)(stmt, _this.importManager, translateOptions); })
112
- .forEach(function (stmt) { return statements.push(stmt); });
113
- members.push(property);
114
- }
115
- }
116
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
117
- finally {
118
- try {
119
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
120
- }
121
- finally { if (e_1) throw e_1.error; }
122
- }
123
- // Replace the class declaration with an updated version.
124
- node = ts.updateClassDeclaration(node,
125
- // Remove the decorator which triggered this compilation, leaving the others alone.
126
- maybeFilterDecorator(node.decorators, this.compilation.decoratorsFor(node)), node.modifiers, node.name, node.typeParameters, node.heritageClauses || [],
127
- // Map over the class members and remove any Angular decorators from them.
128
- members.map(function (member) { return _this._stripAngularDecorators(member); }));
129
- return { node: node, after: statements };
130
- };
131
- /**
132
- * Return all decorators on a `Declaration` which are from @angular/core, or an empty set if none
133
- * are.
134
- */
135
- IvyTransformationVisitor.prototype._angularCoreDecorators = function (decl) {
136
- var _this = this;
137
- var decorators = this.reflector.getDecoratorsOfDeclaration(decl);
138
- if (decorators === null) {
139
- return NO_DECORATORS;
140
- }
141
- var coreDecorators = decorators.filter(function (dec) { return _this.isCore || isFromAngularCore(dec); })
142
- .map(function (dec) { return dec.node; });
143
- if (coreDecorators.length > 0) {
144
- return new Set(coreDecorators);
145
- }
146
- else {
147
- return NO_DECORATORS;
148
- }
149
- };
150
- /**
151
- * Given a `ts.Node`, filter the decorators array and return a version containing only non-Angular
152
- * decorators.
153
- *
154
- * If all decorators are removed (or none existed in the first place), this method returns
155
- * `undefined`.
156
- */
157
- IvyTransformationVisitor.prototype._nonCoreDecoratorsOnly = function (node) {
158
- // Shortcut if the node has no decorators.
159
- if (node.decorators === undefined) {
160
- return undefined;
161
- }
162
- // Build a Set of the decorators on this node from @angular/core.
163
- var coreDecorators = this._angularCoreDecorators(node);
164
- if (coreDecorators.size === node.decorators.length) {
165
- // If all decorators are to be removed, return `undefined`.
166
- return undefined;
167
- }
168
- else if (coreDecorators.size === 0) {
169
- // If no decorators need to be removed, return the original decorators array.
170
- return node.decorators;
171
- }
172
- // Filter out the core decorators.
173
- var filtered = node.decorators.filter(function (dec) { return !coreDecorators.has(dec); });
174
- // If no decorators survive, return `undefined`. This can only happen if a core decorator is
175
- // repeated on the node.
176
- if (filtered.length === 0) {
177
- return undefined;
178
- }
179
- // Create a new `NodeArray` with the filtered decorators that sourcemaps back to the original.
180
- var array = ts.createNodeArray(filtered);
181
- array.pos = node.decorators.pos;
182
- array.end = node.decorators.end;
183
- return array;
184
- };
185
- /**
186
- * Remove Angular decorators from a `ts.Node` in a shallow manner.
187
- *
188
- * This will remove decorators from class elements (getters, setters, properties, methods) as well
189
- * as parameters of constructors.
190
- */
191
- IvyTransformationVisitor.prototype._stripAngularDecorators = function (node) {
192
- var _this = this;
193
- if (ts.isParameter(node)) {
194
- // Strip decorators from parameters (probably of the constructor).
195
- node = ts.updateParameter(node, this._nonCoreDecoratorsOnly(node), node.modifiers, node.dotDotDotToken, node.name, node.questionToken, node.type, node.initializer);
196
- }
197
- else if (ts.isMethodDeclaration(node) && node.decorators !== undefined) {
198
- // Strip decorators of methods.
199
- node = ts.updateMethod(node, this._nonCoreDecoratorsOnly(node), node.modifiers, node.asteriskToken, node.name, node.questionToken, node.typeParameters, node.parameters, node.type, node.body);
200
- }
201
- else if (ts.isPropertyDeclaration(node) && node.decorators !== undefined) {
202
- // Strip decorators of properties.
203
- node = ts.updateProperty(node, this._nonCoreDecoratorsOnly(node), node.modifiers, node.name, node.questionToken, node.type, node.initializer);
204
- }
205
- else if (ts.isGetAccessor(node)) {
206
- // Strip decorators of getters.
207
- node = ts.updateGetAccessor(node, this._nonCoreDecoratorsOnly(node), node.modifiers, node.name, node.parameters, node.type, node.body);
208
- }
209
- else if (ts.isSetAccessor(node)) {
210
- // Strip decorators of setters.
211
- node = ts.updateSetAccessor(node, this._nonCoreDecoratorsOnly(node), node.modifiers, node.name, node.parameters, node.body);
212
- }
213
- else if (ts.isConstructorDeclaration(node)) {
214
- // For constructors, strip decorators of the parameters.
215
- var parameters = node.parameters.map(function (param) { return _this._stripAngularDecorators(param); });
216
- node =
217
- ts.updateConstructor(node, node.decorators, node.modifiers, parameters, node.body);
218
- }
219
- return node;
220
- };
221
- return IvyTransformationVisitor;
222
- }(visitor_1.Visitor));
223
- /**
224
- * A transformer which operates on ts.SourceFiles and applies changes from an `IvyCompilation`.
225
- */
226
- function transformIvySourceFile(compilation, context, reflector, importRewriter, file, isCore, isClosureCompilerEnabled, recordWrappedNode) {
227
- var constantPool = new compiler_1.ConstantPool(isClosureCompilerEnabled);
228
- var importManager = new translator_1.ImportManager(importRewriter);
229
- // The transformation process consists of 2 steps:
230
- //
231
- // 1. Visit all classes, perform compilation and collect the results.
232
- // 2. Perform actual transformation of required TS nodes using compilation results from the first
233
- // step.
234
- //
235
- // This is needed to have all `o.Expression`s generated before any TS transforms happen. This
236
- // allows `ConstantPool` to properly identify expressions that can be shared across multiple
237
- // components declared in the same file.
238
- // Step 1. Go though all classes in AST, perform compilation and collect the results.
239
- var compilationVisitor = new IvyCompilationVisitor(compilation, constantPool);
240
- (0, visitor_1.visit)(file, compilationVisitor, context);
241
- // Step 2. Scan through the AST again and perform transformations based on Ivy compilation
242
- // results obtained at Step 1.
243
- var transformationVisitor = new IvyTransformationVisitor(compilation, compilationVisitor.classCompilationMap, reflector, importManager, recordWrappedNode, isClosureCompilerEnabled, isCore);
244
- var sf = (0, visitor_1.visit)(file, transformationVisitor, context);
245
- // Generate the constant statements first, as they may involve adding additional imports
246
- // to the ImportManager.
247
- var downlevelTranslatedCode = getLocalizeCompileTarget(context) < ts.ScriptTarget.ES2015;
248
- var constants = constantPool.statements.map(function (stmt) { return (0, translator_1.translateStatement)(stmt, importManager, {
249
- recordWrappedNode: recordWrappedNode,
250
- downlevelTaggedTemplates: downlevelTranslatedCode,
251
- downlevelVariableDeclarations: downlevelTranslatedCode,
252
- annotateForClosureCompiler: isClosureCompilerEnabled,
253
- }); });
254
- // Preserve @fileoverview comments required by Closure, since the location might change as a
255
- // result of adding extra imports and constant pool statements.
256
- var fileOverviewMeta = isClosureCompilerEnabled ? getFileOverviewComment(sf.statements) : null;
257
- // Add new imports for this file.
258
- sf = (0, utils_1.addImports)(importManager, sf, constants);
259
- if (fileOverviewMeta !== null) {
260
- setFileOverviewComment(sf, fileOverviewMeta);
261
- }
262
- return sf;
263
- }
264
- /**
265
- * Compute the correct target output for `$localize` messages generated by Angular
266
- *
267
- * In some versions of TypeScript, the transformation of synthetic `$localize` tagged template
268
- * literals is broken. See https://github.com/microsoft/TypeScript/issues/38485
269
- *
270
- * Here we compute what the expected final output target of the compilation will
271
- * be so that we can generate ES5 compliant `$localize` calls instead of relying upon TS to do the
272
- * downleveling for us.
273
- */
274
- function getLocalizeCompileTarget(context) {
275
- var target = context.getCompilerOptions().target || ts.ScriptTarget.ES2015;
276
- return target !== ts.ScriptTarget.JSON ? target : ts.ScriptTarget.ES2015;
277
- }
278
- function getFileOverviewComment(statements) {
279
- if (statements.length > 0) {
280
- var host = statements[0];
281
- var trailing = false;
282
- var comments = ts.getSyntheticLeadingComments(host);
283
- // If @fileoverview tag is not found in source file, tsickle produces fake node with trailing
284
- // comment and inject it at the very beginning of the generated file. So we need to check for
285
- // leading as well as trailing comments.
286
- if (!comments || comments.length === 0) {
287
- trailing = true;
288
- comments = ts.getSyntheticTrailingComments(host);
289
- }
290
- if (comments && comments.length > 0 && CLOSURE_FILE_OVERVIEW_REGEXP.test(comments[0].text)) {
291
- return { comments: comments, host: host, trailing: trailing };
292
- }
293
- }
294
- return null;
295
- }
296
- function setFileOverviewComment(sf, fileoverview) {
297
- var comments = fileoverview.comments, host = fileoverview.host, trailing = fileoverview.trailing;
298
- // If host statement is no longer the first one, it means that extra statements were added at the
299
- // very beginning, so we need to relocate @fileoverview comment and cleanup the original statement
300
- // that hosted it.
301
- if (sf.statements.length > 0 && host !== sf.statements[0]) {
302
- if (trailing) {
303
- ts.setSyntheticTrailingComments(host, undefined);
304
- }
305
- else {
306
- ts.setSyntheticLeadingComments(host, undefined);
307
- }
308
- ts.setSyntheticLeadingComments(sf.statements[0], comments);
309
- }
310
- }
311
- function maybeFilterDecorator(decorators, toRemove) {
312
- if (decorators === undefined) {
313
- return undefined;
314
- }
315
- var filtered = decorators.filter(function (dec) { return toRemove.find(function (decToRemove) { return ts.getOriginalNode(dec) === decToRemove; }) === undefined; });
316
- if (filtered.length === 0) {
317
- return undefined;
318
- }
319
- return ts.createNodeArray(filtered);
320
- }
321
- function isFromAngularCore(decorator) {
322
- return decorator.import !== null && decorator.import.from === '@angular/core';
323
- }
324
- function createRecorderFn(defaultImportTracker) {
325
- return function (node) {
326
- var importDecl = (0, default_1.getDefaultImportDeclaration)(node);
327
- if (importDecl !== null) {
328
- defaultImportTracker.recordUsedImport(importDecl);
329
- }
330
- };
331
- }
332
- });
333
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy90cmFuc2Zvcm0vc3JjL3RyYW5zZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7O0lBRUgsOENBQStDO0lBQy9DLCtCQUFpQztJQUdqQywrRUFBc0U7SUFDdEUsNkRBQW1EO0lBRW5ELHlFQUFnSTtJQUNoSSw0RUFBNEU7SUFJNUUsNkVBQW1DO0lBRW5DLElBQU0sYUFBYSxHQUFHLElBQUksR0FBRyxFQUFnQixDQUFDO0lBRTlDLElBQU0sNEJBQTRCLEdBQUcsc0JBQXNCLENBQUM7SUFXNUQsU0FBZ0IsbUJBQW1CLENBQy9CLFdBQTBCLEVBQUUsU0FBeUIsRUFBRSxjQUE4QixFQUNyRixvQkFBMEMsRUFBRSxJQUFrQixFQUFFLE1BQWUsRUFDL0Usd0JBQWlDO1FBQ25DLElBQU0saUJBQWlCLEdBQUcsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNqRSxPQUFPLFVBQUMsT0FBaUM7WUFDdkMsT0FBTyxVQUFDLElBQW1CO2dCQUN6QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQ2YsZ0JBQVMsQ0FBQyxPQUFPLEVBQ2pCLGNBQU0sT0FBQSxzQkFBc0IsQ0FDeEIsV0FBVyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQzdELHdCQUF3QixFQUFFLGlCQUFpQixDQUFDLEVBRjFDLENBRTBDLENBQUMsQ0FBQztZQUN4RCxDQUFDLENBQUM7UUFDSixDQUFDLENBQUM7SUFDSixDQUFDO0lBZEQsa0RBY0M7SUFFRDs7OztPQUlHO0lBQ0g7UUFBb0Msc0RBQU87UUFHekMsK0JBQW9CLFdBQTBCLEVBQVUsWUFBMEI7WUFBbEYsWUFDRSxpQkFBTyxTQUNSO1lBRm1CLGlCQUFXLEdBQVgs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QUFNLFVBQVUsR0FBRyxJQUFBLHFDQUEyQixFQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JELElBQUksVUFBVSxLQUFLLElBQUksRUFBRTtnQkFDdkIsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDbkQ7UUFDSCxDQUFDLENBQUM7SUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7Q29uc3RhbnRQb29sfSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHtEZWZhdWx0SW1wb3J0VHJhY2tlciwgSW1wb3J0UmV3cml0ZXJ9IGZyb20gJy4uLy4uL2ltcG9ydHMnO1xuaW1wb3J0IHtnZXREZWZhdWx0SW1wb3J0RGVjbGFyYXRpb259IGZyb20gJy4uLy4uL2ltcG9ydHMvc3JjL2RlZmF1bHQnO1xuaW1wb3J0IHtQZXJmUGhhc2UsIFBlcmZSZWNvcmRlcn0gZnJvbSAnLi4vLi4vcGVyZic7XG5pbXBvcnQge0RlY29yYXRvciwgUmVmbGVjdGlvbkhvc3R9IGZyb20gJy4uLy4uL3JlZmxlY3Rpb24nO1xuaW1wb3J0IHtJbXBvcnRNYW5hZ2VyLCBSZWNvcmRXcmFwcGVkTm9kZUZuLCB0cmFuc2xhdGVFeHByZXNzaW9uLCB0cmFuc2xhdGVTdGF0ZW1lbnQsIFRyYW5zbGF0b3JPcHRpb25zfSBmcm9tICcuLi8uLi90cmFuc2xhdG9yJztcbmltcG9ydCB7dmlzaXQsIFZpc2l0TGlzdEVudHJ5UmVzdWx0LCBWaXNpdG9yfSBmcm9tICcuLi8uLi91dGlsL3NyYy92aXNpdG9yJztcblxuaW1wb3J0IHtDb21waWxlUmVzdWx0fSBmcm9tICcuL2FwaSc7XG5pbXBvcnQge1RyYWl0Q29tcGlsZXJ9IGZyb20gJy4vY29tcGlsYXRpb24nO1xuaW1wb3J0IHthZGRJbXBvcnRzfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgTk9fREVDT1JBVE9SUyA9IG5ldyBTZXQ8dHMuRGVjb3JhdG9yPigpO1xuXG5jb25zdCBDTE9TVVJFX0ZJTEVfT1ZFUlZJRVdfUkVHRVhQID0gL1xccytAZmlsZW92ZXJ2aWV3XFxzKy9pO1xuXG4vKipcbiAqIE1ldGFkYXRhIHRvIHN1cHBvcnQgQGZpbGVvdmVydmlldyBibG9ja3MgKENsb3N1cmUgYW5ub3RhdGlvbnMpIGV4dHJhY3RpbmcvcmVzdG9yaW5nLlxuICovXG5pbnRlcmZhY2UgRmlsZU92ZXJ2aWV3TWV0YSB7XG4gIGNvbW1lbnRzOiB0cy5TeW50aGVzaXplZENvbW1lbnRbXTtcbiAgaG9zdDogdHMuU3RhdGVtZW50O1xuICB0cmFpbGluZzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGl2eVRyYW5zZm9ybUZhY3RvcnkoXG4gICAgY29tcGlsYXRpb246IFRyYWl0Q29tcGlsZXIsIHJlZmxlY3RvcjogUmVmbGVjdGlvbkhvc3QsIGltcG9ydFJld3JpdGVyOiBJbXBvcnRSZXdyaXRlcixcbiAgICBkZWZhdWx0SW1wb3J0VHJhY2tlcjogRGVmYXVsdEltcG9ydFRyYWNrZXIsIHBlcmY6IFBlcmZSZWNvcmRlciwgaXNDb3JlOiBib29sZWFuLFxuICAgIGlzQ2xvc3VyZUNvbXBpbGVyRW5hYmxlZDogYm9vbGVhbik6IHRzLlRyYW5zZm9ybWVyRmFjdG9yeTx0cy5Tb3VyY2VGaWxlPiB7XG4gIGNvbnN0IHJlY29yZFdyYXBwZWROb2RlID0gY3JlYXRlUmVjb3JkZXJGbihkZWZhdWx0SW1wb3J0VHJhY2tlcik7XG4gIHJldHVybiAoY29udGV4dDogdHMuVHJhbnNmb3JtYXRpb25Db250ZXh0KTogdHMuVHJhbnNmb3JtZXI8dHMuU291cmNlRmlsZT4gPT4ge1xuICAgIHJldHVybiAoZmlsZTogdHMuU291cmNlRmlsZSk6IHRzLlNvdXJjZUZpbGUgPT4ge1xuICAgICAgcmV0dXJuIHBlcmYuaW5QaGFzZShcbiAgICAgICAgICBQZXJmUGhhc2UuQ29tcGlsZSxcbiAgICAgICAgICAoKSA9PiB0cmFuc2Zvcm1JdnlTb3VyY2VGaWxlKFxuICAgICAgICAgICAgICBjb21waWxhdGlvbiwgY29udGV4dCwgcmVmbGVjdG9yLCBpbXBvcnRSZXdyaXRlciwgZmlsZSwgaXNDb3JlLFxuICAgICAgICAgICAgICBpc0Nsb3N1cmVDb21waWxlckVuYWJsZWQsIHJlY29yZFdyYXBwZWROb2RlKSk7XG4gICAgfTtcbiAgfTtcbn1cblxuLyoqXG4gKiBWaXNpdHMgYWxsIGNsYXNzZXMsIHBlcmZvcm1zIEl2eSBjb21waWxhdGlvbiB3aGVyZSBBbmd1bGFyIGRlY29yYXRvcnMgYXJlIHByZXNlbnQgYW5kIGNvbGxlY3RzXG4gKiByZXN1bHQgaW4gYSBNYXAgdGhhdCBhc3NvY2lhdGVzIGEgdHMuQ2xhc3NEZWNsYXJhdGlvbiB3aXRoIEl2eSBjb21waWxhdGlvbiByZXN1bHRzLiBUaGlzIHZpc2l0b3JcbiAqIGRvZXMgTk9UIHBlcmZvcm0gYW55IFRTIHRyYW5zZm9ybWF0aW9ucy5cbiAqL1xuY2xhc3MgSXZ5Q29tcGlsYXRpb25WaXNpdG9yIGV4dGVuZHMgVmlzaXRvciB7XG4gIHB1YmxpYyBjbGFzc0NvbXBpbGF0aW9uTWFwID0gbmV3IE1hcDx0cy5DbGFzc0RlY2xhcmF0aW9uLCBDb21waWxlUmVzdWx0W10+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb21waWxhdGlvbjogVHJhaXRDb21waWxlciwgcHJpdmF0ZSBjb25zdGFudFBvb2w6IENvbnN0YW50UG9vbCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBvdmVycmlkZSB2aXNpdENsYXNzRGVjbGFyYXRpb24obm9kZTogdHMuQ2xhc3NEZWNsYXJhdGlvbik6XG4gICAgICBWaXNpdExpc3RFbnRyeVJlc3VsdDx0cy5TdGF0ZW1lbnQsIHRzLkNsYXNzRGVjbGFyYXRpb24+IHtcbiAgICAvLyBEZXRlcm1pbmUgaWYgdGhpcyBjbGFzcyBoYXMgYW4gSXZ5IGZpZWxkIHRoYXQgbmVlZHMgdG8gYmUgYWRkZWQsIGFuZCBjb21waWxlIHRoZSBmaWVsZFxuICAgIC8vIHRvIGFuIGV4cHJlc3Npb24gaWYgc28uXG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5jb21waWxhdGlvbi5jb21waWxlKG5vZGUsIHRoaXMuY29uc3RhbnRQb29sKTtcbiAgICBpZiAocmVzdWx0ICE9PSBudWxsKSB7XG4gICAgICB0aGlzLmNsYXNzQ29tcGlsYXRpb25NYXAuc2V0KG5vZGUsIHJlc3VsdCk7XG4gICAgfVxuICAgIHJldHVybiB7bm9kZX07XG4gIH1cbn1cblxuLyoqXG4gKiBWaXNpdHMgYWxsIGNsYXNzZXMgYW5kIHBlcmZvcm1zIHRyYW5zZm9ybWF0aW9uIG9mIGNvcnJlc3BvbmRpbmcgVFMgbm9kZXMgYmFzZWQgb24gdGhlIEl2eVxuICogY29tcGlsYXRpb24gcmVzdWx0cyAocHJvdmlkZWQgYXMgYW4gYXJndW1lbnQpLlxuICovXG5jbGFzcyBJdnlUcmFuc2Zvcm1hdGlvblZpc2l0b3IgZXh0ZW5kcyBWaXNpdG9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGNvbXBpbGF0aW9uOiBUcmFpdENvbXBpbGVyLFxuICAgICAgcHJpdmF0ZSBjbGFzc0NvbXBpbGF0aW9uTWFwOiBNYXA8dHMuQ2xhc3NEZWNsYXJhdGlvbiwgQ29tcGlsZVJlc3VsdFtdPixcbiAgICAgIHByaXZhdGUgcmVmbGVjdG9yOiBSZWZsZWN0aW9uSG9zdCwgcHJpdmF0ZSBpbXBvcnRNYW5hZ2VyOiBJbXBvcnRNYW5hZ2VyLFxuICAgICAgcHJpdmF0ZSByZWNvcmRXcmFwcGVkTm9kZUV4cHI6IFJlY29yZFdyYXBwZWROb2RlRm48dHMuRXhwcmVzc2lvbj4sXG4gICAgICBwcml2YXRlIGlzQ2xvc3VyZUNvbXBpbGVyRW5hYmxlZDogYm9vbGVhbiwgcHJpdmF0ZSBpc0NvcmU6IGJvb2xlYW4pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgdmlzaXRDbGFzc0RlY2xhcmF0aW9uKG5vZGU6IHRzLkNsYXNzRGVjbGFyYXRpb24pOlxuICAgICAgVmlzaXRMaXN0RW50cnlSZXN1bHQ8dHMuU3RhdGVtZW50LCB0cy5DbGFzc0RlY2xhcmF0aW9uPiB7XG4gICAgLy8gSWYgdGhpcyBjbGFzcyBpcyBub3QgcmVnaXN0ZXJlZCBpbiB0aGUgbWFwLCBpdCBtZWFucyB0aGF0IGl0IGRvZXNuJ3QgaGF2ZSBBbmd1bGFyIGRlY29yYXRvcnMsXG4gICAgLy8gdGh1cyBubyBmdXJ0aGVyIHByb2Nlc3NpbmcgaXMgcmVxdWlyZWQuXG4gICAgaWYgKCF0aGlzLmNsYXNzQ29tcGlsYXRpb25NYXAuaGFzKG5vZGUpKSB7XG4gICAgICByZXR1cm4ge25vZGV9O1xuICAgIH1cblxuICAgIGNvbnN0IHRyYW5zbGF0ZU9wdGlvbnM6IFRyYW5zbGF0b3JPcHRpb25zPHRzLkV4cHJlc3Npb24+ID0ge1xuICAgICAgcmVjb3JkV3JhcHBlZE5vZGU6IHRoaXMucmVjb3JkV3JhcHBlZE5vZGVFeHByLFxuICAgICAgYW5ub3RhdGVGb3JDbG9zdXJlQ29tcGlsZXI6IHRoaXMuaXNDbG9zdXJlQ29tcGlsZXJFbmFibGVkLFxuICAgIH07XG5cbiAgICAvLyBUaGVyZSBpcyBhdCBsZWFzdCBvbmUgZmllbGQgdG8gYWRkLlxuICAgIGNvbnN0IHN0YXRlbWVudHM6IHRzLlN0YXRlbWVudFtdID0gW107XG4gICAgY29uc3QgbWVtYmVycyA9IFsuLi5ub2RlLm1lbWJlcnNdO1xuXG4gICAgZm9yIChjb25zdCBmaWVsZCBvZiB0aGlzLmNsYXNzQ29tcGlsYXRpb25NYXAuZ2V0KG5vZGUpISkge1xuICAgICAgLy8gVHJhbnNsYXRlIHRoZSBpbml0aWFsaXplciBmb3IgdGhlIGZpZWxkIGludG8gVFMgbm9kZXMuXG4gICAgICBjb25zdCBleHByTm9kZSA9IHRyYW5zbGF0ZUV4cHJlc3Npb24oZmllbGQuaW5pdGlhbGl6ZXIsIHRoaXMuaW1wb3J0TWFuYWdlciwgdHJhbnNsYXRlT3B0aW9ucyk7XG5cbiAgICAgIC8vIENyZWF0ZSBhIHN0YXRpYyBwcm9wZXJ0eSBkZWNsYXJhdGlvbiBmb3IgdGhlIG5ldyBmaWVsZC5cbiAgICAgIGNvbnN0IHByb3BlcnR5ID0gdHMuY3JlYXRlUHJvcGVydHkoXG4gICAgICAgICAgdW5kZWZpbmVkLCBbdHMuY3JlYXRlVG9rZW4odHMuU3ludGF4S2luZC5TdGF0aWNLZXl3b3JkKV0sIGZpZWxkLm5hbWUsIHVuZGVmaW5lZCxcbiAgICAgICAgICB1bmRlZmluZWQsIGV4cHJOb2RlKTtcblxuICAgICAgaWYgKHRoaXMuaXNDbG9zdXJlQ29tcGlsZXJFbmFibGVkKSB7XG4gICAgICAgIC8vIENsb3N1cmUgY29tcGlsZXIgdHJhbnNmb3JtcyB0aGUgZm9ybSBgU2VydmljZS7JtXByb3YgPSBYYCBpbnRvIGBTZXJ2aWNlJMm1cHJvdiA9IFhgLiBUb1xuICAgICAgICAvLyBwcmV2ZW50IHRoaXMgdHJhbnNmb3JtYXRpb24sIHN1Y2ggYXNzaWdubWVudHMgbmVlZCB0byBiZSBhbm5vdGF0ZWQgd2l0aCBAbm9jb2xsYXBzZS5cbiAgICAgICAgLy8gTm90ZSB0aGF0IHRzaWNrbGUgaXMgdHlwaWNhbGx5IHJlc3BvbnNpYmxlIGZvciBhZGRpbmcgc3VjaCBhbm5vdGF0aW9ucywgaG93ZXZlciBpdFxuICAgICAgICAvLyBkb2Vzbid0IHlldCBoYW5kbGUgc3ludGhldGljIGZpZWxkcyBhZGRlZCBkdXJpbmcgb3RoZXIgdHJhbnNmb3JtYXRpb25zLlxuICAgICAgICB0cy5hZGRTeW50aGV0aWNMZWFkaW5nQ29tbWVudChcbiAgICAgICAgICAgIHByb3BlcnR5LCB0cy5TeW50YXhLaW5kLk11bHRpTGluZUNvbW1lbnRUcml2aWEsICcqIEBub2NvbGxhcHNlICcsXG4gICAgICAgICAgICAvKiBoYXNUcmFpbGluZ05ld0xpbmUgKi8gZmFsc2UpO1xuICAgICAgfVxuXG4gICAgICBmaWVsZC5zdGF0ZW1lbnRzLm1hcChzdG10ID0+IHRyYW5zbGF0ZVN0YXRlbWVudChzdG10LCB0aGlzLmltcG9ydE1hbmFnZXIsIHRyYW5zbGF0ZU9wdGlvbnMpKVxuICAgICAgICAgIC5mb3JFYWNoKHN0bXQgPT4gc3RhdGVtZW50cy5wdXNoKHN0bXQpKTtcblxuICAgICAgbWVtYmVycy5wdXNoKHByb3BlcnR5KTtcbiAgICB9XG5cbiAgICAvLyBSZXBsYWNlIHRoZSBjbGFzcyBkZWNsYXJhdGlvbiB3aXRoIGFuIHVwZGF0ZWQgdmVyc2lvbi5cbiAgICBub2RlID0gdHMudXBkYXRlQ2xhc3NEZWNsYXJhdGlvbihcbiAgICAgICAgbm9kZSxcbiAgICAgICAgLy8gUmVtb3ZlIHRoZSBkZWNvcmF0b3Igd2hpY2ggdHJpZ2dlcmVkIHRoaXMgY29tcGlsYXRpb24sIGxlYXZpbmcgdGhlIG90aGVycyBhbG9uZS5cbiAgICAgICAgbWF5YmVGaWx0ZXJEZWNvcmF0b3Iobm9kZS5kZWNvcmF0b3JzLCB0aGlzLmNvbXBpbGF0aW9uLmRlY29yYXRvcnNGb3Iobm9kZSkpLCBub2RlLm1vZGlmaWVycyxcbiAgICAgICAgbm9kZS5uYW1lLCBub2RlLnR5cGVQYXJhbWV0ZXJzLCBub2RlLmhlcml0YWdlQ2xhdXNlcyB8fCBbXSxcbiAgICAgICAgLy8gTWFwIG92ZXIgdGhlIGNsYXNzIG1lbWJlcnMgYW5kIHJlbW92ZSBhbnkgQW5ndWxhciBkZWNvcmF0b3JzIGZyb20gdGhlbS5cbiAgICAgICAgbWVtYmVycy5tYXAobWVtYmVyID0+IHRoaXMuX3N0cmlwQW5ndWxhckRlY29yYXRvcnMobWVtYmVyKSkpO1xuICAgIHJldHVybiB7bm9kZSwgYWZ0ZXI6IHN0YXRlbWVudHN9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbGwgZGVjb3JhdG9ycyBvbiBhIGBEZWNsYXJhdGlvbmAgd2hpY2ggYXJlIGZyb20gQGFuZ3VsYXIvY29yZSwgb3IgYW4gZW1wdHkgc2V0IGlmIG5vbmVcbiAgICogYXJlLlxuICAgKi9cbiAgcHJpdmF0ZSBfYW5ndWxhckNvcmVEZWNvcmF0b3JzKGRlY2w6IHRzLkRlY2xhcmF0aW9uKTogU2V0PHRzLkRlY29yYXRvcj4ge1xuICAgIGNvbnN0IGRlY29yYXRvcnMgPSB0aGlzLnJlZmxlY3Rvci5nZXREZWNvcmF0b3JzT2ZEZWNsYXJhdGlvbihkZWNsKTtcbiAgICBpZiAoZGVjb3JhdG9ycyA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIE5PX0RFQ09SQVRPUlM7XG4gICAgfVxuICAgIGNvbnN0IGNvcmVEZWNvcmF0b3JzID0gZGVjb3JhdG9ycy5maWx0ZXIoZGVjID0+IHRoaXMuaXNDb3JlIHx8IGlzRnJvbUFuZ3VsYXJDb3JlKGRlYykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcChkZWMgPT4gZGVjLm5vZGUgYXMgdHMuRGVjb3JhdG9yKTtcbiAgICBpZiAoY29yZURlY29yYXRvcnMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIG5ldyBTZXQ8dHMuRGVjb3JhdG9yPihjb3JlRGVjb3JhdG9ycyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBOT19ERUNPUkFUT1JTO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHaXZlbiBhIGB0cy5Ob2RlYCwgZmlsdGVyIHRoZSBkZWNvcmF0b3JzIGFycmF5IGFuZCByZXR1cm4gYSB2ZXJzaW9uIGNvbnRhaW5pbmcgb25seSBub24tQW5ndWxhclxuICAgKiBkZWNvcmF0b3JzLlxuICAgKlxuICAgKiBJZiBhbGwgZGVjb3JhdG9ycyBhcmUgcmVtb3ZlZCAob3Igbm9uZSBleGlzdGVkIGluIHRoZSBmaXJzdCBwbGFjZSksIHRoaXMgbWV0aG9kIHJldHVybnNcbiAgICogYHVuZGVmaW5lZGAuXG4gICAqL1xuICBwcml2YXRlIF9ub25Db3JlRGVjb3JhdG9yc09ubHkobm9kZTogdHMuRGVjbGFyYXRpb24pOiB0cy5Ob2RlQXJyYXk8dHMuRGVjb3JhdG9yPnx1bmRlZmluZWQge1xuICAgIC8vIFNob3J0Y3V0IGlmIHRoZSBub2RlIGhhcyBubyBkZWNvcmF0b3JzLlxuICAgIGlmIChub2RlLmRlY29yYXRvcnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgLy8gQnVpbGQgYSBTZXQgb2YgdGhlIGRlY29yYXRvcnMgb24gdGhpcyBub2RlIGZyb20gQGFuZ3VsYXIvY29yZS5cbiAgICBjb25zdCBjb3JlRGVjb3JhdG9ycyA9IHRoaXMuX2FuZ3VsYXJDb3JlRGVjb3JhdG9ycyhub2RlKTtcblxuICAgIGlmIChjb3JlRGVjb3JhdG9ycy5zaXplID09PSBub2RlLmRlY29yYXRvcnMubGVuZ3RoKSB7XG4gICAgICAvLyBJZiBhbGwgZGVjb3JhdG9ycyBhcmUgdG8gYmUgcmVtb3ZlZCwgcmV0dXJuIGB1bmRlZmluZWRgLlxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9IGVsc2UgaWYgKGNvcmVEZWNvcmF0b3JzLnNpemUgPT09IDApIHtcbiAgICAgIC8vIElmIG5vIGRlY29yYXRvcnMgbmVlZCB0byBiZSByZW1vdmVkLCByZXR1cm4gdGhlIG9yaWdpbmFsIGRlY29yYXRvcnMgYXJyYXkuXG4gICAgICByZXR1cm4gbm9kZS5kZWNvcmF0b3JzO1xuICAgIH1cblxuICAgIC8vIEZpbHRlciBvdXQgdGhlIGNvcmUgZGVjb3JhdG9ycy5cbiAgICBjb25zdCBmaWx0ZXJlZCA9IG5vZGUuZGVjb3JhdG9ycy5maWx0ZXIoZGVjID0+ICFjb3JlRGVjb3JhdG9ycy5oYXMoZGVjKSk7XG5cbiAgICAvLyBJZiBubyBkZWNvcmF0b3JzIHN1cnZpdmUsIHJldHVybiBgdW5kZWZpbmVkYC4gVGhpcyBjYW4gb25seSBoYXBwZW4gaWYgYSBjb3JlIGRlY29yYXRvciBpc1xuICAgIC8vIHJlcGVhdGVkIG9uIHRoZSBub2RlLlxuICAgIGlmIChmaWx0ZXJlZC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIGEgbmV3IGBOb2RlQXJyYXlgIHdpdGggdGhlIGZpbHRlcmVkIGRlY29yYXRvcnMgdGhhdCBzb3VyY2VtYXBzIGJhY2sgdG8gdGhlIG9yaWdpbmFsLlxuICAgIGNvbnN0IGFycmF5ID0gdHMuY3JlYXRlTm9kZUFycmF5KGZpbHRlcmVkKTtcbiAgICAoYXJyYXkucG9zIGFzIG51bWJlcikgPSBub2RlLmRlY29yYXRvcnMucG9zO1xuICAgIChhcnJheS5lbmQgYXMgbnVtYmVyKSA9IG5vZGUuZGVjb3JhdG9ycy5lbmQ7XG4gICAgcmV0dXJuIGFycmF5O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBBbmd1bGFyIGRlY29yYXRvcnMgZnJvbSBhIGB0cy5Ob2RlYCBpbiBhIHNoYWxsb3cgbWFubmVyLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgcmVtb3ZlIGRlY29yYXRvcnMgZnJvbSBjbGFzcyBlbGVtZW50cyAoZ2V0dGVycywgc2V0dGVycywgcHJvcGVydGllcywgbWV0aG9kcykgYXMgd2VsbFxuICAgKiBhcyBwYXJhbWV0ZXJzIG9mIGNvbnN0cnVjdG9ycy5cbiAgICovXG4gIHByaXZhdGUgX3N0cmlwQW5ndWxhckRlY29yYXRvcnM8VCBleHRlbmRzIHRzLk5vZGU+KG5vZGU6IFQpOiBUIHtcbiAgICBpZiAodHMuaXNQYXJhbWV0ZXIobm9kZSkpIHtcbiAgICAgIC8vIFN0cmlwIGRlY29yYXRvcnMgZnJvbSBwYXJhbWV0ZXJzIChwcm9iYWJseSBvZiB0aGUgY29uc3RydWN0b3IpLlxuICAgICAgbm9kZSA9IHRzLnVwZGF0ZVBhcmFtZXRlcihcbiAgICAgICAgICAgICAgICAgbm9kZSwgdGhpcy5fbm9uQ29yZURlY29yYXRvcnNPbmx5KG5vZGUpLCBub2RlLm1vZGlmaWVycywgbm9kZS5kb3REb3REb3RUb2tlbixcbiAgICAgICAgICAgICAgICAgbm9kZS5uYW1lLCBub2RlLnF1ZXN0aW9uVG9rZW4sIG5vZGUudHlwZSwgbm9kZS5pbml0aWFsaXplcikgYXMgVCAmXG4gICAgICAgICAgdHMuUGFyYW1ldGVyRGVjbGFyYXRpb247XG4gICAgfSBlbHNlIGlmICh0cy5pc01ldGhvZERlY2xhcmF0aW9uKG5vZGUpICYmIG5vZGUuZGVjb3JhdG9ycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBTdHJpcCBkZWNvcmF0b3JzIG9mIG1ldGhvZHMuXG4gICAgICBub2RlID0gdHMudXBkYXRlTWV0aG9kKFxuICAgICAgICAgICAgICAgICBub2RlLCB0aGlzLl9ub25Db3JlRGVjb3JhdG9yc09ubHkobm9kZSksIG5vZGUubW9kaWZpZXJzLCBub2RlLmFzdGVyaXNrVG9rZW4sXG4gICAgICAgICAgICAgICAgIG5vZGUubmFtZSwgbm9kZS5xdWVzdGlvblRva2VuLCBub2RlLnR5cGVQYXJhbWV0ZXJzLCBub2RlLnBhcmFtZXRlcnMsIG5vZGUudHlwZSxcbiAgICAgICAgICAgICAgICAgbm9kZS5ib2R5KSBhcyBUICZcbiAgICAgICAgICB0cy5NZXRob2REZWNsYXJhdGlvbjtcbiAgICB9IGVsc2UgaWYgKHRzLmlzUHJvcGVydHlEZWNsYXJhdGlvbihub2RlKSAmJiBub2RlLmRlY29yYXRvcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gU3RyaXAgZGVjb3JhdG9ycyBvZiBwcm9wZXJ0aWVzLlxuICAgICAgbm9kZSA9IHRzLnVwZGF0ZVByb3BlcnR5KFxuICAgICAgICAgICAgICAgICBub2RlLCB0aGlzLl9ub25Db3JlRGVjb3JhdG9yc09ubHkobm9kZSksIG5vZGUubW9kaWZpZXJzLCBub2RlLm5hbWUsXG4gICAgICAgICAgICAgICAgIG5vZGUucXVlc3Rpb25Ub2tlbiwgbm9kZS50eXBlLCBub2RlLmluaXRpYWxpemVyKSBhcyBUICZcbiAgICAgICAgICB0cy5Qcm9wZXJ0eURlY2xhcmF0aW9uO1xuICAgIH0gZWxzZSBpZiAodHMuaXNHZXRBY2Nlc3Nvcihub2RlKSkge1xuICAgICAgLy8gU3RyaXAgZGVjb3JhdG9ycyBvZiBnZXR0ZXJzLlxuICAgICAgbm9kZSA9IHRzLnVwZGF0ZUdldEFjY2Vzc29yKFxuICAgICAgICAgICAgICAgICBub2RlLCB0aGlzLl9ub25Db3JlRGVjb3JhdG9yc09ubHkobm9kZSksIG5vZGUubW9kaWZpZXJzLCBub2RlLm5hbWUsXG4gICAgICAgICAgICAgICAgIG5vZGUucGFyYW1ldGVycywgbm9kZS50eXBlLCBub2RlLmJvZHkpIGFzIFQgJlxuICAgICAgICAgIHRzLkdldEFjY2Vzc29yRGVjbGFyYXRpb247XG4gICAgfSBlbHNlIGlmICh0cy5pc1NldEFjY2Vzc29yKG5vZGUpKSB7XG4gICAgICAvLyBTdHJpcCBkZWNvcmF0b3JzIG9mIHNldHRlcnMuXG4gICAgICBub2RlID0gdHMudXBkYXRlU2V0QWNjZXNzb3IoXG4gICAgICAgICAgICAgICAgIG5vZGUsIHRoaXMuX25vbkNvcmVEZWNvcmF0b3JzT25seShub2RlKSwgbm9kZS5tb2RpZmllcnMsIG5vZGUubmFtZSxcbiAgICAgICAgICAgICAgICAgbm9kZS5wYXJhbWV0ZXJzLCBub2RlLmJvZHkpIGFzIFQgJlxuICAgICAgICAgIHRzLlNldEFjY2Vzc29yRGVjbGFyYXRpb247XG4gICAgfSBlbHNlIGlmICh0cy5pc0NvbnN0cnVjdG9yRGVjbGFyYXRpb24obm9kZSkpIHtcbiAgICAgIC8vIEZvciBjb25zdHJ1Y3RvcnMsIHN0cmlwIGRlY29yYXRvcnMgb2YgdGhlIHBhcmFtZXRlcnMuXG4gICAgICBjb25zdCBwYXJhbWV0ZXJzID0gbm9kZS5wYXJhbWV0ZXJzLm1hcChwYXJhbSA9PiB0aGlzLl9zdHJpcEFuZ3VsYXJEZWNvcmF0b3JzKHBhcmFtKSk7XG4gICAgICBub2RlID1cbiAgICAgICAgICB0cy51cGRhdGVDb25zdHJ1Y3Rvcihub2RlLCBub2RlLmRlY29yYXRvcnMsIG5vZGUubW9kaWZpZXJzLCBwYXJhbWV0ZXJzLCBub2RlLmJvZHkpIGFzIFQgJlxuICAgICAgICAgIHRzLkNvbnN0cnVjdG9yRGVjbGFyYXRpb247XG4gICAgfVxuICAgIHJldHVybiBub2RlO1xuICB9XG59XG5cbi8qKlxuICogQSB0cmFuc2Zvcm1lciB3aGljaCBvcGVyYXRlcyBvbiB0cy5Tb3VyY2VGaWxlcyBhbmQgYXBwbGllcyBjaGFuZ2VzIGZyb20gYW4gYEl2eUNvbXBpbGF0aW9uYC5cbiAqL1xuZnVuY3Rpb24gdHJhbnNmb3JtSXZ5U291cmNlRmlsZShcbiAgICBjb21waWxhdGlvbjogVHJhaXRDb21waWxlciwgY29udGV4dDogdHMuVHJhbnNmb3JtYXRpb25Db250ZXh0LCByZWZsZWN0b3I6IFJlZmxlY3Rpb25Ib3N0LFxuICAgIGltcG9ydFJld3JpdGVyOiBJbXBvcnRSZXdyaXRlciwgZmlsZTogdHMuU291cmNlRmlsZSwgaXNDb3JlOiBib29sZWFuLFxuICAgIGlzQ2xvc3VyZUNvbXBpbGVyRW5hYmxlZDogYm9vbGVhbixcbiAgICByZWNvcmRXcmFwcGVkTm9kZTogUmVjb3JkV3JhcHBlZE5vZGVGbjx0cy5FeHByZXNzaW9uPik6IHRzLlNvdXJjZUZpbGUge1xuICBjb25zdCBjb25zdGFudFBvb2wgPSBuZXcgQ29uc3RhbnRQb29sKGlzQ2xvc3VyZUNvbXBpbGVyRW5hYmxlZCk7XG4gIGNvbnN0IGltcG9ydE1hbmFnZXIgPSBuZXcgSW1wb3J0TWFuYWdlcihpbXBvcnRSZXdyaXRlcik7XG5cbiAgLy8gVGhlIHRyYW5zZm9ybWF0aW9uIHByb2Nlc3MgY29uc2lzdHMgb2YgMiBzdGVwczpcbiAgLy9cbiAgLy8gIDEuIFZpc2l0IGFsbCBjbGFzc2VzLCBwZXJmb3JtIGNvbXBpbGF0aW9uIGFuZCBjb2xsZWN0IHRoZSByZXN1bHRzLlxuICAvLyAgMi4gUGVyZm9ybSBhY3R1YWwgdHJhbnNmb3JtYXRpb24gb2YgcmVxdWlyZWQgVFMgbm9kZXMgdXNpbmcgY29tcGlsYXRpb24gcmVzdWx0cyBmcm9tIHRoZSBmaXJzdFxuICAvLyAgICAgc3RlcC5cbiAgLy9cbiAgLy8gVGhpcyBpcyBuZWVkZWQgdG8gaGF2ZSBhbGwgYG8uRXhwcmVzc2lvbmBzIGdlbmVyYXRlZCBiZWZvcmUgYW55IFRTIHRyYW5zZm9ybXMgaGFwcGVuLiBUaGlzXG4gIC8vIGFsbG93cyBgQ29uc3RhbnRQb29sYCB0byBwcm9wZXJseSBpZGVudGlmeSBleHByZXNzaW9ucyB0aGF0IGNhbiBiZSBzaGFyZWQgYWNyb3NzIG11bHRpcGxlXG4gIC8vIGNvbXBvbmVudHMgZGVjbGFyZWQgaW4gdGhlIHNhbWUgZmlsZS5cblxuICAvLyBTdGVwIDEuIEdvIHRob3VnaCBhbGwgY2xhc3NlcyBpbiBBU1QsIHBlcmZvcm0gY29tcGlsYXRpb24gYW5kIGNvbGxlY3QgdGhlIHJlc3VsdHMuXG4gIGNvbnN0IGNvbXBpbGF0aW9uVmlzaXRvciA9IG5ldyBJdnlDb21waWxhdGlvblZpc2l0b3IoY29tcGlsYXRpb24sIGNvbnN0YW50UG9vbCk7XG4gIHZpc2l0KGZpbGUsIGNvbXBpbGF0aW9uVmlzaXRvciwgY29udGV4dCk7XG5cbiAgLy8gU3RlcCAyLiBTY2FuIHRocm91Z2ggdGhlIEFTVCBhZ2FpbiBhbmQgcGVyZm9ybSB0cmFuc2Zvcm1hdGlvbnMgYmFzZWQgb24gSXZ5IGNvbXBpbGF0aW9uXG4gIC8vIHJlc3VsdHMgb2J0YWluZWQgYXQgU3RlcCAxLlxuICBjb25zdCB0cmFuc2Zvcm1hdGlvblZpc2l0b3IgPSBuZXcgSXZ5VHJhbnNmb3JtYXRpb25WaXNpdG9yKFxuICAgICAgY29tcGlsYXRpb24sIGNvbXBpbGF0aW9uVmlzaXRvci5jbGFzc0NvbXBpbGF0aW9uTWFwLCByZWZsZWN0b3IsIGltcG9ydE1hbmFnZXIsXG4gICAgICByZWNvcmRXcmFwcGVkTm9kZSwgaXNDbG9zdXJlQ29tcGlsZXJFbmFibGVkLCBpc0NvcmUpO1xuICBsZXQgc2YgPSB2aXNpdChmaWxlLCB0cmFuc2Zvcm1hdGlvblZpc2l0b3IsIGNvbnRleHQpO1xuXG4gIC8vIEdlbmVyYXRlIHRoZSBjb25zdGFudCBzdGF0ZW1lbnRzIGZpcnN0LCBhcyB0aGV5IG1heSBpbnZvbHZlIGFkZGluZyBhZGRpdGlvbmFsIGltcG9ydHNcbiAgLy8gdG8gdGhlIEltcG9ydE1hbmFnZXIuXG4gIGNvbnN0IGRvd25sZXZlbFRyYW5zbGF0ZWRDb2RlID0gZ2V0TG9jYWxpemVDb21waWxlVGFyZ2V0KGNvbnRleHQpIDwgdHMuU2NyaXB0VGFyZ2V0LkVTMjAxNTtcbiAgY29uc3QgY29uc3RhbnRzID1cbiAgICAgIGNvbnN0YW50UG9vbC5zdGF0ZW1lbnRzLm1hcChzdG10ID0+IHRyYW5zbGF0ZVN0YXRlbWVudChzdG10LCBpbXBvcnRNYW5hZ2VyLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmRXcmFwcGVkTm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvd25sZXZlbFRhZ2dlZFRlbXBsYXRlczogZG93bmxldmVsVHJhbnNsYXRlZENvZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3dubGV2ZWxWYXJpYWJsZURlY2xhcmF0aW9uczogZG93bmxldmVsVHJhbnNsYXRlZENvZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm5vdGF0ZUZvckNsb3N1cmVDb21waWxlcjogaXNDbG9zdXJlQ29tcGlsZXJFbmFibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcblxuICAvLyBQcmVzZXJ2ZSBAZmlsZW92ZXJ2aWV3IGNvbW1lbnRzIHJlcXVpcmVkIGJ5IENsb3N1cmUsIHNpbmNlIHRoZSBsb2NhdGlvbiBtaWdodCBjaGFuZ2UgYXMgYVxuICAvLyByZXN1bHQgb2YgYWRkaW5nIGV4dHJhIGltcG9ydHMgYW5kIGNvbnN0YW50IHBvb2wgc3RhdGVtZW50cy5cbiAgY29uc3QgZmlsZU92ZXJ2aWV3TWV0YSA9IGlzQ2xvc3VyZUNvbXBpbGVyRW5hYmxlZCA/IGdldEZpbGVPdmVydmlld0NvbW1lbnQoc2Yuc3RhdGVtZW50cykgOiBudWxsO1xuXG4gIC8vIEFkZCBuZXcgaW1wb3J0cyBmb3IgdGhpcyBmaWxlLlxuICBzZiA9IGFkZEltcG9ydHMoaW1wb3J0TWFuYWdlciwgc2YsIGNvbnN0YW50cyk7XG5cbiAgaWYgKGZpbGVPdmVydmlld01ldGEgIT09IG51bGwpIHtcbiAgICBzZXRGaWxlT3ZlcnZpZXdDb21tZW50KHNmLCBmaWxlT3ZlcnZpZXdNZXRhKTtcbiAgfVxuXG4gIHJldHVybiBzZjtcbn1cblxuLyoqXG4gKiBDb21wdXRlIHRoZSBjb3JyZWN0IHRhcmdldCBvdXRwdXQgZm9yIGAkbG9jYWxpemVgIG1lc3NhZ2VzIGdlbmVyYXRlZCBieSBBbmd1bGFyXG4gKlxuICogSW4gc29tZSB2ZXJzaW9ucyBvZiBUeXBlU2NyaXB0LCB0aGUgdHJhbnNmb3JtYXRpb24gb2Ygc3ludGhldGljIGAkbG9jYWxpemVgIHRhZ2dlZCB0ZW1wbGF0ZVxuICogbGl0ZXJhbHMgaXMgYnJva2VuLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy8zODQ4NVxuICpcbiAqIEhlcmUgd2UgY29tcHV0ZSB3aGF0IHRoZSBleHBlY3RlZCBmaW5hbCBvdXRwdXQgdGFyZ2V0IG9mIHRoZSBjb21waWxhdGlvbiB3aWxsXG4gKiBiZSBzbyB0aGF0IHdlIGNhbiBnZW5lcmF0ZSBFUzUgY29tcGxpYW50IGAkbG9jYWxpemVgIGNhbGxzIGluc3RlYWQgb2YgcmVseWluZyB1cG9uIFRTIHRvIGRvIHRoZVxuICogZG93bmxldmVsaW5nIGZvciB1cy5cbiAqL1xuZnVuY3Rpb24gZ2V0TG9jYWxpemVDb21waWxlVGFyZ2V0KGNvbnRleHQ6IHRzLlRyYW5zZm9ybWF0aW9uQ29udGV4dCk6XG4gICAgRXhjbHVkZTx0cy5TY3JpcHRUYXJnZXQsIHRzLlNjcmlwdFRhcmdldC5KU09OPiB7XG4gIGNvbnN0IHRhcmdldCA9IGNvbnRleHQuZ2V0Q29tcGlsZXJPcHRpb25zKCkudGFyZ2V0IHx8IHRzLlNjcmlwdFRhcmdldC5FUzIwMTU7XG4gIHJldHVybiB0YXJnZXQgIT09IHRzLlNjcmlwdFRhcmdldC5KU09OID8gdGFyZ2V0IDogdHMuU2NyaXB0VGFyZ2V0LkVTMjAxNTtcbn1cblxuZnVuY3Rpb24gZ2V0RmlsZU92ZXJ2aWV3Q29tbWVudChzdGF0ZW1lbnRzOiB0cy5Ob2RlQXJyYXk8dHMuU3RhdGVtZW50Pik6IEZpbGVPdmVydmlld01ldGF8bnVsbCB7XG4gIGlmIChzdGF0ZW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBob3N0ID0gc3RhdGVtZW50c1swXTtcbiAgICBsZXQgdHJhaWxpbmcgPSBmYWxzZTtcbiAgICBsZXQgY29tbWVudHMgPSB0cy5nZXRTeW50aGV0aWNMZWFkaW5nQ29tbWVudHMoaG9zdCk7XG4gICAgLy8gSWYgQGZpbGVvdmVydmlldyB0YWcgaXMgbm90IGZvdW5kIGluIHNvdXJjZSBmaWxlLCB0c2lja2xlIHByb2R1Y2VzIGZha2Ugbm9kZSB3aXRoIHRyYWlsaW5nXG4gICAgLy8gY29tbWVudCBhbmQgaW5qZWN0IGl0IGF0IHRoZSB2ZXJ5IGJlZ2lubmluZyBvZiB0aGUgZ2VuZXJhdGVkIGZpbGUuIFNvIHdlIG5lZWQgdG8gY2hlY2sgZm9yXG4gICAgLy8gbGVhZGluZyBhcyB3ZWxsIGFzIHRyYWlsaW5nIGNvbW1lbnRzLlxuICAgIGlmICghY29tbWVudHMgfHwgY29tbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0cmFpbGluZyA9IHRydWU7XG4gICAgICBjb21tZW50cyA9IHRzLmdldFN5bnRoZXRpY1RyYWlsaW5nQ29tbWVudHMoaG9zdCk7XG4gICAgfVxuICAgIGlmIChjb21tZW50cyAmJiBjb21tZW50cy5sZW5ndGggPiAwICYmIENMT1NVUkVfRklMRV9PVkVSVklFV19SRUdFWFAudGVzdChjb21tZW50c1swXS50ZXh0KSkge1xuICAgICAgcmV0dXJuIHtjb21tZW50cywgaG9zdCwgdHJhaWxpbmd9O1xuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gc2V0RmlsZU92ZXJ2aWV3Q29tbWVudChzZjogdHMuU291cmNlRmlsZSwgZmlsZW92ZXJ2aWV3OiBGaWxlT3ZlcnZpZXdNZXRhKTogdm9pZCB7XG4gIGNvbnN0IHtjb21tZW50cywgaG9zdCwgdHJhaWxpbmd9ID0gZmlsZW92ZXJ2aWV3O1xuICAvLyBJZiBob3N0IHN0YXRlbWVudCBpcyBubyBsb25nZXIgdGhlIGZpcnN0IG9uZSwgaXQgbWVhbnMgdGhhdCBleHRyYSBzdGF0ZW1lbnRzIHdlcmUgYWRkZWQgYXQgdGhlXG4gIC8vIHZlcnkgYmVnaW5uaW5nLCBzbyB3ZSBuZWVkIHRvIHJlbG9jYXRlIEBmaWxlb3ZlcnZpZXcgY29tbWVudCBhbmQgY2xlYW51cCB0aGUgb3JpZ2luYWwgc3RhdGVtZW50XG4gIC8vIHRoYXQgaG9zdGVkIGl0LlxuICBpZiAoc2Yuc3RhdGVtZW50cy5sZW5ndGggPiAwICYmIGhvc3QgIT09IHNmLnN0YXRlbWVudHNbMF0pIHtcbiAgICBpZiAodHJhaWxpbmcpIHtcbiAgICAgIHRzLnNldFN5bnRoZXRpY1RyYWlsaW5nQ29tbWVudHMoaG9zdCwgdW5kZWZpbmVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdHMuc2V0U3ludGhldGljTGVhZGluZ0NvbW1lbnRzKGhvc3QsIHVuZGVmaW5lZCk7XG4gICAgfVxuICAgIHRzLnNldFN5bnRoZXRpY0xlYWRpbmdDb21tZW50cyhzZi5zdGF0ZW1lbnRzWzBdLCBjb21tZW50cyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWF5YmVGaWx0ZXJEZWNvcmF0b3IoXG4gICAgZGVjb3JhdG9yczogdHMuTm9kZUFycmF5PHRzLkRlY29yYXRvcj58dW5kZWZpbmVkLFxuICAgIHRvUmVtb3ZlOiB0cy5EZWNvcmF0b3JbXSk6IHRzLk5vZGVBcnJheTx0cy5EZWNvcmF0b3I+fHVuZGVmaW5lZCB7XG4gIGlmIChkZWNvcmF0b3JzID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IGZpbHRlcmVkID0gZGVjb3JhdG9ycy5maWx0ZXIoXG4gICAgICBkZWMgPT4gdG9SZW1vdmUuZmluZChkZWNUb1JlbW92ZSA9PiB0cy5nZXRPcmlnaW5hbE5vZGUoZGVjKSA9PT0gZGVjVG9SZW1vdmUpID09PSB1bmRlZmluZWQpO1xuICBpZiAoZmlsdGVyZWQubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICByZXR1cm4gdHMuY3JlYXRlTm9kZUFycmF5KGZpbHRlcmVkKTtcbn1cblxuZnVuY3Rpb24gaXNGcm9tQW5ndWxhckNvcmUoZGVjb3JhdG9yOiBEZWNvcmF0b3IpOiBib29sZWFuIHtcbiAgcmV0dXJuIGRlY29yYXRvci5pbXBvcnQgIT09IG51bGwgJiYgZGVjb3JhdG9yLmltcG9ydC5mcm9tID09PSAnQGFuZ3VsYXIvY29yZSc7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVJlY29yZGVyRm4oZGVmYXVsdEltcG9ydFRyYWNrZXI6IERlZmF1bHRJbXBvcnRUcmFja2VyKTpcbiAgICBSZWNvcmRXcmFwcGVkTm9kZUZuPHRzLkV4cHJlc3Npb24+IHtcbiAgcmV0dXJuIG5vZGUgPT4ge1xuICAgIGNvbnN0IGltcG9ydERlY2wgPSBnZXREZWZhdWx0SW1wb3J0RGVjbGFyYXRpb24obm9kZSk7XG4gICAgaWYgKGltcG9ydERlY2wgIT09IG51bGwpIHtcbiAgICAgIGRlZmF1bHRJbXBvcnRUcmFja2VyLnJlY29yZFVzZWRJbXBvcnQoaW1wb3J0RGVjbCk7XG4gICAgfVxuICB9O1xufVxuIl19
@@ -1,73 +0,0 @@
1
- (function (factory) {
2
- if (typeof module === "object" && typeof module.exports === "object") {
3
- var v = factory(require, exports);
4
- if (v !== undefined) module.exports = v;
5
- }
6
- else if (typeof define === "function" && define.amd) {
7
- define("@angular/compiler-cli/src/ngtsc/transform/src/utils", ["require", "exports", "tslib", "typescript"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.addImports = void 0;
13
- var tslib_1 = require("tslib");
14
- /**
15
- * @license
16
- * Copyright Google LLC All Rights Reserved.
17
- *
18
- * Use of this source code is governed by an MIT-style license that can be
19
- * found in the LICENSE file at https://angular.io/license
20
- */
21
- var ts = require("typescript");
22
- /**
23
- * Adds extra imports in the import manage for this source file, after the existing imports
24
- * and before the module body.
25
- * Can optionally add extra statements (e.g. new constants) before the body as well.
26
- */
27
- function addImports(importManager, sf, extraStatements) {
28
- if (extraStatements === void 0) { extraStatements = []; }
29
- // Generate the import statements to prepend.
30
- var addedImports = importManager.getAllImports(sf.fileName).map(function (i) {
31
- var qualifier = ts.createIdentifier(i.qualifier.text);
32
- var importClause = ts.createImportClause(
33
- /* name */ undefined,
34
- /* namedBindings */ ts.createNamespaceImport(qualifier));
35
- var decl = ts.createImportDeclaration(
36
- /* decorators */ undefined,
37
- /* modifiers */ undefined,
38
- /* importClause */ importClause,
39
- /* moduleSpecifier */ ts.createLiteral(i.specifier));
40
- // Set the qualifier's original TS node to the `ts.ImportDeclaration`. This allows downstream
41
- // transforms such as tsickle to properly process references to this import.
42
- //
43
- // This operation is load-bearing in g3 as some imported modules contain special metadata
44
- // generated by clutz, which tsickle uses to transform imports and references to those imports.
45
- //
46
- // TODO(alxhub): add a test for this when tsickle is updated externally to depend on this
47
- // behavior.
48
- ts.setOriginalNode(i.qualifier, decl);
49
- return decl;
50
- });
51
- // Filter out the existing imports and the source file body. All new statements
52
- // will be inserted between them.
53
- var existingImports = sf.statements.filter(function (stmt) { return isImportStatement(stmt); });
54
- var body = sf.statements.filter(function (stmt) { return !isImportStatement(stmt); });
55
- // Prepend imports if needed.
56
- if (addedImports.length > 0) {
57
- // If we prepend imports, we also prepend NotEmittedStatement to use it as an anchor
58
- // for @fileoverview Closure annotation. If there is no @fileoverview annotations, this
59
- // statement would be a noop.
60
- var fileoverviewAnchorStmt = ts.createNotEmittedStatement(sf);
61
- return ts.updateSourceFileNode(sf, ts.createNodeArray((0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([
62
- fileoverviewAnchorStmt
63
- ], (0, tslib_1.__read)(existingImports), false), (0, tslib_1.__read)(addedImports), false), (0, tslib_1.__read)(extraStatements), false), (0, tslib_1.__read)(body), false)));
64
- }
65
- return sf;
66
- }
67
- exports.addImports = addImports;
68
- function isImportStatement(stmt) {
69
- return ts.isImportDeclaration(stmt) || ts.isImportEqualsDeclaration(stmt) ||
70
- ts.isNamespaceImport(stmt);
71
- }
72
- });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL3RyYW5zZm9ybS9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztJQUFBOzs7Ozs7T0FNRztJQUNILCtCQUFpQztJQUlqQzs7OztPQUlHO0lBQ0gsU0FBZ0IsVUFBVSxDQUN0QixhQUE0QixFQUFFLEVBQWlCLEVBQy9DLGVBQW9DO1FBQXBDLGdDQUFBLEVBQUEsb0JBQW9DO1FBQ3RDLDZDQUE2QztRQUM3QyxJQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQSxDQUFDO1lBQ2pFLElBQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hELElBQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQyxrQkFBa0I7WUFDdEMsVUFBVSxDQUFDLFNBQVM7WUFDcEIsbUJBQW1CLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDN0QsSUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLHVCQUF1QjtZQUNuQyxnQkFBZ0IsQ0FBQyxTQUFTO1lBQzFCLGVBQWUsQ0FBQyxTQUFTO1lBQ3pCLGtCQUFrQixDQUFDLFlBQVk7WUFDL0IscUJBQXFCLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUV6RCw2RkFBNkY7WUFDN0YsNEVBQTRFO1lBQzVFLEVBQUU7WUFDRix5RkFBeUY7WUFDekYsK0ZBQStGO1lBQy9GLEVBQUU7WUFDRix5RkFBeUY7WUFDekYsWUFBWTtZQUNaLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUV0QyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO1FBRUgsK0VBQStFO1FBQy9FLGlDQUFpQztRQUNqQyxJQUFNLGVBQWUsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUF2QixDQUF1QixDQUFDLENBQUM7UUFDOUUsSUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUF4QixDQUF3QixDQUFDLENBQUM7UUFDcEUsNkJBQTZCO1FBQzdCLElBQUksWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDM0Isb0ZBQW9GO1lBQ3BGLHVGQUF1RjtZQUN2Riw2QkFBNkI7WUFDN0IsSUFBTSxzQkFBc0IsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEUsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxlQUFlO2dCQUNuRCxzQkFBc0I7bUNBQUssZUFBZSwrQkFBSyxZQUFZLCtCQUFLLGVBQWUsK0JBQUssSUFBSSxVQUN4RixDQUFDLENBQUM7U0FDTDtRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQTVDRCxnQ0E0Q0M7SUFFRCxTQUFTLGlCQUFpQixDQUFDLElBQWtCO1FBQzNDLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUM7WUFDckUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge0ltcG9ydE1hbmFnZXJ9IGZyb20gJy4uLy4uL3RyYW5zbGF0b3InO1xuXG4vKipcbiAqIEFkZHMgZXh0cmEgaW1wb3J0cyBpbiB0aGUgaW1wb3J0IG1hbmFnZSBmb3IgdGhpcyBzb3VyY2UgZmlsZSwgYWZ0ZXIgdGhlIGV4aXN0aW5nIGltcG9ydHNcbiAqIGFuZCBiZWZvcmUgdGhlIG1vZHVsZSBib2R5LlxuICogQ2FuIG9wdGlvbmFsbHkgYWRkIGV4dHJhIHN0YXRlbWVudHMgKGUuZy4gbmV3IGNvbnN0YW50cykgYmVmb3JlIHRoZSBib2R5IGFzIHdlbGwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRJbXBvcnRzKFxuICAgIGltcG9ydE1hbmFnZXI6IEltcG9ydE1hbmFnZXIsIHNmOiB0cy5Tb3VyY2VGaWxlLFxuICAgIGV4dHJhU3RhdGVtZW50czogdHMuU3RhdGVtZW50W10gPSBbXSk6IHRzLlNvdXJjZUZpbGUge1xuICAvLyBHZW5lcmF0ZSB0aGUgaW1wb3J0IHN0YXRlbWVudHMgdG8gcHJlcGVuZC5cbiAgY29uc3QgYWRkZWRJbXBvcnRzID0gaW1wb3J0TWFuYWdlci5nZXRBbGxJbXBvcnRzKHNmLmZpbGVOYW1lKS5tYXAoaSA9PiB7XG4gICAgY29uc3QgcXVhbGlmaWVyID0gdHMuY3JlYXRlSWRlbnRpZmllcihpLnF1YWxpZmllci50ZXh0KTtcbiAgICBjb25zdCBpbXBvcnRDbGF1c2UgPSB0cy5jcmVhdGVJbXBvcnRDbGF1c2UoXG4gICAgICAgIC8qIG5hbWUgKi8gdW5kZWZpbmVkLFxuICAgICAgICAvKiBuYW1lZEJpbmRpbmdzICovIHRzLmNyZWF0ZU5hbWVzcGFjZUltcG9ydChxdWFsaWZpZXIpKTtcbiAgICBjb25zdCBkZWNsID0gdHMuY3JlYXRlSW1wb3J0RGVjbGFyYXRpb24oXG4gICAgICAgIC8qIGRlY29yYXRvcnMgKi8gdW5kZWZpbmVkLFxuICAgICAgICAvKiBtb2RpZmllcnMgKi8gdW5kZWZpbmVkLFxuICAgICAgICAvKiBpbXBvcnRDbGF1c2UgKi8gaW1wb3J0Q2xhdXNlLFxuICAgICAgICAvKiBtb2R1bGVTcGVjaWZpZXIgKi8gdHMuY3JlYXRlTGl0ZXJhbChpLnNwZWNpZmllcikpO1xuXG4gICAgLy8gU2V0IHRoZSBxdWFsaWZpZXIncyBvcmlnaW5hbCBUUyBub2RlIHRvIHRoZSBgdHMuSW1wb3J0RGVjbGFyYXRpb25gLiBUaGlzIGFsbG93cyBkb3duc3RyZWFtXG4gICAgLy8gdHJhbnNmb3JtcyBzdWNoIGFzIHRzaWNrbGUgdG8gcHJvcGVybHkgcHJvY2VzcyByZWZlcmVuY2VzIHRvIHRoaXMgaW1wb3J0LlxuICAgIC8vXG4gICAgLy8gVGhpcyBvcGVyYXRpb24gaXMgbG9hZC1iZWFyaW5nIGluIGczIGFzIHNvbWUgaW1wb3J0ZWQgbW9kdWxlcyBjb250YWluIHNwZWNpYWwgbWV0YWRhdGFcbiAgICAvLyBnZW5lcmF0ZWQgYnkgY2x1dHosIHdoaWNoIHRzaWNrbGUgdXNlcyB0byB0cmFuc2Zvcm0gaW1wb3J0cyBhbmQgcmVmZXJlbmNlcyB0byB0aG9zZSBpbXBvcnRzLlxuICAgIC8vXG4gICAgLy8gVE9ETyhhbHhodWIpOiBhZGQgYSB0ZXN0IGZvciB0aGlzIHdoZW4gdHNpY2tsZSBpcyB1cGRhdGVkIGV4dGVybmFsbHkgdG8gZGVwZW5kIG9uIHRoaXNcbiAgICAvLyBiZWhhdmlvci5cbiAgICB0cy5zZXRPcmlnaW5hbE5vZGUoaS5xdWFsaWZpZXIsIGRlY2wpO1xuXG4gICAgcmV0dXJuIGRlY2w7XG4gIH0pO1xuXG4gIC8vIEZpbHRlciBvdXQgdGhlIGV4aXN0aW5nIGltcG9ydHMgYW5kIHRoZSBzb3VyY2UgZmlsZSBib2R5LiBBbGwgbmV3IHN0YXRlbWVudHNcbiAgLy8gd2lsbCBiZSBpbnNlcnRlZCBiZXR3ZWVuIHRoZW0uXG4gIGNvbnN0IGV4aXN0aW5nSW1wb3J0cyA9IHNmLnN0YXRlbWVudHMuZmlsdGVyKHN0bXQgPT4gaXNJbXBvcnRTdGF0ZW1lbnQoc3RtdCkpO1xuICBjb25zdCBib2R5ID0gc2Yuc3RhdGVtZW50cy5maWx0ZXIoc3RtdCA9PiAhaXNJbXBvcnRTdGF0ZW1lbnQoc3RtdCkpO1xuICAvLyBQcmVwZW5kIGltcG9ydHMgaWYgbmVlZGVkLlxuICBpZiAoYWRkZWRJbXBvcnRzLmxlbmd0aCA+IDApIHtcbiAgICAvLyBJZiB3ZSBwcmVwZW5kIGltcG9ydHMsIHdlIGFsc28gcHJlcGVuZCBOb3RFbWl0dGVkU3RhdGVtZW50IHRvIHVzZSBpdCBhcyBhbiBhbmNob3JcbiAgICAvLyBmb3IgQGZpbGVvdmVydmlldyBDbG9zdXJlIGFubm90YXRpb24uIElmIHRoZXJlIGlzIG5vIEBmaWxlb3ZlcnZpZXcgYW5ub3RhdGlvbnMsIHRoaXNcbiAgICAvLyBzdGF0ZW1lbnQgd291bGQgYmUgYSBub29wLlxuICAgIGNvbnN0IGZpbGVvdmVydmlld0FuY2hvclN0bXQgPSB0cy5jcmVhdGVOb3RFbWl0dGVkU3RhdGVtZW50KHNmKTtcbiAgICByZXR1cm4gdHMudXBkYXRlU291cmNlRmlsZU5vZGUoc2YsIHRzLmNyZWF0ZU5vZGVBcnJheShbXG4gICAgICBmaWxlb3ZlcnZpZXdBbmNob3JTdG10LCAuLi5leGlzdGluZ0ltcG9ydHMsIC4uLmFkZGVkSW1wb3J0cywgLi4uZXh0cmFTdGF0ZW1lbnRzLCAuLi5ib2R5XG4gICAgXSkpO1xuICB9XG5cbiAgcmV0dXJuIHNmO1xufVxuXG5mdW5jdGlvbiBpc0ltcG9ydFN0YXRlbWVudChzdG10OiB0cy5TdGF0ZW1lbnQpOiBib29sZWFuIHtcbiAgcmV0dXJuIHRzLmlzSW1wb3J0RGVjbGFyYXRpb24oc3RtdCkgfHwgdHMuaXNJbXBvcnRFcXVhbHNEZWNsYXJhdGlvbihzdG10KSB8fFxuICAgICAgdHMuaXNOYW1lc3BhY2VJbXBvcnQoc3RtdCk7XG59XG4iXX0=
@@ -1,37 +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/translator", ["require", "exports", "@angular/compiler-cli/src/ngtsc/translator/src/context", "@angular/compiler-cli/src/ngtsc/translator/src/import_manager", "@angular/compiler-cli/src/ngtsc/translator/src/translator", "@angular/compiler-cli/src/ngtsc/translator/src/type_translator", "@angular/compiler-cli/src/ngtsc/translator/src/typescript_ast_factory", "@angular/compiler-cli/src/ngtsc/translator/src/typescript_translator"], factory);
15
- }
16
- })(function (require, exports) {
17
- "use strict";
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.translateStatement = exports.translateExpression = exports.TypeScriptAstFactory = exports.createTemplateTail = exports.createTemplateMiddle = exports.attachComments = exports.translateType = exports.ExpressionTranslatorVisitor = exports.ImportManager = exports.Context = void 0;
20
- var context_1 = require("@angular/compiler-cli/src/ngtsc/translator/src/context");
21
- Object.defineProperty(exports, "Context", { enumerable: true, get: function () { return context_1.Context; } });
22
- var import_manager_1 = require("@angular/compiler-cli/src/ngtsc/translator/src/import_manager");
23
- Object.defineProperty(exports, "ImportManager", { enumerable: true, get: function () { return import_manager_1.ImportManager; } });
24
- var translator_1 = require("@angular/compiler-cli/src/ngtsc/translator/src/translator");
25
- Object.defineProperty(exports, "ExpressionTranslatorVisitor", { enumerable: true, get: function () { return translator_1.ExpressionTranslatorVisitor; } });
26
- var type_translator_1 = require("@angular/compiler-cli/src/ngtsc/translator/src/type_translator");
27
- Object.defineProperty(exports, "translateType", { enumerable: true, get: function () { return type_translator_1.translateType; } });
28
- var typescript_ast_factory_1 = require("@angular/compiler-cli/src/ngtsc/translator/src/typescript_ast_factory");
29
- Object.defineProperty(exports, "attachComments", { enumerable: true, get: function () { return typescript_ast_factory_1.attachComments; } });
30
- Object.defineProperty(exports, "createTemplateMiddle", { enumerable: true, get: function () { return typescript_ast_factory_1.createTemplateMiddle; } });
31
- Object.defineProperty(exports, "createTemplateTail", { enumerable: true, get: function () { return typescript_ast_factory_1.createTemplateTail; } });
32
- Object.defineProperty(exports, "TypeScriptAstFactory", { enumerable: true, get: function () { return typescript_ast_factory_1.TypeScriptAstFactory; } });
33
- var typescript_translator_1 = require("@angular/compiler-cli/src/ngtsc/translator/src/typescript_translator");
34
- Object.defineProperty(exports, "translateExpression", { enumerable: true, get: function () { return typescript_translator_1.translateExpression; } });
35
- Object.defineProperty(exports, "translateStatement", { enumerable: true, get: function () { return typescript_translator_1.translateStatement; } });
36
- });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL3RyYW5zbGF0b3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7O0lBSUgsa0ZBQXNDO0lBQTlCLGtHQUFBLE9BQU8sT0FBQTtJQUNmLGdHQUEyRDtJQUEzQywrR0FBQSxhQUFhLE9BQUE7SUFDN0Isd0ZBQXFHO0lBQTdGLHlIQUFBLDJCQUEyQixPQUFBO0lBQ25DLGtHQUFvRDtJQUE1QyxnSEFBQSxhQUFhLE9BQUE7SUFDckIsZ0hBQTRIO0lBQXBILHdIQUFBLGNBQWMsT0FBQTtJQUFFLDhIQUFBLG9CQUFvQixPQUFBO0lBQUUsNEhBQUEsa0JBQWtCLE9BQUE7SUFBRSw4SEFBQSxvQkFBb0IsT0FBQTtJQUN0Riw4R0FBb0Y7SUFBNUUsNEhBQUEsbUJBQW1CLE9BQUE7SUFBRSwySEFBQSxrQkFBa0IsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQge0FzdEZhY3RvcnksIEJpbmFyeU9wZXJhdG9yLCBMZWFkaW5nQ29tbWVudCwgT2JqZWN0TGl0ZXJhbFByb3BlcnR5LCBTb3VyY2VNYXBMb2NhdGlvbiwgU291cmNlTWFwUmFuZ2UsIFRlbXBsYXRlRWxlbWVudCwgVGVtcGxhdGVMaXRlcmFsLCBVbmFyeU9wZXJhdG9yLCBWYXJpYWJsZURlY2xhcmF0aW9uVHlwZX0gZnJvbSAnLi9zcmMvYXBpL2FzdF9mYWN0b3J5JztcbmV4cG9ydCB7SW1wb3J0R2VuZXJhdG9yLCBOYW1lZEltcG9ydH0gZnJvbSAnLi9zcmMvYXBpL2ltcG9ydF9nZW5lcmF0b3InO1xuZXhwb3J0IHtDb250ZXh0fSBmcm9tICcuL3NyYy9jb250ZXh0JztcbmV4cG9ydCB7SW1wb3J0LCBJbXBvcnRNYW5hZ2VyfSBmcm9tICcuL3NyYy9pbXBvcnRfbWFuYWdlcic7XG5leHBvcnQge0V4cHJlc3Npb25UcmFuc2xhdG9yVmlzaXRvciwgUmVjb3JkV3JhcHBlZE5vZGVGbiwgVHJhbnNsYXRvck9wdGlvbnN9IGZyb20gJy4vc3JjL3RyYW5zbGF0b3InO1xuZXhwb3J0IHt0cmFuc2xhdGVUeXBlfSBmcm9tICcuL3NyYy90eXBlX3RyYW5zbGF0b3InO1xuZXhwb3J0IHthdHRhY2hDb21tZW50cywgY3JlYXRlVGVtcGxhdGVNaWRkbGUsIGNyZWF0ZVRlbXBsYXRlVGFpbCwgVHlwZVNjcmlwdEFzdEZhY3Rvcnl9IGZyb20gJy4vc3JjL3R5cGVzY3JpcHRfYXN0X2ZhY3RvcnknO1xuZXhwb3J0IHt0cmFuc2xhdGVFeHByZXNzaW9uLCB0cmFuc2xhdGVTdGF0ZW1lbnR9IGZyb20gJy4vc3JjL3R5cGVzY3JpcHRfdHJhbnNsYXRvcic7XG4iXX0=
@@ -1,20 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- (function (factory) {
9
- if (typeof module === "object" && typeof module.exports === "object") {
10
- var v = factory(require, exports);
11
- if (v !== undefined) module.exports = v;
12
- }
13
- else if (typeof define === "function" && define.amd) {
14
- define("@angular/compiler-cli/src/ngtsc/translator/src/api/ast_factory", ["require", "exports"], factory);
15
- }
16
- })(function (require, exports) {
17
- "use strict";
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN0X2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL3RyYW5zbGF0b3Ivc3JjL2FwaS9hc3RfZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBVc2VkIHRvIGNyZWF0ZSB0cmFuc3BpbGVyIHNwZWNpZmljIEFTVCBub2RlcyBmcm9tIEFuZ3VsYXIgT3V0cHV0IEFTVCBub2RlcyBpbiBhbiBhYnN0cmFjdCB3YXkuXG4gKlxuICogTm90ZSB0aGF0IHRoZSBgQXN0RmFjdG9yeWAgbWFrZXMgbm8gYXNzdW1wdGlvbnMgYWJvdXQgdGhlIHRhcmdldCBsYW5ndWFnZSBiZWluZyBnZW5lcmF0ZWQuXG4gKiBJdCBpcyB1cCB0byB0aGUgY2FsbGVyIHRvIGRvIHRoaXMgLSBlLmcuIG9ubHkgY2FsbCBgY3JlYXRlVGFnZ2VkVGVtcGxhdGUoKWAgb3IgcGFzcyBgbGV0YHxgY29uc3RgXG4gKiB0byBgY3JlYXRlVmFyaWFibGVEZWNsYXJhdGlvbigpYCBpZiB0aGUgZmluYWwgSlMgd2lsbCBhbGxvdyBpdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3RGYWN0b3J5PFRTdGF0ZW1lbnQsIFRFeHByZXNzaW9uPiB7XG4gIC8qKlxuICAgKiBBdHRhY2ggdGhlIGBsZWFkaW5nQ29tbWVudHNgIHRvIHRoZSBnaXZlbiBgc3RhdGVtZW50YCBub2RlLlxuICAgKlxuICAgKiBAcGFyYW0gc3RhdGVtZW50IHRoZSBzdGF0ZW1lbnQgd2hlcmUgdGhlIGNvbW1lbnRzIGFyZSB0byBiZSBhdHRhY2hlZC5cbiAgICogQHBhcmFtIGxlYWRpbmdDb21tZW50cyB0aGUgY29tbWVudHMgdG8gYXR0YWNoLlxuICAgKi9cbiAgYXR0YWNoQ29tbWVudHMoc3RhdGVtZW50OiBUU3RhdGVtZW50LCBsZWFkaW5nQ29tbWVudHM6IExlYWRpbmdDb21tZW50W10pOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBsaXRlcmFsIGFycmF5IGV4cHJlc2lvbiAoZS5nLiBgW2V4cHIxLCBleHByMl1gKS5cbiAgICpcbiAgICogQHBhcmFtIGVsZW1lbnRzIGEgY29sbGVjdGlvbiBvZiB0aGUgZXhwcmVzc2lvbnMgdG8gYXBwZWFyIGluIGVhY2ggYXJyYXkgc2xvdC5cbiAgICovXG4gIGNyZWF0ZUFycmF5TGl0ZXJhbChlbGVtZW50czogVEV4cHJlc3Npb25bXSk6IFRFeHByZXNzaW9uO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gYXNzaWdubWVudCBleHByZXNzaW9uIChlLmcuIGBsaHNFeHByID0gcmhzRXhwcmApLlxuICAgKlxuICAgKiBAcGFyYW0gdGFyZ2V0IGFuIGV4cHJlc3Npb24gdGhhdCBldmFsdWF0ZXMgdG8gdGhlIGxlZnQgc2lkZSBvZiB0aGUgYXNzaWdubWVudC5cbiAgICogQHBhcmFtIHZhbHVlIGFuIGV4cHJlc3Npb24gdGhhdCBldmFsdWF0ZXMgdG8gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIGFzc2lnbm1lbnQuXG4gICAqL1xuICBjcmVhdGVBc3NpZ25tZW50KHRhcmdldDogVEV4cHJlc3Npb24sIHZhbHVlOiBURXhwcmVzc2lvbik6IFRFeHByZXNzaW9uO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBiaW5hcnkgZXhwcmVzc2lvbiAoZS5nLiBgbGhzICYmIHJoc2ApLlxuICAgKlxuICAgKiBAcGFyYW0gbGVmdE9wZXJhbmQgYW4gZXhwcmVzc2lvbiB0aGF0IHdpbGwgYXBwZWFyIG9uIHRoZSBsZWZ0IG9mIHRoZSBvcGVyYXRvci5cbiAgICogQHBhcmFtIG9wZXJhdG9yIHRoZSBiaW5hcnkgb3BlcmF0b3IgdGhhdCB3aWxsIGJlIGFwcGxpZWQuXG4gICAqIEBwYXJhbSByaWdodE9wZXJhbmQgYW4gZXhwcmVzc2lvbiB0aGF0IHdpbGwgYXBwZWFyIG9uIHRoZSByaWdodCBvZiB0aGUgb3BlcmF0b3IuXG4gICAqL1xuICBjcmVhdGVCaW5hcnlFeHByZXNzaW9uKFxuICAgICAgbGVmdE9wZXJhbmQ6IFRFeHByZXNzaW9uLCBvcGVyYXRvcjogQmluYXJ5T3BlcmF0b3IsIHJpZ2h0T3BlcmFuZDogVEV4cHJlc3Npb24pOiBURXhwcmVzc2lvbjtcblxuICAvKipcbiAgICogQ3JlYXRlIGEgYmxvY2sgb2Ygc3RhdGVtZW50cyAoZS5nLiBgeyBzdG10MTsgc3RtdDI7IH1gKS5cbiAgICpcbiAgICogQHBhcmFtIGJvZHkgYW4gYXJyYXkgb2Ygc3RhdGVtZW50cyB0byBiZSB3cmFwcGVkIGluIGEgYmxvY2suXG4gICAqL1xuICBjcmVhdGVCbG9jayhib2R5OiBUU3RhdGVtZW50W10pOiBUU3RhdGVtZW50O1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gZXhwcmVzc2lvbiB0aGF0IGlzIGNhbGxpbmcgdGhlIGBjYWxsZWVgIHdpdGggdGhlIGdpdmVuIGBhcmdzYC5cbiAgICpcbiAgICogQHBhcmFtIGNhbGxlZSBhbiBleHByZXNzaW9uIHRoYXQgZXZhbHVhdGVzIHRvIGEgZnVuY3Rpb24gdG8gYmUgY2FsbGVkLlxuICAgKiBAcGFyYW0gYXJncyB0aGUgYXJ1Z21lbnRzIHRvIGJlIHBhc3NlZCB0byB0aGUgY2FsbC5cbiAgICogQHBhcmFtIHB1cmUgd2hldGhlciB0byBtYXJrIHRoZSBjYWxsIGFzIHB1cmUgKGhhdmluZyBubyBzaWRlLWVmZmVjdHMpLlxuICAgKi9cbiAgY3JlYXRlQ2FsbEV4cHJlc3Npb24oY2FsbGVlOiBURXhwcmVzc2lvbiwgYXJnczogVEV4cHJlc3Npb25bXSwgcHVyZTogYm9vbGVhbik6IFRFeHByZXNzaW9uO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSB0ZXJuYXJ5IGV4cHJlc3Npb24gKGUuZy4gYHRlc3RFeHByID8gdHJ1ZUV4cHIgOiBmYWxzZUV4cHJgKS5cbiAgICpcbiAgICogQHBhcmFtIGNvbmRpdGlvbiBhbiBleHByZXNzaW9uIHRoYXQgd2lsbCBiZSB0ZXN0ZWQgZm9yIHRydXRoaW5lc3MuXG4gICAqIEBwYXJhbSB0aGVuRXhwcmVzc2lvbiBhbiBleHByZXNzaW9uIHRoYXQgaXMgZXhlY3V0ZWQgaWYgYGNvbmRpdGlvbmAgaXMgdHJ1dGh5LlxuICAgKiBAcGFyYW0gZWxzZUV4cHJlc3Npb24gYW4gZXhwcmVzc2lvbiB0aGF0IGlzIGV4ZWN1dGVkIGlmIGBjb25kaXRpb25gIGlzIGZhbHN5LlxuICAgKi9cbiAgY3JlYXRlQ29uZGl0aW9uYWwoXG4gICAgICBjb25kaXRpb246IFRFeHByZXNzaW9uLCB0aGVuRXhwcmVzc2lvbjogVEV4cHJlc3Npb24sXG4gICAgICBlbHNlRXhwcmVzc2lvbjogVEV4cHJlc3Npb24pOiBURXhwcmVzc2lvbjtcblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGVsZW1lbnQgYWNjZXNzIChlLmcuIGBvYmpbZXhwcl1gKS5cbiAgICpcbiAgICogQHBhcmFtIGV4cHJlc3Npb24gYW4gZXhwcmVzc2lvbiB0aGF0IGV2YWx1YXRlcyB0byB0aGUgb2JqZWN0IHRvIGJlIGFjY2Vzc2VkLlxuICAgKiBAcGFyYW0gZWxlbWVudCBhbiBleHByZXNzaW9uIHRoYXQgZXZhbHVhdGVzIHRvIHRoZSBlbGVtZW50IG9uIHRoZSBvYmplY3QuXG4gICAqL1xuICBjcmVhdGVFbGVtZW50QWNjZXNzKGV4cHJlc3Npb246IFRFeHByZXNzaW9uLCBlbGVtZW50OiBURXhwcmVzc2lvbik6IFRFeHByZXNzaW9uO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBzdGF0ZW1lbnQgdGhhdCBpcyBzaW1wbHkgZXhlY3V0aW5nIHRoZSBnaXZlbiBgZXhwcmVzc2lvbmAgKGUuZy4gYHggPSAxMDtgKS5cbiAgICpcbiAgICogQHBhcmFtIGV4cHJlc3Npb24gdGhlIGV4cHJlc3Npb24gdG8gYmUgY29udmVydGVkIHRvIGEgc3RhdGVtZW50LlxuICAgKi9cbiAgY3JlYXRlRXhwcmVzc2lvblN0YXRlbWVudChleHByZXNzaW9uOiBURXhwcmVzc2lvbik6IFRTdGF0ZW1lbnQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHN0YXRlbWVudCB0aGF0IGRlY2xhcmVzIGEgZnVuY3Rpb24gKGUuZy4gYGZ1bmN0aW9uIGZvbyhwYXJhbTEsIHBhcmFtMikgeyBzdG10OyB9YCkuXG4gICAqXG4gICAqIEBwYXJhbSBmdW5jdGlvbk5hbWUgdGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uLlxuICAgKiBAcGFyYW0gcGFyYW1ldGVycyB0aGUgbmFtZXMgb2YgdGhlIGZ1bmN0aW9uJ3MgcGFyYW1ldGVycy5cbiAgICogQHBhcmFtIGJvZHkgYSBzdGF0ZW1lbnQgKG9yIGEgYmxvY2sgb2Ygc3RhdGVtZW50cykgdGhhdCBhcmUgdGhlIGJvZHkgb2YgdGhlIGZ1bmN0aW9uLlxuICAgKi9cbiAgY3JlYXRlRnVuY3Rpb25EZWNsYXJhdGlvbihmdW5jdGlvbk5hbWU6IHN0cmluZywgcGFyYW1ldGVyczogc3RyaW5nW10sIGJvZHk6IFRTdGF0ZW1lbnQpOlxuICAgICAgVFN0YXRlbWVudDtcblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGV4cHJlc3Npb24gdGhhdCByZXByZXNlbnRzIGEgZnVuY3Rpb25cbiAgICogKGUuZy4gYGZ1bmN0aW9uIGZvbyhwYXJhbTEsIHBhcmFtMikgeyBzdG10OyB9YCkuXG4gICAqXG4gICAqIEBwYXJhbSBmdW5jdGlvbk5hbWUgdGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uLlxuICAgKiBAcGFyYW0gcGFyYW1ldGVycyB0aGUgbmFtZXMgb2YgdGhlIGZ1bmN0aW9uJ3MgcGFyYW1ldGVycy5cbiAgICogQHBhcmFtIGJvZHkgYSBzdGF0ZW1lbnQgKG9yIGEgYmxvY2sgb2Ygc3RhdGVtZW50cykgdGhhdCBhcmUgdGhlIGJvZHkgb2YgdGhlIGZ1bmN0aW9uLlxuICAgKi9cbiAgY3JlYXRlRnVuY3Rpb25FeHByZXNzaW9uKGZ1bmN0aW9uTmFtZTogc3RyaW5nfG51bGwsIHBhcmFtZXRlcnM6IHN0cmluZ1tdLCBib2R5OiBUU3RhdGVtZW50KTpcbiAgICAgIFRFeHByZXNzaW9uO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gaWRlbnRpZmllci5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgdGhlIG5hbWUgb2YgdGhlIGlkZW50aWZpZXIuXG4gICAqL1xuICBjcmVhdGVJZGVudGlmaWVyKG5hbWU6IHN0cmluZyk6IFRFeHByZXNzaW9uO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gaWYgc3RhdGVtZW50IChlLmcuIGBpZiAodGVzdEV4cHIpIHsgdHJ1ZVN0bXQ7IH0gZWxzZSB7IGZhbHNlU3RtdDsgfWApLlxuICAgKlxuICAgKiBAcGFyYW0gY29uZGl0aW9uIGFuIGV4cHJlc3Npb24gdGhhdCB3aWxsIGJlIHRlc3RlZCBmb3IgdHJ1dGhpbmVzcy5cbiAgICogQHBhcmFtIHRoZW5TdGF0ZW1lbnQgYSBzdGF0ZW1lbnQgKG9yIGJsb2NrIG9mIHN0YXRlbWVudHMpIHRoYXQgaXMgZXhlY3V0ZWQgaWYgYGNvbmRpdGlvbmAgaXNcbiAgICogICAgIHRydXRoeS5cbiAgICogQHBhcmFtIGVsc2VTdGF0ZW1lbnQgYSBzdGF0ZW1lbnQgKG9yIGJsb2NrIG9mIHN0YXRlbWVudHMpIHRoYXQgaXMgZXhlY3V0ZWQgaWYgYGNvbmRpdGlvbmAgaXNcbiAgICogICAgIGZhbHN5LlxuICAgKi9cbiAgY3JlYXRlSWZTdGF0ZW1lbnQoXG4gICAgICBjb25kaXRpb246IFRFeHByZXNzaW9uLCB0aGVuU3RhdGVtZW50OiBUU3RhdGVtZW50LFxuICAgICAgZWxzZVN0YXRlbWVudDogVFN0YXRlbWVudHxudWxsKTogVFN0YXRlbWVudDtcblxuICAvKipcbiAgICogQ3JlYXRlIGEgc2ltcGxlIGxpdGVyYWwgKGUuZy4gYFwic3RyaW5nXCJgLCBgMTIzYCwgYGZhbHNlYCwgZXRjKS5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSBvZiB0aGUgbGl0ZXJhbC5cbiAgICovXG4gIGNyZWF0ZUxpdGVyYWwodmFsdWU6IHN0cmluZ3xudW1iZXJ8Ym9vbGVhbnxudWxsfHVuZGVmaW5lZCk6IFRFeHByZXNzaW9uO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gZXhwcmVzc2lvbiB0aGF0IGlzIGluc3RhbnRpYXRpbmcgdGhlIGBleHByZXNzaW9uYCBhcyBhIGNsYXNzLlxuICAgKlxuICAgKiBAcGFyYW0gZXhwcmVzc2lvbiBhbiBleHByZXNzaW9uIHRoYXQgZXZhbHVhdGVzIHRvIGEgY29uc3RydWN0b3IgdG8gYmUgaW5zdGFudGlhdGVkLlxuICAgKiBAcGFyYW0gYXJncyB0aGUgYXJndW1lbnRzIHRvIGJlIHBhc3NlZCB0byB0aGUgY29uc3RydWN0b3IuXG4gICAqL1xuICBjcmVhdGVOZXdFeHByZXNzaW9uKGV4cHJlc3Npb246IFRFeHByZXNzaW9uLCBhcmdzOiBURXhwcmVzc2lvbltdKTogVEV4cHJlc3Npb247XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGxpdGVyYWwgb2JqZWN0IGV4cHJlc3Npb24gKGUuZy4gYHsgcHJvcDE6IGV4cHIxLCBwcm9wMjogZXhwcjIgfWApLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcGVydGllcyB0aGUgcHJvcGVydGllcyAoa2V5IGFuZCB2YWx1ZSkgdG8gYXBwZWFyIGluIHRoZSBvYmplY3QuXG4gICAqL1xuICBjcmVhdGVPYmplY3RMaXRlcmFsKHByb3BlcnRpZXM6IE9iamVjdExpdGVyYWxQcm9wZXJ0eTxURXhwcmVzc2lvbj5bXSk6IFRFeHByZXNzaW9uO1xuXG4gIC8qKlxuICAgKiBXcmFwIGFuIGV4cHJlc3Npb24gaW4gcGFyZW50aGVzZXMuXG4gICAqXG4gICAqIEBwYXJhbSBleHByZXNzaW9uIHRoZSBleHByZXNzaW9uIHRvIHdyYXAgaW4gcGFyZW50aGVzZXMuXG4gICAqL1xuICBjcmVhdGVQYXJlbnRoZXNpemVkRXhwcmVzc2lvbihleHByZXNzaW9uOiBURXhwcmVzc2lvbik6IFRFeHByZXNzaW9uO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBwcm9wZXJ0eSBhY2Nlc3MgKGUuZy4gYG9iai5wcm9wYCkuXG4gICAqXG4gICAqIEBwYXJhbSBleHByZXNzaW9uIGFuIGV4cHJlc3Npb24gdGhhdCBldmFsdWF0ZXMgdG8gdGhlIG9iamVjdCB0byBiZSBhY2Nlc3NlZC5cbiAgICogQHBhcmFtIHByb3BlcnR5TmFtZSB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gYWNjZXNzLlxuICAgKi9cbiAgY3JlYXRlUHJvcGVydHlBY2Nlc3MoZXhwcmVzc2lvbjogVEV4cHJlc3Npb24sIHByb3BlcnR5TmFtZTogc3RyaW5nKTogVEV4cHJlc3Npb247XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHJldHVybiBzdGF0ZW1lbnQgKGUuZyBgcmV0dXJuIGV4cHI7YCkuXG4gICAqXG4gICAqIEBwYXJhbSBleHByZXNzaW9uIHRoZSBleHByZXNzaW9uIHRvIGJlIHJldHVybmVkLlxuICAgKi9cbiAgY3JlYXRlUmV0dXJuU3RhdGVtZW50KGV4cHJlc3Npb246IFRFeHByZXNzaW9ufG51bGwpOiBUU3RhdGVtZW50O1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSB0YWdnZWQgdGVtcGxhdGUgbGl0ZXJhbCBzdHJpbmcuIEUuZy5cbiAgICpcbiAgICogYGBgXG4gICAqIHRhZ2BzdHIxJHtleHByMX1zdHIyJHtleHByMn1zdHIzYFxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHRhZyBhbiBleHByZXNzaW9uIHRoYXQgaXMgYXBwbGllZCBhcyBhIHRhZyBoYW5kbGVyIGZvciB0aGlzIHRlbXBsYXRlIHN0cmluZy5cbiAgICogQHBhcmFtIHRlbXBsYXRlIHRoZSBjb2xsZWN0aW9uIG9mIHN0cmluZ3MgYW5kIGV4cHJlc3Npb25zIHRoYXQgY29uc3RpdHV0ZSBhbiBpbnRlcnBvbGF0ZWRcbiAgICogICAgIHRlbXBsYXRlIGxpdGVyYWwuXG4gICAqL1xuICBjcmVhdGVUYWdnZWRUZW1wbGF0ZSh0YWc6IFRFeHByZXNzaW9uLCB0ZW1wbGF0ZTogVGVtcGxhdGVMaXRlcmFsPFRFeHByZXNzaW9uPik6IFRFeHByZXNzaW9uO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSB0aHJvdyBzdGF0ZW1lbnQgKGUuZy4gYHRocm93IGV4cHI7YCkuXG4gICAqXG4gICAqIEBwYXJhbSBleHByZXNzaW9uIHRoZSBleHByZXNzaW9uIHRvIGJlIHRocm93bi5cbiAgICovXG4gIGNyZWF0ZVRocm93U3RhdGVtZW50KGV4cHJlc3Npb246IFRFeHByZXNzaW9uKTogVFN0YXRlbWVudDtcblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGV4cHJlc3Npb24gdGhhdCBleHRyYWN0cyB0aGUgdHlwZSBvZiBhbiBleHByZXNzaW9uIChlLmcuIGB0eXBlb2YgZXhwcmApLlxuICAgKlxuICAgKiBAcGFyYW0gZXhwcmVzc2lvbiB0aGUgZXhwcmVzc2lvbiB3aG9zZSB0eXBlIHdlIHdhbnQuXG4gICAqL1xuICBjcmVhdGVUeXBlT2ZFeHByZXNzaW9uKGV4cHJlc3Npb246IFRFeHByZXNzaW9uKTogVEV4cHJlc3Npb247XG5cbiAgLyoqXG4gICAqIFByZWZpeCB0aGUgYG9wZXJhbmRgIHdpdGggdGhlIGdpdmVuIGBvcGVyYXRvcmAgKGUuZy4gYC1leHByYCkuXG4gICAqXG4gICAqIEBwYXJhbSBvcGVyYXRvciB0aGUgdGV4dCBvZiB0aGUgb3BlcmF0b3IgdG8gYXBwbHkgKGUuZy4gYCtgLCBgLWAgb3IgYCFgKS5cbiAgICogQHBhcmFtIG9wZXJhbmQgdGhlIGV4cHJlc3Npb24gdGhhdCB0aGUgb3BlcmF0b3IgYXBwbGllcyB0by5cbiAgICovXG4gIGNyZWF0ZVVuYXJ5RXhwcmVzc2lvbihvcGVyYXRvcjogVW5hcnlPcGVyYXRvciwgb3BlcmFuZDogVEV4cHJlc3Npb24pOiBURXhwcmVzc2lvbjtcblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGV4cHJlc3Npb24gdGhhdCBkZWNsYXJlcyBhIG5ldyB2YXJpYWJsZSwgcG9zc2libHkgaW5pdGlhbGl6ZWQgdG8gYGluaXRpYWxpemVyYC5cbiAgICpcbiAgICogQHBhcmFtIHZhcmlhYmxlTmFtZSB0aGUgbmFtZSBvZiB0aGUgdmFyaWFibGUuXG4gICAqIEBwYXJhbSBpbml0aWFsaXplciBpZiBub3QgYG51bGxgIHRoZW4gdGhpcyBleHByZXNzaW9uIGlzIGFzc2lnbmVkIHRvIHRoZSBkZWNsYXJlZCB2YXJpYWJsZS5cbiAgICogQHBhcmFtIHR5cGUgd2hldGhlciB0aGlzIHZhcmlhYmxlIHNob3VsZCBiZSBkZWNsYXJlZCBhcyBgdmFyYCwgYGxldGAgb3IgYGNvbnN0YC5cbiAgICovXG4gIGNyZWF0ZVZhcmlhYmxlRGVjbGFyYXRpb24oXG4gICAgICB2YXJpYWJsZU5hbWU6IHN0cmluZywgaW5pdGlhbGl6ZXI6IFRFeHByZXNzaW9ufG51bGwsXG4gICAgICB0eXBlOiBWYXJpYWJsZURlY2xhcmF0aW9uVHlwZSk6IFRTdGF0ZW1lbnQ7XG5cbiAgLyoqXG4gICAqIEF0dGFjaCBhIHNvdXJjZSBtYXAgcmFuZ2UgdG8gdGhlIGdpdmVuIG5vZGUuXG4gICAqXG4gICAqIEBwYXJhbSBub2RlIHRoZSBub2RlIHRvIHdoaWNoIHRoZSByYW5nZSBzaG91bGQgYmUgYXR0YWNoZWQuXG4gICAqIEBwYXJhbSBzb3VyY2VNYXBSYW5nZSB0aGUgcmFuZ2UgdG8gYXR0YWNoIHRvIHRoZSBub2RlLCBvciBudWxsIGlmIHRoZXJlIGlzIG5vIHJhbmdlIHRvIGF0dGFjaC5cbiAgICogQHJldHVybnMgdGhlIGBub2RlYCB3aXRoIHRoZSBgc291cmNlTWFwUmFuZ2VgIGF0dGFjaGVkLlxuICAgKi9cbiAgc2V0U291cmNlTWFwUmFuZ2U8VCBleHRlbmRzIFRTdGF0ZW1lbnR8VEV4cHJlc3Npb24+KG5vZGU6IFQsIHNvdXJjZU1hcFJhbmdlOiBTb3VyY2VNYXBSYW5nZXxudWxsKTpcbiAgICAgIFQ7XG59XG5cbi8qKlxuICogVGhlIHR5cGUgb2YgYSB2YXJpYWJsZSBkZWNsYXJhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgVmFyaWFibGVEZWNsYXJhdGlvblR5cGUgPSAnY29uc3QnfCdsZXQnfCd2YXInO1xuXG4vKipcbiAqIFRoZSB1bmFyeSBvcGVyYXRvcnMgc3VwcG9ydGVkIGJ5IHRoZSBgQXN0RmFjdG9yeWAuXG4gKi9cbmV4cG9ydCB0eXBlIFVuYXJ5T3BlcmF0b3IgPSAnKyd8Jy0nfCchJztcblxuLyoqXG4gKiBUaGUgYmluYXJ5IG9wZXJhdG9ycyBzdXBwb3J0ZWQgYnkgdGhlIGBBc3RGYWN0b3J5YC5cbiAqL1xuZXhwb3J0IHR5cGUgQmluYXJ5T3BlcmF0b3IgPVxuICAgICcmJid8Jz4nfCc+PSd8JyYnfCcvJ3wnPT0nfCc9PT0nfCc8J3wnPD0nfCctJ3wnJSd8JyonfCchPSd8JyE9PSd8J3x8J3wnKyd8Jz8/JztcblxuLyoqXG4gKiBUaGUgb3JpZ2luYWwgbG9jYXRpb24gb2YgdGhlIHN0YXJ0IG9yIGVuZCBvZiBhIG5vZGUgY3JlYXRlZCBieSB0aGUgYEFzdEZhY3RvcnlgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZU1hcExvY2F0aW9uIHtcbiAgLyoqIDAtYmFzZWQgY2hhcmFjdGVyIHBvc2l0aW9uIG9mIHRoZSBsb2NhdGlvbiBpbiB0aGUgb3JpZ2luYWwgc291cmNlIGZpbGUuICovXG4gIG9mZnNldDogbnVtYmVyO1xuICAvKiogMC1iYXNlZCBsaW5lIGluZGV4IG9mIHRoZSBsb2NhdGlvbiBpbiB0aGUgb3JpZ2luYWwgc291cmNlIGZpbGUuICovXG4gIGxpbmU6IG51bWJlcjtcbiAgLyoqIDAtYmFzZWQgY29sdW1uIHBvc2l0aW9uIG9mIHRoZSBsb2NhdGlvbiBpbiB0aGUgb3JpZ2luYWwgc291cmNlIGZpbGUuICovXG4gIGNvbHVtbjogbnVtYmVyO1xufVxuXG4vKipcbiAqIFRoZSBvcmlnaW5hbCByYW5nZSBvZiBhIG5vZGUgY3JlYXRlZCBieSB0aGUgYEFzdEZhY3RvcnlgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZU1hcFJhbmdlIHtcbiAgdXJsOiBzdHJpbmc7XG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgc3RhcnQ6IFNvdXJjZU1hcExvY2F0aW9uO1xuICBlbmQ6IFNvdXJjZU1hcExvY2F0aW9uO1xufVxuXG4vKipcbiAqIEluZm9ybWF0aW9uIHVzZWQgYnkgdGhlIGBBc3RGYWN0b3J5YCB0byBjcmVhdGUgYSBwcm9wZXJ0eSBvbiBhbiBvYmplY3QgbGl0ZXJhbCBleHByZXNzaW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9iamVjdExpdGVyYWxQcm9wZXJ0eTxURXhwcmVzc2lvbj4ge1xuICBwcm9wZXJ0eU5hbWU6IHN0cmluZztcbiAgdmFsdWU6IFRFeHByZXNzaW9uO1xuICAvKipcbiAgICogV2hldGhlciB0aGUgYHByb3BlcnR5TmFtZWAgc2hvdWxkIGJlIGVuY2xvc2VkIGluIHF1b3Rlcy5cbiAgICovXG4gIHF1b3RlZDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiB1c2VkIGJ5IHRoZSBgQXN0RmFjdG9yeWAgdG8gY3JlYXRlIGEgdGVtcGxhdGUgbGl0ZXJhbCBzdHJpbmcgKGkuZS4gYSBiYWNrLXRpY2tlZFxuICogc3RyaW5nIHdpdGggaW50ZXJwb2xhdGlvbnMpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlTGl0ZXJhbDxURXhwcmVzc2lvbj4ge1xuICAvKipcbiAgICogQSBjb2xsZWN0aW9uIG9mIHRoZSBzdGF0aWMgc3RyaW5nIHBpZWNlcyBvZiB0aGUgaW50ZXJwb2xhdGVkIHRlbXBsYXRlIGxpdGVyYWwgc3RyaW5nLlxuICAgKi9cbiAgZWxlbWVudHM6IFRlbXBsYXRlRWxlbWVudFtdO1xuICAvKipcbiAgICogQSBjb2xsZWN0aW9uIG9mIHRoZSBpbnRlcnBvbGF0ZWQgZXhwcmVzc2lvbnMgdGhhdCBhcmUgaW50ZXJsZWF2ZWQgYmV0d2VlbiB0aGUgZWxlbWVudHMuXG4gICAqL1xuICBleHByZXNzaW9uczogVEV4cHJlc3Npb25bXTtcbn1cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBhIHN0YXRpYyBzdHJpbmcgcGllY2Ugb2YgYW4gaW50ZXJwb2xhdGVkIHRlbXBsYXRlIGxpdGVyYWwgc3RyaW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlRWxlbWVudCB7XG4gIC8qKiBUaGUgcmF3IHN0cmluZyBhcyBpdCB3YXMgZm91bmQgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZSBjb2RlLiAqL1xuICByYXc6IHN0cmluZztcbiAgLyoqIFRoZSBwYXJzZWQgc3RyaW5nLCB3aXRoIGVzY2FwZSBjb2RlcyBldGMgcHJvY2Vzc2VkLiAqL1xuICBjb29rZWQ6IHN0cmluZztcbiAgLyoqIFRoZSBvcmlnaW5hbCBsb2NhdGlvbiBvZiB0aGlzIHBpZWNlIG9mIHRoZSB0ZW1wbGF0ZSBsaXRlcmFsIHN0cmluZy4gKi9cbiAgcmFuZ2U6IFNvdXJjZU1hcFJhbmdlfG51bGw7XG59XG5cbi8qKlxuICogSW5mb3JtYXRpb24gdXNlZCBieSB0aGUgYEFzdEZhY3RvcnlgIHRvIHByZXBlbmQgYSBjb21tZW50IHRvIGEgc3RhdGVtZW50IHRoYXQgd2FzIGNyZWF0ZWQgYnkgdGhlXG4gKiBgQXN0RmFjdG9yeWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGVhZGluZ0NvbW1lbnQge1xuICB0b1N0cmluZygpOiBzdHJpbmc7XG4gIG11bHRpbGluZTogYm9vbGVhbjtcbiAgdHJhaWxpbmdOZXdsaW5lOiBib29sZWFuO1xufVxuIl19
@@ -1,20 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- (function (factory) {
9
- if (typeof module === "object" && typeof module.exports === "object") {
10
- var v = factory(require, exports);
11
- if (v !== undefined) module.exports = v;
12
- }
13
- else if (typeof define === "function" && define.amd) {
14
- define("@angular/compiler-cli/src/ngtsc/translator/src/api/import_generator", ["require", "exports"], factory);
15
- }
16
- })(function (require, exports) {
17
- "use strict";
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0X2dlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvdHJhbnNsYXRvci9zcmMvYXBpL2ltcG9ydF9nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qKlxuICogVGhlIHN5bWJvbCBuYW1lIGFuZCBpbXBvcnQgbmFtZXNwYWNlIG9mIGFuIGltcG9ydGVkIHN5bWJvbCxcbiAqIHdoaWNoIGhhcyBiZWVuIHJlZ2lzdGVyZWQgdGhyb3VnaCB0aGUgSW1wb3J0R2VuZXJhdG9yLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hbWVkSW1wb3J0PFRFeHByZXNzaW9uPiB7XG4gIC8qKiBUaGUgaW1wb3J0IG5hbWVzcGFjZSBjb250YWluaW5nIHRoaXMgaW1wb3J0ZWQgc3ltYm9sLiAqL1xuICBtb2R1bGVJbXBvcnQ6IFRFeHByZXNzaW9ufG51bGw7XG4gIC8qKiBUaGUgKHBvc3NpYmx5IHJld3JpdHRlbikgbmFtZSBvZiB0aGUgaW1wb3J0ZWQgc3ltYm9sLiAqL1xuICBzeW1ib2w6IHN0cmluZztcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBpbXBvcnQgaW5mb3JtYXRpb24gYmFzZWQgb24gdGhlIGNvbnRleHQgb2YgdGhlIGNvZGUgYmVpbmcgZ2VuZXJhdGVkLlxuICpcbiAqIEltcGxlbWVudGF0aW9ucyBvZiB0aGVzZSBtZXRob2RzIHJldHVybiBhIHNwZWNpZmljIGlkZW50aWZpZXIgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgaW1wb3J0ZWRcbiAqIG1vZHVsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbXBvcnRHZW5lcmF0b3I8VEV4cHJlc3Npb24+IHtcbiAgZ2VuZXJhdGVOYW1lc3BhY2VJbXBvcnQobW9kdWxlTmFtZTogc3RyaW5nKTogVEV4cHJlc3Npb247XG4gIGdlbmVyYXRlTmFtZWRJbXBvcnQobW9kdWxlTmFtZTogc3RyaW5nLCBvcmlnaW5hbFN5bWJvbDogc3RyaW5nKTogTmFtZWRJbXBvcnQ8VEV4cHJlc3Npb24+O1xufVxuIl19