@angular/compiler-cli 13.0.0-next.9 → 13.0.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/index.js +20413 -0
- package/bundles/index.js.map +6 -0
- package/bundles/linker/babel/index.js +2384 -0
- package/bundles/linker/babel/index.js.map +6 -0
- package/bundles/linker/index.js +1849 -0
- package/bundles/linker/index.js.map +6 -0
- package/bundles/ngcc/index.js +16038 -0
- package/bundles/ngcc/index.js.map +6 -0
- package/bundles/ngcc/main-ngcc.js +16126 -0
- package/bundles/ngcc/main-ngcc.js.map +6 -0
- package/bundles/ngcc/src/execution/cluster/ngcc_cluster_worker.js +13850 -0
- package/bundles/ngcc/src/execution/cluster/ngcc_cluster_worker.js.map +6 -0
- package/bundles/ngcc/src/locking/lock_file_with_child_process/ngcc_lock_unlocker.js +334 -0
- package/bundles/ngcc/src/locking/lock_file_with_child_process/ngcc_lock_unlocker.js.map +6 -0
- package/bundles/private/bazel.js +97 -0
- package/bundles/private/bazel.js.map +6 -0
- package/bundles/private/localize.js +911 -0
- package/bundles/private/localize.js.map +6 -0
- package/bundles/private/migrations.js +2183 -0
- package/bundles/private/migrations.js.map +6 -0
- package/bundles/private/tooling.js +942 -0
- package/bundles/private/tooling.js.map +6 -0
- package/bundles/src/bin/ng_xi18n.js +20463 -0
- package/bundles/src/bin/ng_xi18n.js.map +6 -0
- package/bundles/src/bin/ngc.js +20465 -0
- package/bundles/src/bin/ngc.js.map +6 -0
- package/bundles_metadata.json +1 -0
- package/import_meta_url.d.ts +14 -0
- package/index.d.ts +4 -1
- package/linker/babel/src/ast/babel_ast_factory.d.ts +1 -8
- package/linker/babel/src/ast/babel_ast_host.d.ts +1 -1
- package/linker/babel/src/babel_core.d.ts +36 -0
- package/linker/babel/src/babel_declaration_scope.d.ts +1 -1
- package/linker/babel/src/babel_plugin.d.ts +1 -8
- package/linker/babel/src/es2015_linker_plugin.d.ts +2 -2
- package/linker/src/ast/typescript/typescript_ast_host.d.ts +1 -1
- package/linker/src/file_linker/emit_scopes/emit_scope.d.ts +1 -2
- package/linker/src/file_linker/emit_scopes/iife_emit_scope.d.ts +1 -1
- package/linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.d.ts +1 -2
- package/linker/src/file_linker/partial_linkers/partial_component_linker_1.d.ts +1 -2
- package/linker/src/file_linker/partial_linkers/partial_directive_linker_1.d.ts +1 -2
- package/linker/src/file_linker/partial_linkers/partial_factory_linker_1.d.ts +1 -2
- package/linker/src/file_linker/partial_linkers/partial_injectable_linker_1.d.ts +1 -2
- package/linker/src/file_linker/partial_linkers/partial_injector_linker_1.d.ts +1 -2
- package/linker/src/file_linker/partial_linkers/partial_linker.d.ts +1 -2
- package/linker/src/file_linker/partial_linkers/partial_linker_selector.d.ts +2 -2
- package/linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.d.ts +1 -2
- package/linker/src/file_linker/partial_linkers/partial_pipe_linker_1.d.ts +1 -2
- package/linker/src/file_linker/partial_linkers/util.d.ts +1 -2
- package/ngcc/index.d.ts +15 -0
- package/ngcc/src/analysis/decoration_analyzer.d.ts +1 -1
- package/ngcc/src/analysis/module_with_providers_analyzer.d.ts +1 -1
- package/ngcc/src/analysis/ngcc_references_registry.d.ts +1 -1
- package/ngcc/src/analysis/ngcc_trait_compiler.d.ts +1 -1
- package/ngcc/src/analysis/private_declarations_analyzer.d.ts +1 -1
- package/ngcc/src/analysis/switch_marker_analyzer.d.ts +1 -1
- package/ngcc/src/analysis/types.d.ts +1 -1
- package/ngcc/src/dependencies/esm_dependency_host.d.ts +1 -1
- package/ngcc/src/execution/cluster/api.d.ts +5 -1
- package/ngcc/src/execution/cluster/master.d.ts +5 -3
- package/{src/ngtsc/logging/testing/index.d.ts → ngcc/src/execution/cluster/ngcc_cluster_worker.d.ts} +2 -2
- package/ngcc/src/host/commonjs_host.d.ts +1 -1
- package/ngcc/src/host/commonjs_umd_utils.d.ts +1 -1
- package/ngcc/src/host/delegating_host.d.ts +1 -1
- package/ngcc/src/host/esm2015_host.d.ts +1 -1
- package/ngcc/src/host/esm5_host.d.ts +1 -1
- package/ngcc/src/host/ngcc_host.d.ts +1 -1
- package/ngcc/src/host/umd_host.d.ts +1 -1
- package/ngcc/src/host/utils.d.ts +1 -1
- package/ngcc/src/locking/lock_file.d.ts +1 -1
- package/ngcc/src/locking/lock_file_with_child_process/index.d.ts +2 -0
- package/ngcc/src/locking/lock_file_with_child_process/{unlocker.d.ts → ngcc_lock_unlocker.d.ts} +1 -1
- package/ngcc/src/migrations/migration.d.ts +1 -1
- package/ngcc/src/migrations/missing_injectable_migration.d.ts +1 -1
- package/ngcc/src/migrations/undecorated_child_migration.d.ts +1 -1
- package/ngcc/src/migrations/undecorated_parent_migration.d.ts +1 -1
- package/ngcc/src/migrations/utils.d.ts +1 -1
- package/ngcc/src/packages/build_marker.d.ts +1 -1
- package/ngcc/src/packages/bundle_program.d.ts +1 -1
- package/ngcc/src/packages/entry_point_bundle.d.ts +1 -1
- package/ngcc/src/packages/ngcc_compiler_host.d.ts +1 -1
- package/ngcc/src/packages/source_file_cache.d.ts +1 -1
- package/ngcc/src/packages/transformer.d.ts +1 -1
- package/ngcc/src/rendering/commonjs_rendering_formatter.d.ts +1 -1
- package/ngcc/src/rendering/dts_renderer.d.ts +1 -1
- package/ngcc/src/rendering/esm5_rendering_formatter.d.ts +1 -1
- package/ngcc/src/rendering/esm_rendering_formatter.d.ts +1 -1
- package/ngcc/src/rendering/renderer.d.ts +1 -1
- package/ngcc/src/rendering/rendering_formatter.d.ts +1 -1
- package/ngcc/src/rendering/source_maps.d.ts +3 -3
- package/ngcc/src/rendering/umd_rendering_formatter.d.ts +1 -1
- package/ngcc/src/rendering/utils.d.ts +1 -1
- package/ngcc/src/utils.d.ts +1 -1
- package/package.json +52 -13
- package/private/bazel.d.ts +13 -0
- package/private/localize.d.ts +15 -0
- package/private/migrations.d.ts +16 -0
- package/{src → private}/tooling.d.ts +2 -2
- package/src/bin/ng_xi18n.d.ts +10 -0
- package/{ngcc/main-ivy-ngcc.d.ts → src/bin/ngc.d.ts} +2 -1
- package/src/diagnostics/translate_diagnostics.d.ts +1 -1
- package/src/extract_i18n.d.ts +0 -5
- package/src/main.d.ts +9 -6
- package/src/metadata/bundle_index_host.d.ts +1 -1
- package/src/metadata/bundler.d.ts +1 -1
- package/src/metadata/collector.d.ts +1 -1
- package/src/metadata/evaluator.d.ts +1 -1
- package/src/metadata/symbols.d.ts +1 -1
- package/src/ngtsc/annotations/src/component.d.ts +1 -1
- package/src/ngtsc/annotations/src/diagnostics.d.ts +1 -1
- package/src/ngtsc/annotations/src/directive.d.ts +1 -1
- package/src/ngtsc/annotations/src/ng_module.d.ts +2 -3
- package/src/ngtsc/annotations/src/pipe.d.ts +1 -1
- package/src/ngtsc/annotations/src/util.d.ts +2 -4
- package/src/ngtsc/core/api/src/adapter.d.ts +1 -1
- package/src/ngtsc/core/api/src/interfaces.d.ts +1 -1
- package/src/ngtsc/core/api/src/options.d.ts +1 -1
- package/src/ngtsc/core/api/src/public_options.d.ts +5 -1
- package/src/ngtsc/core/src/compiler.d.ts +1 -1
- package/src/ngtsc/core/src/host.d.ts +1 -1
- package/src/ngtsc/cycles/src/analyzer.d.ts +1 -1
- package/src/ngtsc/cycles/src/imports.d.ts +1 -1
- package/src/ngtsc/diagnostics/index.d.ts +4 -2
- package/src/ngtsc/diagnostics/src/docs.d.ts +14 -0
- package/src/ngtsc/diagnostics/src/error.d.ts +1 -1
- package/src/ngtsc/diagnostics/src/error_details_base_url.d.ts +16 -0
- package/src/ngtsc/diagnostics/src/util.d.ts +2 -0
- package/src/ngtsc/entry_point/src/generator.d.ts +1 -1
- package/src/ngtsc/entry_point/src/private_export_checker.d.ts +1 -1
- package/src/ngtsc/file_system/src/compiler_host.d.ts +1 -1
- package/src/ngtsc/file_system/src/logical.d.ts +1 -1
- package/src/ngtsc/file_system/src/util.d.ts +1 -1
- package/src/ngtsc/imports/src/alias.d.ts +1 -1
- package/src/ngtsc/imports/src/default.d.ts +1 -1
- package/src/ngtsc/imports/src/emitter.d.ts +1 -1
- package/src/ngtsc/imports/src/find_export.d.ts +1 -1
- package/src/ngtsc/imports/src/references.d.ts +1 -1
- package/src/ngtsc/imports/src/resolver.d.ts +1 -1
- package/src/ngtsc/incremental/api.d.ts +1 -1
- package/src/ngtsc/incremental/src/dependency_tracking.d.ts +1 -1
- package/src/ngtsc/incremental/src/incremental.d.ts +1 -1
- package/src/ngtsc/incremental/src/state.d.ts +1 -1
- package/src/ngtsc/incremental/src/strategy.d.ts +1 -1
- package/src/ngtsc/metadata/src/api.d.ts +1 -1
- package/src/ngtsc/metadata/src/dts.d.ts +1 -1
- package/src/ngtsc/metadata/src/resource_registry.d.ts +1 -1
- package/src/ngtsc/metadata/src/util.d.ts +1 -1
- package/src/ngtsc/partial_evaluator/index.d.ts +1 -0
- package/src/ngtsc/partial_evaluator/src/builtin.d.ts +1 -1
- package/src/ngtsc/partial_evaluator/src/diagnostics.d.ts +1 -1
- package/src/ngtsc/partial_evaluator/src/dynamic.d.ts +1 -1
- package/src/ngtsc/partial_evaluator/src/interface.d.ts +1 -1
- package/src/ngtsc/partial_evaluator/src/interpreter.d.ts +1 -1
- package/src/ngtsc/partial_evaluator/src/result.d.ts +1 -1
- package/src/ngtsc/partial_evaluator/src/ts_helpers.d.ts +1 -1
- package/src/ngtsc/program.d.ts +1 -1
- package/src/ngtsc/program_driver/src/api.d.ts +1 -1
- package/src/ngtsc/program_driver/src/ts_create_program_driver.d.ts +1 -1
- package/src/ngtsc/reflection/src/host.d.ts +1 -1
- package/src/ngtsc/reflection/src/type_to_value.d.ts +1 -1
- package/src/ngtsc/reflection/src/typescript.d.ts +1 -1
- package/src/ngtsc/reflection/src/util.d.ts +1 -1
- package/src/ngtsc/resource/src/loader.d.ts +1 -1
- package/src/ngtsc/scope/src/local.d.ts +1 -1
- package/src/ngtsc/scope/src/typecheck.d.ts +1 -1
- package/src/ngtsc/shims/api.d.ts +1 -1
- package/src/ngtsc/shims/src/adapter.d.ts +1 -1
- package/src/ngtsc/shims/src/expando.d.ts +1 -1
- package/src/ngtsc/shims/src/factory_generator.d.ts +1 -1
- package/src/ngtsc/shims/src/reference_tagger.d.ts +1 -1
- package/src/ngtsc/shims/src/summary_generator.d.ts +1 -1
- package/src/ngtsc/switch/src/switch.d.ts +1 -1
- package/src/ngtsc/transform/src/alias.d.ts +1 -1
- package/src/ngtsc/transform/src/api.d.ts +1 -1
- package/src/ngtsc/transform/src/compilation.d.ts +1 -1
- package/src/ngtsc/transform/src/declaration.d.ts +1 -1
- package/src/ngtsc/transform/src/trait.d.ts +1 -1
- package/src/ngtsc/transform/src/transform.d.ts +1 -1
- package/src/ngtsc/transform/src/utils.d.ts +1 -1
- package/src/ngtsc/translator/src/import_manager.d.ts +1 -1
- package/src/ngtsc/translator/src/type_translator.d.ts +1 -1
- package/src/ngtsc/translator/src/typescript_ast_factory.d.ts +1 -1
- package/src/ngtsc/translator/src/typescript_translator.d.ts +1 -1
- package/src/ngtsc/tsc_plugin.d.ts +1 -1
- package/src/ngtsc/typecheck/api/api.d.ts +1 -1
- package/src/ngtsc/typecheck/api/checker.d.ts +3 -4
- package/src/ngtsc/typecheck/api/context.d.ts +1 -1
- package/src/ngtsc/typecheck/api/scope.d.ts +1 -1
- package/src/ngtsc/typecheck/api/symbols.d.ts +1 -1
- package/src/ngtsc/typecheck/diagnostics/src/diagnostic.d.ts +1 -1
- package/src/ngtsc/typecheck/extended/api/api.d.ts +1 -1
- package/src/ngtsc/typecheck/extended/api/extended_template_checker.d.ts +1 -1
- package/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.d.ts +1 -1
- package/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.d.ts +1 -1
- package/src/ngtsc/typecheck/extended/src/extended_template_checker.d.ts +1 -1
- package/src/ngtsc/typecheck/src/checker.d.ts +3 -4
- package/src/ngtsc/typecheck/src/comments.d.ts +1 -1
- package/src/ngtsc/typecheck/src/completion.d.ts +3 -5
- package/src/ngtsc/typecheck/src/context.d.ts +1 -1
- package/src/ngtsc/typecheck/src/diagnostics.d.ts +1 -1
- package/src/ngtsc/typecheck/src/environment.d.ts +1 -1
- package/src/ngtsc/typecheck/src/expression.d.ts +1 -1
- package/src/ngtsc/typecheck/src/oob.d.ts +3 -4
- package/src/ngtsc/typecheck/src/shim.d.ts +1 -1
- package/src/ngtsc/typecheck/src/source.d.ts +1 -1
- package/src/ngtsc/typecheck/src/tcb_util.d.ts +1 -1
- package/src/ngtsc/typecheck/src/template_symbol_builder.d.ts +1 -1
- package/src/ngtsc/typecheck/src/ts_util.d.ts +1 -1
- package/src/ngtsc/typecheck/src/type_check_block.d.ts +1 -1
- package/src/ngtsc/typecheck/src/type_check_file.d.ts +1 -1
- package/src/ngtsc/typecheck/src/type_constructor.d.ts +1 -1
- package/src/ngtsc/typecheck/src/type_emitter.d.ts +1 -1
- package/src/ngtsc/typecheck/src/type_parameter_emitter.d.ts +1 -1
- package/src/ngtsc/util/src/typescript.d.ts +1 -1
- package/src/ngtsc/util/src/visitor.d.ts +1 -1
- package/src/perform_compile.d.ts +1 -2
- package/src/perform_watch.d.ts +1 -1
- package/src/transformers/api.d.ts +1 -1
- package/src/transformers/compiler_host.d.ts +1 -1
- package/src/transformers/{downlevel_decorators_transform.d.ts → downlevel_decorators_transform/downlevel_decorators_transform.d.ts} +3 -3
- package/src/transformers/downlevel_decorators_transform/index.d.ts +9 -0
- package/src/transformers/{patch_alias_reference_resolution.d.ts → downlevel_decorators_transform/patch_alias_reference_resolution.d.ts} +2 -2
- package/src/transformers/i18n.d.ts +1 -1
- package/src/transformers/inline_resources.d.ts +1 -1
- package/src/transformers/lower_expressions.d.ts +1 -1
- package/src/transformers/metadata_cache.d.ts +1 -1
- package/src/transformers/node_emitter.d.ts +1 -1
- package/src/transformers/node_emitter_transform.d.ts +1 -1
- package/src/transformers/program.d.ts +1 -1
- package/src/transformers/r3_metadata_transform.d.ts +1 -1
- package/src/transformers/r3_transform.d.ts +1 -1
- package/src/transformers/util.d.ts +1 -1
- package/index.js +0 -40
- package/linker/babel/index.js +0 -25
- package/linker/babel/src/ast/babel_ast_factory.js +0 -153
- package/linker/babel/src/ast/babel_ast_host.js +0 -181
- package/linker/babel/src/babel_declaration_scope.js +0 -67
- package/linker/babel/src/babel_plugin.js +0 -38
- package/linker/babel/src/es2015_linker_plugin.js +0 -183
- package/linker/babel/src/linker_plugin_options.js +0 -13
- package/linker/index.js +0 -27
- package/linker/src/ast/ast_host.js +0 -20
- package/linker/src/ast/ast_value.js +0 -299
- package/linker/src/ast/typescript/typescript_ast_host.js +0 -183
- package/linker/src/ast/utils.js +0 -31
- package/linker/src/fatal_linker_error.js +0 -49
- package/linker/src/file_linker/declaration_scope.js +0 -20
- package/linker/src/file_linker/emit_scopes/emit_scope.js +0 -57
- package/linker/src/file_linker/emit_scopes/iife_emit_scope.js +0 -51
- package/linker/src/file_linker/file_linker.js +0 -97
- package/linker/src/file_linker/get_source_file.js +0 -42
- package/linker/src/file_linker/linker_environment.js +0 -38
- package/linker/src/file_linker/linker_options.js +0 -29
- package/linker/src/file_linker/needs_linking.js +0 -41
- package/linker/src/file_linker/partial_linkers/partial_class_metadata_linker_1.js +0 -47
- package/linker/src/file_linker/partial_linkers/partial_component_linker_1.js +0 -210
- package/linker/src/file_linker/partial_linkers/partial_directive_linker_1.js +0 -154
- package/linker/src/file_linker/partial_linkers/partial_factory_linker_1.js +0 -70
- package/linker/src/file_linker/partial_linkers/partial_injectable_linker_1.js +0 -74
- package/linker/src/file_linker/partial_linkers/partial_injector_linker_1.js +0 -56
- package/linker/src/file_linker/partial_linkers/partial_linker.js +0 -13
- package/linker/src/file_linker/partial_linkers/partial_linker_selector.js +0 -194
- package/linker/src/file_linker/partial_linkers/partial_ng_module_linker_1.js +0 -126
- package/linker/src/file_linker/partial_linkers/partial_pipe_linker_1.js +0 -59
- package/linker/src/file_linker/partial_linkers/util.js +0 -95
- package/linker/src/file_linker/translator.js +0 -40
- package/linker/src/linker_import_generator.js +0 -43
- package/ngcc/index.js +0 -33
- package/ngcc/main-ivy-ngcc.js +0 -12
- package/ngcc/main-ngcc.js +0 -54
- package/ngcc/src/analysis/decoration_analyzer.js +0 -268
- package/ngcc/src/analysis/migration_host.js +0 -108
- package/ngcc/src/analysis/module_with_providers_analyzer.js +0 -197
- package/ngcc/src/analysis/ngcc_references_registry.js +0 -65
- package/ngcc/src/analysis/ngcc_trait_compiler.js +0 -117
- package/ngcc/src/analysis/private_declarations_analyzer.js +0 -63
- package/ngcc/src/analysis/switch_marker_analyzer.js +0 -50
- package/ngcc/src/analysis/types.js +0 -15
- package/ngcc/src/analysis/util.js +0 -36
- package/ngcc/src/command_line_options.js +0 -156
- package/ngcc/src/constants.js +0 -23
- package/ngcc/src/dependencies/commonjs_dependency_host.js +0 -129
- package/ngcc/src/dependencies/dependency_host.js +0 -143
- package/ngcc/src/dependencies/dependency_resolver.js +0 -180
- package/ngcc/src/dependencies/dts_dependency_host.js +0 -35
- package/ngcc/src/dependencies/esm_dependency_host.js +0 -307
- package/ngcc/src/dependencies/module_resolver.js +0 -269
- package/ngcc/src/dependencies/umd_dependency_host.js +0 -53
- package/ngcc/src/entry_point_finder/directory_walker_entry_point_finder.js +0 -70
- package/ngcc/src/entry_point_finder/entry_point_collector.js +0 -157
- package/ngcc/src/entry_point_finder/interface.js +0 -13
- package/ngcc/src/entry_point_finder/program_based_entry_point_finder.js +0 -132
- package/ngcc/src/entry_point_finder/targeted_entry_point_finder.js +0 -268
- package/ngcc/src/entry_point_finder/tracing_entry_point_finder.js +0 -78
- package/ngcc/src/entry_point_finder/utils.js +0 -234
- package/ngcc/src/execution/analyze_entry_points.js +0 -197
- package/ngcc/src/execution/api.js +0 -13
- package/ngcc/src/execution/cluster/api.js +0 -20
- package/ngcc/src/execution/cluster/executor.js +0 -52
- package/ngcc/src/execution/cluster/master.js +0 -311
- package/ngcc/src/execution/cluster/package_json_updater.js +0 -79
- package/ngcc/src/execution/cluster/utils.js +0 -77
- package/ngcc/src/execution/cluster/worker.js +0 -123
- package/ngcc/src/execution/create_compile_function.js +0 -76
- package/ngcc/src/execution/single_process_executor.js +0 -91
- package/ngcc/src/execution/tasks/api.js +0 -35
- package/ngcc/src/execution/tasks/completion.js +0 -79
- package/ngcc/src/execution/tasks/queues/base_task_queue.js +0 -120
- package/ngcc/src/execution/tasks/queues/parallel_task_queue.js +0 -87
- package/ngcc/src/execution/tasks/queues/serial_task_queue.js +0 -49
- package/ngcc/src/execution/tasks/utils.js +0 -167
- package/ngcc/src/host/commonjs_host.js +0 -261
- package/ngcc/src/host/commonjs_umd_utils.js +0 -210
- package/ngcc/src/host/delegating_host.js +0 -156
- package/ngcc/src/host/esm2015_host.js +0 -2441
- package/ngcc/src/host/esm5_host.js +0 -745
- package/ngcc/src/host/ngcc_host.js +0 -29
- package/ngcc/src/host/umd_host.js +0 -539
- package/ngcc/src/host/utils.js +0 -26
- package/ngcc/src/locking/async_locker.js +0 -121
- package/ngcc/src/locking/lock_file.js +0 -18
- package/ngcc/src/locking/lock_file_with_child_process/index.js +0 -93
- package/ngcc/src/locking/lock_file_with_child_process/unlocker.js +0 -46
- package/ngcc/src/locking/lock_file_with_child_process/util.js +0 -43
- package/ngcc/src/locking/sync_locker.js +0 -67
- package/ngcc/src/main.js +0 -163
- package/ngcc/src/migrations/migration.js +0 -13
- package/ngcc/src/migrations/missing_injectable_migration.js +0 -227
- package/ngcc/src/migrations/undecorated_child_migration.js +0 -90
- package/ngcc/src/migrations/undecorated_parent_migration.js +0 -103
- package/ngcc/src/migrations/utils.js +0 -137
- package/ngcc/src/ngcc_options.js +0 -135
- package/ngcc/src/packages/build_marker.js +0 -124
- package/ngcc/src/packages/bundle_program.js +0 -80
- package/ngcc/src/packages/configuration.js +0 -334
- package/ngcc/src/packages/entry_point.js +0 -267
- package/ngcc/src/packages/entry_point_bundle.js +0 -96
- package/ngcc/src/packages/entry_point_manifest.js +0 -207
- package/ngcc/src/packages/ngcc_compiler_host.js +0 -101
- package/ngcc/src/packages/patch_ts_expando_initializer.js +0 -174
- package/ngcc/src/packages/source_file_cache.js +0 -207
- package/ngcc/src/packages/transformer.js +0 -157
- package/ngcc/src/path_mappings.js +0 -27
- package/ngcc/src/rendering/commonjs_rendering_formatter.js +0 -106
- package/ngcc/src/rendering/dts_renderer.js +0 -170
- package/ngcc/src/rendering/esm5_rendering_formatter.js +0 -70
- package/ngcc/src/rendering/esm_rendering_formatter.js +0 -291
- package/ngcc/src/rendering/ngcc_import_rewriter.js +0 -49
- package/ngcc/src/rendering/renderer.js +0 -204
- package/ngcc/src/rendering/rendering_formatter.js +0 -15
- package/ngcc/src/rendering/source_maps.js +0 -68
- package/ngcc/src/rendering/umd_rendering_formatter.js +0 -326
- package/ngcc/src/rendering/utils.js +0 -35
- package/ngcc/src/utils.js +0 -182
- package/ngcc/src/writing/cleaning/cleaning_strategies.js +0 -80
- package/ngcc/src/writing/cleaning/package_cleaner.js +0 -126
- package/ngcc/src/writing/cleaning/utils.js +0 -30
- package/ngcc/src/writing/file_writer.js +0 -13
- package/ngcc/src/writing/in_place_file_writer.js +0 -90
- package/ngcc/src/writing/new_entry_point_file_writer.js +0 -214
- package/ngcc/src/writing/package_json_updater.js +0 -182
- package/src/diagnostics/translate_diagnostics.js +0 -61
- package/src/diagnostics/typescript_version.js +0 -96
- package/src/extract_i18n.js +0 -62
- package/src/language_services.js +0 -34
- package/src/main.js +0 -210
- package/src/metadata/bundle_index_host.js +0 -133
- package/src/metadata/bundler.js +0 -624
- package/src/metadata/collector.js +0 -799
- package/src/metadata/evaluator.js +0 -677
- package/src/metadata/index.js +0 -24
- package/src/metadata/index_writer.js +0 -80
- package/src/metadata/schema.js +0 -136
- package/src/metadata/symbols.js +0 -149
- package/src/ngtsc/annotations/index.js +0 -35
- package/src/ngtsc/annotations/src/api.js +0 -20
- package/src/ngtsc/annotations/src/component.js +0 -1338
- package/src/ngtsc/annotations/src/diagnostics.js +0 -174
- package/src/ngtsc/annotations/src/directive.js +0 -724
- package/src/ngtsc/annotations/src/factory.js +0 -32
- package/src/ngtsc/annotations/src/injectable.js +0 -284
- package/src/ngtsc/annotations/src/metadata.js +0 -160
- package/src/ngtsc/annotations/src/ng_module.js +0 -671
- package/src/ngtsc/annotations/src/pipe.js +0 -171
- package/src/ngtsc/annotations/src/references_registry.js +0 -38
- package/src/ngtsc/annotations/src/util.js +0 -566
- package/src/ngtsc/core/api/index.js +0 -25
- package/src/ngtsc/core/api/src/adapter.js +0 -20
- package/src/ngtsc/core/api/src/interfaces.js +0 -20
- package/src/ngtsc/core/api/src/options.js +0 -20
- package/src/ngtsc/core/api/src/public_options.js +0 -20
- package/src/ngtsc/core/index.js +0 -25
- package/src/ngtsc/core/src/compiler.js +0 -1105
- package/src/ngtsc/core/src/host.js +0 -273
- package/src/ngtsc/cycles/index.js +0 -26
- package/src/ngtsc/cycles/src/analyzer.js +0 -163
- package/src/ngtsc/cycles/src/imports.js +0 -175
- package/src/ngtsc/diagnostics/index.js +0 -33
- package/src/ngtsc/diagnostics/src/error.js +0 -69
- package/src/ngtsc/diagnostics/src/error_code.js +0 -235
- package/src/ngtsc/diagnostics/src/util.js +0 -35
- package/src/ngtsc/entry_point/index.js +0 -29
- package/src/ngtsc/entry_point/src/generator.js +0 -45
- package/src/ngtsc/entry_point/src/logic.js +0 -61
- package/src/ngtsc/entry_point/src/private_export_checker.js +0 -137
- package/src/ngtsc/entry_point/src/reference_graph.js +0 -91
- package/src/ngtsc/file_system/index.js +0 -45
- package/src/ngtsc/file_system/src/compiler_host.js +0 -80
- package/src/ngtsc/file_system/src/helpers.js +0 -135
- package/src/ngtsc/file_system/src/invalid_file_system.js +0 -120
- package/src/ngtsc/file_system/src/logical.js +0 -100
- package/src/ngtsc/file_system/src/node_js_file_system.js +0 -179
- package/src/ngtsc/file_system/src/types.js +0 -20
- package/src/ngtsc/file_system/src/util.js +0 -38
- package/src/ngtsc/file_system/testing/index.d.ts +0 -13
- package/src/ngtsc/file_system/testing/index.js +0 -32
- package/src/ngtsc/file_system/testing/src/mock_file_system.d.ts +0 -72
- package/src/ngtsc/file_system/testing/src/mock_file_system.js +0 -333
- package/src/ngtsc/file_system/testing/src/mock_file_system_native.d.ts +0 -16
- package/src/ngtsc/file_system/testing/src/mock_file_system_native.js +0 -85
- package/src/ngtsc/file_system/testing/src/mock_file_system_posix.d.ts +0 -13
- package/src/ngtsc/file_system/testing/src/mock_file_system_posix.js +0 -68
- package/src/ngtsc/file_system/testing/src/mock_file_system_windows.d.ts +0 -13
- package/src/ngtsc/file_system/testing/src/mock_file_system_windows.js +0 -68
- package/src/ngtsc/file_system/testing/src/test_helper.d.ts +0 -17
- package/src/ngtsc/file_system/testing/src/test_helper.js +0 -143
- package/src/ngtsc/imports/index.js +0 -43
- package/src/ngtsc/imports/src/alias.js +0 -158
- package/src/ngtsc/imports/src/core.js +0 -98
- package/src/ngtsc/imports/src/default.js +0 -153
- package/src/ngtsc/imports/src/emitter.js +0 -317
- package/src/ngtsc/imports/src/find_export.js +0 -82
- package/src/ngtsc/imports/src/reexport.js +0 -20
- package/src/ngtsc/imports/src/references.js +0 -171
- package/src/ngtsc/imports/src/resolver.js +0 -39
- package/src/ngtsc/incremental/api.js +0 -20
- package/src/ngtsc/incremental/index.js +0 -29
- package/src/ngtsc/incremental/semantic_graph/index.js +0 -34
- package/src/ngtsc/incremental/semantic_graph/src/api.js +0 -51
- package/src/ngtsc/incremental/semantic_graph/src/graph.js +0 -302
- package/src/ngtsc/incremental/semantic_graph/src/type_parameters.js +0 -55
- package/src/ngtsc/incremental/semantic_graph/src/util.js +0 -111
- package/src/ngtsc/incremental/src/dependency_tracking.js +0 -165
- package/src/ngtsc/incremental/src/incremental.js +0 -393
- package/src/ngtsc/incremental/src/noop.js +0 -26
- package/src/ngtsc/incremental/src/state.js +0 -30
- package/src/ngtsc/incremental/src/strategy.js +0 -99
- package/src/ngtsc/indexer/index.js +0 -27
- package/src/ngtsc/indexer/src/api.js +0 -45
- package/src/ngtsc/indexer/src/context.js +0 -40
- package/src/ngtsc/indexer/src/template.js +0 -324
- package/src/ngtsc/indexer/src/transform.js +0 -66
- package/src/ngtsc/logging/index.js +0 -25
- package/src/ngtsc/logging/src/console_logger.js +0 -75
- package/src/ngtsc/logging/src/logger.js +0 -28
- package/src/ngtsc/logging/testing/index.js +0 -23
- package/src/ngtsc/logging/testing/src/mock_logger.d.ts +0 -20
- package/src/ngtsc/logging/testing/src/mock_logger.js +0 -64
- package/src/ngtsc/metadata/index.js +0 -39
- package/src/ngtsc/metadata/src/api.js +0 -26
- package/src/ngtsc/metadata/src/dts.js +0 -168
- package/src/ngtsc/metadata/src/inheritance.js +0 -122
- package/src/ngtsc/metadata/src/property_mapping.js +0 -244
- package/src/ngtsc/metadata/src/registry.js +0 -133
- package/src/ngtsc/metadata/src/resource_registry.js +0 -109
- package/src/ngtsc/metadata/src/util.js +0 -275
- package/src/ngtsc/partial_evaluator/index.js +0 -31
- package/src/ngtsc/partial_evaluator/src/builtin.js +0 -125
- package/src/ngtsc/partial_evaluator/src/diagnostics.js +0 -193
- package/src/ngtsc/partial_evaluator/src/dynamic.js +0 -109
- package/src/ngtsc/partial_evaluator/src/interface.js +0 -42
- package/src/ngtsc/partial_evaluator/src/interpreter.js +0 -780
- package/src/ngtsc/partial_evaluator/src/known_declaration.js +0 -57
- package/src/ngtsc/partial_evaluator/src/result.js +0 -72
- package/src/ngtsc/partial_evaluator/src/ts_helpers.js +0 -121
- package/src/ngtsc/perf/index.js +0 -28
- package/src/ngtsc/perf/src/api.js +0 -291
- package/src/ngtsc/perf/src/clock.js +0 -31
- package/src/ngtsc/perf/src/noop.js +0 -37
- package/src/ngtsc/perf/src/recorder.js +0 -143
- package/src/ngtsc/program.js +0 -360
- package/src/ngtsc/program_driver/index.js +0 -25
- package/src/ngtsc/program_driver/src/api.js +0 -36
- package/src/ngtsc/program_driver/src/ts_create_program_driver.js +0 -200
- package/src/ngtsc/reflection/index.js +0 -36
- package/src/ngtsc/reflection/src/host.js +0 -88
- package/src/ngtsc/reflection/src/type_to_value.js +0 -259
- package/src/ngtsc/reflection/src/typescript.js +0 -640
- package/src/ngtsc/reflection/src/util.js +0 -37
- package/src/ngtsc/resource/index.js +0 -23
- package/src/ngtsc/resource/src/loader.js +0 -285
- package/src/ngtsc/scope/index.js +0 -29
- package/src/ngtsc/scope/src/api.js +0 -20
- package/src/ngtsc/scope/src/component_scope.js +0 -69
- package/src/ngtsc/scope/src/dependency.js +0 -201
- package/src/ngtsc/scope/src/local.js +0 -665
- package/src/ngtsc/scope/src/typecheck.js +0 -120
- package/src/ngtsc/shims/api.js +0 -13
- package/src/ngtsc/shims/index.js +0 -39
- package/src/ngtsc/shims/src/adapter.js +0 -266
- package/src/ngtsc/shims/src/expando.js +0 -147
- package/src/ngtsc/shims/src/factory_generator.js +0 -292
- package/src/ngtsc/shims/src/reference_tagger.js +0 -94
- package/src/ngtsc/shims/src/summary_generator.js +0 -101
- package/src/ngtsc/shims/src/util.js +0 -41
- package/src/ngtsc/sourcemaps/index.js +0 -27
- package/src/ngtsc/sourcemaps/src/content_origin.js +0 -48
- package/src/ngtsc/sourcemaps/src/raw_source_map.js +0 -13
- package/src/ngtsc/sourcemaps/src/segment_marker.js +0 -55
- package/src/ngtsc/sourcemaps/src/source_file.js +0 -519
- package/src/ngtsc/sourcemaps/src/source_file_loader.js +0 -234
- package/src/ngtsc/switch/index.js +0 -23
- package/src/ngtsc/switch/src/switch.js +0 -141
- package/src/ngtsc/transform/index.js +0 -36
- package/src/ngtsc/transform/src/alias.js +0 -46
- package/src/ngtsc/transform/src/api.js +0 -76
- package/src/ngtsc/transform/src/compilation.js +0 -862
- package/src/ngtsc/transform/src/declaration.js +0 -234
- package/src/ngtsc/transform/src/trait.js +0 -111
- package/src/ngtsc/transform/src/transform.js +0 -333
- package/src/ngtsc/transform/src/utils.js +0 -73
- package/src/ngtsc/translator/index.js +0 -37
- package/src/ngtsc/translator/src/api/ast_factory.js +0 -20
- package/src/ngtsc/translator/src/api/import_generator.js +0 -20
- package/src/ngtsc/translator/src/context.js +0 -47
- package/src/ngtsc/translator/src/import_manager.js +0 -77
- package/src/ngtsc/translator/src/translator.js +0 -347
- package/src/ngtsc/translator/src/type_translator.js +0 -220
- package/src/ngtsc/translator/src/typescript_ast_factory.js +0 -251
- package/src/ngtsc/translator/src/typescript_translator.js +0 -34
- package/src/ngtsc/tsc_plugin.js +0 -129
- package/src/ngtsc/typecheck/api/api.js +0 -20
- package/src/ngtsc/typecheck/api/checker.js +0 -44
- package/src/ngtsc/typecheck/api/completion.js +0 -29
- package/src/ngtsc/typecheck/api/context.js +0 -20
- package/src/ngtsc/typecheck/api/index.js +0 -27
- package/src/ngtsc/typecheck/api/scope.js +0 -20
- package/src/ngtsc/typecheck/api/symbols.js +0 -35
- package/src/ngtsc/typecheck/diagnostics/index.js +0 -23
- package/src/ngtsc/typecheck/diagnostics/src/diagnostic.js +0 -141
- package/src/ngtsc/typecheck/diagnostics/src/id.js +0 -37
- package/src/ngtsc/typecheck/extended/api/api.js +0 -124
- package/src/ngtsc/typecheck/extended/api/extended_template_checker.js +0 -20
- package/src/ngtsc/typecheck/extended/api/index.js +0 -23
- package/src/ngtsc/typecheck/extended/checks/invalid_banana_in_box/index.js +0 -52
- package/src/ngtsc/typecheck/extended/checks/nullish_coalescing_not_nullable/index.js +0 -64
- package/src/ngtsc/typecheck/extended/index.js +0 -23
- package/src/ngtsc/typecheck/extended/src/extended_template_checker.js +0 -55
- package/src/ngtsc/typecheck/index.js +0 -29
- package/src/ngtsc/typecheck/src/checker.js +0 -767
- package/src/ngtsc/typecheck/src/comments.js +0 -181
- package/src/ngtsc/typecheck/src/completion.js +0 -230
- package/src/ngtsc/typecheck/src/context.js +0 -424
- package/src/ngtsc/typecheck/src/diagnostics.js +0 -114
- package/src/ngtsc/typecheck/src/dom.js +0 -87
- package/src/ngtsc/typecheck/src/environment.js +0 -160
- package/src/ngtsc/typecheck/src/expression.js +0 -417
- package/src/ngtsc/typecheck/src/line_mappings.js +0 -77
- package/src/ngtsc/typecheck/src/oob.js +0 -181
- package/src/ngtsc/typecheck/src/shim.js +0 -52
- package/src/ngtsc/typecheck/src/source.js +0 -91
- package/src/ngtsc/typecheck/src/tcb_util.js +0 -165
- package/src/ngtsc/typecheck/src/template_semantics.js +0 -52
- package/src/ngtsc/typecheck/src/template_symbol_builder.js +0 -551
- package/src/ngtsc/typecheck/src/ts_util.js +0 -202
- package/src/ngtsc/typecheck/src/type_check_block.js +0 -2212
- package/src/ngtsc/typecheck/src/type_check_file.js +0 -115
- package/src/ngtsc/typecheck/src/type_constructor.js +0 -255
- package/src/ngtsc/typecheck/src/type_emitter.js +0 -164
- package/src/ngtsc/typecheck/src/type_parameter_emitter.js +0 -115
- package/src/ngtsc/util/src/path.js +0 -33
- package/src/ngtsc/util/src/typescript.js +0 -176
- package/src/ngtsc/util/src/visitor.js +0 -119
- package/src/ngtsc/xi18n/index.js +0 -22
- package/src/ngtsc/xi18n/src/context.js +0 -20
- package/src/perform_compile.js +0 -322
- package/src/perform_watch.js +0 -263
- package/src/tooling.js +0 -47
- package/src/transformers/api.js +0 -42
- package/src/transformers/compiler_host.js +0 -623
- package/src/transformers/downlevel_decorators_transform.js +0 -611
- package/src/transformers/entry_points.js +0 -25
- package/src/transformers/i18n.js +0 -76
- package/src/transformers/inline_resources.js +0 -287
- package/src/transformers/lower_expressions.js +0 -365
- package/src/transformers/metadata_cache.js +0 -96
- package/src/transformers/metadata_reader.js +0 -120
- package/src/transformers/node_emitter.js +0 -637
- package/src/transformers/node_emitter_transform.js +0 -88
- package/src/transformers/patch_alias_reference_resolution.js +0 -129
- package/src/transformers/program.js +0 -998
- package/src/transformers/r3_metadata_transform.js +0 -73
- package/src/transformers/r3_transform.js +0 -44
- package/src/transformers/util.js +0 -122
- package/src/typescript_support.js +0 -74
- package/src/version.js +0 -28
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
(function (factory) {
|
|
9
|
-
if (typeof module === "object" && typeof module.exports === "object") {
|
|
10
|
-
var v = factory(require, exports);
|
|
11
|
-
if (v !== undefined) module.exports = v;
|
|
12
|
-
}
|
|
13
|
-
else if (typeof define === "function" && define.amd) {
|
|
14
|
-
define("@angular/compiler-cli/src/ngtsc/program_driver/src/ts_create_program_driver", ["require", "exports", "tslib", "typescript", "@angular/compiler-cli/src/ngtsc/shims", "@angular/compiler-cli/src/ngtsc/util/src/typescript", "@angular/compiler-cli/src/ngtsc/program_driver/src/api"], factory);
|
|
15
|
-
}
|
|
16
|
-
})(function (require, exports) {
|
|
17
|
-
"use strict";
|
|
18
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.TsCreateProgramDriver = exports.DelegatingCompilerHost = void 0;
|
|
20
|
-
var tslib_1 = require("tslib");
|
|
21
|
-
var ts = require("typescript");
|
|
22
|
-
var shims_1 = require("@angular/compiler-cli/src/ngtsc/shims");
|
|
23
|
-
var typescript_1 = require("@angular/compiler-cli/src/ngtsc/util/src/typescript");
|
|
24
|
-
var api_1 = require("@angular/compiler-cli/src/ngtsc/program_driver/src/api");
|
|
25
|
-
/**
|
|
26
|
-
* Delegates all methods of `ts.CompilerHost` to a delegate, with the exception of
|
|
27
|
-
* `getSourceFile`, `fileExists` and `writeFile` which are implemented in `TypeCheckProgramHost`.
|
|
28
|
-
*
|
|
29
|
-
* If a new method is added to `ts.CompilerHost` which is not delegated, a type error will be
|
|
30
|
-
* generated for this class.
|
|
31
|
-
*/
|
|
32
|
-
var DelegatingCompilerHost = /** @class */ (function () {
|
|
33
|
-
function DelegatingCompilerHost(delegate) {
|
|
34
|
-
this.delegate = delegate;
|
|
35
|
-
// Excluded are 'getSourceFile', 'fileExists' and 'writeFile', which are actually implemented by
|
|
36
|
-
// `TypeCheckProgramHost` below.
|
|
37
|
-
this.createHash = this.delegateMethod('createHash');
|
|
38
|
-
this.directoryExists = this.delegateMethod('directoryExists');
|
|
39
|
-
this.getCancellationToken = this.delegateMethod('getCancellationToken');
|
|
40
|
-
this.getCanonicalFileName = this.delegateMethod('getCanonicalFileName');
|
|
41
|
-
this.getCurrentDirectory = this.delegateMethod('getCurrentDirectory');
|
|
42
|
-
this.getDefaultLibFileName = this.delegateMethod('getDefaultLibFileName');
|
|
43
|
-
this.getDefaultLibLocation = this.delegateMethod('getDefaultLibLocation');
|
|
44
|
-
this.getDirectories = this.delegateMethod('getDirectories');
|
|
45
|
-
this.getEnvironmentVariable = this.delegateMethod('getEnvironmentVariable');
|
|
46
|
-
this.getNewLine = this.delegateMethod('getNewLine');
|
|
47
|
-
this.getParsedCommandLine = this.delegateMethod('getParsedCommandLine');
|
|
48
|
-
this.getSourceFileByPath = this.delegateMethod('getSourceFileByPath');
|
|
49
|
-
this.readDirectory = this.delegateMethod('readDirectory');
|
|
50
|
-
this.readFile = this.delegateMethod('readFile');
|
|
51
|
-
this.realpath = this.delegateMethod('realpath');
|
|
52
|
-
this.resolveModuleNames = this.delegateMethod('resolveModuleNames');
|
|
53
|
-
this.resolveTypeReferenceDirectives = this.delegateMethod('resolveTypeReferenceDirectives');
|
|
54
|
-
this.trace = this.delegateMethod('trace');
|
|
55
|
-
this.useCaseSensitiveFileNames = this.delegateMethod('useCaseSensitiveFileNames');
|
|
56
|
-
}
|
|
57
|
-
DelegatingCompilerHost.prototype.delegateMethod = function (name) {
|
|
58
|
-
return this.delegate[name] !== undefined ? this.delegate[name].bind(this.delegate) :
|
|
59
|
-
undefined;
|
|
60
|
-
};
|
|
61
|
-
return DelegatingCompilerHost;
|
|
62
|
-
}());
|
|
63
|
-
exports.DelegatingCompilerHost = DelegatingCompilerHost;
|
|
64
|
-
/**
|
|
65
|
-
* A `ts.CompilerHost` which augments source files.
|
|
66
|
-
*/
|
|
67
|
-
var UpdatedProgramHost = /** @class */ (function (_super) {
|
|
68
|
-
(0, tslib_1.__extends)(UpdatedProgramHost, _super);
|
|
69
|
-
function UpdatedProgramHost(sfMap, originalProgram, delegate, shimExtensionPrefixes) {
|
|
70
|
-
var _this = _super.call(this, delegate) || this;
|
|
71
|
-
_this.originalProgram = originalProgram;
|
|
72
|
-
_this.shimExtensionPrefixes = shimExtensionPrefixes;
|
|
73
|
-
/**
|
|
74
|
-
* The `ShimReferenceTagger` responsible for tagging `ts.SourceFile`s loaded via this host.
|
|
75
|
-
*
|
|
76
|
-
* The `UpdatedProgramHost` is used in the creation of a new `ts.Program`. Even though this new
|
|
77
|
-
* program is based on a prior one, TypeScript will still start from the root files and enumerate
|
|
78
|
-
* all source files to include in the new program. This means that just like during the original
|
|
79
|
-
* program's creation, these source files must be tagged with references to per-file shims in
|
|
80
|
-
* order for those shims to be loaded, and then cleaned up afterwards. Thus the
|
|
81
|
-
* `UpdatedProgramHost` has its own `ShimReferenceTagger` to perform this function.
|
|
82
|
-
*/
|
|
83
|
-
_this.shimTagger = new shims_1.ShimReferenceTagger(_this.shimExtensionPrefixes);
|
|
84
|
-
_this.sfMap = sfMap;
|
|
85
|
-
return _this;
|
|
86
|
-
}
|
|
87
|
-
UpdatedProgramHost.prototype.getSourceFile = function (fileName, languageVersion, onError, shouldCreateNewSourceFile) {
|
|
88
|
-
// Try to use the same `ts.SourceFile` as the original program, if possible. This guarantees
|
|
89
|
-
// that program reuse will be as efficient as possible.
|
|
90
|
-
var delegateSf = this.originalProgram.getSourceFile(fileName);
|
|
91
|
-
if (delegateSf === undefined) {
|
|
92
|
-
// Something went wrong and a source file is being requested that's not in the original
|
|
93
|
-
// program. Just in case, try to retrieve it from the delegate.
|
|
94
|
-
delegateSf = this.delegate.getSourceFile(fileName, languageVersion, onError, shouldCreateNewSourceFile);
|
|
95
|
-
}
|
|
96
|
-
if (delegateSf === undefined) {
|
|
97
|
-
return undefined;
|
|
98
|
-
}
|
|
99
|
-
// Look for replacements.
|
|
100
|
-
var sf;
|
|
101
|
-
if (this.sfMap.has(fileName)) {
|
|
102
|
-
sf = this.sfMap.get(fileName);
|
|
103
|
-
(0, shims_1.copyFileShimData)(delegateSf, sf);
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
sf = delegateSf;
|
|
107
|
-
}
|
|
108
|
-
// TypeScript doesn't allow returning redirect source files. To avoid unforeseen errors we
|
|
109
|
-
// return the original source file instead of the redirect target.
|
|
110
|
-
sf = (0, typescript_1.toUnredirectedSourceFile)(sf);
|
|
111
|
-
this.shimTagger.tag(sf);
|
|
112
|
-
return sf;
|
|
113
|
-
};
|
|
114
|
-
UpdatedProgramHost.prototype.postProgramCreationCleanup = function () {
|
|
115
|
-
this.shimTagger.finalize();
|
|
116
|
-
};
|
|
117
|
-
UpdatedProgramHost.prototype.writeFile = function () {
|
|
118
|
-
throw new Error("TypeCheckProgramHost should never write files");
|
|
119
|
-
};
|
|
120
|
-
UpdatedProgramHost.prototype.fileExists = function (fileName) {
|
|
121
|
-
return this.sfMap.has(fileName) || this.delegate.fileExists(fileName);
|
|
122
|
-
};
|
|
123
|
-
return UpdatedProgramHost;
|
|
124
|
-
}(DelegatingCompilerHost));
|
|
125
|
-
/**
|
|
126
|
-
* Updates a `ts.Program` instance with a new one that incorporates specific changes, using the
|
|
127
|
-
* TypeScript compiler APIs for incremental program creation.
|
|
128
|
-
*/
|
|
129
|
-
var TsCreateProgramDriver = /** @class */ (function () {
|
|
130
|
-
function TsCreateProgramDriver(originalProgram, originalHost, options, shimExtensionPrefixes) {
|
|
131
|
-
this.originalProgram = originalProgram;
|
|
132
|
-
this.originalHost = originalHost;
|
|
133
|
-
this.options = options;
|
|
134
|
-
this.shimExtensionPrefixes = shimExtensionPrefixes;
|
|
135
|
-
/**
|
|
136
|
-
* A map of source file paths to replacement `ts.SourceFile`s for those paths.
|
|
137
|
-
*
|
|
138
|
-
* Effectively, this tracks the delta between the user's program (represented by the
|
|
139
|
-
* `originalHost`) and the template type-checking program being managed.
|
|
140
|
-
*/
|
|
141
|
-
this.sfMap = new Map();
|
|
142
|
-
this.program = this.originalProgram;
|
|
143
|
-
this.supportsInlineOperations = true;
|
|
144
|
-
}
|
|
145
|
-
TsCreateProgramDriver.prototype.getProgram = function () {
|
|
146
|
-
return this.program;
|
|
147
|
-
};
|
|
148
|
-
TsCreateProgramDriver.prototype.updateFiles = function (contents, updateMode) {
|
|
149
|
-
var e_1, _a;
|
|
150
|
-
if (contents.size === 0) {
|
|
151
|
-
// No changes have been requested. Is it safe to skip updating entirely?
|
|
152
|
-
// If UpdateMode is Incremental, then yes. If UpdateMode is Complete, then it's safe to skip
|
|
153
|
-
// only if there are no active changes already (that would be cleared by the update).
|
|
154
|
-
if (updateMode !== api_1.UpdateMode.Complete || this.sfMap.size === 0) {
|
|
155
|
-
// No changes would be made to the `ts.Program` anyway, so it's safe to do nothing here.
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
if (updateMode === api_1.UpdateMode.Complete) {
|
|
160
|
-
this.sfMap.clear();
|
|
161
|
-
}
|
|
162
|
-
try {
|
|
163
|
-
for (var _b = (0, tslib_1.__values)(contents.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
164
|
-
var _d = (0, tslib_1.__read)(_c.value, 2), filePath = _d[0], _e = _d[1], newText = _e.newText, originalFile = _e.originalFile;
|
|
165
|
-
var sf = ts.createSourceFile(filePath, newText, ts.ScriptTarget.Latest, true);
|
|
166
|
-
if (originalFile !== null) {
|
|
167
|
-
sf[api_1.NgOriginalFile] = originalFile;
|
|
168
|
-
}
|
|
169
|
-
this.sfMap.set(filePath, sf);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
173
|
-
finally {
|
|
174
|
-
try {
|
|
175
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
176
|
-
}
|
|
177
|
-
finally { if (e_1) throw e_1.error; }
|
|
178
|
-
}
|
|
179
|
-
var host = new UpdatedProgramHost(this.sfMap, this.originalProgram, this.originalHost, this.shimExtensionPrefixes);
|
|
180
|
-
var oldProgram = this.program;
|
|
181
|
-
// Retag the old program's `ts.SourceFile`s with shim tags, to allow TypeScript to reuse the
|
|
182
|
-
// most data.
|
|
183
|
-
(0, shims_1.retagAllTsFiles)(oldProgram);
|
|
184
|
-
this.program = ts.createProgram({
|
|
185
|
-
host: host,
|
|
186
|
-
rootNames: this.program.getRootFileNames(),
|
|
187
|
-
options: this.options,
|
|
188
|
-
oldProgram: oldProgram,
|
|
189
|
-
});
|
|
190
|
-
host.postProgramCreationCleanup();
|
|
191
|
-
// And untag them afterwards. We explicitly untag both programs here, because the oldProgram
|
|
192
|
-
// may still be used for emit and needs to not contain tags.
|
|
193
|
-
(0, shims_1.untagAllTsFiles)(this.program);
|
|
194
|
-
(0, shims_1.untagAllTsFiles)(oldProgram);
|
|
195
|
-
};
|
|
196
|
-
return TsCreateProgramDriver;
|
|
197
|
-
}());
|
|
198
|
-
exports.TsCreateProgramDriver = TsCreateProgramDriver;
|
|
199
|
-
});
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNfY3JlYXRlX3Byb2dyYW1fZHJpdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy9wcm9ncmFtX2RyaXZlci9zcmMvdHNfY3JlYXRlX3Byb2dyYW1fZHJpdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7SUFFSCwrQkFBaUM7SUFHakMsK0RBQW9HO0lBQ3BHLGtGQUF3RjtJQUV4Riw4RUFBNkc7SUFFN0c7Ozs7OztPQU1HO0lBQ0g7UUFFRSxnQ0FBc0IsUUFBeUI7WUFBekIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7WUFPL0MsZ0dBQWdHO1lBQ2hHLGdDQUFnQztZQUNoQyxlQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMvQyxvQkFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUN6RCx5QkFBb0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDbkUseUJBQW9CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQ25FLHdCQUFtQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUNqRSwwQkFBcUIsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDckUsMEJBQXFCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ3JFLG1CQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3ZELDJCQUFzQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUN2RSxlQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMs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QixFQUFFO2dCQUMxQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ3JCLFVBQVUsWUFBQTthQUNYLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1lBRWxDLDRGQUE0RjtZQUM1Riw0REFBNEQ7WUFDNUQsSUFBQSx1QkFBZSxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5QixJQUFBLHVCQUFlLEVBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUNILDRCQUFDO0lBQUQsQ0FBQyxBQWxFRCxJQWtFQztJQWxFWSxzREFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7QWJzb2x1dGVGc1BhdGh9IGZyb20gJy4uLy4uL2ZpbGVfc3lzdGVtJztcbmltcG9ydCB7Y29weUZpbGVTaGltRGF0YSwgcmV0YWdBbGxUc0ZpbGVzLCBTaGltUmVmZXJlbmNlVGFnZ2VyLCB1bnRhZ0FsbFRzRmlsZXN9IGZyb20gJy4uLy4uL3NoaW1zJztcbmltcG9ydCB7UmVxdWlyZWREZWxlZ2F0aW9ucywgdG9VbnJlZGlyZWN0ZWRTb3VyY2VGaWxlfSBmcm9tICcuLi8uLi91dGlsL3NyYy90eXBlc2NyaXB0JztcblxuaW1wb3J0IHtGaWxlVXBkYXRlLCBNYXliZVNvdXJjZUZpbGVXaXRoT3JpZ2luYWxGaWxlLCBOZ09yaWdpbmFsRmlsZSwgUHJvZ3JhbURyaXZlciwgVXBkYXRlTW9kZX0gZnJvbSAnLi9hcGknO1xuXG4vKipcbiAqIERlbGVnYXRlcyBhbGwgbWV0aG9kcyBvZiBgdHMuQ29tcGlsZXJIb3N0YCB0byBhIGRlbGVnYXRlLCB3aXRoIHRoZSBleGNlcHRpb24gb2ZcbiAqIGBnZXRTb3VyY2VGaWxlYCwgYGZpbGVFeGlzdHNgIGFuZCBgd3JpdGVGaWxlYCB3aGljaCBhcmUgaW1wbGVtZW50ZWQgaW4gYFR5cGVDaGVja1Byb2dyYW1Ib3N0YC5cbiAqXG4gKiBJZiBhIG5ldyBtZXRob2QgaXMgYWRkZWQgdG8gYHRzLkNvbXBpbGVySG9zdGAgd2hpY2ggaXMgbm90IGRlbGVnYXRlZCwgYSB0eXBlIGVycm9yIHdpbGwgYmVcbiAqIGdlbmVyYXRlZCBmb3IgdGhpcyBjbGFzcy5cbiAqL1xuZXhwb3J0IGNsYXNzIERlbGVnYXRpbmdDb21waWxlckhvc3QgaW1wbGVtZW50c1xuICAgIE9taXQ8UmVxdWlyZWREZWxlZ2F0aW9uczx0cy5Db21waWxlckhvc3Q+LCAnZ2V0U291cmNlRmlsZSd8J2ZpbGVFeGlzdHMnfCd3cml0ZUZpbGUnPiB7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBkZWxlZ2F0ZTogdHMuQ29tcGlsZXJIb3N0KSB7fVxuXG4gIHByaXZhdGUgZGVsZWdhdGVNZXRob2Q8TSBleHRlbmRzIGtleW9mIHRzLkNvbXBpbGVySG9zdD4obmFtZTogTSk6IHRzLkNvbXBpbGVySG9zdFtNXSB7XG4gICAgcmV0dXJuIHRoaXMuZGVsZWdhdGVbbmFtZV0gIT09IHVuZGVmaW5lZCA/ICh0aGlzLmRlbGVnYXRlW25hbWVdIGFzIGFueSkuYmluZCh0aGlzLmRlbGVnYXRlKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8vIEV4Y2x1ZGVkIGFyZSAnZ2V0U291cmNlRmlsZScsICdmaWxlRXhpc3RzJyBhbmQgJ3dyaXRlRmlsZScsIHdoaWNoIGFyZSBhY3R1YWxseSBpbXBsZW1lbnRlZCBieVxuICAvLyBgVHlwZUNoZWNrUHJvZ3JhbUhvc3RgIGJlbG93LlxuICBjcmVhdGVIYXNoID0gdGhpcy5kZWxlZ2F0ZU1ldGhvZCgnY3JlYXRlSGFzaCcpO1xuICBkaXJlY3RvcnlFeGlzdHMgPSB0aGlzLmRlbGVnYXRlTWV0aG9kKCdkaXJlY3RvcnlFeGlzdHMnKTtcbiAgZ2V0Q2FuY2VsbGF0aW9uVG9rZW4gPSB0aGlzLmRlbGVnYXRlTWV0aG9kKCdnZXRDYW5jZWxsYXRpb25Ub2tlbicpO1xuICBnZXRDYW5vbmljYWxGaWxlTmFtZSA9IHRoaXMuZGVsZWdhdGVNZXRob2QoJ2dldENhbm9uaWNhbEZpbGVOYW1lJyk7XG4gIGdldEN1cnJlbnREaXJlY3RvcnkgPSB0aGlzLmRlbGVnYXRlTWV0aG9kKCdnZXRDdXJyZW50RGlyZWN0b3J5Jyk7XG4gIGdldERlZmF1bHRMaWJGaWxlTmFtZSA9IHRoaXMuZGVsZWdhdGVNZXRob2QoJ2dldERlZmF1bHRMaWJGaWxlTmFtZScpO1xuICBnZXREZWZhdWx0TGliTG9jYXRpb24gPSB0aGlzLmRlbGVnYXRlTWV0aG9kKCdnZXREZWZhdWx0TGliTG9jYXRpb24nKTtcbiAgZ2V0RGlyZWN0b3JpZXMgPSB0aGlzLmRlbGVnYXRlTWV0aG9kKCdnZXREaXJlY3RvcmllcycpO1xuICBnZXRFbnZpcm9ubWVudFZhcmlhYmxlID0gdGhpcy5kZWxlZ2F0ZU1ldGhvZCgnZ2V0RW52aXJvbm1lbnRWYXJpYWJsZScpO1xuICBnZXROZXdMaW5lID0gdGhpcy5kZWxlZ2F0ZU1ldGhvZCgnZ2V0TmV3TGluZScpO1xuICBnZXRQYXJzZWRDb21tYW5kTGluZSA9IHRoaXMuZGVsZWdhdGVNZXRob2QoJ2dldFBhcnNlZENvbW1hbmRMaW5lJyk7XG4gIGdldFNvdXJjZUZpbGVCeVBhdGggPSB0aGlzLmRlbGVnYXRlTWV0aG9kKCdnZXRTb3VyY2VGaWxlQnlQYXRoJyk7XG4gIHJlYWREaXJlY3RvcnkgPSB0aGlzLmRlbGVnYXRlTWV0aG9kKCdyZWFkRGlyZWN0b3J5Jyk7XG4gIHJlYWRGaWxlID0gdGhpcy5kZWxlZ2F0ZU1ldGhvZCgncmVhZEZpbGUnKTtcbiAgcmVhbHBhdGggPSB0aGlzLmRlbGVnYXRlTWV0aG9kKCdyZWFscGF0aCcpO1xuICByZXNvbHZlTW9kdWxlTmFtZXMgPSB0aGlzLmRlbGVnYXRlTWV0aG9kKCdyZXNvbHZlTW9kdWxlTmFtZXMnKTtcbiAgcmVzb2x2ZVR5cGVSZWZlcmVuY2VEaXJlY3RpdmVzID0gdGhpcy5kZWxlZ2F0ZU1ldGhvZCgncmVzb2x2ZVR5cGVSZWZlcmVuY2VEaXJlY3RpdmVzJyk7XG4gIHRyYWNlID0gdGhpcy5kZWxlZ2F0ZU1ldGhvZCgndHJhY2UnKTtcbiAgdXNlQ2FzZVNlbnNpdGl2ZUZpbGVOYW1lcyA9IHRoaXMuZGVsZWdhdGVNZXRob2QoJ3VzZUNhc2VTZW5zaXRpdmVGaWxlTmFtZXMnKTtcbn1cblxuLyoqXG4gKiBBIGB0cy5Db21waWxlckhvc3RgIHdoaWNoIGF1Z21lbnRzIHNvdXJjZSBmaWxlcy5cbiAqL1xuY2xhc3MgVXBkYXRlZFByb2dyYW1Ib3N0IGV4dGVuZHMgRGVsZWdhdGluZ0NvbXBpbGVySG9zdCB7XG4gIC8qKlxuICAgKiBNYXAgb2Ygc291cmNlIGZpbGUgbmFtZXMgdG8gYHRzLlNvdXJjZUZpbGVgIGluc3RhbmNlcy5cbiAgICovXG4gIHByaXZhdGUgc2ZNYXA6IE1hcDxzdHJpbmcsIHRzLlNvdXJjZUZpbGU+O1xuXG4gIC8qKlxuICAgKiBUaGUgYFNoaW1SZWZlcmVuY2VUYWdnZXJgIHJlc3BvbnNpYmxlIGZvciB0YWdnaW5nIGB0cy5Tb3VyY2VGaWxlYHMgbG9hZGVkIHZpYSB0aGlzIGhvc3QuXG4gICAqXG4gICAqIFRoZSBgVXBkYXRlZFByb2dyYW1Ib3N0YCBpcyB1c2VkIGluIHRoZSBjcmVhdGlvbiBvZiBhIG5ldyBgdHMuUHJvZ3JhbWAuIEV2ZW4gdGhvdWdoIHRoaXMgbmV3XG4gICAqIHByb2dyYW0gaXMgYmFzZWQgb24gYSBwcmlvciBvbmUsIFR5cGVTY3JpcHQgd2lsbCBzdGlsbCBzdGFydCBmcm9tIHRoZSByb290IGZpbGVzIGFuZCBlbnVtZXJhdGVcbiAgICogYWxsIHNvdXJjZSBmaWxlcyB0byBpbmNsdWRlIGluIHRoZSBuZXcgcHJvZ3JhbS4gIFRoaXMgbWVhbnMgdGhhdCBqdXN0IGxpa2UgZHVyaW5nIHRoZSBvcmlnaW5hbFxuICAgKiBwcm9ncmFtJ3MgY3JlYXRpb24sIHRoZXNlIHNvdXJjZSBmaWxlcyBtdXN0IGJlIHRhZ2dlZCB3aXRoIHJlZmVyZW5jZXMgdG8gcGVyLWZpbGUgc2hpbXMgaW5cbiAgICogb3JkZXIgZm9yIHRob3NlIHNoaW1zIHRvIGJlIGxvYWRlZCwgYW5kIHRoZW4gY2xlYW5lZCB1cCBhZnRlcndhcmRzLiBUaHVzIHRoZVxuICAgKiBgVXBkYXRlZFByb2dyYW1Ib3N0YCBoYXMgaXRzIG93biBgU2hpbVJlZmVyZW5jZVRhZ2dlcmAgdG8gcGVyZm9ybSB0aGlzIGZ1bmN0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBzaGltVGFnZ2VyID0gbmV3IFNoaW1SZWZlcmVuY2VUYWdnZXIodGhpcy5zaGltRXh0ZW5zaW9uUHJlZml4ZXMpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgc2ZNYXA6IE1hcDxzdHJpbmcsIHRzLlNvdXJjZUZpbGU+LCBwcml2YXRlIG9yaWdpbmFsUHJvZ3JhbTogdHMuUHJvZ3JhbSxcbiAgICAgIGRlbGVnYXRlOiB0cy5Db21waWxlckhvc3QsIHByaXZhdGUgc2hpbUV4dGVuc2lvblByZWZpeGVzOiBzdHJpbmdbXSkge1xuICAgIHN1cGVyKGRlbGVnYXRlKTtcbiAgICB0aGlzLnNmTWFwID0gc2ZNYXA7XG4gIH1cblxuICBnZXRTb3VyY2VGaWxlKFxuICAgICAgZmlsZU5hbWU6IHN0cmluZywgbGFuZ3VhZ2VWZXJzaW9uOiB0cy5TY3JpcHRUYXJnZXQsXG4gICAgICBvbkVycm9yPzogKChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWQpfHVuZGVmaW5lZCxcbiAgICAgIHNob3VsZENyZWF0ZU5ld1NvdXJjZUZpbGU/OiBib29sZWFufHVuZGVmaW5lZCk6IHRzLlNvdXJjZUZpbGV8dW5kZWZpbmVkIHtcbiAgICAvLyBUcnkgdG8gdXNlIHRoZSBzYW1lIGB0cy5Tb3VyY2VGaWxlYCBhcyB0aGUgb3JpZ2luYWwgcHJvZ3JhbSwgaWYgcG9zc2libGUuIFRoaXMgZ3VhcmFudGVlc1xuICAgIC8vIHRoYXQgcHJvZ3JhbSByZXVzZSB3aWxsIGJlIGFzIGVmZmljaWVudCBhcyBwb3NzaWJsZS5cbiAgICBsZXQgZGVsZWdhdGVTZjogdHMuU291cmNlRmlsZXx1bmRlZmluZWQgPSB0aGlzLm9yaWdpbmFsUHJvZ3JhbS5nZXRTb3VyY2VGaWxlKGZpbGVOYW1lKTtcbiAgICBpZiAoZGVsZWdhdGVTZiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBTb21ldGhpbmcgd2VudCB3cm9uZyBhbmQgYSBzb3VyY2UgZmlsZSBpcyBiZWluZyByZXF1ZXN0ZWQgdGhhdCdzIG5vdCBpbiB0aGUgb3JpZ2luYWxcbiAgICAgIC8vIHByb2dyYW0uIEp1c3QgaW4gY2FzZSwgdHJ5IHRvIHJldHJpZXZlIGl0IGZyb20gdGhlIGRlbGVnYXRlLlxuICAgICAgZGVsZWdhdGVTZiA9IHRoaXMuZGVsZWdhdGUuZ2V0U291cmNlRmlsZShcbiAgICAgICAgICBmaWxlTmFtZSwgbGFuZ3VhZ2VWZXJzaW9uLCBvbkVycm9yLCBzaG91bGRDcmVhdGVOZXdTb3VyY2VGaWxlKSE7XG4gICAgfVxuICAgIGlmIChkZWxlZ2F0ZVNmID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gTG9vayBmb3IgcmVwbGFjZW1lbnRzLlxuICAgIGxldCBzZjogdHMuU291cmNlRmlsZTtcbiAgICBpZiAodGhpcy5zZk1hcC5oYXMoZmlsZU5hbWUpKSB7XG4gICAgICBzZiA9IHRoaXMuc2ZNYXAuZ2V0KGZpbGVOYW1lKSE7XG4gICAgICBjb3B5RmlsZVNoaW1EYXRhKGRlbGVnYXRlU2YsIHNmKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2YgPSBkZWxlZ2F0ZVNmO1xuICAgIH1cbiAgICAvLyBUeXBlU2NyaXB0IGRvZXNuJ3QgYWxsb3cgcmV0dXJuaW5nIHJlZGlyZWN0IHNvdXJjZSBmaWxlcy4gVG8gYXZvaWQgdW5mb3Jlc2VlbiBlcnJvcnMgd2VcbiAgICAvLyByZXR1cm4gdGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlIGluc3RlYWQgb2YgdGhlIHJlZGlyZWN0IHRhcmdldC5cbiAgICBzZiA9IHRvVW5yZWRpcmVjdGVkU291cmNlRmlsZShzZik7XG5cbiAgICB0aGlzLnNoaW1UYWdnZXIudGFnKHNmKTtcbiAgICByZXR1cm4gc2Y7XG4gIH1cblxuICBwb3N0UHJvZ3JhbUNyZWF0aW9uQ2xlYW51cCgpOiB2b2lkIHtcbiAgICB0aGlzLnNoaW1UYWdnZXIuZmluYWxpemUoKTtcbiAgfVxuXG4gIHdyaXRlRmlsZSgpOiBuZXZlciB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUeXBlQ2hlY2tQcm9ncmFtSG9zdCBzaG91bGQgbmV2ZXIgd3JpdGUgZmlsZXNgKTtcbiAgfVxuXG4gIGZpbGVFeGlzdHMoZmlsZU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNmTWFwLmhhcyhmaWxlTmFtZSkgfHwgdGhpcy5kZWxlZ2F0ZS5maWxlRXhpc3RzKGZpbGVOYW1lKTtcbiAgfVxufVxuXG5cbi8qKlxuICogVXBkYXRlcyBhIGB0cy5Qcm9ncmFtYCBpbnN0YW5jZSB3aXRoIGEgbmV3IG9uZSB0aGF0IGluY29ycG9yYXRlcyBzcGVjaWZpYyBjaGFuZ2VzLCB1c2luZyB0aGVcbiAqIFR5cGVTY3JpcHQgY29tcGlsZXIgQVBJcyBmb3IgaW5jcmVtZW50YWwgcHJvZ3JhbSBjcmVhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFRzQ3JlYXRlUHJvZ3JhbURyaXZlciBpbXBsZW1lbnRzIFByb2dyYW1Ecml2ZXIge1xuICAvKipcbiAgICogQSBtYXAgb2Ygc291cmNlIGZpbGUgcGF0aHMgdG8gcmVwbGFjZW1lbnQgYHRzLlNvdXJjZUZpbGVgcyBmb3IgdGhvc2UgcGF0aHMuXG4gICAqXG4gICAqIEVmZmVjdGl2ZWx5LCB0aGlzIHRyYWNrcyB0aGUgZGVsdGEgYmV0d2VlbiB0aGUgdXNlcidzIHByb2dyYW0gKHJlcHJlc2VudGVkIGJ5IHRoZVxuICAgKiBgb3JpZ2luYWxIb3N0YCkgYW5kIHRoZSB0ZW1wbGF0ZSB0eXBlLWNoZWNraW5nIHByb2dyYW0gYmVpbmcgbWFuYWdlZC5cbiAgICovXG4gIHByaXZhdGUgc2ZNYXAgPSBuZXcgTWFwPHN0cmluZywgdHMuU291cmNlRmlsZT4oKTtcblxuICBwcml2YXRlIHByb2dyYW06IHRzLlByb2dyYW0gPSB0aGlzLm9yaWdpbmFsUHJvZ3JhbTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgb3JpZ2luYWxQcm9ncmFtOiB0cy5Qcm9ncmFtLCBwcml2YXRlIG9yaWdpbmFsSG9zdDogdHMuQ29tcGlsZXJIb3N0LFxuICAgICAgcHJpdmF0ZSBvcHRpb25zOiB0cy5Db21waWxlck9wdGlvbnMsIHByaXZhdGUgc2hpbUV4dGVuc2lvblByZWZpeGVzOiBzdHJpbmdbXSkge31cblxuICByZWFkb25seSBzdXBwb3J0c0lubGluZU9wZXJhdGlvbnMgPSB0cnVlO1xuXG4gIGdldFByb2dyYW0oKTogdHMuUHJvZ3JhbSB7XG4gICAgcmV0dXJuIHRoaXMucHJvZ3JhbTtcbiAgfVxuXG4gIHVwZGF0ZUZpbGVzKGNvbnRlbnRzOiBNYXA8QWJzb2x1dGVGc1BhdGgsIEZpbGVVcGRhdGU+LCB1cGRhdGVNb2RlOiBVcGRhdGVNb2RlKTogdm9pZCB7XG4gICAgaWYgKGNvbnRlbnRzLnNpemUgPT09IDApIHtcbiAgICAgIC8vIE5vIGNoYW5nZXMgaGF2ZSBiZWVuIHJlcXVlc3RlZC4gSXMgaXQgc2FmZSB0byBza2lwIHVwZGF0aW5nIGVudGlyZWx5P1xuICAgICAgLy8gSWYgVXBkYXRlTW9kZSBpcyBJbmNyZW1lbnRhbCwgdGhlbiB5ZXMuIElmIFVwZGF0ZU1vZGUgaXMgQ29tcGxldGUsIHRoZW4gaXQncyBzYWZlIHRvIHNraXBcbiAgICAgIC8vIG9ubHkgaWYgdGhlcmUgYXJlIG5vIGFjdGl2ZSBjaGFuZ2VzIGFscmVhZHkgKHRoYXQgd291bGQgYmUgY2xlYXJlZCBieSB0aGUgdXBkYXRlKS5cblxuICAgICAgaWYgKHVwZGF0ZU1vZGUgIT09IFVwZGF0ZU1vZGUuQ29tcGxldGUgfHwgdGhpcy5zZk1hcC5zaXplID09PSAwKSB7XG4gICAgICAgIC8vIE5vIGNoYW5nZXMgd291bGQgYmUgbWFkZSB0byB0aGUgYHRzLlByb2dyYW1gIGFueXdheSwgc28gaXQncyBzYWZlIHRvIGRvIG5vdGhpbmcgaGVyZS5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh1cGRhdGVNb2RlID09PSBVcGRhdGVNb2RlLkNvbXBsZXRlKSB7XG4gICAgICB0aGlzLnNmTWFwLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBbZmlsZVBhdGgsIHtuZXdUZXh0LCBvcmlnaW5hbEZpbGV9XSBvZiBjb250ZW50cy5lbnRyaWVzKCkpIHtcbiAgICAgIGNvbnN0IHNmID0gdHMuY3JlYXRlU291cmNlRmlsZShmaWxlUGF0aCwgbmV3VGV4dCwgdHMuU2NyaXB0VGFyZ2V0LkxhdGVzdCwgdHJ1ZSk7XG4gICAgICBpZiAob3JpZ2luYWxGaWxlICE9PSBudWxsKSB7XG4gICAgICAgIChzZiBhcyBNYXliZVNvdXJjZUZpbGVXaXRoT3JpZ2luYWxGaWxlKVtOZ09yaWdpbmFsRmlsZV0gPSBvcmlnaW5hbEZpbGU7XG4gICAgICB9XG4gICAgICB0aGlzLnNmTWFwLnNldChmaWxlUGF0aCwgc2YpO1xuICAgIH1cblxuICAgIGNvbnN0IGhvc3QgPSBuZXcgVXBkYXRlZFByb2dyYW1Ib3N0KFxuICAgICAgICB0aGlzLnNmTWFwLCB0aGlzLm9yaWdpbmFsUHJvZ3JhbSwgdGhpcy5vcmlnaW5hbEhvc3QsIHRoaXMuc2hpbUV4dGVuc2lvblByZWZpeGVzKTtcbiAgICBjb25zdCBvbGRQcm9ncmFtID0gdGhpcy5wcm9ncmFtO1xuXG4gICAgLy8gUmV0YWcgdGhlIG9sZCBwcm9ncmFtJ3MgYHRzLlNvdXJjZUZpbGVgcyB3aXRoIHNoaW0gdGFncywgdG8gYWxsb3cgVHlwZVNjcmlwdCB0byByZXVzZSB0aGVcbiAgICAvLyBtb3N0IGRhdGEuXG4gICAgcmV0YWdBbGxUc0ZpbGVzKG9sZFByb2dyYW0pO1xuXG4gICAgdGhpcy5wcm9ncmFtID0gdHMuY3JlYXRlUHJvZ3JhbSh7XG4gICAgICBob3N0LFxuICAgICAgcm9vdE5hbWVzOiB0aGlzLnByb2dyYW0uZ2V0Um9vdEZpbGVOYW1lcygpLFxuICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zLFxuICAgICAgb2xkUHJvZ3JhbSxcbiAgICB9KTtcbiAgICBob3N0LnBvc3RQcm9ncmFtQ3JlYXRpb25DbGVhbnVwKCk7XG5cbiAgICAvLyBBbmQgdW50YWcgdGhlbSBhZnRlcndhcmRzLiBXZSBleHBsaWNpdGx5IHVudGFnIGJvdGggcHJvZ3JhbXMgaGVyZSwgYmVjYXVzZSB0aGUgb2xkUHJvZ3JhbVxuICAgIC8vIG1heSBzdGlsbCBiZSB1c2VkIGZvciBlbWl0IGFuZCBuZWVkcyB0byBub3QgY29udGFpbiB0YWdzLlxuICAgIHVudGFnQWxsVHNGaWxlcyh0aGlzLnByb2dyYW0pO1xuICAgIHVudGFnQWxsVHNGaWxlcyhvbGRQcm9ncmFtKTtcbiAgfVxufVxuIl19
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
(function (factory) {
|
|
9
|
-
if (typeof module === "object" && typeof module.exports === "object") {
|
|
10
|
-
var v = factory(require, exports);
|
|
11
|
-
if (v !== undefined) module.exports = v;
|
|
12
|
-
}
|
|
13
|
-
else if (typeof define === "function" && define.amd) {
|
|
14
|
-
define("@angular/compiler-cli/src/ngtsc/reflection", ["require", "exports", "tslib", "@angular/compiler-cli/src/ngtsc/reflection/src/host", "@angular/compiler-cli/src/ngtsc/reflection/src/type_to_value", "@angular/compiler-cli/src/ngtsc/reflection/src/typescript", "@angular/compiler-cli/src/ngtsc/reflection/src/util"], factory);
|
|
15
|
-
}
|
|
16
|
-
})(function (require, exports) {
|
|
17
|
-
"use strict";
|
|
18
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.isNamedVariableDeclaration = exports.isNamedFunctionDeclaration = exports.isNamedClassDeclaration = exports.reflectTypeEntityToDeclaration = exports.reflectObjectLiteral = exports.reflectNameOfDeclaration = exports.reflectIdentifierOfDeclaration = exports.filterToMembersWithDecorator = exports.TypeScriptReflectionHost = exports.typeNodeToValueExpr = void 0;
|
|
20
|
-
var tslib_1 = require("tslib");
|
|
21
|
-
(0, tslib_1.__exportStar)(require("@angular/compiler-cli/src/ngtsc/reflection/src/host"), exports);
|
|
22
|
-
var type_to_value_1 = require("@angular/compiler-cli/src/ngtsc/reflection/src/type_to_value");
|
|
23
|
-
Object.defineProperty(exports, "typeNodeToValueExpr", { enumerable: true, get: function () { return type_to_value_1.typeNodeToValueExpr; } });
|
|
24
|
-
var typescript_1 = require("@angular/compiler-cli/src/ngtsc/reflection/src/typescript");
|
|
25
|
-
Object.defineProperty(exports, "TypeScriptReflectionHost", { enumerable: true, get: function () { return typescript_1.TypeScriptReflectionHost; } });
|
|
26
|
-
Object.defineProperty(exports, "filterToMembersWithDecorator", { enumerable: true, get: function () { return typescript_1.filterToMembersWithDecorator; } });
|
|
27
|
-
Object.defineProperty(exports, "reflectIdentifierOfDeclaration", { enumerable: true, get: function () { return typescript_1.reflectIdentifierOfDeclaration; } });
|
|
28
|
-
Object.defineProperty(exports, "reflectNameOfDeclaration", { enumerable: true, get: function () { return typescript_1.reflectNameOfDeclaration; } });
|
|
29
|
-
Object.defineProperty(exports, "reflectObjectLiteral", { enumerable: true, get: function () { return typescript_1.reflectObjectLiteral; } });
|
|
30
|
-
Object.defineProperty(exports, "reflectTypeEntityToDeclaration", { enumerable: true, get: function () { return typescript_1.reflectTypeEntityToDeclaration; } });
|
|
31
|
-
var util_1 = require("@angular/compiler-cli/src/ngtsc/reflection/src/util");
|
|
32
|
-
Object.defineProperty(exports, "isNamedClassDeclaration", { enumerable: true, get: function () { return util_1.isNamedClassDeclaration; } });
|
|
33
|
-
Object.defineProperty(exports, "isNamedFunctionDeclaration", { enumerable: true, get: function () { return util_1.isNamedFunctionDeclaration; } });
|
|
34
|
-
Object.defineProperty(exports, "isNamedVariableDeclaration", { enumerable: true, get: function () { return util_1.isNamedVariableDeclaration; } });
|
|
35
|
-
});
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci1jbGkvc3JjL25ndHNjL3JlZmxlY3Rpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7OztJQUVILG1HQUEyQjtJQUMzQiw4RkFBd0Q7SUFBaEQsb0hBQUEsbUJBQW1CLE9BQUE7SUFDM0Isd0ZBQXdNO0lBQWhNLHNIQUFBLHdCQUF3QixPQUFBO0lBQUUsMEhBQUEsNEJBQTRCLE9BQUE7SUFBRSw0SEFBQSw4QkFBOEIsT0FBQTtJQUFFLHNIQUFBLHdCQUF3QixPQUFBO0lBQUUsa0hBQUEsb0JBQW9CLE9BQUE7SUFBRSw0SEFBQSw4QkFBOEIsT0FBQTtJQUM5Syw0RUFBMkc7SUFBbkcsK0dBQUEsdUJBQXVCLE9BQUE7SUFBRSxrSEFBQSwwQkFBMEIsT0FBQTtJQUFFLGtIQUFBLDBCQUEwQixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vc3JjL2hvc3QnO1xuZXhwb3J0IHt0eXBlTm9kZVRvVmFsdWVFeHByfSBmcm9tICcuL3NyYy90eXBlX3RvX3ZhbHVlJztcbmV4cG9ydCB7VHlwZVNjcmlwdFJlZmxlY3Rpb25Ib3N0LCBmaWx0ZXJUb01lbWJlcnNXaXRoRGVjb3JhdG9yLCByZWZsZWN0SWRlbnRpZmllck9mRGVjbGFyYXRpb24sIHJlZmxlY3ROYW1lT2ZEZWNsYXJhdGlvbiwgcmVmbGVjdE9iamVjdExpdGVyYWwsIHJlZmxlY3RUeXBlRW50aXR5VG9EZWNsYXJhdGlvbn0gZnJvbSAnLi9zcmMvdHlwZXNjcmlwdCc7XG5leHBvcnQge2lzTmFtZWRDbGFzc0RlY2xhcmF0aW9uLCBpc05hbWVkRnVuY3Rpb25EZWNsYXJhdGlvbiwgaXNOYW1lZFZhcmlhYmxlRGVjbGFyYXRpb259IGZyb20gJy4vc3JjL3V0aWwnO1xuIl19
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
(function (factory) {
|
|
9
|
-
if (typeof module === "object" && typeof module.exports === "object") {
|
|
10
|
-
var v = factory(require, exports);
|
|
11
|
-
if (v !== undefined) module.exports = v;
|
|
12
|
-
}
|
|
13
|
-
else if (typeof define === "function" && define.amd) {
|
|
14
|
-
define("@angular/compiler-cli/src/ngtsc/reflection/src/host", ["require", "exports", "typescript"], factory);
|
|
15
|
-
}
|
|
16
|
-
})(function (require, exports) {
|
|
17
|
-
"use strict";
|
|
18
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.isConcreteDeclaration = exports.KnownDeclaration = exports.ClassMemberKind = exports.isDecoratorIdentifier = exports.Decorator = void 0;
|
|
20
|
-
var ts = require("typescript");
|
|
21
|
-
exports.Decorator = {
|
|
22
|
-
nodeForError: function (decorator) {
|
|
23
|
-
if (decorator.node !== null) {
|
|
24
|
-
return decorator.node;
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
// TODO(alxhub): we can't rely on narrowing until TS 3.6 is in g3.
|
|
28
|
-
return decorator.synthesizedFor;
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
};
|
|
32
|
-
function isDecoratorIdentifier(exp) {
|
|
33
|
-
return ts.isIdentifier(exp) ||
|
|
34
|
-
ts.isPropertyAccessExpression(exp) && ts.isIdentifier(exp.expression) &&
|
|
35
|
-
ts.isIdentifier(exp.name);
|
|
36
|
-
}
|
|
37
|
-
exports.isDecoratorIdentifier = isDecoratorIdentifier;
|
|
38
|
-
/**
|
|
39
|
-
* An enumeration of possible kinds of class members.
|
|
40
|
-
*/
|
|
41
|
-
var ClassMemberKind;
|
|
42
|
-
(function (ClassMemberKind) {
|
|
43
|
-
ClassMemberKind[ClassMemberKind["Constructor"] = 0] = "Constructor";
|
|
44
|
-
ClassMemberKind[ClassMemberKind["Getter"] = 1] = "Getter";
|
|
45
|
-
ClassMemberKind[ClassMemberKind["Setter"] = 2] = "Setter";
|
|
46
|
-
ClassMemberKind[ClassMemberKind["Property"] = 3] = "Property";
|
|
47
|
-
ClassMemberKind[ClassMemberKind["Method"] = 4] = "Method";
|
|
48
|
-
})(ClassMemberKind = exports.ClassMemberKind || (exports.ClassMemberKind = {}));
|
|
49
|
-
/**
|
|
50
|
-
* Possible declarations of known values, such as built-in objects/functions or TypeScript helpers.
|
|
51
|
-
*/
|
|
52
|
-
var KnownDeclaration;
|
|
53
|
-
(function (KnownDeclaration) {
|
|
54
|
-
/**
|
|
55
|
-
* Indicates the JavaScript global `Object` class.
|
|
56
|
-
*/
|
|
57
|
-
KnownDeclaration[KnownDeclaration["JsGlobalObject"] = 0] = "JsGlobalObject";
|
|
58
|
-
/**
|
|
59
|
-
* Indicates the `__assign` TypeScript helper function.
|
|
60
|
-
*/
|
|
61
|
-
KnownDeclaration[KnownDeclaration["TsHelperAssign"] = 1] = "TsHelperAssign";
|
|
62
|
-
/**
|
|
63
|
-
* Indicates the `__spread` TypeScript helper function.
|
|
64
|
-
*/
|
|
65
|
-
KnownDeclaration[KnownDeclaration["TsHelperSpread"] = 2] = "TsHelperSpread";
|
|
66
|
-
/**
|
|
67
|
-
* Indicates the `__spreadArrays` TypeScript helper function.
|
|
68
|
-
*/
|
|
69
|
-
KnownDeclaration[KnownDeclaration["TsHelperSpreadArrays"] = 3] = "TsHelperSpreadArrays";
|
|
70
|
-
/**
|
|
71
|
-
* Indicates the `__spreadArray` TypeScript helper function.
|
|
72
|
-
*/
|
|
73
|
-
KnownDeclaration[KnownDeclaration["TsHelperSpreadArray"] = 4] = "TsHelperSpreadArray";
|
|
74
|
-
/**
|
|
75
|
-
* Indicates the `__read` TypeScript helper function.
|
|
76
|
-
*/
|
|
77
|
-
KnownDeclaration[KnownDeclaration["TsHelperRead"] = 5] = "TsHelperRead";
|
|
78
|
-
})(KnownDeclaration = exports.KnownDeclaration || (exports.KnownDeclaration = {}));
|
|
79
|
-
/**
|
|
80
|
-
* Returns true if the `decl` is a `ConcreteDeclaration` (ie. that its `node` property is a
|
|
81
|
-
* `ts.Declaration`).
|
|
82
|
-
*/
|
|
83
|
-
function isConcreteDeclaration(decl) {
|
|
84
|
-
return decl.kind === 0 /* Concrete */;
|
|
85
|
-
}
|
|
86
|
-
exports.isConcreteDeclaration = isConcreteDeclaration;
|
|
87
|
-
});
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvcmVmbGVjdGlvbi9zcmMvaG9zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7SUFFSCwrQkFBaUM7SUFrRXBCLFFBQUEsU0FBUyxHQUFHO1FBQ3ZCLFlBQVksRUFBRSxVQUFDLFNBQW9CO1lBQ2pDLElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUU7Z0JBQzNCLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQzthQUN2QjtpQkFBTTtnQkFDTCxrRUFBa0U7Z0JBQ2xFLE9BQVEsU0FBZ0MsQ0FBQyxjQUFjLENBQUM7YUFDekQ7UUFDSCxDQUFDO0tBQ0YsQ0FBQztJQVdGLFNBQWdCLHFCQUFxQixDQUFDLEdBQWtCO1FBQ3RELE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUM7WUFDdkIsRUFBRSxDQUFDLDBCQUEwQixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztnQkFDckUsRUFBRSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUpELHNEQUlDO0lBbUJEOztPQUVHO0lBQ0gsSUFBWSxlQU1YO0lBTkQsV0FBWSxlQUFlO1FBQ3pCLG1FQUFXLENBQUE7UUFDWCx5REFBTSxDQUFBO1FBQ04seURBQU0sQ0FBQTtRQUNOLDZEQUFRLENBQUE7UUFDUix5REFBTSxDQUFBO0lBQ1IsQ0FBQyxFQU5XLGVBQWUsR0FBZix1QkFBZSxLQUFmLHVCQUFlLFFBTTFCO0lBdVVEOztPQUVHO0lBQ0gsSUFBWSxnQkE4Qlg7SUE5QkQsV0FBWSxnQkFBZ0I7UUFDMUI7O1dBRUc7UUFDSCwyRUFBYyxDQUFBO1FBRWQ7O1dBRUc7UUFDSCwyRUFBYyxDQUFBO1FBRWQ7O1dBRUc7UUFDSCwyRUFBYyxDQUFBO1FBRWQ7O1dBRUc7UUFDSCx1RkFBb0IsQ0FBQTtRQUVwQjs7V0FFRztRQUNILHFGQUFtQixDQUFBO1FBRW5COztXQUVHO1FBQ0gsdUVBQVksQ0FBQTtJQUNkLENBQUMsRUE5QlcsZ0JBQWdCLEdBQWhCLHdCQUFnQixLQUFoQix3QkFBZ0IsUUE4QjNCO0lBMEdEOzs7T0FHRztJQUNILFNBQWdCLHFCQUFxQixDQUFDLElBQWlCO1FBQ3JELE9BQU8sSUFBSSxDQUFDLElBQUkscUJBQTZCLENBQUM7SUFDaEQsQ0FBQztJQUZELHNEQUVDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG4vKipcbiAqIE1ldGFkYXRhIGV4dHJhY3RlZCBmcm9tIGFuIGluc3RhbmNlIG9mIGEgZGVjb3JhdG9yIG9uIGFub3RoZXIgZGVjbGFyYXRpb24sIG9yIHN5bnRoZXNpemVkIGZyb21cbiAqIG90aGVyIGluZm9ybWF0aW9uIGFib3V0IGEgY2xhc3MuXG4gKi9cbmV4cG9ydCB0eXBlIERlY29yYXRvciA9IENvbmNyZXRlRGVjb3JhdG9yfFN5bnRoZXRpY0RlY29yYXRvcjtcblxuZXhwb3J0IGludGVyZmFjZSBCYXNlRGVjb3JhdG9yIHtcbiAgLyoqXG4gICAqIE5hbWUgYnkgd2hpY2ggdGhlIGRlY29yYXRvciB3YXMgaW52b2tlZCBpbiB0aGUgdXNlcidzIGNvZGUuXG4gICAqXG4gICAqIFRoaXMgaXMgZGlzdGluY3QgZnJvbSB0aGUgbmFtZSBieSB3aGljaCB0aGUgZGVjb3JhdG9yIHdhcyBpbXBvcnRlZCAodGhvdWdoIGluIHByYWN0aWNlIHRoZXlcbiAgICogd2lsbCB1c3VhbGx5IGJlIHRoZSBzYW1lKS5cbiAgICovXG4gIG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogSWRlbnRpZmllciB3aGljaCByZWZlcnMgdG8gdGhlIGRlY29yYXRvciBpbiB0aGUgdXNlcidzIGNvZGUuXG4gICAqL1xuICBpZGVudGlmaWVyOiBEZWNvcmF0b3JJZGVudGlmaWVyfG51bGw7XG5cbi8qKlxuICogYEltcG9ydGAgYnkgd2hpY2ggdGhlIGRlY29yYXRvciB3YXMgYnJvdWdodCBpbnRvIHRoZSBtb2R1bGUgaW4gd2hpY2ggaXQgd2FzIGludm9rZWQsIG9yIGBudWxsYFxuICogaWYgdGhlIGRlY29yYXRvciB3YXMgZGVjbGFyZWQgaW4gdGhlIHNhbWUgbW9kdWxlIGFuZCBub3QgaW1wb3J0ZWQuXG4gKi9cbmltcG9ydDogSW1wb3J0fG51bGw7XG5cbiAgLyoqXG4gICAqIFR5cGVTY3JpcHQgcmVmZXJlbmNlIHRvIHRoZSBkZWNvcmF0b3IgaXRzZWxmLCBvciBgbnVsbGAgaWYgdGhlIGRlY29yYXRvciBpcyBzeW50aGVzaXplZCAoZS5nLlxuICAgKiBpbiBuZ2NjKS5cbiAgICovXG4gIG5vZGU6IHRzLk5vZGV8bnVsbDtcblxuICAvKipcbiAgICogQXJndW1lbnRzIG9mIHRoZSBpbnZvY2F0aW9uIG9mIHRoZSBkZWNvcmF0b3IsIGlmIHRoZSBkZWNvcmF0b3IgaXMgaW52b2tlZCwgb3IgYG51bGxgXG4gICAqIG90aGVyd2lzZS5cbiAgICovXG4gIGFyZ3M6IHRzLkV4cHJlc3Npb25bXXxudWxsO1xufVxuXG4vKipcbiAqIE1ldGFkYXRhIGV4dHJhY3RlZCBmcm9tIGFuIGluc3RhbmNlIG9mIGEgZGVjb3JhdG9yIG9uIGFub3RoZXIgZGVjbGFyYXRpb24sIHdoaWNoIHdhcyBhY3R1YWxseVxuICogcHJlc2VudCBpbiBhIGZpbGUuXG4gKlxuICogQ29uY3JldGUgZGVjb3JhdG9ycyBhbHdheXMgaGF2ZSBhbiBgaWRlbnRpZmllcmAgYW5kIGEgYG5vZGVgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbmNyZXRlRGVjb3JhdG9yIGV4dGVuZHMgQmFzZURlY29yYXRvciB7XG4gIGlkZW50aWZpZXI6IERlY29yYXRvcklkZW50aWZpZXI7XG4gIG5vZGU6IHRzLk5vZGU7XG59XG5cbi8qKlxuICogU3ludGhldGljIGRlY29yYXRvcnMgbmV2ZXIgaGF2ZSBhbiBgaWRlbnRpZmllcmAgb3IgYSBgbm9kZWAsIGJ1dCBrbm93IHRoZSBub2RlIGZvciB3aGljaCB0aGV5XG4gKiB3ZXJlIHN5bnRoZXNpemVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN5bnRoZXRpY0RlY29yYXRvciBleHRlbmRzIEJhc2VEZWNvcmF0b3Ige1xuICBpZGVudGlmaWVyOiBudWxsO1xuICBub2RlOiBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgYHRzLk5vZGVgIGZvciB3aGljaCB0aGlzIGRlY29yYXRvciB3YXMgY3JlYXRlZC5cbiAgICovXG4gIHN5bnRoZXNpemVkRm9yOiB0cy5Ob2RlO1xufVxuXG5leHBvcnQgY29uc3QgRGVjb3JhdG9yID0ge1xuICBub2RlRm9yRXJyb3I6IChkZWNvcmF0b3I6IERlY29yYXRvcik6IHRzLk5vZGUgPT4ge1xuICAgIGlmIChkZWNvcmF0b3Iubm9kZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGRlY29yYXRvci5ub2RlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUT0RPKGFseGh1Yik6IHdlIGNhbid0IHJlbHkgb24gbmFycm93aW5nIHVudGlsIFRTIDMuNiBpcyBpbiBnMy5cbiAgICAgIHJldHVybiAoZGVjb3JhdG9yIGFzIFN5bnRoZXRpY0RlY29yYXRvcikuc3ludGhlc2l6ZWRGb3I7XG4gICAgfVxuICB9LFxufTtcblxuLyoqXG4gKiBBIGRlY29yYXRvciBpcyBpZGVudGlmaWVkIGJ5IGVpdGhlciBhIHNpbXBsZSBpZGVudGlmaWVyIChlLmcuIGBEZWNvcmF0b3JgKSBvciwgaW4gc29tZSBjYXNlcyxcbiAqIGEgbmFtZXNwYWNlZCBwcm9wZXJ0eSBhY2Nlc3MgKGUuZy4gYGNvcmUuRGVjb3JhdG9yYCkuXG4gKi9cbmV4cG9ydCB0eXBlIERlY29yYXRvcklkZW50aWZpZXIgPSB0cy5JZGVudGlmaWVyfE5hbWVzcGFjZWRJZGVudGlmaWVyO1xuZXhwb3J0IHR5cGUgTmFtZXNwYWNlZElkZW50aWZpZXIgPSB0cy5Qcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24me1xuICBleHByZXNzaW9uOiB0cy5JZGVudGlmaWVyO1xuICBuYW1lOiB0cy5JZGVudGlmaWVyXG59O1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGVjb3JhdG9ySWRlbnRpZmllcihleHA6IHRzLkV4cHJlc3Npb24pOiBleHAgaXMgRGVjb3JhdG9ySWRlbnRpZmllciB7XG4gIHJldHVybiB0cy5pc0lkZW50aWZpZXIoZXhwKSB8fFxuICAgICAgdHMuaXNQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24oZXhwKSAmJiB0cy5pc0lkZW50aWZpZXIoZXhwLmV4cHJlc3Npb24pICYmXG4gICAgICB0cy5pc0lkZW50aWZpZXIoZXhwLm5hbWUpO1xufVxuXG4vKipcbiAqIFRoZSBgdHMuRGVjbGFyYXRpb25gIG9mIGEgXCJjbGFzc1wiLlxuICpcbiAqIENsYXNzZXMgYXJlIHJlcHJlc2VudGVkIGRpZmZlcmVudGx5IGluIGRpZmZlcmVudCBjb2RlIGZvcm1hdHM6XG4gKiAtIEluIFRTIGNvZGUsIHRoZXkgYXJlIHR5cGljYWxseSBkZWZpbmVkIHVzaW5nIHRoZSBgY2xhc3NgIGtleXdvcmQuXG4gKiAtIEluIEVTMjAxNSBjb2RlLCB0aGV5IGFyZSB1c3VhbGx5IGRlZmluZWQgdXNpbmcgdGhlIGBjbGFzc2Aga2V5d29yZCwgYnV0IHRoZXkgY2FuIGFsc28gYmVcbiAqICAgdmFyaWFibGUgZGVjbGFyYXRpb25zLCB3aGljaCBhcmUgaW5pdGlhbGl6ZWQgdG8gYSBjbGFzcyBleHByZXNzaW9uIChlLmcuXG4gKiAgIGBsZXQgRm9vID0gRm9vMSA9IGNsYXNzIEZvbyB7fWApLlxuICogLSBJbiBFUzUgY29kZSwgdGhleSBhcmUgdHlwaWNhbGx5IGRlZmluZWQgYXMgdmFyaWFibGUgZGVjbGFyYXRpb25zIGJlaW5nIGFzc2lnbmVkIHRoZSByZXR1cm5cbiAqICAgdmFsdWUgb2YgYW4gSUlGRS4gVGhlIGFjdHVhbCBcImNsYXNzXCIgaXMgaW1wbGVtZW50ZWQgYXMgYSBjb25zdHJ1Y3RvciBmdW5jdGlvbiBpbnNpZGUgdGhlIElJRkUsXG4gKiAgIGJ1dCB0aGUgb3V0ZXIgdmFyaWFibGUgZGVjbGFyYXRpb24gcmVwcmVzZW50cyB0aGUgXCJjbGFzc1wiIHRvIHRoZSByZXN0IG9mIHRoZSBwcm9ncmFtLlxuICpcbiAqIEZvciBgUmVmbGVjdGlvbkhvc3RgIHB1cnBvc2VzLCBhIGNsYXNzIGRlY2xhcmF0aW9uIHNob3VsZCBhbHdheXMgaGF2ZSBhIGBuYW1lYCBpZGVudGlmaWVyLFxuICogYmVjYXVzZSB3ZSBuZWVkIHRvIGJlIGFibGUgdG8gcmVmZXJlbmNlIGl0IGluIG90aGVyIHBhcnRzIG9mIHRoZSBwcm9ncmFtLlxuICovXG5leHBvcnQgdHlwZSBDbGFzc0RlY2xhcmF0aW9uPFQgZXh0ZW5kcyBEZWNsYXJhdGlvbk5vZGUgPSBEZWNsYXJhdGlvbk5vZGU+ID0gVCZ7bmFtZTogdHMuSWRlbnRpZmllcn07XG5cbi8qKlxuICogQW4gZW51bWVyYXRpb24gb2YgcG9zc2libGUga2luZHMgb2YgY2xhc3MgbWVtYmVycy5cbiAqL1xuZXhwb3J0IGVudW0gQ2xhc3NNZW1iZXJLaW5kIHtcbiAgQ29uc3RydWN0b3IsXG4gIEdldHRlcixcbiAgU2V0dGVyLFxuICBQcm9wZXJ0eSxcbiAgTWV0aG9kLFxufVxuXG4vKipcbiAqIEEgbWVtYmVyIG9mIGEgY2xhc3MsIHN1Y2ggYXMgYSBwcm9wZXJ0eSwgbWV0aG9kLCBvciBjb25zdHJ1Y3Rvci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbGFzc01lbWJlciB7XG4gIC8qKlxuICAgKiBUeXBlU2NyaXB0IHJlZmVyZW5jZSB0byB0aGUgY2xhc3MgbWVtYmVyIGl0c2VsZiwgb3IgbnVsbCBpZiBpdCBpcyBub3QgYXBwbGljYWJsZS5cbiAgICovXG4gIG5vZGU6IHRzLk5vZGV8bnVsbDtcblxuICAvKipcbiAgICogSW5kaWNhdGlvbiBvZiB3aGljaCB0eXBlIG9mIG1lbWJlciB0aGlzIGlzIChwcm9wZXJ0eSwgbWV0aG9kLCBldGMpLlxuICAgKi9cbiAga2luZDogQ2xhc3NNZW1iZXJLaW5kO1xuXG4gIC8qKlxuICAgKiBUeXBlU2NyaXB0IGB0cy5UeXBlTm9kZWAgcmVwcmVzZW50aW5nIHRoZSB0eXBlIG9mIHRoZSBtZW1iZXIsIG9yIGBudWxsYCBpZiBub3QgcHJlc2VudCBvclxuICAgKiBhcHBsaWNhYmxlLlxuICAgKi9cbiAgdHlwZTogdHMuVHlwZU5vZGV8bnVsbDtcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgY2xhc3MgbWVtYmVyLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUeXBlU2NyaXB0IGB0cy5JZGVudGlmaWVyYCBvciBgdHMuU3RyaW5nTGl0ZXJhbGAgcmVwcmVzZW50aW5nIHRoZSBuYW1lIG9mIHRoZSBtZW1iZXIsIG9yIGBudWxsYFxuICAgKiBpZiBubyBzdWNoIG5vZGUgaXMgcHJlc2VudC5cbiAgICpcbiAgICogVGhlIGBuYW1lTm9kZWAgaXMgdXNlZnVsIGluIHdyaXRpbmcgcmVmZXJlbmNlcyB0byB0aGlzIG1lbWJlciB0aGF0IHdpbGwgYmUgY29ycmVjdGx5IHNvdXJjZS1cbiAgICogbWFwcGVkIGJhY2sgdG8gdGhlIG9yaWdpbmFsIGZpbGUuXG4gICAqL1xuICBuYW1lTm9kZTogdHMuSWRlbnRpZmllcnx0cy5TdHJpbmdMaXRlcmFsfG51bGw7XG5cbiAgLyoqXG4gICAqIFR5cGVTY3JpcHQgYHRzLkV4cHJlc3Npb25gIHdoaWNoIHJlcHJlc2VudHMgdGhlIHZhbHVlIG9mIHRoZSBtZW1iZXIuXG4gICAqXG4gICAqIElmIHRoZSBtZW1iZXIgaXMgYSBwcm9wZXJ0eSwgdGhpcyB3aWxsIGJlIHRoZSBwcm9wZXJ0eSBpbml0aWFsaXplciBpZiB0aGVyZSBpcyBvbmUsIG9yIG51bGxcbiAgICogb3RoZXJ3aXNlLlxuICAgKi9cbiAgdmFsdWU6IHRzLkV4cHJlc3Npb258bnVsbDtcblxuICAvKipcbiAgICogVHlwZVNjcmlwdCBgdHMuRGVjbGFyYXRpb25gIHdoaWNoIHJlcHJlc2VudHMgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBtZW1iZXIuXG4gICAqXG4gICAqIEluIFR5cGVTY3JpcHQgY29kZSB0aGlzIGlzIGlkZW50aWNhbCB0byB0aGUgbm9kZSwgYnV0IGluIGRvd25sZXZlbGVkIGNvZGUgdGhpcyBzaG91bGQgYWx3YXlzIGJlXG4gICAqIHRoZSBEZWNsYXJhdGlvbiB3aGljaCBhY3R1YWxseSByZXByZXNlbnRzIHRoZSBtZW1iZXIncyBydW50aW1lIHZhbHVlLlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgdGhlIFRTIGNvZGU6XG4gICAqXG4gICAqIGBgYFxuICAgKiBjbGFzcyBDbGF6eiB7XG4gICAqICAgc3RhdGljIGdldCBwcm9wZXJ0eSgpOiBzdHJpbmcge1xuICAgKiAgICAgcmV0dXJuICd2YWx1ZSc7XG4gICAqICAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKlxuICAgKiBEb3dubGV2ZWxzIHRvOlxuICAgKlxuICAgKiBgYGBcbiAgICogdmFyIENsYXp6ID0gKGZ1bmN0aW9uICgpIHtcbiAgICogICBmdW5jdGlvbiBDbGF6eigpIHtcbiAgICogICB9XG4gICAqICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENsYXp6LCBcInByb3BlcnR5XCIsIHtcbiAgICogICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAqICAgICAgICAgICByZXR1cm4gJ3ZhbHVlJztcbiAgICogICAgICAgfSxcbiAgICogICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICogICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAqICAgfSk7XG4gICAqICAgcmV0dXJuIENsYXp6O1xuICAgKiB9KCkpO1xuICAgKiBgYGBcbiAgICpcbiAgICogSW4gdGhpcyBleGFtcGxlLCBmb3IgdGhlIHByb3BlcnR5IFwicHJvcGVydHlcIiwgdGhlIG5vZGUgd291bGQgYmUgdGhlIGVudGlyZVxuICAgKiBPYmplY3QuZGVmaW5lUHJvcGVydHkgRXhwcmVzc2lvblN0YXRlbWVudCwgYnV0IHRoZSBpbXBsZW1lbnRhdGlvbiB3b3VsZCBiZSB0aGlzXG4gICAqIEZ1bmN0aW9uRGVjbGFyYXRpb246XG4gICAqXG4gICAqIGBgYFxuICAgKiBmdW5jdGlvbiAoKSB7XG4gICAqICAgcmV0dXJuICd2YWx1ZSc7XG4gICAqIH0sXG4gICAqIGBgYFxuICAgKi9cbiAgaW1wbGVtZW50YXRpb246IHRzLkRlY2xhcmF0aW9ufG51bGw7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIG1lbWJlciBpcyBzdGF0aWMgb3Igbm90LlxuICAgKi9cbiAgaXNTdGF0aWM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFueSBgRGVjb3JhdG9yYHMgd2hpY2ggYXJlIHByZXNlbnQgb24gdGhlIG1lbWJlciwgb3IgYG51bGxgIGlmIG5vbmUgYXJlIHByZXNlbnQuXG4gICAqL1xuICBkZWNvcmF0b3JzOiBEZWNvcmF0b3JbXXxudWxsO1xufVxuXG5leHBvcnQgY29uc3QgZW51bSBUeXBlVmFsdWVSZWZlcmVuY2VLaW5kIHtcbiAgTE9DQUwsXG4gIElNUE9SVEVELFxuICBVTkFWQUlMQUJMRSxcbn1cblxuLyoqXG4gKiBBIHR5cGUgcmVmZXJlbmNlIHRoYXQgcmVmZXJzIHRvIGFueSB0eXBlIHZpYSBhIGB0cy5FeHByZXNzaW9uYCB0aGF0J3MgdmFsaWQgd2l0aGluIHRoZSBsb2NhbCBmaWxlXG4gKiB3aGVyZSB0aGUgdHlwZSB3YXMgcmVmZXJlbmNlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2NhbFR5cGVWYWx1ZVJlZmVyZW5jZSB7XG4gIGtpbmQ6IFR5cGVWYWx1ZVJlZmVyZW5jZUtpbmQuTE9DQUw7XG5cbiAgLyoqXG4gICAqIFRoZSBzeW50aGVzaXplZCBleHByZXNzaW9uIHRvIHJlZmVyZW5jZSB0aGUgdHlwZSBpbiBhIHZhbHVlIHBvc2l0aW9uLlxuICAgKi9cbiAgZXhwcmVzc2lvbjogdHMuRXhwcmVzc2lvbjtcblxuICAvKipcbiAgICogSWYgdGhlIHR5cGUgb3JpZ2luYXRlcyBmcm9tIGEgZGVmYXVsdCBpbXBvcnQsIHRoZSBpbXBvcnQgc3RhdGVtZW50IGlzIGNhcHR1cmVkIGhlcmUgdG8gYmUgYWJsZVxuICAgKiB0byB0cmFjayBpdHMgdXNhZ2VzLCBwcmV2ZW50aW5nIHRoZSBpbXBvcnQgZnJvbSBiZWluZyBlbGlkZWQgaWYgaXQgd2FzIG9yaWdpbmFsbHkgb25seSB1c2VkIGluXG4gICAqIGEgdHlwZS1wb3NpdGlvbi4gU2VlIGBEZWZhdWx0SW1wb3J0VHJhY2tlcmAgZm9yIGRldGFpbHMuXG4gICAqL1xuICBkZWZhdWx0SW1wb3J0U3RhdGVtZW50OiB0cy5JbXBvcnREZWNsYXJhdGlvbnxudWxsO1xufVxuXG4vKipcbiAqIEEgcmVmZXJlbmNlIHRoYXQgcmVmZXJzIHRvIGEgdHlwZSB0aGF0IHdhcyBpbXBvcnRlZCwgYW5kIGdpdmVzIHRoZSBzeW1ib2wgYG5hbWVgIGFuZCB0aGVcbiAqIGBtb2R1bGVOYW1lYCBvZiB0aGUgaW1wb3J0LiBOb3RlIHRoYXQgdGhpcyBgbW9kdWxlTmFtZWAgbWF5IGJlIGEgcmVsYXRpdmUgcGF0aCwgYW5kIHRodXMgaXNcbiAqIGxpa2VseSBvbmx5IHZhbGlkIHdpdGhpbiB0aGUgY29udGV4dCBvZiB0aGUgZmlsZSB3aGljaCBjb250YWluZWQgdGhlIG9yaWdpbmFsIHR5cGUgcmVmZXJlbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydGVkVHlwZVZhbHVlUmVmZXJlbmNlIHtcbiAga2luZDogVHlwZVZhbHVlUmVmZXJlbmNlS2luZC5JTVBPUlRFRDtcblxuICAvKipcbiAgICogVGhlIG1vZHVsZSBzcGVjaWZpZXIgZnJvbSB3aGljaCB0aGUgYGltcG9ydGVkTmFtZWAgc3ltYm9sIHNob3VsZCBiZSBpbXBvcnRlZC5cbiAgICovXG4gIG1vZHVsZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHRvcC1sZXZlbCBzeW1ib2wgdGhhdCBpcyBpbXBvcnRlZCBmcm9tIGBtb2R1bGVOYW1lYC4gSWYgYG5lc3RlZFBhdGhgIGlzIGFsc29cbiAgICogcHJlc2VudCwgYSBuZXN0ZWQgb2JqZWN0IGlzIGJlaW5nIHJlZmVyZW5jZWQgZnJvbSB0aGUgdG9wLWxldmVsIHN5bWJvbC5cbiAgICovXG4gIGltcG9ydGVkTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiBwcmVzZW50LCByZXByZXNlbnRzIHRoZSBzeW1ib2wgbmFtZXMgdGhhdCBhcmUgcmVmZXJlbmNlZCBmcm9tIHRoZSB0b3AtbGV2ZWwgaW1wb3J0LlxuICAgKiBXaGVuIGBudWxsYCBvciBlbXB0eSwgdGhlIGBpbXBvcnRlZE5hbWVgIGl0c2VsZiBpcyB0aGUgc3ltYm9sIGJlaW5nIHJlZmVyZW5jZWQuXG4gICAqL1xuICBuZXN0ZWRQYXRoOiBzdHJpbmdbXXxudWxsO1xuXG4gIHZhbHVlRGVjbGFyYXRpb246IERlY2xhcmF0aW9uTm9kZTtcbn1cblxuLyoqXG4gKiBBIHJlcHJlc2VudGF0aW9uIGZvciBhIHR5cGUgdmFsdWUgcmVmZXJlbmNlIHRoYXQgaXMgdXNlZCB3aGVuIG5vIHZhbHVlIGlzIGF2YWlsYWJsZS4gVGhpcyBjYW5cbiAqIG9jY3VyIGR1ZSB0byB2YXJpb3VzIHJlYXNvbnMsIHdoaWNoIGlzIGluZGljYXRlZCBpbiB0aGUgYHJlYXNvbmAgZmllbGQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVW5hdmFpbGFibGVUeXBlVmFsdWVSZWZlcmVuY2Uge1xuICBraW5kOiBUeXBlVmFsdWVSZWZlcmVuY2VLaW5kLlVOQVZBSUxBQkxFO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVhc29uIHdoeSBubyB2YWx1ZSByZWZlcmVuY2UgY291bGQgYmUgZGV0ZXJtaW5lZCBmb3IgYSB0eXBlLlxuICAgKi9cbiAgcmVhc29uOiBVbmF2YWlsYWJsZVZhbHVlO1xufVxuXG4vKipcbiAqIFRoZSB2YXJpb3VzIHJlYXNvbnMgd2h5IHRoZSBjb21waWxlciBtYXkgYmUgdW5hYmxlIHRvIHN5bnRoZXNpemUgYSB2YWx1ZSBmcm9tIGEgdHlwZSByZWZlcmVuY2UuXG4gKi9cbmV4cG9ydCBjb25zdCBlbnVtIFZhbHVlVW5hdmFpbGFibGVLaW5kIHtcbiAgLyoqXG4gICAqIE5vIHR5cGUgbm9kZSB3YXMgYXZhaWxhYmxlLlxuICAgKi9cbiAgTUlTU0lOR19UWVBFLFxuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBkb2VzIG5vdCBoYXZlIGEgdmFsdWUgZGVjbGFyYXRpb24sIGUuZy4gYW4gaW50ZXJmYWNlLlxuICAgKi9cbiAgTk9fVkFMVUVfREVDTEFSQVRJT04sXG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIGlzIGltcG9ydGVkIHVzaW5nIGEgdHlwZS1vbmx5IGltcG9ydHMsIHNvIGl0IGlzIG5vdCBzdWl0YWJsZSB0byBiZSB1c2VkIGluIGFcbiAgICogdmFsdWUtcG9zaXRpb24uXG4gICAqL1xuICBUWVBFX09OTFlfSU1QT1JULFxuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSByZWZlcmVuY2UgY291bGQgbm90IGJlIHJlc29sdmVkIHRvIGEgZGVjbGFyYXRpb24uXG4gICAqL1xuICBVTktOT1dOX1JFRkVSRU5DRSxcblxuICAvKipcbiAgICogVGhlIHR5cGUgY29ycmVzcG9uZHMgd2l0aCBhIG5hbWVzcGFjZS5cbiAgICovXG4gIE5BTUVTUEFDRSxcblxuICAvKipcbiAgICogVGhlIHR5cGUgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGUgY29tcGlsZXIsIGZvciBleGFtcGxlIHVuaW9uIHR5cGVzLlxuICAgKi9cbiAgVU5TVVBQT1JURUQsXG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBVbnN1cHBvcnRlZFR5cGUge1xuICBraW5kOiBWYWx1ZVVuYXZhaWxhYmxlS2luZC5VTlNVUFBPUlRFRDtcbiAgdHlwZU5vZGU6IHRzLlR5cGVOb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5vVmFsdWVEZWNsYXJhdGlvbiB7XG4gIGtpbmQ6IFZhbHVlVW5hdmFpbGFibGVLaW5kLk5PX1ZBTFVFX0RFQ0xBUkFUSU9OO1xuICB0eXBlTm9kZTogdHMuVHlwZU5vZGU7XG4gIGRlY2w6IHRzLkRlY2xhcmF0aW9ufG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZU9ubHlJbXBvcnQge1xuICBraW5kOiBWYWx1ZVVuYXZhaWxhYmxlS2luZC5UWVBFX09OTFlfSU1QT1JUO1xuICB0eXBlTm9kZTogdHMuVHlwZU5vZGU7XG4gIGltcG9ydENsYXVzZTogdHMuSW1wb3J0Q2xhdXNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5hbWVzcGFjZUltcG9ydCB7XG4gIGtpbmQ6IFZhbHVlVW5hdmFpbGFibGVLaW5kLk5BTUVTUEFDRTtcbiAgdHlwZU5vZGU6IHRzLlR5cGVOb2RlO1xuICBpbXBvcnRDbGF1c2U6IHRzLkltcG9ydENsYXVzZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVbmtub3duUmVmZXJlbmNlIHtcbiAga2luZDogVmFsdWVVbmF2YWlsYWJsZUtpbmQuVU5LTk9XTl9SRUZFUkVOQ0U7XG4gIHR5cGVOb2RlOiB0cy5UeXBlTm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNaXNzaW5nVHlwZSB7XG4gIGtpbmQ6IFZhbHVlVW5hdmFpbGFibGVLaW5kLk1JU1NJTkdfVFlQRTtcbn1cblxuLyoqXG4gKiBUaGUgdmFyaW91cyByZWFzb25zIHdoeSBhIHR5cGUgbm9kZSBtYXkgbm90IGJlIHJlZmVycmVkIHRvIGFzIGEgdmFsdWUuXG4gKi9cbmV4cG9ydCB0eXBlIFVuYXZhaWxhYmxlVmFsdWUgPVxuICAgIFVuc3VwcG9ydGVkVHlwZXxOb1ZhbHVlRGVjbGFyYXRpb258VHlwZU9ubHlJbXBvcnR8TmFtZXNwYWNlSW1wb3J0fFVua25vd25SZWZlcmVuY2V8TWlzc2luZ1R5cGU7XG5cbi8qKlxuICogQSByZWZlcmVuY2UgdG8gYSB2YWx1ZSB0aGF0IG9yaWdpbmF0ZWQgZnJvbSBhIHR5cGUgcG9zaXRpb24uXG4gKlxuICogRm9yIGV4YW1wbGUsIGEgY29uc3RydWN0b3IgcGFyYW1ldGVyIGNvdWxkIGJlIGRlY2xhcmVkIGFzIGBmb286IEZvb2AuIEEgYFR5cGVWYWx1ZVJlZmVyZW5jZWBcbiAqIGV4dHJhY3RlZCBmcm9tIHRoaXMgd291bGQgcmVmZXIgdG8gdGhlIHZhbHVlIG9mIHRoZSBjbGFzcyBgRm9vYCAoYXNzdW1pbmcgaXQgd2FzIGFjdHVhbGx5IGFcbiAqIHR5cGUpLlxuICpcbiAqIFNlZSB0aGUgaW5kaXZpZHVhbCB0eXBlcyBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgVHlwZVZhbHVlUmVmZXJlbmNlID1cbiAgICBMb2NhbFR5cGVWYWx1ZVJlZmVyZW5jZXxJbXBvcnRlZFR5cGVWYWx1ZVJlZmVyZW5jZXxVbmF2YWlsYWJsZVR5cGVWYWx1ZVJlZmVyZW5jZTtcblxuLyoqXG4gKiBBIHBhcmFtZXRlciB0byBhIGNvbnN0cnVjdG9yLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEN0b3JQYXJhbWV0ZXIge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgcGFyYW1ldGVyLCBpZiBhdmFpbGFibGUuXG4gICAqXG4gICAqIFNvbWUgcGFyYW1ldGVycyBkb24ndCBoYXZlIGEgc2ltcGxlIHN0cmluZyBuYW1lIChmb3IgZXhhbXBsZSwgcGFyYW1ldGVycyB3aGljaCBhcmUgZGVzdHJ1Y3R1cmVkXG4gICAqIGludG8gbXVsdGlwbGUgdmFyaWFibGVzKS4gSW4gdGhlc2UgY2FzZXMsIGBuYW1lYCBjYW4gYmUgYG51bGxgLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nfG51bGw7XG5cbiAgLyoqXG4gICAqIFR5cGVTY3JpcHQgYHRzLkJpbmRpbmdOYW1lYCByZXByZXNlbnRpbmcgdGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlci5cbiAgICpcbiAgICogVGhlIGBuYW1lTm9kZWAgaXMgdXNlZnVsIGluIHdyaXRpbmcgcmVmZXJlbmNlcyB0byB0aGlzIG1lbWJlciB0aGF0IHdpbGwgYmUgY29ycmVjdGx5IHNvdXJjZS1cbiAgICogbWFwcGVkIGJhY2sgdG8gdGhlIG9yaWdpbmFsIGZpbGUuXG4gICAqL1xuICBuYW1lTm9kZTogdHMuQmluZGluZ05hbWU7XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSB0byB0aGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlcidzIHR5cGUgYW5ub3RhdGlvbiwgaWYgaXQncyBwb3NzaWJsZSB0byByZWZlciB0byB0aGVcbiAgICogcGFyYW1ldGVyJ3MgdHlwZSBhcyBhIHZhbHVlLlxuICAgKlxuICAgKiBUaGlzIGNhbiBlaXRoZXIgYmUgYSByZWZlcmVuY2UgdG8gYSBsb2NhbCB2YWx1ZSwgYSByZWZlcmVuY2UgdG8gYW4gaW1wb3J0ZWQgdmFsdWUsIG9yIG5vXG4gICAqIHZhbHVlIGlmIG5vIGlzIHByZXNlbnQgb3IgY2Fubm90IGJlIHJlcHJlc2VudGVkIGFzIGFuIGV4cHJlc3Npb24uXG4gICAqL1xuICB0eXBlVmFsdWVSZWZlcmVuY2U6IFR5cGVWYWx1ZVJlZmVyZW5jZTtcblxuICAvKipcbiAgICogVHlwZVNjcmlwdCBgdHMuVHlwZU5vZGVgIHJlcHJlc2VudGluZyB0aGUgdHlwZSBub2RlIGZvdW5kIGluIHRoZSB0eXBlIHBvc2l0aW9uLlxuICAgKlxuICAgKiBUaGlzIGZpZWxkIGNhbiBiZSB1c2VkIGZvciBkaWFnbm9zdGljcyByZXBvcnRpbmcgaWYgYHR5cGVWYWx1ZVJlZmVyZW5jZWAgaXMgYG51bGxgLlxuICAgKlxuICAgKiBDYW4gYmUgbnVsbCwgaWYgdGhlIHBhcmFtIGhhcyBubyB0eXBlIGRlY2xhcmVkLlxuICAgKi9cbiAgdHlwZU5vZGU6IHRzLlR5cGVOb2RlfG51bGw7XG5cbiAgLyoqXG4gICAqIEFueSBgRGVjb3JhdG9yYHMgd2hpY2ggYXJlIHByZXNlbnQgb24gdGhlIHBhcmFtZXRlciwgb3IgYG51bGxgIGlmIG5vbmUgYXJlIHByZXNlbnQuXG4gICAqL1xuICBkZWNvcmF0b3JzOiBEZWNvcmF0b3JbXXxudWxsO1xufVxuXG4vKipcbiAqIERlZmluaXRpb24gb2YgYSBmdW5jdGlvbiBvciBtZXRob2QsIGluY2x1ZGluZyBpdHMgYm9keSBpZiBwcmVzZW50IGFuZCBhbnkgcGFyYW1ldGVycy5cbiAqXG4gKiBJbiBUeXBlU2NyaXB0IGNvZGUgdGhpcyBtZXRhZGF0YSB3aWxsIGJlIGEgc2ltcGxlIHJlZmxlY3Rpb24gb2YgdGhlIGRlY2xhcmF0aW9ucyBpbiB0aGUgbm9kZVxuICogaXRzZWxmLiBJbiBFUzUgY29kZSB0aGlzIGNhbiBiZSBtb3JlIGNvbXBsaWNhdGVkLCBhcyB0aGUgZGVmYXVsdCB2YWx1ZXMgZm9yIHBhcmFtZXRlcnMgbWF5XG4gKiBiZSBleHRyYWN0ZWQgZnJvbSBjZXJ0YWluIGJvZHkgc3RhdGVtZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvbkRlZmluaXRpb24ge1xuICAvKipcbiAgICogQSByZWZlcmVuY2UgdG8gdGhlIG5vZGUgd2hpY2ggZGVjbGFyZXMgdGhlIGZ1bmN0aW9uLlxuICAgKi9cbiAgbm9kZTogdHMuTWV0aG9kRGVjbGFyYXRpb258dHMuRnVuY3Rpb25EZWNsYXJhdGlvbnx0cy5GdW5jdGlvbkV4cHJlc3Npb258dHMuVmFyaWFibGVEZWNsYXJhdGlvbjtcblxuICAvKipcbiAgICogU3RhdGVtZW50cyBvZiB0aGUgZnVuY3Rpb24gYm9keSwgaWYgYSBib2R5IGlzIHByZXNlbnQsIG9yIG51bGwgaWYgbm8gYm9keSBpcyBwcmVzZW50IG9yIHRoZVxuICAgKiBmdW5jdGlvbiBpcyBpZGVudGlmaWVkIHRvIHJlcHJlc2VudCBhIHRzbGliIGhlbHBlciBmdW5jdGlvbiwgaW4gd2hpY2ggY2FzZSBgaGVscGVyYCB3aWxsXG4gICAqIGluZGljYXRlIHdoaWNoIGhlbHBlciB0aGlzIGZ1bmN0aW9uIHJlcHJlc2VudHMuXG4gICAqXG4gICAqIFRoaXMgbGlzdCBtYXkgaGF2ZSBiZWVuIGZpbHRlcmVkIHRvIGV4Y2x1ZGUgc3RhdGVtZW50cyB3aGljaCBwZXJmb3JtIHBhcmFtZXRlciBkZWZhdWx0IHZhbHVlXG4gICAqIGluaXRpYWxpemF0aW9uLlxuICAgKi9cbiAgYm9keTogdHMuU3RhdGVtZW50W118bnVsbDtcblxuICAvKipcbiAgICogTWV0YWRhdGEgcmVnYXJkaW5nIHRoZSBmdW5jdGlvbidzIHBhcmFtZXRlcnMsIGluY2x1ZGluZyBwb3NzaWJsZSBkZWZhdWx0IHZhbHVlIGV4cHJlc3Npb25zLlxuICAgKi9cbiAgcGFyYW1ldGVyczogUGFyYW1ldGVyW107XG59XG5cbi8qKlxuICogUG9zc2libGUgZGVjbGFyYXRpb25zIG9mIGtub3duIHZhbHVlcywgc3VjaCBhcyBidWlsdC1pbiBvYmplY3RzL2Z1bmN0aW9ucyBvciBUeXBlU2NyaXB0IGhlbHBlcnMuXG4gKi9cbmV4cG9ydCBlbnVtIEtub3duRGVjbGFyYXRpb24ge1xuICAvKipcbiAgICogSW5kaWNhdGVzIHRoZSBKYXZhU2NyaXB0IGdsb2JhbCBgT2JqZWN0YCBjbGFzcy5cbiAgICovXG4gIEpzR2xvYmFsT2JqZWN0LFxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIGBfX2Fzc2lnbmAgVHlwZVNjcmlwdCBoZWxwZXIgZnVuY3Rpb24uXG4gICAqL1xuICBUc0hlbHBlckFzc2lnbixcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoZSBgX19zcHJlYWRgIFR5cGVTY3JpcHQgaGVscGVyIGZ1bmN0aW9uLlxuICAgKi9cbiAgVHNIZWxwZXJTcHJlYWQsXG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGUgYF9fc3ByZWFkQXJyYXlzYCBUeXBlU2NyaXB0IGhlbHBlciBmdW5jdGlvbi5cbiAgICovXG4gIFRzSGVscGVyU3ByZWFkQXJyYXlzLFxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIGBfX3NwcmVhZEFycmF5YCBUeXBlU2NyaXB0IGhlbHBlciBmdW5jdGlvbi5cbiAgICovXG4gIFRzSGVscGVyU3ByZWFkQXJyYXksXG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGUgYF9fcmVhZGAgVHlwZVNjcmlwdCBoZWxwZXIgZnVuY3Rpb24uXG4gICAqL1xuICBUc0hlbHBlclJlYWQsXG59XG5cbi8qKlxuICogQSBwYXJhbWV0ZXIgdG8gYSBmdW5jdGlvbiBvciBtZXRob2QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1ldGVyIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIHBhcmFtZXRlciwgaWYgYXZhaWxhYmxlLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nfG51bGw7XG5cbiAgLyoqXG4gICAqIERlY2xhcmF0aW9uIHdoaWNoIGNyZWF0ZWQgdGhpcyBwYXJhbWV0ZXIuXG4gICAqL1xuICBub2RlOiB0cy5QYXJhbWV0ZXJEZWNsYXJhdGlvbjtcblxuICAvKipcbiAgICogRXhwcmVzc2lvbiB3aGljaCByZXByZXNlbnRzIHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIsIGlmIGFueS5cbiAgICovXG4gIGluaXRpYWxpemVyOiB0cy5FeHByZXNzaW9ufG51bGw7XG59XG5cbi8qKlxuICogVGhlIHNvdXJjZSBvZiBhbiBpbXBvcnRlZCBzeW1ib2wsIGluY2x1ZGluZyB0aGUgb3JpZ2luYWwgc3ltYm9sIG5hbWUgYW5kIHRoZSBtb2R1bGUgZnJvbSB3aGljaCBpdFxuICogd2FzIGltcG9ydGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydCB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgaW1wb3J0ZWQgc3ltYm9sIHVuZGVyIHdoaWNoIGl0IHdhcyBleHBvcnRlZCAobm90IGltcG9ydGVkKS5cbiAgICovXG4gIG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1vZHVsZSBmcm9tIHdoaWNoIHRoZSBzeW1ib2wgd2FzIGltcG9ydGVkLlxuICAgKlxuICAgKiBUaGlzIGNvdWxkIGVpdGhlciBiZSBhbiBhYnNvbHV0ZSBtb2R1bGUgbmFtZSAoQGFuZ3VsYXIvY29yZSBmb3IgZXhhbXBsZSkgb3IgYSByZWxhdGl2ZSBwYXRoLlxuICAgKi9cbiAgZnJvbTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgc2luZ2xlIGVudW0gbWVtYmVyIGV4dHJhY3RlZCBmcm9tIEphdmFTY3JpcHQgd2hlbiBubyBgdHMuRW51bURlY2xhcmF0aW9uYCBpcyBhdmFpbGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW51bU1lbWJlciB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZW51bSBtZW1iZXIuXG4gICAqL1xuICBuYW1lOiB0cy5Qcm9wZXJ0eU5hbWU7XG5cbiAgLyoqXG4gICAqIFRoZSBpbml0aWFsaXplciBleHByZXNzaW9uIG9mIHRoZSBlbnVtIG1lbWJlci4gVW5saWtlIGluIFR5cGVTY3JpcHQsIHRoaXMgaXMgYWx3YXlzIGF2YWlsYWJsZVxuICAgKiBpbiBlbWl0dGVkIEphdmFTY3JpcHQuXG4gICAqL1xuICBpbml0aWFsaXplcjogdHMuRXhwcmVzc2lvbjtcbn1cblxuLyoqXG4gKiBBIHR5cGUgdGhhdCBpcyB1c2VkIHRvIGlkZW50aWZ5IGEgZGVjbGFyYXRpb24uXG4gKlxuICogRGVjbGFyYXRpb25zIGFyZSBub3JtYWxseSBgdHMuRGVjbGFyYXRpb25gIHR5cGVzIHN1Y2ggYXMgdmFyaWFibGUgZGVjbGFyYXRpb25zLCBjbGFzc1xuICogZGVjbGFyYXRpb25zLCBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgZXRjLlxuICogQnV0IGluIHNvbWUgY2FzZXMgdGhlcmUgaXMgbm8gYHRzLkRlY2xhcmF0aW9uYCB0aGF0IGNhbiBiZSB1c2VkIGZvciBhIGRlY2xhcmF0aW9uLCBzdWNoXG4gKiBhcyB3aGVuIHRoZXkgYXJlIGRlY2xhcmVkIGlubGluZSBhcyBwYXJ0IG9mIGFuIGV4cG9ydGVkIGV4cHJlc3Npb24uIFRoZW4gd2UgbXVzdCB1c2UgYVxuICogYHRzLkV4cHJlc3Npb25gIGFzIHRoZSBkZWNsYXJhdGlvbi5cbiAqIEFuIGV4YW1wbGUgb2YgdGhpcyBpcyBgZXhwb3J0cy5zb21lVmFyID0gNDJgIHdoZXJlIHRoZSBkZWNsYXJhdGlvbiBleHByZXNzaW9uIHdvdWxkIGJlXG4gKiBgZXhwb3J0cy5zb21lVmFyYC5cbiAqL1xuZXhwb3J0IHR5cGUgRGVjbGFyYXRpb25Ob2RlID0gdHMuRGVjbGFyYXRpb258dHMuRXhwcmVzc2lvbjtcblxuLyoqXG4gKiBUaGUgdHlwZSBvZiBhIERlY2xhcmF0aW9uIC0gd2hldGhlciBpdHMgbm9kZSBpcyBjb25jcmV0ZSAodHMuRGVjbGFyYXRpb24pIG9yIGlubGluZVxuICogKHRzLkV4cHJlc3Npb24pLiBTZWUgYENvbmNyZXRlRGVjbGFyYXRpb25gLCBgSW5saW5lRGVjbGFyYXRpb25gIGFuZCBgRGVjbGFyYXRpb25Ob2RlYCBmb3IgbW9yZVxuICogaW5mb3JtYXRpb24gYWJvdXQgdGhpcy5cbiAqL1xuZXhwb3J0IGNvbnN0IGVudW0gRGVjbGFyYXRpb25LaW5kIHtcbiAgQ29uY3JldGUsXG4gIElubGluZSxcbn1cblxuLyoqXG4gKiBCYXNlIHR5cGUgZm9yIGFsbCBgRGVjbGFyYXRpb25gcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlRGVjbGFyYXRpb248VCBleHRlbmRzIERlY2xhcmF0aW9uTm9kZT4ge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHVuZGVybHlpbmcgYG5vZGVgLlxuICAgKi9cbiAga2luZDogRGVjbGFyYXRpb25LaW5kO1xuXG4gIC8qKlxuICAgKiBUaGUgYWJzb2x1dGUgbW9kdWxlIHBhdGggZnJvbSB3aGljaCB0aGUgc3ltYm9sIHdhcyBpbXBvcnRlZCBpbnRvIHRoZSBhcHBsaWNhdGlvbiwgaWYgdGhlIHN5bWJvbFxuICAgKiB3YXMgaW1wb3J0ZWQgdmlhIGFuIGFic29sdXRlIG1vZHVsZSAoZXZlbiB0aHJvdWdoIGEgY2hhaW4gb2YgcmUtZXhwb3J0cykuIElmIHRoZSBzeW1ib2wgaXMgcGFydFxuICAgKiBvZiB0aGUgYXBwbGljYXRpb24gYW5kIHdhcyBub3QgaW1wb3J0ZWQgZnJvbSBhbiBhYnNvbHV0ZSBwYXRoLCB0aGlzIHdpbGwgYmUgYG51bGxgLlxuICAgKi9cbiAgdmlhTW9kdWxlOiBzdHJpbmd8bnVsbDtcblxuICAvKipcbiAgICogVHlwZVNjcmlwdCByZWZlcmVuY2UgdG8gdGhlIGRlY2xhcmF0aW9uIGl0c2VsZiwgaWYgb25lIGV4aXN0cy5cbiAgICovXG4gIG5vZGU6IFQ7XG5cbiAgLyoqXG4gICAqIElmIHNldCwgZGVzY3JpYmVzIHRoZSB0eXBlIG9mIHRoZSBrbm93biBkZWNsYXJhdGlvbiB0aGlzIGRlY2xhcmF0aW9uIHJlc29sdmVzIHRvLlxuICAgKi9cbiAga25vd246IEtub3duRGVjbGFyYXRpb258bnVsbDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIGBkZWNsYCBpcyBhIGBDb25jcmV0ZURlY2xhcmF0aW9uYCAoaWUuIHRoYXQgaXRzIGBub2RlYCBwcm9wZXJ0eSBpcyBhXG4gKiBgdHMuRGVjbGFyYXRpb25gKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ29uY3JldGVEZWNsYXJhdGlvbihkZWNsOiBEZWNsYXJhdGlvbik6IGRlY2wgaXMgQ29uY3JldGVEZWNsYXJhdGlvbiB7XG4gIHJldHVybiBkZWNsLmtpbmQgPT09IERlY2xhcmF0aW9uS2luZC5Db25jcmV0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25jcmV0ZURlY2xhcmF0aW9uPFQgZXh0ZW5kcyB0cy5EZWNsYXJhdGlvbiA9IHRzLkRlY2xhcmF0aW9uPiBleHRlbmRzXG4gICAgQmFzZURlY2xhcmF0aW9uPFQ+IHtcbiAga2luZDogRGVjbGFyYXRpb25LaW5kLkNvbmNyZXRlO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbGx5IHJlcHJlc2VudHMgYSBzcGVjaWFsIGlkZW50aXR5IG9mIHRoZSBkZWNsYXJhdGlvbiwgb3IgYG51bGxgIGlmIHRoZSBkZWNsYXJhdGlvblxuICAgKiBkb2VzIG5vdCBoYXZlIGEgc3BlY2lhbCBpZGVudGl0eS5cbiAgICovXG4gIGlkZW50aXR5OiBTcGVjaWFsRGVjbGFyYXRpb25JZGVudGl0eXxudWxsO1xufVxuXG5leHBvcnQgdHlwZSBTcGVjaWFsRGVjbGFyYXRpb25JZGVudGl0eSA9IERvd25sZXZlbGVkRW51bTtcblxuZXhwb3J0IGNvbnN0IGVudW0gU3BlY2lhbERlY2xhcmF0aW9uS2luZCB7XG4gIERvd25sZXZlbGVkRW51bSxcbn1cblxuLyoqXG4gKiBBIHNwZWNpYWwgZGVjbGFyYXRpb24gaWRlbnRpdHkgdGhhdCByZXByZXNlbnRzIGFuIGVudW0uIFRoaXMgaXMgdXNlZCBpbiBkb3dubGV2ZWxlZCBmb3JtcyB3aGVyZVxuICogYSBgdHMuRW51bURlY2xhcmF0aW9uYCBpcyBlbWl0dGVkIGluIGFuIGFsdGVybmF0aXZlIGZvcm0sIGUuZy4gYW4gSUlGRSBjYWxsIHRoYXQgZGVjbGFyZXMgYWxsXG4gKiBtZW1iZXJzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERvd25sZXZlbGVkRW51bSB7XG4gIGtpbmQ6IFNwZWNpYWxEZWNsYXJhdGlvbktpbmQuRG93bmxldmVsZWRFbnVtO1xuICBlbnVtTWVtYmVyczogRW51bU1lbWJlcltdO1xufVxuXG4vKipcbiAqIEEgZGVjbGFyYXRpb24gdGhhdCBkb2VzIG5vdCBoYXZlIGFuIGFzc29jaWF0ZWQgVHlwZVNjcmlwdCBgdHMuRGVjbGFyYXRpb25gLlxuICpcbiAqIFRoaXMgY2FuIG9jY3VyIGluIHNvbWUgZG93bmxldmVsaW5ncyB3aGVuIGFuIGBleHBvcnQgY29uc3QgVkFSID0gLi4uO2AgKGEgYHRzLkRlY2xhcmF0aW9uYCkgaXNcbiAqIHRyYW5zcGlsZWQgdG8gYW4gYXNzaWdubWVudCBzdGF0ZW1lbnQgKGUuZy4gYGV4cG9ydHMuVkFSID0gLi4uO2ApLiBUaGVyZSBpcyBubyBgdHMuRGVjbGFyYXRpb25gXG4gKiBhc3NvY2lhdGVkIHdpdGggYFZBUmAgaW4gdGhhdCBjYXNlLCBvbmx5IGFuIGV4cHJlc3Npb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5saW5lRGVjbGFyYXRpb24gZXh0ZW5kc1xuICAgIEJhc2VEZWNsYXJhdGlvbjxFeGNsdWRlPERlY2xhcmF0aW9uTm9kZSwgdHMuRGVjbGFyYXRpb24+PiB7XG4gIGtpbmQ6IERlY2xhcmF0aW9uS2luZC5JbmxpbmU7XG4gIGltcGxlbWVudGF0aW9uPzogRGVjbGFyYXRpb25Ob2RlO1xufVxuXG4vKipcbiAqIFRoZSBkZWNsYXJhdGlvbiBvZiBhIHN5bWJvbCwgYWxvbmcgd2l0aCBpbmZvcm1hdGlvbiBhYm91dCBob3cgaXQgd2FzIGltcG9ydGVkIGludG8gdGhlXG4gKiBhcHBsaWNhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgRGVjbGFyYXRpb248VCBleHRlbmRzIHRzLkRlY2xhcmF0aW9uID0gdHMuRGVjbGFyYXRpb24+ID1cbiAgICBDb25jcmV0ZURlY2xhcmF0aW9uPFQ+fElubGluZURlY2xhcmF0aW9uO1xuXG4vKipcbiAqIEFic3RyYWN0cyByZWZsZWN0aW9uIG9wZXJhdGlvbnMgb24gYSBUeXBlU2NyaXB0IEFTVC5cbiAqXG4gKiBEZXBlbmRpbmcgb24gdGhlIGZvcm1hdCBvZiB0aGUgY29kZSBiZWluZyBpbnRlcnByZXRlZCwgZGlmZmVyZW50IGNvbmNlcHRzIGFyZSByZXByZXNlbnRlZFxuICogd2l0aCBkaWZmZXJlbnQgc3ludGFjdGljYWwgc3RydWN0dXJlcy4gVGhlIGBSZWZsZWN0aW9uSG9zdGAgYWJzdHJhY3RzIG92ZXIgdGhvc2UgZGlmZmVyZW5jZXMgYW5kXG4gKiBwcmVzZW50cyBhIHNpbmdsZSBBUEkgYnkgd2hpY2ggdGhlIGNvbXBpbGVyIGNhbiBxdWVyeSBzcGVjaWZpYyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgQVNULlxuICpcbiAqIEFsbCBvcGVyYXRpb25zIG9uIHRoZSBgUmVmbGVjdGlvbkhvc3RgIHJlcXVpcmUgdGhlIHVzZSBvZiBUeXBlU2NyaXB0IGB0cy5Ob2RlYHMgd2l0aCBiaW5kaW5nXG4gKiBpbmZvcm1hdGlvbiBhbHJlYWR5IGF2YWlsYWJsZSAodGhhdCBpcywgbm9kZXMgdGhhdCBjb21lIGZyb20gYSBgdHMuUHJvZ3JhbWAgdGhhdCBoYXMgYmVlblxuICogdHlwZS1jaGVja2VkLCBhbmQgYXJlIG5vdCBzeW50aGV0aWNhbGx5IGNyZWF0ZWQpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZmxlY3Rpb25Ib3N0IHtcbiAgLyoqXG4gICAqIEV4YW1pbmUgYSBkZWNsYXJhdGlvbiAoZm9yIGV4YW1wbGUsIG9mIGEgY2xhc3Mgb3IgZnVuY3Rpb24pIGFuZCByZXR1cm4gbWV0YWRhdGEgYWJvdXQgYW55XG4gICAqIGRlY29yYXRvcnMgcHJlc2VudCBvbiB0aGUgZGVjbGFyYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBkZWNsYXJhdGlvbiBhIFR5cGVTY3JpcHQgYHRzLkRlY2xhcmF0aW9uYCBub2RlIHJlcHJlc2VudGluZyB0aGUgY2xhc3Mgb3IgZnVuY3Rpb24gb3ZlclxuICAgKiB3aGljaCB0byByZWZsZWN0LiBGb3IgZXhhbXBsZSwgaWYgdGhlIGludGVudCBpcyB0byByZWZsZWN0IHRoZSBkZWNvcmF0b3JzIG9mIGEgY2xhc3MgYW5kIHRoZVxuICAgKiBzb3VyY2UgaXMgaW4gRVM2IGZvcm1hdCwgdGhpcyB3aWxsIGJlIGEgYHRzLkNsYXNzRGVjbGFyYXRpb25gIG5vZGUuIElmIHRoZSBzb3VyY2UgaXMgaW4gRVM1XG4gICAqIGZvcm1hdCwgdGhpcyBtaWdodCBiZSBhIGB0cy5WYXJpYWJsZURlY2xhcmF0aW9uYCBhcyBjbGFzc2VzIGluIEVTNSBhcmUgcmVwcmVzZW50ZWQgYXMgdGhlXG4gICAqIHJlc3VsdCBvZiBhbiBJSUZFIGV4ZWN1dGlvbi5cbiAgICpcbiAgICogQHJldHVybnMgYW4gYXJyYXkgb2YgYERlY29yYXRvcmAgbWV0YWRhdGEgaWYgZGVjb3JhdG9ycyBhcmUgcHJlc2VudCBvbiB0aGUgZGVjbGFyYXRpb24sIG9yXG4gICAqIGBudWxsYCBpZiBlaXRoZXIgbm8gZGVjb3JhdG9ycyB3ZXJlIHByZXNlbnQgb3IgaWYgdGhlIGRlY2xhcmF0aW9uIGlzIG5vdCBvZiBhIGRlY29yYXRhYmxlIHR5cGUuXG4gICAqL1xuICBnZXREZWNvcmF0b3JzT2ZEZWNsYXJhdGlvbihkZWNsYXJhdGlvbjogRGVjbGFyYXRpb25Ob2RlKTogRGVjb3JhdG9yW118bnVsbDtcblxuICAvKipcbiAgICogRXhhbWluZSBhIGRlY2xhcmF0aW9uIHdoaWNoIHNob3VsZCBiZSBvZiBhIGNsYXNzLCBhbmQgcmV0dXJuIG1ldGFkYXRhIGFib3V0IHRoZSBtZW1iZXJzIG9mIHRoZVxuICAgKiBjbGFzcy5cbiAgICpcbiAgICogQHBhcmFtIGNsYXp6IGEgYENsYXNzRGVjbGFyYXRpb25gIHJlcHJlc2VudGluZyB0aGUgY2xhc3Mgb3ZlciB3aGljaCB0byByZWZsZWN0LlxuICAgKlxuICAgKiBAcmV0dXJucyBhbiBhcnJheSBvZiBgQ2xhc3NNZW1iZXJgIG1ldGFkYXRhIHJlcHJlc2VudGluZyB0aGUgbWVtYmVycyBvZiB0aGUgY2xhc3MuXG4gICAqXG4gICAqIEB0aHJvd3MgaWYgYGRlY2xhcmF0aW9uYCBkb2VzIG5vdCByZXNvbHZlIHRvIGEgY2xhc3MgZGVjbGFyYXRpb24uXG4gICAqL1xuICBnZXRNZW1iZXJzT2ZDbGFzcyhjbGF6ejogQ2xhc3NEZWNsYXJhdGlvbik6IENsYXNzTWVtYmVyW107XG5cbiAgLyoqXG4gICAqIFJlZmxlY3Qgb3ZlciB0aGUgY29uc3RydWN0b3Igb2YgYSBjbGFzcyBhbmQgcmV0dXJuIG1ldGFkYXRhIGFib3V0IGl0cyBwYXJhbWV0ZXJzLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBvbmx5IGxvb2tzIGF0IHRoZSBjb25zdHJ1Y3RvciBvZiBhIGNsYXNzIGRpcmVjdGx5IGFuZCBub3QgYXQgYW55IGluaGVyaXRlZFxuICAgKiBjb25zdHJ1Y3RvcnMuXG4gICAqXG4gICAqIEBwYXJhbSBjbGF6eiBhIGBDbGFzc0RlY2xhcmF0aW9uYCByZXByZXNlbnRpbmcgdGhlIGNsYXNzIG92ZXIgd2hpY2ggdG8gcmVmbGVjdC5cbiAgICpcbiAgICogQHJldHVybnMgYW4gYXJyYXkgb2YgYFBhcmFtZXRlcmAgbWV0YWRhdGEgcmVwcmVzZW50aW5nIHRoZSBwYXJhbWV0ZXJzIG9mIHRoZSBjb25zdHJ1Y3RvciwgaWZcbiAgICogYSBjb25zdHJ1Y3RvciBleGlzdHMuIElmIHRoZSBjb25zdHJ1Y3RvciBleGlzdHMgYW5kIGhhcyAwIHBhcmFtZXRlcnMsIHRoaXMgYXJyYXkgd2lsbCBiZSBlbXB0eS5cbiAgICogSWYgdGhlIGNsYXNzIGhhcyBubyBjb25zdHJ1Y3RvciwgdGhpcyBtZXRob2QgcmV0dXJucyBgbnVsbGAuXG4gICAqL1xuICBnZXRDb25zdHJ1Y3RvclBhcmFtZXRlcnMoY2xheno6IENsYXNzRGVjbGFyYXRpb24pOiBDdG9yUGFyYW1ldGVyW118bnVsbDtcblxuICAvKipcbiAgICogUmVmbGVjdCBvdmVyIGEgZnVuY3Rpb24gYW5kIHJldHVybiBtZXRhZGF0YSBhYm91dCBpdHMgcGFyYW1ldGVycyBhbmQgYm9keS5cbiAgICpcbiAgICogRnVuY3Rpb25zIGluIFR5cGVTY3JpcHQgYW5kIEVTNSBjb2RlIGhhdmUgZGlmZmVyZW50IEFTVCByZXByZXNlbnRhdGlvbnMsIGluIHBhcnRpY3VsYXIgYXJvdW5kXG4gICAqIGRlZmF1bHQgdmFsdWVzIGZvciBwYXJhbWV0ZXJzLiBBIFR5cGVTY3JpcHQgZnVuY3Rpb24gaGFzIGl0cyBkZWZhdWx0IHZhbHVlIGFzIHRoZSBpbml0aWFsaXplclxuICAgKiBvbiB0aGUgcGFyYW1ldGVyIGRlY2xhcmF0aW9uLCB3aGVyZWFzIGFuIEVTNSBmdW5jdGlvbiBoYXMgaXRzIGRlZmF1bHQgdmFsdWUgc2V0IGluIGEgc3RhdGVtZW50XG4gICAqIG9mIHRoZSBmb3JtOlxuICAgKlxuICAgKiBpZiAocGFyYW0gPT09IHZvaWQgMCkgeyBwYXJhbSA9IDM7IH1cbiAgICpcbiAgICogVGhpcyBtZXRob2QgYWJzdHJhY3RzIG92ZXIgdGhlc2UgZGV0YWlscywgYW5kIGludGVycHJldHMgdGhlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIGFuZCBib2R5IHRvXG4gICAqIGV4dHJhY3QgcGFyYW1ldGVyIGRlZmF1bHQgdmFsdWVzIGFuZCB0aGUgXCJyZWFsXCIgYm9keS5cbiAgICpcbiAgICogQSBjdXJyZW50IGxpbWl0YXRpb24gaXMgdGhhdCB0aGlzIG1ldGFkYXRhIGhhcyBubyByZXByZXNlbnRhdGlvbiBmb3Igc2hvcnRoYW5kIGFzc2lnbm1lbnQgb2ZcbiAgICogcGFyYW1ldGVyIG9iamVjdHMgaW4gdGhlIGZ1bmN0aW9uIHNpZ25hdHVyZS5cbiAgICpcbiAgICogQHBhcmFtIGZuIGEgVHlwZVNjcmlwdCBgdHMuRGVjbGFyYXRpb25gIG5vZGUgcmVwcmVzZW50aW5nIHRoZSBmdW5jdGlvbiBvdmVyIHdoaWNoIHRvIHJlZmxlY3QuXG4gICAqXG4gICAqIEByZXR1cm5zIGEgYEZ1bmN0aW9uRGVmaW5pdGlvbmAgZ2l2aW5nIG1ldGFkYXRhIGFib3V0IHRoZSBmdW5jdGlvbiBkZWZpbml0aW9uLlxuICAgKi9cbiAgZ2V0RGVmaW5pdGlvbk9mRnVuY3Rpb24oZm46IHRzLk5vZGUpOiBGdW5jdGlvbkRlZmluaXRpb258bnVsbDtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lIGlmIGFuIGlkZW50aWZpZXIgd2FzIGltcG9ydGVkIGZyb20gYW5vdGhlciBtb2R1bGUgYW5kIHJldHVybiBgSW1wb3J0YCBtZXRhZGF0YVxuICAgKiBkZXNjcmliaW5nIGl0cyBvcmlnaW4uXG4gICAqXG4gICAqIEBwYXJhbSBpZCBhIFR5cGVTY3JpcHQgYHRzLklkZW50aWZlcmAgdG8gcmVmbGVjdC5cbiAgICpcbiAgICogQHJldHVybnMgbWV0YWRhdGEgYWJvdXQgdGhlIGBJbXBvcnRgIGlmIHRoZSBpZGVudGlmaWVyIHdhcyBpbXBvcnRlZCBmcm9tIGFub3RoZXIgbW9kdWxlLCBvclxuICAgKiBgbnVsbGAgaWYgdGhlIGlkZW50aWZpZXIgZG9lc24ndCByZXNvbHZlIHRvIGFuIGltcG9ydCBidXQgaW5zdGVhZCBpcyBsb2NhbGx5IGRlZmluZWQuXG4gICAqL1xuICBnZXRJbXBvcnRPZklkZW50aWZpZXIoaWQ6IHRzLklkZW50aWZpZXIpOiBJbXBvcnR8bnVsbDtcblxuICAvKipcbiAgICogVHJhY2UgYW4gaWRlbnRpZmllciB0byBpdHMgZGVjbGFyYXRpb24sIGlmIHBvc3NpYmxlLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBhdHRlbXB0cyB0byByZXNvbHZlIHRoZSBkZWNsYXJhdGlvbiBvZiB0aGUgZ2l2ZW4gaWRlbnRpZmllciwgdHJhY2luZyBiYWNrIHRocm91Z2hcbiAgICogaW1wb3J0cyBhbmQgcmUtZXhwb3J0cyB1bnRpbCB0aGUgb3JpZ2luYWwgZGVjbGFyYXRpb24gc3RhdGVtZW50IGlzIGZvdW5kLiBBIGBEZWNsYXJhdGlvbmBcbiAgICogb2JqZWN0IGlzIHJldHVybmVkIGlmIHRoZSBvcmlnaW5hbCBkZWNsYXJhdGlvbiBpcyBmb3VuZCwgb3IgYG51bGxgIGlzIHJldHVybmVkIG90aGVyd2lzZS5cbiAgICpcbiAgICogSWYgdGhlIGRlY2xhcmF0aW9uIGlzIGluIGEgZGlmZmVyZW50IG1vZHVsZSwgYW5kIHRoYXQgbW9kdWxlIGlzIGltcG9ydGVkIHZpYSBhbiBhYnNvbHV0ZSBwYXRoLFxuICAgKiB0aGlzIG1ldGhvZCBhbHNvIHJldHVybnMgdGhlIGFic29sdXRlIHBhdGggb2YgdGhlIGltcG9ydGVkIG1vZHVsZS4gRm9yIGV4YW1wbGUsIGlmIHRoZSBjb2RlIGlzOlxuICAgKlxuICAgKiBgYGBcbiAgICogaW1wb3J0IHtSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuICAgKlxuICAgKiBleHBvcnQgY29uc3QgUk9VVEVTID0gUm91dGVyTW9kdWxlLmZvclJvb3QoWy4uLl0pO1xuICAgKiBgYGBcbiAgICpcbiAgICogYW5kIGlmIGBnZXREZWNsYXJhdGlvbk9mSWRlbnRpZmllcmAgaXMgY2FsbGVkIG9uIGBSb3V0ZXJNb2R1bGVgIGluIHRoZSBgUk9VVEVTYCBleHByZXNzaW9uLFxuICAgKiB0aGVuIGl0IHdvdWxkIHRyYWNlIGBSb3V0ZXJNb2R1bGVgIHZpYSBpdHMgaW1wb3J0IGZyb20gYEBhbmd1bGFyL2NvcmVgLCBhbmQgbm90ZSB0aGF0IHRoZVxuICAgKiBkZWZpbml0aW9uIHdhcyBpbXBvcnRlZCBmcm9tIGBAYW5ndWxhci9jb3JlYCBpbnRvIHRoZSBhcHBsaWNhdGlvbiB3aGVyZSBpdCB3YXMgcmVmZXJlbmNlZC5cbiAgICpcbiAgICogSWYgdGhlIGRlZmluaXRpb24gaXMgcmUtZXhwb3J0ZWQgc2V2ZXJhbCB0aW1lcyBmcm9tIGRpZmZlcmVudCBhYnNvbHV0ZSBtb2R1bGUgbmFtZXMsIG9ubHlcbiAgICogdGhlIGZpcnN0IG9uZSAodGhlIG9uZSBieSB3aGljaCB0aGUgYXBwbGljYXRpb24gcmVmZXJzIHRvIHRoZSBtb2R1bGUpIGlzIHJldHVybmVkLlxuICAgKlxuICAgKiBUaGlzIG1vZHVsZSBuYW1lIGlzIHJldHVybmVkIGluIHRoZSBgdmlhTW9kdWxlYCBmaWVsZCBvZiB0aGUgYERlY2xhcmF0aW9uYC4gSWYgVGhlIGRlY2xhcmF0aW9uXG4gICAqIGlzIHJlbGF0aXZlIHRvIHRoZSBhcHBsaWNhdGlvbiBpdHNlbGYgYW5kIHRoZXJlIHdhcyBubyBpbXBvcnQgdGhyb3VnaCBhbiBhYnNvbHV0ZSBwYXRoLCB0aGVuXG4gICAqIGB2aWFNb2R1bGVgIGlzIGBudWxsYC5cbiAgICpcbiAgICogQHBhcmFtIGlkIGEgVHlwZVNjcmlwdCBgdHMuSWRlbnRpZmllcmAgdG8gdHJhY2UgYmFjayB0byBhIGRlY2xhcmF0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJucyBtZXRhZGF0YSBhYm91dCB0aGUgYERlY2xhcmF0aW9uYCBpZiB0aGUgb3JpZ2luYWwgZGVjbGFyYXRpb24gaXMgZm91bmQsIG9yIGBudWxsYFxuICAgKiBvdGhlcndpc2UuXG4gICAqL1xuICBnZXREZWNsYXJhdGlvbk9mSWRlbnRpZmllcihpZDogdHMuSWRlbnRpZmllcik6IERlY2xhcmF0aW9ufG51bGw7XG5cbiAgLyoqXG4gICAqIENvbGxlY3QgdGhlIGRlY2xhcmF0aW9ucyBleHBvcnRlZCBmcm9tIGEgbW9kdWxlIGJ5IG5hbWUuXG4gICAqXG4gICAqIEl0ZXJhdGVzIG92ZXIgdGhlIGV4cG9ydHMgb2YgYSBtb2R1bGUgKGluY2x1ZGluZyByZS1leHBvcnRzKSBhbmQgcmV0dXJucyBhIG1hcCBvZiBleHBvcnRcbiAgICogbmFtZSB0byBpdHMgYERlY2xhcmF0aW9uYC4gSWYgYW4gZXhwb3J0ZWQgdmFsdWUgaXMgaXRzZWxmIHJlLWV4cG9ydGVkIGZyb20gYW5vdGhlciBtb2R1bGUsXG4gICAqIHRoZSBgRGVjbGFyYXRpb25gJ3MgYHZpYU1vZHVsZWAgd2lsbCByZWZsZWN0IHRoYXQuXG4gICAqXG4gICAqIEBwYXJhbSBub2RlIGEgVHlwZVNjcmlwdCBgdHMuTm9kZWAgcmVwcmVzZW50aW5nIHRoZSBtb2R1bGUgKGZvciBleGFtcGxlIGEgYHRzLlNvdXJjZUZpbGVgKSBmb3JcbiAgICogd2hpY2ggdG8gY29sbGVjdCBleHBvcnRzLlxuICAgKlxuICAgKiBAcmV0dXJucyBhIG1hcCBvZiBgRGVjbGFyYXRpb25gcyBmb3IgdGhlIG1vZHVsZSdzIGV4cG9ydHMsIGJ5IG5hbWUuXG4gICAqL1xuICBnZXRFeHBvcnRzT2ZNb2R1bGUobW9kdWxlOiB0cy5Ob2RlKTogTWFwPHN0cmluZywgRGVjbGFyYXRpb24+fG51bGw7XG5cbiAgLyoqXG4gICAqIENoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIG5vZGUgYWN0dWFsbHkgcmVwcmVzZW50cyBhIGNsYXNzLlxuICAgKi9cbiAgaXNDbGFzcyhub2RlOiB0cy5Ob2RlKTogbm9kZSBpcyBDbGFzc0RlY2xhcmF0aW9uO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGdpdmVuIGRlY2xhcmF0aW9uLCB3aGljaCBzaG91bGQgYmUgYSBjbGFzcywgaGFzIGEgYmFzZSBjbGFzcy5cbiAgICpcbiAgICogQHBhcmFtIGNsYXp6IGEgYENsYXNzRGVjbGFyYXRpb25gIHJlcHJlc2VudGluZyB0aGUgY2xhc3Mgb3ZlciB3aGljaCB0byByZWZsZWN0LlxuICAgKi9cbiAgaGFzQmFzZUNsYXNzKGNsYXp6OiBDbGFzc0RlY2xhcmF0aW9uKTogYm9vbGVhbjtcblxuICAvKipcbiAgICogR2V0IGFuIGV4cHJlc3Npb24gcmVwcmVzZW50aW5nIHRoZSBiYXNlIGNsYXNzIChpZiBhbnkpIG9mIHRoZSBnaXZlbiBgY2xhenpgLlxuICAgKlxuICAgKiBUaGlzIGV4cHJlc3Npb24gaXMgbW9zdCBjb21tb25seSBhbiBJZGVudGlmaWVyLCBidXQgaXMgcG9zc2libGUgdG8gaW5oZXJpdCBmcm9tIGEgbW9yZSBkeW5hbWljXG4gICAqIGV4cHJlc3Npb24uXG4gICAqXG4gICAqIEBwYXJhbSBjbGF6eiB0aGUgY2xhc3Mgd2hvc2UgYmFzZSB3ZSB3YW50IHRvIGdldC5cbiAgICovXG4gIGdldEJhc2VDbGFzc0V4cHJlc3Npb24oY2xheno6IENsYXNzRGVjbGFyYXRpb24pOiB0cy5FeHByZXNzaW9ufG51bGw7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbnVtYmVyIG9mIGdlbmVyaWMgdHlwZSBwYXJhbWV0ZXJzIG9mIGEgZ2l2ZW4gY2xhc3MuXG4gICAqXG4gICAqIEBwYXJhbSBjbGF6eiBhIGBDbGFzc0RlY2xhcmF0aW9uYCByZXByZXNlbnRpbmcgdGhlIGNsYXNzIG92ZXIgd2hpY2ggdG8gcmVmbGVjdC5cbiAgICpcbiAgICogQHJldHVybnMgdGhlIG51bWJlciBvZiB0eXBlIHBhcmFtZXRlcnMgb2YgdGhlIGNsYXNzLCBpZiBrbm93biwgb3IgYG51bGxgIGlmIHRoZSBkZWNsYXJhdGlvblxuICAgKiBpcyBub3QgYSBjbGFzcyBvciBoYXMgYW4gdW5rbm93biBudW1iZXIgb2YgdHlwZSBwYXJhbWV0ZXJzLlxuICAgKi9cbiAgZ2V0R2VuZXJpY0FyaXR5T2ZDbGFzcyhjbGF6ejogQ2xhc3NEZWNsYXJhdGlvbik6IG51bWJlcnxudWxsO1xuXG4gIC8qKlxuICAgKiBGaW5kIHRoZSBhc3NpZ25lZCB2YWx1ZSBvZiBhIHZhcmlhYmxlIGRlY2xhcmF0aW9uLlxuICAgKlxuICAgKiBOb3JtYWxseSB0aGlzIHdpbGwgYmUgdGhlIGluaXRpYWxpemVyIG9mIHRoZSBkZWNsYXJhdGlvbiwgYnV0IHdoZXJlIHRoZSB2YXJpYWJsZSBpc1xuICAgKiBub3QgYSBgY29uc3RgIHdlIG1heSBuZWVkIHRvIGxvb2sgZWxzZXdoZXJlIGZvciB0aGUgdmFyaWFibGUncyB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIGRlY2xhcmF0aW9uIGEgVHlwZVNjcmlwdCB2YXJpYWJsZSBkZWNsYXJhdGlvbiwgd2hvc2UgdmFsdWUgd2Ugd2FudC5cbiAgICogQHJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJsZSwgYXMgYSBUeXBlU2NyaXB0IGV4cHJlc3Npb24gbm9kZSwgb3IgYHVuZGVmaW5lZGBcbiAgICogaWYgdGhlIHZhbHVlIGNhbm5vdCBiZSBjb21wdXRlZC5cbiAgICovXG4gIGdldFZhcmlhYmxlVmFsdWUoZGVjbGFyYXRpb246IHRzLlZhcmlhYmxlRGVjbGFyYXRpb24pOiB0cy5FeHByZXNzaW9ufG51bGw7XG5cbiAgLyoqXG4gICAqIFRha2UgYW4gZXhwb3J0ZWQgZGVjbGFyYXRpb24gKG1heWJlIGEgY2xhc3MgZG93bi1sZXZlbGVkIHRvIGEgdmFyaWFibGUpIGFuZCBsb29rIHVwIHRoZVxuICAgKiBkZWNsYXJhdGlvbiBvZiBpdHMgdHlwZSBpbiBhIHNlcGFyYXRlIC5kLnRzIHRyZWUuXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gaXMgYWxsb3dlZCB0byByZXR1cm4gYG51bGxgIGlmIHRoZSBjdXJyZW50IGNvbXBpbGF0aW9uIHVuaXQgZG9lcyBub3QgaGF2ZSBhXG4gICAqIHNlcGFyYXRlIC5kLnRzIHRyZWUuIFdoZW4gY29tcGlsaW5nIFR5cGVTY3JpcHQgY29kZSB0aGlzIGlzIGFsd2F5cyB0aGUgY2FzZSwgc2luY2UgLmQudHMgZmlsZXNcbiAgICogYXJlIHByb2R1Y2VkIG9ubHkgZHVyaW5nIHRoZSBlbWl0IG9mIHN1Y2ggYSBjb21waWxhdGlvbi4gV2hlbiBjb21waWxpbmcgLmpzIGNvZGUsIGhvd2V2ZXIsXG4gICAqIHRoZXJlIGlzIGZyZXF1ZW50bHkgYSBwYXJhbGxlbCAuZC50cyB0cmVlIHdoaWNoIHRoaXMgbWV0aG9kIGV4cG9zZXMuXG4gICAqXG4gICAqIE5vdGUgdGhhdCB0aGUgYHRzLkRlY2xhcmF0aW9uYCByZXR1cm5lZCBmcm9tIHRoaXMgZnVuY3Rpb24gbWF5IG5vdCBiZSBmcm9tIHRoZSBzYW1lXG4gICAqIGB0cy5Qcm9ncmFtYCBhcyB0aGUgaW5wdXQgZGVjbGFyYXRpb24uXG4gICAqL1xuICBnZXREdHNEZWNsYXJhdGlvbihkZWNsYXJhdGlvbjogRGVjbGFyYXRpb25Ob2RlKTogdHMuRGVjbGFyYXRpb258bnVsbDtcblxuICAvKipcbiAgICogR2V0IGEgYHRzLklkZW50aWZpZXJgIGZvciBhIGdpdmVuIGBDbGFzc0RlY2xhcmF0aW9uYCB3aGljaCBjYW4gYmUgdXNlZCB0byByZWZlciB0byB0aGUgY2xhc3NcbiAgICogd2l0aGluIGl0cyBkZWZpbml0aW9uIChzdWNoIGFzIGluIHN0YXRpYyBmaWVsZHMpLlxuICAgKlxuICAgKiBUaGlzIGNhbiBkaWZmZXIgZnJvbSBgY2xhenoubmFtZWAgd2hlbiBuZ2NjIHJ1bnMgb3ZlciBFUzUgY29kZSwgc2luY2UgdGhlIGNsYXNzIG1heSBoYXZlIGFcbiAgICogZGlmZmVyZW50IG5hbWUgd2l0aGluIGl0cyBJSUZFIHdyYXBwZXIgdGhhbiBpdCBkb2VzIGV4dGVybmFsbHkuXG4gICAqL1xuICBnZXRJbnRlcm5hbE5hbWVPZkNsYXNzKGNsYXp6OiBDbGFzc0RlY2xhcmF0aW9uKTogdHMuSWRlbnRpZmllcjtcblxuICAvKipcbiAgICogR2V0IGEgYHRzLklkZW50aWZpZXJgIGZvciBhIGdpdmVuIGBDbGFzc0RlY2xhcmF0aW9uYCB3aGljaCBjYW4gYmUgdXNlZCB0byByZWZlciB0byB0aGUgY2xhc3NcbiAgICogZnJvbSBzdGF0ZW1lbnRzIHRoYXQgYXJlIFwiYWRqYWNlbnRcIiwgYW5kIGNvbmNlcHR1YWxseSB0aWdodGx5IGJvdW5kLCB0byB0aGUgY2xhc3MgYnV0IG5vdFxuICAgKiBhY3R1YWxseSBpbnNpZGUgaXQuXG4gICAqXG4gICAqIFNpbWlsYXIgdG8gYGdldEludGVybmFsTmFtZU9mQ2xhc3MoKWAsIHRoaXMgbmFtZSBjYW4gZGlmZmVyIGZyb20gYGNsYXp6Lm5hbWVgIHdoZW4gbmdjYyBydW5zXG4gICAqIG92ZXIgRVM1IGNvZGUsIHNpbmNlIHRoZXNlIFwiYWRqYWNlbnRcIiBzdGF0ZW1lbnRzIG5lZWQgdG8gZXhpc3QgaW4gdGhlIElJRkUgd2hlcmUgdGhlIGNsYXNzIG1heVxuICAgKiBoYXZlIGEgZGlmZmVyZW50IG5hbWUgdGhhbiBpdCBkb2VzIGV4dGVybmFsbHkuXG4gICAqL1xuICBnZXRBZGphY2VudE5hbWVPZkNsYXNzKGNsYXp6OiBDbGFzc0RlY2xhcmF0aW9uKTogdHMuSWRlbnRpZmllcjtcblxuICAvKipcbiAgICogUmV0dXJucyBgdHJ1ZWAgaWYgYSBkZWNsYXJhdGlvbiBpcyBleHBvcnRlZCBmcm9tIHRoZSBtb2R1bGUgaW4gd2hpY2ggaXQncyBkZWZpbmVkLlxuICAgKlxuICAgKiBOb3QgYWxsIG1lY2hhbmlzbXMgYnkgd2hpY2ggYSBkZWNsYXJhdGlvbiBpcyBleHBvcnRlZCBjYW4gYmUgc3RhdGljYWxseSBkZXRlY3RlZCwgZXNwZWNpYWxseVxuICAgKiB3aGVuIHByb2Nlc3NpbmcgYWxyZWFkeSBjb21waWxlZCBKYXZhU2NyaXB0LiBBIGBmYWxzZWAgcmVzdWx0IGRvZXMgbm90IGluZGljYXRlIHRoYXQgdGhlXG4gICAqIGRlY2xhcmF0aW9uIGlzIG5ldmVyIHZpc2libGUgb3V0c2lkZSBpdHMgbW9kdWxlLCBvbmx5IHRoYXQgaXQgd2FzIG5vdCBleHBvcnRlZCB2aWEgb25lIG9mIHRoZVxuICAgKiBleHBvcnQgbWVjaGFuaXNtcyB0aGF0IHRoZSBgUmVmbGVjdGlvbkhvc3RgIGlzIGNhcGFibGUgb2Ygc3RhdGljYWxseSBjaGVja2luZy5cbiAgICovXG4gIGlzU3RhdGljYWxseUV4cG9ydGVkKGRlY2w6IHRzLk5vZGUpOiBib29sZWFuO1xufVxuIl19
|