@angular/compiler-cli 12.1.0-next.6 → 12.1.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/linker/src/file_linker/emit_scopes/iife_emit_scope.js +1 -1
- package/linker/src/file_linker/partial_linkers/partial_component_linker_1.js +2 -3
- package/linker/src/file_linker/partial_linkers/partial_linker_selector.js +2 -2
- package/ngcc/src/dependencies/commonjs_dependency_host.js +1 -1
- package/ngcc/src/dependencies/dts_dependency_host.js +1 -1
- package/ngcc/src/dependencies/esm_dependency_host.js +1 -1
- package/ngcc/src/dependencies/umd_dependency_host.js +1 -1
- package/ngcc/src/entry_point_finder/program_based_entry_point_finder.js +1 -1
- package/ngcc/src/entry_point_finder/targeted_entry_point_finder.js +1 -1
- package/ngcc/src/execution/tasks/queues/parallel_task_queue.js +1 -1
- package/ngcc/src/execution/tasks/queues/serial_task_queue.js +1 -1
- package/ngcc/src/host/commonjs_host.js +1 -1
- package/ngcc/src/host/esm2015_host.js +1 -1
- package/ngcc/src/host/esm5_host.js +1 -1
- package/ngcc/src/host/umd_host.js +1 -1
- package/ngcc/src/packages/build_marker.d.ts +1 -1
- package/ngcc/src/packages/build_marker.js +1 -1
- package/ngcc/src/packages/configuration.d.ts +7 -0
- package/ngcc/src/packages/configuration.js +8 -3
- package/ngcc/src/packages/entry_point_manifest.js +2 -2
- package/ngcc/src/packages/ngcc_compiler_host.js +1 -1
- package/ngcc/src/rendering/commonjs_rendering_formatter.js +1 -1
- package/ngcc/src/rendering/esm5_rendering_formatter.js +1 -1
- package/ngcc/src/rendering/umd_rendering_formatter.js +1 -1
- package/ngcc/src/writing/new_entry_point_file_writer.js +1 -1
- package/package.json +2 -2
- package/src/ngtsc/annotations/src/component.d.ts +2 -0
- package/src/ngtsc/annotations/src/component.js +6 -2
- package/src/ngtsc/annotations/src/directive.js +1 -1
- package/src/ngtsc/annotations/src/ng_module.js +1 -1
- package/src/ngtsc/annotations/src/pipe.js +1 -1
- package/src/ngtsc/core/api/src/public_options.d.ts +12 -0
- package/src/ngtsc/core/api/src/public_options.js +1 -1
- package/src/ngtsc/core/src/compiler.d.ts +5 -0
- package/src/ngtsc/core/src/compiler.js +10 -1
- package/src/ngtsc/cycles/src/analyzer.d.ts +7 -0
- package/src/ngtsc/cycles/src/analyzer.js +89 -4
- package/src/ngtsc/cycles/src/imports.d.ts +1 -6
- package/src/ngtsc/cycles/src/imports.js +5 -23
- package/src/ngtsc/file_system/testing/src/mock_file_system_native.js +1 -1
- package/src/ngtsc/file_system/testing/src/mock_file_system_posix.js +1 -1
- package/src/ngtsc/file_system/testing/src/mock_file_system_windows.js +1 -1
- package/src/ngtsc/incremental/semantic_graph/src/graph.js +1 -1
- package/src/ngtsc/incremental/src/incremental.js +30 -4
- package/src/ngtsc/indexer/src/template.js +1 -1
- package/src/ngtsc/metadata/src/dts.js +2 -3
- package/src/ngtsc/metadata/src/inheritance.js +2 -7
- package/src/ngtsc/partial_evaluator/src/builtin.js +1 -1
- package/src/ngtsc/partial_evaluator/src/diagnostics.js +4 -1
- package/src/ngtsc/partial_evaluator/src/dynamic.d.ts +19 -1
- package/src/ngtsc/partial_evaluator/src/dynamic.js +12 -4
- package/src/ngtsc/partial_evaluator/src/interpreter.d.ts +2 -0
- package/src/ngtsc/partial_evaluator/src/interpreter.js +53 -5
- package/src/ngtsc/partial_evaluator/src/ts_helpers.js +1 -1
- package/src/ngtsc/program.d.ts +1 -0
- package/src/ngtsc/program.js +26 -2
- package/src/ngtsc/program_driver/src/api.d.ts +20 -1
- package/src/ngtsc/program_driver/src/api.js +3 -2
- package/src/ngtsc/program_driver/src/ts_create_program_driver.d.ts +2 -2
- package/src/ngtsc/program_driver/src/ts_create_program_driver.js +7 -3
- package/src/ngtsc/reflection/src/typescript.js +4 -1
- package/src/ngtsc/transform/src/api.d.ts +6 -0
- package/src/ngtsc/transform/src/api.js +1 -1
- package/src/ngtsc/transform/src/compilation.d.ts +2 -0
- package/src/ngtsc/transform/src/compilation.js +59 -20
- package/src/ngtsc/transform/src/transform.js +1 -1
- package/src/ngtsc/typecheck/src/context.d.ts +2 -1
- package/src/ngtsc/typecheck/src/context.js +11 -3
- package/src/ngtsc/typecheck/src/template_semantics.js +1 -1
- package/src/ngtsc/typecheck/src/template_symbol_builder.js +36 -4
- package/src/ngtsc/typecheck/src/type_check_block.js +2 -2
- package/src/ngtsc/typecheck/src/type_check_file.js +1 -1
- package/src/ngtsc/typecheck/src/type_emitter.d.ts +2 -1
- package/src/ngtsc/typecheck/src/type_emitter.js +54 -48
- package/src/ngtsc/typecheck/src/type_parameter_emitter.d.ts +2 -0
- package/src/ngtsc/typecheck/src/type_parameter_emitter.js +21 -7
- package/src/ngtsc/util/src/visitor.d.ts +1 -1
- package/src/ngtsc/util/src/visitor.js +1 -8
- package/src/ngtsc/xi18n/index.d.ts +9 -0
- package/src/ngtsc/xi18n/index.js +22 -0
- package/src/ngtsc/xi18n/src/context.d.ts +26 -0
- package/src/ngtsc/xi18n/src/context.js +20 -0
- package/src/transformers/api.d.ts +0 -3
- package/src/transformers/api.js +1 -1
- package/src/transformers/i18n.d.ts +14 -0
- package/src/transformers/i18n.js +76 -0
- package/src/transformers/program.d.ts +0 -4
- package/src/transformers/program.js +5 -56
- package/src/version.js +1 -1
- package/compiler-cli.externs.js +0 -0
- package/index.mjs +0 -20
- package/linker/babel/babel.externs.js +0 -0
- package/linker/babel/index.mjs +0 -11
- package/linker/babel/src/ast/babel_ast_factory.mjs +0 -137
- package/linker/babel/src/ast/babel_ast_host.mjs +0 -154
- package/linker/babel/src/babel_declaration_scope.mjs +0 -52
- package/linker/babel/src/babel_plugin.mjs +0 -23
- package/linker/babel/src/es2015_linker_plugin.mjs +0 -158
- package/linker/babel/src/linker_plugin_options.mjs +0 -2
- package/linker/index.mjs +0 -7
- package/linker/linker.externs.js +0 -0
- package/linker/src/ast/ast_host.mjs +0 -9
- package/linker/src/ast/ast_value.mjs +0 -256
- package/linker/src/ast/typescript/typescript_ast_host.mjs +0 -156
- package/linker/src/ast/utils.mjs +0 -17
- package/linker/src/fatal_linker_error.mjs +0 -30
- package/linker/src/file_linker/declaration_scope.mjs +0 -9
- package/linker/src/file_linker/emit_scopes/emit_scope.mjs +0 -41
- package/linker/src/file_linker/emit_scopes/iife_emit_scope.mjs +0 -33
- package/linker/src/file_linker/file_linker.mjs +0 -70
- package/linker/src/file_linker/get_source_file.mjs +0 -28
- package/linker/src/file_linker/linker_environment.mjs +0 -23
- package/linker/src/file_linker/linker_options.mjs +0 -16
- package/linker/src/file_linker/needs_linking.mjs +0 -27
- package/linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.mjs +0 -29
- package/linker/src/file_linker/partial_linkers/partial_component_linker_1.mjs +0 -194
- package/linker/src/file_linker/partial_linkers/partial_directive_linker_1.mjs +0 -137
- package/linker/src/file_linker/partial_linkers/partial_factory_linker_1.mjs +0 -52
- package/linker/src/file_linker/partial_linkers/partial_injectable_linker_1.mjs +0 -56
- package/linker/src/file_linker/partial_linkers/partial_injector_linker_1.mjs +0 -38
- package/linker/src/file_linker/partial_linkers/partial_linker.mjs +0 -2
- package/linker/src/file_linker/partial_linkers/partial_linker_selector.mjs +0 -166
- package/linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.mjs +0 -110
- package/linker/src/file_linker/partial_linkers/partial_pipe_linker_1.mjs +0 -42
- package/linker/src/file_linker/partial_linkers/util.mjs +0 -78
- package/linker/src/file_linker/translator.mjs +0 -23
- package/linker/src/linker_import_generator.mjs +0 -28
- package/ngcc/index.mjs +0 -16
- package/ngcc/main-ivy-ngcc.mjs +0 -12
- package/ngcc/main-ngcc.mjs +0 -32
- package/ngcc/ngcc.externs.js +0 -0
- package/ngcc/src/analysis/decoration_analyzer.mjs +0 -215
- package/ngcc/src/analysis/migration_host.mjs +0 -80
- package/ngcc/src/analysis/module_with_providers_analyzer.mjs +0 -178
- package/ngcc/src/analysis/ngcc_references_registry.mjs +0 -45
- package/ngcc/src/analysis/ngcc_trait_compiler.mjs +0 -70
- package/ngcc/src/analysis/private_declarations_analyzer.mjs +0 -47
- package/ngcc/src/analysis/switch_marker_analyzer.mjs +0 -34
- package/ngcc/src/analysis/types.mjs +0 -2
- package/ngcc/src/analysis/util.mjs +0 -19
- package/ngcc/src/command_line_options.mjs +0 -142
- package/ngcc/src/constants.mjs +0 -10
- package/ngcc/src/dependencies/commonjs_dependency_host.mjs +0 -87
- package/ngcc/src/dependencies/dependency_host.mjs +0 -102
- package/ngcc/src/dependencies/dependency_resolver.mjs +0 -151
- package/ngcc/src/dependencies/dts_dependency_host.mjs +0 -18
- package/ngcc/src/dependencies/esm_dependency_host.mjs +0 -286
- package/ngcc/src/dependencies/module_resolver.mjs +0 -233
- package/ngcc/src/dependencies/umd_dependency_host.mjs +0 -33
- package/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.mjs +0 -42
- package/ngcc/src/entry_point_finder/entry_point_collector.mjs +0 -120
- package/ngcc/src/entry_point_finder/interface.mjs +0 -2
- package/ngcc/src/entry_point_finder/program_based_entry_point_finder.mjs +0 -91
- package/ngcc/src/entry_point_finder/targeted_entry_point_finder.mjs +0 -216
- package/ngcc/src/entry_point_finder/tracing_entry_point_finder.mjs +0 -63
- package/ngcc/src/entry_point_finder/utils.mjs +0 -176
- package/ngcc/src/execution/analyze_entry_points.mjs +0 -130
- package/ngcc/src/execution/api.mjs +0 -2
- package/ngcc/src/execution/cluster/api.mjs +0 -9
- package/ngcc/src/execution/cluster/executor.mjs +0 -27
- package/ngcc/src/execution/cluster/master.mjs +0 -261
- package/ngcc/src/execution/cluster/package_json_updater.mjs +0 -45
- package/ngcc/src/execution/cluster/utils.mjs +0 -59
- package/ngcc/src/execution/cluster/worker.mjs +0 -81
- package/ngcc/src/execution/create_compile_function.mjs +0 -62
- package/ngcc/src/execution/single_process_executor.mjs +0 -57
- package/ngcc/src/execution/tasks/api.mjs +0 -22
- package/ngcc/src/execution/tasks/completion.mjs +0 -61
- package/ngcc/src/execution/tasks/queues/base_task_queue.mjs +0 -78
- package/ngcc/src/execution/tasks/queues/parallel_task_queue.mjs +0 -53
- package/ngcc/src/execution/tasks/queues/serial_task_queue.mjs +0 -29
- package/ngcc/src/execution/tasks/utils.mjs +0 -114
- package/ngcc/src/host/commonjs_host.mjs +0 -220
- package/ngcc/src/host/commonjs_umd_utils.mjs +0 -186
- package/ngcc/src/host/delegating_host.mjs +0 -140
- package/ngcc/src/host/esm2015_host.mjs +0 -2293
- package/ngcc/src/host/esm5_host.mjs +0 -721
- package/ngcc/src/host/ngcc_host.mjs +0 -15
- package/ngcc/src/host/umd_host.mjs +0 -486
- package/ngcc/src/host/utils.mjs +0 -12
- package/ngcc/src/locking/async_locker.mjs +0 -76
- package/ngcc/src/locking/lock_file.mjs +0 -4
- package/ngcc/src/locking/lock_file_with_child_process/index.mjs +0 -78
- package/ngcc/src/locking/lock_file_with_child_process/unlocker.mjs +0 -34
- package/ngcc/src/locking/lock_file_with_child_process/util.mjs +0 -29
- package/ngcc/src/locking/sync_locker.mjs +0 -52
- package/ngcc/src/main.mjs +0 -134
- package/ngcc/src/migrations/migration.mjs +0 -2
- package/ngcc/src/migrations/missing_injectable_migration.mjs +0 -164
- package/ngcc/src/migrations/undecorated_child_migration.mjs +0 -61
- package/ngcc/src/migrations/undecorated_parent_migration.mjs +0 -86
- package/ngcc/src/migrations/utils.mjs +0 -117
- package/ngcc/src/ngcc_options.mjs +0 -119
- package/ngcc/src/packages/build_marker.mjs +0 -84
- package/ngcc/src/packages/bundle_program.mjs +0 -52
- package/ngcc/src/packages/configuration.mjs +0 -250
- package/ngcc/src/packages/entry_point.mjs +0 -239
- package/ngcc/src/packages/entry_point_bundle.mjs +0 -68
- package/ngcc/src/packages/entry_point_manifest.mjs +0 -162
- package/ngcc/src/packages/ngcc_compiler_host.mjs +0 -77
- package/ngcc/src/packages/patch_ts_expando_initializer.mjs +0 -166
- package/ngcc/src/packages/source_file_cache.mjs +0 -187
- package/ngcc/src/packages/transformer.mjs +0 -140
- package/ngcc/src/path_mappings.mjs +0 -13
- package/ngcc/src/rendering/commonjs_rendering_formatter.mjs +0 -65
- package/ngcc/src/rendering/dts_renderer.mjs +0 -139
- package/ngcc/src/rendering/esm5_rendering_formatter.mjs +0 -50
- package/ngcc/src/rendering/esm_rendering_formatter.mjs +0 -251
- package/ngcc/src/rendering/ngcc_import_rewriter.mjs +0 -32
- package/ngcc/src/rendering/renderer.mjs +0 -170
- package/ngcc/src/rendering/rendering_formatter.mjs +0 -2
- package/ngcc/src/rendering/source_maps.mjs +0 -54
- package/ngcc/src/rendering/umd_rendering_formatter.mjs +0 -292
- package/ngcc/src/rendering/utils.mjs +0 -20
- package/ngcc/src/utils.mjs +0 -144
- package/ngcc/src/writing/cleaning/cleaning_strategies.mjs +0 -61
- package/ngcc/src/writing/cleaning/package_cleaner.mjs +0 -67
- package/ngcc/src/writing/cleaning/utils.mjs +0 -16
- package/ngcc/src/writing/file_writer.mjs +0 -2
- package/ngcc/src/writing/in_place_file_writer.mjs +0 -62
- package/ngcc/src/writing/new_entry_point_file_writer.mjs +0 -161
- package/ngcc/src/writing/package_json_updater.mjs +0 -144
- package/src/diagnostics/translate_diagnostics.mjs +0 -47
- package/src/diagnostics/typescript_version.mjs +0 -79
- package/src/extract_i18n.mjs +0 -46
- package/src/language_services.mjs +0 -18
- package/src/main.mjs +0 -185
- package/src/metadata/bundle_index_host.mjs +0 -107
- package/src/metadata/bundler.mjs +0 -556
- package/src/metadata/collector.mjs +0 -701
- package/src/metadata/evaluator.mjs +0 -643
- package/src/metadata/index.mjs +0 -11
- package/src/metadata/index_writer.mjs +0 -44
- package/src/metadata/schema.mjs +0 -102
- package/src/metadata/symbols.mjs +0 -117
- package/src/ngtsc/annotations/annotations.externs.js +0 -0
- package/src/ngtsc/annotations/index.mjs +0 -15
- package/src/ngtsc/annotations/src/api.mjs +0 -9
- package/src/ngtsc/annotations/src/component.mjs +0 -1064
- package/src/ngtsc/annotations/src/diagnostics.mjs +0 -147
- package/src/ngtsc/annotations/src/directive.mjs +0 -692
- package/src/ngtsc/annotations/src/factory.mjs +0 -17
- package/src/ngtsc/annotations/src/injectable.mjs +0 -260
- package/src/ngtsc/annotations/src/metadata.mjs +0 -145
- package/src/ngtsc/annotations/src/ng_module.mjs +0 -565
- package/src/ngtsc/annotations/src/pipe.mjs +0 -151
- package/src/ngtsc/annotations/src/references_registry.mjs +0 -16
- package/src/ngtsc/annotations/src/util.mjs +0 -495
- package/src/ngtsc/core/api/index.mjs +0 -12
- package/src/ngtsc/core/api/src/adapter.mjs +0 -9
- package/src/ngtsc/core/api/src/interfaces.mjs +0 -9
- package/src/ngtsc/core/api/src/options.mjs +0 -9
- package/src/ngtsc/core/api/src/public_options.mjs +0 -9
- package/src/ngtsc/core/api.externs.js +0 -0
- package/src/ngtsc/core/core.externs.js +0 -0
- package/src/ngtsc/core/index.mjs +0 -10
- package/src/ngtsc/core/src/compiler.mjs +0 -908
- package/src/ngtsc/core/src/config.mjs +0 -15
- package/src/ngtsc/core/src/host.mjs +0 -229
- package/src/ngtsc/cycles/cycles.externs.js +0 -0
- package/src/ngtsc/cycles/index.mjs +0 -10
- package/src/ngtsc/cycles/src/analyzer.mjs +0 -60
- package/src/ngtsc/cycles/src/imports.mjs +0 -152
- package/src/ngtsc/diagnostics/diagnostics.externs.js +0 -0
- package/src/ngtsc/diagnostics/index.mjs +0 -11
- package/src/ngtsc/diagnostics/src/error.mjs +0 -51
- package/src/ngtsc/diagnostics/src/error_code.mjs +0 -198
- package/src/ngtsc/diagnostics/src/util.mjs +0 -21
- package/src/ngtsc/entry_point/entry_point.externs.js +0 -0
- package/src/ngtsc/entry_point/index.mjs +0 -12
- package/src/ngtsc/entry_point/src/generator.mjs +0 -35
- package/src/ngtsc/entry_point/src/logic.mjs +0 -35
- package/src/ngtsc/entry_point/src/private_export_checker.mjs +0 -122
- package/src/ngtsc/entry_point/src/reference_graph.mjs +0 -73
- package/src/ngtsc/file_system/file_system.externs.js +0 -0
- package/src/ngtsc/file_system/index.mjs +0 -13
- package/src/ngtsc/file_system/src/compiler_host.mjs +0 -64
- package/src/ngtsc/file_system/src/helpers.mjs +0 -99
- package/src/ngtsc/file_system/src/invalid_file_system.mjs +0 -95
- package/src/ngtsc/file_system/src/logical.mjs +0 -84
- package/src/ngtsc/file_system/src/node_js_file_system.mjs +0 -142
- package/src/ngtsc/file_system/src/types.mjs +0 -9
- package/src/ngtsc/file_system/src/util.mjs +0 -22
- package/src/ngtsc/file_system/testing/index.mjs +0 -13
- package/src/ngtsc/file_system/testing/src/mock_file_system.mjs +0 -293
- package/src/ngtsc/file_system/testing/src/mock_file_system_native.mjs +0 -57
- package/src/ngtsc/file_system/testing/src/mock_file_system_posix.mjs +0 -38
- package/src/ngtsc/file_system/testing/src/mock_file_system_windows.mjs +0 -38
- package/src/ngtsc/file_system/testing/src/test_helper.mjs +0 -108
- package/src/ngtsc/file_system/testing/testing.externs.js +0 -0
- package/src/ngtsc/imports/imports.externs.js +0 -0
- package/src/ngtsc/imports/index.mjs +0 -14
- package/src/ngtsc/imports/src/alias.mjs +0 -137
- package/src/ngtsc/imports/src/core.mjs +0 -78
- package/src/ngtsc/imports/src/default.mjs +0 -135
- package/src/ngtsc/imports/src/emitter.mjs +0 -266
- package/src/ngtsc/imports/src/find_export.mjs +0 -56
- package/src/ngtsc/imports/src/reexport.mjs +0 -9
- package/src/ngtsc/imports/src/references.mjs +0 -137
- package/src/ngtsc/imports/src/resolver.mjs +0 -24
- package/src/ngtsc/incremental/api.externs.js +0 -0
- package/src/ngtsc/incremental/api.mjs +0 -9
- package/src/ngtsc/incremental/incremental.externs.js +0 -0
- package/src/ngtsc/incremental/index.mjs +0 -12
- package/src/ngtsc/incremental/semantic_graph/index.mjs +0 -12
- package/src/ngtsc/incremental/semantic_graph/semantic_graph.externs.js +0 -0
- package/src/ngtsc/incremental/semantic_graph/src/api.mjs +0 -36
- package/src/ngtsc/incremental/semantic_graph/src/graph.mjs +0 -237
- package/src/ngtsc/incremental/semantic_graph/src/type_parameters.mjs +0 -40
- package/src/ngtsc/incremental/semantic_graph/src/util.mjs +0 -69
- package/src/ngtsc/incremental/src/dependency_tracking.mjs +0 -117
- package/src/ngtsc/incremental/src/incremental.mjs +0 -271
- package/src/ngtsc/incremental/src/noop.mjs +0 -13
- package/src/ngtsc/incremental/src/state.mjs +0 -17
- package/src/ngtsc/incremental/src/strategy.mjs +0 -76
- package/src/ngtsc/indexer/index.mjs +0 -11
- package/src/ngtsc/indexer/indexer.externs.js +0 -0
- package/src/ngtsc/indexer/src/api.mjs +0 -30
- package/src/ngtsc/indexer/src/context.mjs +0 -25
- package/src/ngtsc/indexer/src/template.mjs +0 -303
- package/src/ngtsc/indexer/src/transform.mjs +0 -51
- package/src/ngtsc/logging/index.mjs +0 -10
- package/src/ngtsc/logging/logging.externs.js +0 -0
- package/src/ngtsc/logging/src/console_logger.mjs +0 -43
- package/src/ngtsc/logging/src/logger.mjs +0 -15
- package/src/ngtsc/logging/testing/index.mjs +0 -9
- package/src/ngtsc/logging/testing/src/mock_logger.mjs +0 -32
- package/src/ngtsc/logging/testing/testing.externs.js +0 -0
- package/src/ngtsc/metadata/index.mjs +0 -15
- package/src/ngtsc/metadata/metadata.externs.js +0 -0
- package/src/ngtsc/metadata/src/api.mjs +0 -13
- package/src/ngtsc/metadata/src/dts.mjs +0 -143
- package/src/ngtsc/metadata/src/inheritance.mjs +0 -71
- package/src/ngtsc/metadata/src/property_mapping.mjs +0 -136
- package/src/ngtsc/metadata/src/registry.mjs +0 -80
- package/src/ngtsc/metadata/src/resource_registry.mjs +0 -81
- package/src/ngtsc/metadata/src/util.mjs +0 -200
- package/src/ngtsc/partial_evaluator/index.mjs +0 -12
- package/src/ngtsc/partial_evaluator/partial_evaluator.externs.js +0 -0
- package/src/ngtsc/partial_evaluator/src/builtin.mjs +0 -65
- package/src/ngtsc/partial_evaluator/src/diagnostics.mjs +0 -171
- package/src/ngtsc/partial_evaluator/src/dynamic.mjs +0 -86
- package/src/ngtsc/partial_evaluator/src/interface.mjs +0 -27
- package/src/ngtsc/partial_evaluator/src/interpreter.mjs +0 -683
- package/src/ngtsc/partial_evaluator/src/known_declaration.mjs +0 -43
- package/src/ngtsc/partial_evaluator/src/result.mjs +0 -50
- package/src/ngtsc/partial_evaluator/src/ts_helpers.mjs +0 -72
- package/src/ngtsc/perf/index.mjs +0 -11
- package/src/ngtsc/perf/perf.externs.js +0 -0
- package/src/ngtsc/perf/src/api.mjs +0 -278
- package/src/ngtsc/perf/src/clock.mjs +0 -15
- package/src/ngtsc/perf/src/noop.mjs +0 -21
- package/src/ngtsc/perf/src/recorder.mjs +0 -125
- package/src/ngtsc/program.mjs +0 -247
- package/src/ngtsc/program_driver/index.mjs +0 -10
- package/src/ngtsc/program_driver/program_driver.externs.js +0 -0
- package/src/ngtsc/program_driver/src/api.mjs +0 -22
- package/src/ngtsc/program_driver/src/ts_create_program_driver.mjs +0 -164
- package/src/ngtsc/reflection/index.mjs +0 -12
- package/src/ngtsc/reflection/reflection.externs.js +0 -0
- package/src/ngtsc/reflection/src/host.mjs +0 -73
- package/src/ngtsc/reflection/src/type_to_value.mjs +0 -243
- package/src/ngtsc/reflection/src/typescript.mjs +0 -608
- package/src/ngtsc/reflection/src/util.mjs +0 -21
- package/src/ngtsc/resource/index.mjs +0 -9
- package/src/ngtsc/resource/resource.externs.js +0 -0
- package/src/ngtsc/resource/src/loader.mjs +0 -242
- package/src/ngtsc/routing/index.mjs +0 -11
- package/src/ngtsc/routing/routing.externs.js +0 -0
- package/src/ngtsc/routing/src/analyzer.mjs +0 -69
- package/src/ngtsc/routing/src/lazy.mjs +0 -168
- package/src/ngtsc/routing/src/route.mjs +0 -51
- package/src/ngtsc/scope/index.mjs +0 -12
- package/src/ngtsc/scope/scope.externs.js +0 -0
- package/src/ngtsc/scope/src/api.mjs +0 -9
- package/src/ngtsc/scope/src/component_scope.mjs +0 -31
- package/src/ngtsc/scope/src/dependency.mjs +0 -134
- package/src/ngtsc/scope/src/local.mjs +0 -531
- package/src/ngtsc/scope/src/typecheck.mjs +0 -83
- package/src/ngtsc/shims/api.externs.js +0 -0
- package/src/ngtsc/shims/api.mjs +0 -2
- package/src/ngtsc/shims/index.mjs +0 -14
- package/src/ngtsc/shims/shims.externs.js +0 -0
- package/src/ngtsc/shims/src/adapter.mjs +0 -188
- package/src/ngtsc/shims/src/expando.mjs +0 -102
- package/src/ngtsc/shims/src/factory_generator.mjs +0 -265
- package/src/ngtsc/shims/src/reference_tagger.mjs +0 -67
- package/src/ngtsc/shims/src/summary_generator.mjs +0 -64
- package/src/ngtsc/shims/src/util.mjs +0 -26
- package/src/ngtsc/sourcemaps/index.mjs +0 -11
- package/src/ngtsc/sourcemaps/sourcemaps.externs.js +0 -0
- package/src/ngtsc/sourcemaps/src/content_origin.mjs +0 -35
- package/src/ngtsc/sourcemaps/src/raw_source_map.mjs +0 -2
- package/src/ngtsc/sourcemaps/src/segment_marker.mjs +0 -40
- package/src/ngtsc/sourcemaps/src/source_file.mjs +0 -459
- package/src/ngtsc/sourcemaps/src/source_file_loader.mjs +0 -213
- package/src/ngtsc/switch/index.mjs +0 -9
- package/src/ngtsc/switch/src/switch.mjs +0 -115
- package/src/ngtsc/switch/switch.externs.js +0 -0
- package/src/ngtsc/transform/index.mjs +0 -14
- package/src/ngtsc/transform/src/alias.mjs +0 -30
- package/src/ngtsc/transform/src/api.mjs +0 -63
- package/src/ngtsc/transform/src/compilation.mjs +0 -496
- package/src/ngtsc/transform/src/declaration.mjs +0 -182
- package/src/ngtsc/transform/src/trait.mjs +0 -95
- package/src/ngtsc/transform/src/transform.mjs +0 -298
- package/src/ngtsc/transform/src/utils.mjs +0 -57
- package/src/ngtsc/transform/transform.externs.js +0 -0
- package/src/ngtsc/translator/index.mjs +0 -14
- package/src/ngtsc/translator/src/api/ast_factory.mjs +0 -9
- package/src/ngtsc/translator/src/api/import_generator.mjs +0 -9
- package/src/ngtsc/translator/src/context.mjs +0 -24
- package/src/ngtsc/translator/src/import_manager.mjs +0 -48
- package/src/ngtsc/translator/src/translator.mjs +0 -317
- package/src/ngtsc/translator/src/type_translator.mjs +0 -204
- package/src/ngtsc/translator/src/typescript_ast_factory.mjs +0 -211
- package/src/ngtsc/translator/src/typescript_translator.mjs +0 -17
- package/src/ngtsc/translator/translator.externs.js +0 -0
- package/src/ngtsc/tsc_plugin.mjs +0 -98
- package/src/ngtsc/typecheck/api/api.externs.js +0 -0
- package/src/ngtsc/typecheck/api/api.mjs +0 -9
- package/src/ngtsc/typecheck/api/checker.mjs +0 -31
- package/src/ngtsc/typecheck/api/completion.mjs +0 -16
- package/src/ngtsc/typecheck/api/context.mjs +0 -9
- package/src/ngtsc/typecheck/api/index.mjs +0 -14
- package/src/ngtsc/typecheck/api/scope.mjs +0 -9
- package/src/ngtsc/typecheck/api/symbols.mjs +0 -22
- package/src/ngtsc/typecheck/diagnostics/diagnostics.externs.js +0 -0
- package/src/ngtsc/typecheck/diagnostics/index.mjs +0 -10
- package/src/ngtsc/typecheck/diagnostics/src/diagnostic.mjs +0 -99
- package/src/ngtsc/typecheck/diagnostics/src/id.mjs +0 -23
- package/src/ngtsc/typecheck/index.mjs +0 -12
- package/src/ngtsc/typecheck/src/checker.mjs +0 -591
- package/src/ngtsc/typecheck/src/comments.mjs +0 -159
- package/src/ngtsc/typecheck/src/completion.mjs +0 -155
- package/src/ngtsc/typecheck/src/context.mjs +0 -350
- package/src/ngtsc/typecheck/src/diagnostics.mjs +0 -95
- package/src/ngtsc/typecheck/src/dom.mjs +0 -68
- package/src/ngtsc/typecheck/src/environment.mjs +0 -146
- package/src/ngtsc/typecheck/src/expression.mjs +0 -412
- package/src/ngtsc/typecheck/src/line_mappings.mjs +0 -60
- package/src/ngtsc/typecheck/src/oob.mjs +0 -112
- package/src/ngtsc/typecheck/src/shim.mjs +0 -37
- package/src/ngtsc/typecheck/src/source.mjs +0 -74
- package/src/ngtsc/typecheck/src/tcb_util.mjs +0 -135
- package/src/ngtsc/typecheck/src/template_semantics.mjs +0 -34
- package/src/ngtsc/typecheck/src/template_symbol_builder.mjs +0 -472
- package/src/ngtsc/typecheck/src/ts_util.mjs +0 -157
- package/src/ngtsc/typecheck/src/type_check_block.mjs +0 -1770
- package/src/ngtsc/typecheck/src/type_check_file.mjs +0 -65
- package/src/ngtsc/typecheck/src/type_constructor.mjs +0 -227
- package/src/ngtsc/typecheck/src/type_emitter.mjs +0 -140
- package/src/ngtsc/typecheck/src/type_parameter_emitter.mjs +0 -80
- package/src/ngtsc/typecheck/typecheck.externs.js +0 -0
- package/src/ngtsc/util/src/path.mjs +0 -18
- package/src/ngtsc/util/src/typescript.mjs +0 -143
- package/src/ngtsc/util/src/visitor.mjs +0 -107
- package/src/ngtsc/util/util.externs.js +0 -0
- package/src/perform_compile.mjs +0 -275
- package/src/perform_watch.mjs +0 -247
- package/src/tooling.mjs +0 -32
- package/src/transformers/api.mjs +0 -27
- package/src/transformers/compiler_host.mjs +0 -593
- package/src/transformers/downlevel_decorators_transform.mjs +0 -507
- package/src/transformers/entry_points.mjs +0 -10
- package/src/transformers/inline_resources.mjs +0 -269
- package/src/transformers/lower_expressions.mjs +0 -336
- package/src/transformers/metadata_cache.mjs +0 -53
- package/src/transformers/metadata_reader.mjs +0 -104
- package/src/transformers/node_emitter.mjs +0 -606
- package/src/transformers/node_emitter_transform.mjs +0 -78
- package/src/transformers/patch_alias_reference_resolution.mjs +0 -109
- package/src/transformers/program.mjs +0 -935
- package/src/transformers/r3_metadata_transform.mjs +0 -46
- package/src/transformers/r3_transform.mjs +0 -29
- package/src/transformers/util.mjs +0 -89
- package/src/typescript_support.mjs +0 -57
- package/src/version.mjs +0 -15
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
import * as ts from 'typescript';
|
|
9
|
-
import { FatalLinkerError } from '../../fatal_linker_error';
|
|
10
|
-
import { assert } from '../utils';
|
|
11
|
-
/**
|
|
12
|
-
* This implementation of `AstHost` is able to get information from TypeScript AST nodes.
|
|
13
|
-
*
|
|
14
|
-
* This host is not actually used at runtime in the current code.
|
|
15
|
-
*
|
|
16
|
-
* It is implemented here to ensure that the `AstHost` abstraction is not unfairly skewed towards
|
|
17
|
-
* the Babel implementation. It could also provide a basis for a 3rd TypeScript compiler plugin to
|
|
18
|
-
* do linking in the future.
|
|
19
|
-
*/
|
|
20
|
-
export class TypeScriptAstHost {
|
|
21
|
-
constructor() {
|
|
22
|
-
this.isStringLiteral = ts.isStringLiteral;
|
|
23
|
-
this.isNumericLiteral = ts.isNumericLiteral;
|
|
24
|
-
this.isArrayLiteral = ts.isArrayLiteralExpression;
|
|
25
|
-
this.isObjectLiteral = ts.isObjectLiteralExpression;
|
|
26
|
-
this.isCallExpression = ts.isCallExpression;
|
|
27
|
-
}
|
|
28
|
-
getSymbolName(node) {
|
|
29
|
-
if (ts.isIdentifier(node)) {
|
|
30
|
-
return node.text;
|
|
31
|
-
}
|
|
32
|
-
else if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name)) {
|
|
33
|
-
return node.name.text;
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
parseStringLiteral(str) {
|
|
40
|
-
assert(str, this.isStringLiteral, 'a string literal');
|
|
41
|
-
return str.text;
|
|
42
|
-
}
|
|
43
|
-
parseNumericLiteral(num) {
|
|
44
|
-
assert(num, this.isNumericLiteral, 'a numeric literal');
|
|
45
|
-
return parseInt(num.text);
|
|
46
|
-
}
|
|
47
|
-
isBooleanLiteral(node) {
|
|
48
|
-
return isBooleanLiteral(node) || isMinifiedBooleanLiteral(node);
|
|
49
|
-
}
|
|
50
|
-
parseBooleanLiteral(bool) {
|
|
51
|
-
if (isBooleanLiteral(bool)) {
|
|
52
|
-
return bool.kind === ts.SyntaxKind.TrueKeyword;
|
|
53
|
-
}
|
|
54
|
-
else if (isMinifiedBooleanLiteral(bool)) {
|
|
55
|
-
return !(+bool.operand.text);
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
throw new FatalLinkerError(bool, 'Unsupported syntax, expected a boolean literal.');
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
parseArrayLiteral(array) {
|
|
62
|
-
assert(array, this.isArrayLiteral, 'an array literal');
|
|
63
|
-
return array.elements.map(element => {
|
|
64
|
-
assert(element, isNotEmptyElement, 'element in array not to be empty');
|
|
65
|
-
assert(element, isNotSpreadElement, 'element in array not to use spread syntax');
|
|
66
|
-
return element;
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
parseObjectLiteral(obj) {
|
|
70
|
-
assert(obj, this.isObjectLiteral, 'an object literal');
|
|
71
|
-
const result = new Map();
|
|
72
|
-
for (const property of obj.properties) {
|
|
73
|
-
assert(property, ts.isPropertyAssignment, 'a property assignment');
|
|
74
|
-
assert(property.name, isPropertyName, 'a property name');
|
|
75
|
-
result.set(property.name.text, property.initializer);
|
|
76
|
-
}
|
|
77
|
-
return result;
|
|
78
|
-
}
|
|
79
|
-
isFunctionExpression(node) {
|
|
80
|
-
return ts.isFunctionExpression(node) || ts.isArrowFunction(node);
|
|
81
|
-
}
|
|
82
|
-
parseReturnValue(fn) {
|
|
83
|
-
assert(fn, this.isFunctionExpression, 'a function');
|
|
84
|
-
if (!ts.isBlock(fn.body)) {
|
|
85
|
-
// it is a simple array function expression: `(...) => expr`
|
|
86
|
-
return fn.body;
|
|
87
|
-
}
|
|
88
|
-
// it is a function (arrow or normal) with a body. E.g.:
|
|
89
|
-
// * `(...) => { stmt; ... }`
|
|
90
|
-
// * `function(...) { stmt; ... }`
|
|
91
|
-
if (fn.body.statements.length !== 1) {
|
|
92
|
-
throw new FatalLinkerError(fn.body, 'Unsupported syntax, expected a function body with a single return statement.');
|
|
93
|
-
}
|
|
94
|
-
const stmt = fn.body.statements[0];
|
|
95
|
-
assert(stmt, ts.isReturnStatement, 'a function body with a single return statement');
|
|
96
|
-
if (stmt.expression === undefined) {
|
|
97
|
-
throw new FatalLinkerError(stmt, 'Unsupported syntax, expected function to return a value.');
|
|
98
|
-
}
|
|
99
|
-
return stmt.expression;
|
|
100
|
-
}
|
|
101
|
-
parseCallee(call) {
|
|
102
|
-
assert(call, ts.isCallExpression, 'a call expression');
|
|
103
|
-
return call.expression;
|
|
104
|
-
}
|
|
105
|
-
parseArguments(call) {
|
|
106
|
-
assert(call, ts.isCallExpression, 'a call expression');
|
|
107
|
-
return call.arguments.map(arg => {
|
|
108
|
-
assert(arg, isNotSpreadElement, 'argument not to use spread syntax');
|
|
109
|
-
return arg;
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
getRange(node) {
|
|
113
|
-
const file = node.getSourceFile();
|
|
114
|
-
if (file === undefined) {
|
|
115
|
-
throw new FatalLinkerError(node, 'Unable to read range for node - it is missing parent information.');
|
|
116
|
-
}
|
|
117
|
-
const startPos = node.getStart();
|
|
118
|
-
const endPos = node.getEnd();
|
|
119
|
-
const { line: startLine, character: startCol } = ts.getLineAndCharacterOfPosition(file, startPos);
|
|
120
|
-
return { startLine, startCol, startPos, endPos };
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Return true if the expression does not represent an empty element in an array literal.
|
|
125
|
-
* For example in `[,foo]` the first element is "empty".
|
|
126
|
-
*/
|
|
127
|
-
function isNotEmptyElement(e) {
|
|
128
|
-
return !ts.isOmittedExpression(e);
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Return true if the expression is not a spread element of an array literal.
|
|
132
|
-
* For example in `[x, ...rest]` the `...rest` expression is a spread element.
|
|
133
|
-
*/
|
|
134
|
-
function isNotSpreadElement(e) {
|
|
135
|
-
return !ts.isSpreadElement(e);
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Return true if the expression can be considered a text based property name.
|
|
139
|
-
*/
|
|
140
|
-
function isPropertyName(e) {
|
|
141
|
-
return ts.isIdentifier(e) || ts.isStringLiteral(e) || ts.isNumericLiteral(e);
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Return true if the node is either `true` or `false` literals.
|
|
145
|
-
*/
|
|
146
|
-
function isBooleanLiteral(node) {
|
|
147
|
-
return node.kind === ts.SyntaxKind.TrueKeyword || node.kind === ts.SyntaxKind.FalseKeyword;
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Return true if the node is either `!0` or `!1`.
|
|
151
|
-
*/
|
|
152
|
-
function isMinifiedBooleanLiteral(node) {
|
|
153
|
-
return ts.isPrefixUnaryExpression(node) && node.operator === ts.SyntaxKind.ExclamationToken &&
|
|
154
|
-
ts.isNumericLiteral(node.operand) && (node.operand.text === '0' || node.operand.text === '1');
|
|
155
|
-
}
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdF9hc3RfaG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9saW5rZXIvc3JjL2FzdC90eXBlc2NyaXB0L3R5cGVzY3JpcHRfYXN0X2hvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFakMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFMUQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUdoQzs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sT0FBTyxpQkFBaUI7SUFBOUI7UUFXRSxvQkFBZSxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7UUFPckMscUJBQWdCLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO1FBcUJ2QyxtQkFBYyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztRQVc3QyxvQkFBZSxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztRQTBDL0MscUJBQWdCLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO0lBMEJ6QyxDQUFDO0lBckhDLGFBQWEsQ0FBQyxJQUFtQjtRQUMvQixJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDekIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ2xCO2FBQU0sSUFBSSxFQUFFLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDNUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUN2QjthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFJRCxrQkFBa0IsQ0FBQyxHQUFrQjtRQUNuQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUN0RCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUM7SUFDbEIsQ0FBQztJQUlELG1CQUFtQixDQUFDLEdBQWtCO1FBQ3BDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDeEQsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFtQjtRQUNsQyxPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxJQUFtQjtRQUNyQyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztTQUNoRDthQUFNLElBQUksd0JBQXdCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDekMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCO2FBQU07WUFDTCxNQUFNLElBQUksZ0JBQWdCLENBQUMsSUFBSSxFQUFFLGlEQUFpRCxDQUFDLENBQUM7U0FDckY7SUFDSCxDQUFDO0lBSUQsaUJBQWlCLENBQUMsS0FBb0I7UUFDcEMsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDdkQsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNsQyxNQUFNLENBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGtDQUFrQyxDQUFDLENBQUM7WUFDdkUsTUFBTSxDQUFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSwyQ0FBMkMsQ0FBQyxDQUFDO1lBQ2pGLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUlELGtCQUFrQixDQUFDLEdBQWtCO1FBQ25DLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBRXZELE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxFQUF5QixDQUFDO1FBQ2hELEtBQUssTUFBTSxRQUFRLElBQUksR0FBRyxDQUFDLFVBQVUsRUFBRTtZQUNyQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1lBQ25FLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3pELE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3REO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQW1CO1FBQ3RDLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQWlCO1FBQ2hDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4Qiw0REFBNEQ7WUFDNUQsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDO1NBQ2hCO1FBRUQsd0RBQXdEO1FBQ3hELDZCQUE2QjtRQUM3QixrQ0FBa0M7UUFFbEMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ25DLE1BQU0sSUFBSSxnQkFBZ0IsQ0FDdEIsRUFBRSxDQUFDLElBQUksRUFBRSw4RUFBOEUsQ0FBQyxDQUFDO1NBQzlGO1FBQ0QsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsZ0RBQWdELENBQUMsQ0FBQztRQUNyRixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFO1lBQ2pDLE1BQU0sSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsMERBQTBELENBQUMsQ0FBQztTQUM5RjtRQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBSUQsV0FBVyxDQUFDLElBQW1CO1FBQzdCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDdkQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBbUI7UUFDaEMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQUN2RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzlCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLEVBQUUsbUNBQW1DLENBQUMsQ0FBQztZQUNyRSxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFtQjtRQUMxQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDbEMsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ3RCLE1BQU0sSUFBSSxnQkFBZ0IsQ0FDdEIsSUFBSSxFQUFFLG1FQUFtRSxDQUFDLENBQUM7U0FDaEY7UUFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdCLE1BQU0sRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUMsR0FBRyxFQUFFLENBQUMsNkJBQTZCLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2hHLE9BQU8sRUFBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUMsQ0FBQztJQUNqRCxDQUFDO0NBQ0Y7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLGlCQUFpQixDQUFDLENBQ29CO0lBQzdDLE9BQU8sQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMsa0JBQWtCLENBQUMsQ0FBaUM7SUFDM0QsT0FBTyxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxjQUFjLENBQUMsQ0FBa0I7SUFDeEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9FLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsZ0JBQWdCLENBQUMsSUFBbUI7SUFDM0MsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7QUFDN0YsQ0FBQztBQUlEOztHQUVHO0FBQ0gsU0FBUyx3QkFBd0IsQ0FBQyxJQUFtQjtJQUNuRCxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCO1FBQ3ZGLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDcEcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHtGYXRhbExpbmtlckVycm9yfSBmcm9tICcuLi8uLi9mYXRhbF9saW5rZXJfZXJyb3InO1xuaW1wb3J0IHtBc3RIb3N0LCBSYW5nZX0gZnJvbSAnLi4vYXN0X2hvc3QnO1xuaW1wb3J0IHthc3NlcnR9IGZyb20gJy4uL3V0aWxzJztcblxuXG4vKipcbiAqIFRoaXMgaW1wbGVtZW50YXRpb24gb2YgYEFzdEhvc3RgIGlzIGFibGUgdG8gZ2V0IGluZm9ybWF0aW9uIGZyb20gVHlwZVNjcmlwdCBBU1Qgbm9kZXMuXG4gKlxuICogVGhpcyBob3N0IGlzIG5vdCBhY3R1YWxseSB1c2VkIGF0IHJ1bnRpbWUgaW4gdGhlIGN1cnJlbnQgY29kZS5cbiAqXG4gKiBJdCBpcyBpbXBsZW1lbnRlZCBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSBgQXN0SG9zdGAgYWJzdHJhY3Rpb24gaXMgbm90IHVuZmFpcmx5IHNrZXdlZCB0b3dhcmRzXG4gKiB0aGUgQmFiZWwgaW1wbGVtZW50YXRpb24uIEl0IGNvdWxkIGFsc28gcHJvdmlkZSBhIGJhc2lzIGZvciBhIDNyZCBUeXBlU2NyaXB0IGNvbXBpbGVyIHBsdWdpbiB0b1xuICogZG8gbGlua2luZyBpbiB0aGUgZnV0dXJlLlxuICovXG5leHBvcnQgY2xhc3MgVHlwZVNjcmlwdEFzdEhvc3QgaW1wbGVtZW50cyBBc3RIb3N0PHRzLkV4cHJlc3Npb24+IHtcbiAgZ2V0U3ltYm9sTmFtZShub2RlOiB0cy5FeHByZXNzaW9uKTogc3RyaW5nfG51bGwge1xuICAgIGlmICh0cy5pc0lkZW50aWZpZXIobm9kZSkpIHtcbiAgICAgIHJldHVybiBub2RlLnRleHQ7XG4gICAgfSBlbHNlIGlmICh0cy5pc1Byb3BlcnR5QWNjZXNzRXhwcmVzc2lvbihub2RlKSAmJiB0cy5pc0lkZW50aWZpZXIobm9kZS5uYW1lKSkge1xuICAgICAgcmV0dXJuIG5vZGUubmFtZS50ZXh0O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBpc1N0cmluZ0xpdGVyYWwgPSB0cy5pc1N0cmluZ0xpdGVyYWw7XG5cbiAgcGFyc2VTdHJpbmdMaXRlcmFsKHN0cjogdHMuRXhwcmVzc2lvbik6IHN0cmluZyB7XG4gICAgYXNzZXJ0KHN0ciwgdGhpcy5pc1N0cmluZ0xpdGVyYWwsICdhIHN0cmluZyBsaXRlcmFsJyk7XG4gICAgcmV0dXJuIHN0ci50ZXh0O1xuICB9XG5cbiAgaXNOdW1lcmljTGl0ZXJhbCA9IHRzLmlzTnVtZXJpY0xpdGVyYWw7XG5cbiAgcGFyc2VOdW1lcmljTGl0ZXJhbChudW06IHRzLkV4cHJlc3Npb24pOiBudW1iZXIge1xuICAgIGFzc2VydChudW0sIHRoaXMuaXNOdW1lcmljTGl0ZXJhbCwgJ2EgbnVtZXJpYyBsaXRlcmFsJyk7XG4gICAgcmV0dXJuIHBhcnNlSW50KG51bS50ZXh0KTtcbiAgfVxuXG4gIGlzQm9vbGVhbkxpdGVyYWwobm9kZTogdHMuRXhwcmVzc2lvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0Jvb2xlYW5MaXRlcmFsKG5vZGUpIHx8IGlzTWluaWZpZWRCb29sZWFuTGl0ZXJhbChub2RlKTtcbiAgfVxuXG4gIHBhcnNlQm9vbGVhbkxpdGVyYWwoYm9vbDogdHMuRXhwcmVzc2lvbik6IGJvb2xlYW4ge1xuICAgIGlmIChpc0Jvb2xlYW5MaXRlcmFsKGJvb2wpKSB7XG4gICAgICByZXR1cm4gYm9vbC5raW5kID09PSB0cy5TeW50YXhLaW5kLlRydWVLZXl3b3JkO1xuICAgIH0gZWxzZSBpZiAoaXNNaW5pZmllZEJvb2xlYW5MaXRlcmFsKGJvb2wpKSB7XG4gICAgICByZXR1cm4gISgrYm9vbC5vcGVyYW5kLnRleHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRmF0YWxMaW5rZXJFcnJvcihib29sLCAnVW5zdXBwb3J0ZWQgc3ludGF4LCBleHBlY3RlZCBhIGJvb2xlYW4gbGl0ZXJhbC4nKTtcbiAgICB9XG4gIH1cblxuICBpc0FycmF5TGl0ZXJhbCA9IHRzLmlzQXJyYXlMaXRlcmFsRXhwcmVzc2lvbjtcblxuICBwYXJzZUFycmF5TGl0ZXJhbChhcnJheTogdHMuRXhwcmVzc2lvbik6IHRzLkV4cHJlc3Npb25bXSB7XG4gICAgYXNzZXJ0KGFycmF5LCB0aGlzLmlzQXJyYXlMaXRlcmFsLCAnYW4gYXJyYXkgbGl0ZXJhbCcpO1xuICAgIHJldHVybiBhcnJheS5lbGVtZW50cy5tYXAoZWxlbWVudCA9PiB7XG4gICAgICBhc3NlcnQoZWxlbWVudCwgaXNOb3RFbXB0eUVsZW1lbnQsICdlbGVtZW50IGluIGFycmF5IG5vdCB0byBiZSBlbXB0eScpO1xuICAgICAgYXNzZXJ0KGVsZW1lbnQsIGlzTm90U3ByZWFkRWxlbWVudCwgJ2VsZW1lbnQgaW4gYXJyYXkgbm90IHRvIHVzZSBzcHJlYWQgc3ludGF4Jyk7XG4gICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9KTtcbiAgfVxuXG4gIGlzT2JqZWN0TGl0ZXJhbCA9IHRzLmlzT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb247XG5cbiAgcGFyc2VPYmplY3RMaXRlcmFsKG9iajogdHMuRXhwcmVzc2lvbik6IE1hcDxzdHJpbmcsIHRzLkV4cHJlc3Npb24+IHtcbiAgICBhc3NlcnQob2JqLCB0aGlzLmlzT2JqZWN0TGl0ZXJhbCwgJ2FuIG9iamVjdCBsaXRlcmFsJyk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBuZXcgTWFwPHN0cmluZywgdHMuRXhwcmVzc2lvbj4oKTtcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIG9iai5wcm9wZXJ0aWVzKSB7XG4gICAgICBhc3NlcnQocHJvcGVydHksIHRzLmlzUHJvcGVydHlBc3NpZ25tZW50LCAnYSBwcm9wZXJ0eSBhc3NpZ25tZW50Jyk7XG4gICAgICBhc3NlcnQocHJvcGVydHkubmFtZSwgaXNQcm9wZXJ0eU5hbWUsICdhIHByb3BlcnR5IG5hbWUnKTtcbiAgICAgIHJlc3VsdC5zZXQocHJvcGVydHkubmFtZS50ZXh0LCBwcm9wZXJ0eS5pbml0aWFsaXplcik7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBpc0Z1bmN0aW9uRXhwcmVzc2lvbihub2RlOiB0cy5FeHByZXNzaW9uKTogbm9kZSBpcyB0cy5GdW5jdGlvbkV4cHJlc3Npb258dHMuQXJyb3dGdW5jdGlvbiB7XG4gICAgcmV0dXJuIHRzLmlzRnVuY3Rpb25FeHByZXNzaW9uKG5vZGUpIHx8IHRzLmlzQXJyb3dGdW5jdGlvbihub2RlKTtcbiAgfVxuXG4gIHBhcnNlUmV0dXJuVmFsdWUoZm46IHRzLkV4cHJlc3Npb24pOiB0cy5FeHByZXNzaW9uIHtcbiAgICBhc3NlcnQoZm4sIHRoaXMuaXNGdW5jdGlvbkV4cHJlc3Npb24sICdhIGZ1bmN0aW9uJyk7XG4gICAgaWYgKCF0cy5pc0Jsb2NrKGZuLmJvZHkpKSB7XG4gICAgICAvLyBpdCBpcyBhIHNpbXBsZSBhcnJheSBmdW5jdGlvbiBleHByZXNzaW9uOiBgKC4uLikgPT4gZXhwcmBcbiAgICAgIHJldHVybiBmbi5ib2R5O1xuICAgIH1cblxuICAgIC8vIGl0IGlzIGEgZnVuY3Rpb24gKGFycm93IG9yIG5vcm1hbCkgd2l0aCBhIGJvZHkuIEUuZy46XG4gICAgLy8gKiBgKC4uLikgPT4geyBzdG10OyAuLi4gfWBcbiAgICAvLyAqIGBmdW5jdGlvbiguLi4pIHsgc3RtdDsgLi4uIH1gXG5cbiAgICBpZiAoZm4uYm9keS5zdGF0ZW1lbnRzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEZhdGFsTGlua2VyRXJyb3IoXG4gICAgICAgICAgZm4uYm9keSwgJ1Vuc3VwcG9ydGVkIHN5bnRheCwgZXhwZWN0ZWQgYSBmdW5jdGlvbiBib2R5IHdpdGggYSBzaW5nbGUgcmV0dXJuIHN0YXRlbWVudC4nKTtcbiAgICB9XG4gICAgY29uc3Qgc3RtdCA9IGZuLmJvZHkuc3RhdGVtZW50c1swXTtcbiAgICBhc3NlcnQoc3RtdCwgdHMuaXNSZXR1cm5TdGF0ZW1lbnQsICdhIGZ1bmN0aW9uIGJvZHkgd2l0aCBhIHNpbmdsZSByZXR1cm4gc3RhdGVtZW50Jyk7XG4gICAgaWYgKHN0bXQuZXhwcmVzc2lvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRmF0YWxMaW5rZXJFcnJvcihzdG10LCAnVW5zdXBwb3J0ZWQgc3ludGF4LCBleHBlY3RlZCBmdW5jdGlvbiB0byByZXR1cm4gYSB2YWx1ZS4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RtdC5leHByZXNzaW9uO1xuICB9XG5cbiAgaXNDYWxsRXhwcmVzc2lvbiA9IHRzLmlzQ2FsbEV4cHJlc3Npb247XG5cbiAgcGFyc2VDYWxsZWUoY2FsbDogdHMuRXhwcmVzc2lvbik6IHRzLkV4cHJlc3Npb24ge1xuICAgIGFzc2VydChjYWxsLCB0cy5pc0NhbGxFeHByZXNzaW9uLCAnYSBjYWxsIGV4cHJlc3Npb24nKTtcbiAgICByZXR1cm4gY2FsbC5leHByZXNzaW9uO1xuICB9XG5cbiAgcGFyc2VBcmd1bWVudHMoY2FsbDogdHMuRXhwcmVzc2lvbik6IHRzLkV4cHJlc3Npb25bXSB7XG4gICAgYXNzZXJ0KGNhbGwsIHRzLmlzQ2FsbEV4cHJlc3Npb24sICdhIGNhbGwgZXhwcmVzc2lvbicpO1xuICAgIHJldHVybiBjYWxsLmFyZ3VtZW50cy5tYXAoYXJnID0+IHtcbiAgICAgIGFzc2VydChhcmcsIGlzTm90U3ByZWFkRWxlbWVudCwgJ2FyZ3VtZW50IG5vdCB0byB1c2Ugc3ByZWFkIHN5bnRheCcpO1xuICAgICAgcmV0dXJuIGFyZztcbiAgICB9KTtcbiAgfVxuXG4gIGdldFJhbmdlKG5vZGU6IHRzLkV4cHJlc3Npb24pOiBSYW5nZSB7XG4gICAgY29uc3QgZmlsZSA9IG5vZGUuZ2V0U291cmNlRmlsZSgpO1xuICAgIGlmIChmaWxlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBGYXRhbExpbmtlckVycm9yKFxuICAgICAgICAgIG5vZGUsICdVbmFibGUgdG8gcmVhZCByYW5nZSBmb3Igbm9kZSAtIGl0IGlzIG1pc3NpbmcgcGFyZW50IGluZm9ybWF0aW9uLicpO1xuICAgIH1cbiAgICBjb25zdCBzdGFydFBvcyA9IG5vZGUuZ2V0U3RhcnQoKTtcbiAgICBjb25zdCBlbmRQb3MgPSBub2RlLmdldEVuZCgpO1xuICAgIGNvbnN0IHtsaW5lOiBzdGFydExpbmUsIGNoYXJhY3Rlcjogc3RhcnRDb2x9ID0gdHMuZ2V0TGluZUFuZENoYXJhY3Rlck9mUG9zaXRpb24oZmlsZSwgc3RhcnRQb3MpO1xuICAgIHJldHVybiB7c3RhcnRMaW5lLCBzdGFydENvbCwgc3RhcnRQb3MsIGVuZFBvc307XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZXhwcmVzc2lvbiBkb2VzIG5vdCByZXByZXNlbnQgYW4gZW1wdHkgZWxlbWVudCBpbiBhbiBhcnJheSBsaXRlcmFsLlxuICogRm9yIGV4YW1wbGUgaW4gYFssZm9vXWAgdGhlIGZpcnN0IGVsZW1lbnQgaXMgXCJlbXB0eVwiLlxuICovXG5mdW5jdGlvbiBpc05vdEVtcHR5RWxlbWVudChlOiB0cy5FeHByZXNzaW9ufHRzLlNwcmVhZEVsZW1lbnR8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0cy5PbWl0dGVkRXhwcmVzc2lvbik6IGUgaXMgdHMuRXhwcmVzc2lvbnx0cy5TcHJlYWRFbGVtZW50IHtcbiAgcmV0dXJuICF0cy5pc09taXR0ZWRFeHByZXNzaW9uKGUpO1xufVxuXG4vKipcbiAqIFJldHVybiB0cnVlIGlmIHRoZSBleHByZXNzaW9uIGlzIG5vdCBhIHNwcmVhZCBlbGVtZW50IG9mIGFuIGFycmF5IGxpdGVyYWwuXG4gKiBGb3IgZXhhbXBsZSBpbiBgW3gsIC4uLnJlc3RdYCB0aGUgYC4uLnJlc3RgIGV4cHJlc3Npb24gaXMgYSBzcHJlYWQgZWxlbWVudC5cbiAqL1xuZnVuY3Rpb24gaXNOb3RTcHJlYWRFbGVtZW50KGU6IHRzLkV4cHJlc3Npb258dHMuU3ByZWFkRWxlbWVudCk6IGUgaXMgdHMuRXhwcmVzc2lvbiB7XG4gIHJldHVybiAhdHMuaXNTcHJlYWRFbGVtZW50KGUpO1xufVxuXG4vKipcbiAqIFJldHVybiB0cnVlIGlmIHRoZSBleHByZXNzaW9uIGNhbiBiZSBjb25zaWRlcmVkIGEgdGV4dCBiYXNlZCBwcm9wZXJ0eSBuYW1lLlxuICovXG5mdW5jdGlvbiBpc1Byb3BlcnR5TmFtZShlOiB0cy5Qcm9wZXJ0eU5hbWUpOiBlIGlzIHRzLklkZW50aWZpZXJ8dHMuU3RyaW5nTGl0ZXJhbHx0cy5OdW1lcmljTGl0ZXJhbCB7XG4gIHJldHVybiB0cy5pc0lkZW50aWZpZXIoZSkgfHwgdHMuaXNTdHJpbmdMaXRlcmFsKGUpIHx8IHRzLmlzTnVtZXJpY0xpdGVyYWwoZSk7XG59XG5cbi8qKlxuICogUmV0dXJuIHRydWUgaWYgdGhlIG5vZGUgaXMgZWl0aGVyIGB0cnVlYCBvciBgZmFsc2VgIGxpdGVyYWxzLlxuICovXG5mdW5jdGlvbiBpc0Jvb2xlYW5MaXRlcmFsKG5vZGU6IHRzLkV4cHJlc3Npb24pOiBub2RlIGlzIHRzLlRydWVMaXRlcmFsfHRzLkZhbHNlTGl0ZXJhbCB7XG4gIHJldHVybiBub2RlLmtpbmQgPT09IHRzLlN5bnRheEtpbmQuVHJ1ZUtleXdvcmQgfHwgbm9kZS5raW5kID09PSB0cy5TeW50YXhLaW5kLkZhbHNlS2V5d29yZDtcbn1cblxudHlwZSBNaW5pZmllZEJvb2xlYW5MaXRlcmFsID0gdHMuUHJlZml4VW5hcnlFeHByZXNzaW9uJntvcGVyYW5kOiB0cy5OdW1lcmljTGl0ZXJhbH07XG5cbi8qKlxuICogUmV0dXJuIHRydWUgaWYgdGhlIG5vZGUgaXMgZWl0aGVyIGAhMGAgb3IgYCExYC5cbiAqL1xuZnVuY3Rpb24gaXNNaW5pZmllZEJvb2xlYW5MaXRlcmFsKG5vZGU6IHRzLkV4cHJlc3Npb24pOiBub2RlIGlzIE1pbmlmaWVkQm9vbGVhbkxpdGVyYWwge1xuICByZXR1cm4gdHMuaXNQcmVmaXhVbmFyeUV4cHJlc3Npb24obm9kZSkgJiYgbm9kZS5vcGVyYXRvciA9PT0gdHMuU3ludGF4S2luZC5FeGNsYW1hdGlvblRva2VuICYmXG4gICAgICB0cy5pc051bWVyaWNMaXRlcmFsKG5vZGUub3BlcmFuZCkgJiYgKG5vZGUub3BlcmFuZC50ZXh0ID09PSAnMCcgfHwgbm9kZS5vcGVyYW5kLnRleHQgPT09ICcxJyk7XG59XG4iXX0=
|
package/linker/src/ast/utils.mjs
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
import { FatalLinkerError } from '../fatal_linker_error';
|
|
9
|
-
/**
|
|
10
|
-
* Assert that the given `node` is of the type guarded by the `predicate` function.
|
|
11
|
-
*/
|
|
12
|
-
export function assert(node, predicate, expected) {
|
|
13
|
-
if (!predicate(node)) {
|
|
14
|
-
throw new FatalLinkerError(node, `Unsupported syntax, expected ${expected}.`);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL3NyYy9hc3QvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFdkQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsTUFBTSxDQUNsQixJQUFPLEVBQUUsU0FBaUMsRUFBRSxRQUFnQjtJQUM5RCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3BCLE1BQU0sSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsZ0NBQWdDLFFBQVEsR0FBRyxDQUFDLENBQUM7S0FDL0U7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge0ZhdGFsTGlua2VyRXJyb3J9IGZyb20gJy4uL2ZhdGFsX2xpbmtlcl9lcnJvcic7XG5cbi8qKlxuICogQXNzZXJ0IHRoYXQgdGhlIGdpdmVuIGBub2RlYCBpcyBvZiB0aGUgdHlwZSBndWFyZGVkIGJ5IHRoZSBgcHJlZGljYXRlYCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydDxULCBLIGV4dGVuZHMgVD4oXG4gICAgbm9kZTogVCwgcHJlZGljYXRlOiAobm9kZTogVCkgPT4gbm9kZSBpcyBLLCBleHBlY3RlZDogc3RyaW5nKTogYXNzZXJ0cyBub2RlIGlzIEsge1xuICBpZiAoIXByZWRpY2F0ZShub2RlKSkge1xuICAgIHRocm93IG5ldyBGYXRhbExpbmtlckVycm9yKG5vZGUsIGBVbnN1cHBvcnRlZCBzeW50YXgsIGV4cGVjdGVkICR7ZXhwZWN0ZWR9LmApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,30 +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
|
-
/**
|
|
9
|
-
* An unrecoverable error during linking.
|
|
10
|
-
*/
|
|
11
|
-
export class FatalLinkerError extends Error {
|
|
12
|
-
/**
|
|
13
|
-
* Create a new FatalLinkerError.
|
|
14
|
-
*
|
|
15
|
-
* @param node The AST node where the error occurred.
|
|
16
|
-
* @param message A description of the error.
|
|
17
|
-
*/
|
|
18
|
-
constructor(node, message) {
|
|
19
|
-
super(message);
|
|
20
|
-
this.node = node;
|
|
21
|
-
this.type = 'FatalLinkerError';
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Whether the given object `e` is a FatalLinkerError.
|
|
26
|
-
*/
|
|
27
|
-
export function isFatalLinkerError(e) {
|
|
28
|
-
return e && e.type === 'FatalLinkerError';
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmF0YWxfbGlua2VyX2Vycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL2xpbmtlci9zcmMvZmF0YWxfbGlua2VyX2Vycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVIOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGdCQUFpQixTQUFRLEtBQUs7SUFHekM7Ozs7O09BS0c7SUFDSCxZQUFtQixJQUFhLEVBQUUsT0FBZTtRQUMvQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFERSxTQUFJLEdBQUosSUFBSSxDQUFTO1FBUnZCLFNBQUksR0FBRyxrQkFBa0IsQ0FBQztJQVVuQyxDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxDQUFNO0lBQ3ZDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssa0JBQWtCLENBQUM7QUFDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEFuIHVucmVjb3ZlcmFibGUgZXJyb3IgZHVyaW5nIGxpbmtpbmcuXG4gKi9cbmV4cG9ydCBjbGFzcyBGYXRhbExpbmtlckVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICByZWFkb25seSB0eXBlID0gJ0ZhdGFsTGlua2VyRXJyb3InO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgRmF0YWxMaW5rZXJFcnJvci5cbiAgICpcbiAgICogQHBhcmFtIG5vZGUgVGhlIEFTVCBub2RlIHdoZXJlIHRoZSBlcnJvciBvY2N1cnJlZC5cbiAgICogQHBhcmFtIG1lc3NhZ2UgQSBkZXNjcmlwdGlvbiBvZiB0aGUgZXJyb3IuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgbm9kZTogdW5rbm93biwgbWVzc2FnZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRoZSBnaXZlbiBvYmplY3QgYGVgIGlzIGEgRmF0YWxMaW5rZXJFcnJvci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRmF0YWxMaW5rZXJFcnJvcihlOiBhbnkpOiBlIGlzIEZhdGFsTGlua2VyRXJyb3Ige1xuICByZXR1cm4gZSAmJiBlLnR5cGUgPT09ICdGYXRhbExpbmtlckVycm9yJztcbn1cbiJdfQ==
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
export {};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjbGFyYXRpb25fc2NvcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL3NyYy9maWxlX2xpbmtlci9kZWNsYXJhdGlvbl9zY29wZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBUaGlzIGludGVyZmFjZSByZXByZXNlbnRzIHRoZSBsZXhpY2FsIHNjb3BlIG9mIGEgcGFydGlhbCBkZWNsYXJhdGlvbiBpbiB0aGUgc291cmNlIGNvZGUuXG4gKlxuICogRm9yIGV4YW1wbGUsIGlmIHlvdSBoYWQgdGhlIGZvbGxvd2luZyBjb2RlOlxuICpcbiAqIGBgYFxuICogZnVuY3Rpb24gZm9vKCkge1xuICogICBmdW5jdGlvbiBiYXIgKCkge1xuICogICAgIMm1ybVuZ0RlY2xhcmVEaXJlY3RpdmUoey4uLn0pO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBUaGUgYERlY2xhcmF0aW9uU2NvcGVgIG9mIHRoZSBgybXJtW5nRGVjbGFyZURpcmVjdGl2ZSgpYCBjYWxsIGlzIHRoZSBib2R5IG9mIHRoZSBgYmFyKClgIGZ1bmN0aW9uLlxuICpcbiAqIFRoZSBgRmlsZUxpbmtlcmAgdXNlcyB0aGlzIG9iamVjdCB0byBpZGVudGlmeSB0aGUgbGV4aWNhbCBzY29wZSBvZiBhbnkgY29uc3RhbnQgc3RhdGVtZW50cyB0aGF0XG4gKiBtaWdodCBiZSBnZW5lcmF0ZWQgYnkgdGhlIGxpbmtpbmcgcHJvY2VzcyAoaS5lLiB3aGVyZSB0aGUgYENvbnN0YW50UG9vbGAgbGl2ZXMgZm9yIGEgc2V0IG9mXG4gKiBwYXJ0aWFsIGxpbmtlcnMpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlY2xhcmF0aW9uU2NvcGU8VFNoYXJlZENvbnN0YW50U2NvcGUsIFRFeHByZXNzaW9uPiB7XG4gIC8qKlxuICAgKiBHZXQgYSBgVFNoYXJlZENvbnN0YW50U2NvcGVgIG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlZmVyZW5jZSB0aGUgbGV4aWNhbCBzY29wZSB3aGVyZSBhbnlcbiAgICogc2hhcmVkIGNvbnN0YW50IHN0YXRlbWVudHMgd291bGQgYmUgaW5zZXJ0ZWQuXG4gICAqXG4gICAqIFRoaXMgb2JqZWN0IGlzIGdlbmVyaWMgYmVjYXVzZSBkaWZmZXJlbnQgQVNUIGltcGxlbWVudGF0aW9ucyB3aWxsIG5lZWQgZGlmZmVyZW50XG4gICAqIGBUQ29uc3RhbnRTY29wZWAgdHlwZXMgdG8gYmUgYWJsZSB0byBpbnNlcnQgc2hhcmVkIGNvbnN0YW50IHN0YXRlbWVudHMuIEZvciBleGFtcGxlIGluIEJhYmVsXG4gICAqIHRoaXMgd291bGQgYmUgYSBgTm9kZVBhdGhgIG9iamVjdDsgaW4gVFMgaXQgd291bGQganVzdCBiZSBhIGBOb2RlYCBvYmplY3QuXG4gICAqXG4gICAqIElmIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBmaW5kIHN1Y2ggYSBzaGFyZWQgc2NvcGUsIHRoZW4gY29uc3RhbnQgc3RhdGVtZW50cyB3aWxsIGJlIHdyYXBwZWQgdXBcbiAgICogd2l0aCB0aGVpciBnZW5lcmF0ZWQgbGlua2VkIGRlZmluaXRpb24gZXhwcmVzc2lvbiwgaW4gdGhlIGZvcm0gb2YgYW4gSUlGRS5cbiAgICpcbiAgICogQHBhcmFtIGV4cHJlc3Npb24gdGhlIGV4cHJlc3Npb24gdGhhdCBwb2ludHMgdG8gdGhlIEFuZ3VsYXIgY29yZSBmcmFtZXdvcmsgaW1wb3J0LlxuICAgKiBAcmV0dXJucyBhIHJlZmVyZW5jZSB0byBhIHJlZmVyZW5jZSBvYmplY3QgZm9yIHdoZXJlIHRoZSBzaGFyZWQgY29uc3RhbnQgc3RhdGVtZW50cyB3aWxsIGJlXG4gICAqICAgICBpbnNlcnRlZCwgb3IgYG51bGxgIGlmIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBoYXZlIGEgc2hhcmVkIHNjb3BlLlxuICAgKi9cbiAgZ2V0Q29uc3RhbnRTY29wZVJlZihleHByZXNzaW9uOiBURXhwcmVzc2lvbik6IFRTaGFyZWRDb25zdGFudFNjb3BlfG51bGw7XG59XG4iXX0=
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
import { ConstantPool } from '@angular/compiler';
|
|
9
|
-
import { LinkerImportGenerator } from '../../linker_import_generator';
|
|
10
|
-
/**
|
|
11
|
-
* This class represents (from the point of view of the `FileLinker`) the scope in which
|
|
12
|
-
* statements and expressions related to a linked partial declaration will be emitted.
|
|
13
|
-
*
|
|
14
|
-
* It holds a copy of a `ConstantPool` that is used to capture any constant statements that need to
|
|
15
|
-
* be emitted in this context.
|
|
16
|
-
*
|
|
17
|
-
* This implementation will emit the definition and the constant statements separately.
|
|
18
|
-
*/
|
|
19
|
-
export class EmitScope {
|
|
20
|
-
constructor(ngImport, translator) {
|
|
21
|
-
this.ngImport = ngImport;
|
|
22
|
-
this.translator = translator;
|
|
23
|
-
this.constantPool = new ConstantPool();
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Translate the given Output AST definition expression into a generic `TExpression`.
|
|
27
|
-
*
|
|
28
|
-
* Use a `LinkerImportGenerator` to handle any imports in the definition.
|
|
29
|
-
*/
|
|
30
|
-
translateDefinition(definition) {
|
|
31
|
-
return this.translator.translateExpression(definition, new LinkerImportGenerator(this.ngImport));
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Return any constant statements that are shared between all uses of this `EmitScope`.
|
|
35
|
-
*/
|
|
36
|
-
getConstantStatements() {
|
|
37
|
-
const importGenerator = new LinkerImportGenerator(this.ngImport);
|
|
38
|
-
return this.constantPool.statements.map(statement => this.translator.translateStatement(statement, importGenerator));
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pdF9zY29wZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9saW5rZXIvc3JjL2ZpbGVfbGlua2VyL2VtaXRfc2NvcGVzL2VtaXRfc2NvcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRS9DLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBR3BFOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxPQUFPLFNBQVM7SUFHcEIsWUFDdUIsUUFBcUIsRUFDckIsVUFBK0M7UUFEL0MsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixlQUFVLEdBQVYsVUFBVSxDQUFxQztRQUo3RCxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFJOEIsQ0FBQztJQUUxRTs7OztPQUlHO0lBQ0gsbUJBQW1CLENBQUMsVUFBd0I7UUFDMUMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUN0QyxVQUFVLEVBQUUsSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxxQkFBcUI7UUFDbkIsTUFBTSxlQUFlLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ25DLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7Q29uc3RhbnRQb29sfSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XG5pbXBvcnQgKiBhcyBvIGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyL3NyYy9vdXRwdXQvb3V0cHV0X2FzdCc7XG5pbXBvcnQge0xpbmtlckltcG9ydEdlbmVyYXRvcn0gZnJvbSAnLi4vLi4vbGlua2VyX2ltcG9ydF9nZW5lcmF0b3InO1xuaW1wb3J0IHtUcmFuc2xhdG9yfSBmcm9tICcuLi90cmFuc2xhdG9yJztcblxuLyoqXG4gKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgKGZyb20gdGhlIHBvaW50IG9mIHZpZXcgb2YgdGhlIGBGaWxlTGlua2VyYCkgdGhlIHNjb3BlIGluIHdoaWNoXG4gKiBzdGF0ZW1lbnRzIGFuZCBleHByZXNzaW9ucyByZWxhdGVkIHRvIGEgbGlua2VkIHBhcnRpYWwgZGVjbGFyYXRpb24gd2lsbCBiZSBlbWl0dGVkLlxuICpcbiAqIEl0IGhvbGRzIGEgY29weSBvZiBhIGBDb25zdGFudFBvb2xgIHRoYXQgaXMgdXNlZCB0byBjYXB0dXJlIGFueSBjb25zdGFudCBzdGF0ZW1lbnRzIHRoYXQgbmVlZCB0b1xuICogYmUgZW1pdHRlZCBpbiB0aGlzIGNvbnRleHQuXG4gKlxuICogVGhpcyBpbXBsZW1lbnRhdGlvbiB3aWxsIGVtaXQgdGhlIGRlZmluaXRpb24gYW5kIHRoZSBjb25zdGFudCBzdGF0ZW1lbnRzIHNlcGFyYXRlbHkuXG4gKi9cbmV4cG9ydCBjbGFzcyBFbWl0U2NvcGU8VFN0YXRlbWVudCwgVEV4cHJlc3Npb24+IHtcbiAgcmVhZG9ubHkgY29uc3RhbnRQb29sID0gbmV3IENvbnN0YW50UG9vbCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5nSW1wb3J0OiBURXhwcmVzc2lvbixcbiAgICAgIHByb3RlY3RlZCByZWFkb25seSB0cmFuc2xhdG9yOiBUcmFuc2xhdG9yPFRTdGF0ZW1lbnQsIFRFeHByZXNzaW9uPikge31cblxuICAvKipcbiAgICogVHJhbnNsYXRlIHRoZSBnaXZlbiBPdXRwdXQgQVNUIGRlZmluaXRpb24gZXhwcmVzc2lvbiBpbnRvIGEgZ2VuZXJpYyBgVEV4cHJlc3Npb25gLlxuICAgKlxuICAgKiBVc2UgYSBgTGlua2VySW1wb3J0R2VuZXJhdG9yYCB0byBoYW5kbGUgYW55IGltcG9ydHMgaW4gdGhlIGRlZmluaXRpb24uXG4gICAqL1xuICB0cmFuc2xhdGVEZWZpbml0aW9uKGRlZmluaXRpb246IG8uRXhwcmVzc2lvbik6IFRFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdG9yLnRyYW5zbGF0ZUV4cHJlc3Npb24oXG4gICAgICAgIGRlZmluaXRpb24sIG5ldyBMaW5rZXJJbXBvcnRHZW5lcmF0b3IodGhpcy5uZ0ltcG9ydCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbnkgY29uc3RhbnQgc3RhdGVtZW50cyB0aGF0IGFyZSBzaGFyZWQgYmV0d2VlbiBhbGwgdXNlcyBvZiB0aGlzIGBFbWl0U2NvcGVgLlxuICAgKi9cbiAgZ2V0Q29uc3RhbnRTdGF0ZW1lbnRzKCk6IFRTdGF0ZW1lbnRbXSB7XG4gICAgY29uc3QgaW1wb3J0R2VuZXJhdG9yID0gbmV3IExpbmtlckltcG9ydEdlbmVyYXRvcih0aGlzLm5nSW1wb3J0KTtcbiAgICByZXR1cm4gdGhpcy5jb25zdGFudFBvb2wuc3RhdGVtZW50cy5tYXAoXG4gICAgICAgIHN0YXRlbWVudCA9PiB0aGlzLnRyYW5zbGF0b3IudHJhbnNsYXRlU3RhdGVtZW50KHN0YXRlbWVudCwgaW1wb3J0R2VuZXJhdG9yKSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { EmitScope } from './emit_scope';
|
|
2
|
-
/**
|
|
3
|
-
* This class is a specialization of the `EmitScope` class that is designed for the situation where
|
|
4
|
-
* there is no clear shared scope for constant statements. In this case they are bundled with the
|
|
5
|
-
* translated definition inside an IIFE.
|
|
6
|
-
*/
|
|
7
|
-
export class IifeEmitScope extends EmitScope {
|
|
8
|
-
constructor(ngImport, translator, factory) {
|
|
9
|
-
super(ngImport, translator);
|
|
10
|
-
this.factory = factory;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Translate the given Output AST definition expression into a generic `TExpression`.
|
|
14
|
-
*
|
|
15
|
-
* Wraps the output from `EmitScope.translateDefinition()` and `EmitScope.getConstantStatements()`
|
|
16
|
-
* in an IIFE.
|
|
17
|
-
*/
|
|
18
|
-
translateDefinition(definition) {
|
|
19
|
-
const constantStatements = super.getConstantStatements();
|
|
20
|
-
const returnStatement = this.factory.createReturnStatement(super.translateDefinition(definition));
|
|
21
|
-
const body = this.factory.createBlock([...constantStatements, returnStatement]);
|
|
22
|
-
const fn = this.factory.createFunctionExpression(/* name */ null, /* args */ [], body);
|
|
23
|
-
return this.factory.createCallExpression(fn, /* args */ [], /* pure */ false);
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* It is not valid to call this method, since there will be no shared constant statements - they
|
|
27
|
-
* are already emitted in the IIFE alongside the translated definition.
|
|
28
|
-
*/
|
|
29
|
-
getConstantStatements() {
|
|
30
|
-
throw new Error('BUG - IifeEmitScope should not expose any constant statements');
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWlmZV9lbWl0X3Njb3BlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL2xpbmtlci9zcmMvZmlsZV9saW5rZXIvZW1pdF9zY29wZXMvaWlmZV9lbWl0X3Njb3BlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFdkM7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxhQUF1QyxTQUFRLFNBQWtDO0lBQzVGLFlBQ0ksUUFBcUIsRUFBRSxVQUErQyxFQUNyRCxPQUE0QztRQUMvRCxLQUFLLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRFQsWUFBTyxHQUFQLE9BQU8sQ0FBcUM7SUFFakUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsbUJBQW1CLENBQUMsVUFBd0I7UUFDMUMsTUFBTSxrQkFBa0IsR0FBRyxLQUFLLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUV6RCxNQUFNLGVBQWUsR0FDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUM5RSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsa0JBQWtCLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUNoRixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFBLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN0RixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQSxFQUFFLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRDs7O09BR0c7SUFDSCxxQkFBcUI7UUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQywrREFBK0QsQ0FBQyxDQUFDO0lBQ25GLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0ICogYXMgbyBmcm9tICdAYW5ndWxhci9jb21waWxlci9zcmMvb3V0cHV0L291dHB1dF9hc3QnO1xuXG5pbXBvcnQge0FzdEZhY3Rvcnl9IGZyb20gJy4uLy4uLy4uLy4uL3NyYy9uZ3RzYy90cmFuc2xhdG9yJztcbmltcG9ydCB7VHJhbnNsYXRvcn0gZnJvbSAnLi4vdHJhbnNsYXRvcic7XG5cbmltcG9ydCB7RW1pdFNjb3BlfSBmcm9tICcuL2VtaXRfc2NvcGUnO1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgaXMgYSBzcGVjaWFsaXphdGlvbiBvZiB0aGUgYEVtaXRTY29wZWAgY2xhc3MgdGhhdCBpcyBkZXNpZ25lZCBmb3IgdGhlIHNpdHVhdGlvbiB3aGVyZVxuICogdGhlcmUgaXMgbm8gY2xlYXIgc2hhcmVkIHNjb3BlIGZvciBjb25zdGFudCBzdGF0ZW1lbnRzLiBJbiB0aGlzIGNhc2UgdGhleSBhcmUgYnVuZGxlZCB3aXRoIHRoZVxuICogdHJhbnNsYXRlZCBkZWZpbml0aW9uIGluc2lkZSBhbiBJSUZFLlxuICovXG5leHBvcnQgY2xhc3MgSWlmZUVtaXRTY29wZTxUU3RhdGVtZW50LCBURXhwcmVzc2lvbj4gZXh0ZW5kcyBFbWl0U2NvcGU8VFN0YXRlbWVudCwgVEV4cHJlc3Npb24+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgICBuZ0ltcG9ydDogVEV4cHJlc3Npb24sIHRyYW5zbGF0b3I6IFRyYW5zbGF0b3I8VFN0YXRlbWVudCwgVEV4cHJlc3Npb24+LFxuICAgICAgcHJpdmF0ZSByZWFkb25seSBmYWN0b3J5OiBBc3RGYWN0b3J5PFRTdGF0ZW1lbnQsIFRFeHByZXNzaW9uPikge1xuICAgIHN1cGVyKG5nSW1wb3J0LCB0cmFuc2xhdG9yKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2xhdGUgdGhlIGdpdmVuIE91dHB1dCBBU1QgZGVmaW5pdGlvbiBleHByZXNzaW9uIGludG8gYSBnZW5lcmljIGBURXhwcmVzc2lvbmAuXG4gICAqXG4gICAqIFdyYXBzIHRoZSBvdXRwdXQgZnJvbSBgRW1pdFNjb3BlLnRyYW5zbGF0ZURlZmluaXRpb24oKWAgYW5kIGBFbWl0U2NvcGUuZ2V0Q29uc3RhbnRTdGF0ZW1lbnRzKClgXG4gICAqIGluIGFuIElJRkUuXG4gICAqL1xuICB0cmFuc2xhdGVEZWZpbml0aW9uKGRlZmluaXRpb246IG8uRXhwcmVzc2lvbik6IFRFeHByZXNzaW9uIHtcbiAgICBjb25zdCBjb25zdGFudFN0YXRlbWVudHMgPSBzdXBlci5nZXRDb25zdGFudFN0YXRlbWVudHMoKTtcblxuICAgIGNvbnN0IHJldHVyblN0YXRlbWVudCA9XG4gICAgICAgIHRoaXMuZmFjdG9yeS5jcmVhdGVSZXR1cm5TdGF0ZW1lbnQoc3VwZXIudHJhbnNsYXRlRGVmaW5pdGlvbihkZWZpbml0aW9uKSk7XG4gICAgY29uc3QgYm9keSA9IHRoaXMuZmFjdG9yeS5jcmVhdGVCbG9jayhbLi4uY29uc3RhbnRTdGF0ZW1lbnRzLCByZXR1cm5TdGF0ZW1lbnRdKTtcbiAgICBjb25zdCBmbiA9IHRoaXMuZmFjdG9yeS5jcmVhdGVGdW5jdGlvbkV4cHJlc3Npb24oLyogbmFtZSAqLyBudWxsLCAvKiBhcmdzICovW10sIGJvZHkpO1xuICAgIHJldHVybiB0aGlzLmZhY3RvcnkuY3JlYXRlQ2FsbEV4cHJlc3Npb24oZm4sIC8qIGFyZ3MgKi9bXSwgLyogcHVyZSAqLyBmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogSXQgaXMgbm90IHZhbGlkIHRvIGNhbGwgdGhpcyBtZXRob2QsIHNpbmNlIHRoZXJlIHdpbGwgYmUgbm8gc2hhcmVkIGNvbnN0YW50IHN0YXRlbWVudHMgLSB0aGV5XG4gICAqIGFyZSBhbHJlYWR5IGVtaXR0ZWQgaW4gdGhlIElJRkUgYWxvbmdzaWRlIHRoZSB0cmFuc2xhdGVkIGRlZmluaXRpb24uXG4gICAqL1xuICBnZXRDb25zdGFudFN0YXRlbWVudHMoKTogVFN0YXRlbWVudFtdIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0JVRyAtIElpZmVFbWl0U2NvcGUgc2hvdWxkIG5vdCBleHBvc2UgYW55IGNvbnN0YW50IHN0YXRlbWVudHMnKTtcbiAgfVxufVxuIl19
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { AstObject } from '../ast/ast_value';
|
|
2
|
-
import { EmitScope } from './emit_scopes/emit_scope';
|
|
3
|
-
import { IifeEmitScope } from './emit_scopes/iife_emit_scope';
|
|
4
|
-
import { createLinkerMap, PartialLinkerSelector } from './partial_linkers/partial_linker_selector';
|
|
5
|
-
export const NO_STATEMENTS = [];
|
|
6
|
-
/**
|
|
7
|
-
* This class is responsible for linking all the partial declarations found in a single file.
|
|
8
|
-
*/
|
|
9
|
-
export class FileLinker {
|
|
10
|
-
constructor(linkerEnvironment, sourceUrl, code) {
|
|
11
|
-
this.linkerEnvironment = linkerEnvironment;
|
|
12
|
-
this.emitScopes = new Map();
|
|
13
|
-
this.linkerSelector = new PartialLinkerSelector(createLinkerMap(this.linkerEnvironment, sourceUrl, code), this.linkerEnvironment.logger, this.linkerEnvironment.options.unknownDeclarationVersionHandling);
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Return true if the given callee name matches a partial declaration that can be linked.
|
|
17
|
-
*/
|
|
18
|
-
isPartialDeclaration(calleeName) {
|
|
19
|
-
return this.linkerSelector.supportsDeclaration(calleeName);
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Link the metadata extracted from the args of a call to a partial declaration function.
|
|
23
|
-
*
|
|
24
|
-
* The `declarationScope` is used to determine the scope and strategy of emission of the linked
|
|
25
|
-
* definition and any shared constant statements.
|
|
26
|
-
*
|
|
27
|
-
* @param declarationFn the name of the function used to declare the partial declaration - e.g.
|
|
28
|
-
* `ɵɵngDeclareDirective`.
|
|
29
|
-
* @param args the arguments passed to the declaration function, should be a single object that
|
|
30
|
-
* corresponds to the `R3DeclareDirectiveMetadata` or `R3DeclareComponentMetadata` interfaces.
|
|
31
|
-
* @param declarationScope the scope that contains this call to the declaration function.
|
|
32
|
-
*/
|
|
33
|
-
linkPartialDeclaration(declarationFn, args, declarationScope) {
|
|
34
|
-
if (args.length !== 1) {
|
|
35
|
-
throw new Error(`Invalid function call: It should have only a single object literal argument, but contained ${args.length}.`);
|
|
36
|
-
}
|
|
37
|
-
const metaObj = AstObject.parse(args[0], this.linkerEnvironment.host);
|
|
38
|
-
const ngImport = metaObj.getNode('ngImport');
|
|
39
|
-
const emitScope = this.getEmitScope(ngImport, declarationScope);
|
|
40
|
-
const minVersion = metaObj.getString('minVersion');
|
|
41
|
-
const version = metaObj.getString('version');
|
|
42
|
-
const linker = this.linkerSelector.getLinker(declarationFn, minVersion, version);
|
|
43
|
-
const definition = linker.linkPartialDeclaration(emitScope.constantPool, metaObj);
|
|
44
|
-
return emitScope.translateDefinition(definition);
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Return all the shared constant statements and their associated constant scope references, so
|
|
48
|
-
* that they can be inserted into the source code.
|
|
49
|
-
*/
|
|
50
|
-
getConstantStatements() {
|
|
51
|
-
const results = [];
|
|
52
|
-
for (const [constantScope, emitScope] of this.emitScopes.entries()) {
|
|
53
|
-
const statements = emitScope.getConstantStatements();
|
|
54
|
-
results.push({ constantScope, statements });
|
|
55
|
-
}
|
|
56
|
-
return results;
|
|
57
|
-
}
|
|
58
|
-
getEmitScope(ngImport, declarationScope) {
|
|
59
|
-
const constantScope = declarationScope.getConstantScopeRef(ngImport);
|
|
60
|
-
if (constantScope === null) {
|
|
61
|
-
// There is no constant scope so we will emit extra statements into the definition IIFE.
|
|
62
|
-
return new IifeEmitScope(ngImport, this.linkerEnvironment.translator, this.linkerEnvironment.factory);
|
|
63
|
-
}
|
|
64
|
-
if (!this.emitScopes.has(constantScope)) {
|
|
65
|
-
this.emitScopes.set(constantScope, new EmitScope(ngImport, this.linkerEnvironment.translator));
|
|
66
|
-
}
|
|
67
|
-
return this.emitScopes.get(constantScope);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZV9saW5rZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL3NyYy9maWxlX2xpbmtlci9maWxlX2xpbmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFM0MsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RCxPQUFPLEVBQUMsZUFBZSxFQUFFLHFCQUFxQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFFakcsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFvQixFQUFXLENBQUM7QUFFMUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sVUFBVTtJQUlyQixZQUNZLGlCQUE2RCxFQUNyRSxTQUF5QixFQUFFLElBQVk7UUFEL0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUE0QztRQUhqRSxlQUFVLEdBQUcsSUFBSSxHQUFHLEVBQXNELENBQUM7UUFLakYsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLHFCQUFxQixDQUMzQyxlQUFlLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUN2RixJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsb0JBQW9CLENBQUMsVUFBa0I7UUFDckMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNILHNCQUFzQixDQUNsQixhQUFxQixFQUFFLElBQW1CLEVBQzFDLGdCQUErRDtRQUNqRSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQ1gsOEZBQ0ksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDekI7UUFFRCxNQUFNLE9BQU8sR0FDVCxTQUFTLENBQUMsS0FBSyxDQUFvQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdGLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUVoRSxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25ELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqRixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVsRixPQUFPLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gscUJBQXFCO1FBQ25CLE1BQU0sT0FBTyxHQUFnRSxFQUFFLENBQUM7UUFDaEYsS0FBSyxNQUFNLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDbEUsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDckQsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLFlBQVksQ0FDaEIsUUFBcUIsRUFBRSxnQkFBK0Q7UUFFeEYsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckUsSUFBSSxhQUFhLEtBQUssSUFBSSxFQUFFO1lBQzFCLHdGQUF3RjtZQUN4RixPQUFPLElBQUksYUFBYSxDQUNwQixRQUFRLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDbEY7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ2YsYUFBYSxFQUFFLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztTQUNoRjtRQUNELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFFLENBQUM7SUFDN0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge1IzUGFydGlhbERlY2xhcmF0aW9ufSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XG5pbXBvcnQge0Fic29sdXRlRnNQYXRofSBmcm9tICcuLi8uLi8uLi9zcmMvbmd0c2MvZmlsZV9zeXN0ZW0nO1xuaW1wb3J0IHtBc3RPYmplY3R9IGZyb20gJy4uL2FzdC9hc3RfdmFsdWUnO1xuaW1wb3J0IHtEZWNsYXJhdGlvblNjb3BlfSBmcm9tICcuL2RlY2xhcmF0aW9uX3Njb3BlJztcbmltcG9ydCB7RW1pdFNjb3BlfSBmcm9tICcuL2VtaXRfc2NvcGVzL2VtaXRfc2NvcGUnO1xuaW1wb3J0IHtJaWZlRW1pdFNjb3BlfSBmcm9tICcuL2VtaXRfc2NvcGVzL2lpZmVfZW1pdF9zY29wZSc7XG5pbXBvcnQge0xpbmtlckVudmlyb25tZW50fSBmcm9tICcuL2xpbmtlcl9lbnZpcm9ubWVudCc7XG5pbXBvcnQge2NyZWF0ZUxpbmtlck1hcCwgUGFydGlhbExpbmtlclNlbGVjdG9yfSBmcm9tICcuL3BhcnRpYWxfbGlua2Vycy9wYXJ0aWFsX2xpbmtlcl9zZWxlY3Rvcic7XG5cbmV4cG9ydCBjb25zdCBOT19TVEFURU1FTlRTOiBSZWFkb25seTxhbnlbXT4gPSBbXSBhcyBjb25zdDtcblxuLyoqXG4gKiBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciBsaW5raW5nIGFsbCB0aGUgcGFydGlhbCBkZWNsYXJhdGlvbnMgZm91bmQgaW4gYSBzaW5nbGUgZmlsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEZpbGVMaW5rZXI8VENvbnN0YW50U2NvcGUsIFRTdGF0ZW1lbnQsIFRFeHByZXNzaW9uPiB7XG4gIHByaXZhdGUgbGlua2VyU2VsZWN0b3I6IFBhcnRpYWxMaW5rZXJTZWxlY3RvcjxURXhwcmVzc2lvbj47XG4gIHByaXZhdGUgZW1pdFNjb3BlcyA9IG5ldyBNYXA8VENvbnN0YW50U2NvcGUsIEVtaXRTY29wZTxUU3RhdGVtZW50LCBURXhwcmVzc2lvbj4+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGxpbmtlckVudmlyb25tZW50OiBMaW5rZXJFbnZpcm9ubWVudDxUU3RhdGVtZW50LCBURXhwcmVzc2lvbj4sXG4gICAgICBzb3VyY2VVcmw6IEFic29sdXRlRnNQYXRoLCBjb2RlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmxpbmtlclNlbGVjdG9yID0gbmV3IFBhcnRpYWxMaW5rZXJTZWxlY3RvcjxURXhwcmVzc2lvbj4oXG4gICAgICAgIGNyZWF0ZUxpbmtlck1hcCh0aGlzLmxpbmtlckVudmlyb25tZW50LCBzb3VyY2VVcmwsIGNvZGUpLCB0aGlzLmxpbmtlckVudmlyb25tZW50LmxvZ2dlcixcbiAgICAgICAgdGhpcy5saW5rZXJFbnZpcm9ubWVudC5vcHRpb25zLnVua25vd25EZWNsYXJhdGlvblZlcnNpb25IYW5kbGluZyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGNhbGxlZSBuYW1lIG1hdGNoZXMgYSBwYXJ0aWFsIGRlY2xhcmF0aW9uIHRoYXQgY2FuIGJlIGxpbmtlZC5cbiAgICovXG4gIGlzUGFydGlhbERlY2xhcmF0aW9uKGNhbGxlZU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxpbmtlclNlbGVjdG9yLnN1cHBvcnRzRGVjbGFyYXRpb24oY2FsbGVlTmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogTGluayB0aGUgbWV0YWRhdGEgZXh0cmFjdGVkIGZyb20gdGhlIGFyZ3Mgb2YgYSBjYWxsIHRvIGEgcGFydGlhbCBkZWNsYXJhdGlvbiBmdW5jdGlvbi5cbiAgICpcbiAgICogVGhlIGBkZWNsYXJhdGlvblNjb3BlYCBpcyB1c2VkIHRvIGRldGVybWluZSB0aGUgc2NvcGUgYW5kIHN0cmF0ZWd5IG9mIGVtaXNzaW9uIG9mIHRoZSBsaW5rZWRcbiAgICogZGVmaW5pdGlvbiBhbmQgYW55IHNoYXJlZCBjb25zdGFudCBzdGF0ZW1lbnRzLlxuICAgKlxuICAgKiBAcGFyYW0gZGVjbGFyYXRpb25GbiB0aGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24gdXNlZCB0byBkZWNsYXJlIHRoZSBwYXJ0aWFsIGRlY2xhcmF0aW9uIC0gZS5nLlxuICAgKiAgICAgYMm1ybVuZ0RlY2xhcmVEaXJlY3RpdmVgLlxuICAgKiBAcGFyYW0gYXJncyB0aGUgYXJndW1lbnRzIHBhc3NlZCB0byB0aGUgZGVjbGFyYXRpb24gZnVuY3Rpb24sIHNob3VsZCBiZSBhIHNpbmdsZSBvYmplY3QgdGhhdFxuICAgKiAgICAgY29ycmVzcG9uZHMgdG8gdGhlIGBSM0RlY2xhcmVEaXJlY3RpdmVNZXRhZGF0YWAgb3IgYFIzRGVjbGFyZUNvbXBvbmVudE1ldGFkYXRhYCBpbnRlcmZhY2VzLlxuICAgKiBAcGFyYW0gZGVjbGFyYXRpb25TY29wZSB0aGUgc2NvcGUgdGhhdCBjb250YWlucyB0aGlzIGNhbGwgdG8gdGhlIGRlY2xhcmF0aW9uIGZ1bmN0aW9uLlxuICAgKi9cbiAgbGlua1BhcnRpYWxEZWNsYXJhdGlvbihcbiAgICAgIGRlY2xhcmF0aW9uRm46IHN0cmluZywgYXJnczogVEV4cHJlc3Npb25bXSxcbiAgICAgIGRlY2xhcmF0aW9uU2NvcGU6IERlY2xhcmF0aW9uU2NvcGU8VENvbnN0YW50U2NvcGUsIFRFeHByZXNzaW9uPik6IFRFeHByZXNzaW9uIHtcbiAgICBpZiAoYXJncy5sZW5ndGggIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBmdW5jdGlvbiBjYWxsOiBJdCBzaG91bGQgaGF2ZSBvbmx5IGEgc2luZ2xlIG9iamVjdCBsaXRlcmFsIGFyZ3VtZW50LCBidXQgY29udGFpbmVkICR7XG4gICAgICAgICAgICAgIGFyZ3MubGVuZ3RofS5gKTtcbiAgICB9XG5cbiAgICBjb25zdCBtZXRhT2JqID1cbiAgICAgICAgQXN0T2JqZWN0LnBhcnNlPFIzUGFydGlhbERlY2xhcmF0aW9uLCBURXhwcmVzc2lvbj4oYXJnc1swXSwgdGhpcy5saW5rZXJFbnZpcm9ubWVudC5ob3N0KTtcbiAgICBjb25zdCBuZ0ltcG9ydCA9IG1ldGFPYmouZ2V0Tm9kZSgnbmdJbXBvcnQnKTtcbiAgICBjb25zdCBlbWl0U2NvcGUgPSB0aGlzLmdldEVtaXRTY29wZShuZ0ltcG9ydCwgZGVjbGFyYXRpb25TY29wZSk7XG5cbiAgICBjb25zdCBtaW5WZXJzaW9uID0gbWV0YU9iai5nZXRTdHJpbmcoJ21pblZlcnNpb24nKTtcbiAgICBjb25zdCB2ZXJzaW9uID0gbWV0YU9iai5nZXRTdHJpbmcoJ3ZlcnNpb24nKTtcbiAgICBjb25zdCBsaW5rZXIgPSB0aGlzLmxpbmtlclNlbGVjdG9yLmdldExpbmtlcihkZWNsYXJhdGlvbkZuLCBtaW5WZXJzaW9uLCB2ZXJzaW9uKTtcbiAgICBjb25zdCBkZWZpbml0aW9uID0gbGlua2VyLmxpbmtQYXJ0aWFsRGVjbGFyYXRpb24oZW1pdFNjb3BlLmNvbnN0YW50UG9vbCwgbWV0YU9iaik7XG5cbiAgICByZXR1cm4gZW1pdFNjb3BlLnRyYW5zbGF0ZURlZmluaXRpb24oZGVmaW5pdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFsbCB0aGUgc2hhcmVkIGNvbnN0YW50IHN0YXRlbWVudHMgYW5kIHRoZWlyIGFzc29jaWF0ZWQgY29uc3RhbnQgc2NvcGUgcmVmZXJlbmNlcywgc29cbiAgICogdGhhdCB0aGV5IGNhbiBiZSBpbnNlcnRlZCBpbnRvIHRoZSBzb3VyY2UgY29kZS5cbiAgICovXG4gIGdldENvbnN0YW50U3RhdGVtZW50cygpOiB7Y29uc3RhbnRTY29wZTogVENvbnN0YW50U2NvcGUsIHN0YXRlbWVudHM6IFRTdGF0ZW1lbnRbXX1bXSB7XG4gICAgY29uc3QgcmVzdWx0czoge2NvbnN0YW50U2NvcGU6IFRDb25zdGFudFNjb3BlLCBzdGF0ZW1lbnRzOiBUU3RhdGVtZW50W119W10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IFtjb25zdGFudFNjb3BlLCBlbWl0U2NvcGVdIG9mIHRoaXMuZW1pdFNjb3Blcy5lbnRyaWVzKCkpIHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudHMgPSBlbWl0U2NvcGUuZ2V0Q29uc3RhbnRTdGF0ZW1lbnRzKCk7XG4gICAgICByZXN1bHRzLnB1c2goe2NvbnN0YW50U2NvcGUsIHN0YXRlbWVudHN9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdHM7XG4gIH1cblxuICBwcml2YXRlIGdldEVtaXRTY29wZShcbiAgICAgIG5nSW1wb3J0OiBURXhwcmVzc2lvbiwgZGVjbGFyYXRpb25TY29wZTogRGVjbGFyYXRpb25TY29wZTxUQ29uc3RhbnRTY29wZSwgVEV4cHJlc3Npb24+KTpcbiAgICAgIEVtaXRTY29wZTxUU3RhdGVtZW50LCBURXhwcmVzc2lvbj4ge1xuICAgIGNvbnN0IGNvbnN0YW50U2NvcGUgPSBkZWNsYXJhdGlvblNjb3BlLmdldENvbnN0YW50U2NvcGVSZWYobmdJbXBvcnQpO1xuICAgIGlmIChjb25zdGFudFNjb3BlID09PSBudWxsKSB7XG4gICAgICAvLyBUaGVyZSBpcyBubyBjb25zdGFudCBzY29wZSBzbyB3ZSB3aWxsIGVtaXQgZXh0cmEgc3RhdGVtZW50cyBpbnRvIHRoZSBkZWZpbml0aW9uIElJRkUuXG4gICAgICByZXR1cm4gbmV3IElpZmVFbWl0U2NvcGUoXG4gICAgICAgICAgbmdJbXBvcnQsIHRoaXMubGlua2VyRW52aXJvbm1lbnQudHJhbnNsYXRvciwgdGhpcy5saW5rZXJFbnZpcm9ubWVudC5mYWN0b3J5KTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZW1pdFNjb3Blcy5oYXMoY29uc3RhbnRTY29wZSkpIHtcbiAgICAgIHRoaXMuZW1pdFNjb3Blcy5zZXQoXG4gICAgICAgICAgY29uc3RhbnRTY29wZSwgbmV3IEVtaXRTY29wZShuZ0ltcG9ydCwgdGhpcy5saW5rZXJFbnZpcm9ubWVudC50cmFuc2xhdG9yKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmVtaXRTY29wZXMuZ2V0KGNvbnN0YW50U2NvcGUpITtcbiAgfVxufVxuIl19
|
|
@@ -1,28 +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
|
-
/**
|
|
9
|
-
* Create a `GetSourceFileFn` that will return the `SourceFile` being linked or `null`, if not
|
|
10
|
-
* available.
|
|
11
|
-
*/
|
|
12
|
-
export function createGetSourceFile(sourceUrl, code, loader) {
|
|
13
|
-
if (loader === null) {
|
|
14
|
-
// No source-mapping so just return a function that always returns `null`.
|
|
15
|
-
return () => null;
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
// Source-mapping is available so return a function that will load (and cache) the `SourceFile`.
|
|
19
|
-
let sourceFile = undefined;
|
|
20
|
-
return () => {
|
|
21
|
-
if (sourceFile === undefined) {
|
|
22
|
-
sourceFile = loader.loadSourceFile(sourceUrl, code);
|
|
23
|
-
}
|
|
24
|
-
return sourceFile;
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0X3NvdXJjZV9maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL2xpbmtlci9zcmMvZmlsZV9saW5rZXIvZ2V0X3NvdXJjZV9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQVVIOzs7R0FHRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FDL0IsU0FBeUIsRUFBRSxJQUFZLEVBQUUsTUFBNkI7SUFDeEUsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFO1FBQ25CLDBFQUEwRTtRQUMxRSxPQUFPLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztLQUNuQjtTQUFNO1FBQ0wsZ0dBQWdHO1FBQ2hHLElBQUksVUFBVSxHQUE4QixTQUFTLENBQUM7UUFDdEQsT0FBTyxHQUFHLEVBQUU7WUFDVixJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUU7Z0JBQzVCLFVBQVUsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQzthQUNyRDtZQUNELE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUMsQ0FBQztLQUNIO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0Fic29sdXRlRnNQYXRofSBmcm9tICcuLi8uLi8uLi9zcmMvbmd0c2MvZmlsZV9zeXN0ZW0nO1xuaW1wb3J0IHtTb3VyY2VGaWxlLCBTb3VyY2VGaWxlTG9hZGVyfSBmcm9tICcuLi8uLi8uLi9zcmMvbmd0c2Mvc291cmNlbWFwcyc7XG5cbi8qKlxuICogQSBmdW5jdGlvbiB0aGF0IHdpbGwgcmV0dXJuIGEgYFNvdXJjZUZpbGVgIG9iamVjdCAob3IgbnVsbCkgZm9yIHRoZSBjdXJyZW50IGZpbGUgYmVpbmcgbGlua2VkLlxuICovXG5leHBvcnQgdHlwZSBHZXRTb3VyY2VGaWxlRm4gPSAoKSA9PiBTb3VyY2VGaWxlfG51bGw7XG5cbi8qKlxuICogQ3JlYXRlIGEgYEdldFNvdXJjZUZpbGVGbmAgdGhhdCB3aWxsIHJldHVybiB0aGUgYFNvdXJjZUZpbGVgIGJlaW5nIGxpbmtlZCBvciBgbnVsbGAsIGlmIG5vdFxuICogYXZhaWxhYmxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlR2V0U291cmNlRmlsZShcbiAgICBzb3VyY2VVcmw6IEFic29sdXRlRnNQYXRoLCBjb2RlOiBzdHJpbmcsIGxvYWRlcjogU291cmNlRmlsZUxvYWRlcnxudWxsKTogR2V0U291cmNlRmlsZUZuIHtcbiAgaWYgKGxvYWRlciA9PT0gbnVsbCkge1xuICAgIC8vIE5vIHNvdXJjZS1tYXBwaW5nIHNvIGp1c3QgcmV0dXJuIGEgZnVuY3Rpb24gdGhhdCBhbHdheXMgcmV0dXJucyBgbnVsbGAuXG4gICAgcmV0dXJuICgpID0+IG51bGw7XG4gIH0gZWxzZSB7XG4gICAgLy8gU291cmNlLW1hcHBpbmcgaXMgYXZhaWxhYmxlIHNvIHJldHVybiBhIGZ1bmN0aW9uIHRoYXQgd2lsbCBsb2FkIChhbmQgY2FjaGUpIHRoZSBgU291cmNlRmlsZWAuXG4gICAgbGV0IHNvdXJjZUZpbGU6IFNvdXJjZUZpbGV8bnVsbHx1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChzb3VyY2VGaWxlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgc291cmNlRmlsZSA9IGxvYWRlci5sb2FkU291cmNlRmlsZShzb3VyY2VVcmwsIGNvZGUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHNvdXJjZUZpbGU7XG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { SourceFileLoader } from '../../../src/ngtsc/sourcemaps';
|
|
2
|
-
import { DEFAULT_LINKER_OPTIONS } from './linker_options';
|
|
3
|
-
import { Translator } from './translator';
|
|
4
|
-
export class LinkerEnvironment {
|
|
5
|
-
constructor(fileSystem, logger, host, factory, options) {
|
|
6
|
-
this.fileSystem = fileSystem;
|
|
7
|
-
this.logger = logger;
|
|
8
|
-
this.host = host;
|
|
9
|
-
this.factory = factory;
|
|
10
|
-
this.options = options;
|
|
11
|
-
this.translator = new Translator(this.factory);
|
|
12
|
-
this.sourceFileLoader = this.options.sourceMapping ? new SourceFileLoader(this.fileSystem, this.logger, {}) : null;
|
|
13
|
-
}
|
|
14
|
-
static create(fileSystem, logger, host, factory, options) {
|
|
15
|
-
var _a, _b, _c;
|
|
16
|
-
return new LinkerEnvironment(fileSystem, logger, host, factory, {
|
|
17
|
-
sourceMapping: (_a = options.sourceMapping) !== null && _a !== void 0 ? _a : DEFAULT_LINKER_OPTIONS.sourceMapping,
|
|
18
|
-
linkerJitMode: (_b = options.linkerJitMode) !== null && _b !== void 0 ? _b : DEFAULT_LINKER_OPTIONS.linkerJitMode,
|
|
19
|
-
unknownDeclarationVersionHandling: (_c = options.unknownDeclarationVersionHandling) !== null && _c !== void 0 ? _c : DEFAULT_LINKER_OPTIONS.unknownDeclarationVersionHandling,
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2VyX2Vudmlyb25tZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL2xpbmtlci9zcmMvZmlsZV9saW5rZXIvbGlua2VyX2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBSS9ELE9BQU8sRUFBQyxzQkFBc0IsRUFBZ0IsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRXhDLE1BQU0sT0FBTyxpQkFBaUI7SUFLNUIsWUFDYSxVQUE4QixFQUFXLE1BQWMsRUFDdkQsSUFBMEIsRUFBVyxPQUE0QyxFQUNqRixPQUFzQjtRQUZ0QixlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQUFXLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDdkQsU0FBSSxHQUFKLElBQUksQ0FBc0I7UUFBVyxZQUFPLEdBQVAsT0FBTyxDQUFxQztRQUNqRixZQUFPLEdBQVAsT0FBTyxDQUFlO1FBUDFCLGVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBMEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLHFCQUFnQixHQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUt6RCxDQUFDO0lBRXZDLE1BQU0sQ0FBQyxNQUFNLENBQ1QsVUFBOEIsRUFBRSxNQUFjLEVBQUUsSUFBMEIsRUFDMUUsT0FBNEMsRUFDNUMsT0FBK0I7O1FBQ2pDLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7WUFDOUQsYUFBYSxFQUFFLE1BQUEsT0FBTyxDQUFDLGFBQWEsbUNBQUksc0JBQXNCLENBQUMsYUFBYTtZQUM1RSxhQUFhLEVBQUUsTUFBQSxPQUFPLENBQUMsYUFBYSxtQ0FBSSxzQkFBc0IsQ0FBQyxhQUFhO1lBQzVFLGlDQUFpQyxFQUFFLE1BQUEsT0FBTyxDQUFDLGlDQUFpQyxtQ0FDeEUsc0JBQXNCLENBQUMsaUNBQWlDO1NBQzdELENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtSZWFkb25seUZpbGVTeXN0ZW19IGZyb20gJy4uLy4uLy4uL3NyYy9uZ3RzYy9maWxlX3N5c3RlbSc7XG5pbXBvcnQge0xvZ2dlcn0gZnJvbSAnLi4vLi4vLi4vc3JjL25ndHNjL2xvZ2dpbmcnO1xuaW1wb3J0IHtTb3VyY2VGaWxlTG9hZGVyfSBmcm9tICcuLi8uLi8uLi9zcmMvbmd0c2Mvc291cmNlbWFwcyc7XG5pbXBvcnQge0FzdEZhY3Rvcnl9IGZyb20gJy4uLy4uLy4uL3NyYy9uZ3RzYy90cmFuc2xhdG9yJztcblxuaW1wb3J0IHtBc3RIb3N0fSBmcm9tICcuLi9hc3QvYXN0X2hvc3QnO1xuaW1wb3J0IHtERUZBVUxUX0xJTktFUl9PUFRJT05TLCBMaW5rZXJPcHRpb25zfSBmcm9tICcuL2xpbmtlcl9vcHRpb25zJztcbmltcG9ydCB7VHJhbnNsYXRvcn0gZnJvbSAnLi90cmFuc2xhdG9yJztcblxuZXhwb3J0IGNsYXNzIExpbmtlckVudmlyb25tZW50PFRTdGF0ZW1lbnQsIFRFeHByZXNzaW9uPiB7XG4gIHJlYWRvbmx5IHRyYW5zbGF0b3IgPSBuZXcgVHJhbnNsYXRvcjxUU3RhdGVtZW50LCBURXhwcmVzc2lvbj4odGhpcy5mYWN0b3J5KTtcbiAgcmVhZG9ubHkgc291cmNlRmlsZUxvYWRlciA9XG4gICAgICB0aGlzLm9wdGlvbnMuc291cmNlTWFwcGluZyA/IG5ldyBTb3VyY2VGaWxlTG9hZGVyKHRoaXMuZmlsZVN5c3RlbSwgdGhpcy5sb2dnZXIsIHt9KSA6IG51bGw7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICAgIHJlYWRvbmx5IGZpbGVTeXN0ZW06IFJlYWRvbmx5RmlsZVN5c3RlbSwgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXIsXG4gICAgICByZWFkb25seSBob3N0OiBBc3RIb3N0PFRFeHByZXNzaW9uPiwgcmVhZG9ubHkgZmFjdG9yeTogQXN0RmFjdG9yeTxUU3RhdGVtZW50LCBURXhwcmVzc2lvbj4sXG4gICAgICByZWFkb25seSBvcHRpb25zOiBMaW5rZXJPcHRpb25zKSB7fVxuXG4gIHN0YXRpYyBjcmVhdGU8VFN0YXRlbWVudCwgVEV4cHJlc3Npb24+KFxuICAgICAgZmlsZVN5c3RlbTogUmVhZG9ubHlGaWxlU3lzdGVtLCBsb2dnZXI6IExvZ2dlciwgaG9zdDogQXN0SG9zdDxURXhwcmVzc2lvbj4sXG4gICAgICBmYWN0b3J5OiBBc3RGYWN0b3J5PFRTdGF0ZW1lbnQsIFRFeHByZXNzaW9uPixcbiAgICAgIG9wdGlvbnM6IFBhcnRpYWw8TGlua2VyT3B0aW9ucz4pOiBMaW5rZXJFbnZpcm9ubWVudDxUU3RhdGVtZW50LCBURXhwcmVzc2lvbj4ge1xuICAgIHJldHVybiBuZXcgTGlua2VyRW52aXJvbm1lbnQoZmlsZVN5c3RlbSwgbG9nZ2VyLCBob3N0LCBmYWN0b3J5LCB7XG4gICAgICBzb3VyY2VNYXBwaW5nOiBvcHRpb25zLnNvdXJjZU1hcHBpbmcgPz8gREVGQVVMVF9MSU5LRVJfT1BUSU9OUy5zb3VyY2VNYXBwaW5nLFxuICAgICAgbGlua2VySml0TW9kZTogb3B0aW9ucy5saW5rZXJKaXRNb2RlID8/IERFRkFVTFRfTElOS0VSX09QVElPTlMubGlua2VySml0TW9kZSxcbiAgICAgIHVua25vd25EZWNsYXJhdGlvblZlcnNpb25IYW5kbGluZzogb3B0aW9ucy51bmtub3duRGVjbGFyYXRpb25WZXJzaW9uSGFuZGxpbmcgPz9cbiAgICAgICAgICBERUZBVUxUX0xJTktFUl9PUFRJT05TLnVua25vd25EZWNsYXJhdGlvblZlcnNpb25IYW5kbGluZyxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -1,16 +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
|
-
/**
|
|
9
|
-
* The default linker options to use if properties are not provided.
|
|
10
|
-
*/
|
|
11
|
-
export const DEFAULT_LINKER_OPTIONS = {
|
|
12
|
-
sourceMapping: true,
|
|
13
|
-
linkerJitMode: false,
|
|
14
|
-
unknownDeclarationVersionHandling: 'error',
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2VyX29wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL3NyYy9maWxlX2xpbmtlci9saW5rZXJfb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFtQ0g7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBa0I7SUFDbkQsYUFBYSxFQUFFLElBQUk7SUFDbkIsYUFBYSxFQUFFLEtBQUs7SUFDcEIsaUNBQWlDLEVBQUUsT0FBTztDQUMzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qKlxuICogT3B0aW9ucyB0byBjb25maWd1cmUgdGhlIGxpbmtpbmcgYmVoYXZpb3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlua2VyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVzZSBzb3VyY2UtbWFwcGluZyB0byBjb21wdXRlIHRoZSBvcmlnaW5hbCBzb3VyY2UgZm9yIGV4dGVybmFsIHRlbXBsYXRlcy5cbiAgICogVGhlIGRlZmF1bHQgaXMgYHRydWVgLlxuICAgKi9cbiAgc291cmNlTWFwcGluZzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhpcyBvcHRpb24gdGVsbHMgdGhlIGxpbmtlciB0byBnZW5lcmF0ZSBpbmZvcm1hdGlvbiB1c2VkIGJ5IGEgZG93bnN0cmVhbSBKSVQgY29tcGlsZXIuXG4gICAqXG4gICAqIFNwZWNpZmljYWxseSwgaW4gSklUIG1vZGUsIE5nTW9kdWxlIGRlZmluaXRpb25zIG11c3QgZGVzY3JpYmUgdGhlIGBkZWNsYXJhdGlvbnNgLCBgaW1wb3J0c2AsXG4gICAqIGBleHBvcnRzYCwgZXRjLCB3aGljaCBhcmUgb3RoZXJ3aXNlIG5vdCBuZWVkZWQuXG4gICAqL1xuICBsaW5rZXJKaXRNb2RlOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBIb3cgdG8gaGFuZGxlIGEgc2l0dWF0aW9uIHdoZXJlIGEgcGFydGlhbCBkZWNsYXJhdGlvbiBtYXRjaGVzIG5vbmUgb2YgdGhlIHN1cHBvcnRlZFxuICAgKiBwYXJ0aWFsLWxpbmtlciB2ZXJzaW9ucy5cbiAgICpcbiAgICogLSBgZXJyb3JgIC0gdGhlIHZlcnNpb24gbWlzbWF0Y2ggaXMgYSBmYXRhbCBlcnJvci5cbiAgICogLSBgd2FybmAgLSBhIHdhcm5pbmcgaXMgc2VudCB0byB0aGUgbG9nZ2VyIGJ1dCB0aGUgbW9zdCByZWNlbnQgcGFydGlhbC1saW5rZXJcbiAgICogICB3aWxsIGF0dGVtcHQgdG8gcHJvY2VzcyB0aGUgZGVjbGFyYXRpb24gYW55d2F5LlxuICAgKiAtIGBpZ25vcmVgIC0gdGhlIG1vc3QgcmVjZW50IHBhcnRpYWwtbGlua2VyIHdpbGwsIHNpbGVudGx5LCBhdHRlbXB0IHRvIHByb2Nlc3NcbiAgICogICB0aGUgZGVjbGFyYXRpb24uXG4gICAqXG4gICAqIFRoZSBkZWZhdWx0IGlzIGBlcnJvcmAuXG4gICAqL1xuICB1bmtub3duRGVjbGFyYXRpb25WZXJzaW9uSGFuZGxpbmc6ICdpZ25vcmUnfCd3YXJuJ3wnZXJyb3InO1xufVxuXG4vKipcbiAqIFRoZSBkZWZhdWx0IGxpbmtlciBvcHRpb25zIHRvIHVzZSBpZiBwcm9wZXJ0aWVzIGFyZSBub3QgcHJvdmlkZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0xJTktFUl9PUFRJT05TOiBMaW5rZXJPcHRpb25zID0ge1xuICBzb3VyY2VNYXBwaW5nOiB0cnVlLFxuICBsaW5rZXJKaXRNb2RlOiBmYWxzZSxcbiAgdW5rbm93bkRlY2xhcmF0aW9uVmVyc2lvbkhhbmRsaW5nOiAnZXJyb3InLFxufTtcbiJdfQ==
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
import { declarationFunctions } from './partial_linkers/partial_linker_selector';
|
|
9
|
-
/**
|
|
10
|
-
* Determines if the provided source file may need to be processed by the linker, i.e. whether it
|
|
11
|
-
* potentially contains any declarations. If true is returned, then the source file should be
|
|
12
|
-
* processed by the linker as it may contain declarations that need to be fully compiled. If false
|
|
13
|
-
* is returned, parsing and processing of the source file can safely be skipped to improve
|
|
14
|
-
* performance.
|
|
15
|
-
*
|
|
16
|
-
* This function may return true even for source files that don't actually contain any declarations
|
|
17
|
-
* that need to be compiled.
|
|
18
|
-
*
|
|
19
|
-
* @param path the absolute path of the source file for which to determine whether linking may be
|
|
20
|
-
* needed.
|
|
21
|
-
* @param source the source file content as a string.
|
|
22
|
-
* @returns whether the source file may contain declarations that need to be linked.
|
|
23
|
-
*/
|
|
24
|
-
export function needsLinking(path, source) {
|
|
25
|
-
return declarationFunctions.some(fn => source.includes(fn));
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVlZHNfbGlua2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9saW5rZXIvc3JjL2ZpbGVfbGlua2VyL25lZWRzX2xpbmtpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFFL0U7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLElBQVksRUFBRSxNQUFjO0lBQ3ZELE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtkZWNsYXJhdGlvbkZ1bmN0aW9uc30gZnJvbSAnLi9wYXJ0aWFsX2xpbmtlcnMvcGFydGlhbF9saW5rZXJfc2VsZWN0b3InO1xuXG4vKipcbiAqIERldGVybWluZXMgaWYgdGhlIHByb3ZpZGVkIHNvdXJjZSBmaWxlIG1heSBuZWVkIHRvIGJlIHByb2Nlc3NlZCBieSB0aGUgbGlua2VyLCBpLmUuIHdoZXRoZXIgaXRcbiAqIHBvdGVudGlhbGx5IGNvbnRhaW5zIGFueSBkZWNsYXJhdGlvbnMuIElmIHRydWUgaXMgcmV0dXJuZWQsIHRoZW4gdGhlIHNvdXJjZSBmaWxlIHNob3VsZCBiZVxuICogcHJvY2Vzc2VkIGJ5IHRoZSBsaW5rZXIgYXMgaXQgbWF5IGNvbnRhaW4gZGVjbGFyYXRpb25zIHRoYXQgbmVlZCB0byBiZSBmdWxseSBjb21waWxlZC4gSWYgZmFsc2VcbiAqIGlzIHJldHVybmVkLCBwYXJzaW5nIGFuZCBwcm9jZXNzaW5nIG9mIHRoZSBzb3VyY2UgZmlsZSBjYW4gc2FmZWx5IGJlIHNraXBwZWQgdG8gaW1wcm92ZVxuICogcGVyZm9ybWFuY2UuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBtYXkgcmV0dXJuIHRydWUgZXZlbiBmb3Igc291cmNlIGZpbGVzIHRoYXQgZG9uJ3QgYWN0dWFsbHkgY29udGFpbiBhbnkgZGVjbGFyYXRpb25zXG4gKiB0aGF0IG5lZWQgdG8gYmUgY29tcGlsZWQuXG4gKlxuICogQHBhcmFtIHBhdGggdGhlIGFic29sdXRlIHBhdGggb2YgdGhlIHNvdXJjZSBmaWxlIGZvciB3aGljaCB0byBkZXRlcm1pbmUgd2hldGhlciBsaW5raW5nIG1heSBiZVxuICogbmVlZGVkLlxuICogQHBhcmFtIHNvdXJjZSB0aGUgc291cmNlIGZpbGUgY29udGVudCBhcyBhIHN0cmluZy5cbiAqIEByZXR1cm5zIHdoZXRoZXIgdGhlIHNvdXJjZSBmaWxlIG1heSBjb250YWluIGRlY2xhcmF0aW9ucyB0aGF0IG5lZWQgdG8gYmUgbGlua2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbmVlZHNMaW5raW5nKHBhdGg6IHN0cmluZywgc291cmNlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGRlY2xhcmF0aW9uRnVuY3Rpb25zLnNvbWUoZm4gPT4gc291cmNlLmluY2x1ZGVzKGZuKSk7XG59XG4iXX0=
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
import { compileClassMetadata } from '@angular/compiler';
|
|
9
|
-
/**
|
|
10
|
-
* A `PartialLinker` that is designed to process `ɵɵngDeclareClassMetadata()` call expressions.
|
|
11
|
-
*/
|
|
12
|
-
export class PartialClassMetadataLinkerVersion1 {
|
|
13
|
-
linkPartialDeclaration(constantPool, metaObj) {
|
|
14
|
-
const meta = toR3ClassMetadata(metaObj);
|
|
15
|
-
return compileClassMetadata(meta);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Derives the `R3ClassMetadata` structure from the AST object.
|
|
20
|
-
*/
|
|
21
|
-
export function toR3ClassMetadata(metaObj) {
|
|
22
|
-
return {
|
|
23
|
-
type: metaObj.getOpaque('type'),
|
|
24
|
-
decorators: metaObj.getOpaque('decorators'),
|
|
25
|
-
ctorParameters: metaObj.has('ctorParameters') ? metaObj.getOpaque('ctorParameters') : null,
|
|
26
|
-
propDecorators: metaObj.has('propDecorators') ? metaObj.getOpaque('propDecorators') : null,
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGlhbF9jbGFzc19tZXRhZGF0YV9saW5rZXJfMS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9saW5rZXIvc3JjL2ZpbGVfbGlua2VyL3BhcnRpYWxfbGlua2Vycy9wYXJ0aWFsX2NsYXNzX21ldGFkYXRhX2xpbmtlcl8xLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBQyxvQkFBb0IsRUFBOEUsTUFBTSxtQkFBbUIsQ0FBQztBQU9wSTs7R0FFRztBQUNILE1BQU0sT0FBTyxrQ0FBa0M7SUFDN0Msc0JBQXNCLENBQ2xCLFlBQTBCLEVBQzFCLE9BQXFEO1FBQ3ZELE1BQU0sSUFBSSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQzdCLE9BQXVEO0lBQ3pELE9BQU87UUFDTCxJQUFJLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDL0IsVUFBVSxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1FBQzNDLGNBQWMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtRQUMxRixjQUFjLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7S0FDM0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7Y29tcGlsZUNsYXNzTWV0YWRhdGEsIENvbnN0YW50UG9vbCwgUjNDbGFzc01ldGFkYXRhLCBSM0RlY2xhcmVDbGFzc01ldGFkYXRhLCBSM1BhcnRpYWxEZWNsYXJhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0ICogYXMgbyBmcm9tICdAYW5ndWxhci9jb21waWxlci9zcmMvb3V0cHV0L291dHB1dF9hc3QnO1xuXG5pbXBvcnQge0FzdE9iamVjdH0gZnJvbSAnLi4vLi4vYXN0L2FzdF92YWx1ZSc7XG5cbmltcG9ydCB7UGFydGlhbExpbmtlcn0gZnJvbSAnLi9wYXJ0aWFsX2xpbmtlcic7XG5cbi8qKlxuICogQSBgUGFydGlhbExpbmtlcmAgdGhhdCBpcyBkZXNpZ25lZCB0byBwcm9jZXNzIGDJtcm1bmdEZWNsYXJlQ2xhc3NNZXRhZGF0YSgpYCBjYWxsIGV4cHJlc3Npb25zLlxuICovXG5leHBvcnQgY2xhc3MgUGFydGlhbENsYXNzTWV0YWRhdGFMaW5rZXJWZXJzaW9uMTxURXhwcmVzc2lvbj4gaW1wbGVtZW50cyBQYXJ0aWFsTGlua2VyPFRFeHByZXNzaW9uPiB7XG4gIGxpbmtQYXJ0aWFsRGVjbGFyYXRpb24oXG4gICAgICBjb25zdGFudFBvb2w6IENvbnN0YW50UG9vbCxcbiAgICAgIG1ldGFPYmo6IEFzdE9iamVjdDxSM1BhcnRpYWxEZWNsYXJhdGlvbiwgVEV4cHJlc3Npb24+KTogby5FeHByZXNzaW9uIHtcbiAgICBjb25zdCBtZXRhID0gdG9SM0NsYXNzTWV0YWRhdGEobWV0YU9iaik7XG4gICAgcmV0dXJuIGNvbXBpbGVDbGFzc01ldGFkYXRhKG1ldGEpO1xuICB9XG59XG5cbi8qKlxuICogRGVyaXZlcyB0aGUgYFIzQ2xhc3NNZXRhZGF0YWAgc3RydWN0dXJlIGZyb20gdGhlIEFTVCBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1IzQ2xhc3NNZXRhZGF0YTxURXhwcmVzc2lvbj4oXG4gICAgbWV0YU9iajogQXN0T2JqZWN0PFIzRGVjbGFyZUNsYXNzTWV0YWRhdGEsIFRFeHByZXNzaW9uPik6IFIzQ2xhc3NNZXRhZGF0YSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogbWV0YU9iai5nZXRPcGFxdWUoJ3R5cGUnKSxcbiAgICBkZWNvcmF0b3JzOiBtZXRhT2JqLmdldE9wYXF1ZSgnZGVjb3JhdG9ycycpLFxuICAgIGN0b3JQYXJhbWV0ZXJzOiBtZXRhT2JqLmhhcygnY3RvclBhcmFtZXRlcnMnKSA/IG1ldGFPYmouZ2V0T3BhcXVlKCdjdG9yUGFyYW1ldGVycycpIDogbnVsbCxcbiAgICBwcm9wRGVjb3JhdG9yczogbWV0YU9iai5oYXMoJ3Byb3BEZWNvcmF0b3JzJykgPyBtZXRhT2JqLmdldE9wYXF1ZSgncHJvcERlY29yYXRvcnMnKSA6IG51bGwsXG4gIH07XG59XG4iXX0=
|