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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (600) hide show
  1. package/bundles/index.js +20418 -0
  2. package/bundles/index.js.map +6 -0
  3. package/bundles/linker/babel/index.js +2384 -0
  4. package/bundles/linker/babel/index.js.map +6 -0
  5. package/bundles/linker/index.js +1849 -0
  6. package/bundles/linker/index.js.map +6 -0
  7. package/bundles/ngcc/index.js +16054 -0
  8. package/bundles/ngcc/index.js.map +6 -0
  9. package/bundles/ngcc/main-ngcc.js +16142 -0
  10. package/bundles/ngcc/main-ngcc.js.map +6 -0
  11. package/bundles/ngcc/src/execution/cluster/ngcc_cluster_worker.js +13866 -0
  12. package/bundles/ngcc/src/execution/cluster/ngcc_cluster_worker.js.map +6 -0
  13. package/bundles/ngcc/src/locking/lock_file_with_child_process/ngcc_lock_unlocker.js +334 -0
  14. package/bundles/ngcc/src/locking/lock_file_with_child_process/ngcc_lock_unlocker.js.map +6 -0
  15. package/bundles/private/bazel.js +97 -0
  16. package/bundles/private/bazel.js.map +6 -0
  17. package/bundles/private/localize.js +911 -0
  18. package/bundles/private/localize.js.map +6 -0
  19. package/bundles/private/migrations.js +2181 -0
  20. package/bundles/private/migrations.js.map +6 -0
  21. package/bundles/private/tooling.js +942 -0
  22. package/bundles/private/tooling.js.map +6 -0
  23. package/bundles/src/bin/ng_xi18n.js +20468 -0
  24. package/bundles/src/bin/ng_xi18n.js.map +6 -0
  25. package/bundles/src/bin/ngc.js +20470 -0
  26. package/bundles/src/bin/ngc.js.map +6 -0
  27. package/bundles_metadata.json +1 -0
  28. package/import_meta_url.d.ts +14 -0
  29. package/index.d.ts +4 -1
  30. package/linker/babel/src/ast/babel_ast_factory.d.ts +1 -8
  31. package/linker/babel/src/ast/babel_ast_host.d.ts +1 -1
  32. package/linker/babel/src/babel_core.d.ts +36 -0
  33. package/linker/babel/src/babel_declaration_scope.d.ts +1 -1
  34. package/linker/babel/src/babel_plugin.d.ts +1 -8
  35. package/linker/babel/src/es2015_linker_plugin.d.ts +2 -2
  36. package/linker/src/ast/typescript/typescript_ast_host.d.ts +1 -1
  37. package/linker/src/file_linker/emit_scopes/emit_scope.d.ts +1 -2
  38. package/linker/src/file_linker/emit_scopes/iife_emit_scope.d.ts +1 -1
  39. package/linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.d.ts +1 -2
  40. package/linker/src/file_linker/partial_linkers/partial_component_linker_1.d.ts +1 -2
  41. package/linker/src/file_linker/partial_linkers/partial_directive_linker_1.d.ts +1 -2
  42. package/linker/src/file_linker/partial_linkers/partial_factory_linker_1.d.ts +1 -2
  43. package/linker/src/file_linker/partial_linkers/partial_injectable_linker_1.d.ts +1 -2
  44. package/linker/src/file_linker/partial_linkers/partial_injector_linker_1.d.ts +1 -2
  45. package/linker/src/file_linker/partial_linkers/partial_linker.d.ts +1 -2
  46. package/linker/src/file_linker/partial_linkers/partial_linker_selector.d.ts +2 -2
  47. package/linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.d.ts +1 -2
  48. package/linker/src/file_linker/partial_linkers/partial_pipe_linker_1.d.ts +1 -2
  49. package/linker/src/file_linker/partial_linkers/util.d.ts +1 -2
  50. package/ngcc/index.d.ts +15 -0
  51. package/ngcc/src/analysis/decoration_analyzer.d.ts +1 -1
  52. package/ngcc/src/analysis/module_with_providers_analyzer.d.ts +1 -1
  53. package/ngcc/src/analysis/ngcc_references_registry.d.ts +1 -1
  54. package/ngcc/src/analysis/ngcc_trait_compiler.d.ts +1 -1
  55. package/ngcc/src/analysis/private_declarations_analyzer.d.ts +1 -1
  56. package/ngcc/src/analysis/switch_marker_analyzer.d.ts +1 -1
  57. package/ngcc/src/analysis/types.d.ts +1 -1
  58. package/ngcc/src/dependencies/esm_dependency_host.d.ts +1 -1
  59. package/ngcc/src/execution/cluster/api.d.ts +5 -1
  60. package/ngcc/src/execution/cluster/master.d.ts +5 -3
  61. package/{src/ngtsc/logging/testing/index.d.ts → ngcc/src/execution/cluster/ngcc_cluster_worker.d.ts} +2 -2
  62. package/ngcc/src/host/commonjs_host.d.ts +1 -1
  63. package/ngcc/src/host/commonjs_umd_utils.d.ts +1 -1
  64. package/ngcc/src/host/delegating_host.d.ts +1 -1
  65. package/ngcc/src/host/esm2015_host.d.ts +1 -1
  66. package/ngcc/src/host/esm5_host.d.ts +2 -1
  67. package/ngcc/src/host/ngcc_host.d.ts +1 -1
  68. package/ngcc/src/host/umd_host.d.ts +1 -1
  69. package/ngcc/src/host/utils.d.ts +1 -1
  70. package/ngcc/src/locking/lock_file.d.ts +1 -1
  71. package/ngcc/src/locking/lock_file_with_child_process/index.d.ts +2 -0
  72. package/ngcc/src/locking/lock_file_with_child_process/{unlocker.d.ts → ngcc_lock_unlocker.d.ts} +1 -1
  73. package/ngcc/src/migrations/migration.d.ts +1 -1
  74. package/ngcc/src/migrations/missing_injectable_migration.d.ts +1 -1
  75. package/ngcc/src/migrations/undecorated_child_migration.d.ts +1 -1
  76. package/ngcc/src/migrations/undecorated_parent_migration.d.ts +1 -1
  77. package/ngcc/src/migrations/utils.d.ts +1 -1
  78. package/ngcc/src/packages/build_marker.d.ts +1 -1
  79. package/ngcc/src/packages/bundle_program.d.ts +1 -1
  80. package/ngcc/src/packages/configuration.d.ts +41 -4
  81. package/ngcc/src/packages/entry_point_bundle.d.ts +1 -1
  82. package/ngcc/src/packages/ngcc_compiler_host.d.ts +1 -1
  83. package/ngcc/src/packages/source_file_cache.d.ts +1 -1
  84. package/ngcc/src/packages/transformer.d.ts +1 -1
  85. package/ngcc/src/rendering/commonjs_rendering_formatter.d.ts +1 -1
  86. package/ngcc/src/rendering/dts_renderer.d.ts +1 -1
  87. package/ngcc/src/rendering/esm5_rendering_formatter.d.ts +1 -1
  88. package/ngcc/src/rendering/esm_rendering_formatter.d.ts +1 -1
  89. package/ngcc/src/rendering/renderer.d.ts +1 -1
  90. package/ngcc/src/rendering/rendering_formatter.d.ts +1 -1
  91. package/ngcc/src/rendering/source_maps.d.ts +3 -3
  92. package/ngcc/src/rendering/umd_rendering_formatter.d.ts +1 -1
  93. package/ngcc/src/rendering/utils.d.ts +1 -1
  94. package/ngcc/src/utils.d.ts +1 -1
  95. package/package.json +53 -14
  96. package/private/bazel.d.ts +13 -0
  97. package/private/localize.d.ts +15 -0
  98. package/private/migrations.d.ts +16 -0
  99. package/{src → private}/tooling.d.ts +2 -2
  100. package/src/bin/ng_xi18n.d.ts +10 -0
  101. package/{ngcc/main-ivy-ngcc.d.ts → src/bin/ngc.d.ts} +2 -1
  102. package/src/diagnostics/translate_diagnostics.d.ts +1 -1
  103. package/src/extract_i18n.d.ts +0 -5
  104. package/src/main.d.ts +9 -6
  105. package/src/metadata/bundle_index_host.d.ts +1 -1
  106. package/src/metadata/bundler.d.ts +1 -1
  107. package/src/metadata/collector.d.ts +1 -1
  108. package/src/metadata/evaluator.d.ts +1 -1
  109. package/src/metadata/symbols.d.ts +1 -1
  110. package/src/ngtsc/annotations/src/component.d.ts +1 -1
  111. package/src/ngtsc/annotations/src/diagnostics.d.ts +1 -1
  112. package/src/ngtsc/annotations/src/directive.d.ts +1 -1
  113. package/src/ngtsc/annotations/src/ng_module.d.ts +2 -4
  114. package/src/ngtsc/annotations/src/pipe.d.ts +1 -1
  115. package/src/ngtsc/annotations/src/util.d.ts +2 -4
  116. package/src/ngtsc/core/api/src/adapter.d.ts +1 -1
  117. package/src/ngtsc/core/api/src/interfaces.d.ts +1 -12
  118. package/src/ngtsc/core/api/src/options.d.ts +1 -1
  119. package/src/ngtsc/core/api/src/public_options.d.ts +5 -1
  120. package/src/ngtsc/core/src/compiler.d.ts +2 -8
  121. package/src/ngtsc/core/src/host.d.ts +1 -1
  122. package/src/ngtsc/cycles/src/analyzer.d.ts +1 -1
  123. package/src/ngtsc/cycles/src/imports.d.ts +1 -1
  124. package/src/ngtsc/diagnostics/src/error.d.ts +1 -1
  125. package/src/ngtsc/entry_point/src/generator.d.ts +1 -1
  126. package/src/ngtsc/entry_point/src/private_export_checker.d.ts +1 -1
  127. package/src/ngtsc/file_system/src/compiler_host.d.ts +1 -1
  128. package/src/ngtsc/file_system/src/logical.d.ts +1 -1
  129. package/src/ngtsc/file_system/src/util.d.ts +1 -1
  130. package/src/ngtsc/imports/src/alias.d.ts +1 -1
  131. package/src/ngtsc/imports/src/default.d.ts +1 -1
  132. package/src/ngtsc/imports/src/emitter.d.ts +1 -1
  133. package/src/ngtsc/imports/src/find_export.d.ts +1 -1
  134. package/src/ngtsc/imports/src/references.d.ts +1 -1
  135. package/src/ngtsc/imports/src/resolver.d.ts +1 -1
  136. package/src/ngtsc/incremental/api.d.ts +1 -1
  137. package/src/ngtsc/incremental/src/dependency_tracking.d.ts +1 -1
  138. package/src/ngtsc/incremental/src/incremental.d.ts +1 -1
  139. package/src/ngtsc/incremental/src/state.d.ts +1 -1
  140. package/src/ngtsc/incremental/src/strategy.d.ts +1 -1
  141. package/src/ngtsc/metadata/src/api.d.ts +1 -1
  142. package/src/ngtsc/metadata/src/dts.d.ts +1 -1
  143. package/src/ngtsc/metadata/src/resource_registry.d.ts +1 -1
  144. package/src/ngtsc/metadata/src/util.d.ts +1 -1
  145. package/src/ngtsc/partial_evaluator/index.d.ts +1 -0
  146. package/src/ngtsc/partial_evaluator/src/builtin.d.ts +1 -1
  147. package/src/ngtsc/partial_evaluator/src/diagnostics.d.ts +1 -1
  148. package/src/ngtsc/partial_evaluator/src/dynamic.d.ts +1 -1
  149. package/src/ngtsc/partial_evaluator/src/interface.d.ts +1 -1
  150. package/src/ngtsc/partial_evaluator/src/interpreter.d.ts +1 -1
  151. package/src/ngtsc/partial_evaluator/src/result.d.ts +1 -1
  152. package/src/ngtsc/partial_evaluator/src/ts_helpers.d.ts +1 -1
  153. package/src/ngtsc/program.d.ts +1 -1
  154. package/src/ngtsc/program_driver/src/api.d.ts +1 -1
  155. package/src/ngtsc/program_driver/src/ts_create_program_driver.d.ts +1 -1
  156. package/src/ngtsc/reflection/src/host.d.ts +1 -1
  157. package/src/ngtsc/reflection/src/type_to_value.d.ts +1 -1
  158. package/src/ngtsc/reflection/src/typescript.d.ts +1 -1
  159. package/src/ngtsc/reflection/src/util.d.ts +1 -1
  160. package/src/ngtsc/resource/src/loader.d.ts +1 -1
  161. package/src/ngtsc/scope/src/local.d.ts +1 -1
  162. package/src/ngtsc/scope/src/typecheck.d.ts +1 -1
  163. package/src/ngtsc/shims/api.d.ts +1 -1
  164. package/src/ngtsc/shims/src/adapter.d.ts +1 -1
  165. package/src/ngtsc/shims/src/expando.d.ts +1 -1
  166. package/src/ngtsc/shims/src/factory_generator.d.ts +1 -1
  167. package/src/ngtsc/shims/src/reference_tagger.d.ts +1 -1
  168. package/src/ngtsc/shims/src/summary_generator.d.ts +1 -1
  169. package/src/ngtsc/switch/src/switch.d.ts +1 -1
  170. package/src/ngtsc/transform/src/alias.d.ts +1 -1
  171. package/src/ngtsc/transform/src/api.d.ts +1 -1
  172. package/src/ngtsc/transform/src/compilation.d.ts +1 -1
  173. package/src/ngtsc/transform/src/declaration.d.ts +1 -1
  174. package/src/ngtsc/transform/src/trait.d.ts +1 -1
  175. package/src/ngtsc/transform/src/transform.d.ts +1 -1
  176. package/src/ngtsc/transform/src/utils.d.ts +1 -1
  177. package/src/ngtsc/translator/src/import_manager.d.ts +1 -1
  178. package/src/ngtsc/translator/src/type_translator.d.ts +1 -1
  179. package/src/ngtsc/translator/src/typescript_ast_factory.d.ts +1 -1
  180. package/src/ngtsc/translator/src/typescript_translator.d.ts +1 -1
  181. package/src/ngtsc/tsc_plugin.d.ts +1 -1
  182. package/src/ngtsc/typecheck/api/api.d.ts +1 -1
  183. package/src/ngtsc/typecheck/api/checker.d.ts +7 -4
  184. package/src/ngtsc/typecheck/api/context.d.ts +1 -1
  185. package/src/ngtsc/typecheck/api/scope.d.ts +1 -1
  186. package/src/ngtsc/typecheck/api/symbols.d.ts +1 -1
  187. package/src/ngtsc/typecheck/diagnostics/src/diagnostic.d.ts +1 -1
  188. package/src/ngtsc/typecheck/extended/api/api.d.ts +1 -1
  189. package/src/ngtsc/typecheck/extended/api/extended_template_checker.d.ts +1 -1
  190. package/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.d.ts +1 -1
  191. package/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.d.ts +1 -1
  192. package/src/ngtsc/typecheck/extended/src/extended_template_checker.d.ts +1 -1
  193. package/src/ngtsc/typecheck/src/checker.d.ts +4 -4
  194. package/src/ngtsc/typecheck/src/comments.d.ts +1 -1
  195. package/src/ngtsc/typecheck/src/completion.d.ts +3 -5
  196. package/src/ngtsc/typecheck/src/context.d.ts +1 -1
  197. package/src/ngtsc/typecheck/src/diagnostics.d.ts +1 -1
  198. package/src/ngtsc/typecheck/src/environment.d.ts +1 -1
  199. package/src/ngtsc/typecheck/src/expression.d.ts +1 -1
  200. package/src/ngtsc/typecheck/src/oob.d.ts +3 -4
  201. package/src/ngtsc/typecheck/src/shim.d.ts +1 -1
  202. package/src/ngtsc/typecheck/src/source.d.ts +1 -1
  203. package/src/ngtsc/typecheck/src/tcb_util.d.ts +1 -1
  204. package/src/ngtsc/typecheck/src/template_symbol_builder.d.ts +1 -1
  205. package/src/ngtsc/typecheck/src/ts_util.d.ts +1 -1
  206. package/src/ngtsc/typecheck/src/type_check_block.d.ts +1 -1
  207. package/src/ngtsc/typecheck/src/type_check_file.d.ts +1 -1
  208. package/src/ngtsc/typecheck/src/type_constructor.d.ts +1 -1
  209. package/src/ngtsc/typecheck/src/type_emitter.d.ts +1 -1
  210. package/src/ngtsc/typecheck/src/type_parameter_emitter.d.ts +1 -1
  211. package/src/ngtsc/util/src/typescript.d.ts +1 -1
  212. package/src/ngtsc/util/src/visitor.d.ts +1 -1
  213. package/src/perform_compile.d.ts +1 -2
  214. package/src/perform_watch.d.ts +1 -1
  215. package/src/transformers/api.d.ts +2 -5
  216. package/src/transformers/compiler_host.d.ts +1 -1
  217. package/src/transformers/{downlevel_decorators_transform.d.ts → downlevel_decorators_transform/downlevel_decorators_transform.d.ts} +3 -3
  218. package/src/{ngtsc/routing → transformers/downlevel_decorators_transform}/index.d.ts +2 -3
  219. package/src/transformers/{patch_alias_reference_resolution.d.ts → downlevel_decorators_transform/patch_alias_reference_resolution.d.ts} +2 -2
  220. package/src/transformers/i18n.d.ts +1 -1
  221. package/src/transformers/inline_resources.d.ts +1 -1
  222. package/src/transformers/lower_expressions.d.ts +1 -1
  223. package/src/transformers/metadata_cache.d.ts +1 -1
  224. package/src/transformers/node_emitter.d.ts +1 -1
  225. package/src/transformers/node_emitter_transform.d.ts +1 -1
  226. package/src/transformers/program.d.ts +1 -1
  227. package/src/transformers/r3_metadata_transform.d.ts +1 -1
  228. package/src/transformers/r3_transform.d.ts +1 -1
  229. package/src/transformers/util.d.ts +1 -1
  230. package/index.js +0 -40
  231. package/linker/babel/index.js +0 -25
  232. package/linker/babel/src/ast/babel_ast_factory.js +0 -153
  233. package/linker/babel/src/ast/babel_ast_host.js +0 -181
  234. package/linker/babel/src/babel_declaration_scope.js +0 -67
  235. package/linker/babel/src/babel_plugin.js +0 -38
  236. package/linker/babel/src/es2015_linker_plugin.js +0 -183
  237. package/linker/babel/src/linker_plugin_options.js +0 -13
  238. package/linker/index.js +0 -27
  239. package/linker/src/ast/ast_host.js +0 -20
  240. package/linker/src/ast/ast_value.js +0 -299
  241. package/linker/src/ast/typescript/typescript_ast_host.js +0 -183
  242. package/linker/src/ast/utils.js +0 -31
  243. package/linker/src/fatal_linker_error.js +0 -49
  244. package/linker/src/file_linker/declaration_scope.js +0 -20
  245. package/linker/src/file_linker/emit_scopes/emit_scope.js +0 -57
  246. package/linker/src/file_linker/emit_scopes/iife_emit_scope.js +0 -51
  247. package/linker/src/file_linker/file_linker.js +0 -97
  248. package/linker/src/file_linker/get_source_file.js +0 -42
  249. package/linker/src/file_linker/linker_environment.js +0 -38
  250. package/linker/src/file_linker/linker_options.js +0 -29
  251. package/linker/src/file_linker/needs_linking.js +0 -41
  252. package/linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.js +0 -47
  253. package/linker/src/file_linker/partial_linkers/partial_component_linker_1.js +0 -210
  254. package/linker/src/file_linker/partial_linkers/partial_directive_linker_1.js +0 -154
  255. package/linker/src/file_linker/partial_linkers/partial_factory_linker_1.js +0 -70
  256. package/linker/src/file_linker/partial_linkers/partial_injectable_linker_1.js +0 -74
  257. package/linker/src/file_linker/partial_linkers/partial_injector_linker_1.js +0 -56
  258. package/linker/src/file_linker/partial_linkers/partial_linker.js +0 -13
  259. package/linker/src/file_linker/partial_linkers/partial_linker_selector.js +0 -194
  260. package/linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.js +0 -126
  261. package/linker/src/file_linker/partial_linkers/partial_pipe_linker_1.js +0 -59
  262. package/linker/src/file_linker/partial_linkers/util.js +0 -95
  263. package/linker/src/file_linker/translator.js +0 -40
  264. package/linker/src/linker_import_generator.js +0 -43
  265. package/ngcc/index.js +0 -33
  266. package/ngcc/main-ivy-ngcc.js +0 -12
  267. package/ngcc/main-ngcc.js +0 -54
  268. package/ngcc/src/analysis/decoration_analyzer.js +0 -268
  269. package/ngcc/src/analysis/migration_host.js +0 -108
  270. package/ngcc/src/analysis/module_with_providers_analyzer.js +0 -197
  271. package/ngcc/src/analysis/ngcc_references_registry.js +0 -65
  272. package/ngcc/src/analysis/ngcc_trait_compiler.js +0 -117
  273. package/ngcc/src/analysis/private_declarations_analyzer.js +0 -63
  274. package/ngcc/src/analysis/switch_marker_analyzer.js +0 -50
  275. package/ngcc/src/analysis/types.js +0 -15
  276. package/ngcc/src/analysis/util.js +0 -36
  277. package/ngcc/src/command_line_options.js +0 -156
  278. package/ngcc/src/constants.js +0 -23
  279. package/ngcc/src/dependencies/commonjs_dependency_host.js +0 -129
  280. package/ngcc/src/dependencies/dependency_host.js +0 -143
  281. package/ngcc/src/dependencies/dependency_resolver.js +0 -180
  282. package/ngcc/src/dependencies/dts_dependency_host.js +0 -35
  283. package/ngcc/src/dependencies/esm_dependency_host.js +0 -307
  284. package/ngcc/src/dependencies/module_resolver.js +0 -269
  285. package/ngcc/src/dependencies/umd_dependency_host.js +0 -53
  286. package/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.js +0 -70
  287. package/ngcc/src/entry_point_finder/entry_point_collector.js +0 -157
  288. package/ngcc/src/entry_point_finder/interface.js +0 -13
  289. package/ngcc/src/entry_point_finder/program_based_entry_point_finder.js +0 -132
  290. package/ngcc/src/entry_point_finder/targeted_entry_point_finder.js +0 -268
  291. package/ngcc/src/entry_point_finder/tracing_entry_point_finder.js +0 -78
  292. package/ngcc/src/entry_point_finder/utils.js +0 -234
  293. package/ngcc/src/execution/analyze_entry_points.js +0 -197
  294. package/ngcc/src/execution/api.js +0 -13
  295. package/ngcc/src/execution/cluster/api.js +0 -20
  296. package/ngcc/src/execution/cluster/executor.js +0 -52
  297. package/ngcc/src/execution/cluster/master.js +0 -311
  298. package/ngcc/src/execution/cluster/package_json_updater.js +0 -79
  299. package/ngcc/src/execution/cluster/utils.js +0 -77
  300. package/ngcc/src/execution/cluster/worker.js +0 -123
  301. package/ngcc/src/execution/create_compile_function.js +0 -76
  302. package/ngcc/src/execution/single_process_executor.js +0 -91
  303. package/ngcc/src/execution/tasks/api.js +0 -35
  304. package/ngcc/src/execution/tasks/completion.js +0 -79
  305. package/ngcc/src/execution/tasks/queues/base_task_queue.js +0 -120
  306. package/ngcc/src/execution/tasks/queues/parallel_task_queue.js +0 -87
  307. package/ngcc/src/execution/tasks/queues/serial_task_queue.js +0 -49
  308. package/ngcc/src/execution/tasks/utils.js +0 -167
  309. package/ngcc/src/host/commonjs_host.js +0 -261
  310. package/ngcc/src/host/commonjs_umd_utils.js +0 -210
  311. package/ngcc/src/host/delegating_host.js +0 -156
  312. package/ngcc/src/host/esm2015_host.js +0 -2441
  313. package/ngcc/src/host/esm5_host.js +0 -744
  314. package/ngcc/src/host/ngcc_host.js +0 -29
  315. package/ngcc/src/host/umd_host.js +0 -539
  316. package/ngcc/src/host/utils.js +0 -26
  317. package/ngcc/src/locking/async_locker.js +0 -121
  318. package/ngcc/src/locking/lock_file.js +0 -18
  319. package/ngcc/src/locking/lock_file_with_child_process/index.js +0 -93
  320. package/ngcc/src/locking/lock_file_with_child_process/unlocker.js +0 -46
  321. package/ngcc/src/locking/lock_file_with_child_process/util.js +0 -43
  322. package/ngcc/src/locking/sync_locker.js +0 -67
  323. package/ngcc/src/main.js +0 -163
  324. package/ngcc/src/migrations/migration.js +0 -13
  325. package/ngcc/src/migrations/missing_injectable_migration.js +0 -227
  326. package/ngcc/src/migrations/undecorated_child_migration.js +0 -90
  327. package/ngcc/src/migrations/undecorated_parent_migration.js +0 -103
  328. package/ngcc/src/migrations/utils.js +0 -137
  329. package/ngcc/src/ngcc_options.js +0 -135
  330. package/ngcc/src/packages/build_marker.js +0 -124
  331. package/ngcc/src/packages/bundle_program.js +0 -80
  332. package/ngcc/src/packages/configuration.js +0 -277
  333. package/ngcc/src/packages/entry_point.js +0 -267
  334. package/ngcc/src/packages/entry_point_bundle.js +0 -96
  335. package/ngcc/src/packages/entry_point_manifest.js +0 -207
  336. package/ngcc/src/packages/ngcc_compiler_host.js +0 -101
  337. package/ngcc/src/packages/patch_ts_expando_initializer.js +0 -174
  338. package/ngcc/src/packages/source_file_cache.js +0 -207
  339. package/ngcc/src/packages/transformer.js +0 -157
  340. package/ngcc/src/path_mappings.js +0 -27
  341. package/ngcc/src/rendering/commonjs_rendering_formatter.js +0 -106
  342. package/ngcc/src/rendering/dts_renderer.js +0 -170
  343. package/ngcc/src/rendering/esm5_rendering_formatter.js +0 -70
  344. package/ngcc/src/rendering/esm_rendering_formatter.js +0 -291
  345. package/ngcc/src/rendering/ngcc_import_rewriter.js +0 -49
  346. package/ngcc/src/rendering/renderer.js +0 -204
  347. package/ngcc/src/rendering/rendering_formatter.js +0 -15
  348. package/ngcc/src/rendering/source_maps.js +0 -68
  349. package/ngcc/src/rendering/umd_rendering_formatter.js +0 -326
  350. package/ngcc/src/rendering/utils.js +0 -35
  351. package/ngcc/src/utils.js +0 -182
  352. package/ngcc/src/writing/cleaning/cleaning_strategies.js +0 -80
  353. package/ngcc/src/writing/cleaning/package_cleaner.js +0 -126
  354. package/ngcc/src/writing/cleaning/utils.js +0 -30
  355. package/ngcc/src/writing/file_writer.js +0 -13
  356. package/ngcc/src/writing/in_place_file_writer.js +0 -90
  357. package/ngcc/src/writing/new_entry_point_file_writer.js +0 -214
  358. package/ngcc/src/writing/package_json_updater.js +0 -182
  359. package/src/diagnostics/translate_diagnostics.js +0 -61
  360. package/src/diagnostics/typescript_version.js +0 -96
  361. package/src/extract_i18n.js +0 -62
  362. package/src/language_services.js +0 -34
  363. package/src/main.js +0 -210
  364. package/src/metadata/bundle_index_host.js +0 -133
  365. package/src/metadata/bundler.js +0 -624
  366. package/src/metadata/collector.js +0 -799
  367. package/src/metadata/evaluator.js +0 -677
  368. package/src/metadata/index.js +0 -24
  369. package/src/metadata/index_writer.js +0 -80
  370. package/src/metadata/schema.js +0 -136
  371. package/src/metadata/symbols.js +0 -149
  372. package/src/ngtsc/annotations/index.js +0 -35
  373. package/src/ngtsc/annotations/src/api.js +0 -20
  374. package/src/ngtsc/annotations/src/component.js +0 -1338
  375. package/src/ngtsc/annotations/src/diagnostics.js +0 -174
  376. package/src/ngtsc/annotations/src/directive.js +0 -724
  377. package/src/ngtsc/annotations/src/factory.js +0 -32
  378. package/src/ngtsc/annotations/src/injectable.js +0 -277
  379. package/src/ngtsc/annotations/src/metadata.js +0 -160
  380. package/src/ngtsc/annotations/src/ng_module.js +0 -677
  381. package/src/ngtsc/annotations/src/pipe.js +0 -171
  382. package/src/ngtsc/annotations/src/references_registry.js +0 -38
  383. package/src/ngtsc/annotations/src/util.js +0 -566
  384. package/src/ngtsc/core/api/index.js +0 -25
  385. package/src/ngtsc/core/api/src/adapter.js +0 -20
  386. package/src/ngtsc/core/api/src/interfaces.js +0 -20
  387. package/src/ngtsc/core/api/src/options.js +0 -20
  388. package/src/ngtsc/core/api/src/public_options.js +0 -20
  389. package/src/ngtsc/core/index.js +0 -25
  390. package/src/ngtsc/core/src/compiler.js +0 -1142
  391. package/src/ngtsc/core/src/host.js +0 -273
  392. package/src/ngtsc/cycles/index.js +0 -26
  393. package/src/ngtsc/cycles/src/analyzer.js +0 -163
  394. package/src/ngtsc/cycles/src/imports.js +0 -175
  395. package/src/ngtsc/diagnostics/index.js +0 -33
  396. package/src/ngtsc/diagnostics/src/error.js +0 -69
  397. package/src/ngtsc/diagnostics/src/error_code.js +0 -235
  398. package/src/ngtsc/diagnostics/src/util.js +0 -35
  399. package/src/ngtsc/entry_point/index.js +0 -29
  400. package/src/ngtsc/entry_point/src/generator.js +0 -45
  401. package/src/ngtsc/entry_point/src/logic.js +0 -61
  402. package/src/ngtsc/entry_point/src/private_export_checker.js +0 -137
  403. package/src/ngtsc/entry_point/src/reference_graph.js +0 -91
  404. package/src/ngtsc/file_system/index.js +0 -45
  405. package/src/ngtsc/file_system/src/compiler_host.js +0 -80
  406. package/src/ngtsc/file_system/src/helpers.js +0 -135
  407. package/src/ngtsc/file_system/src/invalid_file_system.js +0 -120
  408. package/src/ngtsc/file_system/src/logical.js +0 -100
  409. package/src/ngtsc/file_system/src/node_js_file_system.js +0 -179
  410. package/src/ngtsc/file_system/src/types.js +0 -20
  411. package/src/ngtsc/file_system/src/util.js +0 -38
  412. package/src/ngtsc/file_system/testing/index.d.ts +0 -13
  413. package/src/ngtsc/file_system/testing/index.js +0 -32
  414. package/src/ngtsc/file_system/testing/src/mock_file_system.d.ts +0 -72
  415. package/src/ngtsc/file_system/testing/src/mock_file_system.js +0 -333
  416. package/src/ngtsc/file_system/testing/src/mock_file_system_native.d.ts +0 -16
  417. package/src/ngtsc/file_system/testing/src/mock_file_system_native.js +0 -85
  418. package/src/ngtsc/file_system/testing/src/mock_file_system_posix.d.ts +0 -13
  419. package/src/ngtsc/file_system/testing/src/mock_file_system_posix.js +0 -68
  420. package/src/ngtsc/file_system/testing/src/mock_file_system_windows.d.ts +0 -13
  421. package/src/ngtsc/file_system/testing/src/mock_file_system_windows.js +0 -68
  422. package/src/ngtsc/file_system/testing/src/test_helper.d.ts +0 -17
  423. package/src/ngtsc/file_system/testing/src/test_helper.js +0 -142
  424. package/src/ngtsc/imports/index.js +0 -43
  425. package/src/ngtsc/imports/src/alias.js +0 -158
  426. package/src/ngtsc/imports/src/core.js +0 -98
  427. package/src/ngtsc/imports/src/default.js +0 -153
  428. package/src/ngtsc/imports/src/emitter.js +0 -317
  429. package/src/ngtsc/imports/src/find_export.js +0 -82
  430. package/src/ngtsc/imports/src/reexport.js +0 -20
  431. package/src/ngtsc/imports/src/references.js +0 -171
  432. package/src/ngtsc/imports/src/resolver.js +0 -39
  433. package/src/ngtsc/incremental/api.js +0 -20
  434. package/src/ngtsc/incremental/index.js +0 -29
  435. package/src/ngtsc/incremental/semantic_graph/index.js +0 -34
  436. package/src/ngtsc/incremental/semantic_graph/src/api.js +0 -51
  437. package/src/ngtsc/incremental/semantic_graph/src/graph.js +0 -302
  438. package/src/ngtsc/incremental/semantic_graph/src/type_parameters.js +0 -55
  439. package/src/ngtsc/incremental/semantic_graph/src/util.js +0 -111
  440. package/src/ngtsc/incremental/src/dependency_tracking.js +0 -165
  441. package/src/ngtsc/incremental/src/incremental.js +0 -393
  442. package/src/ngtsc/incremental/src/noop.js +0 -26
  443. package/src/ngtsc/incremental/src/state.js +0 -30
  444. package/src/ngtsc/incremental/src/strategy.js +0 -99
  445. package/src/ngtsc/indexer/index.js +0 -27
  446. package/src/ngtsc/indexer/src/api.js +0 -45
  447. package/src/ngtsc/indexer/src/context.js +0 -40
  448. package/src/ngtsc/indexer/src/template.js +0 -324
  449. package/src/ngtsc/indexer/src/transform.js +0 -66
  450. package/src/ngtsc/logging/index.js +0 -25
  451. package/src/ngtsc/logging/src/console_logger.js +0 -75
  452. package/src/ngtsc/logging/src/logger.js +0 -28
  453. package/src/ngtsc/logging/testing/index.js +0 -23
  454. package/src/ngtsc/logging/testing/src/mock_logger.d.ts +0 -20
  455. package/src/ngtsc/logging/testing/src/mock_logger.js +0 -64
  456. package/src/ngtsc/metadata/index.js +0 -39
  457. package/src/ngtsc/metadata/src/api.js +0 -26
  458. package/src/ngtsc/metadata/src/dts.js +0 -168
  459. package/src/ngtsc/metadata/src/inheritance.js +0 -122
  460. package/src/ngtsc/metadata/src/property_mapping.js +0 -244
  461. package/src/ngtsc/metadata/src/registry.js +0 -133
  462. package/src/ngtsc/metadata/src/resource_registry.js +0 -109
  463. package/src/ngtsc/metadata/src/util.js +0 -275
  464. package/src/ngtsc/partial_evaluator/index.js +0 -31
  465. package/src/ngtsc/partial_evaluator/src/builtin.js +0 -125
  466. package/src/ngtsc/partial_evaluator/src/diagnostics.js +0 -193
  467. package/src/ngtsc/partial_evaluator/src/dynamic.js +0 -109
  468. package/src/ngtsc/partial_evaluator/src/interface.js +0 -42
  469. package/src/ngtsc/partial_evaluator/src/interpreter.js +0 -780
  470. package/src/ngtsc/partial_evaluator/src/known_declaration.js +0 -57
  471. package/src/ngtsc/partial_evaluator/src/result.js +0 -72
  472. package/src/ngtsc/partial_evaluator/src/ts_helpers.js +0 -121
  473. package/src/ngtsc/perf/index.js +0 -28
  474. package/src/ngtsc/perf/src/api.js +0 -291
  475. package/src/ngtsc/perf/src/clock.js +0 -30
  476. package/src/ngtsc/perf/src/noop.js +0 -37
  477. package/src/ngtsc/perf/src/recorder.js +0 -143
  478. package/src/ngtsc/program.js +0 -360
  479. package/src/ngtsc/program_driver/index.js +0 -25
  480. package/src/ngtsc/program_driver/src/api.js +0 -36
  481. package/src/ngtsc/program_driver/src/ts_create_program_driver.js +0 -200
  482. package/src/ngtsc/reflection/index.js +0 -36
  483. package/src/ngtsc/reflection/src/host.js +0 -88
  484. package/src/ngtsc/reflection/src/type_to_value.js +0 -259
  485. package/src/ngtsc/reflection/src/typescript.js +0 -640
  486. package/src/ngtsc/reflection/src/util.js +0 -37
  487. package/src/ngtsc/resource/index.js +0 -23
  488. package/src/ngtsc/resource/src/loader.js +0 -285
  489. package/src/ngtsc/routing/index.js +0 -26
  490. package/src/ngtsc/routing/src/analyzer.d.ts +0 -37
  491. package/src/ngtsc/routing/src/analyzer.js +0 -82
  492. package/src/ngtsc/routing/src/lazy.d.ts +0 -19
  493. package/src/ngtsc/routing/src/lazy.js +0 -239
  494. package/src/ngtsc/routing/src/route.d.ts +0 -23
  495. package/src/ngtsc/routing/src/route.js +0 -77
  496. package/src/ngtsc/scope/index.js +0 -29
  497. package/src/ngtsc/scope/src/api.js +0 -20
  498. package/src/ngtsc/scope/src/component_scope.js +0 -69
  499. package/src/ngtsc/scope/src/dependency.js +0 -201
  500. package/src/ngtsc/scope/src/local.js +0 -665
  501. package/src/ngtsc/scope/src/typecheck.js +0 -120
  502. package/src/ngtsc/shims/api.js +0 -13
  503. package/src/ngtsc/shims/index.js +0 -39
  504. package/src/ngtsc/shims/src/adapter.js +0 -266
  505. package/src/ngtsc/shims/src/expando.js +0 -147
  506. package/src/ngtsc/shims/src/factory_generator.js +0 -292
  507. package/src/ngtsc/shims/src/reference_tagger.js +0 -94
  508. package/src/ngtsc/shims/src/summary_generator.js +0 -101
  509. package/src/ngtsc/shims/src/util.js +0 -41
  510. package/src/ngtsc/sourcemaps/index.js +0 -27
  511. package/src/ngtsc/sourcemaps/src/content_origin.js +0 -48
  512. package/src/ngtsc/sourcemaps/src/raw_source_map.js +0 -13
  513. package/src/ngtsc/sourcemaps/src/segment_marker.js +0 -55
  514. package/src/ngtsc/sourcemaps/src/source_file.js +0 -519
  515. package/src/ngtsc/sourcemaps/src/source_file_loader.js +0 -234
  516. package/src/ngtsc/switch/index.js +0 -23
  517. package/src/ngtsc/switch/src/switch.js +0 -141
  518. package/src/ngtsc/transform/index.js +0 -36
  519. package/src/ngtsc/transform/src/alias.js +0 -46
  520. package/src/ngtsc/transform/src/api.js +0 -76
  521. package/src/ngtsc/transform/src/compilation.js +0 -862
  522. package/src/ngtsc/transform/src/declaration.js +0 -234
  523. package/src/ngtsc/transform/src/trait.js +0 -111
  524. package/src/ngtsc/transform/src/transform.js +0 -333
  525. package/src/ngtsc/transform/src/utils.js +0 -73
  526. package/src/ngtsc/translator/index.js +0 -37
  527. package/src/ngtsc/translator/src/api/ast_factory.js +0 -20
  528. package/src/ngtsc/translator/src/api/import_generator.js +0 -20
  529. package/src/ngtsc/translator/src/context.js +0 -47
  530. package/src/ngtsc/translator/src/import_manager.js +0 -77
  531. package/src/ngtsc/translator/src/translator.js +0 -347
  532. package/src/ngtsc/translator/src/type_translator.js +0 -220
  533. package/src/ngtsc/translator/src/typescript_ast_factory.js +0 -251
  534. package/src/ngtsc/translator/src/typescript_translator.js +0 -34
  535. package/src/ngtsc/tsc_plugin.js +0 -129
  536. package/src/ngtsc/typecheck/api/api.js +0 -20
  537. package/src/ngtsc/typecheck/api/checker.js +0 -44
  538. package/src/ngtsc/typecheck/api/completion.js +0 -29
  539. package/src/ngtsc/typecheck/api/context.js +0 -20
  540. package/src/ngtsc/typecheck/api/index.js +0 -27
  541. package/src/ngtsc/typecheck/api/scope.js +0 -20
  542. package/src/ngtsc/typecheck/api/symbols.js +0 -35
  543. package/src/ngtsc/typecheck/diagnostics/index.js +0 -23
  544. package/src/ngtsc/typecheck/diagnostics/src/diagnostic.js +0 -141
  545. package/src/ngtsc/typecheck/diagnostics/src/id.js +0 -37
  546. package/src/ngtsc/typecheck/extended/api/api.js +0 -124
  547. package/src/ngtsc/typecheck/extended/api/extended_template_checker.js +0 -20
  548. package/src/ngtsc/typecheck/extended/api/index.js +0 -23
  549. package/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.js +0 -52
  550. package/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.js +0 -64
  551. package/src/ngtsc/typecheck/extended/index.js +0 -23
  552. package/src/ngtsc/typecheck/extended/src/extended_template_checker.js +0 -55
  553. package/src/ngtsc/typecheck/index.js +0 -29
  554. package/src/ngtsc/typecheck/src/checker.js +0 -764
  555. package/src/ngtsc/typecheck/src/comments.js +0 -181
  556. package/src/ngtsc/typecheck/src/completion.js +0 -230
  557. package/src/ngtsc/typecheck/src/context.js +0 -424
  558. package/src/ngtsc/typecheck/src/diagnostics.js +0 -114
  559. package/src/ngtsc/typecheck/src/dom.js +0 -87
  560. package/src/ngtsc/typecheck/src/environment.js +0 -160
  561. package/src/ngtsc/typecheck/src/expression.js +0 -417
  562. package/src/ngtsc/typecheck/src/line_mappings.js +0 -77
  563. package/src/ngtsc/typecheck/src/oob.js +0 -181
  564. package/src/ngtsc/typecheck/src/shim.js +0 -52
  565. package/src/ngtsc/typecheck/src/source.js +0 -91
  566. package/src/ngtsc/typecheck/src/tcb_util.js +0 -165
  567. package/src/ngtsc/typecheck/src/template_semantics.js +0 -52
  568. package/src/ngtsc/typecheck/src/template_symbol_builder.js +0 -551
  569. package/src/ngtsc/typecheck/src/ts_util.js +0 -202
  570. package/src/ngtsc/typecheck/src/type_check_block.js +0 -2212
  571. package/src/ngtsc/typecheck/src/type_check_file.js +0 -115
  572. package/src/ngtsc/typecheck/src/type_constructor.js +0 -255
  573. package/src/ngtsc/typecheck/src/type_emitter.js +0 -164
  574. package/src/ngtsc/typecheck/src/type_parameter_emitter.js +0 -115
  575. package/src/ngtsc/util/src/path.js +0 -33
  576. package/src/ngtsc/util/src/typescript.js +0 -176
  577. package/src/ngtsc/util/src/visitor.js +0 -119
  578. package/src/ngtsc/xi18n/index.js +0 -22
  579. package/src/ngtsc/xi18n/src/context.js +0 -20
  580. package/src/perform_compile.js +0 -322
  581. package/src/perform_watch.js +0 -263
  582. package/src/tooling.js +0 -47
  583. package/src/transformers/api.js +0 -42
  584. package/src/transformers/compiler_host.js +0 -623
  585. package/src/transformers/downlevel_decorators_transform.js +0 -612
  586. package/src/transformers/entry_points.js +0 -25
  587. package/src/transformers/i18n.js +0 -76
  588. package/src/transformers/inline_resources.js +0 -287
  589. package/src/transformers/lower_expressions.js +0 -365
  590. package/src/transformers/metadata_cache.js +0 -96
  591. package/src/transformers/metadata_reader.js +0 -120
  592. package/src/transformers/node_emitter.js +0 -637
  593. package/src/transformers/node_emitter_transform.js +0 -88
  594. package/src/transformers/patch_alias_reference_resolution.js +0 -129
  595. package/src/transformers/program.js +0 -1000
  596. package/src/transformers/r3_metadata_transform.js +0 -73
  597. package/src/transformers/r3_transform.js +0 -44
  598. package/src/transformers/util.js +0 -122
  599. package/src/typescript_support.js +0 -74
  600. package/src/version.js +0 -28
@@ -1,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
- 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
- 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 = tslib_1.__spreadArray([], tslib_1.__read(node.members));
96
- try {
97
- for (var _b = 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 = 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 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
- 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 = 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 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 = 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 = default_1.getDefaultImportDeclaration(node);
327
- if (importDecl !== null) {
328
- defaultImportTracker.recordUsedImport(importDecl);
329
- }
330
- };
331
- }
332
- });
333
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy90cmFuc2Zvcm0vc3JjL3RyYW5zZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7O0lBRUgsOENBQStDO0lBQy9DLCtCQUFpQztJQUdqQywrRUFBc0U7SUFDdEUsNkRBQW1EO0lBRW5ELHlFQUFnSTtJQUNoSSw0RUFBNEU7SUFJNUUsNkVBQW1DO0lBRW5DLElBQU0sYUFBYSxHQUFHLElBQUksR0FBRyxFQUFnQixDQUFDO0lBRTlDLElBQU0sNEJBQTRCLEdBQUcsc0JBQXNCLENBQUM7SUFXNUQsU0FBZ0IsbUJBQW1CLENBQy9CLFdBQTBCLEVBQUUsU0FBeUIsRUFBRSxjQUE4QixFQUNyRixvQkFBMEMsRUFBRSxJQUFrQixFQUFFLE1BQWUsRUFDL0Usd0JBQWlDO1FBQ25DLElBQU0saUJBQWlCLEdBQUcsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNqRSxPQUFPLFVBQUMsT0FBaUM7WUFDdkMsT0FBTyxVQUFDLElBQW1CO2dCQUN6QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQ2YsZ0JBQVMsQ0FBQyxPQUFPLEVBQ2pCLGNBQU0sT0FBQSxzQkFBc0IsQ0FDeEIsV0FBVyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQzdELHdCQUF3QixFQUFFLGlCQUFpQixDQUFDLEVBRjFDLENBRTBDLENBQUMsQ0FBQztZQUN4RCxDQUFDLENBQUM7UUFDSixDQUFDLENBQUM7SUFDSixDQUFDO0lBZEQsa0RBY0M7SUFFRDs7OztPQUlHO0lBQ0g7UUFBb0MsaURBQU87UUFHekMsK0JBQW9CLFdBQTBCLEVBQVUsWUFBMEI7WUFBbEYsWUFDRSxpQkFBTyxTQUNSO1lBRm1CLGlCQUFXLEdBQVgs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LENBQUMsQ0FBQztZQUNyRCxJQUFJLFVBQVUsS0FBSyxJQUFJLEVBQUU7Z0JBQ3ZCLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ25EO1FBQ0gsQ0FBQyxDQUFDO0lBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0NvbnN0YW50UG9vbH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7RGVmYXVsdEltcG9ydFRyYWNrZXIsIEltcG9ydFJld3JpdGVyfSBmcm9tICcuLi8uLi9pbXBvcnRzJztcbmltcG9ydCB7Z2V0RGVmYXVsdEltcG9ydERlY2xhcmF0aW9ufSBmcm9tICcuLi8uLi9pbXBvcnRzL3NyYy9kZWZhdWx0JztcbmltcG9ydCB7UGVyZlBoYXNlLCBQZXJmUmVjb3JkZXJ9IGZyb20gJy4uLy4uL3BlcmYnO1xuaW1wb3J0IHtEZWNvcmF0b3IsIFJlZmxlY3Rpb25Ib3N0fSBmcm9tICcuLi8uLi9yZWZsZWN0aW9uJztcbmltcG9ydCB7SW1wb3J0TWFuYWdlciwgUmVjb3JkV3JhcHBlZE5vZGVGbiwgdHJhbnNsYXRlRXhwcmVzc2lvbiwgdHJhbnNsYXRlU3RhdGVtZW50LCBUcmFuc2xhdG9yT3B0aW9uc30gZnJvbSAnLi4vLi4vdHJhbnNsYXRvcic7XG5pbXBvcnQge3Zpc2l0LCBWaXNpdExpc3RFbnRyeVJlc3VsdCwgVmlzaXRvcn0gZnJvbSAnLi4vLi4vdXRpbC9zcmMvdmlzaXRvcic7XG5cbmltcG9ydCB7Q29tcGlsZVJlc3VsdH0gZnJvbSAnLi9hcGknO1xuaW1wb3J0IHtUcmFpdENvbXBpbGVyfSBmcm9tICcuL2NvbXBpbGF0aW9uJztcbmltcG9ydCB7YWRkSW1wb3J0c30gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IE5PX0RFQ09SQVRPUlMgPSBuZXcgU2V0PHRzLkRlY29yYXRvcj4oKTtcblxuY29uc3QgQ0xPU1VSRV9GSUxFX09WRVJWSUVXX1JFR0VYUCA9IC9cXHMrQGZpbGVvdmVydmlld1xccysvaTtcblxuLyoqXG4gKiBNZXRhZGF0YSB0byBzdXBwb3J0IEBmaWxlb3ZlcnZpZXcgYmxvY2tzIChDbG9zdXJlIGFubm90YXRpb25zKSBleHRyYWN0aW5nL3Jlc3RvcmluZy5cbiAqL1xuaW50ZXJmYWNlIEZpbGVPdmVydmlld01ldGEge1xuICBjb21tZW50czogdHMuU3ludGhlc2l6ZWRDb21tZW50W107XG4gIGhvc3Q6IHRzLlN0YXRlbWVudDtcbiAgdHJhaWxpbmc6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpdnlUcmFuc2Zvcm1GYWN0b3J5KFxuICAgIGNvbXBpbGF0aW9uOiBUcmFpdENvbXBpbGVyLCByZWZsZWN0b3I6IFJlZmxlY3Rpb25Ib3N0LCBpbXBvcnRSZXdyaXRlcjogSW1wb3J0UmV3cml0ZXIsXG4gICAgZGVmYXVsdEltcG9ydFRyYWNrZXI6IERlZmF1bHRJbXBvcnRUcmFja2VyLCBwZXJmOiBQZXJmUmVjb3JkZXIsIGlzQ29yZTogYm9vbGVhbixcbiAgICBpc0Nsb3N1cmVDb21waWxlckVuYWJsZWQ6IGJvb2xlYW4pOiB0cy5UcmFuc2Zvcm1lckZhY3Rvcnk8dHMuU291cmNlRmlsZT4ge1xuICBjb25zdCByZWNvcmRXcmFwcGVkTm9kZSA9IGNyZWF0ZVJlY29yZGVyRm4oZGVmYXVsdEltcG9ydFRyYWNrZXIpO1xuICByZXR1cm4gKGNvbnRleHQ6IHRzLlRyYW5zZm9ybWF0aW9uQ29udGV4dCk6IHRzLlRyYW5zZm9ybWVyPHRzLlNvdXJjZUZpbGU+ID0+IHtcbiAgICByZXR1cm4gKGZpbGU6IHRzLlNvdXJjZUZpbGUpOiB0cy5Tb3VyY2VGaWxlID0+IHtcbiAgICAgIHJldHVybiBwZXJmLmluUGhhc2UoXG4gICAgICAgICAgUGVyZlBoYXNlLkNvbXBpbGUsXG4gICAgICAgICAgKCkgPT4gdHJhbnNmb3JtSXZ5U291cmNlRmlsZShcbiAgICAgICAgICAgICAgY29tcGlsYXRpb24sIGNvbnRleHQsIHJlZmxlY3RvciwgaW1wb3J0UmV3cml0ZXIsIGZpbGUsIGlzQ29yZSxcbiAgICAgICAgICAgICAgaXNDbG9zdXJlQ29tcGlsZXJFbmFibGVkLCByZWNvcmRXcmFwcGVkTm9kZSkpO1xuICAgIH07XG4gIH07XG59XG5cbi8qKlxuICogVmlzaXRzIGFsbCBjbGFzc2VzLCBwZXJmb3JtcyBJdnkgY29tcGlsYXRpb24gd2hlcmUgQW5ndWxhciBkZWNvcmF0b3JzIGFyZSBwcmVzZW50IGFuZCBjb2xsZWN0c1xuICogcmVzdWx0IGluIGEgTWFwIHRoYXQgYXNzb2NpYXRlcyBhIHRzLkNsYXNzRGVjbGFyYXRpb24gd2l0aCBJdnkgY29tcGlsYXRpb24gcmVzdWx0cy4gVGhpcyB2aXNpdG9yXG4gKiBkb2VzIE5PVCBwZXJmb3JtIGFueSBUUyB0cmFuc2Zvcm1hdGlvbnMuXG4gKi9cbmNsYXNzIEl2eUNvbXBpbGF0aW9uVmlzaXRvciBleHRlbmRzIFZpc2l0b3Ige1xuICBwdWJsaWMgY2xhc3NDb21waWxhdGlvbk1hcCA9IG5ldyBNYXA8dHMuQ2xhc3NEZWNsYXJhdGlvbiwgQ29tcGlsZVJlc3VsdFtdPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29tcGlsYXRpb246IFRyYWl0Q29tcGlsZXIsIHByaXZhdGUgY29uc3RhbnRQb29sOiBDb25zdGFudFBvb2wpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgdmlzaXRDbGFzc0RlY2xhcmF0aW9uKG5vZGU6IHRzLkNsYXNzRGVjbGFyYXRpb24pOlxuICAgICAgVmlzaXRMaXN0RW50cnlSZXN1bHQ8dHMuU3RhdGVtZW50LCB0cy5DbGFzc0RlY2xhcmF0aW9uPiB7XG4gICAgLy8gRGV0ZXJtaW5lIGlmIHRoaXMgY2xhc3MgaGFzIGFuIEl2eSBmaWVsZCB0aGF0IG5lZWRzIHRvIGJlIGFkZGVkLCBhbmQgY29tcGlsZSB0aGUgZmllbGRcbiAgICAvLyB0byBhbiBleHByZXNzaW9uIGlmIHNvLlxuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuY29tcGlsYXRpb24uY29tcGlsZShub2RlLCB0aGlzLmNvbnN0YW50UG9vbCk7XG4gICAgaWYgKHJlc3VsdCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5jbGFzc0NvbXBpbGF0aW9uTWFwLnNldChub2RlLCByZXN1bHQpO1xuICAgIH1cbiAgICByZXR1cm4ge25vZGV9O1xuICB9XG59XG5cbi8qKlxuICogVmlzaXRzIGFsbCBjbGFzc2VzIGFuZCBwZXJmb3JtcyB0cmFuc2Zvcm1hdGlvbiBvZiBjb3JyZXNwb25kaW5nIFRTIG5vZGVzIGJhc2VkIG9uIHRoZSBJdnlcbiAqIGNvbXBpbGF0aW9uIHJlc3VsdHMgKHByb3ZpZGVkIGFzIGFuIGFyZ3VtZW50KS5cbiAqL1xuY2xhc3MgSXZ5VHJhbnNmb3JtYXRpb25WaXNpdG9yIGV4dGVuZHMgVmlzaXRvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBjb21waWxhdGlvbjogVHJhaXRDb21waWxlcixcbiAgICAgIHByaXZhdGUgY2xhc3NDb21waWxhdGlvbk1hcDogTWFwPHRzLkNsYXNzRGVjbGFyYXRpb24sIENvbXBpbGVSZXN1bHRbXT4sXG4gICAgICBwcml2YXRlIHJlZmxlY3RvcjogUmVmbGVjdGlvbkhvc3QsIHByaXZhdGUgaW1wb3J0TWFuYWdlcjogSW1wb3J0TWFuYWdlcixcbiAgICAgIHByaXZhdGUgcmVjb3JkV3JhcHBlZE5vZGVFeHByOiBSZWNvcmRXcmFwcGVkTm9kZUZuPHRzLkV4cHJlc3Npb24+LFxuICAgICAgcHJpdmF0ZSBpc0Nsb3N1cmVDb21waWxlckVuYWJsZWQ6IGJvb2xlYW4sIHByaXZhdGUgaXNDb3JlOiBib29sZWFuKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHZpc2l0Q2xhc3NEZWNsYXJhdGlvbihub2RlOiB0cy5DbGFzc0RlY2xhcmF0aW9uKTpcbiAgICAgIFZpc2l0TGlzdEVudHJ5UmVzdWx0PHRzLlN0YXRlbWVudCwgdHMuQ2xhc3NEZWNsYXJhdGlvbj4ge1xuICAgIC8vIElmIHRoaXMgY2xhc3MgaXMgbm90IHJlZ2lzdGVyZWQgaW4gdGhlIG1hcCwgaXQgbWVhbnMgdGhhdCBpdCBkb2Vzbid0IGhhdmUgQW5ndWxhciBkZWNvcmF0b3JzLFxuICAgIC8vIHRodXMgbm8gZnVydGhlciBwcm9jZXNzaW5nIGlzIHJlcXVpcmVkLlxuICAgIGlmICghdGhpcy5jbGFzc0NvbXBpbGF0aW9uTWFwLmhhcyhub2RlKSkge1xuICAgICAgcmV0dXJuIHtub2RlfTtcbiAgICB9XG5cbiAgICBjb25zdCB0cmFuc2xhdGVPcHRpb25zOiBUcmFuc2xhdG9yT3B0aW9uczx0cy5FeHByZXNzaW9uPiA9IHtcbiAgICAgIHJlY29yZFdyYXBwZWROb2RlOiB0aGlzLnJlY29yZFdyYXBwZWROb2RlRXhwcixcbiAgICAgIGFubm90YXRlRm9yQ2xvc3VyZUNvbXBpbGVyOiB0aGlzLmlzQ2xvc3VyZUNvbXBpbGVyRW5hYmxlZCxcbiAgICB9O1xuXG4gICAgLy8gVGhlcmUgaXMgYXQgbGVhc3Qgb25lIGZpZWxkIHRvIGFkZC5cbiAgICBjb25zdCBzdGF0ZW1lbnRzOiB0cy5TdGF0ZW1lbnRbXSA9IFtdO1xuICAgIGNvbnN0IG1lbWJlcnMgPSBbLi4ubm9kZS5tZW1iZXJzXTtcblxuICAgIGZvciAoY29uc3QgZmllbGQgb2YgdGhpcy5jbGFzc0NvbXBpbGF0aW9uTWFwLmdldChub2RlKSEpIHtcbiAgICAgIC8vIFRyYW5zbGF0ZSB0aGUgaW5pdGlhbGl6ZXIgZm9yIHRoZSBmaWVsZCBpbnRvIFRTIG5vZGVzLlxuICAgICAgY29uc3QgZXhwck5vZGUgPSB0cmFuc2xhdGVFeHByZXNzaW9uKGZpZWxkLmluaXRpYWxpemVyLCB0aGlzLmltcG9ydE1hbmFnZXIsIHRyYW5zbGF0ZU9wdGlvbnMpO1xuXG4gICAgICAvLyBDcmVhdGUgYSBzdGF0aWMgcHJvcGVydHkgZGVjbGFyYXRpb24gZm9yIHRoZSBuZXcgZmllbGQuXG4gICAgICBjb25zdCBwcm9wZXJ0eSA9IHRzLmNyZWF0ZVByb3BlcnR5KFxuICAgICAgICAgIHVuZGVmaW5lZCwgW3RzLmNyZWF0ZVRva2VuKHRzLlN5bnRheEtpbmQuU3RhdGljS2V5d29yZCldLCBmaWVsZC5uYW1lLCB1bmRlZmluZWQsXG4gICAgICAgICAgdW5kZWZpbmVkLCBleHByTm9kZSk7XG5cbiAgICAgIGlmICh0aGlzLmlzQ2xvc3VyZUNvbXBpbGVyRW5hYmxlZCkge1xuICAgICAgICAvLyBDbG9zdXJlIGNvbXBpbGVyIHRyYW5zZm9ybXMgdGhlIGZvcm0gYFNlcnZpY2UuybVwcm92ID0gWGAgaW50byBgU2VydmljZSTJtXByb3YgPSBYYC4gVG9cbiAgICAgICAgLy8gcHJldmVudCB0aGlzIHRyYW5zZm9ybWF0aW9uLCBzdWNoIGFzc2lnbm1lbnRzIG5lZWQgdG8gYmUgYW5ub3RhdGVkIHdpdGggQG5vY29sbGFwc2UuXG4gICAgICAgIC8vIE5vdGUgdGhhdCB0c2lja2xlIGlzIHR5cGljYWxseSByZXNwb25zaWJsZSBmb3IgYWRkaW5nIHN1Y2ggYW5ub3RhdGlvbnMsIGhvd2V2ZXIgaXRcbiAgICAgICAgLy8gZG9lc24ndCB5ZXQgaGFuZGxlIHN5bnRoZXRpYyBmaWVsZHMgYWRkZWQgZHVyaW5nIG90aGVyIHRyYW5zZm9ybWF0aW9ucy5cbiAgICAgICAgdHMuYWRkU3ludGhldGljTGVhZGluZ0NvbW1lbnQoXG4gICAgICAgICAgICBwcm9wZXJ0eSwgdHMuU3ludGF4S2luZC5NdWx0aUxpbmVDb21tZW50VHJpdmlhLCAnKiBAbm9jb2xsYXBzZSAnLFxuICAgICAgICAgICAgLyogaGFzVHJhaWxpbmdOZXdMaW5lICovIGZhbHNlKTtcbiAgICAgIH1cblxuICAgICAgZmllbGQuc3RhdGVtZW50cy5tYXAoc3RtdCA9PiB0cmFuc2xhdGVTdGF0ZW1lbnQoc3RtdCwgdGhpcy5pbXBvcnRNYW5hZ2VyLCB0cmFuc2xhdGVPcHRpb25zKSlcbiAgICAgICAgICAuZm9yRWFjaChzdG10ID0+IHN0YXRlbWVudHMucHVzaChzdG10KSk7XG5cbiAgICAgIG1lbWJlcnMucHVzaChwcm9wZXJ0eSk7XG4gICAgfVxuXG4gICAgLy8gUmVwbGFjZSB0aGUgY2xhc3MgZGVjbGFyYXRpb24gd2l0aCBhbiB1cGRhdGVkIHZlcnNpb24uXG4gICAgbm9kZSA9IHRzLnVwZGF0ZUNsYXNzRGVjbGFyYXRpb24oXG4gICAgICAgIG5vZGUsXG4gICAgICAgIC8vIFJlbW92ZSB0aGUgZGVjb3JhdG9yIHdoaWNoIHRyaWdnZXJlZCB0aGlzIGNvbXBpbGF0aW9uLCBsZWF2aW5nIHRoZSBvdGhlcnMgYWxvbmUuXG4gICAgICAgIG1heWJlRmlsdGVyRGVjb3JhdG9yKG5vZGUuZGVjb3JhdG9ycywgdGhpcy5jb21waWxhdGlvbi5kZWNvcmF0b3JzRm9yKG5vZGUpKSwgbm9kZS5tb2RpZmllcnMsXG4gICAgICAgIG5vZGUubmFtZSwgbm9kZS50eXBlUGFyYW1ldGVycywgbm9kZS5oZXJpdGFnZUNsYXVzZXMgfHwgW10sXG4gICAgICAgIC8vIE1hcCBvdmVyIHRoZSBjbGFzcyBtZW1iZXJzIGFuZCByZW1vdmUgYW55IEFuZ3VsYXIgZGVjb3JhdG9ycyBmcm9tIHRoZW0uXG4gICAgICAgIG1lbWJlcnMubWFwKG1lbWJlciA9PiB0aGlzLl9zdHJpcEFuZ3VsYXJEZWNvcmF0b3JzKG1lbWJlcikpKTtcbiAgICByZXR1cm4ge25vZGUsIGFmdGVyOiBzdGF0ZW1lbnRzfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYWxsIGRlY29yYXRvcnMgb24gYSBgRGVjbGFyYXRpb25gIHdoaWNoIGFyZSBmcm9tIEBhbmd1bGFyL2NvcmUsIG9yIGFuIGVtcHR5IHNldCBpZiBub25lXG4gICAqIGFyZS5cbiAgICovXG4gIHByaXZhdGUgX2FuZ3VsYXJDb3JlRGVjb3JhdG9ycyhkZWNsOiB0cy5EZWNsYXJhdGlvbik6IFNldDx0cy5EZWNvcmF0b3I+IHtcbiAgICBjb25zdCBkZWNvcmF0b3JzID0gdGhpcy5yZWZsZWN0b3IuZ2V0RGVjb3JhdG9yc09mRGVjbGFyYXRpb24oZGVjbCk7XG4gICAgaWYgKGRlY29yYXRvcnMgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBOT19ERUNPUkFUT1JTO1xuICAgIH1cbiAgICBjb25zdCBjb3JlRGVjb3JhdG9ycyA9IGRlY29yYXRvcnMuZmlsdGVyKGRlYyA9PiB0aGlzLmlzQ29yZSB8fCBpc0Zyb21Bbmd1bGFyQ29yZShkZWMpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoZGVjID0+IGRlYy5ub2RlIGFzIHRzLkRlY29yYXRvcik7XG4gICAgaWYgKGNvcmVEZWNvcmF0b3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBuZXcgU2V0PHRzLkRlY29yYXRvcj4oY29yZURlY29yYXRvcnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gTk9fREVDT1JBVE9SUztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2l2ZW4gYSBgdHMuTm9kZWAsIGZpbHRlciB0aGUgZGVjb3JhdG9ycyBhcnJheSBhbmQgcmV0dXJuIGEgdmVyc2lvbiBjb250YWluaW5nIG9ubHkgbm9uLUFuZ3VsYXJcbiAgICogZGVjb3JhdG9ycy5cbiAgICpcbiAgICogSWYgYWxsIGRlY29yYXRvcnMgYXJlIHJlbW92ZWQgKG9yIG5vbmUgZXhpc3RlZCBpbiB0aGUgZmlyc3QgcGxhY2UpLCB0aGlzIG1ldGhvZCByZXR1cm5zXG4gICAqIGB1bmRlZmluZWRgLlxuICAgKi9cbiAgcHJpdmF0ZSBfbm9uQ29yZURlY29yYXRvcnNPbmx5KG5vZGU6IHRzLkRlY2xhcmF0aW9uKTogdHMuTm9kZUFycmF5PHRzLkRlY29yYXRvcj58dW5kZWZpbmVkIHtcbiAgICAvLyBTaG9ydGN1dCBpZiB0aGUgbm9kZSBoYXMgbm8gZGVjb3JhdG9ycy5cbiAgICBpZiAobm9kZS5kZWNvcmF0b3JzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIC8vIEJ1aWxkIGEgU2V0IG9mIHRoZSBkZWNvcmF0b3JzIG9uIHRoaXMgbm9kZSBmcm9tIEBhbmd1bGFyL2NvcmUuXG4gICAgY29uc3QgY29yZURlY29yYXRvcnMgPSB0aGlzLl9hbmd1bGFyQ29yZURlY29yYXRvcnMobm9kZSk7XG5cbiAgICBpZiAoY29yZURlY29yYXRvcnMuc2l6ZSA9PT0gbm9kZS5kZWNvcmF0b3JzLmxlbmd0aCkge1xuICAgICAgLy8gSWYgYWxsIGRlY29yYXRvcnMgYXJlIHRvIGJlIHJlbW92ZWQsIHJldHVybiBgdW5kZWZpbmVkYC5cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIGlmIChjb3JlRGVjb3JhdG9ycy5zaXplID09PSAwKSB7XG4gICAgICAvLyBJZiBubyBkZWNvcmF0b3JzIG5lZWQgdG8gYmUgcmVtb3ZlZCwgcmV0dXJuIHRoZSBvcmlnaW5hbCBkZWNvcmF0b3JzIGFycmF5LlxuICAgICAgcmV0dXJuIG5vZGUuZGVjb3JhdG9ycztcbiAgICB9XG5cbiAgICAvLyBGaWx0ZXIgb3V0IHRoZSBjb3JlIGRlY29yYXRvcnMuXG4gICAgY29uc3QgZmlsdGVyZWQgPSBub2RlLmRlY29yYXRvcnMuZmlsdGVyKGRlYyA9PiAhY29yZURlY29yYXRvcnMuaGFzKGRlYykpO1xuXG4gICAgLy8gSWYgbm8gZGVjb3JhdG9ycyBzdXJ2aXZlLCByZXR1cm4gYHVuZGVmaW5lZGAuIFRoaXMgY2FuIG9ubHkgaGFwcGVuIGlmIGEgY29yZSBkZWNvcmF0b3IgaXNcbiAgICAvLyByZXBlYXRlZCBvbiB0aGUgbm9kZS5cbiAgICBpZiAoZmlsdGVyZWQubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSBhIG5ldyBgTm9kZUFycmF5YCB3aXRoIHRoZSBmaWx0ZXJlZCBkZWNvcmF0b3JzIHRoYXQgc291cmNlbWFwcyBiYWNrIHRvIHRoZSBvcmlnaW5hbC5cbiAgICBjb25zdCBhcnJheSA9IHRzLmNyZWF0ZU5vZGVBcnJheShmaWx0ZXJlZCk7XG4gICAgKGFycmF5LnBvcyBhcyBudW1iZXIpID0gbm9kZS5kZWNvcmF0b3JzLnBvcztcbiAgICAoYXJyYXkuZW5kIGFzIG51bWJlcikgPSBub2RlLmRlY29yYXRvcnMuZW5kO1xuICAgIHJldHVybiBhcnJheTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgQW5ndWxhciBkZWNvcmF0b3JzIGZyb20gYSBgdHMuTm9kZWAgaW4gYSBzaGFsbG93IG1hbm5lci5cbiAgICpcbiAgICogVGhpcyB3aWxsIHJlbW92ZSBkZWNvcmF0b3JzIGZyb20gY2xhc3MgZWxlbWVudHMgKGdldHRlcnMsIHNldHRlcnMsIHByb3BlcnRpZXMsIG1ldGhvZHMpIGFzIHdlbGxcbiAgICogYXMgcGFyYW1ldGVycyBvZiBjb25zdHJ1Y3RvcnMuXG4gICAqL1xuICBwcml2YXRlIF9zdHJpcEFuZ3VsYXJEZWNvcmF0b3JzPFQgZXh0ZW5kcyB0cy5Ob2RlPihub2RlOiBUKTogVCB7XG4gICAgaWYgKHRzLmlzUGFyYW1ldGVyKG5vZGUpKSB7XG4gICAgICAvLyBTdHJpcCBkZWNvcmF0b3JzIGZyb20gcGFyYW1ldGVycyAocHJvYmFibHkgb2YgdGhlIGNvbnN0cnVjdG9yKS5cbiAgICAgIG5vZGUgPSB0cy51cGRhdGVQYXJhbWV0ZXIoXG4gICAgICAgICAgICAgICAgIG5vZGUsIHRoaXMuX25vbkNvcmVEZWNvcmF0b3JzT25seShub2RlKSwgbm9kZS5tb2RpZmllcnMsIG5vZGUuZG90RG90RG90VG9rZW4sXG4gICAgICAgICAgICAgICAgIG5vZGUubmFtZSwgbm9kZS5xdWVzdGlvblRva2VuLCBub2RlLnR5cGUsIG5vZGUuaW5pdGlhbGl6ZXIpIGFzIFQgJlxuICAgICAgICAgIHRzLlBhcmFtZXRlckRlY2xhcmF0aW9uO1xuICAgIH0gZWxzZSBpZiAodHMuaXNNZXRob2REZWNsYXJhdGlvbihub2RlKSAmJiBub2RlLmRlY29yYXRvcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gU3RyaXAgZGVjb3JhdG9ycyBvZiBtZXRob2RzLlxuICAgICAgbm9kZSA9IHRzLnVwZGF0ZU1ldGhvZChcbiAgICAgICAgICAgICAgICAgbm9kZSwgdGhpcy5fbm9uQ29yZURlY29yYXRvcnNPbmx5KG5vZGUpLCBub2RlLm1vZGlmaWVycywgbm9kZS5hc3Rlcmlza1Rva2VuLFxuICAgICAgICAgICAgICAgICBub2RlLm5hbWUsIG5vZGUucXVlc3Rpb25Ub2tlbiwgbm9kZS50eXBlUGFyYW1ldGVycywgbm9kZS5wYXJhbWV0ZXJzLCBub2RlLnR5cGUsXG4gICAgICAgICAgICAgICAgIG5vZGUuYm9keSkgYXMgVCAmXG4gICAgICAgICAgdHMuTWV0aG9kRGVjbGFyYXRpb247XG4gICAgfSBlbHNlIGlmICh0cy5pc1Byb3BlcnR5RGVjbGFyYXRpb24obm9kZSkgJiYgbm9kZS5kZWNvcmF0b3JzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIFN0cmlwIGRlY29yYXRvcnMgb2YgcHJvcGVydGllcy5cbiAgICAgIG5vZGUgPSB0cy51cGRhdGVQcm9wZXJ0eShcbiAgICAgICAgICAgICAgICAgbm9kZSwgdGhpcy5fbm9uQ29yZURlY29yYXRvcnNPbmx5KG5vZGUpLCBub2RlLm1vZGlmaWVycywgbm9kZS5uYW1lLFxuICAgICAgICAgICAgICAgICBub2RlLnF1ZXN0aW9uVG9rZW4sIG5vZGUudHlwZSwgbm9kZS5pbml0aWFsaXplcikgYXMgVCAmXG4gICAgICAgICAgdHMuUHJvcGVydHlEZWNsYXJhdGlvbjtcbiAgICB9IGVsc2UgaWYgKHRzLmlzR2V0QWNjZXNzb3Iobm9kZSkpIHtcbiAgICAgIC8vIFN0cmlwIGRlY29yYXRvcnMgb2YgZ2V0dGVycy5cbiAgICAgIG5vZGUgPSB0cy51cGRhdGVHZXRBY2Nlc3NvcihcbiAgICAgICAgICAgICAgICAgbm9kZSwgdGhpcy5fbm9uQ29yZURlY29yYXRvcnNPbmx5KG5vZGUpLCBub2RlLm1vZGlmaWVycywgbm9kZS5uYW1lLFxuICAgICAgICAgICAgICAgICBub2RlLnBhcmFtZXRlcnMsIG5vZGUudHlwZSwgbm9kZS5ib2R5KSBhcyBUICZcbiAgICAgICAgICB0cy5HZXRBY2Nlc3NvckRlY2xhcmF0aW9uO1xuICAgIH0gZWxzZSBpZiAodHMuaXNTZXRBY2Nlc3Nvcihub2RlKSkge1xuICAgICAgLy8gU3RyaXAgZGVjb3JhdG9ycyBvZiBzZXR0ZXJzLlxuICAgICAgbm9kZSA9IHRzLnVwZGF0ZVNldEFjY2Vzc29yKFxuICAgICAgICAgICAgICAgICBub2RlLCB0aGlzLl9ub25Db3JlRGVjb3JhdG9yc09ubHkobm9kZSksIG5vZGUubW9kaWZpZXJzLCBub2RlLm5hbWUsXG4gICAgICAgICAgICAgICAgIG5vZGUucGFyYW1ldGVycywgbm9kZS5ib2R5KSBhcyBUICZcbiAgICAgICAgICB0cy5TZXRBY2Nlc3NvckRlY2xhcmF0aW9uO1xuICAgIH0gZWxzZSBpZiAodHMuaXNDb25zdHJ1Y3RvckRlY2xhcmF0aW9uKG5vZGUpKSB7XG4gICAgICAvLyBGb3IgY29uc3RydWN0b3JzLCBzdHJpcCBkZWNvcmF0b3JzIG9mIHRoZSBwYXJhbWV0ZXJzLlxuICAgICAgY29uc3QgcGFyYW1ldGVycyA9IG5vZGUucGFyYW1ldGVycy5tYXAocGFyYW0gPT4gdGhpcy5fc3RyaXBBbmd1bGFyRGVjb3JhdG9ycyhwYXJhbSkpO1xuICAgICAgbm9kZSA9XG4gICAgICAgICAgdHMudXBkYXRlQ29uc3RydWN0b3Iobm9kZSwgbm9kZS5kZWNvcmF0b3JzLCBub2RlLm1vZGlmaWVycywgcGFyYW1ldGVycywgbm9kZS5ib2R5KSBhcyBUICZcbiAgICAgICAgICB0cy5Db25zdHJ1Y3RvckRlY2xhcmF0aW9uO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxufVxuXG4vKipcbiAqIEEgdHJhbnNmb3JtZXIgd2hpY2ggb3BlcmF0ZXMgb24gdHMuU291cmNlRmlsZXMgYW5kIGFwcGxpZXMgY2hhbmdlcyBmcm9tIGFuIGBJdnlDb21waWxhdGlvbmAuXG4gKi9cbmZ1bmN0aW9uIHRyYW5zZm9ybUl2eVNvdXJjZUZpbGUoXG4gICAgY29tcGlsYXRpb246IFRyYWl0Q29tcGlsZXIsIGNvbnRleHQ6IHRzLlRyYW5zZm9ybWF0aW9uQ29udGV4dCwgcmVmbGVjdG9yOiBSZWZsZWN0aW9uSG9zdCxcbiAgICBpbXBvcnRSZXdyaXRlcjogSW1wb3J0UmV3cml0ZXIsIGZpbGU6IHRzLlNvdXJjZUZpbGUsIGlzQ29yZTogYm9vbGVhbixcbiAgICBpc0Nsb3N1cmVDb21waWxlckVuYWJsZWQ6IGJvb2xlYW4sXG4gICAgcmVjb3JkV3JhcHBlZE5vZGU6IFJlY29yZFdyYXBwZWROb2RlRm48dHMuRXhwcmVzc2lvbj4pOiB0cy5Tb3VyY2VGaWxlIHtcbiAgY29uc3QgY29uc3RhbnRQb29sID0gbmV3IENvbnN0YW50UG9vbChpc0Nsb3N1cmVDb21waWxlckVuYWJsZWQpO1xuICBjb25zdCBpbXBvcnRNYW5hZ2VyID0gbmV3IEltcG9ydE1hbmFnZXIoaW1wb3J0UmV3cml0ZXIpO1xuXG4gIC8vIFRoZSB0cmFuc2Zvcm1hdGlvbiBwcm9jZXNzIGNvbnNpc3RzIG9mIDIgc3RlcHM6XG4gIC8vXG4gIC8vICAxLiBWaXNpdCBhbGwgY2xhc3NlcywgcGVyZm9ybSBjb21waWxhdGlvbiBhbmQgY29sbGVjdCB0aGUgcmVzdWx0cy5cbiAgLy8gIDIuIFBlcmZvcm0gYWN0dWFsIHRyYW5zZm9ybWF0aW9uIG9mIHJlcXVpcmVkIFRTIG5vZGVzIHVzaW5nIGNvbXBpbGF0aW9uIHJlc3VsdHMgZnJvbSB0aGUgZmlyc3RcbiAgLy8gICAgIHN0ZXAuXG4gIC8vXG4gIC8vIFRoaXMgaXMgbmVlZGVkIHRvIGhhdmUgYWxsIGBvLkV4cHJlc3Npb25gcyBnZW5lcmF0ZWQgYmVmb3JlIGFueSBUUyB0cmFuc2Zvcm1zIGhhcHBlbi4gVGhpc1xuICAvLyBhbGxvd3MgYENvbnN0YW50UG9vbGAgdG8gcHJvcGVybHkgaWRlbnRpZnkgZXhwcmVzc2lvbnMgdGhhdCBjYW4gYmUgc2hhcmVkIGFjcm9zcyBtdWx0aXBsZVxuICAvLyBjb21wb25lbnRzIGRlY2xhcmVkIGluIHRoZSBzYW1lIGZpbGUuXG5cbiAgLy8gU3RlcCAxLiBHbyB0aG91Z2ggYWxsIGNsYXNzZXMgaW4gQVNULCBwZXJmb3JtIGNvbXBpbGF0aW9uIGFuZCBjb2xsZWN0IHRoZSByZXN1bHRzLlxuICBjb25zdCBjb21waWxhdGlvblZpc2l0b3IgPSBuZXcgSXZ5Q29tcGlsYXRpb25WaXNpdG9yKGNvbXBpbGF0aW9uLCBjb25zdGFudFBvb2wpO1xuICB2aXNpdChmaWxlLCBjb21waWxhdGlvblZpc2l0b3IsIGNvbnRleHQpO1xuXG4gIC8vIFN0ZXAgMi4gU2NhbiB0aHJvdWdoIHRoZSBBU1QgYWdhaW4gYW5kIHBlcmZvcm0gdHJhbnNmb3JtYXRpb25zIGJhc2VkIG9uIEl2eSBjb21waWxhdGlvblxuICAvLyByZXN1bHRzIG9idGFpbmVkIGF0IFN0ZXAgMS5cbiAgY29uc3QgdHJhbnNmb3JtYXRpb25WaXNpdG9yID0gbmV3IEl2eVRyYW5zZm9ybWF0aW9uVmlzaXRvcihcbiAgICAgIGNvbXBpbGF0aW9uLCBjb21waWxhdGlvblZpc2l0b3IuY2xhc3NDb21waWxhdGlvbk1hcCwgcmVmbGVjdG9yLCBpbXBvcnRNYW5hZ2VyLFxuICAgICAgcmVjb3JkV3JhcHBlZE5vZGUsIGlzQ2xvc3VyZUNvbXBpbGVyRW5hYmxlZCwgaXNDb3JlKTtcbiAgbGV0IHNmID0gdmlzaXQoZmlsZSwgdHJhbnNmb3JtYXRpb25WaXNpdG9yLCBjb250ZXh0KTtcblxuICAvLyBHZW5lcmF0ZSB0aGUgY29uc3RhbnQgc3RhdGVtZW50cyBmaXJzdCwgYXMgdGhleSBtYXkgaW52b2x2ZSBhZGRpbmcgYWRkaXRpb25hbCBpbXBvcnRzXG4gIC8vIHRvIHRoZSBJbXBvcnRNYW5hZ2VyLlxuICBjb25zdCBkb3dubGV2ZWxUcmFuc2xhdGVkQ29kZSA9IGdldExvY2FsaXplQ29tcGlsZVRhcmdldChjb250ZXh0KSA8IHRzLlNjcmlwdFRhcmdldC5FUzIwMTU7XG4gIGNvbnN0IGNvbnN0YW50cyA9XG4gICAgICBjb25zdGFudFBvb2wuc3RhdGVtZW50cy5tYXAoc3RtdCA9PiB0cmFuc2xhdGVTdGF0ZW1lbnQoc3RtdCwgaW1wb3J0TWFuYWdlciwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkV3JhcHBlZE5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3dubGV2ZWxUYWdnZWRUZW1wbGF0ZXM6IGRvd25sZXZlbFRyYW5zbGF0ZWRDb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG93bmxldmVsVmFyaWFibGVEZWNsYXJhdGlvbnM6IGRvd25sZXZlbFRyYW5zbGF0ZWRDb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5ub3RhdGVGb3JDbG9zdXJlQ29tcGlsZXI6IGlzQ2xvc3VyZUNvbXBpbGVyRW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG5cbiAgLy8gUHJlc2VydmUgQGZpbGVvdmVydmlldyBjb21tZW50cyByZXF1aXJlZCBieSBDbG9zdXJlLCBzaW5jZSB0aGUgbG9jYXRpb24gbWlnaHQgY2hhbmdlIGFzIGFcbiAgLy8gcmVzdWx0IG9mIGFkZGluZyBleHRyYSBpbXBvcnRzIGFuZCBjb25zdGFudCBwb29sIHN0YXRlbWVudHMuXG4gIGNvbnN0IGZpbGVPdmVydmlld01ldGEgPSBpc0Nsb3N1cmVDb21waWxlckVuYWJsZWQgPyBnZXRGaWxlT3ZlcnZpZXdDb21tZW50KHNmLnN0YXRlbWVudHMpIDogbnVsbDtcblxuICAvLyBBZGQgbmV3IGltcG9ydHMgZm9yIHRoaXMgZmlsZS5cbiAgc2YgPSBhZGRJbXBvcnRzKGltcG9ydE1hbmFnZXIsIHNmLCBjb25zdGFudHMpO1xuXG4gIGlmIChmaWxlT3ZlcnZpZXdNZXRhICE9PSBudWxsKSB7XG4gICAgc2V0RmlsZU92ZXJ2aWV3Q29tbWVudChzZiwgZmlsZU92ZXJ2aWV3TWV0YSk7XG4gIH1cblxuICByZXR1cm4gc2Y7XG59XG5cbi8qKlxuICogQ29tcHV0ZSB0aGUgY29ycmVjdCB0YXJnZXQgb3V0cHV0IGZvciBgJGxvY2FsaXplYCBtZXNzYWdlcyBnZW5lcmF0ZWQgYnkgQW5ndWxhclxuICpcbiAqIEluIHNvbWUgdmVyc2lvbnMgb2YgVHlwZVNjcmlwdCwgdGhlIHRyYW5zZm9ybWF0aW9uIG9mIHN5bnRoZXRpYyBgJGxvY2FsaXplYCB0YWdnZWQgdGVtcGxhdGVcbiAqIGxpdGVyYWxzIGlzIGJyb2tlbi4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvVHlwZVNjcmlwdC9pc3N1ZXMvMzg0ODVcbiAqXG4gKiBIZXJlIHdlIGNvbXB1dGUgd2hhdCB0aGUgZXhwZWN0ZWQgZmluYWwgb3V0cHV0IHRhcmdldCBvZiB0aGUgY29tcGlsYXRpb24gd2lsbFxuICogYmUgc28gdGhhdCB3ZSBjYW4gZ2VuZXJhdGUgRVM1IGNvbXBsaWFudCBgJGxvY2FsaXplYCBjYWxscyBpbnN0ZWFkIG9mIHJlbHlpbmcgdXBvbiBUUyB0byBkbyB0aGVcbiAqIGRvd25sZXZlbGluZyBmb3IgdXMuXG4gKi9cbmZ1bmN0aW9uIGdldExvY2FsaXplQ29tcGlsZVRhcmdldChjb250ZXh0OiB0cy5UcmFuc2Zvcm1hdGlvbkNvbnRleHQpOlxuICAgIEV4Y2x1ZGU8dHMuU2NyaXB0VGFyZ2V0LCB0cy5TY3JpcHRUYXJnZXQuSlNPTj4ge1xuICBjb25zdCB0YXJnZXQgPSBjb250ZXh0LmdldENvbXBpbGVyT3B0aW9ucygpLnRhcmdldCB8fCB0cy5TY3JpcHRUYXJnZXQuRVMyMDE1O1xuICByZXR1cm4gdGFyZ2V0ICE9PSB0cy5TY3JpcHRUYXJnZXQuSlNPTiA/IHRhcmdldCA6IHRzLlNjcmlwdFRhcmdldC5FUzIwMTU7XG59XG5cbmZ1bmN0aW9uIGdldEZpbGVPdmVydmlld0NvbW1lbnQoc3RhdGVtZW50czogdHMuTm9kZUFycmF5PHRzLlN0YXRlbWVudD4pOiBGaWxlT3ZlcnZpZXdNZXRhfG51bGwge1xuICBpZiAoc3RhdGVtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgaG9zdCA9IHN0YXRlbWVudHNbMF07XG4gICAgbGV0IHRyYWlsaW5nID0gZmFsc2U7XG4gICAgbGV0IGNvbW1lbnRzID0gdHMuZ2V0U3ludGhldGljTGVhZGluZ0NvbW1lbnRzKGhvc3QpO1xuICAgIC8vIElmIEBmaWxlb3ZlcnZpZXcgdGFnIGlzIG5vdCBmb3VuZCBpbiBzb3VyY2UgZmlsZSwgdHNpY2tsZSBwcm9kdWNlcyBmYWtlIG5vZGUgd2l0aCB0cmFpbGluZ1xuICAgIC8vIGNvbW1lbnQgYW5kIGluamVjdCBpdCBhdCB0aGUgdmVyeSBiZWdpbm5pbmcgb2YgdGhlIGdlbmVyYXRlZCBmaWxlLiBTbyB3ZSBuZWVkIHRvIGNoZWNrIGZvclxuICAgIC8vIGxlYWRpbmcgYXMgd2VsbCBhcyB0cmFpbGluZyBjb21tZW50cy5cbiAgICBpZiAoIWNvbW1lbnRzIHx8IGNvbW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdHJhaWxpbmcgPSB0cnVlO1xuICAgICAgY29tbWVudHMgPSB0cy5nZXRTeW50aGV0aWNUcmFpbGluZ0NvbW1lbnRzKGhvc3QpO1xuICAgIH1cbiAgICBpZiAoY29tbWVudHMgJiYgY29tbWVudHMubGVuZ3RoID4gMCAmJiBDTE9TVVJFX0ZJTEVfT1ZFUlZJRVdfUkVHRVhQLnRlc3QoY29tbWVudHNbMF0udGV4dCkpIHtcbiAgICAgIHJldHVybiB7Y29tbWVudHMsIGhvc3QsIHRyYWlsaW5nfTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIHNldEZpbGVPdmVydmlld0NvbW1lbnQoc2Y6IHRzLlNvdXJjZUZpbGUsIGZpbGVvdmVydmlldzogRmlsZU92ZXJ2aWV3TWV0YSk6IHZvaWQge1xuICBjb25zdCB7Y29tbWVudHMsIGhvc3QsIHRyYWlsaW5nfSA9IGZpbGVvdmVydmlldztcbiAgLy8gSWYgaG9zdCBzdGF0ZW1lbnQgaXMgbm8gbG9uZ2VyIHRoZSBmaXJzdCBvbmUsIGl0IG1lYW5zIHRoYXQgZXh0cmEgc3RhdGVtZW50cyB3ZXJlIGFkZGVkIGF0IHRoZVxuICAvLyB2ZXJ5IGJlZ2lubmluZywgc28gd2UgbmVlZCB0byByZWxvY2F0ZSBAZmlsZW92ZXJ2aWV3IGNvbW1lbnQgYW5kIGNsZWFudXAgdGhlIG9yaWdpbmFsIHN0YXRlbWVudFxuICAvLyB0aGF0IGhvc3RlZCBpdC5cbiAgaWYgKHNmLnN0YXRlbWVudHMubGVuZ3RoID4gMCAmJiBob3N0ICE9PSBzZi5zdGF0ZW1lbnRzWzBdKSB7XG4gICAgaWYgKHRyYWlsaW5nKSB7XG4gICAgICB0cy5zZXRTeW50aGV0aWNUcmFpbGluZ0NvbW1lbnRzKGhvc3QsIHVuZGVmaW5lZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRzLnNldFN5bnRoZXRpY0xlYWRpbmdDb21tZW50cyhob3N0LCB1bmRlZmluZWQpO1xuICAgIH1cbiAgICB0cy5zZXRTeW50aGV0aWNMZWFkaW5nQ29tbWVudHMoc2Yuc3RhdGVtZW50c1swXSwgY29tbWVudHMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1heWJlRmlsdGVyRGVjb3JhdG9yKFxuICAgIGRlY29yYXRvcnM6IHRzLk5vZGVBcnJheTx0cy5EZWNvcmF0b3I+fHVuZGVmaW5lZCxcbiAgICB0b1JlbW92ZTogdHMuRGVjb3JhdG9yW10pOiB0cy5Ob2RlQXJyYXk8dHMuRGVjb3JhdG9yPnx1bmRlZmluZWQge1xuICBpZiAoZGVjb3JhdG9ycyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCBmaWx0ZXJlZCA9IGRlY29yYXRvcnMuZmlsdGVyKFxuICAgICAgZGVjID0+IHRvUmVtb3ZlLmZpbmQoZGVjVG9SZW1vdmUgPT4gdHMuZ2V0T3JpZ2luYWxOb2RlKGRlYykgPT09IGRlY1RvUmVtb3ZlKSA9PT0gdW5kZWZpbmVkKTtcbiAgaWYgKGZpbHRlcmVkLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgcmV0dXJuIHRzLmNyZWF0ZU5vZGVBcnJheShmaWx0ZXJlZCk7XG59XG5cbmZ1bmN0aW9uIGlzRnJvbUFuZ3VsYXJDb3JlKGRlY29yYXRvcjogRGVjb3JhdG9yKTogYm9vbGVhbiB7XG4gIHJldHVybiBkZWNvcmF0b3IuaW1wb3J0ICE9PSBudWxsICYmIGRlY29yYXRvci5pbXBvcnQuZnJvbSA9PT0gJ0Bhbmd1bGFyL2NvcmUnO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVSZWNvcmRlckZuKGRlZmF1bHRJbXBvcnRUcmFja2VyOiBEZWZhdWx0SW1wb3J0VHJhY2tlcik6XG4gICAgUmVjb3JkV3JhcHBlZE5vZGVGbjx0cy5FeHByZXNzaW9uPiB7XG4gIHJldHVybiBub2RlID0+IHtcbiAgICBjb25zdCBpbXBvcnREZWNsID0gZ2V0RGVmYXVsdEltcG9ydERlY2xhcmF0aW9uKG5vZGUpO1xuICAgIGlmIChpbXBvcnREZWNsICE9PSBudWxsKSB7XG4gICAgICBkZWZhdWx0SW1wb3J0VHJhY2tlci5yZWNvcmRVc2VkSW1wb3J0KGltcG9ydERlY2wpO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
@@ -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(tslib_1.__spreadArray(tslib_1.__spreadArray(tslib_1.__spreadArray(tslib_1.__spreadArray([
62
- fileoverviewAnchorStmt
63
- ], tslib_1.__read(existingImports)), tslib_1.__read(addedImports)), tslib_1.__read(extraStatements)), tslib_1.__read(body))));
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL3RyYW5zZm9ybS9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztJQUFBOzs7Ozs7T0FNRztJQUNILCtCQUFpQztJQUlqQzs7OztPQUlHO0lBQ0gsU0FBZ0IsVUFBVSxDQUN0QixhQUE0QixFQUFFLEVBQWlCLEVBQy9DLGVBQW9DO1FBQXBDLGdDQUFBLEVBQUEsb0JBQW9DO1FBQ3RDLDZDQUE2QztRQUM3QyxJQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQSxDQUFDO1lBQ2pFLElBQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hELElBQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQyxrQkFBa0I7WUFDdEMsVUFBVSxDQUFDLFNBQVM7WUFDcEIsbUJBQW1CLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDN0QsSUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLHVCQUF1QjtZQUNuQyxnQkFBZ0IsQ0FBQyxTQUFTO1lBQzFCLGVBQWUsQ0FBQyxTQUFTO1lBQ3pCLGtCQUFrQixDQUFDLFlBQVk7WUFDL0IscUJBQXFCLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUV6RCw2RkFBNkY7WUFDN0YsNEVBQTRFO1lBQzVFLEVBQUU7WUFDRix5RkFBeUY7WUFDekYsK0ZBQStGO1lBQy9GLEVBQUU7WUFDRix5RkFBeUY7WUFDekYsWUFBWTtZQUNaLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUV0QyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO1FBRUgsK0VBQStFO1FBQy9FLGlDQUFpQztRQUNqQyxJQUFNLGVBQWUsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUF2QixDQUF1QixDQUFDLENBQUM7UUFDOUUsSUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUF4QixDQUF3QixDQUFDLENBQUM7UUFDcEUsNkJBQTZCO1FBQzdCLElBQUksWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDM0Isb0ZBQW9GO1lBQ3BGLHVGQUF1RjtZQUN2Riw2QkFBNkI7WUFDN0IsSUFBTSxzQkFBc0IsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEUsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxlQUFlO2dCQUNuRCxzQkFBc0I7OEJBQUssZUFBZSxtQkFBSyxZQUFZLG1CQUFLLGVBQWUsbUJBQUssSUFBSSxHQUN4RixDQUFDLENBQUM7U0FDTDtRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQTVDRCxnQ0E0Q0M7SUFFRCxTQUFTLGlCQUFpQixDQUFDLElBQWtCO1FBQzNDLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUM7WUFDckUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge0ltcG9ydE1hbmFnZXJ9IGZyb20gJy4uLy4uL3RyYW5zbGF0b3InO1xuXG4vKipcbiAqIEFkZHMgZXh0cmEgaW1wb3J0cyBpbiB0aGUgaW1wb3J0IG1hbmFnZSBmb3IgdGhpcyBzb3VyY2UgZmlsZSwgYWZ0ZXIgdGhlIGV4aXN0aW5nIGltcG9ydHNcbiAqIGFuZCBiZWZvcmUgdGhlIG1vZHVsZSBib2R5LlxuICogQ2FuIG9wdGlvbmFsbHkgYWRkIGV4dHJhIHN0YXRlbWVudHMgKGUuZy4gbmV3IGNvbnN0YW50cykgYmVmb3JlIHRoZSBib2R5IGFzIHdlbGwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRJbXBvcnRzKFxuICAgIGltcG9ydE1hbmFnZXI6IEltcG9ydE1hbmFnZXIsIHNmOiB0cy5Tb3VyY2VGaWxlLFxuICAgIGV4dHJhU3RhdGVtZW50czogdHMuU3RhdGVtZW50W10gPSBbXSk6IHRzLlNvdXJjZUZpbGUge1xuICAvLyBHZW5lcmF0ZSB0aGUgaW1wb3J0IHN0YXRlbWVudHMgdG8gcHJlcGVuZC5cbiAgY29uc3QgYWRkZWRJbXBvcnRzID0gaW1wb3J0TWFuYWdlci5nZXRBbGxJbXBvcnRzKHNmLmZpbGVOYW1lKS5tYXAoaSA9PiB7XG4gICAgY29uc3QgcXVhbGlmaWVyID0gdHMuY3JlYXRlSWRlbnRpZmllcihpLnF1YWxpZmllci50ZXh0KTtcbiAgICBjb25zdCBpbXBvcnRDbGF1c2UgPSB0cy5jcmVhdGVJbXBvcnRDbGF1c2UoXG4gICAgICAgIC8qIG5hbWUgKi8gdW5kZWZpbmVkLFxuICAgICAgICAvKiBuYW1lZEJpbmRpbmdzICovIHRzLmNyZWF0ZU5hbWVzcGFjZUltcG9ydChxdWFsaWZpZXIpKTtcbiAgICBjb25zdCBkZWNsID0gdHMuY3JlYXRlSW1wb3J0RGVjbGFyYXRpb24oXG4gICAgICAgIC8qIGRlY29yYXRvcnMgKi8gdW5kZWZpbmVkLFxuICAgICAgICAvKiBtb2RpZmllcnMgKi8gdW5kZWZpbmVkLFxuICAgICAgICAvKiBpbXBvcnRDbGF1c2UgKi8gaW1wb3J0Q2xhdXNlLFxuICAgICAgICAvKiBtb2R1bGVTcGVjaWZpZXIgKi8gdHMuY3JlYXRlTGl0ZXJhbChpLnNwZWNpZmllcikpO1xuXG4gICAgLy8gU2V0IHRoZSBxdWFsaWZpZXIncyBvcmlnaW5hbCBUUyBub2RlIHRvIHRoZSBgdHMuSW1wb3J0RGVjbGFyYXRpb25gLiBUaGlzIGFsbG93cyBkb3duc3RyZWFtXG4gICAgLy8gdHJhbnNmb3JtcyBzdWNoIGFzIHRzaWNrbGUgdG8gcHJvcGVybHkgcHJvY2VzcyByZWZlcmVuY2VzIHRvIHRoaXMgaW1wb3J0LlxuICAgIC8vXG4gICAgLy8gVGhpcyBvcGVyYXRpb24gaXMgbG9hZC1iZWFyaW5nIGluIGczIGFzIHNvbWUgaW1wb3J0ZWQgbW9kdWxlcyBjb250YWluIHNwZWNpYWwgbWV0YWRhdGFcbiAgICAvLyBnZW5lcmF0ZWQgYnkgY2x1dHosIHdoaWNoIHRzaWNrbGUgdXNlcyB0byB0cmFuc2Zvcm0gaW1wb3J0cyBhbmQgcmVmZXJlbmNlcyB0byB0aG9zZSBpbXBvcnRzLlxuICAgIC8vXG4gICAgLy8gVE9ETyhhbHhodWIpOiBhZGQgYSB0ZXN0IGZvciB0aGlzIHdoZW4gdHNpY2tsZSBpcyB1cGRhdGVkIGV4dGVybmFsbHkgdG8gZGVwZW5kIG9uIHRoaXNcbiAgICAvLyBiZWhhdmlvci5cbiAgICB0cy5zZXRPcmlnaW5hbE5vZGUoaS5xdWFsaWZpZXIsIGRlY2wpO1xuXG4gICAgcmV0dXJuIGRlY2w7XG4gIH0pO1xuXG4gIC8vIEZpbHRlciBvdXQgdGhlIGV4aXN0aW5nIGltcG9ydHMgYW5kIHRoZSBzb3VyY2UgZmlsZSBib2R5LiBBbGwgbmV3IHN0YXRlbWVudHNcbiAgLy8gd2lsbCBiZSBpbnNlcnRlZCBiZXR3ZWVuIHRoZW0uXG4gIGNvbnN0IGV4aXN0aW5nSW1wb3J0cyA9IHNmLnN0YXRlbWVudHMuZmlsdGVyKHN0bXQgPT4gaXNJbXBvcnRTdGF0ZW1lbnQoc3RtdCkpO1xuICBjb25zdCBib2R5ID0gc2Yuc3RhdGVtZW50cy5maWx0ZXIoc3RtdCA9PiAhaXNJbXBvcnRTdGF0ZW1lbnQoc3RtdCkpO1xuICAvLyBQcmVwZW5kIGltcG9ydHMgaWYgbmVlZGVkLlxuICBpZiAoYWRkZWRJbXBvcnRzLmxlbmd0aCA+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