@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,64 +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 * as os from 'os';
10
- import * as ts from 'typescript';
11
- import { absoluteFrom } from './helpers';
12
- export class NgtscCompilerHost {
13
- constructor(fs, options = {}) {
14
- this.fs = fs;
15
- this.options = options;
16
- }
17
- getSourceFile(fileName, languageVersion) {
18
- const text = this.readFile(fileName);
19
- return text !== undefined ? ts.createSourceFile(fileName, text, languageVersion, true) :
20
- undefined;
21
- }
22
- getDefaultLibFileName(options) {
23
- return this.fs.join(this.getDefaultLibLocation(), ts.getDefaultLibFileName(options));
24
- }
25
- getDefaultLibLocation() {
26
- return this.fs.getDefaultLibLocation();
27
- }
28
- writeFile(fileName, data, writeByteOrderMark, onError, sourceFiles) {
29
- const path = absoluteFrom(fileName);
30
- this.fs.ensureDir(this.fs.dirname(path));
31
- this.fs.writeFile(path, data);
32
- }
33
- getCurrentDirectory() {
34
- return this.fs.pwd();
35
- }
36
- getCanonicalFileName(fileName) {
37
- return this.useCaseSensitiveFileNames() ? fileName : fileName.toLowerCase();
38
- }
39
- useCaseSensitiveFileNames() {
40
- return this.fs.isCaseSensitive();
41
- }
42
- getNewLine() {
43
- switch (this.options.newLine) {
44
- case ts.NewLineKind.CarriageReturnLineFeed:
45
- return '\r\n';
46
- case ts.NewLineKind.LineFeed:
47
- return '\n';
48
- default:
49
- return os.EOL;
50
- }
51
- }
52
- fileExists(fileName) {
53
- const absPath = this.fs.resolve(fileName);
54
- return this.fs.exists(absPath) && this.fs.stat(absPath).isFile();
55
- }
56
- readFile(fileName) {
57
- const absPath = this.fs.resolve(fileName);
58
- if (!this.fileExists(absPath)) {
59
- return undefined;
60
- }
61
- return this.fs.readFile(absPath);
62
- }
63
- }
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZXJfaG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvZmlsZV9zeXN0ZW0vc3JjL2NvbXBpbGVyX2hvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsOEJBQThCO0FBQzlCLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWpDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFHdkMsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixZQUFzQixFQUFjLEVBQVksVUFBOEIsRUFBRTtRQUExRCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVksWUFBTyxHQUFQLE9BQU8sQ0FBeUI7SUFBRyxDQUFDO0lBRXBGLGFBQWEsQ0FBQyxRQUFnQixFQUFFLGVBQWdDO1FBQzlELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckMsT0FBTyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM1RCxTQUFTLENBQUM7SUFDeEMsQ0FBQztJQUVELHFCQUFxQixDQUFDLE9BQTJCO1FBQy9DLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsRUFBRSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsU0FBUyxDQUNMLFFBQWdCLEVBQUUsSUFBWSxFQUFFLGtCQUEyQixFQUMzRCxPQUE4QyxFQUM5QyxXQUEwQztRQUM1QyxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELG9CQUFvQixDQUFDLFFBQWdCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlFLENBQUM7SUFFRCx5QkFBeUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxVQUFVO1FBQ1IsUUFBUSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtZQUM1QixLQUFLLEVBQUUsQ0FBQyxXQUFXLENBQUMsc0JBQXNCO2dCQUN4QyxPQUFPLE1BQU0sQ0FBQztZQUNoQixLQUFLLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUTtnQkFDMUIsT0FBTyxJQUFJLENBQUM7WUFDZDtnQkFDRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUM7U0FDakI7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLFFBQWdCO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbkUsQ0FBQztJQUVELFFBQVEsQ0FBQyxRQUFnQjtRQUN2QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUM3QixPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUNELE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8vLyA8cmVmZXJlbmNlIHR5cGVzPVwibm9kZVwiIC8+XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHthYnNvbHV0ZUZyb219IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQge0ZpbGVTeXN0ZW19IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgTmd0c2NDb21waWxlckhvc3QgaW1wbGVtZW50cyB0cy5Db21waWxlckhvc3Qge1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZnM6IEZpbGVTeXN0ZW0sIHByb3RlY3RlZCBvcHRpb25zOiB0cy5Db21waWxlck9wdGlvbnMgPSB7fSkge31cblxuICBnZXRTb3VyY2VGaWxlKGZpbGVOYW1lOiBzdHJpbmcsIGxhbmd1YWdlVmVyc2lvbjogdHMuU2NyaXB0VGFyZ2V0KTogdHMuU291cmNlRmlsZXx1bmRlZmluZWQge1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLnJlYWRGaWxlKGZpbGVOYW1lKTtcbiAgICByZXR1cm4gdGV4dCAhPT0gdW5kZWZpbmVkID8gdHMuY3JlYXRlU291cmNlRmlsZShmaWxlTmFtZSwgdGV4dCwgbGFuZ3VhZ2VWZXJzaW9uLCB0cnVlKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldERlZmF1bHRMaWJGaWxlTmFtZShvcHRpb25zOiB0cy5Db21waWxlck9wdGlvbnMpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZzLmpvaW4odGhpcy5nZXREZWZhdWx0TGliTG9jYXRpb24oKSwgdHMuZ2V0RGVmYXVsdExpYkZpbGVOYW1lKG9wdGlvbnMpKTtcbiAgfVxuXG4gIGdldERlZmF1bHRMaWJMb2NhdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZzLmdldERlZmF1bHRMaWJMb2NhdGlvbigpO1xuICB9XG5cbiAgd3JpdGVGaWxlKFxuICAgICAgZmlsZU5hbWU6IHN0cmluZywgZGF0YTogc3RyaW5nLCB3cml0ZUJ5dGVPcmRlck1hcms6IGJvb2xlYW4sXG4gICAgICBvbkVycm9yOiAoKG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZCl8dW5kZWZpbmVkLFxuICAgICAgc291cmNlRmlsZXM/OiBSZWFkb25seUFycmF5PHRzLlNvdXJjZUZpbGU+KTogdm9pZCB7XG4gICAgY29uc3QgcGF0aCA9IGFic29sdXRlRnJvbShmaWxlTmFtZSk7XG4gICAgdGhpcy5mcy5lbnN1cmVEaXIodGhpcy5mcy5kaXJuYW1lKHBhdGgpKTtcbiAgICB0aGlzLmZzLndyaXRlRmlsZShwYXRoLCBkYXRhKTtcbiAgfVxuXG4gIGdldEN1cnJlbnREaXJlY3RvcnkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5mcy5wd2QoKTtcbiAgfVxuXG4gIGdldENhbm9uaWNhbEZpbGVOYW1lKGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnVzZUNhc2VTZW5zaXRpdmVGaWxlTmFtZXMoKSA/IGZpbGVOYW1lIDogZmlsZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgfVxuXG4gIHVzZUNhc2VTZW5zaXRpdmVGaWxlTmFtZXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZnMuaXNDYXNlU2Vuc2l0aXZlKCk7XG4gIH1cblxuICBnZXROZXdMaW5lKCk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0aGlzLm9wdGlvbnMubmV3TGluZSkge1xuICAgICAgY2FzZSB0cy5OZXdMaW5lS2luZC5DYXJyaWFnZVJldHVybkxpbmVGZWVkOlxuICAgICAgICByZXR1cm4gJ1xcclxcbic7XG4gICAgICBjYXNlIHRzLk5ld0xpbmVLaW5kLkxpbmVGZWVkOlxuICAgICAgICByZXR1cm4gJ1xcbic7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gb3MuRU9MO1xuICAgIH1cbiAgfVxuXG4gIGZpbGVFeGlzdHMoZmlsZU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGFic1BhdGggPSB0aGlzLmZzLnJlc29sdmUoZmlsZU5hbWUpO1xuICAgIHJldHVybiB0aGlzLmZzLmV4aXN0cyhhYnNQYXRoKSAmJiB0aGlzLmZzLnN0YXQoYWJzUGF0aCkuaXNGaWxlKCk7XG4gIH1cblxuICByZWFkRmlsZShmaWxlTmFtZTogc3RyaW5nKTogc3RyaW5nfHVuZGVmaW5lZCB7XG4gICAgY29uc3QgYWJzUGF0aCA9IHRoaXMuZnMucmVzb2x2ZShmaWxlTmFtZSk7XG4gICAgaWYgKCF0aGlzLmZpbGVFeGlzdHMoYWJzUGF0aCkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZzLnJlYWRGaWxlKGFic1BhdGgpO1xuICB9XG59XG4iXX0=
@@ -1,99 +0,0 @@
1
- import { InvalidFileSystem } from './invalid_file_system';
2
- import { normalizeSeparators } from './util';
3
- let fs = new InvalidFileSystem();
4
- export function getFileSystem() {
5
- return fs;
6
- }
7
- export function setFileSystem(fileSystem) {
8
- fs = fileSystem;
9
- }
10
- /**
11
- * Convert the path `path` to an `AbsoluteFsPath`, throwing an error if it's not an absolute path.
12
- */
13
- export function absoluteFrom(path) {
14
- if (!fs.isRooted(path)) {
15
- throw new Error(`Internal Error: absoluteFrom(${path}): path is not absolute`);
16
- }
17
- return fs.resolve(path);
18
- }
19
- const ABSOLUTE_PATH = Symbol('AbsolutePath');
20
- /**
21
- * Extract an `AbsoluteFsPath` from a `ts.SourceFile`-like object.
22
- */
23
- export function absoluteFromSourceFile(sf) {
24
- const sfWithPatch = sf;
25
- if (sfWithPatch[ABSOLUTE_PATH] === undefined) {
26
- sfWithPatch[ABSOLUTE_PATH] = fs.resolve(sfWithPatch.fileName);
27
- }
28
- // Non-null assertion needed since TS doesn't narrow the type of fields that use a symbol as a key
29
- // apparently.
30
- return sfWithPatch[ABSOLUTE_PATH];
31
- }
32
- /**
33
- * Convert the path `path` to a `PathSegment`, throwing an error if it's not a relative path.
34
- */
35
- export function relativeFrom(path) {
36
- const normalized = normalizeSeparators(path);
37
- if (fs.isRooted(normalized)) {
38
- throw new Error(`Internal Error: relativeFrom(${path}): path is not relative`);
39
- }
40
- return normalized;
41
- }
42
- /**
43
- * Static access to `dirname`.
44
- */
45
- export function dirname(file) {
46
- return fs.dirname(file);
47
- }
48
- /**
49
- * Static access to `join`.
50
- */
51
- export function join(basePath, ...paths) {
52
- return fs.join(basePath, ...paths);
53
- }
54
- /**
55
- * Static access to `resolve`s.
56
- */
57
- export function resolve(basePath, ...paths) {
58
- return fs.resolve(basePath, ...paths);
59
- }
60
- /** Returns true when the path provided is the root path. */
61
- export function isRoot(path) {
62
- return fs.isRoot(path);
63
- }
64
- /**
65
- * Static access to `isRooted`.
66
- */
67
- export function isRooted(path) {
68
- return fs.isRooted(path);
69
- }
70
- /**
71
- * Static access to `relative`.
72
- */
73
- export function relative(from, to) {
74
- return fs.relative(from, to);
75
- }
76
- /**
77
- * Static access to `basename`.
78
- */
79
- export function basename(filePath, extension) {
80
- return fs.basename(filePath, extension);
81
- }
82
- /**
83
- * Returns true if the given path is locally relative.
84
- *
85
- * This is used to work out if the given path is relative (i.e. not absolute) but also is not
86
- * escaping the current directory.
87
- */
88
- export function isLocalRelativePath(relativePath) {
89
- return !isRooted(relativePath) && !relativePath.startsWith('..');
90
- }
91
- /**
92
- * Converts a path to a form suitable for use as a relative module import specifier.
93
- *
94
- * In other words it adds the `./` to the path if it is locally relative.
95
- */
96
- export function toRelativeImport(relativePath) {
97
- return isLocalRelativePath(relativePath) ? `./${relativePath}` : relativePath;
98
- }
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvZmlsZV9zeXN0ZW0vc3JjL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFeEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTNDLElBQUksRUFBRSxHQUFlLElBQUksaUJBQWlCLEVBQUUsQ0FBQztBQUM3QyxNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFDRCxNQUFNLFVBQVUsYUFBYSxDQUFDLFVBQXNCO0lBQ2xELEVBQUUsR0FBRyxVQUFVLENBQUM7QUFDbEIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFZO0lBQ3ZDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLElBQUkseUJBQXlCLENBQUMsQ0FBQztLQUNoRjtJQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMxQixDQUFDO0FBRUQsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBRTdDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQixDQUFDLEVBQXNCO0lBQzNELE1BQU0sV0FBVyxHQUFHLEVBQTBELENBQUM7SUFFL0UsSUFBSSxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssU0FBUyxFQUFFO1FBQzVDLFdBQVcsQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUMvRDtJQUVELGtHQUFrRztJQUNsRyxjQUFjO0lBQ2QsT0FBTyxXQUFXLENBQUMsYUFBYSxDQUFFLENBQUM7QUFDckMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFZO0lBQ3ZDLE1BQU0sVUFBVSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdDLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRTtRQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxJQUFJLHlCQUF5QixDQUFDLENBQUM7S0FDaEY7SUFDRCxPQUFPLFVBQXlCLENBQUM7QUFDbkMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBdUIsSUFBTztJQUNuRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLElBQUksQ0FBdUIsUUFBVyxFQUFFLEdBQUcsS0FBZTtJQUN4RSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUM7QUFDckMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBQyxRQUFnQixFQUFFLEdBQUcsS0FBZTtJQUMxRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVELDREQUE0RDtBQUM1RCxNQUFNLFVBQVUsTUFBTSxDQUFDLElBQW9CO0lBQ3pDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN6QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUFDLElBQVk7SUFDbkMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQXVCLElBQU8sRUFBRSxFQUFLO0lBQzNELE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDL0IsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FBQyxRQUFvQixFQUFFLFNBQWtCO0lBQy9ELE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFnQixDQUFDO0FBQ3pELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxZQUFvQjtJQUN0RCxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNuRSxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxZQUF3QztJQUV2RSxPQUFPLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFlBQVksRUFBaUIsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0FBQy9GLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge0ludmFsaWRGaWxlU3lzdGVtfSBmcm9tICcuL2ludmFsaWRfZmlsZV9zeXN0ZW0nO1xuaW1wb3J0IHtBYnNvbHV0ZUZzUGF0aCwgRmlsZVN5c3RlbSwgUGF0aFNlZ21lbnQsIFBhdGhTdHJpbmd9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtub3JtYWxpemVTZXBhcmF0b3JzfSBmcm9tICcuL3V0aWwnO1xuXG5sZXQgZnM6IEZpbGVTeXN0ZW0gPSBuZXcgSW52YWxpZEZpbGVTeXN0ZW0oKTtcbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlU3lzdGVtKCk6IEZpbGVTeXN0ZW0ge1xuICByZXR1cm4gZnM7XG59XG5leHBvcnQgZnVuY3Rpb24gc2V0RmlsZVN5c3RlbShmaWxlU3lzdGVtOiBGaWxlU3lzdGVtKSB7XG4gIGZzID0gZmlsZVN5c3RlbTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IHRoZSBwYXRoIGBwYXRoYCB0byBhbiBgQWJzb2x1dGVGc1BhdGhgLCB0aHJvd2luZyBhbiBlcnJvciBpZiBpdCdzIG5vdCBhbiBhYnNvbHV0ZSBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWJzb2x1dGVGcm9tKHBhdGg6IHN0cmluZyk6IEFic29sdXRlRnNQYXRoIHtcbiAgaWYgKCFmcy5pc1Jvb3RlZChwYXRoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW50ZXJuYWwgRXJyb3I6IGFic29sdXRlRnJvbSgke3BhdGh9KTogcGF0aCBpcyBub3QgYWJzb2x1dGVgKTtcbiAgfVxuICByZXR1cm4gZnMucmVzb2x2ZShwYXRoKTtcbn1cblxuY29uc3QgQUJTT0xVVEVfUEFUSCA9IFN5bWJvbCgnQWJzb2x1dGVQYXRoJyk7XG5cbi8qKlxuICogRXh0cmFjdCBhbiBgQWJzb2x1dGVGc1BhdGhgIGZyb20gYSBgdHMuU291cmNlRmlsZWAtbGlrZSBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhYnNvbHV0ZUZyb21Tb3VyY2VGaWxlKHNmOiB7ZmlsZU5hbWU6IHN0cmluZ30pOiBBYnNvbHV0ZUZzUGF0aCB7XG4gIGNvbnN0IHNmV2l0aFBhdGNoID0gc2YgYXMge2ZpbGVOYW1lOiBzdHJpbmcsIFtBQlNPTFVURV9QQVRIXT86IEFic29sdXRlRnNQYXRofTtcblxuICBpZiAoc2ZXaXRoUGF0Y2hbQUJTT0xVVEVfUEFUSF0gPT09IHVuZGVmaW5lZCkge1xuICAgIHNmV2l0aFBhdGNoW0FCU09MVVRFX1BBVEhdID0gZnMucmVzb2x2ZShzZldpdGhQYXRjaC5maWxlTmFtZSk7XG4gIH1cblxuICAvLyBOb24tbnVsbCBhc3NlcnRpb24gbmVlZGVkIHNpbmNlIFRTIGRvZXNuJ3QgbmFycm93IHRoZSB0eXBlIG9mIGZpZWxkcyB0aGF0IHVzZSBhIHN5bWJvbCBhcyBhIGtleVxuICAvLyBhcHBhcmVudGx5LlxuICByZXR1cm4gc2ZXaXRoUGF0Y2hbQUJTT0xVVEVfUEFUSF0hO1xufVxuXG4vKipcbiAqIENvbnZlcnQgdGhlIHBhdGggYHBhdGhgIHRvIGEgYFBhdGhTZWdtZW50YCwgdGhyb3dpbmcgYW4gZXJyb3IgaWYgaXQncyBub3QgYSByZWxhdGl2ZSBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVsYXRpdmVGcm9tKHBhdGg6IHN0cmluZyk6IFBhdGhTZWdtZW50IHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZVNlcGFyYXRvcnMocGF0aCk7XG4gIGlmIChmcy5pc1Jvb3RlZChub3JtYWxpemVkKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW50ZXJuYWwgRXJyb3I6IHJlbGF0aXZlRnJvbSgke3BhdGh9KTogcGF0aCBpcyBub3QgcmVsYXRpdmVgKTtcbiAgfVxuICByZXR1cm4gbm9ybWFsaXplZCBhcyBQYXRoU2VnbWVudDtcbn1cblxuLyoqXG4gKiBTdGF0aWMgYWNjZXNzIHRvIGBkaXJuYW1lYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpcm5hbWU8VCBleHRlbmRzIFBhdGhTdHJpbmc+KGZpbGU6IFQpOiBUIHtcbiAgcmV0dXJuIGZzLmRpcm5hbWUoZmlsZSk7XG59XG5cbi8qKlxuICogU3RhdGljIGFjY2VzcyB0byBgam9pbmAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBqb2luPFQgZXh0ZW5kcyBQYXRoU3RyaW5nPihiYXNlUGF0aDogVCwgLi4ucGF0aHM6IHN0cmluZ1tdKTogVCB7XG4gIHJldHVybiBmcy5qb2luKGJhc2VQYXRoLCAuLi5wYXRocyk7XG59XG5cbi8qKlxuICogU3RhdGljIGFjY2VzcyB0byBgcmVzb2x2ZWBzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZShiYXNlUGF0aDogc3RyaW5nLCAuLi5wYXRoczogc3RyaW5nW10pOiBBYnNvbHV0ZUZzUGF0aCB7XG4gIHJldHVybiBmcy5yZXNvbHZlKGJhc2VQYXRoLCAuLi5wYXRocyk7XG59XG5cbi8qKiBSZXR1cm5zIHRydWUgd2hlbiB0aGUgcGF0aCBwcm92aWRlZCBpcyB0aGUgcm9vdCBwYXRoLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUm9vdChwYXRoOiBBYnNvbHV0ZUZzUGF0aCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZnMuaXNSb290KHBhdGgpO1xufVxuXG4vKipcbiAqIFN0YXRpYyBhY2Nlc3MgdG8gYGlzUm9vdGVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUm9vdGVkKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gZnMuaXNSb290ZWQocGF0aCk7XG59XG5cbi8qKlxuICogU3RhdGljIGFjY2VzcyB0byBgcmVsYXRpdmVgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVsYXRpdmU8VCBleHRlbmRzIFBhdGhTdHJpbmc+KGZyb206IFQsIHRvOiBUKTogUGF0aFNlZ21lbnR8QWJzb2x1dGVGc1BhdGgge1xuICByZXR1cm4gZnMucmVsYXRpdmUoZnJvbSwgdG8pO1xufVxuXG4vKipcbiAqIFN0YXRpYyBhY2Nlc3MgdG8gYGJhc2VuYW1lYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJhc2VuYW1lKGZpbGVQYXRoOiBQYXRoU3RyaW5nLCBleHRlbnNpb24/OiBzdHJpbmcpOiBQYXRoU2VnbWVudCB7XG4gIHJldHVybiBmcy5iYXNlbmFtZShmaWxlUGF0aCwgZXh0ZW5zaW9uKSBhcyBQYXRoU2VnbWVudDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIHBhdGggaXMgbG9jYWxseSByZWxhdGl2ZS5cbiAqXG4gKiBUaGlzIGlzIHVzZWQgdG8gd29yayBvdXQgaWYgdGhlIGdpdmVuIHBhdGggaXMgcmVsYXRpdmUgKGkuZS4gbm90IGFic29sdXRlKSBidXQgYWxzbyBpcyBub3RcbiAqIGVzY2FwaW5nIHRoZSBjdXJyZW50IGRpcmVjdG9yeS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTG9jYWxSZWxhdGl2ZVBhdGgocmVsYXRpdmVQYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuICFpc1Jvb3RlZChyZWxhdGl2ZVBhdGgpICYmICFyZWxhdGl2ZVBhdGguc3RhcnRzV2l0aCgnLi4nKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIHBhdGggdG8gYSBmb3JtIHN1aXRhYmxlIGZvciB1c2UgYXMgYSByZWxhdGl2ZSBtb2R1bGUgaW1wb3J0IHNwZWNpZmllci5cbiAqXG4gKiBJbiBvdGhlciB3b3JkcyBpdCBhZGRzIHRoZSBgLi9gIHRvIHRoZSBwYXRoIGlmIGl0IGlzIGxvY2FsbHkgcmVsYXRpdmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1JlbGF0aXZlSW1wb3J0KHJlbGF0aXZlUGF0aDogUGF0aFNlZ21lbnR8QWJzb2x1dGVGc1BhdGgpOiBQYXRoU2VnbWVudHxcbiAgICBBYnNvbHV0ZUZzUGF0aCB7XG4gIHJldHVybiBpc0xvY2FsUmVsYXRpdmVQYXRoKHJlbGF0aXZlUGF0aCkgPyBgLi8ke3JlbGF0aXZlUGF0aH1gIGFzIFBhdGhTZWdtZW50IDogcmVsYXRpdmVQYXRoO1xufVxuIl19
@@ -1,95 +0,0 @@
1
- /**
2
- * The default `FileSystem` that will always fail.
3
- *
4
- * This is a way of ensuring that the developer consciously chooses and
5
- * configures the `FileSystem` before using it; particularly important when
6
- * considering static functions like `absoluteFrom()` which rely on
7
- * the `FileSystem` under the hood.
8
- */
9
- export class InvalidFileSystem {
10
- exists(path) {
11
- throw makeError();
12
- }
13
- readFile(path) {
14
- throw makeError();
15
- }
16
- readFileBuffer(path) {
17
- throw makeError();
18
- }
19
- writeFile(path, data, exclusive) {
20
- throw makeError();
21
- }
22
- removeFile(path) {
23
- throw makeError();
24
- }
25
- symlink(target, path) {
26
- throw makeError();
27
- }
28
- readdir(path) {
29
- throw makeError();
30
- }
31
- lstat(path) {
32
- throw makeError();
33
- }
34
- stat(path) {
35
- throw makeError();
36
- }
37
- pwd() {
38
- throw makeError();
39
- }
40
- chdir(path) {
41
- throw makeError();
42
- }
43
- extname(path) {
44
- throw makeError();
45
- }
46
- copyFile(from, to) {
47
- throw makeError();
48
- }
49
- moveFile(from, to) {
50
- throw makeError();
51
- }
52
- ensureDir(path) {
53
- throw makeError();
54
- }
55
- removeDeep(path) {
56
- throw makeError();
57
- }
58
- isCaseSensitive() {
59
- throw makeError();
60
- }
61
- resolve(...paths) {
62
- throw makeError();
63
- }
64
- dirname(file) {
65
- throw makeError();
66
- }
67
- join(basePath, ...paths) {
68
- throw makeError();
69
- }
70
- isRoot(path) {
71
- throw makeError();
72
- }
73
- isRooted(path) {
74
- throw makeError();
75
- }
76
- relative(from, to) {
77
- throw makeError();
78
- }
79
- basename(filePath, extension) {
80
- throw makeError();
81
- }
82
- realpath(filePath) {
83
- throw makeError();
84
- }
85
- getDefaultLibLocation() {
86
- throw makeError();
87
- }
88
- normalize(path) {
89
- throw makeError();
90
- }
91
- }
92
- function makeError() {
93
- return new Error('FileSystem has not been configured. Please call `setFileSystem()` before calling this method.');
94
- }
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52YWxpZF9maWxlX3N5c3RlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvZmlsZV9zeXN0ZW0vc3JjL2ludmFsaWRfZmlsZV9zeXN0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0E7Ozs7Ozs7R0FPRztBQUNILE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsTUFBTSxDQUFDLElBQW9CO1FBQ3pCLE1BQU0sU0FBUyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELFFBQVEsQ0FBQyxJQUFvQjtRQUMzQixNQUFNLFNBQVMsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxjQUFjLENBQUMsSUFBb0I7UUFDakMsTUFBTSxTQUFTLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsU0FBUyxDQUFDLElBQW9CLEVBQUUsSUFBdUIsRUFBRSxTQUFtQjtRQUMxRSxNQUFNLFNBQVMsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxVQUFVLENBQUMsSUFBb0I7UUFDN0IsTUFBTSxTQUFTLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsT0FBTyxDQUFDLE1BQXNCLEVBQUUsSUFBb0I7UUFDbEQsTUFBTSxTQUFTLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsT0FBTyxDQUFDLElBQW9CO1FBQzFCLE1BQU0sU0FBUyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELEtBQUssQ0FBQyxJQUFvQjtRQUN4QixNQUFNLFNBQVMsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFJLENBQUMsSUFBb0I7UUFDdkIsTUFBTSxTQUFTLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsR0FBRztRQUNELE1BQU0sU0FBUyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELEtBQUssQ0FBQyxJQUFvQjtRQUN4QixNQUFNLFNBQVMsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxPQUFPLENBQUMsSUFBZ0M7UUFDdEMsTUFBTSxTQUFTLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsUUFBUSxDQUFDLElBQW9CLEVBQUUsRUFBa0I7UUFDL0MsTUFBTSxTQUFTLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsUUFBUSxDQUFDLElBQW9CLEVBQUUsRUFBa0I7UUFDL0MsTUFBTSxTQUFTLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsU0FBUyxDQUFDLElBQW9CO1FBQzVCLE1BQU0sU0FBUyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELFVBQVUsQ0FBQyxJQUFvQjtRQUM3QixNQUFNLFNBQVMsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxlQUFlO1FBQ2IsTUFBTSxTQUFTLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsT0FBTyxDQUFDLEdBQUcsS0FBZTtRQUN4QixNQUFNLFNBQVMsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxPQUFPLENBQXVCLElBQU87UUFDbkMsTUFBTSxTQUFTLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFBSSxDQUF1QixRQUFXLEVBQUUsR0FBRyxLQUFlO1FBQ3hELE1BQU0sU0FBUyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELE1BQU0sQ0FBQyxJQUFvQjtRQUN6QixNQUFNLFNBQVMsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxRQUFRLENBQUMsSUFBWTtRQUNuQixNQUFNLFNBQVMsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxRQUFRLENBQXVCLElBQU8sRUFBRSxFQUFLO1FBQzNDLE1BQU0sU0FBUyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELFFBQVEsQ0FBQyxRQUFnQixFQUFFLFNBQWtCO1FBQzNDLE1BQU0sU0FBUyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELFFBQVEsQ0FBQyxRQUF3QjtRQUMvQixNQUFNLFNBQVMsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxxQkFBcUI7UUFDbkIsTUFBTSxTQUFTLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsU0FBUyxDQUF1QixJQUFPO1FBQ3JDLE1BQU0sU0FBUyxFQUFFLENBQUM7SUFDcEIsQ0FBQztDQUNGO0FBRUQsU0FBUyxTQUFTO0lBQ2hCLE9BQU8sSUFBSSxLQUFLLENBQ1osK0ZBQStGLENBQUMsQ0FBQztBQUN2RyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge0Fic29sdXRlRnNQYXRoLCBGaWxlU3RhdHMsIEZpbGVTeXN0ZW0sIFBhdGhTZWdtZW50LCBQYXRoU3RyaW5nfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBUaGUgZGVmYXVsdCBgRmlsZVN5c3RlbWAgdGhhdCB3aWxsIGFsd2F5cyBmYWlsLlxuICpcbiAqIFRoaXMgaXMgYSB3YXkgb2YgZW5zdXJpbmcgdGhhdCB0aGUgZGV2ZWxvcGVyIGNvbnNjaW91c2x5IGNob29zZXMgYW5kXG4gKiBjb25maWd1cmVzIHRoZSBgRmlsZVN5c3RlbWAgYmVmb3JlIHVzaW5nIGl0OyBwYXJ0aWN1bGFybHkgaW1wb3J0YW50IHdoZW5cbiAqIGNvbnNpZGVyaW5nIHN0YXRpYyBmdW5jdGlvbnMgbGlrZSBgYWJzb2x1dGVGcm9tKClgIHdoaWNoIHJlbHkgb25cbiAqIHRoZSBgRmlsZVN5c3RlbWAgdW5kZXIgdGhlIGhvb2QuXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnZhbGlkRmlsZVN5c3RlbSBpbXBsZW1lbnRzIEZpbGVTeXN0ZW0ge1xuICBleGlzdHMocGF0aDogQWJzb2x1dGVGc1BhdGgpOiBib29sZWFuIHtcbiAgICB0aHJvdyBtYWtlRXJyb3IoKTtcbiAgfVxuICByZWFkRmlsZShwYXRoOiBBYnNvbHV0ZUZzUGF0aCk6IHN0cmluZyB7XG4gICAgdGhyb3cgbWFrZUVycm9yKCk7XG4gIH1cbiAgcmVhZEZpbGVCdWZmZXIocGF0aDogQWJzb2x1dGVGc1BhdGgpOiBVaW50OEFycmF5IHtcbiAgICB0aHJvdyBtYWtlRXJyb3IoKTtcbiAgfVxuICB3cml0ZUZpbGUocGF0aDogQWJzb2x1dGVGc1BhdGgsIGRhdGE6IHN0cmluZ3xVaW50OEFycmF5LCBleGNsdXNpdmU/OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhyb3cgbWFrZUVycm9yKCk7XG4gIH1cbiAgcmVtb3ZlRmlsZShwYXRoOiBBYnNvbHV0ZUZzUGF0aCk6IHZvaWQge1xuICAgIHRocm93IG1ha2VFcnJvcigpO1xuICB9XG4gIHN5bWxpbmsodGFyZ2V0OiBBYnNvbHV0ZUZzUGF0aCwgcGF0aDogQWJzb2x1dGVGc1BhdGgpOiB2b2lkIHtcbiAgICB0aHJvdyBtYWtlRXJyb3IoKTtcbiAgfVxuICByZWFkZGlyKHBhdGg6IEFic29sdXRlRnNQYXRoKTogUGF0aFNlZ21lbnRbXSB7XG4gICAgdGhyb3cgbWFrZUVycm9yKCk7XG4gIH1cbiAgbHN0YXQocGF0aDogQWJzb2x1dGVGc1BhdGgpOiBGaWxlU3RhdHMge1xuICAgIHRocm93IG1ha2VFcnJvcigpO1xuICB9XG4gIHN0YXQocGF0aDogQWJzb2x1dGVGc1BhdGgpOiBGaWxlU3RhdHMge1xuICAgIHRocm93IG1ha2VFcnJvcigpO1xuICB9XG4gIHB3ZCgpOiBBYnNvbHV0ZUZzUGF0aCB7XG4gICAgdGhyb3cgbWFrZUVycm9yKCk7XG4gIH1cbiAgY2hkaXIocGF0aDogQWJzb2x1dGVGc1BhdGgpOiB2b2lkIHtcbiAgICB0aHJvdyBtYWtlRXJyb3IoKTtcbiAgfVxuICBleHRuYW1lKHBhdGg6IEFic29sdXRlRnNQYXRofFBhdGhTZWdtZW50KTogc3RyaW5nIHtcbiAgICB0aHJvdyBtYWtlRXJyb3IoKTtcbiAgfVxuICBjb3B5RmlsZShmcm9tOiBBYnNvbHV0ZUZzUGF0aCwgdG86IEFic29sdXRlRnNQYXRoKTogdm9pZCB7XG4gICAgdGhyb3cgbWFrZUVycm9yKCk7XG4gIH1cbiAgbW92ZUZpbGUoZnJvbTogQWJzb2x1dGVGc1BhdGgsIHRvOiBBYnNvbHV0ZUZzUGF0aCk6IHZvaWQge1xuICAgIHRocm93IG1ha2VFcnJvcigpO1xuICB9XG4gIGVuc3VyZURpcihwYXRoOiBBYnNvbHV0ZUZzUGF0aCk6IHZvaWQge1xuICAgIHRocm93IG1ha2VFcnJvcigpO1xuICB9XG4gIHJlbW92ZURlZXAocGF0aDogQWJzb2x1dGVGc1BhdGgpOiB2b2lkIHtcbiAgICB0aHJvdyBtYWtlRXJyb3IoKTtcbiAgfVxuICBpc0Nhc2VTZW5zaXRpdmUoKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbWFrZUVycm9yKCk7XG4gIH1cbiAgcmVzb2x2ZSguLi5wYXRoczogc3RyaW5nW10pOiBBYnNvbHV0ZUZzUGF0aCB7XG4gICAgdGhyb3cgbWFrZUVycm9yKCk7XG4gIH1cbiAgZGlybmFtZTxUIGV4dGVuZHMgUGF0aFN0cmluZz4oZmlsZTogVCk6IFQge1xuICAgIHRocm93IG1ha2VFcnJvcigpO1xuICB9XG4gIGpvaW48VCBleHRlbmRzIFBhdGhTdHJpbmc+KGJhc2VQYXRoOiBULCAuLi5wYXRoczogc3RyaW5nW10pOiBUIHtcbiAgICB0aHJvdyBtYWtlRXJyb3IoKTtcbiAgfVxuICBpc1Jvb3QocGF0aDogQWJzb2x1dGVGc1BhdGgpOiBib29sZWFuIHtcbiAgICB0aHJvdyBtYWtlRXJyb3IoKTtcbiAgfVxuICBpc1Jvb3RlZChwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBtYWtlRXJyb3IoKTtcbiAgfVxuICByZWxhdGl2ZTxUIGV4dGVuZHMgUGF0aFN0cmluZz4oZnJvbTogVCwgdG86IFQpOiBQYXRoU2VnbWVudHxBYnNvbHV0ZUZzUGF0aCB7XG4gICAgdGhyb3cgbWFrZUVycm9yKCk7XG4gIH1cbiAgYmFzZW5hbWUoZmlsZVBhdGg6IHN0cmluZywgZXh0ZW5zaW9uPzogc3RyaW5nKTogUGF0aFNlZ21lbnQge1xuICAgIHRocm93IG1ha2VFcnJvcigpO1xuICB9XG4gIHJlYWxwYXRoKGZpbGVQYXRoOiBBYnNvbHV0ZUZzUGF0aCk6IEFic29sdXRlRnNQYXRoIHtcbiAgICB0aHJvdyBtYWtlRXJyb3IoKTtcbiAgfVxuICBnZXREZWZhdWx0TGliTG9jYXRpb24oKTogQWJzb2x1dGVGc1BhdGgge1xuICAgIHRocm93IG1ha2VFcnJvcigpO1xuICB9XG4gIG5vcm1hbGl6ZTxUIGV4dGVuZHMgUGF0aFN0cmluZz4ocGF0aDogVCk6IFQge1xuICAgIHRocm93IG1ha2VFcnJvcigpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1ha2VFcnJvcigpIHtcbiAgcmV0dXJuIG5ldyBFcnJvcihcbiAgICAgICdGaWxlU3lzdGVtIGhhcyBub3QgYmVlbiBjb25maWd1cmVkLiBQbGVhc2UgY2FsbCBgc2V0RmlsZVN5c3RlbSgpYCBiZWZvcmUgY2FsbGluZyB0aGlzIG1ldGhvZC4nKTtcbn1cbiJdfQ==
@@ -1,84 +0,0 @@
1
- import { absoluteFrom, dirname, isLocalRelativePath, relative, resolve, toRelativeImport } from './helpers';
2
- import { stripExtension } from './util';
3
- export const LogicalProjectPath = {
4
- /**
5
- * Get the relative path between two `LogicalProjectPath`s.
6
- *
7
- * This will return a `PathSegment` which would be a valid module specifier to use in `from` when
8
- * importing from `to`.
9
- */
10
- relativePathBetween: function (from, to) {
11
- const relativePath = relative(dirname(resolve(from)), resolve(to));
12
- return toRelativeImport(relativePath);
13
- },
14
- };
15
- /**
16
- * A utility class which can translate absolute paths to source files into logical paths in
17
- * TypeScript's logical file system, based on the root directories of the project.
18
- */
19
- export class LogicalFileSystem {
20
- constructor(rootDirs, compilerHost) {
21
- this.compilerHost = compilerHost;
22
- /**
23
- * A cache of file paths to project paths, because computation of these paths is slightly
24
- * expensive.
25
- */
26
- this.cache = new Map();
27
- // Make a copy and sort it by length in reverse order (longest first). This speeds up lookups,
28
- // since there's no need to keep going through the array once a match is found.
29
- this.rootDirs = rootDirs.concat([]).sort((a, b) => b.length - a.length);
30
- this.canonicalRootDirs =
31
- this.rootDirs.map(dir => this.compilerHost.getCanonicalFileName(dir));
32
- }
33
- /**
34
- * Get the logical path in the project of a `ts.SourceFile`.
35
- *
36
- * This method is provided as a convenient alternative to calling
37
- * `logicalPathOfFile(absoluteFromSourceFile(sf))`.
38
- */
39
- logicalPathOfSf(sf) {
40
- return this.logicalPathOfFile(absoluteFrom(sf.fileName));
41
- }
42
- /**
43
- * Get the logical path in the project of a source file.
44
- *
45
- * @returns A `LogicalProjectPath` to the source file, or `null` if the source file is not in any
46
- * of the TS project's root directories.
47
- */
48
- logicalPathOfFile(physicalFile) {
49
- const canonicalFilePath = this.compilerHost.getCanonicalFileName(physicalFile);
50
- if (!this.cache.has(canonicalFilePath)) {
51
- let logicalFile = null;
52
- for (let i = 0; i < this.rootDirs.length; i++) {
53
- const rootDir = this.rootDirs[i];
54
- const canonicalRootDir = this.canonicalRootDirs[i];
55
- if (isWithinBasePath(canonicalRootDir, canonicalFilePath)) {
56
- // Note that we match against canonical paths but then create the logical path from
57
- // original paths.
58
- logicalFile = this.createLogicalProjectPath(physicalFile, rootDir);
59
- // The logical project does not include any special "node_modules" nested directories.
60
- if (logicalFile.indexOf('/node_modules/') !== -1) {
61
- logicalFile = null;
62
- }
63
- else {
64
- break;
65
- }
66
- }
67
- }
68
- this.cache.set(canonicalFilePath, logicalFile);
69
- }
70
- return this.cache.get(canonicalFilePath);
71
- }
72
- createLogicalProjectPath(file, rootDir) {
73
- const logicalPath = stripExtension(file.substr(rootDir.length));
74
- return (logicalPath.startsWith('/') ? logicalPath : '/' + logicalPath);
75
- }
76
- }
77
- /**
78
- * Is the `path` a descendant of the `base`?
79
- * E.g. `foo/bar/zee` is within `foo/bar` but not within `foo/car`.
80
- */
81
- function isWithinBasePath(base, path) {
82
- return isLocalRelativePath(relative(base, path));
83
- }
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naWNhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvZmlsZV9zeXN0ZW0vc3JjL2xvZ2ljYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsT0FBTyxFQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUUxRyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBWXRDLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDOzs7OztPQUtHO0lBQ0gsbUJBQW1CLEVBQUUsVUFBUyxJQUF3QixFQUFFLEVBQXNCO1FBQzVFLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkUsT0FBTyxnQkFBZ0IsQ0FBQyxZQUFZLENBQWdCLENBQUM7SUFDdkQsQ0FBQztDQUNGLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0lBa0I1QixZQUNJLFFBQTBCLEVBQ2xCLFlBQTJEO1FBQTNELGlCQUFZLEdBQVosWUFBWSxDQUErQztRQVJ2RTs7O1dBR0c7UUFDSyxVQUFLLEdBQWlELElBQUksR0FBRyxFQUFFLENBQUM7UUFLdEUsOEZBQThGO1FBQzlGLCtFQUErRTtRQUMvRSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLGlCQUFpQjtZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFtQixDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsZUFBZSxDQUFDLEVBQWlCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxpQkFBaUIsQ0FBQyxZQUE0QjtRQUM1QyxNQUFNLGlCQUFpQixHQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBbUIsQ0FBQztRQUMzRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUN0QyxJQUFJLFdBQVcsR0FBNEIsSUFBSSxDQUFDO1lBQ2hELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDakMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25ELElBQUksZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLENBQUMsRUFBRTtvQkFDekQsbUZBQW1GO29CQUNuRixrQkFBa0I7b0JBQ2xCLFdBQVcsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO29CQUNuRSxzRkFBc0Y7b0JBQ3RGLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO3dCQUNoRCxXQUFXLEdBQUcsSUFBSSxDQUFDO3FCQUNwQjt5QkFBTTt3QkFDTCxNQUFNO3FCQUNQO2lCQUNGO2FBQ0Y7WUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLENBQUMsQ0FBQztTQUNoRDtRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRU8sd0JBQXdCLENBQUMsSUFBb0IsRUFBRSxPQUF1QjtRQUU1RSxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNoRSxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUF1QixDQUFDO0lBQy9GLENBQUM7Q0FDRjtBQUVEOzs7R0FHRztBQUNILFNBQVMsZ0JBQWdCLENBQUMsSUFBb0IsRUFBRSxJQUFvQjtJQUNsRSxPQUFPLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHthYnNvbHV0ZUZyb20sIGRpcm5hbWUsIGlzTG9jYWxSZWxhdGl2ZVBhdGgsIHJlbGF0aXZlLCByZXNvbHZlLCB0b1JlbGF0aXZlSW1wb3J0fSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHtBYnNvbHV0ZUZzUGF0aCwgQnJhbmRlZFBhdGgsIFBhdGhTZWdtZW50fSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7c3RyaXBFeHRlbnNpb259IGZyb20gJy4vdXRpbCc7XG5cblxuXG4vKipcbiAqIEEgcGF0aCB0aGF0J3MgcmVsYXRpdmUgdG8gdGhlIGxvZ2ljYWwgcm9vdCBvZiBhIFR5cGVTY3JpcHQgcHJvamVjdCAob25lIG9mIHRoZSBwcm9qZWN0J3NcbiAqIHJvb3REaXJzKS5cbiAqXG4gKiBQYXRocyBpbiB0aGUgdHlwZSBzeXN0ZW0gdXNlIFBPU0lYIGZvcm1hdC5cbiAqL1xuZXhwb3J0IHR5cGUgTG9naWNhbFByb2plY3RQYXRoID0gQnJhbmRlZFBhdGg8J0xvZ2ljYWxQcm9qZWN0UGF0aCc+O1xuXG5leHBvcnQgY29uc3QgTG9naWNhbFByb2plY3RQYXRoID0ge1xuICAvKipcbiAgICogR2V0IHRoZSByZWxhdGl2ZSBwYXRoIGJldHdlZW4gdHdvIGBMb2dpY2FsUHJvamVjdFBhdGhgcy5cbiAgICpcbiAgICogVGhpcyB3aWxsIHJldHVybiBhIGBQYXRoU2VnbWVudGAgd2hpY2ggd291bGQgYmUgYSB2YWxpZCBtb2R1bGUgc3BlY2lmaWVyIHRvIHVzZSBpbiBgZnJvbWAgd2hlblxuICAgKiBpbXBvcnRpbmcgZnJvbSBgdG9gLlxuICAgKi9cbiAgcmVsYXRpdmVQYXRoQmV0d2VlbjogZnVuY3Rpb24oZnJvbTogTG9naWNhbFByb2plY3RQYXRoLCB0bzogTG9naWNhbFByb2plY3RQYXRoKTogUGF0aFNlZ21lbnQge1xuICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHJlbGF0aXZlKGRpcm5hbWUocmVzb2x2ZShmcm9tKSksIHJlc29sdmUodG8pKTtcbiAgICByZXR1cm4gdG9SZWxhdGl2ZUltcG9ydChyZWxhdGl2ZVBhdGgpIGFzIFBhdGhTZWdtZW50O1xuICB9LFxufTtcblxuLyoqXG4gKiBBIHV0aWxpdHkgY2xhc3Mgd2hpY2ggY2FuIHRyYW5zbGF0ZSBhYnNvbHV0ZSBwYXRocyB0byBzb3VyY2UgZmlsZXMgaW50byBsb2dpY2FsIHBhdGhzIGluXG4gKiBUeXBlU2NyaXB0J3MgbG9naWNhbCBmaWxlIHN5c3RlbSwgYmFzZWQgb24gdGhlIHJvb3QgZGlyZWN0b3JpZXMgb2YgdGhlIHByb2plY3QuXG4gKi9cbmV4cG9ydCBjbGFzcyBMb2dpY2FsRmlsZVN5c3RlbSB7XG4gIC8qKlxuICAgKiBUaGUgcm9vdCBkaXJlY3RvcmllcyBvZiB0aGUgcHJvamVjdCwgc29ydGVkIHdpdGggdGhlIGxvbmdlc3QgcGF0aCBmaXJzdC5cbiAgICovXG4gIHByaXZhdGUgcm9vdERpcnM6IEFic29sdXRlRnNQYXRoW107XG5cbiAgLyoqXG4gICAqIFRoZSBzYW1lIHJvb3QgZGlyZWN0b3JpZXMgYXMgYHJvb3REaXJzYCBidXQgd2l0aCBlYWNoIG9uZSBjb252ZXJ0ZWQgdG8gaXRzXG4gICAqIGNhbm9uaWNhbCBmb3JtIGZvciBtYXRjaGluZyBpbiBjYXNlLWluc2Vuc2l0aXZlIGZpbGUtc3lzdGVtcy5cbiAgICovXG4gIHByaXZhdGUgY2Fub25pY2FsUm9vdERpcnM6IEFic29sdXRlRnNQYXRoW107XG5cbiAgLyoqXG4gICAqIEEgY2FjaGUgb2YgZmlsZSBwYXRocyB0byBwcm9qZWN0IHBhdGhzLCBiZWNhdXNlIGNvbXB1dGF0aW9uIG9mIHRoZXNlIHBhdGhzIGlzIHNsaWdodGx5XG4gICAqIGV4cGVuc2l2ZS5cbiAgICovXG4gIHByaXZhdGUgY2FjaGU6IE1hcDxBYnNvbHV0ZUZzUGF0aCwgTG9naWNhbFByb2plY3RQYXRofG51bGw+ID0gbmV3IE1hcCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcm9vdERpcnM6IEFic29sdXRlRnNQYXRoW10sXG4gICAgICBwcml2YXRlIGNvbXBpbGVySG9zdDogUGljazx0cy5Db21waWxlckhvc3QsICdnZXRDYW5vbmljYWxGaWxlTmFtZSc+KSB7XG4gICAgLy8gTWFrZSBhIGNvcHkgYW5kIHNvcnQgaXQgYnkgbGVuZ3RoIGluIHJldmVyc2Ugb3JkZXIgKGxvbmdlc3QgZmlyc3QpLiBUaGlzIHNwZWVkcyB1cCBsb29rdXBzLFxuICAgIC8vIHNpbmNlIHRoZXJlJ3Mgbm8gbmVlZCB0byBrZWVwIGdvaW5nIHRocm91Z2ggdGhlIGFycmF5IG9uY2UgYSBtYXRjaCBpcyBmb3VuZC5cbiAgICB0aGlzLnJvb3REaXJzID0gcm9vdERpcnMuY29uY2F0KFtdKS5zb3J0KChhLCBiKSA9PiBiLmxlbmd0aCAtIGEubGVuZ3RoKTtcbiAgICB0aGlzLmNhbm9uaWNhbFJvb3REaXJzID1cbiAgICAgICAgdGhpcy5yb290RGlycy5tYXAoZGlyID0+IHRoaXMuY29tcGlsZXJIb3N0LmdldENhbm9uaWNhbEZpbGVOYW1lKGRpcikgYXMgQWJzb2x1dGVGc1BhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbG9naWNhbCBwYXRoIGluIHRoZSBwcm9qZWN0IG9mIGEgYHRzLlNvdXJjZUZpbGVgLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBpcyBwcm92aWRlZCBhcyBhIGNvbnZlbmllbnQgYWx0ZXJuYXRpdmUgdG8gY2FsbGluZ1xuICAgKiBgbG9naWNhbFBhdGhPZkZpbGUoYWJzb2x1dGVGcm9tU291cmNlRmlsZShzZikpYC5cbiAgICovXG4gIGxvZ2ljYWxQYXRoT2ZTZihzZjogdHMuU291cmNlRmlsZSk6IExvZ2ljYWxQcm9qZWN0UGF0aHxudWxsIHtcbiAgICByZXR1cm4gdGhpcy5sb2dpY2FsUGF0aE9mRmlsZShhYnNvbHV0ZUZyb20oc2YuZmlsZU5hbWUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGxvZ2ljYWwgcGF0aCBpbiB0aGUgcHJvamVjdCBvZiBhIHNvdXJjZSBmaWxlLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIGBMb2dpY2FsUHJvamVjdFBhdGhgIHRvIHRoZSBzb3VyY2UgZmlsZSwgb3IgYG51bGxgIGlmIHRoZSBzb3VyY2UgZmlsZSBpcyBub3QgaW4gYW55XG4gICAqIG9mIHRoZSBUUyBwcm9qZWN0J3Mgcm9vdCBkaXJlY3Rvcmllcy5cbiAgICovXG4gIGxvZ2ljYWxQYXRoT2ZGaWxlKHBoeXNpY2FsRmlsZTogQWJzb2x1dGVGc1BhdGgpOiBMb2dpY2FsUHJvamVjdFBhdGh8bnVsbCB7XG4gICAgY29uc3QgY2Fub25pY2FsRmlsZVBhdGggPVxuICAgICAgICB0aGlzLmNvbXBpbGVySG9zdC5nZXRDYW5vbmljYWxGaWxlTmFtZShwaHlzaWNhbEZpbGUpIGFzIEFic29sdXRlRnNQYXRoO1xuICAgIGlmICghdGhpcy5jYWNoZS5oYXMoY2Fub25pY2FsRmlsZVBhdGgpKSB7XG4gICAgICBsZXQgbG9naWNhbEZpbGU6IExvZ2ljYWxQcm9qZWN0UGF0aHxudWxsID0gbnVsbDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yb290RGlycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCByb290RGlyID0gdGhpcy5yb290RGlyc1tpXTtcbiAgICAgICAgY29uc3QgY2Fub25pY2FsUm9vdERpciA9IHRoaXMuY2Fub25pY2FsUm9vdERpcnNbaV07XG4gICAgICAgIGlmIChpc1dpdGhpbkJhc2VQYXRoKGNhbm9uaWNhbFJvb3REaXIsIGNhbm9uaWNhbEZpbGVQYXRoKSkge1xuICAgICAgICAgIC8vIE5vdGUgdGhhdCB3ZSBtYXRjaCBhZ2FpbnN0IGNhbm9uaWNhbCBwYXRocyBidXQgdGhlbiBjcmVhdGUgdGhlIGxvZ2ljYWwgcGF0aCBmcm9tXG4gICAgICAgICAgLy8gb3JpZ2luYWwgcGF0aHMuXG4gICAgICAgICAgbG9naWNhbEZpbGUgPSB0aGlzLmNyZWF0ZUxvZ2ljYWxQcm9qZWN0UGF0aChwaHlzaWNhbEZpbGUsIHJvb3REaXIpO1xuICAgICAgICAgIC8vIFRoZSBsb2dpY2FsIHByb2plY3QgZG9lcyBub3QgaW5jbHVkZSBhbnkgc3BlY2lhbCBcIm5vZGVfbW9kdWxlc1wiIG5lc3RlZCBkaXJlY3Rvcmllcy5cbiAgICAgICAgICBpZiAobG9naWNhbEZpbGUuaW5kZXhPZignL25vZGVfbW9kdWxlcy8nKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIGxvZ2ljYWxGaWxlID0gbnVsbDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmNhY2hlLnNldChjYW5vbmljYWxGaWxlUGF0aCwgbG9naWNhbEZpbGUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jYWNoZS5nZXQoY2Fub25pY2FsRmlsZVBhdGgpITtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTG9naWNhbFByb2plY3RQYXRoKGZpbGU6IEFic29sdXRlRnNQYXRoLCByb290RGlyOiBBYnNvbHV0ZUZzUGF0aCk6XG4gICAgICBMb2dpY2FsUHJvamVjdFBhdGgge1xuICAgIGNvbnN0IGxvZ2ljYWxQYXRoID0gc3RyaXBFeHRlbnNpb24oZmlsZS5zdWJzdHIocm9vdERpci5sZW5ndGgpKTtcbiAgICByZXR1cm4gKGxvZ2ljYWxQYXRoLnN0YXJ0c1dpdGgoJy8nKSA/IGxvZ2ljYWxQYXRoIDogJy8nICsgbG9naWNhbFBhdGgpIGFzIExvZ2ljYWxQcm9qZWN0UGF0aDtcbiAgfVxufVxuXG4vKipcbiAqIElzIHRoZSBgcGF0aGAgYSBkZXNjZW5kYW50IG9mIHRoZSBgYmFzZWA/XG4gKiBFLmcuIGBmb28vYmFyL3plZWAgaXMgd2l0aGluIGBmb28vYmFyYCBidXQgbm90IHdpdGhpbiBgZm9vL2NhcmAuXG4gKi9cbmZ1bmN0aW9uIGlzV2l0aGluQmFzZVBhdGgoYmFzZTogQWJzb2x1dGVGc1BhdGgsIHBhdGg6IEFic29sdXRlRnNQYXRoKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc0xvY2FsUmVsYXRpdmVQYXRoKHJlbGF0aXZlKGJhc2UsIHBhdGgpKTtcbn1cbiJdfQ==
@@ -1,142 +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 * as fs from 'fs';
10
- import * as p from 'path';
11
- /**
12
- * A wrapper around the Node.js file-system that supports path manipulation.
13
- */
14
- export class NodeJSPathManipulation {
15
- pwd() {
16
- return this.normalize(process.cwd());
17
- }
18
- chdir(dir) {
19
- process.chdir(dir);
20
- }
21
- resolve(...paths) {
22
- return this.normalize(p.resolve(...paths));
23
- }
24
- dirname(file) {
25
- return this.normalize(p.dirname(file));
26
- }
27
- join(basePath, ...paths) {
28
- return this.normalize(p.join(basePath, ...paths));
29
- }
30
- isRoot(path) {
31
- return this.dirname(path) === this.normalize(path);
32
- }
33
- isRooted(path) {
34
- return p.isAbsolute(path);
35
- }
36
- relative(from, to) {
37
- return this.normalize(p.relative(from, to));
38
- }
39
- basename(filePath, extension) {
40
- return p.basename(filePath, extension);
41
- }
42
- extname(path) {
43
- return p.extname(path);
44
- }
45
- normalize(path) {
46
- // Convert backslashes to forward slashes
47
- return path.replace(/\\/g, '/');
48
- }
49
- }
50
- /**
51
- * A wrapper around the Node.js file-system that supports readonly operations and path manipulation.
52
- */
53
- export class NodeJSReadonlyFileSystem extends NodeJSPathManipulation {
54
- constructor() {
55
- super(...arguments);
56
- this._caseSensitive = undefined;
57
- }
58
- isCaseSensitive() {
59
- if (this._caseSensitive === undefined) {
60
- // Note the use of the real file-system is intentional:
61
- // `this.exists()` relies upon `isCaseSensitive()` so that would cause an infinite recursion.
62
- this._caseSensitive = !fs.existsSync(this.normalize(toggleCase(__filename)));
63
- }
64
- return this._caseSensitive;
65
- }
66
- exists(path) {
67
- return fs.existsSync(path);
68
- }
69
- readFile(path) {
70
- return fs.readFileSync(path, 'utf8');
71
- }
72
- readFileBuffer(path) {
73
- return fs.readFileSync(path);
74
- }
75
- readdir(path) {
76
- return fs.readdirSync(path);
77
- }
78
- lstat(path) {
79
- return fs.lstatSync(path);
80
- }
81
- stat(path) {
82
- return fs.statSync(path);
83
- }
84
- realpath(path) {
85
- return this.resolve(fs.realpathSync(path));
86
- }
87
- getDefaultLibLocation() {
88
- return this.resolve(require.resolve('typescript'), '..');
89
- }
90
- }
91
- /**
92
- * A wrapper around the Node.js file-system (i.e. the `fs` package).
93
- */
94
- export class NodeJSFileSystem extends NodeJSReadonlyFileSystem {
95
- writeFile(path, data, exclusive = false) {
96
- fs.writeFileSync(path, data, exclusive ? { flag: 'wx' } : undefined);
97
- }
98
- removeFile(path) {
99
- fs.unlinkSync(path);
100
- }
101
- symlink(target, path) {
102
- fs.symlinkSync(target, path);
103
- }
104
- copyFile(from, to) {
105
- fs.copyFileSync(from, to);
106
- }
107
- moveFile(from, to) {
108
- fs.renameSync(from, to);
109
- }
110
- ensureDir(path) {
111
- const parents = [];
112
- while (!this.isRoot(path) && !this.exists(path)) {
113
- parents.push(path);
114
- path = this.dirname(path);
115
- }
116
- while (parents.length) {
117
- this.safeMkdir(parents.pop());
118
- }
119
- }
120
- removeDeep(path) {
121
- fs.rmdirSync(path, { recursive: true });
122
- }
123
- safeMkdir(path) {
124
- try {
125
- fs.mkdirSync(path);
126
- }
127
- catch (err) {
128
- // Ignore the error, if the path already exists and points to a directory.
129
- // Re-throw otherwise.
130
- if (!this.exists(path) || !this.stat(path).isDirectory()) {
131
- throw err;
132
- }
133
- }
134
- }
135
- }
136
- /**
137
- * Toggle the case of each character in a string.
138
- */
139
- function toggleCase(str) {
140
- return str.replace(/\w/g, ch => ch.toUpperCase() === ch ? ch.toLowerCase() : ch.toUpperCase());
141
- }
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZV9qc19maWxlX3N5c3RlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvZmlsZV9zeXN0ZW0vc3JjL25vZGVfanNfZmlsZV9zeXN0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsOEJBQThCO0FBQzlCLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sS0FBSyxDQUFDLE1BQU0sTUFBTSxDQUFDO0FBRzFCOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxHQUFHO1FBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBbUIsQ0FBQztJQUN6RCxDQUFDO0lBQ0QsS0FBSyxDQUFDLEdBQW1CO1FBQ3ZCLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUNELE9BQU8sQ0FBQyxHQUFHLEtBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBbUIsQ0FBQztJQUMvRCxDQUFDO0lBRUQsT0FBTyxDQUFtQixJQUFPO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFNLENBQUM7SUFDOUMsQ0FBQztJQUNELElBQUksQ0FBbUIsUUFBVyxFQUFFLEdBQUcsS0FBZTtRQUNwRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBTSxDQUFDO0lBQ3pELENBQUM7SUFDRCxNQUFNLENBQUMsSUFBb0I7UUFDekIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUNELFFBQVEsQ0FBQyxJQUFZO1FBQ25CLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ0QsUUFBUSxDQUF1QixJQUFPLEVBQUUsRUFBSztRQUMzQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQWlDLENBQUM7SUFDOUUsQ0FBQztJQUNELFFBQVEsQ0FBQyxRQUFnQixFQUFFLFNBQWtCO1FBQzNDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFnQixDQUFDO0lBQ3hELENBQUM7SUFDRCxPQUFPLENBQUMsSUFBZ0M7UUFDdEMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxTQUFTLENBQW1CLElBQU87UUFDakMseUNBQXlDO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFNLENBQUM7SUFDdkMsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsc0JBQXNCO0lBQXBFOztRQUNVLG1CQUFjLEdBQXNCLFNBQVMsQ0FBQztJQWlDeEQsQ0FBQztJQWhDQyxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLFNBQVMsRUFBRTtZQUNyQyx1REFBdUQ7WUFDdkQsNkZBQTZGO1lBQzdGLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM5RTtRQUNELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQW9CO1FBQ3pCLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsUUFBUSxDQUFDLElBQW9CO1FBQzNCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELGNBQWMsQ0FBQyxJQUFvQjtRQUNqQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELE9BQU8sQ0FBQyxJQUFvQjtRQUMxQixPQUFPLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFrQixDQUFDO0lBQy9DLENBQUM7SUFDRCxLQUFLLENBQUMsSUFBb0I7UUFDeEIsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLENBQUMsSUFBb0I7UUFDdkIsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFDRCxRQUFRLENBQUMsSUFBb0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QscUJBQXFCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNELENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGdCQUFpQixTQUFRLHdCQUF3QjtJQUM1RCxTQUFTLENBQUMsSUFBb0IsRUFBRSxJQUF1QixFQUFFLFlBQXFCLEtBQUs7UUFDakYsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFDRCxVQUFVLENBQUMsSUFBb0I7UUFDN0IsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBQ0QsT0FBTyxDQUFDLE1BQXNCLEVBQUUsSUFBb0I7UUFDbEQsRUFBRSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELFFBQVEsQ0FBQyxJQUFvQixFQUFFLEVBQWtCO1FBQy9DLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDRCxRQUFRLENBQUMsSUFBb0IsRUFBRSxFQUFrQjtRQUMvQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsU0FBUyxDQUFDLElBQW9CO1FBQzVCLE1BQU0sT0FBTyxHQUFxQixFQUFFLENBQUM7UUFDckMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQy9DLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkIsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0I7UUFDRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFHLENBQUMsQ0FBQztTQUNoQztJQUNILENBQUM7SUFDRCxVQUFVLENBQUMsSUFBb0I7UUFDN0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU8sU0FBUyxDQUFDLElBQW9CO1FBQ3BDLElBQUk7WUFDRixFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BCO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWiwwRUFBMEU7WUFDMUUsc0JBQXNCO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDeEQsTUFBTSxHQUFHLENBQUM7YUFDWDtTQUNGO0lBQ0gsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLFVBQVUsQ0FBQyxHQUFXO0lBQzdCLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBQ2pHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbi8vLyA8cmVmZXJlbmNlIHR5cGVzPVwibm9kZVwiIC8+XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtBYnNvbHV0ZUZzUGF0aCwgRmlsZVN0YXRzLCBGaWxlU3lzdGVtLCBQYXRoTWFuaXB1bGF0aW9uLCBQYXRoU2VnbWVudCwgUGF0aFN0cmluZywgUmVhZG9ubHlGaWxlU3lzdGVtfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBBIHdyYXBwZXIgYXJvdW5kIHRoZSBOb2RlLmpzIGZpbGUtc3lzdGVtIHRoYXQgc3VwcG9ydHMgcGF0aCBtYW5pcHVsYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBOb2RlSlNQYXRoTWFuaXB1bGF0aW9uIGltcGxlbWVudHMgUGF0aE1hbmlwdWxhdGlvbiB7XG4gIHB3ZCgpOiBBYnNvbHV0ZUZzUGF0aCB7XG4gICAgcmV0dXJuIHRoaXMubm9ybWFsaXplKHByb2Nlc3MuY3dkKCkpIGFzIEFic29sdXRlRnNQYXRoO1xuICB9XG4gIGNoZGlyKGRpcjogQWJzb2x1dGVGc1BhdGgpOiB2b2lkIHtcbiAgICBwcm9jZXNzLmNoZGlyKGRpcik7XG4gIH1cbiAgcmVzb2x2ZSguLi5wYXRoczogc3RyaW5nW10pOiBBYnNvbHV0ZUZzUGF0aCB7XG4gICAgcmV0dXJuIHRoaXMubm9ybWFsaXplKHAucmVzb2x2ZSguLi5wYXRocykpIGFzIEFic29sdXRlRnNQYXRoO1xuICB9XG5cbiAgZGlybmFtZTxUIGV4dGVuZHMgc3RyaW5nPihmaWxlOiBUKTogVCB7XG4gICAgcmV0dXJuIHRoaXMubm9ybWFsaXplKHAuZGlybmFtZShmaWxlKSkgYXMgVDtcbiAgfVxuICBqb2luPFQgZXh0ZW5kcyBzdHJpbmc+KGJhc2VQYXRoOiBULCAuLi5wYXRoczogc3RyaW5nW10pOiBUIHtcbiAgICByZXR1cm4gdGhpcy5ub3JtYWxpemUocC5qb2luKGJhc2VQYXRoLCAuLi5wYXRocykpIGFzIFQ7XG4gIH1cbiAgaXNSb290KHBhdGg6IEFic29sdXRlRnNQYXRoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGlybmFtZShwYXRoKSA9PT0gdGhpcy5ub3JtYWxpemUocGF0aCk7XG4gIH1cbiAgaXNSb290ZWQocGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHAuaXNBYnNvbHV0ZShwYXRoKTtcbiAgfVxuICByZWxhdGl2ZTxUIGV4dGVuZHMgUGF0aFN0cmluZz4oZnJvbTogVCwgdG86IFQpOiBQYXRoU2VnbWVudHxBYnNvbHV0ZUZzUGF0aCB7XG4gICAgcmV0dXJuIHRoaXMubm9ybWFsaXplKHAucmVsYXRpdmUoZnJvbSwgdG8pKSBhcyBQYXRoU2VnbWVudCB8IEFic29sdXRlRnNQYXRoO1xuICB9XG4gIGJhc2VuYW1lKGZpbGVQYXRoOiBzdHJpbmcsIGV4dGVuc2lvbj86IHN0cmluZyk6IFBhdGhTZWdtZW50IHtcbiAgICByZXR1cm4gcC5iYXNlbmFtZShmaWxlUGF0aCwgZXh0ZW5zaW9uKSBhcyBQYXRoU2VnbWVudDtcbiAgfVxuICBleHRuYW1lKHBhdGg6IEFic29sdXRlRnNQYXRofFBhdGhTZWdtZW50KTogc3RyaW5nIHtcbiAgICByZXR1cm4gcC5leHRuYW1lKHBhdGgpO1xuICB9XG4gIG5vcm1hbGl6ZTxUIGV4dGVuZHMgc3RyaW5nPihwYXRoOiBUKTogVCB7XG4gICAgLy8gQ29udmVydCBiYWNrc2xhc2hlcyB0byBmb3J3YXJkIHNsYXNoZXNcbiAgICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXFxcL2csICcvJykgYXMgVDtcbiAgfVxufVxuXG4vKipcbiAqIEEgd3JhcHBlciBhcm91bmQgdGhlIE5vZGUuanMgZmlsZS1zeXN0ZW0gdGhhdCBzdXBwb3J0cyByZWFkb25seSBvcGVyYXRpb25zIGFuZCBwYXRoIG1hbmlwdWxhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIE5vZGVKU1JlYWRvbmx5RmlsZVN5c3RlbSBleHRlbmRzIE5vZGVKU1BhdGhNYW5pcHVsYXRpb24gaW1wbGVtZW50cyBSZWFkb25seUZpbGVTeXN0ZW0ge1xuICBwcml2YXRlIF9jYXNlU2Vuc2l0aXZlOiBib29sZWFufHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgaXNDYXNlU2Vuc2l0aXZlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLl9jYXNlU2Vuc2l0aXZlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIE5vdGUgdGhlIHVzZSBvZiB0aGUgcmVhbCBmaWxlLXN5c3RlbSBpcyBpbnRlbnRpb25hbDpcbiAgICAgIC8vIGB0aGlzLmV4aXN0cygpYCByZWxpZXMgdXBvbiBgaXNDYXNlU2Vuc2l0aXZlKClgIHNvIHRoYXQgd291bGQgY2F1c2UgYW4gaW5maW5pdGUgcmVjdXJzaW9uLlxuICAgICAgdGhpcy5fY2FzZVNlbnNpdGl2ZSA9ICFmcy5leGlzdHNTeW5jKHRoaXMubm9ybWFsaXplKHRvZ2dsZUNhc2UoX19maWxlbmFtZSkpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2Nhc2VTZW5zaXRpdmU7XG4gIH1cbiAgZXhpc3RzKHBhdGg6IEFic29sdXRlRnNQYXRoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZzLmV4aXN0c1N5bmMocGF0aCk7XG4gIH1cbiAgcmVhZEZpbGUocGF0aDogQWJzb2x1dGVGc1BhdGgpOiBzdHJpbmcge1xuICAgIHJldHVybiBmcy5yZWFkRmlsZVN5bmMocGF0aCwgJ3V0ZjgnKTtcbiAgfVxuICByZWFkRmlsZUJ1ZmZlcihwYXRoOiBBYnNvbHV0ZUZzUGF0aCk6IFVpbnQ4QXJyYXkge1xuICAgIHJldHVybiBmcy5yZWFkRmlsZVN5bmMocGF0aCk7XG4gIH1cbiAgcmVhZGRpcihwYXRoOiBBYnNvbHV0ZUZzUGF0aCk6IFBhdGhTZWdtZW50W10ge1xuICAgIHJldHVybiBmcy5yZWFkZGlyU3luYyhwYXRoKSBhcyBQYXRoU2VnbWVudFtdO1xuICB9XG4gIGxzdGF0KHBhdGg6IEFic29sdXRlRnNQYXRoKTogRmlsZVN0YXRzIHtcbiAgICByZXR1cm4gZnMubHN0YXRTeW5jKHBhdGgpO1xuICB9XG4gIHN0YXQocGF0aDogQWJzb2x1dGVGc1BhdGgpOiBGaWxlU3RhdHMge1xuICAgIHJldHVybiBmcy5zdGF0U3luYyhwYXRoKTtcbiAgfVxuICByZWFscGF0aChwYXRoOiBBYnNvbHV0ZUZzUGF0aCk6IEFic29sdXRlRnNQYXRoIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlKGZzLnJlYWxwYXRoU3luYyhwYXRoKSk7XG4gIH1cbiAgZ2V0RGVmYXVsdExpYkxvY2F0aW9uKCk6IEFic29sdXRlRnNQYXRoIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlKHJlcXVpcmUucmVzb2x2ZSgndHlwZXNjcmlwdCcpLCAnLi4nKTtcbiAgfVxufVxuXG4vKipcbiAqIEEgd3JhcHBlciBhcm91bmQgdGhlIE5vZGUuanMgZmlsZS1zeXN0ZW0gKGkuZS4gdGhlIGBmc2AgcGFja2FnZSkuXG4gKi9cbmV4cG9ydCBjbGFzcyBOb2RlSlNGaWxlU3lzdGVtIGV4dGVuZHMgTm9kZUpTUmVhZG9ubHlGaWxlU3lzdGVtIGltcGxlbWVudHMgRmlsZVN5c3RlbSB7XG4gIHdyaXRlRmlsZShwYXRoOiBBYnNvbHV0ZUZzUGF0aCwgZGF0YTogc3RyaW5nfFVpbnQ4QXJyYXksIGV4Y2x1c2l2ZTogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLCBkYXRhLCBleGNsdXNpdmUgPyB7ZmxhZzogJ3d4J30gOiB1bmRlZmluZWQpO1xuICB9XG4gIHJlbW92ZUZpbGUocGF0aDogQWJzb2x1dGVGc1BhdGgpOiB2b2lkIHtcbiAgICBmcy51bmxpbmtTeW5jKHBhdGgpO1xuICB9XG4gIHN5bWxpbmsodGFyZ2V0OiBBYnNvbHV0ZUZzUGF0aCwgcGF0aDogQWJzb2x1dGVGc1BhdGgpOiB2b2lkIHtcbiAgICBmcy5zeW1saW5rU3luYyh0YXJnZXQsIHBhdGgpO1xuICB9XG4gIGNvcHlGaWxlKGZyb206IEFic29sdXRlRnNQYXRoLCB0bzogQWJzb2x1dGVGc1BhdGgpOiB2b2lkIHtcbiAgICBmcy5jb3B5RmlsZVN5bmMoZnJvbSwgdG8pO1xuICB9XG4gIG1vdmVGaWxlKGZyb206IEFic29sdXRlRnNQYXRoLCB0bzogQWJzb2x1dGVGc1BhdGgpOiB2b2lkIHtcbiAgICBmcy5yZW5hbWVTeW5jKGZyb20sIHRvKTtcbiAgfVxuICBlbnN1cmVEaXIocGF0aDogQWJzb2x1dGVGc1BhdGgpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJlbnRzOiBBYnNvbHV0ZUZzUGF0aFtdID0gW107XG4gICAgd2hpbGUgKCF0aGlzLmlzUm9vdChwYXRoKSAmJiAhdGhpcy5leGlzdHMocGF0aCkpIHtcbiAgICAgIHBhcmVudHMucHVzaChwYXRoKTtcbiAgICAgIHBhdGggPSB0aGlzLmRpcm5hbWUocGF0aCk7XG4gICAgfVxuICAgIHdoaWxlIChwYXJlbnRzLmxlbmd0aCkge1xuICAgICAgdGhpcy5zYWZlTWtkaXIocGFyZW50cy5wb3AoKSEpO1xuICAgIH1cbiAgfVxuICByZW1vdmVEZWVwKHBhdGg6IEFic29sdXRlRnNQYXRoKTogdm9pZCB7XG4gICAgZnMucm1kaXJTeW5jKHBhdGgsIHtyZWN1cnNpdmU6IHRydWV9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2FmZU1rZGlyKHBhdGg6IEFic29sdXRlRnNQYXRoKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGZzLm1rZGlyU3luYyhwYXRoKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIC8vIElnbm9yZSB0aGUgZXJyb3IsIGlmIHRoZSBwYXRoIGFscmVhZHkgZXhpc3RzIGFuZCBwb2ludHMgdG8gYSBkaXJlY3RvcnkuXG4gICAgICAvLyBSZS10aHJvdyBvdGhlcndpc2UuXG4gICAgICBpZiAoIXRoaXMuZXhpc3RzKHBhdGgpIHx8ICF0aGlzLnN0YXQocGF0aCkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVG9nZ2xlIHRoZSBjYXNlIG9mIGVhY2ggY2hhcmFjdGVyIGluIGEgc3RyaW5nLlxuICovXG5mdW5jdGlvbiB0b2dnbGVDYXNlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC9cXHcvZywgY2ggPT4gY2gudG9VcHBlckNhc2UoKSA9PT0gY2ggPyBjaC50b0xvd2VyQ2FzZSgpIDogY2gudG9VcHBlckNhc2UoKSk7XG59XG4iXX0=
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL2ZpbGVfc3lzdGVtL3NyYy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBBIGBzdHJpbmdgIHJlcHJlc2VudGluZyBhIHNwZWNpZmljIHR5cGUgb2YgcGF0aCwgd2l0aCBhIHBhcnRpY3VsYXIgYnJhbmQgYEJgLlxuICpcbiAqIEEgYHN0cmluZ2AgaXMgbm90IGFzc2lnbmFibGUgdG8gYSBgQnJhbmRlZFBhdGhgLCBidXQgYSBgQnJhbmRlZFBhdGhgIGlzIGFzc2lnbmFibGUgdG8gYSBgc3RyaW5nYC5cbiAqIFR3byBgQnJhbmRlZFBhdGhgcyB3aXRoIGRpZmZlcmVudCBicmFuZHMgYXJlIG5vdCBtdXR1YWxseSBhc3NpZ25hYmxlLlxuICovXG5leHBvcnQgdHlwZSBCcmFuZGVkUGF0aDxCIGV4dGVuZHMgc3RyaW5nPiA9IHN0cmluZyZ7XG4gIF9icmFuZDogQjtcbn07XG5cbi8qKlxuICogQSBmdWxseSBxdWFsaWZpZWQgcGF0aCBpbiB0aGUgZmlsZSBzeXN0ZW0sIGluIFBPU0lYIGZvcm0uXG4gKi9cbmV4cG9ydCB0eXBlIEFic29sdXRlRnNQYXRoID0gQnJhbmRlZFBhdGg8J0Fic29sdXRlRnNQYXRoJz47XG5cbi8qKlxuICogQSBwYXRoIHRoYXQncyByZWxhdGl2ZSB0byBhbm90aGVyICh1bnNwZWNpZmllZCkgcm9vdC5cbiAqXG4gKiBUaGlzIGRvZXMgbm90IG5lY2Vzc2FyaWx5IGhhdmUgdG8gcmVmZXIgdG8gYSBwaHlzaWNhbCBmaWxlLlxuICovXG5leHBvcnQgdHlwZSBQYXRoU2VnbWVudCA9IEJyYW5kZWRQYXRoPCdQYXRoU2VnbWVudCc+O1xuXG4vKipcbiAqIEFuIGFic3RyYWN0aW9uIG92ZXIgdGhlIHBhdGggbWFuaXB1bGF0aW9uIGFzcGVjdHMgb2YgYSBmaWxlLXN5c3RlbS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXRoTWFuaXB1bGF0aW9uIHtcbiAgZXh0bmFtZShwYXRoOiBBYnNvbHV0ZUZzUGF0aHxQYXRoU2VnbWVudCk6IHN0cmluZztcbiAgaXNSb290KHBhdGg6IEFic29sdXRlRnNQYXRoKTogYm9vbGVhbjtcbiAgaXNSb290ZWQocGF0aDogc3RyaW5nKTogYm9vbGVhbjtcbiAgZGlybmFtZTxUIGV4dGVuZHMgUGF0aFN0cmluZz4oZmlsZTogVCk6IFQ7XG4gIGV4dG5hbWUocGF0aDogQWJzb2x1dGVGc1BhdGh8UGF0aFNlZ21lbnQpOiBzdHJpbmc7XG4gIGpvaW48VCBleHRlbmRzIFBhdGhTdHJpbmc+KGJhc2VQYXRoOiBULCAuLi5wYXRoczogc3RyaW5nW10pOiBUO1xuICAvKipcbiAgICogQ29tcHV0ZSB0aGUgcmVsYXRpdmUgcGF0aCBiZXR3ZWVuIGBmcm9tYCBhbmQgYHRvYC5cbiAgICpcbiAgICogSW4gZmlsZS1zeXN0ZW1zIHRoYXQgY2FuIGhhdmUgbXVsdGlwbGUgZmlsZSB0cmVlcyB0aGUgcmV0dXJuZWQgcGF0aCBtYXkgbm90IGFjdHVhbGx5IGJlXG4gICAqIFwicmVsYXRpdmVcIiAoaS5lLiBgUGF0aFNlZ21lbnRgKS4gRm9yIGV4YW1wbGUsIFdpbmRvd3MgY2FuIGhhdmUgbXVsdGlwbGUgZHJpdmVzIDpcbiAgICogYHJlbGF0aXZlKCdjOi9hL2InLCAnZDovYS9jJylgIHdvdWxkIGJlIGBkOi9hL2MnLlxuICAgKi9cbiAgcmVsYXRpdmU8VCBleHRlbmRzIFBhdGhTdHJpbmc+KGZyb206IFQsIHRvOiBUKTogUGF0aFNlZ21lbnR8QWJzb2x1dGVGc1BhdGg7XG4gIGJhc2VuYW1lKGZpbGVQYXRoOiBzdHJpbmcsIGV4dGVuc2lvbj86IHN0cmluZyk6IFBhdGhTZWdtZW50O1xuICBub3JtYWxpemU8VCBleHRlbmRzIFBhdGhTdHJpbmc+KHBhdGg6IFQpOiBUO1xuICByZXNvbHZlKC4uLnBhdGhzOiBzdHJpbmdbXSk6IEFic29sdXRlRnNQYXRoO1xuICBwd2QoKTogQWJzb2x1dGVGc1BhdGg7XG4gIGNoZGlyKHBhdGg6IEFic29sdXRlRnNQYXRoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBBbiBhYnN0cmFjdGlvbiBvdmVyIHRoZSByZWFkLW9ubHkgYXNwZWN0cyBvZiBhIGZpbGUtc3lzdGVtLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlYWRvbmx5RmlsZVN5c3RlbSBleHRlbmRzIFBhdGhNYW5pcHVsYXRpb24ge1xuICBpc0Nhc2VTZW5zaXRpdmUoKTogYm9vbGVhbjtcbiAgZXhpc3RzKHBhdGg6IEFic29sdXRlRnNQYXRoKTogYm9vbGVhbjtcbiAgcmVhZEZpbGUocGF0aDogQWJzb2x1dGVGc1BhdGgpOiBzdHJpbmc7XG4gIHJlYWRGaWxlQnVmZmVyKHBhdGg6IEFic29sdXRlRnNQYXRoKTogVWludDhBcnJheTtcbiAgcmVhZGRpcihwYXRoOiBBYnNvbHV0ZUZzUGF0aCk6IFBhdGhTZWdtZW50W107XG4gIGxzdGF0KHBhdGg6IEFic29sdXRlRnNQYXRoKTogRmlsZVN0YXRzO1xuICBzdGF0KHBhdGg6IEFic29sdXRlRnNQYXRoKTogRmlsZVN0YXRzO1xuICByZWFscGF0aChmaWxlUGF0aDogQWJzb2x1dGVGc1BhdGgpOiBBYnNvbHV0ZUZzUGF0aDtcbiAgZ2V0RGVmYXVsdExpYkxvY2F0aW9uKCk6IEFic29sdXRlRnNQYXRoO1xufVxuXG4vKipcbiAqIEEgYmFzaWMgaW50ZXJmYWNlIHRvIGFic3RyYWN0IHRoZSB1bmRlcmx5aW5nIGZpbGUtc3lzdGVtLlxuICpcbiAqIFRoaXMgbWFrZXMgaXQgZWFzaWVyIHRvIHByb3ZpZGUgbW9jayBmaWxlLXN5c3RlbXMgaW4gdW5pdCB0ZXN0cyxcbiAqIGJ1dCBhbHNvIHRvIGNyZWF0ZSBjbGV2ZXIgZmlsZS1zeXN0ZW1zIHRoYXQgaGF2ZSBmZWF0dXJlcyBzdWNoIGFzIGNhY2hpbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVN5c3RlbSBleHRlbmRzIFJlYWRvbmx5RmlsZVN5c3RlbSB7XG4gIHdyaXRlRmlsZShwYXRoOiBBYnNvbHV0ZUZzUGF0aCwgZGF0YTogc3RyaW5nfFVpbnQ4QXJyYXksIGV4Y2x1c2l2ZT86IGJvb2xlYW4pOiB2b2lkO1xuICByZW1vdmVGaWxlKHBhdGg6IEFic29sdXRlRnNQYXRoKTogdm9pZDtcbiAgc3ltbGluayh0YXJnZXQ6IEFic29sdXRlRnNQYXRoLCBwYXRoOiBBYnNvbHV0ZUZzUGF0aCk6IHZvaWQ7XG4gIGNvcHlGaWxlKGZyb206IEFic29sdXRlRnNQYXRoLCB0bzogQWJzb2x1dGVGc1BhdGgpOiB2b2lkO1xuICBtb3ZlRmlsZShmcm9tOiBBYnNvbHV0ZUZzUGF0aCwgdG86IEFic29sdXRlRnNQYXRoKTogdm9pZDtcbiAgZW5zdXJlRGlyKHBhdGg6IEFic29sdXRlRnNQYXRoKTogdm9pZDtcbiAgcmVtb3ZlRGVlcChwYXRoOiBBYnNvbHV0ZUZzUGF0aCk6IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIFBhdGhTdHJpbmcgPSBzdHJpbmd8QWJzb2x1dGVGc1BhdGh8UGF0aFNlZ21lbnQ7XG5cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgYW4gb2JqZWN0IGluIHRoZSBGaWxlU3lzdGVtLlxuICogVGhpcyBpcyBhbmFsb2dvdXMgdG8gdGhlIGBmcy5TdGF0c2AgY2xhc3MgaW4gTm9kZS5qcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWxlU3RhdHMge1xuICBpc0ZpbGUoKTogYm9vbGVhbjtcbiAgaXNEaXJlY3RvcnkoKTogYm9vbGVhbjtcbiAgaXNTeW1ib2xpY0xpbmsoKTogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -1,22 +0,0 @@
1
- const TS_DTS_JS_EXTENSION = /(?:\.d)?\.ts$|\.js$/;
2
- /**
3
- * Convert Windows-style separators to POSIX separators.
4
- */
5
- export function normalizeSeparators(path) {
6
- // TODO: normalize path only for OS that need it.
7
- return path.replace(/\\/g, '/');
8
- }
9
- /**
10
- * Remove a .ts, .d.ts, or .js extension from a file name.
11
- */
12
- export function stripExtension(path) {
13
- return path.replace(TS_DTS_JS_EXTENSION, '');
14
- }
15
- export function getSourceFileOrError(program, fileName) {
16
- const sf = program.getSourceFile(fileName);
17
- if (sf === undefined) {
18
- throw new Error(`Program does not contain "${fileName}" - available files are ${program.getSourceFiles().map(sf => sf.fileName).join(', ')}`);
19
- }
20
- return sf;
21
- }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvZmlsZV9zeXN0ZW0vc3JjL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQztBQUVsRDs7R0FFRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxJQUFZO0lBQzlDLGlEQUFpRDtJQUNqRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQXVCLElBQU87SUFDMUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBTSxDQUFDO0FBQ3BELENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsT0FBbUIsRUFBRSxRQUF3QjtJQUNoRixNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLElBQUksRUFBRSxLQUFLLFNBQVMsRUFBRTtRQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixRQUFRLDJCQUNqRCxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDbkU7SUFDRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtBYnNvbHV0ZUZzUGF0aCwgUGF0aFN0cmluZ30gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IFRTX0RUU19KU19FWFRFTlNJT04gPSAvKD86XFwuZCk/XFwudHMkfFxcLmpzJC87XG5cbi8qKlxuICogQ29udmVydCBXaW5kb3dzLXN0eWxlIHNlcGFyYXRvcnMgdG8gUE9TSVggc2VwYXJhdG9ycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVNlcGFyYXRvcnMocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gVE9ETzogbm9ybWFsaXplIHBhdGggb25seSBmb3IgT1MgdGhhdCBuZWVkIGl0LlxuICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG59XG5cbi8qKlxuICogUmVtb3ZlIGEgLnRzLCAuZC50cywgb3IgLmpzIGV4dGVuc2lvbiBmcm9tIGEgZmlsZSBuYW1lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaXBFeHRlbnNpb248VCBleHRlbmRzIFBhdGhTdHJpbmc+KHBhdGg6IFQpOiBUIHtcbiAgcmV0dXJuIHBhdGgucmVwbGFjZShUU19EVFNfSlNfRVhURU5TSU9OLCAnJykgYXMgVDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNvdXJjZUZpbGVPckVycm9yKHByb2dyYW06IHRzLlByb2dyYW0sIGZpbGVOYW1lOiBBYnNvbHV0ZUZzUGF0aCk6IHRzLlNvdXJjZUZpbGUge1xuICBjb25zdCBzZiA9IHByb2dyYW0uZ2V0U291cmNlRmlsZShmaWxlTmFtZSk7XG4gIGlmIChzZiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBQcm9ncmFtIGRvZXMgbm90IGNvbnRhaW4gXCIke2ZpbGVOYW1lfVwiIC0gYXZhaWxhYmxlIGZpbGVzIGFyZSAke1xuICAgICAgICBwcm9ncmFtLmdldFNvdXJjZUZpbGVzKCkubWFwKHNmID0+IHNmLmZpbGVOYW1lKS5qb2luKCcsICcpfWApO1xuICB9XG4gIHJldHVybiBzZjtcbn1cbiJdfQ==
@@ -1,13 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- export { MockFileSystem } from './src/mock_file_system';
9
- export { MockFileSystemNative } from './src/mock_file_system_native';
10
- export { MockFileSystemPosix } from './src/mock_file_system_posix';
11
- export { MockFileSystemWindows } from './src/mock_file_system_windows';
12
- export { initMockFileSystem, runInEachFileSystem } from './src/test_helper';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL2ZpbGVfc3lzdGVtL3Rlc3RpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFTLGNBQWMsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ25FLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBVyxNQUFNLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmV4cG9ydCB7Rm9sZGVyLCBNb2NrRmlsZVN5c3RlbX0gZnJvbSAnLi9zcmMvbW9ja19maWxlX3N5c3RlbSc7XG5leHBvcnQge01vY2tGaWxlU3lzdGVtTmF0aXZlfSBmcm9tICcuL3NyYy9tb2NrX2ZpbGVfc3lzdGVtX25hdGl2ZSc7XG5leHBvcnQge01vY2tGaWxlU3lzdGVtUG9zaXh9IGZyb20gJy4vc3JjL21vY2tfZmlsZV9zeXN0ZW1fcG9zaXgnO1xuZXhwb3J0IHtNb2NrRmlsZVN5c3RlbVdpbmRvd3N9IGZyb20gJy4vc3JjL21vY2tfZmlsZV9zeXN0ZW1fd2luZG93cyc7XG5leHBvcnQge2luaXRNb2NrRmlsZVN5c3RlbSwgcnVuSW5FYWNoRmlsZVN5c3RlbSwgVGVzdEZpbGV9IGZyb20gJy4vc3JjL3Rlc3RfaGVscGVyJztcbiJdfQ==