@angular/compiler-cli 12.1.1 → 12.1.5

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 (455) hide show
  1. package/linker/src/file_linker/emit_scopes/iife_emit_scope.js +1 -1
  2. package/linker/src/file_linker/partial_linkers/partial_linker_selector.js +2 -2
  3. package/ngcc/src/dependencies/commonjs_dependency_host.js +1 -1
  4. package/ngcc/src/dependencies/dts_dependency_host.js +1 -1
  5. package/ngcc/src/dependencies/esm_dependency_host.js +1 -1
  6. package/ngcc/src/dependencies/umd_dependency_host.js +1 -1
  7. package/ngcc/src/entry_point_finder/program_based_entry_point_finder.js +1 -1
  8. package/ngcc/src/entry_point_finder/targeted_entry_point_finder.js +1 -1
  9. package/ngcc/src/execution/tasks/queues/parallel_task_queue.js +1 -1
  10. package/ngcc/src/execution/tasks/queues/serial_task_queue.js +1 -1
  11. package/ngcc/src/host/commonjs_host.js +1 -1
  12. package/ngcc/src/host/esm2015_host.js +1 -1
  13. package/ngcc/src/host/esm5_host.js +1 -1
  14. package/ngcc/src/host/umd_host.js +1 -1
  15. package/ngcc/src/packages/build_marker.d.ts +1 -1
  16. package/ngcc/src/packages/build_marker.js +1 -1
  17. package/ngcc/src/packages/entry_point_manifest.js +1 -1
  18. package/ngcc/src/packages/ngcc_compiler_host.js +1 -1
  19. package/ngcc/src/rendering/commonjs_rendering_formatter.js +1 -1
  20. package/ngcc/src/rendering/esm5_rendering_formatter.js +1 -1
  21. package/ngcc/src/rendering/umd_rendering_formatter.js +1 -1
  22. package/ngcc/src/writing/new_entry_point_file_writer.js +1 -1
  23. package/package.json +2 -2
  24. package/src/ngtsc/annotations/src/component.js +1 -1
  25. package/src/ngtsc/annotations/src/directive.js +1 -1
  26. package/src/ngtsc/annotations/src/ng_module.js +1 -1
  27. package/src/ngtsc/annotations/src/pipe.js +1 -1
  28. package/src/ngtsc/core/src/compiler.js +1 -1
  29. package/src/ngtsc/cycles/src/analyzer.d.ts +7 -0
  30. package/src/ngtsc/cycles/src/analyzer.js +89 -4
  31. package/src/ngtsc/cycles/src/imports.d.ts +1 -6
  32. package/src/ngtsc/cycles/src/imports.js +5 -23
  33. package/src/ngtsc/file_system/testing/src/mock_file_system_native.js +1 -1
  34. package/src/ngtsc/file_system/testing/src/mock_file_system_posix.js +1 -1
  35. package/src/ngtsc/file_system/testing/src/mock_file_system_windows.js +1 -1
  36. package/src/ngtsc/incremental/semantic_graph/src/graph.js +1 -1
  37. package/src/ngtsc/incremental/src/incremental.js +30 -4
  38. package/src/ngtsc/indexer/src/template.js +1 -1
  39. package/src/ngtsc/metadata/src/dts.js +4 -5
  40. package/src/ngtsc/metadata/src/util.d.ts +2 -2
  41. package/src/ngtsc/metadata/src/util.js +9 -6
  42. package/src/ngtsc/partial_evaluator/src/builtin.js +1 -1
  43. package/src/ngtsc/partial_evaluator/src/interpreter.js +6 -5
  44. package/src/ngtsc/partial_evaluator/src/ts_helpers.js +1 -1
  45. package/src/ngtsc/program_driver/src/api.d.ts +20 -1
  46. package/src/ngtsc/program_driver/src/api.js +3 -2
  47. package/src/ngtsc/program_driver/src/ts_create_program_driver.d.ts +2 -2
  48. package/src/ngtsc/program_driver/src/ts_create_program_driver.js +7 -3
  49. package/src/ngtsc/reflection/src/typescript.js +4 -1
  50. package/src/ngtsc/transform/src/compilation.d.ts +5 -0
  51. package/src/ngtsc/transform/src/compilation.js +95 -72
  52. package/src/ngtsc/transform/src/transform.js +1 -1
  53. package/src/ngtsc/typecheck/src/context.d.ts +2 -1
  54. package/src/ngtsc/typecheck/src/context.js +11 -3
  55. package/src/ngtsc/typecheck/src/template_semantics.js +1 -1
  56. package/src/ngtsc/typecheck/src/template_symbol_builder.js +21 -1
  57. package/src/ngtsc/typecheck/src/type_check_block.js +2 -2
  58. package/src/ngtsc/typecheck/src/type_check_file.js +1 -1
  59. package/src/ngtsc/typecheck/src/type_emitter.js +25 -6
  60. package/src/ngtsc/util/src/visitor.d.ts +1 -1
  61. package/src/ngtsc/util/src/visitor.js +1 -8
  62. package/src/version.js +1 -1
  63. package/compiler-cli.externs.js +0 -0
  64. package/index.mjs +0 -20
  65. package/linker/babel/babel.externs.js +0 -0
  66. package/linker/babel/index.mjs +0 -11
  67. package/linker/babel/src/ast/babel_ast_factory.mjs +0 -137
  68. package/linker/babel/src/ast/babel_ast_host.mjs +0 -154
  69. package/linker/babel/src/babel_declaration_scope.mjs +0 -52
  70. package/linker/babel/src/babel_plugin.mjs +0 -23
  71. package/linker/babel/src/es2015_linker_plugin.mjs +0 -158
  72. package/linker/babel/src/linker_plugin_options.mjs +0 -2
  73. package/linker/index.mjs +0 -7
  74. package/linker/linker.externs.js +0 -0
  75. package/linker/src/ast/ast_host.mjs +0 -9
  76. package/linker/src/ast/ast_value.mjs +0 -256
  77. package/linker/src/ast/typescript/typescript_ast_host.mjs +0 -156
  78. package/linker/src/ast/utils.mjs +0 -17
  79. package/linker/src/fatal_linker_error.mjs +0 -30
  80. package/linker/src/file_linker/declaration_scope.mjs +0 -9
  81. package/linker/src/file_linker/emit_scopes/emit_scope.mjs +0 -41
  82. package/linker/src/file_linker/emit_scopes/iife_emit_scope.mjs +0 -33
  83. package/linker/src/file_linker/file_linker.mjs +0 -70
  84. package/linker/src/file_linker/get_source_file.mjs +0 -28
  85. package/linker/src/file_linker/linker_environment.mjs +0 -23
  86. package/linker/src/file_linker/linker_options.mjs +0 -16
  87. package/linker/src/file_linker/needs_linking.mjs +0 -27
  88. package/linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.mjs +0 -29
  89. package/linker/src/file_linker/partial_linkers/partial_component_linker_1.mjs +0 -194
  90. package/linker/src/file_linker/partial_linkers/partial_directive_linker_1.mjs +0 -137
  91. package/linker/src/file_linker/partial_linkers/partial_factory_linker_1.mjs +0 -52
  92. package/linker/src/file_linker/partial_linkers/partial_injectable_linker_1.mjs +0 -56
  93. package/linker/src/file_linker/partial_linkers/partial_injector_linker_1.mjs +0 -38
  94. package/linker/src/file_linker/partial_linkers/partial_linker.mjs +0 -2
  95. package/linker/src/file_linker/partial_linkers/partial_linker_selector.mjs +0 -166
  96. package/linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.mjs +0 -110
  97. package/linker/src/file_linker/partial_linkers/partial_pipe_linker_1.mjs +0 -42
  98. package/linker/src/file_linker/partial_linkers/util.mjs +0 -78
  99. package/linker/src/file_linker/translator.mjs +0 -23
  100. package/linker/src/linker_import_generator.mjs +0 -28
  101. package/ngcc/index.mjs +0 -16
  102. package/ngcc/main-ivy-ngcc.mjs +0 -12
  103. package/ngcc/main-ngcc.mjs +0 -32
  104. package/ngcc/ngcc.externs.js +0 -0
  105. package/ngcc/src/analysis/decoration_analyzer.mjs +0 -215
  106. package/ngcc/src/analysis/migration_host.mjs +0 -80
  107. package/ngcc/src/analysis/module_with_providers_analyzer.mjs +0 -178
  108. package/ngcc/src/analysis/ngcc_references_registry.mjs +0 -45
  109. package/ngcc/src/analysis/ngcc_trait_compiler.mjs +0 -70
  110. package/ngcc/src/analysis/private_declarations_analyzer.mjs +0 -47
  111. package/ngcc/src/analysis/switch_marker_analyzer.mjs +0 -34
  112. package/ngcc/src/analysis/types.mjs +0 -2
  113. package/ngcc/src/analysis/util.mjs +0 -19
  114. package/ngcc/src/command_line_options.mjs +0 -142
  115. package/ngcc/src/constants.mjs +0 -10
  116. package/ngcc/src/dependencies/commonjs_dependency_host.mjs +0 -87
  117. package/ngcc/src/dependencies/dependency_host.mjs +0 -102
  118. package/ngcc/src/dependencies/dependency_resolver.mjs +0 -151
  119. package/ngcc/src/dependencies/dts_dependency_host.mjs +0 -18
  120. package/ngcc/src/dependencies/esm_dependency_host.mjs +0 -286
  121. package/ngcc/src/dependencies/module_resolver.mjs +0 -233
  122. package/ngcc/src/dependencies/umd_dependency_host.mjs +0 -33
  123. package/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.mjs +0 -42
  124. package/ngcc/src/entry_point_finder/entry_point_collector.mjs +0 -120
  125. package/ngcc/src/entry_point_finder/interface.mjs +0 -2
  126. package/ngcc/src/entry_point_finder/program_based_entry_point_finder.mjs +0 -91
  127. package/ngcc/src/entry_point_finder/targeted_entry_point_finder.mjs +0 -216
  128. package/ngcc/src/entry_point_finder/tracing_entry_point_finder.mjs +0 -63
  129. package/ngcc/src/entry_point_finder/utils.mjs +0 -176
  130. package/ngcc/src/execution/analyze_entry_points.mjs +0 -130
  131. package/ngcc/src/execution/api.mjs +0 -2
  132. package/ngcc/src/execution/cluster/api.mjs +0 -9
  133. package/ngcc/src/execution/cluster/executor.mjs +0 -27
  134. package/ngcc/src/execution/cluster/master.mjs +0 -261
  135. package/ngcc/src/execution/cluster/package_json_updater.mjs +0 -45
  136. package/ngcc/src/execution/cluster/utils.mjs +0 -59
  137. package/ngcc/src/execution/cluster/worker.mjs +0 -81
  138. package/ngcc/src/execution/create_compile_function.mjs +0 -62
  139. package/ngcc/src/execution/single_process_executor.mjs +0 -57
  140. package/ngcc/src/execution/tasks/api.mjs +0 -22
  141. package/ngcc/src/execution/tasks/completion.mjs +0 -61
  142. package/ngcc/src/execution/tasks/queues/base_task_queue.mjs +0 -78
  143. package/ngcc/src/execution/tasks/queues/parallel_task_queue.mjs +0 -53
  144. package/ngcc/src/execution/tasks/queues/serial_task_queue.mjs +0 -29
  145. package/ngcc/src/execution/tasks/utils.mjs +0 -114
  146. package/ngcc/src/host/commonjs_host.mjs +0 -220
  147. package/ngcc/src/host/commonjs_umd_utils.mjs +0 -186
  148. package/ngcc/src/host/delegating_host.mjs +0 -140
  149. package/ngcc/src/host/esm2015_host.mjs +0 -2293
  150. package/ngcc/src/host/esm5_host.mjs +0 -721
  151. package/ngcc/src/host/ngcc_host.mjs +0 -15
  152. package/ngcc/src/host/umd_host.mjs +0 -486
  153. package/ngcc/src/host/utils.mjs +0 -12
  154. package/ngcc/src/locking/async_locker.mjs +0 -76
  155. package/ngcc/src/locking/lock_file.mjs +0 -4
  156. package/ngcc/src/locking/lock_file_with_child_process/index.mjs +0 -78
  157. package/ngcc/src/locking/lock_file_with_child_process/unlocker.mjs +0 -34
  158. package/ngcc/src/locking/lock_file_with_child_process/util.mjs +0 -29
  159. package/ngcc/src/locking/sync_locker.mjs +0 -52
  160. package/ngcc/src/main.mjs +0 -134
  161. package/ngcc/src/migrations/migration.mjs +0 -2
  162. package/ngcc/src/migrations/missing_injectable_migration.mjs +0 -164
  163. package/ngcc/src/migrations/undecorated_child_migration.mjs +0 -61
  164. package/ngcc/src/migrations/undecorated_parent_migration.mjs +0 -86
  165. package/ngcc/src/migrations/utils.mjs +0 -117
  166. package/ngcc/src/ngcc_options.mjs +0 -119
  167. package/ngcc/src/packages/build_marker.mjs +0 -84
  168. package/ngcc/src/packages/bundle_program.mjs +0 -52
  169. package/ngcc/src/packages/configuration.mjs +0 -255
  170. package/ngcc/src/packages/entry_point.mjs +0 -239
  171. package/ngcc/src/packages/entry_point_bundle.mjs +0 -68
  172. package/ngcc/src/packages/entry_point_manifest.mjs +0 -162
  173. package/ngcc/src/packages/ngcc_compiler_host.mjs +0 -77
  174. package/ngcc/src/packages/patch_ts_expando_initializer.mjs +0 -166
  175. package/ngcc/src/packages/source_file_cache.mjs +0 -187
  176. package/ngcc/src/packages/transformer.mjs +0 -140
  177. package/ngcc/src/path_mappings.mjs +0 -13
  178. package/ngcc/src/rendering/commonjs_rendering_formatter.mjs +0 -65
  179. package/ngcc/src/rendering/dts_renderer.mjs +0 -139
  180. package/ngcc/src/rendering/esm5_rendering_formatter.mjs +0 -50
  181. package/ngcc/src/rendering/esm_rendering_formatter.mjs +0 -251
  182. package/ngcc/src/rendering/ngcc_import_rewriter.mjs +0 -32
  183. package/ngcc/src/rendering/renderer.mjs +0 -170
  184. package/ngcc/src/rendering/rendering_formatter.mjs +0 -2
  185. package/ngcc/src/rendering/source_maps.mjs +0 -54
  186. package/ngcc/src/rendering/umd_rendering_formatter.mjs +0 -292
  187. package/ngcc/src/rendering/utils.mjs +0 -20
  188. package/ngcc/src/utils.mjs +0 -144
  189. package/ngcc/src/writing/cleaning/cleaning_strategies.mjs +0 -61
  190. package/ngcc/src/writing/cleaning/package_cleaner.mjs +0 -67
  191. package/ngcc/src/writing/cleaning/utils.mjs +0 -16
  192. package/ngcc/src/writing/file_writer.mjs +0 -2
  193. package/ngcc/src/writing/in_place_file_writer.mjs +0 -62
  194. package/ngcc/src/writing/new_entry_point_file_writer.mjs +0 -161
  195. package/ngcc/src/writing/package_json_updater.mjs +0 -144
  196. package/src/diagnostics/translate_diagnostics.mjs +0 -47
  197. package/src/diagnostics/typescript_version.mjs +0 -79
  198. package/src/extract_i18n.mjs +0 -46
  199. package/src/language_services.mjs +0 -18
  200. package/src/main.mjs +0 -185
  201. package/src/metadata/bundle_index_host.mjs +0 -107
  202. package/src/metadata/bundler.mjs +0 -556
  203. package/src/metadata/collector.mjs +0 -701
  204. package/src/metadata/evaluator.mjs +0 -643
  205. package/src/metadata/index.mjs +0 -11
  206. package/src/metadata/index_writer.mjs +0 -44
  207. package/src/metadata/schema.mjs +0 -102
  208. package/src/metadata/symbols.mjs +0 -117
  209. package/src/ngtsc/annotations/annotations.externs.js +0 -0
  210. package/src/ngtsc/annotations/index.mjs +0 -15
  211. package/src/ngtsc/annotations/src/api.mjs +0 -9
  212. package/src/ngtsc/annotations/src/component.mjs +0 -1068
  213. package/src/ngtsc/annotations/src/diagnostics.mjs +0 -147
  214. package/src/ngtsc/annotations/src/directive.mjs +0 -692
  215. package/src/ngtsc/annotations/src/factory.mjs +0 -17
  216. package/src/ngtsc/annotations/src/injectable.mjs +0 -260
  217. package/src/ngtsc/annotations/src/metadata.mjs +0 -145
  218. package/src/ngtsc/annotations/src/ng_module.mjs +0 -565
  219. package/src/ngtsc/annotations/src/pipe.mjs +0 -151
  220. package/src/ngtsc/annotations/src/references_registry.mjs +0 -16
  221. package/src/ngtsc/annotations/src/util.mjs +0 -495
  222. package/src/ngtsc/core/api/index.mjs +0 -12
  223. package/src/ngtsc/core/api/src/adapter.mjs +0 -9
  224. package/src/ngtsc/core/api/src/interfaces.mjs +0 -9
  225. package/src/ngtsc/core/api/src/options.mjs +0 -9
  226. package/src/ngtsc/core/api/src/public_options.mjs +0 -9
  227. package/src/ngtsc/core/api.externs.js +0 -0
  228. package/src/ngtsc/core/core.externs.js +0 -0
  229. package/src/ngtsc/core/index.mjs +0 -10
  230. package/src/ngtsc/core/src/compiler.mjs +0 -917
  231. package/src/ngtsc/core/src/config.mjs +0 -15
  232. package/src/ngtsc/core/src/host.mjs +0 -229
  233. package/src/ngtsc/cycles/cycles.externs.js +0 -0
  234. package/src/ngtsc/cycles/index.mjs +0 -10
  235. package/src/ngtsc/cycles/src/analyzer.mjs +0 -60
  236. package/src/ngtsc/cycles/src/imports.mjs +0 -152
  237. package/src/ngtsc/diagnostics/diagnostics.externs.js +0 -0
  238. package/src/ngtsc/diagnostics/index.mjs +0 -11
  239. package/src/ngtsc/diagnostics/src/error.mjs +0 -51
  240. package/src/ngtsc/diagnostics/src/error_code.mjs +0 -198
  241. package/src/ngtsc/diagnostics/src/util.mjs +0 -21
  242. package/src/ngtsc/entry_point/entry_point.externs.js +0 -0
  243. package/src/ngtsc/entry_point/index.mjs +0 -12
  244. package/src/ngtsc/entry_point/src/generator.mjs +0 -35
  245. package/src/ngtsc/entry_point/src/logic.mjs +0 -35
  246. package/src/ngtsc/entry_point/src/private_export_checker.mjs +0 -122
  247. package/src/ngtsc/entry_point/src/reference_graph.mjs +0 -73
  248. package/src/ngtsc/file_system/file_system.externs.js +0 -0
  249. package/src/ngtsc/file_system/index.mjs +0 -13
  250. package/src/ngtsc/file_system/src/compiler_host.mjs +0 -64
  251. package/src/ngtsc/file_system/src/helpers.mjs +0 -99
  252. package/src/ngtsc/file_system/src/invalid_file_system.mjs +0 -95
  253. package/src/ngtsc/file_system/src/logical.mjs +0 -84
  254. package/src/ngtsc/file_system/src/node_js_file_system.mjs +0 -142
  255. package/src/ngtsc/file_system/src/types.mjs +0 -9
  256. package/src/ngtsc/file_system/src/util.mjs +0 -22
  257. package/src/ngtsc/file_system/testing/index.mjs +0 -13
  258. package/src/ngtsc/file_system/testing/src/mock_file_system.mjs +0 -293
  259. package/src/ngtsc/file_system/testing/src/mock_file_system_native.mjs +0 -57
  260. package/src/ngtsc/file_system/testing/src/mock_file_system_posix.mjs +0 -38
  261. package/src/ngtsc/file_system/testing/src/mock_file_system_windows.mjs +0 -38
  262. package/src/ngtsc/file_system/testing/src/test_helper.mjs +0 -108
  263. package/src/ngtsc/file_system/testing/testing.externs.js +0 -0
  264. package/src/ngtsc/imports/imports.externs.js +0 -0
  265. package/src/ngtsc/imports/index.mjs +0 -14
  266. package/src/ngtsc/imports/src/alias.mjs +0 -137
  267. package/src/ngtsc/imports/src/core.mjs +0 -78
  268. package/src/ngtsc/imports/src/default.mjs +0 -135
  269. package/src/ngtsc/imports/src/emitter.mjs +0 -266
  270. package/src/ngtsc/imports/src/find_export.mjs +0 -56
  271. package/src/ngtsc/imports/src/reexport.mjs +0 -9
  272. package/src/ngtsc/imports/src/references.mjs +0 -137
  273. package/src/ngtsc/imports/src/resolver.mjs +0 -24
  274. package/src/ngtsc/incremental/api.externs.js +0 -0
  275. package/src/ngtsc/incremental/api.mjs +0 -9
  276. package/src/ngtsc/incremental/incremental.externs.js +0 -0
  277. package/src/ngtsc/incremental/index.mjs +0 -12
  278. package/src/ngtsc/incremental/semantic_graph/index.mjs +0 -12
  279. package/src/ngtsc/incremental/semantic_graph/semantic_graph.externs.js +0 -0
  280. package/src/ngtsc/incremental/semantic_graph/src/api.mjs +0 -36
  281. package/src/ngtsc/incremental/semantic_graph/src/graph.mjs +0 -237
  282. package/src/ngtsc/incremental/semantic_graph/src/type_parameters.mjs +0 -40
  283. package/src/ngtsc/incremental/semantic_graph/src/util.mjs +0 -69
  284. package/src/ngtsc/incremental/src/dependency_tracking.mjs +0 -117
  285. package/src/ngtsc/incremental/src/incremental.mjs +0 -271
  286. package/src/ngtsc/incremental/src/noop.mjs +0 -13
  287. package/src/ngtsc/incremental/src/state.mjs +0 -17
  288. package/src/ngtsc/incremental/src/strategy.mjs +0 -76
  289. package/src/ngtsc/indexer/index.mjs +0 -11
  290. package/src/ngtsc/indexer/indexer.externs.js +0 -0
  291. package/src/ngtsc/indexer/src/api.mjs +0 -30
  292. package/src/ngtsc/indexer/src/context.mjs +0 -25
  293. package/src/ngtsc/indexer/src/template.mjs +0 -303
  294. package/src/ngtsc/indexer/src/transform.mjs +0 -51
  295. package/src/ngtsc/logging/index.mjs +0 -10
  296. package/src/ngtsc/logging/logging.externs.js +0 -0
  297. package/src/ngtsc/logging/src/console_logger.mjs +0 -43
  298. package/src/ngtsc/logging/src/logger.mjs +0 -15
  299. package/src/ngtsc/logging/testing/index.mjs +0 -9
  300. package/src/ngtsc/logging/testing/src/mock_logger.mjs +0 -32
  301. package/src/ngtsc/logging/testing/testing.externs.js +0 -0
  302. package/src/ngtsc/metadata/index.mjs +0 -15
  303. package/src/ngtsc/metadata/metadata.externs.js +0 -0
  304. package/src/ngtsc/metadata/src/api.mjs +0 -13
  305. package/src/ngtsc/metadata/src/dts.mjs +0 -143
  306. package/src/ngtsc/metadata/src/inheritance.mjs +0 -71
  307. package/src/ngtsc/metadata/src/property_mapping.mjs +0 -136
  308. package/src/ngtsc/metadata/src/registry.mjs +0 -80
  309. package/src/ngtsc/metadata/src/resource_registry.mjs +0 -81
  310. package/src/ngtsc/metadata/src/util.mjs +0 -200
  311. package/src/ngtsc/partial_evaluator/index.mjs +0 -12
  312. package/src/ngtsc/partial_evaluator/partial_evaluator.externs.js +0 -0
  313. package/src/ngtsc/partial_evaluator/src/builtin.mjs +0 -65
  314. package/src/ngtsc/partial_evaluator/src/diagnostics.mjs +0 -174
  315. package/src/ngtsc/partial_evaluator/src/dynamic.mjs +0 -94
  316. package/src/ngtsc/partial_evaluator/src/interface.mjs +0 -27
  317. package/src/ngtsc/partial_evaluator/src/interpreter.mjs +0 -719
  318. package/src/ngtsc/partial_evaluator/src/known_declaration.mjs +0 -43
  319. package/src/ngtsc/partial_evaluator/src/result.mjs +0 -50
  320. package/src/ngtsc/partial_evaluator/src/ts_helpers.mjs +0 -72
  321. package/src/ngtsc/perf/index.mjs +0 -11
  322. package/src/ngtsc/perf/perf.externs.js +0 -0
  323. package/src/ngtsc/perf/src/api.mjs +0 -278
  324. package/src/ngtsc/perf/src/clock.mjs +0 -15
  325. package/src/ngtsc/perf/src/noop.mjs +0 -21
  326. package/src/ngtsc/perf/src/recorder.mjs +0 -125
  327. package/src/ngtsc/program.mjs +0 -271
  328. package/src/ngtsc/program_driver/index.mjs +0 -10
  329. package/src/ngtsc/program_driver/program_driver.externs.js +0 -0
  330. package/src/ngtsc/program_driver/src/api.mjs +0 -22
  331. package/src/ngtsc/program_driver/src/ts_create_program_driver.mjs +0 -164
  332. package/src/ngtsc/reflection/index.mjs +0 -12
  333. package/src/ngtsc/reflection/reflection.externs.js +0 -0
  334. package/src/ngtsc/reflection/src/host.mjs +0 -73
  335. package/src/ngtsc/reflection/src/type_to_value.mjs +0 -243
  336. package/src/ngtsc/reflection/src/typescript.mjs +0 -608
  337. package/src/ngtsc/reflection/src/util.mjs +0 -21
  338. package/src/ngtsc/resource/index.mjs +0 -9
  339. package/src/ngtsc/resource/resource.externs.js +0 -0
  340. package/src/ngtsc/resource/src/loader.mjs +0 -242
  341. package/src/ngtsc/routing/index.mjs +0 -11
  342. package/src/ngtsc/routing/routing.externs.js +0 -0
  343. package/src/ngtsc/routing/src/analyzer.mjs +0 -69
  344. package/src/ngtsc/routing/src/lazy.mjs +0 -168
  345. package/src/ngtsc/routing/src/route.mjs +0 -51
  346. package/src/ngtsc/scope/index.mjs +0 -12
  347. package/src/ngtsc/scope/scope.externs.js +0 -0
  348. package/src/ngtsc/scope/src/api.mjs +0 -9
  349. package/src/ngtsc/scope/src/component_scope.mjs +0 -31
  350. package/src/ngtsc/scope/src/dependency.mjs +0 -134
  351. package/src/ngtsc/scope/src/local.mjs +0 -531
  352. package/src/ngtsc/scope/src/typecheck.mjs +0 -83
  353. package/src/ngtsc/shims/api.externs.js +0 -0
  354. package/src/ngtsc/shims/api.mjs +0 -2
  355. package/src/ngtsc/shims/index.mjs +0 -14
  356. package/src/ngtsc/shims/shims.externs.js +0 -0
  357. package/src/ngtsc/shims/src/adapter.mjs +0 -188
  358. package/src/ngtsc/shims/src/expando.mjs +0 -102
  359. package/src/ngtsc/shims/src/factory_generator.mjs +0 -265
  360. package/src/ngtsc/shims/src/reference_tagger.mjs +0 -67
  361. package/src/ngtsc/shims/src/summary_generator.mjs +0 -64
  362. package/src/ngtsc/shims/src/util.mjs +0 -26
  363. package/src/ngtsc/sourcemaps/index.mjs +0 -11
  364. package/src/ngtsc/sourcemaps/sourcemaps.externs.js +0 -0
  365. package/src/ngtsc/sourcemaps/src/content_origin.mjs +0 -35
  366. package/src/ngtsc/sourcemaps/src/raw_source_map.mjs +0 -2
  367. package/src/ngtsc/sourcemaps/src/segment_marker.mjs +0 -40
  368. package/src/ngtsc/sourcemaps/src/source_file.mjs +0 -459
  369. package/src/ngtsc/sourcemaps/src/source_file_loader.mjs +0 -213
  370. package/src/ngtsc/switch/index.mjs +0 -9
  371. package/src/ngtsc/switch/src/switch.mjs +0 -115
  372. package/src/ngtsc/switch/switch.externs.js +0 -0
  373. package/src/ngtsc/transform/index.mjs +0 -14
  374. package/src/ngtsc/transform/src/alias.mjs +0 -30
  375. package/src/ngtsc/transform/src/api.mjs +0 -63
  376. package/src/ngtsc/transform/src/compilation.mjs +0 -514
  377. package/src/ngtsc/transform/src/declaration.mjs +0 -182
  378. package/src/ngtsc/transform/src/trait.mjs +0 -95
  379. package/src/ngtsc/transform/src/transform.mjs +0 -298
  380. package/src/ngtsc/transform/src/utils.mjs +0 -57
  381. package/src/ngtsc/transform/transform.externs.js +0 -0
  382. package/src/ngtsc/translator/index.mjs +0 -14
  383. package/src/ngtsc/translator/src/api/ast_factory.mjs +0 -9
  384. package/src/ngtsc/translator/src/api/import_generator.mjs +0 -9
  385. package/src/ngtsc/translator/src/context.mjs +0 -24
  386. package/src/ngtsc/translator/src/import_manager.mjs +0 -48
  387. package/src/ngtsc/translator/src/translator.mjs +0 -317
  388. package/src/ngtsc/translator/src/type_translator.mjs +0 -204
  389. package/src/ngtsc/translator/src/typescript_ast_factory.mjs +0 -211
  390. package/src/ngtsc/translator/src/typescript_translator.mjs +0 -17
  391. package/src/ngtsc/translator/translator.externs.js +0 -0
  392. package/src/ngtsc/tsc_plugin.mjs +0 -98
  393. package/src/ngtsc/typecheck/api/api.externs.js +0 -0
  394. package/src/ngtsc/typecheck/api/api.mjs +0 -9
  395. package/src/ngtsc/typecheck/api/checker.mjs +0 -31
  396. package/src/ngtsc/typecheck/api/completion.mjs +0 -16
  397. package/src/ngtsc/typecheck/api/context.mjs +0 -9
  398. package/src/ngtsc/typecheck/api/index.mjs +0 -14
  399. package/src/ngtsc/typecheck/api/scope.mjs +0 -9
  400. package/src/ngtsc/typecheck/api/symbols.mjs +0 -22
  401. package/src/ngtsc/typecheck/diagnostics/diagnostics.externs.js +0 -0
  402. package/src/ngtsc/typecheck/diagnostics/index.mjs +0 -10
  403. package/src/ngtsc/typecheck/diagnostics/src/diagnostic.mjs +0 -99
  404. package/src/ngtsc/typecheck/diagnostics/src/id.mjs +0 -23
  405. package/src/ngtsc/typecheck/index.mjs +0 -12
  406. package/src/ngtsc/typecheck/src/checker.mjs +0 -591
  407. package/src/ngtsc/typecheck/src/comments.mjs +0 -159
  408. package/src/ngtsc/typecheck/src/completion.mjs +0 -155
  409. package/src/ngtsc/typecheck/src/context.mjs +0 -350
  410. package/src/ngtsc/typecheck/src/diagnostics.mjs +0 -95
  411. package/src/ngtsc/typecheck/src/dom.mjs +0 -68
  412. package/src/ngtsc/typecheck/src/environment.mjs +0 -146
  413. package/src/ngtsc/typecheck/src/expression.mjs +0 -412
  414. package/src/ngtsc/typecheck/src/line_mappings.mjs +0 -60
  415. package/src/ngtsc/typecheck/src/oob.mjs +0 -112
  416. package/src/ngtsc/typecheck/src/shim.mjs +0 -37
  417. package/src/ngtsc/typecheck/src/source.mjs +0 -74
  418. package/src/ngtsc/typecheck/src/tcb_util.mjs +0 -135
  419. package/src/ngtsc/typecheck/src/template_semantics.mjs +0 -34
  420. package/src/ngtsc/typecheck/src/template_symbol_builder.mjs +0 -485
  421. package/src/ngtsc/typecheck/src/ts_util.mjs +0 -157
  422. package/src/ngtsc/typecheck/src/type_check_block.mjs +0 -1770
  423. package/src/ngtsc/typecheck/src/type_check_file.mjs +0 -65
  424. package/src/ngtsc/typecheck/src/type_constructor.mjs +0 -227
  425. package/src/ngtsc/typecheck/src/type_emitter.mjs +0 -127
  426. package/src/ngtsc/typecheck/src/type_parameter_emitter.mjs +0 -93
  427. package/src/ngtsc/typecheck/typecheck.externs.js +0 -0
  428. package/src/ngtsc/util/src/path.mjs +0 -18
  429. package/src/ngtsc/util/src/typescript.mjs +0 -143
  430. package/src/ngtsc/util/src/visitor.mjs +0 -107
  431. package/src/ngtsc/util/util.externs.js +0 -0
  432. package/src/ngtsc/xi18n/index.mjs +0 -9
  433. package/src/ngtsc/xi18n/src/context.mjs +0 -9
  434. package/src/ngtsc/xi18n/xi18n.externs.js +0 -0
  435. package/src/perform_compile.mjs +0 -275
  436. package/src/perform_watch.mjs +0 -247
  437. package/src/tooling.mjs +0 -32
  438. package/src/transformers/api.mjs +0 -27
  439. package/src/transformers/compiler_host.mjs +0 -593
  440. package/src/transformers/downlevel_decorators_transform.mjs +0 -507
  441. package/src/transformers/entry_points.mjs +0 -10
  442. package/src/transformers/i18n.mjs +0 -59
  443. package/src/transformers/inline_resources.mjs +0 -269
  444. package/src/transformers/lower_expressions.mjs +0 -336
  445. package/src/transformers/metadata_cache.mjs +0 -53
  446. package/src/transformers/metadata_reader.mjs +0 -104
  447. package/src/transformers/node_emitter.mjs +0 -606
  448. package/src/transformers/node_emitter_transform.mjs +0 -78
  449. package/src/transformers/patch_alias_reference_resolution.mjs +0 -109
  450. package/src/transformers/program.mjs +0 -887
  451. package/src/transformers/r3_metadata_transform.mjs +0 -46
  452. package/src/transformers/r3_transform.mjs +0 -29
  453. package/src/transformers/util.mjs +0 -89
  454. package/src/typescript_support.mjs +0 -57
  455. package/src/version.mjs +0 -15
@@ -1,271 +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 { absoluteFromSourceFile, resolve } from '../../file_system';
9
- import { PerfPhase } from '../../perf';
10
- import { toUnredirectedSourceFile } from '../../util/src/typescript';
11
- import { SemanticDepGraphUpdater } from '../semantic_graph';
12
- import { FileDependencyGraph } from './dependency_tracking';
13
- import { IncrementalStateKind } from './state';
14
- /**
15
- * Discriminant of the `Phase` type union.
16
- */
17
- var PhaseKind;
18
- (function (PhaseKind) {
19
- PhaseKind[PhaseKind["Analysis"] = 0] = "Analysis";
20
- PhaseKind[PhaseKind["TypeCheckAndEmit"] = 1] = "TypeCheckAndEmit";
21
- })(PhaseKind || (PhaseKind = {}));
22
- /**
23
- * Manages the incremental portion of an Angular compilation, allowing for reuse of a prior
24
- * compilation if available, and producing an output state for reuse of the current compilation in a
25
- * future one.
26
- */
27
- export class IncrementalCompilation {
28
- constructor(state, depGraph, versions, step) {
29
- this.depGraph = depGraph;
30
- this.versions = versions;
31
- this.step = step;
32
- this._state = state;
33
- // The compilation begins in analysis phase.
34
- this.phase = {
35
- kind: PhaseKind.Analysis,
36
- semanticDepGraphUpdater: new SemanticDepGraphUpdater(step !== null ? step.priorState.semanticDepGraph : null),
37
- };
38
- }
39
- /**
40
- * Begin a fresh `IncrementalCompilation`.
41
- */
42
- static fresh(program, versions) {
43
- const state = {
44
- kind: IncrementalStateKind.Fresh,
45
- };
46
- return new IncrementalCompilation(state, new FileDependencyGraph(), versions, /* reuse */ null);
47
- }
48
- static incremental(program, newVersions, oldProgram, oldState, modifiedResourceFiles, perf) {
49
- return perf.inPhase(PerfPhase.Reconciliation, () => {
50
- const physicallyChangedTsFiles = new Set();
51
- const changedResourceFiles = new Set(modifiedResourceFiles !== null && modifiedResourceFiles !== void 0 ? modifiedResourceFiles : []);
52
- let priorAnalysis;
53
- switch (oldState.kind) {
54
- case IncrementalStateKind.Fresh:
55
- // Since this line of program has never been successfully analyzed to begin with, treat
56
- // this as a fresh compilation.
57
- return IncrementalCompilation.fresh(program, newVersions);
58
- case IncrementalStateKind.Analyzed:
59
- // The most recent program was analyzed successfully, so we can use that as our prior
60
- // state and don't need to consider any other deltas except changes in the most recent
61
- // program.
62
- priorAnalysis = oldState;
63
- break;
64
- case IncrementalStateKind.Delta:
65
- // There is an ancestor program which was analyzed successfully and can be used as a
66
- // starting point, but we need to determine what's changed since that program.
67
- priorAnalysis = oldState.lastAnalyzedState;
68
- for (const sfPath of oldState.physicallyChangedTsFiles) {
69
- physicallyChangedTsFiles.add(sfPath);
70
- }
71
- for (const resourcePath of oldState.changedResourceFiles) {
72
- changedResourceFiles.add(resourcePath);
73
- }
74
- break;
75
- }
76
- const oldVersions = priorAnalysis.versions;
77
- const oldFilesArray = oldProgram.getSourceFiles().map(sf => toUnredirectedSourceFile(sf));
78
- const oldFiles = new Set(oldFilesArray);
79
- const deletedTsFiles = new Set(oldFilesArray.map(sf => absoluteFromSourceFile(sf)));
80
- for (const possiblyRedirectedNewFile of program.getSourceFiles()) {
81
- const sf = toUnredirectedSourceFile(possiblyRedirectedNewFile);
82
- const sfPath = absoluteFromSourceFile(sf);
83
- // Since we're seeing a file in the incoming program with this name, it can't have been
84
- // deleted.
85
- deletedTsFiles.delete(sfPath);
86
- if (oldFiles.has(sf)) {
87
- // This source file has the same object identity as in the previous program. We need to
88
- // determine if it's really the same file, or if it might have changed versions since the
89
- // last program without changing its identity.
90
- // If there's no version information available, then this is the same file, and we can
91
- // skip it.
92
- if (oldVersions === null || newVersions === null) {
93
- continue;
94
- }
95
- // If a version is available for the file from both the prior and the current program, and
96
- // that version is the same, then this is the same file, and we can skip it.
97
- if (oldVersions.has(sfPath) && newVersions.has(sfPath) &&
98
- oldVersions.get(sfPath) === newVersions.get(sfPath)) {
99
- continue;
100
- }
101
- // Otherwise, assume that the file has changed. Either its versions didn't match, or we
102
- // were missing version information about it on one side for some reason.
103
- }
104
- // Bail out if a .d.ts file changes - the semantic dep graph is not able to process such
105
- // changes correctly yet.
106
- if (sf.isDeclarationFile) {
107
- return IncrementalCompilation.fresh(program, newVersions);
108
- }
109
- // The file has changed physically, so record it.
110
- physicallyChangedTsFiles.add(sfPath);
111
- }
112
- // Remove any files that have been deleted from the list of physical changes.
113
- for (const deletedFileName of deletedTsFiles) {
114
- physicallyChangedTsFiles.delete(resolve(deletedFileName));
115
- }
116
- // Use the prior dependency graph to project physical changes into a set of logically changed
117
- // files.
118
- const depGraph = new FileDependencyGraph();
119
- const logicallyChangedTsFiles = depGraph.updateWithPhysicalChanges(priorAnalysis.depGraph, physicallyChangedTsFiles, deletedTsFiles, changedResourceFiles);
120
- // Physically changed files aren't necessarily counted as logically changed by the dependency
121
- // graph (files do not have edges to themselves), so add them to the logical changes
122
- // explicitly.
123
- for (const sfPath of physicallyChangedTsFiles) {
124
- logicallyChangedTsFiles.add(sfPath);
125
- }
126
- // Start off in a `DeltaIncrementalState` as a delta against the previous successful analysis,
127
- // until this compilation completes its own analysis.
128
- const state = {
129
- kind: IncrementalStateKind.Delta,
130
- physicallyChangedTsFiles,
131
- changedResourceFiles,
132
- lastAnalyzedState: priorAnalysis,
133
- };
134
- return new IncrementalCompilation(state, depGraph, newVersions, {
135
- priorState: priorAnalysis,
136
- logicallyChangedTsFiles,
137
- });
138
- });
139
- }
140
- get state() {
141
- return this._state;
142
- }
143
- get semanticDepGraphUpdater() {
144
- if (this.phase.kind !== PhaseKind.Analysis) {
145
- throw new Error(`AssertionError: Cannot update the SemanticDepGraph after analysis completes`);
146
- }
147
- return this.phase.semanticDepGraphUpdater;
148
- }
149
- recordSuccessfulAnalysis(traitCompiler) {
150
- if (this.phase.kind !== PhaseKind.Analysis) {
151
- throw new Error(`AssertionError: Incremental compilation in phase ${PhaseKind[this.phase.kind]}, expected Analysis`);
152
- }
153
- const { needsEmit, needsTypeCheckEmit, newGraph } = this.phase.semanticDepGraphUpdater.finalize();
154
- // Determine the set of files which have already been emitted.
155
- let emitted;
156
- if (this.step === null) {
157
- // Since there is no prior compilation, no files have yet been emitted.
158
- emitted = new Set();
159
- }
160
- else {
161
- // Begin with the files emitted by the prior successful compilation, but remove those which we
162
- // know need to bee re-emitted.
163
- emitted = new Set(this.step.priorState.emitted);
164
- // Files need re-emitted if they've logically changed.
165
- for (const sfPath of this.step.logicallyChangedTsFiles) {
166
- emitted.delete(sfPath);
167
- }
168
- // Files need re-emitted if they've semantically changed.
169
- for (const sfPath of needsEmit) {
170
- emitted.delete(sfPath);
171
- }
172
- }
173
- // Transition to a successfully analyzed compilation. At this point, a subsequent compilation
174
- // could use this state as a starting point.
175
- this._state = {
176
- kind: IncrementalStateKind.Analyzed,
177
- versions: this.versions,
178
- depGraph: this.depGraph,
179
- semanticDepGraph: newGraph,
180
- priorAnalysis: traitCompiler.getAnalyzedRecords(),
181
- typeCheckResults: null,
182
- emitted,
183
- };
184
- // We now enter the type-check and emit phase of compilation.
185
- this.phase = {
186
- kind: PhaseKind.TypeCheckAndEmit,
187
- needsEmit,
188
- needsTypeCheckEmit,
189
- };
190
- }
191
- recordSuccessfulTypeCheck(results) {
192
- if (this._state.kind !== IncrementalStateKind.Analyzed) {
193
- throw new Error(`AssertionError: Expected successfully analyzed compilation.`);
194
- }
195
- else if (this.phase.kind !== PhaseKind.TypeCheckAndEmit) {
196
- throw new Error(`AssertionError: Incremental compilation in phase ${PhaseKind[this.phase.kind]}, expected TypeCheck`);
197
- }
198
- this._state.typeCheckResults = results;
199
- }
200
- recordSuccessfulEmit(sf) {
201
- if (this._state.kind !== IncrementalStateKind.Analyzed) {
202
- throw new Error(`AssertionError: Expected successfully analyzed compilation.`);
203
- }
204
- this._state.emitted.add(absoluteFromSourceFile(sf));
205
- }
206
- priorAnalysisFor(sf) {
207
- if (this.step === null) {
208
- return null;
209
- }
210
- const sfPath = absoluteFromSourceFile(sf);
211
- // If the file has logically changed, its previous analysis cannot be reused.
212
- if (this.step.logicallyChangedTsFiles.has(sfPath)) {
213
- return null;
214
- }
215
- const priorAnalysis = this.step.priorState.priorAnalysis;
216
- if (!priorAnalysis.has(sf)) {
217
- return null;
218
- }
219
- return priorAnalysis.get(sf);
220
- }
221
- priorTypeCheckingResultsFor(sf) {
222
- if (this.phase.kind !== PhaseKind.TypeCheckAndEmit) {
223
- throw new Error(`AssertionError: Expected successfully analyzed compilation.`);
224
- }
225
- if (this.step === null) {
226
- return null;
227
- }
228
- const sfPath = absoluteFromSourceFile(sf);
229
- // If the file has logically changed, or its template type-checking results have semantically
230
- // changed, then past type-checking results cannot be reused.
231
- if (this.step.logicallyChangedTsFiles.has(sfPath) ||
232
- this.phase.needsTypeCheckEmit.has(sfPath)) {
233
- return null;
234
- }
235
- // Past results also cannot be reused if they're not available.
236
- if (this.step.priorState.typeCheckResults === null ||
237
- !this.step.priorState.typeCheckResults.has(sfPath)) {
238
- return null;
239
- }
240
- const priorResults = this.step.priorState.typeCheckResults.get(sfPath);
241
- // If the past results relied on inlining, they're not safe for reuse.
242
- if (priorResults.hasInlines) {
243
- return null;
244
- }
245
- return priorResults;
246
- }
247
- safeToSkipEmit(sf) {
248
- // If this is a fresh compilation, it's never safe to skip an emit.
249
- if (this.step === null) {
250
- return false;
251
- }
252
- const sfPath = absoluteFromSourceFile(sf);
253
- // If the file has itself logically changed, it must be emitted.
254
- if (this.step.logicallyChangedTsFiles.has(sfPath)) {
255
- return false;
256
- }
257
- if (this.phase.kind !== PhaseKind.TypeCheckAndEmit) {
258
- throw new Error(`AssertionError: Expected successful analysis before attempting to emit files`);
259
- }
260
- // If during analysis it was determined that this file has semantically changed, it must be
261
- // emitted.
262
- if (this.phase.needsEmit.has(sfPath)) {
263
- return false;
264
- }
265
- // Generally it should be safe to assume here that the file was previously emitted by the last
266
- // successful compilation. However, as a defense-in-depth against incorrectness, we explicitly
267
- // check that the last emit included this file, and re-emit it otherwise.
268
- return this.step.priorState.emitted.has(sfPath);
269
- }
270
- }
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jcmVtZW50YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL2luY3JlbWVudGFsL3NyYy9pbmNyZW1lbnRhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFJSCxPQUFPLEVBQUMsc0JBQXNCLEVBQWtCLE9BQU8sRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2xGLE9BQU8sRUFBQyxTQUFTLEVBQWUsTUFBTSxZQUFZLENBQUM7QUFHbkQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFbkUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFvRSxvQkFBb0IsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQVdoSDs7R0FFRztBQUNILElBQUssU0FHSjtBQUhELFdBQUssU0FBUztJQUNaLGlEQUFRLENBQUE7SUFDUixpRUFBZ0IsQ0FBQTtBQUNsQixDQUFDLEVBSEksU0FBUyxLQUFULFNBQVMsUUFHYjtBQXlCRDs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLHNCQUFzQjtJQVdqQyxZQUNJLEtBQXVCLEVBQVcsUUFBNkIsRUFDdkQsUUFBMEMsRUFBVSxJQUEwQjtRQURwRCxhQUFRLEdBQVIsUUFBUSxDQUFxQjtRQUN2RCxhQUFRLEdBQVIsUUFBUSxDQUFrQztRQUFVLFNBQUksR0FBSixJQUFJLENBQXNCO1FBQ3hGLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBRXBCLDRDQUE0QztRQUM1QyxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsSUFBSSxFQUFFLFNBQVMsQ0FBQyxRQUFRO1lBQ3hCLHVCQUF1QixFQUNuQixJQUFJLHVCQUF1QixDQUFDLElBQUksS0FBSyxJ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RTFDLGdFQUFnRTtRQUNoRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRTtZQUNsRCxNQUFNLElBQUksS0FBSyxDQUNYLDhFQUE4RSxDQUFDLENBQUM7U0FDckY7UUFFRCwyRkFBMkY7UUFDM0YsV0FBVztRQUNYLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3BDLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCw4RkFBOEY7UUFDOUYsOEZBQThGO1FBQzlGLHlFQUF5RTtRQUN6RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge2Fic29sdXRlRnJvbVNvdXJjZUZpbGUsIEFic29sdXRlRnNQYXRoLCByZXNvbHZlfSBmcm9tICcuLi8uLi9maWxlX3N5c3RlbSc7XG5pbXBvcnQge1BlcmZQaGFzZSwgUGVyZlJlY29yZGVyfSBmcm9tICcuLi8uLi9wZXJmJztcbmltcG9ydCB7Q2xhc3NSZWNvcmQsIFRyYWl0Q29tcGlsZXJ9IGZyb20gJy4uLy4uL3RyYW5zZm9ybSc7XG5pbXBvcnQge0ZpbGVUeXBlQ2hlY2tpbmdEYXRhfSBmcm9tICcuLi8uLi90eXBlY2hlY2snO1xuaW1wb3J0IHt0b1VucmVkaXJlY3RlZFNvdXJjZUZpbGV9IGZyb20gJy4uLy4uL3V0aWwvc3JjL3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtJbmNyZW1lbnRhbEJ1aWxkfSBmcm9tICcuLi9hcGknO1xuaW1wb3J0IHtTZW1hbnRpY0RlcEdyYXBoVXBkYXRlcn0gZnJvbSAnLi4vc2VtYW50aWNfZ3JhcGgnO1xuaW1wb3J0IHtGaWxlRGVwZW5kZW5jeUdyYXBofSBmcm9tICcuL2RlcGVuZGVuY3lfdHJhY2tpbmcnO1xuaW1wb3J0IHtBbmFseXplZEluY3JlbWVudGFsU3RhdGUsIERlbHRhSW5jcmVtZW50YWxTdGF0ZSwgSW5jcmVtZW50YWxTdGF0ZSwgSW5jcmVtZW50YWxTdGF0ZUtpbmR9IGZyb20gJy4vc3RhdGUnO1xuXG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IHRoZSBwcmV2aW91cyBjb21waWxhdGlvbiBiZWluZyB1c2VkIGFzIGEgc3RhcnRpbmcgcG9pbnQgZm9yIHRoZSBjdXJyZW50IG9uZSxcbiAqIGluY2x1ZGluZyB0aGUgZGVsdGEgb2YgZmlsZXMgd2hpY2ggaGF2ZSBsb2dpY2FsbHkgY2hhbmdlZCBhbmQgbmVlZCB0byBiZSByZWFuYWx5emVkLlxuICovXG5pbnRlcmZhY2UgSW5jcmVtZW50YWxTdGVwIHtcbiAgcHJpb3JTdGF0ZTogQW5hbHl6ZWRJbmNyZW1lbnRhbFN0YXRlO1xuICBsb2dpY2FsbHlDaGFuZ2VkVHNGaWxlczogU2V0PEFic29sdXRlRnNQYXRoPjtcbn1cblxuLyoqXG4gKiBEaXNjcmltaW5hbnQgb2YgdGhlIGBQaGFzZWAgdHlwZSB1bmlvbi5cbiAqL1xuZW51bSBQaGFzZUtpbmQge1xuICBBbmFseXNpcyxcbiAgVHlwZUNoZWNrQW5kRW1pdCxcbn1cblxuLyoqXG4gKiBBbiBpbmNyZW1lbnRhbCBjb21waWxhdGlvbiB1bmRlcmdvaW5nIGFuYWx5c2lzLCBhbmQgYnVpbGRpbmcgYSBzZW1hbnRpYyBkZXBlbmRlbmN5IGdyYXBoLlxuICovXG5pbnRlcmZhY2UgQW5hbHlzaXNQaGFzZSB7XG4gIGtpbmQ6IFBoYXNlS2luZC5BbmFseXNpcztcbiAgc2VtYW50aWNEZXBHcmFwaFVwZGF0ZXI6IFNlbWFudGljRGVwR3JhcGhVcGRhdGVyO1xufVxuXG4vKipcbiAqIEFuIGluY3JlbWVudGFsIGNvbXBpbGF0aW9uIHRoYXQgY29tcGxldGVkIGFuYWx5c2lzIGFuZCBpcyB1bmRlcmdvaW5nIHRlbXBsYXRlIHR5cGUtY2hlY2tpbmcgYW5kXG4gKiBlbWl0LlxuICovXG5pbnRlcmZhY2UgVHlwZUNoZWNrQW5kRW1pdFBoYXNlIHtcbiAga2luZDogUGhhc2VLaW5kLlR5cGVDaGVja0FuZEVtaXQ7XG4gIG5lZWRzRW1pdDogU2V0PEFic29sdXRlRnNQYXRoPjtcbiAgbmVlZHNUeXBlQ2hlY2tFbWl0OiBTZXQ8QWJzb2x1dGVGc1BhdGg+O1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGN1cnJlbnQgcGhhc2Ugb2YgYSBjb21waWxhdGlvbi5cbiAqL1xudHlwZSBQaGFzZSA9IEFuYWx5c2lzUGhhc2V8VHlwZUNoZWNrQW5kRW1pdFBoYXNlO1xuXG4vKipcbiAqIE1hbmFnZXMgdGhlIGluY3JlbWVudGFsIHBvcnRpb24gb2YgYW4gQW5ndWxhciBjb21waWxhdGlvbiwgYWxsb3dpbmcgZm9yIHJldXNlIG9mIGEgcHJpb3JcbiAqIGNvbXBpbGF0aW9uIGlmIGF2YWlsYWJsZSwgYW5kIHByb2R1Y2luZyBhbiBvdXRwdXQgc3RhdGUgZm9yIHJldXNlIG9mIHRoZSBjdXJyZW50IGNvbXBpbGF0aW9uIGluIGFcbiAqIGZ1dHVyZSBvbmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBJbmNyZW1lbnRhbENvbXBpbGF0aW9uIGltcGxlbWVudHMgSW5jcmVtZW50YWxCdWlsZDxDbGFzc1JlY29yZCwgRmlsZVR5cGVDaGVja2luZ0RhdGE+IHtcbiAgcHJpdmF0ZSBwaGFzZTogUGhhc2U7XG5cbiAgLyoqXG4gICAqIGBJbmNyZW1lbnRhbFN0YXRlYCBvZiB0aGlzIGNvbXBpbGF0aW9uIGlmIGl0IHdlcmUgdG8gYmUgcmV1c2VkIGluIGEgc3Vic2VxdWVudCBpbmNyZW1lbnRhbFxuICAgKiBjb21waWxhdGlvbiBhdCB0aGUgY3VycmVudCBtb21lbnQuXG4gICAqXG4gICAqIEV4cG9zZWQgdmlhIHRoZSBgc3RhdGVgIHJlYWQtb25seSBnZXR0ZXIuXG4gICAqL1xuICBwcml2YXRlIF9zdGF0ZTogSW5jcmVtZW50YWxTdGF0ZTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgICAgc3RhdGU6IEluY3JlbWVudGFsU3RhdGUsIHJlYWRvbmx5IGRlcEdyYXBoOiBGaWxlRGVwZW5kZW5jeUdyYXBoLFxuICAgICAgcHJpdmF0ZSB2ZXJzaW9uczogTWFwPEFic29sdXRlRnNQYXRoLCBzdHJpbmc+fG51bGwsIHByaXZhdGUgc3RlcDogSW5jcmVtZW50YWxTdGVwfG51bGwpIHtcbiAgICB0aGlzLl9zdGF0ZSA9IHN0YXRlO1xuXG4gICAgLy8gVGhlIGNvbXBpbGF0aW9uIGJlZ2lucyBpbiBhbmFseXNpcyBwaGFzZS5cbiAgICB0aGlzLnBoYXNlID0ge1xuICAgICAga2luZDogUGhhc2VLaW5kLkFuYWx5c2lzLFxuICAgICAgc2VtYW50aWNEZXBHcmFwaFVwZGF0ZXI6XG4gICAgICAgICAgbmV3IFNlbWFudGljRGVwR3JhcGhVcGRhdGVyKHN0ZXAgIT09IG51bGwgPyBzdGVwLnByaW9yU3RhdGUuc2VtYW50aWNEZXBHcmFwaCA6IG51bGwpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQmVnaW4gYSBmcmVzaCBgSW5jcmVtZW50YWxDb21waWxhdGlvbmAuXG4gICAqL1xuICBzdGF0aWMgZnJlc2gocHJvZ3JhbTogdHMuUHJvZ3JhbSwgdmVyc2lvbnM6IE1hcDxBYnNvbHV0ZUZzUGF0aCwgc3RyaW5nPnxudWxsKTpcbiAgICAgIEluY3JlbWVudGFsQ29tcGlsYXRpb24ge1xuICAgIGNvbnN0IHN0YXRlOiBJbmNyZW1lbnRhbFN0YXRlID0ge1xuICAgICAga2luZDogSW5jcmVtZW50YWxTdGF0ZUtpbmQuRnJlc2gsXG4gICAgfTtcbiAgICByZXR1cm4gbmV3IEluY3JlbWVudGFsQ29tcGlsYXRpb24oc3RhdGUsIG5ldyBGaWxlRGVwZW5kZW5jeUdyYXBoKCksIHZlcnNpb25zLCAvKiByZXVzZSAqLyBudWxsKTtcbiAgfVxuXG4gIHN0YXRpYyBpbmNyZW1lbnRhbChcbiAgICAgIHByb2dyYW06IHRzLlByb2dyYW0sIG5ld1ZlcnNpb25zOiBNYXA8QWJzb2x1dGVGc1BhdGgsIHN0cmluZz58bnVsbCwgb2xkUHJvZ3JhbTogdHMuUHJvZ3JhbSxcbiAgICAgIG9sZFN0YXRlOiBJbmNyZW1lbnRhbFN0YXRlLCBtb2RpZmllZFJlc291cmNlRmlsZXM6IFNldDxBYnNvbHV0ZUZzUGF0aD58bnVsbCxcbiAgICAgIHBlcmY6IFBlcmZSZWNvcmRlcik6IEluY3JlbWVudGFsQ29tcGlsYXRpb24ge1xuICAgIHJldHVybiBwZXJmLmluUGhhc2UoUGVyZlBoYXNlLlJlY29uY2lsaWF0aW9uLCAoKSA9PiB7XG4gICAgICBjb25zdCBwaHlzaWNhbGx5Q2hhbmdlZFRzRmlsZXMgPSBuZXcgU2V0PEFic29sdXRlRnNQYXRoPigpO1xuICAgICAgY29uc3QgY2hhbmdlZFJlc291cmNlRmlsZXMgPSBuZXcgU2V0PEFic29sdXRlRnNQYXRoPihtb2RpZmllZFJlc291cmNlRmlsZXMgPz8gW10pO1xuXG5cbiAgICAgIGxldCBwcmlvckFuYWx5c2lzOiBBbmFseXplZEluY3JlbWVudGFsU3RhdGU7XG4gICAgICBzd2l0Y2ggKG9sZFN0YXRlLmtpbmQpIHtcbiAgICAgICAgY2FzZSBJbmNyZW1lbnRhbFN0YXRlS2luZC5GcmVzaDpcbiAgICAgICAgICAvLyBTaW5jZSB0aGlzIGxpbmUgb2YgcHJvZ3JhbSBoYXMgbmV2ZXIgYmVlbiBzdWNjZXNzZnVsbHkgYW5hbHl6ZWQgdG8gYmVnaW4gd2l0aCwgdHJlYXRcbiAgICAgICAgICAvLyB0aGlzIGFzIGEgZnJlc2ggY29tcGlsYXRpb24uXG4gICAgICAgICAgcmV0dXJuIEluY3JlbWVudGFsQ29tcGlsYXRpb24uZnJlc2gocHJvZ3JhbSwgbmV3VmVyc2lvbnMpO1xuICAgICAgICBjYXNlIEluY3JlbWVudGFsU3RhdGVLaW5kLkFuYWx5emVkOlxuICAgICAgICAgIC8vIFRoZSBtb3N0IHJlY2VudCBwcm9ncmFtIHdhcyBhbmFseXplZCBzdWNjZXNzZnVsbHksIHNvIHdlIGNhbiB1c2UgdGhhdCBhcyBvdXIgcHJpb3JcbiAgICAgICAgICAvLyBzdGF0ZSBhbmQgZG9uJ3QgbmVlZCB0byBjb25zaWRlciBhbnkgb3RoZXIgZGVsdGFzIGV4Y2VwdCBjaGFuZ2VzIGluIHRoZSBtb3N0IHJlY2VudFxuICAgICAgICAgIC8vIHByb2dyYW0uXG4gICAgICAgICAgcHJpb3JBbmFseXNpcyA9IG9sZFN0YXRlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEluY3JlbWVudGFsU3RhdGVLaW5kLkRlbHRhOlxuICAgICAgICAgIC8vIFRoZXJlIGlzIGFuIGFuY2VzdG9yIHByb2dyYW0gd2hpY2ggd2FzIGFuYWx5emVkIHN1Y2Nlc3NmdWxseSBhbmQgY2FuIGJlIHVzZWQgYXMgYVxuICAgICAgICAgIC8vIHN0YXJ0aW5nIHBvaW50LCBidXQgd2UgbmVlZCB0byBkZXRlcm1pbmUgd2hhdCdzIGNoYW5nZWQgc2luY2UgdGhhdCBwcm9ncmFtLlxuICAgICAgICAgIHByaW9yQW5hbHlzaXMgPSBvbGRTdGF0ZS5sYXN0QW5hbHl6ZWRTdGF0ZTtcbiAgICAgICAgICBmb3IgKGNvbnN0IHNmUGF0aCBvZiBvbGRTdGF0ZS5waHlzaWNhbGx5Q2hhbmdlZFRzRmlsZXMpIHtcbiAgICAgICAgICAgIHBoeXNpY2FsbHlDaGFuZ2VkVHNGaWxlcy5hZGQoc2ZQYXRoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZm9yIChjb25zdCByZXNvdXJjZVBhdGggb2Ygb2xkU3RhdGUuY2hhbmdlZFJlc291cmNlRmlsZXMpIHtcbiAgICAgICAgICAgIGNoYW5nZWRSZXNvdXJjZUZpbGVzLmFkZChyZXNvdXJjZVBhdGgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb2xkVmVyc2lvbnMgPSBwcmlvckFuYWx5c2lzLnZlcnNpb25zO1xuXG4gICAgICBjb25zdCBvbGRGaWxlc0FycmF5ID0gb2xkUHJvZ3JhbS5nZXRTb3VyY2VGaWxlcygpLm1hcChzZiA9PiB0b1VucmVkaXJlY3RlZFNvdXJjZUZpbGUoc2YpKTtcbiAgICAgIGNvbnN0IG9sZEZpbGVzID0gbmV3IFNldChvbGRGaWxlc0FycmF5KTtcbiAgICAgIGNvbnN0IGRlbGV0ZWRUc0ZpbGVzID0gbmV3IFNldChvbGRGaWxlc0FycmF5Lm1hcChzZiA9PiBhYnNvbHV0ZUZyb21Tb3VyY2VGaWxlKHNmKSkpO1xuXG4gICAgICBmb3IgKGNvbnN0IHBvc3NpYmx5UmVkaXJlY3RlZE5ld0ZpbGUgb2YgcHJvZ3JhbS5nZXRTb3VyY2VGaWxlcygpKSB7XG4gICAgICAgIGNvbnN0IHNmID0gdG9VbnJlZGlyZWN0ZWRTb3VyY2VGaWxlKHBvc3NpYmx5UmVkaXJlY3RlZE5ld0ZpbGUpO1xuICAgICAgICBjb25zdCBzZlBhdGggPSBhYnNvbHV0ZUZyb21Tb3VyY2VGaWxlKHNmKTtcbiAgICAgICAgLy8gU2luY2Ugd2UncmUgc2VlaW5nIGEgZmlsZSBpbiB0aGUgaW5jb21pbmcgcHJvZ3JhbSB3aXRoIHRoaXMgbmFtZSwgaXQgY2FuJ3QgaGF2ZSBiZWVuXG4gICAgICAgIC8vIGRlbGV0ZWQuXG4gICAgICAgIGRlbGV0ZWRUc0ZpbGVzLmRlbGV0ZShzZlBhdGgpO1xuXG4gICAgICAgIGlmIChvbGRGaWxlcy5oYXMoc2YpKSB7XG4gICAgICAgICAgLy8gVGhpcyBzb3VyY2UgZmlsZSBoYXMgdGhlIHNhbWUgb2JqZWN0IGlkZW50aXR5IGFzIGluIHRoZSBwcmV2aW91cyBwcm9ncmFtLiBXZSBuZWVkIHRvXG4gICAgICAgICAgLy8gZGV0ZXJtaW5lIGlmIGl0J3MgcmVhbGx5IHRoZSBzYW1lIGZpbGUsIG9yIGlmIGl0IG1pZ2h0IGhhdmUgY2hhbmdlZCB2ZXJzaW9ucyBzaW5jZSB0aGVcbiAgICAgICAgICAvLyBsYXN0IHByb2dyYW0gd2l0aG91dCBjaGFuZ2luZyBpdHMgaWRlbnRpdHkuXG5cbiAgICAgICAgICAvLyBJZiB0aGVyZSdzIG5vIHZlcnNpb24gaW5mb3JtYXRpb24gYXZhaWxhYmxlLCB0aGVuIHRoaXMgaXMgdGhlIHNhbWUgZmlsZSwgYW5kIHdlIGNhblxuICAgICAgICAgIC8vIHNraXAgaXQuXG4gICAgICAgICAgaWYgKG9sZFZlcnNpb25zID09PSBudWxsIHx8IG5ld1ZlcnNpb25zID09PSBudWxsKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBJZiBhIHZlcnNpb24gaXMgYXZhaWxhYmxlIGZvciB0aGUgZmlsZSBmcm9tIGJvdGggdGhlIHByaW9yIGFuZCB0aGUgY3VycmVudCBwcm9ncmFtLCBhbmRcbiAgICAgICAgICAvLyB0aGF0IHZlcnNpb24gaXMgdGhlIHNhbWUsIHRoZW4gdGhpcyBpcyB0aGUgc2FtZSBmaWxlLCBhbmQgd2UgY2FuIHNraXAgaXQuXG4gICAgICAgICAgaWYgKG9sZFZlcnNpb25zLmhhcyhzZlBhdGgpICYmIG5ld1ZlcnNpb25zLmhhcyhzZlBhdGgpICYmXG4gICAgICAgICAgICAgIG9sZFZlcnNpb25zLmdldChzZlBhdGgpISA9PT0gbmV3VmVyc2lvbnMuZ2V0KHNmUGF0aCkhKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBPdGhlcndpc2UsIGFzc3VtZSB0aGF0IHRoZSBmaWxlIGhhcyBjaGFuZ2VkLiBFaXRoZXIgaXRzIHZlcnNpb25zIGRpZG4ndCBtYXRjaCwgb3Igd2VcbiAgICAgICAgICAvLyB3ZXJlIG1pc3NpbmcgdmVyc2lvbiBpbmZvcm1hdGlvbiBhYm91dCBpdCBvbiBvbmUgc2lkZSBmb3Igc29tZSByZWFzb24uXG4gICAgICAgIH1cblxuICAgICAgICAvLyBCYWlsIG91dCBpZiBhIC5kLnRzIGZpbGUgY2hhbmdlcyAtIHRoZSBzZW1hbnRpYyBkZXAgZ3JhcGggaXMgbm90IGFibGUgdG8gcHJvY2VzcyBzdWNoXG4gICAgICAgIC8vIGNoYW5nZXMgY29ycmVjdGx5IHlldC5cbiAgICAgICAgaWYgKHNmLmlzRGVjbGFyYXRpb25GaWxlKSB7XG4gICAgICAgICAgcmV0dXJuIEluY3JlbWVudGFsQ29tcGlsYXRpb24uZnJlc2gocHJvZ3JhbSwgbmV3VmVyc2lvbnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhlIGZpbGUgaGFzIGNoYW5nZWQgcGh5c2ljYWxseSwgc28gcmVjb3JkIGl0LlxuICAgICAgICBwaHlzaWNhbGx5Q2hhbmdlZFRzRmlsZXMuYWRkKHNmUGF0aCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlbW92ZSBhbnkgZmlsZXMgdGhhdCBoYXZlIGJlZW4gZGVsZXRlZCBmcm9tIHRoZSBsaXN0IG9mIHBoeXNpY2FsIGNoYW5nZXMuXG4gICAgICBmb3IgKGNvbnN0IGRlbGV0ZWRGaWxlTmFtZSBvZiBkZWxldGVkVHNGaWxlcykge1xuICAgICAgICBwaHlzaWNhbGx5Q2hhbmdlZFRzRmlsZXMuZGVsZXRlKHJlc29sdmUoZGVsZXRlZEZpbGVOYW1lKSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFVzZSB0aGUgcHJpb3IgZGVwZW5kZW5jeSBncmFwaCB0byBwcm9qZWN0IHBoeXNpY2FsIGNoYW5nZXMgaW50byBhIHNldCBvZiBsb2dpY2FsbHkgY2hhbmdlZFxuICAgICAgLy8gZmlsZXMuXG4gICAgICBjb25zdCBkZXBHcmFwaCA9IG5ldyBGaWxlRGVwZW5kZW5jeUdyYXBoKCk7XG4gICAgICBjb25zdCBsb2dpY2FsbHlDaGFuZ2VkVHNGaWxlcyA9IGRlcEdyYXBoLnVwZGF0ZVdpdGhQaHlzaWNhbENoYW5nZXMoXG4gICAgICAgICAgcHJpb3JBbmFseXNpcy5kZXBHcmFwaCwgcGh5c2ljYWxseUNoYW5nZWRUc0ZpbGVzLCBkZWxldGVkVHNGaWxlcywgY2hhbmdlZFJlc291cmNlRmlsZXMpO1xuXG4gICAgICAvLyBQaHlzaWNhbGx5IGNoYW5nZWQgZmlsZXMgYXJlbid0IG5lY2Vzc2FyaWx5IGNvdW50ZWQgYXMgbG9naWNhbGx5IGNoYW5nZWQgYnkgdGhlIGRlcGVuZGVuY3lcbiAgICAgIC8vIGdyYXBoIChmaWxlcyBkbyBub3QgaGF2ZSBlZGdlcyB0byB0aGVtc2VsdmVzKSwgc28gYWRkIHRoZW0gdG8gdGhlIGxvZ2ljYWwgY2hhbmdlc1xuICAgICAgLy8gZXhwbGljaXRseS5cbiAgICAgIGZvciAoY29uc3Qgc2ZQYXRoIG9mIHBoeXNpY2FsbHlDaGFuZ2VkVHNGaWxlcykge1xuICAgICAgICBsb2dpY2FsbHlDaGFuZ2VkVHNGaWxlcy5hZGQoc2ZQYXRoKTtcbiAgICAgIH1cblxuICAgICAgLy8gU3RhcnQgb2ZmIGluIGEgYERlbHRhSW5jcmVtZW50YWxTdGF0ZWAgYXMgYSBkZWx0YSBhZ2FpbnN0IHRoZSBwcmV2aW91cyBzdWNjZXNzZnVsIGFuYWx5c2lzLFxuICAgICAgLy8gdW50aWwgdGhpcyBjb21waWxhdGlvbiBjb21wbGV0ZXMgaXRzIG93biBhbmFseXNpcy5cbiAgICAgIGNvbnN0IHN0YXRlOiBEZWx0YUluY3JlbWVudGFsU3RhdGUgPSB7XG4gICAgICAgIGtpbmQ6IEluY3JlbWVudGFsU3RhdGVLaW5kLkRlbHRhLFxuICAgICAgICBwaHlzaWNhbGx5Q2hhbmdlZFRzRmlsZXMsXG4gICAgICAgIGNoYW5nZWRSZXNvdXJjZUZpbGVzLFxuICAgICAgICBsYXN0QW5hbHl6ZWRTdGF0ZTogcHJpb3JBbmFseXNpcyxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBuZXcgSW5jcmVtZW50YWxDb21waWxhdGlvbihzdGF0ZSwgZGVwR3JhcGgsIG5ld1ZlcnNpb25zLCB7XG4gICAgICAgIHByaW9yU3RhdGU6IHByaW9yQW5hbHlzaXMsXG4gICAgICAgIGxvZ2ljYWxseUNoYW5nZWRUc0ZpbGVzLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBnZXQgc3RhdGUoKTogSW5jcmVtZW50YWxTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlO1xuICB9XG5cbiAgZ2V0IHNlbWFudGljRGVwR3JhcGhVcGRhdGVyKCk6IFNlbWFudGljRGVwR3JhcGhVcGRhdGVyIHtcbiAgICBpZiAodGhpcy5waGFzZS5raW5kICE9PSBQaGFzZUtpbmQuQW5hbHlzaXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQXNzZXJ0aW9uRXJyb3I6IENhbm5vdCB1cGRhdGUgdGhlIFNlbWFudGljRGVwR3JhcGggYWZ0ZXIgYW5hbHlzaXMgY29tcGxldGVzYCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnBoYXNlLnNlbWFudGljRGVwR3JhcGhVcGRhdGVyO1xuICB9XG5cbiAgcmVjb3JkU3VjY2Vzc2Z1bEFuYWx5c2lzKHRyYWl0Q29tcGlsZXI6IFRyYWl0Q29tcGlsZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5waGFzZS5raW5kICE9PSBQaGFzZUtpbmQuQW5hbHlzaXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQXNzZXJ0aW9uRXJyb3I6IEluY3JlbWVudGFsIGNvbXBpbGF0aW9uIGluIHBoYXNlICR7XG4gICAgICAgICAgUGhhc2VLaW5kW3RoaXMucGhhc2Uua2luZF19LCBleHBlY3RlZCBBbmFseXNpc2ApO1xuICAgIH1cblxuICAgIGNvbnN0IHtuZWVkc0VtaXQsIG5lZWRzVHlwZUNoZWNrRW1pdCwgbmV3R3JhcGh9ID0gdGhpcy5waGFzZS5zZW1hbnRpY0RlcEdyYXBoVXBkYXRlci5maW5hbGl6ZSgpO1xuXG4gICAgLy8gRGV0ZXJtaW5lIHRoZSBzZXQgb2YgZmlsZXMgd2hpY2ggaGF2ZSBhbHJlYWR5IGJlZW4gZW1pdHRlZC5cbiAgICBsZXQgZW1pdHRlZDogU2V0PEFic29sdXRlRnNQYXRoPjtcbiAgICBpZiAodGhpcy5zdGVwID09PSBudWxsKSB7XG4gICAgICAvLyBTaW5jZSB0aGVyZSBpcyBubyBwcmlvciBjb21waWxhdGlvbiwgbm8gZmlsZXMgaGF2ZSB5ZXQgYmVlbiBlbWl0dGVkLlxuICAgICAgZW1pdHRlZCA9IG5ldyBTZXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQmVnaW4gd2l0aCB0aGUgZmlsZXMgZW1pdHRlZCBieSB0aGUgcHJpb3Igc3VjY2Vzc2Z1bCBjb21waWxhdGlvbiwgYnV0IHJlbW92ZSB0aG9zZSB3aGljaCB3ZVxuICAgICAgLy8ga25vdyBuZWVkIHRvIGJlZSByZS1lbWl0dGVkLlxuICAgICAgZW1pdHRlZCA9IG5ldyBTZXQodGhpcy5zdGVwLnByaW9yU3RhdGUuZW1pdHRlZCk7XG5cbiAgICAgIC8vIEZpbGVzIG5lZWQgcmUtZW1pdHRlZCBpZiB0aGV5J3ZlIGxvZ2ljYWxseSBjaGFuZ2VkLlxuICAgICAgZm9yIChjb25zdCBzZlBhdGggb2YgdGhpcy5zdGVwLmxvZ2ljYWxseUNoYW5nZWRUc0ZpbGVzKSB7XG4gICAgICAgIGVtaXR0ZWQuZGVsZXRlKHNmUGF0aCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEZpbGVzIG5lZWQgcmUtZW1pdHRlZCBpZiB0aGV5J3ZlIHNlbWFudGljYWxseSBjaGFuZ2VkLlxuICAgICAgZm9yIChjb25zdCBzZlBhdGggb2YgbmVlZHNFbWl0KSB7XG4gICAgICAgIGVtaXR0ZWQuZGVsZXRlKHNmUGF0aCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVHJhbnNpdGlvbiB0byBhIHN1Y2Nlc3NmdWxseSBhbmFseXplZCBjb21waWxhdGlvbi4gQXQgdGhpcyBwb2ludCwgYSBzdWJzZXF1ZW50IGNvbXBpbGF0aW9uXG4gICAgLy8gY291bGQgdXNlIHRoaXMgc3RhdGUgYXMgYSBzdGFydGluZyBwb2ludC5cbiAgICB0aGlzLl9zdGF0ZSA9IHtcbiAgICAgIGtpbmQ6IEluY3JlbWVudGFsU3RhdGVLaW5kLkFuYWx5emVkLFxuICAgICAgdmVyc2lvbnM6IHRoaXMudmVyc2lvbnMsXG4gICAgICBkZXBHcmFwaDogdGhpcy5kZXBHcmFwaCxcbiAgICAgIHNlbWFudGljRGVwR3JhcGg6IG5ld0dyYXBoLFxuICAgICAgcHJpb3JBbmFseXNpczogdHJhaXRDb21waWxlci5nZXRBbmFseXplZFJlY29yZHMoKSxcbiAgICAgIHR5cGVDaGVja1Jlc3VsdHM6IG51bGwsXG4gICAgICBlbWl0dGVkLFxuICAgIH07XG5cbiAgICAvLyBXZSBub3cgZW50ZXIgdGhlIHR5cGUtY2hlY2sgYW5kIGVtaXQgcGhhc2Ugb2YgY29tcGlsYXRpb24uXG4gICAgdGhpcy5waGFzZSA9IHtcbiAgICAgIGtpbmQ6IFBoYXNlS2luZC5UeXBlQ2hlY2tBbmRFbWl0LFxuICAgICAgbmVlZHNFbWl0LFxuICAgICAgbmVlZHNUeXBlQ2hlY2tFbWl0LFxuICAgIH07XG4gIH1cblxuICByZWNvcmRTdWNjZXNzZnVsVHlwZUNoZWNrKHJlc3VsdHM6IE1hcDxBYnNvbHV0ZUZzUGF0aCwgRmlsZVR5cGVDaGVja2luZ0RhdGE+KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3N0YXRlLmtpbmQgIT09IEluY3JlbWVudGFsU3RhdGVLaW5kLkFuYWx5emVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEFzc2VydGlvbkVycm9yOiBFeHBlY3RlZCBzdWNjZXNzZnVsbHkgYW5hbHl6ZWQgY29tcGlsYXRpb24uYCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnBoYXNlLmtpbmQgIT09IFBoYXNlS2luZC5UeXBlQ2hlY2tBbmRFbWl0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEFzc2VydGlvbkVycm9yOiBJbmNyZW1lbnRhbCBjb21waWxhdGlvbiBpbiBwaGFzZSAke1xuICAgICAgICAgIFBoYXNlS2luZFt0aGlzLnBoYXNlLmtpbmRdfSwgZXhwZWN0ZWQgVHlwZUNoZWNrYCk7XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhdGUudHlwZUNoZWNrUmVzdWx0cyA9IHJlc3VsdHM7XG4gIH1cblxuXG4gIHJlY29yZFN1Y2Nlc3NmdWxFbWl0KHNmOiB0cy5Tb3VyY2VGaWxlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3N0YXRlLmtpbmQgIT09IEluY3JlbWVudGFsU3RhdGVLaW5kLkFuYWx5emVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEFzc2VydGlvbkVycm9yOiBFeHBlY3RlZCBzdWNjZXNzZnVsbHkgYW5hbHl6ZWQgY29tcGlsYXRpb24uYCk7XG4gICAgfVxuICAgIHRoaXMuX3N0YXRlLmVtaXR0ZWQuYWRkKGFic29sdXRlRnJvbVNvdXJjZUZpbGUoc2YpKTtcbiAgfVxuXG4gIHByaW9yQW5hbHlzaXNGb3Ioc2Y6IHRzLlNvdXJjZUZpbGUpOiBDbGFzc1JlY29yZFtdfG51bGwge1xuICAgIGlmICh0aGlzLnN0ZXAgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHNmUGF0aCA9IGFic29sdXRlRnJvbVNvdXJjZUZpbGUoc2YpO1xuXG4gICAgLy8gSWYgdGhlIGZpbGUgaGFzIGxvZ2ljYWxseSBjaGFuZ2VkLCBpdHMgcHJldmlvdXMgYW5hbHlzaXMgY2Fubm90IGJlIHJldXNlZC5cbiAgICBpZiAodGhpcy5zdGVwLmxvZ2ljYWxseUNoYW5nZWRUc0ZpbGVzLmhhcyhzZlBhdGgpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBwcmlvckFuYWx5c2lzID0gdGhpcy5zdGVwLnByaW9yU3RhdGUucHJpb3JBbmFseXNpcztcbiAgICBpZiAoIXByaW9yQW5hbHlzaXMuaGFzKHNmKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBwcmlvckFuYWx5c2lzLmdldChzZikhO1xuICB9XG5cbiAgcHJpb3JUeXBlQ2hlY2tpbmdSZXN1bHRzRm9yKHNmOiB0cy5Tb3VyY2VGaWxlKTogRmlsZVR5cGVDaGVja2luZ0RhdGF8bnVsbCB7XG4gICAgaWYgKHRoaXMucGhhc2Uua2luZCAhPT0gUGhhc2VLaW5kLlR5cGVDaGVja0FuZEVtaXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQXNzZXJ0aW9uRXJyb3I6IEV4cGVjdGVkIHN1Y2Nlc3NmdWxseSBhbmFseXplZCBjb21waWxhdGlvbi5gKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdGVwID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBzZlBhdGggPSBhYnNvbHV0ZUZyb21Tb3VyY2VGaWxlKHNmKTtcblxuICAgIC8vIElmIHRoZSBmaWxlIGhhcyBsb2dpY2FsbHkgY2hhbmdlZCwgb3IgaXRzIHRlbXBsYXRlIHR5cGUtY2hlY2tpbmcgcmVzdWx0cyBoYXZlIHNlbWFudGljYWxseVxuICAgIC8vIGNoYW5nZWQsIHRoZW4gcGFzdCB0eXBlLWNoZWNraW5nIHJlc3VsdHMgY2Fubm90IGJlIHJldXNlZC5cbiAgICBpZiAodGhpcy5zdGVwLmxvZ2ljYWxseUNoYW5nZWRUc0ZpbGVzLmhhcyhzZlBhdGgpIHx8XG4gICAgICAgIHRoaXMucGhhc2UubmVlZHNUeXBlQ2hlY2tFbWl0LmhhcyhzZlBhdGgpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBQYXN0IHJlc3VsdHMgYWxzbyBjYW5ub3QgYmUgcmV1c2VkIGlmIHRoZXkncmUgbm90IGF2YWlsYWJsZS5cbiAgICBpZiAodGhpcy5zdGVwLnByaW9yU3RhdGUudHlwZUNoZWNrUmVzdWx0cyA9PT0gbnVsbCB8fFxuICAgICAgICAhdGhpcy5zdGVwLnByaW9yU3RhdGUudHlwZUNoZWNrUmVzdWx0cy5oYXMoc2ZQYXRoKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgcHJpb3JSZXN1bHRzID0gdGhpcy5zdGVwLnByaW9yU3RhdGUudHlwZUNoZWNrUmVzdWx0cy5nZXQoc2ZQYXRoKSE7XG4gICAgLy8gSWYgdGhlIHBhc3QgcmVzdWx0cyByZWxpZWQgb24gaW5saW5pbmcsIHRoZXkncmUgbm90IHNhZmUgZm9yIHJldXNlLlxuICAgIGlmIChwcmlvclJlc3VsdHMuaGFzSW5saW5lcykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByaW9yUmVzdWx0cztcbiAgfVxuXG4gIHNhZmVUb1NraXBFbWl0KHNmOiB0cy5Tb3VyY2VGaWxlKTogYm9vbGVhbiB7XG4gICAgLy8gSWYgdGhpcyBpcyBhIGZyZXNoIGNvbXBpbGF0aW9uLCBpdCdzIG5ldmVyIHNhZmUgdG8gc2tpcCBhbiBlbWl0LlxuICAgIGlmICh0aGlzLnN0ZXAgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBzZlBhdGggPSBhYnNvbHV0ZUZyb21Tb3VyY2VGaWxlKHNmKTtcblxuICAgIC8vIElmIHRoZSBmaWxlIGhhcyBpdHNlbGYgbG9naWNhbGx5IGNoYW5nZWQsIGl0IG11c3QgYmUgZW1pdHRlZC5cbiAgICBpZiAodGhpcy5zdGVwLmxvZ2ljYWxseUNoYW5nZWRUc0ZpbGVzLmhhcyhzZlBhdGgpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGhhc2Uua2luZCAhPT0gUGhhc2VLaW5kLlR5cGVDaGVja0FuZEVtaXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQXNzZXJ0aW9uRXJyb3I6IEV4cGVjdGVkIHN1Y2Nlc3NmdWwgYW5hbHlzaXMgYmVmb3JlIGF0dGVtcHRpbmcgdG8gZW1pdCBmaWxlc2ApO1xuICAgIH1cblxuICAgIC8vIElmIGR1cmluZyBhbmFseXNpcyBpdCB3YXMgZGV0ZXJtaW5lZCB0aGF0IHRoaXMgZmlsZSBoYXMgc2VtYW50aWNhbGx5IGNoYW5nZWQsIGl0IG11c3QgYmVcbiAgICAvLyBlbWl0dGVkLlxuICAgIGlmICh0aGlzLnBoYXNlLm5lZWRzRW1pdC5oYXMoc2ZQYXRoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIEdlbmVyYWxseSBpdCBzaG91bGQgYmUgc2FmZSB0byBhc3N1bWUgaGVyZSB0aGF0IHRoZSBmaWxlIHdhcyBwcmV2aW91c2x5IGVtaXR0ZWQgYnkgdGhlIGxhc3RcbiAgICAvLyBzdWNjZXNzZnVsIGNvbXBpbGF0aW9uLiBIb3dldmVyLCBhcyBhIGRlZmVuc2UtaW4tZGVwdGggYWdhaW5zdCBpbmNvcnJlY3RuZXNzLCB3ZSBleHBsaWNpdGx5XG4gICAgLy8gY2hlY2sgdGhhdCB0aGUgbGFzdCBlbWl0IGluY2x1ZGVkIHRoaXMgZmlsZSwgYW5kIHJlLWVtaXQgaXQgb3RoZXJ3aXNlLlxuICAgIHJldHVybiB0aGlzLnN0ZXAucHJpb3JTdGF0ZS5lbWl0dGVkLmhhcyhzZlBhdGgpO1xuICB9XG59XG4iXX0=
@@ -1,13 +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 const NOOP_INCREMENTAL_BUILD = {
9
- priorAnalysisFor: () => null,
10
- priorTypeCheckingResultsFor: () => null,
11
- recordSuccessfulTypeCheck: () => { },
12
- };
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9vcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvaW5jcmVtZW50YWwvc3JjL25vb3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBSUgsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQStCO0lBQ2hFLGdCQUFnQixFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUk7SUFDNUIsMkJBQTJCLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtJQUN2Qyx5QkFBeUIsRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDO0NBQ3BDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtJbmNyZW1lbnRhbEJ1aWxkfSBmcm9tICcuLi9hcGknO1xuXG5leHBvcnQgY29uc3QgTk9PUF9JTkNSRU1FTlRBTF9CVUlMRDogSW5jcmVtZW50YWxCdWlsZDxhbnksIGFueT4gPSB7XG4gIHByaW9yQW5hbHlzaXNGb3I6ICgpID0+IG51bGwsXG4gIHByaW9yVHlwZUNoZWNraW5nUmVzdWx0c0ZvcjogKCkgPT4gbnVsbCxcbiAgcmVjb3JkU3VjY2Vzc2Z1bFR5cGVDaGVjazogKCkgPT4ge30sXG59O1xuIl19
@@ -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
- /**
9
- * Discriminant of the `IncrementalState` union.
10
- */
11
- export var IncrementalStateKind;
12
- (function (IncrementalStateKind) {
13
- IncrementalStateKind[IncrementalStateKind["Fresh"] = 0] = "Fresh";
14
- IncrementalStateKind[IncrementalStateKind["Delta"] = 1] = "Delta";
15
- IncrementalStateKind[IncrementalStateKind["Analyzed"] = 2] = "Analyzed";
16
- })(IncrementalStateKind || (IncrementalStateKind = {}));
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL2luY3JlbWVudGFsL3NyYy9zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFXSDs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLG9CQUlYO0FBSkQsV0FBWSxvQkFBb0I7SUFDOUIsaUVBQUssQ0FBQTtJQUNMLGlFQUFLLENBQUE7SUFDTCx1RUFBUSxDQUFBO0FBQ1YsQ0FBQyxFQUpXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFJL0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7QWJzb2x1dGVGc1BhdGh9IGZyb20gJy4uLy4uL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7Q2xhc3NSZWNvcmR9IGZyb20gJy4uLy4uL3RyYW5zZm9ybSc7XG5pbXBvcnQge0ZpbGVUeXBlQ2hlY2tpbmdEYXRhfSBmcm9tICcuLi8uLi90eXBlY2hlY2svc3JjL2NoZWNrZXInO1xuaW1wb3J0IHtTZW1hbnRpY0RlcEdyYXBofSBmcm9tICcuLi9zZW1hbnRpY19ncmFwaCc7XG5cbmltcG9ydCB7RmlsZURlcGVuZGVuY3lHcmFwaH0gZnJvbSAnLi9kZXBlbmRlbmN5X3RyYWNraW5nJztcblxuLyoqXG4gKiBEaXNjcmltaW5hbnQgb2YgdGhlIGBJbmNyZW1lbnRhbFN0YXRlYCB1bmlvbi5cbiAqL1xuZXhwb3J0IGVudW0gSW5jcmVtZW50YWxTdGF0ZUtpbmQge1xuICBGcmVzaCxcbiAgRGVsdGEsXG4gIEFuYWx5emVkLFxufVxuXG4vKipcbiAqIFBsYWNlaG9sZGVyIHN0YXRlIGZvciBhIGZyZXNoIGNvbXBpbGF0aW9uIHRoYXQgaGFzIG5ldmVyIGJlZW4gc3VjY2Vzc2Z1bGx5IGFuYWx5emVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZyZXNoSW5jcmVtZW50YWxTdGF0ZSB7XG4gIGtpbmQ6IEluY3JlbWVudGFsU3RhdGVLaW5kLkZyZXNoO1xufVxuXG4vKipcbiAqIFN0YXRlIGNhcHR1cmVkIGZyb20gYSBjb21waWxhdGlvbiB0aGF0IGNvbXBsZXRlZCBhbmFseXNpcyBzdWNjZXNzZnVsbHksIHRoYXQgY2FuIHNlcnZlIGFzIGFcbiAqIHN0YXJ0aW5nIHBvaW50IGZvciBhIGZ1dHVyZSBpbmNyZW1lbnRhbCBidWlsZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbmFseXplZEluY3JlbWVudGFsU3RhdGUge1xuICBraW5kOiBJbmNyZW1lbnRhbFN0YXRlS2luZC5BbmFseXplZDtcblxuICAvKipcbiAgICogRGVwZW5kZW5jeSBncmFwaCBleHRyYWN0ZWQgZnJvbSB0aGUgYnVpbGQsIHRvIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBsb2dpY2FsIGltcGFjdCBvZlxuICAgKiBwaHlzaWNhbCBmaWxlIGNoYW5nZXMuXG4gICAqL1xuICBkZXBHcmFwaDogRmlsZURlcGVuZGVuY3lHcmFwaDtcblxuICAvKipcbiAgICogVGhlIHNlbWFudGljIGRlcGVuZGVuY3kgZ3JhcGggZnJvbSB0aGUgYnVpbGQuXG4gICAqXG4gICAqIFRoaXMgaXMgdXNlZCB0byBwZXJmb3JtIGluLWRlcHRoIGNvbXBhcmlzb24gb2YgQW5ndWxhciBkZWNvcmF0ZWQgY2xhc3NlcywgdG8gZGV0ZXJtaW5lXG4gICAqIHdoaWNoIGZpbGVzIGhhdmUgdG8gYmUgcmUtZW1pdHRlZCBhbmQvb3IgcmUtdHlwZS1jaGVja2VkLlxuICAgKi9cbiAgc2VtYW50aWNEZXBHcmFwaDogU2VtYW50aWNEZXBHcmFwaDtcblxuICAvKipcbiAgICogVGhlIGFuYWx5c2lzIGRhdGEgZnJvbSBhIHByaW9yIGNvbXBpbGF0aW9uLiBUaGlzIHN0b3JlcyB0aGUgdHJhaXQgaW5mb3JtYXRpb24gZm9yIGFsbCBzb3VyY2VcbiAgICogZmlsZXMgdGhhdCB3YXMgcHJlc2VudCBpbiBhIHByaW9yIGNvbXBpbGF0aW9uLlxuICAgKi9cbiAgcHJpb3JBbmFseXNpczogTWFwPHRzLlNvdXJjZUZpbGUsIENsYXNzUmVjb3JkW10+O1xuXG4gIC8qKlxuICAgKiBBbGwgZ2VuZXJhdGVkIHRlbXBsYXRlIHR5cGUtY2hlY2tpbmcgZmlsZXMgcHJvZHVjZWQgYXMgcGFydCBvZiB0aGlzIGNvbXBpbGF0aW9uLCBvciBgbnVsbGAgaWZcbiAgICogdHlwZS1jaGVja2luZyB3YXMgbm90ICh5ZXQpIHBlcmZvcm1lZC5cbiAgICovXG4gIHR5cGVDaGVja1Jlc3VsdHM6IE1hcDxBYnNvbHV0ZUZzUGF0aCwgRmlsZVR5cGVDaGVja2luZ0RhdGE+fG51bGw7XG5cbiAgLyoqXG4gICAqIEN1bXVsYXRpdmUgc2V0IG9mIHNvdXJjZSBmaWxlIHBhdGhzIHdoaWNoIHdlcmUgZGVmaW5pdGl2ZWx5IGVtaXR0ZWQgYnkgdGhpcyBjb21waWxhdGlvbiBvclxuICAgKiBjYXJyaWVkIGZvcndhcmQgZnJvbSBhIHByaW9yIG9uZS5cbiAgICovXG4gIGVtaXR0ZWQ6IFNldDxBYnNvbHV0ZUZzUGF0aD47XG5cbiAgLyoqXG4gICAqIE1hcCBvZiBzb3VyY2UgZmlsZSBwYXRocyB0byB0aGUgdmVyc2lvbiBvZiB0aGlzIGZpbGUgYXMgc2VlbiBpbiB0aGUgY29tcGlsYXRpb24uXG4gICAqL1xuICB2ZXJzaW9uczogTWFwPEFic29sdXRlRnNQYXRoLCBzdHJpbmc+fG51bGw7XG59XG5cbi8qKlxuICogSW5jcmVtZW50YWwgc3RhdGUgZm9yIGEgY29tcGlsYXRpb24gdGhhdCBoYXMgbm90IGJlZW4gc3VjY2Vzc2Z1bGx5IGFuYWx5emVkLCBidXQgdGhhdCBjYW4gYmVcbiAqIGJhc2VkIG9uIGEgcHJldmlvdXMgY29tcGlsYXRpb24gd2hpY2ggd2FzLlxuICpcbiAqIFRoaXMgaXMgdGhlIHN0YXRlIHByb2R1Y2VkIGJ5IGFuIGluY3JlbWVlbnRhbCBjb21waWxhdGlvbiB1bnRpbCBpdHMgb3duIGFuYWx5c2lzIHN1Y2NlZWRzLiBJZlxuICogYW5hbHlzaXMgZmFpbHMsIHRoaXMgc3RhdGUgY2FycmllcyBmb3J3YXJkIGluZm9ybWF0aW9uIGFib3V0IHdoaWNoIGZpbGVzIGhhdmUgY2hhbmdlZCBzaW5jZSB0aGVcbiAqIGxhc3Qgc3VjY2Vzc2Z1bCBidWlsZCAodGhlIGBsYXN0QW5hbHl6ZWRTdGF0ZWApLCBzbyB0aGF0IHRoZSBuZXh0IGluY3JlbWVudGFsIGJ1aWxkIGNhbiBjb25zaWRlclxuICogdGhlIHRvdGFsIGRlbHRhIGJldHdlZW4gdGhlIGBsYXN0QW5hbHl6ZWRTdGF0ZWAgYW5kIHRoZSBjdXJyZW50IHByb2dyYW0gaW4gaXRzIGluY3JlbWVudGFsXG4gKiBhbmFseXNpcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWx0YUluY3JlbWVudGFsU3RhdGUge1xuICBraW5kOiBJbmNyZW1lbnRhbFN0YXRlS2luZC5EZWx0YTtcblxuICAvKipcbiAgICogSWYgYXZhaWxhYmxlLCB0aGUgYEFuYWx5emVkSW5jcmVtZW50YWxTdGF0ZWAgZm9yIHRoZSBtb3N0IHJlY2VudCBhbmNlc3RvciBvZiB0aGUgY3VycmVudFxuICAgKiBwcm9ncmFtIHdoaWNoIHdhcyBzdWNjZXNzZnVsbHkgYW5hbHl6ZWQuXG4gICAqL1xuICBsYXN0QW5hbHl6ZWRTdGF0ZTogQW5hbHl6ZWRJbmNyZW1lbnRhbFN0YXRlO1xuXG4gIC8qKlxuICAgKiBTZXQgb2YgZmlsZSBwYXRocyB3aGljaCBoYXZlIGNoYW5nZWQgc2luY2UgdGhlIGBsYXN0QW5hbHl6ZWRTdGF0ZWAgY29tcGlsYXRpb24uXG4gICAqL1xuICBwaHlzaWNhbGx5Q2hhbmdlZFRzRmlsZXM6IFNldDxBYnNvbHV0ZUZzUGF0aD47XG5cbiAgLyoqXG4gICAqIFNldCBvZiByZXNvdXJjZSBmaWxlIHBhdGhzIHdoaWNoIGhhdmUgY2hhbmdlZCBzaW5jZSB0aGUgYGxhc3RBbmFseXplZFN0YXRlYCBjb21waWxhdGlvbi5cbiAgICovXG4gIGNoYW5nZWRSZXNvdXJjZUZpbGVzOiBTZXQ8QWJzb2x1dGVGc1BhdGg+O1xufVxuXG4vKipcbiAqIFN0YXRlIHByb2R1Y2VkIGJ5IGEgY29tcGlsYXRpb24gdGhhdCdzIHVzYWJsZSBhcyB0aGUgc3RhcnRpbmcgcG9pbnQgZm9yIGEgc3Vic2VxdWVudCBjb21waWxhdGlvbi5cbiAqXG4gKiBEaXNjcmltaW5hdGVkIGJ5IHRoZSBgSW5jcmVtZW50YWxTdGF0ZUtpbmRgIGVudW0uXG4gKi9cbmV4cG9ydCB0eXBlIEluY3JlbWVudGFsU3RhdGUgPSBBbmFseXplZEluY3JlbWVudGFsU3RhdGV8RGVsdGFJbmNyZW1lbnRhbFN0YXRlfEZyZXNoSW5jcmVtZW50YWxTdGF0ZTtcbiJdfQ==
@@ -1,76 +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
- * A noop implementation of `IncrementalBuildStrategy` which neither returns nor tracks any
10
- * incremental data.
11
- */
12
- export class NoopIncrementalBuildStrategy {
13
- getIncrementalState() {
14
- return null;
15
- }
16
- setIncrementalState() { }
17
- toNextBuildStrategy() {
18
- return this;
19
- }
20
- }
21
- /**
22
- * Tracks an `IncrementalDriver` within the strategy itself.
23
- */
24
- export class TrackedIncrementalBuildStrategy {
25
- constructor() {
26
- this.state = null;
27
- this.isSet = false;
28
- }
29
- getIncrementalState() {
30
- return this.state;
31
- }
32
- setIncrementalState(state) {
33
- this.state = state;
34
- this.isSet = true;
35
- }
36
- toNextBuildStrategy() {
37
- const strategy = new TrackedIncrementalBuildStrategy();
38
- // Only reuse state that was explicitly set via `setIncrementalState`.
39
- strategy.state = this.isSet ? this.state : null;
40
- return strategy;
41
- }
42
- }
43
- /**
44
- * Manages the `IncrementalDriver` associated with a `ts.Program` by monkey-patching it onto the
45
- * program under `SYM_INCREMENTAL_DRIVER`.
46
- */
47
- export class PatchedProgramIncrementalBuildStrategy {
48
- getIncrementalState(program) {
49
- const state = program[SYM_INCREMENTAL_STATE];
50
- if (state === undefined) {
51
- return null;
52
- }
53
- return state;
54
- }
55
- setIncrementalState(state, program) {
56
- program[SYM_INCREMENTAL_STATE] = state;
57
- }
58
- toNextBuildStrategy() {
59
- return this;
60
- }
61
- }
62
- /**
63
- * Symbol under which the `IncrementalDriver` is stored on a `ts.Program`.
64
- *
65
- * The TS model of incremental compilation is based around reuse of a previous `ts.Program` in the
66
- * construction of a new one. The `NgCompiler` follows this abstraction - passing in a previous
67
- * `ts.Program` is sufficient to trigger incremental compilation. This previous `ts.Program` need
68
- * not be from an Angular compilation (that is, it need not have been created from `NgCompiler`).
69
- *
70
- * If it is, though, Angular can benefit from reusing previous analysis work. This reuse is managed
71
- * by the `IncrementalDriver`, which is inherited from the old program to the new program. To
72
- * support this behind the API of passing an old `ts.Program`, the `IncrementalDriver` is stored on
73
- * the `ts.Program` under this symbol.
74
- */
75
- const SYM_INCREMENTAL_STATE = Symbol('NgIncrementalState');
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL2luY3JlbWVudGFsL3NyYy9zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUE0Qkg7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLDRCQUE0QjtJQUN2QyxtQkFBbUI7UUFDakIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsbUJBQW1CLEtBQVUsQ0FBQztJQUU5QixtQkFBbUI7UUFDakIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBTywrQkFBK0I7SUFBNUM7UUFDVSxVQUFLLEdBQTBCLElBQUksQ0FBQztRQUNwQyxVQUFLLEdBQVksS0FBSyxDQUFDO0lBaUJqQyxDQUFDO0lBZkMsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsbUJBQW1CLENBQUMsS0FBdUI7UUFDekMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixNQUFNLFFBQVEsR0FBRyxJQUFJLCtCQUErQixFQUFFLENBQUM7UUFDdkQsc0VBQXNFO1FBQ3RFLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2hELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7Q0FDRjtBQUVEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxzQ0FBc0M7SUFDakQsbUJBQW1CLENBQUMsT0FBbUI7UUFDckMsTUFBTSxLQUFLLEdBQUksT0FBbUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzFFLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN2QixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsbUJBQW1CLENBQUMsS0FBdUIsRUFBRSxPQUFtQjtRQUM3RCxPQUFtQyxDQUFDLHFCQUFxQixDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUFHRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtJbmNyZW1lbnRhbFN0YXRlfSBmcm9tICcuL3N0YXRlJztcblxuLyoqXG4gKiBTdHJhdGVneSB1c2VkIHRvIG1hbmFnZSB0aGUgYXNzb2NpYXRpb24gYmV0d2VlbiBhIGB0cy5Qcm9ncmFtYCBhbmQgdGhlIGBJbmNyZW1lbnRhbERyaXZlcmAgd2hpY2hcbiAqIHJlcHJlc2VudHMgdGhlIHJldXNhYmxlIEFuZ3VsYXIgcGFydCBvZiBpdHMgY29tcGlsYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5jcmVtZW50YWxCdWlsZFN0cmF0ZWd5IHtcbiAgLyoqXG4gICAqIERldGVybWluZSB0aGUgQW5ndWxhciBgSW5jcmVtZW50YWxEcml2ZXJgIGZvciB0aGUgZ2l2ZW4gYHRzLlByb2dyYW1gLCBpZiBvbmUgaXMgYXZhaWxhYmxlLlxuICAgKi9cbiAgZ2V0SW5jcmVtZW50YWxTdGF0ZShwcm9ncmFtOiB0cy5Qcm9ncmFtKTogSW5jcmVtZW50YWxTdGF0ZXxudWxsO1xuXG4gIC8qKlxuICAgKiBBc3NvY2lhdGUgdGhlIGdpdmVuIGBJbmNyZW1lbnRhbERyaXZlcmAgd2l0aCB0aGUgZ2l2ZW4gYHRzLlByb2dyYW1gIGFuZCBtYWtlIGl0IGF2YWlsYWJsZSB0b1xuICAgKiBmdXR1cmUgY29tcGlsYXRpb25zLlxuICAgKi9cbiAgc2V0SW5jcmVtZW50YWxTdGF0ZShkcml2ZXI6IEluY3JlbWVudGFsU3RhdGUsIHByb2dyYW06IHRzLlByb2dyYW0pOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBDb252ZXJ0IHRoaXMgYEluY3JlbWVudGFsQnVpbGRTdHJhdGVneWAgaW50byBhIHBvc3NpYmx5IG5ldyBpbnN0YW5jZSB0byBiZSB1c2VkIGluIHRoZSBuZXh0XG4gICAqIGluY3JlbWVudGFsIGNvbXBpbGF0aW9uIChtYXkgYmUgYSBuby1vcCBpZiB0aGUgc3RyYXRlZ3kgaXMgbm90IHN0YXRlZnVsKS5cbiAgICovXG4gIHRvTmV4dEJ1aWxkU3RyYXRlZ3koKTogSW5jcmVtZW50YWxCdWlsZFN0cmF0ZWd5O1xufVxuXG4vKipcbiAqIEEgbm9vcCBpbXBsZW1lbnRhdGlvbiBvZiBgSW5jcmVtZW50YWxCdWlsZFN0cmF0ZWd5YCB3aGljaCBuZWl0aGVyIHJldHVybnMgbm9yIHRyYWNrcyBhbnlcbiAqIGluY3JlbWVudGFsIGRhdGEuXG4gKi9cbmV4cG9ydCBjbGFzcyBOb29wSW5jcmVtZW50YWxCdWlsZFN0cmF0ZWd5IGltcGxlbWVudHMgSW5jcmVtZW50YWxCdWlsZFN0cmF0ZWd5IHtcbiAgZ2V0SW5jcmVtZW50YWxTdGF0ZSgpOiBudWxsIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHNldEluY3JlbWVudGFsU3RhdGUoKTogdm9pZCB7fVxuXG4gIHRvTmV4dEJ1aWxkU3RyYXRlZ3koKTogSW5jcmVtZW50YWxCdWlsZFN0cmF0ZWd5IHtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxufVxuXG4vKipcbiAqIFRyYWNrcyBhbiBgSW5jcmVtZW50YWxEcml2ZXJgIHdpdGhpbiB0aGUgc3RyYXRlZ3kgaXRzZWxmLlxuICovXG5leHBvcnQgY2xhc3MgVHJhY2tlZEluY3JlbWVudGFsQnVpbGRTdHJhdGVneSBpbXBsZW1lbnRzIEluY3JlbWVudGFsQnVpbGRTdHJhdGVneSB7XG4gIHByaXZhdGUgc3RhdGU6IEluY3JlbWVudGFsU3RhdGV8bnVsbCA9IG51bGw7XG4gIHByaXZhdGUgaXNTZXQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBnZXRJbmNyZW1lbnRhbFN0YXRlKCk6IEluY3JlbWVudGFsU3RhdGV8bnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGU7XG4gIH1cblxuICBzZXRJbmNyZW1lbnRhbFN0YXRlKHN0YXRlOiBJbmNyZW1lbnRhbFN0YXRlKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9IHN0YXRlO1xuICAgIHRoaXMuaXNTZXQgPSB0cnVlO1xuICB9XG5cbiAgdG9OZXh0QnVpbGRTdHJhdGVneSgpOiBUcmFja2VkSW5jcmVtZW50YWxCdWlsZFN0cmF0ZWd5IHtcbiAgICBjb25zdCBzdHJhdGVneSA9IG5ldyBUcmFja2VkSW5jcmVtZW50YWxCdWlsZFN0cmF0ZWd5KCk7XG4gICAgLy8gT25seSByZXVzZSBzdGF0ZSB0aGF0IHdhcyBleHBsaWNpdGx5IHNldCB2aWEgYHNldEluY3JlbWVudGFsU3RhdGVgLlxuICAgIHN0cmF0ZWd5LnN0YXRlID0gdGhpcy5pc1NldCA/IHRoaXMuc3RhdGUgOiBudWxsO1xuICAgIHJldHVybiBzdHJhdGVneTtcbiAgfVxufVxuXG4vKipcbiAqIE1hbmFnZXMgdGhlIGBJbmNyZW1lbnRhbERyaXZlcmAgYXNzb2NpYXRlZCB3aXRoIGEgYHRzLlByb2dyYW1gIGJ5IG1vbmtleS1wYXRjaGluZyBpdCBvbnRvIHRoZVxuICogcHJvZ3JhbSB1bmRlciBgU1lNX0lOQ1JFTUVOVEFMX0RSSVZFUmAuXG4gKi9cbmV4cG9ydCBjbGFzcyBQYXRjaGVkUHJvZ3JhbUluY3JlbWVudGFsQnVpbGRTdHJhdGVneSBpbXBsZW1lbnRzIEluY3JlbWVudGFsQnVpbGRTdHJhdGVneSB7XG4gIGdldEluY3JlbWVudGFsU3RhdGUocHJvZ3JhbTogdHMuUHJvZ3JhbSk6IEluY3JlbWVudGFsU3RhdGV8bnVsbCB7XG4gICAgY29uc3Qgc3RhdGUgPSAocHJvZ3JhbSBhcyBNYXlIYXZlSW5jcmVtZW50YWxTdGF0ZSlbU1lNX0lOQ1JFTUVOVEFMX1NUQVRFXTtcbiAgICBpZiAoc3RhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIHNldEluY3JlbWVudGFsU3RhdGUoc3RhdGU6IEluY3JlbWVudGFsU3RhdGUsIHByb2dyYW06IHRzLlByb2dyYW0pOiB2b2lkIHtcbiAgICAocHJvZ3JhbSBhcyBNYXlIYXZlSW5jcmVtZW50YWxTdGF0ZSlbU1lNX0lOQ1JFTUVOVEFMX1NUQVRFXSA9IHN0YXRlO1xuICB9XG5cbiAgdG9OZXh0QnVpbGRTdHJhdGVneSgpOiBJbmNyZW1lbnRhbEJ1aWxkU3RyYXRlZ3kge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59XG5cblxuLyoqXG4gKiBTeW1ib2wgdW5kZXIgd2hpY2ggdGhlIGBJbmNyZW1lbnRhbERyaXZlcmAgaXMgc3RvcmVkIG9uIGEgYHRzLlByb2dyYW1gLlxuICpcbiAqIFRoZSBUUyBtb2RlbCBvZiBpbmNyZW1lbnRhbCBjb21waWxhdGlvbiBpcyBiYXNlZCBhcm91bmQgcmV1c2Ugb2YgYSBwcmV2aW91cyBgdHMuUHJvZ3JhbWAgaW4gdGhlXG4gKiBjb25zdHJ1Y3Rpb24gb2YgYSBuZXcgb25lLiBUaGUgYE5nQ29tcGlsZXJgIGZvbGxvd3MgdGhpcyBhYnN0cmFjdGlvbiAtIHBhc3NpbmcgaW4gYSBwcmV2aW91c1xuICogYHRzLlByb2dyYW1gIGlzIHN1ZmZpY2llbnQgdG8gdHJpZ2dlciBpbmNyZW1lbnRhbCBjb21waWxhdGlvbi4gVGhpcyBwcmV2aW91cyBgdHMuUHJvZ3JhbWAgbmVlZFxuICogbm90IGJlIGZyb20gYW4gQW5ndWxhciBjb21waWxhdGlvbiAodGhhdCBpcywgaXQgbmVlZCBub3QgaGF2ZSBiZWVuIGNyZWF0ZWQgZnJvbSBgTmdDb21waWxlcmApLlxuICpcbiAqIElmIGl0IGlzLCB0aG91Z2gsIEFuZ3VsYXIgY2FuIGJlbmVmaXQgZnJvbSByZXVzaW5nIHByZXZpb3VzIGFuYWx5c2lzIHdvcmsuIFRoaXMgcmV1c2UgaXMgbWFuYWdlZFxuICogYnkgdGhlIGBJbmNyZW1lbnRhbERyaXZlcmAsIHdoaWNoIGlzIGluaGVyaXRlZCBmcm9tIHRoZSBvbGQgcHJvZ3JhbSB0byB0aGUgbmV3IHByb2dyYW0uIFRvXG4gKiBzdXBwb3J0IHRoaXMgYmVoaW5kIHRoZSBBUEkgb2YgcGFzc2luZyBhbiBvbGQgYHRzLlByb2dyYW1gLCB0aGUgYEluY3JlbWVudGFsRHJpdmVyYCBpcyBzdG9yZWQgb25cbiAqIHRoZSBgdHMuUHJvZ3JhbWAgdW5kZXIgdGhpcyBzeW1ib2wuXG4gKi9cbmNvbnN0IFNZTV9JTkNSRU1FTlRBTF9TVEFURSA9IFN5bWJvbCgnTmdJbmNyZW1lbnRhbFN0YXRlJyk7XG5cbmludGVyZmFjZSBNYXlIYXZlSW5jcmVtZW50YWxTdGF0ZSB7XG4gIFtTWU1fSU5DUkVNRU5UQUxfU1RBVEVdPzogSW5jcmVtZW50YWxTdGF0ZTtcbn1cbiJdfQ==
@@ -1,11 +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 * from './src/api';
9
- export { IndexingContext } from './src/context';
10
- export { generateAnalysis } from './src/transform';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL2luZGV4ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsY0FBYyxXQUFXLENBQUM7QUFDMUIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3NyYy9hcGknO1xuZXhwb3J0IHtJbmRleGluZ0NvbnRleHR9IGZyb20gJy4vc3JjL2NvbnRleHQnO1xuZXhwb3J0IHtnZW5lcmF0ZUFuYWx5c2lzfSBmcm9tICcuL3NyYy90cmFuc2Zvcm0nO1xuIl19
File without changes
@@ -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
- * Describes the kind of identifier found in a template.
10
- */
11
- export var IdentifierKind;
12
- (function (IdentifierKind) {
13
- IdentifierKind[IdentifierKind["Property"] = 0] = "Property";
14
- IdentifierKind[IdentifierKind["Method"] = 1] = "Method";
15
- IdentifierKind[IdentifierKind["Element"] = 2] = "Element";
16
- IdentifierKind[IdentifierKind["Template"] = 3] = "Template";
17
- IdentifierKind[IdentifierKind["Attribute"] = 4] = "Attribute";
18
- IdentifierKind[IdentifierKind["Reference"] = 5] = "Reference";
19
- IdentifierKind[IdentifierKind["Variable"] = 6] = "Variable";
20
- })(IdentifierKind || (IdentifierKind = {}));
21
- /**
22
- * Describes the absolute byte offsets of a text anchor in a source code.
23
- */
24
- export class AbsoluteSourceSpan {
25
- constructor(start, end) {
26
- this.start = start;
27
- this.end = end;
28
- }
29
- }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy9pbmRleGVyL3NyYy9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBS0g7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxjQVFYO0FBUkQsV0FBWSxjQUFjO0lBQ3hCLDJEQUFRLENBQUE7SUFDUix1REFBTSxDQUFBO0lBQ04seURBQU8sQ0FBQTtJQUNQLDJEQUFRLENBQUE7SUFDUiw2REFBUyxDQUFBO0lBQ1QsNkRBQVMsQ0FBQTtJQUNULDJEQUFRLENBQUE7QUFDVixDQUFDLEVBUlcsY0FBYyxLQUFkLGNBQWMsUUFRekI7QUE0RkQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQW1CLEtBQWEsRUFBUyxHQUFXO1FBQWpDLFVBQUssR0FBTCxLQUFLLENBQVE7UUFBUyxRQUFHLEdBQUgsR0FBRyxDQUFRO0lBQUcsQ0FBQztDQUN6RCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1BhcnNlU291cmNlRmlsZX0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0IHtDbGFzc0RlY2xhcmF0aW9uLCBEZWNsYXJhdGlvbk5vZGV9IGZyb20gJy4uLy4uL3JlZmxlY3Rpb24nO1xuXG4vKipcbiAqIERlc2NyaWJlcyB0aGUga2luZCBvZiBpZGVudGlmaWVyIGZvdW5kIGluIGEgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBlbnVtIElkZW50aWZpZXJLaW5kIHtcbiAgUHJvcGVydHksXG4gIE1ldGhvZCxcbiAgRWxlbWVudCxcbiAgVGVtcGxhdGUsXG4gIEF0dHJpYnV0ZSxcbiAgUmVmZXJlbmNlLFxuICBWYXJpYWJsZSxcbn1cblxuLyoqXG4gKiBEZXNjcmliZXMgYSBzZW1hbnRpY2FsbHktaW50ZXJlc3RpbmcgaWRlbnRpZmllciBpbiBhIHRlbXBsYXRlLCBzdWNoIGFzIGFuIGludGVycG9sYXRlZCB2YXJpYWJsZVxuICogb3Igc2VsZWN0b3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVtcGxhdGVJZGVudGlmaWVyIHtcbiAgbmFtZTogc3RyaW5nO1xuICBzcGFuOiBBYnNvbHV0ZVNvdXJjZVNwYW47XG4gIGtpbmQ6IElkZW50aWZpZXJLaW5kO1xufVxuXG4vKiogRGVzY3JpYmVzIGEgdGVtcGxhdGUgZXhwcmVzc2lvbiwgd2hpY2ggbWF5IGhhdmUgYSB0ZW1wbGF0ZSByZWZlcmVuY2Ugb3IgdmFyaWFibGUgdGFyZ2V0LiAqL1xuaW50ZXJmYWNlIEV4cHJlc3Npb25JZGVudGlmaWVyIGV4dGVuZHMgVGVtcGxhdGVJZGVudGlmaWVyIHtcbiAgLyoqXG4gICAqIFJlZmVyZW5jZUlkZW50aWZpZXIgb3IgVmFyaWFibGVJZGVudGlmaWVyIGluIHRoZSB0ZW1wbGF0ZSB0aGF0IHRoaXMgaWRlbnRpZmllciB0YXJnZXRzLCBpZlxuICAgKiBhbnkuIElmIHRoZSB0YXJnZXQgaXMgYG51bGxgLCBpdCBwb2ludHMgdG8gYSBkZWNsYXJhdGlvbiBvbiB0aGUgY29tcG9uZW50IGNsYXNzLlxuICAgKiAqL1xuICB0YXJnZXQ6IFJlZmVyZW5jZUlkZW50aWZpZXJ8VmFyaWFibGVJZGVudGlmaWVyfG51bGw7XG59XG5cbi8qKiBEZXNjcmliZXMgYSBwcm9wZXJ0eSBhY2Nlc3NlZCBpbiBhIHRlbXBsYXRlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9wZXJ0eUlkZW50aWZpZXIgZXh0ZW5kcyBFeHByZXNzaW9uSWRlbnRpZmllciB7XG4gIGtpbmQ6IElkZW50aWZpZXJLaW5kLlByb3BlcnR5O1xufVxuXG4vKiogRGVzY3JpYmVzIGEgbWV0aG9kIGFjY2Vzc2VkIGluIGEgdGVtcGxhdGUuICovXG5leHBvcnQgaW50ZXJmYWNlIE1ldGhvZElkZW50aWZpZXIgZXh0ZW5kcyBFeHByZXNzaW9uSWRlbnRpZmllciB7XG4gIGtpbmQ6IElkZW50aWZpZXJLaW5kLk1ldGhvZDtcbn1cblxuLyoqIERlc2NyaWJlcyBhbiBlbGVtZW50IGF0dHJpYnV0ZSBpbiBhIHRlbXBsYXRlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdHRyaWJ1dGVJZGVudGlmaWVyIGV4dGVuZHMgVGVtcGxhdGVJZGVudGlmaWVyIHtcbiAga2luZDogSWRlbnRpZmllcktpbmQuQXR0cmlidXRlO1xufVxuXG4vKiogQSByZWZlcmVuY2UgdG8gYSBkaXJlY3RpdmUgbm9kZSBhbmQgaXRzIHNlbGVjdG9yLiAqL1xuaW50ZXJmYWNlIERpcmVjdGl2ZVJlZmVyZW5jZSB7XG4gIG5vZGU6IENsYXNzRGVjbGFyYXRpb247XG4gIHNlbGVjdG9yOiBzdHJpbmc7XG59XG4vKiogQSBiYXNlIGludGVyZmFjZSBmb3IgZWxlbWVudCBhbmQgdGVtcGxhdGUgaWRlbnRpZmllcnMuICovXG5pbnRlcmZhY2UgQmFzZUVsZW1lbnRPclRlbXBsYXRlSWRlbnRpZmllciBleHRlbmRzIFRlbXBsYXRlSWRlbnRpZmllciB7XG4gIC8qKiBBdHRyaWJ1dGVzIG9uIGFuIGVsZW1lbnQgb3IgdGVtcGxhdGUuICovXG4gIGF0dHJpYnV0ZXM6IFNldDxBdHRyaWJ1dGVJZGVudGlmaWVyPjtcblxuICAvKiogRGlyZWN0aXZlcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgb3IgdGVtcGxhdGUuICovXG4gIHVzZWREaXJlY3RpdmVzOiBTZXQ8RGlyZWN0aXZlUmVmZXJlbmNlPjtcbn1cbi8qKlxuICogRGVzY3JpYmVzIGFuIGluZGV4ZWQgZWxlbWVudCBpbiBhIHRlbXBsYXRlLiBUaGUgbmFtZSBvZiBhbiBgRWxlbWVudElkZW50aWZpZXJgIGlzIHRoZSBlbnRpcmVcbiAqIGVsZW1lbnQgdGFnLCB3aGljaCBjYW4gYmUgcGFyc2VkIGJ5IGFuIGluZGV4ZXIgdG8gZGV0ZXJtaW5lIHdoZXJlIHVzZWQgZGlyZWN0aXZlcyBzaG91bGQgYmVcbiAqIHJlZmVyZW5jZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWxlbWVudElkZW50aWZpZXIgZXh0ZW5kcyBCYXNlRWxlbWVudE9yVGVtcGxhdGVJZGVudGlmaWVyIHtcbiAga2luZDogSWRlbnRpZmllcktpbmQuRWxlbWVudDtcbn1cblxuLyoqIERlc2NyaWJlcyBhbiBpbmRleGVkIHRlbXBsYXRlIG5vZGUgaW4gYSBjb21wb25lbnQgdGVtcGxhdGUgZmlsZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVtcGxhdGVOb2RlSWRlbnRpZmllciBleHRlbmRzIEJhc2VFbGVtZW50T3JUZW1wbGF0ZUlkZW50aWZpZXIge1xuICBraW5kOiBJZGVudGlmaWVyS2luZC5UZW1wbGF0ZTtcbn1cblxuLyoqIERlc2NyaWJlcyBhIHJlZmVyZW5jZSBpbiBhIHRlbXBsYXRlIGxpa2UgXCJmb29cIiBpbiBgPGRpdiAjZm9vPjwvZGl2PmAuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZmVyZW5jZUlkZW50aWZpZXIgZXh0ZW5kcyBUZW1wbGF0ZUlkZW50aWZpZXIge1xuICBraW5kOiBJZGVudGlmaWVyS2luZC5SZWZlcmVuY2U7XG5cbiAgLyoqIFRoZSB0YXJnZXQgb2YgdGhpcyByZWZlcmVuY2UuIElmIHRoZSB0YXJnZXQgaXMgbm90IGtub3duLCB0aGlzIGlzIGBudWxsYC4gKi9cbiAgdGFyZ2V0OiB7XG4gICAgLyoqIFRoZSB0ZW1wbGF0ZSBBU1Qgbm9kZSB0aGF0IHRoZSByZWZlcmVuY2UgdGFyZ2V0cy4gKi9cbiAgICBub2RlOiBFbGVtZW50SWRlbnRpZmllcnxUZW1wbGF0ZUlkZW50aWZpZXI7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZGlyZWN0aXZlIG9uIGBub2RlYCB0aGF0IHRoZSByZWZlcmVuY2UgdGFyZ2V0cy4gSWYgbm8gZGlyZWN0aXZlIGlzIHRhcmdldGVkLCB0aGlzIGlzXG4gICAgICogYG51bGxgLlxuICAgICAqL1xuICAgIGRpcmVjdGl2ZTogQ2xhc3NEZWNsYXJhdGlvbiB8IG51bGw7XG4gIH18bnVsbDtcbn1cblxuLyoqIERlc2NyaWJlcyBhIHRlbXBsYXRlIHZhcmlhYmxlIGxpa2UgXCJmb29cIiBpbiBgPGRpdiAqbmdGb3I9XCJsZXQgZm9vIG9mIGZvb3NcIj48L2Rpdj5gLiAqL1xuZXhwb3J0IGludGVyZmFjZSBWYXJpYWJsZUlkZW50aWZpZXIgZXh0ZW5kcyBUZW1wbGF0ZUlkZW50aWZpZXIge1xuICBraW5kOiBJZGVudGlmaWVyS2luZC5WYXJpYWJsZTtcbn1cblxuLyoqXG4gKiBJZGVudGlmaWVycyByZWNvcmRlZCBhdCB0aGUgdG9wIGxldmVsIG9mIHRoZSB0ZW1wbGF0ZSwgd2l0aG91dCBhbnkgY29udGV4dCBhYm91dCB0aGUgSFRNTCBub2Rlc1xuICogdGhleSB3ZXJlIGRpc2NvdmVyZWQgaW4uXG4gKi9cbmV4cG9ydCB0eXBlIFRvcExldmVsSWRlbnRpZmllciA9IFByb3BlcnR5SWRlbnRpZmllcnxNZXRob2RJZGVudGlmaWVyfEVsZW1lbnRJZGVudGlmaWVyfFxuICAgIFRlbXBsYXRlTm9kZUlkZW50aWZpZXJ8UmVmZXJlbmNlSWRlbnRpZmllcnxWYXJpYWJsZUlkZW50aWZpZXI7XG5cbi8qKlxuICogRGVzY3JpYmVzIHRoZSBhYnNvbHV0ZSBieXRlIG9mZnNldHMgb2YgYSB0ZXh0IGFuY2hvciBpbiBhIHNvdXJjZSBjb2RlLlxuICovXG5leHBvcnQgY2xhc3MgQWJzb2x1dGVTb3VyY2VTcGFuIHtcbiAgY29uc3RydWN0b3IocHVibGljIHN0YXJ0OiBudW1iZXIsIHB1YmxpYyBlbmQ6IG51bWJlcikge31cbn1cblxuLyoqXG4gKiBEZXNjcmliZXMgYW4gYW5hbHl6ZWQsIGluZGV4ZWQgY29tcG9uZW50IGFuZCBpdHMgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5kZXhlZENvbXBvbmVudCB7XG4gIG5hbWU6IHN0cmluZztcbiAgc2VsZWN0b3I6IHN0cmluZ3xudWxsO1xuICBmaWxlOiBQYXJzZVNvdXJjZUZpbGU7XG4gIHRlbXBsYXRlOiB7XG4gICAgaWRlbnRpZmllcnM6IFNldDxUb3BMZXZlbElkZW50aWZpZXI+LFxuICAgIHVzZWRDb21wb25lbnRzOiBTZXQ8RGVjbGFyYXRpb25Ob2RlPixcbiAgICBpc0lubGluZTogYm9vbGVhbixcbiAgICBmaWxlOiBQYXJzZVNvdXJjZUZpbGU7XG4gIH07XG59XG4iXX0=
@@ -1,25 +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
- * A context for storing indexing infromation about components of a program.
10
- *
11
- * An `IndexingContext` collects component and template analysis information from
12
- * `DecoratorHandler`s and exposes them to be indexed.
13
- */
14
- export class IndexingContext {
15
- constructor() {
16
- this.components = new Set();
17
- }
18
- /**
19
- * Adds a component to the context.
20
- */
21
- addComponent(info) {
22
- this.components.add(info);
23
- }
24
- }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvaW5kZXhlci9zcmMvY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUF3Q0g7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQUE1QjtRQUNXLGVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBaUIsQ0FBQztJQVFqRCxDQUFDO0lBTkM7O09BRUc7SUFDSCxZQUFZLENBQUMsSUFBbUI7UUFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7Qm91bmRUYXJnZXQsIERpcmVjdGl2ZU1ldGEsIFBhcnNlU291cmNlRmlsZX0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0IHtSZWZlcmVuY2V9IGZyb20gJy4uLy4uL2ltcG9ydHMnO1xuaW1wb3J0IHtDbGFzc0RlY2xhcmF0aW9ufSBmcm9tICcuLi8uLi9yZWZsZWN0aW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnRNZXRhIGV4dGVuZHMgRGlyZWN0aXZlTWV0YSB7XG4gIHJlZjogUmVmZXJlbmNlPENsYXNzRGVjbGFyYXRpb24+O1xuICAvKipcbiAgICogVW5wYXJzZWQgc2VsZWN0b3Igb2YgdGhlIGRpcmVjdGl2ZSwgb3IgbnVsbCBpZiB0aGUgZGlyZWN0aXZlIGRvZXMgbm90IGhhdmUgYSBzZWxlY3Rvci5cbiAgICovXG4gIHNlbGVjdG9yOiBzdHJpbmd8bnVsbDtcbn1cblxuLyoqXG4gKiBBbiBpbnRlcm1lZGlhdGUgcmVwcmVzZW50YXRpb24gb2YgYSBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50SW5mbyB7XG4gIC8qKiBDb21wb25lbnQgVHlwZVNjcmlwdCBjbGFzcyBkZWNsYXJhdGlvbiAqL1xuICBkZWNsYXJhdGlvbjogQ2xhc3NEZWNsYXJhdGlvbjtcblxuICAvKiogQ29tcG9uZW50IHRlbXBsYXRlIHNlbGVjdG9yIGlmIGl0IGV4aXN0cywgb3RoZXJ3aXNlIG51bGwuICovXG4gIHNlbGVjdG9yOiBzdHJpbmd8bnVsbDtcblxuICAvKipcbiAgICogQm91bmRUYXJnZXQgY29udGFpbmluZyB0aGUgcGFyc2VkIHRlbXBsYXRlLiBDYW4gYWxzbyBiZSB1c2VkIHRvIHF1ZXJ5IGZvciBkaXJlY3RpdmVzIHVzZWQgaW5cbiAgICogdGhlIHRlbXBsYXRlLlxuICAgKi9cbiAgYm91bmRUZW1wbGF0ZTogQm91bmRUYXJnZXQ8Q29tcG9uZW50TWV0YT47XG5cbiAgLyoqIE1ldGFkYXRhIGFib3V0IHRoZSB0ZW1wbGF0ZSAqL1xuICB0ZW1wbGF0ZU1ldGE6IHtcbiAgICAvKiogV2hldGhlciB0aGUgY29tcG9uZW50IHRlbXBsYXRlIGlzIGlubGluZSAqL1xuICAgIGlzSW5saW5lOiBib29sZWFuO1xuXG4gICAgLyoqIFRlbXBsYXRlIGZpbGUgcmVjb3JkZWQgYnkgdGVtcGxhdGUgcGFyc2VyICovXG4gICAgZmlsZTogUGFyc2VTb3VyY2VGaWxlO1xuICB9O1xufVxuXG4vKipcbiAqIEEgY29udGV4dCBmb3Igc3RvcmluZyBpbmRleGluZyBpbmZyb21hdGlvbiBhYm91dCBjb21wb25lbnRzIG9mIGEgcHJvZ3JhbS5cbiAqXG4gKiBBbiBgSW5kZXhpbmdDb250ZXh0YCBjb2xsZWN0cyBjb21wb25lbnQgYW5kIHRlbXBsYXRlIGFuYWx5c2lzIGluZm9ybWF0aW9uIGZyb21cbiAqIGBEZWNvcmF0b3JIYW5kbGVyYHMgYW5kIGV4cG9zZXMgdGhlbSB0byBiZSBpbmRleGVkLlxuICovXG5leHBvcnQgY2xhc3MgSW5kZXhpbmdDb250ZXh0IHtcbiAgcmVhZG9ubHkgY29tcG9uZW50cyA9IG5ldyBTZXQ8Q29tcG9uZW50SW5mbz4oKTtcblxuICAvKipcbiAgICogQWRkcyBhIGNvbXBvbmVudCB0byB0aGUgY29udGV4dC5cbiAgICovXG4gIGFkZENvbXBvbmVudChpbmZvOiBDb21wb25lbnRJbmZvKSB7XG4gICAgdGhpcy5jb21wb25lbnRzLmFkZChpbmZvKTtcbiAgfVxufVxuIl19