@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
package/index.mjs
DELETED
|
@@ -1,20 +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 { NodeJSFileSystem, setFileSystem } from './src/ngtsc/file_system';
|
|
9
|
-
export { StaticReflector, StaticSymbol } from '@angular/compiler';
|
|
10
|
-
export { VERSION } from './src/version';
|
|
11
|
-
export * from './src/metadata';
|
|
12
|
-
export * from './src/transformers/api';
|
|
13
|
-
export * from './src/transformers/entry_points';
|
|
14
|
-
export * from './src/perform_compile';
|
|
15
|
-
export * from './src/tooling';
|
|
16
|
-
export { ngToTsDiagnostic } from './src/transformers/util';
|
|
17
|
-
export { NgTscPlugin } from './src/ngtsc/tsc_plugin';
|
|
18
|
-
export { NgtscProgram } from './src/ngtsc/program';
|
|
19
|
-
setFileSystem(new NodeJSFileSystem());
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsT0FBTyxFQUFDLGdCQUFnQixFQUFFLGFBQWEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRXhFLE9BQU8sRUFBMEQsZUFBZSxFQUFFLFlBQVksRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3pILE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFdEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsaUNBQWlDLENBQUM7QUFFaEQsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGVBQWUsQ0FBQztBQUs5QixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRWpELGFBQWEsQ0FBQyxJQUFJLGdCQUFnQixFQUFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtOb2RlSlNGaWxlU3lzdGVtLCBzZXRGaWxlU3lzdGVtfSBmcm9tICcuL3NyYy9uZ3RzYy9maWxlX3N5c3RlbSc7XG5cbmV4cG9ydCB7QW90Q29tcGlsZXJIb3N0LCBBb3RDb21waWxlckhvc3QgYXMgU3RhdGljUmVmbGVjdG9ySG9zdCwgU3RhdGljUmVmbGVjdG9yLCBTdGF0aWNTeW1ib2x9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmV4cG9ydCB7VkVSU0lPTn0gZnJvbSAnLi9zcmMvdmVyc2lvbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vc3JjL21ldGFkYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3RyYW5zZm9ybWVycy9hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvdHJhbnNmb3JtZXJzL2VudHJ5X3BvaW50cyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc3JjL3BlcmZvcm1fY29tcGlsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy90b29saW5nJztcblxuLy8gVE9ETyh0Ym9zY2gpOiByZW1vdmUgdGhpcyBvbmNlIHVzYWdlcyBpbiBHMyBhcmUgY2hhbmdlZCB0byBgQ29tcGlsZXJPcHRpb25zYFxuZXhwb3J0IHtDb21waWxlck9wdGlvbnMgYXMgQW5ndWxhckNvbXBpbGVyT3B0aW9uc30gZnJvbSAnLi9zcmMvdHJhbnNmb3JtZXJzL2FwaSc7XG5cbmV4cG9ydCB7bmdUb1RzRGlhZ25vc3RpY30gZnJvbSAnLi9zcmMvdHJhbnNmb3JtZXJzL3V0aWwnO1xuZXhwb3J0IHtOZ1RzY1BsdWdpbn0gZnJvbSAnLi9zcmMvbmd0c2MvdHNjX3BsdWdpbic7XG5leHBvcnQge05ndHNjUHJvZ3JhbX0gZnJvbSAnLi9zcmMvbmd0c2MvcHJvZ3JhbSc7XG5cbnNldEZpbGVTeXN0ZW0obmV3IE5vZGVKU0ZpbGVTeXN0ZW0oKSk7XG4iXX0=
|
|
File without changes
|
package/linker/babel/index.mjs
DELETED
|
@@ -1,11 +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 { defaultLinkerPlugin } from './src/babel_plugin';
|
|
9
|
-
export { createEs2015LinkerPlugin } from './src/es2015_linker_plugin';
|
|
10
|
-
export default defaultLinkerPlugin;
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL2JhYmVsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRXZELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLGVBQWUsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7ZGVmYXVsdExpbmtlclBsdWdpbn0gZnJvbSAnLi9zcmMvYmFiZWxfcGx1Z2luJztcblxuZXhwb3J0IHtjcmVhdGVFczIwMTVMaW5rZXJQbHVnaW59IGZyb20gJy4vc3JjL2VzMjAxNV9saW5rZXJfcGx1Z2luJztcbmV4cG9ydCBkZWZhdWx0IGRlZmF1bHRMaW5rZXJQbHVnaW47XG4iXX0=
|
|
@@ -1,137 +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 t from '@babel/types';
|
|
9
|
-
import { assert } from '../../../../linker';
|
|
10
|
-
/**
|
|
11
|
-
* A Babel flavored implementation of the AstFactory.
|
|
12
|
-
*/
|
|
13
|
-
export class BabelAstFactory {
|
|
14
|
-
constructor(
|
|
15
|
-
/** The absolute path to the source file being compiled. */
|
|
16
|
-
sourceUrl) {
|
|
17
|
-
this.sourceUrl = sourceUrl;
|
|
18
|
-
this.createArrayLiteral = t.arrayExpression;
|
|
19
|
-
this.createBlock = t.blockStatement;
|
|
20
|
-
this.createConditional = t.conditionalExpression;
|
|
21
|
-
this.createExpressionStatement = t.expressionStatement;
|
|
22
|
-
this.createIdentifier = t.identifier;
|
|
23
|
-
this.createIfStatement = t.ifStatement;
|
|
24
|
-
this.createNewExpression = t.newExpression;
|
|
25
|
-
this.createParenthesizedExpression = t.parenthesizedExpression;
|
|
26
|
-
this.createReturnStatement = t.returnStatement;
|
|
27
|
-
this.createThrowStatement = t.throwStatement;
|
|
28
|
-
this.createUnaryExpression = t.unaryExpression;
|
|
29
|
-
}
|
|
30
|
-
attachComments(statement, leadingComments) {
|
|
31
|
-
// We must process the comments in reverse because `t.addComment()` will add new ones in front.
|
|
32
|
-
for (let i = leadingComments.length - 1; i >= 0; i--) {
|
|
33
|
-
const comment = leadingComments[i];
|
|
34
|
-
t.addComment(statement, 'leading', comment.toString(), !comment.multiline);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
createAssignment(target, value) {
|
|
38
|
-
assert(target, isLExpression, 'must be a left hand side expression');
|
|
39
|
-
return t.assignmentExpression('=', target, value);
|
|
40
|
-
}
|
|
41
|
-
createBinaryExpression(leftOperand, operator, rightOperand) {
|
|
42
|
-
switch (operator) {
|
|
43
|
-
case '&&':
|
|
44
|
-
case '||':
|
|
45
|
-
case '??':
|
|
46
|
-
return t.logicalExpression(operator, leftOperand, rightOperand);
|
|
47
|
-
default:
|
|
48
|
-
return t.binaryExpression(operator, leftOperand, rightOperand);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
createCallExpression(callee, args, pure) {
|
|
52
|
-
const call = t.callExpression(callee, args);
|
|
53
|
-
if (pure) {
|
|
54
|
-
t.addComment(call, 'leading', ' @__PURE__ ', /* line */ false);
|
|
55
|
-
}
|
|
56
|
-
return call;
|
|
57
|
-
}
|
|
58
|
-
createElementAccess(expression, element) {
|
|
59
|
-
return t.memberExpression(expression, element, /* computed */ true);
|
|
60
|
-
}
|
|
61
|
-
createFunctionDeclaration(functionName, parameters, body) {
|
|
62
|
-
assert(body, t.isBlockStatement, 'a block');
|
|
63
|
-
return t.functionDeclaration(t.identifier(functionName), parameters.map(param => t.identifier(param)), body);
|
|
64
|
-
}
|
|
65
|
-
createFunctionExpression(functionName, parameters, body) {
|
|
66
|
-
assert(body, t.isBlockStatement, 'a block');
|
|
67
|
-
const name = functionName !== null ? t.identifier(functionName) : null;
|
|
68
|
-
return t.functionExpression(name, parameters.map(param => t.identifier(param)), body);
|
|
69
|
-
}
|
|
70
|
-
createLiteral(value) {
|
|
71
|
-
if (typeof value === 'string') {
|
|
72
|
-
return t.stringLiteral(value);
|
|
73
|
-
}
|
|
74
|
-
else if (typeof value === 'number') {
|
|
75
|
-
return t.numericLiteral(value);
|
|
76
|
-
}
|
|
77
|
-
else if (typeof value === 'boolean') {
|
|
78
|
-
return t.booleanLiteral(value);
|
|
79
|
-
}
|
|
80
|
-
else if (value === undefined) {
|
|
81
|
-
return t.identifier('undefined');
|
|
82
|
-
}
|
|
83
|
-
else if (value === null) {
|
|
84
|
-
return t.nullLiteral();
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
throw new Error(`Invalid literal: ${value} (${typeof value})`);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
createObjectLiteral(properties) {
|
|
91
|
-
return t.objectExpression(properties.map(prop => {
|
|
92
|
-
const key = prop.quoted ? t.stringLiteral(prop.propertyName) : t.identifier(prop.propertyName);
|
|
93
|
-
return t.objectProperty(key, prop.value);
|
|
94
|
-
}));
|
|
95
|
-
}
|
|
96
|
-
createPropertyAccess(expression, propertyName) {
|
|
97
|
-
return t.memberExpression(expression, t.identifier(propertyName), /* computed */ false);
|
|
98
|
-
}
|
|
99
|
-
createTaggedTemplate(tag, template) {
|
|
100
|
-
const elements = template.elements.map((element, i) => this.setSourceMapRange(t.templateElement(element, i === template.elements.length - 1), element.range));
|
|
101
|
-
return t.taggedTemplateExpression(tag, t.templateLiteral(elements, template.expressions));
|
|
102
|
-
}
|
|
103
|
-
createTypeOfExpression(expression) {
|
|
104
|
-
return t.unaryExpression('typeof', expression);
|
|
105
|
-
}
|
|
106
|
-
createVariableDeclaration(variableName, initializer, type) {
|
|
107
|
-
return t.variableDeclaration(type, [t.variableDeclarator(t.identifier(variableName), initializer)]);
|
|
108
|
-
}
|
|
109
|
-
setSourceMapRange(node, sourceMapRange) {
|
|
110
|
-
if (sourceMapRange === null) {
|
|
111
|
-
return node;
|
|
112
|
-
}
|
|
113
|
-
node.loc = {
|
|
114
|
-
// Add in the filename so that we can map to external template files.
|
|
115
|
-
// Note that Babel gets confused if you specify a filename when it is the original source
|
|
116
|
-
// file. This happens when the template is inline, in which case just use `undefined`.
|
|
117
|
-
filename: sourceMapRange.url !== this.sourceUrl ? sourceMapRange.url : undefined,
|
|
118
|
-
start: {
|
|
119
|
-
line: sourceMapRange.start.line + 1,
|
|
120
|
-
column: sourceMapRange.start.column,
|
|
121
|
-
},
|
|
122
|
-
end: {
|
|
123
|
-
line: sourceMapRange.end.line + 1,
|
|
124
|
-
column: sourceMapRange.end.column,
|
|
125
|
-
},
|
|
126
|
-
}; // Needed because the Babel typings for `loc` don't include `filename`.
|
|
127
|
-
node.start = sourceMapRange.start.offset;
|
|
128
|
-
node.end = sourceMapRange.end.offset;
|
|
129
|
-
return node;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
function isLExpression(expr) {
|
|
133
|
-
// Some LVal types are not expressions, which prevents us from using `t.isLVal()`
|
|
134
|
-
// directly with `assert()`.
|
|
135
|
-
return t.isLVal(expr);
|
|
136
|
-
}
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFiZWxfYXN0X2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL2JhYmVsL3NyYy9hc3QvYmFiZWxfYXN0X2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsT0FBTyxLQUFLLENBQUMsTUFBTSxjQUFjLENBQUM7QUFFbEMsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRzFDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFDMUI7SUFDSSwyREFBMkQ7SUFDbkQsU0FBaUI7UUFBakIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQVU3Qix1QkFBa0IsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDO1FBb0J2QyxnQkFBVyxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUM7UUFVL0Isc0JBQWlCLEdBQUcsQ0FBQyxDQUFDLHFCQUFxQixDQUFDO1FBTTVDLDhCQUF5QixHQUFHLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztRQWdCbEQscUJBQWdCLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUVoQyxzQkFBaUIsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDO1FBa0JsQyx3QkFBbUIsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBVXRDLGtDQUE2QixHQUFHLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQztRQU0xRCwwQkFBcUIsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDO1FBUzFDLHlCQUFvQixHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUM7UUFNeEMsMEJBQXFCLEdBQUcsQ0FBQyxDQUFDLGVBQWUsQ0FBQztJQWpIVixDQUFDO0lBRWpDLGNBQWMsQ0FBQyxTQUFzQixFQUFFLGVBQWlDO1FBQ3RFLCtGQUErRjtRQUMvRixLQUFLLElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FB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QUssRUFBRTtnQkFDTCxJQUFJLEVBQUUsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQztnQkFDbkMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsTUFBTTthQUNwQztZQUNELEdBQUcsRUFBRTtnQkFDSCxJQUFJLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQztnQkFDakMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTTthQUNsQztTQUNLLENBQUMsQ0FBRSx1RUFBdUU7UUFDbEYsSUFBSSxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUN6QyxJQUFJLENBQUMsR0FBRyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBRXJDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBRUQsU0FBUyxhQUFhLENBQUMsSUFBa0I7SUFDdkMsaUZBQWlGO0lBQ2pGLDRCQUE0QjtJQUM1QixPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0ICogYXMgdCBmcm9tICdAYmFiZWwvdHlwZXMnO1xuXG5pbXBvcnQge2Fzc2VydH0gZnJvbSAnLi4vLi4vLi4vLi4vbGlua2VyJztcbmltcG9ydCB7QXN0RmFjdG9yeSwgQmluYXJ5T3BlcmF0b3IsIExlYWRpbmdDb21tZW50LCBPYmplY3RMaXRlcmFsUHJvcGVydHksIFNvdXJjZU1hcFJhbmdlLCBUZW1wbGF0ZUxpdGVyYWwsIFZhcmlhYmxlRGVjbGFyYXRpb25UeXBlfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvbmd0c2MvdHJhbnNsYXRvcic7XG5cbi8qKlxuICogQSBCYWJlbCBmbGF2b3JlZCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgQXN0RmFjdG9yeS5cbiAqL1xuZXhwb3J0IGNsYXNzIEJhYmVsQXN0RmFjdG9yeSBpbXBsZW1lbnRzIEFzdEZhY3Rvcnk8dC5TdGF0ZW1lbnQsIHQuRXhwcmVzc2lvbj4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICAgIC8qKiBUaGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgc291cmNlIGZpbGUgYmVpbmcgY29tcGlsZWQuICovXG4gICAgICBwcml2YXRlIHNvdXJjZVVybDogc3RyaW5nKSB7fVxuXG4gIGF0dGFjaENvbW1lbnRzKHN0YXRlbWVudDogdC5TdGF0ZW1lbnQsIGxlYWRpbmdDb21tZW50czogTGVhZGluZ0NvbW1lbnRbXSk6IHZvaWQge1xuICAgIC8vIFdlIG11c3QgcHJvY2VzcyB0aGUgY29tbWVudHMgaW4gcmV2ZXJzZSBiZWNhdXNlIGB0LmFkZENvbW1lbnQoKWAgd2lsbCBhZGQgbmV3IG9uZXMgaW4gZnJvbnQuXG4gICAgZm9yIChsZXQgaSA9IGxlYWRpbmdDb21tZW50cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgY29uc3QgY29tbWVudCA9IGxlYWRpbmdDb21tZW50c1tpXTtcbiAgICAgIHQuYWRkQ29tbWVudChzdGF0ZW1lbnQsICdsZWFkaW5nJywgY29tbWVudC50b1N0cmluZygpLCAhY29tbWVudC5tdWx0aWxpbmUpO1xuICAgIH1cbiAgfVxuXG4gIGNyZWF0ZUFycmF5TGl0ZXJhbCA9IHQuYXJyYXlFeHByZXNzaW9uO1xuXG4gIGNyZWF0ZUFzc2lnbm1lbnQodGFyZ2V0OiB0LkV4cHJlc3Npb24sIHZhbHVlOiB0LkV4cHJlc3Npb24pOiB0LkV4cHJlc3Npb24ge1xuICAgIGFzc2VydCh0YXJnZXQsIGlzTEV4cHJlc3Npb24sICdtdXN0IGJlIGEgbGVmdCBoYW5kIHNpZGUgZXhwcmVzc2lvbicpO1xuICAgIHJldHVybiB0LmFzc2lnbm1lbnRFeHByZXNzaW9uKCc9JywgdGFyZ2V0LCB2YWx1ZSk7XG4gIH1cblxuICBjcmVhdGVCaW5hcnlFeHByZXNzaW9uKFxuICAgICAgbGVmdE9wZXJhbmQ6IHQuRXhwcmVzc2lvbiwgb3BlcmF0b3I6IEJpbmFyeU9wZXJhdG9yLFxuICAgICAgcmlnaHRPcGVyYW5kOiB0LkV4cHJlc3Npb24pOiB0LkV4cHJlc3Npb24ge1xuICAgIHN3aXRjaCAob3BlcmF0b3IpIHtcbiAgICAgIGNhc2UgJyYmJzpcbiAgICAgIGNhc2UgJ3x8JzpcbiAgICAgIGNhc2UgJz8/JzpcbiAgICAgICAgcmV0dXJuIHQubG9naWNhbEV4cHJlc3Npb24ob3BlcmF0b3IsIGxlZnRPcGVyYW5kLCByaWdodE9wZXJhbmQpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHQuYmluYXJ5RXhwcmVzc2lvbihvcGVyYXRvciwgbGVmdE9wZXJhbmQsIHJpZ2h0T3BlcmFuZCk7XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlQmxvY2sgPSB0LmJsb2NrU3RhdGVtZW50O1xuXG4gIGNyZWF0ZUNhbGxFeHByZXNzaW9uKGNhbGxlZTogdC5FeHByZXNzaW9uLCBhcmdzOiB0LkV4cHJlc3Npb25bXSwgcHVyZTogYm9vbGVhbik6IHQuRXhwcmVzc2lvbiB7XG4gICAgY29uc3QgY2FsbCA9IHQuY2FsbEV4cHJlc3Npb24oY2FsbGVlLCBhcmdzKTtcbiAgICBpZiAocHVyZSkge1xuICAgICAgdC5hZGRDb21tZW50KGNhbGwsICdsZWFkaW5nJywgJyBAX19QVVJFX18gJywgLyogbGluZSAqLyBmYWxzZSk7XG4gICAgfVxuICAgIHJldHVybiBjYWxsO1xuICB9XG5cbiAgY3JlYXRlQ29uZGl0aW9uYWwgPSB0LmNvbmRpdGlvbmFsRXhwcmVzc2lvbjtcblxuICBjcmVhdGVFbGVtZW50QWNjZXNzKGV4cHJlc3Npb246IHQuRXhwcmVzc2lvbiwgZWxlbWVudDogdC5FeHByZXNzaW9uKTogdC5FeHByZXNzaW9uIHtcbiAgICByZXR1cm4gdC5tZW1iZXJFeHByZXNzaW9uKGV4cHJlc3Npb24sIGVsZW1lbnQsIC8qIGNvbXB1dGVkICovIHRydWUpO1xuICB9XG5cbiAgY3JlYXRlRXhwcmVzc2lvblN0YXRlbWVudCA9IHQuZXhwcmVzc2lvblN0YXRlbWVudDtcblxuICBjcmVhdGVGdW5jdGlvbkRlY2xhcmF0aW9uKGZ1bmN0aW9uTmFtZTogc3RyaW5nLCBwYXJhbWV0ZXJzOiBzdHJpbmdbXSwgYm9keTogdC5TdGF0ZW1lbnQpOlxuICAgICAgdC5TdGF0ZW1lbnQge1xuICAgIGFzc2VydChib2R5LCB0LmlzQmxvY2tTdGF0ZW1lbnQsICdhIGJsb2NrJyk7XG4gICAgcmV0dXJuIHQuZnVuY3Rpb25EZWNsYXJhdGlvbihcbiAgICAgICAgdC5pZGVudGlmaWVyKGZ1bmN0aW9uTmFtZSksIHBhcmFtZXRlcnMubWFwKHBhcmFtID0+IHQuaWRlbnRpZmllcihwYXJhbSkpLCBib2R5KTtcbiAgfVxuXG4gIGNyZWF0ZUZ1bmN0aW9uRXhwcmVzc2lvbihmdW5jdGlvbk5hbWU6IHN0cmluZ3xudWxsLCBwYXJhbWV0ZXJzOiBzdHJpbmdbXSwgYm9keTogdC5TdGF0ZW1lbnQpOlxuICAgICAgdC5FeHByZXNzaW9uIHtcbiAgICBhc3NlcnQoYm9keSwgdC5pc0Jsb2NrU3RhdGVtZW50LCAnYSBibG9jaycpO1xuICAgIGNvbnN0IG5hbWUgPSBmdW5jdGlvbk5hbWUgIT09IG51bGwgPyB0LmlkZW50aWZpZXIoZnVuY3Rpb25OYW1lKSA6IG51bGw7XG4gICAgcmV0dXJuIHQuZnVuY3Rpb25FeHByZXNzaW9uKG5hbWUsIHBhcmFtZXRlcnMubWFwKHBhcmFtID0+IHQuaWRlbnRpZmllcihwYXJhbSkpLCBib2R5KTtcbiAgfVxuXG4gIGNyZWF0ZUlkZW50aWZpZXIgPSB0LmlkZW50aWZpZXI7XG5cbiAgY3JlYXRlSWZTdGF0ZW1lbnQgPSB0LmlmU3RhdGVtZW50O1xuXG4gIGNyZWF0ZUxpdGVyYWwodmFsdWU6IHN0cmluZ3xudW1iZXJ8Ym9vbGVhbnxudWxsfHVuZGVmaW5lZCk6IHQuRXhwcmVzc2lvbiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiB0LnN0cmluZ0xpdGVyYWwodmFsdWUpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIHQubnVtZXJpY0xpdGVyYWwodmFsdWUpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHJldHVybiB0LmJvb2xlYW5MaXRlcmFsKHZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0LmlkZW50aWZpZXIoJ3VuZGVmaW5lZCcpO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0Lm51bGxMaXRlcmFsKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBsaXRlcmFsOiAke3ZhbHVlfSAoJHt0eXBlb2YgdmFsdWV9KWApO1xuICAgIH1cbiAgfVxuXG4gIGNyZWF0ZU5ld0V4cHJlc3Npb24gPSB0Lm5ld0V4cHJlc3Npb247XG5cbiAgY3JlYXRlT2JqZWN0TGl0ZXJhbChwcm9wZXJ0aWVzOiBPYmplY3RMaXRlcmFsUHJvcGVydHk8dC5FeHByZXNzaW9uPltdKTogdC5FeHByZXNzaW9uIHtcbiAgICByZXR1cm4gdC5vYmplY3RFeHByZXNzaW9uKHByb3BlcnRpZXMubWFwKHByb3AgPT4ge1xuICAgICAgY29uc3Qga2V5ID1cbiAgICAgICAgICBwcm9wLnF1b3RlZCA/IHQuc3RyaW5nTGl0ZXJhbChwcm9wLnByb3BlcnR5TmFtZSkgOiB0LmlkZW50aWZpZXIocHJvcC5wcm9wZXJ0eU5hbWUpO1xuICAgICAgcmV0dXJuIHQub2JqZWN0UHJvcGVydHkoa2V5LCBwcm9wLnZhbHVlKTtcbiAgICB9KSk7XG4gIH1cblxuICBjcmVhdGVQYXJlbnRoZXNpemVkRXhwcmVzc2lvbiA9IHQucGFyZW50aGVzaXplZEV4cHJlc3Npb247XG5cbiAgY3JlYXRlUHJvcGVydHlBY2Nlc3MoZXhwcmVzc2lvbjogdC5FeHByZXNzaW9uLCBwcm9wZXJ0eU5hbWU6IHN0cmluZyk6IHQuRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIHQubWVtYmVyRXhwcmVzc2lvbihleHByZXNzaW9uLCB0LmlkZW50aWZpZXIocHJvcGVydHlOYW1lKSwgLyogY29tcHV0ZWQgKi8gZmFsc2UpO1xuICB9XG5cbiAgY3JlYXRlUmV0dXJuU3RhdGVtZW50ID0gdC5yZXR1cm5TdGF0ZW1lbnQ7XG5cbiAgY3JlYXRlVGFnZ2VkVGVtcGxhdGUodGFnOiB0LkV4cHJlc3Npb24sIHRlbXBsYXRlOiBUZW1wbGF0ZUxpdGVyYWw8dC5FeHByZXNzaW9uPik6IHQuRXhwcmVzc2lvbiB7XG4gICAgY29uc3QgZWxlbWVudHMgPSB0ZW1wbGF0ZS5lbGVtZW50cy5tYXAoXG4gICAgICAgIChlbGVtZW50LCBpKSA9PiB0aGlzLnNldFNvdXJjZU1hcFJhbmdlKFxuICAgICAgICAgICAgdC50ZW1wbGF0ZUVsZW1lbnQoZWxlbWVudCwgaSA9PT0gdGVtcGxhdGUuZWxlbWVudHMubGVuZ3RoIC0gMSksIGVsZW1lbnQucmFuZ2UpKTtcbiAgICByZXR1cm4gdC50YWdnZWRUZW1wbGF0ZUV4cHJlc3Npb24odGFnLCB0LnRlbXBsYXRlTGl0ZXJhbChlbGVtZW50cywgdGVtcGxhdGUuZXhwcmVzc2lvbnMpKTtcbiAgfVxuXG4gIGNyZWF0ZVRocm93U3RhdGVtZW50ID0gdC50aHJvd1N0YXRlbWVudDtcblxuICBjcmVhdGVUeXBlT2ZFeHByZXNzaW9uKGV4cHJlc3Npb246IHQuRXhwcmVzc2lvbik6IHQuRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIHQudW5hcnlFeHByZXNzaW9uKCd0eXBlb2YnLCBleHByZXNzaW9uKTtcbiAgfVxuXG4gIGNyZWF0ZVVuYXJ5RXhwcmVzc2lvbiA9IHQudW5hcnlFeHByZXNzaW9uO1xuXG4gIGNyZWF0ZVZhcmlhYmxlRGVjbGFyYXRpb24oXG4gICAgICB2YXJpYWJsZU5hbWU6IHN0cmluZywgaW5pdGlhbGl6ZXI6IHQuRXhwcmVzc2lvbnxudWxsLFxuICAgICAgdHlwZTogVmFyaWFibGVEZWNsYXJhdGlvblR5cGUpOiB0LlN0YXRlbWVudCB7XG4gICAgcmV0dXJuIHQudmFyaWFibGVEZWNsYXJhdGlvbihcbiAgICAgICAgdHlwZSwgW3QudmFyaWFibGVEZWNsYXJhdG9yKHQuaWRlbnRpZmllcih2YXJpYWJsZU5hbWUpLCBpbml0aWFsaXplcildKTtcbiAgfVxuXG4gIHNldFNvdXJjZU1hcFJhbmdlPFQgZXh0ZW5kcyB0LlN0YXRlbWVudHx0LkV4cHJlc3Npb258dC5UZW1wbGF0ZUVsZW1lbnQ+KFxuICAgICAgbm9kZTogVCwgc291cmNlTWFwUmFuZ2U6IFNvdXJjZU1hcFJhbmdlfG51bGwpOiBUIHtcbiAgICBpZiAoc291cmNlTWFwUmFuZ2UgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbiAgICBub2RlLmxvYyA9IHtcbiAgICAgIC8vIEFkZCBpbiB0aGUgZmlsZW5hbWUgc28gdGhhdCB3ZSBjYW4gbWFwIHRvIGV4dGVybmFsIHRlbXBsYXRlIGZpbGVzLlxuICAgICAgLy8gTm90ZSB0aGF0IEJhYmVsIGdldHMgY29uZnVzZWQgaWYgeW91IHNwZWNpZnkgYSBmaWxlbmFtZSB3aGVuIGl0IGlzIHRoZSBvcmlnaW5hbCBzb3VyY2VcbiAgICAgIC8vIGZpbGUuIFRoaXMgaGFwcGVucyB3aGVuIHRoZSB0ZW1wbGF0ZSBpcyBpbmxpbmUsIGluIHdoaWNoIGNhc2UganVzdCB1c2UgYHVuZGVmaW5lZGAuXG4gICAgICBmaWxlbmFtZTogc291cmNlTWFwUmFuZ2UudXJsICE9PSB0aGlzLnNvdXJjZVVybCA/IHNvdXJjZU1hcFJhbmdlLnVybCA6IHVuZGVmaW5lZCxcbiAgICAgIHN0YXJ0OiB7XG4gICAgICAgIGxpbmU6IHNvdXJjZU1hcFJhbmdlLnN0YXJ0LmxpbmUgKyAxLCAgLy8gbGluZXMgYXJlIDEtYmFzZWQgaW4gQmFiZWwuXG4gICAgICAgIGNvbHVtbjogc291cmNlTWFwUmFuZ2Uuc3RhcnQuY29sdW1uLFxuICAgICAgfSxcbiAgICAgIGVuZDoge1xuICAgICAgICBsaW5lOiBzb3VyY2VNYXBSYW5nZS5lbmQubGluZSArIDEsICAvLyBsaW5lcyBhcmUgMS1iYXNlZCBpbiBCYWJlbC5cbiAgICAgICAgY29sdW1uOiBzb3VyY2VNYXBSYW5nZS5lbmQuY29sdW1uLFxuICAgICAgfSxcbiAgICB9IGFzIGFueTsgIC8vIE5lZWRlZCBiZWNhdXNlIHRoZSBCYWJlbCB0eXBpbmdzIGZvciBgbG9jYCBkb24ndCBpbmNsdWRlIGBmaWxlbmFtZWAuXG4gICAgbm9kZS5zdGFydCA9IHNvdXJjZU1hcFJhbmdlLnN0YXJ0Lm9mZnNldDtcbiAgICBub2RlLmVuZCA9IHNvdXJjZU1hcFJhbmdlLmVuZC5vZmZzZXQ7XG5cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0xFeHByZXNzaW9uKGV4cHI6IHQuRXhwcmVzc2lvbik6IGV4cHIgaXMgRXh0cmFjdDx0LkxWYWwsIHQuRXhwcmVzc2lvbj4ge1xuICAvLyBTb21lIExWYWwgdHlwZXMgYXJlIG5vdCBleHByZXNzaW9ucywgd2hpY2ggcHJldmVudHMgdXMgZnJvbSB1c2luZyBgdC5pc0xWYWwoKWBcbiAgLy8gZGlyZWN0bHkgd2l0aCBgYXNzZXJ0KClgLlxuICByZXR1cm4gdC5pc0xWYWwoZXhwcik7XG59XG4iXX0=
|
|
@@ -1,154 +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 t from '@babel/types';
|
|
9
|
-
import { assert, FatalLinkerError } from '../../../../linker';
|
|
10
|
-
/**
|
|
11
|
-
* This implementation of `AstHost` is able to get information from Babel AST nodes.
|
|
12
|
-
*/
|
|
13
|
-
export class BabelAstHost {
|
|
14
|
-
constructor() {
|
|
15
|
-
this.isStringLiteral = t.isStringLiteral;
|
|
16
|
-
this.isNumericLiteral = t.isNumericLiteral;
|
|
17
|
-
this.isArrayLiteral = t.isArrayExpression;
|
|
18
|
-
this.isObjectLiteral = t.isObjectExpression;
|
|
19
|
-
this.isCallExpression = t.isCallExpression;
|
|
20
|
-
}
|
|
21
|
-
getSymbolName(node) {
|
|
22
|
-
if (t.isIdentifier(node)) {
|
|
23
|
-
return node.name;
|
|
24
|
-
}
|
|
25
|
-
else if (t.isMemberExpression(node) && t.isIdentifier(node.property)) {
|
|
26
|
-
return node.property.name;
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
return null;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
parseStringLiteral(str) {
|
|
33
|
-
assert(str, t.isStringLiteral, 'a string literal');
|
|
34
|
-
return str.value;
|
|
35
|
-
}
|
|
36
|
-
parseNumericLiteral(num) {
|
|
37
|
-
assert(num, t.isNumericLiteral, 'a numeric literal');
|
|
38
|
-
return num.value;
|
|
39
|
-
}
|
|
40
|
-
isBooleanLiteral(bool) {
|
|
41
|
-
return t.isBooleanLiteral(bool) || isMinifiedBooleanLiteral(bool);
|
|
42
|
-
}
|
|
43
|
-
parseBooleanLiteral(bool) {
|
|
44
|
-
if (t.isBooleanLiteral(bool)) {
|
|
45
|
-
return bool.value;
|
|
46
|
-
}
|
|
47
|
-
else if (isMinifiedBooleanLiteral(bool)) {
|
|
48
|
-
return !bool.argument.value;
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
throw new FatalLinkerError(bool, 'Unsupported syntax, expected a boolean literal.');
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
parseArrayLiteral(array) {
|
|
55
|
-
assert(array, t.isArrayExpression, 'an array literal');
|
|
56
|
-
return array.elements.map(element => {
|
|
57
|
-
assert(element, isNotEmptyElement, 'element in array not to be empty');
|
|
58
|
-
assert(element, isNotSpreadElement, 'element in array not to use spread syntax');
|
|
59
|
-
return element;
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
parseObjectLiteral(obj) {
|
|
63
|
-
assert(obj, t.isObjectExpression, 'an object literal');
|
|
64
|
-
const result = new Map();
|
|
65
|
-
for (const property of obj.properties) {
|
|
66
|
-
assert(property, t.isObjectProperty, 'a property assignment');
|
|
67
|
-
assert(property.value, t.isExpression, 'an expression');
|
|
68
|
-
assert(property.key, isPropertyName, 'a property name');
|
|
69
|
-
const key = t.isIdentifier(property.key) ? property.key.name : property.key.value;
|
|
70
|
-
result.set(key, property.value);
|
|
71
|
-
}
|
|
72
|
-
return result;
|
|
73
|
-
}
|
|
74
|
-
isFunctionExpression(node) {
|
|
75
|
-
return t.isFunction(node);
|
|
76
|
-
}
|
|
77
|
-
parseReturnValue(fn) {
|
|
78
|
-
assert(fn, this.isFunctionExpression, 'a function');
|
|
79
|
-
if (!t.isBlockStatement(fn.body)) {
|
|
80
|
-
// it is a simple array function expression: `(...) => expr`
|
|
81
|
-
return fn.body;
|
|
82
|
-
}
|
|
83
|
-
// it is a function (arrow or normal) with a body. E.g.:
|
|
84
|
-
// * `(...) => { stmt; ... }`
|
|
85
|
-
// * `function(...) { stmt; ... }`
|
|
86
|
-
if (fn.body.body.length !== 1) {
|
|
87
|
-
throw new FatalLinkerError(fn.body, 'Unsupported syntax, expected a function body with a single return statement.');
|
|
88
|
-
}
|
|
89
|
-
const stmt = fn.body.body[0];
|
|
90
|
-
assert(stmt, t.isReturnStatement, 'a function body with a single return statement');
|
|
91
|
-
if (stmt.argument === null) {
|
|
92
|
-
throw new FatalLinkerError(stmt, 'Unsupported syntax, expected function to return a value.');
|
|
93
|
-
}
|
|
94
|
-
return stmt.argument;
|
|
95
|
-
}
|
|
96
|
-
parseCallee(call) {
|
|
97
|
-
assert(call, t.isCallExpression, 'a call expression');
|
|
98
|
-
assert(call.callee, t.isExpression, 'an expression');
|
|
99
|
-
return call.callee;
|
|
100
|
-
}
|
|
101
|
-
parseArguments(call) {
|
|
102
|
-
assert(call, t.isCallExpression, 'a call expression');
|
|
103
|
-
return call.arguments.map(arg => {
|
|
104
|
-
assert(arg, isNotSpreadArgument, 'argument not to use spread syntax');
|
|
105
|
-
assert(arg, t.isExpression, 'argument to be an expression');
|
|
106
|
-
return arg;
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
getRange(node) {
|
|
110
|
-
if (node.loc == null || node.start === null || node.end === null) {
|
|
111
|
-
throw new FatalLinkerError(node, 'Unable to read range for node - it is missing location information.');
|
|
112
|
-
}
|
|
113
|
-
return {
|
|
114
|
-
startLine: node.loc.start.line - 1,
|
|
115
|
-
startCol: node.loc.start.column,
|
|
116
|
-
startPos: node.start,
|
|
117
|
-
endPos: node.end,
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Return true if the expression does not represent an empty element in an array literal.
|
|
123
|
-
* For example in `[,foo]` the first element is "empty".
|
|
124
|
-
*/
|
|
125
|
-
function isNotEmptyElement(e) {
|
|
126
|
-
return e !== null;
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Return true if the expression is not a spread element of an array literal.
|
|
130
|
-
* For example in `[x, ...rest]` the `...rest` expression is a spread element.
|
|
131
|
-
*/
|
|
132
|
-
function isNotSpreadElement(e) {
|
|
133
|
-
return !t.isSpreadElement(e);
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Return true if the expression can be considered a text based property name.
|
|
137
|
-
*/
|
|
138
|
-
function isPropertyName(e) {
|
|
139
|
-
return t.isIdentifier(e) || t.isStringLiteral(e) || t.isNumericLiteral(e);
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Return true if the argument is not a spread element.
|
|
143
|
-
*/
|
|
144
|
-
function isNotSpreadArgument(arg) {
|
|
145
|
-
return !t.isSpreadElement(arg);
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Return true if the node is either `!0` or `!1`.
|
|
149
|
-
*/
|
|
150
|
-
function isMinifiedBooleanLiteral(node) {
|
|
151
|
-
return t.isUnaryExpression(node) && node.prefix && node.operator === '!' &&
|
|
152
|
-
t.isNumericLiteral(node.argument) && (node.argument.value === 0 || node.argument.value === 1);
|
|
153
|
-
}
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFiZWxfYXN0X2hvc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL2JhYmVsL3NyYy9hc3QvYmFiZWxfYXN0X2hvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxLQUFLLENBQUMsTUFBTSxjQUFjLENBQUM7QUFFbEMsT0FBTyxFQUFDLE1BQU0sRUFBVyxnQkFBZ0IsRUFBUSxNQUFNLG9CQUFvQixDQUFDO0FBRTVFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFlBQVk7SUFBekI7UUFXRSxvQkFBZSxHQUFHLENBQUMsQ0FBQyxlQUFlLENBQUM7UUFPcEMscUJBQWdCLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixDQUFDO1FBcUJ0QyxtQkFBYyxHQUFHLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztRQVdyQyxvQkFBZSxHQUFHLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztRQTRDdkMscUJBQWdCLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixDQUFDO0lBMkJ4QyxDQUFDO0lBeEhDLGFBQWEsQ0FBQyxJQUFrQjtRQUM5QixJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDeEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ2xCO2FBQU0sSUFBSSxDQUFDLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDdEUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztTQUMzQjthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFJRCxrQkFBa0IsQ0FBQyxHQUFpQjtRQUNsQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxlQUFlLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUNuRCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUM7SUFDbkIsQ0FBQztJQUlELG1CQUFtQixDQUFDLEdBQWlCO1FBQ25DLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDckQsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDO0lBQ25CLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFrQjtRQUNqQyxPQUFPLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsbUJBQW1CLENBQUMsSUFBa0I7UUFDcEMsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ25CO2FBQU0sSUFBSSx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN6QyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7U0FDN0I7YUFBTTtZQUNMLE1BQU0sSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsaURBQWlELENBQUMsQ0FBQztTQUNyRjtJQUNILENBQUM7SUFJRCxpQkFBaUIsQ0FBQyxLQUFtQjtRQUNuQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDbEMsTUFBTSxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxrQ0FBa0MsQ0FBQyxDQUFDO1lBQ3ZFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsMkNBQTJDLENBQUMsQ0FBQztZQUNqRixPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFJRCxrQkFBa0IsQ0FBQyxHQUFpQjtRQUNsQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBRXZELE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxFQUF3QixDQUFDO1FBQy9DLEtBQUssTUFBTSxRQUFRLElBQUksR0FBRyxDQUFDLFVBQVUsRUFBRTtZQUNyQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1lBQzlELE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLENBQUM7WUFDeEQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDeEQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUNsRixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDakM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsb0JBQW9CLENBQUMsSUFBa0I7UUFDckMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFnQjtRQUMvQixNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoQyw0REFBNEQ7WUFDNUQsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDO1NBQ2hCO1FBRUQsd0RBQXdEO1FBQ3hELDZCQUE2QjtRQUM3QixrQ0FBa0M7UUFFbEMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzdCLE1BQU0sSUFBSSxnQkFBZ0IsQ0FDdEIsRUFBRSxDQUFDLElBQUksRUFBRSw4RUFBOEUsQ0FBQyxDQUFDO1NBQzlGO1FBQ0QsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsaUJBQWlCLEVBQUUsZ0RBQWdELENBQUMsQ0FBQztRQUNwRixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFO1lBQzFCLE1BQU0sSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsMERBQTBELENBQUMsQ0FBQztTQUM5RjtRQUVELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBR0QsV0FBVyxDQUFDLElBQWtCO1FBQzVCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDdEQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsQ0FBQztRQUNyRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELGNBQWMsQ0FBQyxJQUFrQjtRQUMvQixNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDOUIsTUFBTSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsRUFBRSxtQ0FBbUMsQ0FBQyxDQUFDO1lBQ3RFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFlBQVksRUFBRSw4QkFBOEIsQ0FBQyxDQUFDO1lBQzVELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQWtCO1FBQ3pCLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxJQUFJLEVBQUU7WUFDaEUsTUFBTSxJQUFJLGdCQUFnQixDQUN0QixJQUFJLEVBQUUscUVBQXFFLENBQUMsQ0FBQztTQUNsRjtRQUNELE9BQU87WUFDTCxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUM7WUFDbEMsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU07WUFDL0IsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ3BCLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRztTQUNqQixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxpQkFBaUIsQ0FBQyxDQUFvQztJQUU3RCxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUM7QUFDcEIsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMsa0JBQWtCLENBQUMsQ0FBK0I7SUFDekQsT0FBTyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0IsQ0FBQztBQUdEOztHQUVHO0FBQ0gsU0FBUyxjQUFjLENBQUMsQ0FBZTtJQUNyQyxPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDNUUsQ0FBQztBQU9EOztHQUVHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxHQUFpQjtJQUM1QyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBSUQ7O0dBRUc7QUFDSCxTQUFTLHdCQUF3QixDQUFDLElBQWtCO0lBQ2xELE9BQU8sQ0FBQyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxHQUFHO1FBQ3BFLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDcEcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0IGZyb20gJ0BiYWJlbC90eXBlcyc7XG5cbmltcG9ydCB7YXNzZXJ0LCBBc3RIb3N0LCBGYXRhbExpbmtlckVycm9yLCBSYW5nZX0gZnJvbSAnLi4vLi4vLi4vLi4vbGlua2VyJztcblxuLyoqXG4gKiBUaGlzIGltcGxlbWVudGF0aW9uIG9mIGBBc3RIb3N0YCBpcyBhYmxlIHRvIGdldCBpbmZvcm1hdGlvbiBmcm9tIEJhYmVsIEFTVCBub2Rlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEJhYmVsQXN0SG9zdCBpbXBsZW1lbnRzIEFzdEhvc3Q8dC5FeHByZXNzaW9uPiB7XG4gIGdldFN5bWJvbE5hbWUobm9kZTogdC5FeHByZXNzaW9uKTogc3RyaW5nfG51bGwge1xuICAgIGlmICh0LmlzSWRlbnRpZmllcihub2RlKSkge1xuICAgICAgcmV0dXJuIG5vZGUubmFtZTtcbiAgICB9IGVsc2UgaWYgKHQuaXNNZW1iZXJFeHByZXNzaW9uKG5vZGUpICYmIHQuaXNJZGVudGlmaWVyKG5vZGUucHJvcGVydHkpKSB7XG4gICAgICByZXR1cm4gbm9kZS5wcm9wZXJ0eS5uYW1lO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBpc1N0cmluZ0xpdGVyYWwgPSB0LmlzU3RyaW5nTGl0ZXJhbDtcblxuICBwYXJzZVN0cmluZ0xpdGVyYWwoc3RyOiB0LkV4cHJlc3Npb24pOiBzdHJpbmcge1xuICAgIGFzc2VydChzdHIsIHQuaXNTdHJpbmdMaXRlcmFsLCAnYSBzdHJpbmcgbGl0ZXJhbCcpO1xuICAgIHJldHVybiBzdHIudmFsdWU7XG4gIH1cblxuICBpc051bWVyaWNMaXRlcmFsID0gdC5pc051bWVyaWNMaXRlcmFsO1xuXG4gIHBhcnNlTnVtZXJpY0xpdGVyYWwobnVtOiB0LkV4cHJlc3Npb24pOiBudW1iZXIge1xuICAgIGFzc2VydChudW0sIHQuaXNOdW1lcmljTGl0ZXJhbCwgJ2EgbnVtZXJpYyBsaXRlcmFsJyk7XG4gICAgcmV0dXJuIG51bS52YWx1ZTtcbiAgfVxuXG4gIGlzQm9vbGVhbkxpdGVyYWwoYm9vbDogdC5FeHByZXNzaW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHQuaXNCb29sZWFuTGl0ZXJhbChib29sKSB8fCBpc01pbmlmaWVkQm9vbGVhbkxpdGVyYWwoYm9vbCk7XG4gIH1cblxuICBwYXJzZUJvb2xlYW5MaXRlcmFsKGJvb2w6IHQuRXhwcmVzc2lvbik6IGJvb2xlYW4ge1xuICAgIGlmICh0LmlzQm9vbGVhbkxpdGVyYWwoYm9vbCkpIHtcbiAgICAgIHJldHVybiBib29sLnZhbHVlO1xuICAgIH0gZWxzZSBpZiAoaXNNaW5pZmllZEJvb2xlYW5MaXRlcmFsKGJvb2wpKSB7XG4gICAgICByZXR1cm4gIWJvb2wuYXJndW1lbnQudmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBGYXRhbExpbmtlckVycm9yKGJvb2wsICdVbnN1cHBvcnRlZCBzeW50YXgsIGV4cGVjdGVkIGEgYm9vbGVhbiBsaXRlcmFsLicpO1xuICAgIH1cbiAgfVxuXG4gIGlzQXJyYXlMaXRlcmFsID0gdC5pc0FycmF5RXhwcmVzc2lvbjtcblxuICBwYXJzZUFycmF5TGl0ZXJhbChhcnJheTogdC5FeHByZXNzaW9uKTogdC5FeHByZXNzaW9uW10ge1xuICAgIGFzc2VydChhcnJheSwgdC5pc0FycmF5RXhwcmVzc2lvbiwgJ2FuIGFycmF5IGxpdGVyYWwnKTtcbiAgICByZXR1cm4gYXJyYXkuZWxlbWVudHMubWFwKGVsZW1lbnQgPT4ge1xuICAgICAgYXNzZXJ0KGVsZW1lbnQsIGlzTm90RW1wdHlFbGVtZW50LCAnZWxlbWVudCBpbiBhcnJheSBub3QgdG8gYmUgZW1wdHknKTtcbiAgICAgIGFzc2VydChlbGVtZW50LCBpc05vdFNwcmVhZEVsZW1lbnQsICdlbGVtZW50IGluIGFycmF5IG5vdCB0byB1c2Ugc3ByZWFkIHN5bnRheCcpO1xuICAgICAgcmV0dXJuIGVsZW1lbnQ7XG4gICAgfSk7XG4gIH1cblxuICBpc09iamVjdExpdGVyYWwgPSB0LmlzT2JqZWN0RXhwcmVzc2lvbjtcblxuICBwYXJzZU9iamVjdExpdGVyYWwob2JqOiB0LkV4cHJlc3Npb24pOiBNYXA8c3RyaW5nLCB0LkV4cHJlc3Npb24+IHtcbiAgICBhc3NlcnQob2JqLCB0LmlzT2JqZWN0RXhwcmVzc2lvbiwgJ2FuIG9iamVjdCBsaXRlcmFsJyk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBuZXcgTWFwPHN0cmluZywgdC5FeHByZXNzaW9uPigpO1xuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2Ygb2JqLnByb3BlcnRpZXMpIHtcbiAgICAgIGFzc2VydChwcm9wZXJ0eSwgdC5pc09iamVjdFByb3BlcnR5LCAnYSBwcm9wZXJ0eSBhc3NpZ25tZW50Jyk7XG4gICAgICBhc3NlcnQocHJvcGVydHkudmFsdWUsIHQuaXNFeHByZXNzaW9uLCAnYW4gZXhwcmVzc2lvbicpO1xuICAgICAgYXNzZXJ0KHByb3BlcnR5LmtleSwgaXNQcm9wZXJ0eU5hbWUsICdhIHByb3BlcnR5IG5hbWUnKTtcbiAgICAgIGNvbnN0IGtleSA9IHQuaXNJZGVudGlmaWVyKHByb3BlcnR5LmtleSkgPyBwcm9wZXJ0eS5rZXkubmFtZSA6IHByb3BlcnR5LmtleS52YWx1ZTtcbiAgICAgIHJlc3VsdC5zZXQoa2V5LCBwcm9wZXJ0eS52YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBpc0Z1bmN0aW9uRXhwcmVzc2lvbihub2RlOiB0LkV4cHJlc3Npb24pOiBub2RlIGlzIEV4dHJhY3Q8dC5GdW5jdGlvbiwgdC5FeHByZXNzaW9uPiB7XG4gICAgcmV0dXJuIHQuaXNGdW5jdGlvbihub2RlKTtcbiAgfVxuXG4gIHBhcnNlUmV0dXJuVmFsdWUoZm46IHQuRXhwcmVzc2lvbik6IHQuRXhwcmVzc2lvbiB7XG4gICAgYXNzZXJ0KGZuLCB0aGlzLmlzRnVuY3Rpb25FeHByZXNzaW9uLCAnYSBmdW5jdGlvbicpO1xuICAgIGlmICghdC5pc0Jsb2NrU3RhdGVtZW50KGZuLmJvZHkpKSB7XG4gICAgICAvLyBpdCBpcyBhIHNpbXBsZSBhcnJheSBmdW5jdGlvbiBleHByZXNzaW9uOiBgKC4uLikgPT4gZXhwcmBcbiAgICAgIHJldHVybiBmbi5ib2R5O1xuICAgIH1cblxuICAgIC8vIGl0IGlzIGEgZnVuY3Rpb24gKGFycm93IG9yIG5vcm1hbCkgd2l0aCBhIGJvZHkuIEUuZy46XG4gICAgLy8gKiBgKC4uLikgPT4geyBzdG10OyAuLi4gfWBcbiAgICAvLyAqIGBmdW5jdGlvbiguLi4pIHsgc3RtdDsgLi4uIH1gXG5cbiAgICBpZiAoZm4uYm9keS5ib2R5Lmxlbmd0aCAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEZhdGFsTGlua2VyRXJyb3IoXG4gICAgICAgICAgZm4uYm9keSwgJ1Vuc3VwcG9ydGVkIHN5bnRheCwgZXhwZWN0ZWQgYSBmdW5jdGlvbiBib2R5IHdpdGggYSBzaW5nbGUgcmV0dXJuIHN0YXRlbWVudC4nKTtcbiAgICB9XG4gICAgY29uc3Qgc3RtdCA9IGZuLmJvZHkuYm9keVswXTtcbiAgICBhc3NlcnQoc3RtdCwgdC5pc1JldHVyblN0YXRlbWVudCwgJ2EgZnVuY3Rpb24gYm9keSB3aXRoIGEgc2luZ2xlIHJldHVybiBzdGF0ZW1lbnQnKTtcbiAgICBpZiAoc3RtdC5hcmd1bWVudCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEZhdGFsTGlua2VyRXJyb3Ioc3RtdCwgJ1Vuc3VwcG9ydGVkIHN5bnRheCwgZXhwZWN0ZWQgZnVuY3Rpb24gdG8gcmV0dXJuIGEgdmFsdWUuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0bXQuYXJndW1lbnQ7XG4gIH1cblxuICBpc0NhbGxFeHByZXNzaW9uID0gdC5pc0NhbGxFeHByZXNzaW9uO1xuICBwYXJzZUNhbGxlZShjYWxsOiB0LkV4cHJlc3Npb24pOiB0LkV4cHJlc3Npb24ge1xuICAgIGFzc2VydChjYWxsLCB0LmlzQ2FsbEV4cHJlc3Npb24sICdhIGNhbGwgZXhwcmVzc2lvbicpO1xuICAgIGFzc2VydChjYWxsLmNhbGxlZSwgdC5pc0V4cHJlc3Npb24sICdhbiBleHByZXNzaW9uJyk7XG4gICAgcmV0dXJuIGNhbGwuY2FsbGVlO1xuICB9XG4gIHBhcnNlQXJndW1lbnRzKGNhbGw6IHQuRXhwcmVzc2lvbik6IHQuRXhwcmVzc2lvbltdIHtcbiAgICBhc3NlcnQoY2FsbCwgdC5pc0NhbGxFeHByZXNzaW9uLCAnYSBjYWxsIGV4cHJlc3Npb24nKTtcbiAgICByZXR1cm4gY2FsbC5hcmd1bWVudHMubWFwKGFyZyA9PiB7XG4gICAgICBhc3NlcnQoYXJnLCBpc05vdFNwcmVhZEFyZ3VtZW50LCAnYXJndW1lbnQgbm90IHRvIHVzZSBzcHJlYWQgc3ludGF4Jyk7XG4gICAgICBhc3NlcnQoYXJnLCB0LmlzRXhwcmVzc2lvbiwgJ2FyZ3VtZW50IHRvIGJlIGFuIGV4cHJlc3Npb24nKTtcbiAgICAgIHJldHVybiBhcmc7XG4gICAgfSk7XG4gIH1cblxuICBnZXRSYW5nZShub2RlOiB0LkV4cHJlc3Npb24pOiBSYW5nZSB7XG4gICAgaWYgKG5vZGUubG9jID09IG51bGwgfHwgbm9kZS5zdGFydCA9PT0gbnVsbCB8fCBub2RlLmVuZCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEZhdGFsTGlua2VyRXJyb3IoXG4gICAgICAgICAgbm9kZSwgJ1VuYWJsZSB0byByZWFkIHJhbmdlIGZvciBub2RlIC0gaXQgaXMgbWlzc2luZyBsb2NhdGlvbiBpbmZvcm1hdGlvbi4nKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0TGluZTogbm9kZS5sb2Muc3RhcnQubGluZSAtIDEsICAvLyBCYWJlbCBsaW5lcyBhcmUgMS1iYXNlZFxuICAgICAgc3RhcnRDb2w6IG5vZGUubG9jLnN0YXJ0LmNvbHVtbixcbiAgICAgIHN0YXJ0UG9zOiBub2RlLnN0YXJ0LFxuICAgICAgZW5kUG9zOiBub2RlLmVuZCxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJuIHRydWUgaWYgdGhlIGV4cHJlc3Npb24gZG9lcyBub3QgcmVwcmVzZW50IGFuIGVtcHR5IGVsZW1lbnQgaW4gYW4gYXJyYXkgbGl0ZXJhbC5cbiAqIEZvciBleGFtcGxlIGluIGBbLGZvb11gIHRoZSBmaXJzdCBlbGVtZW50IGlzIFwiZW1wdHlcIi5cbiAqL1xuZnVuY3Rpb24gaXNOb3RFbXB0eUVsZW1lbnQoZTogdC5FeHByZXNzaW9ufHQuU3ByZWFkRWxlbWVudHxudWxsKTogZSBpcyB0LkV4cHJlc3Npb258XG4gICAgdC5TcHJlYWRFbGVtZW50IHtcbiAgcmV0dXJuIGUgIT09IG51bGw7XG59XG5cbi8qKlxuICogUmV0dXJuIHRydWUgaWYgdGhlIGV4cHJlc3Npb24gaXMgbm90IGEgc3ByZWFkIGVsZW1lbnQgb2YgYW4gYXJyYXkgbGl0ZXJhbC5cbiAqIEZvciBleGFtcGxlIGluIGBbeCwgLi4ucmVzdF1gIHRoZSBgLi4ucmVzdGAgZXhwcmVzc2lvbiBpcyBhIHNwcmVhZCBlbGVtZW50LlxuICovXG5mdW5jdGlvbiBpc05vdFNwcmVhZEVsZW1lbnQoZTogdC5FeHByZXNzaW9ufHQuU3ByZWFkRWxlbWVudCk6IGUgaXMgdC5FeHByZXNzaW9uIHtcbiAgcmV0dXJuICF0LmlzU3ByZWFkRWxlbWVudChlKTtcbn1cblxuXG4vKipcbiAqIFJldHVybiB0cnVlIGlmIHRoZSBleHByZXNzaW9uIGNhbiBiZSBjb25zaWRlcmVkIGEgdGV4dCBiYXNlZCBwcm9wZXJ0eSBuYW1lLlxuICovXG5mdW5jdGlvbiBpc1Byb3BlcnR5TmFtZShlOiB0LkV4cHJlc3Npb24pOiBlIGlzIHQuSWRlbnRpZmllcnx0LlN0cmluZ0xpdGVyYWx8dC5OdW1lcmljTGl0ZXJhbCB7XG4gIHJldHVybiB0LmlzSWRlbnRpZmllcihlKSB8fCB0LmlzU3RyaW5nTGl0ZXJhbChlKSB8fCB0LmlzTnVtZXJpY0xpdGVyYWwoZSk7XG59XG5cbi8qKlxuICogVGhlIGRlY2xhcmVkIHR5cGUgb2YgYW4gYXJndW1lbnQgdG8gYSBjYWxsIGV4cHJlc3Npb24uXG4gKi9cbnR5cGUgQXJndW1lbnRUeXBlID0gdC5DYWxsRXhwcmVzc2lvblsnYXJndW1lbnRzJ11bbnVtYmVyXTtcblxuLyoqXG4gKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgYXJndW1lbnQgaXMgbm90IGEgc3ByZWFkIGVsZW1lbnQuXG4gKi9cbmZ1bmN0aW9uIGlzTm90U3ByZWFkQXJndW1lbnQoYXJnOiBBcmd1bWVudFR5cGUpOiBhcmcgaXMgRXhjbHVkZTxBcmd1bWVudFR5cGUsIHQuU3ByZWFkRWxlbWVudD4ge1xuICByZXR1cm4gIXQuaXNTcHJlYWRFbGVtZW50KGFyZyk7XG59XG5cbnR5cGUgTWluaWZpZWRCb29sZWFuTGl0ZXJhbCA9IHQuRXhwcmVzc2lvbiZ0LlVuYXJ5RXhwcmVzc2lvbiZ7YXJndW1lbnQ6IHQuTnVtZXJpY0xpdGVyYWx9O1xuXG4vKipcbiAqIFJldHVybiB0cnVlIGlmIHRoZSBub2RlIGlzIGVpdGhlciBgITBgIG9yIGAhMWAuXG4gKi9cbmZ1bmN0aW9uIGlzTWluaWZpZWRCb29sZWFuTGl0ZXJhbChub2RlOiB0LkV4cHJlc3Npb24pOiBub2RlIGlzIE1pbmlmaWVkQm9vbGVhbkxpdGVyYWwge1xuICByZXR1cm4gdC5pc1VuYXJ5RXhwcmVzc2lvbihub2RlKSAmJiBub2RlLnByZWZpeCAmJiBub2RlLm9wZXJhdG9yID09PSAnIScgJiZcbiAgICAgIHQuaXNOdW1lcmljTGl0ZXJhbChub2RlLmFyZ3VtZW50KSAmJiAobm9kZS5hcmd1bWVudC52YWx1ZSA9PT0gMCB8fCBub2RlLmFyZ3VtZW50LnZhbHVlID09PSAxKTtcbn1cbiJdfQ==
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import * as t from '@babel/types';
|
|
2
|
-
/**
|
|
3
|
-
* This class represents the lexical scope of a partial declaration in Babel source code.
|
|
4
|
-
*
|
|
5
|
-
* Its only responsibility is to compute a reference object for the scope of shared constant
|
|
6
|
-
* statements that will be generated during partial linking.
|
|
7
|
-
*/
|
|
8
|
-
export class BabelDeclarationScope {
|
|
9
|
-
/**
|
|
10
|
-
* Construct a new `BabelDeclarationScope`.
|
|
11
|
-
*
|
|
12
|
-
* @param declarationScope the Babel scope containing the declaration call expression.
|
|
13
|
-
*/
|
|
14
|
-
constructor(declarationScope) {
|
|
15
|
-
this.declarationScope = declarationScope;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Compute the Babel `NodePath` that can be used to reference the lexical scope where any
|
|
19
|
-
* shared constant statements would be inserted.
|
|
20
|
-
*
|
|
21
|
-
* There will only be a shared constant scope if the expression is in an ECMAScript module, or a
|
|
22
|
-
* UMD module. Otherwise `null` is returned to indicate that constant statements must be emitted
|
|
23
|
-
* locally to the generated linked definition, to avoid polluting the global scope.
|
|
24
|
-
*
|
|
25
|
-
* @param expression the expression that points to the Angular core framework import.
|
|
26
|
-
*/
|
|
27
|
-
getConstantScopeRef(expression) {
|
|
28
|
-
// If the expression is of the form `a.b.c` then we want to get the far LHS (e.g. `a`).
|
|
29
|
-
let bindingExpression = expression;
|
|
30
|
-
while (t.isMemberExpression(bindingExpression)) {
|
|
31
|
-
bindingExpression = bindingExpression.object;
|
|
32
|
-
}
|
|
33
|
-
if (!t.isIdentifier(bindingExpression)) {
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
|
-
// The binding of the expression is where this identifier was declared.
|
|
37
|
-
// This could be a variable declaration, an import namespace or a function parameter.
|
|
38
|
-
const binding = this.declarationScope.getBinding(bindingExpression.name);
|
|
39
|
-
if (binding === undefined) {
|
|
40
|
-
return null;
|
|
41
|
-
}
|
|
42
|
-
// We only support shared constant statements if the binding was in a UMD module (i.e. declared
|
|
43
|
-
// within a `t.Function`) or an ECMASCript module (i.e. declared at the top level of a
|
|
44
|
-
// `t.Program` that is marked as a module).
|
|
45
|
-
const path = binding.scope.path;
|
|
46
|
-
if (!path.isFunctionParent() && !(path.isProgram() && path.node.sourceType === 'module')) {
|
|
47
|
-
return null;
|
|
48
|
-
}
|
|
49
|
-
return path;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFiZWxfZGVjbGFyYXRpb25fc2NvcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvbGlua2VyL2JhYmVsL3NyYy9iYWJlbF9kZWNsYXJhdGlvbl9zY29wZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEtBQUssQ0FBQyxNQUFNLGNBQWMsQ0FBQztBQU1sQzs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxxQkFBcUI7SUFDaEM7Ozs7T0FJRztJQUNILFlBQW9CLGdCQUF1QjtRQUF2QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQU87SUFBRyxDQUFDO0lBRS9DOzs7Ozs7Ozs7T0FTRztJQUNILG1CQUFtQixDQUFDLFVBQXdCO1FBQzFDLHVGQUF1RjtRQUN2RixJQUFJLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztRQUNuQyxPQUFPLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO1lBQzlDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztTQUM5QztRQUVELElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDdEMsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELHVFQUF1RTtRQUN2RSxxRkFBcUY7UUFDckYsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RSxJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUU7WUFDekIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELCtGQUErRjtRQUMvRixzRkFBc0Y7UUFDdEYsMkNBQTJDO1FBQzNDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FBQyxFQUFFO1lBQ3hGLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtOb2RlUGF0aCwgU2NvcGV9IGZyb20gJ0BiYWJlbC90cmF2ZXJzZSc7XG5pbXBvcnQgKiBhcyB0IGZyb20gJ0BiYWJlbC90eXBlcyc7XG5cbmltcG9ydCB7RGVjbGFyYXRpb25TY29wZX0gZnJvbSAnLi4vLi4vLi4vbGlua2VyJztcblxuZXhwb3J0IHR5cGUgQ29uc3RhbnRTY29wZVBhdGggPSBOb2RlUGF0aDx0LkZ1bmN0aW9ufHQuUHJvZ3JhbT47XG5cbi8qKlxuICogVGhpcyBjbGFzcyByZXByZXNlbnRzIHRoZSBsZXhpY2FsIHNjb3BlIG9mIGEgcGFydGlhbCBkZWNsYXJhdGlvbiBpbiBCYWJlbCBzb3VyY2UgY29kZS5cbiAqXG4gKiBJdHMgb25seSByZXNwb25zaWJpbGl0eSBpcyB0byBjb21wdXRlIGEgcmVmZXJlbmNlIG9iamVjdCBmb3IgdGhlIHNjb3BlIG9mIHNoYXJlZCBjb25zdGFudFxuICogc3RhdGVtZW50cyB0aGF0IHdpbGwgYmUgZ2VuZXJhdGVkIGR1cmluZyBwYXJ0aWFsIGxpbmtpbmcuXG4gKi9cbmV4cG9ydCBjbGFzcyBCYWJlbERlY2xhcmF0aW9uU2NvcGUgaW1wbGVtZW50cyBEZWNsYXJhdGlvblNjb3BlPENvbnN0YW50U2NvcGVQYXRoLCB0LkV4cHJlc3Npb24+IHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdCBhIG5ldyBgQmFiZWxEZWNsYXJhdGlvblNjb3BlYC5cbiAgICpcbiAgICogQHBhcmFtIGRlY2xhcmF0aW9uU2NvcGUgdGhlIEJhYmVsIHNjb3BlIGNvbnRhaW5pbmcgdGhlIGRlY2xhcmF0aW9uIGNhbGwgZXhwcmVzc2lvbi5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGVjbGFyYXRpb25TY29wZTogU2NvcGUpIHt9XG5cbiAgLyoqXG4gICAqIENvbXB1dGUgdGhlIEJhYmVsIGBOb2RlUGF0aGAgdGhhdCBjYW4gYmUgdXNlZCB0byByZWZlcmVuY2UgdGhlIGxleGljYWwgc2NvcGUgd2hlcmUgYW55XG4gICAqIHNoYXJlZCBjb25zdGFudCBzdGF0ZW1lbnRzIHdvdWxkIGJlIGluc2VydGVkLlxuICAgKlxuICAgKiBUaGVyZSB3aWxsIG9ubHkgYmUgYSBzaGFyZWQgY29uc3RhbnQgc2NvcGUgaWYgdGhlIGV4cHJlc3Npb24gaXMgaW4gYW4gRUNNQVNjcmlwdCBtb2R1bGUsIG9yIGFcbiAgICogVU1EIG1vZHVsZS4gT3RoZXJ3aXNlIGBudWxsYCBpcyByZXR1cm5lZCB0byBpbmRpY2F0ZSB0aGF0IGNvbnN0YW50IHN0YXRlbWVudHMgbXVzdCBiZSBlbWl0dGVkXG4gICAqIGxvY2FsbHkgdG8gdGhlIGdlbmVyYXRlZCBsaW5rZWQgZGVmaW5pdGlvbiwgdG8gYXZvaWQgcG9sbHV0aW5nIHRoZSBnbG9iYWwgc2NvcGUuXG4gICAqXG4gICAqIEBwYXJhbSBleHByZXNzaW9uIHRoZSBleHByZXNzaW9uIHRoYXQgcG9pbnRzIHRvIHRoZSBBbmd1bGFyIGNvcmUgZnJhbWV3b3JrIGltcG9ydC5cbiAgICovXG4gIGdldENvbnN0YW50U2NvcGVSZWYoZXhwcmVzc2lvbjogdC5FeHByZXNzaW9uKTogQ29uc3RhbnRTY29wZVBhdGh8bnVsbCB7XG4gICAgLy8gSWYgdGhlIGV4cHJlc3Npb24gaXMgb2YgdGhlIGZvcm0gYGEuYi5jYCB0aGVuIHdlIHdhbnQgdG8gZ2V0IHRoZSBmYXIgTEhTIChlLmcuIGBhYCkuXG4gICAgbGV0IGJpbmRpbmdFeHByZXNzaW9uID0gZXhwcmVzc2lvbjtcbiAgICB3aGlsZSAodC5pc01lbWJlckV4cHJlc3Npb24oYmluZGluZ0V4cHJlc3Npb24pKSB7XG4gICAgICBiaW5kaW5nRXhwcmVzc2lvbiA9IGJpbmRpbmdFeHByZXNzaW9uLm9iamVjdDtcbiAgICB9XG5cbiAgICBpZiAoIXQuaXNJZGVudGlmaWVyKGJpbmRpbmdFeHByZXNzaW9uKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gVGhlIGJpbmRpbmcgb2YgdGhlIGV4cHJlc3Npb24gaXMgd2hlcmUgdGhpcyBpZGVudGlmaWVyIHdhcyBkZWNsYXJlZC5cbiAgICAvLyBUaGlzIGNvdWxkIGJlIGEgdmFyaWFibGUgZGVjbGFyYXRpb24sIGFuIGltcG9ydCBuYW1lc3BhY2Ugb3IgYSBmdW5jdGlvbiBwYXJhbWV0ZXIuXG4gICAgY29uc3QgYmluZGluZyA9IHRoaXMuZGVjbGFyYXRpb25TY29wZS5nZXRCaW5kaW5nKGJpbmRpbmdFeHByZXNzaW9uLm5hbWUpO1xuICAgIGlmIChiaW5kaW5nID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIFdlIG9ubHkgc3VwcG9ydCBzaGFyZWQgY29uc3RhbnQgc3RhdGVtZW50cyBpZiB0aGUgYmluZGluZyB3YXMgaW4gYSBVTUQgbW9kdWxlIChpLmUuIGRlY2xhcmVkXG4gICAgLy8gd2l0aGluIGEgYHQuRnVuY3Rpb25gKSBvciBhbiBFQ01BU0NyaXB0IG1vZHVsZSAoaS5lLiBkZWNsYXJlZCBhdCB0aGUgdG9wIGxldmVsIG9mIGFcbiAgICAvLyBgdC5Qcm9ncmFtYCB0aGF0IGlzIG1hcmtlZCBhcyBhIG1vZHVsZSkuXG4gICAgY29uc3QgcGF0aCA9IGJpbmRpbmcuc2NvcGUucGF0aDtcbiAgICBpZiAoIXBhdGguaXNGdW5jdGlvblBhcmVudCgpICYmICEocGF0aC5pc1Byb2dyYW0oKSAmJiBwYXRoLm5vZGUuc291cmNlVHlwZSA9PT0gJ21vZHVsZScpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gcGF0aDtcbiAgfVxufVxuIl19
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { NodeJSFileSystem } from '../../../src/ngtsc/file_system';
|
|
2
|
-
import { ConsoleLogger, LogLevel } from '../../../src/ngtsc/logging';
|
|
3
|
-
import { createEs2015LinkerPlugin } from './es2015_linker_plugin';
|
|
4
|
-
/**
|
|
5
|
-
* This is the Babel plugin definition that is provided as a default export from the package, such
|
|
6
|
-
* that the plugin can be used using the module specifier of the package. This is the recommended
|
|
7
|
-
* way of integrating the Angular Linker into a build pipeline other than the Angular CLI.
|
|
8
|
-
*
|
|
9
|
-
* When the module specifier `@angular/compiler-cli/linker/babel` is used as a plugin in a Babel
|
|
10
|
-
* configuration, Babel invokes this function (by means of the default export) to create the plugin
|
|
11
|
-
* instance according to the provided options.
|
|
12
|
-
*
|
|
13
|
-
* The linker plugin that is created uses the native NodeJS filesystem APIs to interact with the
|
|
14
|
-
* filesystem. Any logging output is printed to the console.
|
|
15
|
-
*
|
|
16
|
-
* @param api Provides access to the Babel environment that is configuring this plugin.
|
|
17
|
-
* @param options The plugin options that have been configured.
|
|
18
|
-
*/
|
|
19
|
-
export function defaultLinkerPlugin(api, options) {
|
|
20
|
-
api.assertVersion(7);
|
|
21
|
-
return createEs2015LinkerPlugin(Object.assign(Object.assign({}, options), { fileSystem: new NodeJSFileSystem(), logger: new ConsoleLogger(LogLevel.info) }));
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFiZWxfcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL2xpbmtlci9iYWJlbC9zcmMvYmFiZWxfcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxhQUFhLEVBQUUsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFHbkUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFaEU7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsR0FBYyxFQUFFLE9BQStCO0lBQ2pGLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFckIsT0FBTyx3QkFBd0IsaUNBQzFCLE9BQU8sS0FDVixVQUFVLEVBQUUsSUFBSSxnQkFBZ0IsRUFBRSxFQUNsQyxNQUFNLEVBQUUsSUFBSSxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUN4QyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtDb25maWdBUEksIFBsdWdpbk9ian0gZnJvbSAnQGJhYmVsL2NvcmUnO1xuXG5pbXBvcnQge05vZGVKU0ZpbGVTeXN0ZW19IGZyb20gJy4uLy4uLy4uL3NyYy9uZ3RzYy9maWxlX3N5c3RlbSc7XG5pbXBvcnQge0NvbnNvbGVMb2dnZXIsIExvZ0xldmVsfSBmcm9tICcuLi8uLi8uLi9zcmMvbmd0c2MvbG9nZ2luZyc7XG5pbXBvcnQge0xpbmtlck9wdGlvbnN9IGZyb20gJy4uLy4uL3NyYy9maWxlX2xpbmtlci9saW5rZXJfb3B0aW9ucyc7XG5cbmltcG9ydCB7Y3JlYXRlRXMyMDE1TGlua2VyUGx1Z2lufSBmcm9tICcuL2VzMjAxNV9saW5rZXJfcGx1Z2luJztcblxuLyoqXG4gKiBUaGlzIGlzIHRoZSBCYWJlbCBwbHVnaW4gZGVmaW5pdGlvbiB0aGF0IGlzIHByb3ZpZGVkIGFzIGEgZGVmYXVsdCBleHBvcnQgZnJvbSB0aGUgcGFja2FnZSwgc3VjaFxuICogdGhhdCB0aGUgcGx1Z2luIGNhbiBiZSB1c2VkIHVzaW5nIHRoZSBtb2R1bGUgc3BlY2lmaWVyIG9mIHRoZSBwYWNrYWdlLiBUaGlzIGlzIHRoZSByZWNvbW1lbmRlZFxuICogd2F5IG9mIGludGVncmF0aW5nIHRoZSBBbmd1bGFyIExpbmtlciBpbnRvIGEgYnVpbGQgcGlwZWxpbmUgb3RoZXIgdGhhbiB0aGUgQW5ndWxhciBDTEkuXG4gKlxuICogV2hlbiB0aGUgbW9kdWxlIHNwZWNpZmllciBgQGFuZ3VsYXIvY29tcGlsZXItY2xpL2xpbmtlci9iYWJlbGAgaXMgdXNlZCBhcyBhIHBsdWdpbiBpbiBhIEJhYmVsXG4gKiBjb25maWd1cmF0aW9uLCBCYWJlbCBpbnZva2VzIHRoaXMgZnVuY3Rpb24gKGJ5IG1lYW5zIG9mIHRoZSBkZWZhdWx0IGV4cG9ydCkgdG8gY3JlYXRlIHRoZSBwbHVnaW5cbiAqIGluc3RhbmNlIGFjY29yZGluZyB0byB0aGUgcHJvdmlkZWQgb3B0aW9ucy5cbiAqXG4gKiBUaGUgbGlua2VyIHBsdWdpbiB0aGF0IGlzIGNyZWF0ZWQgdXNlcyB0aGUgbmF0aXZlIE5vZGVKUyBmaWxlc3lzdGVtIEFQSXMgdG8gaW50ZXJhY3Qgd2l0aCB0aGVcbiAqIGZpbGVzeXN0ZW0uIEFueSBsb2dnaW5nIG91dHB1dCBpcyBwcmludGVkIHRvIHRoZSBjb25zb2xlLlxuICpcbiAqIEBwYXJhbSBhcGkgUHJvdmlkZXMgYWNjZXNzIHRvIHRoZSBCYWJlbCBlbnZpcm9ubWVudCB0aGF0IGlzIGNvbmZpZ3VyaW5nIHRoaXMgcGx1Z2luLlxuICogQHBhcmFtIG9wdGlvbnMgVGhlIHBsdWdpbiBvcHRpb25zIHRoYXQgaGF2ZSBiZWVuIGNvbmZpZ3VyZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0TGlua2VyUGx1Z2luKGFwaTogQ29uZmlnQVBJLCBvcHRpb25zOiBQYXJ0aWFsPExpbmtlck9wdGlvbnM+KTogUGx1Z2luT2JqIHtcbiAgYXBpLmFzc2VydFZlcnNpb24oNyk7XG5cbiAgcmV0dXJuIGNyZWF0ZUVzMjAxNUxpbmtlclBsdWdpbih7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBmaWxlU3lzdGVtOiBuZXcgTm9kZUpTRmlsZVN5c3RlbSgpLFxuICAgIGxvZ2dlcjogbmV3IENvbnNvbGVMb2dnZXIoTG9nTGV2ZWwuaW5mbyksXG4gIH0pO1xufVxuIl19
|