@angular/compiler-cli 12.1.0-next.5 → 12.1.2

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