@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,266 +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 { ExternalExpr, ExternalReference, WrappedNodeExpr } from '@angular/compiler';
9
- import * as ts from 'typescript';
10
- import { absoluteFromSourceFile, dirname, LogicalProjectPath, relative, toRelativeImport } from '../../file_system';
11
- import { stripExtension } from '../../file_system/src/util';
12
- import { getSourceFile, isDeclaration, isNamedDeclaration, isTypeDeclaration, nodeNameForError } from '../../util/src/typescript';
13
- import { findExportedNameOfNode } from './find_export';
14
- /**
15
- * Flags which alter the imports generated by the `ReferenceEmitter`.
16
- */
17
- export var ImportFlags;
18
- (function (ImportFlags) {
19
- ImportFlags[ImportFlags["None"] = 0] = "None";
20
- /**
21
- * Force the generation of a new import when generating a reference, even if an identifier already
22
- * exists in the target file which could be used instead.
23
- *
24
- * This is sometimes required if there's a risk TypeScript might remove imports during emit.
25
- */
26
- ImportFlags[ImportFlags["ForceNewImport"] = 1] = "ForceNewImport";
27
- /**
28
- * Don't make use of any aliasing information when emitting a reference.
29
- *
30
- * This is sometimes required if emitting into a context where generated references will be fed
31
- * into TypeScript and type-checked (such as in template type-checking).
32
- */
33
- ImportFlags[ImportFlags["NoAliasing"] = 2] = "NoAliasing";
34
- /**
35
- * Indicates that an import to a type-only declaration is allowed.
36
- *
37
- * For references that occur in type-positions, the referred declaration may be a type-only
38
- * declaration that is not retained during emit. Including this flag allows to emit references to
39
- * type-only declarations as used in e.g. template type-checking.
40
- */
41
- ImportFlags[ImportFlags["AllowTypeImports"] = 4] = "AllowTypeImports";
42
- })(ImportFlags || (ImportFlags = {}));
43
- /**
44
- * Generates `Expression`s which refer to `Reference`s in a given context.
45
- *
46
- * A `ReferenceEmitter` uses one or more `ReferenceEmitStrategy` implementations to produce an
47
- * `Expression` which refers to a `Reference` in the context of a particular file.
48
- */
49
- export class ReferenceEmitter {
50
- constructor(strategies) {
51
- this.strategies = strategies;
52
- }
53
- emit(ref, context, importFlags = ImportFlags.None) {
54
- for (const strategy of this.strategies) {
55
- const emitted = strategy.emit(ref, context, importFlags);
56
- if (emitted !== null) {
57
- return emitted;
58
- }
59
- }
60
- throw new Error(`Unable to write a reference to ${nodeNameForError(ref.node)} in ${ref.node.getSourceFile().fileName} from ${context.fileName}`);
61
- }
62
- }
63
- /**
64
- * A `ReferenceEmitStrategy` which will refer to declarations by any local `ts.Identifier`s, if
65
- * such identifiers are available.
66
- */
67
- export class LocalIdentifierStrategy {
68
- emit(ref, context, importFlags) {
69
- const refSf = getSourceFile(ref.node);
70
- // If the emitter has specified ForceNewImport, then LocalIdentifierStrategy should not use a
71
- // local identifier at all, *except* in the source file where the node is actually declared.
72
- if (importFlags & ImportFlags.ForceNewImport && refSf !== context) {
73
- return null;
74
- }
75
- // If referenced node is not an actual TS declaration (e.g. `class Foo` or `function foo() {}`,
76
- // etc) and it is in the current file then just use it directly.
77
- // This is important because the reference could be a property access (e.g. `exports.foo`). In
78
- // such a case, the reference's `identities` property would be `[foo]`, which would result in an
79
- // invalid emission of a free-standing `foo` identifier, rather than `exports.foo`.
80
- if (!isDeclaration(ref.node) && refSf === context) {
81
- return {
82
- expression: new WrappedNodeExpr(ref.node),
83
- importedFile: null,
84
- };
85
- }
86
- // A Reference can have multiple identities in different files, so it may already have an
87
- // Identifier in the requested context file.
88
- const identifier = ref.getIdentityIn(context);
89
- if (identifier !== null) {
90
- return {
91
- expression: new WrappedNodeExpr(identifier),
92
- importedFile: null,
93
- };
94
- }
95
- else {
96
- return null;
97
- }
98
- }
99
- }
100
- /**
101
- * A `ReferenceEmitStrategy` which will refer to declarations that come from `node_modules` using
102
- * an absolute import.
103
- *
104
- * Part of this strategy involves looking at the target entry point and identifying the exported
105
- * name of the targeted declaration, as it might be different from the declared name (e.g. a
106
- * directive might be declared as FooDirImpl, but exported as FooDir). If no export can be found
107
- * which maps back to the original directive, an error is thrown.
108
- */
109
- export class AbsoluteModuleStrategy {
110
- constructor(program, checker, moduleResolver, reflectionHost) {
111
- this.program = program;
112
- this.checker = checker;
113
- this.moduleResolver = moduleResolver;
114
- this.reflectionHost = reflectionHost;
115
- /**
116
- * A cache of the exports of specific modules, because resolving a module to its exports is a
117
- * costly operation.
118
- */
119
- this.moduleExportsCache = new Map();
120
- }
121
- emit(ref, context, importFlags) {
122
- if (ref.bestGuessOwningModule === null) {
123
- // There is no module name available for this Reference, meaning it was arrived at via a
124
- // relative path.
125
- return null;
126
- }
127
- else if (!isDeclaration(ref.node)) {
128
- // It's not possible to import something which isn't a declaration.
129
- throw new Error(`Debug assert: unable to import a Reference to non-declaration of type ${ts.SyntaxKind[ref.node.kind]}.`);
130
- }
131
- else if ((importFlags & ImportFlags.AllowTypeImports) === 0 && isTypeDeclaration(ref.node)) {
132
- throw new Error(`Importing a type-only declaration of type ${ts.SyntaxKind[ref.node.kind]} in a value position is not allowed.`);
133
- }
134
- // Try to find the exported name of the declaration, if one is available.
135
- const { specifier, resolutionContext } = ref.bestGuessOwningModule;
136
- const exports = this.getExportsOfModule(specifier, resolutionContext);
137
- if (exports === null || !exports.exportMap.has(ref.node)) {
138
- // TODO(alxhub): make this error a ts.Diagnostic pointing at whatever caused this import to be
139
- // triggered.
140
- throw new Error(`Symbol ${ref.debugName} declared in ${getSourceFile(ref.node).fileName} is not exported from ${specifier} (import into ${context.fileName})`);
141
- }
142
- const symbolName = exports.exportMap.get(ref.node);
143
- return {
144
- expression: new ExternalExpr(new ExternalReference(specifier, symbolName)),
145
- importedFile: exports.module,
146
- };
147
- }
148
- getExportsOfModule(moduleName, fromFile) {
149
- if (!this.moduleExportsCache.has(moduleName)) {
150
- this.moduleExportsCache.set(moduleName, this.enumerateExportsOfModule(moduleName, fromFile));
151
- }
152
- return this.moduleExportsCache.get(moduleName);
153
- }
154
- enumerateExportsOfModule(specifier, fromFile) {
155
- // First, resolve the module specifier to its entry point, and get the ts.Symbol for it.
156
- const entryPointFile = this.moduleResolver.resolveModule(specifier, fromFile);
157
- if (entryPointFile === null) {
158
- return null;
159
- }
160
- const exports = this.reflectionHost.getExportsOfModule(entryPointFile);
161
- if (exports === null) {
162
- return null;
163
- }
164
- const exportMap = new Map();
165
- for (const [name, declaration] of exports) {
166
- if (exportMap.has(declaration.node)) {
167
- // An export for this declaration has already been registered. We prefer an export that
168
- // has the same name as the declared name, i.e. is not an aliased export. This is relevant
169
- // for partial compilations where emitted references should import symbols using a stable
170
- // name. This is particularly relevant for declarations inside VE-generated libraries, as
171
- // such libraries contain private, unstable reexports of symbols.
172
- const existingExport = exportMap.get(declaration.node);
173
- if (isNamedDeclaration(declaration.node) && declaration.node.name.text === existingExport) {
174
- continue;
175
- }
176
- }
177
- exportMap.set(declaration.node, name);
178
- }
179
- return { module: entryPointFile, exportMap };
180
- }
181
- }
182
- /**
183
- * A `ReferenceEmitStrategy` which will refer to declarations via relative paths, provided they're
184
- * both in the logical project "space" of paths.
185
- *
186
- * This is trickier than it sounds, as the two files may be in different root directories in the
187
- * project. Simply calculating a file system relative path between the two is not sufficient.
188
- * Instead, `LogicalProjectPath`s are used.
189
- */
190
- export class LogicalProjectStrategy {
191
- constructor(reflector, logicalFs) {
192
- this.reflector = reflector;
193
- this.logicalFs = logicalFs;
194
- }
195
- emit(ref, context) {
196
- const destSf = getSourceFile(ref.node);
197
- // Compute the relative path from the importing file to the file being imported. This is done
198
- // as a logical path computation, because the two files might be in different rootDirs.
199
- const destPath = this.logicalFs.logicalPathOfSf(destSf);
200
- if (destPath === null) {
201
- // The imported file is not within the logical project filesystem.
202
- return null;
203
- }
204
- const originPath = this.logicalFs.logicalPathOfSf(context);
205
- if (originPath === null) {
206
- throw new Error(`Debug assert: attempt to import from ${context.fileName} but it's outside the program?`);
207
- }
208
- // There's no way to emit a relative reference from a file to itself.
209
- if (destPath === originPath) {
210
- return null;
211
- }
212
- const name = findExportedNameOfNode(ref.node, destSf, this.reflector);
213
- if (name === null) {
214
- // The target declaration isn't exported from the file it's declared in. This is an issue!
215
- return null;
216
- }
217
- // With both files expressed as LogicalProjectPaths, getting the module specifier as a relative
218
- // path is now straightforward.
219
- const moduleName = LogicalProjectPath.relativePathBetween(originPath, destPath);
220
- return {
221
- expression: new ExternalExpr({ moduleName, name }),
222
- importedFile: destSf,
223
- };
224
- }
225
- }
226
- /**
227
- * A `ReferenceEmitStrategy` which constructs relatives paths between `ts.SourceFile`s.
228
- *
229
- * This strategy can be used if there is no `rootDir`/`rootDirs` structure for the project which
230
- * necessitates the stronger logic of `LogicalProjectStrategy`.
231
- */
232
- export class RelativePathStrategy {
233
- constructor(reflector) {
234
- this.reflector = reflector;
235
- }
236
- emit(ref, context) {
237
- const destSf = getSourceFile(ref.node);
238
- const relativePath = relative(dirname(absoluteFromSourceFile(context)), absoluteFromSourceFile(destSf));
239
- const moduleName = toRelativeImport(stripExtension(relativePath));
240
- const name = findExportedNameOfNode(ref.node, destSf, this.reflector);
241
- return { expression: new ExternalExpr({ moduleName, name }), importedFile: destSf };
242
- }
243
- }
244
- /**
245
- * A `ReferenceEmitStrategy` which uses a `UnifiedModulesHost` to generate absolute import
246
- * references.
247
- */
248
- export class UnifiedModulesStrategy {
249
- constructor(reflector, unifiedModulesHost) {
250
- this.reflector = reflector;
251
- this.unifiedModulesHost = unifiedModulesHost;
252
- }
253
- emit(ref, context) {
254
- const destSf = getSourceFile(ref.node);
255
- const name = findExportedNameOfNode(ref.node, destSf, this.reflector);
256
- if (name === null) {
257
- return null;
258
- }
259
- const moduleName = this.unifiedModulesHost.fileNameToModuleName(destSf.fileName, context.fileName);
260
- return {
261
- expression: new ExternalExpr({ moduleName, name }),
262
- importedFile: destSf,
263
- };
264
- }
265
- }
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvaW1wb3J0cy9zcmMvZW1pdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQWEsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQy9GLE9BQU8sS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBR2pDLE9BQU8sRUFBQyxzQkFBc0IsRUFBRSxPQUFPLEVBQXFCLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3JJLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUUxRCxPQUFPLEVBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRWhJLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUtyRDs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLFdBMkJYO0FBM0JELFdBQVksV0FBVztJQUNyQiw2Q0FBVyxDQUFBO0lBRVg7Ozs7O09BS0c7SUFDSCxpRUFBcUIsQ0FBQTtJQUVyQjs7Ozs7T0FLRztJQUNILHlEQUFpQixDQUFBO0lBRWpCOzs7Ozs7T0FNRztJQUNILHFFQUF1QixDQUFBO0FBQ3pCLENBQUMsRUEzQlcsV0FBVyxLQUFYLFdBQVcsUUEyQnRCO0FBMEREOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUFvQixVQUFtQztRQUFuQyxlQUFVLEdBQVYsVUFBVSxDQUF5QjtJQUFHLENBQUM7SUFFM0QsSUFBSSxDQUFDLEdBQWMsRUFBRSxPQUFzQixFQUFFLGNBQTJCLFdBQVcsQ0FBQyxJ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LEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RFLElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtZQUNqQixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsTUFBTSxVQUFVLEdBQ1osSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXBGLE9BQU87WUFDTCxVQUFVLEVBQUUsSUFBSSxZQUFZLENBQUMsRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFDLENBQUM7WUFDaEQsWUFBWSxFQUFFLE1BQU07U0FDckIsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtFeHByZXNzaW9uLCBFeHRlcm5hbEV4cHIsIEV4dGVybmFsUmVmZXJlbmNlLCBXcmFwcGVkTm9kZUV4cHJ9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge1VuaWZpZWRNb2R1bGVzSG9zdH0gZnJvbSAnLi4vLi4vY29yZS9hcGknO1xuaW1wb3J0IHthYnNvbHV0ZUZyb21Tb3VyY2VGaWxlLCBkaXJuYW1lLCBMb2dpY2FsRmlsZVN5c3RlbSwgTG9naWNhbFByb2plY3RQYXRoLCByZWxhdGl2ZSwgdG9SZWxhdGl2ZUltcG9ydH0gZnJvbSAnLi4vLi4vZmlsZV9zeXN0ZW0nO1xuaW1wb3J0IHtzdHJpcEV4dGVuc2lvbn0gZnJvbSAnLi4vLi4vZmlsZV9zeXN0ZW0vc3JjL3V0aWwnO1xuaW1wb3J0IHtEZWNsYXJhdGlvbk5vZGUsIFJlZmxlY3Rpb25Ib3N0fSBmcm9tICcuLi8uLi9yZWZsZWN0aW9uJztcbmltcG9ydCB7Z2V0U291cmNlRmlsZSwgaXNEZWNsYXJhdGlvbiwgaXNOYW1lZERlY2xhcmF0aW9uLCBpc1R5cGVEZWNsYXJhdGlvbiwgbm9kZU5hbWVGb3JFcnJvcn0gZnJvbSAnLi4vLi4vdXRpbC9zcmMvdHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7ZmluZEV4cG9ydGVkTmFtZU9mTm9kZX0gZnJvbSAnLi9maW5kX2V4cG9ydCc7XG5pbXBvcnQge1JlZmVyZW5jZX0gZnJvbSAnLi9yZWZlcmVuY2VzJztcbmltcG9ydCB7TW9kdWxlUmVzb2x2ZXJ9IGZyb20gJy4vcmVzb2x2ZXInO1xuXG5cbi8qKlxuICogRmxhZ3Mgd2hpY2ggYWx0ZXIgdGhlIGltcG9ydHMgZ2VuZXJhdGVkIGJ5IHRoZSBgUmVmZXJlbmNlRW1pdHRlcmAuXG4gKi9cbmV4cG9ydCBlbnVtIEltcG9ydEZsYWdzIHtcbiAgTm9uZSA9IDB4MDAsXG5cbiAgLyoqXG4gICAqIEZvcmNlIHRoZSBnZW5lcmF0aW9uIG9mIGEgbmV3IGltcG9ydCB3aGVuIGdlbmVyYXRpbmcgYSByZWZlcmVuY2UsIGV2ZW4gaWYgYW4gaWRlbnRpZmllciBhbHJlYWR5XG4gICAqIGV4aXN0cyBpbiB0aGUgdGFyZ2V0IGZpbGUgd2hpY2ggY291bGQgYmUgdXNlZCBpbnN0ZWFkLlxuICAgKlxuICAgKiBUaGlzIGlzIHNvbWV0aW1lcyByZXF1aXJlZCBpZiB0aGVyZSdzIGEgcmlzayBUeXBlU2NyaXB0IG1pZ2h0IHJlbW92ZSBpbXBvcnRzIGR1cmluZyBlbWl0LlxuICAgKi9cbiAgRm9yY2VOZXdJbXBvcnQgPSAweDAxLFxuXG4gIC8qKlxuICAgKiBEb24ndCBtYWtlIHVzZSBvZiBhbnkgYWxpYXNpbmcgaW5mb3JtYXRpb24gd2hlbiBlbWl0dGluZyBhIHJlZmVyZW5jZS5cbiAgICpcbiAgICogVGhpcyBpcyBzb21ldGltZXMgcmVxdWlyZWQgaWYgZW1pdHRpbmcgaW50byBhIGNvbnRleHQgd2hlcmUgZ2VuZXJhdGVkIHJlZmVyZW5jZXMgd2lsbCBiZSBmZWRcbiAgICogaW50byBUeXBlU2NyaXB0IGFuZCB0eXBlLWNoZWNrZWQgKHN1Y2ggYXMgaW4gdGVtcGxhdGUgdHlwZS1jaGVja2luZykuXG4gICAqL1xuICBOb0FsaWFzaW5nID0gMHgwMixcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgYW4gaW1wb3J0IHRvIGEgdHlwZS1vbmx5IGRlY2xhcmF0aW9uIGlzIGFsbG93ZWQuXG4gICAqXG4gICAqIEZvciByZWZlcmVuY2VzIHRoYXQgb2NjdXIgaW4gdHlwZS1wb3NpdGlvbnMsIHRoZSByZWZlcnJlZCBkZWNsYXJhdGlvbiBtYXkgYmUgYSB0eXBlLW9ubHlcbiAgICogZGVjbGFyYXRpb24gdGhhdCBpcyBub3QgcmV0YWluZWQgZHVyaW5nIGVtaXQuIEluY2x1ZGluZyB0aGlzIGZsYWcgYWxsb3dzIHRvIGVtaXQgcmVmZXJlbmNlcyB0b1xuICAgKiB0eXBlLW9ubHkgZGVjbGFyYXRpb25zIGFzIHVzZWQgaW4gZS5nLiB0ZW1wbGF0ZSB0eXBlLWNoZWNraW5nLlxuICAgKi9cbiAgQWxsb3dUeXBlSW1wb3J0cyA9IDB4MDQsXG59XG5cbi8qKlxuICogQW4gZW1pdHRlciBzdHJhdGVneSBoYXMgdGhlIGFiaWxpdHkgdG8gaW5kaWNhdGUgd2hpY2ggYHRzLlNvdXJjZUZpbGVgIGlzIGJlaW5nIGltcG9ydGVkIGJ5IHRoZVxuICogZXhwcmVzc2lvbiB0aGF0IGl0IGhhcyBnZW5lcmF0ZWQuIFRoaXMgaW5mb3JtYXRpb24gaXMgdXNlZnVsIGZvciBjb25zdW1lcnMgb2YgdGhlIGVtaXR0ZWRcbiAqIHJlZmVyZW5jZSB0aGF0IHdvdWxkIG90aGVyd2lzZSBoYXZlIHRvIHBlcmZvcm0gYSByZWxhdGl2ZWx5IGV4cGVuc2l2ZSBtb2R1bGUgcmVzb2x1dGlvbiBzdGVwLFxuICogZS5nLiBmb3IgY3ljbGljIGltcG9ydCBhbmFseXNpcy4gSW4gY2FzZXMgdGhlIGVtaXR0ZXIgaXMgdW5hYmxlIHRvIGRlZmluaXRpdmVseSBkZXRlcm1pbmUgdGhlXG4gKiBpbXBvcnRlZCBzb3VyY2UgZmlsZSBvciBhIGNvbXB1dGF0aW9uIHdvdWxkIGJlIHJlcXVpcmVkIHRvIGFjdHVhbGx5IGRldGVybWluZSB0aGUgaW1wb3J0ZWRcbiAqIHNvdXJjZSBmaWxlLCB0aGVuIGAndW5rbm93bidgIHNob3VsZCBiZSByZXR1cm5lZC4gSWYgdGhlIGdlbmVyYXRlZCBleHByZXNzaW9uIGRvZXMgbm90IHJlcHJlc2VudFxuICogYW4gaW1wb3J0IHRoZW4gYG51bGxgIHNob3VsZCBiZSB1c2VkLlxuICovXG5leHBvcnQgdHlwZSBJbXBvcnRlZEZpbGUgPSB0cy5Tb3VyY2VGaWxlfCd1bmtub3duJ3xudWxsO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGVtaXR0ZWQgZXhwcmVzc2lvbiBvZiBhIGBSZWZlcmVuY2VgIHRoYXQgaXMgdmFsaWQgaW4gdGhlIHNvdXJjZSBmaWxlIGl0IHdhc1xuICogZW1pdHRlZCBmcm9tLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVtaXR0ZWRSZWZlcmVuY2Uge1xuICAvKipcbiAgICogVGhlIGV4cHJlc3Npb24gdGhhdCByZWZlcnMgdG8gYFJlZmVyZW5jZWAuXG4gICAqL1xuICBleHByZXNzaW9uOiBFeHByZXNzaW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgYHRzLlNvdXJjZUZpbGVgIHRoYXQgaXMgaW1wb3J0ZWQgYnkgYGV4cHJlc3Npb25gLiBUaGlzIGlzIG5vdCBuZWNlc3NhcmlseSB0aGUgc291cmNlIGZpbGVcbiAgICogb2YgdGhlIGBSZWZlcmVuY2VgJ3MgZGVjbGFyYXRpb24gbm9kZSwgYXMgdGhlIHJlZmVyZW5jZSBtYXkgaGF2ZSBiZWVuIHJld3JpdHRlbiB0aHJvdWdoIGFuXG4gICAqIGFsaWFzIGV4cG9ydC4gSXQgY291bGQgYWxzbyBiZSBgbnVsbGAgaWYgYGV4cHJlc3Npb25gIGlzIGEgbG9jYWwgaWRlbnRpZmllciwgb3IgYCd1bmtub3duJ2AgaWZcbiAgICogdGhlIGV4YWN0IHNvdXJjZSBmaWxlIHRoYXQgaXMgYmVpbmcgaW1wb3J0ZWQgaXMgbm90IGtub3duIHRvIHRoZSBlbWl0dGVyLlxuICAgKi9cbiAgaW1wb3J0ZWRGaWxlOiBJbXBvcnRlZEZpbGU7XG59XG5cbi8qKlxuICogQSBwYXJ0aWN1bGFyIHN0cmF0ZWd5IGZvciBnZW5lcmF0aW5nIGFuIGV4cHJlc3Npb24gd2hpY2ggcmVmZXJzIHRvIGEgYFJlZmVyZW5jZWAuXG4gKlxuICogVGhlcmUgYXJlIG1hbnkgcG90ZW50aWFsIHdheXMgYSBnaXZlbiBgUmVmZXJlbmNlYCBjb3VsZCBiZSByZWZlcnJlZCB0byBpbiB0aGUgY29udGV4dCBvZiBhIGdpdmVuXG4gKiBmaWxlLiBBIGxvY2FsIGRlY2xhcmF0aW9uIGNvdWxkIGJlIGF2YWlsYWJsZSwgdGhlIGBSZWZlcmVuY2VgIGNvdWxkIGJlIGltcG9ydGFibGUgdmlhIGEgcmVsYXRpdmVcbiAqIGltcG9ydCB3aXRoaW4gdGhlIHByb2plY3QsIG9yIGFuIGFic29sdXRlIGltcG9ydCBpbnRvIGBub2RlX21vZHVsZXNgIG1pZ2h0IGJlIG5lY2Vzc2FyeS5cbiAqXG4gKiBEaWZmZXJlbnQgYFJlZmVyZW5jZUVtaXRTdHJhdGVneWAgaW1wbGVtZW50YXRpb25zIGltcGxlbWVudCBzcGVjaWZpYyBsb2dpYyBmb3IgZ2VuZXJhdGluZyBzdWNoXG4gKiByZWZlcmVuY2VzLiBBIHNpbmdsZSBzdHJhdGVneSAoc3VjaCBhcyB1c2luZyBhIGxvY2FsIGRlY2xhcmF0aW9uKSBtYXkgbm90IGFsd2F5cyBiZSBhYmxlIHRvXG4gKiBnZW5lcmF0ZSBhbiBleHByZXNzaW9uIGZvciBldmVyeSBgUmVmZXJlbmNlYCAoZm9yIGV4YW1wbGUsIGlmIG5vIGxvY2FsIGlkZW50aWZpZXIgaXMgYXZhaWxhYmxlKSxcbiAqIGFuZCBtYXkgcmV0dXJuIGBudWxsYCBpbiBzdWNoIGEgY2FzZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWZlcmVuY2VFbWl0U3RyYXRlZ3kge1xuICAvKipcbiAgICogRW1pdCBhbiBgRXhwcmVzc2lvbmAgd2hpY2ggcmVmZXJzIHRvIHRoZSBnaXZlbiBgUmVmZXJlbmNlYCBpbiB0aGUgY29udGV4dCBvZiBhIHBhcnRpY3VsYXJcbiAgICogc291cmNlIGZpbGUsIGlmIHBvc3NpYmxlLlxuICAgKlxuICAgKiBAcGFyYW0gcmVmIHRoZSBgUmVmZXJlbmNlYCBmb3Igd2hpY2ggdG8gZ2VuZXJhdGUgYW4gZXhwcmVzc2lvblxuICAgKiBAcGFyYW0gY29udGV4dCB0aGUgc291cmNlIGZpbGUgaW4gd2hpY2ggdGhlIGBFeHByZXNzaW9uYCBtdXN0IGJlIHZhbGlkXG4gICAqIEBwYXJhbSBpbXBvcnRGbGFncyBhIGZsYWcgd2hpY2ggY29udHJvbHMgd2hldGhlciBpbXBvcnRzIHNob3VsZCBiZSBnZW5lcmF0ZWQgb3Igbm90XG4gICAqIEByZXR1cm5zIGFuIGBFbWl0dGVkUmVmZXJlbmNlYCB3aGljaCByZWZlcnMgdG8gdGhlIGBSZWZlcmVuY2VgLCBvciBgbnVsbGAgaWYgbm9uZSBjYW4gYmVcbiAgICogICBnZW5lcmF0ZWRcbiAgICovXG4gIGVtaXQocmVmOiBSZWZlcmVuY2UsIGNvbnRleHQ6IHRzLlNvdXJjZUZpbGUsIGltcG9ydEZsYWdzOiBJbXBvcnRGbGFncyk6IEVtaXR0ZWRSZWZlcmVuY2V8bnVsbDtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgYEV4cHJlc3Npb25gcyB3aGljaCByZWZlciB0byBgUmVmZXJlbmNlYHMgaW4gYSBnaXZlbiBjb250ZXh0LlxuICpcbiAqIEEgYFJlZmVyZW5jZUVtaXR0ZXJgIHVzZXMgb25lIG9yIG1vcmUgYFJlZmVyZW5jZUVtaXRTdHJhdGVneWAgaW1wbGVtZW50YXRpb25zIHRvIHByb2R1Y2UgYW5cbiAqIGBFeHByZXNzaW9uYCB3aGljaCByZWZlcnMgdG8gYSBgUmVmZXJlbmNlYCBpbiB0aGUgY29udGV4dCBvZiBhIHBhcnRpY3VsYXIgZmlsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlZmVyZW5jZUVtaXR0ZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0cmF0ZWdpZXM6IFJlZmVyZW5jZUVtaXRTdHJhdGVneVtdKSB7fVxuXG4gIGVtaXQocmVmOiBSZWZlcmVuY2UsIGNvbnRleHQ6IHRzLlNvdXJjZUZpbGUsIGltcG9ydEZsYWdzOiBJbXBvcnRGbGFncyA9IEltcG9ydEZsYWdzLk5vbmUpOlxuICAgICAgRW1pdHRlZFJlZmVyZW5jZSB7XG4gICAgZm9yIChjb25zdCBzdHJhdGVneSBvZiB0aGlzLnN0cmF0ZWdpZXMpIHtcbiAgICAgIGNvbnN0IGVtaXR0ZWQgPSBzdHJhdGVneS5lbWl0KHJlZiwgY29udGV4dCwgaW1wb3J0RmxhZ3MpO1xuICAgICAgaWYgKGVtaXR0ZWQgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGVtaXR0ZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIHdyaXRlIGEgcmVmZXJlbmNlIHRvICR7bm9kZU5hbWVGb3JFcnJvcihyZWYubm9kZSl9IGluICR7XG4gICAgICAgIHJlZi5ub2RlLmdldFNvdXJjZUZpbGUoKS5maWxlTmFtZX0gZnJvbSAke2NvbnRleHQuZmlsZU5hbWV9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBBIGBSZWZlcmVuY2VFbWl0U3RyYXRlZ3lgIHdoaWNoIHdpbGwgcmVmZXIgdG8gZGVjbGFyYXRpb25zIGJ5IGFueSBsb2NhbCBgdHMuSWRlbnRpZmllcmBzLCBpZlxuICogc3VjaCBpZGVudGlmaWVycyBhcmUgYXZhaWxhYmxlLlxuICovXG5leHBvcnQgY2xhc3MgTG9jYWxJZGVudGlmaWVyU3RyYXRlZ3kgaW1wbGVtZW50cyBSZWZlcmVuY2VFbWl0U3RyYXRlZ3kge1xuICBlbWl0KHJlZjogUmVmZXJlbmNlLCBjb250ZXh0OiB0cy5Tb3VyY2VGaWxlLCBpbXBvcnRGbGFnczogSW1wb3J0RmxhZ3MpOiBFbWl0dGVkUmVmZXJlbmNlfG51bGwge1xuICAgIGNvbnN0IHJlZlNmID0gZ2V0U291cmNlRmlsZShyZWYubm9kZSk7XG5cbiAgICAvLyBJZiB0aGUgZW1pdHRlciBoYXMgc3BlY2lmaWVkIEZvcmNlTmV3SW1wb3J0LCB0aGVuIExvY2FsSWRlbnRpZmllclN0cmF0ZWd5IHNob3VsZCBub3QgdXNlIGFcbiAgICAvLyBsb2NhbCBpZGVudGlmaWVyIGF0IGFsbCwgKmV4Y2VwdCogaW4gdGhlIHNvdXJjZSBmaWxlIHdoZXJlIHRoZSBub2RlIGlzIGFjdHVhbGx5IGRlY2xhcmVkLlxuICAgIGlmIChpbXBvcnRGbGFncyAmIEltcG9ydEZsYWdzLkZvcmNlTmV3SW1wb3J0ICYmIHJlZlNmICE9PSBjb250ZXh0KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBJZiByZWZlcmVuY2VkIG5vZGUgaXMgbm90IGFuIGFjdHVhbCBUUyBkZWNsYXJhdGlvbiAoZS5nLiBgY2xhc3MgRm9vYCBvciBgZnVuY3Rpb24gZm9vKCkge31gLFxuICAgIC8vIGV0YykgYW5kIGl0IGlzIGluIHRoZSBjdXJyZW50IGZpbGUgdGhlbiBqdXN0IHVzZSBpdCBkaXJlY3RseS5cbiAgICAvLyBUaGlzIGlzIGltcG9ydGFudCBiZWNhdXNlIHRoZSByZWZlcmVuY2UgY291bGQgYmUgYSBwcm9wZXJ0eSBhY2Nlc3MgKGUuZy4gYGV4cG9ydHMuZm9vYCkuIEluXG4gICAgLy8gc3VjaCBhIGNhc2UsIHRoZSByZWZlcmVuY2UncyBgaWRlbnRpdGllc2AgcHJvcGVydHkgd291bGQgYmUgYFtmb29dYCwgd2hpY2ggd291bGQgcmVzdWx0IGluIGFuXG4gICAgLy8gaW52YWxpZCBlbWlzc2lvbiBvZiBhIGZyZWUtc3RhbmRpbmcgYGZvb2AgaWRlbnRpZmllciwgcmF0aGVyIHRoYW4gYGV4cG9ydHMuZm9vYC5cbiAgICBpZiAoIWlzRGVjbGFyYXRpb24ocmVmLm5vZGUpICYmIHJlZlNmID09PSBjb250ZXh0KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBleHByZXNzaW9uOiBuZXcgV3JhcHBlZE5vZGVFeHByKHJlZi5ub2RlKSxcbiAgICAgICAgaW1wb3J0ZWRGaWxlOiBudWxsLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBBIFJlZmVyZW5jZSBjYW4gaGF2ZSBtdWx0aXBsZSBpZGVudGl0aWVzIGluIGRpZmZlcmVudCBmaWxlcywgc28gaXQgbWF5IGFscmVhZHkgaGF2ZSBhblxuICAgIC8vIElkZW50aWZpZXIgaW4gdGhlIHJlcXVlc3RlZCBjb250ZXh0IGZpbGUuXG4gICAgY29uc3QgaWRlbnRpZmllciA9IHJlZi5nZXRJZGVudGl0eUluKGNvbnRleHQpO1xuICAgIGlmIChpZGVudGlmaWVyICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBleHByZXNzaW9uOiBuZXcgV3JhcHBlZE5vZGVFeHByKGlkZW50aWZpZXIpLFxuICAgICAgICBpbXBvcnRlZEZpbGU6IG51bGwsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBleHBvcnRlZCBkZWNsYXJhdGlvbnMgZnJvbSBhIG1vZHVsZSBzb3VyY2UgZmlsZS5cbiAqL1xuaW50ZXJmYWNlIE1vZHVsZUV4cG9ydHMge1xuICAvKipcbiAgICogVGhlIHNvdXJjZSBmaWxlIG9mIHRoZSBtb2R1bGUuXG4gICAqL1xuICBtb2R1bGU6IHRzLlNvdXJjZUZpbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBtYXAgb2YgZGVjbGFyYXRpb25zIHRvIHRoZWlyIGV4cG9ydGVkIG5hbWUuXG4gICAqL1xuICBleHBvcnRNYXA6IE1hcDxEZWNsYXJhdGlvbk5vZGUsIHN0cmluZz47XG59XG5cbi8qKlxuICogQSBgUmVmZXJlbmNlRW1pdFN0cmF0ZWd5YCB3aGljaCB3aWxsIHJlZmVyIHRvIGRlY2xhcmF0aW9ucyB0aGF0IGNvbWUgZnJvbSBgbm9kZV9tb2R1bGVzYCB1c2luZ1xuICogYW4gYWJzb2x1dGUgaW1wb3J0LlxuICpcbiAqIFBhcnQgb2YgdGhpcyBzdHJhdGVneSBpbnZvbHZlcyBsb29raW5nIGF0IHRoZSB0YXJnZXQgZW50cnkgcG9pbnQgYW5kIGlkZW50aWZ5aW5nIHRoZSBleHBvcnRlZFxuICogbmFtZSBvZiB0aGUgdGFyZ2V0ZWQgZGVjbGFyYXRpb24sIGFzIGl0IG1pZ2h0IGJlIGRpZmZlcmVudCBmcm9tIHRoZSBkZWNsYXJlZCBuYW1lIChlLmcuIGFcbiAqIGRpcmVjdGl2ZSBtaWdodCBiZSBkZWNsYXJlZCBhcyBGb29EaXJJbXBsLCBidXQgZXhwb3J0ZWQgYXMgRm9vRGlyKS4gSWYgbm8gZXhwb3J0IGNhbiBiZSBmb3VuZFxuICogd2hpY2ggbWFwcyBiYWNrIHRvIHRoZSBvcmlnaW5hbCBkaXJlY3RpdmUsIGFuIGVycm9yIGlzIHRocm93bi5cbiAqL1xuZXhwb3J0IGNsYXNzIEFic29sdXRlTW9kdWxlU3RyYXRlZ3kgaW1wbGVtZW50cyBSZWZlcmVuY2VFbWl0U3RyYXRlZ3kge1xuICAvKipcbiAgICogQSBjYWNoZSBvZiB0aGUgZXhwb3J0cyBvZiBzcGVjaWZpYyBtb2R1bGVzLCBiZWNhdXNlIHJlc29sdmluZyBhIG1vZHVsZSB0byBpdHMgZXhwb3J0cyBpcyBhXG4gICAqIGNvc3RseSBvcGVyYXRpb24uXG4gICAqL1xuICBwcml2YXRlIG1vZHVsZUV4cG9ydHNDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBNb2R1bGVFeHBvcnRzfG51bGw+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcm90ZWN0ZWQgcHJvZ3JhbTogdHMuUHJvZ3JhbSwgcHJvdGVjdGVkIGNoZWNrZXI6IHRzLlR5cGVDaGVja2VyLFxuICAgICAgcHJvdGVjdGVkIG1vZHVsZVJlc29sdmVyOiBNb2R1bGVSZXNvbHZlciwgcHJpdmF0ZSByZWZsZWN0aW9uSG9zdDogUmVmbGVjdGlvbkhvc3QpIHt9XG5cbiAgZW1pdChyZWY6IFJlZmVyZW5jZSwgY29udGV4dDogdHMuU291cmNlRmlsZSwgaW1wb3J0RmxhZ3M6IEltcG9ydEZsYWdzKTogRW1pdHRlZFJlZmVyZW5jZXxudWxsIHtcbiAgICBpZiAocmVmLmJlc3RHdWVzc093bmluZ01vZHVsZSA9PT0gbnVsbCkge1xuICAgICAgLy8gVGhlcmUgaXMgbm8gbW9kdWxlIG5hbWUgYXZhaWxhYmxlIGZvciB0aGlzIFJlZmVyZW5jZSwgbWVhbmluZyBpdCB3YXMgYXJyaXZlZCBhdCB2aWEgYVxuICAgICAgLy8gcmVsYXRpdmUgcGF0aC5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSBpZiAoIWlzRGVjbGFyYXRpb24ocmVmLm5vZGUpKSB7XG4gICAgICAvLyBJdCdzIG5vdCBwb3NzaWJsZSB0byBpbXBvcnQgc29tZXRoaW5nIHdoaWNoIGlzbid0IGEgZGVjbGFyYXRpb24uXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYERlYnVnIGFzc2VydDogdW5hYmxlIHRvIGltcG9ydCBhIFJlZmVyZW5jZSB0byBub24tZGVjbGFyYXRpb24gb2YgdHlwZSAke1xuICAgICAgICAgIHRzLlN5bnRheEtpbmRbcmVmLm5vZGUua2luZF19LmApO1xuICAgIH0gZWxzZSBpZiAoKGltcG9ydEZsYWdzICYgSW1wb3J0RmxhZ3MuQWxsb3dUeXBlSW1wb3J0cykgPT09IDAgJiYgaXNUeXBlRGVjbGFyYXRpb24ocmVmLm5vZGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEltcG9ydGluZyBhIHR5cGUtb25seSBkZWNsYXJhdGlvbiBvZiB0eXBlICR7XG4gICAgICAgICAgdHMuU3ludGF4S2luZFtyZWYubm9kZS5raW5kXX0gaW4gYSB2YWx1ZSBwb3NpdGlvbiBpcyBub3QgYWxsb3dlZC5gKTtcbiAgICB9XG5cbiAgICAvLyBUcnkgdG8gZmluZCB0aGUgZXhwb3J0ZWQgbmFtZSBvZiB0aGUgZGVjbGFyYXRpb24sIGlmIG9uZSBpcyBhdmFpbGFibGUuXG4gICAgY29uc3Qge3NwZWNpZmllciwgcmVzb2x1dGlvbkNvbnRleHR9ID0gcmVmLmJlc3RHdWVzc093bmluZ01vZHVsZTtcbiAgICBjb25zdCBleHBvcnRzID0gdGhpcy5nZXRFeHBvcnRzT2ZNb2R1bGUoc3BlY2lmaWVyLCByZXNvbHV0aW9uQ29udGV4dCk7XG4gICAgaWYgKGV4cG9ydHMgPT09IG51bGwgfHwgIWV4cG9ydHMuZXhwb3J0TWFwLmhhcyhyZWYubm9kZSkpIHtcbiAgICAgIC8vIFRPRE8oYWx4aHViKTogbWFrZSB0aGlzIGVycm9yIGEgdHMuRGlhZ25vc3RpYyBwb2ludGluZyBhdCB3aGF0ZXZlciBjYXVzZWQgdGhpcyBpbXBvcnQgdG8gYmVcbiAgICAgIC8vIHRyaWdnZXJlZC5cbiAgICAgIHRocm93IG5ldyBFcnJvcihgU3ltYm9sICR7cmVmLmRlYnVnTmFtZX0gZGVjbGFyZWQgaW4gJHtcbiAgICAgICAgICBnZXRTb3VyY2VGaWxlKHJlZi5ub2RlKS5maWxlTmFtZX0gaXMgbm90IGV4cG9ydGVkIGZyb20gJHtzcGVjaWZpZXJ9IChpbXBvcnQgaW50byAke1xuICAgICAgICAgIGNvbnRleHQuZmlsZU5hbWV9KWApO1xuICAgIH1cbiAgICBjb25zdCBzeW1ib2xOYW1lID0gZXhwb3J0cy5leHBvcnRNYXAuZ2V0KHJlZi5ub2RlKSE7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZXhwcmVzc2lvbjogbmV3IEV4dGVybmFsRXhwcihuZXcgRXh0ZXJuYWxSZWZlcmVuY2Uoc3BlY2lmaWVyLCBzeW1ib2xOYW1lKSksXG4gICAgICBpbXBvcnRlZEZpbGU6IGV4cG9ydHMubW9kdWxlLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldEV4cG9ydHNPZk1vZHVsZShtb2R1bGVOYW1lOiBzdHJpbmcsIGZyb21GaWxlOiBzdHJpbmcpOiBNb2R1bGVFeHBvcnRzfG51bGwge1xuICAgIGlmICghdGhpcy5tb2R1bGVFeHBvcnRzQ2FjaGUuaGFzKG1vZHVsZU5hbWUpKSB7XG4gICAgICB0aGlzLm1vZHVsZUV4cG9ydHNDYWNoZS5zZXQobW9kdWxlTmFtZSwgdGhpcy5lbnVtZXJhdGVFeHBvcnRzT2ZNb2R1bGUobW9kdWxlTmFtZSwgZnJvbUZpbGUpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubW9kdWxlRXhwb3J0c0NhY2hlLmdldChtb2R1bGVOYW1lKSE7XG4gIH1cblxuICBwcm90ZWN0ZWQgZW51bWVyYXRlRXhwb3J0c09mTW9kdWxlKHNwZWNpZmllcjogc3RyaW5nLCBmcm9tRmlsZTogc3RyaW5nKTogTW9kdWxlRXhwb3J0c3xudWxsIHtcbiAgICAvLyBGaXJzdCwgcmVzb2x2ZSB0aGUgbW9kdWxlIHNwZWNpZmllciB0byBpdHMgZW50cnkgcG9pbnQsIGFuZCBnZXQgdGhlIHRzLlN5bWJvbCBmb3IgaXQuXG4gICAgY29uc3QgZW50cnlQb2ludEZpbGUgPSB0aGlzLm1vZHVsZVJlc29sdmVyLnJlc29sdmVNb2R1bGUoc3BlY2lmaWVyLCBmcm9tRmlsZSk7XG4gICAgaWYgKGVudHJ5UG9pbnRGaWxlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBleHBvcnRzID0gdGhpcy5yZWZsZWN0aW9uSG9zdC5nZXRFeHBvcnRzT2ZNb2R1bGUoZW50cnlQb2ludEZpbGUpO1xuICAgIGlmIChleHBvcnRzID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgZXhwb3J0TWFwID0gbmV3IE1hcDxEZWNsYXJhdGlvbk5vZGUsIHN0cmluZz4oKTtcbiAgICBmb3IgKGNvbnN0IFtuYW1lLCBkZWNsYXJhdGlvbl0gb2YgZXhwb3J0cykge1xuICAgICAgaWYgKGV4cG9ydE1hcC5oYXMoZGVjbGFyYXRpb24ubm9kZSkpIHtcbiAgICAgICAgLy8gQW4gZXhwb3J0IGZvciB0aGlzIGRlY2xhcmF0aW9uIGhhcyBhbHJlYWR5IGJlZW4gcmVnaXN0ZXJlZC4gV2UgcHJlZmVyIGFuIGV4cG9ydCB0aGF0XG4gICAgICAgIC8vIGhhcyB0aGUgc2FtZSBuYW1lIGFzIHRoZSBkZWNsYXJlZCBuYW1lLCBpLmUuIGlzIG5vdCBhbiBhbGlhc2VkIGV4cG9ydC4gVGhpcyBpcyByZWxldmFudFxuICAgICAgICAvLyBmb3IgcGFydGlhbCBjb21waWxhdGlvbnMgd2hlcmUgZW1pdHRlZCByZWZlcmVuY2VzIHNob3VsZCBpbXBvcnQgc3ltYm9scyB1c2luZyBhIHN0YWJsZVxuICAgICAgICAvLyBuYW1lLiBUaGlzIGlzIHBhcnRpY3VsYXJseSByZWxldmFudCBmb3IgZGVjbGFyYXRpb25zIGluc2lkZSBWRS1nZW5lcmF0ZWQgbGlicmFyaWVzLCBhc1xuICAgICAgICAvLyBzdWNoIGxpYnJhcmllcyBjb250YWluIHByaXZhdGUsIHVuc3RhYmxlIHJlZXhwb3J0cyBvZiBzeW1ib2xzLlxuICAgICAgICBjb25zdCBleGlzdGluZ0V4cG9ydCA9IGV4cG9ydE1hcC5nZXQoZGVjbGFyYXRpb24ubm9kZSkhO1xuICAgICAgICBpZiAoaXNOYW1lZERlY2xhcmF0aW9uKGRlY2xhcmF0aW9uLm5vZGUpICYmIGRlY2xhcmF0aW9uLm5vZGUubmFtZS50ZXh0ID09PSBleGlzdGluZ0V4cG9ydCkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBleHBvcnRNYXAuc2V0KGRlY2xhcmF0aW9uLm5vZGUsIG5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4ge21vZHVsZTogZW50cnlQb2ludEZpbGUsIGV4cG9ydE1hcH07XG4gIH1cbn1cblxuLyoqXG4gKiBBIGBSZWZlcmVuY2VFbWl0U3RyYXRlZ3lgIHdoaWNoIHdpbGwgcmVmZXIgdG8gZGVjbGFyYXRpb25zIHZpYSByZWxhdGl2ZSBwYXRocywgcHJvdmlkZWQgdGhleSdyZVxuICogYm90aCBpbiB0aGUgbG9naWNhbCBwcm9qZWN0IFwic3BhY2VcIiBvZiBwYXRocy5cbiAqXG4gKiBUaGlzIGlzIHRyaWNraWVyIHRoYW4gaXQgc291bmRzLCBhcyB0aGUgdHdvIGZpbGVzIG1heSBiZSBpbiBkaWZmZXJlbnQgcm9vdCBkaXJlY3RvcmllcyBpbiB0aGVcbiAqIHByb2plY3QuIFNpbXBseSBjYWxjdWxhdGluZyBhIGZpbGUgc3lzdGVtIHJlbGF0aXZlIHBhdGggYmV0d2VlbiB0aGUgdHdvIGlzIG5vdCBzdWZmaWNpZW50LlxuICogSW5zdGVhZCwgYExvZ2ljYWxQcm9qZWN0UGF0aGBzIGFyZSB1c2VkLlxuICovXG5leHBvcnQgY2xhc3MgTG9naWNhbFByb2plY3RTdHJhdGVneSBpbXBsZW1lbnRzIFJlZmVyZW5jZUVtaXRTdHJhdGVneSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmbGVjdG9yOiBSZWZsZWN0aW9uSG9zdCwgcHJpdmF0ZSBsb2dpY2FsRnM6IExvZ2ljYWxGaWxlU3lzdGVtKSB7fVxuXG4gIGVtaXQocmVmOiBSZWZlcmVuY2UsIGNvbnRleHQ6IHRzLlNvdXJjZUZpbGUpOiBFbWl0dGVkUmVmZXJlbmNlfG51bGwge1xuICAgIGNvbnN0IGRlc3RTZiA9IGdldFNvdXJjZUZpbGUocmVmLm5vZGUpO1xuXG4gICAgLy8gQ29tcHV0ZSB0aGUgcmVsYXRpdmUgcGF0aCBmcm9tIHRoZSBpbXBvcnRpbmcgZmlsZSB0byB0aGUgZmlsZSBiZWluZyBpbXBvcnRlZC4gVGhpcyBpcyBkb25lXG4gICAgLy8gYXMgYSBsb2dpY2FsIHBhdGggY29tcHV0YXRpb24sIGJlY2F1c2UgdGhlIHR3byBmaWxlcyBtaWdodCBiZSBpbiBkaWZmZXJlbnQgcm9vdERpcnMuXG4gICAgY29uc3QgZGVzdFBhdGggPSB0aGlzLmxvZ2ljYWxGcy5sb2dpY2FsUGF0aE9mU2YoZGVzdFNmKTtcbiAgICBpZiAoZGVzdFBhdGggPT09IG51bGwpIHtcbiAgICAgIC8vIFRoZSBpbXBvcnRlZCBmaWxlIGlzIG5vdCB3aXRoaW4gdGhlIGxvZ2ljYWwgcHJvamVjdCBmaWxlc3lzdGVtLlxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3Qgb3JpZ2luUGF0aCA9IHRoaXMubG9naWNhbEZzLmxvZ2ljYWxQYXRoT2ZTZihjb250ZXh0KTtcbiAgICBpZiAob3JpZ2luUGF0aCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBEZWJ1ZyBhc3NlcnQ6IGF0dGVtcHQgdG8gaW1wb3J0IGZyb20gJHtjb250ZXh0LmZpbGVOYW1lfSBidXQgaXQncyBvdXRzaWRlIHRoZSBwcm9ncmFtP2ApO1xuICAgIH1cblxuICAgIC8vIFRoZXJlJ3Mgbm8gd2F5IHRvIGVtaXQgYSByZWxhdGl2ZSByZWZlcmVuY2UgZnJvbSBhIGZpbGUgdG8gaXRzZWxmLlxuICAgIGlmIChkZXN0UGF0aCA9PT0gb3JpZ2luUGF0aCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgbmFtZSA9IGZpbmRFeHBvcnRlZE5hbWVPZk5vZGUocmVmLm5vZGUsIGRlc3RTZiwgdGhpcy5yZWZsZWN0b3IpO1xuICAgIGlmIChuYW1lID09PSBudWxsKSB7XG4gICAgICAvLyBUaGUgdGFyZ2V0IGRlY2xhcmF0aW9uIGlzbid0IGV4cG9ydGVkIGZyb20gdGhlIGZpbGUgaXQncyBkZWNsYXJlZCBpbi4gVGhpcyBpcyBhbiBpc3N1ZSFcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIFdpdGggYm90aCBmaWxlcyBleHByZXNzZWQgYXMgTG9naWNhbFByb2plY3RQYXRocywgZ2V0dGluZyB0aGUgbW9kdWxlIHNwZWNpZmllciBhcyBhIHJlbGF0aXZlXG4gICAgLy8gcGF0aCBpcyBub3cgc3RyYWlnaHRmb3J3YXJkLlxuICAgIGNvbnN0IG1vZHVsZU5hbWUgPSBMb2dpY2FsUHJvamVjdFBhdGgucmVsYXRpdmVQYXRoQmV0d2VlbihvcmlnaW5QYXRoLCBkZXN0UGF0aCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGV4cHJlc3Npb246IG5ldyBFeHRlcm5hbEV4cHIoe21vZHVsZU5hbWUsIG5hbWV9KSxcbiAgICAgIGltcG9ydGVkRmlsZTogZGVzdFNmLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBBIGBSZWZlcmVuY2VFbWl0U3RyYXRlZ3lgIHdoaWNoIGNvbnN0cnVjdHMgcmVsYXRpdmVzIHBhdGhzIGJldHdlZW4gYHRzLlNvdXJjZUZpbGVgcy5cbiAqXG4gKiBUaGlzIHN0cmF0ZWd5IGNhbiBiZSB1c2VkIGlmIHRoZXJlIGlzIG5vIGByb290RGlyYC9gcm9vdERpcnNgIHN0cnVjdHVyZSBmb3IgdGhlIHByb2plY3Qgd2hpY2hcbiAqIG5lY2Vzc2l0YXRlcyB0aGUgc3Ryb25nZXIgbG9naWMgb2YgYExvZ2ljYWxQcm9qZWN0U3RyYXRlZ3lgLlxuICovXG5leHBvcnQgY2xhc3MgUmVsYXRpdmVQYXRoU3RyYXRlZ3kgaW1wbGVtZW50cyBSZWZlcmVuY2VFbWl0U3RyYXRlZ3kge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZmxlY3RvcjogUmVmbGVjdGlvbkhvc3QpIHt9XG5cbiAgZW1pdChyZWY6IFJlZmVyZW5jZSwgY29udGV4dDogdHMuU291cmNlRmlsZSk6IEVtaXR0ZWRSZWZlcmVuY2V8bnVsbCB7XG4gICAgY29uc3QgZGVzdFNmID0gZ2V0U291cmNlRmlsZShyZWYubm9kZSk7XG4gICAgY29uc3QgcmVsYXRpdmVQYXRoID1cbiAgICAgICAgcmVsYXRpdmUoZGlybmFtZShhYnNvbHV0ZUZyb21Tb3VyY2VGaWxlKGNvbnRleHQpKSwgYWJzb2x1dGVGcm9tU291cmNlRmlsZShkZXN0U2YpKTtcbiAgICBjb25zdCBtb2R1bGVOYW1lID0gdG9SZWxhdGl2ZUltcG9ydChzdHJpcEV4dGVuc2lvbihyZWxhdGl2ZVBhdGgpKTtcblxuICAgIGNvbnN0IG5hbWUgPSBmaW5kRXhwb3J0ZWROYW1lT2ZOb2RlKHJlZi5ub2RlLCBkZXN0U2YsIHRoaXMucmVmbGVjdG9yKTtcbiAgICByZXR1cm4ge2V4cHJlc3Npb246IG5ldyBFeHRlcm5hbEV4cHIoe21vZHVsZU5hbWUsIG5hbWV9KSwgaW1wb3J0ZWRGaWxlOiBkZXN0U2Z9O1xuICB9XG59XG5cbi8qKlxuICogQSBgUmVmZXJlbmNlRW1pdFN0cmF0ZWd5YCB3aGljaCB1c2VzIGEgYFVuaWZpZWRNb2R1bGVzSG9zdGAgdG8gZ2VuZXJhdGUgYWJzb2x1dGUgaW1wb3J0XG4gKiByZWZlcmVuY2VzLlxuICovXG5leHBvcnQgY2xhc3MgVW5pZmllZE1vZHVsZXNTdHJhdGVneSBpbXBsZW1lbnRzIFJlZmVyZW5jZUVtaXRTdHJhdGVneSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmbGVjdG9yOiBSZWZsZWN0aW9uSG9zdCwgcHJpdmF0ZSB1bmlmaWVkTW9kdWxlc0hvc3Q6IFVuaWZpZWRNb2R1bGVzSG9zdCkge31cblxuICBlbWl0KHJlZjogUmVmZXJlbmNlLCBjb250ZXh0OiB0cy5Tb3VyY2VGaWxlKTogRW1pdHRlZFJlZmVyZW5jZXxudWxsIHtcbiAgICBjb25zdCBkZXN0U2YgPSBnZXRTb3VyY2VGaWxlKHJlZi5ub2RlKTtcbiAgICBjb25zdCBuYW1lID0gZmluZEV4cG9ydGVkTmFtZU9mTm9kZShyZWYubm9kZSwgZGVzdFNmLCB0aGlzLnJlZmxlY3Rvcik7XG4gICAgaWYgKG5hbWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IG1vZHVsZU5hbWUgPVxuICAgICAgICB0aGlzLnVuaWZpZWRNb2R1bGVzSG9zdC5maWxlTmFtZVRvTW9kdWxlTmFtZShkZXN0U2YuZmlsZU5hbWUsIGNvbnRleHQuZmlsZU5hbWUpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGV4cHJlc3Npb246IG5ldyBFeHRlcm5hbEV4cHIoe21vZHVsZU5hbWUsIG5hbWV9KSxcbiAgICAgIGltcG9ydGVkRmlsZTogZGVzdFNmLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -1,56 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import * as ts from 'typescript';
9
- import { isNamedDeclaration } from '../../util/src/typescript';
10
- /**
11
- * Find the name, if any, by which a node is exported from a given file.
12
- */
13
- export function findExportedNameOfNode(target, file, reflector) {
14
- const exports = reflector.getExportsOfModule(file);
15
- if (exports === null) {
16
- return null;
17
- }
18
- const declaredName = isNamedDeclaration(target) ? target.name.text : null;
19
- // Look for the export which declares the node.
20
- let foundExportName = null;
21
- for (const [exportName, declaration] of exports) {
22
- if (declaration.node !== target) {
23
- continue;
24
- }
25
- if (exportName === declaredName) {
26
- // A non-alias export exists which is always preferred, so use that one.
27
- return exportName;
28
- }
29
- foundExportName = exportName;
30
- }
31
- if (foundExportName === null) {
32
- throw new Error(`Failed to find exported name of node (${target.getText()}) in '${file.fileName}'.`);
33
- }
34
- return foundExportName;
35
- }
36
- /**
37
- * Check whether a given `ts.Symbol` represents a declaration of a given node.
38
- *
39
- * This is not quite as trivial as just checking the declarations, as some nodes are
40
- * `ts.ExportSpecifier`s and need to be unwrapped.
41
- */
42
- function symbolDeclaresNode(sym, node, checker) {
43
- if (sym.declarations === undefined) {
44
- return false;
45
- }
46
- return sym.declarations.some(decl => {
47
- if (ts.isExportSpecifier(decl)) {
48
- const exportedSymbol = checker.getExportSpecifierLocalTargetSymbol(decl);
49
- if (exportedSymbol !== undefined) {
50
- return symbolDeclaresNode(exportedSymbol, node, checker);
51
- }
52
- }
53
- return decl === node;
54
- });
55
- }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZF9leHBvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL2ltcG9ydHMvc3JjL2ZpbmRfZXhwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWpDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRTdEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQixDQUNsQyxNQUFlLEVBQUUsSUFBbUIsRUFBRSxTQUF5QjtJQUNqRSxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkQsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFO1FBQ3BCLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUUxRSwrQ0FBK0M7SUFDL0MsSUFBSSxlQUFlLEdBQWdCLElBQUksQ0FBQztJQUN4QyxLQUFLLE1BQU0sQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLElBQUksT0FBTyxFQUFFO1FBQy9DLElBQUksV0FBVyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7WUFDL0IsU0FBUztTQUNWO1FBRUQsSUFBSSxVQUFVLEtBQUssWUFBWSxFQUFFO1lBQy9CLHdFQUF3RTtZQUN4RSxPQUFPLFVBQVUsQ0FBQztTQUNuQjtRQUVELGVBQWUsR0FBRyxVQUFVLENBQUM7S0FDOUI7SUFFRCxJQUFJLGVBQWUsS0FBSyxJQUFJLEVBQUU7UUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FDWCx5Q0FBeUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxTQUFTLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO0tBQzFGO0lBQ0QsT0FBTyxlQUFlLENBQUM7QUFDekIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FBQyxHQUFjLEVBQUUsSUFBYSxFQUFFLE9BQXVCO0lBQ2hGLElBQUksR0FBRyxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUU7UUFDbEMsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELE9BQU8sR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDbEMsSUFBSSxFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDOUIsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLG1DQUFtQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pFLElBQUksY0FBYyxLQUFLLFNBQVMsRUFBRTtnQkFDaEMsT0FBTyxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2FBQzFEO1NBQ0Y7UUFDRCxPQUFPLElBQUksS0FBSyxJQUFJLENBQUM7SUFDdkIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtSZWZsZWN0aW9uSG9zdH0gZnJvbSAnLi4vLi4vcmVmbGVjdGlvbic7XG5pbXBvcnQge2lzTmFtZWREZWNsYXJhdGlvbn0gZnJvbSAnLi4vLi4vdXRpbC9zcmMvdHlwZXNjcmlwdCc7XG5cbi8qKlxuICogRmluZCB0aGUgbmFtZSwgaWYgYW55LCBieSB3aGljaCBhIG5vZGUgaXMgZXhwb3J0ZWQgZnJvbSBhIGdpdmVuIGZpbGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kRXhwb3J0ZWROYW1lT2ZOb2RlKFxuICAgIHRhcmdldDogdHMuTm9kZSwgZmlsZTogdHMuU291cmNlRmlsZSwgcmVmbGVjdG9yOiBSZWZsZWN0aW9uSG9zdCk6IHN0cmluZ3xudWxsIHtcbiAgY29uc3QgZXhwb3J0cyA9IHJlZmxlY3Rvci5nZXRFeHBvcnRzT2ZNb2R1bGUoZmlsZSk7XG4gIGlmIChleHBvcnRzID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBkZWNsYXJlZE5hbWUgPSBpc05hbWVkRGVjbGFyYXRpb24odGFyZ2V0KSA/IHRhcmdldC5uYW1lLnRleHQgOiBudWxsO1xuXG4gIC8vIExvb2sgZm9yIHRoZSBleHBvcnQgd2hpY2ggZGVjbGFyZXMgdGhlIG5vZGUuXG4gIGxldCBmb3VuZEV4cG9ydE5hbWU6IHN0cmluZ3xudWxsID0gbnVsbDtcbiAgZm9yIChjb25zdCBbZXhwb3J0TmFtZSwgZGVjbGFyYXRpb25dIG9mIGV4cG9ydHMpIHtcbiAgICBpZiAoZGVjbGFyYXRpb24ubm9kZSAhPT0gdGFyZ2V0KSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoZXhwb3J0TmFtZSA9PT0gZGVjbGFyZWROYW1lKSB7XG4gICAgICAvLyBBIG5vbi1hbGlhcyBleHBvcnQgZXhpc3RzIHdoaWNoIGlzIGFsd2F5cyBwcmVmZXJyZWQsIHNvIHVzZSB0aGF0IG9uZS5cbiAgICAgIHJldHVybiBleHBvcnROYW1lO1xuICAgIH1cblxuICAgIGZvdW5kRXhwb3J0TmFtZSA9IGV4cG9ydE5hbWU7XG4gIH1cblxuICBpZiAoZm91bmRFeHBvcnROYW1lID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgRmFpbGVkIHRvIGZpbmQgZXhwb3J0ZWQgbmFtZSBvZiBub2RlICgke3RhcmdldC5nZXRUZXh0KCl9KSBpbiAnJHtmaWxlLmZpbGVOYW1lfScuYCk7XG4gIH1cbiAgcmV0dXJuIGZvdW5kRXhwb3J0TmFtZTtcbn1cblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIGEgZ2l2ZW4gYHRzLlN5bWJvbGAgcmVwcmVzZW50cyBhIGRlY2xhcmF0aW9uIG9mIGEgZ2l2ZW4gbm9kZS5cbiAqXG4gKiBUaGlzIGlzIG5vdCBxdWl0ZSBhcyB0cml2aWFsIGFzIGp1c3QgY2hlY2tpbmcgdGhlIGRlY2xhcmF0aW9ucywgYXMgc29tZSBub2RlcyBhcmVcbiAqIGB0cy5FeHBvcnRTcGVjaWZpZXJgcyBhbmQgbmVlZCB0byBiZSB1bndyYXBwZWQuXG4gKi9cbmZ1bmN0aW9uIHN5bWJvbERlY2xhcmVzTm9kZShzeW06IHRzLlN5bWJvbCwgbm9kZTogdHMuTm9kZSwgY2hlY2tlcjogdHMuVHlwZUNoZWNrZXIpOiBib29sZWFuIHtcbiAgaWYgKHN5bS5kZWNsYXJhdGlvbnMgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBzeW0uZGVjbGFyYXRpb25zLnNvbWUoZGVjbCA9PiB7XG4gICAgaWYgKHRzLmlzRXhwb3J0U3BlY2lmaWVyKGRlY2wpKSB7XG4gICAgICBjb25zdCBleHBvcnRlZFN5bWJvbCA9IGNoZWNrZXIuZ2V0RXhwb3J0U3BlY2lmaWVyTG9jYWxUYXJnZXRTeW1ib2woZGVjbCk7XG4gICAgICBpZiAoZXhwb3J0ZWRTeW1ib2wgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gc3ltYm9sRGVjbGFyZXNOb2RlKGV4cG9ydGVkU3ltYm9sLCBub2RlLCBjaGVja2VyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGRlY2wgPT09IG5vZGU7XG4gIH0pO1xufVxuIl19
@@ -1,9 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- export {};
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVleHBvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL2ltcG9ydHMvc3JjL3JlZXhwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlZXhwb3J0IHtcbiAgc3ltYm9sTmFtZTogc3RyaW5nO1xuICBhc0FsaWFzOiBzdHJpbmc7XG4gIGZyb21Nb2R1bGU6IHN0cmluZztcbn1cbiJdfQ==
@@ -1,137 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import { identifierOfNode } from '../../util/src/typescript';
9
- /**
10
- * A `ts.Node` plus the context in which it was discovered.
11
- *
12
- * A `Reference` is a pointer to a `ts.Node` that was extracted from the program somehow. It
13
- * contains not only the node itself, but the information regarding how the node was located. In
14
- * particular, it might track different identifiers by which the node is exposed, as well as
15
- * potentially a module specifier which might expose the node.
16
- *
17
- * The Angular compiler uses `Reference`s instead of `ts.Node`s when tracking classes or generating
18
- * imports.
19
- */
20
- export class Reference {
21
- constructor(node, bestGuessOwningModule = null) {
22
- this.node = node;
23
- this.identifiers = [];
24
- /**
25
- * Indicates that the Reference was created synthetically, not as a result of natural value
26
- * resolution.
27
- *
28
- * This is used to avoid misinterpreting the Reference in certain contexts.
29
- */
30
- this.synthetic = false;
31
- this._alias = null;
32
- this.bestGuessOwningModule = bestGuessOwningModule;
33
- const id = identifierOfNode(node);
34
- if (id !== null) {
35
- this.identifiers.push(id);
36
- }
37
- }
38
- /**
39
- * The best guess at which module specifier owns this particular reference, or `null` if there
40
- * isn't one.
41
- */
42
- get ownedByModuleGuess() {
43
- if (this.bestGuessOwningModule !== null) {
44
- return this.bestGuessOwningModule.specifier;
45
- }
46
- else {
47
- return null;
48
- }
49
- }
50
- /**
51
- * Whether this reference has a potential owning module or not.
52
- *
53
- * See `bestGuessOwningModule`.
54
- */
55
- get hasOwningModuleGuess() {
56
- return this.bestGuessOwningModule !== null;
57
- }
58
- /**
59
- * A name for the node, if one is available.
60
- *
61
- * This is only suited for debugging. Any actual references to this node should be made with
62
- * `ts.Identifier`s (see `getIdentityIn`).
63
- */
64
- get debugName() {
65
- const id = identifierOfNode(this.node);
66
- return id !== null ? id.text : null;
67
- }
68
- get alias() {
69
- return this._alias;
70
- }
71
- /**
72
- * Record a `ts.Identifier` by which it's valid to refer to this node, within the context of this
73
- * `Reference`.
74
- */
75
- addIdentifier(identifier) {
76
- this.identifiers.push(identifier);
77
- }
78
- /**
79
- * Get a `ts.Identifier` within this `Reference` that can be used to refer within the context of a
80
- * given `ts.SourceFile`, if any.
81
- */
82
- getIdentityIn(context) {
83
- return this.identifiers.find(id => id.getSourceFile() === context) || null;
84
- }
85
- /**
86
- * Get a `ts.Identifier` for this `Reference` that exists within the given expression.
87
- *
88
- * This is very useful for producing `ts.Diagnostic`s that reference `Reference`s that were
89
- * extracted from some larger expression, as it can be used to pinpoint the `ts.Identifier` within
90
- * the expression from which the `Reference` originated.
91
- */
92
- getIdentityInExpression(expr) {
93
- const sf = expr.getSourceFile();
94
- return this.identifiers.find(id => {
95
- if (id.getSourceFile() !== sf) {
96
- return false;
97
- }
98
- // This identifier is a match if its position lies within the given expression.
99
- return id.pos >= expr.pos && id.end <= expr.end;
100
- }) ||
101
- null;
102
- }
103
- /**
104
- * Given the 'container' expression from which this `Reference` was extracted, produce a
105
- * `ts.Expression` to use in a diagnostic which best indicates the position within the container
106
- * expression that generated the `Reference`.
107
- *
108
- * For example, given a `Reference` to the class 'Bar' and the containing expression:
109
- * `[Foo, Bar, Baz]`, this function would attempt to return the `ts.Identifier` for `Bar` within
110
- * the array. This could be used to produce a nice diagnostic context:
111
- *
112
- * ```text
113
- * [Foo, Bar, Baz]
114
- * ~~~
115
- * ```
116
- *
117
- * If no specific node can be found, then the `fallback` expression is used, which defaults to the
118
- * entire containing expression.
119
- */
120
- getOriginForDiagnostics(container, fallback = container) {
121
- const id = this.getIdentityInExpression(container);
122
- return id !== null ? id : fallback;
123
- }
124
- cloneWithAlias(alias) {
125
- const ref = new Reference(this.node, this.bestGuessOwningModule);
126
- ref.identifiers = [...this.identifiers];
127
- ref._alias = alias;
128
- return ref;
129
- }
130
- cloneWithNoIdentifiers() {
131
- const ref = new Reference(this.node, this.bestGuessOwningModule);
132
- ref._alias = this._alias;
133
- ref.identifiers = [];
134
- return ref;
135
- }
136
- }
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvaW1wb3J0cy9zcmMvcmVmZXJlbmNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFLSCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQU8zRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxPQUFPLFNBQVM7SUEyQnBCLFlBQXFCLElBQU8sRUFBRSx3QkFBMkMsSUFBSTtRQUF4RCxTQUFJLEdBQUosSUFBSSxDQUFHO1FBWnBCLGdCQUFXLEdBQW9CLEVBQUUsQ0FBQztRQUUxQzs7Ozs7V0FLRztRQUNILGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFVixXQUFNLEdBQW9CLElBQUksQ0FBQztRQUdyQyxJQUFJLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUM7UUFFbkQsTUFBTSxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsSUFBSSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxrQkFBa0I7UUFDcEIsSUFBSSxJQUFJLENBQUMscUJBQXFCLEtBQUssSUFBSSxFQUFFO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQztTQUM3QzthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTyxJQUFJLENBQUMscUJBQXFCLEtBQUssSUFBSSxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksU0FBUztRQUNYLE1BQU0sRUFBRSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxPQUFPLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFHRDs7O09BR0c7SUFDSCxhQUFhLENBQUMsVUFBeUI7UUFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILGFBQWEsQ0FBQyxPQUFzQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxLQUFLLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQztJQUM3RSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsdUJBQXVCLENBQUMsSUFBbUI7UUFDekMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDaEMsSUFBSSxFQUFFLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUM3QixPQUFPLEtBQUssQ0FBQzthQUNkO1lBRUQsK0VBQStFO1lBQy9FLE9BQU8sRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNsRCxDQUFDLENBQUM7WUFDRSxJQUFJLENBQUM7SUFDWCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7T0FnQkc7SUFDSCx1QkFBdUIsQ0FBQyxTQUF3QixFQUFFLFdBQTBCLFNBQVM7UUFFbkYsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25ELE9BQU8sRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDckMsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFpQjtRQUM5QixNQUFNLEdBQUcsR0FBRyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ2pFLEdBQUcsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4QyxHQUFHLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNuQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNqRSxHQUFHLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDekIsR0FBRyxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDckIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtFeHByZXNzaW9ufSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHtpZGVudGlmaWVyT2ZOb2RlfSBmcm9tICcuLi8uLi91dGlsL3NyYy90eXBlc2NyaXB0JztcblxuZXhwb3J0IGludGVyZmFjZSBPd25pbmdNb2R1bGUge1xuICBzcGVjaWZpZXI6IHN0cmluZztcbiAgcmVzb2x1dGlvbkNvbnRleHQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIGB0cy5Ob2RlYCBwbHVzIHRoZSBjb250ZXh0IGluIHdoaWNoIGl0IHdhcyBkaXNjb3ZlcmVkLlxuICpcbiAqIEEgYFJlZmVyZW5jZWAgaXMgYSBwb2ludGVyIHRvIGEgYHRzLk5vZGVgIHRoYXQgd2FzIGV4dHJhY3RlZCBmcm9tIHRoZSBwcm9ncmFtIHNvbWVob3cuIEl0XG4gKiBjb250YWlucyBub3Qgb25seSB0aGUgbm9kZSBpdHNlbGYsIGJ1dCB0aGUgaW5mb3JtYXRpb24gcmVnYXJkaW5nIGhvdyB0aGUgbm9kZSB3YXMgbG9jYXRlZC4gSW5cbiAqIHBhcnRpY3VsYXIsIGl0IG1pZ2h0IHRyYWNrIGRpZmZlcmVudCBpZGVudGlmaWVycyBieSB3aGljaCB0aGUgbm9kZSBpcyBleHBvc2VkLCBhcyB3ZWxsIGFzXG4gKiBwb3RlbnRpYWxseSBhIG1vZHVsZSBzcGVjaWZpZXIgd2hpY2ggbWlnaHQgZXhwb3NlIHRoZSBub2RlLlxuICpcbiAqIFRoZSBBbmd1bGFyIGNvbXBpbGVyIHVzZXMgYFJlZmVyZW5jZWBzIGluc3RlYWQgb2YgYHRzLk5vZGVgcyB3aGVuIHRyYWNraW5nIGNsYXNzZXMgb3IgZ2VuZXJhdGluZ1xuICogaW1wb3J0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlZmVyZW5jZTxUIGV4dGVuZHMgdHMuTm9kZSA9IHRzLk5vZGU+IHtcbiAgLyoqXG4gICAqIFRoZSBjb21waWxlcidzIGJlc3QgZ3Vlc3MgYXQgYW4gYWJzb2x1dGUgbW9kdWxlIHNwZWNpZmllciB3aGljaCBvd25zIHRoaXMgYFJlZmVyZW5jZWAuXG4gICAqXG4gICAqIFRoaXMgaXMgdXN1YWxseSBkZXRlcm1pbmVkIGJ5IHRyYWNraW5nIHRoZSBpbXBvcnQgc3RhdGVtZW50cyB3aGljaCBsZWQgdGhlIGNvbXBpbGVyIHRvIGEgZ2l2ZW5cbiAgICogbm9kZS4gSWYgYW55IG9mIHRoZXNlIGltcG9ydHMgYXJlIGFic29sdXRlLCBpdCdzIGFuIGluZGljYXRpb24gdGhhdCB0aGUgbm9kZSBiZWluZyBpbXBvcnRlZFxuICAgKiBtaWdodCBjb21lIGZyb20gdGhhdCBtb2R1bGUuXG4gICAqXG4gICAqIEl0IGlzIG5vdCBfZ3VhcmFudGVlZF8gdGhhdCB0aGUgbm9kZSBpbiBxdWVzdGlvbiBpcyBleHBvcnRlZCBmcm9tIGl0cyBgYmVzdEd1ZXNzT3duaW5nTW9kdWxlYCAtXG4gICAqIHRoYXQgaXMgbW9zdGx5IGEgY29udmVudGlvbiB0aGF0IGFwcGxpZXMgaW4gY2VydGFpbiBwYWNrYWdlIGZvcm1hdHMuXG4gICAqXG4gICAqIElmIGBiZXN0R3Vlc3NPd25pbmdNb2R1bGVgIGlzIGBudWxsYCwgdGhlbiBpdCdzIGxpa2VseSB0aGUgbm9kZSBjYW1lIGZyb20gdGhlIGN1cnJlbnQgcHJvZ3JhbS5cbiAgICovXG4gIHJlYWRvbmx5IGJlc3RHdWVzc093bmluZ01vZHVsZTogT3duaW5nTW9kdWxlfG51bGw7XG5cbiAgcHJpdmF0ZSBpZGVudGlmaWVyczogdHMuSWRlbnRpZmllcltdID0gW107XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IHRoZSBSZWZlcmVuY2Ugd2FzIGNyZWF0ZWQgc3ludGhldGljYWxseSwgbm90IGFzIGEgcmVzdWx0IG9mIG5hdHVyYWwgdmFsdWVcbiAgICogcmVzb2x1dGlvbi5cbiAgICpcbiAgICogVGhpcyBpcyB1c2VkIHRvIGF2b2lkIG1pc2ludGVycHJldGluZyB0aGUgUmVmZXJlbmNlIGluIGNlcnRhaW4gY29udGV4dHMuXG4gICAqL1xuICBzeW50aGV0aWMgPSBmYWxzZTtcblxuICBwcml2YXRlIF9hbGlhczogRXhwcmVzc2lvbnxudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBub2RlOiBULCBiZXN0R3Vlc3NPd25pbmdNb2R1bGU6IE93bmluZ01vZHVsZXxudWxsID0gbnVsbCkge1xuICAgIHRoaXMuYmVzdEd1ZXNzT3duaW5nTW9kdWxlID0gYmVzdEd1ZXNzT3duaW5nTW9kdWxlO1xuXG4gICAgY29uc3QgaWQgPSBpZGVudGlmaWVyT2ZOb2RlKG5vZGUpO1xuICAgIGlmIChpZCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5pZGVudGlmaWVycy5wdXNoKGlkKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIGJlc3QgZ3Vlc3MgYXQgd2hpY2ggbW9kdWxlIHNwZWNpZmllciBvd25zIHRoaXMgcGFydGljdWxhciByZWZlcmVuY2UsIG9yIGBudWxsYCBpZiB0aGVyZVxuICAgKiBpc24ndCBvbmUuXG4gICAqL1xuICBnZXQgb3duZWRCeU1vZHVsZUd1ZXNzKCk6IHN0cmluZ3xudWxsIHtcbiAgICBpZiAodGhpcy5iZXN0R3Vlc3NPd25pbmdNb2R1bGUgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLmJlc3RHdWVzc093bmluZ01vZHVsZS5zcGVjaWZpZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgcmVmZXJlbmNlIGhhcyBhIHBvdGVudGlhbCBvd25pbmcgbW9kdWxlIG9yIG5vdC5cbiAgICpcbiAgICogU2VlIGBiZXN0R3Vlc3NPd25pbmdNb2R1bGVgLlxuICAgKi9cbiAgZ2V0IGhhc093bmluZ01vZHVsZUd1ZXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmJlc3RHdWVzc093bmluZ01vZHVsZSAhPT0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIG5hbWUgZm9yIHRoZSBub2RlLCBpZiBvbmUgaXMgYXZhaWxhYmxlLlxuICAgKlxuICAgKiBUaGlzIGlzIG9ubHkgc3VpdGVkIGZvciBkZWJ1Z2dpbmcuIEFueSBhY3R1YWwgcmVmZXJlbmNlcyB0byB0aGlzIG5vZGUgc2hvdWxkIGJlIG1hZGUgd2l0aFxuICAgKiBgdHMuSWRlbnRpZmllcmBzIChzZWUgYGdldElkZW50aXR5SW5gKS5cbiAgICovXG4gIGdldCBkZWJ1Z05hbWUoKTogc3RyaW5nfG51bGwge1xuICAgIGNvbnN0IGlkID0gaWRlbnRpZmllck9mTm9kZSh0aGlzLm5vZGUpO1xuICAgIHJldHVybiBpZCAhPT0gbnVsbCA/IGlkLnRleHQgOiBudWxsO1xuICB9XG5cbiAgZ2V0IGFsaWFzKCk6IEV4cHJlc3Npb258bnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2FsaWFzO1xuICB9XG5cblxuICAvKipcbiAgICogUmVjb3JkIGEgYHRzLklkZW50aWZpZXJgIGJ5IHdoaWNoIGl0J3MgdmFsaWQgdG8gcmVmZXIgdG8gdGhpcyBub2RlLCB3aXRoaW4gdGhlIGNvbnRleHQgb2YgdGhpc1xuICAgKiBgUmVmZXJlbmNlYC5cbiAgICovXG4gIGFkZElkZW50aWZpZXIoaWRlbnRpZmllcjogdHMuSWRlbnRpZmllcik6IHZvaWQge1xuICAgIHRoaXMuaWRlbnRpZmllcnMucHVzaChpZGVudGlmaWVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBgdHMuSWRlbnRpZmllcmAgd2l0aGluIHRoaXMgYFJlZmVyZW5jZWAgdGhhdCBjYW4gYmUgdXNlZCB0byByZWZlciB3aXRoaW4gdGhlIGNvbnRleHQgb2YgYVxuICAgKiBnaXZlbiBgdHMuU291cmNlRmlsZWAsIGlmIGFueS5cbiAgICovXG4gIGdldElkZW50aXR5SW4oY29udGV4dDogdHMuU291cmNlRmlsZSk6IHRzLklkZW50aWZpZXJ8bnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpZmllcnMuZmluZChpZCA9PiBpZC5nZXRTb3VyY2VGaWxlKCkgPT09IGNvbnRleHQpIHx8IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgYHRzLklkZW50aWZpZXJgIGZvciB0aGlzIGBSZWZlcmVuY2VgIHRoYXQgZXhpc3RzIHdpdGhpbiB0aGUgZ2l2ZW4gZXhwcmVzc2lvbi5cbiAgICpcbiAgICogVGhpcyBpcyB2ZXJ5IHVzZWZ1bCBmb3IgcHJvZHVjaW5nIGB0cy5EaWFnbm9zdGljYHMgdGhhdCByZWZlcmVuY2UgYFJlZmVyZW5jZWBzIHRoYXQgd2VyZVxuICAgKiBleHRyYWN0ZWQgZnJvbSBzb21lIGxhcmdlciBleHByZXNzaW9uLCBhcyBpdCBjYW4gYmUgdXNlZCB0byBwaW5wb2ludCB0aGUgYHRzLklkZW50aWZpZXJgIHdpdGhpblxuICAgKiB0aGUgZXhwcmVzc2lvbiBmcm9tIHdoaWNoIHRoZSBgUmVmZXJlbmNlYCBvcmlnaW5hdGVkLlxuICAgKi9cbiAgZ2V0SWRlbnRpdHlJbkV4cHJlc3Npb24oZXhwcjogdHMuRXhwcmVzc2lvbik6IHRzLklkZW50aWZpZXJ8bnVsbCB7XG4gICAgY29uc3Qgc2YgPSBleHByLmdldFNvdXJjZUZpbGUoKTtcbiAgICByZXR1cm4gdGhpcy5pZGVudGlmaWVycy5maW5kKGlkID0+IHtcbiAgICAgIGlmIChpZC5nZXRTb3VyY2VGaWxlKCkgIT09IHNmKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgLy8gVGhpcyBpZGVudGlmaWVyIGlzIGEgbWF0Y2ggaWYgaXRzIHBvc2l0aW9uIGxpZXMgd2l0aGluIHRoZSBnaXZlbiBleHByZXNzaW9uLlxuICAgICAgcmV0dXJuIGlkLnBvcyA+PSBleHByLnBvcyAmJiBpZC5lbmQgPD0gZXhwci5lbmQ7XG4gICAgfSkgfHxcbiAgICAgICAgbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHaXZlbiB0aGUgJ2NvbnRhaW5lcicgZXhwcmVzc2lvbiBmcm9tIHdoaWNoIHRoaXMgYFJlZmVyZW5jZWAgd2FzIGV4dHJhY3RlZCwgcHJvZHVjZSBhXG4gICAqIGB0cy5FeHByZXNzaW9uYCB0byB1c2UgaW4gYSBkaWFnbm9zdGljIHdoaWNoIGJlc3QgaW5kaWNhdGVzIHRoZSBwb3NpdGlvbiB3aXRoaW4gdGhlIGNvbnRhaW5lclxuICAgKiBleHByZXNzaW9uIHRoYXQgZ2VuZXJhdGVkIHRoZSBgUmVmZXJlbmNlYC5cbiAgICpcbiAgICogRm9yIGV4YW1wbGUsIGdpdmVuIGEgYFJlZmVyZW5jZWAgdG8gdGhlIGNsYXNzICdCYXInIGFuZCB0aGUgY29udGFpbmluZyBleHByZXNzaW9uOlxuICAgKiBgW0ZvbywgQmFyLCBCYXpdYCwgdGhpcyBmdW5jdGlvbiB3b3VsZCBhdHRlbXB0IHRvIHJldHVybiB0aGUgYHRzLklkZW50aWZpZXJgIGZvciBgQmFyYCB3aXRoaW5cbiAgICogdGhlIGFycmF5LiBUaGlzIGNvdWxkIGJlIHVzZWQgdG8gcHJvZHVjZSBhIG5pY2UgZGlhZ25vc3RpYyBjb250ZXh0OlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIFtGb28sIEJhciwgQmF6XVxuICAgKiAgICAgICB+fn5cbiAgICogYGBgXG4gICAqXG4gICAqIElmIG5vIHNwZWNpZmljIG5vZGUgY2FuIGJlIGZvdW5kLCB0aGVuIHRoZSBgZmFsbGJhY2tgIGV4cHJlc3Npb24gaXMgdXNlZCwgd2hpY2ggZGVmYXVsdHMgdG8gdGhlXG4gICAqIGVudGlyZSBjb250YWluaW5nIGV4cHJlc3Npb24uXG4gICAqL1xuICBnZXRPcmlnaW5Gb3JEaWFnbm9zdGljcyhjb250YWluZXI6IHRzLkV4cHJlc3Npb24sIGZhbGxiYWNrOiB0cy5FeHByZXNzaW9uID0gY29udGFpbmVyKTpcbiAgICAgIHRzLkV4cHJlc3Npb24ge1xuICAgIGNvbnN0IGlkID0gdGhpcy5nZXRJZGVudGl0eUluRXhwcmVzc2lvbihjb250YWluZXIpO1xuICAgIHJldHVybiBpZCAhPT0gbnVsbCA/IGlkIDogZmFsbGJhY2s7XG4gIH1cblxuICBjbG9uZVdpdGhBbGlhcyhhbGlhczogRXhwcmVzc2lvbik6IFJlZmVyZW5jZTxUPiB7XG4gICAgY29uc3QgcmVmID0gbmV3IFJlZmVyZW5jZSh0aGlzLm5vZGUsIHRoaXMuYmVzdEd1ZXNzT3duaW5nTW9kdWxlKTtcbiAgICByZWYuaWRlbnRpZmllcnMgPSBbLi4udGhpcy5pZGVudGlmaWVyc107XG4gICAgcmVmLl9hbGlhcyA9IGFsaWFzO1xuICAgIHJldHVybiByZWY7XG4gIH1cblxuICBjbG9uZVdpdGhOb0lkZW50aWZpZXJzKCk6IFJlZmVyZW5jZTxUPiB7XG4gICAgY29uc3QgcmVmID0gbmV3IFJlZmVyZW5jZSh0aGlzLm5vZGUsIHRoaXMuYmVzdEd1ZXNzT3duaW5nTW9kdWxlKTtcbiAgICByZWYuX2FsaWFzID0gdGhpcy5fYWxpYXM7XG4gICAgcmVmLmlkZW50aWZpZXJzID0gW107XG4gICAgcmV0dXJuIHJlZjtcbiAgfVxufVxuIl19
@@ -1,24 +0,0 @@
1
- import { absoluteFrom } from '../../file_system';
2
- import { getSourceFileOrNull, resolveModuleName } from '../../util/src/typescript';
3
- /**
4
- * Used by `RouterEntryPointManager` and `NgModuleRouteAnalyzer` (which is in turn is used by
5
- * `NgModuleDecoratorHandler`) for resolving the module source-files references in lazy-loaded
6
- * routes (relative to the source-file containing the `NgModule` that provides the route
7
- * definitions).
8
- */
9
- export class ModuleResolver {
10
- constructor(program, compilerOptions, host, moduleResolutionCache) {
11
- this.program = program;
12
- this.compilerOptions = compilerOptions;
13
- this.host = host;
14
- this.moduleResolutionCache = moduleResolutionCache;
15
- }
16
- resolveModule(moduleName, containingFile) {
17
- const resolved = resolveModuleName(moduleName, containingFile, this.compilerOptions, this.host, this.moduleResolutionCache);
18
- if (resolved === undefined) {
19
- return null;
20
- }
21
- return getSourceFileOrNull(this.program, absoluteFrom(resolved.resolvedFileName));
22
- }
23
- }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL2ltcG9ydHMvc3JjL3Jlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUVqRjs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQ1ksT0FBbUIsRUFBVSxlQUFtQyxFQUNoRSxJQUF5RSxFQUN6RSxxQkFBb0Q7UUFGcEQsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUFVLG9CQUFlLEdBQWYsZUFBZSxDQUFvQjtRQUNoRSxTQUFJLEdBQUosSUFBSSxDQUFxRTtRQUN6RSwwQkFBcUIsR0FBckIscUJBQXFCLENBQStCO0lBQUcsQ0FBQztJQUVwRSxhQUFhLENBQUMsVUFBa0IsRUFBRSxjQUFzQjtRQUN0RCxNQUFNLFFBQVEsR0FBRyxpQkFBaUIsQ0FDOUIsVUFBVSxFQUFFLGNBQWMsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDN0YsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7SUFDcEYsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHthYnNvbHV0ZUZyb219IGZyb20gJy4uLy4uL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7Z2V0U291cmNlRmlsZU9yTnVsbCwgcmVzb2x2ZU1vZHVsZU5hbWV9IGZyb20gJy4uLy4uL3V0aWwvc3JjL3R5cGVzY3JpcHQnO1xuXG4vKipcbiAqIFVzZWQgYnkgYFJvdXRlckVudHJ5UG9pbnRNYW5hZ2VyYCBhbmQgYE5nTW9kdWxlUm91dGVBbmFseXplcmAgKHdoaWNoIGlzIGluIHR1cm4gaXMgdXNlZCBieVxuICogYE5nTW9kdWxlRGVjb3JhdG9ySGFuZGxlcmApIGZvciByZXNvbHZpbmcgdGhlIG1vZHVsZSBzb3VyY2UtZmlsZXMgcmVmZXJlbmNlcyBpbiBsYXp5LWxvYWRlZFxuICogcm91dGVzIChyZWxhdGl2ZSB0byB0aGUgc291cmNlLWZpbGUgY29udGFpbmluZyB0aGUgYE5nTW9kdWxlYCB0aGF0IHByb3ZpZGVzIHRoZSByb3V0ZVxuICogZGVmaW5pdGlvbnMpLlxuICovXG5leHBvcnQgY2xhc3MgTW9kdWxlUmVzb2x2ZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgcHJvZ3JhbTogdHMuUHJvZ3JhbSwgcHJpdmF0ZSBjb21waWxlck9wdGlvbnM6IHRzLkNvbXBpbGVyT3B0aW9ucyxcbiAgICAgIHByaXZhdGUgaG9zdDogdHMuTW9kdWxlUmVzb2x1dGlvbkhvc3QmUGljazx0cy5Db21waWxlckhvc3QsICdyZXNvbHZlTW9kdWxlTmFtZXMnPixcbiAgICAgIHByaXZhdGUgbW9kdWxlUmVzb2x1dGlvbkNhY2hlOiB0cy5Nb2R1bGVSZXNvbHV0aW9uQ2FjaGV8bnVsbCkge31cblxuICByZXNvbHZlTW9kdWxlKG1vZHVsZU5hbWU6IHN0cmluZywgY29udGFpbmluZ0ZpbGU6IHN0cmluZyk6IHRzLlNvdXJjZUZpbGV8bnVsbCB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSByZXNvbHZlTW9kdWxlTmFtZShcbiAgICAgICAgbW9kdWxlTmFtZSwgY29udGFpbmluZ0ZpbGUsIHRoaXMuY29tcGlsZXJPcHRpb25zLCB0aGlzLmhvc3QsIHRoaXMubW9kdWxlUmVzb2x1dGlvbkNhY2hlKTtcbiAgICBpZiAocmVzb2x2ZWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBnZXRTb3VyY2VGaWxlT3JOdWxsKHRoaXMucHJvZ3JhbSwgYWJzb2x1dGVGcm9tKHJlc29sdmVkLnJlc29sdmVkRmlsZU5hbWUpKTtcbiAgfVxufVxuIl19
File without changes
@@ -1,9 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- export {};
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy9pbmNyZW1lbnRhbC9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtBYnNvbHV0ZUZzUGF0aH0gZnJvbSAnLi4vZmlsZV9zeXN0ZW0nO1xuXG4vKipcbiAqIEludGVyZmFjZSBvZiB0aGUgaW5jcmVtZW50YWwgYnVpbGQgZW5naW5lLlxuICpcbiAqIGBBbmFseXNpc1RgIGlzIGEgZ2VuZXJpYyB0eXBlIHJlcHJlc2VudGluZyBhIHVuaXQgb2Ygd29yay4gVGhpcyBpcyBnZW5lcmljIHRvIGF2b2lkIGEgY3ljbGljXG4gKiBkZXBlbmRlbmN5IGJldHdlZW4gdGhlIGluY3JlbWVudGFsIGVuZ2luZSBBUEkgZGVmaW5pdGlvbiBhbmQgaXRzIGNvbnN1bWVyKHMpLlxuICogYEZpbGVUeXBlQ2hlY2tEYXRhVGAgaXMgYSBnZW5lcmljIHR5cGUgcmVwcmVzZW50aW5nIHRlbXBsYXRlIHR5cGUtY2hlY2tpbmcgZGF0YSBmb3IgYSBwYXJ0aWN1bGFyXG4gKiBpbnB1dCBmaWxlLCB3aGljaCBpcyBnZW5lcmljIGZvciB0aGUgc2FtZSByZWFzb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5jcmVtZW50YWxCdWlsZDxBbmFseXNpc1QsIEZpbGVUeXBlQ2hlY2tEYXRhVD4ge1xuICAvKipcbiAgICogUmV0cmlldmUgdGhlIHByaW9yIGFuYWx5c2lzIHdvcmssIGlmIGFueSwgZG9uZSBmb3IgdGhlIGdpdmVuIHNvdXJjZSBmaWxlLlxuICAgKi9cbiAgcHJpb3JBbmFseXNpc0ZvcihzZjogdHMuU291cmNlRmlsZSk6IEFuYWx5c2lzVFtdfG51bGw7XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIHRoZSBwcmlvciB0eXBlLWNoZWNraW5nIHdvcmssIGlmIGFueSwgdGhhdCdzIGJlZW4gZG9uZSBmb3IgdGhlIGdpdmVuIHNvdXJjZSBmaWxlLlxuICAgKi9cbiAgcHJpb3JUeXBlQ2hlY2tpbmdSZXN1bHRzRm9yKGZpbGVTZjogdHMuU291cmNlRmlsZSk6IEZpbGVUeXBlQ2hlY2tEYXRhVHxudWxsO1xuXG4gIC8qKlxuICAgKiBSZXBvcnRzIHRoYXQgdGVtcGxhdGUgdHlwZS1jaGVja2luZyBoYXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSwgd2l0aCBhIG1hcCBvZiB0eXBlLWNoZWNraW5nXG4gICAqIGRhdGEgZm9yIGVhY2ggdXNlciBmaWxlIHdoaWNoIGNhbiBiZSByZXVzZWQgaW4gYSBmdXR1cmUgaW5jcmVtZW50YWwgaXRlcmF0aW9uLlxuICAgKi9cbiAgcmVjb3JkU3VjY2Vzc2Z1bFR5cGVDaGVjayhyZXN1bHRzOiBNYXA8QWJzb2x1dGVGc1BhdGgsIEZpbGVUeXBlQ2hlY2tEYXRhVD4pOiB2b2lkO1xufVxuXG4vKipcbiAqIFRyYWNrcyBkZXBlbmRlbmNpZXMgYmV0d2VlbiBzb3VyY2UgZmlsZXMgb3IgcmVzb3VyY2VzIGluIHRoZSBhcHBsaWNhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXBlbmRlbmN5VHJhY2tlcjxUIGV4dGVuZHMge2ZpbGVOYW1lOiBzdHJpbmd9ID0gdHMuU291cmNlRmlsZT4ge1xuICAvKipcbiAgICogUmVjb3JkIHRoYXQgdGhlIGZpbGUgYGZyb21gIGRlcGVuZHMgb24gdGhlIGZpbGUgYG9uYC5cbiAgICovXG4gIGFkZERlcGVuZGVuY3koZnJvbTogVCwgb246IFQpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZWNvcmQgdGhhdCB0aGUgZmlsZSBgZnJvbWAgZGVwZW5kcyBvbiB0aGUgcmVzb3VyY2UgZmlsZSBgb25gLlxuICAgKi9cbiAgYWRkUmVzb3VyY2VEZXBlbmRlbmN5KGZyb206IFQsIG9uOiBBYnNvbHV0ZUZzUGF0aCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFJlY29yZCB0aGF0IHRoZSBnaXZlbiBmaWxlIGNvbnRhaW5zIHVucmVzb2x2YWJsZSBkZXBlbmRlbmNpZXMuXG4gICAqXG4gICAqIEluIHByYWN0aWNlLCB0aGlzIG1lYW5zIHRoYXQgdGhlIGRlcGVuZGVuY3kgZ3JhcGggY2Fubm90IHByb3ZpZGUgaW5zaWdodCBpbnRvIHRoZSBlZmZlY3RzIG9mXG4gICAqIGZ1dHVyZSBjaGFuZ2VzIG9uIHRoYXQgZmlsZS5cbiAgICovXG4gIHJlY29yZERlcGVuZGVuY3lBbmFseXNpc0ZhaWx1cmUoZmlsZTogVCk6IHZvaWQ7XG59XG4iXX0=
File without changes
@@ -1,12 +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 { IncrementalCompilation } from './src/incremental';
9
- export { NOOP_INCREMENTAL_BUILD } from './src/noop';
10
- export { IncrementalStateKind } from './src/state';
11
- export * from './src/strategy';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL2luY3JlbWVudGFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUNsRCxPQUFPLEVBQTJGLG9CQUFvQixFQUFDLE1BQU0sYUFBYSxDQUFDO0FBRTNJLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuZXhwb3J0IHtJbmNyZW1lbnRhbENvbXBpbGF0aW9ufSBmcm9tICcuL3NyYy9pbmNyZW1lbnRhbCc7XG5leHBvcnQge05PT1BfSU5DUkVNRU5UQUxfQlVJTER9IGZyb20gJy4vc3JjL25vb3AnO1xuZXhwb3J0IHtBbmFseXplZEluY3JlbWVudGFsU3RhdGUsIERlbHRhSW5jcmVtZW50YWxTdGF0ZSwgRnJlc2hJbmNyZW1lbnRhbFN0YXRlLCBJbmNyZW1lbnRhbFN0YXRlLCBJbmNyZW1lbnRhbFN0YXRlS2luZH0gZnJvbSAnLi9zcmMvc3RhdGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL3NyYy9zdHJhdGVneSc7XG4iXX0=
@@ -1,12 +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 { SemanticSymbol } from './src/api';
9
- export { SemanticDepGraph, SemanticDepGraphUpdater } from './src/graph';
10
- export { areTypeParametersEqual, extractSemanticTypeParameters } from './src/type_parameters';
11
- export { isArrayEqual, isReferenceEqual, isSetEqual, isSymbolEqual } from './src/util';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL2luY3JlbWVudGFsL3NlbWFudGljX2dyYXBoL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBb0IsY0FBYyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQzVELE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUN0RSxPQUFPLEVBQUMsc0JBQXNCLEVBQUUsNkJBQTZCLEVBQXdCLE1BQU0sdUJBQXVCLENBQUM7QUFDbkgsT0FBTyxFQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFDLE1BQU0sWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmV4cG9ydCB7U2VtYW50aWNSZWZlcmVuY2UsIFNlbWFudGljU3ltYm9sfSBmcm9tICcuL3NyYy9hcGknO1xuZXhwb3J0IHtTZW1hbnRpY0RlcEdyYXBoLCBTZW1hbnRpY0RlcEdyYXBoVXBkYXRlcn0gZnJvbSAnLi9zcmMvZ3JhcGgnO1xuZXhwb3J0IHthcmVUeXBlUGFyYW1ldGVyc0VxdWFsLCBleHRyYWN0U2VtYW50aWNUeXBlUGFyYW1ldGVycywgU2VtYW50aWNUeXBlUGFyYW1ldGVyfSBmcm9tICcuL3NyYy90eXBlX3BhcmFtZXRlcnMnO1xuZXhwb3J0IHtpc0FycmF5RXF1YWwsIGlzUmVmZXJlbmNlRXF1YWwsIGlzU2V0RXF1YWwsIGlzU3ltYm9sRXF1YWx9IGZyb20gJy4vc3JjL3V0aWwnO1xuIl19