@angular/compiler-cli 12.1.1 → 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 (445) 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/file_system/testing/src/mock_file_system_native.js +1 -1
  30. package/src/ngtsc/file_system/testing/src/mock_file_system_posix.js +1 -1
  31. package/src/ngtsc/file_system/testing/src/mock_file_system_windows.js +1 -1
  32. package/src/ngtsc/incremental/semantic_graph/src/graph.js +1 -1
  33. package/src/ngtsc/incremental/src/incremental.js +30 -4
  34. package/src/ngtsc/indexer/src/template.js +1 -1
  35. package/src/ngtsc/partial_evaluator/src/builtin.js +1 -1
  36. package/src/ngtsc/partial_evaluator/src/ts_helpers.js +1 -1
  37. package/src/ngtsc/program_driver/src/api.d.ts +20 -1
  38. package/src/ngtsc/program_driver/src/api.js +3 -2
  39. package/src/ngtsc/program_driver/src/ts_create_program_driver.d.ts +2 -2
  40. package/src/ngtsc/program_driver/src/ts_create_program_driver.js +7 -3
  41. package/src/ngtsc/reflection/src/typescript.js +4 -1
  42. package/src/ngtsc/transform/src/transform.js +1 -1
  43. package/src/ngtsc/typecheck/src/context.d.ts +2 -1
  44. package/src/ngtsc/typecheck/src/context.js +11 -3
  45. package/src/ngtsc/typecheck/src/template_semantics.js +1 -1
  46. package/src/ngtsc/typecheck/src/template_symbol_builder.js +21 -1
  47. package/src/ngtsc/typecheck/src/type_check_block.js +2 -2
  48. package/src/ngtsc/typecheck/src/type_check_file.js +1 -1
  49. package/src/ngtsc/typecheck/src/type_emitter.js +25 -6
  50. package/src/ngtsc/util/src/visitor.d.ts +1 -1
  51. package/src/ngtsc/util/src/visitor.js +1 -8
  52. package/src/version.js +1 -1
  53. package/compiler-cli.externs.js +0 -0
  54. package/index.mjs +0 -20
  55. package/linker/babel/babel.externs.js +0 -0
  56. package/linker/babel/index.mjs +0 -11
  57. package/linker/babel/src/ast/babel_ast_factory.mjs +0 -137
  58. package/linker/babel/src/ast/babel_ast_host.mjs +0 -154
  59. package/linker/babel/src/babel_declaration_scope.mjs +0 -52
  60. package/linker/babel/src/babel_plugin.mjs +0 -23
  61. package/linker/babel/src/es2015_linker_plugin.mjs +0 -158
  62. package/linker/babel/src/linker_plugin_options.mjs +0 -2
  63. package/linker/index.mjs +0 -7
  64. package/linker/linker.externs.js +0 -0
  65. package/linker/src/ast/ast_host.mjs +0 -9
  66. package/linker/src/ast/ast_value.mjs +0 -256
  67. package/linker/src/ast/typescript/typescript_ast_host.mjs +0 -156
  68. package/linker/src/ast/utils.mjs +0 -17
  69. package/linker/src/fatal_linker_error.mjs +0 -30
  70. package/linker/src/file_linker/declaration_scope.mjs +0 -9
  71. package/linker/src/file_linker/emit_scopes/emit_scope.mjs +0 -41
  72. package/linker/src/file_linker/emit_scopes/iife_emit_scope.mjs +0 -33
  73. package/linker/src/file_linker/file_linker.mjs +0 -70
  74. package/linker/src/file_linker/get_source_file.mjs +0 -28
  75. package/linker/src/file_linker/linker_environment.mjs +0 -23
  76. package/linker/src/file_linker/linker_options.mjs +0 -16
  77. package/linker/src/file_linker/needs_linking.mjs +0 -27
  78. package/linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.mjs +0 -29
  79. package/linker/src/file_linker/partial_linkers/partial_component_linker_1.mjs +0 -194
  80. package/linker/src/file_linker/partial_linkers/partial_directive_linker_1.mjs +0 -137
  81. package/linker/src/file_linker/partial_linkers/partial_factory_linker_1.mjs +0 -52
  82. package/linker/src/file_linker/partial_linkers/partial_injectable_linker_1.mjs +0 -56
  83. package/linker/src/file_linker/partial_linkers/partial_injector_linker_1.mjs +0 -38
  84. package/linker/src/file_linker/partial_linkers/partial_linker.mjs +0 -2
  85. package/linker/src/file_linker/partial_linkers/partial_linker_selector.mjs +0 -166
  86. package/linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.mjs +0 -110
  87. package/linker/src/file_linker/partial_linkers/partial_pipe_linker_1.mjs +0 -42
  88. package/linker/src/file_linker/partial_linkers/util.mjs +0 -78
  89. package/linker/src/file_linker/translator.mjs +0 -23
  90. package/linker/src/linker_import_generator.mjs +0 -28
  91. package/ngcc/index.mjs +0 -16
  92. package/ngcc/main-ivy-ngcc.mjs +0 -12
  93. package/ngcc/main-ngcc.mjs +0 -32
  94. package/ngcc/ngcc.externs.js +0 -0
  95. package/ngcc/src/analysis/decoration_analyzer.mjs +0 -215
  96. package/ngcc/src/analysis/migration_host.mjs +0 -80
  97. package/ngcc/src/analysis/module_with_providers_analyzer.mjs +0 -178
  98. package/ngcc/src/analysis/ngcc_references_registry.mjs +0 -45
  99. package/ngcc/src/analysis/ngcc_trait_compiler.mjs +0 -70
  100. package/ngcc/src/analysis/private_declarations_analyzer.mjs +0 -47
  101. package/ngcc/src/analysis/switch_marker_analyzer.mjs +0 -34
  102. package/ngcc/src/analysis/types.mjs +0 -2
  103. package/ngcc/src/analysis/util.mjs +0 -19
  104. package/ngcc/src/command_line_options.mjs +0 -142
  105. package/ngcc/src/constants.mjs +0 -10
  106. package/ngcc/src/dependencies/commonjs_dependency_host.mjs +0 -87
  107. package/ngcc/src/dependencies/dependency_host.mjs +0 -102
  108. package/ngcc/src/dependencies/dependency_resolver.mjs +0 -151
  109. package/ngcc/src/dependencies/dts_dependency_host.mjs +0 -18
  110. package/ngcc/src/dependencies/esm_dependency_host.mjs +0 -286
  111. package/ngcc/src/dependencies/module_resolver.mjs +0 -233
  112. package/ngcc/src/dependencies/umd_dependency_host.mjs +0 -33
  113. package/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.mjs +0 -42
  114. package/ngcc/src/entry_point_finder/entry_point_collector.mjs +0 -120
  115. package/ngcc/src/entry_point_finder/interface.mjs +0 -2
  116. package/ngcc/src/entry_point_finder/program_based_entry_point_finder.mjs +0 -91
  117. package/ngcc/src/entry_point_finder/targeted_entry_point_finder.mjs +0 -216
  118. package/ngcc/src/entry_point_finder/tracing_entry_point_finder.mjs +0 -63
  119. package/ngcc/src/entry_point_finder/utils.mjs +0 -176
  120. package/ngcc/src/execution/analyze_entry_points.mjs +0 -130
  121. package/ngcc/src/execution/api.mjs +0 -2
  122. package/ngcc/src/execution/cluster/api.mjs +0 -9
  123. package/ngcc/src/execution/cluster/executor.mjs +0 -27
  124. package/ngcc/src/execution/cluster/master.mjs +0 -261
  125. package/ngcc/src/execution/cluster/package_json_updater.mjs +0 -45
  126. package/ngcc/src/execution/cluster/utils.mjs +0 -59
  127. package/ngcc/src/execution/cluster/worker.mjs +0 -81
  128. package/ngcc/src/execution/create_compile_function.mjs +0 -62
  129. package/ngcc/src/execution/single_process_executor.mjs +0 -57
  130. package/ngcc/src/execution/tasks/api.mjs +0 -22
  131. package/ngcc/src/execution/tasks/completion.mjs +0 -61
  132. package/ngcc/src/execution/tasks/queues/base_task_queue.mjs +0 -78
  133. package/ngcc/src/execution/tasks/queues/parallel_task_queue.mjs +0 -53
  134. package/ngcc/src/execution/tasks/queues/serial_task_queue.mjs +0 -29
  135. package/ngcc/src/execution/tasks/utils.mjs +0 -114
  136. package/ngcc/src/host/commonjs_host.mjs +0 -220
  137. package/ngcc/src/host/commonjs_umd_utils.mjs +0 -186
  138. package/ngcc/src/host/delegating_host.mjs +0 -140
  139. package/ngcc/src/host/esm2015_host.mjs +0 -2293
  140. package/ngcc/src/host/esm5_host.mjs +0 -721
  141. package/ngcc/src/host/ngcc_host.mjs +0 -15
  142. package/ngcc/src/host/umd_host.mjs +0 -486
  143. package/ngcc/src/host/utils.mjs +0 -12
  144. package/ngcc/src/locking/async_locker.mjs +0 -76
  145. package/ngcc/src/locking/lock_file.mjs +0 -4
  146. package/ngcc/src/locking/lock_file_with_child_process/index.mjs +0 -78
  147. package/ngcc/src/locking/lock_file_with_child_process/unlocker.mjs +0 -34
  148. package/ngcc/src/locking/lock_file_with_child_process/util.mjs +0 -29
  149. package/ngcc/src/locking/sync_locker.mjs +0 -52
  150. package/ngcc/src/main.mjs +0 -134
  151. package/ngcc/src/migrations/migration.mjs +0 -2
  152. package/ngcc/src/migrations/missing_injectable_migration.mjs +0 -164
  153. package/ngcc/src/migrations/undecorated_child_migration.mjs +0 -61
  154. package/ngcc/src/migrations/undecorated_parent_migration.mjs +0 -86
  155. package/ngcc/src/migrations/utils.mjs +0 -117
  156. package/ngcc/src/ngcc_options.mjs +0 -119
  157. package/ngcc/src/packages/build_marker.mjs +0 -84
  158. package/ngcc/src/packages/bundle_program.mjs +0 -52
  159. package/ngcc/src/packages/configuration.mjs +0 -255
  160. package/ngcc/src/packages/entry_point.mjs +0 -239
  161. package/ngcc/src/packages/entry_point_bundle.mjs +0 -68
  162. package/ngcc/src/packages/entry_point_manifest.mjs +0 -162
  163. package/ngcc/src/packages/ngcc_compiler_host.mjs +0 -77
  164. package/ngcc/src/packages/patch_ts_expando_initializer.mjs +0 -166
  165. package/ngcc/src/packages/source_file_cache.mjs +0 -187
  166. package/ngcc/src/packages/transformer.mjs +0 -140
  167. package/ngcc/src/path_mappings.mjs +0 -13
  168. package/ngcc/src/rendering/commonjs_rendering_formatter.mjs +0 -65
  169. package/ngcc/src/rendering/dts_renderer.mjs +0 -139
  170. package/ngcc/src/rendering/esm5_rendering_formatter.mjs +0 -50
  171. package/ngcc/src/rendering/esm_rendering_formatter.mjs +0 -251
  172. package/ngcc/src/rendering/ngcc_import_rewriter.mjs +0 -32
  173. package/ngcc/src/rendering/renderer.mjs +0 -170
  174. package/ngcc/src/rendering/rendering_formatter.mjs +0 -2
  175. package/ngcc/src/rendering/source_maps.mjs +0 -54
  176. package/ngcc/src/rendering/umd_rendering_formatter.mjs +0 -292
  177. package/ngcc/src/rendering/utils.mjs +0 -20
  178. package/ngcc/src/utils.mjs +0 -144
  179. package/ngcc/src/writing/cleaning/cleaning_strategies.mjs +0 -61
  180. package/ngcc/src/writing/cleaning/package_cleaner.mjs +0 -67
  181. package/ngcc/src/writing/cleaning/utils.mjs +0 -16
  182. package/ngcc/src/writing/file_writer.mjs +0 -2
  183. package/ngcc/src/writing/in_place_file_writer.mjs +0 -62
  184. package/ngcc/src/writing/new_entry_point_file_writer.mjs +0 -161
  185. package/ngcc/src/writing/package_json_updater.mjs +0 -144
  186. package/src/diagnostics/translate_diagnostics.mjs +0 -47
  187. package/src/diagnostics/typescript_version.mjs +0 -79
  188. package/src/extract_i18n.mjs +0 -46
  189. package/src/language_services.mjs +0 -18
  190. package/src/main.mjs +0 -185
  191. package/src/metadata/bundle_index_host.mjs +0 -107
  192. package/src/metadata/bundler.mjs +0 -556
  193. package/src/metadata/collector.mjs +0 -701
  194. package/src/metadata/evaluator.mjs +0 -643
  195. package/src/metadata/index.mjs +0 -11
  196. package/src/metadata/index_writer.mjs +0 -44
  197. package/src/metadata/schema.mjs +0 -102
  198. package/src/metadata/symbols.mjs +0 -117
  199. package/src/ngtsc/annotations/annotations.externs.js +0 -0
  200. package/src/ngtsc/annotations/index.mjs +0 -15
  201. package/src/ngtsc/annotations/src/api.mjs +0 -9
  202. package/src/ngtsc/annotations/src/component.mjs +0 -1068
  203. package/src/ngtsc/annotations/src/diagnostics.mjs +0 -147
  204. package/src/ngtsc/annotations/src/directive.mjs +0 -692
  205. package/src/ngtsc/annotations/src/factory.mjs +0 -17
  206. package/src/ngtsc/annotations/src/injectable.mjs +0 -260
  207. package/src/ngtsc/annotations/src/metadata.mjs +0 -145
  208. package/src/ngtsc/annotations/src/ng_module.mjs +0 -565
  209. package/src/ngtsc/annotations/src/pipe.mjs +0 -151
  210. package/src/ngtsc/annotations/src/references_registry.mjs +0 -16
  211. package/src/ngtsc/annotations/src/util.mjs +0 -495
  212. package/src/ngtsc/core/api/index.mjs +0 -12
  213. package/src/ngtsc/core/api/src/adapter.mjs +0 -9
  214. package/src/ngtsc/core/api/src/interfaces.mjs +0 -9
  215. package/src/ngtsc/core/api/src/options.mjs +0 -9
  216. package/src/ngtsc/core/api/src/public_options.mjs +0 -9
  217. package/src/ngtsc/core/api.externs.js +0 -0
  218. package/src/ngtsc/core/core.externs.js +0 -0
  219. package/src/ngtsc/core/index.mjs +0 -10
  220. package/src/ngtsc/core/src/compiler.mjs +0 -917
  221. package/src/ngtsc/core/src/config.mjs +0 -15
  222. package/src/ngtsc/core/src/host.mjs +0 -229
  223. package/src/ngtsc/cycles/cycles.externs.js +0 -0
  224. package/src/ngtsc/cycles/index.mjs +0 -10
  225. package/src/ngtsc/cycles/src/analyzer.mjs +0 -60
  226. package/src/ngtsc/cycles/src/imports.mjs +0 -152
  227. package/src/ngtsc/diagnostics/diagnostics.externs.js +0 -0
  228. package/src/ngtsc/diagnostics/index.mjs +0 -11
  229. package/src/ngtsc/diagnostics/src/error.mjs +0 -51
  230. package/src/ngtsc/diagnostics/src/error_code.mjs +0 -198
  231. package/src/ngtsc/diagnostics/src/util.mjs +0 -21
  232. package/src/ngtsc/entry_point/entry_point.externs.js +0 -0
  233. package/src/ngtsc/entry_point/index.mjs +0 -12
  234. package/src/ngtsc/entry_point/src/generator.mjs +0 -35
  235. package/src/ngtsc/entry_point/src/logic.mjs +0 -35
  236. package/src/ngtsc/entry_point/src/private_export_checker.mjs +0 -122
  237. package/src/ngtsc/entry_point/src/reference_graph.mjs +0 -73
  238. package/src/ngtsc/file_system/file_system.externs.js +0 -0
  239. package/src/ngtsc/file_system/index.mjs +0 -13
  240. package/src/ngtsc/file_system/src/compiler_host.mjs +0 -64
  241. package/src/ngtsc/file_system/src/helpers.mjs +0 -99
  242. package/src/ngtsc/file_system/src/invalid_file_system.mjs +0 -95
  243. package/src/ngtsc/file_system/src/logical.mjs +0 -84
  244. package/src/ngtsc/file_system/src/node_js_file_system.mjs +0 -142
  245. package/src/ngtsc/file_system/src/types.mjs +0 -9
  246. package/src/ngtsc/file_system/src/util.mjs +0 -22
  247. package/src/ngtsc/file_system/testing/index.mjs +0 -13
  248. package/src/ngtsc/file_system/testing/src/mock_file_system.mjs +0 -293
  249. package/src/ngtsc/file_system/testing/src/mock_file_system_native.mjs +0 -57
  250. package/src/ngtsc/file_system/testing/src/mock_file_system_posix.mjs +0 -38
  251. package/src/ngtsc/file_system/testing/src/mock_file_system_windows.mjs +0 -38
  252. package/src/ngtsc/file_system/testing/src/test_helper.mjs +0 -108
  253. package/src/ngtsc/file_system/testing/testing.externs.js +0 -0
  254. package/src/ngtsc/imports/imports.externs.js +0 -0
  255. package/src/ngtsc/imports/index.mjs +0 -14
  256. package/src/ngtsc/imports/src/alias.mjs +0 -137
  257. package/src/ngtsc/imports/src/core.mjs +0 -78
  258. package/src/ngtsc/imports/src/default.mjs +0 -135
  259. package/src/ngtsc/imports/src/emitter.mjs +0 -266
  260. package/src/ngtsc/imports/src/find_export.mjs +0 -56
  261. package/src/ngtsc/imports/src/reexport.mjs +0 -9
  262. package/src/ngtsc/imports/src/references.mjs +0 -137
  263. package/src/ngtsc/imports/src/resolver.mjs +0 -24
  264. package/src/ngtsc/incremental/api.externs.js +0 -0
  265. package/src/ngtsc/incremental/api.mjs +0 -9
  266. package/src/ngtsc/incremental/incremental.externs.js +0 -0
  267. package/src/ngtsc/incremental/index.mjs +0 -12
  268. package/src/ngtsc/incremental/semantic_graph/index.mjs +0 -12
  269. package/src/ngtsc/incremental/semantic_graph/semantic_graph.externs.js +0 -0
  270. package/src/ngtsc/incremental/semantic_graph/src/api.mjs +0 -36
  271. package/src/ngtsc/incremental/semantic_graph/src/graph.mjs +0 -237
  272. package/src/ngtsc/incremental/semantic_graph/src/type_parameters.mjs +0 -40
  273. package/src/ngtsc/incremental/semantic_graph/src/util.mjs +0 -69
  274. package/src/ngtsc/incremental/src/dependency_tracking.mjs +0 -117
  275. package/src/ngtsc/incremental/src/incremental.mjs +0 -271
  276. package/src/ngtsc/incremental/src/noop.mjs +0 -13
  277. package/src/ngtsc/incremental/src/state.mjs +0 -17
  278. package/src/ngtsc/incremental/src/strategy.mjs +0 -76
  279. package/src/ngtsc/indexer/index.mjs +0 -11
  280. package/src/ngtsc/indexer/indexer.externs.js +0 -0
  281. package/src/ngtsc/indexer/src/api.mjs +0 -30
  282. package/src/ngtsc/indexer/src/context.mjs +0 -25
  283. package/src/ngtsc/indexer/src/template.mjs +0 -303
  284. package/src/ngtsc/indexer/src/transform.mjs +0 -51
  285. package/src/ngtsc/logging/index.mjs +0 -10
  286. package/src/ngtsc/logging/logging.externs.js +0 -0
  287. package/src/ngtsc/logging/src/console_logger.mjs +0 -43
  288. package/src/ngtsc/logging/src/logger.mjs +0 -15
  289. package/src/ngtsc/logging/testing/index.mjs +0 -9
  290. package/src/ngtsc/logging/testing/src/mock_logger.mjs +0 -32
  291. package/src/ngtsc/logging/testing/testing.externs.js +0 -0
  292. package/src/ngtsc/metadata/index.mjs +0 -15
  293. package/src/ngtsc/metadata/metadata.externs.js +0 -0
  294. package/src/ngtsc/metadata/src/api.mjs +0 -13
  295. package/src/ngtsc/metadata/src/dts.mjs +0 -143
  296. package/src/ngtsc/metadata/src/inheritance.mjs +0 -71
  297. package/src/ngtsc/metadata/src/property_mapping.mjs +0 -136
  298. package/src/ngtsc/metadata/src/registry.mjs +0 -80
  299. package/src/ngtsc/metadata/src/resource_registry.mjs +0 -81
  300. package/src/ngtsc/metadata/src/util.mjs +0 -200
  301. package/src/ngtsc/partial_evaluator/index.mjs +0 -12
  302. package/src/ngtsc/partial_evaluator/partial_evaluator.externs.js +0 -0
  303. package/src/ngtsc/partial_evaluator/src/builtin.mjs +0 -65
  304. package/src/ngtsc/partial_evaluator/src/diagnostics.mjs +0 -174
  305. package/src/ngtsc/partial_evaluator/src/dynamic.mjs +0 -94
  306. package/src/ngtsc/partial_evaluator/src/interface.mjs +0 -27
  307. package/src/ngtsc/partial_evaluator/src/interpreter.mjs +0 -719
  308. package/src/ngtsc/partial_evaluator/src/known_declaration.mjs +0 -43
  309. package/src/ngtsc/partial_evaluator/src/result.mjs +0 -50
  310. package/src/ngtsc/partial_evaluator/src/ts_helpers.mjs +0 -72
  311. package/src/ngtsc/perf/index.mjs +0 -11
  312. package/src/ngtsc/perf/perf.externs.js +0 -0
  313. package/src/ngtsc/perf/src/api.mjs +0 -278
  314. package/src/ngtsc/perf/src/clock.mjs +0 -15
  315. package/src/ngtsc/perf/src/noop.mjs +0 -21
  316. package/src/ngtsc/perf/src/recorder.mjs +0 -125
  317. package/src/ngtsc/program.mjs +0 -271
  318. package/src/ngtsc/program_driver/index.mjs +0 -10
  319. package/src/ngtsc/program_driver/program_driver.externs.js +0 -0
  320. package/src/ngtsc/program_driver/src/api.mjs +0 -22
  321. package/src/ngtsc/program_driver/src/ts_create_program_driver.mjs +0 -164
  322. package/src/ngtsc/reflection/index.mjs +0 -12
  323. package/src/ngtsc/reflection/reflection.externs.js +0 -0
  324. package/src/ngtsc/reflection/src/host.mjs +0 -73
  325. package/src/ngtsc/reflection/src/type_to_value.mjs +0 -243
  326. package/src/ngtsc/reflection/src/typescript.mjs +0 -608
  327. package/src/ngtsc/reflection/src/util.mjs +0 -21
  328. package/src/ngtsc/resource/index.mjs +0 -9
  329. package/src/ngtsc/resource/resource.externs.js +0 -0
  330. package/src/ngtsc/resource/src/loader.mjs +0 -242
  331. package/src/ngtsc/routing/index.mjs +0 -11
  332. package/src/ngtsc/routing/routing.externs.js +0 -0
  333. package/src/ngtsc/routing/src/analyzer.mjs +0 -69
  334. package/src/ngtsc/routing/src/lazy.mjs +0 -168
  335. package/src/ngtsc/routing/src/route.mjs +0 -51
  336. package/src/ngtsc/scope/index.mjs +0 -12
  337. package/src/ngtsc/scope/scope.externs.js +0 -0
  338. package/src/ngtsc/scope/src/api.mjs +0 -9
  339. package/src/ngtsc/scope/src/component_scope.mjs +0 -31
  340. package/src/ngtsc/scope/src/dependency.mjs +0 -134
  341. package/src/ngtsc/scope/src/local.mjs +0 -531
  342. package/src/ngtsc/scope/src/typecheck.mjs +0 -83
  343. package/src/ngtsc/shims/api.externs.js +0 -0
  344. package/src/ngtsc/shims/api.mjs +0 -2
  345. package/src/ngtsc/shims/index.mjs +0 -14
  346. package/src/ngtsc/shims/shims.externs.js +0 -0
  347. package/src/ngtsc/shims/src/adapter.mjs +0 -188
  348. package/src/ngtsc/shims/src/expando.mjs +0 -102
  349. package/src/ngtsc/shims/src/factory_generator.mjs +0 -265
  350. package/src/ngtsc/shims/src/reference_tagger.mjs +0 -67
  351. package/src/ngtsc/shims/src/summary_generator.mjs +0 -64
  352. package/src/ngtsc/shims/src/util.mjs +0 -26
  353. package/src/ngtsc/sourcemaps/index.mjs +0 -11
  354. package/src/ngtsc/sourcemaps/sourcemaps.externs.js +0 -0
  355. package/src/ngtsc/sourcemaps/src/content_origin.mjs +0 -35
  356. package/src/ngtsc/sourcemaps/src/raw_source_map.mjs +0 -2
  357. package/src/ngtsc/sourcemaps/src/segment_marker.mjs +0 -40
  358. package/src/ngtsc/sourcemaps/src/source_file.mjs +0 -459
  359. package/src/ngtsc/sourcemaps/src/source_file_loader.mjs +0 -213
  360. package/src/ngtsc/switch/index.mjs +0 -9
  361. package/src/ngtsc/switch/src/switch.mjs +0 -115
  362. package/src/ngtsc/switch/switch.externs.js +0 -0
  363. package/src/ngtsc/transform/index.mjs +0 -14
  364. package/src/ngtsc/transform/src/alias.mjs +0 -30
  365. package/src/ngtsc/transform/src/api.mjs +0 -63
  366. package/src/ngtsc/transform/src/compilation.mjs +0 -514
  367. package/src/ngtsc/transform/src/declaration.mjs +0 -182
  368. package/src/ngtsc/transform/src/trait.mjs +0 -95
  369. package/src/ngtsc/transform/src/transform.mjs +0 -298
  370. package/src/ngtsc/transform/src/utils.mjs +0 -57
  371. package/src/ngtsc/transform/transform.externs.js +0 -0
  372. package/src/ngtsc/translator/index.mjs +0 -14
  373. package/src/ngtsc/translator/src/api/ast_factory.mjs +0 -9
  374. package/src/ngtsc/translator/src/api/import_generator.mjs +0 -9
  375. package/src/ngtsc/translator/src/context.mjs +0 -24
  376. package/src/ngtsc/translator/src/import_manager.mjs +0 -48
  377. package/src/ngtsc/translator/src/translator.mjs +0 -317
  378. package/src/ngtsc/translator/src/type_translator.mjs +0 -204
  379. package/src/ngtsc/translator/src/typescript_ast_factory.mjs +0 -211
  380. package/src/ngtsc/translator/src/typescript_translator.mjs +0 -17
  381. package/src/ngtsc/translator/translator.externs.js +0 -0
  382. package/src/ngtsc/tsc_plugin.mjs +0 -98
  383. package/src/ngtsc/typecheck/api/api.externs.js +0 -0
  384. package/src/ngtsc/typecheck/api/api.mjs +0 -9
  385. package/src/ngtsc/typecheck/api/checker.mjs +0 -31
  386. package/src/ngtsc/typecheck/api/completion.mjs +0 -16
  387. package/src/ngtsc/typecheck/api/context.mjs +0 -9
  388. package/src/ngtsc/typecheck/api/index.mjs +0 -14
  389. package/src/ngtsc/typecheck/api/scope.mjs +0 -9
  390. package/src/ngtsc/typecheck/api/symbols.mjs +0 -22
  391. package/src/ngtsc/typecheck/diagnostics/diagnostics.externs.js +0 -0
  392. package/src/ngtsc/typecheck/diagnostics/index.mjs +0 -10
  393. package/src/ngtsc/typecheck/diagnostics/src/diagnostic.mjs +0 -99
  394. package/src/ngtsc/typecheck/diagnostics/src/id.mjs +0 -23
  395. package/src/ngtsc/typecheck/index.mjs +0 -12
  396. package/src/ngtsc/typecheck/src/checker.mjs +0 -591
  397. package/src/ngtsc/typecheck/src/comments.mjs +0 -159
  398. package/src/ngtsc/typecheck/src/completion.mjs +0 -155
  399. package/src/ngtsc/typecheck/src/context.mjs +0 -350
  400. package/src/ngtsc/typecheck/src/diagnostics.mjs +0 -95
  401. package/src/ngtsc/typecheck/src/dom.mjs +0 -68
  402. package/src/ngtsc/typecheck/src/environment.mjs +0 -146
  403. package/src/ngtsc/typecheck/src/expression.mjs +0 -412
  404. package/src/ngtsc/typecheck/src/line_mappings.mjs +0 -60
  405. package/src/ngtsc/typecheck/src/oob.mjs +0 -112
  406. package/src/ngtsc/typecheck/src/shim.mjs +0 -37
  407. package/src/ngtsc/typecheck/src/source.mjs +0 -74
  408. package/src/ngtsc/typecheck/src/tcb_util.mjs +0 -135
  409. package/src/ngtsc/typecheck/src/template_semantics.mjs +0 -34
  410. package/src/ngtsc/typecheck/src/template_symbol_builder.mjs +0 -485
  411. package/src/ngtsc/typecheck/src/ts_util.mjs +0 -157
  412. package/src/ngtsc/typecheck/src/type_check_block.mjs +0 -1770
  413. package/src/ngtsc/typecheck/src/type_check_file.mjs +0 -65
  414. package/src/ngtsc/typecheck/src/type_constructor.mjs +0 -227
  415. package/src/ngtsc/typecheck/src/type_emitter.mjs +0 -127
  416. package/src/ngtsc/typecheck/src/type_parameter_emitter.mjs +0 -93
  417. package/src/ngtsc/typecheck/typecheck.externs.js +0 -0
  418. package/src/ngtsc/util/src/path.mjs +0 -18
  419. package/src/ngtsc/util/src/typescript.mjs +0 -143
  420. package/src/ngtsc/util/src/visitor.mjs +0 -107
  421. package/src/ngtsc/util/util.externs.js +0 -0
  422. package/src/ngtsc/xi18n/index.mjs +0 -9
  423. package/src/ngtsc/xi18n/src/context.mjs +0 -9
  424. package/src/ngtsc/xi18n/xi18n.externs.js +0 -0
  425. package/src/perform_compile.mjs +0 -275
  426. package/src/perform_watch.mjs +0 -247
  427. package/src/tooling.mjs +0 -32
  428. package/src/transformers/api.mjs +0 -27
  429. package/src/transformers/compiler_host.mjs +0 -593
  430. package/src/transformers/downlevel_decorators_transform.mjs +0 -507
  431. package/src/transformers/entry_points.mjs +0 -10
  432. package/src/transformers/i18n.mjs +0 -59
  433. package/src/transformers/inline_resources.mjs +0 -269
  434. package/src/transformers/lower_expressions.mjs +0 -336
  435. package/src/transformers/metadata_cache.mjs +0 -53
  436. package/src/transformers/metadata_reader.mjs +0 -104
  437. package/src/transformers/node_emitter.mjs +0 -606
  438. package/src/transformers/node_emitter_transform.mjs +0 -78
  439. package/src/transformers/patch_alias_reference_resolution.mjs +0 -109
  440. package/src/transformers/program.mjs +0 -887
  441. package/src/transformers/r3_metadata_transform.mjs +0 -46
  442. package/src/transformers/r3_transform.mjs +0 -29
  443. package/src/transformers/util.mjs +0 -89
  444. package/src/typescript_support.mjs +0 -57
  445. package/src/version.mjs +0 -15
@@ -1,70 +0,0 @@
1
- import { AstObject } from '../ast/ast_value';
2
- import { EmitScope } from './emit_scopes/emit_scope';
3
- import { IifeEmitScope } from './emit_scopes/iife_emit_scope';
4
- import { createLinkerMap, PartialLinkerSelector } from './partial_linkers/partial_linker_selector';
5
- export const NO_STATEMENTS = [];
6
- /**
7
- * This class is responsible for linking all the partial declarations found in a single file.
8
- */
9
- export class FileLinker {
10
- constructor(linkerEnvironment, sourceUrl, code) {
11
- this.linkerEnvironment = linkerEnvironment;
12
- this.emitScopes = new Map();
13
- this.linkerSelector = new PartialLinkerSelector(createLinkerMap(this.linkerEnvironment, sourceUrl, code), this.linkerEnvironment.logger, this.linkerEnvironment.options.unknownDeclarationVersionHandling);
14
- }
15
- /**
16
- * Return true if the given callee name matches a partial declaration that can be linked.
17
- */
18
- isPartialDeclaration(calleeName) {
19
- return this.linkerSelector.supportsDeclaration(calleeName);
20
- }
21
- /**
22
- * Link the metadata extracted from the args of a call to a partial declaration function.
23
- *
24
- * The `declarationScope` is used to determine the scope and strategy of emission of the linked
25
- * definition and any shared constant statements.
26
- *
27
- * @param declarationFn the name of the function used to declare the partial declaration - e.g.
28
- * `ɵɵngDeclareDirective`.
29
- * @param args the arguments passed to the declaration function, should be a single object that
30
- * corresponds to the `R3DeclareDirectiveMetadata` or `R3DeclareComponentMetadata` interfaces.
31
- * @param declarationScope the scope that contains this call to the declaration function.
32
- */
33
- linkPartialDeclaration(declarationFn, args, declarationScope) {
34
- if (args.length !== 1) {
35
- throw new Error(`Invalid function call: It should have only a single object literal argument, but contained ${args.length}.`);
36
- }
37
- const metaObj = AstObject.parse(args[0], this.linkerEnvironment.host);
38
- const ngImport = metaObj.getNode('ngImport');
39
- const emitScope = this.getEmitScope(ngImport, declarationScope);
40
- const minVersion = metaObj.getString('minVersion');
41
- const version = metaObj.getString('version');
42
- const linker = this.linkerSelector.getLinker(declarationFn, minVersion, version);
43
- const definition = linker.linkPartialDeclaration(emitScope.constantPool, metaObj);
44
- return emitScope.translateDefinition(definition);
45
- }
46
- /**
47
- * Return all the shared constant statements and their associated constant scope references, so
48
- * that they can be inserted into the source code.
49
- */
50
- getConstantStatements() {
51
- const results = [];
52
- for (const [constantScope, emitScope] of this.emitScopes.entries()) {
53
- const statements = emitScope.getConstantStatements();
54
- results.push({ constantScope, statements });
55
- }
56
- return results;
57
- }
58
- getEmitScope(ngImport, declarationScope) {
59
- const constantScope = declarationScope.getConstantScopeRef(ngImport);
60
- if (constantScope === null) {
61
- // There is no constant scope so we will emit extra statements into the definition IIFE.
62
- return new IifeEmitScope(ngImport, this.linkerEnvironment.translator, this.linkerEnvironment.factory);
63
- }
64
- if (!this.emitScopes.has(constantScope)) {
65
- this.emitScopes.set(constantScope, new EmitScope(ngImport, this.linkerEnvironment.translator));
66
- }
67
- return this.emitScopes.get(constantScope);
68
- }
69
- }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZV9saW5rZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL3NyYy9maWxlX2xpbmtlci9maWxlX2xpbmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFM0MsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RCxPQUFPLEVBQUMsZUFBZSxFQUFFLHFCQUFxQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFFakcsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFvQixFQUFXLENBQUM7QUFFMUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sVUFBVTtJQUlyQixZQUNZLGlCQUE2RCxFQUNyRSxTQUF5QixFQUFFLElBQVk7UUFEL0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUE0QztRQUhqRSxlQUFVLEdBQUcsSUFBSSxHQUFHLEVBQXNELENBQUM7UUFLakYsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLHFCQUFxQixDQUMzQyxlQUFlLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUN2RixJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsb0JBQW9CLENBQUMsVUFBa0I7UUFDckMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNILHNCQUFzQixDQUNsQixhQUFxQixFQUFFLElBQW1CLEVBQzFDLGdCQUErRDtRQUNqRSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQ1gsOEZBQ0ksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDekI7UUFFRCxNQUFNLE9BQU8sR0FDVCxTQUFTLENBQUMsS0FBSyxDQUFvQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdGLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUVoRSxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25ELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqRixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVsRixPQUFPLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gscUJBQXFCO1FBQ25CLE1BQU0sT0FBTyxHQUFnRSxFQUFFLENBQUM7UUFDaEYsS0FBSyxNQUFNLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDbEUsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDckQsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLFlBQVksQ0FDaEIsUUFBcUIsRUFBRSxnQkFBK0Q7UUFFeEYsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckUsSUFBSSxhQUFhLEtBQUssSUFBSSxFQUFFO1lBQzFCLHdGQUF3RjtZQUN4RixPQUFPLElBQUksYUFBYSxDQUNwQixRQUFRLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDbEY7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ2YsYUFBYSxFQUFFLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztTQUNoRjtRQUNELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFFLENBQUM7SUFDN0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge1IzUGFydGlhbERlY2xhcmF0aW9ufSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XG5pbXBvcnQge0Fic29sdXRlRnNQYXRofSBmcm9tICcuLi8uLi8uLi9zcmMvbmd0c2MvZmlsZV9zeXN0ZW0nO1xuaW1wb3J0IHtBc3RPYmplY3R9IGZyb20gJy4uL2FzdC9hc3RfdmFsdWUnO1xuaW1wb3J0IHtEZWNsYXJhdGlvblNjb3BlfSBmcm9tICcuL2RlY2xhcmF0aW9uX3Njb3BlJztcbmltcG9ydCB7RW1pdFNjb3BlfSBmcm9tICcuL2VtaXRfc2NvcGVzL2VtaXRfc2NvcGUnO1xuaW1wb3J0IHtJaWZlRW1pdFNjb3BlfSBmcm9tICcuL2VtaXRfc2NvcGVzL2lpZmVfZW1pdF9zY29wZSc7XG5pbXBvcnQge0xpbmtlckVudmlyb25tZW50fSBmcm9tICcuL2xpbmtlcl9lbnZpcm9ubWVudCc7XG5pbXBvcnQge2NyZWF0ZUxpbmtlck1hcCwgUGFydGlhbExpbmtlclNlbGVjdG9yfSBmcm9tICcuL3BhcnRpYWxfbGlua2Vycy9wYXJ0aWFsX2xpbmtlcl9zZWxlY3Rvcic7XG5cbmV4cG9ydCBjb25zdCBOT19TVEFURU1FTlRTOiBSZWFkb25seTxhbnlbXT4gPSBbXSBhcyBjb25zdDtcblxuLyoqXG4gKiBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciBsaW5raW5nIGFsbCB0aGUgcGFydGlhbCBkZWNsYXJhdGlvbnMgZm91bmQgaW4gYSBzaW5nbGUgZmlsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEZpbGVMaW5rZXI8VENvbnN0YW50U2NvcGUsIFRTdGF0ZW1lbnQsIFRFeHByZXNzaW9uPiB7XG4gIHByaXZhdGUgbGlua2VyU2VsZWN0b3I6IFBhcnRpYWxMaW5rZXJTZWxlY3RvcjxURXhwcmVzc2lvbj47XG4gIHByaXZhdGUgZW1pdFNjb3BlcyA9IG5ldyBNYXA8VENvbnN0YW50U2NvcGUsIEVtaXRTY29wZTxUU3RhdGVtZW50LCBURXhwcmVzc2lvbj4+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGxpbmtlckVudmlyb25tZW50OiBMaW5rZXJFbnZpcm9ubWVudDxUU3RhdGVtZW50LCBURXhwcmVzc2lvbj4sXG4gICAgICBzb3VyY2VVcmw6IEFic29sdXRlRnNQYXRoLCBjb2RlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmxpbmtlclNlbGVjdG9yID0gbmV3IFBhcnRpYWxMaW5rZXJTZWxlY3RvcjxURXhwcmVzc2lvbj4oXG4gICAgICAgIGNyZWF0ZUxpbmtlck1hcCh0aGlzLmxpbmtlckVudmlyb25tZW50LCBzb3VyY2VVcmwsIGNvZGUpLCB0aGlzLmxpbmtlckVudmlyb25tZW50LmxvZ2dlcixcbiAgICAgICAgdGhpcy5saW5rZXJFbnZpcm9ubWVudC5vcHRpb25zLnVua25vd25EZWNsYXJhdGlvblZlcnNpb25IYW5kbGluZyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGNhbGxlZSBuYW1lIG1hdGNoZXMgYSBwYXJ0aWFsIGRlY2xhcmF0aW9uIHRoYXQgY2FuIGJlIGxpbmtlZC5cbiAgICovXG4gIGlzUGFydGlhbERlY2xhcmF0aW9uKGNhbGxlZU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxpbmtlclNlbGVjdG9yLnN1cHBvcnRzRGVjbGFyYXRpb24oY2FsbGVlTmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogTGluayB0aGUgbWV0YWRhdGEgZXh0cmFjdGVkIGZyb20gdGhlIGFyZ3Mgb2YgYSBjYWxsIHRvIGEgcGFydGlhbCBkZWNsYXJhdGlvbiBmdW5jdGlvbi5cbiAgICpcbiAgICogVGhlIGBkZWNsYXJhdGlvblNjb3BlYCBpcyB1c2VkIHRvIGRldGVybWluZSB0aGUgc2NvcGUgYW5kIHN0cmF0ZWd5IG9mIGVtaXNzaW9uIG9mIHRoZSBsaW5rZWRcbiAgICogZGVmaW5pdGlvbiBhbmQgYW55IHNoYXJlZCBjb25zdGFudCBzdGF0ZW1lbnRzLlxuICAgKlxuICAgKiBAcGFyYW0gZGVjbGFyYXRpb25GbiB0aGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24gdXNlZCB0byBkZWNsYXJlIHRoZSBwYXJ0aWFsIGRlY2xhcmF0aW9uIC0gZS5nLlxuICAgKiAgICAgYMm1ybVuZ0RlY2xhcmVEaXJlY3RpdmVgLlxuICAgKiBAcGFyYW0gYXJncyB0aGUgYXJndW1lbnRzIHBhc3NlZCB0byB0aGUgZGVjbGFyYXRpb24gZnVuY3Rpb24sIHNob3VsZCBiZSBhIHNpbmdsZSBvYmplY3QgdGhhdFxuICAgKiAgICAgY29ycmVzcG9uZHMgdG8gdGhlIGBSM0RlY2xhcmVEaXJlY3RpdmVNZXRhZGF0YWAgb3IgYFIzRGVjbGFyZUNvbXBvbmVudE1ldGFkYXRhYCBpbnRlcmZhY2VzLlxuICAgKiBAcGFyYW0gZGVjbGFyYXRpb25TY29wZSB0aGUgc2NvcGUgdGhhdCBjb250YWlucyB0aGlzIGNhbGwgdG8gdGhlIGRlY2xhcmF0aW9uIGZ1bmN0aW9uLlxuICAgKi9cbiAgbGlua1BhcnRpYWxEZWNsYXJhdGlvbihcbiAgICAgIGRlY2xhcmF0aW9uRm46IHN0cmluZywgYXJnczogVEV4cHJlc3Npb25bXSxcbiAgICAgIGRlY2xhcmF0aW9uU2NvcGU6IERlY2xhcmF0aW9uU2NvcGU8VENvbnN0YW50U2NvcGUsIFRFeHByZXNzaW9uPik6IFRFeHByZXNzaW9uIHtcbiAgICBpZiAoYXJncy5sZW5ndGggIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBmdW5jdGlvbiBjYWxsOiBJdCBzaG91bGQgaGF2ZSBvbmx5IGEgc2luZ2xlIG9iamVjdCBsaXRlcmFsIGFyZ3VtZW50LCBidXQgY29udGFpbmVkICR7XG4gICAgICAgICAgICAgIGFyZ3MubGVuZ3RofS5gKTtcbiAgICB9XG5cbiAgICBjb25zdCBtZXRhT2JqID1cbiAgICAgICAgQXN0T2JqZWN0LnBhcnNlPFIzUGFydGlhbERlY2xhcmF0aW9uLCBURXhwcmVzc2lvbj4oYXJnc1swXSwgdGhpcy5saW5rZXJFbnZpcm9ubWVudC5ob3N0KTtcbiAgICBjb25zdCBuZ0ltcG9ydCA9IG1ldGFPYmouZ2V0Tm9kZSgnbmdJbXBvcnQnKTtcbiAgICBjb25zdCBlbWl0U2NvcGUgPSB0aGlzLmdldEVtaXRTY29wZShuZ0ltcG9ydCwgZGVjbGFyYXRpb25TY29wZSk7XG5cbiAgICBjb25zdCBtaW5WZXJzaW9uID0gbWV0YU9iai5nZXRTdHJpbmcoJ21pblZlcnNpb24nKTtcbiAgICBjb25zdCB2ZXJzaW9uID0gbWV0YU9iai5nZXRTdHJpbmcoJ3ZlcnNpb24nKTtcbiAgICBjb25zdCBsaW5rZXIgPSB0aGlzLmxpbmtlclNlbGVjdG9yLmdldExpbmtlcihkZWNsYXJhdGlvbkZuLCBtaW5WZXJzaW9uLCB2ZXJzaW9uKTtcbiAgICBjb25zdCBkZWZpbml0aW9uID0gbGlua2VyLmxpbmtQYXJ0aWFsRGVjbGFyYXRpb24oZW1pdFNjb3BlLmNvbnN0YW50UG9vbCwgbWV0YU9iaik7XG5cbiAgICByZXR1cm4gZW1pdFNjb3BlLnRyYW5zbGF0ZURlZmluaXRpb24oZGVmaW5pdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFsbCB0aGUgc2hhcmVkIGNvbnN0YW50IHN0YXRlbWVudHMgYW5kIHRoZWlyIGFzc29jaWF0ZWQgY29uc3RhbnQgc2NvcGUgcmVmZXJlbmNlcywgc29cbiAgICogdGhhdCB0aGV5IGNhbiBiZSBpbnNlcnRlZCBpbnRvIHRoZSBzb3VyY2UgY29kZS5cbiAgICovXG4gIGdldENvbnN0YW50U3RhdGVtZW50cygpOiB7Y29uc3RhbnRTY29wZTogVENvbnN0YW50U2NvcGUsIHN0YXRlbWVudHM6IFRTdGF0ZW1lbnRbXX1bXSB7XG4gICAgY29uc3QgcmVzdWx0czoge2NvbnN0YW50U2NvcGU6IFRDb25zdGFudFNjb3BlLCBzdGF0ZW1lbnRzOiBUU3RhdGVtZW50W119W10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IFtjb25zdGFudFNjb3BlLCBlbWl0U2NvcGVdIG9mIHRoaXMuZW1pdFNjb3Blcy5lbnRyaWVzKCkpIHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudHMgPSBlbWl0U2NvcGUuZ2V0Q29uc3RhbnRTdGF0ZW1lbnRzKCk7XG4gICAgICByZXN1bHRzLnB1c2goe2NvbnN0YW50U2NvcGUsIHN0YXRlbWVudHN9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdHM7XG4gIH1cblxuICBwcml2YXRlIGdldEVtaXRTY29wZShcbiAgICAgIG5nSW1wb3J0OiBURXhwcmVzc2lvbiwgZGVjbGFyYXRpb25TY29wZTogRGVjbGFyYXRpb25TY29wZTxUQ29uc3RhbnRTY29wZSwgVEV4cHJlc3Npb24+KTpcbiAgICAgIEVtaXRTY29wZTxUU3RhdGVtZW50LCBURXhwcmVzc2lvbj4ge1xuICAgIGNvbnN0IGNvbnN0YW50U2NvcGUgPSBkZWNsYXJhdGlvblNjb3BlLmdldENvbnN0YW50U2NvcGVSZWYobmdJbXBvcnQpO1xuICAgIGlmIChjb25zdGFudFNjb3BlID09PSBudWxsKSB7XG4gICAgICAvLyBUaGVyZSBpcyBubyBjb25zdGFudCBzY29wZSBzbyB3ZSB3aWxsIGVtaXQgZXh0cmEgc3RhdGVtZW50cyBpbnRvIHRoZSBkZWZpbml0aW9uIElJRkUuXG4gICAgICByZXR1cm4gbmV3IElpZmVFbWl0U2NvcGUoXG4gICAgICAgICAgbmdJbXBvcnQsIHRoaXMubGlua2VyRW52aXJvbm1lbnQudHJhbnNsYXRvciwgdGhpcy5saW5rZXJFbnZpcm9ubWVudC5mYWN0b3J5KTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZW1pdFNjb3Blcy5oYXMoY29uc3RhbnRTY29wZSkpIHtcbiAgICAgIHRoaXMuZW1pdFNjb3Blcy5zZXQoXG4gICAgICAgICAgY29uc3RhbnRTY29wZSwgbmV3IEVtaXRTY29wZShuZ0ltcG9ydCwgdGhpcy5saW5rZXJFbnZpcm9ubWVudC50cmFuc2xhdG9yKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmVtaXRTY29wZXMuZ2V0KGNvbnN0YW50U2NvcGUpITtcbiAgfVxufVxuIl19
@@ -1,28 +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
- * Create a `GetSourceFileFn` that will return the `SourceFile` being linked or `null`, if not
10
- * available.
11
- */
12
- export function createGetSourceFile(sourceUrl, code, loader) {
13
- if (loader === null) {
14
- // No source-mapping so just return a function that always returns `null`.
15
- return () => null;
16
- }
17
- else {
18
- // Source-mapping is available so return a function that will load (and cache) the `SourceFile`.
19
- let sourceFile = undefined;
20
- return () => {
21
- if (sourceFile === undefined) {
22
- sourceFile = loader.loadSourceFile(sourceUrl, code);
23
- }
24
- return sourceFile;
25
- };
26
- }
27
- }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0X3NvdXJjZV9maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL2xpbmtlci9zcmMvZmlsZV9saW5rZXIvZ2V0X3NvdXJjZV9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQVVIOzs7R0FHRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FDL0IsU0FBeUIsRUFBRSxJQUFZLEVBQUUsTUFBNkI7SUFDeEUsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFO1FBQ25CLDBFQUEwRTtRQUMxRSxPQUFPLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztLQUNuQjtTQUFNO1FBQ0wsZ0dBQWdHO1FBQ2hHLElBQUksVUFBVSxHQUE4QixTQUFTLENBQUM7UUFDdEQsT0FBTyxHQUFHLEVBQUU7WUFDVixJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUU7Z0JBQzVCLFVBQVUsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQzthQUNyRDtZQUNELE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUMsQ0FBQztLQUNIO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0Fic29sdXRlRnNQYXRofSBmcm9tICcuLi8uLi8uLi9zcmMvbmd0c2MvZmlsZV9zeXN0ZW0nO1xuaW1wb3J0IHtTb3VyY2VGaWxlLCBTb3VyY2VGaWxlTG9hZGVyfSBmcm9tICcuLi8uLi8uLi9zcmMvbmd0c2Mvc291cmNlbWFwcyc7XG5cbi8qKlxuICogQSBmdW5jdGlvbiB0aGF0IHdpbGwgcmV0dXJuIGEgYFNvdXJjZUZpbGVgIG9iamVjdCAob3IgbnVsbCkgZm9yIHRoZSBjdXJyZW50IGZpbGUgYmVpbmcgbGlua2VkLlxuICovXG5leHBvcnQgdHlwZSBHZXRTb3VyY2VGaWxlRm4gPSAoKSA9PiBTb3VyY2VGaWxlfG51bGw7XG5cbi8qKlxuICogQ3JlYXRlIGEgYEdldFNvdXJjZUZpbGVGbmAgdGhhdCB3aWxsIHJldHVybiB0aGUgYFNvdXJjZUZpbGVgIGJlaW5nIGxpbmtlZCBvciBgbnVsbGAsIGlmIG5vdFxuICogYXZhaWxhYmxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlR2V0U291cmNlRmlsZShcbiAgICBzb3VyY2VVcmw6IEFic29sdXRlRnNQYXRoLCBjb2RlOiBzdHJpbmcsIGxvYWRlcjogU291cmNlRmlsZUxvYWRlcnxudWxsKTogR2V0U291cmNlRmlsZUZuIHtcbiAgaWYgKGxvYWRlciA9PT0gbnVsbCkge1xuICAgIC8vIE5vIHNvdXJjZS1tYXBwaW5nIHNvIGp1c3QgcmV0dXJuIGEgZnVuY3Rpb24gdGhhdCBhbHdheXMgcmV0dXJucyBgbnVsbGAuXG4gICAgcmV0dXJuICgpID0+IG51bGw7XG4gIH0gZWxzZSB7XG4gICAgLy8gU291cmNlLW1hcHBpbmcgaXMgYXZhaWxhYmxlIHNvIHJldHVybiBhIGZ1bmN0aW9uIHRoYXQgd2lsbCBsb2FkIChhbmQgY2FjaGUpIHRoZSBgU291cmNlRmlsZWAuXG4gICAgbGV0IHNvdXJjZUZpbGU6IFNvdXJjZUZpbGV8bnVsbHx1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChzb3VyY2VGaWxlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgc291cmNlRmlsZSA9IGxvYWRlci5sb2FkU291cmNlRmlsZShzb3VyY2VVcmwsIGNvZGUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHNvdXJjZUZpbGU7XG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,23 +0,0 @@
1
- import { SourceFileLoader } from '../../../src/ngtsc/sourcemaps';
2
- import { DEFAULT_LINKER_OPTIONS } from './linker_options';
3
- import { Translator } from './translator';
4
- export class LinkerEnvironment {
5
- constructor(fileSystem, logger, host, factory, options) {
6
- this.fileSystem = fileSystem;
7
- this.logger = logger;
8
- this.host = host;
9
- this.factory = factory;
10
- this.options = options;
11
- this.translator = new Translator(this.factory);
12
- this.sourceFileLoader = this.options.sourceMapping ? new SourceFileLoader(this.fileSystem, this.logger, {}) : null;
13
- }
14
- static create(fileSystem, logger, host, factory, options) {
15
- var _a, _b, _c;
16
- return new LinkerEnvironment(fileSystem, logger, host, factory, {
17
- sourceMapping: (_a = options.sourceMapping) !== null && _a !== void 0 ? _a : DEFAULT_LINKER_OPTIONS.sourceMapping,
18
- linkerJitMode: (_b = options.linkerJitMode) !== null && _b !== void 0 ? _b : DEFAULT_LINKER_OPTIONS.linkerJitMode,
19
- unknownDeclarationVersionHandling: (_c = options.unknownDeclarationVersionHandling) !== null && _c !== void 0 ? _c : DEFAULT_LINKER_OPTIONS.unknownDeclarationVersionHandling,
20
- });
21
- }
22
- }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2VyX2Vudmlyb25tZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL2xpbmtlci9zcmMvZmlsZV9saW5rZXIvbGlua2VyX2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBSS9ELE9BQU8sRUFBQyxzQkFBc0IsRUFBZ0IsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRXhDLE1BQU0sT0FBTyxpQkFBaUI7SUFLNUIsWUFDYSxVQUE4QixFQUFXLE1BQWMsRUFDdkQsSUFBMEIsRUFBVyxPQUE0QyxFQUNqRixPQUFzQjtRQUZ0QixlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQUFXLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDdkQsU0FBSSxHQUFKLElBQUksQ0FBc0I7UUFBVyxZQUFPLEdBQVAsT0FBTyxDQUFxQztRQUNqRixZQUFPLEdBQVAsT0FBTyxDQUFlO1FBUDFCLGVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBMEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLHFCQUFnQixHQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUt6RCxDQUFDO0lBRXZDLE1BQU0sQ0FBQyxNQUFNLENBQ1QsVUFBOEIsRUFBRSxNQUFjLEVBQUUsSUFBMEIsRUFDMUUsT0FBNEMsRUFDNUMsT0FBK0I7O1FBQ2pDLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7WUFDOUQsYUFBYSxFQUFFLE1BQUEsT0FBTyxDQUFDLGFBQWEsbUNBQUksc0JBQXNCLENBQUMsYUFBYTtZQUM1RSxhQUFhLEVBQUUsTUFBQSxPQUFPLENBQUMsYUFBYSxtQ0FBSSxzQkFBc0IsQ0FBQyxhQUFhO1lBQzVFLGlDQUFpQyxFQUFFLE1BQUEsT0FBTyxDQUFDLGlDQUFpQyxtQ0FDeEUsc0JBQXNCLENBQUMsaUNBQWlDO1NBQzdELENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtSZWFkb25seUZpbGVTeXN0ZW19IGZyb20gJy4uLy4uLy4uL3NyYy9uZ3RzYy9maWxlX3N5c3RlbSc7XG5pbXBvcnQge0xvZ2dlcn0gZnJvbSAnLi4vLi4vLi4vc3JjL25ndHNjL2xvZ2dpbmcnO1xuaW1wb3J0IHtTb3VyY2VGaWxlTG9hZGVyfSBmcm9tICcuLi8uLi8uLi9zcmMvbmd0c2Mvc291cmNlbWFwcyc7XG5pbXBvcnQge0FzdEZhY3Rvcnl9IGZyb20gJy4uLy4uLy4uL3NyYy9uZ3RzYy90cmFuc2xhdG9yJztcblxuaW1wb3J0IHtBc3RIb3N0fSBmcm9tICcuLi9hc3QvYXN0X2hvc3QnO1xuaW1wb3J0IHtERUZBVUxUX0xJTktFUl9PUFRJT05TLCBMaW5rZXJPcHRpb25zfSBmcm9tICcuL2xpbmtlcl9vcHRpb25zJztcbmltcG9ydCB7VHJhbnNsYXRvcn0gZnJvbSAnLi90cmFuc2xhdG9yJztcblxuZXhwb3J0IGNsYXNzIExpbmtlckVudmlyb25tZW50PFRTdGF0ZW1lbnQsIFRFeHByZXNzaW9uPiB7XG4gIHJlYWRvbmx5IHRyYW5zbGF0b3IgPSBuZXcgVHJhbnNsYXRvcjxUU3RhdGVtZW50LCBURXhwcmVzc2lvbj4odGhpcy5mYWN0b3J5KTtcbiAgcmVhZG9ubHkgc291cmNlRmlsZUxvYWRlciA9XG4gICAgICB0aGlzLm9wdGlvbnMuc291cmNlTWFwcGluZyA/IG5ldyBTb3VyY2VGaWxlTG9hZGVyKHRoaXMuZmlsZVN5c3RlbSwgdGhpcy5sb2dnZXIsIHt9KSA6IG51bGw7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICAgIHJlYWRvbmx5IGZpbGVTeXN0ZW06IFJlYWRvbmx5RmlsZVN5c3RlbSwgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXIsXG4gICAgICByZWFkb25seSBob3N0OiBBc3RIb3N0PFRFeHByZXNzaW9uPiwgcmVhZG9ubHkgZmFjdG9yeTogQXN0RmFjdG9yeTxUU3RhdGVtZW50LCBURXhwcmVzc2lvbj4sXG4gICAgICByZWFkb25seSBvcHRpb25zOiBMaW5rZXJPcHRpb25zKSB7fVxuXG4gIHN0YXRpYyBjcmVhdGU8VFN0YXRlbWVudCwgVEV4cHJlc3Npb24+KFxuICAgICAgZmlsZVN5c3RlbTogUmVhZG9ubHlGaWxlU3lzdGVtLCBsb2dnZXI6IExvZ2dlciwgaG9zdDogQXN0SG9zdDxURXhwcmVzc2lvbj4sXG4gICAgICBmYWN0b3J5OiBBc3RGYWN0b3J5PFRTdGF0ZW1lbnQsIFRFeHByZXNzaW9uPixcbiAgICAgIG9wdGlvbnM6IFBhcnRpYWw8TGlua2VyT3B0aW9ucz4pOiBMaW5rZXJFbnZpcm9ubWVudDxUU3RhdGVtZW50LCBURXhwcmVzc2lvbj4ge1xuICAgIHJldHVybiBuZXcgTGlua2VyRW52aXJvbm1lbnQoZmlsZVN5c3RlbSwgbG9nZ2VyLCBob3N0LCBmYWN0b3J5LCB7XG4gICAgICBzb3VyY2VNYXBwaW5nOiBvcHRpb25zLnNvdXJjZU1hcHBpbmcgPz8gREVGQVVMVF9MSU5LRVJfT1BUSU9OUy5zb3VyY2VNYXBwaW5nLFxuICAgICAgbGlua2VySml0TW9kZTogb3B0aW9ucy5saW5rZXJKaXRNb2RlID8/IERFRkFVTFRfTElOS0VSX09QVElPTlMubGlua2VySml0TW9kZSxcbiAgICAgIHVua25vd25EZWNsYXJhdGlvblZlcnNpb25IYW5kbGluZzogb3B0aW9ucy51bmtub3duRGVjbGFyYXRpb25WZXJzaW9uSGFuZGxpbmcgPz9cbiAgICAgICAgICBERUZBVUxUX0xJTktFUl9PUFRJT05TLnVua25vd25EZWNsYXJhdGlvblZlcnNpb25IYW5kbGluZyxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,16 +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 default linker options to use if properties are not provided.
10
- */
11
- export const DEFAULT_LINKER_OPTIONS = {
12
- sourceMapping: true,
13
- linkerJitMode: false,
14
- unknownDeclarationVersionHandling: 'error',
15
- };
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2VyX29wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL3NyYy9maWxlX2xpbmtlci9saW5rZXJfb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFtQ0g7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBa0I7SUFDbkQsYUFBYSxFQUFFLElBQUk7SUFDbkIsYUFBYSxFQUFFLEtBQUs7SUFDcEIsaUNBQWlDLEVBQUUsT0FBTztDQUMzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qKlxuICogT3B0aW9ucyB0byBjb25maWd1cmUgdGhlIGxpbmtpbmcgYmVoYXZpb3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlua2VyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVzZSBzb3VyY2UtbWFwcGluZyB0byBjb21wdXRlIHRoZSBvcmlnaW5hbCBzb3VyY2UgZm9yIGV4dGVybmFsIHRlbXBsYXRlcy5cbiAgICogVGhlIGRlZmF1bHQgaXMgYHRydWVgLlxuICAgKi9cbiAgc291cmNlTWFwcGluZzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhpcyBvcHRpb24gdGVsbHMgdGhlIGxpbmtlciB0byBnZW5lcmF0ZSBpbmZvcm1hdGlvbiB1c2VkIGJ5IGEgZG93bnN0cmVhbSBKSVQgY29tcGlsZXIuXG4gICAqXG4gICAqIFNwZWNpZmljYWxseSwgaW4gSklUIG1vZGUsIE5nTW9kdWxlIGRlZmluaXRpb25zIG11c3QgZGVzY3JpYmUgdGhlIGBkZWNsYXJhdGlvbnNgLCBgaW1wb3J0c2AsXG4gICAqIGBleHBvcnRzYCwgZXRjLCB3aGljaCBhcmUgb3RoZXJ3aXNlIG5vdCBuZWVkZWQuXG4gICAqL1xuICBsaW5rZXJKaXRNb2RlOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBIb3cgdG8gaGFuZGxlIGEgc2l0dWF0aW9uIHdoZXJlIGEgcGFydGlhbCBkZWNsYXJhdGlvbiBtYXRjaGVzIG5vbmUgb2YgdGhlIHN1cHBvcnRlZFxuICAgKiBwYXJ0aWFsLWxpbmtlciB2ZXJzaW9ucy5cbiAgICpcbiAgICogLSBgZXJyb3JgIC0gdGhlIHZlcnNpb24gbWlzbWF0Y2ggaXMgYSBmYXRhbCBlcnJvci5cbiAgICogLSBgd2FybmAgLSBhIHdhcm5pbmcgaXMgc2VudCB0byB0aGUgbG9nZ2VyIGJ1dCB0aGUgbW9zdCByZWNlbnQgcGFydGlhbC1saW5rZXJcbiAgICogICB3aWxsIGF0dGVtcHQgdG8gcHJvY2VzcyB0aGUgZGVjbGFyYXRpb24gYW55d2F5LlxuICAgKiAtIGBpZ25vcmVgIC0gdGhlIG1vc3QgcmVjZW50IHBhcnRpYWwtbGlua2VyIHdpbGwsIHNpbGVudGx5LCBhdHRlbXB0IHRvIHByb2Nlc3NcbiAgICogICB0aGUgZGVjbGFyYXRpb24uXG4gICAqXG4gICAqIFRoZSBkZWZhdWx0IGlzIGBlcnJvcmAuXG4gICAqL1xuICB1bmtub3duRGVjbGFyYXRpb25WZXJzaW9uSGFuZGxpbmc6ICdpZ25vcmUnfCd3YXJuJ3wnZXJyb3InO1xufVxuXG4vKipcbiAqIFRoZSBkZWZhdWx0IGxpbmtlciBvcHRpb25zIHRvIHVzZSBpZiBwcm9wZXJ0aWVzIGFyZSBub3QgcHJvdmlkZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0xJTktFUl9PUFRJT05TOiBMaW5rZXJPcHRpb25zID0ge1xuICBzb3VyY2VNYXBwaW5nOiB0cnVlLFxuICBsaW5rZXJKaXRNb2RlOiBmYWxzZSxcbiAgdW5rbm93bkRlY2xhcmF0aW9uVmVyc2lvbkhhbmRsaW5nOiAnZXJyb3InLFxufTtcbiJdfQ==
@@ -1,27 +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 { declarationFunctions } from './partial_linkers/partial_linker_selector';
9
- /**
10
- * Determines if the provided source file may need to be processed by the linker, i.e. whether it
11
- * potentially contains any declarations. If true is returned, then the source file should be
12
- * processed by the linker as it may contain declarations that need to be fully compiled. If false
13
- * is returned, parsing and processing of the source file can safely be skipped to improve
14
- * performance.
15
- *
16
- * This function may return true even for source files that don't actually contain any declarations
17
- * that need to be compiled.
18
- *
19
- * @param path the absolute path of the source file for which to determine whether linking may be
20
- * needed.
21
- * @param source the source file content as a string.
22
- * @returns whether the source file may contain declarations that need to be linked.
23
- */
24
- export function needsLinking(path, source) {
25
- return declarationFunctions.some(fn => source.includes(fn));
26
- }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVlZHNfbGlua2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9saW5rZXIvc3JjL2ZpbGVfbGlua2VyL25lZWRzX2xpbmtpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFFL0U7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLElBQVksRUFBRSxNQUFjO0lBQ3ZELE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtkZWNsYXJhdGlvbkZ1bmN0aW9uc30gZnJvbSAnLi9wYXJ0aWFsX2xpbmtlcnMvcGFydGlhbF9saW5rZXJfc2VsZWN0b3InO1xuXG4vKipcbiAqIERldGVybWluZXMgaWYgdGhlIHByb3ZpZGVkIHNvdXJjZSBmaWxlIG1heSBuZWVkIHRvIGJlIHByb2Nlc3NlZCBieSB0aGUgbGlua2VyLCBpLmUuIHdoZXRoZXIgaXRcbiAqIHBvdGVudGlhbGx5IGNvbnRhaW5zIGFueSBkZWNsYXJhdGlvbnMuIElmIHRydWUgaXMgcmV0dXJuZWQsIHRoZW4gdGhlIHNvdXJjZSBmaWxlIHNob3VsZCBiZVxuICogcHJvY2Vzc2VkIGJ5IHRoZSBsaW5rZXIgYXMgaXQgbWF5IGNvbnRhaW4gZGVjbGFyYXRpb25zIHRoYXQgbmVlZCB0byBiZSBmdWxseSBjb21waWxlZC4gSWYgZmFsc2VcbiAqIGlzIHJldHVybmVkLCBwYXJzaW5nIGFuZCBwcm9jZXNzaW5nIG9mIHRoZSBzb3VyY2UgZmlsZSBjYW4gc2FmZWx5IGJlIHNraXBwZWQgdG8gaW1wcm92ZVxuICogcGVyZm9ybWFuY2UuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBtYXkgcmV0dXJuIHRydWUgZXZlbiBmb3Igc291cmNlIGZpbGVzIHRoYXQgZG9uJ3QgYWN0dWFsbHkgY29udGFpbiBhbnkgZGVjbGFyYXRpb25zXG4gKiB0aGF0IG5lZWQgdG8gYmUgY29tcGlsZWQuXG4gKlxuICogQHBhcmFtIHBhdGggdGhlIGFic29sdXRlIHBhdGggb2YgdGhlIHNvdXJjZSBmaWxlIGZvciB3aGljaCB0byBkZXRlcm1pbmUgd2hldGhlciBsaW5raW5nIG1heSBiZVxuICogbmVlZGVkLlxuICogQHBhcmFtIHNvdXJjZSB0aGUgc291cmNlIGZpbGUgY29udGVudCBhcyBhIHN0cmluZy5cbiAqIEByZXR1cm5zIHdoZXRoZXIgdGhlIHNvdXJjZSBmaWxlIG1heSBjb250YWluIGRlY2xhcmF0aW9ucyB0aGF0IG5lZWQgdG8gYmUgbGlua2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbmVlZHNMaW5raW5nKHBhdGg6IHN0cmluZywgc291cmNlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGRlY2xhcmF0aW9uRnVuY3Rpb25zLnNvbWUoZm4gPT4gc291cmNlLmluY2x1ZGVzKGZuKSk7XG59XG4iXX0=
@@ -1,29 +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 { compileClassMetadata } from '@angular/compiler';
9
- /**
10
- * A `PartialLinker` that is designed to process `ɵɵngDeclareClassMetadata()` call expressions.
11
- */
12
- export class PartialClassMetadataLinkerVersion1 {
13
- linkPartialDeclaration(constantPool, metaObj) {
14
- const meta = toR3ClassMetadata(metaObj);
15
- return compileClassMetadata(meta);
16
- }
17
- }
18
- /**
19
- * Derives the `R3ClassMetadata` structure from the AST object.
20
- */
21
- export function toR3ClassMetadata(metaObj) {
22
- return {
23
- type: metaObj.getOpaque('type'),
24
- decorators: metaObj.getOpaque('decorators'),
25
- ctorParameters: metaObj.has('ctorParameters') ? metaObj.getOpaque('ctorParameters') : null,
26
- propDecorators: metaObj.has('propDecorators') ? metaObj.getOpaque('propDecorators') : null,
27
- };
28
- }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGlhbF9jbGFzc19tZXRhZGF0YV9saW5rZXJfMS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9saW5rZXIvc3JjL2ZpbGVfbGlua2VyL3BhcnRpYWxfbGlua2Vycy9wYXJ0aWFsX2NsYXNzX21ldGFkYXRhX2xpbmtlcl8xLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBQyxvQkFBb0IsRUFBOEUsTUFBTSxtQkFBbUIsQ0FBQztBQU9wSTs7R0FFRztBQUNILE1BQU0sT0FBTyxrQ0FBa0M7SUFDN0Msc0JBQXNCLENBQ2xCLFlBQTBCLEVBQzFCLE9BQXFEO1FBQ3ZELE1BQU0sSUFBSSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQzdCLE9BQXVEO0lBQ3pELE9BQU87UUFDTCxJQUFJLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDL0IsVUFBVSxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1FBQzNDLGNBQWMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtRQUMxRixjQUFjLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7S0FDM0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7Y29tcGlsZUNsYXNzTWV0YWRhdGEsIENvbnN0YW50UG9vbCwgUjNDbGFzc01ldGFkYXRhLCBSM0RlY2xhcmVDbGFzc01ldGFkYXRhLCBSM1BhcnRpYWxEZWNsYXJhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0ICogYXMgbyBmcm9tICdAYW5ndWxhci9jb21waWxlci9zcmMvb3V0cHV0L291dHB1dF9hc3QnO1xuXG5pbXBvcnQge0FzdE9iamVjdH0gZnJvbSAnLi4vLi4vYXN0L2FzdF92YWx1ZSc7XG5cbmltcG9ydCB7UGFydGlhbExpbmtlcn0gZnJvbSAnLi9wYXJ0aWFsX2xpbmtlcic7XG5cbi8qKlxuICogQSBgUGFydGlhbExpbmtlcmAgdGhhdCBpcyBkZXNpZ25lZCB0byBwcm9jZXNzIGDJtcm1bmdEZWNsYXJlQ2xhc3NNZXRhZGF0YSgpYCBjYWxsIGV4cHJlc3Npb25zLlxuICovXG5leHBvcnQgY2xhc3MgUGFydGlhbENsYXNzTWV0YWRhdGFMaW5rZXJWZXJzaW9uMTxURXhwcmVzc2lvbj4gaW1wbGVtZW50cyBQYXJ0aWFsTGlua2VyPFRFeHByZXNzaW9uPiB7XG4gIGxpbmtQYXJ0aWFsRGVjbGFyYXRpb24oXG4gICAgICBjb25zdGFudFBvb2w6IENvbnN0YW50UG9vbCxcbiAgICAgIG1ldGFPYmo6IEFzdE9iamVjdDxSM1BhcnRpYWxEZWNsYXJhdGlvbiwgVEV4cHJlc3Npb24+KTogby5FeHByZXNzaW9uIHtcbiAgICBjb25zdCBtZXRhID0gdG9SM0NsYXNzTWV0YWRhdGEobWV0YU9iaik7XG4gICAgcmV0dXJuIGNvbXBpbGVDbGFzc01ldGFkYXRhKG1ldGEpO1xuICB9XG59XG5cbi8qKlxuICogRGVyaXZlcyB0aGUgYFIzQ2xhc3NNZXRhZGF0YWAgc3RydWN0dXJlIGZyb20gdGhlIEFTVCBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1IzQ2xhc3NNZXRhZGF0YTxURXhwcmVzc2lvbj4oXG4gICAgbWV0YU9iajogQXN0T2JqZWN0PFIzRGVjbGFyZUNsYXNzTWV0YWRhdGEsIFRFeHByZXNzaW9uPik6IFIzQ2xhc3NNZXRhZGF0YSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogbWV0YU9iai5nZXRPcGFxdWUoJ3R5cGUnKSxcbiAgICBkZWNvcmF0b3JzOiBtZXRhT2JqLmdldE9wYXF1ZSgnZGVjb3JhdG9ycycpLFxuICAgIGN0b3JQYXJhbWV0ZXJzOiBtZXRhT2JqLmhhcygnY3RvclBhcmFtZXRlcnMnKSA/IG1ldGFPYmouZ2V0T3BhcXVlKCdjdG9yUGFyYW1ldGVycycpIDogbnVsbCxcbiAgICBwcm9wRGVjb3JhdG9yczogbWV0YU9iai5oYXMoJ3Byb3BEZWNvcmF0b3JzJykgPyBtZXRhT2JqLmdldE9wYXF1ZSgncHJvcERlY29yYXRvcnMnKSA6IG51bGwsXG4gIH07XG59XG4iXX0=
@@ -1,194 +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 { compileComponentFromMetadata, DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig, makeBindingParser, parseTemplate } from '@angular/compiler';
9
- import { ChangeDetectionStrategy, ViewEncapsulation } from '@angular/compiler/src/core';
10
- import { FatalLinkerError } from '../../fatal_linker_error';
11
- import { toR3DirectiveMeta } from './partial_directive_linker_1';
12
- import { extractForwardRef } from './util';
13
- /**
14
- * A `PartialLinker` that is designed to process `ɵɵngDeclareComponent()` call expressions.
15
- */
16
- export class PartialComponentLinkerVersion1 {
17
- constructor(getSourceFile, sourceUrl, code) {
18
- this.getSourceFile = getSourceFile;
19
- this.sourceUrl = sourceUrl;
20
- this.code = code;
21
- }
22
- linkPartialDeclaration(constantPool, metaObj) {
23
- const meta = this.toR3ComponentMeta(metaObj);
24
- const def = compileComponentFromMetadata(meta, constantPool, makeBindingParser());
25
- return def.expression;
26
- }
27
- /**
28
- * This function derives the `R3ComponentMetadata` from the provided AST object.
29
- */
30
- toR3ComponentMeta(metaObj) {
31
- const interpolation = parseInterpolationConfig(metaObj);
32
- const templateSource = metaObj.getValue('template');
33
- const isInline = metaObj.has('isInline') ? metaObj.getBoolean('isInline') : false;
34
- const templateInfo = this.getTemplateInfo(templateSource, isInline);
35
- const template = parseTemplate(templateInfo.code, templateInfo.sourceUrl, {
36
- escapedString: templateInfo.isEscaped,
37
- interpolationConfig: interpolation,
38
- range: templateInfo.range,
39
- enableI18nLegacyMessageIdFormat: false,
40
- preserveWhitespaces: metaObj.has('preserveWhitespaces') ? metaObj.getBoolean('preserveWhitespaces') : false,
41
- // We normalize line endings if the template is was inline.
42
- i18nNormalizeLineEndingsInICUs: isInline,
43
- });
44
- if (template.errors !== null) {
45
- const errors = template.errors.map(err => err.toString()).join('\n');
46
- throw new FatalLinkerError(templateSource.expression, `Errors found in the template:\n${errors}`);
47
- }
48
- let declarationListEmitMode = 0 /* Direct */;
49
- const collectUsedDirectives = (directives) => {
50
- return directives.map(directive => {
51
- const directiveExpr = directive.getObject();
52
- const type = directiveExpr.getValue('type');
53
- const selector = directiveExpr.getString('selector');
54
- const { expression: typeExpr, isForwardRef } = extractForwardRef(type);
55
- if (isForwardRef) {
56
- declarationListEmitMode = 1 /* Closure */;
57
- }
58
- return {
59
- type: typeExpr,
60
- selector: selector,
61
- inputs: directiveExpr.has('inputs') ?
62
- directiveExpr.getArray('inputs').map(input => input.getString()) :
63
- [],
64
- outputs: directiveExpr.has('outputs') ?
65
- directiveExpr.getArray('outputs').map(input => input.getString()) :
66
- [],
67
- exportAs: directiveExpr.has('exportAs') ?
68
- directiveExpr.getArray('exportAs').map(exportAs => exportAs.getString()) :
69
- null,
70
- };
71
- });
72
- };
73
- let directives = [];
74
- if (metaObj.has('components')) {
75
- directives.push(...collectUsedDirectives(metaObj.getArray('components')));
76
- }
77
- if (metaObj.has('directives')) {
78
- directives.push(...collectUsedDirectives(metaObj.getArray('directives')));
79
- }
80
- let pipes = new Map();
81
- if (metaObj.has('pipes')) {
82
- pipes = metaObj.getObject('pipes').toMap(pipe => {
83
- const { expression: pipeType, isForwardRef } = extractForwardRef(pipe);
84
- if (isForwardRef) {
85
- declarationListEmitMode = 1 /* Closure */;
86
- }
87
- return pipeType;
88
- });
89
- }
90
- return Object.assign(Object.assign({}, toR3DirectiveMeta(metaObj, this.code, this.sourceUrl)), { viewProviders: metaObj.has('viewProviders') ? metaObj.getOpaque('viewProviders') : null, template: {
91
- nodes: template.nodes,
92
- ngContentSelectors: template.ngContentSelectors,
93
- }, declarationListEmitMode, styles: metaObj.has('styles') ? metaObj.getArray('styles').map(entry => entry.getString()) :
94
- [], encapsulation: metaObj.has('encapsulation') ?
95
- parseEncapsulation(metaObj.getValue('encapsulation')) :
96
- ViewEncapsulation.Emulated, interpolation, changeDetection: metaObj.has('changeDetection') ?
97
- parseChangeDetectionStrategy(metaObj.getValue('changeDetection')) :
98
- ChangeDetectionStrategy.Default, animations: metaObj.has('animations') ? metaObj.getOpaque('animations') : null, relativeContextFilePath: this.sourceUrl, i18nUseExternalIds: false, pipes,
99
- directives });
100
- }
101
- /**
102
- * Update the range to remove the start and end chars, which should be quotes around the template.
103
- */
104
- getTemplateInfo(templateNode, isInline) {
105
- const range = templateNode.getRange();
106
- if (!isInline) {
107
- // If not marked as inline, then we try to get the template info from the original external
108
- // template file, via source-mapping.
109
- const externalTemplate = this.tryExternalTemplate(range);
110
- if (externalTemplate !== null) {
111
- return externalTemplate;
112
- }
113
- }
114
- // Either the template is marked inline or we failed to find the original external template.
115
- // So just use the literal string from the partially compiled component declaration.
116
- return this.templateFromPartialCode(templateNode, range);
117
- }
118
- tryExternalTemplate(range) {
119
- const sourceFile = this.getSourceFile();
120
- if (sourceFile === null) {
121
- return null;
122
- }
123
- const pos = sourceFile.getOriginalLocation(range.startLine, range.startCol);
124
- // Only interested if the original location is in an "external" template file:
125
- // * the file is different to the current file
126
- // * the file does not end in `.js` or `.ts` (we expect it to be something like `.html`).
127
- // * the range starts at the beginning of the file
128
- if (pos === null || pos.file === this.sourceUrl || /\.[jt]s$/.test(pos.file) ||
129
- pos.line !== 0 || pos.column !== 0) {
130
- return null;
131
- }
132
- const templateContents = sourceFile.sources.find(src => (src === null || src === void 0 ? void 0 : src.sourcePath) === pos.file).contents;
133
- return {
134
- code: templateContents,
135
- sourceUrl: pos.file,
136
- range: { startPos: 0, startLine: 0, startCol: 0, endPos: templateContents.length },
137
- isEscaped: false,
138
- };
139
- }
140
- templateFromPartialCode(templateNode, { startPos, endPos, startLine, startCol }) {
141
- if (!/["'`]/.test(this.code[startPos]) || this.code[startPos] !== this.code[endPos - 1]) {
142
- throw new FatalLinkerError(templateNode.expression, `Expected the template string to be wrapped in quotes but got: ${this.code.substring(startPos, endPos)}`);
143
- }
144
- return {
145
- code: this.code,
146
- sourceUrl: this.sourceUrl,
147
- range: { startPos: startPos + 1, endPos: endPos - 1, startLine, startCol: startCol + 1 },
148
- isEscaped: true,
149
- };
150
- }
151
- }
152
- /**
153
- * Extract an `InterpolationConfig` from the component declaration.
154
- */
155
- function parseInterpolationConfig(metaObj) {
156
- if (!metaObj.has('interpolation')) {
157
- return DEFAULT_INTERPOLATION_CONFIG;
158
- }
159
- const interpolationExpr = metaObj.getValue('interpolation');
160
- const values = interpolationExpr.getArray().map(entry => entry.getString());
161
- if (values.length !== 2) {
162
- throw new FatalLinkerError(interpolationExpr.expression, 'Unsupported interpolation config, expected an array containing exactly two strings');
163
- }
164
- return InterpolationConfig.fromArray(values);
165
- }
166
- /**
167
- * Determines the `ViewEncapsulation` mode from the AST value's symbol name.
168
- */
169
- function parseEncapsulation(encapsulation) {
170
- const symbolName = encapsulation.getSymbolName();
171
- if (symbolName === null) {
172
- throw new FatalLinkerError(encapsulation.expression, 'Expected encapsulation to have a symbol name');
173
- }
174
- const enumValue = ViewEncapsulation[symbolName];
175
- if (enumValue === undefined) {
176
- throw new FatalLinkerError(encapsulation.expression, 'Unsupported encapsulation');
177
- }
178
- return enumValue;
179
- }
180
- /**
181
- * Determines the `ChangeDetectionStrategy` from the AST value's symbol name.
182
- */
183
- function parseChangeDetectionStrategy(changeDetectionStrategy) {
184
- const symbolName = changeDetectionStrategy.getSymbolName();
185
- if (symbolName === null) {
186
- throw new FatalLinkerError(changeDetectionStrategy.expression, 'Expected change detection strategy to have a symbol name');
187
- }
188
- const enumValue = ChangeDetectionStrategy[symbolName];
189
- if (enumValue === undefined) {
190
- throw new FatalLinkerError(changeDetectionStrategy.expression, 'Unsupported change detection strategy');
191
- }
192
- return enumValue;
193
- }
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGlhbF9jb21wb25lbnRfbGlua2VyXzEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL3NyYy9maWxlX2xpbmtlci9wYXJ0aWFsX2xpbmtlcnMvcGFydGlhbF9jb21wb25lbnRfbGlua2VyXzEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsT0FBTyxFQUFDLDRCQUE0QixFQUF5Qyw0QkFBNEIsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQWlJLE1BQU0sbUJBQW1CLENBQUM7QUFDM1QsT0FBTyxFQUFDLHVCQUF1QixFQUFFLGlCQUFpQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFNdEYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFHMUQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFFL0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sUUFBUSxDQUFDO0FBRXpDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLDhCQUE4QjtJQUV6QyxZQUNxQixhQUE4QixFQUFVLFNBQXlCLEVBQzFFLElBQVk7UUFESCxrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQUMxRSxTQUFJLEdBQUosSUFBSSxDQUFRO0lBQUcsQ0FBQztJQUU1QixzQkFBc0IsQ0FDbEIsWUFBMEIsRUFDMUIsT0FBcUQ7UUFDdkQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLE1BQU0sR0FBRyxHQUFHLDRCQUE0QixDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBQ2xGLE9BQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7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QUFVLEtBQUssSUFBSSxFQUFFO1FBQ3ZCLE1BQU0sSUFBSSxnQkFBZ0IsQ0FDdEIsdUJBQXVCLENBQUMsVUFBVSxFQUNsQywwREFBMEQsQ0FBQyxDQUFDO0tBQ2pFO0lBQ0QsTUFBTSxTQUFTLEdBQUcsdUJBQXVCLENBQUMsVUFBa0QsQ0FBQyxDQUFDO0lBQzlGLElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRTtRQUMzQixNQUFNLElBQUksZ0JBQWdCLENBQ3RCLHVCQUF1QixDQUFDLFVBQVUsRUFBRSx1Q0FBdUMsQ0FBQyxDQUFDO0tBQ2xGO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtjb21waWxlQ29tcG9uZW50RnJvbU1ldGFkYXRhLCBDb25zdGFudFBvb2wsIERlY2xhcmF0aW9uTGlzdEVtaXRNb2RlLCBERUZBVUxUX0lOVEVSUE9MQVRJT05fQ09ORklHLCBJbnRlcnBvbGF0aW9uQ29uZmlnLCBtYWtlQmluZGluZ1BhcnNlciwgcGFyc2VUZW1wbGF0ZSwgUjNDb21wb25lbnRNZXRhZGF0YSwgUjNEZWNsYXJlQ29tcG9uZW50TWV0YWRhdGEsIFIzRGVjbGFyZVVzZWREaXJlY3RpdmVNZXRhZGF0YSwgUjNQYXJ0aWFsRGVjbGFyYXRpb24sIFIzVXNlZERpcmVjdGl2ZU1ldGFkYXRhfSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXIvc3JjL2NvcmUnO1xuaW1wb3J0ICogYXMgbyBmcm9tICdAYW5ndWxhci9jb21waWxlci9zcmMvb3V0cHV0L291dHB1dF9hc3QnO1xuXG5pbXBvcnQge0Fic29sdXRlRnNQYXRofSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvbmd0c2MvZmlsZV9zeXN0ZW0nO1xuaW1wb3J0IHtSYW5nZX0gZnJvbSAnLi4vLi4vYXN0L2FzdF9ob3N0JztcbmltcG9ydCB7QXN0T2JqZWN0LCBBc3RWYWx1ZX0gZnJvbSAnLi4vLi4vYXN0L2FzdF92YWx1ZSc7XG5pbXBvcnQge0ZhdGFsTGlua2VyRXJyb3J9IGZyb20gJy4uLy4uL2ZhdGFsX2xpbmtlcl9lcnJvcic7XG5pbXBvcnQge0dldFNvdXJjZUZpbGVGbn0gZnJvbSAnLi4vZ2V0X3NvdXJjZV9maWxlJztcblxuaW1wb3J0IHt0b1IzRGlyZWN0aXZlTWV0YX0gZnJvbSAnLi9wYXJ0aWFsX2RpcmVjdGl2ZV9saW5rZXJfMSc7XG5pbXBvcnQge1BhcnRpYWxMaW5rZXJ9IGZyb20gJy4vcGFydGlhbF9saW5rZXInO1xuaW1wb3J0IHtleHRyYWN0Rm9yd2FyZFJlZn0gZnJvbSAnLi91dGlsJztcblxuLyoqXG4gKiBBIGBQYXJ0aWFsTGlua2VyYCB0aGF0IGlzIGRlc2lnbmVkIHRvIHByb2Nlc3MgYMm1ybVuZ0RlY2xhcmVDb21wb25lbnQoKWAgY2FsbCBleHByZXNzaW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIFBhcnRpYWxDb21wb25lbnRMaW5rZXJWZXJzaW9uMTxUU3RhdGVtZW50LCBURXhwcmVzc2lvbj4gaW1wbGVtZW50c1xuICAgIFBhcnRpYWxMaW5rZXI8VEV4cHJlc3Npb24+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGdldFNvdXJjZUZpbGU6IEdldFNvdXJjZUZpbGVGbiwgcHJpdmF0ZSBzb3VyY2VVcmw6IEFic29sdXRlRnNQYXRoLFxuICAgICAgcHJpdmF0ZSBjb2RlOiBzdHJpbmcpIHt9XG5cbiAgbGlua1BhcnRpYWxEZWNsYXJhdGlvbihcbiAgICAgIGNvbnN0YW50UG9vbDogQ29uc3RhbnRQb29sLFxuICAgICAgbWV0YU9iajogQXN0T2JqZWN0PFIzUGFydGlhbERlY2xhcmF0aW9uLCBURXhwcmVzc2lvbj4pOiBvLkV4cHJlc3Npb24ge1xuICAgIGNvbnN0IG1ldGEgPSB0aGlzLnRvUjNDb21wb25lbnRNZXRhKG1ldGFPYmopO1xuICAgIGNvbnN0IGRlZiA9IGNvbXBpbGVDb21wb25lbnRGcm9tTWV0YWRhdGEobWV0YSwgY29uc3RhbnRQb29sLCBtYWtlQmluZGluZ1BhcnNlcigpKTtcbiAgICByZXR1cm4gZGVmLmV4cHJlc3Npb247XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiBkZXJpdmVzIHRoZSBgUjNDb21wb25lbnRNZXRhZGF0YWAgZnJvbSB0aGUgcHJvdmlkZWQgQVNUIG9iamVjdC5cbiAgICovXG4gIHByaXZhdGUgdG9SM0NvbXBvbmVudE1ldGEobWV0YU9iajogQXN0T2JqZWN0PFIzRGVjbGFyZUNvbXBvbmVudE1ldGFkYXRhLCBURXhwcmVzc2lvbj4pOlxuICAgICAgUjNDb21wb25lbnRNZXRhZGF0YSB7XG4gICAgY29uc3QgaW50ZXJwb2xhdGlvbiA9IHBhcnNlSW50ZXJwb2xhdGlvbkNvbmZpZyhtZXRhT2JqKTtcbiAgICBjb25zdCB0ZW1wbGF0ZVNvdXJjZSA9IG1ldGFPYmouZ2V0VmFsdWUoJ3RlbXBsYXRlJyk7XG4gICAgY29uc3QgaXNJbmxpbmUgPSBtZXRhT2JqLmhhcygnaXNJbmxpbmUnKSA/IG1ldGFPYmouZ2V0Qm9vbGVhbignaXNJbmxpbmUnKSA6IGZhbHNlO1xuICAgIGNvbnN0IHRlbXBsYXRlSW5mbyA9IHRoaXMuZ2V0VGVtcGxhdGVJbmZvKHRlbXBsYXRlU291cmNlLCBpc0lubGluZSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZSA9IHBhcnNlVGVtcGxhdGUodGVtcGxhdGVJbmZvLmNvZGUsIHRlbXBsYXRlSW5mby5zb3VyY2VVcmwsIHtcbiAgICAgIGVzY2FwZWRTdHJpbmc6IHRlbXBsYXRlSW5mby5pc0VzY2FwZWQsXG4gICAgICBpbnRlcnBvbGF0aW9uQ29uZmlnOiBpbnRlcnBvbGF0aW9uLFxuICAgICAgcmFuZ2U6IHRlbXBsYXRlSW5mby5yYW5nZSxcbiAgICAgIGVuYWJsZUkxOG5MZWdhY3lNZXNzYWdlSWRGb3JtYXQ6IGZhbHNlLFxuICAgICAgcHJlc2VydmVXaGl0ZXNwYWNlczpcbiAgICAgICAgICBtZXRhT2JqLmhhcygncHJlc2VydmVXaGl0ZXNwYWNlcycpID8gbWV0YU9iai5nZXRCb29sZWFuKCdwcmVzZXJ2ZVdoaXRlc3BhY2VzJykgOiBmYWxzZSxcbiAgICAgIC8vIFdlIG5vcm1hbGl6ZSBsaW5lIGVuZGluZ3MgaWYgdGhlIHRlbXBsYXRlIGlzIHdhcyBpbmxpbmUuXG4gICAgICBpMThuTm9ybWFsaXplTGluZUVuZGluZ3NJbklDVXM6IGlzSW5saW5lLFxuICAgIH0pO1xuICAgIGlmICh0ZW1wbGF0ZS5lcnJvcnMgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGVycm9ycyA9IHRlbXBsYXRlLmVycm9ycy5tYXAoZXJyID0+IGVyci50b1N0cmluZygpKS5qb2luKCdcXG4nKTtcbiAgICAgIHRocm93IG5ldyBGYXRhbExpbmtlckVycm9yKFxuICAgICAgICAgIHRlbXBsYXRlU291cmNlLmV4cHJlc3Npb24sIGBFcnJvcnMgZm91bmQgaW4gdGhlIHRlbXBsYXRlOlxcbiR7ZXJyb3JzfWApO1xuICAgIH1cblxuICAgIGxldCBkZWNsYXJhdGlvbkxpc3RFbWl0TW9kZSA9IERlY2xhcmF0aW9uTGlzdEVtaXRNb2RlLkRpcmVjdDtcblxuICAgIGNvbnN0IGNvbGxlY3RVc2VkRGlyZWN0aXZlcyA9XG4gICAgICAgIChkaXJlY3RpdmVzOiBBc3RWYWx1ZTxSM0RlY2xhcmVVc2VkRGlyZWN0aXZlTWV0YWRhdGEsIFRFeHByZXNzaW9uPltdKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGRpcmVjdGl2ZXMubWFwKGRpcmVjdGl2ZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkaXJlY3RpdmVFeHByID0gZGlyZWN0aXZlLmdldE9iamVjdCgpO1xuICAgICAgICAgICAgY29uc3QgdHlwZSA9IGRpcmVjdGl2ZUV4cHIuZ2V0VmFsdWUoJ3R5cGUnKTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdG9yID0gZGlyZWN0aXZlRXhwci5nZXRTdHJpbmcoJ3NlbGVjdG9yJyk7XG5cbiAgICAgICAgICAgIGNvbnN0IHtleHByZXNzaW9uOiB0eXBlRXhwciwgaXNGb3J3YXJkUmVmfSA9IGV4dHJhY3RGb3J3YXJkUmVmKHR5cGUpO1xuICAgICAgICAgICAgaWYgKGlzRm9yd2FyZFJlZikge1xuICAgICAgICAgICAgICBkZWNsYXJhdGlvbkxpc3RFbWl0TW9kZSA9IERlY2xhcmF0aW9uTGlzdEVtaXRNb2RlLkNsb3N1cmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHR5cGU6IHR5cGVFeHByLFxuICAgICAgICAgICAgICBzZWxlY3Rvcjogc2VsZWN0b3IsXG4gICAgICAgICAgICAgIGlucHV0czogZGlyZWN0aXZlRXhwci5oYXMoJ2lucHV0cycpID9cbiAgICAgICAgICAgICAgICAgIGRpcmVjdGl2ZUV4cHIuZ2V0QXJyYXkoJ2lucHV0cycpLm1hcChpbnB1dCA9PiBpbnB1dC5nZXRTdHJpbmcoKSkgOlxuICAgICAgICAgICAgICAgICAgW10sXG4gICAgICAgICAgICAgIG91dHB1dHM6IGRpcmVjdGl2ZUV4cHIuaGFzKCdvdXRwdXRzJykgP1xuICAgICAgICAgICAgICAgICAgZGlyZWN0aXZlRXhwci5nZXRBcnJheSgnb3V0cHV0cycpLm1hcChpbnB1dCA9PiBpbnB1dC5nZXRTdHJpbmcoKSkgOlxuICAgICAgICAgICAgICAgICAgW10sXG4gICAgICAgICAgICAgIGV4cG9ydEFzOiBkaXJlY3RpdmVFeHByLmhhcygnZXhwb3J0QXMnKSA/XG4gICAgICAgICAgICAgICAgICBkaXJlY3RpdmVFeHByLmdldEFycmF5KCdleHBvcnRBcycpLm1hcChleHBvcnRBcyA9PiBleHBvcnRBcy5nZXRTdHJpbmcoKSkgOlxuICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICBsZXQgZGlyZWN0aXZlczogUjNVc2VkRGlyZWN0aXZlTWV0YWRhdGFbXSA9IFtdO1xuICAgIGlmIChtZXRhT2JqLmhhcygnY29tcG9uZW50cycpKSB7XG4gICAgICBkaXJlY3RpdmVzLnB1c2goLi4uY29sbGVjdFVzZWREaXJlY3RpdmVzKG1ldGFPYmouZ2V0QXJyYXkoJ2NvbXBvbmVudHMnKSkpO1xuICAgIH1cbiAgICBpZiAobWV0YU9iai5oYXMoJ2RpcmVjdGl2ZXMnKSkge1xuICAgICAgZGlyZWN0aXZlcy5wdXNoKC4uLmNvbGxlY3RVc2VkRGlyZWN0aXZlcyhtZXRhT2JqLmdldEFycmF5KCdkaXJlY3RpdmVzJykpKTtcbiAgICB9XG5cbiAgICBsZXQgcGlwZXMgPSBuZXcgTWFwPHN0cmluZywgby5FeHByZXNzaW9uPigpO1xuICAgIGlmIChtZXRhT2JqLmhhcygncGlwZXMnKSkge1xuICAgICAgcGlwZXMgPSBtZXRhT2JqLmdldE9iamVjdCgncGlwZXMnKS50b01hcChwaXBlID0+IHtcbiAgICAgICAgY29uc3Qge2V4cHJlc3Npb246IHBpcGVUeXBlLCBpc0ZvcndhcmRSZWZ9ID0gZXh0cmFjdEZvcndhcmRSZWYocGlwZSk7XG4gICAgICAgIGlmIChpc0ZvcndhcmRSZWYpIHtcbiAgICAgICAgICBkZWNsYXJhdGlvbkxpc3RFbWl0TW9kZSA9IERlY2xhcmF0aW9uTGlzdEVtaXRNb2RlLkNsb3N1cmU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBpcGVUeXBlO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRvUjNEaXJlY3RpdmVNZXRhKG1ldGFPYmosIHRoaXMuY29kZSwgdGhpcy5zb3VyY2VVcmwpLFxuICAgICAgdmlld1Byb3ZpZGVyczogbWV0YU9iai5oYXMoJ3ZpZXdQcm92aWRlcnMnKSA/IG1ldGFPYmouZ2V0T3BhcXVlKCd2aWV3UHJvdmlkZXJzJykgOiBudWxsLFxuICAgICAgdGVtcGxhdGU6IHtcbiAgICAgICAgbm9kZXM6IHRlbXBsYXRlLm5vZGVzLFxuICAgICAgICBuZ0NvbnRlbnRTZWxlY3RvcnM6IHRlbXBsYXRlLm5nQ29udGVudFNlbGVjdG9ycyxcbiAgICAgIH0sXG4gICAgICBkZWNsYXJhdGlvbkxpc3RFbWl0TW9kZSxcbiAgICAgIHN0eWxlczogbWV0YU9iai5oYXMoJ3N0eWxlcycpID8gbWV0YU9iai5nZXRBcnJheSgnc3R5bGVzJykubWFwKGVudHJ5ID0+IGVudHJ5LmdldFN0cmluZygpKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdLFxuICAgICAgZW5jYXBzdWxhdGlvbjogbWV0YU9iai5oYXMoJ2VuY2Fwc3VsYXRpb24nKSA/XG4gICAgICAgICAgcGFyc2VFbmNhcHN1bGF0aW9uKG1ldGFPYmouZ2V0VmFsdWUoJ2VuY2Fwc3VsYXRpb24nKSkgOlxuICAgICAgICAgIFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkLFxuICAgICAgaW50ZXJwb2xhdGlvbixcbiAgICAgIGNoYW5nZURldGVjdGlvbjogbWV0YU9iai5oYXMoJ2NoYW5nZURldGVjdGlvbicpID9cbiAgICAgICAgICBwYXJzZUNoYW5nZURldGVjdGlvblN0cmF0ZWd5KG1ldGFPYmouZ2V0VmFsdWUoJ2NoYW5nZURldGVjdGlvbicpKSA6XG4gICAgICAgICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbiAgICAgIGFuaW1hdGlvbnM6IG1ldGFPYmouaGFzKCdhbmltYXRpb25zJykgPyBtZXRhT2JqLmdldE9wYXF1ZSgnYW5pbWF0aW9ucycpIDogbnVsbCxcbiAgICAgIHJlbGF0aXZlQ29udGV4dEZpbGVQYXRoOiB0aGlzLnNvdXJjZVVybCxcbiAgICAgIGkxOG5Vc2VFeHRlcm5hbElkczogZmFsc2UsXG4gICAgICBwaXBlcyxcbiAgICAgIGRpcmVjdGl2ZXMsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIHJhbmdlIHRvIHJlbW92ZSB0aGUgc3RhcnQgYW5kIGVuZCBjaGFycywgd2hpY2ggc2hvdWxkIGJlIHF1b3RlcyBhcm91bmQgdGhlIHRlbXBsYXRlLlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRUZW1wbGF0ZUluZm8odGVtcGxhdGVOb2RlOiBBc3RWYWx1ZTx1bmtub3duLCBURXhwcmVzc2lvbj4sIGlzSW5saW5lOiBib29sZWFuKTpcbiAgICAgIFRlbXBsYXRlSW5mbyB7XG4gICAgY29uc3QgcmFuZ2UgPSB0ZW1wbGF0ZU5vZGUuZ2V0UmFuZ2UoKTtcblxuICAgIGlmICghaXNJbmxpbmUpIHtcbiAgICAgIC8vIElmIG5vdCBtYXJrZWQgYXMgaW5saW5lLCB0aGVuIHdlIHRyeSB0byBnZXQgdGhlIHRlbXBsYXRlIGluZm8gZnJvbSB0aGUgb3JpZ2luYWwgZXh0ZXJuYWxcbiAgICAgIC8vIHRlbXBsYXRlIGZpbGUsIHZpYSBzb3VyY2UtbWFwcGluZy5cbiAgICAgIGNvbnN0IGV4dGVybmFsVGVtcGxhdGUgPSB0aGlzLnRyeUV4dGVybmFsVGVtcGxhdGUocmFuZ2UpO1xuICAgICAgaWYgKGV4dGVybmFsVGVtcGxhdGUgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGV4dGVybmFsVGVtcGxhdGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRWl0aGVyIHRoZSB0ZW1wbGF0ZSBpcyBtYXJrZWQgaW5saW5lIG9yIHdlIGZhaWxlZCB0byBmaW5kIHRoZSBvcmlnaW5hbCBleHRlcm5hbCB0ZW1wbGF0ZS5cbiAgICAvLyBTbyBqdXN0IHVzZSB0aGUgbGl0ZXJhbCBzdHJpbmcgZnJvbSB0aGUgcGFydGlhbGx5IGNvbXBpbGVkIGNvbXBvbmVudCBkZWNsYXJhdGlvbi5cbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZUZyb21QYXJ0aWFsQ29kZSh0ZW1wbGF0ZU5vZGUsIHJhbmdlKTtcbiAgfVxuXG4gIHByaXZhdGUgdHJ5RXh0ZXJuYWxUZW1wbGF0ZShyYW5nZTogUmFuZ2UpOiBUZW1wbGF0ZUluZm98bnVsbCB7XG4gICAgY29uc3Qgc291cmNlRmlsZSA9IHRoaXMuZ2V0U291cmNlRmlsZSgpO1xuICAgIGlmIChzb3VyY2VGaWxlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBwb3MgPSBzb3VyY2VGaWxlLmdldE9yaWdpbmFsTG9jYXRpb24ocmFuZ2Uuc3RhcnRMaW5lLCByYW5nZS5zdGFydENvbCk7XG4gICAgLy8gT25seSBpbnRlcmVzdGVkIGlmIHRoZSBvcmlnaW5hbCBsb2NhdGlvbiBpcyBpbiBhbiBcImV4dGVybmFsXCIgdGVtcGxhdGUgZmlsZTpcbiAgICAvLyAqIHRoZSBmaWxlIGlzIGRpZmZlcmVudCB0byB0aGUgY3VycmVudCBmaWxlXG4gICAgLy8gKiB0aGUgZmlsZSBkb2VzIG5vdCBlbmQgaW4gYC5qc2Agb3IgYC50c2AgKHdlIGV4cGVjdCBpdCB0byBiZSBzb21ldGhpbmcgbGlrZSBgLmh0bWxgKS5cbiAgICAvLyAqIHRoZSByYW5nZSBzdGFydHMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgZmlsZVxuICAgIGlmIChwb3MgPT09IG51bGwgfHwgcG9zLmZpbGUgPT09IHRoaXMuc291cmNlVXJsIHx8IC9cXC5banRdcyQvLnRlc3QocG9zLmZpbGUpIHx8XG4gICAgICAgIHBvcy5saW5lICE9PSAwIHx8IHBvcy5jb2x1bW4gIT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHRlbXBsYXRlQ29udGVudHMgPSBzb3VyY2VGaWxlLnNvdXJjZXMuZmluZChzcmMgPT4gc3JjPy5zb3VyY2VQYXRoID09PSBwb3MuZmlsZSkhLmNvbnRlbnRzO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvZGU6IHRlbXBsYXRlQ29udGVudHMsXG4gICAgICBzb3VyY2VVcmw6IHBvcy5maWxlLFxuICAgICAgcmFuZ2U6IHtzdGFydFBvczogMCwgc3RhcnRMaW5lOiAwLCBzdGFydENvbDogMCwgZW5kUG9zOiB0ZW1wbGF0ZUNvbnRlbnRzLmxlbmd0aH0sXG4gICAgICBpc0VzY2FwZWQ6IGZhbHNlLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHRlbXBsYXRlRnJvbVBhcnRpYWxDb2RlKFxuICAgICAgdGVtcGxhdGVOb2RlOiBBc3RWYWx1ZTx1bmtub3duLCBURXhwcmVzc2lvbj4sXG4gICAgICB7c3RhcnRQb3MsIGVuZFBvcywgc3RhcnRMaW5lLCBzdGFydENvbH06IFJhbmdlKTogVGVtcGxhdGVJbmZvIHtcbiAgICBpZiAoIS9bXCInYF0vLnRlc3QodGhpcy5jb2RlW3N0YXJ0UG9zXSkgfHwgdGhpcy5jb2RlW3N0YXJ0UG9zXSAhPT0gdGhpcy5jb2RlW2VuZFBvcyAtIDFdKSB7XG4gICAgICB0aHJvdyBuZXcgRmF0YWxMaW5rZXJFcnJvcihcbiAgICAgICAgICB0ZW1wbGF0ZU5vZGUuZXhwcmVzc2lvbixcbiAgICAgICAgICBgRXhwZWN0ZWQgdGhlIHRlbXBsYXRlIHN0cmluZyB0byBiZSB3cmFwcGVkIGluIHF1b3RlcyBidXQgZ290OiAke1xuICAgICAgICAgICAgICB0aGlzLmNvZGUuc3Vic3RyaW5nKHN0YXJ0UG9zLCBlbmRQb3MpfWApO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgY29kZTogdGhpcy5jb2RlLFxuICAgICAgc291cmNlVXJsOiB0aGlzLnNvdXJjZVVybCxcbiAgICAgIHJhbmdlOiB7c3RhcnRQb3M6IHN0YXJ0UG9zICsgMSwgZW5kUG9zOiBlbmRQb3MgLSAxLCBzdGFydExpbmUsIHN0YXJ0Q29sOiBzdGFydENvbCArIDF9LFxuICAgICAgaXNFc2NhcGVkOiB0cnVlLFxuICAgIH07XG4gIH1cbn1cblxuaW50ZXJmYWNlIFRlbXBsYXRlSW5mbyB7XG4gIGNvZGU6IHN0cmluZztcbiAgc291cmNlVXJsOiBzdHJpbmc7XG4gIHJhbmdlOiBSYW5nZTtcbiAgaXNFc2NhcGVkOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEV4dHJhY3QgYW4gYEludGVycG9sYXRpb25Db25maWdgIGZyb20gdGhlIGNvbXBvbmVudCBkZWNsYXJhdGlvbi5cbiAqL1xuZnVuY3Rpb24gcGFyc2VJbnRlcnBvbGF0aW9uQ29uZmlnPFRFeHByZXNzaW9uPihcbiAgICBtZXRhT2JqOiBBc3RPYmplY3Q8UjNEZWNsYXJlQ29tcG9uZW50TWV0YWRhdGEsIFRFeHByZXNzaW9uPik6IEludGVycG9sYXRpb25Db25maWcge1xuICBpZiAoIW1ldGFPYmouaGFzKCdpbnRlcnBvbGF0aW9uJykpIHtcbiAgICByZXR1cm4gREVGQVVMVF9JTlRFUlBPTEFUSU9OX0NPTkZJRztcbiAgfVxuXG4gIGNvbnN0IGludGVycG9sYXRpb25FeHByID0gbWV0YU9iai5nZXRWYWx1ZSgnaW50ZXJwb2xhdGlvbicpO1xuICBjb25zdCB2YWx1ZXMgPSBpbnRlcnBvbGF0aW9uRXhwci5nZXRBcnJheSgpLm1hcChlbnRyeSA9PiBlbnRyeS5nZXRTdHJpbmcoKSk7XG4gIGlmICh2YWx1ZXMubGVuZ3RoICE9PSAyKSB7XG4gICAgdGhyb3cgbmV3IEZhdGFsTGlua2VyRXJyb3IoXG4gICAgICAgIGludGVycG9sYXRpb25FeHByLmV4cHJlc3Npb24sXG4gICAgICAgICdVbnN1cHBvcnRlZCBpbnRlcnBvbGF0aW9uIGNvbmZpZywgZXhwZWN0ZWQgYW4gYXJyYXkgY29udGFpbmluZyBleGFjdGx5IHR3byBzdHJpbmdzJyk7XG4gIH1cbiAgcmV0dXJuIEludGVycG9sYXRpb25Db25maWcuZnJvbUFycmF5KHZhbHVlcyBhcyBbc3RyaW5nLCBzdHJpbmddKTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHRoZSBgVmlld0VuY2Fwc3VsYXRpb25gIG1vZGUgZnJvbSB0aGUgQVNUIHZhbHVlJ3Mgc3ltYm9sIG5hbWUuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlRW5jYXBzdWxhdGlvbjxURXhwcmVzc2lvbj4oZW5jYXBzdWxhdGlvbjogQXN0VmFsdWU8Vmlld0VuY2Fwc3VsYXRpb24sIFRFeHByZXNzaW9uPik6XG4gICAgVmlld0VuY2Fwc3VsYXRpb24ge1xuICBjb25zdCBzeW1ib2xOYW1lID0gZW5jYXBzdWxhdGlvbi5nZXRTeW1ib2xOYW1lKCk7XG4gIGlmIChzeW1ib2xOYW1lID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEZhdGFsTGlua2VyRXJyb3IoXG4gICAgICAgIGVuY2Fwc3VsYXRpb24uZXhwcmVzc2lvbiwgJ0V4cGVjdGVkIGVuY2Fwc3VsYXRpb24gdG8gaGF2ZSBhIHN5bWJvbCBuYW1lJyk7XG4gIH1cbiAgY29uc3QgZW51bVZhbHVlID0gVmlld0VuY2Fwc3VsYXRpb25bc3ltYm9sTmFtZSBhcyBrZXlvZiB0eXBlb2YgVmlld0VuY2Fwc3VsYXRpb25dO1xuICBpZiAoZW51bVZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRmF0YWxMaW5rZXJFcnJvcihlbmNhcHN1bGF0aW9uLmV4cHJlc3Npb24sICdVbnN1cHBvcnRlZCBlbmNhcHN1bGF0aW9uJyk7XG4gIH1cbiAgcmV0dXJuIGVudW1WYWx1ZTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHRoZSBgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3lgIGZyb20gdGhlIEFTVCB2YWx1ZSdzIHN5bWJvbCBuYW1lLlxuICovXG5mdW5jdGlvbiBwYXJzZUNoYW5nZURldGVjdGlvblN0cmF0ZWd5PFRFeHByZXNzaW9uPihcbiAgICBjaGFuZ2VEZXRlY3Rpb25TdHJhdGVneTogQXN0VmFsdWU8Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFRFeHByZXNzaW9uPik6XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kge1xuICBjb25zdCBzeW1ib2xOYW1lID0gY2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuZ2V0U3ltYm9sTmFtZSgpO1xuICBpZiAoc3ltYm9sTmFtZSA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBGYXRhbExpbmtlckVycm9yKFxuICAgICAgICBjaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5leHByZXNzaW9uLFxuICAgICAgICAnRXhwZWN0ZWQgY2hhbmdlIGRldGVjdGlvbiBzdHJhdGVneSB0byBoYXZlIGEgc3ltYm9sIG5hbWUnKTtcbiAgfVxuICBjb25zdCBlbnVtVmFsdWUgPSBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneVtzeW1ib2xOYW1lIGFzIGtleW9mIHR5cGVvZiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneV07XG4gIGlmIChlbnVtVmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBGYXRhbExpbmtlckVycm9yKFxuICAgICAgICBjaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5leHByZXNzaW9uLCAnVW5zdXBwb3J0ZWQgY2hhbmdlIGRldGVjdGlvbiBzdHJhdGVneScpO1xuICB9XG4gIHJldHVybiBlbnVtVmFsdWU7XG59XG4iXX0=