@angular/compiler-cli 13.0.0-next.9 → 13.0.0-rc.3
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.
- package/bundles/index.js +20413 -0
- package/bundles/index.js.map +6 -0
- package/bundles/linker/babel/index.js +2384 -0
- package/bundles/linker/babel/index.js.map +6 -0
- package/bundles/linker/index.js +1849 -0
- package/bundles/linker/index.js.map +6 -0
- package/bundles/ngcc/index.js +16038 -0
- package/bundles/ngcc/index.js.map +6 -0
- package/bundles/ngcc/main-ngcc.js +16126 -0
- package/bundles/ngcc/main-ngcc.js.map +6 -0
- package/bundles/ngcc/src/execution/cluster/ngcc_cluster_worker.js +13850 -0
- package/bundles/ngcc/src/execution/cluster/ngcc_cluster_worker.js.map +6 -0
- package/bundles/ngcc/src/locking/lock_file_with_child_process/ngcc_lock_unlocker.js +334 -0
- package/bundles/ngcc/src/locking/lock_file_with_child_process/ngcc_lock_unlocker.js.map +6 -0
- package/bundles/private/bazel.js +97 -0
- package/bundles/private/bazel.js.map +6 -0
- package/bundles/private/localize.js +911 -0
- package/bundles/private/localize.js.map +6 -0
- package/bundles/private/migrations.js +2183 -0
- package/bundles/private/migrations.js.map +6 -0
- package/bundles/private/tooling.js +942 -0
- package/bundles/private/tooling.js.map +6 -0
- package/bundles/src/bin/ng_xi18n.js +20463 -0
- package/bundles/src/bin/ng_xi18n.js.map +6 -0
- package/bundles/src/bin/ngc.js +20465 -0
- package/bundles/src/bin/ngc.js.map +6 -0
- package/bundles_metadata.json +1 -0
- package/import_meta_url.d.ts +14 -0
- package/index.d.ts +4 -1
- package/linker/babel/src/ast/babel_ast_factory.d.ts +1 -8
- package/linker/babel/src/ast/babel_ast_host.d.ts +1 -1
- package/linker/babel/src/babel_core.d.ts +36 -0
- package/linker/babel/src/babel_declaration_scope.d.ts +1 -1
- package/linker/babel/src/babel_plugin.d.ts +1 -8
- package/linker/babel/src/es2015_linker_plugin.d.ts +2 -2
- package/linker/src/ast/typescript/typescript_ast_host.d.ts +1 -1
- package/linker/src/file_linker/emit_scopes/emit_scope.d.ts +1 -2
- package/linker/src/file_linker/emit_scopes/iife_emit_scope.d.ts +1 -1
- package/linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.d.ts +1 -2
- package/linker/src/file_linker/partial_linkers/partial_component_linker_1.d.ts +1 -2
- package/linker/src/file_linker/partial_linkers/partial_directive_linker_1.d.ts +1 -2
- package/linker/src/file_linker/partial_linkers/partial_factory_linker_1.d.ts +1 -2
- package/linker/src/file_linker/partial_linkers/partial_injectable_linker_1.d.ts +1 -2
- package/linker/src/file_linker/partial_linkers/partial_injector_linker_1.d.ts +1 -2
- package/linker/src/file_linker/partial_linkers/partial_linker.d.ts +1 -2
- package/linker/src/file_linker/partial_linkers/partial_linker_selector.d.ts +2 -2
- package/linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.d.ts +1 -2
- package/linker/src/file_linker/partial_linkers/partial_pipe_linker_1.d.ts +1 -2
- package/linker/src/file_linker/partial_linkers/util.d.ts +1 -2
- package/ngcc/index.d.ts +15 -0
- package/ngcc/src/analysis/decoration_analyzer.d.ts +1 -1
- package/ngcc/src/analysis/module_with_providers_analyzer.d.ts +1 -1
- package/ngcc/src/analysis/ngcc_references_registry.d.ts +1 -1
- package/ngcc/src/analysis/ngcc_trait_compiler.d.ts +1 -1
- package/ngcc/src/analysis/private_declarations_analyzer.d.ts +1 -1
- package/ngcc/src/analysis/switch_marker_analyzer.d.ts +1 -1
- package/ngcc/src/analysis/types.d.ts +1 -1
- package/ngcc/src/dependencies/esm_dependency_host.d.ts +1 -1
- package/ngcc/src/execution/cluster/api.d.ts +5 -1
- package/ngcc/src/execution/cluster/master.d.ts +5 -3
- package/{src/ngtsc/logging/testing/index.d.ts → ngcc/src/execution/cluster/ngcc_cluster_worker.d.ts} +2 -2
- package/ngcc/src/host/commonjs_host.d.ts +1 -1
- package/ngcc/src/host/commonjs_umd_utils.d.ts +1 -1
- package/ngcc/src/host/delegating_host.d.ts +1 -1
- package/ngcc/src/host/esm2015_host.d.ts +1 -1
- package/ngcc/src/host/esm5_host.d.ts +1 -1
- package/ngcc/src/host/ngcc_host.d.ts +1 -1
- package/ngcc/src/host/umd_host.d.ts +1 -1
- package/ngcc/src/host/utils.d.ts +1 -1
- package/ngcc/src/locking/lock_file.d.ts +1 -1
- package/ngcc/src/locking/lock_file_with_child_process/index.d.ts +2 -0
- package/ngcc/src/locking/lock_file_with_child_process/{unlocker.d.ts → ngcc_lock_unlocker.d.ts} +1 -1
- package/ngcc/src/migrations/migration.d.ts +1 -1
- package/ngcc/src/migrations/missing_injectable_migration.d.ts +1 -1
- package/ngcc/src/migrations/undecorated_child_migration.d.ts +1 -1
- package/ngcc/src/migrations/undecorated_parent_migration.d.ts +1 -1
- package/ngcc/src/migrations/utils.d.ts +1 -1
- package/ngcc/src/packages/build_marker.d.ts +1 -1
- package/ngcc/src/packages/bundle_program.d.ts +1 -1
- package/ngcc/src/packages/entry_point_bundle.d.ts +1 -1
- package/ngcc/src/packages/ngcc_compiler_host.d.ts +1 -1
- package/ngcc/src/packages/source_file_cache.d.ts +1 -1
- package/ngcc/src/packages/transformer.d.ts +1 -1
- package/ngcc/src/rendering/commonjs_rendering_formatter.d.ts +1 -1
- package/ngcc/src/rendering/dts_renderer.d.ts +1 -1
- package/ngcc/src/rendering/esm5_rendering_formatter.d.ts +1 -1
- package/ngcc/src/rendering/esm_rendering_formatter.d.ts +1 -1
- package/ngcc/src/rendering/renderer.d.ts +1 -1
- package/ngcc/src/rendering/rendering_formatter.d.ts +1 -1
- package/ngcc/src/rendering/source_maps.d.ts +3 -3
- package/ngcc/src/rendering/umd_rendering_formatter.d.ts +1 -1
- package/ngcc/src/rendering/utils.d.ts +1 -1
- package/ngcc/src/utils.d.ts +1 -1
- package/package.json +52 -13
- package/private/bazel.d.ts +13 -0
- package/private/localize.d.ts +15 -0
- package/private/migrations.d.ts +16 -0
- package/{src → private}/tooling.d.ts +2 -2
- package/src/bin/ng_xi18n.d.ts +10 -0
- package/{ngcc/main-ivy-ngcc.d.ts → src/bin/ngc.d.ts} +2 -1
- package/src/diagnostics/translate_diagnostics.d.ts +1 -1
- package/src/extract_i18n.d.ts +0 -5
- package/src/main.d.ts +9 -6
- package/src/metadata/bundle_index_host.d.ts +1 -1
- package/src/metadata/bundler.d.ts +1 -1
- package/src/metadata/collector.d.ts +1 -1
- package/src/metadata/evaluator.d.ts +1 -1
- package/src/metadata/symbols.d.ts +1 -1
- package/src/ngtsc/annotations/src/component.d.ts +1 -1
- package/src/ngtsc/annotations/src/diagnostics.d.ts +1 -1
- package/src/ngtsc/annotations/src/directive.d.ts +1 -1
- package/src/ngtsc/annotations/src/ng_module.d.ts +2 -3
- package/src/ngtsc/annotations/src/pipe.d.ts +1 -1
- package/src/ngtsc/annotations/src/util.d.ts +2 -4
- package/src/ngtsc/core/api/src/adapter.d.ts +1 -1
- package/src/ngtsc/core/api/src/interfaces.d.ts +1 -1
- package/src/ngtsc/core/api/src/options.d.ts +1 -1
- package/src/ngtsc/core/api/src/public_options.d.ts +5 -1
- package/src/ngtsc/core/src/compiler.d.ts +1 -1
- package/src/ngtsc/core/src/host.d.ts +1 -1
- package/src/ngtsc/cycles/src/analyzer.d.ts +1 -1
- package/src/ngtsc/cycles/src/imports.d.ts +1 -1
- package/src/ngtsc/diagnostics/index.d.ts +4 -2
- package/src/ngtsc/diagnostics/src/docs.d.ts +14 -0
- package/src/ngtsc/diagnostics/src/error.d.ts +1 -1
- package/src/ngtsc/diagnostics/src/error_details_base_url.d.ts +16 -0
- package/src/ngtsc/diagnostics/src/util.d.ts +2 -0
- package/src/ngtsc/entry_point/src/generator.d.ts +1 -1
- package/src/ngtsc/entry_point/src/private_export_checker.d.ts +1 -1
- package/src/ngtsc/file_system/src/compiler_host.d.ts +1 -1
- package/src/ngtsc/file_system/src/logical.d.ts +1 -1
- package/src/ngtsc/file_system/src/util.d.ts +1 -1
- package/src/ngtsc/imports/src/alias.d.ts +1 -1
- package/src/ngtsc/imports/src/default.d.ts +1 -1
- package/src/ngtsc/imports/src/emitter.d.ts +1 -1
- package/src/ngtsc/imports/src/find_export.d.ts +1 -1
- package/src/ngtsc/imports/src/references.d.ts +1 -1
- package/src/ngtsc/imports/src/resolver.d.ts +1 -1
- package/src/ngtsc/incremental/api.d.ts +1 -1
- package/src/ngtsc/incremental/src/dependency_tracking.d.ts +1 -1
- package/src/ngtsc/incremental/src/incremental.d.ts +1 -1
- package/src/ngtsc/incremental/src/state.d.ts +1 -1
- package/src/ngtsc/incremental/src/strategy.d.ts +1 -1
- package/src/ngtsc/metadata/src/api.d.ts +1 -1
- package/src/ngtsc/metadata/src/dts.d.ts +1 -1
- package/src/ngtsc/metadata/src/resource_registry.d.ts +1 -1
- package/src/ngtsc/metadata/src/util.d.ts +1 -1
- package/src/ngtsc/partial_evaluator/index.d.ts +1 -0
- package/src/ngtsc/partial_evaluator/src/builtin.d.ts +1 -1
- package/src/ngtsc/partial_evaluator/src/diagnostics.d.ts +1 -1
- package/src/ngtsc/partial_evaluator/src/dynamic.d.ts +1 -1
- package/src/ngtsc/partial_evaluator/src/interface.d.ts +1 -1
- package/src/ngtsc/partial_evaluator/src/interpreter.d.ts +1 -1
- package/src/ngtsc/partial_evaluator/src/result.d.ts +1 -1
- package/src/ngtsc/partial_evaluator/src/ts_helpers.d.ts +1 -1
- package/src/ngtsc/program.d.ts +1 -1
- package/src/ngtsc/program_driver/src/api.d.ts +1 -1
- package/src/ngtsc/program_driver/src/ts_create_program_driver.d.ts +1 -1
- package/src/ngtsc/reflection/src/host.d.ts +1 -1
- package/src/ngtsc/reflection/src/type_to_value.d.ts +1 -1
- package/src/ngtsc/reflection/src/typescript.d.ts +1 -1
- package/src/ngtsc/reflection/src/util.d.ts +1 -1
- package/src/ngtsc/resource/src/loader.d.ts +1 -1
- package/src/ngtsc/scope/src/local.d.ts +1 -1
- package/src/ngtsc/scope/src/typecheck.d.ts +1 -1
- package/src/ngtsc/shims/api.d.ts +1 -1
- package/src/ngtsc/shims/src/adapter.d.ts +1 -1
- package/src/ngtsc/shims/src/expando.d.ts +1 -1
- package/src/ngtsc/shims/src/factory_generator.d.ts +1 -1
- package/src/ngtsc/shims/src/reference_tagger.d.ts +1 -1
- package/src/ngtsc/shims/src/summary_generator.d.ts +1 -1
- package/src/ngtsc/switch/src/switch.d.ts +1 -1
- package/src/ngtsc/transform/src/alias.d.ts +1 -1
- package/src/ngtsc/transform/src/api.d.ts +1 -1
- package/src/ngtsc/transform/src/compilation.d.ts +1 -1
- package/src/ngtsc/transform/src/declaration.d.ts +1 -1
- package/src/ngtsc/transform/src/trait.d.ts +1 -1
- package/src/ngtsc/transform/src/transform.d.ts +1 -1
- package/src/ngtsc/transform/src/utils.d.ts +1 -1
- package/src/ngtsc/translator/src/import_manager.d.ts +1 -1
- package/src/ngtsc/translator/src/type_translator.d.ts +1 -1
- package/src/ngtsc/translator/src/typescript_ast_factory.d.ts +1 -1
- package/src/ngtsc/translator/src/typescript_translator.d.ts +1 -1
- package/src/ngtsc/tsc_plugin.d.ts +1 -1
- package/src/ngtsc/typecheck/api/api.d.ts +1 -1
- package/src/ngtsc/typecheck/api/checker.d.ts +3 -4
- package/src/ngtsc/typecheck/api/context.d.ts +1 -1
- package/src/ngtsc/typecheck/api/scope.d.ts +1 -1
- package/src/ngtsc/typecheck/api/symbols.d.ts +1 -1
- package/src/ngtsc/typecheck/diagnostics/src/diagnostic.d.ts +1 -1
- package/src/ngtsc/typecheck/extended/api/api.d.ts +1 -1
- package/src/ngtsc/typecheck/extended/api/extended_template_checker.d.ts +1 -1
- package/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.d.ts +1 -1
- package/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.d.ts +1 -1
- package/src/ngtsc/typecheck/extended/src/extended_template_checker.d.ts +1 -1
- package/src/ngtsc/typecheck/src/checker.d.ts +3 -4
- package/src/ngtsc/typecheck/src/comments.d.ts +1 -1
- package/src/ngtsc/typecheck/src/completion.d.ts +3 -5
- package/src/ngtsc/typecheck/src/context.d.ts +1 -1
- package/src/ngtsc/typecheck/src/diagnostics.d.ts +1 -1
- package/src/ngtsc/typecheck/src/environment.d.ts +1 -1
- package/src/ngtsc/typecheck/src/expression.d.ts +1 -1
- package/src/ngtsc/typecheck/src/oob.d.ts +3 -4
- package/src/ngtsc/typecheck/src/shim.d.ts +1 -1
- package/src/ngtsc/typecheck/src/source.d.ts +1 -1
- package/src/ngtsc/typecheck/src/tcb_util.d.ts +1 -1
- package/src/ngtsc/typecheck/src/template_symbol_builder.d.ts +1 -1
- package/src/ngtsc/typecheck/src/ts_util.d.ts +1 -1
- package/src/ngtsc/typecheck/src/type_check_block.d.ts +1 -1
- package/src/ngtsc/typecheck/src/type_check_file.d.ts +1 -1
- package/src/ngtsc/typecheck/src/type_constructor.d.ts +1 -1
- package/src/ngtsc/typecheck/src/type_emitter.d.ts +1 -1
- package/src/ngtsc/typecheck/src/type_parameter_emitter.d.ts +1 -1
- package/src/ngtsc/util/src/typescript.d.ts +1 -1
- package/src/ngtsc/util/src/visitor.d.ts +1 -1
- package/src/perform_compile.d.ts +1 -2
- package/src/perform_watch.d.ts +1 -1
- package/src/transformers/api.d.ts +1 -1
- package/src/transformers/compiler_host.d.ts +1 -1
- package/src/transformers/{downlevel_decorators_transform.d.ts → downlevel_decorators_transform/downlevel_decorators_transform.d.ts} +3 -3
- package/src/transformers/downlevel_decorators_transform/index.d.ts +9 -0
- package/src/transformers/{patch_alias_reference_resolution.d.ts → downlevel_decorators_transform/patch_alias_reference_resolution.d.ts} +2 -2
- package/src/transformers/i18n.d.ts +1 -1
- package/src/transformers/inline_resources.d.ts +1 -1
- package/src/transformers/lower_expressions.d.ts +1 -1
- package/src/transformers/metadata_cache.d.ts +1 -1
- package/src/transformers/node_emitter.d.ts +1 -1
- package/src/transformers/node_emitter_transform.d.ts +1 -1
- package/src/transformers/program.d.ts +1 -1
- package/src/transformers/r3_metadata_transform.d.ts +1 -1
- package/src/transformers/r3_transform.d.ts +1 -1
- package/src/transformers/util.d.ts +1 -1
- package/index.js +0 -40
- package/linker/babel/index.js +0 -25
- package/linker/babel/src/ast/babel_ast_factory.js +0 -153
- package/linker/babel/src/ast/babel_ast_host.js +0 -181
- package/linker/babel/src/babel_declaration_scope.js +0 -67
- package/linker/babel/src/babel_plugin.js +0 -38
- package/linker/babel/src/es2015_linker_plugin.js +0 -183
- package/linker/babel/src/linker_plugin_options.js +0 -13
- package/linker/index.js +0 -27
- package/linker/src/ast/ast_host.js +0 -20
- package/linker/src/ast/ast_value.js +0 -299
- package/linker/src/ast/typescript/typescript_ast_host.js +0 -183
- package/linker/src/ast/utils.js +0 -31
- package/linker/src/fatal_linker_error.js +0 -49
- package/linker/src/file_linker/declaration_scope.js +0 -20
- package/linker/src/file_linker/emit_scopes/emit_scope.js +0 -57
- package/linker/src/file_linker/emit_scopes/iife_emit_scope.js +0 -51
- package/linker/src/file_linker/file_linker.js +0 -97
- package/linker/src/file_linker/get_source_file.js +0 -42
- package/linker/src/file_linker/linker_environment.js +0 -38
- package/linker/src/file_linker/linker_options.js +0 -29
- package/linker/src/file_linker/needs_linking.js +0 -41
- package/linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.js +0 -47
- package/linker/src/file_linker/partial_linkers/partial_component_linker_1.js +0 -210
- package/linker/src/file_linker/partial_linkers/partial_directive_linker_1.js +0 -154
- package/linker/src/file_linker/partial_linkers/partial_factory_linker_1.js +0 -70
- package/linker/src/file_linker/partial_linkers/partial_injectable_linker_1.js +0 -74
- package/linker/src/file_linker/partial_linkers/partial_injector_linker_1.js +0 -56
- package/linker/src/file_linker/partial_linkers/partial_linker.js +0 -13
- package/linker/src/file_linker/partial_linkers/partial_linker_selector.js +0 -194
- package/linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.js +0 -126
- package/linker/src/file_linker/partial_linkers/partial_pipe_linker_1.js +0 -59
- package/linker/src/file_linker/partial_linkers/util.js +0 -95
- package/linker/src/file_linker/translator.js +0 -40
- package/linker/src/linker_import_generator.js +0 -43
- package/ngcc/index.js +0 -33
- package/ngcc/main-ivy-ngcc.js +0 -12
- package/ngcc/main-ngcc.js +0 -54
- package/ngcc/src/analysis/decoration_analyzer.js +0 -268
- package/ngcc/src/analysis/migration_host.js +0 -108
- package/ngcc/src/analysis/module_with_providers_analyzer.js +0 -197
- package/ngcc/src/analysis/ngcc_references_registry.js +0 -65
- package/ngcc/src/analysis/ngcc_trait_compiler.js +0 -117
- package/ngcc/src/analysis/private_declarations_analyzer.js +0 -63
- package/ngcc/src/analysis/switch_marker_analyzer.js +0 -50
- package/ngcc/src/analysis/types.js +0 -15
- package/ngcc/src/analysis/util.js +0 -36
- package/ngcc/src/command_line_options.js +0 -156
- package/ngcc/src/constants.js +0 -23
- package/ngcc/src/dependencies/commonjs_dependency_host.js +0 -129
- package/ngcc/src/dependencies/dependency_host.js +0 -143
- package/ngcc/src/dependencies/dependency_resolver.js +0 -180
- package/ngcc/src/dependencies/dts_dependency_host.js +0 -35
- package/ngcc/src/dependencies/esm_dependency_host.js +0 -307
- package/ngcc/src/dependencies/module_resolver.js +0 -269
- package/ngcc/src/dependencies/umd_dependency_host.js +0 -53
- package/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.js +0 -70
- package/ngcc/src/entry_point_finder/entry_point_collector.js +0 -157
- package/ngcc/src/entry_point_finder/interface.js +0 -13
- package/ngcc/src/entry_point_finder/program_based_entry_point_finder.js +0 -132
- package/ngcc/src/entry_point_finder/targeted_entry_point_finder.js +0 -268
- package/ngcc/src/entry_point_finder/tracing_entry_point_finder.js +0 -78
- package/ngcc/src/entry_point_finder/utils.js +0 -234
- package/ngcc/src/execution/analyze_entry_points.js +0 -197
- package/ngcc/src/execution/api.js +0 -13
- package/ngcc/src/execution/cluster/api.js +0 -20
- package/ngcc/src/execution/cluster/executor.js +0 -52
- package/ngcc/src/execution/cluster/master.js +0 -311
- package/ngcc/src/execution/cluster/package_json_updater.js +0 -79
- package/ngcc/src/execution/cluster/utils.js +0 -77
- package/ngcc/src/execution/cluster/worker.js +0 -123
- package/ngcc/src/execution/create_compile_function.js +0 -76
- package/ngcc/src/execution/single_process_executor.js +0 -91
- package/ngcc/src/execution/tasks/api.js +0 -35
- package/ngcc/src/execution/tasks/completion.js +0 -79
- package/ngcc/src/execution/tasks/queues/base_task_queue.js +0 -120
- package/ngcc/src/execution/tasks/queues/parallel_task_queue.js +0 -87
- package/ngcc/src/execution/tasks/queues/serial_task_queue.js +0 -49
- package/ngcc/src/execution/tasks/utils.js +0 -167
- package/ngcc/src/host/commonjs_host.js +0 -261
- package/ngcc/src/host/commonjs_umd_utils.js +0 -210
- package/ngcc/src/host/delegating_host.js +0 -156
- package/ngcc/src/host/esm2015_host.js +0 -2441
- package/ngcc/src/host/esm5_host.js +0 -745
- package/ngcc/src/host/ngcc_host.js +0 -29
- package/ngcc/src/host/umd_host.js +0 -539
- package/ngcc/src/host/utils.js +0 -26
- package/ngcc/src/locking/async_locker.js +0 -121
- package/ngcc/src/locking/lock_file.js +0 -18
- package/ngcc/src/locking/lock_file_with_child_process/index.js +0 -93
- package/ngcc/src/locking/lock_file_with_child_process/unlocker.js +0 -46
- package/ngcc/src/locking/lock_file_with_child_process/util.js +0 -43
- package/ngcc/src/locking/sync_locker.js +0 -67
- package/ngcc/src/main.js +0 -163
- package/ngcc/src/migrations/migration.js +0 -13
- package/ngcc/src/migrations/missing_injectable_migration.js +0 -227
- package/ngcc/src/migrations/undecorated_child_migration.js +0 -90
- package/ngcc/src/migrations/undecorated_parent_migration.js +0 -103
- package/ngcc/src/migrations/utils.js +0 -137
- package/ngcc/src/ngcc_options.js +0 -135
- package/ngcc/src/packages/build_marker.js +0 -124
- package/ngcc/src/packages/bundle_program.js +0 -80
- package/ngcc/src/packages/configuration.js +0 -334
- package/ngcc/src/packages/entry_point.js +0 -267
- package/ngcc/src/packages/entry_point_bundle.js +0 -96
- package/ngcc/src/packages/entry_point_manifest.js +0 -207
- package/ngcc/src/packages/ngcc_compiler_host.js +0 -101
- package/ngcc/src/packages/patch_ts_expando_initializer.js +0 -174
- package/ngcc/src/packages/source_file_cache.js +0 -207
- package/ngcc/src/packages/transformer.js +0 -157
- package/ngcc/src/path_mappings.js +0 -27
- package/ngcc/src/rendering/commonjs_rendering_formatter.js +0 -106
- package/ngcc/src/rendering/dts_renderer.js +0 -170
- package/ngcc/src/rendering/esm5_rendering_formatter.js +0 -70
- package/ngcc/src/rendering/esm_rendering_formatter.js +0 -291
- package/ngcc/src/rendering/ngcc_import_rewriter.js +0 -49
- package/ngcc/src/rendering/renderer.js +0 -204
- package/ngcc/src/rendering/rendering_formatter.js +0 -15
- package/ngcc/src/rendering/source_maps.js +0 -68
- package/ngcc/src/rendering/umd_rendering_formatter.js +0 -326
- package/ngcc/src/rendering/utils.js +0 -35
- package/ngcc/src/utils.js +0 -182
- package/ngcc/src/writing/cleaning/cleaning_strategies.js +0 -80
- package/ngcc/src/writing/cleaning/package_cleaner.js +0 -126
- package/ngcc/src/writing/cleaning/utils.js +0 -30
- package/ngcc/src/writing/file_writer.js +0 -13
- package/ngcc/src/writing/in_place_file_writer.js +0 -90
- package/ngcc/src/writing/new_entry_point_file_writer.js +0 -214
- package/ngcc/src/writing/package_json_updater.js +0 -182
- package/src/diagnostics/translate_diagnostics.js +0 -61
- package/src/diagnostics/typescript_version.js +0 -96
- package/src/extract_i18n.js +0 -62
- package/src/language_services.js +0 -34
- package/src/main.js +0 -210
- package/src/metadata/bundle_index_host.js +0 -133
- package/src/metadata/bundler.js +0 -624
- package/src/metadata/collector.js +0 -799
- package/src/metadata/evaluator.js +0 -677
- package/src/metadata/index.js +0 -24
- package/src/metadata/index_writer.js +0 -80
- package/src/metadata/schema.js +0 -136
- package/src/metadata/symbols.js +0 -149
- package/src/ngtsc/annotations/index.js +0 -35
- package/src/ngtsc/annotations/src/api.js +0 -20
- package/src/ngtsc/annotations/src/component.js +0 -1338
- package/src/ngtsc/annotations/src/diagnostics.js +0 -174
- package/src/ngtsc/annotations/src/directive.js +0 -724
- package/src/ngtsc/annotations/src/factory.js +0 -32
- package/src/ngtsc/annotations/src/injectable.js +0 -284
- package/src/ngtsc/annotations/src/metadata.js +0 -160
- package/src/ngtsc/annotations/src/ng_module.js +0 -671
- package/src/ngtsc/annotations/src/pipe.js +0 -171
- package/src/ngtsc/annotations/src/references_registry.js +0 -38
- package/src/ngtsc/annotations/src/util.js +0 -566
- package/src/ngtsc/core/api/index.js +0 -25
- package/src/ngtsc/core/api/src/adapter.js +0 -20
- package/src/ngtsc/core/api/src/interfaces.js +0 -20
- package/src/ngtsc/core/api/src/options.js +0 -20
- package/src/ngtsc/core/api/src/public_options.js +0 -20
- package/src/ngtsc/core/index.js +0 -25
- package/src/ngtsc/core/src/compiler.js +0 -1105
- package/src/ngtsc/core/src/host.js +0 -273
- package/src/ngtsc/cycles/index.js +0 -26
- package/src/ngtsc/cycles/src/analyzer.js +0 -163
- package/src/ngtsc/cycles/src/imports.js +0 -175
- package/src/ngtsc/diagnostics/index.js +0 -33
- package/src/ngtsc/diagnostics/src/error.js +0 -69
- package/src/ngtsc/diagnostics/src/error_code.js +0 -235
- package/src/ngtsc/diagnostics/src/util.js +0 -35
- package/src/ngtsc/entry_point/index.js +0 -29
- package/src/ngtsc/entry_point/src/generator.js +0 -45
- package/src/ngtsc/entry_point/src/logic.js +0 -61
- package/src/ngtsc/entry_point/src/private_export_checker.js +0 -137
- package/src/ngtsc/entry_point/src/reference_graph.js +0 -91
- package/src/ngtsc/file_system/index.js +0 -45
- package/src/ngtsc/file_system/src/compiler_host.js +0 -80
- package/src/ngtsc/file_system/src/helpers.js +0 -135
- package/src/ngtsc/file_system/src/invalid_file_system.js +0 -120
- package/src/ngtsc/file_system/src/logical.js +0 -100
- package/src/ngtsc/file_system/src/node_js_file_system.js +0 -179
- package/src/ngtsc/file_system/src/types.js +0 -20
- package/src/ngtsc/file_system/src/util.js +0 -38
- package/src/ngtsc/file_system/testing/index.d.ts +0 -13
- package/src/ngtsc/file_system/testing/index.js +0 -32
- package/src/ngtsc/file_system/testing/src/mock_file_system.d.ts +0 -72
- package/src/ngtsc/file_system/testing/src/mock_file_system.js +0 -333
- package/src/ngtsc/file_system/testing/src/mock_file_system_native.d.ts +0 -16
- package/src/ngtsc/file_system/testing/src/mock_file_system_native.js +0 -85
- package/src/ngtsc/file_system/testing/src/mock_file_system_posix.d.ts +0 -13
- package/src/ngtsc/file_system/testing/src/mock_file_system_posix.js +0 -68
- package/src/ngtsc/file_system/testing/src/mock_file_system_windows.d.ts +0 -13
- package/src/ngtsc/file_system/testing/src/mock_file_system_windows.js +0 -68
- package/src/ngtsc/file_system/testing/src/test_helper.d.ts +0 -17
- package/src/ngtsc/file_system/testing/src/test_helper.js +0 -143
- package/src/ngtsc/imports/index.js +0 -43
- package/src/ngtsc/imports/src/alias.js +0 -158
- package/src/ngtsc/imports/src/core.js +0 -98
- package/src/ngtsc/imports/src/default.js +0 -153
- package/src/ngtsc/imports/src/emitter.js +0 -317
- package/src/ngtsc/imports/src/find_export.js +0 -82
- package/src/ngtsc/imports/src/reexport.js +0 -20
- package/src/ngtsc/imports/src/references.js +0 -171
- package/src/ngtsc/imports/src/resolver.js +0 -39
- package/src/ngtsc/incremental/api.js +0 -20
- package/src/ngtsc/incremental/index.js +0 -29
- package/src/ngtsc/incremental/semantic_graph/index.js +0 -34
- package/src/ngtsc/incremental/semantic_graph/src/api.js +0 -51
- package/src/ngtsc/incremental/semantic_graph/src/graph.js +0 -302
- package/src/ngtsc/incremental/semantic_graph/src/type_parameters.js +0 -55
- package/src/ngtsc/incremental/semantic_graph/src/util.js +0 -111
- package/src/ngtsc/incremental/src/dependency_tracking.js +0 -165
- package/src/ngtsc/incremental/src/incremental.js +0 -393
- package/src/ngtsc/incremental/src/noop.js +0 -26
- package/src/ngtsc/incremental/src/state.js +0 -30
- package/src/ngtsc/incremental/src/strategy.js +0 -99
- package/src/ngtsc/indexer/index.js +0 -27
- package/src/ngtsc/indexer/src/api.js +0 -45
- package/src/ngtsc/indexer/src/context.js +0 -40
- package/src/ngtsc/indexer/src/template.js +0 -324
- package/src/ngtsc/indexer/src/transform.js +0 -66
- package/src/ngtsc/logging/index.js +0 -25
- package/src/ngtsc/logging/src/console_logger.js +0 -75
- package/src/ngtsc/logging/src/logger.js +0 -28
- package/src/ngtsc/logging/testing/index.js +0 -23
- package/src/ngtsc/logging/testing/src/mock_logger.d.ts +0 -20
- package/src/ngtsc/logging/testing/src/mock_logger.js +0 -64
- package/src/ngtsc/metadata/index.js +0 -39
- package/src/ngtsc/metadata/src/api.js +0 -26
- package/src/ngtsc/metadata/src/dts.js +0 -168
- package/src/ngtsc/metadata/src/inheritance.js +0 -122
- package/src/ngtsc/metadata/src/property_mapping.js +0 -244
- package/src/ngtsc/metadata/src/registry.js +0 -133
- package/src/ngtsc/metadata/src/resource_registry.js +0 -109
- package/src/ngtsc/metadata/src/util.js +0 -275
- package/src/ngtsc/partial_evaluator/index.js +0 -31
- package/src/ngtsc/partial_evaluator/src/builtin.js +0 -125
- package/src/ngtsc/partial_evaluator/src/diagnostics.js +0 -193
- package/src/ngtsc/partial_evaluator/src/dynamic.js +0 -109
- package/src/ngtsc/partial_evaluator/src/interface.js +0 -42
- package/src/ngtsc/partial_evaluator/src/interpreter.js +0 -780
- package/src/ngtsc/partial_evaluator/src/known_declaration.js +0 -57
- package/src/ngtsc/partial_evaluator/src/result.js +0 -72
- package/src/ngtsc/partial_evaluator/src/ts_helpers.js +0 -121
- package/src/ngtsc/perf/index.js +0 -28
- package/src/ngtsc/perf/src/api.js +0 -291
- package/src/ngtsc/perf/src/clock.js +0 -31
- package/src/ngtsc/perf/src/noop.js +0 -37
- package/src/ngtsc/perf/src/recorder.js +0 -143
- package/src/ngtsc/program.js +0 -360
- package/src/ngtsc/program_driver/index.js +0 -25
- package/src/ngtsc/program_driver/src/api.js +0 -36
- package/src/ngtsc/program_driver/src/ts_create_program_driver.js +0 -200
- package/src/ngtsc/reflection/index.js +0 -36
- package/src/ngtsc/reflection/src/host.js +0 -88
- package/src/ngtsc/reflection/src/type_to_value.js +0 -259
- package/src/ngtsc/reflection/src/typescript.js +0 -640
- package/src/ngtsc/reflection/src/util.js +0 -37
- package/src/ngtsc/resource/index.js +0 -23
- package/src/ngtsc/resource/src/loader.js +0 -285
- package/src/ngtsc/scope/index.js +0 -29
- package/src/ngtsc/scope/src/api.js +0 -20
- package/src/ngtsc/scope/src/component_scope.js +0 -69
- package/src/ngtsc/scope/src/dependency.js +0 -201
- package/src/ngtsc/scope/src/local.js +0 -665
- package/src/ngtsc/scope/src/typecheck.js +0 -120
- package/src/ngtsc/shims/api.js +0 -13
- package/src/ngtsc/shims/index.js +0 -39
- package/src/ngtsc/shims/src/adapter.js +0 -266
- package/src/ngtsc/shims/src/expando.js +0 -147
- package/src/ngtsc/shims/src/factory_generator.js +0 -292
- package/src/ngtsc/shims/src/reference_tagger.js +0 -94
- package/src/ngtsc/shims/src/summary_generator.js +0 -101
- package/src/ngtsc/shims/src/util.js +0 -41
- package/src/ngtsc/sourcemaps/index.js +0 -27
- package/src/ngtsc/sourcemaps/src/content_origin.js +0 -48
- package/src/ngtsc/sourcemaps/src/raw_source_map.js +0 -13
- package/src/ngtsc/sourcemaps/src/segment_marker.js +0 -55
- package/src/ngtsc/sourcemaps/src/source_file.js +0 -519
- package/src/ngtsc/sourcemaps/src/source_file_loader.js +0 -234
- package/src/ngtsc/switch/index.js +0 -23
- package/src/ngtsc/switch/src/switch.js +0 -141
- package/src/ngtsc/transform/index.js +0 -36
- package/src/ngtsc/transform/src/alias.js +0 -46
- package/src/ngtsc/transform/src/api.js +0 -76
- package/src/ngtsc/transform/src/compilation.js +0 -862
- package/src/ngtsc/transform/src/declaration.js +0 -234
- package/src/ngtsc/transform/src/trait.js +0 -111
- package/src/ngtsc/transform/src/transform.js +0 -333
- package/src/ngtsc/transform/src/utils.js +0 -73
- package/src/ngtsc/translator/index.js +0 -37
- package/src/ngtsc/translator/src/api/ast_factory.js +0 -20
- package/src/ngtsc/translator/src/api/import_generator.js +0 -20
- package/src/ngtsc/translator/src/context.js +0 -47
- package/src/ngtsc/translator/src/import_manager.js +0 -77
- package/src/ngtsc/translator/src/translator.js +0 -347
- package/src/ngtsc/translator/src/type_translator.js +0 -220
- package/src/ngtsc/translator/src/typescript_ast_factory.js +0 -251
- package/src/ngtsc/translator/src/typescript_translator.js +0 -34
- package/src/ngtsc/tsc_plugin.js +0 -129
- package/src/ngtsc/typecheck/api/api.js +0 -20
- package/src/ngtsc/typecheck/api/checker.js +0 -44
- package/src/ngtsc/typecheck/api/completion.js +0 -29
- package/src/ngtsc/typecheck/api/context.js +0 -20
- package/src/ngtsc/typecheck/api/index.js +0 -27
- package/src/ngtsc/typecheck/api/scope.js +0 -20
- package/src/ngtsc/typecheck/api/symbols.js +0 -35
- package/src/ngtsc/typecheck/diagnostics/index.js +0 -23
- package/src/ngtsc/typecheck/diagnostics/src/diagnostic.js +0 -141
- package/src/ngtsc/typecheck/diagnostics/src/id.js +0 -37
- package/src/ngtsc/typecheck/extended/api/api.js +0 -124
- package/src/ngtsc/typecheck/extended/api/extended_template_checker.js +0 -20
- package/src/ngtsc/typecheck/extended/api/index.js +0 -23
- package/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.js +0 -52
- package/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.js +0 -64
- package/src/ngtsc/typecheck/extended/index.js +0 -23
- package/src/ngtsc/typecheck/extended/src/extended_template_checker.js +0 -55
- package/src/ngtsc/typecheck/index.js +0 -29
- package/src/ngtsc/typecheck/src/checker.js +0 -767
- package/src/ngtsc/typecheck/src/comments.js +0 -181
- package/src/ngtsc/typecheck/src/completion.js +0 -230
- package/src/ngtsc/typecheck/src/context.js +0 -424
- package/src/ngtsc/typecheck/src/diagnostics.js +0 -114
- package/src/ngtsc/typecheck/src/dom.js +0 -87
- package/src/ngtsc/typecheck/src/environment.js +0 -160
- package/src/ngtsc/typecheck/src/expression.js +0 -417
- package/src/ngtsc/typecheck/src/line_mappings.js +0 -77
- package/src/ngtsc/typecheck/src/oob.js +0 -181
- package/src/ngtsc/typecheck/src/shim.js +0 -52
- package/src/ngtsc/typecheck/src/source.js +0 -91
- package/src/ngtsc/typecheck/src/tcb_util.js +0 -165
- package/src/ngtsc/typecheck/src/template_semantics.js +0 -52
- package/src/ngtsc/typecheck/src/template_symbol_builder.js +0 -551
- package/src/ngtsc/typecheck/src/ts_util.js +0 -202
- package/src/ngtsc/typecheck/src/type_check_block.js +0 -2212
- package/src/ngtsc/typecheck/src/type_check_file.js +0 -115
- package/src/ngtsc/typecheck/src/type_constructor.js +0 -255
- package/src/ngtsc/typecheck/src/type_emitter.js +0 -164
- package/src/ngtsc/typecheck/src/type_parameter_emitter.js +0 -115
- package/src/ngtsc/util/src/path.js +0 -33
- package/src/ngtsc/util/src/typescript.js +0 -176
- package/src/ngtsc/util/src/visitor.js +0 -119
- package/src/ngtsc/xi18n/index.js +0 -22
- package/src/ngtsc/xi18n/src/context.js +0 -20
- package/src/perform_compile.js +0 -322
- package/src/perform_watch.js +0 -263
- package/src/tooling.js +0 -47
- package/src/transformers/api.js +0 -42
- package/src/transformers/compiler_host.js +0 -623
- package/src/transformers/downlevel_decorators_transform.js +0 -611
- package/src/transformers/entry_points.js +0 -25
- package/src/transformers/i18n.js +0 -76
- package/src/transformers/inline_resources.js +0 -287
- package/src/transformers/lower_expressions.js +0 -365
- package/src/transformers/metadata_cache.js +0 -96
- package/src/transformers/metadata_reader.js +0 -120
- package/src/transformers/node_emitter.js +0 -637
- package/src/transformers/node_emitter_transform.js +0 -88
- package/src/transformers/patch_alias_reference_resolution.js +0 -129
- package/src/transformers/program.js +0 -998
- package/src/transformers/r3_metadata_transform.js +0 -73
- package/src/transformers/r3_transform.js +0 -44
- package/src/transformers/util.js +0 -122
- package/src/typescript_support.js +0 -74
- package/src/version.js +0 -28
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
(function (factory) {
|
|
2
|
-
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
-
var v = factory(require, exports);
|
|
4
|
-
if (v !== undefined) module.exports = v;
|
|
5
|
-
}
|
|
6
|
-
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define("@angular/compiler-cli/src/ngtsc/sourcemaps/src/source_file_loader", ["require", "exports", "tslib", "convert-source-map", "@angular/compiler-cli/src/ngtsc/sourcemaps/src/content_origin", "@angular/compiler-cli/src/ngtsc/sourcemaps/src/source_file"], factory);
|
|
8
|
-
}
|
|
9
|
-
})(function (require, exports) {
|
|
10
|
-
"use strict";
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.SourceFileLoader = 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 convert_source_map_1 = require("convert-source-map");
|
|
22
|
-
var content_origin_1 = require("@angular/compiler-cli/src/ngtsc/sourcemaps/src/content_origin");
|
|
23
|
-
var source_file_1 = require("@angular/compiler-cli/src/ngtsc/sourcemaps/src/source_file");
|
|
24
|
-
var SCHEME_MATCHER = /^([a-z][a-z0-9.-]*):\/\//i;
|
|
25
|
-
/**
|
|
26
|
-
* This class can be used to load a source file, its associated source map and any upstream sources.
|
|
27
|
-
*
|
|
28
|
-
* Since a source file might reference (or include) a source map, this class can load those too.
|
|
29
|
-
* Since a source map might reference other source files, these are also loaded as needed.
|
|
30
|
-
*
|
|
31
|
-
* This is done recursively. The result is a "tree" of `SourceFile` objects, each containing
|
|
32
|
-
* mappings to other `SourceFile` objects as necessary.
|
|
33
|
-
*/
|
|
34
|
-
var SourceFileLoader = /** @class */ (function () {
|
|
35
|
-
function SourceFileLoader(fs, logger,
|
|
36
|
-
/** A map of URL schemes to base paths. The scheme name should be lowercase. */
|
|
37
|
-
schemeMap) {
|
|
38
|
-
this.fs = fs;
|
|
39
|
-
this.logger = logger;
|
|
40
|
-
this.schemeMap = schemeMap;
|
|
41
|
-
this.currentPaths = [];
|
|
42
|
-
}
|
|
43
|
-
SourceFileLoader.prototype.loadSourceFile = function (sourcePath, contents, mapAndPath) {
|
|
44
|
-
if (contents === void 0) { contents = null; }
|
|
45
|
-
if (mapAndPath === void 0) { mapAndPath = null; }
|
|
46
|
-
var contentsOrigin = contents !== null ? content_origin_1.ContentOrigin.Provided : content_origin_1.ContentOrigin.FileSystem;
|
|
47
|
-
var sourceMapInfo = mapAndPath && (0, tslib_1.__assign)({ origin: content_origin_1.ContentOrigin.Provided }, mapAndPath);
|
|
48
|
-
return this.loadSourceFileInternal(sourcePath, contents, contentsOrigin, sourceMapInfo);
|
|
49
|
-
};
|
|
50
|
-
/**
|
|
51
|
-
* The overload used internally to load source files referenced in a source-map.
|
|
52
|
-
*
|
|
53
|
-
* In this case there is no guarantee that it will return a non-null SourceMap.
|
|
54
|
-
*
|
|
55
|
-
* @param sourcePath The path to the source file to load.
|
|
56
|
-
* @param contents The contents of the source file to load, if provided inline. If `null`,
|
|
57
|
-
* the contents will be read from the file at the `sourcePath`.
|
|
58
|
-
* @param sourceOrigin Describes where the source content came from.
|
|
59
|
-
* @param sourceMapInfo The raw contents and path of the source-map file. If `null` the
|
|
60
|
-
* source-map will be computed from the contents of the source file, either inline or loaded
|
|
61
|
-
* from the file-system.
|
|
62
|
-
*
|
|
63
|
-
* @returns a SourceFile if the content for one was provided or was able to be loaded from disk,
|
|
64
|
-
* `null` otherwise.
|
|
65
|
-
*/
|
|
66
|
-
SourceFileLoader.prototype.loadSourceFileInternal = function (sourcePath, contents, sourceOrigin, sourceMapInfo) {
|
|
67
|
-
var previousPaths = this.currentPaths.slice();
|
|
68
|
-
try {
|
|
69
|
-
if (contents === null) {
|
|
70
|
-
if (!this.fs.exists(sourcePath)) {
|
|
71
|
-
return null;
|
|
72
|
-
}
|
|
73
|
-
contents = this.readSourceFile(sourcePath);
|
|
74
|
-
}
|
|
75
|
-
// If not provided try to load the source map based on the source itself
|
|
76
|
-
if (sourceMapInfo === null) {
|
|
77
|
-
sourceMapInfo = this.loadSourceMap(sourcePath, contents, sourceOrigin);
|
|
78
|
-
}
|
|
79
|
-
var sources = [];
|
|
80
|
-
if (sourceMapInfo !== null) {
|
|
81
|
-
var basePath = sourceMapInfo.mapPath || sourcePath;
|
|
82
|
-
sources = this.processSources(basePath, sourceMapInfo);
|
|
83
|
-
}
|
|
84
|
-
return new source_file_1.SourceFile(sourcePath, contents, sourceMapInfo, sources, this.fs);
|
|
85
|
-
}
|
|
86
|
-
catch (e) {
|
|
87
|
-
this.logger.warn("Unable to fully load " + sourcePath + " for source-map flattening: " + e.message);
|
|
88
|
-
return null;
|
|
89
|
-
}
|
|
90
|
-
finally {
|
|
91
|
-
// We are finished with this recursion so revert the paths being tracked
|
|
92
|
-
this.currentPaths = previousPaths;
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
/**
|
|
96
|
-
* Find the source map associated with the source file whose `sourcePath` and `contents` are
|
|
97
|
-
* provided.
|
|
98
|
-
*
|
|
99
|
-
* Source maps can be inline, as part of a base64 encoded comment, or external as a separate file
|
|
100
|
-
* whose path is indicated in a comment or implied from the name of the source file itself.
|
|
101
|
-
*
|
|
102
|
-
* @param sourcePath the path to the source file.
|
|
103
|
-
* @param sourceContents the contents of the source file.
|
|
104
|
-
* @param sourceOrigin where the content of the source file came from.
|
|
105
|
-
* @returns the parsed contents and path of the source-map, if loading was successful, null
|
|
106
|
-
* otherwise.
|
|
107
|
-
*/
|
|
108
|
-
SourceFileLoader.prototype.loadSourceMap = function (sourcePath, sourceContents, sourceOrigin) {
|
|
109
|
-
// Only consider a source-map comment from the last non-empty line of the file, in case there
|
|
110
|
-
// are embedded source-map comments elsewhere in the file (as can be the case with bundlers like
|
|
111
|
-
// webpack).
|
|
112
|
-
var lastLine = this.getLastNonEmptyLine(sourceContents);
|
|
113
|
-
var inline = convert_source_map_1.commentRegex.exec(lastLine);
|
|
114
|
-
if (inline !== null) {
|
|
115
|
-
return {
|
|
116
|
-
map: (0, convert_source_map_1.fromComment)(inline.pop()).sourcemap,
|
|
117
|
-
mapPath: null,
|
|
118
|
-
origin: content_origin_1.ContentOrigin.Inline,
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
if (sourceOrigin === content_origin_1.ContentOrigin.Inline) {
|
|
122
|
-
// The source file was provided inline and its contents did not include an inline source-map.
|
|
123
|
-
// So we don't try to load an external source-map from the file-system, since this can lead to
|
|
124
|
-
// invalid circular dependencies.
|
|
125
|
-
return null;
|
|
126
|
-
}
|
|
127
|
-
var external = convert_source_map_1.mapFileCommentRegex.exec(lastLine);
|
|
128
|
-
if (external) {
|
|
129
|
-
try {
|
|
130
|
-
var fileName = external[1] || external[2];
|
|
131
|
-
var externalMapPath = this.fs.resolve(this.fs.dirname(sourcePath), fileName);
|
|
132
|
-
return {
|
|
133
|
-
map: this.readRawSourceMap(externalMapPath),
|
|
134
|
-
mapPath: externalMapPath,
|
|
135
|
-
origin: content_origin_1.ContentOrigin.FileSystem,
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
catch (e) {
|
|
139
|
-
this.logger.warn("Unable to fully load " + sourcePath + " for source-map flattening: " + e.message);
|
|
140
|
-
return null;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
var impliedMapPath = this.fs.resolve(sourcePath + '.map');
|
|
144
|
-
if (this.fs.exists(impliedMapPath)) {
|
|
145
|
-
return {
|
|
146
|
-
map: this.readRawSourceMap(impliedMapPath),
|
|
147
|
-
mapPath: impliedMapPath,
|
|
148
|
-
origin: content_origin_1.ContentOrigin.FileSystem,
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
-
return null;
|
|
152
|
-
};
|
|
153
|
-
/**
|
|
154
|
-
* Iterate over each of the "sources" for this source file's source map, recursively loading each
|
|
155
|
-
* source file and its associated source map.
|
|
156
|
-
*/
|
|
157
|
-
SourceFileLoader.prototype.processSources = function (basePath, _a) {
|
|
158
|
-
var _this = this;
|
|
159
|
-
var map = _a.map, sourceMapOrigin = _a.origin;
|
|
160
|
-
var sourceRoot = this.fs.resolve(this.fs.dirname(basePath), this.replaceSchemeWithPath(map.sourceRoot || ''));
|
|
161
|
-
return map.sources.map(function (source, index) {
|
|
162
|
-
var path = _this.fs.resolve(sourceRoot, _this.replaceSchemeWithPath(source));
|
|
163
|
-
var content = map.sourcesContent && map.sourcesContent[index] || null;
|
|
164
|
-
// The origin of this source file is "inline" if we extracted it from the source-map's
|
|
165
|
-
// `sourcesContent`, except when the source-map itself was "provided" in-memory.
|
|
166
|
-
// An inline source file is treated as if it were from the file-system if the source-map that
|
|
167
|
-
// contains it was provided in-memory. The first call to `loadSourceFile()` is special in that
|
|
168
|
-
// if you "provide" the contents of the source-map in-memory then we don't want to block
|
|
169
|
-
// loading sources from the file-system just because this source-map had an inline source.
|
|
170
|
-
var sourceOrigin = content !== null && sourceMapOrigin !== content_origin_1.ContentOrigin.Provided ?
|
|
171
|
-
content_origin_1.ContentOrigin.Inline :
|
|
172
|
-
content_origin_1.ContentOrigin.FileSystem;
|
|
173
|
-
return _this.loadSourceFileInternal(path, content, sourceOrigin, null);
|
|
174
|
-
});
|
|
175
|
-
};
|
|
176
|
-
/**
|
|
177
|
-
* Load the contents of the source file from disk.
|
|
178
|
-
*
|
|
179
|
-
* @param sourcePath The path to the source file.
|
|
180
|
-
*/
|
|
181
|
-
SourceFileLoader.prototype.readSourceFile = function (sourcePath) {
|
|
182
|
-
this.trackPath(sourcePath);
|
|
183
|
-
return this.fs.readFile(sourcePath);
|
|
184
|
-
};
|
|
185
|
-
/**
|
|
186
|
-
* Load the source map from the file at `mapPath`, parsing its JSON contents into a `RawSourceMap`
|
|
187
|
-
* object.
|
|
188
|
-
*
|
|
189
|
-
* @param mapPath The path to the source-map file.
|
|
190
|
-
*/
|
|
191
|
-
SourceFileLoader.prototype.readRawSourceMap = function (mapPath) {
|
|
192
|
-
this.trackPath(mapPath);
|
|
193
|
-
return JSON.parse(this.fs.readFile(mapPath));
|
|
194
|
-
};
|
|
195
|
-
/**
|
|
196
|
-
* Track source file paths if we have loaded them from disk so that we don't get into an infinite
|
|
197
|
-
* recursion.
|
|
198
|
-
*/
|
|
199
|
-
SourceFileLoader.prototype.trackPath = function (path) {
|
|
200
|
-
if (this.currentPaths.includes(path)) {
|
|
201
|
-
throw new Error("Circular source file mapping dependency: " + this.currentPaths.join(' -> ') + " -> " + path);
|
|
202
|
-
}
|
|
203
|
-
this.currentPaths.push(path);
|
|
204
|
-
};
|
|
205
|
-
SourceFileLoader.prototype.getLastNonEmptyLine = function (contents) {
|
|
206
|
-
var trailingWhitespaceIndex = contents.length - 1;
|
|
207
|
-
while (trailingWhitespaceIndex > 0 &&
|
|
208
|
-
(contents[trailingWhitespaceIndex] === '\n' ||
|
|
209
|
-
contents[trailingWhitespaceIndex] === '\r')) {
|
|
210
|
-
trailingWhitespaceIndex--;
|
|
211
|
-
}
|
|
212
|
-
var lastRealLineIndex = contents.lastIndexOf('\n', trailingWhitespaceIndex - 1);
|
|
213
|
-
if (lastRealLineIndex === -1) {
|
|
214
|
-
lastRealLineIndex = 0;
|
|
215
|
-
}
|
|
216
|
-
return contents.substr(lastRealLineIndex + 1);
|
|
217
|
-
};
|
|
218
|
-
/**
|
|
219
|
-
* Replace any matched URL schemes with their corresponding path held in the schemeMap.
|
|
220
|
-
*
|
|
221
|
-
* Some build tools replace real file paths with scheme prefixed paths - e.g. `webpack://`.
|
|
222
|
-
* We use the `schemeMap` passed to this class to convert such paths to "real" file paths.
|
|
223
|
-
* In some cases, this is not possible, since the file was actually synthesized by the build tool.
|
|
224
|
-
* But the end result is better than prefixing the sourceRoot in front of the scheme.
|
|
225
|
-
*/
|
|
226
|
-
SourceFileLoader.prototype.replaceSchemeWithPath = function (path) {
|
|
227
|
-
var _this = this;
|
|
228
|
-
return path.replace(SCHEME_MATCHER, function (_, scheme) { return _this.schemeMap[scheme.toLowerCase()] || ''; });
|
|
229
|
-
};
|
|
230
|
-
return SourceFileLoader;
|
|
231
|
-
}());
|
|
232
|
-
exports.SourceFileLoader = SourceFileLoader;
|
|
233
|
-
});
|
|
234
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlX2ZpbGVfbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy9zb3VyY2VtYXBzL3NyYy9zb3VyY2VfZmlsZV9sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztJQUFBOzs7Ozs7T0FNRztJQUNILHlEQUFrRjtJQUtsRixnR0FBK0M7SUFFL0MsMEZBQXlDO0lBRXpDLElBQU0sY0FBYyxHQUFHLDJCQUEyQixDQUFDO0lBRW5EOzs7Ozs7OztPQVFHO0lBQ0g7UUFHRSwwQkFDWSxFQUFzQixFQUFVLE1BQWM7UUFDdEQsK0VBQStFO1FBQ3ZFLFNBQXlDO1lBRnpDLE9BQUUsR0FBRixFQUFFLENBQW9CO1lBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtZQUU5QyxjQUFTLEdBQVQsU0FBUyxDQUFnQztZQUw3QyxpQkFBWSxHQUFxQixFQUFFLENBQUM7UUFLWSxDQUFDO1FBNkJ6RCx5Q0FBYyxHQUFkLFVBQ0ksVUFBMEIsRUFBRSxRQUE0QixFQUN4RCxVQUFrQztZQUROLHlCQUFBLEVBQUEsZUFBNEI7WUFDeEQsMkJBQUEsRUFBQSxpQkFBa0M7WUFDcEMsSUFBTSxjQUFjLEdBQUcsUUFBUSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsOEJBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLDhCQUFhLENBQUMsVUFBVSxDQUFDO1lBQzdGLElBQU0sYUFBYSxHQUNmLFVBQVUsNEJBQUssTUFBTSxFQUFFLDhCQUFhLENBQUMsUUFBUSxJQUFLLFVBQVUsQ0FBQyxDQUFDO1lBQ2xFLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzFGLENBQUM7UUFFRDs7Ozs7Ozs7Ozs7Ozs7O1dBZUc7UUFDSyxpREFBc0IsR0FBOUIsVUFDSSxVQUEwQixFQUFFLFFBQXFCLEVBQUUsWUFBMkIsRUFDOUUsYUFBaUM7WUFDbkMsSUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoRCxJQUFJO2dCQUNGLElBQUksUUFBUSxLQUFLLElBQUksRUFBRTtvQkFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFO3dCQUMvQixPQUFPLElBQUksQ0FBQztxQkFDYjtvQkFDRCxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDNUM7Z0JBRUQsd0VBQXdFO2dCQUN4RSxJQUFJLGFBQWEsS0FBSyxJQUFJLEVBQUU7b0JBQzFCLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7aUJBQ3hFO2dCQUVELElBQUksT0FBTyxHQUF3QixFQUFFLENBQUM7Z0JBQ3RDLElBQUksYUFBYSxLQUFLLElBQUksRUFBRTtvQkFDMUIsSUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUM7b0JBQ3JELE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztpQkFDeEQ7Z0JBRUQsT0FBTyxJQUFJLHdCQUFVLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUM5RTtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNaLDBCQUF3QixVQUFVLG9DQUErQixDQUFDLENBQUMsT0FBUyxDQUFDLENBQUM7Z0JBQ2xGLE9BQU8sSUFBSSxDQUFDO2FBQ2I7b0JBQVM7Z0JBQ1Isd0VBQXdFO2dCQUN4RSxJQUFJLENBQUMsWUFBWSxHQUFHLGFBQWEsQ0FBQzthQUNuQztRQUNILENBQUM7UUFFRDs7Ozs7Ozs7Ozs7O1dBWUc7UUFDSyx3Q0FBYSxHQUFyQixVQUNJLFVBQTBCLEVBQUUsY0FBc0IsRUFDbEQsWUFBMkI7WUFDN0IsNkZBQTZGO1lBQzdGLGdHQUFnRztZQUNoRyxZQUFZO1lBQ1osSUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFELElBQU0sTUFBTSxHQUFHLGlDQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNDLElBQUksTUFBTSxLQUFLLElBQUksRUFBRTtnQkFDbkIsT0FBTztvQkFDTCxHQUFHLEVBQUUsSUFBQSxnQ0FBVyxFQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUcsQ0FBQyxDQUFDLFNBQVM7b0JBQ3pDLE9BQU8sRUFBRSxJQUFJO29CQUNiLE1BQU0sRUFBRSw4QkFBYSxDQUFDLE1BQU07aUJBQzdCLENBQUM7YUFDSDtZQUVELElBQUksWUFBWSxLQUFLLDhCQUFhLENBQUMsTUFBTSxFQUFFO2dCQUN6Qyw2RkFBNkY7Z0JBQzdGLDhGQUE4RjtnQkFDOUYsaUNBQWlDO2dCQUNqQyxPQUFPLElBQUksQ0FBQzthQUNiO1lBRUQsSUFBTSxRQUFRLEdBQUcsd0NBQW1CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BELElBQUksUUFBUSxFQUFFO2dCQUNaLElBQUk7b0JBQ0YsSUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDNUMsSUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7b0JBQy9FLE9BQU87d0JBQ0wsR0FBRyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUM7d0JBQzNDLE9BQU8sRUFBRSxlQUFlO3dCQUN4QixNQUFNLEVBQUUsOEJBQWEsQ0FBQyxVQUFVO3FCQUNqQyxDQUFDO2lCQUNIO2dCQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNaLDBCQUF3QixVQUFVLG9DQUErQixDQUFDLENBQUMsT0FBUyxDQUFDLENBQUM7b0JBQ2xGLE9BQU8sSUFBSSxDQUFDO2lCQUNiO2FBQ0Y7WUFFRCxJQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLENBQUM7WUFDNUQsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRTtnQkFDbEMsT0FBTztvQkFDTCxHQUFHLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQztvQkFDMUMsT0FBTyxFQUFFLGNBQWM7b0JBQ3ZCLE1BQU0sRUFBRSw4QkFBYSxDQUFDLFVBQVU7aUJBQ2pDLENBQUM7YUFDSDtZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVEOzs7V0FHRztRQUNLLHlDQUFjLEdBQXRCLFVBQXVCLFFBQXdCLEVBQUUsRUFBNkM7WUFBOUYsaUJBa0JDO2dCQWxCaUQsR0FBRyxTQUFBLEVBQVUsZUFBZSxZQUFBO1lBRTVFLElBQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUM5QixJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2pGLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBQyxNQUFNLEVBQUUsS0FBSztnQkFDbkMsSUFBTSxJQUFJLEdBQUcsS0FBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUM3RSxJQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsY0FBYyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDO2dCQUN4RSxzRkFBc0Y7Z0JBQ3RGLGdGQUFnRjtnQkFDaEYsNkZBQTZGO2dCQUM3Riw4RkFBOEY7Z0JBQzlGLHdGQUF3RjtnQkFDeEYsMEZBQTBGO2dCQUMxRixJQUFNLFlBQVksR0FBRyxPQUFPLEtBQUssSUFBSSxJQUFJLGVBQWUsS0FBSyw4QkFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUNqRiw4QkFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN0Qiw4QkFBYSxDQUFDLFVBQVUsQ0FBQztnQkFDN0IsT0FBTyxLQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDeEUsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQ7Ozs7V0FJRztRQUNLLHlDQUFjLEdBQXRCLFVBQXVCLFVBQTBCO1lBQy9DLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDM0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBRUQ7Ozs7O1dBS0c7UUFDSywyQ0FBZ0IsR0FBeEIsVUFBeUIsT0FBdUI7WUFDOUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQWlCLENBQUM7UUFDL0QsQ0FBQztRQUVEOzs7V0FHRztRQUNLLG9DQUFTLEdBQWpCLFVBQWtCLElBQW9CO1lBQ3BDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQ1gsOENBQTRDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFPLElBQU0sQ0FBQyxDQUFDO2FBQzlGO1lBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUVPLDhDQUFtQixHQUEzQixVQUE0QixRQUFnQjtZQUMxQyxJQUFJLHVCQUF1QixHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ2xELE9BQU8sdUJBQXVCLEdBQUcsQ0FBQztnQkFDM0IsQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsS0FBSyxJQUFJO29CQUMxQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsS0FBSyxJQUFJLENBQUMsRUFBRTtnQkFDbkQsdUJBQXVCLEVBQUUsQ0FBQzthQUMzQjtZQUNELElBQUksaUJBQWlCLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDaEYsSUFBSSxpQkFBaUIsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDNUIsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZCO1lBQ0QsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFFRDs7Ozs7OztXQU9HO1FBQ0ssZ0RBQXFCLEdBQTdCLFVBQThCLElBQVk7WUFBMUMsaUJBR0M7WUFGQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQ2YsY0FBYyxFQUFFLFVBQUMsQ0FBUyxFQUFFLE1BQWMsSUFBSyxPQUFBLEtBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUExQyxDQUEwQyxDQUFDLENBQUM7UUFDakcsQ0FBQztRQUNILHVCQUFDO0lBQUQsQ0FBQyxBQWxQRCxJQWtQQztJQWxQWSw0Q0FBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7Y29tbWVudFJlZ2V4LCBmcm9tQ29tbWVudCwgbWFwRmlsZUNvbW1lbnRSZWdleH0gZnJvbSAnY29udmVydC1zb3VyY2UtbWFwJztcblxuaW1wb3J0IHtBYnNvbHV0ZUZzUGF0aCwgUmVhZG9ubHlGaWxlU3lzdGVtfSBmcm9tICcuLi8uLi9maWxlX3N5c3RlbSc7XG5pbXBvcnQge0xvZ2dlcn0gZnJvbSAnLi4vLi4vbG9nZ2luZyc7XG5cbmltcG9ydCB7Q29udGVudE9yaWdpbn0gZnJvbSAnLi9jb250ZW50X29yaWdpbic7XG5pbXBvcnQge01hcEFuZFBhdGgsIFJhd1NvdXJjZU1hcCwgU291cmNlTWFwSW5mb30gZnJvbSAnLi9yYXdfc291cmNlX21hcCc7XG5pbXBvcnQge1NvdXJjZUZpbGV9IGZyb20gJy4vc291cmNlX2ZpbGUnO1xuXG5jb25zdCBTQ0hFTUVfTUFUQ0hFUiA9IC9eKFthLXpdW2EtejAtOS4tXSopOlxcL1xcLy9pO1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgY2FuIGJlIHVzZWQgdG8gbG9hZCBhIHNvdXJjZSBmaWxlLCBpdHMgYXNzb2NpYXRlZCBzb3VyY2UgbWFwIGFuZCBhbnkgdXBzdHJlYW0gc291cmNlcy5cbiAqXG4gKiBTaW5jZSBhIHNvdXJjZSBmaWxlIG1pZ2h0IHJlZmVyZW5jZSAob3IgaW5jbHVkZSkgYSBzb3VyY2UgbWFwLCB0aGlzIGNsYXNzIGNhbiBsb2FkIHRob3NlIHRvby5cbiAqIFNpbmNlIGEgc291cmNlIG1hcCBtaWdodCByZWZlcmVuY2Ugb3RoZXIgc291cmNlIGZpbGVzLCB0aGVzZSBhcmUgYWxzbyBsb2FkZWQgYXMgbmVlZGVkLlxuICpcbiAqIFRoaXMgaXMgZG9uZSByZWN1cnNpdmVseS4gVGhlIHJlc3VsdCBpcyBhIFwidHJlZVwiIG9mIGBTb3VyY2VGaWxlYCBvYmplY3RzLCBlYWNoIGNvbnRhaW5pbmdcbiAqIG1hcHBpbmdzIHRvIG90aGVyIGBTb3VyY2VGaWxlYCBvYmplY3RzIGFzIG5lY2Vzc2FyeS5cbiAqL1xuZXhwb3J0IGNsYXNzIFNvdXJjZUZpbGVMb2FkZXIge1xuICBwcml2YXRlIGN1cnJlbnRQYXRoczogQWJzb2x1dGVGc1BhdGhbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBmczogUmVhZG9ubHlGaWxlU3lzdGVtLCBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyLFxuICAgICAgLyoqIEEgbWFwIG9mIFVSTCBzY2hlbWVzIHRvIGJhc2UgcGF0aHMuIFRoZSBzY2hlbWUgbmFtZSBzaG91bGQgYmUgbG93ZXJjYXNlLiAqL1xuICAgICAgcHJpdmF0ZSBzY2hlbWVNYXA6IFJlY29yZDxzdHJpbmcsIEFic29sdXRlRnNQYXRoPikge31cblxuICAvKipcbiAgICogTG9hZCBhIHNvdXJjZSBmaWxlIGZyb20gdGhlIHByb3ZpZGVkIGNvbnRlbnQgYW5kIHNvdXJjZSBtYXAsIGFuZCByZWN1cnNpdmVseSBsb2FkIGFueVxuICAgKiByZWZlcmVuY2VkIHNvdXJjZSBmaWxlcy5cbiAgICpcbiAgICogQHBhcmFtIHNvdXJjZVBhdGggVGhlIHBhdGggdG8gdGhlIHNvdXJjZSBmaWxlIHRvIGxvYWQuXG4gICAqIEBwYXJhbSBjb250ZW50cyBUaGUgY29udGVudHMgb2YgdGhlIHNvdXJjZSBmaWxlIHRvIGxvYWQuXG4gICAqIEBwYXJhbSBtYXBBbmRQYXRoIFRoZSByYXcgc291cmNlLW1hcCBhbmQgdGhlIHBhdGggdG8gdGhlIHNvdXJjZS1tYXAgZmlsZS5cbiAgICogQHJldHVybnMgYSBTb3VyY2VGaWxlIG9iamVjdCBjcmVhdGVkIGZyb20gdGhlIGBjb250ZW50c2AgYW5kIHByb3ZpZGVkIHNvdXJjZS1tYXAgaW5mby5cbiAgICovXG4gIGxvYWRTb3VyY2VGaWxlKHNvdXJjZVBhdGg6IEFic29sdXRlRnNQYXRoLCBjb250ZW50czogc3RyaW5nLCBtYXBBbmRQYXRoOiBNYXBBbmRQYXRoKTogU291cmNlRmlsZTtcbiAgLyoqXG4gICAqIExvYWQgYSBzb3VyY2UgZmlsZSBmcm9tIHRoZSBwcm92aWRlZCBjb250ZW50LCBjb21wdXRlIGl0cyBzb3VyY2UgbWFwLCBhbmQgcmVjdXJzaXZlbHkgbG9hZCBhbnlcbiAgICogcmVmZXJlbmNlZCBzb3VyY2UgZmlsZXMuXG4gICAqXG4gICAqIEBwYXJhbSBzb3VyY2VQYXRoIFRoZSBwYXRoIHRvIHRoZSBzb3VyY2UgZmlsZSB0byBsb2FkLlxuICAgKiBAcGFyYW0gY29udGVudHMgVGhlIGNvbnRlbnRzIG9mIHRoZSBzb3VyY2UgZmlsZSB0byBsb2FkLlxuICAgKiBAcmV0dXJucyBhIFNvdXJjZUZpbGUgb2JqZWN0IGNyZWF0ZWQgZnJvbSB0aGUgYGNvbnRlbnRzYCBhbmQgY29tcHV0ZWQgc291cmNlLW1hcCBpbmZvLlxuICAgKi9cbiAgbG9hZFNvdXJjZUZpbGUoc291cmNlUGF0aDogQWJzb2x1dGVGc1BhdGgsIGNvbnRlbnRzOiBzdHJpbmcpOiBTb3VyY2VGaWxlO1xuICAvKipcbiAgICogTG9hZCBhIHNvdXJjZSBmaWxlIGZyb20gdGhlIGZpbGUtc3lzdGVtLCBjb21wdXRlIGl0cyBzb3VyY2UgbWFwLCBhbmQgcmVjdXJzaXZlbHkgbG9hZCBhbnlcbiAgICogcmVmZXJlbmNlZCBzb3VyY2UgZmlsZXMuXG4gICAqXG4gICAqIEBwYXJhbSBzb3VyY2VQYXRoIFRoZSBwYXRoIHRvIHRoZSBzb3VyY2UgZmlsZSB0byBsb2FkLlxuICAgKiBAcmV0dXJucyBhIFNvdXJjZUZpbGUgb2JqZWN0IGlmIGl0cyBjb250ZW50cyBjb3VsZCBiZSBsb2FkZWQgZnJvbSBkaXNrLCBvciBudWxsIG90aGVyd2lzZS5cbiAgICovXG4gIGxvYWRTb3VyY2VGaWxlKHNvdXJjZVBhdGg6IEFic29sdXRlRnNQYXRoKTogU291cmNlRmlsZXxudWxsO1xuICBsb2FkU291cmNlRmlsZShcbiAgICAgIHNvdXJjZVBhdGg6IEFic29sdXRlRnNQYXRoLCBjb250ZW50czogc3RyaW5nfG51bGwgPSBudWxsLFxuICAgICAgbWFwQW5kUGF0aDogTWFwQW5kUGF0aHxudWxsID0gbnVsbCk6IFNvdXJjZUZpbGV8bnVsbCB7XG4gICAgY29uc3QgY29udGVudHNPcmlnaW4gPSBjb250ZW50cyAhPT0gbnVsbCA/IENvbnRlbnRPcmlnaW4uUHJvdmlkZWQgOiBDb250ZW50T3JpZ2luLkZpbGVTeXN0ZW07XG4gICAgY29uc3Qgc291cmNlTWFwSW5mbzogU291cmNlTWFwSW5mb3xudWxsID1cbiAgICAgICAgbWFwQW5kUGF0aCAmJiB7b3JpZ2luOiBDb250ZW50T3JpZ2luLlByb3ZpZGVkLCAuLi5tYXBBbmRQYXRofTtcbiAgICByZXR1cm4gdGhpcy5sb2FkU291cmNlRmlsZUludGVybmFsKHNvdXJjZVBhdGgsIGNvbnRlbnRzLCBjb250ZW50c09yaWdpbiwgc291cmNlTWFwSW5mbyk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG92ZXJsb2FkIHVzZWQgaW50ZXJuYWxseSB0byBsb2FkIHNvdXJjZSBmaWxlcyByZWZlcmVuY2VkIGluIGEgc291cmNlLW1hcC5cbiAgICpcbiAgICogSW4gdGhpcyBjYXNlIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IGl0IHdpbGwgcmV0dXJuIGEgbm9uLW51bGwgU291cmNlTWFwLlxuICAgKlxuICAgKiBAcGFyYW0gc291cmNlUGF0aCBUaGUgcGF0aCB0byB0aGUgc291cmNlIGZpbGUgdG8gbG9hZC5cbiAgICogQHBhcmFtIGNvbnRlbnRzIFRoZSBjb250ZW50cyBvZiB0aGUgc291cmNlIGZpbGUgdG8gbG9hZCwgaWYgcHJvdmlkZWQgaW5saW5lLiBJZiBgbnVsbGAsXG4gICAqICAgICB0aGUgY29udGVudHMgd2lsbCBiZSByZWFkIGZyb20gdGhlIGZpbGUgYXQgdGhlIGBzb3VyY2VQYXRoYC5cbiAgICogQHBhcmFtIHNvdXJjZU9yaWdpbiBEZXNjcmliZXMgd2hlcmUgdGhlIHNvdXJjZSBjb250ZW50IGNhbWUgZnJvbS5cbiAgICogQHBhcmFtIHNvdXJjZU1hcEluZm8gVGhlIHJhdyBjb250ZW50cyBhbmQgcGF0aCBvZiB0aGUgc291cmNlLW1hcCBmaWxlLiBJZiBgbnVsbGAgdGhlXG4gICAqICAgICBzb3VyY2UtbWFwIHdpbGwgYmUgY29tcHV0ZWQgZnJvbSB0aGUgY29udGVudHMgb2YgdGhlIHNvdXJjZSBmaWxlLCBlaXRoZXIgaW5saW5lIG9yIGxvYWRlZFxuICAgKiAgICAgZnJvbSB0aGUgZmlsZS1zeXN0ZW0uXG4gICAqXG4gICAqIEByZXR1cm5zIGEgU291cmNlRmlsZSBpZiB0aGUgY29udGVudCBmb3Igb25lIHdhcyBwcm92aWRlZCBvciB3YXMgYWJsZSB0byBiZSBsb2FkZWQgZnJvbSBkaXNrLFxuICAgKiBgbnVsbGAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHJpdmF0ZSBsb2FkU291cmNlRmlsZUludGVybmFsKFxuICAgICAgc291cmNlUGF0aDogQWJzb2x1dGVGc1BhdGgsIGNvbnRlbnRzOiBzdHJpbmd8bnVsbCwgc291cmNlT3JpZ2luOiBDb250ZW50T3JpZ2luLFxuICAgICAgc291cmNlTWFwSW5mbzogU291cmNlTWFwSW5mb3xudWxsKTogU291cmNlRmlsZXxudWxsIHtcbiAgICBjb25zdCBwcmV2aW91c1BhdGhzID0gdGhpcy5jdXJyZW50UGF0aHMuc2xpY2UoKTtcbiAgICB0cnkge1xuICAgICAgaWYgKGNvbnRlbnRzID09PSBudWxsKSB7XG4gICAgICAgIGlmICghdGhpcy5mcy5leGlzdHMoc291cmNlUGF0aCkpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb250ZW50cyA9IHRoaXMucmVhZFNvdXJjZUZpbGUoc291cmNlUGF0aCk7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIG5vdCBwcm92aWRlZCB0cnkgdG8gbG9hZCB0aGUgc291cmNlIG1hcCBiYXNlZCBvbiB0aGUgc291cmNlIGl0c2VsZlxuICAgICAgaWYgKHNvdXJjZU1hcEluZm8gPT09IG51bGwpIHtcbiAgICAgICAgc291cmNlTWFwSW5mbyA9IHRoaXMubG9hZFNvdXJjZU1hcChzb3VyY2VQYXRoLCBjb250ZW50cywgc291cmNlT3JpZ2luKTtcbiAgICAgIH1cblxuICAgICAgbGV0IHNvdXJjZXM6IChTb3VyY2VGaWxlfG51bGwpW10gPSBbXTtcbiAgICAgIGlmIChzb3VyY2VNYXBJbmZvICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGJhc2VQYXRoID0gc291cmNlTWFwSW5mby5tYXBQYXRoIHx8IHNvdXJjZVBhdGg7XG4gICAgICAgIHNvdXJjZXMgPSB0aGlzLnByb2Nlc3NTb3VyY2VzKGJhc2VQYXRoLCBzb3VyY2VNYXBJbmZvKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5ldyBTb3VyY2VGaWxlKHNvdXJjZVBhdGgsIGNvbnRlbnRzLCBzb3VyY2VNYXBJbmZvLCBzb3VyY2VzLCB0aGlzLmZzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKFxuICAgICAgICAgIGBVbmFibGUgdG8gZnVsbHkgbG9hZCAke3NvdXJjZVBhdGh9IGZvciBzb3VyY2UtbWFwIGZsYXR0ZW5pbmc6ICR7ZS5tZXNzYWdlfWApO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIC8vIFdlIGFyZSBmaW5pc2hlZCB3aXRoIHRoaXMgcmVjdXJzaW9uIHNvIHJldmVydCB0aGUgcGF0aHMgYmVpbmcgdHJhY2tlZFxuICAgICAgdGhpcy5jdXJyZW50UGF0aHMgPSBwcmV2aW91c1BhdGhzO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kIHRoZSBzb3VyY2UgbWFwIGFzc29jaWF0ZWQgd2l0aCB0aGUgc291cmNlIGZpbGUgd2hvc2UgYHNvdXJjZVBhdGhgIGFuZCBgY29udGVudHNgIGFyZVxuICAgKiBwcm92aWRlZC5cbiAgICpcbiAgICogU291cmNlIG1hcHMgY2FuIGJlIGlubGluZSwgYXMgcGFydCBvZiBhIGJhc2U2NCBlbmNvZGVkIGNvbW1lbnQsIG9yIGV4dGVybmFsIGFzIGEgc2VwYXJhdGUgZmlsZVxuICAgKiB3aG9zZSBwYXRoIGlzIGluZGljYXRlZCBpbiBhIGNvbW1lbnQgb3IgaW1wbGllZCBmcm9tIHRoZSBuYW1lIG9mIHRoZSBzb3VyY2UgZmlsZSBpdHNlbGYuXG4gICAqXG4gICAqIEBwYXJhbSBzb3VyY2VQYXRoIHRoZSBwYXRoIHRvIHRoZSBzb3VyY2UgZmlsZS5cbiAgICogQHBhcmFtIHNvdXJjZUNvbnRlbnRzIHRoZSBjb250ZW50cyBvZiB0aGUgc291cmNlIGZpbGUuXG4gICAqIEBwYXJhbSBzb3VyY2VPcmlnaW4gd2hlcmUgdGhlIGNvbnRlbnQgb2YgdGhlIHNvdXJjZSBmaWxlIGNhbWUgZnJvbS5cbiAgICogQHJldHVybnMgdGhlIHBhcnNlZCBjb250ZW50cyBhbmQgcGF0aCBvZiB0aGUgc291cmNlLW1hcCwgaWYgbG9hZGluZyB3YXMgc3VjY2Vzc2Z1bCwgbnVsbFxuICAgKiAgICAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHJpdmF0ZSBsb2FkU291cmNlTWFwKFxuICAgICAgc291cmNlUGF0aDogQWJzb2x1dGVGc1BhdGgsIHNvdXJjZUNvbnRlbnRzOiBzdHJpbmcsXG4gICAgICBzb3VyY2VPcmlnaW46IENvbnRlbnRPcmlnaW4pOiBTb3VyY2VNYXBJbmZvfG51bGwge1xuICAgIC8vIE9ubHkgY29uc2lkZXIgYSBzb3VyY2UtbWFwIGNvbW1lbnQgZnJvbSB0aGUgbGFzdCBub24tZW1wdHkgbGluZSBvZiB0aGUgZmlsZSwgaW4gY2FzZSB0aGVyZVxuICAgIC8vIGFyZSBlbWJlZGRlZCBzb3VyY2UtbWFwIGNvbW1lbnRzIGVsc2V3aGVyZSBpbiB0aGUgZmlsZSAoYXMgY2FuIGJlIHRoZSBjYXNlIHdpdGggYnVuZGxlcnMgbGlrZVxuICAgIC8vIHdlYnBhY2spLlxuICAgIGNvbnN0IGxhc3RMaW5lID0gdGhpcy5nZXRMYXN0Tm9uRW1wdHlMaW5lKHNvdXJjZUNvbnRlbnRzKTtcbiAgICBjb25zdCBpbmxpbmUgPSBjb21tZW50UmVnZXguZXhlYyhsYXN0TGluZSk7XG4gICAgaWYgKGlubGluZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbWFwOiBmcm9tQ29tbWVudChpbmxpbmUucG9wKCkhKS5zb3VyY2VtYXAsXG4gICAgICAgIG1hcFBhdGg6IG51bGwsXG4gICAgICAgIG9yaWdpbjogQ29udGVudE9yaWdpbi5JbmxpbmUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChzb3VyY2VPcmlnaW4gPT09IENvbnRlbnRPcmlnaW4uSW5saW5lKSB7XG4gICAgICAvLyBUaGUgc291cmNlIGZpbGUgd2FzIHByb3ZpZGVkIGlubGluZSBhbmQgaXRzIGNvbnRlbnRzIGRpZCBub3QgaW5jbHVkZSBhbiBpbmxpbmUgc291cmNlLW1hcC5cbiAgICAgIC8vIFNvIHdlIGRvbid0IHRyeSB0byBsb2FkIGFuIGV4dGVybmFsIHNvdXJjZS1tYXAgZnJvbSB0aGUgZmlsZS1zeXN0ZW0sIHNpbmNlIHRoaXMgY2FuIGxlYWQgdG9cbiAgICAgIC8vIGludmFsaWQgY2lyY3VsYXIgZGVwZW5kZW5jaWVzLlxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgZXh0ZXJuYWwgPSBtYXBGaWxlQ29tbWVudFJlZ2V4LmV4ZWMobGFzdExpbmUpO1xuICAgIGlmIChleHRlcm5hbCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBleHRlcm5hbFsxXSB8fCBleHRlcm5hbFsyXTtcbiAgICAgICAgY29uc3QgZXh0ZXJuYWxNYXBQYXRoID0gdGhpcy5mcy5yZXNvbHZlKHRoaXMuZnMuZGlybmFtZShzb3VyY2VQYXRoKSwgZmlsZU5hbWUpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG1hcDogdGhpcy5yZWFkUmF3U291cmNlTWFwKGV4dGVybmFsTWFwUGF0aCksXG4gICAgICAgICAgbWFwUGF0aDogZXh0ZXJuYWxNYXBQYXRoLFxuICAgICAgICAgIG9yaWdpbjogQ29udGVudE9yaWdpbi5GaWxlU3lzdGVtLFxuICAgICAgICB9O1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKFxuICAgICAgICAgICAgYFVuYWJsZSB0byBmdWxseSBsb2FkICR7c291cmNlUGF0aH0gZm9yIHNvdXJjZS1tYXAgZmxhdHRlbmluZzogJHtlLm1lc3NhZ2V9YCk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGltcGxpZWRNYXBQYXRoID0gdGhpcy5mcy5yZXNvbHZlKHNvdXJjZVBhdGggKyAnLm1hcCcpO1xuICAgIGlmICh0aGlzLmZzLmV4aXN0cyhpbXBsaWVkTWFwUGF0aCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1hcDogdGhpcy5yZWFkUmF3U291cmNlTWFwKGltcGxpZWRNYXBQYXRoKSxcbiAgICAgICAgbWFwUGF0aDogaW1wbGllZE1hcFBhdGgsXG4gICAgICAgIG9yaWdpbjogQ29udGVudE9yaWdpbi5GaWxlU3lzdGVtLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdGVyYXRlIG92ZXIgZWFjaCBvZiB0aGUgXCJzb3VyY2VzXCIgZm9yIHRoaXMgc291cmNlIGZpbGUncyBzb3VyY2UgbWFwLCByZWN1cnNpdmVseSBsb2FkaW5nIGVhY2hcbiAgICogc291cmNlIGZpbGUgYW5kIGl0cyBhc3NvY2lhdGVkIHNvdXJjZSBtYXAuXG4gICAqL1xuICBwcml2YXRlIHByb2Nlc3NTb3VyY2VzKGJhc2VQYXRoOiBBYnNvbHV0ZUZzUGF0aCwge21hcCwgb3JpZ2luOiBzb3VyY2VNYXBPcmlnaW59OiBTb3VyY2VNYXBJbmZvKTpcbiAgICAgIChTb3VyY2VGaWxlfG51bGwpW10ge1xuICAgIGNvbnN0IHNvdXJjZVJvb3QgPSB0aGlzLmZzLnJlc29sdmUoXG4gICAgICAgIHRoaXMuZnMuZGlybmFtZShiYXNlUGF0aCksIHRoaXMucmVwbGFjZVNjaGVtZVdpdGhQYXRoKG1hcC5zb3VyY2VSb290IHx8ICcnKSk7XG4gICAgcmV0dXJuIG1hcC5zb3VyY2VzLm1hcCgoc291cmNlLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgcGF0aCA9IHRoaXMuZnMucmVzb2x2ZShzb3VyY2VSb290LCB0aGlzLnJlcGxhY2VTY2hlbWVXaXRoUGF0aChzb3VyY2UpKTtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBtYXAuc291cmNlc0NvbnRlbnQgJiYgbWFwLnNvdXJjZXNDb250ZW50W2luZGV4XSB8fCBudWxsO1xuICAgICAgLy8gVGhlIG9yaWdpbiBvZiB0aGlzIHNvdXJjZSBmaWxlIGlzIFwiaW5saW5lXCIgaWYgd2UgZXh0cmFjdGVkIGl0IGZyb20gdGhlIHNvdXJjZS1tYXAnc1xuICAgICAgLy8gYHNvdXJjZXNDb250ZW50YCwgZXhjZXB0IHdoZW4gdGhlIHNvdXJjZS1tYXAgaXRzZWxmIHdhcyBcInByb3ZpZGVkXCIgaW4tbWVtb3J5LlxuICAgICAgLy8gQW4gaW5saW5lIHNvdXJjZSBmaWxlIGlzIHRyZWF0ZWQgYXMgaWYgaXQgd2VyZSBmcm9tIHRoZSBmaWxlLXN5c3RlbSBpZiB0aGUgc291cmNlLW1hcCB0aGF0XG4gICAgICAvLyBjb250YWlucyBpdCB3YXMgcHJvdmlkZWQgaW4tbWVtb3J5LiBUaGUgZmlyc3QgY2FsbCB0byBgbG9hZFNvdXJjZUZpbGUoKWAgaXMgc3BlY2lhbCBpbiB0aGF0XG4gICAgICAvLyBpZiB5b3UgXCJwcm92aWRlXCIgdGhlIGNvbnRlbnRzIG9mIHRoZSBzb3VyY2UtbWFwIGluLW1lbW9yeSB0aGVuIHdlIGRvbid0IHdhbnQgdG8gYmxvY2tcbiAgICAgIC8vIGxvYWRpbmcgc291cmNlcyBmcm9tIHRoZSBmaWxlLXN5c3RlbSBqdXN0IGJlY2F1c2UgdGhpcyBzb3VyY2UtbWFwIGhhZCBhbiBpbmxpbmUgc291cmNlLlxuICAgICAgY29uc3Qgc291cmNlT3JpZ2luID0gY29udGVudCAhPT0gbnVsbCAmJiBzb3VyY2VNYXBPcmlnaW4gIT09IENvbnRlbnRPcmlnaW4uUHJvdmlkZWQgP1xuICAgICAgICAgIENvbnRlbnRPcmlnaW4uSW5saW5lIDpcbiAgICAgICAgICBDb250ZW50T3JpZ2luLkZpbGVTeXN0ZW07XG4gICAgICByZXR1cm4gdGhpcy5sb2FkU291cmNlRmlsZUludGVybmFsKHBhdGgsIGNvbnRlbnQsIHNvdXJjZU9yaWdpbiwgbnVsbCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCB0aGUgY29udGVudHMgb2YgdGhlIHNvdXJjZSBmaWxlIGZyb20gZGlzay5cbiAgICpcbiAgICogQHBhcmFtIHNvdXJjZVBhdGggVGhlIHBhdGggdG8gdGhlIHNvdXJjZSBmaWxlLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkU291cmNlRmlsZShzb3VyY2VQYXRoOiBBYnNvbHV0ZUZzUGF0aCk6IHN0cmluZyB7XG4gICAgdGhpcy50cmFja1BhdGgoc291cmNlUGF0aCk7XG4gICAgcmV0dXJuIHRoaXMuZnMucmVhZEZpbGUoc291cmNlUGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCB0aGUgc291cmNlIG1hcCBmcm9tIHRoZSBmaWxlIGF0IGBtYXBQYXRoYCwgcGFyc2luZyBpdHMgSlNPTiBjb250ZW50cyBpbnRvIGEgYFJhd1NvdXJjZU1hcGBcbiAgICogb2JqZWN0LlxuICAgKlxuICAgKiBAcGFyYW0gbWFwUGF0aCBUaGUgcGF0aCB0byB0aGUgc291cmNlLW1hcCBmaWxlLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkUmF3U291cmNlTWFwKG1hcFBhdGg6IEFic29sdXRlRnNQYXRoKTogUmF3U291cmNlTWFwIHtcbiAgICB0aGlzLnRyYWNrUGF0aChtYXBQYXRoKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmZzLnJlYWRGaWxlKG1hcFBhdGgpKSBhcyBSYXdTb3VyY2VNYXA7XG4gIH1cblxuICAvKipcbiAgICogVHJhY2sgc291cmNlIGZpbGUgcGF0aHMgaWYgd2UgaGF2ZSBsb2FkZWQgdGhlbSBmcm9tIGRpc2sgc28gdGhhdCB3ZSBkb24ndCBnZXQgaW50byBhbiBpbmZpbml0ZVxuICAgKiByZWN1cnNpb24uXG4gICAqL1xuICBwcml2YXRlIHRyYWNrUGF0aChwYXRoOiBBYnNvbHV0ZUZzUGF0aCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmN1cnJlbnRQYXRocy5pbmNsdWRlcyhwYXRoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBDaXJjdWxhciBzb3VyY2UgZmlsZSBtYXBwaW5nIGRlcGVuZGVuY3k6ICR7dGhpcy5jdXJyZW50UGF0aHMuam9pbignIC0+ICcpfSAtPiAke3BhdGh9YCk7XG4gICAgfVxuICAgIHRoaXMuY3VycmVudFBhdGhzLnB1c2gocGF0aCk7XG4gIH1cblxuICBwcml2YXRlIGdldExhc3ROb25FbXB0eUxpbmUoY29udGVudHM6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IHRyYWlsaW5nV2hpdGVzcGFjZUluZGV4ID0gY29udGVudHMubGVuZ3RoIC0gMTtcbiAgICB3aGlsZSAodHJhaWxpbmdXaGl0ZXNwYWNlSW5kZXggPiAwICYmXG4gICAgICAgICAgIChjb250ZW50c1t0cmFpbGluZ1doaXRlc3BhY2VJbmRleF0gPT09ICdcXG4nIHx8XG4gICAgICAgICAgICBjb250ZW50c1t0cmFpbGluZ1doaXRlc3BhY2VJbmRleF0gPT09ICdcXHInKSkge1xuICAgICAgdHJhaWxpbmdXaGl0ZXNwYWNlSW5kZXgtLTtcbiAgICB9XG4gICAgbGV0IGxhc3RSZWFsTGluZUluZGV4ID0gY29udGVudHMubGFzdEluZGV4T2YoJ1xcbicsIHRyYWlsaW5nV2hpdGVzcGFjZUluZGV4IC0gMSk7XG4gICAgaWYgKGxhc3RSZWFsTGluZUluZGV4ID09PSAtMSkge1xuICAgICAgbGFzdFJlYWxMaW5lSW5kZXggPSAwO1xuICAgIH1cbiAgICByZXR1cm4gY29udGVudHMuc3Vic3RyKGxhc3RSZWFsTGluZUluZGV4ICsgMSk7XG4gIH1cblxuICAvKipcbiAgICogUmVwbGFjZSBhbnkgbWF0Y2hlZCBVUkwgc2NoZW1lcyB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmcgcGF0aCBoZWxkIGluIHRoZSBzY2hlbWVNYXAuXG4gICAqXG4gICAqIFNvbWUgYnVpbGQgdG9vbHMgcmVwbGFjZSByZWFsIGZpbGUgcGF0aHMgd2l0aCBzY2hlbWUgcHJlZml4ZWQgcGF0aHMgLSBlLmcuIGB3ZWJwYWNrOi8vYC5cbiAgICogV2UgdXNlIHRoZSBgc2NoZW1lTWFwYCBwYXNzZWQgdG8gdGhpcyBjbGFzcyB0byBjb252ZXJ0IHN1Y2ggcGF0aHMgdG8gXCJyZWFsXCIgZmlsZSBwYXRocy5cbiAgICogSW4gc29tZSBjYXNlcywgdGhpcyBpcyBub3QgcG9zc2libGUsIHNpbmNlIHRoZSBmaWxlIHdhcyBhY3R1YWxseSBzeW50aGVzaXplZCBieSB0aGUgYnVpbGQgdG9vbC5cbiAgICogQnV0IHRoZSBlbmQgcmVzdWx0IGlzIGJldHRlciB0aGFuIHByZWZpeGluZyB0aGUgc291cmNlUm9vdCBpbiBmcm9udCBvZiB0aGUgc2NoZW1lLlxuICAgKi9cbiAgcHJpdmF0ZSByZXBsYWNlU2NoZW1lV2l0aFBhdGgocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcGF0aC5yZXBsYWNlKFxuICAgICAgICBTQ0hFTUVfTUFUQ0hFUiwgKF86IHN0cmluZywgc2NoZW1lOiBzdHJpbmcpID0+IHRoaXMuc2NoZW1lTWFwW3NjaGVtZS50b0xvd2VyQ2FzZSgpXSB8fCAnJyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
(function (factory) {
|
|
9
|
-
if (typeof module === "object" && typeof module.exports === "object") {
|
|
10
|
-
var v = factory(require, exports);
|
|
11
|
-
if (v !== undefined) module.exports = v;
|
|
12
|
-
}
|
|
13
|
-
else if (typeof define === "function" && define.amd) {
|
|
14
|
-
define("@angular/compiler-cli/src/ngtsc/switch", ["require", "exports", "@angular/compiler-cli/src/ngtsc/switch/src/switch"], factory);
|
|
15
|
-
}
|
|
16
|
-
})(function (require, exports) {
|
|
17
|
-
"use strict";
|
|
18
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.ivySwitchTransform = void 0;
|
|
20
|
-
var switch_1 = require("@angular/compiler-cli/src/ngtsc/switch/src/switch");
|
|
21
|
-
Object.defineProperty(exports, "ivySwitchTransform", { enumerable: true, get: function () { return switch_1.ivySwitchTransform; } });
|
|
22
|
-
});
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL3N3aXRjaC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7SUFFSCw0RUFBZ0Q7SUFBeEMsNEdBQUEsa0JBQWtCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuZXhwb3J0IHtpdnlTd2l0Y2hUcmFuc2Zvcm19IGZyb20gJy4vc3JjL3N3aXRjaCc7XG4iXX0=
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
(function (factory) {
|
|
9
|
-
if (typeof module === "object" && typeof module.exports === "object") {
|
|
10
|
-
var v = factory(require, exports);
|
|
11
|
-
if (v !== undefined) module.exports = v;
|
|
12
|
-
}
|
|
13
|
-
else if (typeof define === "function" && define.amd) {
|
|
14
|
-
define("@angular/compiler-cli/src/ngtsc/switch/src/switch", ["require", "exports", "tslib", "typescript"], factory);
|
|
15
|
-
}
|
|
16
|
-
})(function (require, exports) {
|
|
17
|
-
"use strict";
|
|
18
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.ivySwitchTransform = void 0;
|
|
20
|
-
var tslib_1 = require("tslib");
|
|
21
|
-
var ts = require("typescript");
|
|
22
|
-
var IVY_SWITCH_PRE_SUFFIX = '__PRE_R3__';
|
|
23
|
-
var IVY_SWITCH_POST_SUFFIX = '__POST_R3__';
|
|
24
|
-
function ivySwitchTransform(_) {
|
|
25
|
-
return flipIvySwitchInFile;
|
|
26
|
-
}
|
|
27
|
-
exports.ivySwitchTransform = ivySwitchTransform;
|
|
28
|
-
function flipIvySwitchInFile(sf) {
|
|
29
|
-
// To replace the statements array, it must be copied. This only needs to happen if a statement
|
|
30
|
-
// must actually be replaced within the array, so the newStatements array is lazily initialized.
|
|
31
|
-
var newStatements = undefined;
|
|
32
|
-
// Iterate over the statements in the file.
|
|
33
|
-
for (var i = 0; i < sf.statements.length; i++) {
|
|
34
|
-
var statement = sf.statements[i];
|
|
35
|
-
// Skip over everything that isn't a variable statement.
|
|
36
|
-
if (!ts.isVariableStatement(statement) || !hasIvySwitches(statement)) {
|
|
37
|
-
continue;
|
|
38
|
-
}
|
|
39
|
-
// This statement needs to be replaced. Check if the newStatements array needs to be lazily
|
|
40
|
-
// initialized to a copy of the original statements.
|
|
41
|
-
if (newStatements === undefined) {
|
|
42
|
-
newStatements = (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(sf.statements), false);
|
|
43
|
-
}
|
|
44
|
-
// Flip any switches in the VariableStatement. If there were any, a new statement will be
|
|
45
|
-
// returned; otherwise the old statement will be.
|
|
46
|
-
newStatements[i] = flipIvySwitchesInVariableStatement(statement, sf.statements);
|
|
47
|
-
}
|
|
48
|
-
// Only update the statements in the SourceFile if any have changed.
|
|
49
|
-
if (newStatements !== undefined) {
|
|
50
|
-
return ts.updateSourceFileNode(sf, newStatements);
|
|
51
|
-
}
|
|
52
|
-
return sf;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Look for the ts.Identifier of a ts.Declaration with this name.
|
|
56
|
-
*
|
|
57
|
-
* The real identifier is needed (rather than fabricating one) as TypeScript decides how to
|
|
58
|
-
* reference this identifier based on information stored against its node in the AST, which a
|
|
59
|
-
* synthetic node would not have. In particular, since the post-switch variable is often exported,
|
|
60
|
-
* TypeScript needs to know this so it can write `exports.VAR` instead of just `VAR` when emitting
|
|
61
|
-
* code.
|
|
62
|
-
*
|
|
63
|
-
* Only variable, function, and class declarations are currently searched.
|
|
64
|
-
*/
|
|
65
|
-
function findPostSwitchIdentifier(statements, name) {
|
|
66
|
-
var e_1, _a;
|
|
67
|
-
try {
|
|
68
|
-
for (var statements_1 = (0, tslib_1.__values)(statements), statements_1_1 = statements_1.next(); !statements_1_1.done; statements_1_1 = statements_1.next()) {
|
|
69
|
-
var stmt = statements_1_1.value;
|
|
70
|
-
if (ts.isVariableStatement(stmt)) {
|
|
71
|
-
var decl = stmt.declarationList.declarations.find(function (decl) { return ts.isIdentifier(decl.name) && decl.name.text === name; });
|
|
72
|
-
if (decl !== undefined) {
|
|
73
|
-
return decl.name;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
else if (ts.isFunctionDeclaration(stmt) || ts.isClassDeclaration(stmt)) {
|
|
77
|
-
if (stmt.name !== undefined && ts.isIdentifier(stmt.name) && stmt.name.text === name) {
|
|
78
|
-
return stmt.name;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
84
|
-
finally {
|
|
85
|
-
try {
|
|
86
|
-
if (statements_1_1 && !statements_1_1.done && (_a = statements_1.return)) _a.call(statements_1);
|
|
87
|
-
}
|
|
88
|
-
finally { if (e_1) throw e_1.error; }
|
|
89
|
-
}
|
|
90
|
-
return null;
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Flip any Ivy switches which are discovered in the given ts.VariableStatement.
|
|
94
|
-
*/
|
|
95
|
-
function flipIvySwitchesInVariableStatement(stmt, statements) {
|
|
96
|
-
// Build a new list of variable declarations. Specific declarations that are initialized to a
|
|
97
|
-
// pre-switch identifier will be replaced with a declaration initialized to the post-switch
|
|
98
|
-
// identifier.
|
|
99
|
-
var newDeclarations = (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(stmt.declarationList.declarations), false);
|
|
100
|
-
for (var i = 0; i < newDeclarations.length; i++) {
|
|
101
|
-
var decl = newDeclarations[i];
|
|
102
|
-
// Skip declarations that aren't initialized to an identifier.
|
|
103
|
-
if (decl.initializer === undefined || !ts.isIdentifier(decl.initializer)) {
|
|
104
|
-
continue;
|
|
105
|
-
}
|
|
106
|
-
// Skip declarations that aren't Ivy switches.
|
|
107
|
-
if (!decl.initializer.text.endsWith(IVY_SWITCH_PRE_SUFFIX)) {
|
|
108
|
-
continue;
|
|
109
|
-
}
|
|
110
|
-
// Determine the name of the post-switch variable.
|
|
111
|
-
var postSwitchName = decl.initializer.text.replace(IVY_SWITCH_PRE_SUFFIX, IVY_SWITCH_POST_SUFFIX);
|
|
112
|
-
// Find the post-switch variable identifier. If one can't be found, it's an error. This is
|
|
113
|
-
// reported as a thrown error and not a diagnostic as transformers cannot output diagnostics.
|
|
114
|
-
var newIdentifier = findPostSwitchIdentifier(statements, postSwitchName);
|
|
115
|
-
if (newIdentifier === null) {
|
|
116
|
-
throw new Error("Unable to find identifier " + postSwitchName + " in " + stmt.getSourceFile().fileName + " for the Ivy switch.");
|
|
117
|
-
}
|
|
118
|
-
newDeclarations[i] = ts.updateVariableDeclaration(
|
|
119
|
-
/* node */ decl,
|
|
120
|
-
/* name */ decl.name,
|
|
121
|
-
/* type */ decl.type,
|
|
122
|
-
/* initializer */ newIdentifier);
|
|
123
|
-
}
|
|
124
|
-
var newDeclList = ts.updateVariableDeclarationList(
|
|
125
|
-
/* declarationList */ stmt.declarationList,
|
|
126
|
-
/* declarations */ newDeclarations);
|
|
127
|
-
var newStmt = ts.updateVariableStatement(
|
|
128
|
-
/* statement */ stmt,
|
|
129
|
-
/* modifiers */ stmt.modifiers,
|
|
130
|
-
/* declarationList */ newDeclList);
|
|
131
|
-
return newStmt;
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Check whether the given VariableStatement has any Ivy switch variables.
|
|
135
|
-
*/
|
|
136
|
-
function hasIvySwitches(stmt) {
|
|
137
|
-
return stmt.declarationList.declarations.some(function (decl) { return decl.initializer !== undefined && ts.isIdentifier(decl.initializer) &&
|
|
138
|
-
decl.initializer.text.endsWith(IVY_SWITCH_PRE_SUFFIX); });
|
|
139
|
-
}
|
|
140
|
-
});
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy9zd2l0Y2gvc3JjL3N3aXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7O0lBRUgsK0JBQWlDO0lBRWpDLElBQU0scUJBQXFCLEdBQUcsWUFBWSxDQUFDO0lBQzNDLElBQU0sc0JBQXNCLEdBQUcsYUFBYSxDQUFDO0lBRTdDLFNBQWdCLGtCQUFrQixDQUFDLENBQTJCO1FBQzVELE9BQU8sbUJBQW1CLENBQUM7SUFDN0IsQ0FBQztJQUZELGdEQUVDO0lBRUQsU0FBUyxtQkFBbUIsQ0FBQyxFQUFpQjtRQUM1QywrRkFBK0Y7UUFDL0YsZ0dBQWdHO1FBQ2hHLElBQUksYUFBYSxHQUE2QixTQUFTLENBQUM7UUFFeEQsMkNBQTJDO1FBQzNDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM3QyxJQUFNLFNBQVMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRW5DLHdEQUF3RDtZQUN4RCxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUNwRSxTQUFTO2FBQ1Y7WUFFRCwyRkFBMkY7WUFDM0Ysb0RBQW9EO1lBQ3BELElBQUksYUFBYSxLQUFLLFNBQVMsRUFBRTtnQkFDL0IsYUFBYSxzREFBTyxFQUFFLENBQUMsVUFBVSxTQUFDLENBQUM7YUFDcEM7WUFFRCx5RkFBeUY7WUFDekYsaURBQWlEO1lBQ2pELGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxrQ0FBa0MsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFVB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QUMsSUFBSTtZQUNwQixVQUFVLENBQUMsSUFBSSxDQUFDLElBQUk7WUFDcEIsaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDdEM7UUFFRCxJQUFNLFdBQVcsR0FBRyxFQUFFLENBQUMsNkJBQTZCO1FBQ2hELHFCQUFxQixDQUFDLElBQUksQ0FBQyxlQUFlO1FBQzFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXhDLElBQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUI7UUFDdEMsZUFBZSxDQUFDLElBQUk7UUFDcEIsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTO1FBQzlCLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXZDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVMsY0FBYyxDQUFDLElBQTBCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUN6QyxVQUFBLElBQUksSUFBSSxPQUFBLElBQUksQ0FBQyxXQUFXLEtBQUssU0FBUyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUN2RSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsRUFEakQsQ0FDaUQsQ0FBQyxDQUFDO0lBQ2pFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmNvbnN0IElWWV9TV0lUQ0hfUFJFX1NVRkZJWCA9ICdfX1BSRV9SM19fJztcbmNvbnN0IElWWV9TV0lUQ0hfUE9TVF9TVUZGSVggPSAnX19QT1NUX1IzX18nO1xuXG5leHBvcnQgZnVuY3Rpb24gaXZ5U3dpdGNoVHJhbnNmb3JtKF86IHRzLlRyYW5zZm9ybWF0aW9uQ29udGV4dCk6IHRzLlRyYW5zZm9ybWVyPHRzLlNvdXJjZUZpbGU+IHtcbiAgcmV0dXJuIGZsaXBJdnlTd2l0Y2hJbkZpbGU7XG59XG5cbmZ1bmN0aW9uIGZsaXBJdnlTd2l0Y2hJbkZpbGUoc2Y6IHRzLlNvdXJjZUZpbGUpOiB0cy5Tb3VyY2VGaWxlIHtcbiAgLy8gVG8gcmVwbGFjZSB0aGUgc3RhdGVtZW50cyBhcnJheSwgaXQgbXVzdCBiZSBjb3BpZWQuIFRoaXMgb25seSBuZWVkcyB0byBoYXBwZW4gaWYgYSBzdGF0ZW1lbnRcbiAgLy8gbXVzdCBhY3R1YWxseSBiZSByZXBsYWNlZCB3aXRoaW4gdGhlIGFycmF5LCBzbyB0aGUgbmV3U3RhdGVtZW50cyBhcnJheSBpcyBsYXppbHkgaW5pdGlhbGl6ZWQuXG4gIGxldCBuZXdTdGF0ZW1lbnRzOiB0cy5TdGF0ZW1lbnRbXXx1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgLy8gSXRlcmF0ZSBvdmVyIHRoZSBzdGF0ZW1lbnRzIGluIHRoZSBmaWxlLlxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNmLnN0YXRlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBzdGF0ZW1lbnQgPSBzZi5zdGF0ZW1lbnRzW2ldO1xuXG4gICAgLy8gU2tpcCBvdmVyIGV2ZXJ5dGhpbmcgdGhhdCBpc24ndCBhIHZhcmlhYmxlIHN0YXRlbWVudC5cbiAgICBpZiAoIXRzLmlzVmFyaWFibGVTdGF0ZW1lbnQoc3RhdGVtZW50KSB8fCAhaGFzSXZ5U3dpdGNoZXMoc3RhdGVtZW50KSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgLy8gVGhpcyBzdGF0ZW1lbnQgbmVlZHMgdG8gYmUgcmVwbGFjZWQuIENoZWNrIGlmIHRoZSBuZXdTdGF0ZW1lbnRzIGFycmF5IG5lZWRzIHRvIGJlIGxhemlseVxuICAgIC8vIGluaXRpYWxpemVkIHRvIGEgY29weSBvZiB0aGUgb3JpZ2luYWwgc3RhdGVtZW50cy5cbiAgICBpZiAobmV3U3RhdGVtZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBuZXdTdGF0ZW1lbnRzID0gWy4uLnNmLnN0YXRlbWVudHNdO1xuICAgIH1cblxuICAgIC8vIEZsaXAgYW55IHN3aXRjaGVzIGluIHRoZSBWYXJpYWJsZVN0YXRlbWVudC4gSWYgdGhlcmUgd2VyZSBhbnksIGEgbmV3IHN0YXRlbWVudCB3aWxsIGJlXG4gICAgLy8gcmV0dXJuZWQ7IG90aGVyd2lzZSB0aGUgb2xkIHN0YXRlbWVudCB3aWxsIGJlLlxuICAgIG5ld1N0YXRlbWVudHNbaV0gPSBmbGlwSXZ5U3dpdGNoZXNJblZhcmlhYmxlU3RhdGVtZW50KHN0YXRlbWVudCwgc2Yuc3RhdGVtZW50cyk7XG4gIH1cblxuICAvLyBPbmx5IHVwZGF0ZSB0aGUgc3RhdGVtZW50cyBpbiB0aGUgU291cmNlRmlsZSBpZiBhbnkgaGF2ZSBjaGFuZ2VkLlxuICBpZiAobmV3U3RhdGVtZW50cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHRzLnVwZGF0ZVNvdXJjZUZpbGVOb2RlKHNmLCBuZXdTdGF0ZW1lbnRzKTtcbiAgfVxuICByZXR1cm4gc2Y7XG59XG5cbi8qKlxuICogTG9vayBmb3IgdGhlIHRzLklkZW50aWZpZXIgb2YgYSB0cy5EZWNsYXJhdGlvbiB3aXRoIHRoaXMgbmFtZS5cbiAqXG4gKiBUaGUgcmVhbCBpZGVudGlmaWVyIGlzIG5lZWRlZCAocmF0aGVyIHRoYW4gZmFicmljYXRpbmcgb25lKSBhcyBUeXBlU2NyaXB0IGRlY2lkZXMgaG93IHRvXG4gKiByZWZlcmVuY2UgdGhpcyBpZGVudGlmaWVyIGJhc2VkIG9uIGluZm9ybWF0aW9uIHN0b3JlZCBhZ2FpbnN0IGl0cyBub2RlIGluIHRoZSBBU1QsIHdoaWNoIGFcbiAqIHN5bnRoZXRpYyBub2RlIHdvdWxkIG5vdCBoYXZlLiBJbiBwYXJ0aWN1bGFyLCBzaW5jZSB0aGUgcG9zdC1zd2l0Y2ggdmFyaWFibGUgaXMgb2Z0ZW4gZXhwb3J0ZWQsXG4gKiBUeXBlU2NyaXB0IG5lZWRzIHRvIGtub3cgdGhpcyBzbyBpdCBjYW4gd3JpdGUgYGV4cG9ydHMuVkFSYCBpbnN0ZWFkIG9mIGp1c3QgYFZBUmAgd2hlbiBlbWl0dGluZ1xuICogY29kZS5cbiAqXG4gKiBPbmx5IHZhcmlhYmxlLCBmdW5jdGlvbiwgYW5kIGNsYXNzIGRlY2xhcmF0aW9ucyBhcmUgY3VycmVudGx5IHNlYXJjaGVkLlxuICovXG5mdW5jdGlvbiBmaW5kUG9zdFN3aXRjaElkZW50aWZpZXIoXG4gICAgc3RhdGVtZW50czogUmVhZG9ubHlBcnJheTx0cy5TdGF0ZW1lbnQ+LCBuYW1lOiBzdHJpbmcpOiB0cy5JZGVudGlmaWVyfG51bGwge1xuICBmb3IgKGNvbnN0IHN0bXQgb2Ygc3RhdGVtZW50cykge1xuICAgIGlmICh0cy5pc1ZhcmlhYmxlU3RhdGVtZW50KHN0bXQpKSB7XG4gICAgICBjb25zdCBkZWNsID0gc3RtdC5kZWNsYXJhdGlvbkxpc3QuZGVjbGFyYXRpb25zLmZpbmQoXG4gICAgICAgICAgZGVjbCA9PiB0cy5pc0lkZW50aWZpZXIoZGVjbC5uYW1lKSAmJiBkZWNsLm5hbWUudGV4dCA9PT0gbmFtZSk7XG4gICAgICBpZiAoZGVjbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBkZWNsLm5hbWUgYXMgdHMuSWRlbnRpZmllcjtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRzLmlzRnVuY3Rpb25EZWNsYXJhdGlvbihzdG10KSB8fCB0cy5pc0NsYXNzRGVjbGFyYXRpb24oc3RtdCkpIHtcbiAgICAgIGlmIChzdG10Lm5hbWUgIT09IHVuZGVmaW5lZCAmJiB0cy5pc0lkZW50aWZpZXIoc3RtdC5uYW1lKSAmJiBzdG10Lm5hbWUudGV4dCA9PT0gbmFtZSkge1xuICAgICAgICByZXR1cm4gc3RtdC5uYW1lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBGbGlwIGFueSBJdnkgc3dpdGNoZXMgd2hpY2ggYXJlIGRpc2NvdmVyZWQgaW4gdGhlIGdpdmVuIHRzLlZhcmlhYmxlU3RhdGVtZW50LlxuICovXG5mdW5jdGlvbiBmbGlwSXZ5U3dpdGNoZXNJblZhcmlhYmxlU3RhdGVtZW50KFxuICAgIHN0bXQ6IHRzLlZhcmlhYmxlU3RhdGVtZW50LCBzdGF0ZW1lbnRzOiBSZWFkb25seUFycmF5PHRzLlN0YXRlbWVudD4pOiB0cy5WYXJpYWJsZVN0YXRlbWVudCB7XG4gIC8vIEJ1aWxkIGEgbmV3IGxpc3Qgb2YgdmFyaWFibGUgZGVjbGFyYXRpb25zLiBTcGVjaWZpYyBkZWNsYXJhdGlvbnMgdGhhdCBhcmUgaW5pdGlhbGl6ZWQgdG8gYVxuICAvLyBwcmUtc3dpdGNoIGlkZW50aWZpZXIgd2lsbCBiZSByZXBsYWNlZCB3aXRoIGEgZGVjbGFyYXRpb24gaW5pdGlhbGl6ZWQgdG8gdGhlIHBvc3Qtc3dpdGNoXG4gIC8vIGlkZW50aWZpZXIuXG4gIGNvbnN0IG5ld0RlY2xhcmF0aW9ucyA9IFsuLi5zdG10LmRlY2xhcmF0aW9uTGlzdC5kZWNsYXJhdGlvbnNdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG5ld0RlY2xhcmF0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGRlY2wgPSBuZXdEZWNsYXJhdGlvbnNbaV07XG5cbiAgICAvLyBTa2lwIGRlY2xhcmF0aW9ucyB0aGF0IGFyZW4ndCBpbml0aWFsaXplZCB0byBhbiBpZGVudGlmaWVyLlxuICAgIGlmIChkZWNsLmluaXRpYWxpemVyID09PSB1bmRlZmluZWQgfHwgIXRzLmlzSWRlbnRpZmllcihkZWNsLmluaXRpYWxpemVyKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgLy8gU2tpcCBkZWNsYXJhdGlvbnMgdGhhdCBhcmVuJ3QgSXZ5IHN3aXRjaGVzLlxuICAgIGlmICghZGVjbC5pbml0aWFsaXplci50ZXh0LmVuZHNXaXRoKElWWV9TV0lUQ0hfUFJFX1NVRkZJWCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8vIERldGVybWluZSB0aGUgbmFtZSBvZiB0aGUgcG9zdC1zd2l0Y2ggdmFyaWFibGUuXG4gICAgY29uc3QgcG9zdFN3aXRjaE5hbWUgPVxuICAgICAgICBkZWNsLmluaXRpYWxpemVyLnRleHQucmVwbGFjZShJVllfU1dJVENIX1BSRV9TVUZGSVgsIElWWV9TV0lUQ0hfUE9TVF9TVUZGSVgpO1xuXG4gICAgLy8gRmluZCB0aGUgcG9zdC1zd2l0Y2ggdmFyaWFibGUgaWRlbnRpZmllci4gSWYgb25lIGNhbid0IGJlIGZvdW5kLCBpdCdzIGFuIGVycm9yLiBUaGlzIGlzXG4gICAgLy8gcmVwb3J0ZWQgYXMgYSB0aHJvd24gZXJyb3IgYW5kIG5vdCBhIGRpYWdub3N0aWMgYXMgdHJhbnNmb3JtZXJzIGNhbm5vdCBvdXRwdXQgZGlhZ25vc3RpY3MuXG4gICAgY29uc3QgbmV3SWRlbnRpZmllciA9IGZpbmRQb3N0U3dpdGNoSWRlbnRpZmllcihzdGF0ZW1lbnRzLCBwb3N0U3dpdGNoTmFtZSk7XG4gICAgaWYgKG5ld0lkZW50aWZpZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGZpbmQgaWRlbnRpZmllciAke3Bvc3RTd2l0Y2hOYW1lfSBpbiAke1xuICAgICAgICAgIHN0bXQuZ2V0U291cmNlRmlsZSgpLmZpbGVOYW1lfSBmb3IgdGhlIEl2eSBzd2l0Y2guYCk7XG4gICAgfVxuXG4gICAgbmV3RGVjbGFyYXRpb25zW2ldID0gdHMudXBkYXRlVmFyaWFibGVEZWNsYXJhdGlvbihcbiAgICAgICAgLyogbm9kZSAqLyBkZWNsLFxuICAgICAgICAvKiBuYW1lICovIGRlY2wubmFtZSxcbiAgICAgICAgLyogdHlwZSAqLyBkZWNsLnR5cGUsXG4gICAgICAgIC8qIGluaXRpYWxpemVyICovIG5ld0lkZW50aWZpZXIpO1xuICB9XG5cbiAgY29uc3QgbmV3RGVjbExpc3QgPSB0cy51cGRhdGVWYXJpYWJsZURlY2xhcmF0aW9uTGlzdChcbiAgICAgIC8qIGRlY2xhcmF0aW9uTGlzdCAqLyBzdG10LmRlY2xhcmF0aW9uTGlzdCxcbiAgICAgIC8qIGRlY2xhcmF0aW9ucyAqLyBuZXdEZWNsYXJhdGlvbnMpO1xuXG4gIGNvbnN0IG5ld1N0bXQgPSB0cy51cGRhdGVWYXJpYWJsZVN0YXRlbWVudChcbiAgICAgIC8qIHN0YXRlbWVudCAqLyBzdG10LFxuICAgICAgLyogbW9kaWZpZXJzICovIHN0bXQubW9kaWZpZXJzLFxuICAgICAgLyogZGVjbGFyYXRpb25MaXN0ICovIG5ld0RlY2xMaXN0KTtcblxuICByZXR1cm4gbmV3U3RtdDtcbn1cblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIHRoZSBnaXZlbiBWYXJpYWJsZVN0YXRlbWVudCBoYXMgYW55IEl2eSBzd2l0Y2ggdmFyaWFibGVzLlxuICovXG5mdW5jdGlvbiBoYXNJdnlTd2l0Y2hlcyhzdG10OiB0cy5WYXJpYWJsZVN0YXRlbWVudCkge1xuICByZXR1cm4gc3RtdC5kZWNsYXJhdGlvbkxpc3QuZGVjbGFyYXRpb25zLnNvbWUoXG4gICAgICBkZWNsID0+IGRlY2wuaW5pdGlhbGl6ZXIgIT09IHVuZGVmaW5lZCAmJiB0cy5pc0lkZW50aWZpZXIoZGVjbC5pbml0aWFsaXplcikgJiZcbiAgICAgICAgICBkZWNsLmluaXRpYWxpemVyLnRleHQuZW5kc1dpdGgoSVZZX1NXSVRDSF9QUkVfU1VGRklYKSk7XG59XG4iXX0=
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
(function (factory) {
|
|
9
|
-
if (typeof module === "object" && typeof module.exports === "object") {
|
|
10
|
-
var v = factory(require, exports);
|
|
11
|
-
if (v !== undefined) module.exports = v;
|
|
12
|
-
}
|
|
13
|
-
else if (typeof define === "function" && define.amd) {
|
|
14
|
-
define("@angular/compiler-cli/src/ngtsc/transform", ["require", "exports", "tslib", "@angular/compiler-cli/src/ngtsc/transform/src/api", "@angular/compiler-cli/src/ngtsc/transform/src/alias", "@angular/compiler-cli/src/ngtsc/transform/src/compilation", "@angular/compiler-cli/src/ngtsc/transform/src/declaration", "@angular/compiler-cli/src/ngtsc/transform/src/trait", "@angular/compiler-cli/src/ngtsc/transform/src/transform"], factory);
|
|
15
|
-
}
|
|
16
|
-
})(function (require, exports) {
|
|
17
|
-
"use strict";
|
|
18
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.ivyTransformFactory = exports.TraitState = exports.Trait = exports.IvyDeclarationDtsTransform = exports.DtsTransformRegistry = exports.declarationTransformFactory = exports.TraitCompiler = exports.aliasTransformFactory = void 0;
|
|
20
|
-
var tslib_1 = require("tslib");
|
|
21
|
-
(0, tslib_1.__exportStar)(require("@angular/compiler-cli/src/ngtsc/transform/src/api"), exports);
|
|
22
|
-
var alias_1 = require("@angular/compiler-cli/src/ngtsc/transform/src/alias");
|
|
23
|
-
Object.defineProperty(exports, "aliasTransformFactory", { enumerable: true, get: function () { return alias_1.aliasTransformFactory; } });
|
|
24
|
-
var compilation_1 = require("@angular/compiler-cli/src/ngtsc/transform/src/compilation");
|
|
25
|
-
Object.defineProperty(exports, "TraitCompiler", { enumerable: true, get: function () { return compilation_1.TraitCompiler; } });
|
|
26
|
-
var declaration_1 = require("@angular/compiler-cli/src/ngtsc/transform/src/declaration");
|
|
27
|
-
Object.defineProperty(exports, "declarationTransformFactory", { enumerable: true, get: function () { return declaration_1.declarationTransformFactory; } });
|
|
28
|
-
Object.defineProperty(exports, "DtsTransformRegistry", { enumerable: true, get: function () { return declaration_1.DtsTransformRegistry; } });
|
|
29
|
-
Object.defineProperty(exports, "IvyDeclarationDtsTransform", { enumerable: true, get: function () { return declaration_1.IvyDeclarationDtsTransform; } });
|
|
30
|
-
var trait_1 = require("@angular/compiler-cli/src/ngtsc/transform/src/trait");
|
|
31
|
-
Object.defineProperty(exports, "Trait", { enumerable: true, get: function () { return trait_1.Trait; } });
|
|
32
|
-
Object.defineProperty(exports, "TraitState", { enumerable: true, get: function () { return trait_1.TraitState; } });
|
|
33
|
-
var transform_1 = require("@angular/compiler-cli/src/ngtsc/transform/src/transform");
|
|
34
|
-
Object.defineProperty(exports, "ivyTransformFactory", { enumerable: true, get: function () { return transform_1.ivyTransformFactory; } });
|
|
35
|
-
});
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL3RyYW5zZm9ybS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7O0lBRUgsaUdBQTBCO0lBQzFCLDZFQUFrRDtJQUExQyw4R0FBQSxxQkFBcUIsT0FBQTtJQUM3Qix5RkFBNkQ7SUFBeEMsNEdBQUEsYUFBYSxPQUFBO0lBQ2xDLHlGQUFnSDtJQUF4RywwSEFBQSwyQkFBMkIsT0FBQTtJQUFFLG1IQUFBLG9CQUFvQixPQUFBO0lBQUUseUhBQUEsMEJBQTBCLE9BQUE7SUFDckYsNkVBQXdHO0lBQXRDLDhGQUFBLEtBQUssT0FBQTtJQUFFLG1HQUFBLFVBQVUsT0FBQTtJQUNuRixxRkFBb0Q7SUFBNUMsZ0hBQUEsbUJBQW1CLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXBpJztcbmV4cG9ydCB7YWxpYXNUcmFuc2Zvcm1GYWN0b3J5fSBmcm9tICcuL3NyYy9hbGlhcyc7XG5leHBvcnQge0NsYXNzUmVjb3JkLCBUcmFpdENvbXBpbGVyfSBmcm9tICcuL3NyYy9jb21waWxhdGlvbic7XG5leHBvcnQge2RlY2xhcmF0aW9uVHJhbnNmb3JtRmFjdG9yeSwgRHRzVHJhbnNmb3JtUmVnaXN0cnksIEl2eURlY2xhcmF0aW9uRHRzVHJhbnNmb3JtfSBmcm9tICcuL3NyYy9kZWNsYXJhdGlvbic7XG5leHBvcnQge0FuYWx5emVkVHJhaXQsIFBlbmRpbmdUcmFpdCwgUmVzb2x2ZWRUcmFpdCwgU2tpcHBlZFRyYWl0LCBUcmFpdCwgVHJhaXRTdGF0ZX0gZnJvbSAnLi9zcmMvdHJhaXQnO1xuZXhwb3J0IHtpdnlUcmFuc2Zvcm1GYWN0b3J5fSBmcm9tICcuL3NyYy90cmFuc2Zvcm0nO1xuIl19
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
(function (factory) {
|
|
9
|
-
if (typeof module === "object" && typeof module.exports === "object") {
|
|
10
|
-
var v = factory(require, exports);
|
|
11
|
-
if (v !== undefined) module.exports = v;
|
|
12
|
-
}
|
|
13
|
-
else if (typeof define === "function" && define.amd) {
|
|
14
|
-
define("@angular/compiler-cli/src/ngtsc/transform/src/alias", ["require", "exports", "tslib", "typescript"], factory);
|
|
15
|
-
}
|
|
16
|
-
})(function (require, exports) {
|
|
17
|
-
"use strict";
|
|
18
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.aliasTransformFactory = void 0;
|
|
20
|
-
var tslib_1 = require("tslib");
|
|
21
|
-
var ts = require("typescript");
|
|
22
|
-
function aliasTransformFactory(exportStatements) {
|
|
23
|
-
return function (context) {
|
|
24
|
-
return function (file) {
|
|
25
|
-
if (ts.isBundle(file) || !exportStatements.has(file.fileName)) {
|
|
26
|
-
return file;
|
|
27
|
-
}
|
|
28
|
-
var statements = (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(file.statements), false);
|
|
29
|
-
exportStatements.get(file.fileName).forEach(function (_a, aliasName) {
|
|
30
|
-
var _b = (0, tslib_1.__read)(_a, 2), moduleName = _b[0], symbolName = _b[1];
|
|
31
|
-
var stmt = ts.createExportDeclaration(
|
|
32
|
-
/* decorators */ undefined,
|
|
33
|
-
/* modifiers */ undefined,
|
|
34
|
-
/* exportClause */ ts.createNamedExports([ts.createExportSpecifier(
|
|
35
|
-
/* propertyName */ symbolName,
|
|
36
|
-
/* name */ aliasName)]),
|
|
37
|
-
/* moduleSpecifier */ ts.createStringLiteral(moduleName));
|
|
38
|
-
statements.push(stmt);
|
|
39
|
-
});
|
|
40
|
-
return ts.updateSourceFileNode(file, statements);
|
|
41
|
-
};
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
exports.aliasTransformFactory = aliasTransformFactory;
|
|
45
|
-
});
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL3RyYW5zZm9ybS9zcmMvYWxpYXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7OztJQUVILCtCQUFpQztJQUVqQyxTQUFnQixxQkFBcUIsQ0FBQyxnQkFBNEQ7UUFFaEcsT0FBTyxVQUFDLE9BQWlDO1lBQ3ZDLE9BQU8sVUFBQyxJQUFtQjtnQkFDekIsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDN0QsT0FBTyxJQUFJLENBQUM7aUJBQ2I7Z0JBRUQsSUFBTSxVQUFVLHNEQUFPLElBQUksQ0FBQyxVQUFVLFNBQUMsQ0FBQztnQkFDeEMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUUsQ0FBQyxPQUFPLENBQUMsVUFBQyxFQUF3QixFQUFFLFNBQVM7d0JBQW5DLEtBQUEsMEJBQXdCLEVBQXZCLFVBQVUsUUFBQSxFQUFFLFVBQVUsUUFBQTtvQkFDbkUsSUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLHVCQUF1QjtvQkFDbkMsZ0JBQWdCLENBQUMsU0FBUztvQkFDMUIsZUFBZSxDQUFDLFNBQVM7b0JBQ3pCLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxxQkFBcUI7d0JBQzlELGtCQUFrQixDQUFDLFVBQVU7d0JBQzdCLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO29CQUMzQixxQkFBcUIsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztvQkFDOUQsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDeEIsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ25ELENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQztJQUNKLENBQUM7SUF2QkQsc0RBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5leHBvcnQgZnVuY3Rpb24gYWxpYXNUcmFuc2Zvcm1GYWN0b3J5KGV4cG9ydFN0YXRlbWVudHM6IE1hcDxzdHJpbmcsIE1hcDxzdHJpbmcsIFtzdHJpbmcsIHN0cmluZ10+Pik6XG4gICAgdHMuVHJhbnNmb3JtZXJGYWN0b3J5PHRzLlNvdXJjZUZpbGU+IHtcbiAgcmV0dXJuIChjb250ZXh0OiB0cy5UcmFuc2Zvcm1hdGlvbkNvbnRleHQpID0+IHtcbiAgICByZXR1cm4gKGZpbGU6IHRzLlNvdXJjZUZpbGUpID0+IHtcbiAgICAgIGlmICh0cy5pc0J1bmRsZShmaWxlKSB8fCAhZXhwb3J0U3RhdGVtZW50cy5oYXMoZmlsZS5maWxlTmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIGZpbGU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHN0YXRlbWVudHMgPSBbLi4uZmlsZS5zdGF0ZW1lbnRzXTtcbiAgICAgIGV4cG9ydFN0YXRlbWVudHMuZ2V0KGZpbGUuZmlsZU5hbWUpIS5mb3JFYWNoKChbbW9kdWxlTmFtZSwgc3ltYm9sTmFtZV0sIGFsaWFzTmFtZSkgPT4ge1xuICAgICAgICBjb25zdCBzdG10ID0gdHMuY3JlYXRlRXhwb3J0RGVjbGFyYXRpb24oXG4gICAgICAgICAgICAvKiBkZWNvcmF0b3JzICovIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC8qIG1vZGlmaWVycyAqLyB1bmRlZmluZWQsXG4gICAgICAgICAgICAvKiBleHBvcnRDbGF1c2UgKi8gdHMuY3JlYXRlTmFtZWRFeHBvcnRzKFt0cy5jcmVhdGVFeHBvcnRTcGVjaWZpZXIoXG4gICAgICAgICAgICAgICAgLyogcHJvcGVydHlOYW1lICovIHN5bWJvbE5hbWUsXG4gICAgICAgICAgICAgICAgLyogbmFtZSAqLyBhbGlhc05hbWUpXSksXG4gICAgICAgICAgICAvKiBtb2R1bGVTcGVjaWZpZXIgKi8gdHMuY3JlYXRlU3RyaW5nTGl0ZXJhbChtb2R1bGVOYW1lKSk7XG4gICAgICAgIHN0YXRlbWVudHMucHVzaChzdG10KTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gdHMudXBkYXRlU291cmNlRmlsZU5vZGUoZmlsZSwgc3RhdGVtZW50cyk7XG4gICAgfTtcbiAgfTtcbn1cbiJdfQ==
|