@angular/compiler-cli 12.1.0 → 12.1.4

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 (459) 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_linker_selector.js +2 -2
  3. package/ngcc/src/dependencies/commonjs_dependency_host.js +1 -1
  4. package/ngcc/src/dependencies/dts_dependency_host.js +1 -1
  5. package/ngcc/src/dependencies/esm_dependency_host.js +1 -1
  6. package/ngcc/src/dependencies/umd_dependency_host.js +1 -1
  7. package/ngcc/src/entry_point_finder/program_based_entry_point_finder.js +1 -1
  8. package/ngcc/src/entry_point_finder/targeted_entry_point_finder.js +1 -1
  9. package/ngcc/src/execution/tasks/queues/parallel_task_queue.js +1 -1
  10. package/ngcc/src/execution/tasks/queues/serial_task_queue.js +1 -1
  11. package/ngcc/src/host/commonjs_host.js +1 -1
  12. package/ngcc/src/host/esm2015_host.js +1 -1
  13. package/ngcc/src/host/esm5_host.js +1 -1
  14. package/ngcc/src/host/umd_host.js +1 -1
  15. package/ngcc/src/packages/build_marker.d.ts +1 -1
  16. package/ngcc/src/packages/build_marker.js +1 -1
  17. package/ngcc/src/packages/entry_point_manifest.js +1 -1
  18. package/ngcc/src/packages/ngcc_compiler_host.js +1 -1
  19. package/ngcc/src/rendering/commonjs_rendering_formatter.js +1 -1
  20. package/ngcc/src/rendering/esm5_rendering_formatter.js +1 -1
  21. package/ngcc/src/rendering/umd_rendering_formatter.js +1 -1
  22. package/ngcc/src/writing/new_entry_point_file_writer.js +1 -1
  23. package/package.json +2 -2
  24. package/src/ngtsc/annotations/src/component.js +1 -1
  25. package/src/ngtsc/annotations/src/directive.js +1 -1
  26. package/src/ngtsc/annotations/src/ng_module.js +1 -1
  27. package/src/ngtsc/annotations/src/pipe.js +1 -1
  28. package/src/ngtsc/core/src/compiler.js +1 -1
  29. package/src/ngtsc/cycles/src/analyzer.d.ts +7 -0
  30. package/src/ngtsc/cycles/src/analyzer.js +89 -4
  31. package/src/ngtsc/cycles/src/imports.d.ts +1 -6
  32. package/src/ngtsc/cycles/src/imports.js +5 -23
  33. package/src/ngtsc/file_system/testing/src/mock_file_system_native.js +1 -1
  34. package/src/ngtsc/file_system/testing/src/mock_file_system_posix.js +1 -1
  35. package/src/ngtsc/file_system/testing/src/mock_file_system_windows.js +1 -1
  36. package/src/ngtsc/incremental/semantic_graph/src/graph.js +1 -1
  37. package/src/ngtsc/incremental/src/incremental.js +30 -4
  38. package/src/ngtsc/indexer/src/template.js +1 -1
  39. package/src/ngtsc/metadata/src/dts.js +4 -5
  40. package/src/ngtsc/metadata/src/util.d.ts +2 -2
  41. package/src/ngtsc/metadata/src/util.js +9 -6
  42. package/src/ngtsc/partial_evaluator/src/builtin.js +1 -1
  43. package/src/ngtsc/partial_evaluator/src/diagnostics.js +4 -1
  44. package/src/ngtsc/partial_evaluator/src/dynamic.d.ts +19 -1
  45. package/src/ngtsc/partial_evaluator/src/dynamic.js +12 -4
  46. package/src/ngtsc/partial_evaluator/src/interpreter.d.ts +2 -0
  47. package/src/ngtsc/partial_evaluator/src/interpreter.js +53 -5
  48. package/src/ngtsc/partial_evaluator/src/ts_helpers.js +1 -1
  49. package/src/ngtsc/program_driver/src/api.d.ts +20 -1
  50. package/src/ngtsc/program_driver/src/api.js +3 -2
  51. package/src/ngtsc/program_driver/src/ts_create_program_driver.d.ts +2 -2
  52. package/src/ngtsc/program_driver/src/ts_create_program_driver.js +7 -3
  53. package/src/ngtsc/reflection/src/typescript.js +4 -1
  54. package/src/ngtsc/transform/src/compilation.d.ts +5 -0
  55. package/src/ngtsc/transform/src/compilation.js +95 -72
  56. package/src/ngtsc/transform/src/transform.js +1 -1
  57. package/src/ngtsc/typecheck/src/context.d.ts +2 -1
  58. package/src/ngtsc/typecheck/src/context.js +11 -3
  59. package/src/ngtsc/typecheck/src/template_semantics.js +1 -1
  60. package/src/ngtsc/typecheck/src/template_symbol_builder.js +21 -1
  61. package/src/ngtsc/typecheck/src/type_check_block.js +2 -2
  62. package/src/ngtsc/typecheck/src/type_check_file.js +1 -1
  63. package/src/ngtsc/typecheck/src/type_emitter.js +25 -6
  64. package/src/ngtsc/util/src/visitor.d.ts +1 -1
  65. package/src/ngtsc/util/src/visitor.js +1 -8
  66. package/src/version.js +1 -1
  67. package/compiler-cli.externs.js +0 -0
  68. package/index.mjs +0 -20
  69. package/linker/babel/babel.externs.js +0 -0
  70. package/linker/babel/index.mjs +0 -11
  71. package/linker/babel/src/ast/babel_ast_factory.mjs +0 -137
  72. package/linker/babel/src/ast/babel_ast_host.mjs +0 -154
  73. package/linker/babel/src/babel_declaration_scope.mjs +0 -52
  74. package/linker/babel/src/babel_plugin.mjs +0 -23
  75. package/linker/babel/src/es2015_linker_plugin.mjs +0 -158
  76. package/linker/babel/src/linker_plugin_options.mjs +0 -2
  77. package/linker/index.mjs +0 -7
  78. package/linker/linker.externs.js +0 -0
  79. package/linker/src/ast/ast_host.mjs +0 -9
  80. package/linker/src/ast/ast_value.mjs +0 -256
  81. package/linker/src/ast/typescript/typescript_ast_host.mjs +0 -156
  82. package/linker/src/ast/utils.mjs +0 -17
  83. package/linker/src/fatal_linker_error.mjs +0 -30
  84. package/linker/src/file_linker/declaration_scope.mjs +0 -9
  85. package/linker/src/file_linker/emit_scopes/emit_scope.mjs +0 -41
  86. package/linker/src/file_linker/emit_scopes/iife_emit_scope.mjs +0 -33
  87. package/linker/src/file_linker/file_linker.mjs +0 -70
  88. package/linker/src/file_linker/get_source_file.mjs +0 -28
  89. package/linker/src/file_linker/linker_environment.mjs +0 -23
  90. package/linker/src/file_linker/linker_options.mjs +0 -16
  91. package/linker/src/file_linker/needs_linking.mjs +0 -27
  92. package/linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.mjs +0 -29
  93. package/linker/src/file_linker/partial_linkers/partial_component_linker_1.mjs +0 -194
  94. package/linker/src/file_linker/partial_linkers/partial_directive_linker_1.mjs +0 -137
  95. package/linker/src/file_linker/partial_linkers/partial_factory_linker_1.mjs +0 -52
  96. package/linker/src/file_linker/partial_linkers/partial_injectable_linker_1.mjs +0 -56
  97. package/linker/src/file_linker/partial_linkers/partial_injector_linker_1.mjs +0 -38
  98. package/linker/src/file_linker/partial_linkers/partial_linker.mjs +0 -2
  99. package/linker/src/file_linker/partial_linkers/partial_linker_selector.mjs +0 -166
  100. package/linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.mjs +0 -110
  101. package/linker/src/file_linker/partial_linkers/partial_pipe_linker_1.mjs +0 -42
  102. package/linker/src/file_linker/partial_linkers/util.mjs +0 -78
  103. package/linker/src/file_linker/translator.mjs +0 -23
  104. package/linker/src/linker_import_generator.mjs +0 -28
  105. package/ngcc/index.mjs +0 -16
  106. package/ngcc/main-ivy-ngcc.mjs +0 -12
  107. package/ngcc/main-ngcc.mjs +0 -32
  108. package/ngcc/ngcc.externs.js +0 -0
  109. package/ngcc/src/analysis/decoration_analyzer.mjs +0 -215
  110. package/ngcc/src/analysis/migration_host.mjs +0 -80
  111. package/ngcc/src/analysis/module_with_providers_analyzer.mjs +0 -178
  112. package/ngcc/src/analysis/ngcc_references_registry.mjs +0 -45
  113. package/ngcc/src/analysis/ngcc_trait_compiler.mjs +0 -70
  114. package/ngcc/src/analysis/private_declarations_analyzer.mjs +0 -47
  115. package/ngcc/src/analysis/switch_marker_analyzer.mjs +0 -34
  116. package/ngcc/src/analysis/types.mjs +0 -2
  117. package/ngcc/src/analysis/util.mjs +0 -19
  118. package/ngcc/src/command_line_options.mjs +0 -142
  119. package/ngcc/src/constants.mjs +0 -10
  120. package/ngcc/src/dependencies/commonjs_dependency_host.mjs +0 -87
  121. package/ngcc/src/dependencies/dependency_host.mjs +0 -102
  122. package/ngcc/src/dependencies/dependency_resolver.mjs +0 -151
  123. package/ngcc/src/dependencies/dts_dependency_host.mjs +0 -18
  124. package/ngcc/src/dependencies/esm_dependency_host.mjs +0 -286
  125. package/ngcc/src/dependencies/module_resolver.mjs +0 -233
  126. package/ngcc/src/dependencies/umd_dependency_host.mjs +0 -33
  127. package/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.mjs +0 -42
  128. package/ngcc/src/entry_point_finder/entry_point_collector.mjs +0 -120
  129. package/ngcc/src/entry_point_finder/interface.mjs +0 -2
  130. package/ngcc/src/entry_point_finder/program_based_entry_point_finder.mjs +0 -91
  131. package/ngcc/src/entry_point_finder/targeted_entry_point_finder.mjs +0 -216
  132. package/ngcc/src/entry_point_finder/tracing_entry_point_finder.mjs +0 -63
  133. package/ngcc/src/entry_point_finder/utils.mjs +0 -176
  134. package/ngcc/src/execution/analyze_entry_points.mjs +0 -130
  135. package/ngcc/src/execution/api.mjs +0 -2
  136. package/ngcc/src/execution/cluster/api.mjs +0 -9
  137. package/ngcc/src/execution/cluster/executor.mjs +0 -27
  138. package/ngcc/src/execution/cluster/master.mjs +0 -261
  139. package/ngcc/src/execution/cluster/package_json_updater.mjs +0 -45
  140. package/ngcc/src/execution/cluster/utils.mjs +0 -59
  141. package/ngcc/src/execution/cluster/worker.mjs +0 -81
  142. package/ngcc/src/execution/create_compile_function.mjs +0 -62
  143. package/ngcc/src/execution/single_process_executor.mjs +0 -57
  144. package/ngcc/src/execution/tasks/api.mjs +0 -22
  145. package/ngcc/src/execution/tasks/completion.mjs +0 -61
  146. package/ngcc/src/execution/tasks/queues/base_task_queue.mjs +0 -78
  147. package/ngcc/src/execution/tasks/queues/parallel_task_queue.mjs +0 -53
  148. package/ngcc/src/execution/tasks/queues/serial_task_queue.mjs +0 -29
  149. package/ngcc/src/execution/tasks/utils.mjs +0 -114
  150. package/ngcc/src/host/commonjs_host.mjs +0 -220
  151. package/ngcc/src/host/commonjs_umd_utils.mjs +0 -186
  152. package/ngcc/src/host/delegating_host.mjs +0 -140
  153. package/ngcc/src/host/esm2015_host.mjs +0 -2293
  154. package/ngcc/src/host/esm5_host.mjs +0 -721
  155. package/ngcc/src/host/ngcc_host.mjs +0 -15
  156. package/ngcc/src/host/umd_host.mjs +0 -486
  157. package/ngcc/src/host/utils.mjs +0 -12
  158. package/ngcc/src/locking/async_locker.mjs +0 -76
  159. package/ngcc/src/locking/lock_file.mjs +0 -4
  160. package/ngcc/src/locking/lock_file_with_child_process/index.mjs +0 -78
  161. package/ngcc/src/locking/lock_file_with_child_process/unlocker.mjs +0 -34
  162. package/ngcc/src/locking/lock_file_with_child_process/util.mjs +0 -29
  163. package/ngcc/src/locking/sync_locker.mjs +0 -52
  164. package/ngcc/src/main.mjs +0 -134
  165. package/ngcc/src/migrations/migration.mjs +0 -2
  166. package/ngcc/src/migrations/missing_injectable_migration.mjs +0 -164
  167. package/ngcc/src/migrations/undecorated_child_migration.mjs +0 -61
  168. package/ngcc/src/migrations/undecorated_parent_migration.mjs +0 -86
  169. package/ngcc/src/migrations/utils.mjs +0 -117
  170. package/ngcc/src/ngcc_options.mjs +0 -119
  171. package/ngcc/src/packages/build_marker.mjs +0 -84
  172. package/ngcc/src/packages/bundle_program.mjs +0 -52
  173. package/ngcc/src/packages/configuration.mjs +0 -255
  174. package/ngcc/src/packages/entry_point.mjs +0 -239
  175. package/ngcc/src/packages/entry_point_bundle.mjs +0 -68
  176. package/ngcc/src/packages/entry_point_manifest.mjs +0 -162
  177. package/ngcc/src/packages/ngcc_compiler_host.mjs +0 -77
  178. package/ngcc/src/packages/patch_ts_expando_initializer.mjs +0 -166
  179. package/ngcc/src/packages/source_file_cache.mjs +0 -187
  180. package/ngcc/src/packages/transformer.mjs +0 -140
  181. package/ngcc/src/path_mappings.mjs +0 -13
  182. package/ngcc/src/rendering/commonjs_rendering_formatter.mjs +0 -65
  183. package/ngcc/src/rendering/dts_renderer.mjs +0 -139
  184. package/ngcc/src/rendering/esm5_rendering_formatter.mjs +0 -50
  185. package/ngcc/src/rendering/esm_rendering_formatter.mjs +0 -251
  186. package/ngcc/src/rendering/ngcc_import_rewriter.mjs +0 -32
  187. package/ngcc/src/rendering/renderer.mjs +0 -170
  188. package/ngcc/src/rendering/rendering_formatter.mjs +0 -2
  189. package/ngcc/src/rendering/source_maps.mjs +0 -54
  190. package/ngcc/src/rendering/umd_rendering_formatter.mjs +0 -292
  191. package/ngcc/src/rendering/utils.mjs +0 -20
  192. package/ngcc/src/utils.mjs +0 -144
  193. package/ngcc/src/writing/cleaning/cleaning_strategies.mjs +0 -61
  194. package/ngcc/src/writing/cleaning/package_cleaner.mjs +0 -67
  195. package/ngcc/src/writing/cleaning/utils.mjs +0 -16
  196. package/ngcc/src/writing/file_writer.mjs +0 -2
  197. package/ngcc/src/writing/in_place_file_writer.mjs +0 -62
  198. package/ngcc/src/writing/new_entry_point_file_writer.mjs +0 -161
  199. package/ngcc/src/writing/package_json_updater.mjs +0 -144
  200. package/src/diagnostics/translate_diagnostics.mjs +0 -47
  201. package/src/diagnostics/typescript_version.mjs +0 -79
  202. package/src/extract_i18n.mjs +0 -46
  203. package/src/language_services.mjs +0 -18
  204. package/src/main.mjs +0 -185
  205. package/src/metadata/bundle_index_host.mjs +0 -107
  206. package/src/metadata/bundler.mjs +0 -556
  207. package/src/metadata/collector.mjs +0 -701
  208. package/src/metadata/evaluator.mjs +0 -643
  209. package/src/metadata/index.mjs +0 -11
  210. package/src/metadata/index_writer.mjs +0 -44
  211. package/src/metadata/schema.mjs +0 -102
  212. package/src/metadata/symbols.mjs +0 -117
  213. package/src/ngtsc/annotations/annotations.externs.js +0 -0
  214. package/src/ngtsc/annotations/index.mjs +0 -15
  215. package/src/ngtsc/annotations/src/api.mjs +0 -9
  216. package/src/ngtsc/annotations/src/component.mjs +0 -1068
  217. package/src/ngtsc/annotations/src/diagnostics.mjs +0 -147
  218. package/src/ngtsc/annotations/src/directive.mjs +0 -692
  219. package/src/ngtsc/annotations/src/factory.mjs +0 -17
  220. package/src/ngtsc/annotations/src/injectable.mjs +0 -260
  221. package/src/ngtsc/annotations/src/metadata.mjs +0 -145
  222. package/src/ngtsc/annotations/src/ng_module.mjs +0 -565
  223. package/src/ngtsc/annotations/src/pipe.mjs +0 -151
  224. package/src/ngtsc/annotations/src/references_registry.mjs +0 -16
  225. package/src/ngtsc/annotations/src/util.mjs +0 -495
  226. package/src/ngtsc/core/api/index.mjs +0 -12
  227. package/src/ngtsc/core/api/src/adapter.mjs +0 -9
  228. package/src/ngtsc/core/api/src/interfaces.mjs +0 -9
  229. package/src/ngtsc/core/api/src/options.mjs +0 -9
  230. package/src/ngtsc/core/api/src/public_options.mjs +0 -9
  231. package/src/ngtsc/core/api.externs.js +0 -0
  232. package/src/ngtsc/core/core.externs.js +0 -0
  233. package/src/ngtsc/core/index.mjs +0 -10
  234. package/src/ngtsc/core/src/compiler.mjs +0 -917
  235. package/src/ngtsc/core/src/config.mjs +0 -15
  236. package/src/ngtsc/core/src/host.mjs +0 -229
  237. package/src/ngtsc/cycles/cycles.externs.js +0 -0
  238. package/src/ngtsc/cycles/index.mjs +0 -10
  239. package/src/ngtsc/cycles/src/analyzer.mjs +0 -60
  240. package/src/ngtsc/cycles/src/imports.mjs +0 -152
  241. package/src/ngtsc/diagnostics/diagnostics.externs.js +0 -0
  242. package/src/ngtsc/diagnostics/index.mjs +0 -11
  243. package/src/ngtsc/diagnostics/src/error.mjs +0 -51
  244. package/src/ngtsc/diagnostics/src/error_code.mjs +0 -198
  245. package/src/ngtsc/diagnostics/src/util.mjs +0 -21
  246. package/src/ngtsc/entry_point/entry_point.externs.js +0 -0
  247. package/src/ngtsc/entry_point/index.mjs +0 -12
  248. package/src/ngtsc/entry_point/src/generator.mjs +0 -35
  249. package/src/ngtsc/entry_point/src/logic.mjs +0 -35
  250. package/src/ngtsc/entry_point/src/private_export_checker.mjs +0 -122
  251. package/src/ngtsc/entry_point/src/reference_graph.mjs +0 -73
  252. package/src/ngtsc/file_system/file_system.externs.js +0 -0
  253. package/src/ngtsc/file_system/index.mjs +0 -13
  254. package/src/ngtsc/file_system/src/compiler_host.mjs +0 -64
  255. package/src/ngtsc/file_system/src/helpers.mjs +0 -99
  256. package/src/ngtsc/file_system/src/invalid_file_system.mjs +0 -95
  257. package/src/ngtsc/file_system/src/logical.mjs +0 -84
  258. package/src/ngtsc/file_system/src/node_js_file_system.mjs +0 -142
  259. package/src/ngtsc/file_system/src/types.mjs +0 -9
  260. package/src/ngtsc/file_system/src/util.mjs +0 -22
  261. package/src/ngtsc/file_system/testing/index.mjs +0 -13
  262. package/src/ngtsc/file_system/testing/src/mock_file_system.mjs +0 -293
  263. package/src/ngtsc/file_system/testing/src/mock_file_system_native.mjs +0 -57
  264. package/src/ngtsc/file_system/testing/src/mock_file_system_posix.mjs +0 -38
  265. package/src/ngtsc/file_system/testing/src/mock_file_system_windows.mjs +0 -38
  266. package/src/ngtsc/file_system/testing/src/test_helper.mjs +0 -108
  267. package/src/ngtsc/file_system/testing/testing.externs.js +0 -0
  268. package/src/ngtsc/imports/imports.externs.js +0 -0
  269. package/src/ngtsc/imports/index.mjs +0 -14
  270. package/src/ngtsc/imports/src/alias.mjs +0 -137
  271. package/src/ngtsc/imports/src/core.mjs +0 -78
  272. package/src/ngtsc/imports/src/default.mjs +0 -135
  273. package/src/ngtsc/imports/src/emitter.mjs +0 -266
  274. package/src/ngtsc/imports/src/find_export.mjs +0 -56
  275. package/src/ngtsc/imports/src/reexport.mjs +0 -9
  276. package/src/ngtsc/imports/src/references.mjs +0 -137
  277. package/src/ngtsc/imports/src/resolver.mjs +0 -24
  278. package/src/ngtsc/incremental/api.externs.js +0 -0
  279. package/src/ngtsc/incremental/api.mjs +0 -9
  280. package/src/ngtsc/incremental/incremental.externs.js +0 -0
  281. package/src/ngtsc/incremental/index.mjs +0 -12
  282. package/src/ngtsc/incremental/semantic_graph/index.mjs +0 -12
  283. package/src/ngtsc/incremental/semantic_graph/semantic_graph.externs.js +0 -0
  284. package/src/ngtsc/incremental/semantic_graph/src/api.mjs +0 -36
  285. package/src/ngtsc/incremental/semantic_graph/src/graph.mjs +0 -237
  286. package/src/ngtsc/incremental/semantic_graph/src/type_parameters.mjs +0 -40
  287. package/src/ngtsc/incremental/semantic_graph/src/util.mjs +0 -69
  288. package/src/ngtsc/incremental/src/dependency_tracking.mjs +0 -117
  289. package/src/ngtsc/incremental/src/incremental.mjs +0 -271
  290. package/src/ngtsc/incremental/src/noop.mjs +0 -13
  291. package/src/ngtsc/incremental/src/state.mjs +0 -17
  292. package/src/ngtsc/incremental/src/strategy.mjs +0 -76
  293. package/src/ngtsc/indexer/index.mjs +0 -11
  294. package/src/ngtsc/indexer/indexer.externs.js +0 -0
  295. package/src/ngtsc/indexer/src/api.mjs +0 -30
  296. package/src/ngtsc/indexer/src/context.mjs +0 -25
  297. package/src/ngtsc/indexer/src/template.mjs +0 -303
  298. package/src/ngtsc/indexer/src/transform.mjs +0 -51
  299. package/src/ngtsc/logging/index.mjs +0 -10
  300. package/src/ngtsc/logging/logging.externs.js +0 -0
  301. package/src/ngtsc/logging/src/console_logger.mjs +0 -43
  302. package/src/ngtsc/logging/src/logger.mjs +0 -15
  303. package/src/ngtsc/logging/testing/index.mjs +0 -9
  304. package/src/ngtsc/logging/testing/src/mock_logger.mjs +0 -32
  305. package/src/ngtsc/logging/testing/testing.externs.js +0 -0
  306. package/src/ngtsc/metadata/index.mjs +0 -15
  307. package/src/ngtsc/metadata/metadata.externs.js +0 -0
  308. package/src/ngtsc/metadata/src/api.mjs +0 -13
  309. package/src/ngtsc/metadata/src/dts.mjs +0 -143
  310. package/src/ngtsc/metadata/src/inheritance.mjs +0 -71
  311. package/src/ngtsc/metadata/src/property_mapping.mjs +0 -136
  312. package/src/ngtsc/metadata/src/registry.mjs +0 -80
  313. package/src/ngtsc/metadata/src/resource_registry.mjs +0 -81
  314. package/src/ngtsc/metadata/src/util.mjs +0 -200
  315. package/src/ngtsc/partial_evaluator/index.mjs +0 -12
  316. package/src/ngtsc/partial_evaluator/partial_evaluator.externs.js +0 -0
  317. package/src/ngtsc/partial_evaluator/src/builtin.mjs +0 -65
  318. package/src/ngtsc/partial_evaluator/src/diagnostics.mjs +0 -171
  319. package/src/ngtsc/partial_evaluator/src/dynamic.mjs +0 -86
  320. package/src/ngtsc/partial_evaluator/src/interface.mjs +0 -27
  321. package/src/ngtsc/partial_evaluator/src/interpreter.mjs +0 -683
  322. package/src/ngtsc/partial_evaluator/src/known_declaration.mjs +0 -43
  323. package/src/ngtsc/partial_evaluator/src/result.mjs +0 -50
  324. package/src/ngtsc/partial_evaluator/src/ts_helpers.mjs +0 -72
  325. package/src/ngtsc/perf/index.mjs +0 -11
  326. package/src/ngtsc/perf/perf.externs.js +0 -0
  327. package/src/ngtsc/perf/src/api.mjs +0 -278
  328. package/src/ngtsc/perf/src/clock.mjs +0 -15
  329. package/src/ngtsc/perf/src/noop.mjs +0 -21
  330. package/src/ngtsc/perf/src/recorder.mjs +0 -125
  331. package/src/ngtsc/program.mjs +0 -271
  332. package/src/ngtsc/program_driver/index.mjs +0 -10
  333. package/src/ngtsc/program_driver/program_driver.externs.js +0 -0
  334. package/src/ngtsc/program_driver/src/api.mjs +0 -22
  335. package/src/ngtsc/program_driver/src/ts_create_program_driver.mjs +0 -164
  336. package/src/ngtsc/reflection/index.mjs +0 -12
  337. package/src/ngtsc/reflection/reflection.externs.js +0 -0
  338. package/src/ngtsc/reflection/src/host.mjs +0 -73
  339. package/src/ngtsc/reflection/src/type_to_value.mjs +0 -243
  340. package/src/ngtsc/reflection/src/typescript.mjs +0 -608
  341. package/src/ngtsc/reflection/src/util.mjs +0 -21
  342. package/src/ngtsc/resource/index.mjs +0 -9
  343. package/src/ngtsc/resource/resource.externs.js +0 -0
  344. package/src/ngtsc/resource/src/loader.mjs +0 -242
  345. package/src/ngtsc/routing/index.mjs +0 -11
  346. package/src/ngtsc/routing/routing.externs.js +0 -0
  347. package/src/ngtsc/routing/src/analyzer.mjs +0 -69
  348. package/src/ngtsc/routing/src/lazy.mjs +0 -168
  349. package/src/ngtsc/routing/src/route.mjs +0 -51
  350. package/src/ngtsc/scope/index.mjs +0 -12
  351. package/src/ngtsc/scope/scope.externs.js +0 -0
  352. package/src/ngtsc/scope/src/api.mjs +0 -9
  353. package/src/ngtsc/scope/src/component_scope.mjs +0 -31
  354. package/src/ngtsc/scope/src/dependency.mjs +0 -134
  355. package/src/ngtsc/scope/src/local.mjs +0 -531
  356. package/src/ngtsc/scope/src/typecheck.mjs +0 -83
  357. package/src/ngtsc/shims/api.externs.js +0 -0
  358. package/src/ngtsc/shims/api.mjs +0 -2
  359. package/src/ngtsc/shims/index.mjs +0 -14
  360. package/src/ngtsc/shims/shims.externs.js +0 -0
  361. package/src/ngtsc/shims/src/adapter.mjs +0 -188
  362. package/src/ngtsc/shims/src/expando.mjs +0 -102
  363. package/src/ngtsc/shims/src/factory_generator.mjs +0 -265
  364. package/src/ngtsc/shims/src/reference_tagger.mjs +0 -67
  365. package/src/ngtsc/shims/src/summary_generator.mjs +0 -64
  366. package/src/ngtsc/shims/src/util.mjs +0 -26
  367. package/src/ngtsc/sourcemaps/index.mjs +0 -11
  368. package/src/ngtsc/sourcemaps/sourcemaps.externs.js +0 -0
  369. package/src/ngtsc/sourcemaps/src/content_origin.mjs +0 -35
  370. package/src/ngtsc/sourcemaps/src/raw_source_map.mjs +0 -2
  371. package/src/ngtsc/sourcemaps/src/segment_marker.mjs +0 -40
  372. package/src/ngtsc/sourcemaps/src/source_file.mjs +0 -459
  373. package/src/ngtsc/sourcemaps/src/source_file_loader.mjs +0 -213
  374. package/src/ngtsc/switch/index.mjs +0 -9
  375. package/src/ngtsc/switch/src/switch.mjs +0 -115
  376. package/src/ngtsc/switch/switch.externs.js +0 -0
  377. package/src/ngtsc/transform/index.mjs +0 -14
  378. package/src/ngtsc/transform/src/alias.mjs +0 -30
  379. package/src/ngtsc/transform/src/api.mjs +0 -63
  380. package/src/ngtsc/transform/src/compilation.mjs +0 -514
  381. package/src/ngtsc/transform/src/declaration.mjs +0 -182
  382. package/src/ngtsc/transform/src/trait.mjs +0 -95
  383. package/src/ngtsc/transform/src/transform.mjs +0 -298
  384. package/src/ngtsc/transform/src/utils.mjs +0 -57
  385. package/src/ngtsc/transform/transform.externs.js +0 -0
  386. package/src/ngtsc/translator/index.mjs +0 -14
  387. package/src/ngtsc/translator/src/api/ast_factory.mjs +0 -9
  388. package/src/ngtsc/translator/src/api/import_generator.mjs +0 -9
  389. package/src/ngtsc/translator/src/context.mjs +0 -24
  390. package/src/ngtsc/translator/src/import_manager.mjs +0 -48
  391. package/src/ngtsc/translator/src/translator.mjs +0 -317
  392. package/src/ngtsc/translator/src/type_translator.mjs +0 -204
  393. package/src/ngtsc/translator/src/typescript_ast_factory.mjs +0 -211
  394. package/src/ngtsc/translator/src/typescript_translator.mjs +0 -17
  395. package/src/ngtsc/translator/translator.externs.js +0 -0
  396. package/src/ngtsc/tsc_plugin.mjs +0 -98
  397. package/src/ngtsc/typecheck/api/api.externs.js +0 -0
  398. package/src/ngtsc/typecheck/api/api.mjs +0 -9
  399. package/src/ngtsc/typecheck/api/checker.mjs +0 -31
  400. package/src/ngtsc/typecheck/api/completion.mjs +0 -16
  401. package/src/ngtsc/typecheck/api/context.mjs +0 -9
  402. package/src/ngtsc/typecheck/api/index.mjs +0 -14
  403. package/src/ngtsc/typecheck/api/scope.mjs +0 -9
  404. package/src/ngtsc/typecheck/api/symbols.mjs +0 -22
  405. package/src/ngtsc/typecheck/diagnostics/diagnostics.externs.js +0 -0
  406. package/src/ngtsc/typecheck/diagnostics/index.mjs +0 -10
  407. package/src/ngtsc/typecheck/diagnostics/src/diagnostic.mjs +0 -99
  408. package/src/ngtsc/typecheck/diagnostics/src/id.mjs +0 -23
  409. package/src/ngtsc/typecheck/index.mjs +0 -12
  410. package/src/ngtsc/typecheck/src/checker.mjs +0 -591
  411. package/src/ngtsc/typecheck/src/comments.mjs +0 -159
  412. package/src/ngtsc/typecheck/src/completion.mjs +0 -155
  413. package/src/ngtsc/typecheck/src/context.mjs +0 -350
  414. package/src/ngtsc/typecheck/src/diagnostics.mjs +0 -95
  415. package/src/ngtsc/typecheck/src/dom.mjs +0 -68
  416. package/src/ngtsc/typecheck/src/environment.mjs +0 -146
  417. package/src/ngtsc/typecheck/src/expression.mjs +0 -412
  418. package/src/ngtsc/typecheck/src/line_mappings.mjs +0 -60
  419. package/src/ngtsc/typecheck/src/oob.mjs +0 -112
  420. package/src/ngtsc/typecheck/src/shim.mjs +0 -37
  421. package/src/ngtsc/typecheck/src/source.mjs +0 -74
  422. package/src/ngtsc/typecheck/src/tcb_util.mjs +0 -135
  423. package/src/ngtsc/typecheck/src/template_semantics.mjs +0 -34
  424. package/src/ngtsc/typecheck/src/template_symbol_builder.mjs +0 -485
  425. package/src/ngtsc/typecheck/src/ts_util.mjs +0 -157
  426. package/src/ngtsc/typecheck/src/type_check_block.mjs +0 -1770
  427. package/src/ngtsc/typecheck/src/type_check_file.mjs +0 -65
  428. package/src/ngtsc/typecheck/src/type_constructor.mjs +0 -227
  429. package/src/ngtsc/typecheck/src/type_emitter.mjs +0 -127
  430. package/src/ngtsc/typecheck/src/type_parameter_emitter.mjs +0 -93
  431. package/src/ngtsc/typecheck/typecheck.externs.js +0 -0
  432. package/src/ngtsc/util/src/path.mjs +0 -18
  433. package/src/ngtsc/util/src/typescript.mjs +0 -143
  434. package/src/ngtsc/util/src/visitor.mjs +0 -107
  435. package/src/ngtsc/util/util.externs.js +0 -0
  436. package/src/ngtsc/xi18n/index.mjs +0 -9
  437. package/src/ngtsc/xi18n/src/context.mjs +0 -9
  438. package/src/ngtsc/xi18n/xi18n.externs.js +0 -0
  439. package/src/perform_compile.mjs +0 -275
  440. package/src/perform_watch.mjs +0 -247
  441. package/src/tooling.mjs +0 -32
  442. package/src/transformers/api.mjs +0 -27
  443. package/src/transformers/compiler_host.mjs +0 -593
  444. package/src/transformers/downlevel_decorators_transform.mjs +0 -507
  445. package/src/transformers/entry_points.mjs +0 -10
  446. package/src/transformers/i18n.mjs +0 -59
  447. package/src/transformers/inline_resources.mjs +0 -269
  448. package/src/transformers/lower_expressions.mjs +0 -336
  449. package/src/transformers/metadata_cache.mjs +0 -53
  450. package/src/transformers/metadata_reader.mjs +0 -104
  451. package/src/transformers/node_emitter.mjs +0 -606
  452. package/src/transformers/node_emitter_transform.mjs +0 -78
  453. package/src/transformers/patch_alias_reference_resolution.mjs +0 -109
  454. package/src/transformers/program.mjs +0 -887
  455. package/src/transformers/r3_metadata_transform.mjs +0 -46
  456. package/src/transformers/r3_transform.mjs +0 -29
  457. package/src/transformers/util.mjs +0 -89
  458. package/src/typescript_support.mjs +0 -57
  459. package/src/version.mjs +0 -15
@@ -1,137 +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 { compileDirectiveFromMetadata, makeBindingParser, ParseLocation, ParseSourceFile, ParseSourceSpan } from '@angular/compiler';
9
- import { FatalLinkerError } from '../../fatal_linker_error';
10
- import { wrapReference } from './util';
11
- /**
12
- * A `PartialLinker` that is designed to process `ɵɵngDeclareDirective()` call expressions.
13
- */
14
- export class PartialDirectiveLinkerVersion1 {
15
- constructor(sourceUrl, code) {
16
- this.sourceUrl = sourceUrl;
17
- this.code = code;
18
- }
19
- linkPartialDeclaration(constantPool, metaObj) {
20
- const meta = toR3DirectiveMeta(metaObj, this.code, this.sourceUrl);
21
- const def = compileDirectiveFromMetadata(meta, constantPool, makeBindingParser());
22
- return def.expression;
23
- }
24
- }
25
- /**
26
- * Derives the `R3DirectiveMetadata` structure from the AST object.
27
- */
28
- export function toR3DirectiveMeta(metaObj, code, sourceUrl) {
29
- const typeExpr = metaObj.getValue('type');
30
- const typeName = typeExpr.getSymbolName();
31
- if (typeName === null) {
32
- throw new FatalLinkerError(typeExpr.expression, 'Unsupported type, its name could not be determined');
33
- }
34
- return {
35
- typeSourceSpan: createSourceSpan(typeExpr.getRange(), code, sourceUrl),
36
- type: wrapReference(typeExpr.getOpaque()),
37
- typeArgumentCount: 0,
38
- internalType: metaObj.getOpaque('type'),
39
- deps: null,
40
- host: toHostMetadata(metaObj),
41
- inputs: metaObj.has('inputs') ? metaObj.getObject('inputs').toLiteral(toInputMapping) : {},
42
- outputs: metaObj.has('outputs') ?
43
- metaObj.getObject('outputs').toLiteral(value => value.getString()) :
44
- {},
45
- queries: metaObj.has('queries') ?
46
- metaObj.getArray('queries').map(entry => toQueryMetadata(entry.getObject())) :
47
- [],
48
- viewQueries: metaObj.has('viewQueries') ?
49
- metaObj.getArray('viewQueries').map(entry => toQueryMetadata(entry.getObject())) :
50
- [],
51
- providers: metaObj.has('providers') ? metaObj.getOpaque('providers') : null,
52
- fullInheritance: false,
53
- selector: metaObj.has('selector') ? metaObj.getString('selector') : null,
54
- exportAs: metaObj.has('exportAs') ?
55
- metaObj.getArray('exportAs').map(entry => entry.getString()) :
56
- null,
57
- lifecycle: {
58
- usesOnChanges: metaObj.has('usesOnChanges') ? metaObj.getBoolean('usesOnChanges') : false,
59
- },
60
- name: typeName,
61
- usesInheritance: metaObj.has('usesInheritance') ? metaObj.getBoolean('usesInheritance') : false,
62
- };
63
- }
64
- /**
65
- * Decodes the AST value for a single input to its representation as used in the metadata.
66
- */
67
- function toInputMapping(value) {
68
- if (value.isString()) {
69
- return value.getString();
70
- }
71
- const values = value.getArray().map(innerValue => innerValue.getString());
72
- if (values.length !== 2) {
73
- throw new FatalLinkerError(value.expression, 'Unsupported input, expected a string or an array containing exactly two strings');
74
- }
75
- return values;
76
- }
77
- /**
78
- * Extracts the host metadata configuration from the AST metadata object.
79
- */
80
- function toHostMetadata(metaObj) {
81
- if (!metaObj.has('host')) {
82
- return {
83
- attributes: {},
84
- listeners: {},
85
- properties: {},
86
- specialAttributes: {},
87
- };
88
- }
89
- const host = metaObj.getObject('host');
90
- const specialAttributes = {};
91
- if (host.has('styleAttribute')) {
92
- specialAttributes.styleAttr = host.getString('styleAttribute');
93
- }
94
- if (host.has('classAttribute')) {
95
- specialAttributes.classAttr = host.getString('classAttribute');
96
- }
97
- return {
98
- attributes: host.has('attributes') ?
99
- host.getObject('attributes').toLiteral(value => value.getOpaque()) :
100
- {},
101
- listeners: host.has('listeners') ?
102
- host.getObject('listeners').toLiteral(value => value.getString()) :
103
- {},
104
- properties: host.has('properties') ?
105
- host.getObject('properties').toLiteral(value => value.getString()) :
106
- {},
107
- specialAttributes,
108
- };
109
- }
110
- /**
111
- * Extracts the metadata for a single query from an AST object.
112
- */
113
- function toQueryMetadata(obj) {
114
- let predicate;
115
- const predicateExpr = obj.getValue('predicate');
116
- if (predicateExpr.isArray()) {
117
- predicate = predicateExpr.getArray().map(entry => entry.getString());
118
- }
119
- else {
120
- predicate = predicateExpr.getOpaque();
121
- }
122
- return {
123
- propertyName: obj.getString('propertyName'),
124
- first: obj.has('first') ? obj.getBoolean('first') : false,
125
- predicate,
126
- descendants: obj.has('descendants') ? obj.getBoolean('descendants') : false,
127
- emitDistinctChangesOnly: obj.has('emitDistinctChangesOnly') ? obj.getBoolean('emitDistinctChangesOnly') : true,
128
- read: obj.has('read') ? obj.getOpaque('read') : null,
129
- static: obj.has('static') ? obj.getBoolean('static') : false,
130
- };
131
- }
132
- export function createSourceSpan(range, code, sourceUrl) {
133
- const sourceFile = new ParseSourceFile(code, sourceUrl);
134
- const startLocation = new ParseLocation(sourceFile, range.startPos, range.startLine, range.startCol);
135
- return new ParseSourceSpan(startLocation, startLocation.moveBy(range.endPos - range.startPos));
136
- }
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGlhbF9kaXJlY3RpdmVfbGlua2VyXzEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL3NyYy9maWxlX2xpbmtlci9wYXJ0aWFsX2xpbmtlcnMvcGFydGlhbF9kaXJlY3RpdmVfbGlua2VyXzEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsT0FBTyxFQUFDLDRCQUE0QixFQUFnQixpQkFBaUIsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBaUksTUFBTSxtQkFBbUIsQ0FBQztBQU1qUixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUcxRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBRXJDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLDhCQUE4QjtJQUN6QyxZQUFvQixTQUF5QixFQUFVLElBQVk7UUFBL0MsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFRO0lBQUcsQ0FBQztJQUV2RSxzQkFBc0IsQ0FDbEIsWUFBMEIsRUFDMUIsT0FBcUQ7UUFDdkQsTUFBTSxJQUFJLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sR0FBRyxHQUFHLDRCQUE0QixDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBQ2xGLE9BQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQztJQUN4QixDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FDN0IsT0FBMkQsRUFBRSxJQUFZLEVBQ3pFLFNBQXlCO0lBQzNCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFD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QUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDakcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtjb21waWxlRGlyZWN0aXZlRnJvbU1ldGFkYXRhLCBDb25zdGFudFBvb2wsIG1ha2VCaW5kaW5nUGFyc2VyLCBQYXJzZUxvY2F0aW9uLCBQYXJzZVNvdXJjZUZpbGUsIFBhcnNlU291cmNlU3BhbiwgUjNEZWNsYXJlRGlyZWN0aXZlTWV0YWRhdGEsIFIzRGVjbGFyZVF1ZXJ5TWV0YWRhdGEsIFIzRGlyZWN0aXZlTWV0YWRhdGEsIFIzSG9zdE1ldGFkYXRhLCBSM1BhcnRpYWxEZWNsYXJhdGlvbiwgUjNRdWVyeU1ldGFkYXRhfSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XG5pbXBvcnQgKiBhcyBvIGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyL3NyYy9vdXRwdXQvb3V0cHV0X2FzdCc7XG5cbmltcG9ydCB7QWJzb2x1dGVGc1BhdGh9IGZyb20gJy4uLy4uLy4uLy4uL3NyYy9uZ3RzYy9maWxlX3N5c3RlbSc7XG5pbXBvcnQge1JhbmdlfSBmcm9tICcuLi8uLi9hc3QvYXN0X2hvc3QnO1xuaW1wb3J0IHtBc3RPYmplY3QsIEFzdFZhbHVlfSBmcm9tICcuLi8uLi9hc3QvYXN0X3ZhbHVlJztcbmltcG9ydCB7RmF0YWxMaW5rZXJFcnJvcn0gZnJvbSAnLi4vLi4vZmF0YWxfbGlua2VyX2Vycm9yJztcblxuaW1wb3J0IHtQYXJ0aWFsTGlua2VyfSBmcm9tICcuL3BhcnRpYWxfbGlua2VyJztcbmltcG9ydCB7d3JhcFJlZmVyZW5jZX0gZnJvbSAnLi91dGlsJztcblxuLyoqXG4gKiBBIGBQYXJ0aWFsTGlua2VyYCB0aGF0IGlzIGRlc2lnbmVkIHRvIHByb2Nlc3MgYMm1ybVuZ0RlY2xhcmVEaXJlY3RpdmUoKWAgY2FsbCBleHByZXNzaW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIFBhcnRpYWxEaXJlY3RpdmVMaW5rZXJWZXJzaW9uMTxURXhwcmVzc2lvbj4gaW1wbGVtZW50cyBQYXJ0aWFsTGlua2VyPFRFeHByZXNzaW9uPiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc291cmNlVXJsOiBBYnNvbHV0ZUZzUGF0aCwgcHJpdmF0ZSBjb2RlOiBzdHJpbmcpIHt9XG5cbiAgbGlua1BhcnRpYWxEZWNsYXJhdGlvbihcbiAgICAgIGNvbnN0YW50UG9vbDogQ29uc3RhbnRQb29sLFxuICAgICAgbWV0YU9iajogQXN0T2JqZWN0PFIzUGFydGlhbERlY2xhcmF0aW9uLCBURXhwcmVzc2lvbj4pOiBvLkV4cHJlc3Npb24ge1xuICAgIGNvbnN0IG1ldGEgPSB0b1IzRGlyZWN0aXZlTWV0YShtZXRhT2JqLCB0aGlzLmNvZGUsIHRoaXMuc291cmNlVXJsKTtcbiAgICBjb25zdCBkZWYgPSBjb21waWxlRGlyZWN0aXZlRnJvbU1ldGFkYXRhKG1ldGEsIGNvbnN0YW50UG9vbCwgbWFrZUJpbmRpbmdQYXJzZXIoKSk7XG4gICAgcmV0dXJuIGRlZi5leHByZXNzaW9uO1xuICB9XG59XG5cbi8qKlxuICogRGVyaXZlcyB0aGUgYFIzRGlyZWN0aXZlTWV0YWRhdGFgIHN0cnVjdHVyZSBmcm9tIHRoZSBBU1Qgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9SM0RpcmVjdGl2ZU1ldGE8VEV4cHJlc3Npb24+KFxuICAgIG1ldGFPYmo6IEFzdE9iamVjdDxSM0RlY2xhcmVEaXJlY3RpdmVNZXRhZGF0YSwgVEV4cHJlc3Npb24+LCBjb2RlOiBzdHJpbmcsXG4gICAgc291cmNlVXJsOiBBYnNvbHV0ZUZzUGF0aCk6IFIzRGlyZWN0aXZlTWV0YWRhdGEge1xuICBjb25zdCB0eXBlRXhwciA9IG1ldGFPYmouZ2V0VmFsdWUoJ3R5cGUnKTtcbiAgY29uc3QgdHlwZU5hbWUgPSB0eXBlRXhwci5nZXRTeW1ib2xOYW1lKCk7XG4gIGlmICh0eXBlTmFtZSA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBGYXRhbExpbmtlckVycm9yKFxuICAgICAgICB0eXBlRXhwci5leHByZXNzaW9uLCAnVW5zdXBwb3J0ZWQgdHlwZSwgaXRzIG5hbWUgY291bGQgbm90IGJlIGRldGVybWluZWQnKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdHlwZVNvdXJjZVNwYW46IGNyZWF0ZVNvdXJjZVNwYW4odHlwZUV4cHIuZ2V0UmFuZ2UoKSwgY29kZSwgc291cmNlVXJsKSxcbiAgICB0eXBlOiB3cmFwUmVmZXJlbmNlKHR5cGVFeHByLmdldE9wYXF1ZSgpKSxcbiAgICB0eXBlQXJndW1lbnRDb3VudDogMCxcbiAgICBpbnRlcm5hbFR5cGU6IG1ldGFPYmouZ2V0T3BhcXVlKCd0eXBlJyksXG4gICAgZGVwczogbnVsbCxcbiAgICBob3N0OiB0b0hvc3RNZXRhZGF0YShtZXRhT2JqKSxcbiAgICBpbnB1dHM6IG1ldGFPYmouaGFzKCdpbnB1dHMnKSA/IG1ldGFPYmouZ2V0T2JqZWN0KCdpbnB1dHMnKS50b0xpdGVyYWwodG9JbnB1dE1hcHBpbmcpIDoge30sXG4gICAgb3V0cHV0czogbWV0YU9iai5oYXMoJ291dHB1dHMnKSA/XG4gICAgICAgIG1ldGFPYmouZ2V0T2JqZWN0KCdvdXRwdXRzJykudG9MaXRlcmFsKHZhbHVlID0+IHZhbHVlLmdldFN0cmluZygpKSA6XG4gICAgICAgIHt9LFxuICAgIHF1ZXJpZXM6IG1ldGFPYmouaGFzKCdxdWVyaWVzJykgP1xuICAgICAgICBtZXRhT2JqLmdldEFycmF5KCdxdWVyaWVzJykubWFwKGVudHJ5ID0+IHRvUXVlcnlNZXRhZGF0YShlbnRyeS5nZXRPYmplY3QoKSkpIDpcbiAgICAgICAgW10sXG4gICAgdmlld1F1ZXJpZXM6IG1ldGFPYmouaGFzKCd2aWV3UXVlcmllcycpID9cbiAgICAgICAgbWV0YU9iai5nZXRBcnJheSgndmlld1F1ZXJpZXMnKS5tYXAoZW50cnkgPT4gdG9RdWVyeU1ldGFkYXRhKGVudHJ5LmdldE9iamVjdCgpKSkgOlxuICAgICAgICBbXSxcbiAgICBwcm92aWRlcnM6IG1ldGFPYmouaGFzKCdwcm92aWRlcnMnKSA/IG1ldGFPYmouZ2V0T3BhcXVlKCdwcm92aWRlcnMnKSA6IG51bGwsXG4gICAgZnVsbEluaGVyaXRhbmNlOiBmYWxzZSxcbiAgICBzZWxlY3RvcjogbWV0YU9iai5oYXMoJ3NlbGVjdG9yJykgPyBtZXRhT2JqLmdldFN0cmluZygnc2VsZWN0b3InKSA6IG51bGwsXG4gICAgZXhwb3J0QXM6IG1ldGFPYmouaGFzKCdleHBvcnRBcycpID9cbiAgICAgICAgbWV0YU9iai5nZXRBcnJheSgnZXhwb3J0QXMnKS5tYXAoZW50cnkgPT4gZW50cnkuZ2V0U3RyaW5nKCkpIDpcbiAgICAgICAgbnVsbCxcbiAgICBsaWZlY3ljbGU6IHtcbiAgICAgIHVzZXNPbkNoYW5nZXM6IG1ldGFPYmouaGFzKCd1c2VzT25DaGFuZ2VzJykgPyBtZXRhT2JqLmdldEJvb2xlYW4oJ3VzZXNPbkNoYW5nZXMnKSA6IGZhbHNlLFxuICAgIH0sXG4gICAgbmFtZTogdHlwZU5hbWUsXG4gICAgdXNlc0luaGVyaXRhbmNlOiBtZXRhT2JqLmhhcygndXNlc0luaGVyaXRhbmNlJykgPyBtZXRhT2JqLmdldEJvb2xlYW4oJ3VzZXNJbmhlcml0YW5jZScpIDogZmFsc2UsXG4gIH07XG59XG5cbi8qKlxuICogRGVjb2RlcyB0aGUgQVNUIHZhbHVlIGZvciBhIHNpbmdsZSBpbnB1dCB0byBpdHMgcmVwcmVzZW50YXRpb24gYXMgdXNlZCBpbiB0aGUgbWV0YWRhdGEuXG4gKi9cbmZ1bmN0aW9uIHRvSW5wdXRNYXBwaW5nPFRFeHByZXNzaW9uPih2YWx1ZTogQXN0VmFsdWU8c3RyaW5nfFtzdHJpbmcsIHN0cmluZ10sIFRFeHByZXNzaW9uPik6XG4gICAgc3RyaW5nfFtzdHJpbmcsIHN0cmluZ10ge1xuICBpZiAodmFsdWUuaXNTdHJpbmcoKSkge1xuICAgIHJldHVybiB2YWx1ZS5nZXRTdHJpbmcoKTtcbiAgfVxuXG4gIGNvbnN0IHZhbHVlcyA9IHZhbHVlLmdldEFycmF5KCkubWFwKGlubmVyVmFsdWUgPT4gaW5uZXJWYWx1ZS5nZXRTdHJpbmcoKSk7XG4gIGlmICh2YWx1ZXMubGVuZ3RoICE9PSAyKSB7XG4gICAgdGhyb3cgbmV3IEZhdGFsTGlua2VyRXJyb3IoXG4gICAgICAgIHZhbHVlLmV4cHJlc3Npb24sXG4gICAgICAgICdVbnN1cHBvcnRlZCBpbnB1dCwgZXhwZWN0ZWQgYSBzdHJpbmcgb3IgYW4gYXJyYXkgY29udGFpbmluZyBleGFjdGx5IHR3byBzdHJpbmdzJyk7XG4gIH1cbiAgcmV0dXJuIHZhbHVlcyBhcyBbc3RyaW5nLCBzdHJpbmddO1xufVxuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBob3N0IG1ldGFkYXRhIGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgQVNUIG1ldGFkYXRhIG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gdG9Ib3N0TWV0YWRhdGE8VEV4cHJlc3Npb24+KG1ldGFPYmo6IEFzdE9iamVjdDxSM0RlY2xhcmVEaXJlY3RpdmVNZXRhZGF0YSwgVEV4cHJlc3Npb24+KTpcbiAgICBSM0hvc3RNZXRhZGF0YSB7XG4gIGlmICghbWV0YU9iai5oYXMoJ2hvc3QnKSkge1xuICAgIHJldHVybiB7XG4gICAgICBhdHRyaWJ1dGVzOiB7fSxcbiAgICAgIGxpc3RlbmVyczoge30sXG4gICAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICAgIHNwZWNpYWxBdHRyaWJ1dGVzOiB7fSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgaG9zdCA9IG1ldGFPYmouZ2V0T2JqZWN0KCdob3N0Jyk7XG5cbiAgY29uc3Qgc3BlY2lhbEF0dHJpYnV0ZXM6IFIzSG9zdE1ldGFkYXRhWydzcGVjaWFsQXR0cmlidXRlcyddID0ge307XG4gIGlmIChob3N0Lmhhcygnc3R5bGVBdHRyaWJ1dGUnKSkge1xuICAgIHNwZWNpYWxBdHRyaWJ1dGVzLnN0eWxlQXR0ciA9IGhvc3QuZ2V0U3RyaW5nKCdzdHlsZUF0dHJpYnV0ZScpO1xuICB9XG4gIGlmIChob3N0LmhhcygnY2xhc3NBdHRyaWJ1dGUnKSkge1xuICAgIHNwZWNpYWxBdHRyaWJ1dGVzLmNsYXNzQXR0ciA9IGhvc3QuZ2V0U3RyaW5nKCdjbGFzc0F0dHJpYnV0ZScpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhdHRyaWJ1dGVzOiBob3N0LmhhcygnYXR0cmlidXRlcycpID9cbiAgICAgICAgaG9zdC5nZXRPYmplY3QoJ2F0dHJpYnV0ZXMnKS50b0xpdGVyYWwodmFsdWUgPT4gdmFsdWUuZ2V0T3BhcXVlKCkpIDpcbiAgICAgICAge30sXG4gICAgbGlzdGVuZXJzOiBob3N0LmhhcygnbGlzdGVuZXJzJykgP1xuICAgICAgICBob3N0LmdldE9iamVjdCgnbGlzdGVuZXJzJykudG9MaXRlcmFsKHZhbHVlID0+IHZhbHVlLmdldFN0cmluZygpKSA6XG4gICAgICAgIHt9LFxuICAgIHByb3BlcnRpZXM6IGhvc3QuaGFzKCdwcm9wZXJ0aWVzJykgP1xuICAgICAgICBob3N0LmdldE9iamVjdCgncHJvcGVydGllcycpLnRvTGl0ZXJhbCh2YWx1ZSA9PiB2YWx1ZS5nZXRTdHJpbmcoKSkgOlxuICAgICAgICB7fSxcbiAgICBzcGVjaWFsQXR0cmlidXRlcyxcbiAgfTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0cyB0aGUgbWV0YWRhdGEgZm9yIGEgc2luZ2xlIHF1ZXJ5IGZyb20gYW4gQVNUIG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gdG9RdWVyeU1ldGFkYXRhPFRFeHByZXNzaW9uPihvYmo6IEFzdE9iamVjdDxSM0RlY2xhcmVRdWVyeU1ldGFkYXRhLCBURXhwcmVzc2lvbj4pOlxuICAgIFIzUXVlcnlNZXRhZGF0YSB7XG4gIGxldCBwcmVkaWNhdGU6IFIzUXVlcnlNZXRhZGF0YVsncHJlZGljYXRlJ107XG4gIGNvbnN0IHByZWRpY2F0ZUV4cHIgPSBvYmouZ2V0VmFsdWUoJ3ByZWRpY2F0ZScpO1xuICBpZiAocHJlZGljYXRlRXhwci5pc0FycmF5KCkpIHtcbiAgICBwcmVkaWNhdGUgPSBwcmVkaWNhdGVFeHByLmdldEFycmF5KCkubWFwKGVudHJ5ID0+IGVudHJ5LmdldFN0cmluZygpKTtcbiAgfSBlbHNlIHtcbiAgICBwcmVkaWNhdGUgPSBwcmVkaWNhdGVFeHByLmdldE9wYXF1ZSgpO1xuICB9XG4gIHJldHVybiB7XG4gICAgcHJvcGVydHlOYW1lOiBvYmouZ2V0U3RyaW5nKCdwcm9wZXJ0eU5hbWUnKSxcbiAgICBmaXJzdDogb2JqLmhhcygnZmlyc3QnKSA/IG9iai5nZXRCb29sZWFuKCdmaXJzdCcpIDogZmFsc2UsXG4gICAgcHJlZGljYXRlLFxuICAgIGRlc2NlbmRhbnRzOiBvYmouaGFzKCdkZXNjZW5kYW50cycpID8gb2JqLmdldEJvb2xlYW4oJ2Rlc2NlbmRhbnRzJykgOiBmYWxzZSxcbiAgICBlbWl0RGlzdGluY3RDaGFuZ2VzT25seTpcbiAgICAgICAgb2JqLmhhcygnZW1pdERpc3RpbmN0Q2hhbmdlc09ubHknKSA/IG9iai5nZXRCb29sZWFuKCdlbWl0RGlzdGluY3RDaGFuZ2VzT25seScpIDogdHJ1ZSxcbiAgICByZWFkOiBvYmouaGFzKCdyZWFkJykgPyBvYmouZ2V0T3BhcXVlKCdyZWFkJykgOiBudWxsLFxuICAgIHN0YXRpYzogb2JqLmhhcygnc3RhdGljJykgPyBvYmouZ2V0Qm9vbGVhbignc3RhdGljJykgOiBmYWxzZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNvdXJjZVNwYW4ocmFuZ2U6IFJhbmdlLCBjb2RlOiBzdHJpbmcsIHNvdXJjZVVybDogc3RyaW5nKTogUGFyc2VTb3VyY2VTcGFuIHtcbiAgY29uc3Qgc291cmNlRmlsZSA9IG5ldyBQYXJzZVNvdXJjZUZpbGUoY29kZSwgc291cmNlVXJsKTtcbiAgY29uc3Qgc3RhcnRMb2NhdGlvbiA9XG4gICAgICBuZXcgUGFyc2VMb2NhdGlvbihzb3VyY2VGaWxlLCByYW5nZS5zdGFydFBvcywgcmFuZ2Uuc3RhcnRMaW5lLCByYW5nZS5zdGFydENvbCk7XG4gIHJldHVybiBuZXcgUGFyc2VTb3VyY2VTcGFuKHN0YXJ0TG9jYXRpb24sIHN0YXJ0TG9jYXRpb24ubW92ZUJ5KHJhbmdlLmVuZFBvcyAtIHJhbmdlLnN0YXJ0UG9zKSk7XG59XG4iXX0=
@@ -1,52 +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 { compileFactoryFunction, FactoryTarget } from '@angular/compiler';
9
- import { FatalLinkerError } from '../../fatal_linker_error';
10
- import { getDependency, parseEnum, wrapReference } from './util';
11
- /**
12
- * A `PartialLinker` that is designed to process `ɵɵngDeclareFactory()` call expressions.
13
- */
14
- export class PartialFactoryLinkerVersion1 {
15
- linkPartialDeclaration(constantPool, metaObj) {
16
- const meta = toR3FactoryMeta(metaObj);
17
- const def = compileFactoryFunction(meta);
18
- return def.expression;
19
- }
20
- }
21
- /**
22
- * Derives the `R3FactoryMetadata` structure from the AST object.
23
- */
24
- export function toR3FactoryMeta(metaObj) {
25
- const typeExpr = metaObj.getValue('type');
26
- const typeName = typeExpr.getSymbolName();
27
- if (typeName === null) {
28
- throw new FatalLinkerError(typeExpr.expression, 'Unsupported type, its name could not be determined');
29
- }
30
- return {
31
- name: typeName,
32
- type: wrapReference(typeExpr.getOpaque()),
33
- internalType: metaObj.getOpaque('type'),
34
- typeArgumentCount: 0,
35
- target: parseEnum(metaObj.getValue('target'), FactoryTarget),
36
- deps: getDependencies(metaObj, 'deps'),
37
- };
38
- }
39
- function getDependencies(metaObj, propName) {
40
- if (!metaObj.has(propName)) {
41
- return null;
42
- }
43
- const deps = metaObj.getValue(propName);
44
- if (deps.isArray()) {
45
- return deps.getArray().map(dep => getDependency(dep.getObject()));
46
- }
47
- if (deps.isString()) {
48
- return 'invalid';
49
- }
50
- return null;
51
- }
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGlhbF9mYWN0b3J5X2xpbmtlcl8xLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL2xpbmtlci9zcmMvZmlsZV9saW5rZXIvcGFydGlhbF9saW5rZXJzL3BhcnRpYWxfZmFjdG9yeV9saW5rZXJfMS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUMsc0JBQXNCLEVBQWdCLGFBQWEsRUFBMEYsTUFBTSxtQkFBbUIsQ0FBQztBQUkvSyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUcxRCxPQUFPLEVBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFFL0Q7O0dBRUc7QUFDSCxNQUFNLE9BQU8sNEJBQTRCO0lBQ3ZDLHNCQUFzQixDQUNsQixZQUEwQixFQUMxQixPQUFxRDtRQUN2RCxNQUFNLElBQUksR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsTUFBTSxHQUFHLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsT0FBTyxHQUFHLENBQUMsVUFBVSxDQUFDO0lBQ3hCLENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FDM0IsT0FBeUQ7SUFDM0QsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDMUMsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFO1FBQ3JCLE1BQU0sSUFBSSxnQkFBZ0IsQ0FDdEIsUUFBUSxDQUFDLFVBQVUsRUFBRSxvREFBb0QsQ0FBQyxDQUFDO0tBQ2hGO0lBRUQsT0FBTztRQUNMLElBQUksRUFBRSxRQUFRO1FBQ2QsSUFBSSxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDekMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQ3ZDLGlCQUFpQixFQUFFLENBQUM7UUFDcEIsTUFBTSxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLGFBQWEsQ0FBQztRQUM1RCxJQUFJLEVBQUUsZUFBZSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7S0FDdkMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FDcEIsT0FBeUQsRUFDekQsUUFBd0M7SUFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDMUIsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUNELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDbEIsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDbkU7SUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUNuQixPQUFPLFNBQVMsQ0FBQztLQUNsQjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtjb21waWxlRmFjdG9yeUZ1bmN0aW9uLCBDb25zdGFudFBvb2wsIEZhY3RvcnlUYXJnZXQsIFIzRGVjbGFyZUZhY3RvcnlNZXRhZGF0YSwgUjNEZXBlbmRlbmN5TWV0YWRhdGEsIFIzRmFjdG9yeU1ldGFkYXRhLCBSM1BhcnRpYWxEZWNsYXJhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0ICogYXMgbyBmcm9tICdAYW5ndWxhci9jb21waWxlci9zcmMvb3V0cHV0L291dHB1dF9hc3QnO1xuXG5pbXBvcnQge0FzdE9iamVjdH0gZnJvbSAnLi4vLi4vYXN0L2FzdF92YWx1ZSc7XG5pbXBvcnQge0ZhdGFsTGlua2VyRXJyb3J9IGZyb20gJy4uLy4uL2ZhdGFsX2xpbmtlcl9lcnJvcic7XG5cbmltcG9ydCB7UGFydGlhbExpbmtlcn0gZnJvbSAnLi9wYXJ0aWFsX2xpbmtlcic7XG5pbXBvcnQge2dldERlcGVuZGVuY3ksIHBhcnNlRW51bSwgd3JhcFJlZmVyZW5jZX0gZnJvbSAnLi91dGlsJztcblxuLyoqXG4gKiBBIGBQYXJ0aWFsTGlua2VyYCB0aGF0IGlzIGRlc2lnbmVkIHRvIHByb2Nlc3MgYMm1ybVuZ0RlY2xhcmVGYWN0b3J5KClgIGNhbGwgZXhwcmVzc2lvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBQYXJ0aWFsRmFjdG9yeUxpbmtlclZlcnNpb24xPFRFeHByZXNzaW9uPiBpbXBsZW1lbnRzIFBhcnRpYWxMaW5rZXI8VEV4cHJlc3Npb24+IHtcbiAgbGlua1BhcnRpYWxEZWNsYXJhdGlvbihcbiAgICAgIGNvbnN0YW50UG9vbDogQ29uc3RhbnRQb29sLFxuICAgICAgbWV0YU9iajogQXN0T2JqZWN0PFIzUGFydGlhbERlY2xhcmF0aW9uLCBURXhwcmVzc2lvbj4pOiBvLkV4cHJlc3Npb24ge1xuICAgIGNvbnN0IG1ldGEgPSB0b1IzRmFjdG9yeU1ldGEobWV0YU9iaik7XG4gICAgY29uc3QgZGVmID0gY29tcGlsZUZhY3RvcnlGdW5jdGlvbihtZXRhKTtcbiAgICByZXR1cm4gZGVmLmV4cHJlc3Npb247XG4gIH1cbn1cblxuLyoqXG4gKiBEZXJpdmVzIHRoZSBgUjNGYWN0b3J5TWV0YWRhdGFgIHN0cnVjdHVyZSBmcm9tIHRoZSBBU1Qgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9SM0ZhY3RvcnlNZXRhPFRFeHByZXNzaW9uPihcbiAgICBtZXRhT2JqOiBBc3RPYmplY3Q8UjNEZWNsYXJlRmFjdG9yeU1ldGFkYXRhLCBURXhwcmVzc2lvbj4pOiBSM0ZhY3RvcnlNZXRhZGF0YSB7XG4gIGNvbnN0IHR5cGVFeHByID0gbWV0YU9iai5nZXRWYWx1ZSgndHlwZScpO1xuICBjb25zdCB0eXBlTmFtZSA9IHR5cGVFeHByLmdldFN5bWJvbE5hbWUoKTtcbiAgaWYgKHR5cGVOYW1lID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEZhdGFsTGlua2VyRXJyb3IoXG4gICAgICAgIHR5cGVFeHByLmV4cHJlc3Npb24sICdVbnN1cHBvcnRlZCB0eXBlLCBpdHMgbmFtZSBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZCcpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiB0eXBlTmFtZSxcbiAgICB0eXBlOiB3cmFwUmVmZXJlbmNlKHR5cGVFeHByLmdldE9wYXF1ZSgpKSxcbiAgICBpbnRlcm5hbFR5cGU6IG1ldGFPYmouZ2V0T3BhcXVlKCd0eXBlJyksXG4gICAgdHlwZUFyZ3VtZW50Q291bnQ6IDAsXG4gICAgdGFyZ2V0OiBwYXJzZUVudW0obWV0YU9iai5nZXRWYWx1ZSgndGFyZ2V0JyksIEZhY3RvcnlUYXJnZXQpLFxuICAgIGRlcHM6IGdldERlcGVuZGVuY2llcyhtZXRhT2JqLCAnZGVwcycpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXREZXBlbmRlbmNpZXM8VEV4cHJlc3Npb24+KFxuICAgIG1ldGFPYmo6IEFzdE9iamVjdDxSM0RlY2xhcmVGYWN0b3J5TWV0YWRhdGEsIFRFeHByZXNzaW9uPixcbiAgICBwcm9wTmFtZToga2V5b2YgUjNEZWNsYXJlRmFjdG9yeU1ldGFkYXRhKTogUjNEZXBlbmRlbmN5TWV0YWRhdGFbXXxudWxsfCdpbnZhbGlkJyB7XG4gIGlmICghbWV0YU9iai5oYXMocHJvcE5hbWUpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgZGVwcyA9IG1ldGFPYmouZ2V0VmFsdWUocHJvcE5hbWUpO1xuICBpZiAoZGVwcy5pc0FycmF5KCkpIHtcbiAgICByZXR1cm4gZGVwcy5nZXRBcnJheSgpLm1hcChkZXAgPT4gZ2V0RGVwZW5kZW5jeShkZXAuZ2V0T2JqZWN0KCkpKTtcbiAgfVxuICBpZiAoZGVwcy5pc1N0cmluZygpKSB7XG4gICAgcmV0dXJuICdpbnZhbGlkJztcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cbiJdfQ==
@@ -1,56 +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 { compileInjectable, createR3ProviderExpression } from '@angular/compiler';
9
- import * as o from '@angular/compiler/src/output/output_ast';
10
- import { FatalLinkerError } from '../../fatal_linker_error';
11
- import { extractForwardRef, getDependency, wrapReference } from './util';
12
- /**
13
- * A `PartialLinker` that is designed to process `ɵɵngDeclareInjectable()` call expressions.
14
- */
15
- export class PartialInjectableLinkerVersion1 {
16
- linkPartialDeclaration(constantPool, metaObj) {
17
- const meta = toR3InjectableMeta(metaObj);
18
- const def = compileInjectable(meta, /* resolveForwardRefs */ false);
19
- return def.expression;
20
- }
21
- }
22
- /**
23
- * Derives the `R3InjectableMetadata` structure from the AST object.
24
- */
25
- export function toR3InjectableMeta(metaObj) {
26
- const typeExpr = metaObj.getValue('type');
27
- const typeName = typeExpr.getSymbolName();
28
- if (typeName === null) {
29
- throw new FatalLinkerError(typeExpr.expression, 'Unsupported type, its name could not be determined');
30
- }
31
- const meta = {
32
- name: typeName,
33
- type: wrapReference(typeExpr.getOpaque()),
34
- internalType: typeExpr.getOpaque(),
35
- typeArgumentCount: 0,
36
- providedIn: metaObj.has('providedIn') ? extractForwardRef(metaObj.getValue('providedIn')) :
37
- createR3ProviderExpression(o.literal(null), false),
38
- };
39
- if (metaObj.has('useClass')) {
40
- meta.useClass = extractForwardRef(metaObj.getValue('useClass'));
41
- }
42
- if (metaObj.has('useFactory')) {
43
- meta.useFactory = metaObj.getOpaque('useFactory');
44
- }
45
- if (metaObj.has('useExisting')) {
46
- meta.useExisting = extractForwardRef(metaObj.getValue('useExisting'));
47
- }
48
- if (metaObj.has('useValue')) {
49
- meta.useValue = extractForwardRef(metaObj.getValue('useValue'));
50
- }
51
- if (metaObj.has('deps')) {
52
- meta.deps = metaObj.getArray('deps').map(dep => getDependency(dep.getObject()));
53
- }
54
- return meta;
55
- }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGlhbF9pbmplY3RhYmxlX2xpbmtlcl8xLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL2xpbmtlci9zcmMvZmlsZV9saW5rZXIvcGFydGlhbF9saW5rZXJzL3BhcnRpYWxfaW5qZWN0YWJsZV9saW5rZXJfMS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUMsaUJBQWlCLEVBQWdCLDBCQUEwQixFQUEwRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZLLE9BQU8sS0FBSyxDQUFDLE1BQU0seUNBQXlDLENBQUM7QUFHN0QsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFHMUQsT0FBTyxFQUFDLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFFdkU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sK0JBQStCO0lBQzFDLHNCQUFzQixDQUNsQixZQUEwQixFQUMxQixPQUFxRDtRQUN2RCxNQUFNLElBQUksR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QyxNQUFNLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEUsT0FBTyxHQUFHLENBQUMsVUFBVSxDQUFDO0lBQ3hCLENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUM5QixPQUE0RDtJQUM5RCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMxQyxJQUFJLFFBQVEsS0FBSyxJQUFJLEVBQUU7UUFDckIsTUFBTSxJQUFJLGdCQUFnQixDQUN0QixRQUFRLENBQUMsVUFBVSxFQUFFLG9EQUFvRCxDQUFDLENBQUM7S0FDaEY7SUFFRCxNQUFNLElBQUksR0FBeUI7UUFDakMsSUFBSSxFQUFFLFFBQVE7UUFDZCxJQUFJLEVBQUUsYUFBYSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN6QyxZQUFZLEVBQUUsUUFBUSxDQUFDLFNBQVMsRUFBRTtRQUNsQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3BCLFVBQVUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRCwwQkFBMEIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQztLQUMzRixDQUFDO0lBRUYsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0tBQ2pFO0lBQ0QsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztLQUNuRDtJQUNELElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRTtRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztLQUN2RTtJQUNELElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRTtRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztLQUNqRTtJQUVELElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDakY7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7Y29tcGlsZUluamVjdGFibGUsIENvbnN0YW50UG9vbCwgY3JlYXRlUjNQcm92aWRlckV4cHJlc3Npb24sIFIzRGVjbGFyZUluamVjdGFibGVNZXRhZGF0YSwgUjNJbmplY3RhYmxlTWV0YWRhdGEsIFIzUGFydGlhbERlY2xhcmF0aW9ufSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XG5pbXBvcnQgKiBhcyBvIGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyL3NyYy9vdXRwdXQvb3V0cHV0X2FzdCc7XG5cbmltcG9ydCB7QXN0T2JqZWN0fSBmcm9tICcuLi8uLi9hc3QvYXN0X3ZhbHVlJztcbmltcG9ydCB7RmF0YWxMaW5rZXJFcnJvcn0gZnJvbSAnLi4vLi4vZmF0YWxfbGlua2VyX2Vycm9yJztcblxuaW1wb3J0IHtQYXJ0aWFsTGlua2VyfSBmcm9tICcuL3BhcnRpYWxfbGlua2VyJztcbmltcG9ydCB7ZXh0cmFjdEZvcndhcmRSZWYsIGdldERlcGVuZGVuY3ksIHdyYXBSZWZlcmVuY2V9IGZyb20gJy4vdXRpbCc7XG5cbi8qKlxuICogQSBgUGFydGlhbExpbmtlcmAgdGhhdCBpcyBkZXNpZ25lZCB0byBwcm9jZXNzIGDJtcm1bmdEZWNsYXJlSW5qZWN0YWJsZSgpYCBjYWxsIGV4cHJlc3Npb25zLlxuICovXG5leHBvcnQgY2xhc3MgUGFydGlhbEluamVjdGFibGVMaW5rZXJWZXJzaW9uMTxURXhwcmVzc2lvbj4gaW1wbGVtZW50cyBQYXJ0aWFsTGlua2VyPFRFeHByZXNzaW9uPiB7XG4gIGxpbmtQYXJ0aWFsRGVjbGFyYXRpb24oXG4gICAgICBjb25zdGFudFBvb2w6IENvbnN0YW50UG9vbCxcbiAgICAgIG1ldGFPYmo6IEFzdE9iamVjdDxSM1BhcnRpYWxEZWNsYXJhdGlvbiwgVEV4cHJlc3Npb24+KTogby5FeHByZXNzaW9uIHtcbiAgICBjb25zdCBtZXRhID0gdG9SM0luamVjdGFibGVNZXRhKG1ldGFPYmopO1xuICAgIGNvbnN0IGRlZiA9IGNvbXBpbGVJbmplY3RhYmxlKG1ldGEsIC8qIHJlc29sdmVGb3J3YXJkUmVmcyAqLyBmYWxzZSk7XG4gICAgcmV0dXJuIGRlZi5leHByZXNzaW9uO1xuICB9XG59XG5cbi8qKlxuICogRGVyaXZlcyB0aGUgYFIzSW5qZWN0YWJsZU1ldGFkYXRhYCBzdHJ1Y3R1cmUgZnJvbSB0aGUgQVNUIG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvUjNJbmplY3RhYmxlTWV0YTxURXhwcmVzc2lvbj4oXG4gICAgbWV0YU9iajogQXN0T2JqZWN0PFIzRGVjbGFyZUluamVjdGFibGVNZXRhZGF0YSwgVEV4cHJlc3Npb24+KTogUjNJbmplY3RhYmxlTWV0YWRhdGEge1xuICBjb25zdCB0eXBlRXhwciA9IG1ldGFPYmouZ2V0VmFsdWUoJ3R5cGUnKTtcbiAgY29uc3QgdHlwZU5hbWUgPSB0eXBlRXhwci5nZXRTeW1ib2xOYW1lKCk7XG4gIGlmICh0eXBlTmFtZSA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBGYXRhbExpbmtlckVycm9yKFxuICAgICAgICB0eXBlRXhwci5leHByZXNzaW9uLCAnVW5zdXBwb3J0ZWQgdHlwZSwgaXRzIG5hbWUgY291bGQgbm90IGJlIGRldGVybWluZWQnKTtcbiAgfVxuXG4gIGNvbnN0IG1ldGE6IFIzSW5qZWN0YWJsZU1ldGFkYXRhID0ge1xuICAgIG5hbWU6IHR5cGVOYW1lLFxuICAgIHR5cGU6IHdyYXBSZWZlcmVuY2UodHlwZUV4cHIuZ2V0T3BhcXVlKCkpLFxuICAgIGludGVybmFsVHlwZTogdHlwZUV4cHIuZ2V0T3BhcXVlKCksXG4gICAgdHlwZUFyZ3VtZW50Q291bnQ6IDAsXG4gICAgcHJvdmlkZWRJbjogbWV0YU9iai5oYXMoJ3Byb3ZpZGVkSW4nKSA/IGV4dHJhY3RGb3J3YXJkUmVmKG1ldGFPYmouZ2V0VmFsdWUoJ3Byb3ZpZGVkSW4nKSkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVSM1Byb3ZpZGVyRXhwcmVzc2lvbihvLmxpdGVyYWwobnVsbCksIGZhbHNlKSxcbiAgfTtcblxuICBpZiAobWV0YU9iai5oYXMoJ3VzZUNsYXNzJykpIHtcbiAgICBtZXRhLnVzZUNsYXNzID0gZXh0cmFjdEZvcndhcmRSZWYobWV0YU9iai5nZXRWYWx1ZSgndXNlQ2xhc3MnKSk7XG4gIH1cbiAgaWYgKG1ldGFPYmouaGFzKCd1c2VGYWN0b3J5JykpIHtcbiAgICBtZXRhLnVzZUZhY3RvcnkgPSBtZXRhT2JqLmdldE9wYXF1ZSgndXNlRmFjdG9yeScpO1xuICB9XG4gIGlmIChtZXRhT2JqLmhhcygndXNlRXhpc3RpbmcnKSkge1xuICAgIG1ldGEudXNlRXhpc3RpbmcgPSBleHRyYWN0Rm9yd2FyZFJlZihtZXRhT2JqLmdldFZhbHVlKCd1c2VFeGlzdGluZycpKTtcbiAgfVxuICBpZiAobWV0YU9iai5oYXMoJ3VzZVZhbHVlJykpIHtcbiAgICBtZXRhLnVzZVZhbHVlID0gZXh0cmFjdEZvcndhcmRSZWYobWV0YU9iai5nZXRWYWx1ZSgndXNlVmFsdWUnKSk7XG4gIH1cblxuICBpZiAobWV0YU9iai5oYXMoJ2RlcHMnKSkge1xuICAgIG1ldGEuZGVwcyA9IG1ldGFPYmouZ2V0QXJyYXkoJ2RlcHMnKS5tYXAoZGVwID0+IGdldERlcGVuZGVuY3koZGVwLmdldE9iamVjdCgpKSk7XG4gIH1cblxuICByZXR1cm4gbWV0YTtcbn1cbiJdfQ==
@@ -1,38 +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 { compileInjector } from '@angular/compiler';
9
- import { FatalLinkerError } from '../../fatal_linker_error';
10
- import { wrapReference } from './util';
11
- /**
12
- * A `PartialLinker` that is designed to process `ɵɵngDeclareInjector()` call expressions.
13
- */
14
- export class PartialInjectorLinkerVersion1 {
15
- linkPartialDeclaration(constantPool, metaObj) {
16
- const meta = toR3InjectorMeta(metaObj);
17
- const def = compileInjector(meta);
18
- return def.expression;
19
- }
20
- }
21
- /**
22
- * Derives the `R3InjectorMetadata` structure from the AST object.
23
- */
24
- export function toR3InjectorMeta(metaObj) {
25
- const typeExpr = metaObj.getValue('type');
26
- const typeName = typeExpr.getSymbolName();
27
- if (typeName === null) {
28
- throw new FatalLinkerError(typeExpr.expression, 'Unsupported type, its name could not be determined');
29
- }
30
- return {
31
- name: typeName,
32
- type: wrapReference(typeExpr.getOpaque()),
33
- internalType: metaObj.getOpaque('type'),
34
- providers: metaObj.has('providers') ? metaObj.getOpaque('providers') : null,
35
- imports: metaObj.has('imports') ? metaObj.getArray('imports').map(i => i.getOpaque()) : [],
36
- };
37
- }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGlhbF9pbmplY3Rvcl9saW5rZXJfMS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9saW5rZXIvc3JjL2ZpbGVfbGlua2VyL3BhcnRpYWxfbGlua2Vycy9wYXJ0aWFsX2luamVjdG9yX2xpbmtlcl8xLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBQyxlQUFlLEVBQW9GLE1BQU0sbUJBQW1CLENBQUM7QUFJckksT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFHMUQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUVyQzs7R0FFRztBQUNILE1BQU0sT0FBTyw2QkFBNkI7SUFDeEMsc0JBQXNCLENBQ2xCLFlBQTBCLEVBQzFCLE9BQXFEO1FBQ3ZELE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sR0FBRyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUM7SUFDeEIsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzVCLE9BQTBEO0lBQzVELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzFDLElBQUksUUFBUSxLQUFLLElBQUksRUFBRTtRQUNyQixNQUFNLElBQUksZ0JBQWdCLENBQ3RCLFFBQVEsQ0FBQyxVQUFVLEVBQUUsb0RBQW9ELENBQUMsQ0FBQztLQUNoRjtJQUVELE9BQU87UUFDTCxJQUFJLEVBQUUsUUFBUTtRQUNkLElBQUksRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3pDLFlBQVksRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUN2QyxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtRQUMzRSxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtLQUMzRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtjb21waWxlSW5qZWN0b3IsIENvbnN0YW50UG9vbCwgUjNEZWNsYXJlSW5qZWN0b3JNZXRhZGF0YSwgUjNJbmplY3Rvck1ldGFkYXRhLCBSM1BhcnRpYWxEZWNsYXJhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0ICogYXMgbyBmcm9tICdAYW5ndWxhci9jb21waWxlci9zcmMvb3V0cHV0L291dHB1dF9hc3QnO1xuXG5pbXBvcnQge0FzdE9iamVjdH0gZnJvbSAnLi4vLi4vYXN0L2FzdF92YWx1ZSc7XG5pbXBvcnQge0ZhdGFsTGlua2VyRXJyb3J9IGZyb20gJy4uLy4uL2ZhdGFsX2xpbmtlcl9lcnJvcic7XG5cbmltcG9ydCB7UGFydGlhbExpbmtlcn0gZnJvbSAnLi9wYXJ0aWFsX2xpbmtlcic7XG5pbXBvcnQge3dyYXBSZWZlcmVuY2V9IGZyb20gJy4vdXRpbCc7XG5cbi8qKlxuICogQSBgUGFydGlhbExpbmtlcmAgdGhhdCBpcyBkZXNpZ25lZCB0byBwcm9jZXNzIGDJtcm1bmdEZWNsYXJlSW5qZWN0b3IoKWAgY2FsbCBleHByZXNzaW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIFBhcnRpYWxJbmplY3RvckxpbmtlclZlcnNpb24xPFRFeHByZXNzaW9uPiBpbXBsZW1lbnRzIFBhcnRpYWxMaW5rZXI8VEV4cHJlc3Npb24+IHtcbiAgbGlua1BhcnRpYWxEZWNsYXJhdGlvbihcbiAgICAgIGNvbnN0YW50UG9vbDogQ29uc3RhbnRQb29sLFxuICAgICAgbWV0YU9iajogQXN0T2JqZWN0PFIzUGFydGlhbERlY2xhcmF0aW9uLCBURXhwcmVzc2lvbj4pOiBvLkV4cHJlc3Npb24ge1xuICAgIGNvbnN0IG1ldGEgPSB0b1IzSW5qZWN0b3JNZXRhKG1ldGFPYmopO1xuICAgIGNvbnN0IGRlZiA9IGNvbXBpbGVJbmplY3RvcihtZXRhKTtcbiAgICByZXR1cm4gZGVmLmV4cHJlc3Npb247XG4gIH1cbn1cblxuLyoqXG4gKiBEZXJpdmVzIHRoZSBgUjNJbmplY3Rvck1ldGFkYXRhYCBzdHJ1Y3R1cmUgZnJvbSB0aGUgQVNUIG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvUjNJbmplY3Rvck1ldGE8VEV4cHJlc3Npb24+KFxuICAgIG1ldGFPYmo6IEFzdE9iamVjdDxSM0RlY2xhcmVJbmplY3Rvck1ldGFkYXRhLCBURXhwcmVzc2lvbj4pOiBSM0luamVjdG9yTWV0YWRhdGEge1xuICBjb25zdCB0eXBlRXhwciA9IG1ldGFPYmouZ2V0VmFsdWUoJ3R5cGUnKTtcbiAgY29uc3QgdHlwZU5hbWUgPSB0eXBlRXhwci5nZXRTeW1ib2xOYW1lKCk7XG4gIGlmICh0eXBlTmFtZSA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBGYXRhbExpbmtlckVycm9yKFxuICAgICAgICB0eXBlRXhwci5leHByZXNzaW9uLCAnVW5zdXBwb3J0ZWQgdHlwZSwgaXRzIG5hbWUgY291bGQgbm90IGJlIGRldGVybWluZWQnKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbmFtZTogdHlwZU5hbWUsXG4gICAgdHlwZTogd3JhcFJlZmVyZW5jZSh0eXBlRXhwci5nZXRPcGFxdWUoKSksXG4gICAgaW50ZXJuYWxUeXBlOiBtZXRhT2JqLmdldE9wYXF1ZSgndHlwZScpLFxuICAgIHByb3ZpZGVyczogbWV0YU9iai5oYXMoJ3Byb3ZpZGVycycpID8gbWV0YU9iai5nZXRPcGFxdWUoJ3Byb3ZpZGVycycpIDogbnVsbCxcbiAgICBpbXBvcnRzOiBtZXRhT2JqLmhhcygnaW1wb3J0cycpID8gbWV0YU9iai5nZXRBcnJheSgnaW1wb3J0cycpLm1hcChpID0+IGkuZ2V0T3BhcXVlKCkpIDogW10sXG4gIH07XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGlhbF9saW5rZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL3NyYy9maWxlX2xpbmtlci9wYXJ0aWFsX2xpbmtlcnMvcGFydGlhbF9saW5rZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtDb25zdGFudFBvb2wsIFIzUGFydGlhbERlY2xhcmF0aW9ufSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XG5pbXBvcnQgKiBhcyBvIGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyL3NyYy9vdXRwdXQvb3V0cHV0X2FzdCc7XG5cbmltcG9ydCB7QXN0T2JqZWN0fSBmcm9tICcuLi8uLi9hc3QvYXN0X3ZhbHVlJztcblxuLyoqXG4gKiBBbiBpbnRlcmZhY2UgZm9yIGNsYXNzZXMgdGhhdCBjYW4gbGluayBwYXJ0aWFsIGRlY2xhcmF0aW9ucyBpbnRvIGZ1bGwgZGVmaW5pdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFydGlhbExpbmtlcjxURXhwcmVzc2lvbj4ge1xuICAvKipcbiAgICogTGluayB0aGUgcGFydGlhbCBkZWNsYXJhdGlvbiBgbWV0YU9iamAgaW5mb3JtYXRpb24gdG8gZ2VuZXJhdGUgYSBmdWxsIGRlZmluaXRpb24gZXhwcmVzc2lvbi5cbiAgICpcbiAgICogQHBhcmFtIG1ldGFPYmogQW4gb2JqZWN0IHRoYXQgZml0cyBvbmUgb2YgdGhlIGBSM0RlY2xhcmVEaXJlY3RpdmVNZXRhZGF0YWAgb3JcbiAgICogICAgIGBSM0RlY2xhcmVDb21wb25lbnRNZXRhZGF0YWAgaW50ZXJmYWNlcy5cbiAgICovXG4gIGxpbmtQYXJ0aWFsRGVjbGFyYXRpb24oXG4gICAgICBjb25zdGFudFBvb2w6IENvbnN0YW50UG9vbCxcbiAgICAgIG1ldGFPYmo6IEFzdE9iamVjdDxSM1BhcnRpYWxEZWNsYXJhdGlvbiwgVEV4cHJlc3Npb24+KTogby5FeHByZXNzaW9uO1xufVxuIl19
@@ -1,166 +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 { intersects, Range, SemVer } from 'semver';
9
- import { createGetSourceFile } from '../get_source_file';
10
- import { PartialClassMetadataLinkerVersion1 } from './partial_class_metadata_linker_1';
11
- import { PartialComponentLinkerVersion1 } from './partial_component_linker_1';
12
- import { PartialDirectiveLinkerVersion1 } from './partial_directive_linker_1';
13
- import { PartialFactoryLinkerVersion1 } from './partial_factory_linker_1';
14
- import { PartialInjectableLinkerVersion1 } from './partial_injectable_linker_1';
15
- import { PartialInjectorLinkerVersion1 } from './partial_injector_linker_1';
16
- import { PartialNgModuleLinkerVersion1 } from './partial_ng_module_linker_1';
17
- import { PartialPipeLinkerVersion1 } from './partial_pipe_linker_1';
18
- export const ɵɵngDeclareDirective = 'ɵɵngDeclareDirective';
19
- export const ɵɵngDeclareClassMetadata = 'ɵɵngDeclareClassMetadata';
20
- export const ɵɵngDeclareComponent = 'ɵɵngDeclareComponent';
21
- export const ɵɵngDeclareFactory = 'ɵɵngDeclareFactory';
22
- export const ɵɵngDeclareInjectable = 'ɵɵngDeclareInjectable';
23
- export const ɵɵngDeclareInjector = 'ɵɵngDeclareInjector';
24
- export const ɵɵngDeclareNgModule = 'ɵɵngDeclareNgModule';
25
- export const ɵɵngDeclarePipe = 'ɵɵngDeclarePipe';
26
- export const declarationFunctions = [
27
- ɵɵngDeclareDirective, ɵɵngDeclareClassMetadata, ɵɵngDeclareComponent, ɵɵngDeclareFactory,
28
- ɵɵngDeclareInjectable, ɵɵngDeclareInjector, ɵɵngDeclareNgModule, ɵɵngDeclarePipe
29
- ];
30
- /**
31
- * Create a mapping between partial-declaration call name and collections of partial-linkers.
32
- *
33
- * Each collection of partial-linkers will contain a version range that will be matched against the
34
- * `minVersion` of the partial-declaration. (Additionally, a partial-linker may modify its behaviour
35
- * internally based on the `version` property of the declaration.)
36
- *
37
- * Versions should be sorted in ascending order. The most recent partial-linker will be used as the
38
- * fallback linker if none of the other version ranges match. For example:
39
- *
40
- * ```
41
- * {range: getRange('<=', '13.0.0'), linker PartialDirectiveLinkerVersion2(...) },
42
- * {range: getRange('<=', '13.1.0'), linker PartialDirectiveLinkerVersion3(...) },
43
- * {range: getRange('<=', '14.0.0'), linker PartialDirectiveLinkerVersion4(...) },
44
- * {range: LATEST_VERSION_RANGE, linker: new PartialDirectiveLinkerVersion1(...)},
45
- * ```
46
- *
47
- * If the `LATEST_VERSION_RANGE` is `<=15.0.0` then the fallback linker would be
48
- * `PartialDirectiveLinkerVersion1` for any version greater than `15.0.0`.
49
- *
50
- * When there is a change to a declaration interface that requires a new partial-linker, the
51
- * `minVersion` of the partial-declaration should be updated, the new linker implementation should
52
- * be added to the end of the collection, and the version of the previous linker should be updated.
53
- */
54
- export function createLinkerMap(environment, sourceUrl, code) {
55
- const linkers = new Map();
56
- const LATEST_VERSION_RANGE = getRange('<=', '12.1.0');
57
- linkers.set(ɵɵngDeclareDirective, [
58
- { range: LATEST_VERSION_RANGE, linker: new PartialDirectiveLinkerVersion1(sourceUrl, code) },
59
- ]);
60
- linkers.set(ɵɵngDeclareClassMetadata, [
61
- { range: LATEST_VERSION_RANGE, linker: new PartialClassMetadataLinkerVersion1() },
62
- ]);
63
- linkers.set(ɵɵngDeclareComponent, [
64
- {
65
- range: LATEST_VERSION_RANGE,
66
- linker: new PartialComponentLinkerVersion1(createGetSourceFile(sourceUrl, code, environment.sourceFileLoader), sourceUrl, code)
67
- },
68
- ]);
69
- linkers.set(ɵɵngDeclareFactory, [
70
- { range: LATEST_VERSION_RANGE, linker: new PartialFactoryLinkerVersion1() },
71
- ]);
72
- linkers.set(ɵɵngDeclareInjectable, [
73
- { range: LATEST_VERSION_RANGE, linker: new PartialInjectableLinkerVersion1() },
74
- ]);
75
- linkers.set(ɵɵngDeclareInjector, [
76
- { range: LATEST_VERSION_RANGE, linker: new PartialInjectorLinkerVersion1() },
77
- ]);
78
- linkers.set(ɵɵngDeclareNgModule, [
79
- {
80
- range: LATEST_VERSION_RANGE,
81
- linker: new PartialNgModuleLinkerVersion1(environment.options.linkerJitMode)
82
- },
83
- ]);
84
- linkers.set(ɵɵngDeclarePipe, [
85
- { range: LATEST_VERSION_RANGE, linker: new PartialPipeLinkerVersion1() },
86
- ]);
87
- return linkers;
88
- }
89
- /**
90
- * A helper that selects the appropriate `PartialLinker` for a given declaration.
91
- *
92
- * The selection is made from a database of linker instances, chosen if their given semver range
93
- * satisfies the `minVersion` of the partial declaration to be linked.
94
- *
95
- * Note that the ranges are checked in order, and the first matching range will be selected. So
96
- * ranges should be most restrictive first. In practice, since ranges are always `<=X.Y.Z` this
97
- * means that ranges should be in ascending order.
98
- *
99
- * Note that any "pre-release" versions are stripped from ranges. Therefore if a `minVersion` is
100
- * `11.1.0-next.1` then this would match `11.1.0-next.2` and also `12.0.0-next.1`. (This is
101
- * different to standard semver range checking, where pre-release versions do not cross full version
102
- * boundaries.)
103
- */
104
- export class PartialLinkerSelector {
105
- constructor(linkers, logger, unknownDeclarationVersionHandling) {
106
- this.linkers = linkers;
107
- this.logger = logger;
108
- this.unknownDeclarationVersionHandling = unknownDeclarationVersionHandling;
109
- }
110
- /**
111
- * Returns true if there are `PartialLinker` classes that can handle functions with this name.
112
- */
113
- supportsDeclaration(functionName) {
114
- return this.linkers.has(functionName);
115
- }
116
- /**
117
- * Returns the `PartialLinker` that can handle functions with the given name and version.
118
- * Throws an error if there is none.
119
- */
120
- getLinker(functionName, minVersion, version) {
121
- if (!this.linkers.has(functionName)) {
122
- throw new Error(`Unknown partial declaration function ${functionName}.`);
123
- }
124
- const linkerRanges = this.linkers.get(functionName);
125
- if (version === '12.1.0') {
126
- // Special case if the `version` is the same as the current compiler version.
127
- // This helps with compliance tests where the version placeholders have not been replaced.
128
- return linkerRanges[linkerRanges.length - 1].linker;
129
- }
130
- const declarationRange = getRange('>=', minVersion);
131
- for (const { range: linkerRange, linker } of linkerRanges) {
132
- if (intersects(declarationRange, linkerRange)) {
133
- return linker;
134
- }
135
- }
136
- const message = `This application depends upon a library published using Angular version ${version}, ` +
137
- `which requires Angular version ${minVersion} or newer to work correctly.\n` +
138
- `Consider upgrading your application to use a more recent version of Angular.`;
139
- if (this.unknownDeclarationVersionHandling === 'error') {
140
- throw new Error(message);
141
- }
142
- else if (this.unknownDeclarationVersionHandling === 'warn') {
143
- this.logger.warn(`${message}\nAttempting to continue using this version of Angular.`);
144
- }
145
- // No linker was matched for this declaration, so just use the most recent one.
146
- return linkerRanges[linkerRanges.length - 1].linker;
147
- }
148
- }
149
- /**
150
- * Compute a semver Range from the `version` and comparator.
151
- *
152
- * The range is computed as any version greater/less than or equal to the given `versionStr`
153
- * depending upon the `comparator` (ignoring any prerelease versions).
154
- *
155
- * @param comparator a string that determines whether the version specifies a minimum or a maximum
156
- * range.
157
- * @param versionStr the version given in the partial declaration
158
- * @returns A semver range for the provided `version` and comparator.
159
- */
160
- function getRange(comparator, versionStr) {
161
- const version = new SemVer(versionStr);
162
- // Wipe out any prerelease versions
163
- version.prerelease = [];
164
- return new Range(`${comparator}${version.format()}`);
165
- }
166
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGlhbF9saW5rZXJfc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL3NyYy9maWxlX2xpbmtlci9wYXJ0aWFsX2xpbmtlcnMvcGFydGlhbF9saW5rZXJfc2VsZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsT0FBTyxFQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBSWpELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBR3ZELE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JGLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzVFLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzVFLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3hFLE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzlFLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRTFFLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzNFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRWxFLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLHNCQUFzQixDQUFDO0FBQzNELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLDBCQUEwQixDQUFDO0FBQ25FLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLHNCQUFzQixDQUFDO0FBQzNELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLG9CQUFvQixDQUFDO0FBQ3ZELE1BQU0sQ0FBQyxNQUFNLHFC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Tyx5REFBeUQsQ0FBQyxDQUFDO1NBQ3ZGO1FBRUQsK0VBQStFO1FBQy9FLE9BQU8sWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3RELENBQUM7Q0FDRjtBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFTLFFBQVEsQ0FBQyxVQUFxQixFQUFFLFVBQWtCO0lBQ3pELE1BQU0sT0FBTyxHQUFHLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZDLG1DQUFtQztJQUNuQyxPQUFPLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN4QixPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDdkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtpbnRlcnNlY3RzLCBSYW5nZSwgU2VtVmVyfSBmcm9tICdzZW12ZXInO1xuXG5pbXBvcnQge0Fic29sdXRlRnNQYXRofSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvbmd0c2MvZmlsZV9zeXN0ZW0nO1xuaW1wb3J0IHtMb2dnZXJ9IGZyb20gJy4uLy4uLy4uLy4uL3NyYy9uZ3RzYy9sb2dnaW5nJztcbmltcG9ydCB7Y3JlYXRlR2V0U291cmNlRmlsZX0gZnJvbSAnLi4vZ2V0X3NvdXJjZV9maWxlJztcbmltcG9ydCB7TGlua2VyRW52aXJvbm1lbnR9IGZyb20gJy4uL2xpbmtlcl9lbnZpcm9ubWVudCc7XG5cbmltcG9ydCB7UGFydGlhbENsYXNzTWV0YWRhdGFMaW5rZXJWZXJzaW9uMX0gZnJvbSAnLi9wYXJ0aWFsX2NsYXNzX21ldGFkYXRhX2xpbmtlcl8xJztcbmltcG9ydCB7UGFydGlhbENvbXBvbmVudExpbmtlclZlcnNpb24xfSBmcm9tICcuL3BhcnRpYWxfY29tcG9uZW50X2xpbmtlcl8xJztcbmltcG9ydCB7UGFydGlhbERpcmVjdGl2ZUxpbmtlclZlcnNpb24xfSBmcm9tICcuL3BhcnRpYWxfZGlyZWN0aXZlX2xpbmtlcl8xJztcbmltcG9ydCB7UGFydGlhbEZhY3RvcnlMaW5rZXJWZXJzaW9uMX0gZnJvbSAnLi9wYXJ0aWFsX2ZhY3RvcnlfbGlua2VyXzEnO1xuaW1wb3J0IHtQYXJ0aWFsSW5qZWN0YWJsZUxpbmtlclZlcnNpb24xfSBmcm9tICcuL3BhcnRpYWxfaW5qZWN0YWJsZV9saW5rZXJfMSc7XG5pbXBvcnQge1BhcnRpYWxJbmplY3RvckxpbmtlclZlcnNpb24xfSBmcm9tICcuL3BhcnRpYWxfaW5qZWN0b3JfbGlua2VyXzEnO1xuaW1wb3J0IHtQYXJ0aWFsTGlua2VyfSBmcm9tICcuL3BhcnRpYWxfbGlua2VyJztcbmltcG9ydCB7UGFydGlhbE5nTW9kdWxlTGlua2VyVmVyc2lvbjF9IGZyb20gJy4vcGFydGlhbF9uZ19tb2R1bGVfbGlua2VyXzEnO1xuaW1wb3J0IHtQYXJ0aWFsUGlwZUxpbmtlclZlcnNpb24xfSBmcm9tICcuL3BhcnRpYWxfcGlwZV9saW5rZXJfMSc7XG5cbmV4cG9ydCBjb25zdCDJtcm1bmdEZWNsYXJlRGlyZWN0aXZlID0gJ8m1ybVuZ0RlY2xhcmVEaXJlY3RpdmUnO1xuZXhwb3J0IGNvbnN0IMm1ybVuZ0RlY2xhcmVDbGFzc01ldGFkYXRhID0gJ8m1ybVuZ0RlY2xhcmVDbGFzc01ldGFkYXRhJztcbmV4cG9ydCBjb25zdCDJtcm1bmdEZWNsYXJlQ29tcG9uZW50ID0gJ8m1ybVuZ0RlY2xhcmVDb21wb25lbnQnO1xuZXhwb3J0IGNvbnN0IMm1ybVuZ0RlY2xhcmVGYWN0b3J5ID0gJ8m1ybVuZ0RlY2xhcmVGYWN0b3J5JztcbmV4cG9ydCBjb25zdCDJtcm1bmdEZWNsYXJlSW5qZWN0YWJsZSA9ICfJtcm1bmdEZWNsYXJlSW5qZWN0YWJsZSc7XG5leHBvcnQgY29uc3QgybXJtW5nRGVjbGFyZUluamVjdG9yID0gJ8m1ybVuZ0RlY2xhcmVJbmplY3Rvcic7XG5leHBvcnQgY29uc3QgybXJtW5nRGVjbGFyZU5nTW9kdWxlID0gJ8m1ybVuZ0RlY2xhcmVOZ01vZHVsZSc7XG5leHBvcnQgY29uc3QgybXJtW5nRGVjbGFyZVBpcGUgPSAnybXJtW5nRGVjbGFyZVBpcGUnO1xuZXhwb3J0IGNvbnN0IGRlY2xhcmF0aW9uRnVuY3Rpb25zID0gW1xuICDJtcm1bmdEZWNsYXJlRGlyZWN0aXZlLCDJtcm1bmdEZWNsYXJlQ2xhc3NNZXRhZGF0YSwgybXJtW5nRGVjbGFyZUNvbXBvbmVudCwgybXJtW5nRGVjbGFyZUZhY3RvcnksXG4gIMm1ybVuZ0RlY2xhcmVJbmplY3RhYmxlLCDJtcm1bmdEZWNsYXJlSW5qZWN0b3IsIMm1ybVuZ0RlY2xhcmVOZ01vZHVsZSwgybXJtW5nRGVjbGFyZVBpcGVcbl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlua2VyUmFuZ2U8VEV4cHJlc3Npb24+IHtcbiAgcmFuZ2U6IFJhbmdlO1xuICBsaW5rZXI6IFBhcnRpYWxMaW5rZXI8VEV4cHJlc3Npb24+O1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIG1hcHBpbmcgYmV0d2VlbiBwYXJ0aWFsLWRlY2xhcmF0aW9uIGNhbGwgbmFtZSBhbmQgY29sbGVjdGlvbnMgb2YgcGFydGlhbC1saW5rZXJzLlxuICpcbiAqIEVhY2ggY29sbGVjdGlvbiBvZiBwYXJ0aWFsLWxpbmtlcnMgd2lsbCBjb250YWluIGEgdmVyc2lvbiByYW5nZSB0aGF0IHdpbGwgYmUgbWF0Y2hlZCBhZ2FpbnN0IHRoZVxuICogYG1pblZlcnNpb25gIG9mIHRoZSBwYXJ0aWFsLWRlY2xhcmF0aW9uLiAoQWRkaXRpb25hbGx5LCBhIHBhcnRpYWwtbGlua2VyIG1heSBtb2RpZnkgaXRzIGJlaGF2aW91clxuICogaW50ZXJuYWxseSBiYXNlZCBvbiB0aGUgYHZlcnNpb25gIHByb3BlcnR5IG9mIHRoZSBkZWNsYXJhdGlvbi4pXG4gKlxuICogVmVyc2lvbnMgc2hvdWxkIGJlIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIuIFRoZSBtb3N0IHJlY2VudCBwYXJ0aWFsLWxpbmtlciB3aWxsIGJlIHVzZWQgYXMgdGhlXG4gKiBmYWxsYmFjayBsaW5rZXIgaWYgbm9uZSBvZiB0aGUgb3RoZXIgdmVyc2lvbiByYW5nZXMgbWF0Y2guIEZvciBleGFtcGxlOlxuICpcbiAqIGBgYFxuICoge3JhbmdlOiBnZXRSYW5nZSgnPD0nLCAnMTMuMC4wJyksIGxpbmtlciBQYXJ0aWFsRGlyZWN0aXZlTGlua2VyVmVyc2lvbjIoLi4uKSB9LFxuICoge3JhbmdlOiBnZXRSYW5nZSgnPD0nLCAnMTMuMS4wJyksIGxpbmtlciBQYXJ0aWFsRGlyZWN0aXZlTGlua2VyVmVyc2lvbjMoLi4uKSB9LFxuICoge3JhbmdlOiBnZXRSYW5nZSgnPD0nLCAnMTQuMC4wJyksIGxpbmtlciBQYXJ0aWFsRGlyZWN0aXZlTGlua2VyVmVyc2lvbjQoLi4uKSB9LFxuICoge3JhbmdlOiBMQVRFU1RfVkVSU0lPTl9SQU5HRSwgbGlua2VyOiBuZXcgUGFydGlhbERpcmVjdGl2ZUxpbmtlclZlcnNpb24xKC4uLil9LFxuICogYGBgXG4gKlxuICogSWYgdGhlIGBMQVRFU1RfVkVSU0lPTl9SQU5HRWAgaXMgYDw9MTUuMC4wYCB0aGVuIHRoZSBmYWxsYmFjayBsaW5rZXIgd291bGQgYmVcbiAqIGBQYXJ0aWFsRGlyZWN0aXZlTGlua2VyVmVyc2lvbjFgIGZvciBhbnkgdmVyc2lvbiBncmVhdGVyIHRoYW4gYDE1LjAuMGAuXG4gKlxuICogV2hlbiB0aGVyZSBpcyBhIGNoYW5nZSB0byBhIGRlY2xhcmF0aW9uIGludGVyZmFjZSB0aGF0IHJlcXVpcmVzIGEgbmV3IHBhcnRpYWwtbGlua2VyLCB0aGVcbiAqIGBtaW5WZXJzaW9uYCBvZiB0aGUgcGFydGlhbC1kZWNsYXJhdGlvbiBzaG91bGQgYmUgdXBkYXRlZCwgdGhlIG5ldyBsaW5rZXIgaW1wbGVtZW50YXRpb24gc2hvdWxkXG4gKiBiZSBhZGRlZCB0byB0aGUgZW5kIG9mIHRoZSBjb2xsZWN0aW9uLCBhbmQgdGhlIHZlcnNpb24gb2YgdGhlIHByZXZpb3VzIGxpbmtlciBzaG91bGQgYmUgdXBkYXRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxpbmtlck1hcDxUU3RhdGVtZW50LCBURXhwcmVzc2lvbj4oXG4gICAgZW52aXJvbm1lbnQ6IExpbmtlckVudmlyb25tZW50PFRTdGF0ZW1lbnQsIFRFeHByZXNzaW9uPiwgc291cmNlVXJsOiBBYnNvbHV0ZUZzUGF0aCxcbiAgICBjb2RlOiBzdHJpbmcpOiBNYXA8c3RyaW5nLCBMaW5rZXJSYW5nZTxURXhwcmVzc2lvbj5bXT4ge1xuICBjb25zdCBsaW5rZXJzID0gbmV3IE1hcDxzdHJpbmcsIExpbmtlclJhbmdlPFRFeHByZXNzaW9uPltdPigpO1xuICBjb25zdCBMQVRFU1RfVkVSU0lPTl9SQU5HRSA9IGdldFJhbmdlKCc8PScsICcwLjAuMC1QTEFDRUhPTERFUicpO1xuXG4gIGxpbmtlcnMuc2V0KMm1ybVuZ0RlY2xhcmVEaXJlY3RpdmUsIFtcbiAgICB7cmFuZ2U6IExBVEVTVF9WRVJTSU9OX1JBTkdFLCBsaW5rZXI6IG5ldyBQYXJ0aWFsRGlyZWN0aXZlTGlua2VyVmVyc2lvbjEoc291cmNlVXJsLCBjb2RlKX0sXG4gIF0pO1xuICBsaW5rZXJzLnNldCjJtcm1bmdEZWNsYXJlQ2xhc3NNZXRhZGF0YSwgW1xuICAgIHtyYW5nZTogTEFURVNUX1ZFUlNJT05fUkFOR0UsIGxpbmtlcjogbmV3IFBhcnRpYWxDbGFzc01ldGFkYXRhTGlua2VyVmVyc2lvbjEoKX0sXG4gIF0pO1xuICBsaW5rZXJzLnNldCjJtcm1bmdEZWNsYXJlQ29tcG9uZW50LCBbXG4gICAge1xuICAgICAgcmFuZ2U6IExBVEVTVF9WRVJTSU9OX1JBTkdFLFxuICAgICAgbGlua2VyOiBuZXcgUGFydGlhbENvbXBvbmVudExpbmtlclZlcnNpb24xKFxuICAgICAgICAgIGNyZWF0ZUdldFNvdXJjZUZpbGUoc291cmNlVXJsLCBjb2RlLCBlbnZpcm9ubWVudC5zb3VyY2VGaWxlTG9hZGVyKSwgc291cmNlVXJsLCBjb2RlKVxuICAgIH0sXG4gIF0pO1xuICBsaW5rZXJzLnNldCjJtcm1bmdEZWNsYXJlRmFjdG9yeSwgW1xuICAgIHtyYW5nZTogTEFURVNUX1ZFUlNJT05fUkFOR0UsIGxpbmtlcjogbmV3IFBhcnRpYWxGYWN0b3J5TGlua2VyVmVyc2lvbjEoKX0sXG4gIF0pO1xuICBsaW5rZXJzLnNldCjJtcm1bmdEZWNsYXJlSW5qZWN0YWJsZSwgW1xuICAgIHtyYW5nZTogTEFURVNUX1ZFUlNJT05fUkFOR0UsIGxpbmtlcjogbmV3IFBhcnRpYWxJbmplY3RhYmxlTGlua2VyVmVyc2lvbjEoKX0sXG4gIF0pO1xuICBsaW5rZXJzLnNldCjJtcm1bmdEZWNsYXJlSW5qZWN0b3IsIFtcbiAgICB7cmFuZ2U6IExBVEVTVF9WRVJTSU9OX1JBTkdFLCBsaW5rZXI6IG5ldyBQYXJ0aWFsSW5qZWN0b3JMaW5rZXJWZXJzaW9uMSgpfSxcbiAgXSk7XG4gIGxpbmtlcnMuc2V0KMm1ybVuZ0RlY2xhcmVOZ01vZHVsZSwgW1xuICAgIHtcbiAgICAgIHJhbmdlOiBMQVRFU1RfVkVSU0lPTl9SQU5HRSxcbiAgICAgIGxpbmtlcjogbmV3IFBhcnRpYWxOZ01vZHVsZUxpbmtlclZlcnNpb24xKGVudmlyb25tZW50Lm9wdGlvbnMubGlua2VySml0TW9kZSlcbiAgICB9LFxuICBdKTtcbiAgbGlua2Vycy5zZXQoybXJtW5nRGVjbGFyZVBpcGUsIFtcbiAgICB7cmFuZ2U6IExBVEVTVF9WRVJTSU9OX1JBTkdFLCBsaW5rZXI6IG5ldyBQYXJ0aWFsUGlwZUxpbmtlclZlcnNpb24xKCl9LFxuICBdKTtcblxuICByZXR1cm4gbGlua2Vycztcbn1cblxuLyoqXG4gKiBBIGhlbHBlciB0aGF0IHNlbGVjdHMgdGhlIGFwcHJvcHJpYXRlIGBQYXJ0aWFsTGlua2VyYCBmb3IgYSBnaXZlbiBkZWNsYXJhdGlvbi5cbiAqXG4gKiBUaGUgc2VsZWN0aW9uIGlzIG1hZGUgZnJvbSBhIGRhdGFiYXNlIG9mIGxpbmtlciBpbnN0YW5jZXMsIGNob3NlbiBpZiB0aGVpciBnaXZlbiBzZW12ZXIgcmFuZ2VcbiAqIHNhdGlzZmllcyB0aGUgYG1pblZlcnNpb25gIG9mIHRoZSBwYXJ0aWFsIGRlY2xhcmF0aW9uIHRvIGJlIGxpbmtlZC5cbiAqXG4gKiBOb3RlIHRoYXQgdGhlIHJhbmdlcyBhcmUgY2hlY2tlZCBpbiBvcmRlciwgYW5kIHRoZSBmaXJzdCBtYXRjaGluZyByYW5nZSB3aWxsIGJlIHNlbGVjdGVkLiBTb1xuICogcmFuZ2VzIHNob3VsZCBiZSBtb3N0IHJlc3RyaWN0aXZlIGZpcnN0LiBJbiBwcmFjdGljZSwgc2luY2UgcmFuZ2VzIGFyZSBhbHdheXMgYDw9WC5ZLlpgIHRoaXNcbiAqIG1lYW5zIHRoYXQgcmFuZ2VzIHNob3VsZCBiZSBpbiBhc2NlbmRpbmcgb3JkZXIuXG4gKlxuICogTm90ZSB0aGF0IGFueSBcInByZS1yZWxlYXNlXCIgdmVyc2lvbnMgYXJlIHN0cmlwcGVkIGZyb20gcmFuZ2VzLiBUaGVyZWZvcmUgaWYgYSBgbWluVmVyc2lvbmAgaXNcbiAqIGAxMS4xLjAtbmV4dC4xYCB0aGVuIHRoaXMgd291bGQgbWF0Y2ggYDExLjEuMC1uZXh0LjJgIGFuZCBhbHNvIGAxMi4wLjAtbmV4dC4xYC4gKFRoaXMgaXNcbiAqIGRpZmZlcmVudCB0byBzdGFuZGFyZCBzZW12ZXIgcmFuZ2UgY2hlY2tpbmcsIHdoZXJlIHByZS1yZWxlYXNlIHZlcnNpb25zIGRvIG5vdCBjcm9zcyBmdWxsIHZlcnNpb25cbiAqIGJvdW5kYXJpZXMuKVxuICovXG5leHBvcnQgY2xhc3MgUGFydGlhbExpbmtlclNlbGVjdG9yPFRFeHByZXNzaW9uPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSByZWFkb25seSBsaW5rZXJzOiBNYXA8c3RyaW5nLCBMaW5rZXJSYW5nZTxURXhwcmVzc2lvbj5bXT4sXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogTG9nZ2VyLFxuICAgICAgcHJpdmF0ZSByZWFkb25seSB1bmtub3duRGVjbGFyYXRpb25WZXJzaW9uSGFuZGxpbmc6ICdpZ25vcmUnfCd3YXJuJ3wnZXJyb3InKSB7fVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlcmUgYXJlIGBQYXJ0aWFsTGlua2VyYCBjbGFzc2VzIHRoYXQgY2FuIGhhbmRsZSBmdW5jdGlvbnMgd2l0aCB0aGlzIG5hbWUuXG4gICAqL1xuICBzdXBwb3J0c0RlY2xhcmF0aW9uKGZ1bmN0aW9uTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubGlua2Vycy5oYXMoZnVuY3Rpb25OYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBgUGFydGlhbExpbmtlcmAgdGhhdCBjYW4gaGFuZGxlIGZ1bmN0aW9ucyB3aXRoIHRoZSBnaXZlbiBuYW1lIGFuZCB2ZXJzaW9uLlxuICAgKiBUaHJvd3MgYW4gZXJyb3IgaWYgdGhlcmUgaXMgbm9uZS5cbiAgICovXG4gIGdldExpbmtlcihmdW5jdGlvbk5hbWU6IHN0cmluZywgbWluVmVyc2lvbjogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcpOiBQYXJ0aWFsTGlua2VyPFRFeHByZXNzaW9uPiB7XG4gICAgaWYgKCF0aGlzLmxpbmtlcnMuaGFzKGZ1bmN0aW9uTmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBwYXJ0aWFsIGRlY2xhcmF0aW9uIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfS5gKTtcbiAgICB9XG4gICAgY29uc3QgbGlua2VyUmFuZ2VzID0gdGhpcy5saW5rZXJzLmdldChmdW5jdGlvbk5hbWUpITtcblxuICAgIGlmICh2ZXJzaW9uID09PSAnMC4wLjAtUExBQ0VIT0xERVInKSB7XG4gICAgICAvLyBTcGVjaWFsIGNhc2UgaWYgdGhlIGB2ZXJzaW9uYCBpcyB0aGUgc2FtZSBhcyB0aGUgY3VycmVudCBjb21waWxlciB2ZXJzaW9uLlxuICAgICAgLy8gVGhpcyBoZWxwcyB3aXRoIGNvbXBsaWFuY2UgdGVzdHMgd2hlcmUgdGhlIHZlcnNpb24gcGxhY2Vob2xkZXJzIGhhdmUgbm90IGJlZW4gcmVwbGFjZWQuXG4gICAgICByZXR1cm4gbGlua2VyUmFuZ2VzW2xpbmtlclJhbmdlcy5sZW5ndGggLSAxXS5saW5rZXI7XG4gICAgfVxuXG4gICAgY29uc3QgZGVjbGFyYXRpb25SYW5nZSA9IGdldFJhbmdlKCc+PScsIG1pblZlcnNpb24pO1xuICAgIGZvciAoY29uc3Qge3JhbmdlOiBsaW5rZXJSYW5nZSwgbGlua2VyfSBvZiBsaW5rZXJSYW5nZXMpIHtcbiAgICAgIGlmIChpbnRlcnNlY3RzKGRlY2xhcmF0aW9uUmFuZ2UsIGxpbmtlclJhbmdlKSkge1xuICAgICAgICByZXR1cm4gbGlua2VyO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG1lc3NhZ2UgPVxuICAgICAgICBgVGhpcyBhcHBsaWNhdGlvbiBkZXBlbmRzIHVwb24gYSBsaWJyYXJ5IHB1Ymxpc2hlZCB1c2luZyBBbmd1bGFyIHZlcnNpb24gJHt2ZXJzaW9ufSwgYCArXG4gICAgICAgIGB3aGljaCByZXF1aXJlcyBBbmd1bGFyIHZlcnNpb24gJHttaW5WZXJzaW9ufSBvciBuZXdlciB0byB3b3JrIGNvcnJlY3RseS5cXG5gICtcbiAgICAgICAgYENvbnNpZGVyIHVwZ3JhZGluZyB5b3VyIGFwcGxpY2F0aW9uIHRvIHVzZSBhIG1vcmUgcmVjZW50IHZlcnNpb24gb2YgQW5ndWxhci5gO1xuXG4gICAgaWYgKHRoaXMudW5rbm93bkRlY2xhcmF0aW9uVmVyc2lvbkhhbmRsaW5nID09PSAnZXJyb3InKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnVua25vd25EZWNsYXJhdGlvblZlcnNpb25IYW5kbGluZyA9PT0gJ3dhcm4nKSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKGAke21lc3NhZ2V9XFxuQXR0ZW1wdGluZyB0byBjb250aW51ZSB1c2luZyB0aGlzIHZlcnNpb24gb2YgQW5ndWxhci5gKTtcbiAgICB9XG5cbiAgICAvLyBObyBsaW5rZXIgd2FzIG1hdGNoZWQgZm9yIHRoaXMgZGVjbGFyYXRpb24sIHNvIGp1c3QgdXNlIHRoZSBtb3N0IHJlY2VudCBvbmUuXG4gICAgcmV0dXJuIGxpbmtlclJhbmdlc1tsaW5rZXJSYW5nZXMubGVuZ3RoIC0gMV0ubGlua2VyO1xuICB9XG59XG5cbi8qKlxuICogQ29tcHV0ZSBhIHNlbXZlciBSYW5nZSBmcm9tIHRoZSBgdmVyc2lvbmAgYW5kIGNvbXBhcmF0b3IuXG4gKlxuICogVGhlIHJhbmdlIGlzIGNvbXB1dGVkIGFzIGFueSB2ZXJzaW9uIGdyZWF0ZXIvbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBnaXZlbiBgdmVyc2lvblN0cmBcbiAqIGRlcGVuZGluZyB1cG9uIHRoZSBgY29tcGFyYXRvcmAgKGlnbm9yaW5nIGFueSBwcmVyZWxlYXNlIHZlcnNpb25zKS5cbiAqXG4gKiBAcGFyYW0gY29tcGFyYXRvciBhIHN0cmluZyB0aGF0IGRldGVybWluZXMgd2hldGhlciB0aGUgdmVyc2lvbiBzcGVjaWZpZXMgYSBtaW5pbXVtIG9yIGEgbWF4aW11bVxuICogICAgIHJhbmdlLlxuICogQHBhcmFtIHZlcnNpb25TdHIgdGhlIHZlcnNpb24gZ2l2ZW4gaW4gdGhlIHBhcnRpYWwgZGVjbGFyYXRpb25cbiAqIEByZXR1cm5zIEEgc2VtdmVyIHJhbmdlIGZvciB0aGUgcHJvdmlkZWQgYHZlcnNpb25gIGFuZCBjb21wYXJhdG9yLlxuICovXG5mdW5jdGlvbiBnZXRSYW5nZShjb21wYXJhdG9yOiAnPD0nfCc+PScsIHZlcnNpb25TdHI6IHN0cmluZyk6IFJhbmdlIHtcbiAgY29uc3QgdmVyc2lvbiA9IG5ldyBTZW1WZXIodmVyc2lvblN0cik7XG4gIC8vIFdpcGUgb3V0IGFueSBwcmVyZWxlYXNlIHZlcnNpb25zXG4gIHZlcnNpb24ucHJlcmVsZWFzZSA9IFtdO1xuICByZXR1cm4gbmV3IFJhbmdlKGAke2NvbXBhcmF0b3J9JHt2ZXJzaW9uLmZvcm1hdCgpfWApO1xufVxuIl19