@angular/compiler-cli 12.2.7 → 13.0.0-next.10

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 (602) hide show
  1. package/bundles/index.js +20414 -0
  2. package/bundles/index.js.map +6 -0
  3. package/bundles/linker/babel/index.js +2384 -0
  4. package/bundles/linker/babel/index.js.map +6 -0
  5. package/bundles/linker/index.js +1849 -0
  6. package/bundles/linker/index.js.map +6 -0
  7. package/bundles/ngcc/index.js +16043 -0
  8. package/bundles/ngcc/index.js.map +6 -0
  9. package/bundles/ngcc/main-ngcc.js +16131 -0
  10. package/bundles/ngcc/main-ngcc.js.map +6 -0
  11. package/bundles/ngcc/src/execution/cluster/ngcc_cluster_worker.js +13855 -0
  12. package/bundles/ngcc/src/execution/cluster/ngcc_cluster_worker.js.map +6 -0
  13. package/bundles/ngcc/src/locking/lock_file_with_child_process/ngcc_lock_unlocker.js +334 -0
  14. package/bundles/ngcc/src/locking/lock_file_with_child_process/ngcc_lock_unlocker.js.map +6 -0
  15. package/bundles/private/bazel.js +97 -0
  16. package/bundles/private/bazel.js.map +6 -0
  17. package/bundles/private/localize.js +911 -0
  18. package/bundles/private/localize.js.map +6 -0
  19. package/bundles/private/migrations.js +2181 -0
  20. package/bundles/private/migrations.js.map +6 -0
  21. package/bundles/private/tooling.js +942 -0
  22. package/bundles/private/tooling.js.map +6 -0
  23. package/bundles/src/bin/ng_xi18n.js +20466 -0
  24. package/bundles/src/bin/ng_xi18n.js.map +6 -0
  25. package/bundles/src/bin/ngc.js +20468 -0
  26. package/bundles/src/bin/ngc.js.map +6 -0
  27. package/bundles_metadata.json +1 -0
  28. package/import_meta_url.d.ts +14 -0
  29. package/index.d.ts +4 -1
  30. package/linker/babel/src/ast/babel_ast_factory.d.ts +1 -8
  31. package/linker/babel/src/ast/babel_ast_host.d.ts +1 -1
  32. package/linker/babel/src/babel_core.d.ts +36 -0
  33. package/linker/babel/src/babel_declaration_scope.d.ts +1 -1
  34. package/linker/babel/src/babel_plugin.d.ts +1 -8
  35. package/linker/babel/src/es2015_linker_plugin.d.ts +2 -2
  36. package/linker/src/ast/typescript/typescript_ast_host.d.ts +1 -1
  37. package/linker/src/file_linker/emit_scopes/emit_scope.d.ts +1 -2
  38. package/linker/src/file_linker/emit_scopes/iife_emit_scope.d.ts +1 -1
  39. package/linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.d.ts +1 -2
  40. package/linker/src/file_linker/partial_linkers/partial_component_linker_1.d.ts +1 -2
  41. package/linker/src/file_linker/partial_linkers/partial_directive_linker_1.d.ts +1 -2
  42. package/linker/src/file_linker/partial_linkers/partial_factory_linker_1.d.ts +1 -2
  43. package/linker/src/file_linker/partial_linkers/partial_injectable_linker_1.d.ts +1 -2
  44. package/linker/src/file_linker/partial_linkers/partial_injector_linker_1.d.ts +1 -2
  45. package/linker/src/file_linker/partial_linkers/partial_linker.d.ts +1 -2
  46. package/linker/src/file_linker/partial_linkers/partial_linker_selector.d.ts +2 -2
  47. package/linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.d.ts +1 -2
  48. package/linker/src/file_linker/partial_linkers/partial_pipe_linker_1.d.ts +1 -2
  49. package/linker/src/file_linker/partial_linkers/util.d.ts +1 -2
  50. package/ngcc/index.d.ts +15 -0
  51. package/ngcc/src/analysis/decoration_analyzer.d.ts +1 -1
  52. package/ngcc/src/analysis/module_with_providers_analyzer.d.ts +1 -1
  53. package/ngcc/src/analysis/ngcc_references_registry.d.ts +1 -1
  54. package/ngcc/src/analysis/ngcc_trait_compiler.d.ts +1 -1
  55. package/ngcc/src/analysis/private_declarations_analyzer.d.ts +1 -1
  56. package/ngcc/src/analysis/switch_marker_analyzer.d.ts +1 -1
  57. package/ngcc/src/analysis/types.d.ts +1 -1
  58. package/ngcc/src/dependencies/esm_dependency_host.d.ts +1 -1
  59. package/ngcc/src/execution/cluster/api.d.ts +5 -1
  60. package/ngcc/src/execution/cluster/master.d.ts +5 -3
  61. package/{src/ngtsc/logging/testing/index.d.ts → ngcc/src/execution/cluster/ngcc_cluster_worker.d.ts} +2 -2
  62. package/ngcc/src/host/commonjs_host.d.ts +1 -1
  63. package/ngcc/src/host/commonjs_umd_utils.d.ts +1 -1
  64. package/ngcc/src/host/delegating_host.d.ts +1 -1
  65. package/ngcc/src/host/esm2015_host.d.ts +1 -1
  66. package/ngcc/src/host/esm5_host.d.ts +2 -1
  67. package/ngcc/src/host/ngcc_host.d.ts +1 -1
  68. package/ngcc/src/host/umd_host.d.ts +1 -1
  69. package/ngcc/src/host/utils.d.ts +1 -1
  70. package/ngcc/src/locking/lock_file.d.ts +1 -1
  71. package/ngcc/src/locking/lock_file_with_child_process/index.d.ts +2 -0
  72. package/ngcc/src/locking/lock_file_with_child_process/{unlocker.d.ts → ngcc_lock_unlocker.d.ts} +1 -1
  73. package/ngcc/src/migrations/migration.d.ts +1 -1
  74. package/ngcc/src/migrations/missing_injectable_migration.d.ts +1 -1
  75. package/ngcc/src/migrations/undecorated_child_migration.d.ts +1 -1
  76. package/ngcc/src/migrations/undecorated_parent_migration.d.ts +1 -1
  77. package/ngcc/src/migrations/utils.d.ts +1 -1
  78. package/ngcc/src/packages/build_marker.d.ts +1 -1
  79. package/ngcc/src/packages/bundle_program.d.ts +1 -1
  80. package/ngcc/src/packages/configuration.d.ts +41 -4
  81. package/ngcc/src/packages/entry_point_bundle.d.ts +1 -1
  82. package/ngcc/src/packages/ngcc_compiler_host.d.ts +1 -1
  83. package/ngcc/src/packages/source_file_cache.d.ts +1 -1
  84. package/ngcc/src/packages/transformer.d.ts +1 -1
  85. package/ngcc/src/rendering/commonjs_rendering_formatter.d.ts +1 -1
  86. package/ngcc/src/rendering/dts_renderer.d.ts +1 -1
  87. package/ngcc/src/rendering/esm5_rendering_formatter.d.ts +1 -1
  88. package/ngcc/src/rendering/esm_rendering_formatter.d.ts +1 -1
  89. package/ngcc/src/rendering/renderer.d.ts +1 -1
  90. package/ngcc/src/rendering/rendering_formatter.d.ts +1 -1
  91. package/ngcc/src/rendering/source_maps.d.ts +3 -3
  92. package/ngcc/src/rendering/umd_rendering_formatter.d.ts +1 -1
  93. package/ngcc/src/rendering/utils.d.ts +1 -1
  94. package/ngcc/src/utils.d.ts +1 -1
  95. package/package.json +52 -11
  96. package/private/bazel.d.ts +13 -0
  97. package/private/localize.d.ts +15 -0
  98. package/private/migrations.d.ts +16 -0
  99. package/{src → private}/tooling.d.ts +2 -2
  100. package/src/bin/ng_xi18n.d.ts +10 -0
  101. package/{ngcc/main-ivy-ngcc.d.ts → src/bin/ngc.d.ts} +2 -1
  102. package/src/diagnostics/translate_diagnostics.d.ts +1 -1
  103. package/src/extract_i18n.d.ts +0 -5
  104. package/src/main.d.ts +6 -6
  105. package/src/metadata/bundle_index_host.d.ts +1 -1
  106. package/src/metadata/bundler.d.ts +1 -1
  107. package/src/metadata/collector.d.ts +1 -1
  108. package/src/metadata/evaluator.d.ts +1 -1
  109. package/src/metadata/symbols.d.ts +1 -1
  110. package/src/ngtsc/annotations/src/component.d.ts +14 -1
  111. package/src/ngtsc/annotations/src/diagnostics.d.ts +1 -1
  112. package/src/ngtsc/annotations/src/directive.d.ts +1 -1
  113. package/src/ngtsc/annotations/src/metadata.d.ts +2 -2
  114. package/src/ngtsc/annotations/src/ng_module.d.ts +2 -4
  115. package/src/ngtsc/annotations/src/pipe.d.ts +1 -1
  116. package/src/ngtsc/annotations/src/util.d.ts +2 -4
  117. package/src/ngtsc/core/api/src/adapter.d.ts +1 -1
  118. package/src/ngtsc/core/api/src/interfaces.d.ts +1 -12
  119. package/src/ngtsc/core/api/src/options.d.ts +1 -1
  120. package/src/ngtsc/core/src/compiler.d.ts +2 -8
  121. package/src/ngtsc/core/src/host.d.ts +1 -1
  122. package/src/ngtsc/cycles/src/analyzer.d.ts +1 -1
  123. package/src/ngtsc/cycles/src/imports.d.ts +1 -1
  124. package/src/ngtsc/diagnostics/src/error.d.ts +1 -1
  125. package/src/ngtsc/entry_point/src/generator.d.ts +1 -1
  126. package/src/ngtsc/entry_point/src/private_export_checker.d.ts +1 -1
  127. package/src/ngtsc/file_system/src/compiler_host.d.ts +1 -1
  128. package/src/ngtsc/file_system/src/logical.d.ts +1 -1
  129. package/src/ngtsc/file_system/src/util.d.ts +1 -1
  130. package/src/ngtsc/imports/src/alias.d.ts +1 -1
  131. package/src/ngtsc/imports/src/default.d.ts +1 -1
  132. package/src/ngtsc/imports/src/emitter.d.ts +1 -1
  133. package/src/ngtsc/imports/src/find_export.d.ts +1 -1
  134. package/src/ngtsc/imports/src/references.d.ts +1 -1
  135. package/src/ngtsc/imports/src/resolver.d.ts +1 -1
  136. package/src/ngtsc/incremental/api.d.ts +1 -1
  137. package/src/ngtsc/incremental/src/dependency_tracking.d.ts +1 -1
  138. package/src/ngtsc/incremental/src/incremental.d.ts +1 -1
  139. package/src/ngtsc/incremental/src/state.d.ts +1 -1
  140. package/src/ngtsc/incremental/src/strategy.d.ts +1 -1
  141. package/src/ngtsc/indexer/src/api.d.ts +5 -2
  142. package/src/ngtsc/metadata/src/api.d.ts +1 -1
  143. package/src/ngtsc/metadata/src/dts.d.ts +1 -1
  144. package/src/ngtsc/metadata/src/resource_registry.d.ts +1 -1
  145. package/src/ngtsc/metadata/src/util.d.ts +1 -1
  146. package/src/ngtsc/partial_evaluator/index.d.ts +1 -0
  147. package/src/ngtsc/partial_evaluator/src/builtin.d.ts +1 -1
  148. package/src/ngtsc/partial_evaluator/src/diagnostics.d.ts +1 -1
  149. package/src/ngtsc/partial_evaluator/src/dynamic.d.ts +1 -1
  150. package/src/ngtsc/partial_evaluator/src/interface.d.ts +1 -1
  151. package/src/ngtsc/partial_evaluator/src/interpreter.d.ts +1 -1
  152. package/src/ngtsc/partial_evaluator/src/result.d.ts +1 -1
  153. package/src/ngtsc/partial_evaluator/src/ts_helpers.d.ts +1 -1
  154. package/src/ngtsc/program.d.ts +1 -1
  155. package/src/ngtsc/program_driver/src/api.d.ts +1 -1
  156. package/src/ngtsc/program_driver/src/ts_create_program_driver.d.ts +1 -1
  157. package/src/ngtsc/reflection/src/host.d.ts +1 -1
  158. package/src/ngtsc/reflection/src/type_to_value.d.ts +1 -1
  159. package/src/ngtsc/reflection/src/typescript.d.ts +1 -1
  160. package/src/ngtsc/reflection/src/util.d.ts +1 -1
  161. package/src/ngtsc/resource/src/loader.d.ts +1 -1
  162. package/src/ngtsc/scope/src/local.d.ts +1 -1
  163. package/src/ngtsc/scope/src/typecheck.d.ts +1 -1
  164. package/src/ngtsc/shims/api.d.ts +1 -1
  165. package/src/ngtsc/shims/src/adapter.d.ts +1 -1
  166. package/src/ngtsc/shims/src/expando.d.ts +1 -1
  167. package/src/ngtsc/shims/src/factory_generator.d.ts +1 -1
  168. package/src/ngtsc/shims/src/reference_tagger.d.ts +1 -1
  169. package/src/ngtsc/shims/src/summary_generator.d.ts +1 -1
  170. package/src/ngtsc/switch/src/switch.d.ts +1 -1
  171. package/src/ngtsc/transform/src/alias.d.ts +1 -1
  172. package/src/ngtsc/transform/src/api.d.ts +1 -1
  173. package/src/ngtsc/transform/src/compilation.d.ts +1 -1
  174. package/src/ngtsc/transform/src/declaration.d.ts +1 -1
  175. package/src/ngtsc/transform/src/trait.d.ts +1 -1
  176. package/src/ngtsc/transform/src/transform.d.ts +1 -1
  177. package/src/ngtsc/transform/src/utils.d.ts +1 -1
  178. package/src/ngtsc/translator/src/import_manager.d.ts +1 -1
  179. package/src/ngtsc/translator/src/translator.d.ts +0 -1
  180. package/src/ngtsc/translator/src/type_translator.d.ts +1 -2
  181. package/src/ngtsc/translator/src/typescript_ast_factory.d.ts +1 -1
  182. package/src/ngtsc/translator/src/typescript_translator.d.ts +1 -1
  183. package/src/ngtsc/tsc_plugin.d.ts +1 -1
  184. package/src/ngtsc/typecheck/api/api.d.ts +1 -1
  185. package/src/ngtsc/typecheck/api/checker.d.ts +8 -5
  186. package/src/ngtsc/typecheck/api/context.d.ts +1 -1
  187. package/src/ngtsc/typecheck/api/scope.d.ts +1 -1
  188. package/src/ngtsc/typecheck/api/symbols.d.ts +1 -1
  189. package/src/ngtsc/typecheck/diagnostics/src/diagnostic.d.ts +1 -1
  190. package/src/ngtsc/typecheck/extended/api/api.d.ts +1 -1
  191. package/src/ngtsc/typecheck/extended/api/extended_template_checker.d.ts +1 -1
  192. package/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.d.ts +1 -1
  193. package/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.d.ts +1 -1
  194. package/src/ngtsc/typecheck/extended/src/extended_template_checker.d.ts +1 -1
  195. package/src/ngtsc/typecheck/src/checker.d.ts +5 -5
  196. package/src/ngtsc/typecheck/src/comments.d.ts +1 -1
  197. package/src/ngtsc/typecheck/src/completion.d.ts +4 -6
  198. package/src/ngtsc/typecheck/src/context.d.ts +1 -1
  199. package/src/ngtsc/typecheck/src/diagnostics.d.ts +1 -1
  200. package/src/ngtsc/typecheck/src/environment.d.ts +1 -1
  201. package/src/ngtsc/typecheck/src/expression.d.ts +1 -1
  202. package/src/ngtsc/typecheck/src/oob.d.ts +3 -4
  203. package/src/ngtsc/typecheck/src/shim.d.ts +1 -1
  204. package/src/ngtsc/typecheck/src/source.d.ts +1 -1
  205. package/src/ngtsc/typecheck/src/tcb_util.d.ts +1 -1
  206. package/src/ngtsc/typecheck/src/template_symbol_builder.d.ts +1 -1
  207. package/src/ngtsc/typecheck/src/ts_util.d.ts +1 -1
  208. package/src/ngtsc/typecheck/src/type_check_block.d.ts +1 -1
  209. package/src/ngtsc/typecheck/src/type_check_file.d.ts +1 -1
  210. package/src/ngtsc/typecheck/src/type_constructor.d.ts +1 -1
  211. package/src/ngtsc/typecheck/src/type_emitter.d.ts +1 -1
  212. package/src/ngtsc/typecheck/src/type_parameter_emitter.d.ts +1 -1
  213. package/src/ngtsc/util/src/typescript.d.ts +1 -1
  214. package/src/ngtsc/util/src/visitor.d.ts +1 -1
  215. package/src/perform_compile.d.ts +1 -1
  216. package/src/perform_watch.d.ts +1 -1
  217. package/src/transformers/api.d.ts +2 -5
  218. package/src/transformers/compiler_host.d.ts +1 -1
  219. package/src/transformers/{downlevel_decorators_transform.d.ts → downlevel_decorators_transform/downlevel_decorators_transform.d.ts} +3 -3
  220. package/src/{ngtsc/routing → transformers/downlevel_decorators_transform}/index.d.ts +2 -3
  221. package/src/transformers/{patch_alias_reference_resolution.d.ts → downlevel_decorators_transform/patch_alias_reference_resolution.d.ts} +2 -2
  222. package/src/transformers/i18n.d.ts +1 -1
  223. package/src/transformers/inline_resources.d.ts +1 -1
  224. package/src/transformers/lower_expressions.d.ts +1 -1
  225. package/src/transformers/metadata_cache.d.ts +1 -1
  226. package/src/transformers/node_emitter.d.ts +2 -3
  227. package/src/transformers/node_emitter_transform.d.ts +1 -1
  228. package/src/transformers/program.d.ts +1 -1
  229. package/src/transformers/r3_metadata_transform.d.ts +1 -1
  230. package/src/transformers/r3_transform.d.ts +1 -1
  231. package/src/transformers/util.d.ts +1 -1
  232. package/index.js +0 -40
  233. package/linker/babel/index.js +0 -25
  234. package/linker/babel/src/ast/babel_ast_factory.js +0 -153
  235. package/linker/babel/src/ast/babel_ast_host.js +0 -181
  236. package/linker/babel/src/babel_declaration_scope.js +0 -67
  237. package/linker/babel/src/babel_plugin.js +0 -38
  238. package/linker/babel/src/es2015_linker_plugin.js +0 -183
  239. package/linker/babel/src/linker_plugin_options.js +0 -13
  240. package/linker/index.js +0 -27
  241. package/linker/src/ast/ast_host.js +0 -20
  242. package/linker/src/ast/ast_value.js +0 -299
  243. package/linker/src/ast/typescript/typescript_ast_host.js +0 -183
  244. package/linker/src/ast/utils.js +0 -31
  245. package/linker/src/fatal_linker_error.js +0 -49
  246. package/linker/src/file_linker/declaration_scope.js +0 -20
  247. package/linker/src/file_linker/emit_scopes/emit_scope.js +0 -57
  248. package/linker/src/file_linker/emit_scopes/iife_emit_scope.js +0 -51
  249. package/linker/src/file_linker/file_linker.js +0 -97
  250. package/linker/src/file_linker/get_source_file.js +0 -42
  251. package/linker/src/file_linker/linker_environment.js +0 -38
  252. package/linker/src/file_linker/linker_options.js +0 -29
  253. package/linker/src/file_linker/needs_linking.js +0 -41
  254. package/linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.js +0 -47
  255. package/linker/src/file_linker/partial_linkers/partial_component_linker_1.js +0 -210
  256. package/linker/src/file_linker/partial_linkers/partial_directive_linker_1.js +0 -154
  257. package/linker/src/file_linker/partial_linkers/partial_factory_linker_1.js +0 -70
  258. package/linker/src/file_linker/partial_linkers/partial_injectable_linker_1.js +0 -74
  259. package/linker/src/file_linker/partial_linkers/partial_injector_linker_1.js +0 -56
  260. package/linker/src/file_linker/partial_linkers/partial_linker.js +0 -13
  261. package/linker/src/file_linker/partial_linkers/partial_linker_selector.js +0 -194
  262. package/linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.js +0 -126
  263. package/linker/src/file_linker/partial_linkers/partial_pipe_linker_1.js +0 -59
  264. package/linker/src/file_linker/partial_linkers/util.js +0 -95
  265. package/linker/src/file_linker/translator.js +0 -40
  266. package/linker/src/linker_import_generator.js +0 -43
  267. package/ngcc/index.js +0 -33
  268. package/ngcc/main-ivy-ngcc.js +0 -12
  269. package/ngcc/main-ngcc.js +0 -54
  270. package/ngcc/src/analysis/decoration_analyzer.js +0 -268
  271. package/ngcc/src/analysis/migration_host.js +0 -108
  272. package/ngcc/src/analysis/module_with_providers_analyzer.js +0 -197
  273. package/ngcc/src/analysis/ngcc_references_registry.js +0 -65
  274. package/ngcc/src/analysis/ngcc_trait_compiler.js +0 -117
  275. package/ngcc/src/analysis/private_declarations_analyzer.js +0 -63
  276. package/ngcc/src/analysis/switch_marker_analyzer.js +0 -50
  277. package/ngcc/src/analysis/types.js +0 -15
  278. package/ngcc/src/analysis/util.js +0 -36
  279. package/ngcc/src/command_line_options.js +0 -156
  280. package/ngcc/src/constants.js +0 -23
  281. package/ngcc/src/dependencies/commonjs_dependency_host.js +0 -129
  282. package/ngcc/src/dependencies/dependency_host.js +0 -143
  283. package/ngcc/src/dependencies/dependency_resolver.js +0 -180
  284. package/ngcc/src/dependencies/dts_dependency_host.js +0 -35
  285. package/ngcc/src/dependencies/esm_dependency_host.js +0 -307
  286. package/ngcc/src/dependencies/module_resolver.js +0 -269
  287. package/ngcc/src/dependencies/umd_dependency_host.js +0 -53
  288. package/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.js +0 -70
  289. package/ngcc/src/entry_point_finder/entry_point_collector.js +0 -157
  290. package/ngcc/src/entry_point_finder/interface.js +0 -13
  291. package/ngcc/src/entry_point_finder/program_based_entry_point_finder.js +0 -132
  292. package/ngcc/src/entry_point_finder/targeted_entry_point_finder.js +0 -268
  293. package/ngcc/src/entry_point_finder/tracing_entry_point_finder.js +0 -78
  294. package/ngcc/src/entry_point_finder/utils.js +0 -234
  295. package/ngcc/src/execution/analyze_entry_points.js +0 -197
  296. package/ngcc/src/execution/api.js +0 -13
  297. package/ngcc/src/execution/cluster/api.js +0 -20
  298. package/ngcc/src/execution/cluster/executor.js +0 -52
  299. package/ngcc/src/execution/cluster/master.js +0 -311
  300. package/ngcc/src/execution/cluster/package_json_updater.js +0 -79
  301. package/ngcc/src/execution/cluster/utils.js +0 -77
  302. package/ngcc/src/execution/cluster/worker.js +0 -123
  303. package/ngcc/src/execution/create_compile_function.js +0 -76
  304. package/ngcc/src/execution/single_process_executor.js +0 -91
  305. package/ngcc/src/execution/tasks/api.js +0 -35
  306. package/ngcc/src/execution/tasks/completion.js +0 -79
  307. package/ngcc/src/execution/tasks/queues/base_task_queue.js +0 -120
  308. package/ngcc/src/execution/tasks/queues/parallel_task_queue.js +0 -87
  309. package/ngcc/src/execution/tasks/queues/serial_task_queue.js +0 -49
  310. package/ngcc/src/execution/tasks/utils.js +0 -167
  311. package/ngcc/src/host/commonjs_host.js +0 -261
  312. package/ngcc/src/host/commonjs_umd_utils.js +0 -210
  313. package/ngcc/src/host/delegating_host.js +0 -156
  314. package/ngcc/src/host/esm2015_host.js +0 -2441
  315. package/ngcc/src/host/esm5_host.js +0 -744
  316. package/ngcc/src/host/ngcc_host.js +0 -29
  317. package/ngcc/src/host/umd_host.js +0 -539
  318. package/ngcc/src/host/utils.js +0 -26
  319. package/ngcc/src/locking/async_locker.js +0 -121
  320. package/ngcc/src/locking/lock_file.js +0 -18
  321. package/ngcc/src/locking/lock_file_with_child_process/index.js +0 -93
  322. package/ngcc/src/locking/lock_file_with_child_process/unlocker.js +0 -46
  323. package/ngcc/src/locking/lock_file_with_child_process/util.js +0 -43
  324. package/ngcc/src/locking/sync_locker.js +0 -67
  325. package/ngcc/src/main.js +0 -163
  326. package/ngcc/src/migrations/migration.js +0 -13
  327. package/ngcc/src/migrations/missing_injectable_migration.js +0 -227
  328. package/ngcc/src/migrations/undecorated_child_migration.js +0 -90
  329. package/ngcc/src/migrations/undecorated_parent_migration.js +0 -103
  330. package/ngcc/src/migrations/utils.js +0 -137
  331. package/ngcc/src/ngcc_options.js +0 -135
  332. package/ngcc/src/packages/build_marker.js +0 -124
  333. package/ngcc/src/packages/bundle_program.js +0 -80
  334. package/ngcc/src/packages/configuration.js +0 -277
  335. package/ngcc/src/packages/entry_point.js +0 -267
  336. package/ngcc/src/packages/entry_point_bundle.js +0 -96
  337. package/ngcc/src/packages/entry_point_manifest.js +0 -207
  338. package/ngcc/src/packages/ngcc_compiler_host.js +0 -101
  339. package/ngcc/src/packages/patch_ts_expando_initializer.js +0 -174
  340. package/ngcc/src/packages/source_file_cache.js +0 -207
  341. package/ngcc/src/packages/transformer.js +0 -157
  342. package/ngcc/src/path_mappings.js +0 -27
  343. package/ngcc/src/rendering/commonjs_rendering_formatter.js +0 -106
  344. package/ngcc/src/rendering/dts_renderer.js +0 -170
  345. package/ngcc/src/rendering/esm5_rendering_formatter.js +0 -70
  346. package/ngcc/src/rendering/esm_rendering_formatter.js +0 -291
  347. package/ngcc/src/rendering/ngcc_import_rewriter.js +0 -49
  348. package/ngcc/src/rendering/renderer.js +0 -204
  349. package/ngcc/src/rendering/rendering_formatter.js +0 -15
  350. package/ngcc/src/rendering/source_maps.js +0 -68
  351. package/ngcc/src/rendering/umd_rendering_formatter.js +0 -326
  352. package/ngcc/src/rendering/utils.js +0 -35
  353. package/ngcc/src/utils.js +0 -182
  354. package/ngcc/src/writing/cleaning/cleaning_strategies.js +0 -80
  355. package/ngcc/src/writing/cleaning/package_cleaner.js +0 -126
  356. package/ngcc/src/writing/cleaning/utils.js +0 -30
  357. package/ngcc/src/writing/file_writer.js +0 -13
  358. package/ngcc/src/writing/in_place_file_writer.js +0 -90
  359. package/ngcc/src/writing/new_entry_point_file_writer.js +0 -214
  360. package/ngcc/src/writing/package_json_updater.js +0 -182
  361. package/src/diagnostics/translate_diagnostics.js +0 -61
  362. package/src/diagnostics/typescript_version.js +0 -96
  363. package/src/extract_i18n.js +0 -62
  364. package/src/language_services.js +0 -34
  365. package/src/main.js +0 -210
  366. package/src/metadata/bundle_index_host.js +0 -133
  367. package/src/metadata/bundler.js +0 -624
  368. package/src/metadata/collector.js +0 -799
  369. package/src/metadata/evaluator.js +0 -677
  370. package/src/metadata/index.js +0 -24
  371. package/src/metadata/index_writer.js +0 -80
  372. package/src/metadata/schema.js +0 -136
  373. package/src/metadata/symbols.js +0 -149
  374. package/src/ngtsc/annotations/index.js +0 -35
  375. package/src/ngtsc/annotations/src/api.js +0 -20
  376. package/src/ngtsc/annotations/src/component.js +0 -1286
  377. package/src/ngtsc/annotations/src/diagnostics.js +0 -174
  378. package/src/ngtsc/annotations/src/directive.js +0 -724
  379. package/src/ngtsc/annotations/src/factory.js +0 -32
  380. package/src/ngtsc/annotations/src/injectable.js +0 -277
  381. package/src/ngtsc/annotations/src/metadata.js +0 -159
  382. package/src/ngtsc/annotations/src/ng_module.js +0 -677
  383. package/src/ngtsc/annotations/src/pipe.js +0 -171
  384. package/src/ngtsc/annotations/src/references_registry.js +0 -38
  385. package/src/ngtsc/annotations/src/util.js +0 -566
  386. package/src/ngtsc/core/api/index.js +0 -25
  387. package/src/ngtsc/core/api/src/adapter.js +0 -20
  388. package/src/ngtsc/core/api/src/interfaces.js +0 -20
  389. package/src/ngtsc/core/api/src/options.js +0 -20
  390. package/src/ngtsc/core/api/src/public_options.js +0 -20
  391. package/src/ngtsc/core/index.js +0 -25
  392. package/src/ngtsc/core/src/compiler.js +0 -1142
  393. package/src/ngtsc/core/src/host.js +0 -273
  394. package/src/ngtsc/cycles/index.js +0 -26
  395. package/src/ngtsc/cycles/src/analyzer.js +0 -163
  396. package/src/ngtsc/cycles/src/imports.js +0 -175
  397. package/src/ngtsc/diagnostics/index.js +0 -33
  398. package/src/ngtsc/diagnostics/src/error.js +0 -69
  399. package/src/ngtsc/diagnostics/src/error_code.js +0 -235
  400. package/src/ngtsc/diagnostics/src/util.js +0 -35
  401. package/src/ngtsc/entry_point/index.js +0 -29
  402. package/src/ngtsc/entry_point/src/generator.js +0 -45
  403. package/src/ngtsc/entry_point/src/logic.js +0 -61
  404. package/src/ngtsc/entry_point/src/private_export_checker.js +0 -137
  405. package/src/ngtsc/entry_point/src/reference_graph.js +0 -91
  406. package/src/ngtsc/file_system/index.js +0 -45
  407. package/src/ngtsc/file_system/src/compiler_host.js +0 -80
  408. package/src/ngtsc/file_system/src/helpers.js +0 -135
  409. package/src/ngtsc/file_system/src/invalid_file_system.js +0 -120
  410. package/src/ngtsc/file_system/src/logical.js +0 -100
  411. package/src/ngtsc/file_system/src/node_js_file_system.js +0 -179
  412. package/src/ngtsc/file_system/src/types.js +0 -20
  413. package/src/ngtsc/file_system/src/util.js +0 -38
  414. package/src/ngtsc/file_system/testing/index.d.ts +0 -13
  415. package/src/ngtsc/file_system/testing/index.js +0 -32
  416. package/src/ngtsc/file_system/testing/src/mock_file_system.d.ts +0 -72
  417. package/src/ngtsc/file_system/testing/src/mock_file_system.js +0 -333
  418. package/src/ngtsc/file_system/testing/src/mock_file_system_native.d.ts +0 -16
  419. package/src/ngtsc/file_system/testing/src/mock_file_system_native.js +0 -85
  420. package/src/ngtsc/file_system/testing/src/mock_file_system_posix.d.ts +0 -13
  421. package/src/ngtsc/file_system/testing/src/mock_file_system_posix.js +0 -68
  422. package/src/ngtsc/file_system/testing/src/mock_file_system_windows.d.ts +0 -13
  423. package/src/ngtsc/file_system/testing/src/mock_file_system_windows.js +0 -68
  424. package/src/ngtsc/file_system/testing/src/test_helper.d.ts +0 -17
  425. package/src/ngtsc/file_system/testing/src/test_helper.js +0 -142
  426. package/src/ngtsc/imports/index.js +0 -43
  427. package/src/ngtsc/imports/src/alias.js +0 -158
  428. package/src/ngtsc/imports/src/core.js +0 -98
  429. package/src/ngtsc/imports/src/default.js +0 -153
  430. package/src/ngtsc/imports/src/emitter.js +0 -317
  431. package/src/ngtsc/imports/src/find_export.js +0 -82
  432. package/src/ngtsc/imports/src/reexport.js +0 -20
  433. package/src/ngtsc/imports/src/references.js +0 -171
  434. package/src/ngtsc/imports/src/resolver.js +0 -39
  435. package/src/ngtsc/incremental/api.js +0 -20
  436. package/src/ngtsc/incremental/index.js +0 -29
  437. package/src/ngtsc/incremental/semantic_graph/index.js +0 -34
  438. package/src/ngtsc/incremental/semantic_graph/src/api.js +0 -51
  439. package/src/ngtsc/incremental/semantic_graph/src/graph.js +0 -302
  440. package/src/ngtsc/incremental/semantic_graph/src/type_parameters.js +0 -55
  441. package/src/ngtsc/incremental/semantic_graph/src/util.js +0 -111
  442. package/src/ngtsc/incremental/src/dependency_tracking.js +0 -165
  443. package/src/ngtsc/incremental/src/incremental.js +0 -393
  444. package/src/ngtsc/incremental/src/noop.js +0 -26
  445. package/src/ngtsc/incremental/src/state.js +0 -30
  446. package/src/ngtsc/incremental/src/strategy.js +0 -99
  447. package/src/ngtsc/indexer/index.js +0 -27
  448. package/src/ngtsc/indexer/src/api.js +0 -45
  449. package/src/ngtsc/indexer/src/context.js +0 -40
  450. package/src/ngtsc/indexer/src/template.js +0 -328
  451. package/src/ngtsc/indexer/src/transform.js +0 -66
  452. package/src/ngtsc/logging/index.js +0 -25
  453. package/src/ngtsc/logging/src/console_logger.js +0 -75
  454. package/src/ngtsc/logging/src/logger.js +0 -28
  455. package/src/ngtsc/logging/testing/index.js +0 -23
  456. package/src/ngtsc/logging/testing/src/mock_logger.d.ts +0 -20
  457. package/src/ngtsc/logging/testing/src/mock_logger.js +0 -64
  458. package/src/ngtsc/metadata/index.js +0 -39
  459. package/src/ngtsc/metadata/src/api.js +0 -26
  460. package/src/ngtsc/metadata/src/dts.js +0 -168
  461. package/src/ngtsc/metadata/src/inheritance.js +0 -122
  462. package/src/ngtsc/metadata/src/property_mapping.js +0 -244
  463. package/src/ngtsc/metadata/src/registry.js +0 -133
  464. package/src/ngtsc/metadata/src/resource_registry.js +0 -109
  465. package/src/ngtsc/metadata/src/util.js +0 -275
  466. package/src/ngtsc/partial_evaluator/index.js +0 -31
  467. package/src/ngtsc/partial_evaluator/src/builtin.js +0 -125
  468. package/src/ngtsc/partial_evaluator/src/diagnostics.js +0 -193
  469. package/src/ngtsc/partial_evaluator/src/dynamic.js +0 -109
  470. package/src/ngtsc/partial_evaluator/src/interface.js +0 -42
  471. package/src/ngtsc/partial_evaluator/src/interpreter.js +0 -780
  472. package/src/ngtsc/partial_evaluator/src/known_declaration.js +0 -57
  473. package/src/ngtsc/partial_evaluator/src/result.js +0 -72
  474. package/src/ngtsc/partial_evaluator/src/ts_helpers.js +0 -121
  475. package/src/ngtsc/perf/index.js +0 -28
  476. package/src/ngtsc/perf/src/api.js +0 -291
  477. package/src/ngtsc/perf/src/clock.js +0 -30
  478. package/src/ngtsc/perf/src/noop.js +0 -37
  479. package/src/ngtsc/perf/src/recorder.js +0 -143
  480. package/src/ngtsc/program.js +0 -360
  481. package/src/ngtsc/program_driver/index.js +0 -25
  482. package/src/ngtsc/program_driver/src/api.js +0 -36
  483. package/src/ngtsc/program_driver/src/ts_create_program_driver.js +0 -200
  484. package/src/ngtsc/reflection/index.js +0 -36
  485. package/src/ngtsc/reflection/src/host.js +0 -88
  486. package/src/ngtsc/reflection/src/type_to_value.js +0 -259
  487. package/src/ngtsc/reflection/src/typescript.js +0 -640
  488. package/src/ngtsc/reflection/src/util.js +0 -37
  489. package/src/ngtsc/resource/index.js +0 -23
  490. package/src/ngtsc/resource/src/loader.js +0 -285
  491. package/src/ngtsc/routing/index.js +0 -26
  492. package/src/ngtsc/routing/src/analyzer.d.ts +0 -37
  493. package/src/ngtsc/routing/src/analyzer.js +0 -82
  494. package/src/ngtsc/routing/src/lazy.d.ts +0 -19
  495. package/src/ngtsc/routing/src/lazy.js +0 -239
  496. package/src/ngtsc/routing/src/route.d.ts +0 -23
  497. package/src/ngtsc/routing/src/route.js +0 -77
  498. package/src/ngtsc/scope/index.js +0 -29
  499. package/src/ngtsc/scope/src/api.js +0 -20
  500. package/src/ngtsc/scope/src/component_scope.js +0 -69
  501. package/src/ngtsc/scope/src/dependency.js +0 -201
  502. package/src/ngtsc/scope/src/local.js +0 -665
  503. package/src/ngtsc/scope/src/typecheck.js +0 -120
  504. package/src/ngtsc/shims/api.js +0 -13
  505. package/src/ngtsc/shims/index.js +0 -39
  506. package/src/ngtsc/shims/src/adapter.js +0 -266
  507. package/src/ngtsc/shims/src/expando.js +0 -147
  508. package/src/ngtsc/shims/src/factory_generator.js +0 -292
  509. package/src/ngtsc/shims/src/reference_tagger.js +0 -94
  510. package/src/ngtsc/shims/src/summary_generator.js +0 -101
  511. package/src/ngtsc/shims/src/util.js +0 -41
  512. package/src/ngtsc/sourcemaps/index.js +0 -27
  513. package/src/ngtsc/sourcemaps/src/content_origin.js +0 -48
  514. package/src/ngtsc/sourcemaps/src/raw_source_map.js +0 -13
  515. package/src/ngtsc/sourcemaps/src/segment_marker.js +0 -55
  516. package/src/ngtsc/sourcemaps/src/source_file.js +0 -519
  517. package/src/ngtsc/sourcemaps/src/source_file_loader.js +0 -234
  518. package/src/ngtsc/switch/index.js +0 -23
  519. package/src/ngtsc/switch/src/switch.js +0 -141
  520. package/src/ngtsc/transform/index.js +0 -36
  521. package/src/ngtsc/transform/src/alias.js +0 -46
  522. package/src/ngtsc/transform/src/api.js +0 -76
  523. package/src/ngtsc/transform/src/compilation.js +0 -862
  524. package/src/ngtsc/transform/src/declaration.js +0 -234
  525. package/src/ngtsc/transform/src/trait.js +0 -111
  526. package/src/ngtsc/transform/src/transform.js +0 -333
  527. package/src/ngtsc/transform/src/utils.js +0 -73
  528. package/src/ngtsc/translator/index.js +0 -37
  529. package/src/ngtsc/translator/src/api/ast_factory.js +0 -20
  530. package/src/ngtsc/translator/src/api/import_generator.js +0 -20
  531. package/src/ngtsc/translator/src/context.js +0 -47
  532. package/src/ngtsc/translator/src/import_manager.js +0 -77
  533. package/src/ngtsc/translator/src/translator.js +0 -353
  534. package/src/ngtsc/translator/src/type_translator.js +0 -223
  535. package/src/ngtsc/translator/src/typescript_ast_factory.js +0 -251
  536. package/src/ngtsc/translator/src/typescript_translator.js +0 -34
  537. package/src/ngtsc/tsc_plugin.js +0 -129
  538. package/src/ngtsc/typecheck/api/api.js +0 -20
  539. package/src/ngtsc/typecheck/api/checker.js +0 -44
  540. package/src/ngtsc/typecheck/api/completion.js +0 -29
  541. package/src/ngtsc/typecheck/api/context.js +0 -20
  542. package/src/ngtsc/typecheck/api/index.js +0 -27
  543. package/src/ngtsc/typecheck/api/scope.js +0 -20
  544. package/src/ngtsc/typecheck/api/symbols.js +0 -35
  545. package/src/ngtsc/typecheck/diagnostics/index.js +0 -23
  546. package/src/ngtsc/typecheck/diagnostics/src/diagnostic.js +0 -141
  547. package/src/ngtsc/typecheck/diagnostics/src/id.js +0 -37
  548. package/src/ngtsc/typecheck/extended/api/api.js +0 -124
  549. package/src/ngtsc/typecheck/extended/api/extended_template_checker.js +0 -20
  550. package/src/ngtsc/typecheck/extended/api/index.js +0 -23
  551. package/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.js +0 -52
  552. package/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.js +0 -64
  553. package/src/ngtsc/typecheck/extended/index.js +0 -23
  554. package/src/ngtsc/typecheck/extended/src/extended_template_checker.js +0 -55
  555. package/src/ngtsc/typecheck/index.js +0 -29
  556. package/src/ngtsc/typecheck/src/checker.js +0 -764
  557. package/src/ngtsc/typecheck/src/comments.js +0 -181
  558. package/src/ngtsc/typecheck/src/completion.js +0 -232
  559. package/src/ngtsc/typecheck/src/context.js +0 -424
  560. package/src/ngtsc/typecheck/src/diagnostics.js +0 -114
  561. package/src/ngtsc/typecheck/src/dom.js +0 -87
  562. package/src/ngtsc/typecheck/src/environment.js +0 -160
  563. package/src/ngtsc/typecheck/src/expression.js +0 -441
  564. package/src/ngtsc/typecheck/src/line_mappings.js +0 -77
  565. package/src/ngtsc/typecheck/src/oob.js +0 -181
  566. package/src/ngtsc/typecheck/src/shim.js +0 -52
  567. package/src/ngtsc/typecheck/src/source.js +0 -91
  568. package/src/ngtsc/typecheck/src/tcb_util.js +0 -165
  569. package/src/ngtsc/typecheck/src/template_semantics.js +0 -52
  570. package/src/ngtsc/typecheck/src/template_symbol_builder.js +0 -546
  571. package/src/ngtsc/typecheck/src/ts_util.js +0 -202
  572. package/src/ngtsc/typecheck/src/type_check_block.js +0 -2210
  573. package/src/ngtsc/typecheck/src/type_check_file.js +0 -115
  574. package/src/ngtsc/typecheck/src/type_constructor.js +0 -255
  575. package/src/ngtsc/typecheck/src/type_emitter.js +0 -164
  576. package/src/ngtsc/typecheck/src/type_parameter_emitter.js +0 -115
  577. package/src/ngtsc/util/src/path.js +0 -33
  578. package/src/ngtsc/util/src/typescript.js +0 -176
  579. package/src/ngtsc/util/src/visitor.js +0 -119
  580. package/src/ngtsc/xi18n/index.js +0 -22
  581. package/src/ngtsc/xi18n/src/context.js +0 -20
  582. package/src/perform_compile.js +0 -322
  583. package/src/perform_watch.js +0 -263
  584. package/src/tooling.js +0 -47
  585. package/src/transformers/api.js +0 -42
  586. package/src/transformers/compiler_host.js +0 -623
  587. package/src/transformers/downlevel_decorators_transform.js +0 -612
  588. package/src/transformers/entry_points.js +0 -25
  589. package/src/transformers/i18n.js +0 -76
  590. package/src/transformers/inline_resources.js +0 -287
  591. package/src/transformers/lower_expressions.js +0 -365
  592. package/src/transformers/metadata_cache.js +0 -96
  593. package/src/transformers/metadata_reader.js +0 -120
  594. package/src/transformers/node_emitter.js +0 -643
  595. package/src/transformers/node_emitter_transform.js +0 -88
  596. package/src/transformers/patch_alias_reference_resolution.js +0 -129
  597. package/src/transformers/program.js +0 -1000
  598. package/src/transformers/r3_metadata_transform.js +0 -73
  599. package/src/transformers/r3_transform.js +0 -44
  600. package/src/transformers/util.js +0 -122
  601. package/src/typescript_support.js +0 -74
  602. package/src/version.js +0 -28
@@ -1,80 +0,0 @@
1
- (function (factory) {
2
- if (typeof module === "object" && typeof module.exports === "object") {
3
- var v = factory(require, exports);
4
- if (v !== undefined) module.exports = v;
5
- }
6
- else if (typeof define === "function" && define.amd) {
7
- define("@angular/compiler-cli/ngcc/src/packages/bundle_program", ["require", "exports", "tslib", "typescript", "@angular/compiler-cli/ngcc/src/packages/patch_ts_expando_initializer"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.findR3SymbolsPath = exports.makeBundleProgram = void 0;
13
- var tslib_1 = require("tslib");
14
- /**
15
- * @license
16
- * Copyright Google LLC All Rights Reserved.
17
- *
18
- * Use of this source code is governed by an MIT-style license that can be
19
- * found in the LICENSE file at https://angular.io/license
20
- */
21
- var ts = require("typescript");
22
- var patch_ts_expando_initializer_1 = require("@angular/compiler-cli/ngcc/src/packages/patch_ts_expando_initializer");
23
- /**
24
- * Create a bundle program.
25
- */
26
- function makeBundleProgram(fs, isCore, pkg, path, r3FileName, options, host, additionalFiles) {
27
- if (additionalFiles === void 0) { additionalFiles = []; }
28
- var r3SymbolsPath = isCore ? findR3SymbolsPath(fs, fs.dirname(path), r3FileName) : null;
29
- var rootPaths = r3SymbolsPath ? tslib_1.__spreadArray([path, r3SymbolsPath], tslib_1.__read(additionalFiles)) : tslib_1.__spreadArray([path], tslib_1.__read(additionalFiles));
30
- var originalGetExpandoInitializer = patch_ts_expando_initializer_1.patchTsGetExpandoInitializer();
31
- var program = ts.createProgram(rootPaths, options, host);
32
- // Ask for the typeChecker to trigger the binding phase of the compilation.
33
- // This will then exercise the patched function.
34
- program.getTypeChecker();
35
- patch_ts_expando_initializer_1.restoreGetExpandoInitializer(originalGetExpandoInitializer);
36
- var file = program.getSourceFile(path);
37
- var r3SymbolsFile = r3SymbolsPath && program.getSourceFile(r3SymbolsPath) || null;
38
- return { program: program, options: options, host: host, package: pkg, path: path, file: file, r3SymbolsPath: r3SymbolsPath, r3SymbolsFile: r3SymbolsFile };
39
- }
40
- exports.makeBundleProgram = makeBundleProgram;
41
- /**
42
- * Search the given directory hierarchy to find the path to the `r3_symbols` file.
43
- */
44
- function findR3SymbolsPath(fs, directory, filename) {
45
- var e_1, _a;
46
- var r3SymbolsFilePath = fs.resolve(directory, filename);
47
- if (fs.exists(r3SymbolsFilePath)) {
48
- return r3SymbolsFilePath;
49
- }
50
- var subDirectories = fs.readdir(directory)
51
- // Not interested in hidden files
52
- .filter(function (p) { return !p.startsWith('.'); })
53
- // Ignore node_modules
54
- .filter(function (p) { return p !== 'node_modules'; })
55
- // Only interested in directories (and only those that are not symlinks)
56
- .filter(function (p) {
57
- var stat = fs.lstat(fs.resolve(directory, p));
58
- return stat.isDirectory() && !stat.isSymbolicLink();
59
- });
60
- try {
61
- for (var subDirectories_1 = tslib_1.__values(subDirectories), subDirectories_1_1 = subDirectories_1.next(); !subDirectories_1_1.done; subDirectories_1_1 = subDirectories_1.next()) {
62
- var subDirectory = subDirectories_1_1.value;
63
- var r3SymbolsFilePath_1 = findR3SymbolsPath(fs, fs.resolve(directory, subDirectory), filename);
64
- if (r3SymbolsFilePath_1) {
65
- return r3SymbolsFilePath_1;
66
- }
67
- }
68
- }
69
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
70
- finally {
71
- try {
72
- if (subDirectories_1_1 && !subDirectories_1_1.done && (_a = subDirectories_1.return)) _a.call(subDirectories_1);
73
- }
74
- finally { if (e_1) throw e_1.error; }
75
- }
76
- return null;
77
- }
78
- exports.findR3SymbolsPath = findR3SymbolsPath;
79
- });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlX3Byb2dyYW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbmdjYy9zcmMvcGFja2FnZXMvYnVuZGxlX3Byb2dyYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztJQUFBOzs7Ozs7T0FNRztJQUNILCtCQUFpQztJQUlqQyxxSEFBMEc7SUFxQjFHOztPQUVHO0lBQ0gsU0FBZ0IsaUJBQWlCLENBQzdCLEVBQXNCLEVBQUUsTUFBZSxFQUFFLEdBQW1CLEVBQUUsSUFBb0IsRUFDbEYsVUFBa0IsRUFBRSxPQUEyQixFQUFFLElBQXFCLEVBQ3RFLGVBQXNDO1FBQXRDLGdDQUFBLEVBQUEsb0JBQXNDO1FBQ3hDLElBQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMxRixJQUFJLFNBQVMsR0FDVCxhQUFhLENBQUMsQ0FBQyx3QkFBRSxJQUFJLEVBQUUsYUFBYSxrQkFBSyxlQUFlLEdBQUUsQ0FBQyx3QkFBRSxJQUFJLGtCQUFLLGVBQWUsRUFBQyxDQUFDO1FBRTNGLElBQU0sNkJBQTZCLEdBQUcsMkRBQTRCLEVBQUUsQ0FBQztRQUNyRSxJQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0QsMkVBQTJFO1FBQzNFLGdEQUFnRDtRQUNoRCxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDekIsMkRBQTRCLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUU1RCxJQUFNLElBQUksR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBRSxDQUFDO1FBQzFDLElBQU0sYUFBYSxHQUFHLGFBQWEsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQztRQUVwRixPQUFPLEVBQUMsT0FBTyxTQUFBLEVBQUUsT0FBTyxTQUFBLEVBQUUsSUFBSSxNQUFBLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLE1BQUEsRUFBRSxJQUFJLE1BQUEsRUFBRSxhQUFhLGVBQUEsRUFBRSxhQUFhLGVBQUEsRUFBQyxDQUFDO0lBQzFGLENBQUM7SUFuQkQsOENBbUJDO0lBRUQ7O09BRUc7SUFDSCxTQUFnQixpQkFBaUIsQ0FDN0IsRUFBc0IsRUFBRSxTQUF5QixFQUFFLFFBQWdCOztRQUNyRSxJQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzFELElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO1lBQ2hDLE9BQU8saUJBQWlCLENBQUM7U0FDMUI7UUFFRCxJQUFNLGNBQWMsR0FDaEIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7WUFDakIsaUNBQWlDO2FBQ2hDLE1BQU0sQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBbEIsQ0FBa0IsQ0FBQztZQUNoQyxzQkFBc0I7YUFDckIsTUFBTSxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxLQUFLLGNBQWMsRUFBcEIsQ0FBb0IsQ0FBQztZQUNsQyx3RUFBd0U7YUFDdkUsTUFBTSxDQUFDLFVBQUEsQ0FBQztZQUNQLElBQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoRCxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQzs7WUFFWCxLQUEyQixJQUFBLG1CQUFBLGlCQUFBLGNBQWMsQ0FBQSw4Q0FBQSwwRUFBRTtnQkFBdEMsSUFBTSxZQUFZLDJCQUFBO2dCQUNyQixJQUFNLG1CQUFpQixHQUFHLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDL0YsSUFBSSxtQkFBaUIsRUFBRTtvQkFDckIsT0FBTyxtQkFBaUIsQ0FBQztpQkFDMUI7YUFDRjs7Ozs7Ozs7O1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBM0JELDhDQTJCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7QWJzb2x1dGVGc1BhdGgsIFJlYWRvbmx5RmlsZVN5c3RlbX0gZnJvbSAnLi4vLi4vLi4vc3JjL25ndHNjL2ZpbGVfc3lzdGVtJztcblxuaW1wb3J0IHtwYXRjaFRzR2V0RXhwYW5kb0luaXRpYWxpemVyLCByZXN0b3JlR2V0RXhwYW5kb0luaXRpYWxpemVyfSBmcm9tICcuL3BhdGNoX3RzX2V4cGFuZG9faW5pdGlhbGl6ZXInO1xuXG4vKipcbiAqIEFuIGVudHJ5IHBvaW50IGJ1bmRsZSBjb250YWlucyBvbmUgb3IgdHdvIHByb2dyYW1zLCBlLmcuIGBzcmNgIGFuZCBgZHRzYCxcbiAqIHRoYXQgYXJlIGNvbXBpbGVkIHZpYSBUeXBlU2NyaXB0LlxuICpcbiAqIFRvIGFpZCB3aXRoIHByb2Nlc3NpbmcgdGhlIHByb2dyYW0sIHRoaXMgaW50ZXJmYWNlIGV4cG9zZXMgdGhlIHByb2dyYW0gaXRzZWxmLFxuICogYXMgd2VsbCBhcyBwYXRoIGFuZCBUUyBmaWxlIG9mIHRoZSBlbnRyeS1wb2ludCB0byB0aGUgcHJvZ3JhbSBhbmQgdGhlIHIzU3ltYm9sc1xuICogZmlsZSwgaWYgYXBwcm9wcmlhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVuZGxlUHJvZ3JhbSB7XG4gIHByb2dyYW06IHRzLlByb2dyYW07XG4gIG9wdGlvbnM6IHRzLkNvbXBpbGVyT3B0aW9ucztcbiAgaG9zdDogdHMuQ29tcGlsZXJIb3N0O1xuICBwYXRoOiBBYnNvbHV0ZUZzUGF0aDtcbiAgZmlsZTogdHMuU291cmNlRmlsZTtcbiAgcGFja2FnZTogQWJzb2x1dGVGc1BhdGg7XG4gIHIzU3ltYm9sc1BhdGg6IEFic29sdXRlRnNQYXRofG51bGw7XG4gIHIzU3ltYm9sc0ZpbGU6IHRzLlNvdXJjZUZpbGV8bnVsbDtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBidW5kbGUgcHJvZ3JhbS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VCdW5kbGVQcm9ncmFtKFxuICAgIGZzOiBSZWFkb25seUZpbGVTeXN0ZW0sIGlzQ29yZTogYm9vbGVhbiwgcGtnOiBBYnNvbHV0ZUZzUGF0aCwgcGF0aDogQWJzb2x1dGVGc1BhdGgsXG4gICAgcjNGaWxlTmFtZTogc3RyaW5nLCBvcHRpb25zOiB0cy5Db21waWxlck9wdGlvbnMsIGhvc3Q6IHRzLkNvbXBpbGVySG9zdCxcbiAgICBhZGRpdGlvbmFsRmlsZXM6IEFic29sdXRlRnNQYXRoW10gPSBbXSk6IEJ1bmRsZVByb2dyYW0ge1xuICBjb25zdCByM1N5bWJvbHNQYXRoID0gaXNDb3JlID8gZmluZFIzU3ltYm9sc1BhdGgoZnMsIGZzLmRpcm5hbWUocGF0aCksIHIzRmlsZU5hbWUpIDogbnVsbDtcbiAgbGV0IHJvb3RQYXRocyA9XG4gICAgICByM1N5bWJvbHNQYXRoID8gW3BhdGgsIHIzU3ltYm9sc1BhdGgsIC4uLmFkZGl0aW9uYWxGaWxlc10gOiBbcGF0aCwgLi4uYWRkaXRpb25hbEZpbGVzXTtcblxuICBjb25zdCBvcmlnaW5hbEdldEV4cGFuZG9Jbml0aWFsaXplciA9IHBhdGNoVHNHZXRFeHBhbmRvSW5pdGlhbGl6ZXIoKTtcbiAgY29uc3QgcHJvZ3JhbSA9IHRzLmNyZWF0ZVByb2dyYW0ocm9vdFBhdGhzLCBvcHRpb25zLCBob3N0KTtcbiAgLy8gQXNrIGZvciB0aGUgdHlwZUNoZWNrZXIgdG8gdHJpZ2dlciB0aGUgYmluZGluZyBwaGFzZSBvZiB0aGUgY29tcGlsYXRpb24uXG4gIC8vIFRoaXMgd2lsbCB0aGVuIGV4ZXJjaXNlIHRoZSBwYXRjaGVkIGZ1bmN0aW9uLlxuICBwcm9ncmFtLmdldFR5cGVDaGVja2VyKCk7XG4gIHJlc3RvcmVHZXRFeHBhbmRvSW5pdGlhbGl6ZXIob3JpZ2luYWxHZXRFeHBhbmRvSW5pdGlhbGl6ZXIpO1xuXG4gIGNvbnN0IGZpbGUgPSBwcm9ncmFtLmdldFNvdXJjZUZpbGUocGF0aCkhO1xuICBjb25zdCByM1N5bWJvbHNGaWxlID0gcjNTeW1ib2xzUGF0aCAmJiBwcm9ncmFtLmdldFNvdXJjZUZpbGUocjNTeW1ib2xzUGF0aCkgfHwgbnVsbDtcblxuICByZXR1cm4ge3Byb2dyYW0sIG9wdGlvbnMsIGhvc3QsIHBhY2thZ2U6IHBrZywgcGF0aCwgZmlsZSwgcjNTeW1ib2xzUGF0aCwgcjNTeW1ib2xzRmlsZX07XG59XG5cbi8qKlxuICogU2VhcmNoIHRoZSBnaXZlbiBkaXJlY3RvcnkgaGllcmFyY2h5IHRvIGZpbmQgdGhlIHBhdGggdG8gdGhlIGByM19zeW1ib2xzYCBmaWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZFIzU3ltYm9sc1BhdGgoXG4gICAgZnM6IFJlYWRvbmx5RmlsZVN5c3RlbSwgZGlyZWN0b3J5OiBBYnNvbHV0ZUZzUGF0aCwgZmlsZW5hbWU6IHN0cmluZyk6IEFic29sdXRlRnNQYXRofG51bGwge1xuICBjb25zdCByM1N5bWJvbHNGaWxlUGF0aCA9IGZzLnJlc29sdmUoZGlyZWN0b3J5LCBmaWxlbmFtZSk7XG4gIGlmIChmcy5leGlzdHMocjNTeW1ib2xzRmlsZVBhdGgpKSB7XG4gICAgcmV0dXJuIHIzU3ltYm9sc0ZpbGVQYXRoO1xuICB9XG5cbiAgY29uc3Qgc3ViRGlyZWN0b3JpZXMgPVxuICAgICAgZnMucmVhZGRpcihkaXJlY3RvcnkpXG4gICAgICAgICAgLy8gTm90IGludGVyZXN0ZWQgaW4gaGlkZGVuIGZpbGVzXG4gICAgICAgICAgLmZpbHRlcihwID0+ICFwLnN0YXJ0c1dpdGgoJy4nKSlcbiAgICAgICAgICAvLyBJZ25vcmUgbm9kZV9tb2R1bGVzXG4gICAgICAgICAgLmZpbHRlcihwID0+IHAgIT09ICdub2RlX21vZHVsZXMnKVxuICAgICAgICAgIC8vIE9ubHkgaW50ZXJlc3RlZCBpbiBkaXJlY3RvcmllcyAoYW5kIG9ubHkgdGhvc2UgdGhhdCBhcmUgbm90IHN5bWxpbmtzKVxuICAgICAgICAgIC5maWx0ZXIocCA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ID0gZnMubHN0YXQoZnMucmVzb2x2ZShkaXJlY3RvcnksIHApKTtcbiAgICAgICAgICAgIHJldHVybiBzdGF0LmlzRGlyZWN0b3J5KCkgJiYgIXN0YXQuaXNTeW1ib2xpY0xpbmsoKTtcbiAgICAgICAgICB9KTtcblxuICBmb3IgKGNvbnN0IHN1YkRpcmVjdG9yeSBvZiBzdWJEaXJlY3Rvcmllcykge1xuICAgIGNvbnN0IHIzU3ltYm9sc0ZpbGVQYXRoID0gZmluZFIzU3ltYm9sc1BhdGgoZnMsIGZzLnJlc29sdmUoZGlyZWN0b3J5LCBzdWJEaXJlY3RvcnkpLCBmaWxlbmFtZSk7XG4gICAgaWYgKHIzU3ltYm9sc0ZpbGVQYXRoKSB7XG4gICAgICByZXR1cm4gcjNTeW1ib2xzRmlsZVBhdGg7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG4iXX0=
@@ -1,277 +0,0 @@
1
- (function (factory) {
2
- if (typeof module === "object" && typeof module.exports === "object") {
3
- var v = factory(require, exports);
4
- if (v !== undefined) module.exports = v;
5
- }
6
- else if (typeof define === "function" && define.amd) {
7
- define("@angular/compiler-cli/ngcc/src/packages/configuration", ["require", "exports", "tslib", "crypto", "semver", "vm"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.NgccConfiguration = exports.ProcessedNgccPackageConfig = exports.DEFAULT_NGCC_CONFIG = void 0;
13
- var tslib_1 = require("tslib");
14
- /**
15
- * @license
16
- * Copyright Google LLC All Rights Reserved.
17
- *
18
- * Use of this source code is governed by an MIT-style license that can be
19
- * found in the LICENSE file at https://angular.io/license
20
- */
21
- var crypto_1 = require("crypto");
22
- var semver_1 = require("semver");
23
- var vm = require("vm");
24
- /**
25
- * The default configuration for ngcc.
26
- *
27
- * This is the ultimate fallback configuration that ngcc will use if there is no configuration
28
- * for a package at the package level or project level.
29
- *
30
- * This configuration is for packages that are "dead" - i.e. no longer maintained and so are
31
- * unlikely to be fixed to work with ngcc, nor provide a package level config of their own.
32
- *
33
- * The fallback process for looking up configuration is:
34
- *
35
- * Project -> Package -> Default
36
- *
37
- * If a package provides its own configuration then that would override this default one.
38
- *
39
- * Also application developers can always provide configuration at their project level which
40
- * will override everything else.
41
- *
42
- * Note that the fallback is package based not entry-point based.
43
- * For example, if a there is configuration for a package at the project level this will replace all
44
- * entry-point configurations that may have been provided in the package level or default level
45
- * configurations, even if the project level configuration does not provide for a given entry-point.
46
- */
47
- exports.DEFAULT_NGCC_CONFIG = {
48
- packages: {
49
- // Add default package configuration here. For example:
50
- // '@angular/fire@^5.2.0': {
51
- // entryPoints: {
52
- // './database-deprecated': {ignore: true},
53
- // },
54
- // },
55
- // The package does not contain any `.metadata.json` files in the root directory but only inside
56
- // `dist/`. Without this config, ngcc does not realize this is a ViewEngine-built Angular
57
- // package that needs to be compiled to Ivy.
58
- 'angular2-highcharts': {
59
- entryPoints: {
60
- '.': {
61
- override: {
62
- main: './index.js',
63
- },
64
- },
65
- },
66
- },
67
- // The `dist/` directory has a duplicate `package.json` pointing to the same files, which (under
68
- // certain configurations) can causes ngcc to try to process the files twice and fail.
69
- // Ignore the `dist/` entry-point.
70
- 'ng2-dragula': {
71
- entryPoints: {
72
- './dist': { ignore: true },
73
- },
74
- },
75
- },
76
- locking: {
77
- retryDelay: 500,
78
- retryAttempts: 500,
79
- }
80
- };
81
- var NGCC_CONFIG_FILENAME = 'ngcc.config.js';
82
- /**
83
- * The processed package level configuration as a result of processing a raw package level config.
84
- */
85
- var ProcessedNgccPackageConfig = /** @class */ (function () {
86
- function ProcessedNgccPackageConfig(fs, packagePath, _a) {
87
- var _b = _a.entryPoints, entryPoints = _b === void 0 ? {} : _b, _c = _a.ignorableDeepImportMatchers, ignorableDeepImportMatchers = _c === void 0 ? [] : _c;
88
- var absolutePathEntries = Object.entries(entryPoints).map(function (_a) {
89
- var _b = tslib_1.__read(_a, 2), relativePath = _b[0], config = _b[1];
90
- return [fs.resolve(packagePath, relativePath), config];
91
- });
92
- this.packagePath = packagePath;
93
- this.entryPoints = new Map(absolutePathEntries);
94
- this.ignorableDeepImportMatchers = ignorableDeepImportMatchers;
95
- }
96
- return ProcessedNgccPackageConfig;
97
- }());
98
- exports.ProcessedNgccPackageConfig = ProcessedNgccPackageConfig;
99
- /**
100
- * Ngcc has a hierarchical configuration system that lets us "fix up" packages that do not
101
- * work with ngcc out of the box.
102
- *
103
- * There are three levels at which configuration can be declared:
104
- *
105
- * * Default level - ngcc comes with built-in configuration for well known cases.
106
- * * Package level - a library author publishes a configuration with their package to fix known
107
- * issues.
108
- * * Project level - the application developer provides a configuration that fixes issues specific
109
- * to the libraries used in their application.
110
- *
111
- * Ngcc will match configuration based on the package name but also on its version. This allows
112
- * configuration to provide different fixes to different version ranges of a package.
113
- *
114
- * * Package level configuration is specific to the package version where the configuration is
115
- * found.
116
- * * Default and project level configuration should provide version ranges to ensure that the
117
- * configuration is only applied to the appropriate versions of a package.
118
- *
119
- * When getting a configuration for a package (via `getConfig()`) the caller should provide the
120
- * version of the package in question, if available. If it is not provided then the first available
121
- * configuration for a package is returned.
122
- */
123
- var NgccConfiguration = /** @class */ (function () {
124
- function NgccConfiguration(fs, baseDir) {
125
- this.fs = fs;
126
- this.cache = new Map();
127
- this.defaultConfig = this.processProjectConfig(exports.DEFAULT_NGCC_CONFIG);
128
- this.projectConfig = this.processProjectConfig(this.loadProjectConfig(baseDir));
129
- this.hashAlgorithm = this.projectConfig.hashAlgorithm;
130
- this.hash = this.computeHash();
131
- }
132
- /**
133
- * Get the configuration options for locking the ngcc process.
134
- */
135
- NgccConfiguration.prototype.getLockingConfig = function () {
136
- var _a = this.projectConfig.locking, retryAttempts = _a.retryAttempts, retryDelay = _a.retryDelay;
137
- if (retryAttempts === undefined) {
138
- retryAttempts = this.defaultConfig.locking.retryAttempts;
139
- }
140
- if (retryDelay === undefined) {
141
- retryDelay = this.defaultConfig.locking.retryDelay;
142
- }
143
- return { retryAttempts: retryAttempts, retryDelay: retryDelay };
144
- };
145
- /**
146
- * Get a configuration for the given `version` of a package at `packagePath`.
147
- *
148
- * @param packageName The name of the package whose config we want.
149
- * @param packagePath The path to the package whose config we want.
150
- * @param version The version of the package whose config we want, or `null` if the package's
151
- * package.json did not exist or was invalid.
152
- */
153
- NgccConfiguration.prototype.getPackageConfig = function (packageName, packagePath, version) {
154
- var rawPackageConfig = this.getRawPackageConfig(packageName, packagePath, version);
155
- return new ProcessedNgccPackageConfig(this.fs, packagePath, rawPackageConfig);
156
- };
157
- NgccConfiguration.prototype.getRawPackageConfig = function (packageName, packagePath, version) {
158
- var cacheKey = packageName + (version !== null ? "@" + version : '');
159
- if (this.cache.has(cacheKey)) {
160
- return this.cache.get(cacheKey);
161
- }
162
- var projectLevelConfig = this.projectConfig.packages ?
163
- findSatisfactoryVersion(this.projectConfig.packages[packageName], version) :
164
- null;
165
- if (projectLevelConfig !== null) {
166
- this.cache.set(cacheKey, projectLevelConfig);
167
- return projectLevelConfig;
168
- }
169
- var packageLevelConfig = this.loadPackageConfig(packagePath, version);
170
- if (packageLevelConfig !== null) {
171
- this.cache.set(cacheKey, packageLevelConfig);
172
- return packageLevelConfig;
173
- }
174
- var defaultLevelConfig = this.defaultConfig.packages ?
175
- findSatisfactoryVersion(this.defaultConfig.packages[packageName], version) :
176
- null;
177
- if (defaultLevelConfig !== null) {
178
- this.cache.set(cacheKey, defaultLevelConfig);
179
- return defaultLevelConfig;
180
- }
181
- return { versionRange: '*' };
182
- };
183
- NgccConfiguration.prototype.processProjectConfig = function (projectConfig) {
184
- var processedConfig = { packages: {}, locking: {}, hashAlgorithm: 'sha256' };
185
- // locking configuration
186
- if (projectConfig.locking !== undefined) {
187
- processedConfig.locking = projectConfig.locking;
188
- }
189
- // packages configuration
190
- for (var packageNameAndVersion in projectConfig.packages) {
191
- var packageConfig = projectConfig.packages[packageNameAndVersion];
192
- if (packageConfig) {
193
- var _a = tslib_1.__read(this.splitNameAndVersion(packageNameAndVersion), 2), packageName = _a[0], _b = _a[1], versionRange = _b === void 0 ? '*' : _b;
194
- var packageConfigs = processedConfig.packages[packageName] || (processedConfig.packages[packageName] = []);
195
- packageConfigs.push(tslib_1.__assign(tslib_1.__assign({}, packageConfig), { versionRange: versionRange }));
196
- }
197
- }
198
- // hash algorithm config
199
- if (projectConfig.hashAlgorithm !== undefined) {
200
- processedConfig.hashAlgorithm = projectConfig.hashAlgorithm;
201
- }
202
- return processedConfig;
203
- };
204
- NgccConfiguration.prototype.loadProjectConfig = function (baseDir) {
205
- var configFilePath = this.fs.join(baseDir, NGCC_CONFIG_FILENAME);
206
- if (this.fs.exists(configFilePath)) {
207
- try {
208
- return this.evalSrcFile(configFilePath);
209
- }
210
- catch (e) {
211
- throw new Error("Invalid project configuration file at \"" + configFilePath + "\": " + e.message);
212
- }
213
- }
214
- else {
215
- return { packages: {} };
216
- }
217
- };
218
- NgccConfiguration.prototype.loadPackageConfig = function (packagePath, version) {
219
- var configFilePath = this.fs.join(packagePath, NGCC_CONFIG_FILENAME);
220
- if (this.fs.exists(configFilePath)) {
221
- try {
222
- var packageConfig = this.evalSrcFile(configFilePath);
223
- return tslib_1.__assign(tslib_1.__assign({}, packageConfig), { versionRange: version || '*' });
224
- }
225
- catch (e) {
226
- throw new Error("Invalid package configuration file at \"" + configFilePath + "\": " + e.message);
227
- }
228
- }
229
- else {
230
- return null;
231
- }
232
- };
233
- NgccConfiguration.prototype.evalSrcFile = function (srcPath) {
234
- var src = this.fs.readFile(srcPath);
235
- var theExports = {};
236
- var sandbox = {
237
- module: { exports: theExports },
238
- exports: theExports,
239
- require: require,
240
- __dirname: this.fs.dirname(srcPath),
241
- __filename: srcPath
242
- };
243
- vm.runInNewContext(src, sandbox, { filename: srcPath });
244
- return sandbox.module.exports;
245
- };
246
- NgccConfiguration.prototype.splitNameAndVersion = function (packageNameAndVersion) {
247
- var versionIndex = packageNameAndVersion.lastIndexOf('@');
248
- // Note that > 0 is because we don't want to match @ at the start of the line
249
- // which is what you would have with a namespaced package, e.g. `@angular/common`.
250
- return versionIndex > 0 ?
251
- [
252
- packageNameAndVersion.substring(0, versionIndex),
253
- packageNameAndVersion.substring(versionIndex + 1),
254
- ] :
255
- [packageNameAndVersion, undefined];
256
- };
257
- NgccConfiguration.prototype.computeHash = function () {
258
- return crypto_1.createHash(this.hashAlgorithm).update(JSON.stringify(this.projectConfig)).digest('hex');
259
- };
260
- return NgccConfiguration;
261
- }());
262
- exports.NgccConfiguration = NgccConfiguration;
263
- function findSatisfactoryVersion(configs, version) {
264
- if (configs === undefined) {
265
- return null;
266
- }
267
- if (version === null) {
268
- // The package has no version (!) - perhaps the entry-point was from a deep import, which made
269
- // it impossible to find the package.json.
270
- // So just return the first config that matches the package name.
271
- return configs[0];
272
- }
273
- return configs.find(function (config) { return semver_1.satisfies(version, config.versionRange, { includePrerelease: true }); }) ||
274
- null;
275
- }
276
- });
277
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9uZ2NjL3NyYy9wYWNrYWdlcy9jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7SUFBQTs7Ozs7O09BTUc7SUFDSCxpQ0FBa0M7SUFDbEMsaUNBQWlDO0lBQ2pDLHVCQUF5QjtJQWlHekI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FzQkc7SUFDVSxRQUFBLG1CQUFtQixHQUFzQjtRQUNwRCxRQUFRLEVBQUU7WUFDUix1REFBdUQ7WUFDdkQsNEJBQTRCO1lBQzVCLG1CQUFtQjtZQUNuQiwrQ0FBK0M7WUFDL0MsT0FBTztZQUNQLEtBQUs7WUFFTCxnR0FBZ0c7WUFDaEcseUZBQXlGO1lBQ3pGLDRDQUE0QztZQUM1QyxxQkFBcUIsRUFBRTtnQkFDckIsV0FBVyxFQUFFO29CQUNYLEdBQUcsRUFBRTt3QkFDSCxRQUFRLEVBQUU7NEJBQ1IsSUFBSSxFQUFFLFlBQVk7eUJBQ25CO3FCQUNGO2lCQUNGO2FBQ0Y7WUFFRCxnR0FBZ0c7WUFDaEcsc0ZBQXNGO1lBQ3RGLGtDQUFrQztZQUNsQyxhQUFhLEVBQUU7Z0JBQ2IsV0FBVyxFQUFFO29CQUNYLFFBQVEsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7aUJBQ3pCO2FBQ0Y7U0FDRjtRQUNELE9BQU8sRUFBRTtZQUNQLFVBQVUsRUFBRSxHQUFHO1lBQ2YsYUFBYSxFQUFFLEdBQUc7U0FDbkI7S0FDRixDQUFDO0lBRUYsSUFBTSxvQkFBb0IsR0FBRyxnQkFBZ0IsQ0FBQztJQUU5Qzs7T0FFRztJQUNIO1FBdUJFLG9DQUFZLEVBQW9CLEVBQUUsV0FBMkIsRUFBRSxFQUd4QztnQkFGckIsbUJBQWdCLEVBQWhCLFdBQVcsbUJBQUcsRUFBRSxLQUFBLEVBQ2hCLG1DQUFnQyxFQUFoQywyQkFBMkIsbUJBQUcsRUFB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a0JBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLFlBQVksRUFBRSxFQUFDLGlCQUFpQixFQUFFLElBQUksRUFBQyxDQUFDLEVBQWxFLENBQWtFLENBQUM7WUFDcEYsSUFBSSxDQUFDO0lBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtjcmVhdGVIYXNofSBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHtzYXRpc2ZpZXN9IGZyb20gJ3NlbXZlcic7XG5pbXBvcnQgKiBhcyB2bSBmcm9tICd2bSc7XG5cbmltcG9ydCB7QWJzb2x1dGVGc1BhdGgsIFBhdGhNYW5pcHVsYXRpb24sIFJlYWRvbmx5RmlsZVN5c3RlbX0gZnJvbSAnLi4vLi4vLi4vc3JjL25ndHNjL2ZpbGVfc3lzdGVtJztcblxuaW1wb3J0IHtQYWNrYWdlSnNvbkZvcm1hdFByb3BlcnRpZXNNYXB9IGZyb20gJy4vZW50cnlfcG9pbnQnO1xuXG4vKipcbiAqIFRoZSBmb3JtYXQgb2YgYSBwcm9qZWN0IGxldmVsIGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZ2NjUHJvamVjdENvbmZpZzxUID0gUmF3TmdjY1BhY2thZ2VDb25maWc+IHtcbiAgLyoqXG4gICAqIFRoZSBwYWNrYWdlcyB0aGF0IGFyZSBjb25maWd1cmVkIGJ5IHRoaXMgcHJvamVjdCBjb25maWcuXG4gICAqL1xuICBwYWNrYWdlcz86IHtbcGFja2FnZVBhdGg6IHN0cmluZ106IFR8dW5kZWZpbmVkfTtcbiAgLyoqXG4gICAqIE9wdGlvbnMgdGhhdCBjb250cm9sIGhvdyBsb2NraW5nIHRoZSBwcm9jZXNzIGlzIGhhbmRsZWQuXG4gICAqL1xuICBsb2NraW5nPzogUHJvY2Vzc0xvY2tpbmdDb25maWd1cmF0aW9uO1xuICAvKipcbiAgICogTmFtZSBvZiBoYXNoIGFsZ29yaXRobSB1c2VkIHRvIGdlbmVyYXRlIGhhc2hlcyBvZiB0aGUgY29uZmlndXJhdGlvbi5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gYHNoYTI1NmAuXG4gICAqL1xuICBoYXNoQWxnb3JpdGhtPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgdGhhdCBjb250cm9sIGhvdyBsb2NraW5nIHRoZSBwcm9jZXNzIGlzIGhhbmRsZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc0xvY2tpbmdDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgdGltZXMgdGhlIEFzeW5jTG9ja2VyIHdpbGwgYXR0ZW1wdCB0byBsb2NrIHRoZSBwcm9jZXNzIGJlZm9yZSBmYWlsaW5nLlxuICAgKiBEZWZhdWx0cyB0byA1MDAuXG4gICAqL1xuICByZXRyeUF0dGVtcHRzPzogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgYmV0d2VlbiBhdHRlbXB0cyB0byBsb2NrIHRoZSBwcm9jZXNzLlxuICAgKiBEZWZhdWx0cyB0byA1MDBtcy5cbiAgICogKi9cbiAgcmV0cnlEZWxheT86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBUaGUgcmF3IGZvcm1hdCBvZiBhIHBhY2thZ2UgbGV2ZWwgY29uZmlndXJhdGlvbiAoYXMgaXQgYXBwZWFycyBpbiBjb25maWd1cmF0aW9uIGZpbGVzKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSYXdOZ2NjUGFja2FnZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgZW50cnktcG9pbnRzIHRvIGNvbmZpZ3VyZSBmb3IgdGhpcyBwYWNrYWdlLlxuICAgKlxuICAgKiBJbiB0aGUgY29uZmlnIGZpbGUgdGhlIGtleXMgYXJlIHBhdGhzIHJlbGF0aXZlIHRvIHRoZSBwYWNrYWdlIHBhdGguXG4gICAqL1xuICBlbnRyeVBvaW50cz86IHtbZW50cnlQb2ludFBhdGg6IHN0cmluZ106IE5nY2NFbnRyeVBvaW50Q29uZmlnfTtcblxuICAvKipcbiAgICogQSBjb2xsZWN0aW9uIG9mIHJlZ2V4ZXMgdGhhdCBtYXRjaCBkZWVwIGltcG9ydHMgdG8gaWdub3JlLCBmb3IgdGhpcyBwYWNrYWdlLCByYXRoZXIgdGhhblxuICAgKiBkaXNwbGF5aW5nIGEgd2FybmluZy5cbiAgICovXG4gIGlnbm9yYWJsZURlZXBJbXBvcnRNYXRjaGVycz86IFJlZ0V4cFtdO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgYW4gZW50cnktcG9pbnQuXG4gKlxuICogVGhlIGV4aXN0ZW5jZSBvZiBhIGNvbmZpZ3VyYXRpb24gZm9yIGEgcGF0aCB0ZWxscyBuZ2NjIHRoYXQgdGhpcyBzaG91bGQgYmUgY29uc2lkZXJlZCBmb3JcbiAqIHByb2Nlc3NpbmcgYXMgYW4gZW50cnktcG9pbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmdjY0VudHJ5UG9pbnRDb25maWcge1xuICAvKiogRG8gbm90IHByb2Nlc3MgKG9yIGV2ZW4gYWNrbm93bGVkZ2UgdGhlIGV4aXN0ZW5jZSBvZikgdGhpcyBlbnRyeS1wb2ludCwgaWYgdHJ1ZS4gKi9cbiAgaWdub3JlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhpcyBwcm9wZXJ0eSwgaWYgcHJvdmlkZWQsIGhvbGRzIHZhbHVlcyB0aGF0IHdpbGwgb3ZlcnJpZGUgZXF1aXZhbGVudCBwcm9wZXJ0aWVzIGluIGFuXG4gICAqIGVudHJ5LXBvaW50J3MgcGFja2FnZS5qc29uIGZpbGUuXG4gICAqL1xuICBvdmVycmlkZT86IFBhY2thZ2VKc29uRm9ybWF0UHJvcGVydGllc01hcDtcblxuICAvKipcbiAgICogTm9ybWFsbHksIG5nY2Mgd2lsbCBza2lwIGNvbXBpbGF0aW9uIG9mIGVudHJ5cG9pbnRzIHRoYXQgY29udGFpbiBpbXBvcnRzIHRoYXQgY2FuJ3QgYmUgcmVzb2x2ZWRcbiAgICogb3IgdW5kZXJzdG9vZC4gSWYgdGhpcyBvcHRpb24gaXMgc3BlY2lmaWVkLCBuZ2NjIHdpbGwgcHJvY2VlZCB3aXRoIGNvbXBpbGluZyB0aGUgZW50cnlwb2ludFxuICAgKiBldmVuIGluIHRoZSBmYWNlIG9mIHN1Y2ggbWlzc2luZyBkZXBlbmRlbmNpZXMuXG4gICAqL1xuICBpZ25vcmVNaXNzaW5nRGVwZW5kZW5jaWVzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxpbmcgdGhpcyBvcHRpb24gZm9yIGFuIGVudHJ5cG9pbnQgdGVsbHMgbmdjYyB0aGF0IGRlZXAgaW1wb3J0cyBtaWdodCBiZSB1c2VkIGZvciB0aGUgZmlsZXNcbiAgICogaXQgY29udGFpbnMsIGFuZCB0aGF0IGl0IHNob3VsZCBnZW5lcmF0ZSBwcml2YXRlIHJlLWV4cG9ydHMgYWxvbmdzaWRlIHRoZSBOZ01vZHVsZSBvZiBhbGwgdGhlXG4gICAqIGRpcmVjdGl2ZXMvcGlwZXMgaXQgbWFrZXMgYXZhaWxhYmxlIGluIHN1cHBvcnQgb2YgdGhvc2UgaW1wb3J0cy5cbiAgICovXG4gIGdlbmVyYXRlRGVlcFJlZXhwb3J0cz86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBWZXJzaW9uZWRQYWNrYWdlQ29uZmlnIGV4dGVuZHMgUmF3TmdjY1BhY2thZ2VDb25maWcge1xuICB2ZXJzaW9uUmFuZ2U6IHN0cmluZztcbn1cblxudHlwZSBQYXJ0aWFsbHlQcm9jZXNzZWRDb25maWcgPSBSZXF1aXJlZDxOZ2NjUHJvamVjdENvbmZpZzxWZXJzaW9uZWRQYWNrYWdlQ29uZmlnW10+PjtcblxuLyoqXG4gKiBUaGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIGZvciBuZ2NjLlxuICpcbiAqIFRoaXMgaXMgdGhlIHVsdGltYXRlIGZhbGxiYWNrIGNvbmZpZ3VyYXRpb24gdGhhdCBuZ2NjIHdpbGwgdXNlIGlmIHRoZXJlIGlzIG5vIGNvbmZpZ3VyYXRpb25cbiAqIGZvciBhIHBhY2thZ2UgYXQgdGhlIHBhY2thZ2UgbGV2ZWwgb3IgcHJvamVjdCBsZXZlbC5cbiAqXG4gKiBUaGlzIGNvbmZpZ3VyYXRpb24gaXMgZm9yIHBhY2thZ2VzIHRoYXQgYXJlIFwiZGVhZFwiIC0gaS5lLiBubyBsb25nZXIgbWFpbnRhaW5lZCBhbmQgc28gYXJlXG4gKiB1bmxpa2VseSB0byBiZSBmaXhlZCB0byB3b3JrIHdpdGggbmdjYywgbm9yIHByb3ZpZGUgYSBwYWNrYWdlIGxldmVsIGNvbmZpZyBvZiB0aGVpciBvd24uXG4gKlxuICogVGhlIGZhbGxiYWNrIHByb2Nlc3MgZm9yIGxvb2tpbmcgdXAgY29uZmlndXJhdGlvbiBpczpcbiAqXG4gKiBQcm9qZWN0IC0+IFBhY2thZ2UgLT4gRGVmYXVsdFxuICpcbiAqIElmIGEgcGFja2FnZSBwcm92aWRlcyBpdHMgb3duIGNvbmZpZ3VyYXRpb24gdGhlbiB0aGF0IHdvdWxkIG92ZXJyaWRlIHRoaXMgZGVmYXVsdCBvbmUuXG4gKlxuICogQWxzbyBhcHBsaWNhdGlvbiBkZXZlbG9wZXJzIGNhbiBhbHdheXMgcHJvdmlkZSBjb25maWd1cmF0aW9uIGF0IHRoZWlyIHByb2plY3QgbGV2ZWwgd2hpY2hcbiAqIHdpbGwgb3ZlcnJpZGUgZXZlcnl0aGluZyBlbHNlLlxuICpcbiAqIE5vdGUgdGhhdCB0aGUgZmFsbGJhY2sgaXMgcGFja2FnZSBiYXNlZCBub3QgZW50cnktcG9pbnQgYmFzZWQuXG4gKiBGb3IgZXhhbXBsZSwgaWYgYSB0aGVyZSBpcyBjb25maWd1cmF0aW9uIGZvciBhIHBhY2thZ2UgYXQgdGhlIHByb2plY3QgbGV2ZWwgdGhpcyB3aWxsIHJlcGxhY2UgYWxsXG4gKiBlbnRyeS1wb2ludCBjb25maWd1cmF0aW9ucyB0aGF0IG1heSBoYXZlIGJlZW4gcHJvdmlkZWQgaW4gdGhlIHBhY2thZ2UgbGV2ZWwgb3IgZGVmYXVsdCBsZXZlbFxuICogY29uZmlndXJhdGlvbnMsIGV2ZW4gaWYgdGhlIHByb2plY3QgbGV2ZWwgY29uZmlndXJhdGlvbiBkb2VzIG5vdCBwcm92aWRlIGZvciBhIGdpdmVuIGVudHJ5LXBvaW50LlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9OR0NDX0NPTkZJRzogTmdjY1Byb2plY3RDb25maWcgPSB7XG4gIHBhY2thZ2VzOiB7XG4gICAgLy8gQWRkIGRlZmF1bHQgcGFja2FnZSBjb25maWd1cmF0aW9uIGhlcmUuIEZvciBleGFtcGxlOlxuICAgIC8vICdAYW5ndWxhci9maXJlQF41LjIuMCc6IHtcbiAgICAvLyAgIGVudHJ5UG9pbnRzOiB7XG4gICAgLy8gICAgICcuL2RhdGFiYXNlLWRlcHJlY2F0ZWQnOiB7aWdub3JlOiB0cnVlfSxcbiAgICAvLyAgIH0sXG4gICAgLy8gfSxcblxuICAgIC8vIFRoZSBwYWNrYWdlIGRvZXMgbm90IGNvbnRhaW4gYW55IGAubWV0YWRhdGEuanNvbmAgZmlsZXMgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IGJ1dCBvbmx5IGluc2lkZVxuICAgIC8vIGBkaXN0L2AuIFdpdGhvdXQgdGhpcyBjb25maWcsIG5nY2MgZG9lcyBub3QgcmVhbGl6ZSB0aGlzIGlzIGEgVmlld0VuZ2luZS1idWlsdCBBbmd1bGFyXG4gICAgLy8gcGFja2FnZSB0aGF0IG5lZWRzIHRvIGJlIGNvbXBpbGVkIHRvIEl2eS5cbiAgICAnYW5ndWxhcjItaGlnaGNoYXJ0cyc6IHtcbiAgICAgIGVudHJ5UG9pbnRzOiB7XG4gICAgICAgICcuJzoge1xuICAgICAgICAgIG92ZXJyaWRlOiB7XG4gICAgICAgICAgICBtYWluOiAnLi9pbmRleC5qcycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIC8vIFRoZSBgZGlzdC9gIGRpcmVjdG9yeSBoYXMgYSBkdXBsaWNhdGUgYHBhY2thZ2UuanNvbmAgcG9pbnRpbmcgdG8gdGhlIHNhbWUgZmlsZXMsIHdoaWNoICh1bmRlclxuICAgIC8vIGNlcnRhaW4gY29uZmlndXJhdGlvbnMpIGNhbiBjYXVzZXMgbmdjYyB0byB0cnkgdG8gcHJvY2VzcyB0aGUgZmlsZXMgdHdpY2UgYW5kIGZhaWwuXG4gICAgLy8gSWdub3JlIHRoZSBgZGlzdC9gIGVudHJ5LXBvaW50LlxuICAgICduZzItZHJhZ3VsYSc6IHtcbiAgICAgIGVudHJ5UG9pbnRzOiB7XG4gICAgICAgICcuL2Rpc3QnOiB7aWdub3JlOiB0cnVlfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgbG9ja2luZzoge1xuICAgIHJldHJ5RGVsYXk6IDUwMCxcbiAgICByZXRyeUF0dGVtcHRzOiA1MDAsXG4gIH1cbn07XG5cbmNvbnN0IE5HQ0NfQ09ORklHX0ZJTEVOQU1FID0gJ25nY2MuY29uZmlnLmpzJztcblxuLyoqXG4gKiBUaGUgcHJvY2Vzc2VkIHBhY2thZ2UgbGV2ZWwgY29uZmlndXJhdGlvbiBhcyBhIHJlc3VsdCBvZiBwcm9jZXNzaW5nIGEgcmF3IHBhY2thZ2UgbGV2ZWwgY29uZmlnLlxuICovXG5leHBvcnQgY2xhc3MgUHJvY2Vzc2VkTmdjY1BhY2thZ2VDb25maWcgaW1wbGVtZW50cyBPbWl0PFJhd05nY2NQYWNrYWdlQ29uZmlnLCAnZW50cnlQb2ludHMnPiB7XG4gIC8qKlxuICAgKiBUaGUgYWJzb2x1dGUgcGF0aCB0byB0aGlzIGluc3RhbmNlIG9mIHRoZSBwYWNrYWdlLlxuICAgKiBOb3RlIHRoYXQgdGhlcmUgbWF5IGJlIG11bHRpcGxlIGluc3RhbmNlcyBvZiBhIHBhY2thZ2UgaW5zaWRlIGEgcHJvamVjdCBpbiBuZXN0ZWRcbiAgICogYG5vZGVfbW9kdWxlcy9gLiBGb3IgZXhhbXBsZSwgb25lIGF0IGA8cHJvamVjdC1yb290Pi9ub2RlX21vZHVsZXMvc29tZS1wYWNrYWdlL2AgYW5kIG9uZSBhdFxuICAgKiBgPHByb2plY3Qtcm9vdD4vbm9kZV9tb2R1bGVzL290aGVyLXBhY2thZ2Uvbm9kZV9tb2R1bGVzL3NvbWUtcGFja2FnZS9gLlxuICAgKi9cbiAgcGFja2FnZVBhdGg6IEFic29sdXRlRnNQYXRoO1xuXG4gIC8qKlxuICAgKiBUaGUgZW50cnktcG9pbnRzIHRvIGNvbmZpZ3VyZSBmb3IgdGhpcyBwYWNrYWdlLlxuICAgKlxuICAgKiBJbiBjb250cmFzdCB0byBgUmF3TmdjY1BhY2thZ2VDb25maWdgLCB0aGUgcGF0aHMgYXJlIGFic29sdXRlIGFuZCB0YWtlIHRoZSBwYXRoIG9mIHRoZSBzcGVjaWZpY1xuICAgKiBpbnN0YW5jZSBvZiB0aGUgcGFja2FnZSBpbnRvIGFjY291bnQuXG4gICAqL1xuICBlbnRyeVBvaW50czogTWFwPEFic29sdXRlRnNQYXRoLCBOZ2NjRW50cnlQb2ludENvbmZpZz47XG5cbiAgLyoqXG4gICAqIEEgY29sbGVjdGlvbiBvZiByZWdleGVzIHRoYXQgbWF0Y2ggZGVlcCBpbXBvcnRzIHRvIGlnbm9yZSwgZm9yIHRoaXMgcGFja2FnZSwgcmF0aGVyIHRoYW5cbiAgICogZGlzcGxheWluZyBhIHdhcm5pbmcuXG4gICAqL1xuICBpZ25vcmFibGVEZWVwSW1wb3J0TWF0Y2hlcnM6IFJlZ0V4cFtdO1xuXG4gIGNvbnN0cnVjdG9yKGZzOiBQYXRoTWFuaXB1bGF0aW9uLCBwYWNrYWdlUGF0aDogQWJzb2x1dGVGc1BhdGgsIHtcbiAgICBlbnRyeVBvaW50cyA9IHt9LFxuICAgIGlnbm9yYWJsZURlZXBJbXBvcnRNYXRjaGVycyA9IFtdLFxuICB9OiBSYXdOZ2NjUGFja2FnZUNvbmZpZykge1xuICAgIGNvbnN0IGFic29sdXRlUGF0aEVudHJpZXM6IFtBYnNvbHV0ZUZzUGF0aCwgTmdjY0VudHJ5UG9pbnRDb25maWddW10gPVxuICAgICAgICBPYmplY3QuZW50cmllcyhlbnRyeVBvaW50cykubWFwKChbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVBhdGgsIGNvbmZpZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pID0+IFtmcy5yZXNvbHZlKHBhY2thZ2VQYXRoLCByZWxhdGl2ZVBhdGgpLCBjb25maWddKTtcblxuICAgIHRoaXMucGFja2FnZVBhdGggPSBwYWNrYWdlUGF0aDtcbiAgICB0aGlzLmVudHJ5UG9pbnRzID0gbmV3IE1hcChhYnNvbHV0ZVBhdGhFbnRyaWVzKTtcbiAgICB0aGlzLmlnbm9yYWJsZURlZXBJbXBvcnRNYXRjaGVycyA9IGlnbm9yYWJsZURlZXBJbXBvcnRNYXRjaGVycztcbiAgfVxufVxuXG4vKipcbiAqIE5nY2MgaGFzIGEgaGllcmFyY2hpY2FsIGNvbmZpZ3VyYXRpb24gc3lzdGVtIHRoYXQgbGV0cyB1cyBcImZpeCB1cFwiIHBhY2thZ2VzIHRoYXQgZG8gbm90XG4gKiB3b3JrIHdpdGggbmdjYyBvdXQgb2YgdGhlIGJveC5cbiAqXG4gKiBUaGVyZSBhcmUgdGhyZWUgbGV2ZWxzIGF0IHdoaWNoIGNvbmZpZ3VyYXRpb24gY2FuIGJlIGRlY2xhcmVkOlxuICpcbiAqICogRGVmYXVsdCBsZXZlbCAtIG5nY2MgY29tZXMgd2l0aCBidWlsdC1pbiBjb25maWd1cmF0aW9uIGZvciB3ZWxsIGtub3duIGNhc2VzLlxuICogKiBQYWNrYWdlIGxldmVsIC0gYSBsaWJyYXJ5IGF1dGhvciBwdWJsaXNoZXMgYSBjb25maWd1cmF0aW9uIHdpdGggdGhlaXIgcGFja2FnZSB0byBmaXgga25vd25cbiAqICAgaXNzdWVzLlxuICogKiBQcm9qZWN0IGxldmVsIC0gdGhlIGFwcGxpY2F0aW9uIGRldmVsb3BlciBwcm92aWRlcyBhIGNvbmZpZ3VyYXRpb24gdGhhdCBmaXhlcyBpc3N1ZXMgc3BlY2lmaWNcbiAqICAgdG8gdGhlIGxpYnJhcmllcyB1c2VkIGluIHRoZWlyIGFwcGxpY2F0aW9uLlxuICpcbiAqIE5nY2Mgd2lsbCBtYXRjaCBjb25maWd1cmF0aW9uIGJhc2VkIG9uIHRoZSBwYWNrYWdlIG5hbWUgYnV0IGFsc28gb24gaXRzIHZlcnNpb24uIFRoaXMgYWxsb3dzXG4gKiBjb25maWd1cmF0aW9uIHRvIHByb3ZpZGUgZGlmZmVyZW50IGZpeGVzIHRvIGRpZmZlcmVudCB2ZXJzaW9uIHJhbmdlcyBvZiBhIHBhY2thZ2UuXG4gKlxuICogKiBQYWNrYWdlIGxldmVsIGNvbmZpZ3VyYXRpb24gaXMgc3BlY2lmaWMgdG8gdGhlIHBhY2thZ2UgdmVyc2lvbiB3aGVyZSB0aGUgY29uZmlndXJhdGlvbiBpc1xuICogICBmb3VuZC5cbiAqICogRGVmYXVsdCBhbmQgcHJvamVjdCBsZXZlbCBjb25maWd1cmF0aW9uIHNob3VsZCBwcm92aWRlIHZlcnNpb24gcmFuZ2VzIHRvIGVuc3VyZSB0aGF0IHRoZVxuICogICBjb25maWd1cmF0aW9uIGlzIG9ubHkgYXBwbGllZCB0byB0aGUgYXBwcm9wcmlhdGUgdmVyc2lvbnMgb2YgYSBwYWNrYWdlLlxuICpcbiAqIFdoZW4gZ2V0dGluZyBhIGNvbmZpZ3VyYXRpb24gZm9yIGEgcGFja2FnZSAodmlhIGBnZXRDb25maWcoKWApIHRoZSBjYWxsZXIgc2hvdWxkIHByb3ZpZGUgdGhlXG4gKiB2ZXJzaW9uIG9mIHRoZSBwYWNrYWdlIGluIHF1ZXN0aW9uLCBpZiBhdmFpbGFibGUuIElmIGl0IGlzIG5vdCBwcm92aWRlZCB0aGVuIHRoZSBmaXJzdCBhdmFpbGFibGVcbiAqIGNvbmZpZ3VyYXRpb24gZm9yIGEgcGFja2FnZSBpcyByZXR1cm5lZC5cbiAqL1xuZXhwb3J0IGNsYXNzIE5nY2NDb25maWd1cmF0aW9uIHtcbiAgcHJpdmF0ZSBkZWZhdWx0Q29uZmlnOiBQYXJ0aWFsbHlQcm9jZXNzZWRDb25maWc7XG4gIHByaXZhdGUgcHJvamVjdENvbmZpZzogUGFydGlhbGx5UHJvY2Vzc2VkQ29uZmlnO1xuICBwcml2YXRlIGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIFZlcnNpb25lZFBhY2thZ2VDb25maWc+KCk7XG4gIHJlYWRvbmx5IGhhc2g6IHN0cmluZztcbiAgcmVhZG9ubHkgaGFzaEFsZ29yaXRobTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZnM6IFJlYWRvbmx5RmlsZVN5c3RlbSwgYmFzZURpcjogQWJzb2x1dGVGc1BhdGgpIHtcbiAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB0aGlzLnByb2Nlc3NQcm9qZWN0Q29uZmlnKERFRkFVTFRfTkdDQ19DT05GSUcpO1xuICAgIHRoaXMucHJvamVjdENvbmZpZyA9IHRoaXMucHJvY2Vzc1Byb2plY3RDb25maWcodGhpcy5sb2FkUHJvamVjdENvbmZpZyhiYXNlRGlyKSk7XG4gICAgdGhpcy5oYXNoQWxnb3JpdGhtID0gdGhpcy5wcm9qZWN0Q29uZmlnLmhhc2hBbGdvcml0aG07XG4gICAgdGhpcy5oYXNoID0gdGhpcy5jb21wdXRlSGFzaCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBsb2NraW5nIHRoZSBuZ2NjIHByb2Nlc3MuXG4gICAqL1xuICBnZXRMb2NraW5nQ29uZmlnKCk6IFJlcXVpcmVkPFByb2Nlc3NMb2NraW5nQ29uZmlndXJhdGlvbj4ge1xuICAgIGxldCB7cmV0cnlBdHRlbXB0cywgcmV0cnlEZWxheX0gPSB0aGlzLnByb2plY3RDb25maWcubG9ja2luZztcbiAgICBpZiAocmV0cnlBdHRlbXB0cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXRyeUF0dGVtcHRzID0gdGhpcy5kZWZhdWx0Q29uZmlnLmxvY2tpbmcucmV0cnlBdHRlbXB0cyE7XG4gICAgfVxuICAgIGlmIChyZXRyeURlbGF5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHJ5RGVsYXkgPSB0aGlzLmRlZmF1bHRDb25maWcubG9ja2luZy5yZXRyeURlbGF5ITtcbiAgICB9XG4gICAgcmV0dXJuIHtyZXRyeUF0dGVtcHRzLCByZXRyeURlbGF5fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBjb25maWd1cmF0aW9uIGZvciB0aGUgZ2l2ZW4gYHZlcnNpb25gIG9mIGEgcGFja2FnZSBhdCBgcGFja2FnZVBhdGhgLlxuICAgKlxuICAgKiBAcGFyYW0gcGFja2FnZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHBhY2thZ2Ugd2hvc2UgY29uZmlnIHdlIHdhbnQuXG4gICAqIEBwYXJhbSBwYWNrYWdlUGF0aCBUaGUgcGF0aCB0byB0aGUgcGFja2FnZSB3aG9zZSBjb25maWcgd2Ugd2FudC5cbiAgICogQHBhcmFtIHZlcnNpb24gVGhlIHZlcnNpb24gb2YgdGhlIHBhY2thZ2Ugd2hvc2UgY29uZmlnIHdlIHdhbnQsIG9yIGBudWxsYCBpZiB0aGUgcGFja2FnZSdzXG4gICAqIHBhY2thZ2UuanNvbiBkaWQgbm90IGV4aXN0IG9yIHdhcyBpbnZhbGlkLlxuICAgKi9cbiAgZ2V0UGFja2FnZUNvbmZpZyhwYWNrYWdlTmFtZTogc3RyaW5nLCBwYWNrYWdlUGF0aDogQWJzb2x1dGVGc1BhdGgsIHZlcnNpb246IHN0cmluZ3xudWxsKTpcbiAgICAgIFByb2Nlc3NlZE5nY2NQYWNrYWdlQ29uZmlnIHtcbiAgICBjb25zdCByYXdQYWNrYWdlQ29uZmlnID0gdGhpcy5nZXRSYXdQYWNrYWdlQ29uZmlnKHBhY2thZ2VOYW1lLCBwYWNrYWdlUGF0aCwgdmVyc2lvbik7XG4gICAgcmV0dXJuIG5ldyBQcm9jZXNzZWROZ2NjUGFja2FnZUNvbmZpZyh0aGlzLmZzLCBwYWNrYWdlUGF0aCwgcmF3UGFja2FnZUNvbmZpZyk7XG4gIH1cblxuICBwcml2YXRlIGdldFJhd1BhY2thZ2VDb25maWcoXG4gICAgICBwYWNrYWdlTmFtZTogc3RyaW5nLCBwYWNrYWdlUGF0aDogQWJzb2x1dGVGc1BhdGgsXG4gICAgICB2ZXJzaW9uOiBzdHJpbmd8bnVsbCk6IFZlcnNpb25lZFBhY2thZ2VDb25maWcge1xuICAgIGNvbnN0IGNhY2hlS2V5ID0gcGFja2FnZU5hbWUgKyAodmVyc2lvbiAhPT0gbnVsbCA/IGBAJHt2ZXJzaW9ufWAgOiAnJyk7XG4gICAgaWYgKHRoaXMuY2FjaGUuaGFzKGNhY2hlS2V5KSkge1xuICAgICAgcmV0dXJuIHRoaXMuY2FjaGUuZ2V0KGNhY2hlS2V5KSE7XG4gICAgfVxuXG4gICAgY29uc3QgcHJvamVjdExldmVsQ29uZmlnID0gdGhpcy5wcm9qZWN0Q29uZmlnLnBhY2thZ2VzID9cbiAgICAgICAgZmluZFNhdGlzZmFjdG9yeVZlcnNpb24odGhpcy5wcm9qZWN0Q29uZmlnLnBhY2thZ2VzW3BhY2thZ2VOYW1lXSwgdmVyc2lvbikgOlxuICAgICAgICBudWxsO1xuICAgIGlmIChwcm9qZWN0TGV2ZWxDb25maWcgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuY2FjaGUuc2V0KGNhY2hlS2V5LCBwcm9qZWN0TGV2ZWxDb25maWcpO1xuICAgICAgcmV0dXJuIHByb2plY3RMZXZlbENvbmZpZztcbiAgICB9XG5cbiAgICBjb25zdCBwYWNrYWdlTGV2ZWxDb25maWcgPSB0aGlzLmxvYWRQYWNrYWdlQ29uZmlnKHBhY2thZ2VQYXRoLCB2ZXJzaW9uKTtcbiAgICBpZiAocGFja2FnZUxldmVsQ29uZmlnICE9PSBudWxsKSB7XG4gICAgICB0aGlzLmNhY2hlLnNldChjYWNoZUtleSwgcGFja2FnZUxldmVsQ29uZmlnKTtcbiAgICAgIHJldHVybiBwYWNrYWdlTGV2ZWxDb25maWc7XG4gICAgfVxuXG4gICAgY29uc3QgZGVmYXVsdExldmVsQ29uZmlnID0gdGhpcy5kZWZhdWx0Q29uZmlnLnBhY2thZ2VzID9cbiAgICAgICAgZmluZFNhdGlzZmFjdG9yeVZlcnNpb24odGhpcy5kZWZhdWx0Q29uZmlnLnBhY2thZ2VzW3BhY2thZ2VOYW1lXSwgdmVyc2lvbikgOlxuICAgICAgICBudWxsO1xuICAgIGlmIChkZWZhdWx0TGV2ZWxDb25maWcgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuY2FjaGUuc2V0KGNhY2hlS2V5LCBkZWZhdWx0TGV2ZWxDb25maWcpO1xuICAgICAgcmV0dXJuIGRlZmF1bHRMZXZlbENvbmZpZztcbiAgICB9XG5cbiAgICByZXR1cm4ge3ZlcnNpb25SYW5nZTogJyonfTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc1Byb2plY3RDb25maWcocHJvamVjdENvbmZpZzogTmdjY1Byb2plY3RDb25maWcpOiBQYXJ0aWFsbHlQcm9jZXNzZWRDb25maWcge1xuICAgIGNvbnN0IHByb2Nlc3NlZENvbmZpZzpcbiAgICAgICAgUGFydGlhbGx5UHJvY2Vzc2VkQ29uZmlnID0ge3BhY2thZ2VzOiB7fSwgbG9ja2luZzoge30sIGhhc2hBbGdvcml0aG06ICdzaGEyNTYnfTtcblxuICAgIC8vIGxvY2tpbmcgY29uZmlndXJhdGlvblxuICAgIGlmIChwcm9qZWN0Q29uZmlnLmxvY2tpbmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcHJvY2Vzc2VkQ29uZmlnLmxvY2tpbmcgPSBwcm9qZWN0Q29uZmlnLmxvY2tpbmc7XG4gICAgfVxuXG4gICAgLy8gcGFja2FnZXMgY29uZmlndXJhdGlvblxuICAgIGZvciAoY29uc3QgcGFja2FnZU5hbWVBbmRWZXJzaW9uIGluIHByb2plY3RDb25maWcucGFja2FnZXMpIHtcbiAgICAgIGNvbnN0IHBhY2thZ2VDb25maWcgPSBwcm9qZWN0Q29uZmlnLnBhY2thZ2VzW3BhY2thZ2VOYW1lQW5kVmVyc2lvbl07XG4gICAgICBpZiAocGFja2FnZUNvbmZpZykge1xuICAgICAgICBjb25zdCBbcGFja2FnZU5hbWUsIHZlcnNpb25SYW5nZSA9ICcqJ10gPSB0aGlzLnNwbGl0TmFtZUFuZFZlcnNpb24ocGFja2FnZU5hbWVBbmRWZXJzaW9uKTtcbiAgICAgICAgY29uc3QgcGFja2FnZUNvbmZpZ3MgPVxuICAgICAgICAgICAgcHJvY2Vzc2VkQ29uZmlnLnBhY2thZ2VzW3BhY2thZ2VOYW1lXSB8fCAocHJvY2Vzc2VkQ29uZmlnLnBhY2thZ2VzW3BhY2thZ2VOYW1lXSA9IFtdKTtcbiAgICAgICAgcGFja2FnZUNvbmZpZ3MhLnB1c2goey4uLnBhY2thZ2VDb25maWcsIHZlcnNpb25SYW5nZX0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGhhc2ggYWxnb3JpdGhtIGNvbmZpZ1xuICAgIGlmIChwcm9qZWN0Q29uZmlnLmhhc2hBbGdvcml0aG0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgcHJvY2Vzc2VkQ29uZmlnLmhhc2hBbGdvcml0aG0gPSBwcm9qZWN0Q29uZmlnLmhhc2hBbGdvcml0aG07XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb2Nlc3NlZENvbmZpZztcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFByb2plY3RDb25maWcoYmFzZURpcjogQWJzb2x1dGVGc1BhdGgpOiBOZ2NjUHJvamVjdENvbmZpZyB7XG4gICAgY29uc3QgY29uZmlnRmlsZVBhdGggPSB0aGlzLmZzLmpvaW4oYmFzZURpciwgTkdDQ19DT05GSUdfRklMRU5BTUUpO1xuICAgIGlmICh0aGlzLmZzLmV4aXN0cyhjb25maWdGaWxlUGF0aCkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiB0aGlzLmV2YWxTcmNGaWxlKGNvbmZpZ0ZpbGVQYXRoKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHByb2plY3QgY29uZmlndXJhdGlvbiBmaWxlIGF0IFwiJHtjb25maWdGaWxlUGF0aH1cIjogYCArIGUubWVzc2FnZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7cGFja2FnZXM6IHt9fTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRQYWNrYWdlQ29uZmlnKHBhY2thZ2VQYXRoOiBBYnNvbHV0ZUZzUGF0aCwgdmVyc2lvbjogc3RyaW5nfG51bGwpOlxuICAgICAgVmVyc2lvbmVkUGFja2FnZUNvbmZpZ3xudWxsIHtcbiAgICBjb25zdCBjb25maWdGaWxlUGF0aCA9IHRoaXMuZnMuam9pbihwYWNrYWdlUGF0aCwgTkdDQ19DT05GSUdfRklMRU5BTUUpO1xuICAgIGlmICh0aGlzLmZzLmV4aXN0cyhjb25maWdGaWxlUGF0aCkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHBhY2thZ2VDb25maWcgPSB0aGlzLmV2YWxTcmNGaWxlKGNvbmZpZ0ZpbGVQYXRoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5wYWNrYWdlQ29uZmlnLFxuICAgICAgICAgIHZlcnNpb25SYW5nZTogdmVyc2lvbiB8fCAnKicsXG4gICAgICAgIH07XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwYWNrYWdlIGNvbmZpZ3VyYXRpb24gZmlsZSBhdCBcIiR7Y29uZmlnRmlsZVBhdGh9XCI6IGAgKyBlLm1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGV2YWxTcmNGaWxlKHNyY1BhdGg6IEFic29sdXRlRnNQYXRoKTogYW55IHtcbiAgICBjb25zdCBzcmMgPSB0aGlzLmZzLnJlYWRGaWxlKHNyY1BhdGgpO1xuICAgIGNvbnN0IHRoZUV4cG9ydHMgPSB7fTtcbiAgICBjb25zdCBzYW5kYm94ID0ge1xuICAgICAgbW9kdWxlOiB7ZXhwb3J0czogdGhlRXhwb3J0c30sXG4gICAgICBleHBvcnRzOiB0aGVFeHBvcnRzLFxuICAgICAgcmVxdWlyZSxcbiAgICAgIF9fZGlybmFtZTogdGhpcy5mcy5kaXJuYW1lKHNyY1BhdGgpLFxuICAgICAgX19maWxlbmFtZTogc3JjUGF0aFxuICAgIH07XG4gICAgdm0ucnVuSW5OZXdDb250ZXh0KHNyYywgc2FuZGJveCwge2ZpbGVuYW1lOiBzcmNQYXRofSk7XG4gICAgcmV0dXJuIHNhbmRib3gubW9kdWxlLmV4cG9ydHM7XG4gIH1cblxuICBwcml2YXRlIHNwbGl0TmFtZUFuZFZlcnNpb24ocGFja2FnZU5hbWVBbmRWZXJzaW9uOiBzdHJpbmcpOiBbc3RyaW5nLCBzdHJpbmd8dW5kZWZpbmVkXSB7XG4gICAgY29uc3QgdmVyc2lvbkluZGV4ID0gcGFja2FnZU5hbWVBbmRWZXJzaW9uLmxhc3RJbmRleE9mKCdAJyk7XG4gICAgLy8gTm90ZSB0aGF0ID4gMCBpcyBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8gbWF0Y2ggQCBhdCB0aGUgc3RhcnQgb2YgdGhlIGxpbmVcbiAgICAvLyB3aGljaCBpcyB3aGF0IHlvdSB3b3VsZCBoYXZlIHdpdGggYSBuYW1lc3BhY2VkIHBhY2thZ2UsIGUuZy4gYEBhbmd1bGFyL2NvbW1vbmAuXG4gICAgcmV0dXJuIHZlcnNpb25JbmRleCA+IDAgP1xuICAgICAgICBbXG4gICAgICAgICAgcGFja2FnZU5hbWVBbmRWZXJzaW9uLnN1YnN0cmluZygwLCB2ZXJzaW9uSW5kZXgpLFxuICAgICAgICAgIHBhY2thZ2VOYW1lQW5kVmVyc2lvbi5zdWJzdHJpbmcodmVyc2lvbkluZGV4ICsgMSksXG4gICAgICAgIF0gOlxuICAgICAgICBbcGFja2FnZU5hbWVBbmRWZXJzaW9uLCB1bmRlZmluZWRdO1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wdXRlSGFzaCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBjcmVhdGVIYXNoKHRoaXMuaGFzaEFsZ29yaXRobSkudXBkYXRlKEpTT04uc3RyaW5naWZ5KHRoaXMucHJvamVjdENvbmZpZykpLmRpZ2VzdCgnaGV4Jyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmluZFNhdGlzZmFjdG9yeVZlcnNpb24oY29uZmlnczogVmVyc2lvbmVkUGFja2FnZUNvbmZpZ1tdfHVuZGVmaW5lZCwgdmVyc2lvbjogc3RyaW5nfG51bGwpOlxuICAgIFZlcnNpb25lZFBhY2thZ2VDb25maWd8bnVsbCB7XG4gIGlmIChjb25maWdzID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBpZiAodmVyc2lvbiA9PT0gbnVsbCkge1xuICAgIC8vIFRoZSBwYWNrYWdlIGhhcyBubyB2ZXJzaW9uICghKSAtIHBlcmhhcHMgdGhlIGVudHJ5LXBvaW50IHdhcyBmcm9tIGEgZGVlcCBpbXBvcnQsIHdoaWNoIG1hZGVcbiAgICAvLyBpdCBpbXBvc3NpYmxlIHRvIGZpbmQgdGhlIHBhY2thZ2UuanNvbi5cbiAgICAvLyBTbyBqdXN0IHJldHVybiB0aGUgZmlyc3QgY29uZmlnIHRoYXQgbWF0Y2hlcyB0aGUgcGFja2FnZSBuYW1lLlxuICAgIHJldHVybiBjb25maWdzWzBdO1xuICB9XG4gIHJldHVybiBjb25maWdzLmZpbmQoXG4gICAgICAgICAgICAgY29uZmlnID0+IHNhdGlzZmllcyh2ZXJzaW9uLCBjb25maWcudmVyc2lvblJhbmdlLCB7aW5jbHVkZVByZXJlbGVhc2U6IHRydWV9KSkgfHxcbiAgICAgIG51bGw7XG59XG4iXX0=