@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,256 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import * as o from '@angular/compiler';
9
- import { FatalLinkerError } from '../fatal_linker_error';
10
- /**
11
- * This helper class wraps an object expression along with an `AstHost` object, exposing helper
12
- * methods that make it easier to extract the properties of the object.
13
- *
14
- * The generic `T` is used as reference type of the expected structure that is represented by this
15
- * object. It does not achieve full type-safety for the provided operations in correspondence with
16
- * `T`; its main goal is to provide references to a documented type and ensure that the properties
17
- * that are read from the object are present.
18
- *
19
- * Unfortunately, the generic types are unable to prevent reading an optional property from the
20
- * object without first having called `has` to ensure that the property exists. This is one example
21
- * of where full type-safety is not achieved.
22
- */
23
- export class AstObject {
24
- constructor(expression, obj, host) {
25
- this.expression = expression;
26
- this.obj = obj;
27
- this.host = host;
28
- }
29
- /**
30
- * Create a new `AstObject` from the given `expression` and `host`.
31
- */
32
- static parse(expression, host) {
33
- const obj = host.parseObjectLiteral(expression);
34
- return new AstObject(expression, obj, host);
35
- }
36
- /**
37
- * Returns true if the object has a property called `propertyName`.
38
- */
39
- has(propertyName) {
40
- return this.obj.has(propertyName);
41
- }
42
- /**
43
- * Returns the number value of the property called `propertyName`.
44
- *
45
- * Throws an error if there is no such property or the property is not a number.
46
- */
47
- getNumber(propertyName) {
48
- return this.host.parseNumericLiteral(this.getRequiredProperty(propertyName));
49
- }
50
- /**
51
- * Returns the string value of the property called `propertyName`.
52
- *
53
- * Throws an error if there is no such property or the property is not a string.
54
- */
55
- getString(propertyName) {
56
- return this.host.parseStringLiteral(this.getRequiredProperty(propertyName));
57
- }
58
- /**
59
- * Returns the boolean value of the property called `propertyName`.
60
- *
61
- * Throws an error if there is no such property or the property is not a boolean.
62
- */
63
- getBoolean(propertyName) {
64
- return this.host.parseBooleanLiteral(this.getRequiredProperty(propertyName));
65
- }
66
- /**
67
- * Returns the nested `AstObject` parsed from the property called `propertyName`.
68
- *
69
- * Throws an error if there is no such property or the property is not an object.
70
- */
71
- getObject(propertyName) {
72
- const expr = this.getRequiredProperty(propertyName);
73
- const obj = this.host.parseObjectLiteral(expr);
74
- return new AstObject(expr, obj, this.host);
75
- }
76
- /**
77
- * Returns an array of `AstValue` objects parsed from the property called `propertyName`.
78
- *
79
- * Throws an error if there is no such property or the property is not an array.
80
- */
81
- getArray(propertyName) {
82
- const arr = this.host.parseArrayLiteral(this.getRequiredProperty(propertyName));
83
- return arr.map(entry => new AstValue(entry, this.host));
84
- }
85
- /**
86
- * Returns a `WrappedNodeExpr` object that wraps the expression at the property called
87
- * `propertyName`.
88
- *
89
- * Throws an error if there is no such property.
90
- */
91
- getOpaque(propertyName) {
92
- return new o.WrappedNodeExpr(this.getRequiredProperty(propertyName));
93
- }
94
- /**
95
- * Returns the raw `TExpression` value of the property called `propertyName`.
96
- *
97
- * Throws an error if there is no such property.
98
- */
99
- getNode(propertyName) {
100
- return this.getRequiredProperty(propertyName);
101
- }
102
- /**
103
- * Returns an `AstValue` that wraps the value of the property called `propertyName`.
104
- *
105
- * Throws an error if there is no such property.
106
- */
107
- getValue(propertyName) {
108
- return new AstValue(this.getRequiredProperty(propertyName), this.host);
109
- }
110
- /**
111
- * Converts the AstObject to a raw JavaScript object, mapping each property value (as an
112
- * `AstValue`) to the generic type (`T`) via the `mapper` function.
113
- */
114
- toLiteral(mapper) {
115
- const result = {};
116
- for (const [key, expression] of this.obj) {
117
- result[key] = mapper(new AstValue(expression, this.host));
118
- }
119
- return result;
120
- }
121
- /**
122
- * Converts the AstObject to a JavaScript Map, mapping each property value (as an
123
- * `AstValue`) to the generic type (`T`) via the `mapper` function.
124
- */
125
- toMap(mapper) {
126
- const result = new Map();
127
- for (const [key, expression] of this.obj) {
128
- result.set(key, mapper(new AstValue(expression, this.host)));
129
- }
130
- return result;
131
- }
132
- getRequiredProperty(propertyName) {
133
- if (!this.obj.has(propertyName)) {
134
- throw new FatalLinkerError(this.expression, `Expected property '${propertyName}' to be present.`);
135
- }
136
- return this.obj.get(propertyName);
137
- }
138
- }
139
- /**
140
- * This helper class wraps an `expression`, exposing methods that use the `host` to give
141
- * access to the underlying value of the wrapped expression.
142
- *
143
- * The generic `T` is used as reference type of the expected type that is represented by this value.
144
- * It does not achieve full type-safety for the provided operations in correspondence with `T`; its
145
- * main goal is to provide references to a documented type.
146
- */
147
- export class AstValue {
148
- constructor(expression, host) {
149
- this.expression = expression;
150
- this.host = host;
151
- }
152
- /**
153
- * Get the name of the symbol represented by the given expression node, or `null` if it is not a
154
- * symbol.
155
- */
156
- getSymbolName() {
157
- return this.host.getSymbolName(this.expression);
158
- }
159
- /**
160
- * Is this value a number?
161
- */
162
- isNumber() {
163
- return this.host.isNumericLiteral(this.expression);
164
- }
165
- /**
166
- * Parse the number from this value, or error if it is not a number.
167
- */
168
- getNumber() {
169
- return this.host.parseNumericLiteral(this.expression);
170
- }
171
- /**
172
- * Is this value a string?
173
- */
174
- isString() {
175
- return this.host.isStringLiteral(this.expression);
176
- }
177
- /**
178
- * Parse the string from this value, or error if it is not a string.
179
- */
180
- getString() {
181
- return this.host.parseStringLiteral(this.expression);
182
- }
183
- /**
184
- * Is this value a boolean?
185
- */
186
- isBoolean() {
187
- return this.host.isBooleanLiteral(this.expression);
188
- }
189
- /**
190
- * Parse the boolean from this value, or error if it is not a boolean.
191
- */
192
- getBoolean() {
193
- return this.host.parseBooleanLiteral(this.expression);
194
- }
195
- /**
196
- * Is this value an object literal?
197
- */
198
- isObject() {
199
- return this.host.isObjectLiteral(this.expression);
200
- }
201
- /**
202
- * Parse this value into an `AstObject`, or error if it is not an object literal.
203
- */
204
- getObject() {
205
- return AstObject.parse(this.expression, this.host);
206
- }
207
- /**
208
- * Is this value an array literal?
209
- */
210
- isArray() {
211
- return this.host.isArrayLiteral(this.expression);
212
- }
213
- /**
214
- * Parse this value into an array of `AstValue` objects, or error if it is not an array literal.
215
- */
216
- getArray() {
217
- const arr = this.host.parseArrayLiteral(this.expression);
218
- return arr.map(entry => new AstValue(entry, this.host));
219
- }
220
- /**
221
- * Is this value a function expression?
222
- */
223
- isFunction() {
224
- return this.host.isFunctionExpression(this.expression);
225
- }
226
- /**
227
- * Extract the return value as an `AstValue` from this value as a function expression, or error if
228
- * it is not a function expression.
229
- */
230
- getFunctionReturnValue() {
231
- return new AstValue(this.host.parseReturnValue(this.expression), this.host);
232
- }
233
- isCallExpression() {
234
- return this.host.isCallExpression(this.expression);
235
- }
236
- getCallee() {
237
- return new AstValue(this.host.parseCallee(this.expression), this.host);
238
- }
239
- getArguments() {
240
- const args = this.host.parseArguments(this.expression);
241
- return args.map(arg => new AstValue(arg, this.host));
242
- }
243
- /**
244
- * Return the `TExpression` of this value wrapped in a `WrappedNodeExpr`.
245
- */
246
- getOpaque() {
247
- return new o.WrappedNodeExpr(this.expression);
248
- }
249
- /**
250
- * Get the range of the location of this value in the original source.
251
- */
252
- getRange() {
253
- return this.host.getRange(this.expression);
254
- }
255
- }
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN0X3ZhbHVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL2xpbmtlci9zcmMvYXN0L2FzdF92YWx1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEtBQUssQ0FBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBb0N2RDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFNLE9BQU8sU0FBUztJQVVwQixZQUNhLFVBQXVCLEVBQVUsR0FBNkIsRUFDL0QsSUFBMEI7UUFEekIsZUFBVSxHQUFWLFVBQVUsQ0FBYTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQTBCO1FBQy9ELFNBQUksR0FBSixJQUFJLENBQXNCO0lBQUcsQ0FBQztJQVgxQzs7T0FFRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQWdDLFVBQXVCLEVBQUUsSUFBMEI7UUFFN0YsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELE9BQU8sSUFBSSxTQUFTLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBTUQ7O09BRUc7SUFDSCxHQUFHLENBQUMsWUFBNEI7UUFDOUIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFNBQVMsQ0FBaUUsWUFBZTtRQUV2RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxTQUFTLENBQWlFLFlBQWU7UUFFdkYsT0FBTyxJQUFJLENBQUMs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Q0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksUUFBUSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCAqIGFzIG8gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0IHtGYXRhbExpbmtlckVycm9yfSBmcm9tICcuLi9mYXRhbF9saW5rZXJfZXJyb3InO1xuaW1wb3J0IHtBc3RIb3N0LCBSYW5nZX0gZnJvbSAnLi9hc3RfaG9zdCc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBvbmx5IHRob3NlIHR5cGVzIGluIGBUYCB0aGF0IGFyZSBvYmplY3QgdHlwZXMuXG4gKi9cbnR5cGUgT2JqZWN0VHlwZTxUPiA9IEV4dHJhY3Q8VCwgb2JqZWN0PjtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSB2YWx1ZSB0eXBlIG9mIGFuIG9iamVjdCBsaXRlcmFsLlxuICovXG50eXBlIE9iamVjdFZhbHVlVHlwZTxUPiA9IFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBpbmZlciBSPj8gUiA6IG5ldmVyO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHZhbHVlIHR5cGUgb2YgYW4gYXJyYXkgbGl0ZXJhbC5cbiAqL1xudHlwZSBBcnJheVZhbHVlVHlwZTxUPiA9IFQgZXh0ZW5kcyBBcnJheTxpbmZlciBSPj8gUiA6IG5ldmVyO1xuXG4vKipcbiAqIEVuc3VyZXMgdGhhdCBgVGhpc2AgaGFzIGl0cyBnZW5lcmljIHR5cGUgYEFjdHVhbGAgY29uZm9ybSB0byB0aGUgZXhwZWN0ZWQgZ2VuZXJpYyB0eXBlIGluXG4gKiBgRXhwZWN0ZWRgLCB0byBkaXNhbGxvdyBjYWxsaW5nIGEgbWV0aG9kIGlmIHRoZSBnZW5lcmljIHR5cGUgZG9lcyBub3QgY29uZm9ybS5cbiAqL1xudHlwZSBDb25mb3Jtc1RvPFRoaXMsIEFjdHVhbCwgRXhwZWN0ZWQ+ID0gQWN0dWFsIGV4dGVuZHMgRXhwZWN0ZWQgPyBUaGlzIDogbmV2ZXI7XG5cbi8qKlxuICogRW5zdXJlcyB0aGF0IGBUaGlzYCBpcyBhbiBgQXN0VmFsdWVgIHdob3NlIGdlbmVyaWMgdHlwZSBjb25mb3JtcyB0byBgRXhwZWN0ZWRgLCB0byBkaXNhbGxvd1xuICogY2FsbGluZyBhIG1ldGhvZCBpZiB0aGUgdmFsdWUncyB0eXBlIGRvZXMgbm90IGNvbmZvcm0uXG4gKi9cbnR5cGUgSGFzVmFsdWVUeXBlPFRoaXMsIEV4cGVjdGVkPiA9XG4gICAgVGhpcyBleHRlbmRzIEFzdFZhbHVlPGluZmVyIEFjdHVhbCwgYW55Pj8gQ29uZm9ybXNUbzxUaGlzLCBBY3R1YWwsIEV4cGVjdGVkPjogbmV2ZXI7XG5cbi8qKlxuICogUmVwcmVzZW50cyBvbmx5IHRoZSBzdHJpbmcga2V5cyBvZiB0eXBlIGBUYC5cbiAqL1xudHlwZSBQcm9wZXJ0eUtleTxUPiA9IGtleW9mIFQmc3RyaW5nO1xuXG4vKipcbiAqIFRoaXMgaGVscGVyIGNsYXNzIHdyYXBzIGFuIG9iamVjdCBleHByZXNzaW9uIGFsb25nIHdpdGggYW4gYEFzdEhvc3RgIG9iamVjdCwgZXhwb3NpbmcgaGVscGVyXG4gKiBtZXRob2RzIHRoYXQgbWFrZSBpdCBlYXNpZXIgdG8gZXh0cmFjdCB0aGUgcHJvcGVydGllcyBvZiB0aGUgb2JqZWN0LlxuICpcbiAqIFRoZSBnZW5lcmljIGBUYCBpcyB1c2VkIGFzIHJlZmVyZW5jZSB0eXBlIG9mIHRoZSBleHBlY3RlZCBzdHJ1Y3R1cmUgdGhhdCBpcyByZXByZXNlbnRlZCBieSB0aGlzXG4gKiBvYmplY3QuIEl0IGRvZXMgbm90IGFjaGlldmUgZnVsbCB0eXBlLXNhZmV0eSBmb3IgdGhlIHByb3ZpZGVkIG9wZXJhdGlvbnMgaW4gY29ycmVzcG9uZGVuY2Ugd2l0aFxuICogYFRgOyBpdHMgbWFpbiBnb2FsIGlzIHRvIHByb3ZpZGUgcmVmZXJlbmNlcyB0byBhIGRvY3VtZW50ZWQgdHlwZSBhbmQgZW5zdXJlIHRoYXQgdGhlIHByb3BlcnRpZXNcbiAqIHRoYXQgYXJlIHJlYWQgZnJvbSB0aGUgb2JqZWN0IGFyZSBwcmVzZW50LlxuICpcbiAqIFVuZm9ydHVuYXRlbHksIHRoZSBnZW5lcmljIHR5cGVzIGFyZSB1bmFibGUgdG8gcHJldmVudCByZWFkaW5nIGFuIG9wdGlvbmFsIHByb3BlcnR5IGZyb20gdGhlXG4gKiBvYmplY3Qgd2l0aG91dCBmaXJzdCBoYXZpbmcgY2FsbGVkIGBoYXNgIHRvIGVuc3VyZSB0aGF0IHRoZSBwcm9wZXJ0eSBleGlzdHMuIFRoaXMgaXMgb25lIGV4YW1wbGVcbiAqIG9mIHdoZXJlIGZ1bGwgdHlwZS1zYWZldHkgaXMgbm90IGFjaGlldmVkLlxuICovXG5leHBvcnQgY2xhc3MgQXN0T2JqZWN0PFQgZXh0ZW5kcyBvYmplY3QsIFRFeHByZXNzaW9uPiB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgYEFzdE9iamVjdGAgZnJvbSB0aGUgZ2l2ZW4gYGV4cHJlc3Npb25gIGFuZCBgaG9zdGAuXG4gICAqL1xuICBzdGF0aWMgcGFyc2U8VCBleHRlbmRzIG9iamVjdCwgVEV4cHJlc3Npb24+KGV4cHJlc3Npb246IFRFeHByZXNzaW9uLCBob3N0OiBBc3RIb3N0PFRFeHByZXNzaW9uPik6XG4gICAgICBBc3RPYmplY3Q8VCwgVEV4cHJlc3Npb24+IHtcbiAgICBjb25zdCBvYmogPSBob3N0LnBhcnNlT2JqZWN0TGl0ZXJhbChleHByZXNzaW9uKTtcbiAgICByZXR1cm4gbmV3IEFzdE9iamVjdChleHByZXNzaW9uLCBvYmosIGhvc3QpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICAgIHJlYWRvbmx5IGV4cHJlc3Npb246IFRFeHByZXNzaW9uLCBwcml2YXRlIG9iajogTWFwPHN0cmluZywgVEV4cHJlc3Npb24+LFxuICAgICAgcHJpdmF0ZSBob3N0OiBBc3RIb3N0PFRFeHByZXNzaW9uPikge31cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaGFzIGEgcHJvcGVydHkgY2FsbGVkIGBwcm9wZXJ0eU5hbWVgLlxuICAgKi9cbiAgaGFzKHByb3BlcnR5TmFtZTogUHJvcGVydHlLZXk8VD4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vYmouaGFzKHByb3BlcnR5TmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbnVtYmVyIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBjYWxsZWQgYHByb3BlcnR5TmFtZWAuXG4gICAqXG4gICAqIFRocm93cyBhbiBlcnJvciBpZiB0aGVyZSBpcyBubyBzdWNoIHByb3BlcnR5IG9yIHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBudW1iZXIuXG4gICAqL1xuICBnZXROdW1iZXI8SyBleHRlbmRzIFByb3BlcnR5S2V5PFQ+Pih0aGlzOiBDb25mb3Jtc1RvPHRoaXMsIFRbS10sIG51bWJlcj4sIHByb3BlcnR5TmFtZTogSyk6XG4gICAgICBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmhvc3QucGFyc2VOdW1lcmljTGl0ZXJhbCh0aGlzLmdldFJlcXVpcmVkUHJvcGVydHkocHJvcGVydHlOYW1lKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgc3RyaW5nIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBjYWxsZWQgYHByb3BlcnR5TmFtZWAuXG4gICAqXG4gICAqIFRocm93cyBhbiBlcnJvciBpZiB0aGVyZSBpcyBubyBzdWNoIHByb3BlcnR5IG9yIHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBzdHJpbmcuXG4gICAqL1xuICBnZXRTdHJpbmc8SyBleHRlbmRzIFByb3BlcnR5S2V5PFQ+Pih0aGlzOiBDb25mb3Jtc1RvPHRoaXMsIFRbS10sIHN0cmluZz4sIHByb3BlcnR5TmFtZTogSyk6XG4gICAgICBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmhvc3QucGFyc2VTdHJpbmdMaXRlcmFsKHRoaXMuZ2V0UmVxdWlyZWRQcm9wZXJ0eShwcm9wZXJ0eU5hbWUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBib29sZWFuIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBjYWxsZWQgYHByb3BlcnR5TmFtZWAuXG4gICAqXG4gICAqIFRocm93cyBhbiBlcnJvciBpZiB0aGVyZSBpcyBubyBzdWNoIHByb3BlcnR5IG9yIHRoZSBwcm9wZXJ0eSBpcyBub3QgYSBib29sZWFuLlxuICAgKi9cbiAgZ2V0Qm9vbGVhbjxLIGV4dGVuZHMgUHJvcGVydHlLZXk8VD4+KHRoaXM6IENvbmZvcm1zVG88dGhpcywgVFtLXSwgYm9vbGVhbj4sIHByb3BlcnR5TmFtZTogSyk6XG4gICAgICBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ob3N0LnBhcnNlQm9vbGVhbkxpdGVyYWwodGhpcy5nZXRSZXF1aXJlZFByb3BlcnR5KHByb3BlcnR5TmFtZSkpIGFzIGFueTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBuZXN0ZWQgYEFzdE9iamVjdGAgcGFyc2VkIGZyb20gdGhlIHByb3BlcnR5IGNhbGxlZCBgcHJvcGVydHlOYW1lYC5cbiAgICpcbiAgICogVGhyb3dzIGFuIGVycm9yIGlmIHRoZXJlIGlzIG5vIHN1Y2ggcHJvcGVydHkgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBhbiBvYmplY3QuXG4gICAqL1xuICBnZXRPYmplY3Q8SyBleHRlbmRzIFByb3BlcnR5S2V5PFQ+Pih0aGlzOiBDb25mb3Jtc1RvPHRoaXMsIFRbS10sIG9iamVjdD4sIHByb3BlcnR5TmFtZTogSyk6XG4gICAgICBBc3RPYmplY3Q8T2JqZWN0VHlwZTxUW0tdPiwgVEV4cHJlc3Npb24+IHtcbiAgICBjb25zdCBleHByID0gdGhpcy5nZXRSZXF1aXJlZFByb3BlcnR5KHByb3BlcnR5TmFtZSk7XG4gICAgY29uc3Qgb2JqID0gdGhpcy5ob3N0LnBhcnNlT2JqZWN0TGl0ZXJhbChleHByKTtcbiAgICByZXR1cm4gbmV3IEFzdE9iamVjdChleHByLCBvYmosIHRoaXMuaG9zdCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBhcnJheSBvZiBgQXN0VmFsdWVgIG9iamVjdHMgcGFyc2VkIGZyb20gdGhlIHByb3BlcnR5IGNhbGxlZCBgcHJvcGVydHlOYW1lYC5cbiAgICpcbiAgICogVGhyb3dzIGFuIGVycm9yIGlmIHRoZXJlIGlzIG5vIHN1Y2ggcHJvcGVydHkgb3IgdGhlIHByb3BlcnR5IGlzIG5vdCBhbiBhcnJheS5cbiAgICovXG4gIGdldEFycmF5PEsgZXh0ZW5kcyBQcm9wZXJ0eUtleTxUPj4odGhpczogQ29uZm9ybXNUbzx0aGlzLCBUW0tdLCB1bmtub3duW10+LCBwcm9wZXJ0eU5hbWU6IEspOlxuICAgICAgQXN0VmFsdWU8QXJyYXlWYWx1ZVR5cGU8VFtLXT4sIFRFeHByZXNzaW9uPltdIHtcbiAgICBjb25zdCBhcnIgPSB0aGlzLmhvc3QucGFyc2VBcnJheUxpdGVyYWwodGhpcy5nZXRSZXF1aXJlZFByb3BlcnR5KHByb3BlcnR5TmFtZSkpO1xuICAgIHJldHVybiBhcnIubWFwKGVudHJ5ID0+IG5ldyBBc3RWYWx1ZShlbnRyeSwgdGhpcy5ob3N0KSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGBXcmFwcGVkTm9kZUV4cHJgIG9iamVjdCB0aGF0IHdyYXBzIHRoZSBleHByZXNzaW9uIGF0IHRoZSBwcm9wZXJ0eSBjYWxsZWRcbiAgICogYHByb3BlcnR5TmFtZWAuXG4gICAqXG4gICAqIFRocm93cyBhbiBlcnJvciBpZiB0aGVyZSBpcyBubyBzdWNoIHByb3BlcnR5LlxuICAgKi9cbiAgZ2V0T3BhcXVlKHByb3BlcnR5TmFtZTogUHJvcGVydHlLZXk8VD4pOiBvLldyYXBwZWROb2RlRXhwcjxURXhwcmVzc2lvbj4ge1xuICAgIHJldHVybiBuZXcgby5XcmFwcGVkTm9kZUV4cHIodGhpcy5nZXRSZXF1aXJlZFByb3BlcnR5KHByb3BlcnR5TmFtZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHJhdyBgVEV4cHJlc3Npb25gIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBjYWxsZWQgYHByb3BlcnR5TmFtZWAuXG4gICAqXG4gICAqIFRocm93cyBhbiBlcnJvciBpZiB0aGVyZSBpcyBubyBzdWNoIHByb3BlcnR5LlxuICAgKi9cbiAgZ2V0Tm9kZShwcm9wZXJ0eU5hbWU6IFByb3BlcnR5S2V5PFQ+KTogVEV4cHJlc3Npb24ge1xuICAgIHJldHVybiB0aGlzLmdldFJlcXVpcmVkUHJvcGVydHkocHJvcGVydHlOYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGBBc3RWYWx1ZWAgdGhhdCB3cmFwcyB0aGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5IGNhbGxlZCBgcHJvcGVydHlOYW1lYC5cbiAgICpcbiAgICogVGhyb3dzIGFuIGVycm9yIGlmIHRoZXJlIGlzIG5vIHN1Y2ggcHJvcGVydHkuXG4gICAqL1xuICBnZXRWYWx1ZTxLIGV4dGVuZHMgUHJvcGVydHlLZXk8VD4+KHByb3BlcnR5TmFtZTogSyk6IEFzdFZhbHVlPFRbS10sIFRFeHByZXNzaW9uPiB7XG4gICAgcmV0dXJuIG5ldyBBc3RWYWx1ZSh0aGlzLmdldFJlcXVpcmVkUHJvcGVydHkocHJvcGVydHlOYW1lKSwgdGhpcy5ob3N0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgQXN0T2JqZWN0IHRvIGEgcmF3IEphdmFTY3JpcHQgb2JqZWN0LCBtYXBwaW5nIGVhY2ggcHJvcGVydHkgdmFsdWUgKGFzIGFuXG4gICAqIGBBc3RWYWx1ZWApIHRvIHRoZSBnZW5lcmljIHR5cGUgKGBUYCkgdmlhIHRoZSBgbWFwcGVyYCBmdW5jdGlvbi5cbiAgICovXG4gIHRvTGl0ZXJhbDxWPihtYXBwZXI6ICh2YWx1ZTogQXN0VmFsdWU8T2JqZWN0VmFsdWVUeXBlPFQ+LCBURXhwcmVzc2lvbj4pID0+IFYpOiBSZWNvcmQ8c3RyaW5nLCBWPiB7XG4gICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBWPiA9IHt9O1xuICAgIGZvciAoY29uc3QgW2tleSwgZXhwcmVzc2lvbl0gb2YgdGhpcy5vYmopIHtcbiAgICAgIHJlc3VsdFtrZXldID0gbWFwcGVyKG5ldyBBc3RWYWx1ZShleHByZXNzaW9uLCB0aGlzLmhvc3QpKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgQXN0T2JqZWN0IHRvIGEgSmF2YVNjcmlwdCBNYXAsIG1hcHBpbmcgZWFjaCBwcm9wZXJ0eSB2YWx1ZSAoYXMgYW5cbiAgICogYEFzdFZhbHVlYCkgdG8gdGhlIGdlbmVyaWMgdHlwZSAoYFRgKSB2aWEgdGhlIGBtYXBwZXJgIGZ1bmN0aW9uLlxuICAgKi9cbiAgdG9NYXA8Vj4obWFwcGVyOiAodmFsdWU6IEFzdFZhbHVlPE9iamVjdFZhbHVlVHlwZTxUPiwgVEV4cHJlc3Npb24+KSA9PiBWKTogTWFwPHN0cmluZywgVj4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBNYXA8c3RyaW5nLCBWPigpO1xuICAgIGZvciAoY29uc3QgW2tleSwgZXhwcmVzc2lvbl0gb2YgdGhpcy5vYmopIHtcbiAgICAgIHJlc3VsdC5zZXQoa2V5LCBtYXBwZXIobmV3IEFzdFZhbHVlKGV4cHJlc3Npb24sIHRoaXMuaG9zdCkpKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmVxdWlyZWRQcm9wZXJ0eShwcm9wZXJ0eU5hbWU6IFByb3BlcnR5S2V5PFQ+KTogVEV4cHJlc3Npb24ge1xuICAgIGlmICghdGhpcy5vYmouaGFzKHByb3BlcnR5TmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBGYXRhbExpbmtlckVycm9yKFxuICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbiwgYEV4cGVjdGVkIHByb3BlcnR5ICcke3Byb3BlcnR5TmFtZX0nIHRvIGJlIHByZXNlbnQuYCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm9iai5nZXQocHJvcGVydHlOYW1lKSE7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGlzIGhlbHBlciBjbGFzcyB3cmFwcyBhbiBgZXhwcmVzc2lvbmAsIGV4cG9zaW5nIG1ldGhvZHMgdGhhdCB1c2UgdGhlIGBob3N0YCB0byBnaXZlXG4gKiBhY2Nlc3MgdG8gdGhlIHVuZGVybHlpbmcgdmFsdWUgb2YgdGhlIHdyYXBwZWQgZXhwcmVzc2lvbi5cbiAqXG4gKiBUaGUgZ2VuZXJpYyBgVGAgaXMgdXNlZCBhcyByZWZlcmVuY2UgdHlwZSBvZiB0aGUgZXhwZWN0ZWQgdHlwZSB0aGF0IGlzIHJlcHJlc2VudGVkIGJ5IHRoaXMgdmFsdWUuXG4gKiBJdCBkb2VzIG5vdCBhY2hpZXZlIGZ1bGwgdHlwZS1zYWZldHkgZm9yIHRoZSBwcm92aWRlZCBvcGVyYXRpb25zIGluIGNvcnJlc3BvbmRlbmNlIHdpdGggYFRgOyBpdHNcbiAqIG1haW4gZ29hbCBpcyB0byBwcm92aWRlIHJlZmVyZW5jZXMgdG8gYSBkb2N1bWVudGVkIHR5cGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBBc3RWYWx1ZTxULCBURXhwcmVzc2lvbj4ge1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBleHByZXNzaW9uOiBURXhwcmVzc2lvbiwgcHJpdmF0ZSBob3N0OiBBc3RIb3N0PFRFeHByZXNzaW9uPikge31cblxuICAvKipcbiAgICogR2V0IHRoZSBuYW1lIG9mIHRoZSBzeW1ib2wgcmVwcmVzZW50ZWQgYnkgdGhlIGdpdmVuIGV4cHJlc3Npb24gbm9kZSwgb3IgYG51bGxgIGlmIGl0IGlzIG5vdCBhXG4gICAqIHN5bWJvbC5cbiAgICovXG4gIGdldFN5bWJvbE5hbWUoKTogc3RyaW5nfG51bGwge1xuICAgIHJldHVybiB0aGlzLmhvc3QuZ2V0U3ltYm9sTmFtZSh0aGlzLmV4cHJlc3Npb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIElzIHRoaXMgdmFsdWUgYSBudW1iZXI/XG4gICAqL1xuICBpc051bWJlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ob3N0LmlzTnVtZXJpY0xpdGVyYWwodGhpcy5leHByZXNzaW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSB0aGUgbnVtYmVyIGZyb20gdGhpcyB2YWx1ZSwgb3IgZXJyb3IgaWYgaXQgaXMgbm90IGEgbnVtYmVyLlxuICAgKi9cbiAgZ2V0TnVtYmVyKHRoaXM6IEhhc1ZhbHVlVHlwZTx0aGlzLCBudW1iZXI+KTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5ob3N0LnBhcnNlTnVtZXJpY0xpdGVyYWwodGhpcy5leHByZXNzaW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJcyB0aGlzIHZhbHVlIGEgc3RyaW5nP1xuICAgKi9cbiAgaXNTdHJpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaG9zdC5pc1N0cmluZ0xpdGVyYWwodGhpcy5leHByZXNzaW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSB0aGUgc3RyaW5nIGZyb20gdGhpcyB2YWx1ZSwgb3IgZXJyb3IgaWYgaXQgaXMgbm90IGEgc3RyaW5nLlxuICAgKi9cbiAgZ2V0U3RyaW5nKHRoaXM6IEhhc1ZhbHVlVHlwZTx0aGlzLCBzdHJpbmc+KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5ob3N0LnBhcnNlU3RyaW5nTGl0ZXJhbCh0aGlzLmV4cHJlc3Npb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIElzIHRoaXMgdmFsdWUgYSBib29sZWFuP1xuICAgKi9cbiAgaXNCb29sZWFuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhvc3QuaXNCb29sZWFuTGl0ZXJhbCh0aGlzLmV4cHJlc3Npb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlIHRoZSBib29sZWFuIGZyb20gdGhpcyB2YWx1ZSwgb3IgZXJyb3IgaWYgaXQgaXMgbm90IGEgYm9vbGVhbi5cbiAgICovXG4gIGdldEJvb2xlYW4odGhpczogSGFzVmFsdWVUeXBlPHRoaXMsIGJvb2xlYW4+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaG9zdC5wYXJzZUJvb2xlYW5MaXRlcmFsKHRoaXMuZXhwcmVzc2lvbik7XG4gIH1cblxuICAvKipcbiAgICogSXMgdGhpcyB2YWx1ZSBhbiBvYmplY3QgbGl0ZXJhbD9cbiAgICovXG4gIGlzT2JqZWN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhvc3QuaXNPYmplY3RMaXRlcmFsKHRoaXMuZXhwcmVzc2lvbik7XG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgdGhpcyB2YWx1ZSBpbnRvIGFuIGBBc3RPYmplY3RgLCBvciBlcnJvciBpZiBpdCBpcyBub3QgYW4gb2JqZWN0IGxpdGVyYWwuXG4gICAqL1xuICBnZXRPYmplY3QodGhpczogSGFzVmFsdWVUeXBlPHRoaXMsIG9iamVjdD4pOiBBc3RPYmplY3Q8T2JqZWN0VHlwZTxUPiwgVEV4cHJlc3Npb24+IHtcbiAgICByZXR1cm4gQXN0T2JqZWN0LnBhcnNlKHRoaXMuZXhwcmVzc2lvbiwgdGhpcy5ob3N0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJcyB0aGlzIHZhbHVlIGFuIGFycmF5IGxpdGVyYWw/XG4gICAqL1xuICBpc0FycmF5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhvc3QuaXNBcnJheUxpdGVyYWwodGhpcy5leHByZXNzaW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSB0aGlzIHZhbHVlIGludG8gYW4gYXJyYXkgb2YgYEFzdFZhbHVlYCBvYmplY3RzLCBvciBlcnJvciBpZiBpdCBpcyBub3QgYW4gYXJyYXkgbGl0ZXJhbC5cbiAgICovXG4gIGdldEFycmF5KHRoaXM6IEhhc1ZhbHVlVHlwZTx0aGlzLCB1bmtub3duW10+KTogQXN0VmFsdWU8QXJyYXlWYWx1ZVR5cGU8VD4sIFRFeHByZXNzaW9uPltdIHtcbiAgICBjb25zdCBhcnIgPSB0aGlzLmhvc3QucGFyc2VBcnJheUxpdGVyYWwodGhpcy5leHByZXNzaW9uKTtcbiAgICByZXR1cm4gYXJyLm1hcChlbnRyeSA9PiBuZXcgQXN0VmFsdWUoZW50cnksIHRoaXMuaG9zdCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIElzIHRoaXMgdmFsdWUgYSBmdW5jdGlvbiBleHByZXNzaW9uP1xuICAgKi9cbiAgaXNGdW5jdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ob3N0LmlzRnVuY3Rpb25FeHByZXNzaW9uKHRoaXMuZXhwcmVzc2lvbik7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdCB0aGUgcmV0dXJuIHZhbHVlIGFzIGFuIGBBc3RWYWx1ZWAgZnJvbSB0aGlzIHZhbHVlIGFzIGEgZnVuY3Rpb24gZXhwcmVzc2lvbiwgb3IgZXJyb3IgaWZcbiAgICogaXQgaXMgbm90IGEgZnVuY3Rpb24gZXhwcmVzc2lvbi5cbiAgICovXG4gIGdldEZ1bmN0aW9uUmV0dXJuVmFsdWU8Uj4odGhpczogSGFzVmFsdWVUeXBlPHRoaXMsIEZ1bmN0aW9uPik6IEFzdFZhbHVlPFIsIFRFeHByZXNzaW9uPiB7XG4gICAgcmV0dXJuIG5ldyBBc3RWYWx1ZSh0aGlzLmhvc3QucGFyc2VSZXR1cm5WYWx1ZSh0aGlzLmV4cHJlc3Npb24pLCB0aGlzLmhvc3QpO1xuICB9XG5cbiAgaXNDYWxsRXhwcmVzc2lvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ob3N0LmlzQ2FsbEV4cHJlc3Npb24odGhpcy5leHByZXNzaW9uKTtcbiAgfVxuXG4gIGdldENhbGxlZSgpOiBBc3RWYWx1ZTx1bmtub3duLCBURXhwcmVzc2lvbj4ge1xuICAgIHJldHVybiBuZXcgQXN0VmFsdWUodGhpcy5ob3N0LnBhcnNlQ2FsbGVlKHRoaXMuZXhwcmVzc2lvbiksIHRoaXMuaG9zdCk7XG4gIH1cblxuICBnZXRBcmd1bWVudHMoKTogQXN0VmFsdWU8dW5rbm93biwgVEV4cHJlc3Npb24+W10ge1xuICAgIGNvbnN0IGFyZ3MgPSB0aGlzLmhvc3QucGFyc2VBcmd1bWVudHModGhpcy5leHByZXNzaW9uKTtcbiAgICByZXR1cm4gYXJncy5tYXAoYXJnID0+IG5ldyBBc3RWYWx1ZShhcmcsIHRoaXMuaG9zdCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgYFRFeHByZXNzaW9uYCBvZiB0aGlzIHZhbHVlIHdyYXBwZWQgaW4gYSBgV3JhcHBlZE5vZGVFeHByYC5cbiAgICovXG4gIGdldE9wYXF1ZSgpOiBvLldyYXBwZWROb2RlRXhwcjxURXhwcmVzc2lvbj4ge1xuICAgIHJldHVybiBuZXcgby5XcmFwcGVkTm9kZUV4cHIodGhpcy5leHByZXNzaW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHJhbmdlIG9mIHRoZSBsb2NhdGlvbiBvZiB0aGlzIHZhbHVlIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UuXG4gICAqL1xuICBnZXRSYW5nZSgpOiBSYW5nZSB7XG4gICAgcmV0dXJuIHRoaXMuaG9zdC5nZXRSYW5nZSh0aGlzLmV4cHJlc3Npb24pO1xuICB9XG59XG4iXX0=
@@ -1,156 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import * as ts from 'typescript';
9
- import { FatalLinkerError } from '../../fatal_linker_error';
10
- import { assert } from '../utils';
11
- /**
12
- * This implementation of `AstHost` is able to get information from TypeScript AST nodes.
13
- *
14
- * This host is not actually used at runtime in the current code.
15
- *
16
- * It is implemented here to ensure that the `AstHost` abstraction is not unfairly skewed towards
17
- * the Babel implementation. It could also provide a basis for a 3rd TypeScript compiler plugin to
18
- * do linking in the future.
19
- */
20
- export class TypeScriptAstHost {
21
- constructor() {
22
- this.isStringLiteral = ts.isStringLiteral;
23
- this.isNumericLiteral = ts.isNumericLiteral;
24
- this.isArrayLiteral = ts.isArrayLiteralExpression;
25
- this.isObjectLiteral = ts.isObjectLiteralExpression;
26
- this.isCallExpression = ts.isCallExpression;
27
- }
28
- getSymbolName(node) {
29
- if (ts.isIdentifier(node)) {
30
- return node.text;
31
- }
32
- else if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name)) {
33
- return node.name.text;
34
- }
35
- else {
36
- return null;
37
- }
38
- }
39
- parseStringLiteral(str) {
40
- assert(str, this.isStringLiteral, 'a string literal');
41
- return str.text;
42
- }
43
- parseNumericLiteral(num) {
44
- assert(num, this.isNumericLiteral, 'a numeric literal');
45
- return parseInt(num.text);
46
- }
47
- isBooleanLiteral(node) {
48
- return isBooleanLiteral(node) || isMinifiedBooleanLiteral(node);
49
- }
50
- parseBooleanLiteral(bool) {
51
- if (isBooleanLiteral(bool)) {
52
- return bool.kind === ts.SyntaxKind.TrueKeyword;
53
- }
54
- else if (isMinifiedBooleanLiteral(bool)) {
55
- return !(+bool.operand.text);
56
- }
57
- else {
58
- throw new FatalLinkerError(bool, 'Unsupported syntax, expected a boolean literal.');
59
- }
60
- }
61
- parseArrayLiteral(array) {
62
- assert(array, this.isArrayLiteral, 'an array literal');
63
- return array.elements.map(element => {
64
- assert(element, isNotEmptyElement, 'element in array not to be empty');
65
- assert(element, isNotSpreadElement, 'element in array not to use spread syntax');
66
- return element;
67
- });
68
- }
69
- parseObjectLiteral(obj) {
70
- assert(obj, this.isObjectLiteral, 'an object literal');
71
- const result = new Map();
72
- for (const property of obj.properties) {
73
- assert(property, ts.isPropertyAssignment, 'a property assignment');
74
- assert(property.name, isPropertyName, 'a property name');
75
- result.set(property.name.text, property.initializer);
76
- }
77
- return result;
78
- }
79
- isFunctionExpression(node) {
80
- return ts.isFunctionExpression(node) || ts.isArrowFunction(node);
81
- }
82
- parseReturnValue(fn) {
83
- assert(fn, this.isFunctionExpression, 'a function');
84
- if (!ts.isBlock(fn.body)) {
85
- // it is a simple array function expression: `(...) => expr`
86
- return fn.body;
87
- }
88
- // it is a function (arrow or normal) with a body. E.g.:
89
- // * `(...) => { stmt; ... }`
90
- // * `function(...) { stmt; ... }`
91
- if (fn.body.statements.length !== 1) {
92
- throw new FatalLinkerError(fn.body, 'Unsupported syntax, expected a function body with a single return statement.');
93
- }
94
- const stmt = fn.body.statements[0];
95
- assert(stmt, ts.isReturnStatement, 'a function body with a single return statement');
96
- if (stmt.expression === undefined) {
97
- throw new FatalLinkerError(stmt, 'Unsupported syntax, expected function to return a value.');
98
- }
99
- return stmt.expression;
100
- }
101
- parseCallee(call) {
102
- assert(call, ts.isCallExpression, 'a call expression');
103
- return call.expression;
104
- }
105
- parseArguments(call) {
106
- assert(call, ts.isCallExpression, 'a call expression');
107
- return call.arguments.map(arg => {
108
- assert(arg, isNotSpreadElement, 'argument not to use spread syntax');
109
- return arg;
110
- });
111
- }
112
- getRange(node) {
113
- const file = node.getSourceFile();
114
- if (file === undefined) {
115
- throw new FatalLinkerError(node, 'Unable to read range for node - it is missing parent information.');
116
- }
117
- const startPos = node.getStart();
118
- const endPos = node.getEnd();
119
- const { line: startLine, character: startCol } = ts.getLineAndCharacterOfPosition(file, startPos);
120
- return { startLine, startCol, startPos, endPos };
121
- }
122
- }
123
- /**
124
- * Return true if the expression does not represent an empty element in an array literal.
125
- * For example in `[,foo]` the first element is "empty".
126
- */
127
- function isNotEmptyElement(e) {
128
- return !ts.isOmittedExpression(e);
129
- }
130
- /**
131
- * Return true if the expression is not a spread element of an array literal.
132
- * For example in `[x, ...rest]` the `...rest` expression is a spread element.
133
- */
134
- function isNotSpreadElement(e) {
135
- return !ts.isSpreadElement(e);
136
- }
137
- /**
138
- * Return true if the expression can be considered a text based property name.
139
- */
140
- function isPropertyName(e) {
141
- return ts.isIdentifier(e) || ts.isStringLiteral(e) || ts.isNumericLiteral(e);
142
- }
143
- /**
144
- * Return true if the node is either `true` or `false` literals.
145
- */
146
- function isBooleanLiteral(node) {
147
- return node.kind === ts.SyntaxKind.TrueKeyword || node.kind === ts.SyntaxKind.FalseKeyword;
148
- }
149
- /**
150
- * Return true if the node is either `!0` or `!1`.
151
- */
152
- function isMinifiedBooleanLiteral(node) {
153
- return ts.isPrefixUnaryExpression(node) && node.operator === ts.SyntaxKind.ExclamationToken &&
154
- ts.isNumericLiteral(node.operand) && (node.operand.text === '0' || node.operand.text === '1');
155
- }
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdF9hc3RfaG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9saW5rZXIvc3JjL2FzdC90eXBlc2NyaXB0L3R5cGVzY3JpcHRfYXN0X2hvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFakMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFMUQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUdoQzs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sT0FBTyxpQkFBaUI7SUFBOUI7UUFXRSxvQkFBZSxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7UUFPckMscUJBQWdCLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO1FBcUJ2QyxtQkFBYyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztRQVc3QyxvQkFBZSxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztRQTBDL0MscUJBQWdCLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO0lBMEJ6QyxDQUFDO0lBckhDLGFBQWEsQ0FBQyxJQUFtQjtRQUMvQixJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDekIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ2xCO2FBQU0sSUFBSSxFQUFFLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDNUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUN2QjthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFJRCxrQkFBa0IsQ0FBQyxHQUFrQjtRQUNuQyxN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QUMsZ0JBQWdCO1FBQ3ZGLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDcEcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHtGYXRhbExpbmtlckVycm9yfSBmcm9tICcuLi8uLi9mYXRhbF9saW5rZXJfZXJyb3InO1xuaW1wb3J0IHtBc3RIb3N0LCBSYW5nZX0gZnJvbSAnLi4vYXN0X2hvc3QnO1xuaW1wb3J0IHthc3NlcnR9IGZyb20gJy4uL3V0aWxzJztcblxuXG4vKipcbiAqIFRoaXMgaW1wbGVtZW50YXRpb24gb2YgYEFzdEhvc3RgIGlzIGFibGUgdG8gZ2V0IGluZm9ybWF0aW9uIGZyb20gVHlwZVNjcmlwdCBBU1Qgbm9kZXMuXG4gKlxuICogVGhpcyBob3N0IGlzIG5vdCBhY3R1YWxseSB1c2VkIGF0IHJ1bnRpbWUgaW4gdGhlIGN1cnJlbnQgY29kZS5cbiAqXG4gKiBJdCBpcyBpbXBsZW1lbnRlZCBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSBgQXN0SG9zdGAgYWJzdHJhY3Rpb24gaXMgbm90IHVuZmFpcmx5IHNrZXdlZCB0b3dhcmRzXG4gKiB0aGUgQmFiZWwgaW1wbGVtZW50YXRpb24uIEl0IGNvdWxkIGFsc28gcHJvdmlkZSBhIGJhc2lzIGZvciBhIDNyZCBUeXBlU2NyaXB0IGNvbXBpbGVyIHBsdWdpbiB0b1xuICogZG8gbGlua2luZyBpbiB0aGUgZnV0dXJlLlxuICovXG5leHBvcnQgY2xhc3MgVHlwZVNjcmlwdEFzdEhvc3QgaW1wbGVtZW50cyBBc3RIb3N0PHRzLkV4cHJlc3Npb24+IHtcbiAgZ2V0U3ltYm9sTmFtZShub2RlOiB0cy5FeHByZXNzaW9uKTogc3RyaW5nfG51bGwge1xuICAgIGlmICh0cy5pc0lkZW50aWZpZXIobm9kZSkpIHtcbiAgICAgIHJldHVybiBub2RlLnRleHQ7XG4gICAgfSBlbHNlIGlmICh0cy5pc1Byb3BlcnR5QWNjZXNzRXhwcmVzc2lvbihub2RlKSAmJiB0cy5pc0lkZW50aWZpZXIobm9kZS5uYW1lKSkge1xuICAgICAgcmV0dXJuIG5vZGUubmFtZS50ZXh0O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBpc1N0cmluZ0xpdGVyYWwgPSB0cy5pc1N0cmluZ0xpdGVyYWw7XG5cbiAgcGFyc2VTdHJpbmdMaXRlcmFsKHN0cjogdHMuRXhwcmVzc2lvbik6IHN0cmluZyB7XG4gICAgYXNzZXJ0KHN0ciwgdGhpcy5pc1N0cmluZ0xpdGVyYWwsICdhIHN0cmluZyBsaXRlcmFsJyk7XG4gICAgcmV0dXJuIHN0ci50ZXh0O1xuICB9XG5cbiAgaXNOdW1lcmljTGl0ZXJhbCA9IHRzLmlzTnVtZXJpY0xpdGVyYWw7XG5cbiAgcGFyc2VOdW1lcmljTGl0ZXJhbChudW06IHRzLkV4cHJlc3Npb24pOiBudW1iZXIge1xuICAgIGFzc2VydChudW0sIHRoaXMuaXNOdW1lcmljTGl0ZXJhbCwgJ2EgbnVtZXJpYyBsaXRlcmFsJyk7XG4gICAgcmV0dXJuIHBhcnNlSW50KG51bS50ZXh0KTtcbiAgfVxuXG4gIGlzQm9vbGVhbkxpdGVyYWwobm9kZTogdHMuRXhwcmVzc2lvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0Jvb2xlYW5MaXRlcmFsKG5vZGUpIHx8IGlzTWluaWZpZWRCb29sZWFuTGl0ZXJhbChub2RlKTtcbiAgfVxuXG4gIHBhcnNlQm9vbGVhbkxpdGVyYWwoYm9vbDogdHMuRXhwcmVzc2lvbik6IGJvb2xlYW4ge1xuICAgIGlmIChpc0Jvb2xlYW5MaXRlcmFsKGJvb2wpKSB7XG4gICAgICByZXR1cm4gYm9vbC5raW5kID09PSB0cy5TeW50YXhLaW5kLlRydWVLZXl3b3JkO1xuICAgIH0gZWxzZSBpZiAoaXNNaW5pZmllZEJvb2xlYW5MaXRlcmFsKGJvb2wpKSB7XG4gICAgICByZXR1cm4gISgrYm9vbC5vcGVyYW5kLnRleHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRmF0YWxMaW5rZXJFcnJvcihib29sLCAnVW5zdXBwb3J0ZWQgc3ludGF4LCBleHBlY3RlZCBhIGJvb2xlYW4gbGl0ZXJhbC4nKTtcbiAgICB9XG4gIH1cblxuICBpc0FycmF5TGl0ZXJhbCA9IHRzLmlzQXJyYXlMaXRlcmFsRXhwcmVzc2lvbjtcblxuICBwYXJzZUFycmF5TGl0ZXJhbChhcnJheTogdHMuRXhwcmVzc2lvbik6IHRzLkV4cHJlc3Npb25bXSB7XG4gICAgYXNzZXJ0KGFycmF5LCB0aGlzLmlzQXJyYXlMaXRlcmFsLCAnYW4gYXJyYXkgbGl0ZXJhbCcpO1xuICAgIHJldHVybiBhcnJheS5lbGVtZW50cy5tYXAoZWxlbWVudCA9PiB7XG4gICAgICBhc3NlcnQoZWxlbWVudCwgaXNOb3RFbXB0eUVsZW1lbnQsICdlbGVtZW50IGluIGFycmF5IG5vdCB0byBiZSBlbXB0eScpO1xuICAgICAgYXNzZXJ0KGVsZW1lbnQsIGlzTm90U3ByZWFkRWxlbWVudCwgJ2VsZW1lbnQgaW4gYXJyYXkgbm90IHRvIHVzZSBzcHJlYWQgc3ludGF4Jyk7XG4gICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9KTtcbiAgfVxuXG4gIGlzT2JqZWN0TGl0ZXJhbCA9IHRzLmlzT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb247XG5cbiAgcGFyc2VPYmplY3RMaXRlcmFsKG9iajogdHMuRXhwcmVzc2lvbik6IE1hcDxzdHJpbmcsIHRzLkV4cHJlc3Npb24+IHtcbiAgICBhc3NlcnQob2JqLCB0aGlzLmlzT2JqZWN0TGl0ZXJhbCwgJ2FuIG9iamVjdCBsaXRlcmFsJyk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBuZXcgTWFwPHN0cmluZywgdHMuRXhwcmVzc2lvbj4oKTtcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIG9iai5wcm9wZXJ0aWVzKSB7XG4gICAgICBhc3NlcnQocHJvcGVydHksIHRzLmlzUHJvcGVydHlBc3NpZ25tZW50LCAnYSBwcm9wZXJ0eSBhc3NpZ25tZW50Jyk7XG4gICAgICBhc3NlcnQocHJvcGVydHkubmFtZSwgaXNQcm9wZXJ0eU5hbWUsICdhIHByb3BlcnR5IG5hbWUnKTtcbiAgICAgIHJlc3VsdC5zZXQocHJvcGVydHkubmFtZS50ZXh0LCBwcm9wZXJ0eS5pbml0aWFsaXplcik7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBpc0Z1bmN0aW9uRXhwcmVzc2lvbihub2RlOiB0cy5FeHByZXNzaW9uKTogbm9kZSBpcyB0cy5GdW5jdGlvbkV4cHJlc3Npb258dHMuQXJyb3dGdW5jdGlvbiB7XG4gICAgcmV0dXJuIHRzLmlzRnVuY3Rpb25FeHByZXNzaW9uKG5vZGUpIHx8IHRzLmlzQXJyb3dGdW5jdGlvbihub2RlKTtcbiAgfVxuXG4gIHBhcnNlUmV0dXJuVmFsdWUoZm46IHRzLkV4cHJlc3Npb24pOiB0cy5FeHByZXNzaW9uIHtcbiAgICBhc3NlcnQoZm4sIHRoaXMuaXNGdW5jdGlvbkV4cHJlc3Npb24sICdhIGZ1bmN0aW9uJyk7XG4gICAgaWYgKCF0cy5pc0Jsb2NrKGZuLmJvZHkpKSB7XG4gICAgICAvLyBpdCBpcyBhIHNpbXBsZSBhcnJheSBmdW5jdGlvbiBleHByZXNzaW9uOiBgKC4uLikgPT4gZXhwcmBcbiAgICAgIHJldHVybiBmbi5ib2R5O1xuICAgIH1cblxuICAgIC8vIGl0IGlzIGEgZnVuY3Rpb24gKGFycm93IG9yIG5vcm1hbCkgd2l0aCBhIGJvZHkuIEUuZy46XG4gICAgLy8gKiBgKC4uLikgPT4geyBzdG10OyAuLi4gfWBcbiAgICAvLyAqIGBmdW5jdGlvbiguLi4pIHsgc3RtdDsgLi4uIH1gXG5cbiAgICBpZiAoZm4uYm9keS5zdGF0ZW1lbnRzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEZhdGFsTGlua2VyRXJyb3IoXG4gICAgICAgICAgZm4uYm9keSwgJ1Vuc3VwcG9ydGVkIHN5bnRheCwgZXhwZWN0ZWQgYSBmdW5jdGlvbiBib2R5IHdpdGggYSBzaW5nbGUgcmV0dXJuIHN0YXRlbWVudC4nKTtcbiAgICB9XG4gICAgY29uc3Qgc3RtdCA9IGZuLmJvZHkuc3RhdGVtZW50c1swXTtcbiAgICBhc3NlcnQoc3RtdCwgdHMuaXNSZXR1cm5TdGF0ZW1lbnQsICdhIGZ1bmN0aW9uIGJvZHkgd2l0aCBhIHNpbmdsZSByZXR1cm4gc3RhdGVtZW50Jyk7XG4gICAgaWYgKHN0bXQuZXhwcmVzc2lvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRmF0YWxMaW5rZXJFcnJvcihzdG10LCAnVW5zdXBwb3J0ZWQgc3ludGF4LCBleHBlY3RlZCBmdW5jdGlvbiB0byByZXR1cm4gYSB2YWx1ZS4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RtdC5leHByZXNzaW9uO1xuICB9XG5cbiAgaXNDYWxsRXhwcmVzc2lvbiA9IHRzLmlzQ2FsbEV4cHJlc3Npb247XG5cbiAgcGFyc2VDYWxsZWUoY2FsbDogdHMuRXhwcmVzc2lvbik6IHRzLkV4cHJlc3Npb24ge1xuICAgIGFzc2VydChjYWxsLCB0cy5pc0NhbGxFeHByZXNzaW9uLCAnYSBjYWxsIGV4cHJlc3Npb24nKTtcbiAgICByZXR1cm4gY2FsbC5leHByZXNzaW9uO1xuICB9XG5cbiAgcGFyc2VBcmd1bWVudHMoY2FsbDogdHMuRXhwcmVzc2lvbik6IHRzLkV4cHJlc3Npb25bXSB7XG4gICAgYXNzZXJ0KGNhbGwsIHRzLmlzQ2FsbEV4cHJlc3Npb24sICdhIGNhbGwgZXhwcmVzc2lvbicpO1xuICAgIHJldHVybiBjYWxsLmFyZ3VtZW50cy5tYXAoYXJnID0+IHtcbiAgICAgIGFzc2VydChhcmcsIGlzTm90U3ByZWFkRWxlbWVudCwgJ2FyZ3VtZW50IG5vdCB0byB1c2Ugc3ByZWFkIHN5bnRheCcpO1xuICAgICAgcmV0dXJuIGFyZztcbiAgICB9KTtcbiAgfVxuXG4gIGdldFJhbmdlKG5vZGU6IHRzLkV4cHJlc3Npb24pOiBSYW5nZSB7XG4gICAgY29uc3QgZmlsZSA9IG5vZGUuZ2V0U291cmNlRmlsZSgpO1xuICAgIGlmIChmaWxlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBGYXRhbExpbmtlckVycm9yKFxuICAgICAgICAgIG5vZGUsICdVbmFibGUgdG8gcmVhZCByYW5nZSBmb3Igbm9kZSAtIGl0IGlzIG1pc3NpbmcgcGFyZW50IGluZm9ybWF0aW9uLicpO1xuICAgIH1cbiAgICBjb25zdCBzdGFydFBvcyA9IG5vZGUuZ2V0U3RhcnQoKTtcbiAgICBjb25zdCBlbmRQb3MgPSBub2RlLmdldEVuZCgpO1xuICAgIGNvbnN0IHtsaW5lOiBzdGFydExpbmUsIGNoYXJhY3Rlcjogc3RhcnRDb2x9ID0gdHMuZ2V0TGluZUFuZENoYXJhY3Rlck9mUG9zaXRpb24oZmlsZSwgc3RhcnRQb3MpO1xuICAgIHJldHVybiB7c3RhcnRMaW5lLCBzdGFydENvbCwgc3RhcnRQb3MsIGVuZFBvc307XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZXhwcmVzc2lvbiBkb2VzIG5vdCByZXByZXNlbnQgYW4gZW1wdHkgZWxlbWVudCBpbiBhbiBhcnJheSBsaXRlcmFsLlxuICogRm9yIGV4YW1wbGUgaW4gYFssZm9vXWAgdGhlIGZpcnN0IGVsZW1lbnQgaXMgXCJlbXB0eVwiLlxuICovXG5mdW5jdGlvbiBpc05vdEVtcHR5RWxlbWVudChlOiB0cy5FeHByZXNzaW9ufHRzLlNwcmVhZEVsZW1lbnR8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0cy5PbWl0dGVkRXhwcmVzc2lvbik6IGUgaXMgdHMuRXhwcmVzc2lvbnx0cy5TcHJlYWRFbGVtZW50IHtcbiAgcmV0dXJuICF0cy5pc09taXR0ZWRFeHByZXNzaW9uKGUpO1xufVxuXG4vKipcbiAqIFJldHVybiB0cnVlIGlmIHRoZSBleHByZXNzaW9uIGlzIG5vdCBhIHNwcmVhZCBlbGVtZW50IG9mIGFuIGFycmF5IGxpdGVyYWwuXG4gKiBGb3IgZXhhbXBsZSBpbiBgW3gsIC4uLnJlc3RdYCB0aGUgYC4uLnJlc3RgIGV4cHJlc3Npb24gaXMgYSBzcHJlYWQgZWxlbWVudC5cbiAqL1xuZnVuY3Rpb24gaXNOb3RTcHJlYWRFbGVtZW50KGU6IHRzLkV4cHJlc3Npb258dHMuU3ByZWFkRWxlbWVudCk6IGUgaXMgdHMuRXhwcmVzc2lvbiB7XG4gIHJldHVybiAhdHMuaXNTcHJlYWRFbGVtZW50KGUpO1xufVxuXG4vKipcbiAqIFJldHVybiB0cnVlIGlmIHRoZSBleHByZXNzaW9uIGNhbiBiZSBjb25zaWRlcmVkIGEgdGV4dCBiYXNlZCBwcm9wZXJ0eSBuYW1lLlxuICovXG5mdW5jdGlvbiBpc1Byb3BlcnR5TmFtZShlOiB0cy5Qcm9wZXJ0eU5hbWUpOiBlIGlzIHRzLklkZW50aWZpZXJ8dHMuU3RyaW5nTGl0ZXJhbHx0cy5OdW1lcmljTGl0ZXJhbCB7XG4gIHJldHVybiB0cy5pc0lkZW50aWZpZXIoZSkgfHwgdHMuaXNTdHJpbmdMaXRlcmFsKGUpIHx8IHRzLmlzTnVtZXJpY0xpdGVyYWwoZSk7XG59XG5cbi8qKlxuICogUmV0dXJuIHRydWUgaWYgdGhlIG5vZGUgaXMgZWl0aGVyIGB0cnVlYCBvciBgZmFsc2VgIGxpdGVyYWxzLlxuICovXG5mdW5jdGlvbiBpc0Jvb2xlYW5MaXRlcmFsKG5vZGU6IHRzLkV4cHJlc3Npb24pOiBub2RlIGlzIHRzLlRydWVMaXRlcmFsfHRzLkZhbHNlTGl0ZXJhbCB7XG4gIHJldHVybiBub2RlLmtpbmQgPT09IHRzLlN5bnRheEtpbmQuVHJ1ZUtleXdvcmQgfHwgbm9kZS5raW5kID09PSB0cy5TeW50YXhLaW5kLkZhbHNlS2V5d29yZDtcbn1cblxudHlwZSBNaW5pZmllZEJvb2xlYW5MaXRlcmFsID0gdHMuUHJlZml4VW5hcnlFeHByZXNzaW9uJntvcGVyYW5kOiB0cy5OdW1lcmljTGl0ZXJhbH07XG5cbi8qKlxuICogUmV0dXJuIHRydWUgaWYgdGhlIG5vZGUgaXMgZWl0aGVyIGAhMGAgb3IgYCExYC5cbiAqL1xuZnVuY3Rpb24gaXNNaW5pZmllZEJvb2xlYW5MaXRlcmFsKG5vZGU6IHRzLkV4cHJlc3Npb24pOiBub2RlIGlzIE1pbmlmaWVkQm9vbGVhbkxpdGVyYWwge1xuICByZXR1cm4gdHMuaXNQcmVmaXhVbmFyeUV4cHJlc3Npb24obm9kZSkgJiYgbm9kZS5vcGVyYXRvciA9PT0gdHMuU3ludGF4S2luZC5FeGNsYW1hdGlvblRva2VuICYmXG4gICAgICB0cy5pc051bWVyaWNMaXRlcmFsKG5vZGUub3BlcmFuZCkgJiYgKG5vZGUub3BlcmFuZC50ZXh0ID09PSAnMCcgfHwgbm9kZS5vcGVyYW5kLnRleHQgPT09ICcxJyk7XG59XG4iXX0=
@@ -1,17 +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 { FatalLinkerError } from '../fatal_linker_error';
9
- /**
10
- * Assert that the given `node` is of the type guarded by the `predicate` function.
11
- */
12
- export function assert(node, predicate, expected) {
13
- if (!predicate(node)) {
14
- throw new FatalLinkerError(node, `Unsupported syntax, expected ${expected}.`);
15
- }
16
- }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL3NyYy9hc3QvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFdkQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsTUFBTSxDQUNsQixJQUFPLEVBQUUsU0FBaUMsRUFBRSxRQUFnQjtJQUM5RCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3BCLE1BQU0sSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsZ0NBQWdDLFFBQVEsR0FBRyxDQUFDLENBQUM7S0FDL0U7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge0ZhdGFsTGlua2VyRXJyb3J9IGZyb20gJy4uL2ZhdGFsX2xpbmtlcl9lcnJvcic7XG5cbi8qKlxuICogQXNzZXJ0IHRoYXQgdGhlIGdpdmVuIGBub2RlYCBpcyBvZiB0aGUgdHlwZSBndWFyZGVkIGJ5IHRoZSBgcHJlZGljYXRlYCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydDxULCBLIGV4dGVuZHMgVD4oXG4gICAgbm9kZTogVCwgcHJlZGljYXRlOiAobm9kZTogVCkgPT4gbm9kZSBpcyBLLCBleHBlY3RlZDogc3RyaW5nKTogYXNzZXJ0cyBub2RlIGlzIEsge1xuICBpZiAoIXByZWRpY2F0ZShub2RlKSkge1xuICAgIHRocm93IG5ldyBGYXRhbExpbmtlckVycm9yKG5vZGUsIGBVbnN1cHBvcnRlZCBzeW50YXgsIGV4cGVjdGVkICR7ZXhwZWN0ZWR9LmApO1xuICB9XG59XG4iXX0=
@@ -1,30 +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
- * An unrecoverable error during linking.
10
- */
11
- export class FatalLinkerError extends Error {
12
- /**
13
- * Create a new FatalLinkerError.
14
- *
15
- * @param node The AST node where the error occurred.
16
- * @param message A description of the error.
17
- */
18
- constructor(node, message) {
19
- super(message);
20
- this.node = node;
21
- this.type = 'FatalLinkerError';
22
- }
23
- }
24
- /**
25
- * Whether the given object `e` is a FatalLinkerError.
26
- */
27
- export function isFatalLinkerError(e) {
28
- return e && e.type === 'FatalLinkerError';
29
- }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmF0YWxfbGlua2VyX2Vycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL2xpbmtlci9zcmMvZmF0YWxfbGlua2VyX2Vycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVIOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGdCQUFpQixTQUFRLEtBQUs7SUFHekM7Ozs7O09BS0c7SUFDSCxZQUFtQixJQUFhLEVBQUUsT0FBZTtRQUMvQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFERSxTQUFJLEdBQUosSUFBSSxDQUFTO1FBUnZCLFNBQUksR0FBRyxrQkFBa0IsQ0FBQztJQVVuQyxDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxDQUFNO0lBQ3ZDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssa0JBQWtCLENBQUM7QUFDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEFuIHVucmVjb3ZlcmFibGUgZXJyb3IgZHVyaW5nIGxpbmtpbmcuXG4gKi9cbmV4cG9ydCBjbGFzcyBGYXRhbExpbmtlckVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICByZWFkb25seSB0eXBlID0gJ0ZhdGFsTGlua2VyRXJyb3InO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgRmF0YWxMaW5rZXJFcnJvci5cbiAgICpcbiAgICogQHBhcmFtIG5vZGUgVGhlIEFTVCBub2RlIHdoZXJlIHRoZSBlcnJvciBvY2N1cnJlZC5cbiAgICogQHBhcmFtIG1lc3NhZ2UgQSBkZXNjcmlwdGlvbiBvZiB0aGUgZXJyb3IuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgbm9kZTogdW5rbm93biwgbWVzc2FnZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRoZSBnaXZlbiBvYmplY3QgYGVgIGlzIGEgRmF0YWxMaW5rZXJFcnJvci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRmF0YWxMaW5rZXJFcnJvcihlOiBhbnkpOiBlIGlzIEZhdGFsTGlua2VyRXJyb3Ige1xuICByZXR1cm4gZSAmJiBlLnR5cGUgPT09ICdGYXRhbExpbmtlckVycm9yJztcbn1cbiJdfQ==
@@ -1,9 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- export {};
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjbGFyYXRpb25fc2NvcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL3NyYy9maWxlX2xpbmtlci9kZWNsYXJhdGlvbl9zY29wZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBUaGlzIGludGVyZmFjZSByZXByZXNlbnRzIHRoZSBsZXhpY2FsIHNjb3BlIG9mIGEgcGFydGlhbCBkZWNsYXJhdGlvbiBpbiB0aGUgc291cmNlIGNvZGUuXG4gKlxuICogRm9yIGV4YW1wbGUsIGlmIHlvdSBoYWQgdGhlIGZvbGxvd2luZyBjb2RlOlxuICpcbiAqIGBgYFxuICogZnVuY3Rpb24gZm9vKCkge1xuICogICBmdW5jdGlvbiBiYXIgKCkge1xuICogICAgIMm1ybVuZ0RlY2xhcmVEaXJlY3RpdmUoey4uLn0pO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBUaGUgYERlY2xhcmF0aW9uU2NvcGVgIG9mIHRoZSBgybXJtW5nRGVjbGFyZURpcmVjdGl2ZSgpYCBjYWxsIGlzIHRoZSBib2R5IG9mIHRoZSBgYmFyKClgIGZ1bmN0aW9uLlxuICpcbiAqIFRoZSBgRmlsZUxpbmtlcmAgdXNlcyB0aGlzIG9iamVjdCB0byBpZGVudGlmeSB0aGUgbGV4aWNhbCBzY29wZSBvZiBhbnkgY29uc3RhbnQgc3RhdGVtZW50cyB0aGF0XG4gKiBtaWdodCBiZSBnZW5lcmF0ZWQgYnkgdGhlIGxpbmtpbmcgcHJvY2VzcyAoaS5lLiB3aGVyZSB0aGUgYENvbnN0YW50UG9vbGAgbGl2ZXMgZm9yIGEgc2V0IG9mXG4gKiBwYXJ0aWFsIGxpbmtlcnMpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlY2xhcmF0aW9uU2NvcGU8VFNoYXJlZENvbnN0YW50U2NvcGUsIFRFeHByZXNzaW9uPiB7XG4gIC8qKlxuICAgKiBHZXQgYSBgVFNoYXJlZENvbnN0YW50U2NvcGVgIG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlZmVyZW5jZSB0aGUgbGV4aWNhbCBzY29wZSB3aGVyZSBhbnlcbiAgICogc2hhcmVkIGNvbnN0YW50IHN0YXRlbWVudHMgd291bGQgYmUgaW5zZXJ0ZWQuXG4gICAqXG4gICAqIFRoaXMgb2JqZWN0IGlzIGdlbmVyaWMgYmVjYXVzZSBkaWZmZXJlbnQgQVNUIGltcGxlbWVudGF0aW9ucyB3aWxsIG5lZWQgZGlmZmVyZW50XG4gICAqIGBUQ29uc3RhbnRTY29wZWAgdHlwZXMgdG8gYmUgYWJsZSB0byBpbnNlcnQgc2hhcmVkIGNvbnN0YW50IHN0YXRlbWVudHMuIEZvciBleGFtcGxlIGluIEJhYmVsXG4gICAqIHRoaXMgd291bGQgYmUgYSBgTm9kZVBhdGhgIG9iamVjdDsgaW4gVFMgaXQgd291bGQganVzdCBiZSBhIGBOb2RlYCBvYmplY3QuXG4gICAqXG4gICAqIElmIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBmaW5kIHN1Y2ggYSBzaGFyZWQgc2NvcGUsIHRoZW4gY29uc3RhbnQgc3RhdGVtZW50cyB3aWxsIGJlIHdyYXBwZWQgdXBcbiAgICogd2l0aCB0aGVpciBnZW5lcmF0ZWQgbGlua2VkIGRlZmluaXRpb24gZXhwcmVzc2lvbiwgaW4gdGhlIGZvcm0gb2YgYW4gSUlGRS5cbiAgICpcbiAgICogQHBhcmFtIGV4cHJlc3Npb24gdGhlIGV4cHJlc3Npb24gdGhhdCBwb2ludHMgdG8gdGhlIEFuZ3VsYXIgY29yZSBmcmFtZXdvcmsgaW1wb3J0LlxuICAgKiBAcmV0dXJucyBhIHJlZmVyZW5jZSB0byBhIHJlZmVyZW5jZSBvYmplY3QgZm9yIHdoZXJlIHRoZSBzaGFyZWQgY29uc3RhbnQgc3RhdGVtZW50cyB3aWxsIGJlXG4gICAqICAgICBpbnNlcnRlZCwgb3IgYG51bGxgIGlmIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBoYXZlIGEgc2hhcmVkIHNjb3BlLlxuICAgKi9cbiAgZ2V0Q29uc3RhbnRTY29wZVJlZihleHByZXNzaW9uOiBURXhwcmVzc2lvbik6IFRTaGFyZWRDb25zdGFudFNjb3BlfG51bGw7XG59XG4iXX0=
@@ -1,41 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import { ConstantPool } from '@angular/compiler';
9
- import { LinkerImportGenerator } from '../../linker_import_generator';
10
- /**
11
- * This class represents (from the point of view of the `FileLinker`) the scope in which
12
- * statements and expressions related to a linked partial declaration will be emitted.
13
- *
14
- * It holds a copy of a `ConstantPool` that is used to capture any constant statements that need to
15
- * be emitted in this context.
16
- *
17
- * This implementation will emit the definition and the constant statements separately.
18
- */
19
- export class EmitScope {
20
- constructor(ngImport, translator) {
21
- this.ngImport = ngImport;
22
- this.translator = translator;
23
- this.constantPool = new ConstantPool();
24
- }
25
- /**
26
- * Translate the given Output AST definition expression into a generic `TExpression`.
27
- *
28
- * Use a `LinkerImportGenerator` to handle any imports in the definition.
29
- */
30
- translateDefinition(definition) {
31
- return this.translator.translateExpression(definition, new LinkerImportGenerator(this.ngImport));
32
- }
33
- /**
34
- * Return any constant statements that are shared between all uses of this `EmitScope`.
35
- */
36
- getConstantStatements() {
37
- const importGenerator = new LinkerImportGenerator(this.ngImport);
38
- return this.constantPool.statements.map(statement => this.translator.translateStatement(statement, importGenerator));
39
- }
40
- }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pdF9zY29wZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9saW5rZXIvc3JjL2ZpbGVfbGlua2VyL2VtaXRfc2NvcGVzL2VtaXRfc2NvcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRS9DLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBR3BFOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxPQUFPLFNBQVM7SUFHcEIsWUFDdUIsUUFBcUIsRUFDckIsVUFBK0M7UUFEL0MsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixlQUFVLEdBQVYsVUFBVSxDQUFxQztRQUo3RCxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFJOEIsQ0FBQztJQUUxRTs7OztPQUlHO0lBQ0gsbUJBQW1CLENBQUMsVUFBd0I7UUFDMUMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUN0QyxVQUFVLEVBQUUsSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxxQkFBcUI7UUFDbkIsTUFBTSxlQUFlLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ25DLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7Q29uc3RhbnRQb29sfSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XG5pbXBvcnQgKiBhcyBvIGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyL3NyYy9vdXRwdXQvb3V0cHV0X2FzdCc7XG5pbXBvcnQge0xpbmtlckltcG9ydEdlbmVyYXRvcn0gZnJvbSAnLi4vLi4vbGlua2VyX2ltcG9ydF9nZW5lcmF0b3InO1xuaW1wb3J0IHtUcmFuc2xhdG9yfSBmcm9tICcuLi90cmFuc2xhdG9yJztcblxuLyoqXG4gKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgKGZyb20gdGhlIHBvaW50IG9mIHZpZXcgb2YgdGhlIGBGaWxlTGlua2VyYCkgdGhlIHNjb3BlIGluIHdoaWNoXG4gKiBzdGF0ZW1lbnRzIGFuZCBleHByZXNzaW9ucyByZWxhdGVkIHRvIGEgbGlua2VkIHBhcnRpYWwgZGVjbGFyYXRpb24gd2lsbCBiZSBlbWl0dGVkLlxuICpcbiAqIEl0IGhvbGRzIGEgY29weSBvZiBhIGBDb25zdGFudFBvb2xgIHRoYXQgaXMgdXNlZCB0byBjYXB0dXJlIGFueSBjb25zdGFudCBzdGF0ZW1lbnRzIHRoYXQgbmVlZCB0b1xuICogYmUgZW1pdHRlZCBpbiB0aGlzIGNvbnRleHQuXG4gKlxuICogVGhpcyBpbXBsZW1lbnRhdGlvbiB3aWxsIGVtaXQgdGhlIGRlZmluaXRpb24gYW5kIHRoZSBjb25zdGFudCBzdGF0ZW1lbnRzIHNlcGFyYXRlbHkuXG4gKi9cbmV4cG9ydCBjbGFzcyBFbWl0U2NvcGU8VFN0YXRlbWVudCwgVEV4cHJlc3Npb24+IHtcbiAgcmVhZG9ubHkgY29uc3RhbnRQb29sID0gbmV3IENvbnN0YW50UG9vbCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5nSW1wb3J0OiBURXhwcmVzc2lvbixcbiAgICAgIHByb3RlY3RlZCByZWFkb25seSB0cmFuc2xhdG9yOiBUcmFuc2xhdG9yPFRTdGF0ZW1lbnQsIFRFeHByZXNzaW9uPikge31cblxuICAvKipcbiAgICogVHJhbnNsYXRlIHRoZSBnaXZlbiBPdXRwdXQgQVNUIGRlZmluaXRpb24gZXhwcmVzc2lvbiBpbnRvIGEgZ2VuZXJpYyBgVEV4cHJlc3Npb25gLlxuICAgKlxuICAgKiBVc2UgYSBgTGlua2VySW1wb3J0R2VuZXJhdG9yYCB0byBoYW5kbGUgYW55IGltcG9ydHMgaW4gdGhlIGRlZmluaXRpb24uXG4gICAqL1xuICB0cmFuc2xhdGVEZWZpbml0aW9uKGRlZmluaXRpb246IG8uRXhwcmVzc2lvbik6IFRFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdG9yLnRyYW5zbGF0ZUV4cHJlc3Npb24oXG4gICAgICAgIGRlZmluaXRpb24sIG5ldyBMaW5rZXJJbXBvcnRHZW5lcmF0b3IodGhpcy5uZ0ltcG9ydCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbnkgY29uc3RhbnQgc3RhdGVtZW50cyB0aGF0IGFyZSBzaGFyZWQgYmV0d2VlbiBhbGwgdXNlcyBvZiB0aGlzIGBFbWl0U2NvcGVgLlxuICAgKi9cbiAgZ2V0Q29uc3RhbnRTdGF0ZW1lbnRzKCk6IFRTdGF0ZW1lbnRbXSB7XG4gICAgY29uc3QgaW1wb3J0R2VuZXJhdG9yID0gbmV3IExpbmtlckltcG9ydEdlbmVyYXRvcih0aGlzLm5nSW1wb3J0KTtcbiAgICByZXR1cm4gdGhpcy5jb25zdGFudFBvb2wuc3RhdGVtZW50cy5tYXAoXG4gICAgICAgIHN0YXRlbWVudCA9PiB0aGlzLnRyYW5zbGF0b3IudHJhbnNsYXRlU3RhdGVtZW50KHN0YXRlbWVudCwgaW1wb3J0R2VuZXJhdG9yKSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,33 +0,0 @@
1
- import { EmitScope } from './emit_scope';
2
- /**
3
- * This class is a specialization of the `EmitScope` class that is designed for the situation where
4
- * there is no clear shared scope for constant statements. In this case they are bundled with the
5
- * translated definition inside an IIFE.
6
- */
7
- export class IifeEmitScope extends EmitScope {
8
- constructor(ngImport, translator, factory) {
9
- super(ngImport, translator);
10
- this.factory = factory;
11
- }
12
- /**
13
- * Translate the given Output AST definition expression into a generic `TExpression`.
14
- *
15
- * Wraps the output from `EmitScope.translateDefinition()` and `EmitScope.getConstantStatements()`
16
- * in an IIFE.
17
- */
18
- translateDefinition(definition) {
19
- const constantStatements = super.getConstantStatements();
20
- const returnStatement = this.factory.createReturnStatement(super.translateDefinition(definition));
21
- const body = this.factory.createBlock([...constantStatements, returnStatement]);
22
- const fn = this.factory.createFunctionExpression(/* name */ null, /* args */ [], body);
23
- return this.factory.createCallExpression(fn, /* args */ [], /* pure */ false);
24
- }
25
- /**
26
- * It is not valid to call this method, since there will be no shared constant statements - they
27
- * are already emitted in the IIFE alongside the translated definition.
28
- */
29
- getConstantStatements() {
30
- throw new Error('BUG - IifeEmitScope should not expose any constant statements');
31
- }
32
- }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWlmZV9lbWl0X3Njb3BlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL2xpbmtlci9zcmMvZmlsZV9saW5rZXIvZW1pdF9zY29wZXMvaWlmZV9lbWl0X3Njb3BlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFdkM7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxhQUF1QyxTQUFRLFNBQWtDO0lBQzVGLFlBQ0ksUUFBcUIsRUFBRSxVQUErQyxFQUNyRCxPQUE0QztRQUMvRCxLQUFLLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRFQsWUFBTyxHQUFQLE9BQU8sQ0FBcUM7SUFFakUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsbUJBQW1CLENBQUMsVUFBd0I7UUFDMUMsTUFBTSxrQkFBa0IsR0FBRyxLQUFLLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUV6RCxNQUFNLGVBQWUsR0FDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUM5RSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsa0JBQWtCLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUNoRixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFBLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN0RixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQSxFQUFFLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRDs7O09BR0c7SUFDSCxxQkFBcUI7UUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQywrREFBK0QsQ0FBQyxDQUFDO0lBQ25GLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0ICogYXMgbyBmcm9tICdAYW5ndWxhci9jb21waWxlci9zcmMvb3V0cHV0L291dHB1dF9hc3QnO1xuXG5pbXBvcnQge0FzdEZhY3Rvcnl9IGZyb20gJy4uLy4uLy4uLy4uL3NyYy9uZ3RzYy90cmFuc2xhdG9yJztcbmltcG9ydCB7VHJhbnNsYXRvcn0gZnJvbSAnLi4vdHJhbnNsYXRvcic7XG5cbmltcG9ydCB7RW1pdFNjb3BlfSBmcm9tICcuL2VtaXRfc2NvcGUnO1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgaXMgYSBzcGVjaWFsaXphdGlvbiBvZiB0aGUgYEVtaXRTY29wZWAgY2xhc3MgdGhhdCBpcyBkZXNpZ25lZCBmb3IgdGhlIHNpdHVhdGlvbiB3aGVyZVxuICogdGhlcmUgaXMgbm8gY2xlYXIgc2hhcmVkIHNjb3BlIGZvciBjb25zdGFudCBzdGF0ZW1lbnRzLiBJbiB0aGlzIGNhc2UgdGhleSBhcmUgYnVuZGxlZCB3aXRoIHRoZVxuICogdHJhbnNsYXRlZCBkZWZpbml0aW9uIGluc2lkZSBhbiBJSUZFLlxuICovXG5leHBvcnQgY2xhc3MgSWlmZUVtaXRTY29wZTxUU3RhdGVtZW50LCBURXhwcmVzc2lvbj4gZXh0ZW5kcyBFbWl0U2NvcGU8VFN0YXRlbWVudCwgVEV4cHJlc3Npb24+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgICBuZ0ltcG9ydDogVEV4cHJlc3Npb24sIHRyYW5zbGF0b3I6IFRyYW5zbGF0b3I8VFN0YXRlbWVudCwgVEV4cHJlc3Npb24+LFxuICAgICAgcHJpdmF0ZSByZWFkb25seSBmYWN0b3J5OiBBc3RGYWN0b3J5PFRTdGF0ZW1lbnQsIFRFeHByZXNzaW9uPikge1xuICAgIHN1cGVyKG5nSW1wb3J0LCB0cmFuc2xhdG9yKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2xhdGUgdGhlIGdpdmVuIE91dHB1dCBBU1QgZGVmaW5pdGlvbiBleHByZXNzaW9uIGludG8gYSBnZW5lcmljIGBURXhwcmVzc2lvbmAuXG4gICAqXG4gICAqIFdyYXBzIHRoZSBvdXRwdXQgZnJvbSBgRW1pdFNjb3BlLnRyYW5zbGF0ZURlZmluaXRpb24oKWAgYW5kIGBFbWl0U2NvcGUuZ2V0Q29uc3RhbnRTdGF0ZW1lbnRzKClgXG4gICAqIGluIGFuIElJRkUuXG4gICAqL1xuICB0cmFuc2xhdGVEZWZpbml0aW9uKGRlZmluaXRpb246IG8uRXhwcmVzc2lvbik6IFRFeHByZXNzaW9uIHtcbiAgICBjb25zdCBjb25zdGFudFN0YXRlbWVudHMgPSBzdXBlci5nZXRDb25zdGFudFN0YXRlbWVudHMoKTtcblxuICAgIGNvbnN0IHJldHVyblN0YXRlbWVudCA9XG4gICAgICAgIHRoaXMuZmFjdG9yeS5jcmVhdGVSZXR1cm5TdGF0ZW1lbnQoc3VwZXIudHJhbnNsYXRlRGVmaW5pdGlvbihkZWZpbml0aW9uKSk7XG4gICAgY29uc3QgYm9keSA9IHRoaXMuZmFjdG9yeS5jcmVhdGVCbG9jayhbLi4uY29uc3RhbnRTdGF0ZW1lbnRzLCByZXR1cm5TdGF0ZW1lbnRdKTtcbiAgICBjb25zdCBmbiA9IHRoaXMuZmFjdG9yeS5jcmVhdGVGdW5jdGlvbkV4cHJlc3Npb24oLyogbmFtZSAqLyBudWxsLCAvKiBhcmdzICovW10sIGJvZHkpO1xuICAgIHJldHVybiB0aGlzLmZhY3RvcnkuY3JlYXRlQ2FsbEV4cHJlc3Npb24oZm4sIC8qIGFyZ3MgKi9bXSwgLyogcHVyZSAqLyBmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogSXQgaXMgbm90IHZhbGlkIHRvIGNhbGwgdGhpcyBtZXRob2QsIHNpbmNlIHRoZXJlIHdpbGwgYmUgbm8gc2hhcmVkIGNvbnN0YW50IHN0YXRlbWVudHMgLSB0aGV5XG4gICAqIGFyZSBhbHJlYWR5IGVtaXR0ZWQgaW4gdGhlIElJRkUgYWxvbmdzaWRlIHRoZSB0cmFuc2xhdGVkIGRlZmluaXRpb24uXG4gICAqL1xuICBnZXRDb25zdGFudFN0YXRlbWVudHMoKTogVFN0YXRlbWVudFtdIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0JVRyAtIElpZmVFbWl0U2NvcGUgc2hvdWxkIG5vdCBleHBvc2UgYW55IGNvbnN0YW50IHN0YXRlbWVudHMnKTtcbiAgfVxufVxuIl19