@angular/compiler-cli 13.0.0-next.7 → 13.0.0-rc.1

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 (600) hide show
  1. package/bundles/index.js +20418 -0
  2. package/bundles/index.js.map +6 -0
  3. package/bundles/linker/babel/index.js +2384 -0
  4. package/bundles/linker/babel/index.js.map +6 -0
  5. package/bundles/linker/index.js +1849 -0
  6. package/bundles/linker/index.js.map +6 -0
  7. package/bundles/ngcc/index.js +16054 -0
  8. package/bundles/ngcc/index.js.map +6 -0
  9. package/bundles/ngcc/main-ngcc.js +16142 -0
  10. package/bundles/ngcc/main-ngcc.js.map +6 -0
  11. package/bundles/ngcc/src/execution/cluster/ngcc_cluster_worker.js +13866 -0
  12. package/bundles/ngcc/src/execution/cluster/ngcc_cluster_worker.js.map +6 -0
  13. package/bundles/ngcc/src/locking/lock_file_with_child_process/ngcc_lock_unlocker.js +334 -0
  14. package/bundles/ngcc/src/locking/lock_file_with_child_process/ngcc_lock_unlocker.js.map +6 -0
  15. package/bundles/private/bazel.js +97 -0
  16. package/bundles/private/bazel.js.map +6 -0
  17. package/bundles/private/localize.js +911 -0
  18. package/bundles/private/localize.js.map +6 -0
  19. package/bundles/private/migrations.js +2181 -0
  20. package/bundles/private/migrations.js.map +6 -0
  21. package/bundles/private/tooling.js +942 -0
  22. package/bundles/private/tooling.js.map +6 -0
  23. package/bundles/src/bin/ng_xi18n.js +20468 -0
  24. package/bundles/src/bin/ng_xi18n.js.map +6 -0
  25. package/bundles/src/bin/ngc.js +20470 -0
  26. package/bundles/src/bin/ngc.js.map +6 -0
  27. package/bundles_metadata.json +1 -0
  28. package/import_meta_url.d.ts +14 -0
  29. package/index.d.ts +4 -1
  30. package/linker/babel/src/ast/babel_ast_factory.d.ts +1 -8
  31. package/linker/babel/src/ast/babel_ast_host.d.ts +1 -1
  32. package/linker/babel/src/babel_core.d.ts +36 -0
  33. package/linker/babel/src/babel_declaration_scope.d.ts +1 -1
  34. package/linker/babel/src/babel_plugin.d.ts +1 -8
  35. package/linker/babel/src/es2015_linker_plugin.d.ts +2 -2
  36. package/linker/src/ast/typescript/typescript_ast_host.d.ts +1 -1
  37. package/linker/src/file_linker/emit_scopes/emit_scope.d.ts +1 -2
  38. package/linker/src/file_linker/emit_scopes/iife_emit_scope.d.ts +1 -1
  39. package/linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.d.ts +1 -2
  40. package/linker/src/file_linker/partial_linkers/partial_component_linker_1.d.ts +1 -2
  41. package/linker/src/file_linker/partial_linkers/partial_directive_linker_1.d.ts +1 -2
  42. package/linker/src/file_linker/partial_linkers/partial_factory_linker_1.d.ts +1 -2
  43. package/linker/src/file_linker/partial_linkers/partial_injectable_linker_1.d.ts +1 -2
  44. package/linker/src/file_linker/partial_linkers/partial_injector_linker_1.d.ts +1 -2
  45. package/linker/src/file_linker/partial_linkers/partial_linker.d.ts +1 -2
  46. package/linker/src/file_linker/partial_linkers/partial_linker_selector.d.ts +2 -2
  47. package/linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.d.ts +1 -2
  48. package/linker/src/file_linker/partial_linkers/partial_pipe_linker_1.d.ts +1 -2
  49. package/linker/src/file_linker/partial_linkers/util.d.ts +1 -2
  50. package/ngcc/index.d.ts +15 -0
  51. package/ngcc/src/analysis/decoration_analyzer.d.ts +1 -1
  52. package/ngcc/src/analysis/module_with_providers_analyzer.d.ts +1 -1
  53. package/ngcc/src/analysis/ngcc_references_registry.d.ts +1 -1
  54. package/ngcc/src/analysis/ngcc_trait_compiler.d.ts +1 -1
  55. package/ngcc/src/analysis/private_declarations_analyzer.d.ts +1 -1
  56. package/ngcc/src/analysis/switch_marker_analyzer.d.ts +1 -1
  57. package/ngcc/src/analysis/types.d.ts +1 -1
  58. package/ngcc/src/dependencies/esm_dependency_host.d.ts +1 -1
  59. package/ngcc/src/execution/cluster/api.d.ts +5 -1
  60. package/ngcc/src/execution/cluster/master.d.ts +5 -3
  61. package/{src/ngtsc/logging/testing/index.d.ts → ngcc/src/execution/cluster/ngcc_cluster_worker.d.ts} +2 -2
  62. package/ngcc/src/host/commonjs_host.d.ts +1 -1
  63. package/ngcc/src/host/commonjs_umd_utils.d.ts +1 -1
  64. package/ngcc/src/host/delegating_host.d.ts +1 -1
  65. package/ngcc/src/host/esm2015_host.d.ts +1 -1
  66. package/ngcc/src/host/esm5_host.d.ts +2 -1
  67. package/ngcc/src/host/ngcc_host.d.ts +1 -1
  68. package/ngcc/src/host/umd_host.d.ts +1 -1
  69. package/ngcc/src/host/utils.d.ts +1 -1
  70. package/ngcc/src/locking/lock_file.d.ts +1 -1
  71. package/ngcc/src/locking/lock_file_with_child_process/index.d.ts +2 -0
  72. package/ngcc/src/locking/lock_file_with_child_process/{unlocker.d.ts → ngcc_lock_unlocker.d.ts} +1 -1
  73. package/ngcc/src/migrations/migration.d.ts +1 -1
  74. package/ngcc/src/migrations/missing_injectable_migration.d.ts +1 -1
  75. package/ngcc/src/migrations/undecorated_child_migration.d.ts +1 -1
  76. package/ngcc/src/migrations/undecorated_parent_migration.d.ts +1 -1
  77. package/ngcc/src/migrations/utils.d.ts +1 -1
  78. package/ngcc/src/packages/build_marker.d.ts +1 -1
  79. package/ngcc/src/packages/bundle_program.d.ts +1 -1
  80. package/ngcc/src/packages/configuration.d.ts +41 -4
  81. package/ngcc/src/packages/entry_point_bundle.d.ts +1 -1
  82. package/ngcc/src/packages/ngcc_compiler_host.d.ts +1 -1
  83. package/ngcc/src/packages/source_file_cache.d.ts +1 -1
  84. package/ngcc/src/packages/transformer.d.ts +1 -1
  85. package/ngcc/src/rendering/commonjs_rendering_formatter.d.ts +1 -1
  86. package/ngcc/src/rendering/dts_renderer.d.ts +1 -1
  87. package/ngcc/src/rendering/esm5_rendering_formatter.d.ts +1 -1
  88. package/ngcc/src/rendering/esm_rendering_formatter.d.ts +1 -1
  89. package/ngcc/src/rendering/renderer.d.ts +1 -1
  90. package/ngcc/src/rendering/rendering_formatter.d.ts +1 -1
  91. package/ngcc/src/rendering/source_maps.d.ts +3 -3
  92. package/ngcc/src/rendering/umd_rendering_formatter.d.ts +1 -1
  93. package/ngcc/src/rendering/utils.d.ts +1 -1
  94. package/ngcc/src/utils.d.ts +1 -1
  95. package/package.json +53 -14
  96. package/private/bazel.d.ts +13 -0
  97. package/private/localize.d.ts +15 -0
  98. package/private/migrations.d.ts +16 -0
  99. package/{src → private}/tooling.d.ts +2 -2
  100. package/src/bin/ng_xi18n.d.ts +10 -0
  101. package/{ngcc/main-ivy-ngcc.d.ts → src/bin/ngc.d.ts} +2 -1
  102. package/src/diagnostics/translate_diagnostics.d.ts +1 -1
  103. package/src/extract_i18n.d.ts +0 -5
  104. package/src/main.d.ts +9 -6
  105. package/src/metadata/bundle_index_host.d.ts +1 -1
  106. package/src/metadata/bundler.d.ts +1 -1
  107. package/src/metadata/collector.d.ts +1 -1
  108. package/src/metadata/evaluator.d.ts +1 -1
  109. package/src/metadata/symbols.d.ts +1 -1
  110. package/src/ngtsc/annotations/src/component.d.ts +1 -1
  111. package/src/ngtsc/annotations/src/diagnostics.d.ts +1 -1
  112. package/src/ngtsc/annotations/src/directive.d.ts +1 -1
  113. package/src/ngtsc/annotations/src/ng_module.d.ts +2 -4
  114. package/src/ngtsc/annotations/src/pipe.d.ts +1 -1
  115. package/src/ngtsc/annotations/src/util.d.ts +2 -4
  116. package/src/ngtsc/core/api/src/adapter.d.ts +1 -1
  117. package/src/ngtsc/core/api/src/interfaces.d.ts +1 -12
  118. package/src/ngtsc/core/api/src/options.d.ts +1 -1
  119. package/src/ngtsc/core/api/src/public_options.d.ts +5 -1
  120. package/src/ngtsc/core/src/compiler.d.ts +2 -8
  121. package/src/ngtsc/core/src/host.d.ts +1 -1
  122. package/src/ngtsc/cycles/src/analyzer.d.ts +1 -1
  123. package/src/ngtsc/cycles/src/imports.d.ts +1 -1
  124. package/src/ngtsc/diagnostics/src/error.d.ts +1 -1
  125. package/src/ngtsc/entry_point/src/generator.d.ts +1 -1
  126. package/src/ngtsc/entry_point/src/private_export_checker.d.ts +1 -1
  127. package/src/ngtsc/file_system/src/compiler_host.d.ts +1 -1
  128. package/src/ngtsc/file_system/src/logical.d.ts +1 -1
  129. package/src/ngtsc/file_system/src/util.d.ts +1 -1
  130. package/src/ngtsc/imports/src/alias.d.ts +1 -1
  131. package/src/ngtsc/imports/src/default.d.ts +1 -1
  132. package/src/ngtsc/imports/src/emitter.d.ts +1 -1
  133. package/src/ngtsc/imports/src/find_export.d.ts +1 -1
  134. package/src/ngtsc/imports/src/references.d.ts +1 -1
  135. package/src/ngtsc/imports/src/resolver.d.ts +1 -1
  136. package/src/ngtsc/incremental/api.d.ts +1 -1
  137. package/src/ngtsc/incremental/src/dependency_tracking.d.ts +1 -1
  138. package/src/ngtsc/incremental/src/incremental.d.ts +1 -1
  139. package/src/ngtsc/incremental/src/state.d.ts +1 -1
  140. package/src/ngtsc/incremental/src/strategy.d.ts +1 -1
  141. package/src/ngtsc/metadata/src/api.d.ts +1 -1
  142. package/src/ngtsc/metadata/src/dts.d.ts +1 -1
  143. package/src/ngtsc/metadata/src/resource_registry.d.ts +1 -1
  144. package/src/ngtsc/metadata/src/util.d.ts +1 -1
  145. package/src/ngtsc/partial_evaluator/index.d.ts +1 -0
  146. package/src/ngtsc/partial_evaluator/src/builtin.d.ts +1 -1
  147. package/src/ngtsc/partial_evaluator/src/diagnostics.d.ts +1 -1
  148. package/src/ngtsc/partial_evaluator/src/dynamic.d.ts +1 -1
  149. package/src/ngtsc/partial_evaluator/src/interface.d.ts +1 -1
  150. package/src/ngtsc/partial_evaluator/src/interpreter.d.ts +1 -1
  151. package/src/ngtsc/partial_evaluator/src/result.d.ts +1 -1
  152. package/src/ngtsc/partial_evaluator/src/ts_helpers.d.ts +1 -1
  153. package/src/ngtsc/program.d.ts +1 -1
  154. package/src/ngtsc/program_driver/src/api.d.ts +1 -1
  155. package/src/ngtsc/program_driver/src/ts_create_program_driver.d.ts +1 -1
  156. package/src/ngtsc/reflection/src/host.d.ts +1 -1
  157. package/src/ngtsc/reflection/src/type_to_value.d.ts +1 -1
  158. package/src/ngtsc/reflection/src/typescript.d.ts +1 -1
  159. package/src/ngtsc/reflection/src/util.d.ts +1 -1
  160. package/src/ngtsc/resource/src/loader.d.ts +1 -1
  161. package/src/ngtsc/scope/src/local.d.ts +1 -1
  162. package/src/ngtsc/scope/src/typecheck.d.ts +1 -1
  163. package/src/ngtsc/shims/api.d.ts +1 -1
  164. package/src/ngtsc/shims/src/adapter.d.ts +1 -1
  165. package/src/ngtsc/shims/src/expando.d.ts +1 -1
  166. package/src/ngtsc/shims/src/factory_generator.d.ts +1 -1
  167. package/src/ngtsc/shims/src/reference_tagger.d.ts +1 -1
  168. package/src/ngtsc/shims/src/summary_generator.d.ts +1 -1
  169. package/src/ngtsc/switch/src/switch.d.ts +1 -1
  170. package/src/ngtsc/transform/src/alias.d.ts +1 -1
  171. package/src/ngtsc/transform/src/api.d.ts +1 -1
  172. package/src/ngtsc/transform/src/compilation.d.ts +1 -1
  173. package/src/ngtsc/transform/src/declaration.d.ts +1 -1
  174. package/src/ngtsc/transform/src/trait.d.ts +1 -1
  175. package/src/ngtsc/transform/src/transform.d.ts +1 -1
  176. package/src/ngtsc/transform/src/utils.d.ts +1 -1
  177. package/src/ngtsc/translator/src/import_manager.d.ts +1 -1
  178. package/src/ngtsc/translator/src/type_translator.d.ts +1 -1
  179. package/src/ngtsc/translator/src/typescript_ast_factory.d.ts +1 -1
  180. package/src/ngtsc/translator/src/typescript_translator.d.ts +1 -1
  181. package/src/ngtsc/tsc_plugin.d.ts +1 -1
  182. package/src/ngtsc/typecheck/api/api.d.ts +1 -1
  183. package/src/ngtsc/typecheck/api/checker.d.ts +7 -4
  184. package/src/ngtsc/typecheck/api/context.d.ts +1 -1
  185. package/src/ngtsc/typecheck/api/scope.d.ts +1 -1
  186. package/src/ngtsc/typecheck/api/symbols.d.ts +1 -1
  187. package/src/ngtsc/typecheck/diagnostics/src/diagnostic.d.ts +1 -1
  188. package/src/ngtsc/typecheck/extended/api/api.d.ts +1 -1
  189. package/src/ngtsc/typecheck/extended/api/extended_template_checker.d.ts +1 -1
  190. package/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.d.ts +1 -1
  191. package/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.d.ts +1 -1
  192. package/src/ngtsc/typecheck/extended/src/extended_template_checker.d.ts +1 -1
  193. package/src/ngtsc/typecheck/src/checker.d.ts +4 -4
  194. package/src/ngtsc/typecheck/src/comments.d.ts +1 -1
  195. package/src/ngtsc/typecheck/src/completion.d.ts +3 -5
  196. package/src/ngtsc/typecheck/src/context.d.ts +1 -1
  197. package/src/ngtsc/typecheck/src/diagnostics.d.ts +1 -1
  198. package/src/ngtsc/typecheck/src/environment.d.ts +1 -1
  199. package/src/ngtsc/typecheck/src/expression.d.ts +1 -1
  200. package/src/ngtsc/typecheck/src/oob.d.ts +3 -4
  201. package/src/ngtsc/typecheck/src/shim.d.ts +1 -1
  202. package/src/ngtsc/typecheck/src/source.d.ts +1 -1
  203. package/src/ngtsc/typecheck/src/tcb_util.d.ts +1 -1
  204. package/src/ngtsc/typecheck/src/template_symbol_builder.d.ts +1 -1
  205. package/src/ngtsc/typecheck/src/ts_util.d.ts +1 -1
  206. package/src/ngtsc/typecheck/src/type_check_block.d.ts +1 -1
  207. package/src/ngtsc/typecheck/src/type_check_file.d.ts +1 -1
  208. package/src/ngtsc/typecheck/src/type_constructor.d.ts +1 -1
  209. package/src/ngtsc/typecheck/src/type_emitter.d.ts +1 -1
  210. package/src/ngtsc/typecheck/src/type_parameter_emitter.d.ts +1 -1
  211. package/src/ngtsc/util/src/typescript.d.ts +1 -1
  212. package/src/ngtsc/util/src/visitor.d.ts +1 -1
  213. package/src/perform_compile.d.ts +1 -2
  214. package/src/perform_watch.d.ts +1 -1
  215. package/src/transformers/api.d.ts +2 -5
  216. package/src/transformers/compiler_host.d.ts +1 -1
  217. package/src/transformers/{downlevel_decorators_transform.d.ts → downlevel_decorators_transform/downlevel_decorators_transform.d.ts} +3 -3
  218. package/src/{ngtsc/routing → transformers/downlevel_decorators_transform}/index.d.ts +2 -3
  219. package/src/transformers/{patch_alias_reference_resolution.d.ts → downlevel_decorators_transform/patch_alias_reference_resolution.d.ts} +2 -2
  220. package/src/transformers/i18n.d.ts +1 -1
  221. package/src/transformers/inline_resources.d.ts +1 -1
  222. package/src/transformers/lower_expressions.d.ts +1 -1
  223. package/src/transformers/metadata_cache.d.ts +1 -1
  224. package/src/transformers/node_emitter.d.ts +1 -1
  225. package/src/transformers/node_emitter_transform.d.ts +1 -1
  226. package/src/transformers/program.d.ts +1 -1
  227. package/src/transformers/r3_metadata_transform.d.ts +1 -1
  228. package/src/transformers/r3_transform.d.ts +1 -1
  229. package/src/transformers/util.d.ts +1 -1
  230. package/index.js +0 -40
  231. package/linker/babel/index.js +0 -25
  232. package/linker/babel/src/ast/babel_ast_factory.js +0 -153
  233. package/linker/babel/src/ast/babel_ast_host.js +0 -181
  234. package/linker/babel/src/babel_declaration_scope.js +0 -67
  235. package/linker/babel/src/babel_plugin.js +0 -38
  236. package/linker/babel/src/es2015_linker_plugin.js +0 -183
  237. package/linker/babel/src/linker_plugin_options.js +0 -13
  238. package/linker/index.js +0 -27
  239. package/linker/src/ast/ast_host.js +0 -20
  240. package/linker/src/ast/ast_value.js +0 -299
  241. package/linker/src/ast/typescript/typescript_ast_host.js +0 -183
  242. package/linker/src/ast/utils.js +0 -31
  243. package/linker/src/fatal_linker_error.js +0 -49
  244. package/linker/src/file_linker/declaration_scope.js +0 -20
  245. package/linker/src/file_linker/emit_scopes/emit_scope.js +0 -57
  246. package/linker/src/file_linker/emit_scopes/iife_emit_scope.js +0 -51
  247. package/linker/src/file_linker/file_linker.js +0 -97
  248. package/linker/src/file_linker/get_source_file.js +0 -42
  249. package/linker/src/file_linker/linker_environment.js +0 -38
  250. package/linker/src/file_linker/linker_options.js +0 -29
  251. package/linker/src/file_linker/needs_linking.js +0 -41
  252. package/linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.js +0 -47
  253. package/linker/src/file_linker/partial_linkers/partial_component_linker_1.js +0 -210
  254. package/linker/src/file_linker/partial_linkers/partial_directive_linker_1.js +0 -154
  255. package/linker/src/file_linker/partial_linkers/partial_factory_linker_1.js +0 -70
  256. package/linker/src/file_linker/partial_linkers/partial_injectable_linker_1.js +0 -74
  257. package/linker/src/file_linker/partial_linkers/partial_injector_linker_1.js +0 -56
  258. package/linker/src/file_linker/partial_linkers/partial_linker.js +0 -13
  259. package/linker/src/file_linker/partial_linkers/partial_linker_selector.js +0 -194
  260. package/linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.js +0 -126
  261. package/linker/src/file_linker/partial_linkers/partial_pipe_linker_1.js +0 -59
  262. package/linker/src/file_linker/partial_linkers/util.js +0 -95
  263. package/linker/src/file_linker/translator.js +0 -40
  264. package/linker/src/linker_import_generator.js +0 -43
  265. package/ngcc/index.js +0 -33
  266. package/ngcc/main-ivy-ngcc.js +0 -12
  267. package/ngcc/main-ngcc.js +0 -54
  268. package/ngcc/src/analysis/decoration_analyzer.js +0 -268
  269. package/ngcc/src/analysis/migration_host.js +0 -108
  270. package/ngcc/src/analysis/module_with_providers_analyzer.js +0 -197
  271. package/ngcc/src/analysis/ngcc_references_registry.js +0 -65
  272. package/ngcc/src/analysis/ngcc_trait_compiler.js +0 -117
  273. package/ngcc/src/analysis/private_declarations_analyzer.js +0 -63
  274. package/ngcc/src/analysis/switch_marker_analyzer.js +0 -50
  275. package/ngcc/src/analysis/types.js +0 -15
  276. package/ngcc/src/analysis/util.js +0 -36
  277. package/ngcc/src/command_line_options.js +0 -156
  278. package/ngcc/src/constants.js +0 -23
  279. package/ngcc/src/dependencies/commonjs_dependency_host.js +0 -129
  280. package/ngcc/src/dependencies/dependency_host.js +0 -143
  281. package/ngcc/src/dependencies/dependency_resolver.js +0 -180
  282. package/ngcc/src/dependencies/dts_dependency_host.js +0 -35
  283. package/ngcc/src/dependencies/esm_dependency_host.js +0 -307
  284. package/ngcc/src/dependencies/module_resolver.js +0 -269
  285. package/ngcc/src/dependencies/umd_dependency_host.js +0 -53
  286. package/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.js +0 -70
  287. package/ngcc/src/entry_point_finder/entry_point_collector.js +0 -157
  288. package/ngcc/src/entry_point_finder/interface.js +0 -13
  289. package/ngcc/src/entry_point_finder/program_based_entry_point_finder.js +0 -132
  290. package/ngcc/src/entry_point_finder/targeted_entry_point_finder.js +0 -268
  291. package/ngcc/src/entry_point_finder/tracing_entry_point_finder.js +0 -78
  292. package/ngcc/src/entry_point_finder/utils.js +0 -234
  293. package/ngcc/src/execution/analyze_entry_points.js +0 -197
  294. package/ngcc/src/execution/api.js +0 -13
  295. package/ngcc/src/execution/cluster/api.js +0 -20
  296. package/ngcc/src/execution/cluster/executor.js +0 -52
  297. package/ngcc/src/execution/cluster/master.js +0 -311
  298. package/ngcc/src/execution/cluster/package_json_updater.js +0 -79
  299. package/ngcc/src/execution/cluster/utils.js +0 -77
  300. package/ngcc/src/execution/cluster/worker.js +0 -123
  301. package/ngcc/src/execution/create_compile_function.js +0 -76
  302. package/ngcc/src/execution/single_process_executor.js +0 -91
  303. package/ngcc/src/execution/tasks/api.js +0 -35
  304. package/ngcc/src/execution/tasks/completion.js +0 -79
  305. package/ngcc/src/execution/tasks/queues/base_task_queue.js +0 -120
  306. package/ngcc/src/execution/tasks/queues/parallel_task_queue.js +0 -87
  307. package/ngcc/src/execution/tasks/queues/serial_task_queue.js +0 -49
  308. package/ngcc/src/execution/tasks/utils.js +0 -167
  309. package/ngcc/src/host/commonjs_host.js +0 -261
  310. package/ngcc/src/host/commonjs_umd_utils.js +0 -210
  311. package/ngcc/src/host/delegating_host.js +0 -156
  312. package/ngcc/src/host/esm2015_host.js +0 -2441
  313. package/ngcc/src/host/esm5_host.js +0 -744
  314. package/ngcc/src/host/ngcc_host.js +0 -29
  315. package/ngcc/src/host/umd_host.js +0 -539
  316. package/ngcc/src/host/utils.js +0 -26
  317. package/ngcc/src/locking/async_locker.js +0 -121
  318. package/ngcc/src/locking/lock_file.js +0 -18
  319. package/ngcc/src/locking/lock_file_with_child_process/index.js +0 -93
  320. package/ngcc/src/locking/lock_file_with_child_process/unlocker.js +0 -46
  321. package/ngcc/src/locking/lock_file_with_child_process/util.js +0 -43
  322. package/ngcc/src/locking/sync_locker.js +0 -67
  323. package/ngcc/src/main.js +0 -163
  324. package/ngcc/src/migrations/migration.js +0 -13
  325. package/ngcc/src/migrations/missing_injectable_migration.js +0 -227
  326. package/ngcc/src/migrations/undecorated_child_migration.js +0 -90
  327. package/ngcc/src/migrations/undecorated_parent_migration.js +0 -103
  328. package/ngcc/src/migrations/utils.js +0 -137
  329. package/ngcc/src/ngcc_options.js +0 -135
  330. package/ngcc/src/packages/build_marker.js +0 -124
  331. package/ngcc/src/packages/bundle_program.js +0 -80
  332. package/ngcc/src/packages/configuration.js +0 -277
  333. package/ngcc/src/packages/entry_point.js +0 -267
  334. package/ngcc/src/packages/entry_point_bundle.js +0 -96
  335. package/ngcc/src/packages/entry_point_manifest.js +0 -207
  336. package/ngcc/src/packages/ngcc_compiler_host.js +0 -101
  337. package/ngcc/src/packages/patch_ts_expando_initializer.js +0 -174
  338. package/ngcc/src/packages/source_file_cache.js +0 -207
  339. package/ngcc/src/packages/transformer.js +0 -157
  340. package/ngcc/src/path_mappings.js +0 -27
  341. package/ngcc/src/rendering/commonjs_rendering_formatter.js +0 -106
  342. package/ngcc/src/rendering/dts_renderer.js +0 -170
  343. package/ngcc/src/rendering/esm5_rendering_formatter.js +0 -70
  344. package/ngcc/src/rendering/esm_rendering_formatter.js +0 -291
  345. package/ngcc/src/rendering/ngcc_import_rewriter.js +0 -49
  346. package/ngcc/src/rendering/renderer.js +0 -204
  347. package/ngcc/src/rendering/rendering_formatter.js +0 -15
  348. package/ngcc/src/rendering/source_maps.js +0 -68
  349. package/ngcc/src/rendering/umd_rendering_formatter.js +0 -326
  350. package/ngcc/src/rendering/utils.js +0 -35
  351. package/ngcc/src/utils.js +0 -182
  352. package/ngcc/src/writing/cleaning/cleaning_strategies.js +0 -80
  353. package/ngcc/src/writing/cleaning/package_cleaner.js +0 -126
  354. package/ngcc/src/writing/cleaning/utils.js +0 -30
  355. package/ngcc/src/writing/file_writer.js +0 -13
  356. package/ngcc/src/writing/in_place_file_writer.js +0 -90
  357. package/ngcc/src/writing/new_entry_point_file_writer.js +0 -214
  358. package/ngcc/src/writing/package_json_updater.js +0 -182
  359. package/src/diagnostics/translate_diagnostics.js +0 -61
  360. package/src/diagnostics/typescript_version.js +0 -96
  361. package/src/extract_i18n.js +0 -62
  362. package/src/language_services.js +0 -34
  363. package/src/main.js +0 -210
  364. package/src/metadata/bundle_index_host.js +0 -133
  365. package/src/metadata/bundler.js +0 -624
  366. package/src/metadata/collector.js +0 -799
  367. package/src/metadata/evaluator.js +0 -677
  368. package/src/metadata/index.js +0 -24
  369. package/src/metadata/index_writer.js +0 -80
  370. package/src/metadata/schema.js +0 -136
  371. package/src/metadata/symbols.js +0 -149
  372. package/src/ngtsc/annotations/index.js +0 -35
  373. package/src/ngtsc/annotations/src/api.js +0 -20
  374. package/src/ngtsc/annotations/src/component.js +0 -1338
  375. package/src/ngtsc/annotations/src/diagnostics.js +0 -174
  376. package/src/ngtsc/annotations/src/directive.js +0 -724
  377. package/src/ngtsc/annotations/src/factory.js +0 -32
  378. package/src/ngtsc/annotations/src/injectable.js +0 -277
  379. package/src/ngtsc/annotations/src/metadata.js +0 -160
  380. package/src/ngtsc/annotations/src/ng_module.js +0 -677
  381. package/src/ngtsc/annotations/src/pipe.js +0 -171
  382. package/src/ngtsc/annotations/src/references_registry.js +0 -38
  383. package/src/ngtsc/annotations/src/util.js +0 -566
  384. package/src/ngtsc/core/api/index.js +0 -25
  385. package/src/ngtsc/core/api/src/adapter.js +0 -20
  386. package/src/ngtsc/core/api/src/interfaces.js +0 -20
  387. package/src/ngtsc/core/api/src/options.js +0 -20
  388. package/src/ngtsc/core/api/src/public_options.js +0 -20
  389. package/src/ngtsc/core/index.js +0 -25
  390. package/src/ngtsc/core/src/compiler.js +0 -1142
  391. package/src/ngtsc/core/src/host.js +0 -273
  392. package/src/ngtsc/cycles/index.js +0 -26
  393. package/src/ngtsc/cycles/src/analyzer.js +0 -163
  394. package/src/ngtsc/cycles/src/imports.js +0 -175
  395. package/src/ngtsc/diagnostics/index.js +0 -33
  396. package/src/ngtsc/diagnostics/src/error.js +0 -69
  397. package/src/ngtsc/diagnostics/src/error_code.js +0 -235
  398. package/src/ngtsc/diagnostics/src/util.js +0 -35
  399. package/src/ngtsc/entry_point/index.js +0 -29
  400. package/src/ngtsc/entry_point/src/generator.js +0 -45
  401. package/src/ngtsc/entry_point/src/logic.js +0 -61
  402. package/src/ngtsc/entry_point/src/private_export_checker.js +0 -137
  403. package/src/ngtsc/entry_point/src/reference_graph.js +0 -91
  404. package/src/ngtsc/file_system/index.js +0 -45
  405. package/src/ngtsc/file_system/src/compiler_host.js +0 -80
  406. package/src/ngtsc/file_system/src/helpers.js +0 -135
  407. package/src/ngtsc/file_system/src/invalid_file_system.js +0 -120
  408. package/src/ngtsc/file_system/src/logical.js +0 -100
  409. package/src/ngtsc/file_system/src/node_js_file_system.js +0 -179
  410. package/src/ngtsc/file_system/src/types.js +0 -20
  411. package/src/ngtsc/file_system/src/util.js +0 -38
  412. package/src/ngtsc/file_system/testing/index.d.ts +0 -13
  413. package/src/ngtsc/file_system/testing/index.js +0 -32
  414. package/src/ngtsc/file_system/testing/src/mock_file_system.d.ts +0 -72
  415. package/src/ngtsc/file_system/testing/src/mock_file_system.js +0 -333
  416. package/src/ngtsc/file_system/testing/src/mock_file_system_native.d.ts +0 -16
  417. package/src/ngtsc/file_system/testing/src/mock_file_system_native.js +0 -85
  418. package/src/ngtsc/file_system/testing/src/mock_file_system_posix.d.ts +0 -13
  419. package/src/ngtsc/file_system/testing/src/mock_file_system_posix.js +0 -68
  420. package/src/ngtsc/file_system/testing/src/mock_file_system_windows.d.ts +0 -13
  421. package/src/ngtsc/file_system/testing/src/mock_file_system_windows.js +0 -68
  422. package/src/ngtsc/file_system/testing/src/test_helper.d.ts +0 -17
  423. package/src/ngtsc/file_system/testing/src/test_helper.js +0 -142
  424. package/src/ngtsc/imports/index.js +0 -43
  425. package/src/ngtsc/imports/src/alias.js +0 -158
  426. package/src/ngtsc/imports/src/core.js +0 -98
  427. package/src/ngtsc/imports/src/default.js +0 -153
  428. package/src/ngtsc/imports/src/emitter.js +0 -317
  429. package/src/ngtsc/imports/src/find_export.js +0 -82
  430. package/src/ngtsc/imports/src/reexport.js +0 -20
  431. package/src/ngtsc/imports/src/references.js +0 -171
  432. package/src/ngtsc/imports/src/resolver.js +0 -39
  433. package/src/ngtsc/incremental/api.js +0 -20
  434. package/src/ngtsc/incremental/index.js +0 -29
  435. package/src/ngtsc/incremental/semantic_graph/index.js +0 -34
  436. package/src/ngtsc/incremental/semantic_graph/src/api.js +0 -51
  437. package/src/ngtsc/incremental/semantic_graph/src/graph.js +0 -302
  438. package/src/ngtsc/incremental/semantic_graph/src/type_parameters.js +0 -55
  439. package/src/ngtsc/incremental/semantic_graph/src/util.js +0 -111
  440. package/src/ngtsc/incremental/src/dependency_tracking.js +0 -165
  441. package/src/ngtsc/incremental/src/incremental.js +0 -393
  442. package/src/ngtsc/incremental/src/noop.js +0 -26
  443. package/src/ngtsc/incremental/src/state.js +0 -30
  444. package/src/ngtsc/incremental/src/strategy.js +0 -99
  445. package/src/ngtsc/indexer/index.js +0 -27
  446. package/src/ngtsc/indexer/src/api.js +0 -45
  447. package/src/ngtsc/indexer/src/context.js +0 -40
  448. package/src/ngtsc/indexer/src/template.js +0 -324
  449. package/src/ngtsc/indexer/src/transform.js +0 -66
  450. package/src/ngtsc/logging/index.js +0 -25
  451. package/src/ngtsc/logging/src/console_logger.js +0 -75
  452. package/src/ngtsc/logging/src/logger.js +0 -28
  453. package/src/ngtsc/logging/testing/index.js +0 -23
  454. package/src/ngtsc/logging/testing/src/mock_logger.d.ts +0 -20
  455. package/src/ngtsc/logging/testing/src/mock_logger.js +0 -64
  456. package/src/ngtsc/metadata/index.js +0 -39
  457. package/src/ngtsc/metadata/src/api.js +0 -26
  458. package/src/ngtsc/metadata/src/dts.js +0 -168
  459. package/src/ngtsc/metadata/src/inheritance.js +0 -122
  460. package/src/ngtsc/metadata/src/property_mapping.js +0 -244
  461. package/src/ngtsc/metadata/src/registry.js +0 -133
  462. package/src/ngtsc/metadata/src/resource_registry.js +0 -109
  463. package/src/ngtsc/metadata/src/util.js +0 -275
  464. package/src/ngtsc/partial_evaluator/index.js +0 -31
  465. package/src/ngtsc/partial_evaluator/src/builtin.js +0 -125
  466. package/src/ngtsc/partial_evaluator/src/diagnostics.js +0 -193
  467. package/src/ngtsc/partial_evaluator/src/dynamic.js +0 -109
  468. package/src/ngtsc/partial_evaluator/src/interface.js +0 -42
  469. package/src/ngtsc/partial_evaluator/src/interpreter.js +0 -780
  470. package/src/ngtsc/partial_evaluator/src/known_declaration.js +0 -57
  471. package/src/ngtsc/partial_evaluator/src/result.js +0 -72
  472. package/src/ngtsc/partial_evaluator/src/ts_helpers.js +0 -121
  473. package/src/ngtsc/perf/index.js +0 -28
  474. package/src/ngtsc/perf/src/api.js +0 -291
  475. package/src/ngtsc/perf/src/clock.js +0 -30
  476. package/src/ngtsc/perf/src/noop.js +0 -37
  477. package/src/ngtsc/perf/src/recorder.js +0 -143
  478. package/src/ngtsc/program.js +0 -360
  479. package/src/ngtsc/program_driver/index.js +0 -25
  480. package/src/ngtsc/program_driver/src/api.js +0 -36
  481. package/src/ngtsc/program_driver/src/ts_create_program_driver.js +0 -200
  482. package/src/ngtsc/reflection/index.js +0 -36
  483. package/src/ngtsc/reflection/src/host.js +0 -88
  484. package/src/ngtsc/reflection/src/type_to_value.js +0 -259
  485. package/src/ngtsc/reflection/src/typescript.js +0 -640
  486. package/src/ngtsc/reflection/src/util.js +0 -37
  487. package/src/ngtsc/resource/index.js +0 -23
  488. package/src/ngtsc/resource/src/loader.js +0 -285
  489. package/src/ngtsc/routing/index.js +0 -26
  490. package/src/ngtsc/routing/src/analyzer.d.ts +0 -37
  491. package/src/ngtsc/routing/src/analyzer.js +0 -82
  492. package/src/ngtsc/routing/src/lazy.d.ts +0 -19
  493. package/src/ngtsc/routing/src/lazy.js +0 -239
  494. package/src/ngtsc/routing/src/route.d.ts +0 -23
  495. package/src/ngtsc/routing/src/route.js +0 -77
  496. package/src/ngtsc/scope/index.js +0 -29
  497. package/src/ngtsc/scope/src/api.js +0 -20
  498. package/src/ngtsc/scope/src/component_scope.js +0 -69
  499. package/src/ngtsc/scope/src/dependency.js +0 -201
  500. package/src/ngtsc/scope/src/local.js +0 -665
  501. package/src/ngtsc/scope/src/typecheck.js +0 -120
  502. package/src/ngtsc/shims/api.js +0 -13
  503. package/src/ngtsc/shims/index.js +0 -39
  504. package/src/ngtsc/shims/src/adapter.js +0 -266
  505. package/src/ngtsc/shims/src/expando.js +0 -147
  506. package/src/ngtsc/shims/src/factory_generator.js +0 -292
  507. package/src/ngtsc/shims/src/reference_tagger.js +0 -94
  508. package/src/ngtsc/shims/src/summary_generator.js +0 -101
  509. package/src/ngtsc/shims/src/util.js +0 -41
  510. package/src/ngtsc/sourcemaps/index.js +0 -27
  511. package/src/ngtsc/sourcemaps/src/content_origin.js +0 -48
  512. package/src/ngtsc/sourcemaps/src/raw_source_map.js +0 -13
  513. package/src/ngtsc/sourcemaps/src/segment_marker.js +0 -55
  514. package/src/ngtsc/sourcemaps/src/source_file.js +0 -519
  515. package/src/ngtsc/sourcemaps/src/source_file_loader.js +0 -234
  516. package/src/ngtsc/switch/index.js +0 -23
  517. package/src/ngtsc/switch/src/switch.js +0 -141
  518. package/src/ngtsc/transform/index.js +0 -36
  519. package/src/ngtsc/transform/src/alias.js +0 -46
  520. package/src/ngtsc/transform/src/api.js +0 -76
  521. package/src/ngtsc/transform/src/compilation.js +0 -862
  522. package/src/ngtsc/transform/src/declaration.js +0 -234
  523. package/src/ngtsc/transform/src/trait.js +0 -111
  524. package/src/ngtsc/transform/src/transform.js +0 -333
  525. package/src/ngtsc/transform/src/utils.js +0 -73
  526. package/src/ngtsc/translator/index.js +0 -37
  527. package/src/ngtsc/translator/src/api/ast_factory.js +0 -20
  528. package/src/ngtsc/translator/src/api/import_generator.js +0 -20
  529. package/src/ngtsc/translator/src/context.js +0 -47
  530. package/src/ngtsc/translator/src/import_manager.js +0 -77
  531. package/src/ngtsc/translator/src/translator.js +0 -347
  532. package/src/ngtsc/translator/src/type_translator.js +0 -220
  533. package/src/ngtsc/translator/src/typescript_ast_factory.js +0 -251
  534. package/src/ngtsc/translator/src/typescript_translator.js +0 -34
  535. package/src/ngtsc/tsc_plugin.js +0 -129
  536. package/src/ngtsc/typecheck/api/api.js +0 -20
  537. package/src/ngtsc/typecheck/api/checker.js +0 -44
  538. package/src/ngtsc/typecheck/api/completion.js +0 -29
  539. package/src/ngtsc/typecheck/api/context.js +0 -20
  540. package/src/ngtsc/typecheck/api/index.js +0 -27
  541. package/src/ngtsc/typecheck/api/scope.js +0 -20
  542. package/src/ngtsc/typecheck/api/symbols.js +0 -35
  543. package/src/ngtsc/typecheck/diagnostics/index.js +0 -23
  544. package/src/ngtsc/typecheck/diagnostics/src/diagnostic.js +0 -141
  545. package/src/ngtsc/typecheck/diagnostics/src/id.js +0 -37
  546. package/src/ngtsc/typecheck/extended/api/api.js +0 -124
  547. package/src/ngtsc/typecheck/extended/api/extended_template_checker.js +0 -20
  548. package/src/ngtsc/typecheck/extended/api/index.js +0 -23
  549. package/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.js +0 -52
  550. package/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.js +0 -64
  551. package/src/ngtsc/typecheck/extended/index.js +0 -23
  552. package/src/ngtsc/typecheck/extended/src/extended_template_checker.js +0 -55
  553. package/src/ngtsc/typecheck/index.js +0 -29
  554. package/src/ngtsc/typecheck/src/checker.js +0 -764
  555. package/src/ngtsc/typecheck/src/comments.js +0 -181
  556. package/src/ngtsc/typecheck/src/completion.js +0 -230
  557. package/src/ngtsc/typecheck/src/context.js +0 -424
  558. package/src/ngtsc/typecheck/src/diagnostics.js +0 -114
  559. package/src/ngtsc/typecheck/src/dom.js +0 -87
  560. package/src/ngtsc/typecheck/src/environment.js +0 -160
  561. package/src/ngtsc/typecheck/src/expression.js +0 -417
  562. package/src/ngtsc/typecheck/src/line_mappings.js +0 -77
  563. package/src/ngtsc/typecheck/src/oob.js +0 -181
  564. package/src/ngtsc/typecheck/src/shim.js +0 -52
  565. package/src/ngtsc/typecheck/src/source.js +0 -91
  566. package/src/ngtsc/typecheck/src/tcb_util.js +0 -165
  567. package/src/ngtsc/typecheck/src/template_semantics.js +0 -52
  568. package/src/ngtsc/typecheck/src/template_symbol_builder.js +0 -551
  569. package/src/ngtsc/typecheck/src/ts_util.js +0 -202
  570. package/src/ngtsc/typecheck/src/type_check_block.js +0 -2212
  571. package/src/ngtsc/typecheck/src/type_check_file.js +0 -115
  572. package/src/ngtsc/typecheck/src/type_constructor.js +0 -255
  573. package/src/ngtsc/typecheck/src/type_emitter.js +0 -164
  574. package/src/ngtsc/typecheck/src/type_parameter_emitter.js +0 -115
  575. package/src/ngtsc/util/src/path.js +0 -33
  576. package/src/ngtsc/util/src/typescript.js +0 -176
  577. package/src/ngtsc/util/src/visitor.js +0 -119
  578. package/src/ngtsc/xi18n/index.js +0 -22
  579. package/src/ngtsc/xi18n/src/context.js +0 -20
  580. package/src/perform_compile.js +0 -322
  581. package/src/perform_watch.js +0 -263
  582. package/src/tooling.js +0 -47
  583. package/src/transformers/api.js +0 -42
  584. package/src/transformers/compiler_host.js +0 -623
  585. package/src/transformers/downlevel_decorators_transform.js +0 -612
  586. package/src/transformers/entry_points.js +0 -25
  587. package/src/transformers/i18n.js +0 -76
  588. package/src/transformers/inline_resources.js +0 -287
  589. package/src/transformers/lower_expressions.js +0 -365
  590. package/src/transformers/metadata_cache.js +0 -96
  591. package/src/transformers/metadata_reader.js +0 -120
  592. package/src/transformers/node_emitter.js +0 -637
  593. package/src/transformers/node_emitter_transform.js +0 -88
  594. package/src/transformers/patch_alias_reference_resolution.js +0 -129
  595. package/src/transformers/program.js +0 -1000
  596. package/src/transformers/r3_metadata_transform.js +0 -73
  597. package/src/transformers/r3_transform.js +0 -44
  598. package/src/transformers/util.js +0 -122
  599. package/src/typescript_support.js +0 -74
  600. package/src/version.js +0 -28
@@ -1,302 +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
- (function (factory) {
9
- if (typeof module === "object" && typeof module.exports === "object") {
10
- var v = factory(require, exports);
11
- if (v !== undefined) module.exports = v;
12
- }
13
- else if (typeof define === "function" && define.amd) {
14
- define("@angular/compiler-cli/src/ngtsc/incremental/semantic_graph/src/graph", ["require", "exports", "tslib", "@angular/compiler", "@angular/compiler-cli/src/ngtsc/incremental/semantic_graph/src/api"], factory);
15
- }
16
- })(function (require, exports) {
17
- "use strict";
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.SemanticDepGraphUpdater = exports.SemanticDepGraph = void 0;
20
- var tslib_1 = require("tslib");
21
- var compiler_1 = require("@angular/compiler");
22
- var api_1 = require("@angular/compiler-cli/src/ngtsc/incremental/semantic_graph/src/api");
23
- /**
24
- * Represents a declaration for which no semantic symbol has been registered. For example,
25
- * declarations from external dependencies have not been explicitly registered and are represented
26
- * by this symbol. This allows the unresolved symbol to still be compared to a symbol from a prior
27
- * compilation.
28
- */
29
- var OpaqueSymbol = /** @class */ (function (_super) {
30
- tslib_1.__extends(OpaqueSymbol, _super);
31
- function OpaqueSymbol() {
32
- return _super !== null && _super.apply(this, arguments) || this;
33
- }
34
- OpaqueSymbol.prototype.isPublicApiAffected = function () {
35
- return false;
36
- };
37
- OpaqueSymbol.prototype.isTypeCheckApiAffected = function () {
38
- return false;
39
- };
40
- return OpaqueSymbol;
41
- }(api_1.SemanticSymbol));
42
- /**
43
- * The semantic dependency graph of a single compilation.
44
- */
45
- var SemanticDepGraph = /** @class */ (function () {
46
- function SemanticDepGraph() {
47
- this.files = new Map();
48
- this.symbolByDecl = new Map();
49
- }
50
- /**
51
- * Registers a symbol in the graph. The symbol is given a unique identifier if possible, such that
52
- * its equivalent symbol can be obtained from a prior graph even if its declaration node has
53
- * changed across rebuilds. Symbols without an identifier are only able to find themselves in a
54
- * prior graph if their declaration node is identical.
55
- */
56
- SemanticDepGraph.prototype.registerSymbol = function (symbol) {
57
- this.symbolByDecl.set(symbol.decl, symbol);
58
- if (symbol.identifier !== null) {
59
- // If the symbol has a unique identifier, record it in the file that declares it. This enables
60
- // the symbol to be requested by its unique name.
61
- if (!this.files.has(symbol.path)) {
62
- this.files.set(symbol.path, new Map());
63
- }
64
- this.files.get(symbol.path).set(symbol.identifier, symbol);
65
- }
66
- };
67
- /**
68
- * Attempts to resolve a symbol in this graph that represents the given symbol from another graph.
69
- * If no matching symbol could be found, null is returned.
70
- *
71
- * @param symbol The symbol from another graph for which its equivalent in this graph should be
72
- * found.
73
- */
74
- SemanticDepGraph.prototype.getEquivalentSymbol = function (symbol) {
75
- // First lookup the symbol by its declaration. It is typical for the declaration to not have
76
- // changed across rebuilds, so this is likely to find the symbol. Using the declaration also
77
- // allows to diff symbols for which no unique identifier could be determined.
78
- var previousSymbol = this.getSymbolByDecl(symbol.decl);
79
- if (previousSymbol === null && symbol.identifier !== null) {
80
- // The declaration could not be resolved to a symbol in a prior compilation, which may
81
- // happen because the file containing the declaration has changed. In that case we want to
82
- // lookup the symbol based on its unique identifier, as that allows us to still compare the
83
- // changed declaration to the prior compilation.
84
- previousSymbol = this.getSymbolByName(symbol.path, symbol.identifier);
85
- }
86
- return previousSymbol;
87
- };
88
- /**
89
- * Attempts to find the symbol by its identifier.
90
- */
91
- SemanticDepGraph.prototype.getSymbolByName = function (path, identifier) {
92
- if (!this.files.has(path)) {
93
- return null;
94
- }
95
- var file = this.files.get(path);
96
- if (!file.has(identifier)) {
97
- return null;
98
- }
99
- return file.get(identifier);
100
- };
101
- /**
102
- * Attempts to resolve the declaration to its semantic symbol.
103
- */
104
- SemanticDepGraph.prototype.getSymbolByDecl = function (decl) {
105
- if (!this.symbolByDecl.has(decl)) {
106
- return null;
107
- }
108
- return this.symbolByDecl.get(decl);
109
- };
110
- return SemanticDepGraph;
111
- }());
112
- exports.SemanticDepGraph = SemanticDepGraph;
113
- /**
114
- * Implements the logic to go from a previous dependency graph to a new one, along with information
115
- * on which files have been affected.
116
- */
117
- var SemanticDepGraphUpdater = /** @class */ (function () {
118
- function SemanticDepGraphUpdater(
119
- /**
120
- * The semantic dependency graph of the most recently succeeded compilation, or null if this
121
- * is the initial build.
122
- */
123
- priorGraph) {
124
- this.priorGraph = priorGraph;
125
- this.newGraph = new SemanticDepGraph();
126
- /**
127
- * Contains opaque symbols that were created for declarations for which there was no symbol
128
- * registered, which happens for e.g. external declarations.
129
- */
130
- this.opaqueSymbols = new Map();
131
- }
132
- /**
133
- * Registers the symbol in the new graph that is being created.
134
- */
135
- SemanticDepGraphUpdater.prototype.registerSymbol = function (symbol) {
136
- this.newGraph.registerSymbol(symbol);
137
- };
138
- /**
139
- * Takes all facts that have been gathered to create a new semantic dependency graph. In this
140
- * process, the semantic impact of the changes is determined which results in a set of files that
141
- * need to be emitted and/or type-checked.
142
- */
143
- SemanticDepGraphUpdater.prototype.finalize = function () {
144
- if (this.priorGraph === null) {
145
- // If no prior dependency graph is available then this was the initial build, in which case
146
- // we don't need to determine the semantic impact as everything is already considered
147
- // logically changed.
148
- return {
149
- needsEmit: new Set(),
150
- needsTypeCheckEmit: new Set(),
151
- newGraph: this.newGraph,
152
- };
153
- }
154
- var needsEmit = this.determineInvalidatedFiles(this.priorGraph);
155
- var needsTypeCheckEmit = this.determineInvalidatedTypeCheckFiles(this.priorGraph);
156
- return {
157
- needsEmit: needsEmit,
158
- needsTypeCheckEmit: needsTypeCheckEmit,
159
- newGraph: this.newGraph,
160
- };
161
- };
162
- SemanticDepGraphUpdater.prototype.determineInvalidatedFiles = function (priorGraph) {
163
- var e_1, _a, e_2, _b;
164
- var isPublicApiAffected = new Set();
165
- try {
166
- // The first phase is to collect all symbols which have their public API affected. Any symbols
167
- // that cannot be matched up with a symbol from the prior graph are considered affected.
168
- for (var _c = tslib_1.__values(this.newGraph.symbolByDecl.values()), _d = _c.next(); !_d.done; _d = _c.next()) {
169
- var symbol = _d.value;
170
- var previousSymbol = priorGraph.getEquivalentSymbol(symbol);
171
- if (previousSymbol === null || symbol.isPublicApiAffected(previousSymbol)) {
172
- isPublicApiAffected.add(symbol);
173
- }
174
- }
175
- }
176
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
177
- finally {
178
- try {
179
- if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
180
- }
181
- finally { if (e_1) throw e_1.error; }
182
- }
183
- // The second phase is to find all symbols for which the emit result is affected, either because
184
- // their used declarations have changed or any of those used declarations has had its public API
185
- // affected as determined in the first phase.
186
- var needsEmit = new Set();
187
- try {
188
- for (var _e = tslib_1.__values(this.newGraph.symbolByDecl.values()), _f = _e.next(); !_f.done; _f = _e.next()) {
189
- var symbol = _f.value;
190
- if (symbol.isEmitAffected === undefined) {
191
- continue;
192
- }
193
- var previousSymbol = priorGraph.getEquivalentSymbol(symbol);
194
- if (previousSymbol === null || symbol.isEmitAffected(previousSymbol, isPublicApiAffected)) {
195
- needsEmit.add(symbol.path);
196
- }
197
- }
198
- }
199
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
200
- finally {
201
- try {
202
- if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
203
- }
204
- finally { if (e_2) throw e_2.error; }
205
- }
206
- return needsEmit;
207
- };
208
- SemanticDepGraphUpdater.prototype.determineInvalidatedTypeCheckFiles = function (priorGraph) {
209
- var e_3, _a, e_4, _b;
210
- var isTypeCheckApiAffected = new Set();
211
- try {
212
- // The first phase is to collect all symbols which have their public API affected. Any symbols
213
- // that cannot be matched up with a symbol from the prior graph are considered affected.
214
- for (var _c = tslib_1.__values(this.newGraph.symbolByDecl.values()), _d = _c.next(); !_d.done; _d = _c.next()) {
215
- var symbol = _d.value;
216
- var previousSymbol = priorGraph.getEquivalentSymbol(symbol);
217
- if (previousSymbol === null || symbol.isTypeCheckApiAffected(previousSymbol)) {
218
- isTypeCheckApiAffected.add(symbol);
219
- }
220
- }
221
- }
222
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
223
- finally {
224
- try {
225
- if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
226
- }
227
- finally { if (e_3) throw e_3.error; }
228
- }
229
- // The second phase is to find all symbols for which the emit result is affected, either because
230
- // their used declarations have changed or any of those used declarations has had its public API
231
- // affected as determined in the first phase.
232
- var needsTypeCheckEmit = new Set();
233
- try {
234
- for (var _e = tslib_1.__values(this.newGraph.symbolByDecl.values()), _f = _e.next(); !_f.done; _f = _e.next()) {
235
- var symbol = _f.value;
236
- if (symbol.isTypeCheckBlockAffected === undefined) {
237
- continue;
238
- }
239
- var previousSymbol = priorGraph.getEquivalentSymbol(symbol);
240
- if (previousSymbol === null ||
241
- symbol.isTypeCheckBlockAffected(previousSymbol, isTypeCheckApiAffected)) {
242
- needsTypeCheckEmit.add(symbol.path);
243
- }
244
- }
245
- }
246
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
247
- finally {
248
- try {
249
- if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
250
- }
251
- finally { if (e_4) throw e_4.error; }
252
- }
253
- return needsTypeCheckEmit;
254
- };
255
- /**
256
- * Creates a `SemanticReference` for the reference to `decl` using the expression `expr`. See
257
- * the documentation of `SemanticReference` for details.
258
- */
259
- SemanticDepGraphUpdater.prototype.getSemanticReference = function (decl, expr) {
260
- return {
261
- symbol: this.getSymbol(decl),
262
- importPath: getImportPath(expr),
263
- };
264
- };
265
- /**
266
- * Gets the `SemanticSymbol` that was registered for `decl` during the current compilation, or
267
- * returns an opaque symbol that represents `decl`.
268
- */
269
- SemanticDepGraphUpdater.prototype.getSymbol = function (decl) {
270
- var symbol = this.newGraph.getSymbolByDecl(decl);
271
- if (symbol === null) {
272
- // No symbol has been recorded for the provided declaration, which would be the case if the
273
- // declaration is external. Return an opaque symbol in that case, to allow the external
274
- // declaration to be compared to a prior compilation.
275
- return this.getOpaqueSymbol(decl);
276
- }
277
- return symbol;
278
- };
279
- /**
280
- * Gets or creates an `OpaqueSymbol` for the provided class declaration.
281
- */
282
- SemanticDepGraphUpdater.prototype.getOpaqueSymbol = function (decl) {
283
- if (this.opaqueSymbols.has(decl)) {
284
- return this.opaqueSymbols.get(decl);
285
- }
286
- var symbol = new OpaqueSymbol(decl);
287
- this.opaqueSymbols.set(decl, symbol);
288
- return symbol;
289
- };
290
- return SemanticDepGraphUpdater;
291
- }());
292
- exports.SemanticDepGraphUpdater = SemanticDepGraphUpdater;
293
- function getImportPath(expr) {
294
- if (expr instanceof compiler_1.ExternalExpr) {
295
- return expr.value.moduleName + "$" + expr.value.name;
296
- }
297
- else {
298
- return null;
299
- }
300
- }
301
- });
302
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL2luY3JlbWVudGFsL3NlbWFudGljX2dyYXBoL3NyYy9ncmFwaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7O0lBRUgsOENBQTJEO0lBRzNELDBGQUF3RDtJQW1CeEQ7Ozs7O09BS0c7SUFDSDtRQUEyQix3Q0FBYztRQUF6Qzs7UUFRQSxDQUFDO1FBUFUsMENBQW1CLEdBQTVCO1lBQ0UsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRVEsNkNBQXNCLEdBQS9CO1lBQ0UsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0gsbUJBQUM7SUFBRCxDQUFDLEFBUkQsQ0FBMkIsb0JBQWMsR0FReEM7SUFFRDs7T0FFRztJQUNIO1FBQUE7WUFDVyxVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQStDLENBQUM7WUFDL0QsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBb0MsQ0FBQztRQW1FdEUsQ0FBQztRQWpFQzs7Ozs7V0FLRztRQUNILHlDQUFjLEdBQWQsVUFBZSxNQUFzQjtZQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBRTNDLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxJQUFJLEVBQUU7Z0JBQzlCLDhGQUE4RjtnQkFDOUYsaURBQWlEO2dCQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNoQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksR0FBRyxFQUEwQixDQUFDLENBQUM7aUJBQ2hFO2dCQUNELElBQUksQ0FBQyxLQUFL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LEtBQUssQ0FBQyxJQUFNLENBQUM7U0FDdkQ7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7RXhwcmVzc2lvbiwgRXh0ZXJuYWxFeHByfSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XG5pbXBvcnQge0Fic29sdXRlRnNQYXRofSBmcm9tICcuLi8uLi8uLi9maWxlX3N5c3RlbSc7XG5pbXBvcnQge0NsYXNzRGVjbGFyYXRpb259IGZyb20gJy4uLy4uLy4uL3JlZmxlY3Rpb24nO1xuaW1wb3J0IHtTZW1hbnRpY1JlZmVyZW5jZSwgU2VtYW50aWNTeW1ib2x9IGZyb20gJy4vYXBpJztcblxuZXhwb3J0IGludGVyZmFjZSBTZW1hbnRpY0RlcGVuZGVuY3lSZXN1bHQge1xuICAvKipcbiAgICogVGhlIGZpbGVzIHRoYXQgbmVlZCB0byBiZSByZS1lbWl0dGVkLlxuICAgKi9cbiAgbmVlZHNFbWl0OiBTZXQ8QWJzb2x1dGVGc1BhdGg+O1xuXG4gIC8qKlxuICAgKiBUaGUgZmlsZXMgZm9yIHdoaWNoIHRoZSB0eXBlLWNoZWNrIGJsb2NrIHNob3VsZCBiZSByZWdlbmVyYXRlZC5cbiAgICovXG4gIG5lZWRzVHlwZUNoZWNrRW1pdDogU2V0PEFic29sdXRlRnNQYXRoPjtcblxuICAvKipcbiAgICogVGhlIG5ld2x5IGJ1aWx0IGdyYXBoIHRoYXQgcmVwcmVzZW50cyB0aGUgY3VycmVudCBjb21waWxhdGlvbi5cbiAgICovXG4gIG5ld0dyYXBoOiBTZW1hbnRpY0RlcEdyYXBoO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBkZWNsYXJhdGlvbiBmb3Igd2hpY2ggbm8gc2VtYW50aWMgc3ltYm9sIGhhcyBiZWVuIHJlZ2lzdGVyZWQuIEZvciBleGFtcGxlLFxuICogZGVjbGFyYXRpb25zIGZyb20gZXh0ZXJuYWwgZGVwZW5kZW5jaWVzIGhhdmUgbm90IGJlZW4gZXhwbGljaXRseSByZWdpc3RlcmVkIGFuZCBhcmUgcmVwcmVzZW50ZWRcbiAqIGJ5IHRoaXMgc3ltYm9sLiBUaGlzIGFsbG93cyB0aGUgdW5yZXNvbHZlZCBzeW1ib2wgdG8gc3RpbGwgYmUgY29tcGFyZWQgdG8gYSBzeW1ib2wgZnJvbSBhIHByaW9yXG4gKiBjb21waWxhdGlvbi5cbiAqL1xuY2xhc3MgT3BhcXVlU3ltYm9sIGV4dGVuZHMgU2VtYW50aWNTeW1ib2wge1xuICBvdmVycmlkZSBpc1B1YmxpY0FwaUFmZmVjdGVkKCk6IGZhbHNlIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBvdmVycmlkZSBpc1R5cGVDaGVja0FwaUFmZmVjdGVkKCk6IGZhbHNlIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGUgc2VtYW50aWMgZGVwZW5kZW5jeSBncmFwaCBvZiBhIHNpbmdsZSBjb21waWxhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFNlbWFudGljRGVwR3JhcGgge1xuICByZWFkb25seSBmaWxlcyA9IG5ldyBNYXA8QWJzb2x1dGVGc1BhdGgsIE1hcDxzdHJpbmcsIFNlbWFudGljU3ltYm9sPj4oKTtcbiAgcmVhZG9ubHkgc3ltYm9sQnlEZWNsID0gbmV3IE1hcDxDbGFzc0RlY2xhcmF0aW9uLCBTZW1hbnRpY1N5bWJvbD4oKTtcblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgc3ltYm9sIGluIHRoZSBncmFwaC4gVGhlIHN5bWJvbCBpcyBnaXZlbiBhIHVuaXF1ZSBpZGVudGlmaWVyIGlmIHBvc3NpYmxlLCBzdWNoIHRoYXRcbiAgICogaXRzIGVxdWl2YWxlbnQgc3ltYm9sIGNhbiBiZSBvYnRhaW5lZCBmcm9tIGEgcHJpb3IgZ3JhcGggZXZlbiBpZiBpdHMgZGVjbGFyYXRpb24gbm9kZSBoYXNcbiAgICogY2hhbmdlZCBhY3Jvc3MgcmVidWlsZHMuIFN5bWJvbHMgd2l0aG91dCBhbiBpZGVudGlmaWVyIGFyZSBvbmx5IGFibGUgdG8gZmluZCB0aGVtc2VsdmVzIGluIGFcbiAgICogcHJpb3IgZ3JhcGggaWYgdGhlaXIgZGVjbGFyYXRpb24gbm9kZSBpcyBpZGVudGljYWwuXG4gICAqL1xuICByZWdpc3RlclN5bWJvbChzeW1ib2w6IFNlbWFudGljU3ltYm9sKTogdm9pZCB7XG4gICAgdGhpcy5zeW1ib2xCeURlY2wuc2V0KHN5bWJvbC5kZWNsLCBzeW1ib2wpO1xuXG4gICAgaWYgKHN5bWJvbC5pZGVudGlmaWVyICE9PSBudWxsKSB7XG4gICAgICAvLyBJZiB0aGUgc3ltYm9sIGhhcyBhIHVuaXF1ZSBpZGVudGlmaWVyLCByZWNvcmQgaXQgaW4gdGhlIGZpbGUgdGhhdCBkZWNsYXJlcyBpdC4gVGhpcyBlbmFibGVzXG4gICAgICAvLyB0aGUgc3ltYm9sIHRvIGJlIHJlcXVlc3RlZCBieSBpdHMgdW5pcXVlIG5hbWUuXG4gICAgICBpZiAoIXRoaXMuZmlsZXMuaGFzKHN5bWJvbC5wYXRoKSkge1xuICAgICAgICB0aGlzLmZpbGVzLnNldChzeW1ib2wucGF0aCwgbmV3IE1hcDxzdHJpbmcsIFNlbWFudGljU3ltYm9sPigpKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZmlsZXMuZ2V0KHN5bWJvbC5wYXRoKSEuc2V0KHN5bWJvbC5pZGVudGlmaWVyLCBzeW1ib2wpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0cyB0byByZXNvbHZlIGEgc3ltYm9sIGluIHRoaXMgZ3JhcGggdGhhdCByZXByZXNlbnRzIHRoZSBnaXZlbiBzeW1ib2wgZnJvbSBhbm90aGVyIGdyYXBoLlxuICAgKiBJZiBubyBtYXRjaGluZyBzeW1ib2wgY291bGQgYmUgZm91bmQsIG51bGwgaXMgcmV0dXJuZWQuXG4gICAqXG4gICAqIEBwYXJhbSBzeW1ib2wgVGhlIHN5bWJvbCBmcm9tIGFub3RoZXIgZ3JhcGggZm9yIHdoaWNoIGl0cyBlcXVpdmFsZW50IGluIHRoaXMgZ3JhcGggc2hvdWxkIGJlXG4gICAqIGZvdW5kLlxuICAgKi9cbiAgZ2V0RXF1aXZhbGVudFN5bWJvbChzeW1ib2w6IFNlbWFudGljU3ltYm9sKTogU2VtYW50aWNTeW1ib2x8bnVsbCB7XG4gICAgLy8gRmlyc3QgbG9va3VwIHRoZSBzeW1ib2wgYnkgaXRzIGRlY2xhcmF0aW9uLiBJdCBpcyB0eXBpY2FsIGZvciB0aGUgZGVjbGFyYXRpb24gdG8gbm90IGhhdmVcbiAgICAvLyBjaGFuZ2VkIGFjcm9zcyByZWJ1aWxkcywgc28gdGhpcyBpcyBsaWtlbHkgdG8gZmluZCB0aGUgc3ltYm9sLiBVc2luZyB0aGUgZGVjbGFyYXRpb24gYWxzb1xuICAgIC8vIGFsbG93cyB0byBkaWZmIHN5bWJvbHMgZm9yIHdoaWNoIG5vIHVuaXF1ZSBpZGVudGlmaWVyIGNvdWxkIGJlIGRldGVybWluZWQuXG4gICAgbGV0IHByZXZpb3VzU3ltYm9sID0gdGhpcy5nZXRTeW1ib2xCeURlY2woc3ltYm9sLmRlY2wpO1xuICAgIGlmIChwcmV2aW91c1N5bWJvbCA9PT0gbnVsbCAmJiBzeW1ib2wuaWRlbnRpZmllciAhPT0gbnVsbCkge1xuICAgICAgLy8gVGhlIGRlY2xhcmF0aW9uIGNvdWxkIG5vdCBiZSByZXNvbHZlZCB0byBhIHN5bWJvbCBpbiBhIHByaW9yIGNvbXBpbGF0aW9uLCB3aGljaCBtYXlcbiAgICAgIC8vIGhhcHBlbiBiZWNhdXNlIHRoZSBmaWxlIGNvbnRhaW5pbmcgdGhlIGRlY2xhcmF0aW9uIGhhcyBjaGFuZ2VkLiBJbiB0aGF0IGNhc2Ugd2Ugd2FudCB0b1xuICAgICAgLy8gbG9va3VwIHRoZSBzeW1ib2wgYmFzZWQgb24gaXRzIHVuaXF1ZSBpZGVudGlmaWVyLCBhcyB0aGF0IGFsbG93cyB1cyB0byBzdGlsbCBjb21wYXJlIHRoZVxuICAgICAgLy8gY2hhbmdlZCBkZWNsYXJhdGlvbiB0byB0aGUgcHJpb3IgY29tcGlsYXRpb24uXG4gICAgICBwcmV2aW91c1N5bWJvbCA9IHRoaXMuZ2V0U3ltYm9sQnlOYW1lKHN5bWJvbC5wYXRoLCBzeW1ib2wuaWRlbnRpZmllcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByZXZpb3VzU3ltYm9sO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGVtcHRzIHRvIGZpbmQgdGhlIHN5bWJvbCBieSBpdHMgaWRlbnRpZmllci5cbiAgICovXG4gIHByaXZhdGUgZ2V0U3ltYm9sQnlOYW1lKHBhdGg6IEFic29sdXRlRnNQYXRoLCBpZGVudGlmaWVyOiBzdHJpbmcpOiBTZW1hbnRpY1N5bWJvbHxudWxsIHtcbiAgICBpZiAoIXRoaXMuZmlsZXMuaGFzKHBhdGgpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgZmlsZSA9IHRoaXMuZmlsZXMuZ2V0KHBhdGgpITtcbiAgICBpZiAoIWZpbGUuaGFzKGlkZW50aWZpZXIpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGZpbGUuZ2V0KGlkZW50aWZpZXIpITtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0cyB0byByZXNvbHZlIHRoZSBkZWNsYXJhdGlvbiB0byBpdHMgc2VtYW50aWMgc3ltYm9sLlxuICAgKi9cbiAgZ2V0U3ltYm9sQnlEZWNsKGRlY2w6IENsYXNzRGVjbGFyYXRpb24pOiBTZW1hbnRpY1N5bWJvbHxudWxsIHtcbiAgICBpZiAoIXRoaXMuc3ltYm9sQnlEZWNsLmhhcyhkZWNsKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnN5bWJvbEJ5RGVjbC5nZXQoZGVjbCkhO1xuICB9XG59XG5cbi8qKlxuICogSW1wbGVtZW50cyB0aGUgbG9naWMgdG8gZ28gZnJvbSBhIHByZXZpb3VzIGRlcGVuZGVuY3kgZ3JhcGggdG8gYSBuZXcgb25lLCBhbG9uZyB3aXRoIGluZm9ybWF0aW9uXG4gKiBvbiB3aGljaCBmaWxlcyBoYXZlIGJlZW4gYWZmZWN0ZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTZW1hbnRpY0RlcEdyYXBoVXBkYXRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbmV3R3JhcGggPSBuZXcgU2VtYW50aWNEZXBHcmFwaCgpO1xuXG4gIC8qKlxuICAgKiBDb250YWlucyBvcGFxdWUgc3ltYm9scyB0aGF0IHdlcmUgY3JlYXRlZCBmb3IgZGVjbGFyYXRpb25zIGZvciB3aGljaCB0aGVyZSB3YXMgbm8gc3ltYm9sXG4gICAqIHJlZ2lzdGVyZWQsIHdoaWNoIGhhcHBlbnMgZm9yIGUuZy4gZXh0ZXJuYWwgZGVjbGFyYXRpb25zLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBvcGFxdWVTeW1ib2xzID0gbmV3IE1hcDxDbGFzc0RlY2xhcmF0aW9uLCBPcGFxdWVTeW1ib2w+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICAvKipcbiAgICAgICAqIFRoZSBzZW1hbnRpYyBkZXBlbmRlbmN5IGdyYXBoIG9mIHRoZSBtb3N0IHJlY2VudGx5IHN1Y2NlZWRlZCBjb21waWxhdGlvbiwgb3IgbnVsbCBpZiB0aGlzXG4gICAgICAgKiBpcyB0aGUgaW5pdGlhbCBidWlsZC5cbiAgICAgICAqL1xuICAgICAgcHJpdmF0ZSBwcmlvckdyYXBoOiBTZW1hbnRpY0RlcEdyYXBofG51bGwpIHt9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyB0aGUgc3ltYm9sIGluIHRoZSBuZXcgZ3JhcGggdGhhdCBpcyBiZWluZyBjcmVhdGVkLlxuICAgKi9cbiAgcmVnaXN0ZXJTeW1ib2woc3ltYm9sOiBTZW1hbnRpY1N5bWJvbCk6IHZvaWQge1xuICAgIHRoaXMubmV3R3JhcGgucmVnaXN0ZXJTeW1ib2woc3ltYm9sKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUYWtlcyBhbGwgZmFjdHMgdGhhdCBoYXZlIGJlZW4gZ2F0aGVyZWQgdG8gY3JlYXRlIGEgbmV3IHNlbWFudGljIGRlcGVuZGVuY3kgZ3JhcGguIEluIHRoaXNcbiAgICogcHJvY2VzcywgdGhlIHNlbWFudGljIGltcGFjdCBvZiB0aGUgY2hhbmdlcyBpcyBkZXRlcm1pbmVkIHdoaWNoIHJlc3VsdHMgaW4gYSBzZXQgb2YgZmlsZXMgdGhhdFxuICAgKiBuZWVkIHRvIGJlIGVtaXR0ZWQgYW5kL29yIHR5cGUtY2hlY2tlZC5cbiAgICovXG4gIGZpbmFsaXplKCk6IFNlbWFudGljRGVwZW5kZW5jeVJlc3VsdCB7XG4gICAgaWYgKHRoaXMucHJpb3JHcmFwaCA9PT0gbnVsbCkge1xuICAgICAgLy8gSWYgbm8gcHJpb3IgZGVwZW5kZW5jeSBncmFwaCBpcyBhdmFpbGFibGUgdGhlbiB0aGlzIHdhcyB0aGUgaW5pdGlhbCBidWlsZCwgaW4gd2hpY2ggY2FzZVxuICAgICAgLy8gd2UgZG9uJ3QgbmVlZCB0byBkZXRlcm1pbmUgdGhlIHNlbWFudGljIGltcGFjdCBhcyBldmVyeXRoaW5nIGlzIGFscmVhZHkgY29uc2lkZXJlZFxuICAgICAgLy8gbG9naWNhbGx5IGNoYW5nZWQuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBuZWVkc0VtaXQ6IG5ldyBTZXQ8QWJzb2x1dGVGc1BhdGg+KCksXG4gICAgICAgIG5lZWRzVHlwZUNoZWNrRW1pdDogbmV3IFNldDxBYnNvbHV0ZUZzUGF0aD4oKSxcbiAgICAgICAgbmV3R3JhcGg6IHRoaXMubmV3R3JhcGgsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IG5lZWRzRW1pdCA9IHRoaXMuZGV0ZXJtaW5lSW52YWxpZGF0ZWRGaWxlcyh0aGlzLnByaW9yR3JhcGgpO1xuICAgIGNvbnN0IG5lZWRzVHlwZUNoZWNrRW1pdCA9IHRoaXMuZGV0ZXJtaW5lSW52YWxpZGF0ZWRUeXBlQ2hlY2tGaWxlcyh0aGlzLnByaW9yR3JhcGgpO1xuICAgIHJldHVybiB7XG4gICAgICBuZWVkc0VtaXQsXG4gICAgICBuZWVkc1R5cGVDaGVja0VtaXQsXG4gICAgICBuZXdHcmFwaDogdGhpcy5uZXdHcmFwaCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRlcm1pbmVJbnZhbGlkYXRlZEZpbGVzKHByaW9yR3JhcGg6IFNlbWFudGljRGVwR3JhcGgpOiBTZXQ8QWJzb2x1dGVGc1BhdGg+IHtcbiAgICBjb25zdCBpc1B1YmxpY0FwaUFmZmVjdGVkID0gbmV3IFNldDxTZW1hbnRpY1N5bWJvbD4oKTtcblxuICAgIC8vIFRoZSBmaXJzdCBwaGFzZSBpcyB0byBjb2xsZWN0IGFsbCBzeW1ib2xzIHdoaWNoIGhhdmUgdGhlaXIgcHVibGljIEFQSSBhZmZlY3RlZC4gQW55IHN5bWJvbHNcbiAgICAvLyB0aGF0IGNhbm5vdCBiZSBtYXRjaGVkIHVwIHdpdGggYSBzeW1ib2wgZnJvbSB0aGUgcHJpb3IgZ3JhcGggYXJlIGNvbnNpZGVyZWQgYWZmZWN0ZWQuXG4gICAgZm9yIChjb25zdCBzeW1ib2wgb2YgdGhpcy5uZXdHcmFwaC5zeW1ib2xCeURlY2wudmFsdWVzKCkpIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzU3ltYm9sID0gcHJpb3JHcmFwaC5nZXRFcXVpdmFsZW50U3ltYm9sKHN5bWJvbCk7XG4gICAgICBpZiAocHJldmlvdXNTeW1ib2wgPT09IG51bGwgfHwgc3ltYm9sLmlzUHVibGljQXBpQWZmZWN0ZWQocHJldmlvdXNTeW1ib2wpKSB7XG4gICAgICAgIGlzUHVibGljQXBpQWZmZWN0ZWQuYWRkKHN5bWJvbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGhlIHNlY29uZCBwaGFzZSBpcyB0byBmaW5kIGFsbCBzeW1ib2xzIGZvciB3aGljaCB0aGUgZW1pdCByZXN1bHQgaXMgYWZmZWN0ZWQsIGVpdGhlciBiZWNhdXNlXG4gICAgLy8gdGhlaXIgdXNlZCBkZWNsYXJhdGlvbnMgaGF2ZSBjaGFuZ2VkIG9yIGFueSBvZiB0aG9zZSB1c2VkIGRlY2xhcmF0aW9ucyBoYXMgaGFkIGl0cyBwdWJsaWMgQVBJXG4gICAgLy8gYWZmZWN0ZWQgYXMgZGV0ZXJtaW5lZCBpbiB0aGUgZmlyc3QgcGhhc2UuXG4gICAgY29uc3QgbmVlZHNFbWl0ID0gbmV3IFNldDxBYnNvbHV0ZUZzUGF0aD4oKTtcbiAgICBmb3IgKGNvbnN0IHN5bWJvbCBvZiB0aGlzLm5ld0dyYXBoLnN5bWJvbEJ5RGVjbC52YWx1ZXMoKSkge1xuICAgICAgaWYgKHN5bWJvbC5pc0VtaXRBZmZlY3RlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwcmV2aW91c1N5bWJvbCA9IHByaW9yR3JhcGguZ2V0RXF1aXZhbGVudFN5bWJvbChzeW1ib2wpO1xuICAgICAgaWYgKHByZXZpb3VzU3ltYm9sID09PSBudWxsIHx8IHN5bWJvbC5pc0VtaXRBZmZlY3RlZChwcmV2aW91c1N5bWJvbCwgaXNQdWJsaWNBcGlBZmZlY3RlZCkpIHtcbiAgICAgICAgbmVlZHNFbWl0LmFkZChzeW1ib2wucGF0aCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5lZWRzRW1pdDtcbiAgfVxuXG4gIHByaXZhdGUgZGV0ZXJtaW5lSW52YWxpZGF0ZWRUeXBlQ2hlY2tGaWxlcyhwcmlvckdyYXBoOiBTZW1hbnRpY0RlcEdyYXBoKTogU2V0PEFic29sdXRlRnNQYXRoPiB7XG4gICAgY29uc3QgaXNUeXBlQ2hlY2tBcGlBZmZlY3RlZCA9IG5ldyBTZXQ8U2VtYW50aWNTeW1ib2w+KCk7XG5cbiAgICAvLyBUaGUgZmlyc3QgcGhhc2UgaXMgdG8gY29sbGVjdCBhbGwgc3ltYm9scyB3aGljaCBoYXZlIHRoZWlyIHB1YmxpYyBBUEkgYWZmZWN0ZWQuIEFueSBzeW1ib2xzXG4gICAgLy8gdGhhdCBjYW5ub3QgYmUgbWF0Y2hlZCB1cCB3aXRoIGEgc3ltYm9sIGZyb20gdGhlIHByaW9yIGdyYXBoIGFyZSBjb25zaWRlcmVkIGFmZmVjdGVkLlxuICAgIGZvciAoY29uc3Qgc3ltYm9sIG9mIHRoaXMubmV3R3JhcGguc3ltYm9sQnlEZWNsLnZhbHVlcygpKSB7XG4gICAgICBjb25zdCBwcmV2aW91c1N5bWJvbCA9IHByaW9yR3JhcGguZ2V0RXF1aXZhbGVudFN5bWJvbChzeW1ib2wpO1xuICAgICAgaWYgKHByZXZpb3VzU3ltYm9sID09PSBudWxsIHx8IHN5bWJvbC5pc1R5cGVDaGVja0FwaUFmZmVjdGVkKHByZXZpb3VzU3ltYm9sKSkge1xuICAgICAgICBpc1R5cGVDaGVja0FwaUFmZmVjdGVkLmFkZChzeW1ib2wpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoZSBzZWNvbmQgcGhhc2UgaXMgdG8gZmluZCBhbGwgc3ltYm9scyBmb3Igd2hpY2ggdGhlIGVtaXQgcmVzdWx0IGlzIGFmZmVjdGVkLCBlaXRoZXIgYmVjYXVzZVxuICAgIC8vIHRoZWlyIHVzZWQgZGVjbGFyYXRpb25zIGhhdmUgY2hhbmdlZCBvciBhbnkgb2YgdGhvc2UgdXNlZCBkZWNsYXJhdGlvbnMgaGFzIGhhZCBpdHMgcHVibGljIEFQSVxuICAgIC8vIGFmZmVjdGVkIGFzIGRldGVybWluZWQgaW4gdGhlIGZpcnN0IHBoYXNlLlxuICAgIGNvbnN0IG5lZWRzVHlwZUNoZWNrRW1pdCA9IG5ldyBTZXQ8QWJzb2x1dGVGc1BhdGg+KCk7XG4gICAgZm9yIChjb25zdCBzeW1ib2wgb2YgdGhpcy5uZXdHcmFwaC5zeW1ib2xCeURlY2wudmFsdWVzKCkpIHtcbiAgICAgIGlmIChzeW1ib2wuaXNUeXBlQ2hlY2tCbG9ja0FmZmVjdGVkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByZXZpb3VzU3ltYm9sID0gcHJpb3JHcmFwaC5nZXRFcXVpdmFsZW50U3ltYm9sKHN5bWJvbCk7XG4gICAgICBpZiAocHJldmlvdXNTeW1ib2wgPT09IG51bGwgfHxcbiAgICAgICAgICBzeW1ib2wuaXNUeXBlQ2hlY2tCbG9ja0FmZmVjdGVkKHByZXZpb3VzU3ltYm9sLCBpc1R5cGVDaGVja0FwaUFmZmVjdGVkKSkge1xuICAgICAgICBuZWVkc1R5cGVDaGVja0VtaXQuYWRkKHN5bWJvbC5wYXRoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmVlZHNUeXBlQ2hlY2tFbWl0O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBgU2VtYW50aWNSZWZlcmVuY2VgIGZvciB0aGUgcmVmZXJlbmNlIHRvIGBkZWNsYCB1c2luZyB0aGUgZXhwcmVzc2lvbiBgZXhwcmAuIFNlZVxuICAgKiB0aGUgZG9jdW1lbnRhdGlvbiBvZiBgU2VtYW50aWNSZWZlcmVuY2VgIGZvciBkZXRhaWxzLlxuICAgKi9cbiAgZ2V0U2VtYW50aWNSZWZlcmVuY2UoZGVjbDogQ2xhc3NEZWNsYXJhdGlvbiwgZXhwcjogRXhwcmVzc2lvbik6IFNlbWFudGljUmVmZXJlbmNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3ltYm9sOiB0aGlzLmdldFN5bWJvbChkZWNsKSxcbiAgICAgIGltcG9ydFBhdGg6IGdldEltcG9ydFBhdGgoZXhwciksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBgU2VtYW50aWNTeW1ib2xgIHRoYXQgd2FzIHJlZ2lzdGVyZWQgZm9yIGBkZWNsYCBkdXJpbmcgdGhlIGN1cnJlbnQgY29tcGlsYXRpb24sIG9yXG4gICAqIHJldHVybnMgYW4gb3BhcXVlIHN5bWJvbCB0aGF0IHJlcHJlc2VudHMgYGRlY2xgLlxuICAgKi9cbiAgZ2V0U3ltYm9sKGRlY2w6IENsYXNzRGVjbGFyYXRpb24pOiBTZW1hbnRpY1N5bWJvbCB7XG4gICAgY29uc3Qgc3ltYm9sID0gdGhpcy5uZXdHcmFwaC5nZXRTeW1ib2xCeURlY2woZGVjbCk7XG4gICAgaWYgKHN5bWJvbCA9PT0gbnVsbCkge1xuICAgICAgLy8gTm8gc3ltYm9sIGhhcyBiZWVuIHJlY29yZGVkIGZvciB0aGUgcHJvdmlkZWQgZGVjbGFyYXRpb24sIHdoaWNoIHdvdWxkIGJlIHRoZSBjYXNlIGlmIHRoZVxuICAgICAgLy8gZGVjbGFyYXRpb24gaXMgZXh0ZXJuYWwuIFJldHVybiBhbiBvcGFxdWUgc3ltYm9sIGluIHRoYXQgY2FzZSwgdG8gYWxsb3cgdGhlIGV4dGVybmFsXG4gICAgICAvLyBkZWNsYXJhdGlvbiB0byBiZSBjb21wYXJlZCB0byBhIHByaW9yIGNvbXBpbGF0aW9uLlxuICAgICAgcmV0dXJuIHRoaXMuZ2V0T3BhcXVlU3ltYm9sKGRlY2wpO1xuICAgIH1cbiAgICByZXR1cm4gc3ltYm9sO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgb3IgY3JlYXRlcyBhbiBgT3BhcXVlU3ltYm9sYCBmb3IgdGhlIHByb3ZpZGVkIGNsYXNzIGRlY2xhcmF0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRPcGFxdWVTeW1ib2woZGVjbDogQ2xhc3NEZWNsYXJhdGlvbik6IE9wYXF1ZVN5bWJvbCB7XG4gICAgaWYgKHRoaXMub3BhcXVlU3ltYm9scy5oYXMoZGVjbCkpIHtcbiAgICAgIHJldHVybiB0aGlzLm9wYXF1ZVN5bWJvbHMuZ2V0KGRlY2wpITtcbiAgICB9XG5cbiAgICBjb25zdCBzeW1ib2wgPSBuZXcgT3BhcXVlU3ltYm9sKGRlY2wpO1xuICAgIHRoaXMub3BhcXVlU3ltYm9scy5zZXQoZGVjbCwgc3ltYm9sKTtcbiAgICByZXR1cm4gc3ltYm9sO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldEltcG9ydFBhdGgoZXhwcjogRXhwcmVzc2lvbik6IHN0cmluZ3xudWxsIHtcbiAgaWYgKGV4cHIgaW5zdGFuY2VvZiBFeHRlcm5hbEV4cHIpIHtcbiAgICByZXR1cm4gYCR7ZXhwci52YWx1ZS5tb2R1bGVOYW1lfVxcJCR7ZXhwci52YWx1ZS5uYW1lfWA7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdfQ==
@@ -1,55 +0,0 @@
1
- (function (factory) {
2
- if (typeof module === "object" && typeof module.exports === "object") {
3
- var v = factory(require, exports);
4
- if (v !== undefined) module.exports = v;
5
- }
6
- else if (typeof define === "function" && define.amd) {
7
- define("@angular/compiler-cli/src/ngtsc/incremental/semantic_graph/src/type_parameters", ["require", "exports", "typescript", "@angular/compiler-cli/src/ngtsc/incremental/semantic_graph/src/util"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.areTypeParametersEqual = exports.extractSemanticTypeParameters = void 0;
13
- /**
14
- * @license
15
- * Copyright Google LLC All Rights Reserved.
16
- *
17
- * Use of this source code is governed by an MIT-style license that can be
18
- * found in the LICENSE file at https://angular.io/license
19
- */
20
- var ts = require("typescript");
21
- var util_1 = require("@angular/compiler-cli/src/ngtsc/incremental/semantic_graph/src/util");
22
- /**
23
- * Converts the type parameters of the given class into their semantic representation. If the class
24
- * does not have any type parameters, then `null` is returned.
25
- */
26
- function extractSemanticTypeParameters(node) {
27
- if (!ts.isClassDeclaration(node) || node.typeParameters === undefined) {
28
- return null;
29
- }
30
- return node.typeParameters.map(function (typeParam) { return ({ hasGenericTypeBound: typeParam.constraint !== undefined }); });
31
- }
32
- exports.extractSemanticTypeParameters = extractSemanticTypeParameters;
33
- /**
34
- * Compares the list of type parameters to determine if they can be considered equal.
35
- */
36
- function areTypeParametersEqual(current, previous) {
37
- // First compare all type parameters one-to-one; any differences mean that the list of type
38
- // parameters has changed.
39
- if (!util_1.isArrayEqual(current, previous, isTypeParameterEqual)) {
40
- return false;
41
- }
42
- // If there is a current list of type parameters and if any of them has a generic type constraint,
43
- // then the meaning of that type parameter may have changed without us being aware; as such we
44
- // have to assume that the type parameters have in fact changed.
45
- if (current !== null && current.some(function (typeParam) { return typeParam.hasGenericTypeBound; })) {
46
- return false;
47
- }
48
- return true;
49
- }
50
- exports.areTypeParametersEqual = areTypeParametersEqual;
51
- function isTypeParameterEqual(a, b) {
52
- return a.hasGenericTypeBound === b.hasGenericTypeBound;
53
- }
54
- });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZV9wYXJhbWV0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy9pbmNyZW1lbnRhbC9zZW1hbnRpY19ncmFwaC9zcmMvdHlwZV9wYXJhbWV0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFBOzs7Ozs7T0FNRztJQUNILCtCQUFpQztJQUdqQyw0RkFBb0M7SUFzQnBDOzs7T0FHRztJQUNILFNBQWdCLDZCQUE2QixDQUFDLElBQXNCO1FBRWxFLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxTQUFTLEVBQUU7WUFDckUsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQzFCLFVBQUEsU0FBUyxJQUFJLE9BQUEsQ0FBQyxFQUFDLG1CQUFtQixFQUFFLFNBQVMsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFDLENBQUMsRUFBM0QsQ0FBMkQsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFSRCxzRUFRQztJQUVEOztPQUVHO0lBQ0gsU0FBZ0Isc0JBQXNCLENBQ2xDLE9BQXFDLEVBQUUsUUFBc0M7UUFDL0UsMkZBQTJGO1FBQzNGLDBCQUEwQjtRQUMxQixJQUFJLENBQUMsbUJBQVksQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixDQUFDLEVBQUU7WUFDMUQsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELGtHQUFrRztRQUNsRyw4RkFBOEY7UUFDOUYsZ0VBQWdFO1FBQ2hFLElBQUksT0FBTyxLQUFLLElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQUEsU0FBUyxJQUFJLE9BQUEsU0FBUyxDQUFDLG1CQUFtQixFQUE3QixDQUE2QixDQUFDLEVBQUU7WUFDaEYsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQWhCRCx3REFnQkM7SUFFRCxTQUFTLG9CQUFvQixDQUFDLENBQXdCLEVBQUUsQ0FBd0I7UUFDOUUsT0FBTyxDQUFDLENBQUMsbUJBQW1CLEtBQUssQ0FBQyxDQUFDLG1CQUFtQixDQUFDO0lBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge0NsYXNzRGVjbGFyYXRpb259IGZyb20gJy4uLy4uLy4uL3JlZmxlY3Rpb24nO1xuaW1wb3J0IHtpc0FycmF5RXF1YWx9IGZyb20gJy4vdXRpbCc7XG5cbi8qKlxuICogRGVzY3JpYmVzIGEgZ2VuZXJpYyB0eXBlIHBhcmFtZXRlciBvZiBhIHNlbWFudGljIHN5bWJvbC4gQSBjbGFzcyBkZWNsYXJhdGlvbiB3aXRoIHR5cGUgcGFyYW1ldGVyc1xuICogbmVlZHMgc3BlY2lhbCBjb25zaWRlcmF0aW9uIGluIGNlcnRhaW4gY29udGV4dHMuIEZvciBleGFtcGxlLCB0ZW1wbGF0ZSB0eXBlLWNoZWNrIGJsb2NrcyBtYXlcbiAqIGNvbnRhaW4gdHlwZSBjb25zdHJ1Y3RvcnMgb2YgdXNlZCBkaXJlY3RpdmVzIHdoaWNoIGluY2x1ZGUgdGhlIHR5cGUgcGFyYW1ldGVycyBvZiB0aGUgZGlyZWN0aXZlLlxuICogQXMgYSBjb25zZXF1ZW5jZSwgaWYgYSBjaGFuZ2UgaXMgbWFkZSB0aGF0IGFmZmVjdHMgdGhlIHR5cGUgcGFyYW1ldGVycyBvZiBzYWlkIGRpcmVjdGl2ZSwgYW55XG4gKiB0ZW1wbGF0ZSB0eXBlLWNoZWNrIGJsb2NrcyB0aGF0IHVzZSB0aGUgZGlyZWN0aXZlIG5lZWQgdG8gYmUgcmVnZW5lcmF0ZWQuXG4gKlxuICogVGhpcyB0eXBlIHJlcHJlc2VudHMgYSBzaW5nbGUgZ2VuZXJpYyB0eXBlIHBhcmFtZXRlci4gSXQgY3VycmVudGx5IG9ubHkgdHJhY2tzIHdoZXRoZXIgdGhlXG4gKiB0eXBlIHBhcmFtZXRlciBoYXMgYSBjb25zdHJhaW50LCBpLmUuIGhhcyBhbiBgZXh0ZW5kc2AgY2xhdXNlLiBXaGVuIGEgY29uc3RyYWludCBpcyBwcmVzZW50LCB3ZVxuICogY3VycmVudGx5IGFzc3VtZSB0aGF0IHRoZSB0eXBlIHBhcmFtZXRlciBpcyBhZmZlY3RlZCBpbiBlYWNoIGluY3JlbWVudGFsIHJlYnVpbGQ7IHByb3ZpbmcgdGhhdFxuICogYSB0eXBlIHBhcmFtZXRlciB3aXRoIGNvbnN0cmFpbnQgaXMgbm90IGFmZmVjdGVkIGlzIG5vbi10cml2aWFsIGFzIGl0IHJlcXVpcmVzIGZ1bGwgc2VtYW50aWNcbiAqIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHR5cGUgY29uc3RyYWludC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZW1hbnRpY1R5cGVQYXJhbWV0ZXIge1xuICAvKipcbiAgICogV2hldGhlciBhIHR5cGUgY29uc3RyYWludCwgaS5lLiBhbiBgZXh0ZW5kc2AgY2xhdXNlIGlzIHByZXNlbnQgb24gdGhlIHR5cGUgcGFyYW1ldGVyLlxuICAgKi9cbiAgaGFzR2VuZXJpY1R5cGVCb3VuZDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyB0aGUgdHlwZSBwYXJhbWV0ZXJzIG9mIHRoZSBnaXZlbiBjbGFzcyBpbnRvIHRoZWlyIHNlbWFudGljIHJlcHJlc2VudGF0aW9uLiBJZiB0aGUgY2xhc3NcbiAqIGRvZXMgbm90IGhhdmUgYW55IHR5cGUgcGFyYW1ldGVycywgdGhlbiBgbnVsbGAgaXMgcmV0dXJuZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0U2VtYW50aWNUeXBlUGFyYW1ldGVycyhub2RlOiBDbGFzc0RlY2xhcmF0aW9uKTogU2VtYW50aWNUeXBlUGFyYW1ldGVyW118XG4gICAgbnVsbCB7XG4gIGlmICghdHMuaXNDbGFzc0RlY2xhcmF0aW9uKG5vZGUpIHx8IG5vZGUudHlwZVBhcmFtZXRlcnMgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIG5vZGUudHlwZVBhcmFtZXRlcnMubWFwKFxuICAgICAgdHlwZVBhcmFtID0+ICh7aGFzR2VuZXJpY1R5cGVCb3VuZDogdHlwZVBhcmFtLmNvbnN0cmFpbnQgIT09IHVuZGVmaW5lZH0pKTtcbn1cblxuLyoqXG4gKiBDb21wYXJlcyB0aGUgbGlzdCBvZiB0eXBlIHBhcmFtZXRlcnMgdG8gZGV0ZXJtaW5lIGlmIHRoZXkgY2FuIGJlIGNvbnNpZGVyZWQgZXF1YWwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcmVUeXBlUGFyYW1ldGVyc0VxdWFsKFxuICAgIGN1cnJlbnQ6IFNlbWFudGljVHlwZVBhcmFtZXRlcltdfG51bGwsIHByZXZpb3VzOiBTZW1hbnRpY1R5cGVQYXJhbWV0ZXJbXXxudWxsKTogYm9vbGVhbiB7XG4gIC8vIEZpcnN0IGNvbXBhcmUgYWxsIHR5cGUgcGFyYW1ldGVycyBvbmUtdG8tb25lOyBhbnkgZGlmZmVyZW5jZXMgbWVhbiB0aGF0IHRoZSBsaXN0IG9mIHR5cGVcbiAgLy8gcGFyYW1ldGVycyBoYXMgY2hhbmdlZC5cbiAgaWYgKCFpc0FycmF5RXF1YWwoY3VycmVudCwgcHJldmlvdXMsIGlzVHlwZVBhcmFtZXRlckVxdWFsKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIElmIHRoZXJlIGlzIGEgY3VycmVudCBsaXN0IG9mIHR5cGUgcGFyYW1ldGVycyBhbmQgaWYgYW55IG9mIHRoZW0gaGFzIGEgZ2VuZXJpYyB0eXBlIGNvbnN0cmFpbnQsXG4gIC8vIHRoZW4gdGhlIG1lYW5pbmcgb2YgdGhhdCB0eXBlIHBhcmFtZXRlciBtYXkgaGF2ZSBjaGFuZ2VkIHdpdGhvdXQgdXMgYmVpbmcgYXdhcmU7IGFzIHN1Y2ggd2VcbiAgLy8gaGF2ZSB0byBhc3N1bWUgdGhhdCB0aGUgdHlwZSBwYXJhbWV0ZXJzIGhhdmUgaW4gZmFjdCBjaGFuZ2VkLlxuICBpZiAoY3VycmVudCAhPT0gbnVsbCAmJiBjdXJyZW50LnNvbWUodHlwZVBhcmFtID0+IHR5cGVQYXJhbS5oYXNHZW5lcmljVHlwZUJvdW5kKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBpc1R5cGVQYXJhbWV0ZXJFcXVhbChhOiBTZW1hbnRpY1R5cGVQYXJhbWV0ZXIsIGI6IFNlbWFudGljVHlwZVBhcmFtZXRlcik6IGJvb2xlYW4ge1xuICByZXR1cm4gYS5oYXNHZW5lcmljVHlwZUJvdW5kID09PSBiLmhhc0dlbmVyaWNUeXBlQm91bmQ7XG59XG4iXX0=
@@ -1,111 +0,0 @@
1
- (function (factory) {
2
- if (typeof module === "object" && typeof module.exports === "object") {
3
- var v = factory(require, exports);
4
- if (v !== undefined) module.exports = v;
5
- }
6
- else if (typeof define === "function" && define.amd) {
7
- define("@angular/compiler-cli/src/ngtsc/incremental/semantic_graph/src/util", ["require", "exports", "tslib"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.isSetEqual = exports.isArrayEqual = exports.referenceEquality = exports.isReferenceEqual = exports.isSymbolEqual = void 0;
13
- var tslib_1 = require("tslib");
14
- /**
15
- * Determines whether the provided symbols represent the same declaration.
16
- */
17
- function isSymbolEqual(a, b) {
18
- if (a.decl === b.decl) {
19
- // If the declaration is identical then it must represent the same symbol.
20
- return true;
21
- }
22
- if (a.identifier === null || b.identifier === null) {
23
- // Unidentifiable symbols are assumed to be different.
24
- return false;
25
- }
26
- return a.path === b.path && a.identifier === b.identifier;
27
- }
28
- exports.isSymbolEqual = isSymbolEqual;
29
- /**
30
- * Determines whether the provided references to a semantic symbol are still equal, i.e. represent
31
- * the same symbol and are imported by the same path.
32
- */
33
- function isReferenceEqual(a, b) {
34
- if (!isSymbolEqual(a.symbol, b.symbol)) {
35
- // If the reference's target symbols are different, the reference itself is different.
36
- return false;
37
- }
38
- // The reference still corresponds with the same symbol, now check that the path by which it is
39
- // imported has not changed.
40
- return a.importPath === b.importPath;
41
- }
42
- exports.isReferenceEqual = isReferenceEqual;
43
- function referenceEquality(a, b) {
44
- return a === b;
45
- }
46
- exports.referenceEquality = referenceEquality;
47
- /**
48
- * Determines if the provided arrays are equal to each other, using the provided equality tester
49
- * that is called for all entries in the array.
50
- */
51
- function isArrayEqual(a, b, equalityTester) {
52
- if (equalityTester === void 0) { equalityTester = referenceEquality; }
53
- if (a === null || b === null) {
54
- return a === b;
55
- }
56
- if (a.length !== b.length) {
57
- return false;
58
- }
59
- return !a.some(function (item, index) { return !equalityTester(item, b[index]); });
60
- }
61
- exports.isArrayEqual = isArrayEqual;
62
- /**
63
- * Determines if the provided sets are equal to each other, using the provided equality tester.
64
- * Sets that only differ in ordering are considered equal.
65
- */
66
- function isSetEqual(a, b, equalityTester) {
67
- var e_1, _a, e_2, _b;
68
- if (equalityTester === void 0) { equalityTester = referenceEquality; }
69
- if (a === null || b === null) {
70
- return a === b;
71
- }
72
- if (a.size !== b.size) {
73
- return false;
74
- }
75
- try {
76
- for (var a_1 = tslib_1.__values(a), a_1_1 = a_1.next(); !a_1_1.done; a_1_1 = a_1.next()) {
77
- var itemA = a_1_1.value;
78
- var found = false;
79
- try {
80
- for (var b_1 = (e_2 = void 0, tslib_1.__values(b)), b_1_1 = b_1.next(); !b_1_1.done; b_1_1 = b_1.next()) {
81
- var itemB = b_1_1.value;
82
- if (equalityTester(itemA, itemB)) {
83
- found = true;
84
- break;
85
- }
86
- }
87
- }
88
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
89
- finally {
90
- try {
91
- if (b_1_1 && !b_1_1.done && (_b = b_1.return)) _b.call(b_1);
92
- }
93
- finally { if (e_2) throw e_2.error; }
94
- }
95
- if (!found) {
96
- return false;
97
- }
98
- }
99
- }
100
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
101
- finally {
102
- try {
103
- if (a_1_1 && !a_1_1.done && (_a = a_1.return)) _a.call(a_1);
104
- }
105
- finally { if (e_1) throw e_1.error; }
106
- }
107
- return true;
108
- }
109
- exports.isSetEqual = isSetEqual;
110
- });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvaW5jcmVtZW50YWwvc2VtYW50aWNfZ3JhcGgvc3JjL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztJQVNBOztPQUVHO0lBQ0gsU0FBZ0IsYUFBYSxDQUFDLENBQWlCLEVBQUUsQ0FBaUI7UUFDaEUsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUU7WUFDckIsMEVBQTBFO1lBQzFFLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLENBQUMsQ0FBQyxVQUFVLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFFO1lBQ2xELHNEQUFzRDtZQUN0RCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDO0lBQzVELENBQUM7SUFaRCxzQ0FZQztJQUVEOzs7T0FHRztJQUNILFNBQWdCLGdCQUFnQixDQUFDLENBQW9CLEVBQUUsQ0FBb0I7UUFDekUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN0QyxzRkFBc0Y7WUFDdEYsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELCtGQUErRjtRQUMvRiw0QkFBNEI7UUFDNUIsT0FBTyxDQUFDLENBQUMsVUFBVSxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDdkMsQ0FBQztJQVRELDRDQVNDO0lBRUQsU0FBZ0IsaUJBQWlCLENBQUksQ0FBSSxFQUFFLENBQUk7UUFDN0MsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFGRCw4Q0FFQztJQUVEOzs7T0FHRztJQUNILFNBQWdCLFlBQVksQ0FDeEIsQ0FBb0IsRUFBRSxDQUFvQixFQUMxQyxjQUEyRDtRQUEzRCwrQkFBQSxFQUFBLGtDQUEyRDtRQUM3RCxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRTtZQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDaEI7UUFFRCxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRTtZQUN6QixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBQyxJQUFJLEVBQUUsS0FBSyxJQUFLLE9BQUEsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUEvQixDQUErQixDQUFDLENBQUM7SUFDbkUsQ0FBQztJQVpELG9DQVlDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBZ0IsVUFBVSxDQUN0QixDQUFzQixFQUFFLENBQXNCLEVBQzlDLGNBQTJEOztRQUEzRCwrQkFBQSxFQUFBLGtDQUEyRDtRQUM3RCxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRTtZQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDaEI7UUFFRCxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRTtZQUNyQixPQUFPLEtBQUssQ0FBQztTQUNkOztZQUVELEtBQW9CLElBQUEsTUFBQSxpQkFBQSxDQUFDLENBQUEsb0JBQUEsbUNBQUU7Z0JBQWxCLElBQU0sS0FBSyxjQUFBO2dCQUNkLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQzs7b0JBQ2xCLEtBQW9CLElBQUEscUJBQUEsaUJBQUEsQ0FBQyxDQUFBLENBQUEsb0JBQUEsbUNBQUU7d0JBQWxCLElBQU0sS0FBSyxjQUFBO3dCQUNkLElBQUksY0FBYyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRTs0QkFDaEMsS0FBSyxHQUFHLElBQUksQ0FBQzs0QkFDYixNQUFNO3lCQUNQO3FCQUNGOzs7Ozs7Ozs7Z0JBQ0QsSUFBSSxDQUFDLEtBQUssRUFBRTtvQkFDVixPQUFPLEtBQUssQ0FBQztpQkFDZDthQUNGOzs7Ozs7Ozs7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUF6QkQsZ0NBeUJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge1NlbWFudGljUmVmZXJlbmNlLCBTZW1hbnRpY1N5bWJvbH0gZnJvbSAnLi9hcGknO1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciB0aGUgcHJvdmlkZWQgc3ltYm9scyByZXByZXNlbnQgdGhlIHNhbWUgZGVjbGFyYXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1N5bWJvbEVxdWFsKGE6IFNlbWFudGljU3ltYm9sLCBiOiBTZW1hbnRpY1N5bWJvbCk6IGJvb2xlYW4ge1xuICBpZiAoYS5kZWNsID09PSBiLmRlY2wpIHtcbiAgICAvLyBJZiB0aGUgZGVjbGFyYXRpb24gaXMgaWRlbnRpY2FsIHRoZW4gaXQgbXVzdCByZXByZXNlbnQgdGhlIHNhbWUgc3ltYm9sLlxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKGEuaWRlbnRpZmllciA9PT0gbnVsbCB8fCBiLmlkZW50aWZpZXIgPT09IG51bGwpIHtcbiAgICAvLyBVbmlkZW50aWZpYWJsZSBzeW1ib2xzIGFyZSBhc3N1bWVkIHRvIGJlIGRpZmZlcmVudC5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gYS5wYXRoID09PSBiLnBhdGggJiYgYS5pZGVudGlmaWVyID09PSBiLmlkZW50aWZpZXI7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwcm92aWRlZCByZWZlcmVuY2VzIHRvIGEgc2VtYW50aWMgc3ltYm9sIGFyZSBzdGlsbCBlcXVhbCwgaS5lLiByZXByZXNlbnRcbiAqIHRoZSBzYW1lIHN5bWJvbCBhbmQgYXJlIGltcG9ydGVkIGJ5IHRoZSBzYW1lIHBhdGguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1JlZmVyZW5jZUVxdWFsKGE6IFNlbWFudGljUmVmZXJlbmNlLCBiOiBTZW1hbnRpY1JlZmVyZW5jZSk6IGJvb2xlYW4ge1xuICBpZiAoIWlzU3ltYm9sRXF1YWwoYS5zeW1ib2wsIGIuc3ltYm9sKSkge1xuICAgIC8vIElmIHRoZSByZWZlcmVuY2UncyB0YXJnZXQgc3ltYm9scyBhcmUgZGlmZmVyZW50LCB0aGUgcmVmZXJlbmNlIGl0c2VsZiBpcyBkaWZmZXJlbnQuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gVGhlIHJlZmVyZW5jZSBzdGlsbCBjb3JyZXNwb25kcyB3aXRoIHRoZSBzYW1lIHN5bWJvbCwgbm93IGNoZWNrIHRoYXQgdGhlIHBhdGggYnkgd2hpY2ggaXQgaXNcbiAgLy8gaW1wb3J0ZWQgaGFzIG5vdCBjaGFuZ2VkLlxuICByZXR1cm4gYS5pbXBvcnRQYXRoID09PSBiLmltcG9ydFBhdGg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWZlcmVuY2VFcXVhbGl0eTxUPihhOiBULCBiOiBUKTogYm9vbGVhbiB7XG4gIHJldHVybiBhID09PSBiO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgaWYgdGhlIHByb3ZpZGVkIGFycmF5cyBhcmUgZXF1YWwgdG8gZWFjaCBvdGhlciwgdXNpbmcgdGhlIHByb3ZpZGVkIGVxdWFsaXR5IHRlc3RlclxuICogdGhhdCBpcyBjYWxsZWQgZm9yIGFsbCBlbnRyaWVzIGluIHRoZSBhcnJheS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQXJyYXlFcXVhbDxUPihcbiAgICBhOiByZWFkb25seSBUW118bnVsbCwgYjogcmVhZG9ubHkgVFtdfG51bGwsXG4gICAgZXF1YWxpdHlUZXN0ZXI6IChhOiBULCBiOiBUKSA9PiBib29sZWFuID0gcmVmZXJlbmNlRXF1YWxpdHkpOiBib29sZWFuIHtcbiAgaWYgKGEgPT09IG51bGwgfHwgYiA9PT0gbnVsbCkge1xuICAgIHJldHVybiBhID09PSBiO1xuICB9XG5cbiAgaWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiAhYS5zb21lKChpdGVtLCBpbmRleCkgPT4gIWVxdWFsaXR5VGVzdGVyKGl0ZW0sIGJbaW5kZXhdKSk7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiB0aGUgcHJvdmlkZWQgc2V0cyBhcmUgZXF1YWwgdG8gZWFjaCBvdGhlciwgdXNpbmcgdGhlIHByb3ZpZGVkIGVxdWFsaXR5IHRlc3Rlci5cbiAqIFNldHMgdGhhdCBvbmx5IGRpZmZlciBpbiBvcmRlcmluZyBhcmUgY29uc2lkZXJlZCBlcXVhbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2V0RXF1YWw8VD4oXG4gICAgYTogUmVhZG9ubHlTZXQ8VD58bnVsbCwgYjogUmVhZG9ubHlTZXQ8VD58bnVsbCxcbiAgICBlcXVhbGl0eVRlc3RlcjogKGE6IFQsIGI6IFQpID0+IGJvb2xlYW4gPSByZWZlcmVuY2VFcXVhbGl0eSk6IGJvb2xlYW4ge1xuICBpZiAoYSA9PT0gbnVsbCB8fCBiID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGEgPT09IGI7XG4gIH1cblxuICBpZiAoYS5zaXplICE9PSBiLnNpemUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBmb3IgKGNvbnN0IGl0ZW1BIG9mIGEpIHtcbiAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICBmb3IgKGNvbnN0IGl0ZW1CIG9mIGIpIHtcbiAgICAgIGlmIChlcXVhbGl0eVRlc3RlcihpdGVtQSwgaXRlbUIpKSB7XG4gICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghZm91bmQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cbiJdfQ==