@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,125 +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
- /// <reference types="node" />
9
- import { PerfCheckpoint, PerfEvent, PerfPhase } from './api';
10
- import { mark, timeSinceInMicros } from './clock';
11
- /**
12
- * A `PerfRecorder` that actively tracks performance statistics.
13
- */
14
- export class ActivePerfRecorder {
15
- constructor(zeroTime) {
16
- this.zeroTime = zeroTime;
17
- this.currentPhase = PerfPhase.Unaccounted;
18
- this.currentPhaseEntered = this.zeroTime;
19
- this.counters = Array(PerfEvent.LAST).fill(0);
20
- this.phaseTime = Array(PerfPhase.LAST).fill(0);
21
- this.bytes = Array(PerfCheckpoint.LAST).fill(0);
22
- // Take an initial memory snapshot before any other compilation work begins.
23
- this.memory(PerfCheckpoint.Initial);
24
- }
25
- /**
26
- * Creates an `ActivePerfRecoder` with its zero point set to the current time.
27
- */
28
- static zeroedToNow() {
29
- return new ActivePerfRecorder(mark());
30
- }
31
- reset() {
32
- this.counters = Array(PerfEvent.LAST).fill(0);
33
- this.phaseTime = Array(PerfPhase.LAST).fill(0);
34
- this.bytes = Array(PerfCheckpoint.LAST).fill(0);
35
- this.zeroTime = mark();
36
- this.currentPhase = PerfPhase.Unaccounted;
37
- this.currentPhaseEntered = this.zeroTime;
38
- }
39
- memory(after) {
40
- this.bytes[after] = process.memoryUsage().heapUsed;
41
- }
42
- phase(phase) {
43
- const previous = this.currentPhase;
44
- this.phaseTime[this.currentPhase] += timeSinceInMicros(this.currentPhaseEntered);
45
- this.currentPhase = phase;
46
- this.currentPhaseEntered = mark();
47
- return previous;
48
- }
49
- inPhase(phase, fn) {
50
- const previousPhase = this.phase(phase);
51
- try {
52
- return fn();
53
- }
54
- finally {
55
- this.phase(previousPhase);
56
- }
57
- }
58
- eventCount(counter, incrementBy = 1) {
59
- this.counters[counter] += incrementBy;
60
- }
61
- /**
62
- * Return the current performance metrics as a serializable object.
63
- */
64
- finalize() {
65
- // Track the last segment of time spent in `this.currentPhase` in the time array.
66
- this.phase(PerfPhase.Unaccounted);
67
- const results = {
68
- events: {},
69
- phases: {},
70
- memory: {},
71
- };
72
- for (let i = 0; i < this.phaseTime.length; i++) {
73
- if (this.phaseTime[i] > 0) {
74
- results.phases[PerfPhase[i]] = this.phaseTime[i];
75
- }
76
- }
77
- for (let i = 0; i < this.phaseTime.length; i++) {
78
- if (this.counters[i] > 0) {
79
- results.events[PerfEvent[i]] = this.counters[i];
80
- }
81
- }
82
- for (let i = 0; i < this.bytes.length; i++) {
83
- if (this.bytes[i] > 0) {
84
- results.memory[PerfCheckpoint[i]] = this.bytes[i];
85
- }
86
- }
87
- return results;
88
- }
89
- }
90
- /**
91
- * A `PerfRecorder` that delegates to a target `PerfRecorder` which can be updated later.
92
- *
93
- * `DelegatingPerfRecorder` is useful when a compiler class that needs a `PerfRecorder` can outlive
94
- * the current compilation. This is true for most compiler classes as resource-only changes reuse
95
- * the same `NgCompiler` for a new compilation.
96
- */
97
- export class DelegatingPerfRecorder {
98
- constructor(target) {
99
- this.target = target;
100
- }
101
- eventCount(counter, incrementBy) {
102
- this.target.eventCount(counter, incrementBy);
103
- }
104
- phase(phase) {
105
- return this.target.phase(phase);
106
- }
107
- inPhase(phase, fn) {
108
- // Note: this doesn't delegate to `this.target.inPhase` but instead is implemented manually here
109
- // to avoid adding an additional frame of noise to the stack when debugging.
110
- const previousPhase = this.target.phase(phase);
111
- try {
112
- return fn();
113
- }
114
- finally {
115
- this.target.phase(previousPhase);
116
- }
117
- }
118
- memory(after) {
119
- this.target.memory(after);
120
- }
121
- reset() {
122
- this.target.reset();
123
- }
124
- }
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL3BlcmYvc3JjL3JlY29yZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILDhCQUE4QjtBQUU5QixPQUFPLEVBQUMsY0FBYyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQWUsTUFBTSxPQUFPLENBQUM7QUFDekUsT0FBTyxFQUFTLElBQUksRUFBRSxpQkFBaUIsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQVd4RDs7R0FFRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFlN0IsWUFBNEIsUUFBZ0I7UUFBaEIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQVZwQyxpQkFBWSxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUM7UUFDckMsd0JBQW1CLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQVUxQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVoRCw0RUFBNEU7UUFDNUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQWREOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFdBQVc7UUFDaEIsT0FBTyxJQUFJLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQVdELEtBQUs7UUFDSCxJ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bnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG4vLy8gPHJlZmVyZW5jZSB0eXBlcz1cIm5vZGVcIiAvPlxuXG5pbXBvcnQge1BlcmZDaGVja3BvaW50LCBQZXJmRXZlbnQsIFBlcmZQaGFzZSwgUGVyZlJlY29yZGVyfSBmcm9tICcuL2FwaSc7XG5pbXBvcnQge0hyVGltZSwgbWFyaywgdGltZVNpbmNlSW5NaWNyb3N9IGZyb20gJy4vY2xvY2snO1xuXG4vKipcbiAqIFNlcmlhbGl6YWJsZSBwZXJmb3JtYW5jZSBkYXRhIGZvciB0aGUgY29tcGlsYXRpb24sIHVzaW5nIHN0cmluZyBuYW1lcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQZXJmUmVzdWx0cyB7XG4gIGV2ZW50czogUmVjb3JkPHN0cmluZywgbnVtYmVyPjtcbiAgcGhhc2VzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xuICBtZW1vcnk6IFJlY29yZDxzdHJpbmcsIG51bWJlcj47XG59XG5cbi8qKlxuICogQSBgUGVyZlJlY29yZGVyYCB0aGF0IGFjdGl2ZWx5IHRyYWNrcyBwZXJmb3JtYW5jZSBzdGF0aXN0aWNzLlxuICovXG5leHBvcnQgY2xhc3MgQWN0aXZlUGVyZlJlY29yZGVyIGltcGxlbWVudHMgUGVyZlJlY29yZGVyIHtcbiAgcHJpdmF0ZSBjb3VudGVyczogbnVtYmVyW107XG4gIHByaXZhdGUgcGhhc2VUaW1lOiBudW1iZXJbXTtcbiAgcHJpdmF0ZSBieXRlczogbnVtYmVyW107XG5cbiAgcHJpdmF0ZSBjdXJyZW50UGhhc2UgPSBQZXJmUGhhc2UuVW5hY2NvdW50ZWQ7XG4gIHByaXZhdGUgY3VycmVudFBoYXNlRW50ZXJlZCA9IHRoaXMuemVyb1RpbWU7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gYEFjdGl2ZVBlcmZSZWNvZGVyYCB3aXRoIGl0cyB6ZXJvIHBvaW50IHNldCB0byB0aGUgY3VycmVudCB0aW1lLlxuICAgKi9cbiAgc3RhdGljIHplcm9lZFRvTm93KCk6IEFjdGl2ZVBlcmZSZWNvcmRlciB7XG4gICAgcmV0dXJuIG5ldyBBY3RpdmVQZXJmUmVjb3JkZXIobWFyaygpKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHJpdmF0ZSB6ZXJvVGltZTogSHJUaW1lKSB7XG4gICAgdGhpcy5jb3VudGVycyA9IEFycmF5KFBlcmZFdmVudC5MQVNUKS5maWxsKDApO1xuICAgIHRoaXMucGhhc2VUaW1lID0gQXJyYXkoUGVyZlBoYXNlLkxBU1QpLmZpbGwoMCk7XG4gICAgdGhpcy5ieXRlcyA9IEFycmF5KFBlcmZDaGVja3BvaW50LkxBU1QpLmZpbGwoMCk7XG5cbiAgICAvLyBUYWtlIGFuIGluaXRpYWwgbWVtb3J5IHNuYXBzaG90IGJlZm9yZSBhbnkgb3RoZXIgY29tcGlsYXRpb24gd29yayBiZWdpbnMuXG4gICAgdGhpcy5tZW1vcnkoUGVyZkNoZWNrcG9pbnQuSW5pdGlhbCk7XG4gIH1cblxuICByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvdW50ZXJzID0gQXJyYXkoUGVyZkV2ZW50LkxBU1QpLmZpbGwoMCk7XG4gICAgdGhpcy5waGFzZVRpbWUgPSBBcnJheShQZXJmUGhhc2UuTEFTVCkuZmlsbCgwKTtcbiAgICB0aGlzLmJ5dGVzID0gQXJyYXkoUGVyZkNoZWNrcG9pbnQuTEFTVCkuZmlsbCgwKTtcbiAgICB0aGlzLnplcm9UaW1lID0gbWFyaygpO1xuICAgIHRoaXMuY3VycmVudFBoYXNlID0gUGVyZlBoYXNlLlVuYWNjb3VudGVkO1xuICAgIHRoaXMuY3VycmVudFBoYXNlRW50ZXJlZCA9IHRoaXMuemVyb1RpbWU7XG4gIH1cblxuICBtZW1vcnkoYWZ0ZXI6IFBlcmZDaGVja3BvaW50KTogdm9pZCB7XG4gICAgdGhpcy5ieXRlc1thZnRlcl0gPSBwcm9jZXNzLm1lbW9yeVVzYWdlKCkuaGVhcFVzZWQ7XG4gIH1cblxuICBwaGFzZShwaGFzZTogUGVyZlBoYXNlKTogUGVyZlBoYXNlIHtcbiAgICBjb25zdCBwcmV2aW91cyA9IHRoaXMuY3VycmVudFBoYXNlO1xuICAgIHRoaXMucGhhc2VUaW1lW3RoaXMuY3VycmVudFBoYXNlXSArPSB0aW1lU2luY2VJbk1pY3Jvcyh0aGlzLmN1cnJlbnRQaGFzZUVudGVyZWQpO1xuICAgIHRoaXMuY3VycmVudFBoYXNlID0gcGhhc2U7XG4gICAgdGhpcy5jdXJyZW50UGhhc2VFbnRlcmVkID0gbWFyaygpO1xuICAgIHJldHVybiBwcmV2aW91cztcbiAgfVxuXG4gIGluUGhhc2U8VD4ocGhhc2U6IFBlcmZQaGFzZSwgZm46ICgpID0+IFQpOiBUIHtcbiAgICBjb25zdCBwcmV2aW91c1BoYXNlID0gdGhpcy5waGFzZShwaGFzZSk7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBmbigpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLnBoYXNlKHByZXZpb3VzUGhhc2UpO1xuICAgIH1cbiAgfVxuXG4gIGV2ZW50Q291bnQoY291bnRlcjogUGVyZkV2ZW50LCBpbmNyZW1lbnRCeTogbnVtYmVyID0gMSk6IHZvaWQge1xuICAgIHRoaXMuY291bnRlcnNbY291bnRlcl0gKz0gaW5jcmVtZW50Qnk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBjdXJyZW50IHBlcmZvcm1hbmNlIG1ldHJpY3MgYXMgYSBzZXJpYWxpemFibGUgb2JqZWN0LlxuICAgKi9cbiAgZmluYWxpemUoKTogUGVyZlJlc3VsdHMge1xuICAgIC8vIFRyYWNrIHRoZSBsYXN0IHNlZ21lbnQgb2YgdGltZSBzcGVudCBpbiBgdGhpcy5jdXJyZW50UGhhc2VgIGluIHRoZSB0aW1lIGFycmF5LlxuICAgIHRoaXMucGhhc2UoUGVyZlBoYXNlLlVuYWNjb3VudGVkKTtcblxuICAgIGNvbnN0IHJlc3VsdHM6IFBlcmZSZXN1bHRzID0ge1xuICAgICAgZXZlbnRzOiB7fSxcbiAgICAgIHBoYXNlczoge30sXG4gICAgICBtZW1vcnk6IHt9LFxuICAgIH07XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucGhhc2VUaW1lLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGhpcy5waGFzZVRpbWVbaV0gPiAwKSB7XG4gICAgICAgIHJlc3VsdHMucGhhc2VzW1BlcmZQaGFzZVtpXV0gPSB0aGlzLnBoYXNlVGltZVtpXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucGhhc2VUaW1lLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGhpcy5jb3VudGVyc1tpXSA+IDApIHtcbiAgICAgICAgcmVzdWx0cy5ldmVudHNbUGVyZkV2ZW50W2ldXSA9IHRoaXMuY291bnRlcnNbaV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmJ5dGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGhpcy5ieXRlc1tpXSA+IDApIHtcbiAgICAgICAgcmVzdWx0cy5tZW1vcnlbUGVyZkNoZWNrcG9pbnRbaV1dID0gdGhpcy5ieXRlc1tpXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0cztcbiAgfVxufVxuXG4vKipcbiAqIEEgYFBlcmZSZWNvcmRlcmAgdGhhdCBkZWxlZ2F0ZXMgdG8gYSB0YXJnZXQgYFBlcmZSZWNvcmRlcmAgd2hpY2ggY2FuIGJlIHVwZGF0ZWQgbGF0ZXIuXG4gKlxuICogYERlbGVnYXRpbmdQZXJmUmVjb3JkZXJgIGlzIHVzZWZ1bCB3aGVuIGEgY29tcGlsZXIgY2xhc3MgdGhhdCBuZWVkcyBhIGBQZXJmUmVjb3JkZXJgIGNhbiBvdXRsaXZlXG4gKiB0aGUgY3VycmVudCBjb21waWxhdGlvbi4gVGhpcyBpcyB0cnVlIGZvciBtb3N0IGNvbXBpbGVyIGNsYXNzZXMgYXMgcmVzb3VyY2Utb25seSBjaGFuZ2VzIHJldXNlXG4gKiB0aGUgc2FtZSBgTmdDb21waWxlcmAgZm9yIGEgbmV3IGNvbXBpbGF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgRGVsZWdhdGluZ1BlcmZSZWNvcmRlciBpbXBsZW1lbnRzIFBlcmZSZWNvcmRlciB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0YXJnZXQ6IFBlcmZSZWNvcmRlcikge31cblxuICBldmVudENvdW50KGNvdW50ZXI6IFBlcmZFdmVudCwgaW5jcmVtZW50Qnk/OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnRhcmdldC5ldmVudENvdW50KGNvdW50ZXIsIGluY3JlbWVudEJ5KTtcbiAgfVxuXG4gIHBoYXNlKHBoYXNlOiBQZXJmUGhhc2UpOiBQZXJmUGhhc2Uge1xuICAgIHJldHVybiB0aGlzLnRhcmdldC5waGFzZShwaGFzZSk7XG4gIH1cblxuICBpblBoYXNlPFQ+KHBoYXNlOiBQZXJmUGhhc2UsIGZuOiAoKSA9PiBUKTogVCB7XG4gICAgLy8gTm90ZTogdGhpcyBkb2Vzbid0IGRlbGVnYXRlIHRvIGB0aGlzLnRhcmdldC5pblBoYXNlYCBidXQgaW5zdGVhZCBpcyBpbXBsZW1lbnRlZCBtYW51YWxseSBoZXJlXG4gICAgLy8gdG8gYXZvaWQgYWRkaW5nIGFuIGFkZGl0aW9uYWwgZnJhbWUgb2Ygbm9pc2UgdG8gdGhlIHN0YWNrIHdoZW4gZGVidWdnaW5nLlxuICAgIGNvbnN0IHByZXZpb3VzUGhhc2UgPSB0aGlzLnRhcmdldC5waGFzZShwaGFzZSk7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBmbigpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLnRhcmdldC5waGFzZShwcmV2aW91c1BoYXNlKTtcbiAgICB9XG4gIH1cblxuICBtZW1vcnkoYWZ0ZXI6IFBlcmZDaGVja3BvaW50KTogdm9pZCB7XG4gICAgdGhpcy50YXJnZXQubWVtb3J5KGFmdGVyKTtcbiAgfVxuXG4gIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMudGFyZ2V0LnJlc2V0KCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,271 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import { HtmlParser, MessageBundle } from '@angular/compiler';
9
- import * as ts from 'typescript';
10
- import * as api from '../transformers/api';
11
- import { i18nExtract } from '../transformers/i18n';
12
- import { verifySupportedTypeScriptVersion } from '../typescript_support';
13
- import { freshCompilationTicket, incrementalFromCompilerTicket, NgCompiler, NgCompilerHost } from './core';
14
- import { absoluteFrom, getFileSystem, resolve } from './file_system';
15
- import { TrackedIncrementalBuildStrategy } from './incremental';
16
- import { ActivePerfRecorder, PerfCheckpoint as PerfCheckpoint, PerfEvent, PerfPhase } from './perf';
17
- import { TsCreateProgramDriver } from './program_driver';
18
- import { retagAllTsFiles, untagAllTsFiles } from './shims';
19
- import { OptimizeFor } from './typecheck/api';
20
- /**
21
- * Entrypoint to the Angular Compiler (Ivy+) which sits behind the `api.Program` interface, allowing
22
- * it to be a drop-in replacement for the legacy View Engine compiler to tooling such as the
23
- * command-line main() function or the Angular CLI.
24
- */
25
- export class NgtscProgram {
26
- constructor(rootNames, options, delegateHost, oldProgram) {
27
- this.options = options;
28
- const perfRecorder = ActivePerfRecorder.zeroedToNow();
29
- perfRecorder.phase(PerfPhase.Setup);
30
- // First, check whether the current TS version is supported.
31
- if (!options.disableTypeScriptVersionCheck) {
32
- verifySupportedTypeScriptVersion();
33
- }
34
- this.closureCompilerEnabled = !!options.annotateForClosureCompiler;
35
- const reuseProgram = oldProgram === null || oldProgram === void 0 ? void 0 : oldProgram.compiler.getCurrentProgram();
36
- this.host = NgCompilerHost.wrap(delegateHost, rootNames, options, reuseProgram !== null && reuseProgram !== void 0 ? reuseProgram : null);
37
- if (reuseProgram !== undefined) {
38
- // Prior to reusing the old program, restore shim tagging for all its `ts.SourceFile`s.
39
- // TypeScript checks the `referencedFiles` of `ts.SourceFile`s for changes when evaluating
40
- // incremental reuse of data from the old program, so it's important that these match in order
41
- // to get the most benefit out of reuse.
42
- retagAllTsFiles(reuseProgram);
43
- }
44
- this.tsProgram = perfRecorder.inPhase(PerfPhase.TypeScriptProgramCreate, () => ts.createProgram(this.host.inputFiles, options, this.host, reuseProgram));
45
- perfRecorder.phase(PerfPhase.Unaccounted);
46
- perfRecorder.memory(PerfCheckpoint.TypeScriptProgramCreate);
47
- this.host.postProgramCreationCleanup();
48
- // Shim tagging has served its purpose, and tags can now be removed from all `ts.SourceFile`s in
49
- // the program.
50
- untagAllTsFiles(this.tsProgram);
51
- const programDriver = new TsCreateProgramDriver(this.tsProgram, this.host, this.options, this.host.shimExtensionPrefixes);
52
- this.incrementalStrategy = oldProgram !== undefined ?
53
- oldProgram.incrementalStrategy.toNextBuildStrategy() :
54
- new TrackedIncrementalBuildStrategy();
55
- const modifiedResourceFiles = new Set();
56
- if (this.host.getModifiedResourceFiles !== undefined) {
57
- const strings = this.host.getModifiedResourceFiles();
58
- if (strings !== undefined) {
59
- for (const fileString of strings) {
60
- modifiedResourceFiles.add(absoluteFrom(fileString));
61
- }
62
- }
63
- }
64
- let ticket;
65
- if (oldProgram === undefined) {
66
- ticket = freshCompilationTicket(this.tsProgram, options, this.incrementalStrategy, programDriver, perfRecorder,
67
- /* enableTemplateTypeChecker */ false, /* usePoisonedData */ false);
68
- }
69
- else {
70
- ticket = incrementalFromCompilerTicket(oldProgram.compiler, this.tsProgram, this.incrementalStrategy, programDriver, modifiedResourceFiles, perfRecorder);
71
- }
72
- // Create the NgCompiler which will drive the rest of the compilation.
73
- this.compiler = NgCompiler.fromTicket(ticket, this.host);
74
- }
75
- getTsProgram() {
76
- return this.tsProgram;
77
- }
78
- getReuseTsProgram() {
79
- return this.compiler.getCurrentProgram();
80
- }
81
- getTsOptionDiagnostics(cancellationToken) {
82
- return this.compiler.perfRecorder.inPhase(PerfPhase.TypeScriptDiagnostics, () => this.tsProgram.getOptionsDiagnostics(cancellationToken));
83
- }
84
- getTsSyntacticDiagnostics(sourceFile, cancellationToken) {
85
- return this.compiler.perfRecorder.inPhase(PerfPhase.TypeScriptDiagnostics, () => {
86
- const ignoredFiles = this.compiler.ignoreForDiagnostics;
87
- let res;
88
- if (sourceFile !== undefined) {
89
- if (ignoredFiles.has(sourceFile)) {
90
- return [];
91
- }
92
- res = this.tsProgram.getSyntacticDiagnostics(sourceFile, cancellationToken);
93
- }
94
- else {
95
- const diagnostics = [];
96
- for (const sf of this.tsProgram.getSourceFiles()) {
97
- if (!ignoredFiles.has(sf)) {
98
- diagnostics.push(...this.tsProgram.getSyntacticDiagnostics(sf, cancellationToken));
99
- }
100
- }
101
- res = diagnostics;
102
- }
103
- return res;
104
- });
105
- }
106
- getTsSemanticDiagnostics(sourceFile, cancellationToken) {
107
- return this.compiler.perfRecorder.inPhase(PerfPhase.TypeScriptDiagnostics, () => {
108
- const ignoredFiles = this.compiler.ignoreForDiagnostics;
109
- let res;
110
- if (sourceFile !== undefined) {
111
- if (ignoredFiles.has(sourceFile)) {
112
- return [];
113
- }
114
- res = this.tsProgram.getSemanticDiagnostics(sourceFile, cancellationToken);
115
- }
116
- else {
117
- const diagnostics = [];
118
- for (const sf of this.tsProgram.getSourceFiles()) {
119
- if (!ignoredFiles.has(sf)) {
120
- diagnostics.push(...this.tsProgram.getSemanticDiagnostics(sf, cancellationToken));
121
- }
122
- }
123
- res = diagnostics;
124
- }
125
- return res;
126
- });
127
- }
128
- getNgOptionDiagnostics(cancellationToken) {
129
- return this.compiler.getOptionDiagnostics();
130
- }
131
- getNgStructuralDiagnostics(cancellationToken) {
132
- return [];
133
- }
134
- getNgSemanticDiagnostics(fileName, cancellationToken) {
135
- let sf = undefined;
136
- if (fileName !== undefined) {
137
- sf = this.tsProgram.getSourceFile(fileName);
138
- if (sf === undefined) {
139
- // There are no diagnostics for files which don't exist in the program - maybe the caller
140
- // has stale data?
141
- return [];
142
- }
143
- }
144
- if (sf === undefined) {
145
- return this.compiler.getDiagnostics();
146
- }
147
- else {
148
- return this.compiler.getDiagnosticsForFile(sf, OptimizeFor.WholeProgram);
149
- }
150
- }
151
- /**
152
- * Ensure that the `NgCompiler` has properly analyzed the program, and allow for the asynchronous
153
- * loading of any resources during the process.
154
- *
155
- * This is used by the Angular CLI to allow for spawning (async) child compilations for things
156
- * like SASS files used in `styleUrls`.
157
- */
158
- loadNgStructureAsync() {
159
- return this.compiler.analyzeAsync();
160
- }
161
- listLazyRoutes(entryRoute) {
162
- return this.compiler.listLazyRoutes(entryRoute);
163
- }
164
- emitXi18n() {
165
- var _a, _b, _c;
166
- const ctx = new MessageBundle(new HtmlParser(), [], {}, (_a = this.options.i18nOutLocale) !== null && _a !== void 0 ? _a : null);
167
- this.compiler.xi18n(ctx);
168
- i18nExtract((_b = this.options.i18nOutFormat) !== null && _b !== void 0 ? _b : null, (_c = this.options.i18nOutFile) !== null && _c !== void 0 ? _c : null, this.host, this.options, ctx, resolve);
169
- }
170
- emit(opts) {
171
- // Check if emission of the i18n messages bundle was requested.
172
- if (opts !== undefined && opts.emitFlags !== undefined &&
173
- opts.emitFlags & api.EmitFlags.I18nBundle) {
174
- this.emitXi18n();
175
- // `api.EmitFlags` is a View Engine compiler concept. We only pay attention to the absence of
176
- // the other flags here if i18n emit was requested (since this is usually done in the xi18n
177
- // flow, where we don't want to emit JS at all).
178
- if (!(opts.emitFlags & api.EmitFlags.JS)) {
179
- return {
180
- diagnostics: [],
181
- emitSkipped: true,
182
- emittedFiles: [],
183
- };
184
- }
185
- }
186
- this.compiler.perfRecorder.memory(PerfCheckpoint.PreEmit);
187
- const res = this.compiler.perfRecorder.inPhase(PerfPhase.TypeScriptEmit, () => {
188
- const { transformers } = this.compiler.prepareEmit();
189
- const ignoreFiles = this.compiler.ignoreForEmit;
190
- const emitCallback = opts && opts.emitCallback || defaultEmitCallback;
191
- const writeFile = (fileName, data, writeByteOrderMark, onError, sourceFiles) => {
192
- if (sourceFiles !== undefined) {
193
- // Record successful writes for any `ts.SourceFile` (that's not a declaration file)
194
- // that's an input to this write.
195
- for (const writtenSf of sourceFiles) {
196
- if (writtenSf.isDeclarationFile) {
197
- continue;
198
- }
199
- this.compiler.incrementalCompilation.recordSuccessfulEmit(writtenSf);
200
- }
201
- }
202
- this.host.writeFile(fileName, data, writeByteOrderMark, onError, sourceFiles);
203
- };
204
- const customTransforms = opts && opts.customTransformers;
205
- const beforeTransforms = transformers.before || [];
206
- const afterDeclarationsTransforms = transformers.afterDeclarations;
207
- if (customTransforms !== undefined && customTransforms.beforeTs !== undefined) {
208
- beforeTransforms.push(...customTransforms.beforeTs);
209
- }
210
- const emitResults = [];
211
- for (const targetSourceFile of this.tsProgram.getSourceFiles()) {
212
- if (targetSourceFile.isDeclarationFile || ignoreFiles.has(targetSourceFile)) {
213
- continue;
214
- }
215
- if (this.compiler.incrementalCompilation.safeToSkipEmit(targetSourceFile)) {
216
- this.compiler.perfRecorder.eventCount(PerfEvent.EmitSkipSourceFile);
217
- continue;
218
- }
219
- this.compiler.perfRecorder.eventCount(PerfEvent.EmitSourceFile);
220
- emitResults.push(emitCallback({
221
- targetSourceFile,
222
- program: this.tsProgram,
223
- host: this.host,
224
- options: this.options,
225
- emitOnlyDtsFiles: false,
226
- writeFile,
227
- customTransformers: {
228
- before: beforeTransforms,
229
- after: customTransforms && customTransforms.afterTs,
230
- afterDeclarations: afterDeclarationsTransforms,
231
- },
232
- }));
233
- }
234
- this.compiler.perfRecorder.memory(PerfCheckpoint.Emit);
235
- // Run the emit, including a custom transformer that will downlevel the Ivy decorators in
236
- // code.
237
- return ((opts && opts.mergeEmitResultsCallback) || mergeEmitResults)(emitResults);
238
- });
239
- // Record performance analysis information to disk if we've been asked to do so.
240
- if (this.options.tracePerformance !== undefined) {
241
- const perf = this.compiler.perfRecorder.finalize();
242
- getFileSystem().writeFile(getFileSystem().resolve(this.options.tracePerformance), JSON.stringify(perf, null, 2));
243
- }
244
- return res;
245
- }
246
- getIndexedComponents() {
247
- return this.compiler.getIndexedComponents();
248
- }
249
- getLibrarySummaries() {
250
- throw new Error('Method not implemented.');
251
- }
252
- getEmittedGeneratedFiles() {
253
- throw new Error('Method not implemented.');
254
- }
255
- getEmittedSourceFiles() {
256
- throw new Error('Method not implemented.');
257
- }
258
- }
259
- const defaultEmitCallback = ({ program, targetSourceFile, writeFile, cancellationToken, emitOnlyDtsFiles, customTransformers }) => program.emit(targetSourceFile, writeFile, cancellationToken, emitOnlyDtsFiles, customTransformers);
260
- function mergeEmitResults(emitResults) {
261
- const diagnostics = [];
262
- let emitSkipped = false;
263
- const emittedFiles = [];
264
- for (const er of emitResults) {
265
- diagnostics.push(...er.diagnostics);
266
- emitSkipped = emitSkipped || er.emitSkipped;
267
- emittedFiles.push(...(er.emittedFiles || []));
268
- }
269
- return { diagnostics, emitSkipped, emittedFiles };
270
- }
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3JhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvcHJvZ3JhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQWdCLFVBQVUsRUFBRSxhQUFhLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRSxPQUFPLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVqQyxPQUFPLEtBQUssR0FBRyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMsZ0NBQWdDLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RSxPQUFPLEVBQW9CLHNCQUFzQixFQUFFLDZCQUE2QixFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFFNUgsT0FBTyxFQUFDLFlBQVksRUFBa0IsYUFBYSxFQUFFLE9BQU8sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFDLGtCQUFrQixFQUFFLGNBQWMsSUFBSSxjQUFjLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUNsRyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUV2RCxPQUFPLEVBQUMsZUFBZSxFQUFFLGVBQWUsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUN6RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFNUM7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBWXZCLFlBQ0ksU0FBZ0MsRUFBVSxPQUEwQixFQUNwRSxZQUE4QixFQUFFLFVBQXlCO1FBRGYsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFFdEUs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LENBQUM7SUFDeEIsTUFBTSxZQUFZLEdBQWEsRUFBRSxDQUFDO0lBQ2xDLEtBQUssTUFBTSxFQUFFLElBQUksV0FBVyxFQUFFO1FBQzVCLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEMsV0FBVyxHQUFHLFdBQVcsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDO1FBQzVDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztLQUMvQztJQUVELE9BQU8sRUFBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBQyxDQUFDO0FBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtHZW5lcmF0ZWRGaWxlLCBIdG1sUGFyc2VyLCBNZXNzYWdlQnVuZGxlfSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0ICogYXMgYXBpIGZyb20gJy4uL3RyYW5zZm9ybWVycy9hcGknO1xuaW1wb3J0IHtpMThuRXh0cmFjdH0gZnJvbSAnLi4vdHJhbnNmb3JtZXJzL2kxOG4nO1xuaW1wb3J0IHt2ZXJpZnlTdXBwb3J0ZWRUeXBlU2NyaXB0VmVyc2lvbn0gZnJvbSAnLi4vdHlwZXNjcmlwdF9zdXBwb3J0JztcblxuaW1wb3J0IHtDb21waWxhdGlvblRpY2tldCwgZnJlc2hDb21waWxhdGlvblRpY2tldCwgaW5jcmVtZW50YWxGcm9tQ29tcGlsZXJUaWNrZXQsIE5nQ29tcGlsZXIsIE5nQ29tcGlsZXJIb3N0fSBmcm9tICcuL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbXBpbGVyT3B0aW9uc30gZnJvbSAnLi9jb3JlL2FwaSc7XG5pbXBvcnQge2Fic29sdXRlRnJvbSwgQWJzb2x1dGVGc1BhdGgsIGdldEZpbGVTeXN0ZW0sIHJlc29sdmV9IGZyb20gJy4vZmlsZV9zeXN0ZW0nO1xuaW1wb3J0IHtUcmFja2VkSW5jcmVtZW50YWxCdWlsZFN0cmF0ZWd5fSBmcm9tICcuL2luY3JlbWVudGFsJztcbmltcG9ydCB7SW5kZXhlZENvbXBvbmVudH0gZnJvbSAnLi9pbmRleGVyJztcbmltcG9ydCB7QWN0aXZlUGVyZlJlY29yZGVyLCBQZXJmQ2hlY2twb2ludCBhcyBQZXJmQ2hlY2twb2ludCwgUGVyZkV2ZW50LCBQZXJmUGhhc2V9IGZyb20gJy4vcGVyZic7XG5pbXBvcnQge1RzQ3JlYXRlUHJvZ3JhbURyaXZlcn0gZnJvbSAnLi9wcm9ncmFtX2RyaXZlcic7XG5pbXBvcnQge0RlY2xhcmF0aW9uTm9kZX0gZnJvbSAnLi9yZWZsZWN0aW9uJztcbmltcG9ydCB7cmV0YWdBbGxUc0ZpbGVzLCB1bnRhZ0FsbFRzRmlsZXN9IGZyb20gJy4vc2hpbXMnO1xuaW1wb3J0IHtPcHRpbWl6ZUZvcn0gZnJvbSAnLi90eXBlY2hlY2svYXBpJztcblxuLyoqXG4gKiBFbnRyeXBvaW50IHRvIHRoZSBBbmd1bGFyIENvbXBpbGVyIChJdnkrKSB3aGljaCBzaXRzIGJlaGluZCB0aGUgYGFwaS5Qcm9ncmFtYCBpbnRlcmZhY2UsIGFsbG93aW5nXG4gKiBpdCB0byBiZSBhIGRyb3AtaW4gcmVwbGFjZW1lbnQgZm9yIHRoZSBsZWdhY3kgVmlldyBFbmdpbmUgY29tcGlsZXIgdG8gdG9vbGluZyBzdWNoIGFzIHRoZVxuICogY29tbWFuZC1saW5lIG1haW4oKSBmdW5jdGlvbiBvciB0aGUgQW5ndWxhciBDTEkuXG4gKi9cbmV4cG9ydCBjbGFzcyBOZ3RzY1Byb2dyYW0gaW1wbGVtZW50cyBhcGkuUHJvZ3JhbSB7XG4gIHJlYWRvbmx5IGNvbXBpbGVyOiBOZ0NvbXBpbGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJpbWFyeSBUeXBlU2NyaXB0IHByb2dyYW0sIHdoaWNoIGlzIHVzZWQgZm9yIGFuYWx5c2lzIGFuZCBlbWl0LlxuICAgKi9cbiAgcHJpdmF0ZSB0c1Byb2dyYW06IHRzLlByb2dyYW07XG5cbiAgcHJpdmF0ZSBjbG9zdXJlQ29tcGlsZXJFbmFibGVkOiBib29sZWFuO1xuICBwcml2YXRlIGhvc3Q6IE5nQ29tcGlsZXJIb3N0O1xuICBwcml2YXRlIGluY3JlbWVudGFsU3RyYXRlZ3k6IFRyYWNrZWRJbmNyZW1lbnRhbEJ1aWxkU3RyYXRlZ3k7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICByb290TmFtZXM6IFJlYWRvbmx5QXJyYXk8c3RyaW5nPiwgcHJpdmF0ZSBvcHRpb25zOiBOZ0NvbXBpbGVyT3B0aW9ucyxcbiAgICAgIGRlbGVnYXRlSG9zdDogYXBpLkNvbXBpbGVySG9zdCwgb2xkUHJvZ3JhbT86IE5ndHNjUHJvZ3JhbSkge1xuICAgIGNvbnN0IHBlcmZSZWNvcmRlciA9IEFjdGl2ZVBlcmZSZWNvcmRlci56ZXJvZWRUb05vdygpO1xuXG4gICAgcGVyZlJlY29yZGVyLnBoYXNlKFBlcmZQaGFzZS5TZXR1cCk7XG5cbiAgICAvLyBGaXJzdCwgY2hlY2sgd2hldGhlciB0aGUgY3VycmVudCBUUyB2ZXJzaW9uIGlzIHN1cHBvcnRlZC5cbiAgICBpZiAoIW9wdGlvbnMuZGlzYWJsZVR5cGVTY3JpcHRWZXJzaW9uQ2hlY2spIHtcbiAgICAgIHZlcmlmeVN1cHBvcnRlZFR5cGVTY3JpcHRWZXJzaW9uKCk7XG4gICAgfVxuXG4gICAgdGhpcy5jbG9zdXJlQ29tcGlsZXJFbmFibGVkID0gISFvcHRpb25zLmFubm90YXRlRm9yQ2xvc3VyZUNvbXBpbGVyO1xuXG4gICAgY29uc3QgcmV1c2VQcm9ncmFtID0gb2xkUHJvZ3JhbT8uY29tcGlsZXIuZ2V0Q3VycmVudFByb2dyYW0oKTtcbiAgICB0aGlzLmhvc3QgPSBOZ0NvbXBpbGVySG9zdC53cmFwKGRlbGVnYXRlSG9zdCwgcm9vdE5hbWVzLCBvcHRpb25zLCByZXVzZVByb2dyYW0gPz8gbnVsbCk7XG5cbiAgICBpZiAocmV1c2VQcm9ncmFtICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIFByaW9yIHRvIHJldXNpbmcgdGhlIG9sZCBwcm9ncmFtLCByZXN0b3JlIHNoaW0gdGFnZ2luZyBmb3IgYWxsIGl0cyBgdHMuU291cmNlRmlsZWBzLlxuICAgICAgLy8gVHlwZVNjcmlwdCBjaGVja3MgdGhlIGByZWZlcmVuY2VkRmlsZXNgIG9mIGB0cy5Tb3VyY2VGaWxlYHMgZm9yIGNoYW5nZXMgd2hlbiBldmFsdWF0aW5nXG4gICAgICAvLyBpbmNyZW1lbnRhbCByZXVzZSBvZiBkYXRhIGZyb20gdGhlIG9sZCBwcm9ncmFtLCBzbyBpdCdzIGltcG9ydGFudCB0aGF0IHRoZXNlIG1hdGNoIGluIG9yZGVyXG4gICAgICAvLyB0byBnZXQgdGhlIG1vc3QgYmVuZWZpdCBvdXQgb2YgcmV1c2UuXG4gICAgICByZXRhZ0FsbFRzRmlsZXMocmV1c2VQcm9ncmFtKTtcbiAgICB9XG5cbiAgICB0aGlzLnRzUHJvZ3JhbSA9IHBlcmZSZWNvcmRlci5pblBoYXNlKFxuICAgICAgICBQZXJmUGhhc2UuVHlwZVNjcmlwdFByb2dyYW1DcmVhdGUsXG4gICAgICAgICgpID0+IHRzLmNyZWF0ZVByb2dyYW0odGhpcy5ob3N0LmlucHV0RmlsZXMsIG9wdGlvbnMsIHRoaXMuaG9zdCwgcmV1c2VQcm9ncmFtKSk7XG5cbiAgICBwZXJmUmVjb3JkZXIucGhhc2UoUGVyZlBoYXNlLlVuYWNjb3VudGVkKTtcbiAgICBwZXJmUmVjb3JkZXIubWVtb3J5KFBlcmZDaGVja3BvaW50LlR5cGVTY3JpcHRQcm9ncmFtQ3JlYXRlKTtcblxuICAgIHRoaXMuaG9zdC5wb3N0UHJvZ3JhbUNyZWF0aW9uQ2xlYW51cCgpO1xuXG4gICAgLy8gU2hpbSB0YWdnaW5nIGhhcyBzZXJ2ZWQgaXRzIHB1cnBvc2UsIGFuZCB0YWdzIGNhbiBub3cgYmUgcmVtb3ZlZCBmcm9tIGFsbCBgdHMuU291cmNlRmlsZWBzIGluXG4gICAgLy8gdGhlIHByb2dyYW0uXG4gICAgdW50YWdBbGxUc0ZpbGVzKHRoaXMudHNQcm9ncmFtKTtcblxuICAgIGNvbnN0IHByb2dyYW1Ecml2ZXIgPSBuZXcgVHNDcmVhdGVQcm9ncmFtRHJpdmVyKFxuICAgICAgICB0aGlzLnRzUHJvZ3JhbSwgdGhpcy5ob3N0LCB0aGlzLm9wdGlvbnMsIHRoaXMuaG9zdC5zaGltRXh0ZW5zaW9uUHJlZml4ZXMpO1xuXG4gICAgdGhpcy5pbmNyZW1lbnRhbFN0cmF0ZWd5ID0gb2xkUHJvZ3JhbSAhPT0gdW5kZWZpbmVkID9cbiAgICAgICAgb2xkUHJvZ3JhbS5pbmNyZW1lbnRhbFN0cmF0ZWd5LnRvTmV4dEJ1aWxkU3RyYXRlZ3koKSA6XG4gICAgICAgIG5ldyBUcmFja2VkSW5jcmVtZW50YWxCdWlsZFN0cmF0ZWd5KCk7XG4gICAgY29uc3QgbW9kaWZpZWRSZXNvdXJjZUZpbGVzID0gbmV3IFNldDxBYnNvbHV0ZUZzUGF0aD4oKTtcbiAgICBpZiAodGhpcy5ob3N0LmdldE1vZGlmaWVkUmVzb3VyY2VGaWxlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBzdHJpbmdzID0gdGhpcy5ob3N0LmdldE1vZGlmaWVkUmVzb3VyY2VGaWxlcygpO1xuICAgICAgaWYgKHN0cmluZ3MgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBmb3IgKGNvbnN0IGZpbGVTdHJpbmcgb2Ygc3RyaW5ncykge1xuICAgICAgICAgIG1vZGlmaWVkUmVzb3VyY2VGaWxlcy5hZGQoYWJzb2x1dGVGcm9tKGZpbGVTdHJpbmcpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGxldCB0aWNrZXQ6IENvbXBpbGF0aW9uVGlja2V0O1xuICAgIGlmIChvbGRQcm9ncmFtID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRpY2tldCA9IGZyZXNoQ29tcGlsYXRpb25UaWNrZXQoXG4gICAgICAgICAgdGhpcy50c1Byb2dyYW0sIG9wdGlvbnMsIHRoaXMuaW5jcmVtZW50YWxTdHJhdGVneSwgcHJvZ3JhbURyaXZlciwgcGVyZlJlY29yZGVyLFxuICAgICAgICAgIC8qIGVuYWJsZVRlbXBsYXRlVHlwZUNoZWNrZXIgKi8gZmFsc2UsIC8qIHVzZVBvaXNvbmVkRGF0YSAqLyBmYWxzZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRpY2tldCA9IGluY3JlbWVudGFsRnJvbUNvbXBpbGVyVGlja2V0KFxuICAgICAgICAgIG9sZFByb2dyYW0uY29tcGlsZXIsXG4gICAgICAgICAgdGhpcy50c1Byb2dyYW0sXG4gICAgICAgICAgdGhpcy5pbmNyZW1lbnRhbFN0cmF0ZWd5LFxuICAgICAgICAgIHByb2dyYW1Ecml2ZXIsXG4gICAgICAgICAgbW9kaWZpZWRSZXNvdXJjZUZpbGVzLFxuICAgICAgICAgIHBlcmZSZWNvcmRlcixcbiAgICAgICk7XG4gICAgfVxuXG5cbiAgICAvLyBDcmVhdGUgdGhlIE5nQ29tcGlsZXIgd2hpY2ggd2lsbCBkcml2ZSB0aGUgcmVzdCBvZiB0aGUgY29tcGlsYXRpb24uXG4gICAgdGhpcy5jb21waWxlciA9IE5nQ29tcGlsZXIuZnJvbVRpY2tldCh0aWNrZXQsIHRoaXMuaG9zdCk7XG4gIH1cblxuICBnZXRUc1Byb2dyYW0oKTogdHMuUHJvZ3JhbSB7XG4gICAgcmV0dXJuIHRoaXMudHNQcm9ncmFtO1xuICB9XG5cbiAgZ2V0UmV1c2VUc1Byb2dyYW0oKTogdHMuUHJvZ3JhbSB7XG4gICAgcmV0dXJuIHRoaXMuY29tcGlsZXIuZ2V0Q3VycmVudFByb2dyYW0oKTtcbiAgfVxuXG4gIGdldFRzT3B0aW9uRGlhZ25vc3RpY3MoY2FuY2VsbGF0aW9uVG9rZW4/OiB0cy5DYW5jZWxsYXRpb25Ub2tlbnxcbiAgICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQpOiByZWFkb25seSB0cy5EaWFnbm9zdGljW10ge1xuICAgIHJldHVybiB0aGlzLmNvbXBpbGVyLnBlcmZSZWNvcmRlci5pblBoYXNlKFxuICAgICAgICBQZXJmUGhhc2UuVHlwZVNjcmlwdERpYWdub3N0aWNzLFxuICAgICAgICAoKSA9PiB0aGlzLnRzUHJvZ3JhbS5nZXRPcHRpb25zRGlhZ25vc3RpY3MoY2FuY2VsbGF0aW9uVG9rZW4pKTtcbiAgfVxuXG4gIGdldFRzU3ludGFjdGljRGlhZ25vc3RpY3MoXG4gICAgICBzb3VyY2VGaWxlPzogdHMuU291cmNlRmlsZXx1bmRlZmluZWQsXG4gICAgICBjYW5jZWxsYXRpb25Ub2tlbj86IHRzLkNhbmNlbGxhdGlvblRva2VufHVuZGVmaW5lZCk6IHJlYWRvbmx5IHRzLkRpYWdub3N0aWNbXSB7XG4gICAgcmV0dXJuIHRoaXMuY29tcGlsZXIucGVyZlJlY29yZGVyLmluUGhhc2UoUGVyZlBoYXNlLlR5cGVTY3JpcHREaWFnbm9zdGljcywgKCkgPT4ge1xuICAgICAgY29uc3QgaWdub3JlZEZpbGVzID0gdGhpcy5jb21waWxlci5pZ25vcmVGb3JEaWFnbm9zdGljcztcbiAgICAgIGxldCByZXM6IHJlYWRvbmx5IHRzLkRpYWdub3N0aWNbXTtcbiAgICAgIGlmIChzb3VyY2VGaWxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGlnbm9yZWRGaWxlcy5oYXMoc291cmNlRmlsZSkpIHtcbiAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cblxuICAgICAgICByZXMgPSB0aGlzLnRzUHJvZ3JhbS5nZXRTeW50YWN0aWNEaWFnbm9zdGljcyhzb3VyY2VGaWxlLCBjYW5jZWxsYXRpb25Ub2tlbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBkaWFnbm9zdGljczogdHMuRGlhZ25vc3RpY1tdID0gW107XG4gICAgICAgIGZvciAoY29uc3Qgc2Ygb2YgdGhpcy50c1Byb2dyYW0uZ2V0U291cmNlRmlsZXMoKSkge1xuICAgICAgICAgIGlmICghaWdub3JlZEZpbGVzLmhhcyhzZikpIHtcbiAgICAgICAgICAgIGRpYWdub3N0aWNzLnB1c2goLi4udGhpcy50c1Byb2dyYW0uZ2V0U3ludGFjdGljRGlhZ25vc3RpY3Moc2YsIGNhbmNlbGxhdGlvblRva2VuKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJlcyA9IGRpYWdub3N0aWNzO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlcztcbiAgICB9KTtcbiAgfVxuXG4gIGdldFRzU2VtYW50aWNEaWFnbm9zdGljcyhcbiAgICAgIHNvdXJjZUZpbGU/OiB0cy5Tb3VyY2VGaWxlfHVuZGVmaW5lZCxcbiAgICAgIGNhbmNlbGxhdGlvblRva2VuPzogdHMuQ2FuY2VsbGF0aW9uVG9rZW58dW5kZWZpbmVkKTogcmVhZG9ubHkgdHMuRGlhZ25vc3RpY1tdIHtcbiAgICByZXR1cm4gdGhpcy5jb21waWxlci5wZXJmUmVjb3JkZXIuaW5QaGFzZShQZXJmUGhhc2UuVHlwZVNjcmlwdERpYWdub3N0aWNzLCAoKSA9PiB7XG4gICAgICBjb25zdCBpZ25vcmVkRmlsZXMgPSB0aGlzLmNvbXBpbGVyLmlnbm9yZUZvckRpYWdub3N0aWNzO1xuICAgICAgbGV0IHJlczogcmVhZG9ubHkgdHMuRGlhZ25vc3RpY1tdO1xuICAgICAgaWYgKHNvdXJjZUZpbGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoaWdub3JlZEZpbGVzLmhhcyhzb3VyY2VGaWxlKSkge1xuICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlcyA9IHRoaXMudHNQcm9ncmFtLmdldFNlbWFudGljRGlhZ25vc3RpY3Moc291cmNlRmlsZSwgY2FuY2VsbGF0aW9uVG9rZW4pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZGlhZ25vc3RpY3M6IHRzLkRpYWdub3N0aWNbXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IHNmIG9mIHRoaXMudHNQcm9ncmFtLmdldFNvdXJjZUZpbGVzKCkpIHtcbiAgICAgICAgICBpZiAoIWlnbm9yZWRGaWxlcy5oYXMoc2YpKSB7XG4gICAgICAgICAgICBkaWFnbm9zdGljcy5wdXNoKC4uLnRoaXMudHNQcm9ncmFtLmdldFNlbWFudGljRGlhZ25vc3RpY3Moc2YsIGNhbmNlbGxhdGlvblRva2VuKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJlcyA9IGRpYWdub3N0aWNzO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlcztcbiAgICB9KTtcbiAgfVxuXG4gIGdldE5nT3B0aW9uRGlhZ25vc3RpY3MoY2FuY2VsbGF0aW9uVG9rZW4/OiB0cy5DYW5jZWxsYXRpb25Ub2tlbnxcbiAgICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQpOiByZWFkb25seSh0cy5EaWFnbm9zdGljfGFwaS5EaWFnbm9zdGljKVtdIHtcbiAgICByZXR1cm4gdGhpcy5jb21waWxlci5nZXRPcHRpb25EaWFnbm9zdGljcygpO1xuICB9XG5cbiAgZ2V0TmdTdHJ1Y3R1cmFsRGlhZ25vc3RpY3MoY2FuY2VsbGF0aW9uVG9rZW4/OiB0cy5DYW5jZWxsYXRpb25Ub2tlbnxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkKTogcmVhZG9ubHkgYXBpLkRpYWdub3N0aWNbXSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgZ2V0TmdTZW1hbnRpY0RpYWdub3N0aWNzKFxuICAgICAgZmlsZU5hbWU/OiBzdHJpbmd8dW5kZWZpbmVkLCBjYW5jZWxsYXRpb25Ub2tlbj86IHRzLkNhbmNlbGxhdGlvblRva2VufHVuZGVmaW5lZCk6XG4gICAgICByZWFkb25seSh0cy5EaWFnbm9zdGljfGFwaS5EaWFnbm9zdGljKVtdIHtcbiAgICBsZXQgc2Y6IHRzLlNvdXJjZUZpbGV8dW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGlmIChmaWxlTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBzZiA9IHRoaXMudHNQcm9ncmFtLmdldFNvdXJjZUZpbGUoZmlsZU5hbWUpO1xuICAgICAgaWYgKHNmID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gVGhlcmUgYXJlIG5vIGRpYWdub3N0aWNzIGZvciBmaWxlcyB3aGljaCBkb24ndCBleGlzdCBpbiB0aGUgcHJvZ3JhbSAtIG1heWJlIHRoZSBjYWxsZXJcbiAgICAgICAgLy8gaGFzIHN0YWxlIGRhdGE/XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc2YgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRoaXMuY29tcGlsZXIuZ2V0RGlhZ25vc3RpY3MoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuY29tcGlsZXIuZ2V0RGlhZ25vc3RpY3NGb3JGaWxlKHNmLCBPcHRpbWl6ZUZvci5XaG9sZVByb2dyYW0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFbnN1cmUgdGhhdCB0aGUgYE5nQ29tcGlsZXJgIGhhcyBwcm9wZXJseSBhbmFseXplZCB0aGUgcHJvZ3JhbSwgYW5kIGFsbG93IGZvciB0aGUgYXN5bmNocm9ub3VzXG4gICAqIGxvYWRpbmcgb2YgYW55IHJlc291cmNlcyBkdXJpbmcgdGhlIHByb2Nlc3MuXG4gICAqXG4gICAqIFRoaXMgaXMgdXNlZCBieSB0aGUgQW5ndWxhciBDTEkgdG8gYWxsb3cgZm9yIHNwYXduaW5nIChhc3luYykgY2hpbGQgY29tcGlsYXRpb25zIGZvciB0aGluZ3NcbiAgICogbGlrZSBTQVNTIGZpbGVzIHVzZWQgaW4gYHN0eWxlVXJsc2AuXG4gICAqL1xuICBsb2FkTmdTdHJ1Y3R1cmVBc3luYygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb21waWxlci5hbmFseXplQXN5bmMoKTtcbiAgfVxuXG4gIGxpc3RMYXp5Um91dGVzKGVudHJ5Um91dGU/OiBzdHJpbmd8dW5kZWZpbmVkKTogYXBpLkxhenlSb3V0ZVtdIHtcbiAgICByZXR1cm4gdGhpcy5jb21waWxlci5saXN0TGF6eVJvdXRlcyhlbnRyeVJvdXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdFhpMThuKCk6IHZvaWQge1xuICAgIGNvbnN0IGN0eCA9IG5ldyBNZXNzYWdlQnVuZGxlKG5ldyBIdG1sUGFyc2VyKCksIFtdLCB7fSwgdGhpcy5vcHRpb25zLmkxOG5PdXRMb2NhbGUgPz8gbnVsbCk7XG4gICAgdGhpcy5jb21waWxlci54aTE4bihjdHgpO1xuICAgIGkxOG5FeHRyYWN0KFxuICAgICAgICB0aGlzLm9wdGlvbnMuaTE4bk91dEZvcm1hdCA/PyBudWxsLCB0aGlzLm9wdGlvbnMuaTE4bk91dEZpbGUgPz8gbnVsbCwgdGhpcy5ob3N0LFxuICAgICAgICB0aGlzLm9wdGlvbnMsIGN0eCwgcmVzb2x2ZSk7XG4gIH1cblxuICBlbWl0KG9wdHM/OiB7XG4gICAgZW1pdEZsYWdzPzogYXBpLkVtaXRGbGFnc3x1bmRlZmluZWQ7XG4gICAgY2FuY2VsbGF0aW9uVG9rZW4/OiB0cy5DYW5jZWxsYXRpb25Ub2tlbiB8IHVuZGVmaW5lZDtcbiAgICBjdXN0b21UcmFuc2Zvcm1lcnM/OiBhcGkuQ3VzdG9tVHJhbnNmb3JtZXJzIHwgdW5kZWZpbmVkO1xuICAgIGVtaXRDYWxsYmFjaz86IGFwaS5Uc0VtaXRDYWxsYmFjayB8IHVuZGVmaW5lZDtcbiAgICBtZXJnZUVtaXRSZXN1bHRzQ2FsbGJhY2s/OiBhcGkuVHNNZXJnZUVtaXRSZXN1bHRzQ2FsbGJhY2sgfCB1bmRlZmluZWQ7XG4gIH18dW5kZWZpbmVkKTogdHMuRW1pdFJlc3VsdCB7XG4gICAgLy8gQ2hlY2sgaWYgZW1pc3Npb24gb2YgdGhlIGkxOG4gbWVzc2FnZXMgYnVuZGxlIHdhcyByZXF1ZXN0ZWQuXG4gICAgaWYgKG9wdHMgIT09IHVuZGVmaW5lZCAmJiBvcHRzLmVtaXRGbGFncyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIG9wdHMuZW1pdEZsYWdzICYgYXBpLkVtaXRGbGFncy5JMThuQnVuZGxlKSB7XG4gICAgICB0aGlzLmVtaXRYaTE4bigpO1xuXG4gICAgICAvLyBgYXBpLkVtaXRGbGFnc2AgaXMgYSBWaWV3IEVuZ2luZSBjb21waWxlciBjb25jZXB0LiBXZSBvbmx5IHBheSBhdHRlbnRpb24gdG8gdGhlIGFic2VuY2Ugb2ZcbiAgICAgIC8vIHRoZSBvdGhlciBmbGFncyBoZXJlIGlmIGkxOG4gZW1pdCB3YXMgcmVxdWVzdGVkIChzaW5jZSB0aGlzIGlzIHVzdWFsbHkgZG9uZSBpbiB0aGUgeGkxOG5cbiAgICAgIC8vIGZsb3csIHdoZXJlIHdlIGRvbid0IHdhbnQgdG8gZW1pdCBKUyBhdCBhbGwpLlxuICAgICAgaWYgKCEob3B0cy5lbWl0RmxhZ3MgJiBhcGkuRW1pdEZsYWdzLkpTKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRpYWdub3N0aWNzOiBbXSxcbiAgICAgICAgICBlbWl0U2tpcHBlZDogdHJ1ZSxcbiAgICAgICAgICBlbWl0dGVkRmlsZXM6IFtdLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY29tcGlsZXIucGVyZlJlY29yZGVyLm1lbW9yeShQZXJmQ2hlY2twb2ludC5QcmVFbWl0KTtcblxuICAgIGNvbnN0IHJlcyA9IHRoaXMuY29tcGlsZXIucGVyZlJlY29yZGVyLmluUGhhc2UoUGVyZlBoYXNlLlR5cGVTY3JpcHRFbWl0LCAoKSA9PiB7XG4gICAgICBjb25zdCB7dHJhbnNmb3JtZXJzfSA9IHRoaXMuY29tcGlsZXIucHJlcGFyZUVtaXQoKTtcbiAgICAgIGNvbnN0IGlnbm9yZUZpbGVzID0gdGhpcy5jb21waWxlci5pZ25vcmVGb3JFbWl0O1xuICAgICAgY29uc3QgZW1pdENhbGxiYWNrID0gb3B0cyAmJiBvcHRzLmVtaXRDYWxsYmFjayB8fCBkZWZhdWx0RW1pdENhbGxiYWNrO1xuXG4gICAgICBjb25zdCB3cml0ZUZpbGU6IHRzLldyaXRlRmlsZUNhbGxiYWNrID1cbiAgICAgICAgICAoZmlsZU5hbWU6IHN0cmluZywgZGF0YTogc3RyaW5nLCB3cml0ZUJ5dGVPcmRlck1hcms6IGJvb2xlYW4sXG4gICAgICAgICAgIG9uRXJyb3I6ICgobWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkKXx1bmRlZmluZWQsXG4gICAgICAgICAgIHNvdXJjZUZpbGVzOiBSZWFkb25seUFycmF5PHRzLlNvdXJjZUZpbGU+fHVuZGVmaW5lZCkgPT4ge1xuICAgICAgICAgICAgaWYgKHNvdXJjZUZpbGVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgLy8gUmVjb3JkIHN1Y2Nlc3NmdWwgd3JpdGVzIGZvciBhbnkgYHRzLlNvdXJjZUZpbGVgICh0aGF0J3Mgbm90IGEgZGVjbGFyYXRpb24gZmlsZSlcbiAgICAgICAgICAgICAgLy8gdGhhdCdzIGFuIGlucHV0IHRvIHRoaXMgd3JpdGUuXG4gICAgICAgICAgICAgIGZvciAoY29uc3Qgd3JpdHRlblNmIG9mIHNvdXJjZUZpbGVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHdyaXR0ZW5TZi5pc0RlY2xhcmF0aW9uRmlsZSkge1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5jb21waWxlci5pbmNyZW1lbnRhbENvbXBpbGF0aW9uLnJlY29yZFN1Y2Nlc3NmdWxFbWl0KHdyaXR0ZW5TZik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaG9zdC53cml0ZUZpbGUoZmlsZU5hbWUsIGRhdGEsIHdyaXRlQnl0ZU9yZGVyTWFyaywgb25FcnJvciwgc291cmNlRmlsZXMpO1xuICAgICAgICAgIH07XG5cbiAgICAgIGNvbnN0IGN1c3RvbVRyYW5zZm9ybXMgPSBvcHRzICYmIG9wdHMuY3VzdG9tVHJhbnNmb3JtZXJzO1xuICAgICAgY29uc3QgYmVmb3JlVHJhbnNmb3JtcyA9IHRyYW5zZm9ybWVycy5iZWZvcmUgfHwgW107XG4gICAgICBjb25zdCBhZnRlckRlY2xhcmF0aW9uc1RyYW5zZm9ybXMgPSB0cmFuc2Zvcm1lcnMuYWZ0ZXJEZWNsYXJhdGlvbnM7XG5cbiAgICAgIGlmIChjdXN0b21UcmFuc2Zvcm1zICE9PSB1bmRlZmluZWQgJiYgY3VzdG9tVHJhbnNmb3Jtcy5iZWZvcmVUcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGJlZm9yZVRyYW5zZm9ybXMucHVzaCguLi5jdXN0b21UcmFuc2Zvcm1zLmJlZm9yZVRzKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZW1pdFJlc3VsdHM6IHRzLkVtaXRSZXN1bHRbXSA9IFtdO1xuXG4gICAgICBmb3IgKGNvbnN0IHRhcmdldFNvdXJjZUZpbGUgb2YgdGhpcy50c1Byb2dyYW0uZ2V0U291cmNlRmlsZXMoKSkge1xuICAgICAgICBpZiAodGFyZ2V0U291cmNlRmlsZS5pc0RlY2xhcmF0aW9uRmlsZSB8fCBpZ25vcmVGaWxlcy5oYXModGFyZ2V0U291cmNlRmlsZSkpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNvbXBpbGVyLmluY3JlbWVudGFsQ29tcGlsYXRpb24uc2FmZVRvU2tpcEVtaXQodGFyZ2V0U291cmNlRmlsZSkpIHtcbiAgICAgICAgICB0aGlzLmNvbXBpbGVyLnBlcmZSZWNvcmRlci5ldmVudENvdW50KFBlcmZFdmVudC5FbWl0U2tpcFNvdXJjZUZpbGUpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb21waWxlci5wZXJmUmVjb3JkZXIuZXZlbnRDb3VudChQZXJmRXZlbnQuRW1pdFNvdXJjZUZpbGUpO1xuXG4gICAgICAgIGVtaXRSZXN1bHRzLnB1c2goZW1pdENhbGxiYWNrKHtcbiAgICAgICAgICB0YXJnZXRTb3VyY2VGaWxlLFxuICAgICAgICAgIHByb2dyYW06IHRoaXMudHNQcm9ncmFtLFxuICAgICAgICAgIGhvc3Q6IHRoaXMuaG9zdCxcbiAgICAgICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnMsXG4gICAgICAgICAgZW1pdE9ubHlEdHNGaWxlczogZmFsc2UsXG4gICAgICAgICAgd3JpdGVGaWxlLFxuICAgICAgICAgIGN1c3RvbVRyYW5zZm9ybWVyczoge1xuICAgICAgICAgICAgYmVmb3JlOiBiZWZvcmVUcmFuc2Zvcm1zLFxuICAgICAgICAgICAgYWZ0ZXI6IGN1c3RvbVRyYW5zZm9ybXMgJiYgY3VzdG9tVHJhbnNmb3Jtcy5hZnRlclRzLFxuICAgICAgICAgICAgYWZ0ZXJEZWNsYXJhdGlvbnM6IGFmdGVyRGVjbGFyYXRpb25zVHJhbnNmb3JtcyxcbiAgICAgICAgICB9IGFzIGFueSxcbiAgICAgICAgfSkpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNvbXBpbGVyLnBlcmZSZWNvcmRlci5tZW1vcnkoUGVyZkNoZWNrcG9pbnQuRW1pdCk7XG5cbiAgICAgIC8vIFJ1biB0aGUgZW1pdCwgaW5jbHVkaW5nIGEgY3VzdG9tIHRyYW5zZm9ybWVyIHRoYXQgd2lsbCBkb3dubGV2ZWwgdGhlIEl2eSBkZWNvcmF0b3JzIGluXG4gICAgICAvLyBjb2RlLlxuICAgICAgcmV0dXJuICgob3B0cyAmJiBvcHRzLm1lcmdlRW1pdFJlc3VsdHNDYWxsYmFjaykgfHwgbWVyZ2VFbWl0UmVzdWx0cykoZW1pdFJlc3VsdHMpO1xuICAgIH0pO1xuXG4gICAgLy8gUmVjb3JkIHBlcmZvcm1hbmNlIGFuYWx5c2lzIGluZm9ybWF0aW9uIHRvIGRpc2sgaWYgd2UndmUgYmVlbiBhc2tlZCB0byBkbyBzby5cbiAgICBpZiAodGhpcy5vcHRpb25zLnRyYWNlUGVyZm9ybWFuY2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgcGVyZiA9IHRoaXMuY29tcGlsZXIucGVyZlJlY29yZGVyLmZpbmFsaXplKCk7XG4gICAgICBnZXRGaWxlU3lzdGVtKCkud3JpdGVGaWxlKFxuICAgICAgICAgIGdldEZpbGVTeXN0ZW0oKS5yZXNvbHZlKHRoaXMub3B0aW9ucy50cmFjZVBlcmZvcm1hbmNlKSwgSlNPTi5zdHJpbmdpZnkocGVyZiwgbnVsbCwgMikpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgZ2V0SW5kZXhlZENvbXBvbmVudHMoKTogTWFwPERlY2xhcmF0aW9uTm9kZSwgSW5kZXhlZENvbXBvbmVudD4ge1xuICAgIHJldHVybiB0aGlzLmNvbXBpbGVyLmdldEluZGV4ZWRDb21wb25lbnRzKCk7XG4gIH1cblxuICBnZXRMaWJyYXJ5U3VtbWFyaWVzKCk6IE1hcDxzdHJpbmcsIGFwaS5MaWJyYXJ5U3VtbWFyeT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIGdldEVtaXR0ZWRHZW5lcmF0ZWRGaWxlcygpOiBNYXA8c3RyaW5nLCBHZW5lcmF0ZWRGaWxlPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgZ2V0RW1pdHRlZFNvdXJjZUZpbGVzKCk6IE1hcDxzdHJpbmcsIHRzLlNvdXJjZUZpbGU+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cbn1cblxuY29uc3QgZGVmYXVsdEVtaXRDYWxsYmFjazogYXBpLlRzRW1pdENhbGxiYWNrID0gKHtcbiAgcHJvZ3JhbSxcbiAgdGFyZ2V0U291cmNlRmlsZSxcbiAgd3JpdGVGaWxlLFxuICBjYW5jZWxsYXRpb25Ub2tlbixcbiAgZW1pdE9ubHlEdHNGaWxlcyxcbiAgY3VzdG9tVHJhbnNmb3JtZXJzXG59KSA9PlxuICAgIHByb2dyYW0uZW1pdChcbiAgICAgICAgdGFyZ2V0U291cmNlRmlsZSwgd3JpdGVGaWxlLCBjYW5jZWxsYXRpb25Ub2tlbiwgZW1pdE9ubHlEdHNGaWxlcywgY3VzdG9tVHJhbnNmb3JtZXJzKTtcblxuZnVuY3Rpb24gbWVyZ2VFbWl0UmVzdWx0cyhlbWl0UmVzdWx0czogdHMuRW1pdFJlc3VsdFtdKTogdHMuRW1pdFJlc3VsdCB7XG4gIGNvbnN0IGRpYWdub3N0aWNzOiB0cy5EaWFnbm9zdGljW10gPSBbXTtcbiAgbGV0IGVtaXRTa2lwcGVkID0gZmFsc2U7XG4gIGNvbnN0IGVtaXR0ZWRGaWxlczogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBlciBvZiBlbWl0UmVzdWx0cykge1xuICAgIGRpYWdub3N0aWNzLnB1c2goLi4uZXIuZGlhZ25vc3RpY3MpO1xuICAgIGVtaXRTa2lwcGVkID0gZW1pdFNraXBwZWQgfHwgZXIuZW1pdFNraXBwZWQ7XG4gICAgZW1pdHRlZEZpbGVzLnB1c2goLi4uKGVyLmVtaXR0ZWRGaWxlcyB8fCBbXSkpO1xuICB9XG5cbiAgcmV0dXJuIHtkaWFnbm9zdGljcywgZW1pdFNraXBwZWQsIGVtaXR0ZWRGaWxlc307XG59XG4iXX0=
@@ -1,10 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- export * from './src/api';
9
- export { TsCreateProgramDriver } from './src/ts_create_program_driver';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL3Byb2dyYW1fZHJpdmVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILGNBQWMsV0FBVyxDQUFDO0FBQzFCLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FwaSc7XG5leHBvcnQge1RzQ3JlYXRlUHJvZ3JhbURyaXZlcn0gZnJvbSAnLi9zcmMvdHNfY3JlYXRlX3Byb2dyYW1fZHJpdmVyJztcbiJdfQ==
@@ -1,22 +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 var UpdateMode;
9
- (function (UpdateMode) {
10
- /**
11
- * A complete update creates a completely new overlay of type-checking code on top of the user's
12
- * original program, which doesn't include type-checking code from previous calls to
13
- * `updateFiles`.
14
- */
15
- UpdateMode[UpdateMode["Complete"] = 0] = "Complete";
16
- /**
17
- * An incremental update changes the contents of some files in the type-checking program without
18
- * reverting any prior changes.
19
- */
20
- UpdateMode[UpdateMode["Incremental"] = 1] = "Incremental";
21
- })(UpdateMode || (UpdateMode = {}));
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy9wcm9ncmFtX2RyaXZlci9zcmMvYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQW1DSCxNQUFNLENBQU4sSUFBWSxVQWFYO0FBYkQsV0FBWSxVQUFVO0lBQ3BCOzs7O09BSUc7SUFDSCxtREFBUSxDQUFBO0lBRVI7OztPQUdHO0lBQ0gseURBQVcsQ0FBQTtBQUNiLENBQUMsRUFiVyxVQUFVLEtBQVYsVUFBVSxRQWFyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7QWJzb2x1dGVGc1BhdGh9IGZyb20gJy4uLy4uL2ZpbGVfc3lzdGVtJztcblxuZXhwb3J0IGludGVyZmFjZSBQcm9ncmFtRHJpdmVyIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBzdHJhdGVneSBzdXBwb3J0cyBtb2RpZnlpbmcgdXNlciBmaWxlcyAoaW5saW5lIG1vZGlmaWNhdGlvbnMpIGluIGFkZGl0aW9uIHRvXG4gICAqIG1vZGlmeWluZyB0eXBlLWNoZWNraW5nIHNoaW1zLlxuICAgKi9cbiAgcmVhZG9ubHkgc3VwcG9ydHNJbmxpbmVPcGVyYXRpb25zOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhlIHByb2dyYW0sIGNvbnRhaW5pbmcgYWxsIHRoZSB1cGRhdGVzIG1hZGUgdGh1cyBmYXIuXG4gICAqL1xuICBnZXRQcm9ncmFtKCk6IHRzLlByb2dyYW07XG5cbiAgLyoqXG4gICAqIEluY29ycG9yYXRlIGEgc2V0IG9mIGNoYW5nZXMgdG8gZWl0aGVyIGF1Z21lbnQgb3IgY29tcGxldGVseSByZXBsYWNlIHRoZSB0eXBlLWNoZWNraW5nIGNvZGVcbiAgICogaW5jbHVkZWQgaW4gdGhlIHR5cGUtY2hlY2tpbmcgcHJvZ3JhbS5cbiAgICovXG4gIHVwZGF0ZUZpbGVzKGNvbnRlbnRzOiBNYXA8QWJzb2x1dGVGc1BhdGgsIHN0cmluZz4sIHVwZGF0ZU1vZGU6IFVwZGF0ZU1vZGUpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBhIHN0cmluZyB2ZXJzaW9uIGZvciBhIGdpdmVuIGB0cy5Tb3VyY2VGaWxlYCwgd2hpY2ggbXVjaCBjaGFuZ2Ugd2hlbiB0aGUgY29udGVudHMgb2ZcbiAgICogdGhlIGZpbGUgaGF2ZSBjaGFuZ2VkLlxuICAgKlxuICAgKiBJZiB0aGlzIG1ldGhvZCBpcyBwcmVzZW50LCB0aGUgY29tcGlsZXIgd2lsbCB1c2UgdGhlc2UgdmVyc2lvbnMgaW4gYWRkaXRpb24gdG8gb2JqZWN0IGlkZW50aXR5XG4gICAqIGZvciBgdHMuU291cmNlRmlsZWBzIHRvIGRldGVybWluZSB3aGF0J3MgY2hhbmdlZCBiZXR3ZWVuIHR3byBpbmNyZW1lbnRhbCBwcm9ncmFtcy4gVGhpcyBpc1xuICAgKiB2YWx1YWJsZSBmb3Igc29tZSBjbGllbnRzIChzdWNoIGFzIHRoZSBMYW5ndWFnZSBTZXJ2aWNlKSB0aGF0IHRyZWF0IGB0cy5Tb3VyY2VGaWxlYHMgYXMgbXV0YWJsZVxuICAgKiBvYmplY3RzLlxuICAgKi9cbiAgZ2V0U291cmNlRmlsZVZlcnNpb24/KHNmOiB0cy5Tb3VyY2VGaWxlKTogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBVcGRhdGVNb2RlIHtcbiAgLyoqXG4gICAqIEEgY29tcGxldGUgdXBkYXRlIGNyZWF0ZXMgYSBjb21wbGV0ZWx5IG5ldyBvdmVybGF5IG9mIHR5cGUtY2hlY2tpbmcgY29kZSBvbiB0b3Agb2YgdGhlIHVzZXInc1xuICAgKiBvcmlnaW5hbCBwcm9ncmFtLCB3aGljaCBkb2Vzbid0IGluY2x1ZGUgdHlwZS1jaGVja2luZyBjb2RlIGZyb20gcHJldmlvdXMgY2FsbHMgdG9cbiAgICogYHVwZGF0ZUZpbGVzYC5cbiAgICovXG4gIENvbXBsZXRlLFxuXG4gIC8qKlxuICAgKiBBbiBpbmNyZW1lbnRhbCB1cGRhdGUgY2hhbmdlcyB0aGUgY29udGVudHMgb2Ygc29tZSBmaWxlcyBpbiB0aGUgdHlwZS1jaGVja2luZyBwcm9ncmFtIHdpdGhvdXRcbiAgICogcmV2ZXJ0aW5nIGFueSBwcmlvciBjaGFuZ2VzLlxuICAgKi9cbiAgSW5jcmVtZW50YWwsXG59XG4iXX0=