{"version":3,"file":"index.cjs","sources":["../../src/constant/constant.ts","../../src/util/ensure-array/ensure-array.ts","../../src/util/path/path-util.ts","../../src/util/module-resolution/module-resolution-util.ts","../../src/util/finalize-parsed-command-line/finalize-parsed-command-line.ts","../../src/util/is-debug/should-debug.ts","../../src/util/logging/get-formatted-date-time-prefix.ts","../../src/util/inspect/inspect.ts","../../src/util/logging/log-tsconfig.ts","../../src/util/get-parsed-command-line/get-parsed-command-line.ts","../../src/util/get-script-target-from-browserslist/get-script-target-from-browserslist.ts","../../src/util/hash/generate-random-hash.ts","../../src/util/get-out-dir/get-out-dir.ts","../../src/util/plugin-options/get-plugin-options.ts","../../src/util/get-forced-compiler-options/get-forced-compiler-options.ts","../../src/util/is-code-output-file/is-code-output-file.ts","../../src/util/is-map-output-file/is-map-output-file.ts","../../src/util/get-source-description-from-emit-output/get-source-description-from-emit-output.ts","../../src/service/emit/diagnostics/emit-diagnostics.ts","../../src/util/get-supported-extensions/get-supported-extensions.ts","../../src/util/is-output-chunk/is-output-chunk.ts","../../src/util/take-bundled-filenames/take-bundled-filenames.ts","../../src/util/get-browserslist/get-browserslist.ts","../../src/service/cache/resolve-cache/resolve-cache.ts","../../src/lib/regenerator/regenerator.ts","../../src/util/is-defined/is-defined.ts","../../src/util/merge-transformers/merge-transformers.ts","../../src/util/take-browserslist-or-compute-based-on-compiler-options/take-browserslist-or-compute-based-on-compiler-options.ts","../../src/util/get-declaration-out-dir/get-declaration-out-dir.ts","../../src/service/transformer/declaration-bundler/util/apply-transformers.ts","../../src/service/transformer/declaration-bundler/util/get-chunk-filename.ts","../../src/service/transformer/declaration-bundler/util/format-lib-reference-directive.ts","../../src/service/transformer/declaration-bundler/util/format-type-reference-directive.ts","../../src/util/pick-resolved-module.ts","../../src/service/transformer/declaration-bundler/util/get-original-node.ts","../../src/service/transformer/declaration-bundler/util/node-util.ts","../../src/service/transformer/declaration-bundler/util/modifier-util.ts","../../src/service/transformer/declaration-bundler/util/create-export-specifier-from-name-and-modifiers.ts","../../src/service/transformer/declaration-bundler/transformers/track-imports-transformer/visitor/visit-import-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/track-imports-transformer/visitor/visit-import-type-node.ts","../../src/service/transformer/declaration-bundler/transformers/track-imports-transformer/visitor/visit-module-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/track-imports-transformer/visitor/visit-node.ts","../../src/service/transformer/declaration-bundler/transformers/track-imports-transformer/track-imports-transformer.ts","../../src/service/transformer/declaration-bundler/transformers/track-exports-transformer/visitor/visit-class-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/track-exports-transformer/visitor/visit-class-expression.ts","../../src/service/transformer/declaration-bundler/transformers/track-exports-transformer/visitor/visit-function-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/track-exports-transformer/visitor/visit-function-expression.ts","../../src/service/transformer/declaration-bundler/transformers/track-exports-transformer/visitor/visit-enum-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/trace-identifiers/visitor/trace-identifiers-for-binding-element.ts","../../src/service/transformer/declaration-bundler/transformers/trace-identifiers/visitor/trace-identifiers-for-class-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/trace-identifiers/visitor/trace-identifiers-for-enum-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/trace-identifiers/visitor/trace-identifiers-for-function-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/trace-identifiers/visitor/trace-identifiers-for-import-clause.ts","../../src/service/transformer/declaration-bundler/transformers/trace-identifiers/visitor/trace-identifiers-for-namespace-import.ts","../../src/service/transformer/declaration-bundler/transformers/trace-identifiers/visitor/trace-identifiers-for-import-specifier.ts","../../src/service/transformer/declaration-bundler/transformers/trace-identifiers/visitor/trace-identifiers-for-export-specifier.ts","../../src/service/transformer/declaration-bundler/transformers/trace-identifiers/visitor/trace-identifiers-for-identifier.ts","../../src/service/transformer/declaration-bundler/transformers/trace-identifiers/visitor/trace-identifiers-for-interface-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/trace-identifiers/visitor/trace-identifiers-for-type-alias-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/trace-identifiers/visitor/trace-identifiers-for-variable-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/trace-identifiers/visitor/trace-identifiers-for-export-assignment.ts","../../src/service/transformer/declaration-bundler/transformers/trace-identifiers/visitor/trace-identifiers-for-call-expression.ts","../../src/service/transformer/declaration-bundler/transformers/trace-identifiers/visitor/trace-identifiers-for-new-expression.ts","../../src/service/transformer/declaration-bundler/transformers/trace-identifiers/visitor/trace-identifiers-for-import-equals-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/trace-identifiers/visitor/trace-identifiers-for-node.ts","../../src/service/transformer/declaration-bundler/transformers/trace-identifiers/trace-identifiers.ts","../../src/service/transformer/declaration-bundler/transformers/track-exports-transformer/visitor/visit-variable-statement.ts","../../src/service/transformer/declaration-bundler/transformers/track-exports-transformer/visitor/visit-interface-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/track-exports-transformer/visitor/visit-module-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/track-exports-transformer/visitor/visit-type-alias-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/track-exports-transformer/visitor/visit-export-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/track-exports-transformer/visitor/visit-export-assignment.ts","../../src/service/transformer/declaration-bundler/transformers/track-exports-transformer/visitor/visit-node.ts","../../src/service/transformer/declaration-bundler/transformers/track-exports-transformer/track-exports-transformer.ts","../../src/service/transformer/declaration-bundler/transformers/stats-collector/stats-collector.ts","../../src/service/transformer/declaration-bundler/transformers/source-file-bundler/source-file-bundler.ts","../../src/util/similarity-util.ts","../../src/service/transformer/declaration-bundler/util/generate-module-specifier.ts","../../src/service/transformer/declaration-bundler/util/get-symbol-flags-for-node.ts","../../src/service/transformer/declaration-bundler/util/get-symbol-at-location.ts","../../src/service/transformer/declaration-bundler/util/clone-node-with-meta.ts","../../src/service/transformer/declaration-bundler/util/clone-lexical-environment.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-no-declare-modifier-transformer/visitor/visit-class-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-no-declare-modifier-transformer/visitor/visit-class-expression.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-no-declare-modifier-transformer/visitor/visit-function-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-no-declare-modifier-transformer/visitor/visit-function-expression.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-no-declare-modifier-transformer/visitor/visit-enum-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-no-declare-modifier-transformer/visitor/visit-variable-statement.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-no-declare-modifier-transformer/visitor/visit-interface-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-no-declare-modifier-transformer/visitor/visit-module-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-no-declare-modifier-transformer/visitor/visit-type-alias-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-no-declare-modifier-transformer/visitor/visit-node.ts","../../src/util/logging/log-metrics.ts","../../src/util/logging/log-transformer.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-no-declare-modifier-transformer/ensure-no-declare-modifier-transformer.ts","../../src/service/transformer/declaration-bundler/transformers/statement-merger/visitor/visit-import-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/statement-merger/visitor/visit-export-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/statement-merger/visitor/visit-export-assignment.ts","../../src/service/transformer/declaration-bundler/transformers/statement-merger/visitor/visit-node.ts","../../src/service/transformer/declaration-bundler/util/get-merged-import-declarations-for-modules.ts","../../src/service/transformer/declaration-bundler/util/get-merged-export-declarations-for-modules.ts","../../src/service/transformer/declaration-bundler/util/node-has-supported-extension.ts","../../src/service/transformer/declaration-bundler/transformers/statement-merger/statement-merger.ts","../../src/service/transformer/declaration-bundler/transformers/inline-namespace-module-block-transformer/visitor/visit-import-declaration.ts","../../src/service/transformer/declaration-bundler/util/generate-identifier-name.ts","../../src/service/transformer/declaration-bundler/util/add-binding-to-lexical-environment.ts","../../src/service/transformer/declaration-bundler/util/generate-unique-binding.ts","../../src/service/transformer/declaration-bundler/util/is-identifier-free.ts","../../src/service/transformer/declaration-bundler/util/get-original-source-file.ts","../../src/service/transformer/declaration-bundler/transformers/inline-namespace-module-block-transformer/visitor/visit-export-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/inline-namespace-module-block-transformer/visitor/visit-module-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/inline-namespace-module-block-transformer/visitor/visit-node.ts","../../src/service/transformer/declaration-bundler/transformers/inline-namespace-module-block-transformer/inline-namespace-module-block-transformer.ts","../../src/service/transformer/declaration-bundler/transformers/module-merger/visitor/visit-export-declaration.ts","../../src/service/transformer/declaration-bundler/util/get-parent-node.ts","../../src/service/transformer/declaration-bundler/transformers/module-merger/visitor/visit-import-type-node.ts","../../src/service/transformer/declaration-bundler/transformers/module-merger/visitor/visit-import-declaration.ts","../../src/service/transformer/declaration-bundler/util/get-aliased-declaration.ts","../../src/service/transformer/declaration-bundler/util/create-aliased-binding.ts","../../src/service/transformer/declaration-bundler/util/locate-exported-symbol.ts","../../src/service/transformer/declaration-bundler/transformers/module-merger/visitor/visit-import-specifier.ts","../../src/service/transformer/declaration-bundler/transformers/module-merger/visitor/visit-export-specifier.ts","../../src/service/transformer/declaration-bundler/transformers/module-merger/visitor/visit-import-clause.ts","../../src/service/transformer/declaration-bundler/transformers/module-merger/visitor/visit-namespace-import.ts","../../src/service/transformer/declaration-bundler/transformers/module-merger/visitor/visit-source-file.ts","../../src/service/transformer/declaration-bundler/transformers/module-merger/visitor/visit-node.ts","../../src/util/object/object-util.ts","../../src/service/transformer/declaration-bundler/util/is-statement.ts","../../src/service/transformer/declaration-bundler/transformers/module-merger/util/is-root-level-node.ts","../../src/service/transformer/declaration-bundler/util/get-node-placement-queue.ts","../../src/service/transformer/declaration-bundler/util/find-matching-imported-symbol.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-no-export-modifier-transformer/visitor/visit-class-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-no-export-modifier-transformer/visitor/visit-class-expression.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-no-export-modifier-transformer/visitor/visit-function-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-no-export-modifier-transformer/visitor/visit-function-expression.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-no-export-modifier-transformer/visitor/visit-enum-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-no-export-modifier-transformer/visitor/visit-variable-statement.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-no-export-modifier-transformer/visitor/visit-interface-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-no-export-modifier-transformer/visitor/visit-module-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-no-export-modifier-transformer/visitor/visit-type-alias-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-no-export-modifier-transformer/visitor/visit-node.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-no-export-modifier-transformer/ensure-no-export-modifier-transformer.ts","../../src/service/transformer/declaration-bundler/transformers/no-export-declaration-transformer/visitor/visit-export-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/no-export-declaration-transformer/visitor/visit-export-assignment.ts","../../src/service/transformer/declaration-bundler/transformers/no-export-declaration-transformer/visitor/visit-node.ts","../../src/service/transformer/declaration-bundler/transformers/no-export-declaration-transformer/no-export-declaration-transformer.ts","../../src/service/transformer/declaration-bundler/util/get-binding-from-lexical-environment.ts","../../src/service/transformer/declaration-bundler/transformers/module-merger/module-merger.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-binding-element.ts","../../src/service/transformer/declaration-bundler/util/node-arrays-are-equal.ts","../../src/service/transformer/declaration-bundler/util/get-id-for-node.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-class-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-class-expression.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-enum-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-enum-member.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-export-specifier.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-function-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-function-expression.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-get-accessor-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-identifier.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-import-clause.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-import-specifier.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-interface-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-mapped-type-node.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-method-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-index-signature-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-method-signature.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-module-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-namespace-import.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-parameter-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-property-assignment.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-property-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-property-signature.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-set-accessor-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-type-alias-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-type-parameter-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-variable-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-function-type.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-import-type-node.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-constructor-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-call-signature-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-qualified-name.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/visitor/deconflict-import-equals-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/deconflicter/deconflicter.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-declare-modifier-transformer/visitor/visit-class-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-declare-modifier-transformer/visitor/visit-class-expression.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-declare-modifier-transformer/visitor/visit-function-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-declare-modifier-transformer/visitor/visit-function-expression.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-declare-modifier-transformer/visitor/visit-enum-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-declare-modifier-transformer/visitor/visit-variable-statement.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-declare-modifier-transformer/visitor/visit-interface-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-declare-modifier-transformer/visitor/visit-module-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-declare-modifier-transformer/visitor/visit-type-alias-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-declare-modifier-transformer/visitor/visit-node.ts","../../src/service/transformer/declaration-bundler/transformers/ensure-declare-modifier-transformer/ensure-declare-modifier-transformer.ts","../../src/service/transformer/declaration-bundler/transformers/module-block-extractor/visitor/visit-module-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/module-block-extractor/visitor/visit-node.ts","../../src/service/transformer/declaration-bundler/transformers/module-block-extractor/module-block-extractor.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-class-declaration.ts","../../src/service/transformer/declaration-bundler/util/is-symbol-identifier.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-identifier.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-class-expression.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-interface-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-enum-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-type-alias-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-function-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-function-expression.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-variable-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-export-specifier.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-array-binding-pattern.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-object-binding-pattern.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-binding-element.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-method-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-method-signature.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-property-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-property-signature.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-get-accessor-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-set-accessor-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-parameter-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-variable-declaration-list.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-variable-statement.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-export-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-export-assignment.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-module-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-indexed-access-type-node.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-property-access-expression.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-qualified-name.ts","../../src/service/transformer/declaration-bundler/util/node-contains-child.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-template-literal-type-node.ts","../../src/util/predicates/predicates.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-template-literal-type-span.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-type-reference-node.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/visitor/check-import-equals-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/reference/is-referenced/is-referenced.ts","../../src/service/transformer/declaration-bundler/transformers/tree-shaker/visitor/visit-class-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/tree-shaker/visitor/visit-class-expression.ts","../../src/service/transformer/declaration-bundler/transformers/tree-shaker/visitor/visit-function-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/tree-shaker/visitor/visit-function-expression.ts","../../src/service/transformer/declaration-bundler/transformers/tree-shaker/visitor/visit-enum-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/tree-shaker/visitor/visit-interface-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/tree-shaker/visitor/visit-type-alias-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/tree-shaker/visitor/visit-module-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/tree-shaker/visitor/visit-export-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/tree-shaker/visitor/visit-export-assignment.ts","../../src/service/transformer/declaration-bundler/transformers/tree-shaker/visitor/visit-variable-statement.ts","../../src/service/transformer/declaration-bundler/transformers/tree-shaker/visitor/visit-variable-declaration-list.ts","../../src/service/transformer/declaration-bundler/transformers/tree-shaker/visitor/visit-variable-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/tree-shaker/visitor/visit-import-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/tree-shaker/visitor/visit-import-specifier.ts","../../src/service/transformer/declaration-bundler/transformers/tree-shaker/visitor/visit-import-clause.ts","../../src/service/transformer/declaration-bundler/transformers/tree-shaker/visitor/visit-named-imports.ts","../../src/service/transformer/declaration-bundler/transformers/tree-shaker/visitor/visit-namespace-import.ts","../../src/service/transformer/declaration-bundler/transformers/tree-shaker/visitor/visit-import-equals-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/tree-shaker/visitor/visit-array-binding-pattern.ts","../../src/service/transformer/declaration-bundler/transformers/tree-shaker/visitor/visit-object-binding-pattern.ts","../../src/service/transformer/declaration-bundler/transformers/tree-shaker/visitor/visit-binding-element.ts","../../src/service/transformer/declaration-bundler/transformers/tree-shaker/visitor/visit-identifier.ts","../../src/service/transformer/declaration-bundler/transformers/tree-shaker/visitor/visit-node.ts","../../src/service/transformer/declaration-bundler/transformers/tree-shaker/tree-shaker.ts","../../src/service/transformer/declaration-bundler/transformers/to-export-declaration-transformer/visitor/visit-class-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/to-export-declaration-transformer/visitor/visit-class-expression.ts","../../src/service/transformer/declaration-bundler/transformers/to-export-declaration-transformer/visitor/visit-function-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/to-export-declaration-transformer/visitor/visit-function-expression.ts","../../src/service/transformer/declaration-bundler/transformers/to-export-declaration-transformer/visitor/visit-enum-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/to-export-declaration-transformer/visitor/visit-variable-statement.ts","../../src/service/transformer/declaration-bundler/transformers/to-export-declaration-transformer/visitor/visit-interface-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/to-export-declaration-transformer/visitor/visit-module-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/to-export-declaration-transformer/visitor/visit-type-alias-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/to-export-declaration-transformer/visitor/visit-node.ts","../../src/service/transformer/declaration-bundler/transformers/to-export-declaration-transformer/to-export-declaration-transformer.ts","../../src/service/transformer/declaration-bundler/util/type-module-reference-is-allowed.ts","../../src/service/transformer/declaration-bundler/util/get-type-reference-module-from-file-name.ts","../../src/service/transformer/declaration-bundler/util/get-type-reference-module-from-node.ts","../../src/service/transformer/declaration-bundler/transformers/type-reference-collector/visitor/visit-identifier.ts","../../src/service/transformer/declaration-bundler/transformers/type-reference-collector/visitor/visit-node.ts","../../src/service/transformer/declaration-bundler/transformers/type-reference-collector/type-reference-collector.ts","../../src/service/transformer/declaration-bundler/declaration-bundler.ts","../../src/service/emit/declaration/bundle-declarations-for-chunk.ts","../../src/service/transformer/declaration-bundler/util/prepare-paths/prepare-paths.ts","../../src/util/chunk/normalize-chunk.ts","../../src/util/chunk/merge-chunks-with-ambient-dependencies.ts","../../src/util/logging/log-emit.ts","../../src/service/emit/declaration/emit-declarations.ts","../../src/service/module-resolution-host/module-resolution-host.ts","../../src/util/get-new-line-character/get-new-line-character.ts","../../src/util/resolve-id/resolve-id.ts","../../src/util/get-script-kind-from-path/get-script-kind-from-path.ts","../../src/service/transformer/ensure-module/ensure-module-transformer.ts","../../src/service/transformer/declaration-bundler/transformers/track-dependencies-transformer/visitor/visit-import-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/track-dependencies-transformer/visitor/visit-import-type-node.ts","../../src/service/transformer/declaration-bundler/transformers/track-dependencies-transformer/visitor/visit-module-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/track-dependencies-transformer/visitor/visit-export-declaration.ts","../../src/service/transformer/declaration-bundler/transformers/track-dependencies-transformer/visitor/visit-node.ts","../../src/service/transformer/declaration-bundler/transformers/track-dependencies-transformer/track-dependencies-transformer.ts","../../src/util/get-module-dependencies/get-module-dependencies.ts","../../src/service/compiler-host/compiler-host.ts","../../src/util/is-build-info-output-file/is-build-info-output-file.ts","../../src/service/emit/tsbuildinfo/emit-build-info.ts","../../src/util/is-json-like/is-json-like.ts","../../src/util/list-format.ts","../../src/util/transpiler-loader.ts","../../src/transpiler/babel.ts","../../src/transpiler/swc.ts","../../src/util/rollup/rollup-util.ts","../../src/plugin/typescript-plugin.ts"],"sourcesContent":["import type {ElementOf} from \"helpertypes\";\n\nexport const SOURCE_MAP_EXTENSION = \".map\";\nexport const TS_EXTENSION = \".ts\";\nexport const TSX_EXTENSION = \".tsx\";\nexport const MTS_EXTENSION = \".mts\";\nexport const MTSX_EXTENSION = \".mtsx\";\nexport const CTS_EXTENSION = \".cts\";\nexport const CTSX_EXTENSION = \".ctsx\";\nexport const JS_EXTENSION = \".js\";\nexport const JS_MAP_EXTENSION = `.js.map`;\nexport const JSX_EXTENSION = \".jsx\";\nexport const JSON_EXTENSION = \".json\";\n\nexport const MJS_EXTENSION = \".mjs\";\nexport const MJS_MAP_EXTENSION = \".mjs.map\";\nexport const MJSX_EXTENSION = \".mjsx\";\nexport const MJSX_MAP_EXTENSION = \".mjsx.map\";\n\nexport const CJS_EXTENSION = \".cjs\";\nexport const CJS_MAP_EXTENSION = \".cjs.map\";\nexport const CJSX_EXTENSION = \".cjsx\";\nexport const CJSX_MAP_EXTENSION = \".cjsx.map\";\n\nexport const D_TS_EXTENSION = `.d.ts`;\nexport const D_TS_MAP_EXTENSION = `.d.ts.map`;\n\nexport const D_CTS_EXTENSION = `.d.cts`;\nexport const D_CTS_MAP_EXTENSION = `.d.cts.map`;\n\nexport const D_MTS_EXTENSION = `.d.mts`;\nexport const D_MTS_MAP_EXTENSION = `.d.mts.map`;\n\nexport const TSBUILDINFO_EXTENSION = `.tsbuildinfo`;\n\nexport const ROLLUP_PLUGIN_MULTI_ENTRY_LEGACY = \"\\0rollup-plugin-multi-entry:entry-point\";\nexport const ROLLUP_PLUGIN_VIRTUAL_PREFIX = `\\0virtual:`;\n\nexport const AMBIENT_EXTENSIONS = new Set([D_TS_EXTENSION, D_TS_MAP_EXTENSION, D_MTS_EXTENSION, D_MTS_MAP_EXTENSION, D_CTS_EXTENSION, D_CTS_MAP_EXTENSION] as const);\n\nexport type AmbientExtension = ElementOf<typeof AMBIENT_EXTENSIONS>;\n\nexport const KNOWN_EXTENSIONS = new Set([\n\t...AMBIENT_EXTENSIONS,\n\tJS_MAP_EXTENSION,\n\tTS_EXTENSION,\n\tMTS_EXTENSION,\n\tMTSX_EXTENSION,\n\tCTS_EXTENSION,\n\tCTSX_EXTENSION,\n\tTSX_EXTENSION,\n\tJS_EXTENSION,\n\tJSX_EXTENSION,\n\tJSON_EXTENSION,\n\tMJS_EXTENSION,\n\tMJS_MAP_EXTENSION,\n\tMJSX_EXTENSION,\n\tMJSX_MAP_EXTENSION,\n\tCJS_EXTENSION,\n\tCJS_MAP_EXTENSION,\n\tCJSX_EXTENSION,\n\tCJSX_MAP_EXTENSION,\n\tTSBUILDINFO_EXTENSION\n] as const);\n\nexport type KnownExtension = ElementOf<typeof KNOWN_EXTENSIONS>;\n\nexport const DEFAULT_TSCONFIG_FILE_NAME = \"tsconfig.json\";\nexport const NODE_MODULES = \"node_modules\";\nexport const NODE_MODULES_MATCH_PATH = `/${NODE_MODULES}/`;\nexport const SOURCE_MAP_COMMENT = \"//# sourceMappingURL\";\nexport const SOURCE_MAP_COMMENT_REGEXP = /\\/\\/# sourceMappingURL=(\\S*)/;\nexport const TSLIB_NAME = `tslib${D_TS_EXTENSION}`;\nexport const BABEL_RUNTIME_PREFIX_1 = \"@babel/runtime/\";\nexport const BABEL_RUNTIME_PREFIX_2 = \"babel-runtime/\";\nexport const SWC_HELPERS_PREFIX = \"@swc/helpers\";\n\nexport const BABEL_CONFIG_JS_FILENAME = \"babel.config.js\";\nexport const BABEL_CONFIG_MJS_FILENAME = \"babel.config.mjs\";\nexport const BABEL_CONFIG_JSON_FILENAME = \"babel.config.json\";\nexport const BABELRC_FILENAME = \".babelrc\";\n\nexport const REGENERATOR_RUNTIME_NAME_1 = `${BABEL_RUNTIME_PREFIX_1}regenerator/index.js`;\nexport const REGENERATOR_RUNTIME_NAME_2 = `${BABEL_RUNTIME_PREFIX_2}regenerator/index.js`;\nexport const REGENERATOR_RUNTIME_NAME_3 = `regenerator-runtime/runtime.js`;\nexport const REGENERATOR_RUNTIME_VIRTUAL_SRC = `${ROLLUP_PLUGIN_VIRTUAL_PREFIX}regenerator-runtime`;\nexport const BABEL_REQUIRE_RUNTIME_HELPER_ESM_REGEXP_1 = new RegExp(`(require\\\\([\"'\\`])(${BABEL_RUNTIME_PREFIX_1}helpers/esm/[^\"'\\`]*)[\"'\\`]\\\\)`);\nexport const BABEL_REQUIRE_RUNTIME_HELPER_ESM_REGEXP_2 = new RegExp(`(require\\\\([\"'\\`])(${BABEL_RUNTIME_PREFIX_2}helpers/esm/[^\"'\\`]*)[\"'\\`]\\\\)`);\nexport const BABEL_IMPORT_RUNTIME_HELPER_CJS_REGEXP_1 = new RegExp(`(import\\\\s+\\\\w+\\\\s+from\\\\s+[\"'\\`])(${BABEL_RUNTIME_PREFIX_1}helpers/[^\"'/\\`]*)[\"'\\`]`);\nexport const BABEL_IMPORT_RUNTIME_HELPER_CJS_REGEXP_2 = new RegExp(`(import\\\\s+\\\\w+\\\\s+from\\\\s+[\"'\\`])(${BABEL_RUNTIME_PREFIX_2}helpers/[^\"'/\\`]*)[\"'\\`]`);\nexport const BABEL_IMPORT_RUNTIME_HELPER_CJS_REGEXP_3 = new RegExp(`(import\\\\s+[\"'\\`])(${BABEL_RUNTIME_PREFIX_1}helpers/[^\"'/\\`]*)[\"'\\`]`);\nexport const BABEL_IMPORT_RUNTIME_HELPER_CJS_REGEXP_4 = new RegExp(`(import\\\\s+[\"'\\`])(${BABEL_RUNTIME_PREFIX_2}helpers/[^\"'/\\`]*)[\"'\\`]`);\n\nexport const BABEL_MINIFICATION_BLACKLIST_PRESET_NAMES = [];\n\nexport const BABEL_MINIFICATION_BLACKLIST_PLUGIN_NAMES = [\"@babel/plugin-transform-runtime\", \"babel-plugin-transform-runtime\"];\n\nexport const BABEL_MINIFY_PRESET_NAMES = [\"babel-preset-minify\"];\nexport const BABEL_PRESET_TYPESCRIPT_NAMES = [\"@babel/preset-typescript\"];\n\nexport const BABEL_MINIFY_PLUGIN_NAMES = [\n\t\"babel-plugin-transform-minify-booleans\",\n\t\"babel-plugin-minify-builtins\",\n\t\"babel-plugin-transform-inline-consecutive-adds\",\n\t\"babel-plugin-minify-dead-code-elimination\",\n\t\"babel-plugin-minify-constant-folding\",\n\t\"babel-plugin-minify-flip-comparisons\",\n\t\"babel-plugin-minify-guarded-expressions\",\n\t\"babel-plugin-minify-infinity\",\n\t\"babel-plugin-minify-mangle-names\",\n\t\"babel-plugin-transform-member-expression-literals\",\n\t\"babel-plugin-transform-merge-sibling-variables\",\n\t\"babel-plugin-minify-numeric-literals\",\n\t\"babel-plugin-transform-property-literals\",\n\t\"babel-plugin-transform-regexp-constructors\",\n\t\"babel-plugin-transform-remove-console\",\n\t\"babel-plugin-transform-remove-debugger\",\n\t\"babel-plugin-transform-remove-undefined\",\n\t\"babel-plugin-minify-replace\",\n\t\"babel-plugin-minify-simplify\",\n\t\"babel-plugin-transform-simplify-comparison-operators\",\n\t\"babel-plugin-minify-type-constructors\",\n\t\"babel-plugin-transform-undefined-to-void\"\n];\n\nexport const FORCED_SWC_MODULE_OPTIONS = {\n\ttype: \"es6\"\n} as const;\n\nexport const FORCED_SWC_JSC_OPTIONS = {\n\texternalHelpers: true\n} as const;\n\nexport const FORCED_BABEL_PRESET_ENV_OPTIONS = {\n\tmodules: false\n} as const;\n\nexport const FORCED_BABEL_YEARLY_PRESET_OPTIONS = {\n\t...FORCED_BABEL_PRESET_ENV_OPTIONS\n} as const;\n\nexport const FORCED_BABEL_PLUGIN_TRANSFORM_RUNTIME_OPTIONS = {\n\thelpers: true,\n\tregenerator: true,\n\t// eslint-disable-next-line @typescript-eslint/naming-convention\n\tuseESModules: true\n} as const;\n","/**\n * Ensures that the given item is in fact an array\n */\nexport function ensureArray<T>(item: T | T[]): T[] {\n\treturn Array.isArray(item) ? item : [item];\n}\n","import path from \"crosspath\";\nimport {\n\tBABEL_RUNTIME_PREFIX_1,\n\tBABEL_RUNTIME_PREFIX_2,\n\tD_TS_EXTENSION,\n\tD_TS_MAP_EXTENSION,\n\tKNOWN_EXTENSIONS,\n\tNODE_MODULES,\n\tNODE_MODULES_MATCH_PATH,\n\tREGENERATOR_RUNTIME_NAME_1,\n\tREGENERATOR_RUNTIME_NAME_2,\n\tREGENERATOR_RUNTIME_NAME_3,\n\tREGENERATOR_RUNTIME_VIRTUAL_SRC,\n\tROLLUP_PLUGIN_MULTI_ENTRY_LEGACY,\n\tSWC_HELPERS_PREFIX,\n\tTSLIB_NAME\n} from \"../../constant/constant.js\";\nimport type {ExternalOption} from \"rollup\";\nimport {ensureArray} from \"../ensure-array/ensure-array.js\";\nimport {createRequire} from \"module\";\n\n// Until import.meta.resolve becomes stable, we'll have to do this instead\nexport const resolveModule = (id: string, from: string = import.meta.url) => createRequire(from).resolve(id);\n\nexport function isTypeScriptLib(p: string): boolean {\n\treturn p.startsWith(`lib.`) && p.endsWith(D_TS_EXTENSION);\n}\n\nexport function removeSearchPathFromFilename(p: string): string {\n\tif (p.includes(`?`)) {\n\t\treturn p.slice(0, p.indexOf(`?`));\n\t}\n\treturn p;\n}\n\n/**\n * Gets the extension of the given file\n */\nexport function getExtension(file: string): string {\n\tif (file.endsWith(D_TS_EXTENSION)) return D_TS_EXTENSION;\n\telse if (file.endsWith(D_TS_MAP_EXTENSION)) return D_TS_MAP_EXTENSION;\n\treturn path.extname(file);\n}\n\n/**\n * Returns true if the given path represents an external library\n */\nexport function isExternalLibrary(p: string): boolean {\n\treturn (!p.startsWith(\".\") && !p.startsWith(\"/\")) || p.includes(NODE_MODULES_MATCH_PATH);\n}\n\nexport function stripNodePrefixFromModuleSpecifier(moduleSpecifier: string): string {\n\treturn moduleSpecifier.startsWith(\"node:\") ? moduleSpecifier.slice(\"node:\".length) : moduleSpecifier;\n}\n\n/**\n * Returns true if the given id represents tslib\n */\nexport function isTslib(p: string): boolean {\n\treturn p === \"tslib\" || path.normalize(p).endsWith(`/tslib/${TSLIB_NAME}`) || path.normalize(p).endsWith(\"/tslib/tslib.es6.js\") || path.normalize(p).endsWith(\"/tslib/tslib.js\");\n}\n\n/**\n * Returns true if the given path represents a Babel helper\n */\nexport function isBabelHelper(p: string): boolean {\n\treturn includesBabelEsmHelper(p) || isBabelCjsHelper(p);\n}\n\nexport function isRegeneratorRuntime(p: string): boolean {\n\treturn p.endsWith(REGENERATOR_RUNTIME_NAME_1) || p.endsWith(REGENERATOR_RUNTIME_NAME_2) || p.endsWith(REGENERATOR_RUNTIME_NAME_3) || p === REGENERATOR_RUNTIME_VIRTUAL_SRC;\n}\n\n/**\n * Returns true if the given path represents a swc helper\n */\nexport function isSwcHelper(p: string): boolean {\n\treturn path.normalize(p).includes(`${SWC_HELPERS_PREFIX}`);\n}\n\n/**\n * Returns true if the given path represents a Babel ESM helper\n */\nexport function includesBabelEsmHelper(p: string): boolean {\n\treturn path.normalize(p).includes(`${BABEL_RUNTIME_PREFIX_1}helpers/esm`) || path.normalize(p).includes(`${BABEL_RUNTIME_PREFIX_2}helpers/esm`);\n}\n\n/**\n * Returns true if the given path represents a Babel CJS helper\n */\nexport function isBabelCjsHelper(p: string): boolean {\n\treturn !includesBabelEsmHelper(p) && (path.normalize(p).includes(`${BABEL_RUNTIME_PREFIX_1}helpers`) || path.normalize(p).includes(`${BABEL_RUNTIME_PREFIX_2}helpers`));\n}\n\n/**\n * Returns true if the given path represents @babel/preset-env\n */\nexport function isBabelPresetEnv(p: string): boolean {\n\treturn path.normalize(p).includes(\"@babel/preset-env\") || path.normalize(p).includes(\"babel-preset-env\");\n}\n\n/**\n * Returns true if the given path represents @babel/preset-typescript\n */\nexport function isBabelPresetTypescript(p: string): boolean {\n\treturn path.normalize(p).includes(\"@babel/preset-typescript\");\n}\n\n/**\n * Returns true if the given path is the name of the entry module or @rollup/plugin-multi-entry\n */\nexport function isMultiEntryModule(p: string, multiEntryModuleName: string | undefined): boolean {\n\tconst normalized = path.normalize(p);\n\treturn normalized === ROLLUP_PLUGIN_MULTI_ENTRY_LEGACY || (multiEntryModuleName != null && normalized === multiEntryModuleName);\n}\n\n/**\n * Returns true if the given path represents @babel/preset-es[2015|2016|2017]\n */\nexport function isYearlyBabelPreset(p: string): boolean {\n\treturn path.normalize(p).includes(\"@babel/preset-es\") || path.normalize(p).includes(\"babel-preset-es\");\n}\n\n/**\n * Returns true if the given path represents @babel/plugin-transform-runtime\n */\nexport function isBabelPluginTransformRuntime(p: string): boolean {\n\treturn path.normalize(p).includes(\"@babel/plugin-transform-runtime\") || path.normalize(p).includes(\"babel-plugin-transform-runtime\");\n}\n\nexport function somePathsAreRelated(paths: Iterable<string>, matchPath: string): boolean {\n\tfor (const p of paths) {\n\t\tif (pathsAreRelated(p, matchPath)) return true;\n\t}\n\treturn false;\n}\n\nexport function pathsAreRelated(a: string, b: string): boolean {\n\tif (a === b) return true;\n\n\t// A node_modules folder may contain one or more nested node_modules\n\tif (a.includes(NODE_MODULES) || b.includes(NODE_MODULES)) {\n\t\tconst firstPathFromNodeModules = a.includes(NODE_MODULES) ? a.slice(a.indexOf(NODE_MODULES)) : a;\n\t\tconst secondPathFromNodeModules = b.includes(NODE_MODULES) ? b.slice(b.indexOf(NODE_MODULES)) : b;\n\n\t\tif (firstPathFromNodeModules.includes(secondPathFromNodeModules)) return true;\n\t\tif (secondPathFromNodeModules.includes(firstPathFromNodeModules)) return true;\n\t}\n\n\treturn false;\n}\n\n/**\n * Strips the extension from a file\n */\nexport function stripKnownExtension(file: string): string {\n\tlet currentExtname: string | undefined;\n\n\tfor (const extName of KNOWN_EXTENSIONS) {\n\t\tif (file.endsWith(extName)) {\n\t\t\tcurrentExtname = extName;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (currentExtname == null) return file;\n\n\treturn file.slice(0, file.lastIndexOf(currentExtname));\n}\n\n/**\n * Sets the given extension for the given file\n */\nexport function setExtension(file: string, extension: string): string {\n\treturn path.normalize(`${stripKnownExtension(file)}${extension}`);\n}\n\n/**\n * Ensure that the given path has a leading \".\"\n */\nexport function ensureHasLeadingDotAndPosix(p: string, externalGuard = true): string {\n\tif (externalGuard && isExternalLibrary(p)) return p;\n\n\tconst posixPath = path.normalize(p);\n\tif (posixPath.startsWith(\".\")) return posixPath;\n\tif (posixPath.startsWith(\"/\")) return `.${posixPath}`;\n\treturn `./${posixPath}`;\n}\n\n/**\n * Ensure that the given path has a leading \".\"\n */\nexport function ensureHasNoLeadingDotAndPosix(p: string): string {\n\tconst posixPath = path.normalize(p);\n\tif (posixPath.startsWith(\"./\")) return posixPath.slice(2);\n\treturn posixPath;\n}\n\n/**\n * Ensures that the given path is relative\n */\nexport function ensureRelative(root: string, p: string): string {\n\t// If the path is already relative, simply return it\n\tif (!path.isAbsolute(p)) {\n\t\treturn path.normalize(p);\n\t}\n\n\t// Otherwise, construct a relative path from the root\n\treturn path.relative(root, p);\n}\n\n/**\n * Ensures that the given path is absolute\n */\nexport function ensureAbsolute(root: string, p: string): string {\n\t// If the path is already absolute, simply return it\n\tif (path.isAbsolute(p)) {\n\t\treturn path.normalize(p);\n\t}\n\n\t// Otherwise, construct an absolute path from the root\n\treturn path.join(root, p);\n}\n\n/**\n * Checks the id from the given importer with respect to the given externalOption provided to Rollup\n */\nexport function isExternal(id: string, importer: string, externalOption: ExternalOption | undefined | boolean): boolean {\n\tif (externalOption == null) return false;\n\tif (externalOption === true) return true;\n\tif (externalOption === false) return false;\n\tif (typeof externalOption === \"function\") return externalOption(id, importer, true) ?? false;\n\n\tconst ids = new Set<string>();\n\tconst matchers: RegExp[] = [];\n\tfor (const value of ensureArray(externalOption)) {\n\t\tif (value instanceof RegExp) {\n\t\t\tmatchers.push(value);\n\t\t} else {\n\t\t\tids.add(value);\n\t\t}\n\t}\n\n\treturn ids.has(id) || matchers.some(matcher => matcher.test(id));\n}\n","import type {TS} from \"../../type/ts.js\";\n\n/**\n * On TypeScript versions 4.5 and 4.6, nodenext is available as a Compiler Option, but selecting it\n * will throw.\n */\nexport function allowsNodeNextModuleResolution(typescript: typeof TS): boolean {\n\t// If 'Node16' module resolution is available, NodeNext is allowed to be selected as a ModuleResolutionKind.\n\t// This happened in v4.7\n\treturn typescript.ModuleResolutionKind.Node16 != null;\n}\n","import type {TS} from \"../../type/ts.js\";\nimport {ensureAbsolute, setExtension} from \"../path/path-util.js\";\nimport {TSBUILDINFO_EXTENSION} from \"../../constant/constant.js\";\nimport type {ParsedCommandLineResult} from \"../get-parsed-command-line/parsed-command-line-result.js\";\nimport path from \"crosspath\";\nimport {allowsNodeNextModuleResolution} from \"../module-resolution/module-resolution-util.js\";\n\nexport interface FinalizeParsedCommandLineOptions {\n\ttypescript: typeof TS;\n\tcwd: string;\n\tparsedCommandLineResult: ParsedCommandLineResult;\n}\n\nexport function finalizeParsedCommandLine({\n\tcwd,\n\ttypescript,\n\tparsedCommandLineResult: {originalCompilerOptions, parsedCommandLine, tsconfigPath}\n}: FinalizeParsedCommandLineOptions): TS.ParsedCommandLine {\n\t// Typescript should always be able to emit - otherwise we cannot transform source files.\n\t// That is, unless 'allowImportingTsExtensions' is true, in which case noEmit *must* be truthy.\n\tparsedCommandLine.options.noEmit = Boolean(parsedCommandLine.options.allowImportingTsExtensions);\n\n\t/**\n\t * If 'Classic' Module resolution is requested, replace that one with 'NodeNext' instead.\n\t * If anything else is requested, leave it as it is\n\t */\n\tif (parsedCommandLine.options.moduleResolution === typescript.ModuleResolutionKind.Classic) {\n\t\tparsedCommandLine.options.moduleResolution =\n\t\t\ttypescript.ModuleResolutionKind.NodeNext != null && allowsNodeNextModuleResolution(typescript)\n\t\t\t\t? typescript.ModuleResolutionKind.NodeNext\n\t\t\t\t: // eslint-disable-next-line deprecation/deprecation\n\t\t\t\t  typescript.ModuleResolutionKind.Node16 ?? typescript.ModuleResolutionKind.Node10 ?? typescript.ModuleResolutionKind.NodeJs;\n\t}\n\n\t// Declarations may be generated, but not as part of the Builder/Incremental program which is used during the transform, renderChunk, and generateBundle phases, so a nice optimization can be to instruct TypeScript not to generate them.\n\t// The raw CompilerOptions will be preserved and used in the last compilation phase to generate declarations if needed.\n\t// However, when 'composite' is true or when incremental compilation is active, declarations must be emitted for buildInfo to work, so under such circumstances this optimization must be skipped.\n\tconst canApplySkipDeclarationsOptimization =\n\t\t!Boolean(parsedCommandLine.options.incremental) &&\n\t\t!Boolean(parsedCommandLine.options.composite) &&\n\t\tparsedCommandLine.options.tsBuildInfoFile == null &&\n\t\t(parsedCommandLine.projectReferences == null || parsedCommandLine.projectReferences.length < 1);\n\tif (canApplySkipDeclarationsOptimization) {\n\t\tparsedCommandLine.options.declaration = false;\n\t\tparsedCommandLine.options.declarationMap = false;\n\t\tparsedCommandLine.options.declarationDir = undefined;\n\t}\n\n\t// Ensure that at tsBuildInfoFile exists if 'composite' or 'incremental' is true\n\tif (parsedCommandLine.options.incremental === true || parsedCommandLine.options.composite === true) {\n\t\tif (parsedCommandLine.options.tsBuildInfoFile != null) {\n\t\t\tparsedCommandLine.options.tsBuildInfoFile = ensureAbsolute(cwd, parsedCommandLine.options.tsBuildInfoFile);\n\t\t}\n\n\t\t// Otherwise, use the _actual_ outDir/outFile from the resolved tsconfig to build the path to the .tsbuildinfo file since TypeScript should be able to actually\n\t\t// resolve the file from the path pointed to by the user\n\t\telse {\n\t\t\tlet tsBuildInfoAbsolutePath: string;\n\t\t\t// Use outDir as the base directory\n\t\t\tif (originalCompilerOptions.outDir != null) {\n\t\t\t\ttsBuildInfoAbsolutePath = path.join(ensureAbsolute(cwd, originalCompilerOptions.outDir), `${path.parse(tsconfigPath).name}${TSBUILDINFO_EXTENSION}`);\n\t\t\t}\n\n\t\t\t// Otherwise, use outFile but replace the extension\n\t\t\telse if (originalCompilerOptions.outFile != null) {\n\t\t\t\ttsBuildInfoAbsolutePath = ensureAbsolute(cwd, setExtension(originalCompilerOptions.outFile, TSBUILDINFO_EXTENSION));\n\t\t\t}\n\n\t\t\t// Otherwise, use 'cwd' as the directory for the .tsbuildinfo file\n\t\t\telse {\n\t\t\t\ttsBuildInfoAbsolutePath = path.join(ensureAbsolute(cwd, `${path.parse(tsconfigPath).name}${TSBUILDINFO_EXTENSION}`));\n\t\t\t}\n\n\t\t\tparsedCommandLine.options.tsBuildInfoFile = tsBuildInfoAbsolutePath;\n\t\t}\n\t}\n\n\treturn parsedCommandLine;\n}\n","import type {EmitPathKind, TypescriptPluginOptions} from \"../../plugin/typescript-plugin-options.js\";\nimport type {TS} from \"../../type/ts.js\";\n\nexport function shouldDebugSourceFile(debug: TypescriptPluginOptions[\"debug\"], {fileName, text}: TS.SourceFile): boolean {\n\tif (typeof debug === \"boolean\") return debug;\n\treturn Boolean(\n\t\tdebug({\n\t\t\tkind: \"transformer\",\n\t\t\tfileName,\n\t\t\ttext\n\t\t})\n\t);\n}\n\nexport function shouldDebugMetrics(debug: TypescriptPluginOptions[\"debug\"], sourceFile?: TS.SourceFile): boolean {\n\tif (typeof debug === \"boolean\") return debug;\n\treturn Boolean(\n\t\tdebug({\n\t\t\tkind: \"metrics\",\n\t\t\t...(sourceFile == null ? {} : {fileName: sourceFile.fileName})\n\t\t})\n\t);\n}\n\nexport function shouldDebugEmit(debug: TypescriptPluginOptions[\"debug\"], fileName: string, text: string, outputPathKind: EmitPathKind): boolean {\n\tif (typeof debug === \"boolean\") return debug;\n\treturn Boolean(\n\t\tdebug({\n\t\t\tkind: \"emit\",\n\t\t\tfileKind: outputPathKind,\n\t\t\tfileName,\n\t\t\ttext\n\t\t})\n\t);\n}\n\nexport function shouldDebugTsconfig(debug: TypescriptPluginOptions[\"debug\"]): boolean {\n\tif (typeof debug === \"boolean\") return debug;\n\treturn Boolean(\n\t\tdebug({\n\t\t\tkind: \"tsconfig\"\n\t\t})\n\t);\n}\n\nexport function shouldDebugVirtualFiles(debug: TypescriptPluginOptions[\"debug\"] | undefined): boolean {\n\treturn debug != null && debug !== false;\n}\n","import color from \"ansi-colors\";\n\nexport function getFormattedDateTimePrefix(): string {\n\tconst currentDate = new Date();\n\tconst currentDateTime = `(${currentDate.getHours().toString().padStart(2, \"0\")}:${currentDate.getMinutes().toString().padStart(2, \"0\")}:${currentDate\n\t\t.getSeconds()\n\t\t.toString()\n\t\t.padStart(2, \"0\")})`;\n\treturn `${color.gray(currentDateTime)}   `;\n}\n","import {inspect as _inspect} from \"util\";\n\nexport function inspect<T>(item: T, depth = 4): void {\n\tconsole.log(_inspect(item, {colors: true, depth, maxArrayLength: 1000}));\n}\n","import color from \"ansi-colors\";\nimport {getFormattedDateTimePrefix} from \"./get-formatted-date-time-prefix.js\";\nimport type {TS} from \"../../type/ts.js\";\nimport {inspect} from \"../inspect/inspect.js\";\n\nexport function logTsconfig(config: TS.ParsedCommandLine): void {\n\tconsole.log(`${getFormattedDateTimePrefix()}${color.red(`tsconfig`)}`);\n\tinspect(config);\n}\n","import {ensureAbsolute} from \"../path/path-util.js\";\nimport {D_TS_EXTENSION, DEFAULT_TSCONFIG_FILE_NAME} from \"../../constant/constant.js\";\nimport type {ParsedCommandLineResult} from \"./parsed-command-line-result.js\";\nimport type {InputCompilerOptions, TsConfigResolver, TsConfigResolverWithFileName, TypescriptPluginOptions} from \"../../plugin/typescript-plugin-options.js\";\nimport type {TS} from \"../../type/ts.js\";\nimport {finalizeParsedCommandLine} from \"../finalize-parsed-command-line/finalize-parsed-command-line.js\";\nimport {shouldDebugTsconfig} from \"../is-debug/should-debug.js\";\nimport {logTsconfig} from \"../logging/log-tsconfig.js\";\nimport path from \"crosspath\";\n\nexport interface GetParsedCommandLineOptions {\n\tcwd: string;\n\ttsconfig?: TypescriptPluginOptions[\"tsconfig\"];\n\tforcedCompilerOptions?: TS.CompilerOptions;\n\tfileSystem: TS.System;\n\ttypescript: typeof TS;\n\tfilter: (file: string) => boolean;\n\tpluginOptions: TypescriptPluginOptions;\n}\n\n/**\n * Returns true if the given tsconfig is a ParsedCommandLine\n */\nexport function isParsedCommandLine(tsconfig?: GetParsedCommandLineOptions[\"tsconfig\"]): tsconfig is TS.ParsedCommandLine {\n\treturn tsconfig != null && typeof tsconfig !== \"string\" && typeof tsconfig !== \"function\" && \"options\" in tsconfig && !(\"hook\" in tsconfig);\n}\n\n/**\n * Returns true if the given tsconfig are raw, JSON-serializable CompilerOptions\n */\nexport function isRawCompilerOptions(tsconfig?: GetParsedCommandLineOptions[\"tsconfig\"]): tsconfig is Partial<InputCompilerOptions> {\n\treturn tsconfig != null && typeof tsconfig !== \"string\" && typeof tsconfig !== \"function\" && !(\"options\" in tsconfig) && !(\"hook\" in tsconfig);\n}\n\n/**\n * Returns true if the given tsconfig is in fact a function that receives resolved CompilerOptions that can be extended\n */\nexport function isTsConfigResolver(tsconfig?: GetParsedCommandLineOptions[\"tsconfig\"]): tsconfig is TsConfigResolver {\n\treturn tsconfig != null && typeof tsconfig === \"function\";\n}\n\n/**\n * Returns true if the given tsconfig is in fact an object that provides a filename for a tsconfig,\n * as well as a 'hook' function that receives resolved CompilerOptions that can be extended\n */\nexport function isTsConfigResolverWithFileName(tsconfig?: GetParsedCommandLineOptions[\"tsconfig\"]): tsconfig is TsConfigResolverWithFileName {\n\treturn tsconfig != null && typeof tsconfig !== \"string\" && typeof tsconfig !== \"function\" && !(\"options\" in tsconfig) && \"hook\" in tsconfig;\n}\n\n/**\n * Returns true if the given tsconfig are CompilerOptions\n */\nexport function isCompilerOptions(tsconfig?: GetParsedCommandLineOptions[\"tsconfig\"]): tsconfig is Partial<TS.CompilerOptions> {\n\treturn (\n\t\ttsconfig != null &&\n\t\ttypeof tsconfig !== \"string\" &&\n\t\ttypeof tsconfig !== \"function\" &&\n\t\t!(\"options\" in tsconfig) &&\n\t\t!(\"hook\" in tsconfig) &&\n\t\t((\"module\" in tsconfig && typeof tsconfig.module === \"number\") ||\n\t\t\t(\"target\" in tsconfig && typeof tsconfig.target === \"number\") ||\n\t\t\t(\"jsx\" in tsconfig && typeof tsconfig.jsx === \"number\") ||\n\t\t\t(\"moduleResolution\" in tsconfig && typeof tsconfig.moduleResolution === \"number\") ||\n\t\t\t(\"newLine\" in tsconfig && typeof tsconfig.newLine === \"number\"))\n\t);\n}\n\n/**\n * Gets a ParsedCommandLine based on the given options\n */\nexport function getParsedCommandLine(options: GetParsedCommandLineOptions): ParsedCommandLineResult {\n\tconst {cwd, tsconfig, fileSystem, forcedCompilerOptions = {}, typescript} = options;\n\tconst hasProvidedTsconfig = tsconfig != null;\n\tlet originalCompilerOptions: TS.CompilerOptions | undefined;\n\tlet parsedCommandLine: TS.ParsedCommandLine;\n\tlet tsconfigPath: string = ensureAbsolute(cwd, DEFAULT_TSCONFIG_FILE_NAME);\n\n\t// If the given tsconfig is already a ParsedCommandLine, use that one, but apply the forced CompilerOptions\n\tif (isParsedCommandLine(tsconfig)) {\n\t\toriginalCompilerOptions = tsconfig.options;\n\t\ttsconfig.options = {...tsconfig.options, ...forcedCompilerOptions};\n\t\tparsedCommandLine = tsconfig;\n\t}\n\n\t// If the user provided CompilerOptions directly, use those to build a ParsedCommandLine\n\telse if (isCompilerOptions(tsconfig)) {\n\t\toriginalCompilerOptions = typescript.parseJsonConfigFileContent({}, fileSystem, cwd, tsconfig).options;\n\t\tparsedCommandLine = typescript.parseJsonConfigFileContent({}, fileSystem, cwd, {\n\t\t\t...tsconfig,\n\t\t\t...forcedCompilerOptions\n\t\t});\n\t}\n\n\t// If the user provided JSON-serializable (\"raw\") CompilerOptions directly, use those to build a ParsedCommandLine\n\telse if (isRawCompilerOptions(tsconfig)) {\n\t\toriginalCompilerOptions = typescript.parseJsonConfigFileContent({compilerOptions: tsconfig}, fileSystem, cwd).options;\n\t\tparsedCommandLine = typescript.parseJsonConfigFileContent({compilerOptions: tsconfig}, fileSystem, cwd, forcedCompilerOptions);\n\t}\n\n\t// Otherwise, attempt to resolve it and parse it\n\telse {\n\t\ttsconfigPath = ensureAbsolute(\n\t\t\tcwd,\n\t\t\tisTsConfigResolverWithFileName(tsconfig) ? tsconfig.fileName : tsconfig != null && !isTsConfigResolver(tsconfig) ? tsconfig : DEFAULT_TSCONFIG_FILE_NAME\n\t\t);\n\n\t\t// If the file exists, read the tsconfig on that location\n\t\tlet tsconfigContent = fileSystem.readFile(tsconfigPath);\n\n\t\t// Otherwise, if the user hasn't provided any tsconfig at all, start from an empty one (and only use the forced options)\n\t\tif (tsconfigContent == null && !hasProvidedTsconfig) {\n\t\t\ttsconfigContent = \"\";\n\t\t}\n\n\t\t// Finally, if the user has provided a file that doesn't exist, throw\n\t\telse if (tsconfigContent == null) {\n\t\t\tthrow new ReferenceError(`The given tsconfig: '${tsconfigPath}' doesn't exist!`);\n\t\t}\n\n\t\tconst tsconfigJson = typescript.parseConfigFileTextToJson(tsconfigPath, tsconfigContent).config;\n\t\tconst basePath = path.native.dirname(tsconfigPath);\n\n\t\toriginalCompilerOptions = typescript.parseJsonConfigFileContent(tsconfigJson, fileSystem, basePath, {}, tsconfigPath).options;\n\t\tparsedCommandLine = typescript.parseJsonConfigFileContent(tsconfigJson, fileSystem, basePath, forcedCompilerOptions, tsconfigPath);\n\n\t\t// If an extension hook has been provided. Make sure to still apply the forced CompilerOptions\n\t\tif (isTsConfigResolver(tsconfig)) {\n\t\t\toriginalCompilerOptions = {...tsconfig(originalCompilerOptions)};\n\t\t\tparsedCommandLine.options = {...tsconfig(parsedCommandLine.options), ...forcedCompilerOptions};\n\t\t} else if (isTsConfigResolverWithFileName(tsconfig)) {\n\t\t\t// If an extension hook has been provided through the 'hook' property. Make sure to still apply the forced CompilerOptions\n\t\t\toriginalCompilerOptions = {...tsconfig.hook(originalCompilerOptions)};\n\t\t\tparsedCommandLine.options = {...tsconfig.hook(parsedCommandLine.options), ...forcedCompilerOptions};\n\t\t}\n\t}\n\n\t// Ensure that the parsed command line, as well as the original CompilerOptions has a base URL\n\tif (parsedCommandLine.options.baseUrl == null) {\n\t\tparsedCommandLine.options.baseUrl = \".\";\n\t}\n\n\tif (originalCompilerOptions.baseUrl == null) {\n\t\toriginalCompilerOptions.baseUrl = \".\";\n\t}\n\n\t// Remove all non-declaration files from the default file names since these will be handled separately by Rollup.\n\t// Also filter out all files that is matched by the include/exclude globs provided as plugin options\n\tparsedCommandLine.fileNames = parsedCommandLine.fileNames.filter(file => file.endsWith(D_TS_EXTENSION) && options.filter(file));\n\n\tconst parsedCommandLineResult: ParsedCommandLineResult = {\n\t\tparsedCommandLine,\n\t\toriginalCompilerOptions,\n\t\ttsconfigPath\n\t};\n\n\t// On some TypeScript versions such as 3.0.0, the 'composite' feature\n\t// require that a specific configFilePath exists on the CompilerOptions,\n\t// so make sure a path is always set.\n\tif (parsedCommandLine.options.configFilePath == null) {\n\t\tparsedCommandLine.options.configFilePath = tsconfigPath;\n\t}\n\n\t// Finalize the parsed command line\n\tfinalizeParsedCommandLine({...options, parsedCommandLineResult});\n\n\tif (shouldDebugTsconfig(options.pluginOptions.debug)) {\n\t\tlogTsconfig(parsedCommandLine);\n\t}\n\n\treturn parsedCommandLineResult;\n}\n","import {getAppropriateEcmaVersionForBrowserslist} from \"browserslist-generator\";\nimport type {TS} from \"../../type/ts.js\";\n\n/**\n * Gets the ScriptTarget to use from the given Browserslist\n */\nexport function getScriptTargetFromBrowserslist(browserslist: string[], typescript: typeof TS): TS.ScriptTarget {\n\tswitch (getAppropriateEcmaVersionForBrowserslist(browserslist)) {\n\t\tcase \"es3\":\n\t\t\treturn typescript.ScriptTarget.ES3;\n\t\tcase \"es5\":\n\t\t\treturn typescript.ScriptTarget.ES5;\n\t\tcase \"es2015\":\n\t\t\treturn typescript.ScriptTarget.ES2015;\n\t\t// Support older TypeScript versions that may not supported ES2016 as a ScriptTarget with nullish coalescing\n\t\tcase \"es2016\":\n\t\t\treturn typescript.ScriptTarget.ES2016 ?? typescript.ScriptTarget.ES2015;\n\t\t// Support older TypeScript versions that may not supported ES2017 as a ScriptTarget with nullish coalescing\n\t\tcase \"es2017\":\n\t\t\treturn typescript.ScriptTarget.ES2017 ?? typescript.ScriptTarget.ES2016 ?? typescript.ScriptTarget.ES2015;\n\t\t// Support older TypeScript versions that may not supported ES2018 as a ScriptTarget with nullish coalescing\n\t\tcase \"es2018\":\n\t\t\treturn typescript.ScriptTarget.ES2018 ?? typescript.ScriptTarget.ES2017 ?? typescript.ScriptTarget.ES2016 ?? typescript.ScriptTarget.ES2015;\n\t\t// Support older TypeScript versions that may not supported ES2019 as a ScriptTarget with nullish coalescing\n\t\tcase \"es2019\":\n\t\t\treturn typescript.ScriptTarget.ES2019 ?? typescript.ScriptTarget.ES2018 ?? typescript.ScriptTarget.ES2017 ?? typescript.ScriptTarget.ES2016 ?? typescript.ScriptTarget.ES2015;\n\t\t// Support older TypeScript versions that may not supported ES2020 as a ScriptTarget with nullish coalescing\n\t\tcase \"es2020\":\n\t\t\treturn (\n\t\t\t\ttypescript.ScriptTarget.ES2020 ??\n\t\t\t\ttypescript.ScriptTarget.ES2019 ??\n\t\t\t\ttypescript.ScriptTarget.ES2018 ??\n\t\t\t\ttypescript.ScriptTarget.ES2017 ??\n\t\t\t\ttypescript.ScriptTarget.ES2016 ??\n\t\t\t\ttypescript.ScriptTarget.ES2015\n\t\t\t);\n\t\t// Support older TypeScript versions that may not supported ES2021 as a ScriptTarget with nullish coalescing\n\t\tcase \"es2021\":\n\t\t\treturn (\n\t\t\t\ttypescript.ScriptTarget.ES2021 ??\n\t\t\t\ttypescript.ScriptTarget.ES2020 ??\n\t\t\t\ttypescript.ScriptTarget.ES2019 ??\n\t\t\t\ttypescript.ScriptTarget.ES2018 ??\n\t\t\t\ttypescript.ScriptTarget.ES2017 ??\n\t\t\t\ttypescript.ScriptTarget.ES2016 ??\n\t\t\t\ttypescript.ScriptTarget.ES2015\n\t\t\t);\n\t\tcase \"es2022\":\n\t\tcase \"es2023\":\n\t\t\treturn (\n\t\t\t\ttypescript.ScriptTarget.ES2022 ??\n\t\t\t\ttypescript.ScriptTarget.ES2021 ??\n\t\t\t\ttypescript.ScriptTarget.ES2020 ??\n\t\t\t\ttypescript.ScriptTarget.ES2019 ??\n\t\t\t\ttypescript.ScriptTarget.ES2018 ??\n\t\t\t\ttypescript.ScriptTarget.ES2017 ??\n\t\t\t\ttypescript.ScriptTarget.ES2016 ??\n\t\t\t\ttypescript.ScriptTarget.ES2015\n\t\t\t);\n\t}\n}\n\n/**\n * Gets the EcmaVersion that represents the given ScriptTarget\n */\nexport function getEcmaVersionForScriptTarget(scriptTarget: TS.ScriptTarget, typescript: typeof TS): ReturnType<typeof getAppropriateEcmaVersionForBrowserslist> {\n\tswitch (scriptTarget) {\n\t\tcase typescript.ScriptTarget.ES3:\n\t\t\treturn \"es3\";\n\t\tcase typescript.ScriptTarget.ES5:\n\t\t\treturn \"es5\";\n\t\tcase typescript.ScriptTarget.ES2015:\n\t\t\treturn \"es2015\";\n\t\tcase typescript.ScriptTarget.ES2016:\n\t\t\treturn \"es2016\";\n\t\tcase typescript.ScriptTarget.ES2017:\n\t\t\treturn \"es2017\";\n\t\tcase typescript.ScriptTarget.ES2018:\n\t\t\treturn \"es2018\";\n\t\tcase typescript.ScriptTarget.ES2019:\n\t\t\treturn \"es2019\";\n\t\tcase typescript.ScriptTarget.ES2020:\n\t\t\treturn \"es2020\";\n\t\tcase typescript.ScriptTarget.ES2021:\n\t\t\treturn \"es2021\";\n\t\tcase typescript.ScriptTarget.ES2022:\n\t\t\treturn \"es2022\";\n\t\tcase typescript.ScriptTarget.ESNext:\n\t\tcase typescript.ScriptTarget.Latest:\n\t\tcase typescript.ScriptTarget.JSON:\n\t\t\treturn \"es2023\";\n\t}\n}\n","import {createHmac, randomBytes} from \"crypto\";\n\nexport interface GenerateRandomHashOptions {\n\tkey: string;\n\tlength: number;\n}\n\n/**\n * Generates a random hash\n */\nexport function generateRandomHash({length = 8, key}: Partial<GenerateRandomHashOptions> = {}): string {\n\treturn key == null ? randomBytes(length / 2).toString(\"hex\") : createHmac(\"sha1\", key).digest(\"hex\").slice(0, length);\n}\n\nexport function generateRandomIntegerHash(options?: Partial<GenerateRandomHashOptions>, offset = 1000000): number {\n\tconst str = generateRandomHash(options);\n\n\tlet result = 0;\n\tfor (let i = 0; i < str.length; i++) {\n\t\tresult = result + str.charCodeAt(i);\n\t}\n\n\treturn result + offset;\n}\n\nexport interface RandomPathOptions {\n\textension: string;\n\tprefix: string;\n\tsuffix: string;\n}\nexport function generateRandomPath({extension = \"\", prefix = \"__#auto-generated-\", suffix = String(Math.floor(Math.random() * 100000))}: Partial<RandomPathOptions> = {}) {\n\treturn `${prefix}${suffix}${extension}`;\n}\n","import type {OutputOptions} from \"rollup\";\nimport {ensureRelative} from \"../path/path-util.js\";\nimport path from \"crosspath\";\nimport {generateRandomHash} from \"../hash/generate-random-hash.js\";\n\n/**\n * Gets the destination directory to use based on the given Rollup output options\n */\nexport function getOutDir(cwd: string, options?: Partial<OutputOptions>): string {\n\tlet outDir: string | undefined;\n\tif (options == null) {\n\t\t// Generate a random output directory. The idea is that this will never match any existing files on disk.\n\t\t// The reason being that Typescript may erroneously think that input files may be overwritten if 'allowJs' is true\n\t\t// and 'outDir' is '.'\n\t\toutDir = path.join(cwd, generateRandomHash());\n\t} else if (options.dir != null) {\n\t\toutDir = options.dir;\n\t} else if (options.file != null) {\n\t\toutDir = path.dirname(options.file);\n\t} else {\n\t\toutDir = cwd;\n\t}\n\n\t// Return the relative output directory. Default to \".\" if it should be equal to cwd\n\tconst relativeToCwd = ensureRelative(cwd, outDir);\n\treturn relativeToCwd === \"\" ? \".\" : relativeToCwd;\n}\n","import TSModule from \"typescript\";\nimport type {Transpiler, TranspilerOptions, TypescriptPluginOptions} from \"../../plugin/typescript-plugin-options.js\";\nimport {ensureAbsolute} from \"../path/path-util.js\";\nimport path from \"crosspath\";\nimport type {TS} from \"../../type/ts.js\";\n\n/**\n * Gets normalized PluginOptions based on the given ones\n */\nexport function getPluginOptions(options: Partial<TypescriptPluginOptions>): TypescriptPluginOptions {\n\t// Destructure the options and provide default\n\tconst {\n\t\tbrowserslist,\n\t\ttranspiler = \"typescript\",\n\t\ttypescript = TSModule,\n\t\tcwd = path.normalize(process.cwd()),\n\t\ttsconfig,\n\t\ttransformers,\n\t\tinclude = [],\n\t\texclude = [],\n\t\ttranspileOnly = false,\n\t\tdebug = false,\n\t\tfileSystem = typescript.sys,\n\t\tbabelConfig = {},\n\t\tswcConfig = {},\n\t\thook = {}\n\t} = options;\n\n\treturn {\n\t\ttypescript: typescript as typeof TS,\n\t\ttranspiler,\n\t\tbrowserslist,\n\t\tcwd: ensureAbsolute(process.cwd(), cwd),\n\t\texclude,\n\t\tinclude,\n\t\ttransformers,\n\t\ttsconfig,\n\t\tbabelConfig,\n\t\tswcConfig,\n\t\ttranspileOnly,\n\t\tdebug,\n\t\tfileSystem,\n\t\thook\n\t};\n}\n\nexport function getTranspilerOptions(transpiler: TypescriptPluginOptions[\"transpiler\"]): TranspilerOptions {\n\tif (typeof transpiler === \"string\") {\n\t\treturn {\n\t\t\ttypescriptSyntax: transpiler,\n\t\t\totherSyntax: transpiler\n\t\t};\n\t}\n\treturn transpiler;\n}\n\nexport function isUsingTranspiler(transpiler: Transpiler, options: TranspilerOptions): boolean {\n\treturn options.typescriptSyntax === transpiler || options.otherSyntax === transpiler;\n}\n","import type {GetForcedCompilerOptionsOptions} from \"./get-forced-compiler-options-options.js\";\nimport {getScriptTargetFromBrowserslist} from \"../get-script-target-from-browserslist/get-script-target-from-browserslist.js\";\nimport {getOutDir} from \"../get-out-dir/get-out-dir.js\";\nimport type {TS} from \"../../type/ts.js\";\nimport {getTranspilerOptions, isUsingTranspiler} from \"../plugin-options/get-plugin-options.js\";\n\n/**\n * Gets the ModuleKind to force\n */\nfunction getForcedModuleKindOption({pluginOptions}: GetForcedCompilerOptionsOptions): {module: TS.ModuleKind} {\n\t// Under these circumstances, TypeScript is a client of Rollup, and Rollup only understands ESM.\n\t// Rollup, not TypeScript, is the decider of which module system(s) to target based on the Rollup configuration.\n\t// Because of this, TypeScript will always be instructed to emit ESM.\n\treturn {module: pluginOptions.typescript.ModuleKind.ESNext};\n}\n\n/**\n * Gets the ScriptTarget to force\n */\nfunction getForcedScriptTargetOption({pluginOptions, browserslist}: GetForcedCompilerOptionsOptions): {target?: TS.ScriptTarget} {\n\t// If anything else than TypeScript should perform the rest of the transpilation after stripping TypeScript syntax, always target the latest ECMAScript version and let the other transpiler take care of the rest\n\tif (getTranspilerOptions(pluginOptions.transpiler).otherSyntax !== \"typescript\") {\n\t\treturn {target: pluginOptions.typescript.ScriptTarget.ESNext};\n\t}\n\n\t// If a Browserslist is provided, and if Typescript should perform the transpilation, decide the appropriate ECMAScript version based on the Browserslist.\n\telse if (browserslist != null && browserslist !== false) {\n\t\treturn {target: getScriptTargetFromBrowserslist(browserslist, pluginOptions.typescript)};\n\t}\n\n\t// Otherwise, don't force the 'target' option\n\treturn {};\n}\n\n/**\n * Decide whether or not to force import helpers\n */\nfunction getForcedImportHelpersOption({pluginOptions}: GetForcedCompilerOptionsOptions): {importHelpers?: boolean} {\n\t// If TypeScript is being used, which uses tslib, helpers should *always* be imported.\n\t// We don't want them to be duplicated multiple times within generated chunks.\n\t// When other transpilers are being used in some shape of form, they'll have similar enforced options\n\tif (isUsingTranspiler(\"typescript\", getTranspilerOptions(pluginOptions.transpiler))) {\n\t\treturn {importHelpers: true};\n\t}\n\n\t// Otherwise, don't force the 'importHelpers' option\n\treturn {};\n}\n\n/**\n * Retrieves the CompilerOptions that will be forced\n */\nexport function getForcedCompilerOptions(options: GetForcedCompilerOptionsOptions): Partial<TS.CompilerOptions> {\n\treturn {\n\t\t...getForcedModuleKindOption(options),\n\t\t...getForcedScriptTargetOption(options),\n\t\t...getForcedImportHelpersOption(options),\n\t\toutDir: getOutDir(options.pluginOptions.cwd),\n\t\t// Rollup, not Typescript, is the decider of where to put files\n\t\toutFile: undefined,\n\t\t// Always generate SourceMaps. Rollup will then decide if it wants to use them or not\n\t\tsourceMap: true,\n\t\t// Never use inline source maps. Let Rollup inline the returned SourceMap if it can and if sourcemaps should be emitted in the OutputOptions,\n\t\tinlineSourceMap: false,\n\t\t// Since we never use inline source maps, inline sources aren't supported\n\t\tinlineSources: false,\n\t\t// Typescript should always be able to emit - otherwise we cannot transform source files\n\t\tnoEmitOnError: false,\n\t\t// Typescript should always be able to emit other things than declarations - otherwise we cannot transform source files\n\t\temitDeclarationOnly: false,\n\t\t// Typescript should always be able to emit helpers - since we force 'importHelpers'\n\t\tnoEmitHelpers: false,\n\t\t// Typescript should always be able to resolve things - otherwise compilation will break\n\t\tnoResolve: false,\n\t\t// Typescript should never watch files. That is the job of Rollup\n\t\twatch: false,\n\t\t// Typescript should never watch files. That is the job of Rollup\n\t\tpreserveWatchOutput: false,\n\t\tskipLibCheck: true\n\t};\n}\n","import {D_TS_EXTENSION, D_TS_MAP_EXTENSION, SOURCE_MAP_EXTENSION} from \"../../constant/constant.js\";\nimport {getExtension} from \"../path/path-util.js\";\nimport type {TS} from \"../../type/ts.js\";\n\n/**\n * Returns true if the given OutputFile represents code\n */\nexport function isCodeOutputFile({name}: TS.OutputFile): boolean {\n\tconst extension = getExtension(name);\n\treturn [SOURCE_MAP_EXTENSION, D_TS_EXTENSION, D_TS_MAP_EXTENSION].every(otherExtension => extension !== otherExtension);\n}\n","import {D_TS_MAP_EXTENSION, SOURCE_MAP_EXTENSION} from \"../../constant/constant.js\";\nimport {getExtension} from \"../path/path-util.js\";\nimport type {TS} from \"../../type/ts.js\";\n\n/**\n * Returns true if the given OutputFile represents a SourceMap\n */\nexport function isMapOutputFile({name}: TS.OutputFile): boolean {\n\tconst extension = getExtension(name);\n\treturn [SOURCE_MAP_EXTENSION, D_TS_MAP_EXTENSION].some(otherExtension => extension === otherExtension);\n}\n","import type {SourceDescription} from \"rollup\";\nimport {SOURCE_MAP_COMMENT} from \"../../constant/constant.js\";\nimport {isCodeOutputFile} from \"../is-code-output-file/is-code-output-file.js\";\nimport {isMapOutputFile} from \"../is-map-output-file/is-map-output-file.js\";\nimport type {TS} from \"../../type/ts.js\";\n\n/**\n * Gets a SourceDescription from the given EmitOutput\n */\nexport function getSourceDescriptionFromEmitOutput(output: TS.EmitOutput): SourceDescription | undefined {\n\tconst code = output.outputFiles.find(isCodeOutputFile);\n\tif (code == null) return undefined;\n\n\tconst map = output.outputFiles.find(isMapOutputFile);\n\n\t// Remove the SourceMap comment from the code if it is given. Rollup is the decider of whether or not to emit SourceMaps and if they should be inlined\n\tconst inlinedSourcemapIndex = code.text.indexOf(`\\n${SOURCE_MAP_COMMENT}`);\n\n\tif (inlinedSourcemapIndex >= 0) {\n\t\tcode.text = code.text.slice(0, inlinedSourcemapIndex);\n\t}\n\n\treturn {\n\t\tcode: code.text,\n\t\t...(map == null ? {} : {map: map.text})\n\t};\n}\n","import type {RollupError, RollupWarning, PluginContext} from \"rollup\";\nimport type {ExtendedDiagnostic} from \"../../../diagnostic/extended-diagnostic.js\";\nimport type {TS} from \"../../../type/ts.js\";\nimport type {CompilerHost} from \"../../compiler-host/compiler-host.js\";\nimport type {TypescriptPluginOptions} from \"../../../plugin/typescript-plugin-options.js\";\n\nexport interface EmitDiagnosticsOptions {\n\thost: CompilerHost;\n\tcontext: PluginContext;\n\tpluginOptions: TypescriptPluginOptions;\n}\n\n/**\n * Gets diagnostics for the given fileName\n */\nexport function emitDiagnostics({host, context, pluginOptions}: EmitDiagnosticsOptions): void {\n\tconst typescript = host.getTypescript();\n\tlet diagnostics: readonly TS.Diagnostic[] | undefined = host.getDiagnostics();\n\n\t// If there is a hook for diagnostics, call it assign the result of calling it to the local variable 'diagnostics'\n\tif (pluginOptions.hook.diagnostics != null) {\n\t\tdiagnostics = pluginOptions.hook.diagnostics(diagnostics);\n\t}\n\n\t// Don't proceed if the hook returned null or undefined\n\tif (diagnostics == null) return;\n\n\tdiagnostics.forEach((diagnostic: ExtendedDiagnostic) => {\n\t\tconst message = typescript.flattenDiagnosticMessageText(diagnostic.messageText, \"\\n\");\n\t\tconst position = diagnostic.start == null || diagnostic.file == null ? undefined : diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start);\n\n\t\t// Color-format the diagnostics\n\t\tconst colorFormatted = typescript.formatDiagnosticsWithColorAndContext([diagnostic], host);\n\n\t\t// Provide a normalized error code\n\t\tconst code = `${diagnostic.scope == null ? \"TS\" : diagnostic.scope}${diagnostic.code}`;\n\n\t\t// Provide an empty Stack. There's nothing useful in seeing the internals of this Plugin in the reported error\n\t\tconst stack = \"\";\n\n\t\t// Isolate the frame\n\t\tconst newLine = host.getNewLine();\n\t\tlet frame = colorFormatted.slice(colorFormatted.indexOf(message) + message.length);\n\n\t\t// Remove the trailing newline from the frame if it has one\n\t\tif (frame.startsWith(newLine)) {\n\t\t\tframe = frame.slice(frame.indexOf(newLine) + newLine.length);\n\t\t}\n\n\t\tswitch (diagnostic.category) {\n\t\t\tcase typescript.DiagnosticCategory.Error:\n\t\t\t\tcontext.error({\n\t\t\t\t\tframe,\n\t\t\t\t\tcode,\n\t\t\t\t\tname: code,\n\t\t\t\t\tstack,\n\t\t\t\t\t...(diagnostic.length == null ? {} : {length: diagnostic.length}),\n\t\t\t\t\t...(diagnostic.file == null && position == null\n\t\t\t\t\t\t? {}\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tloc: {\n\t\t\t\t\t\t\t\t\t...(diagnostic.file == null ? {} : {file: diagnostic.file.fileName}),\n\t\t\t\t\t\t\t\t\t...(position == null ? {} : {line: position.line + 1}),\n\t\t\t\t\t\t\t\t\t...(position == null ? {} : {column: position.character + 1})\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t  }),\n\t\t\t\t\t...(diagnostic.file == null ? {} : {pos: diagnostic.file.pos}),\n\t\t\t\t\tmessage\n\t\t\t\t} as RollupError);\n\t\t\t\tbreak;\n\n\t\t\tcase typescript.DiagnosticCategory.Warning:\n\t\t\tcase typescript.DiagnosticCategory.Message:\n\t\t\tcase typescript.DiagnosticCategory.Suggestion:\n\t\t\t\tcontext.warn({\n\t\t\t\t\tframe,\n\t\t\t\t\tcode,\n\t\t\t\t\tname: code,\n\t\t\t\t\t...(diagnostic.length == null ? {} : {length: diagnostic.length}),\n\t\t\t\t\tloc: {\n\t\t\t\t\t\t...(diagnostic.file == null ? {} : {file: diagnostic.file.fileName}),\n\t\t\t\t\t\t...(position == null ? {} : {line: position.line + 1}),\n\t\t\t\t\t\t...(position == null ? {} : {column: position.character + 1})\n\t\t\t\t\t},\n\t\t\t\t\t...(diagnostic.file == null ? {} : {pos: diagnostic.file.pos}),\n\t\t\t\t\tmessage\n\t\t\t\t} as RollupWarning);\n\t\t\t\tbreak;\n\t\t}\n\t});\n}\n","import type {KnownExtension, AmbientExtension} from \"../../constant/constant.js\";\nimport {\n\tD_TS_EXTENSION,\n\tJS_EXTENSION,\n\tJSON_EXTENSION,\n\tJSX_EXTENSION,\n\tTS_EXTENSION,\n\tTSX_EXTENSION,\n\tD_CTS_EXTENSION,\n\tD_MTS_EXTENSION,\n\tMJS_EXTENSION,\n\tMJSX_EXTENSION,\n\tCJS_EXTENSION,\n\tCJSX_EXTENSION,\n\tMTS_EXTENSION,\n\tCTS_EXTENSION,\n\tMTSX_EXTENSION,\n\tCTSX_EXTENSION\n} from \"../../constant/constant.js\";\nimport type {TS} from \"../../type/ts.js\";\n\nexport type SupportedExtensions = Set<KnownExtension>;\nexport type SupportedAmbientExtensions = Set<AmbientExtension>;\n\n/**\n * Gets the extensions that are supported by Typescript, depending on whether or not to allow JS and JSON\n */\nexport function getSupportedExtensions(allowJs: boolean, allowJson: boolean, typescript: typeof TS): SupportedExtensions {\n\t// If the TypeScript version supports Node16 as a module resolution target,\n\t// it also supports some additional formats such as .mts, .cts, .cjs, .d.cts, .mjs, .d.mts, .cjsx, and .mjsx\n\tif (typescript.ModuleResolutionKind.Node16 != null) {\n\t\treturn new Set([\n\t\t\tTS_EXTENSION,\n\t\t\tMTS_EXTENSION,\n\t\t\tMTSX_EXTENSION,\n\t\t\tCTS_EXTENSION,\n\t\t\tCTSX_EXTENSION,\n\t\t\tTSX_EXTENSION,\n\t\t\tD_TS_EXTENSION,\n\t\t\tD_CTS_EXTENSION,\n\t\t\tD_MTS_EXTENSION,\n\t\t\t...(allowJs ? ([JS_EXTENSION, JSX_EXTENSION, MJS_EXTENSION, MJSX_EXTENSION, CJS_EXTENSION, CJSX_EXTENSION] as const) : []),\n\t\t\t...(allowJson ? ([JSON_EXTENSION] as const) : [])\n\t\t] as const);\n\t}\n\treturn new Set([\n\t\tTS_EXTENSION,\n\t\tTSX_EXTENSION,\n\t\tD_TS_EXTENSION,\n\t\t...(allowJs ? ([JS_EXTENSION, JSX_EXTENSION] as const) : []),\n\t\t...(allowJson ? ([JSON_EXTENSION] as const) : [])\n\t] as const);\n}\n","import type {OutputChunk, OutputAsset} from \"rollup\";\n\n/**\n * Returns true if the given asset is an OutputChunk\n */\nexport function isOutputChunk(thing: OutputChunk | OutputAsset): thing is OutputChunk {\n\treturn thing.type === \"chunk\";\n}\n\n/**\n * Returns true if the given asset is an OutputChunk\n */\nexport function isOutputAssetOrOutputChunk(thing: OutputChunk | OutputAsset): thing is OutputChunk | OutputAsset {\n\treturn thing.type === \"chunk\" || thing.type === \"asset\";\n}\n","import type {OutputBundle} from \"rollup\";\nimport {isOutputChunk} from \"../is-output-chunk/is-output-chunk.js\";\nimport path from \"crosspath\";\n\n/**\n * Takes all filenames that has been included in the given bundle\n */\nexport function takeBundledFilesNames(bundle: OutputBundle): Set<string> {\n\tconst bundledFilenames: Set<string> = new Set();\n\tObject.values(bundle).forEach(value => {\n\t\tif (isOutputChunk(value)) {\n\t\t\tObject.keys(value.modules).forEach(fileName => bundledFilenames.add(path.normalize(fileName)));\n\t\t} else if (\"fileName\" in value) {\n\t\t\tbundledFilenames.add(path.normalize(value.fileName));\n\t\t}\n\t});\n\treturn bundledFilenames;\n}\n","import type {GetBrowserslistOptions} from \"./get-browserslist-options.js\";\nimport {normalizeBrowserslist} from \"browserslist-generator\";\nimport {ensureAbsolute} from \"../path/path-util.js\";\nimport browserslistModule from \"browserslist\";\nimport type {BrowserslistPathConfig, BrowserslistQueryConfig} from \"../../plugin/typescript-plugin-options.js\";\nimport {ensureArray} from \"../ensure-array/ensure-array.js\";\nimport path from \"crosspath\";\n\n/**\n * Returns true if the given browserslist is raw input for a Browserslist\n */\nfunction isBrowserslistInput(browserslist: GetBrowserslistOptions[\"browserslist\"]): browserslist is string[] | string {\n\treturn typeof browserslist === \"string\" || Array.isArray(browserslist);\n}\n\n/**\n * Returns true if the given browserslist is an IBrowserslistQueryConfig\n */\nfunction isBrowserslistQueryConfig(browserslist: GetBrowserslistOptions[\"browserslist\"]): browserslist is BrowserslistQueryConfig {\n\treturn browserslist != null && !isBrowserslistInput(browserslist) && browserslist !== false && \"query\" in browserslist && browserslist.query != null;\n}\n\n/**\n * Returns true if the given browserslist is an IBrowserslistPathConfig\n */\nfunction isBrowserslistPathConfig(browserslist: GetBrowserslistOptions[\"browserslist\"]): browserslist is BrowserslistPathConfig {\n\treturn browserslist != null && !isBrowserslistInput(browserslist) && browserslist !== false && \"path\" in browserslist && browserslist.path != null;\n}\n\n/**\n * Gets a Browserslist based on the given options\n */\nexport function getBrowserslist({browserslist, cwd, fileSystem}: GetBrowserslistOptions): string[] | false | undefined {\n\t// If a Browserslist is provided directly from the options, use that\n\tif (browserslist != null) {\n\t\t// If the Browserslist is equal to false, it should never be used. Return undefined\n\t\tif (browserslist === false) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// If the Browserslist is some raw input queries, use them directly\n\t\telse if (isBrowserslistInput(browserslist)) {\n\t\t\treturn normalizeBrowserslist(ensureArray(browserslist));\n\t\t}\n\n\t\t// If the Browserslist is a config with raw query options, use them directly\n\t\telse if (isBrowserslistQueryConfig(browserslist)) {\n\t\t\treturn normalizeBrowserslist(ensureArray(browserslist.query));\n\t\t}\n\n\t\t// If the Browserslist is a config with a path, attempt to resolve the Browserslist from that property\n\t\telse if (isBrowserslistPathConfig(browserslist)) {\n\t\t\tconst browserslistPath = ensureAbsolute(cwd, browserslist.path);\n\t\t\tconst errorMessage = `The given path for a Browserslist: '${browserslistPath}' could not be resolved from '${cwd}'`;\n\n\t\t\tif (!fileSystem.fileExists(path.native.normalize(browserslistPath))) {\n\t\t\t\tthrow new ReferenceError(errorMessage);\n\t\t\t} else {\n\t\t\t\t// Read the config\n\t\t\t\tconst match = browserslistModule.readConfig(browserslistPath);\n\t\t\t\tif (match == null) {\n\t\t\t\t\tthrow new ReferenceError(errorMessage);\n\t\t\t\t} else {\n\t\t\t\t\treturn match.defaults;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// The config object could not be validated. Return undefined\n\t\telse {\n\t\t\treturn undefined;\n\t\t}\n\t}\n\n\t// Otherwise, try to locate a Browserslist\n\telse {\n\t\tconst config = browserslistModule.findConfig(cwd);\n\t\treturn config == null ? undefined : config.defaults;\n\t}\n}\n","import type {GetResolvedIdWithCachingOptions} from \"./get-resolved-id-with-caching-options.js\";\nimport type {ExtendedResolvedModule} from \"./extended-resolved-module.js\";\nimport {ensureAbsolute, isTslib, setExtension} from \"../../../util/path/path-util.js\";\nimport {D_TS_EXTENSION, JS_EXTENSION} from \"../../../constant/constant.js\";\nimport type {TS} from \"../../../type/ts.js\";\nimport path from \"crosspath\";\n\nexport interface ResolveCacheOptions {\n\tfileSystem: TS.System;\n}\n\n/**\n * A Cache over resolved modules\n */\nexport class ResolveCache {\n\t/**\n\t * A memory-persistent cache of resolved modules for files over time\n\t */\n\tprivate readonly RESOLVE_CACHE: Map<string, Map<string, ExtendedResolvedModule | null>> = new Map();\n\n\tconstructor(private readonly options: ResolveCacheOptions) {}\n\n\t/**\n\t * Gets the resolved path for an id from a parent\n\t */\n\tgetFromCache(id: string, parent: string): ExtendedResolvedModule | null | undefined {\n\t\tconst parentMap = this.RESOLVE_CACHE.get(parent);\n\t\tif (parentMap == null) return undefined;\n\t\treturn parentMap.get(id);\n\t}\n\n\t/**\n\t * Deletes the entry matching the given parent\n\t */\n\tdelete(parent: string): boolean {\n\t\treturn this.RESOLVE_CACHE.delete(parent);\n\t}\n\n\tclear(): void {\n\t\tthis.RESOLVE_CACHE.clear();\n\t}\n\n\t/**\n\t * Sets the given resolved module in the resolve cache\n\t */\n\tsetInCache(result: ExtendedResolvedModule | null, id: string, parent: string): ExtendedResolvedModule | null {\n\t\tlet parentMap = this.RESOLVE_CACHE.get(parent);\n\t\tif (parentMap == null) {\n\t\t\tparentMap = new Map();\n\t\t\tthis.RESOLVE_CACHE.set(parent, parentMap);\n\t\t}\n\t\tparentMap.set(id, result);\n\t\treturn result;\n\t}\n\n\t/**\n\t * Resolves a module name, including internal helpers such as tslib, even if they aren't included in the language service\n\t */\n\tresolveModuleName(\n\t\ttypescript: typeof TS,\n\t\tmoduleName: string,\n\t\tcontainingFile: string,\n\t\tcompilerOptions: TS.CompilerOptions,\n\t\thost: TS.ModuleResolutionHost,\n\t\tcache?: TS.ModuleResolutionCache,\n\t\tredirectedReference?: TS.ResolvedProjectReference\n\t): TS.ResolvedModuleWithFailedLookupLocations {\n\t\t// Default to using Typescript's resolver directly\n\t\treturn typescript.resolveModuleName(moduleName, containingFile, compilerOptions, host, cache, redirectedReference);\n\t}\n\n\t/**\n\t * Gets a cached module result for the given file from the given parent and returns it if it exists already.\n\t * If not, it will compute it, update the cache, and then return it\n\t */\n\tget(options: GetResolvedIdWithCachingOptions): ExtendedResolvedModule | null {\n\t\tconst {id, parent, moduleResolutionHost} = options;\n\t\tlet cacheResult = this.getFromCache(id, parent);\n\t\tconst typescript = moduleResolutionHost.getTypescript();\n\t\tconst compilerOptions = moduleResolutionHost.getCompilationSettings();\n\t\tconst cwd = moduleResolutionHost.getCwd();\n\t\tconst nonAmbientSupportedExtensions = moduleResolutionHost.getSupportedNonAmbientExtensions();\n\n\t\tif (cacheResult != null) {\n\t\t\treturn cacheResult;\n\t\t}\n\n\t\t// Resolve the file via Typescript, either through classic or node module resolution\n\t\tconst {resolvedModule} = this.resolveModuleName(typescript, id, path.normalize(parent), compilerOptions, moduleResolutionHost) as {\n\t\t\tresolvedModule: ExtendedResolvedModule | undefined;\n\t\t};\n\n\t\t// If it could not be resolved, the cache result will be equal to null\n\t\tif (resolvedModule == null) {\n\t\t\tcacheResult = null;\n\t\t}\n\n\t\t// Otherwise, proceed\n\t\telse {\n\t\t\t// Make sure that the path is absolute from the cwd\n\t\t\tresolvedModule.resolvedFileName = path.includeDriveLetter(path.normalize(ensureAbsolute(cwd, resolvedModule.resolvedFileName!)));\n\n\t\t\tif (resolvedModule.resolvedFileName.endsWith(D_TS_EXTENSION)) {\n\t\t\t\tresolvedModule.resolvedAmbientFileName = resolvedModule.resolvedFileName;\n\t\t\t\tresolvedModule.resolvedFileName = undefined;\n\t\t\t\tresolvedModule.extension = D_TS_EXTENSION as TS.Extension;\n\n\t\t\t\tif (isTslib(id)) {\n\t\t\t\t\t// Sometimes the drive letter is omitted by TypeScript on Windows here, which can lead to problems\n\t\t\t\t\tconst candidate = path.includeDriveLetter(path.normalize(setExtension(resolvedModule.resolvedAmbientFileName, `.es6${JS_EXTENSION}`)));\n\n\t\t\t\t\tif (this.options.fileSystem.fileExists(path.native.normalize(candidate))) {\n\t\t\t\t\t\tresolvedModule.resolvedFileName = candidate;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Don't go and attempt to resolve sources for external libraries\n\t\t\t\telse if (resolvedModule.isExternalLibraryImport == null || !resolvedModule.isExternalLibraryImport) {\n\t\t\t\t\t// Try to determine the resolved file name.\n\t\t\t\t\tfor (const extension of nonAmbientSupportedExtensions) {\n\t\t\t\t\t\tconst candidate = path.normalize(setExtension(resolvedModule.resolvedAmbientFileName, extension));\n\n\t\t\t\t\t\tif (this.options.fileSystem.fileExists(path.native.normalize(candidate))) {\n\t\t\t\t\t\t\tresolvedModule.resolvedFileName = candidate;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresolvedModule.resolvedAmbientFileName = undefined;\n\t\t\t\tconst candidate = path.normalize(setExtension(resolvedModule.resolvedFileName, D_TS_EXTENSION));\n\n\t\t\t\tif (this.options.fileSystem.fileExists(path.native.normalize(candidate))) {\n\t\t\t\t\tresolvedModule.resolvedAmbientFileName = candidate;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcacheResult = resolvedModule;\n\t\t}\n\n\t\t// Store the new result in the cache\n\t\treturn this.setInCache(cacheResult, id, parent);\n\t}\n}\n","export const REGENERATOR_SOURCE = `\\\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\"use strict\";\n\nvar Op = Object.prototype;\nvar hasOwn = Op.hasOwnProperty;\nvar undefined; // More compressible than void 0.\nvar $Symbol = typeof Symbol === \"function\" ? Symbol : {};\nvar iteratorSymbol = $Symbol.iterator || \"@@iterator\";\nvar asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\nvar toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\nfunction wrap(innerFn, outerFn, self, tryLocsList) {\n  // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n  var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n  var generator = Object.create(protoGenerator.prototype);\n  var context = new Context(tryLocsList || []);\n\n  // The ._invoke method unifies the implementations of the .next,\n  // .throw, and .return methods.\n  generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n  return generator;\n}\n\n// Try/catch helper to minimize deoptimizations. Returns a completion\n// record like context.tryEntries[i].completion. This interface could\n// have been (and was previously) designed to take a closure to be\n// invoked without arguments, but in all the cases we care about we\n// already have an existing method we want to call, so there's no need\n// to create a new function object. We can even get away with assuming\n// the method takes exactly one argument, since that happens to be true\n// in every case, so we don't have to touch the arguments object. The\n// only additional allocation required is the completion record, which\n// has a stable shape and so hopefully should be cheap to allocate.\nfunction tryCatch(fn, obj, arg) {\n  try {\n    return { type: \"normal\", arg: fn.call(obj, arg) };\n  } catch (err) {\n    return { type: \"throw\", arg: err };\n  }\n}\n\nvar GenStateSuspendedStart = \"suspendedStart\";\nvar GenStateSuspendedYield = \"suspendedYield\";\nvar GenStateExecuting = \"executing\";\nvar GenStateCompleted = \"completed\";\n\n// Returning this object from the innerFn has the same effect as\n// breaking out of the dispatch switch statement.\nvar ContinueSentinel = {};\n\n// Dummy constructor functions that we use as the .constructor and\n// .constructor.prototype properties for functions that return Generator\n// objects. For full spec compliance, you may wish to configure your\n// minifier not to mangle the names of these two functions.\nfunction Generator() {}\nfunction GeneratorFunction() {}\nfunction GeneratorFunctionPrototype() {}\n\n// This is a polyfill for %IteratorPrototype% for environments that\n// don't natively support it.\nvar IteratorPrototype = {};\nIteratorPrototype[iteratorSymbol] = function () {\n  return this;\n};\n\nvar getProto = Object.getPrototypeOf;\nvar NativeIteratorPrototype = getProto && getProto(getProto(values([])));\nif (NativeIteratorPrototype &&\n  NativeIteratorPrototype !== Op &&\n  hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n  // This environment has a native %IteratorPrototype%; use it instead\n  // of the polyfill.\n  IteratorPrototype = NativeIteratorPrototype;\n}\n\nvar Gp = GeneratorFunctionPrototype.prototype =\n  Generator.prototype = Object.create(IteratorPrototype);\nGeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\nGeneratorFunctionPrototype.constructor = GeneratorFunction;\nGeneratorFunctionPrototype[toStringTagSymbol] =\n  GeneratorFunction.displayName = \"GeneratorFunction\";\n\n// Helper for defining the .next, .throw, and .return methods of the\n// Iterator interface in terms of a single ._invoke method.\nfunction defineIteratorMethods(prototype) {\n  [\"next\", \"throw\", \"return\"].forEach(function(method) {\n    prototype[method] = function(arg) {\n      return this._invoke(method, arg);\n    };\n  });\n}\n\nfunction isGeneratorFunction (genFun) {\n  var ctor = typeof genFun === \"function\" && genFun.constructor;\n  return ctor\n    ? ctor === GeneratorFunction ||\n    // For the native GeneratorFunction constructor, the best we can\n    // do is to check its .name property.\n    (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n    : false;\n};\n\nfunction mark (genFun) {\n  if (Object.setPrototypeOf) {\n    Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n  } else {\n    genFun.__proto__ = GeneratorFunctionPrototype;\n    if (!(toStringTagSymbol in genFun)) {\n      genFun[toStringTagSymbol] = \"GeneratorFunction\";\n    }\n  }\n  genFun.prototype = Object.create(Gp);\n  return genFun;\n};\n\n// Within the body of any async function, \\`await x\\` is transformed to\n// \\`yield regeneratorRuntime.awrap(x)\\`, so that the runtime can test\n// \\`hasOwn.call(value, \"__await\")\\` to determine if the yielded value is\n// meant to be awaited.\nfunction awrap (arg) {\n  return { __await: arg };\n};\n\nfunction AsyncIterator(generator, PromiseImpl) {\n  function invoke(method, arg, resolve, reject) {\n    var record = tryCatch(generator[method], generator, arg);\n    if (record.type === \"throw\") {\n      reject(record.arg);\n    } else {\n      var result = record.arg;\n      var value = result.value;\n      if (value &&\n        typeof value === \"object\" &&\n        hasOwn.call(value, \"__await\")) {\n        return PromiseImpl.resolve(value.__await).then(function(value) {\n          invoke(\"next\", value, resolve, reject);\n        }, function(err) {\n          invoke(\"throw\", err, resolve, reject);\n        });\n      }\n\n      return PromiseImpl.resolve(value).then(function(unwrapped) {\n        // When a yielded Promise is resolved, its final value becomes\n        // the .value of the Promise<{value,done}> result for the\n        // current iteration.\n        result.value = unwrapped;\n        resolve(result);\n      }, function(error) {\n        // If a rejected Promise was yielded, throw the rejection back\n        // into the async generator function so it can be handled there.\n        return invoke(\"throw\", error, resolve, reject);\n      });\n    }\n  }\n\n  var previousPromise;\n\n  function enqueue(method, arg) {\n    function callInvokeWithMethodAndArg() {\n      return new PromiseImpl(function(resolve, reject) {\n        invoke(method, arg, resolve, reject);\n      });\n    }\n\n    return previousPromise =\n      // If enqueue has been called before, then we want to wait until\n      // all previous Promises have been resolved before calling invoke,\n      // so that results are always delivered in the correct order. If\n      // enqueue has not been called before, then it is important to\n      // call invoke immediately, without waiting on a callback to fire,\n      // so that the async generator function has the opportunity to do\n      // any necessary setup in a predictable way. This predictability\n      // is why the Promise constructor synchronously invokes its\n      // executor callback, and why async functions synchronously\n      // execute code before the first await. Since we implement simple\n      // async functions in terms of async generators, it is especially\n      // important to get this right, even though it requires care.\n      previousPromise ? previousPromise.then(\n        callInvokeWithMethodAndArg,\n        // Avoid propagating failures to Promises returned by later\n        // invocations of the iterator.\n        callInvokeWithMethodAndArg\n      ) : callInvokeWithMethodAndArg();\n  }\n\n  // Define the unified helper method that is used to implement .next,\n  // .throw, and .return (see defineIteratorMethods).\n  this._invoke = enqueue;\n}\n\ndefineIteratorMethods(AsyncIterator.prototype);\nAsyncIterator.prototype[asyncIteratorSymbol] = function () {\n  return this;\n};\n\n// Note that simple async functions are implemented on top of\n// AsyncIterator objects; they just return a Promise for the value of\n// the final result produced by the iterator.\n function async (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n  if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n  var iter = new AsyncIterator(\n    wrap(innerFn, outerFn, self, tryLocsList),\n    PromiseImpl\n  );\n\n  return isGeneratorFunction(outerFn)\n    ? iter // If outerFn is a generator, return the full iterator.\n    : iter.next().then(function(result) {\n      return result.done ? result.value : iter.next();\n    });\n};\n\nfunction makeInvokeMethod(innerFn, self, context) {\n  var state = GenStateSuspendedStart;\n\n  return function invoke(method, arg) {\n    if (state === GenStateExecuting) {\n      throw new Error(\"Generator is already running\");\n    }\n\n    if (state === GenStateCompleted) {\n      if (method === \"throw\") {\n        throw arg;\n      }\n\n      // Be forgiving, per 25.3.3.3.3 of the spec:\n      // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n      return doneResult();\n    }\n\n    context.method = method;\n    context.arg = arg;\n\n    while (true) {\n      var delegate = context.delegate;\n      if (delegate) {\n        var delegateResult = maybeInvokeDelegate(delegate, context);\n        if (delegateResult) {\n          if (delegateResult === ContinueSentinel) continue;\n          return delegateResult;\n        }\n      }\n\n      if (context.method === \"next\") {\n        // Setting context._sent for legacy support of Babel's\n        // function.sent implementation.\n        context.sent = context._sent = context.arg;\n\n      } else if (context.method === \"throw\") {\n        if (state === GenStateSuspendedStart) {\n          state = GenStateCompleted;\n          throw context.arg;\n        }\n\n        context.dispatchException(context.arg);\n\n      } else if (context.method === \"return\") {\n        context.abrupt(\"return\", context.arg);\n      }\n\n      state = GenStateExecuting;\n\n      var record = tryCatch(innerFn, self, context);\n      if (record.type === \"normal\") {\n        // If an exception is thrown from innerFn, we leave state ===\n        // GenStateExecuting and loop back for another invocation.\n        state = context.done\n          ? GenStateCompleted\n          : GenStateSuspendedYield;\n\n        if (record.arg === ContinueSentinel) {\n          continue;\n        }\n\n        return {\n          value: record.arg,\n          done: context.done\n        };\n\n      } else if (record.type === \"throw\") {\n        state = GenStateCompleted;\n        // Dispatch the exception by looping back around to the\n        // context.dispatchException(context.arg) call above.\n        context.method = \"throw\";\n        context.arg = record.arg;\n      }\n    }\n  };\n}\n\n// Call delegate.iterator[context.method](context.arg) and handle the\n// result, either by returning a { value, done } result from the\n// delegate iterator, or by modifying context.method and context.arg,\n// setting context.delegate to null, and returning the ContinueSentinel.\nfunction maybeInvokeDelegate(delegate, context) {\n  var method = delegate.iterator[context.method];\n  if (method === undefined) {\n    // A .throw or .return when the delegate iterator has no .throw\n    // method always terminates the yield* loop.\n    context.delegate = null;\n\n    if (context.method === \"throw\") {\n      // Note: [\"return\"] must be used for ES3 parsing compatibility.\n      if (delegate.iterator[\"return\"]) {\n        // If the delegate iterator has a return method, give it a\n        // chance to clean up.\n        context.method = \"return\";\n        context.arg = undefined;\n        maybeInvokeDelegate(delegate, context);\n\n        if (context.method === \"throw\") {\n          // If maybeInvokeDelegate(context) changed context.method from\n          // \"return\" to \"throw\", let that override the TypeError below.\n          return ContinueSentinel;\n        }\n      }\n\n      context.method = \"throw\";\n      context.arg = new TypeError(\n        \"The iterator does not provide a 'throw' method\");\n    }\n\n    return ContinueSentinel;\n  }\n\n  var record = tryCatch(method, delegate.iterator, context.arg);\n\n  if (record.type === \"throw\") {\n    context.method = \"throw\";\n    context.arg = record.arg;\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  var info = record.arg;\n\n  if (! info) {\n    context.method = \"throw\";\n    context.arg = new TypeError(\"iterator result is not an object\");\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  if (info.done) {\n    // Assign the result of the finished delegate to the temporary\n    // variable specified by delegate.resultName (see delegateYield).\n    context[delegate.resultName] = info.value;\n\n    // Resume execution at the desired location (see delegateYield).\n    context.next = delegate.nextLoc;\n\n    // If context.method was \"throw\" but the delegate handled the\n    // exception, let the outer generator proceed normally. If\n    // context.method was \"next\", forget context.arg since it has been\n    // \"consumed\" by the delegate iterator. If context.method was\n    // \"return\", allow the original .return call to continue in the\n    // outer generator.\n    if (context.method !== \"return\") {\n      context.method = \"next\";\n      context.arg = undefined;\n    }\n\n  } else {\n    // Re-yield the result returned by the delegate method.\n    return info;\n  }\n\n  // The delegate iterator is finished, so forget it and continue with\n  // the outer generator.\n  context.delegate = null;\n  return ContinueSentinel;\n}\n\n// Define Generator.prototype.{next,throw,return} in terms of the\n// unified ._invoke helper method.\ndefineIteratorMethods(Gp);\n\nGp[toStringTagSymbol] = \"Generator\";\n\n// A Generator should always return itself as the iterator object when the\n// @@iterator function is called on it. Some browsers' implementations of the\n// iterator prototype chain incorrectly implement this, causing the Generator\n// object to not be returned from this call. This ensures that doesn't happen.\n// See https://github.com/facebook/regenerator/issues/274 for more details.\nGp[iteratorSymbol] = function() {\n  return this;\n};\n\nGp.toString = function() {\n  return \"[object Generator]\";\n};\n\nfunction pushTryEntry(locs) {\n  var entry = { tryLoc: locs[0] };\n\n  if (1 in locs) {\n    entry.catchLoc = locs[1];\n  }\n\n  if (2 in locs) {\n    entry.finallyLoc = locs[2];\n    entry.afterLoc = locs[3];\n  }\n\n  this.tryEntries.push(entry);\n}\n\nfunction resetTryEntry(entry) {\n  var record = entry.completion || {};\n  record.type = \"normal\";\n  delete record.arg;\n  entry.completion = record;\n}\n\nfunction Context(tryLocsList) {\n  // The root entry object (effectively a try statement without a catch\n  // or a finally block) gives us a place to store values thrown from\n  // locations where there is no enclosing try statement.\n  this.tryEntries = [{ tryLoc: \"root\" }];\n  tryLocsList.forEach(pushTryEntry, this);\n  this.reset(true);\n}\n\nfunction keys (object) {\n  var keys = [];\n  for (var key in object) {\n    keys.push(key);\n  }\n  keys.reverse();\n\n  // Rather than returning an object with a next method, we keep\n  // things simple and return the next function itself.\n  return function next() {\n    while (keys.length) {\n      var key = keys.pop();\n      if (key in object) {\n        next.value = key;\n        next.done = false;\n        return next;\n      }\n    }\n\n    // To avoid creating an additional object, we just hang the .value\n    // and .done properties off the next function object itself. This\n    // also ensures that the minifier will not anonymize the function.\n    next.done = true;\n    return next;\n  };\n};\n\nfunction values(iterable) {\n  if (iterable) {\n    var iteratorMethod = iterable[iteratorSymbol];\n    if (iteratorMethod) {\n      return iteratorMethod.call(iterable);\n    }\n\n    if (typeof iterable.next === \"function\") {\n      return iterable;\n    }\n\n    if (!isNaN(iterable.length)) {\n      var i = -1, next = function next() {\n        while (++i < iterable.length) {\n          if (hasOwn.call(iterable, i)) {\n            next.value = iterable[i];\n            next.done = false;\n            return next;\n          }\n        }\n\n        next.value = undefined;\n        next.done = true;\n\n        return next;\n      };\n\n      return next.next = next;\n    }\n  }\n\n  // Return an iterator with no values.\n  return { next: doneResult };\n}\n\nfunction doneResult() {\n  return { value: undefined, done: true };\n}\n\nContext.prototype = {\n  constructor: Context,\n\n  reset: function(skipTempReset) {\n    this.prev = 0;\n    this.next = 0;\n    // Resetting context._sent for legacy support of Babel's\n    // function.sent implementation.\n    this.sent = this._sent = undefined;\n    this.done = false;\n    this.delegate = null;\n\n    this.method = \"next\";\n    this.arg = undefined;\n\n    this.tryEntries.forEach(resetTryEntry);\n\n    if (!skipTempReset) {\n      for (var name in this) {\n        // Not sure about the optimal order of these conditions:\n        if (name.charAt(0) === \"t\" &&\n          hasOwn.call(this, name) &&\n          !isNaN(+name.slice(1))) {\n          this[name] = undefined;\n        }\n      }\n    }\n  },\n\n  stop: function() {\n    this.done = true;\n\n    var rootEntry = this.tryEntries[0];\n    var rootRecord = rootEntry.completion;\n    if (rootRecord.type === \"throw\") {\n      throw rootRecord.arg;\n    }\n\n    return this.rval;\n  },\n\n  dispatchException: function(exception) {\n    if (this.done) {\n      throw exception;\n    }\n\n    var context = this;\n    function handle(loc, caught) {\n      record.type = \"throw\";\n      record.arg = exception;\n      context.next = loc;\n\n      if (caught) {\n        // If the dispatched exception was caught by a catch block,\n        // then let that catch block handle the exception normally.\n        context.method = \"next\";\n        context.arg = undefined;\n      }\n\n      return !! caught;\n    }\n\n    for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n      var entry = this.tryEntries[i];\n      var record = entry.completion;\n\n      if (entry.tryLoc === \"root\") {\n        // Exception thrown outside of any try block that could handle\n        // it, so set the completion value of the entire function to\n        // throw the exception.\n        return handle(\"end\");\n      }\n\n      if (entry.tryLoc <= this.prev) {\n        var hasCatch = hasOwn.call(entry, \"catchLoc\");\n        var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n        if (hasCatch && hasFinally) {\n          if (this.prev < entry.catchLoc) {\n            return handle(entry.catchLoc, true);\n          } else if (this.prev < entry.finallyLoc) {\n            return handle(entry.finallyLoc);\n          }\n\n        } else if (hasCatch) {\n          if (this.prev < entry.catchLoc) {\n            return handle(entry.catchLoc, true);\n          }\n\n        } else if (hasFinally) {\n          if (this.prev < entry.finallyLoc) {\n            return handle(entry.finallyLoc);\n          }\n\n        } else {\n          throw new Error(\"try statement without catch or finally\");\n        }\n      }\n    }\n  },\n\n  abrupt: function(type, arg) {\n    for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n      var entry = this.tryEntries[i];\n      if (entry.tryLoc <= this.prev &&\n        hasOwn.call(entry, \"finallyLoc\") &&\n        this.prev < entry.finallyLoc) {\n        var finallyEntry = entry;\n        break;\n      }\n    }\n\n    if (finallyEntry &&\n      (type === \"break\" ||\n        type === \"continue\") &&\n      finallyEntry.tryLoc <= arg &&\n      arg <= finallyEntry.finallyLoc) {\n      // Ignore the finally entry if control is not jumping to a\n      // location outside the try/catch block.\n      finallyEntry = null;\n    }\n\n    var record = finallyEntry ? finallyEntry.completion : {};\n    record.type = type;\n    record.arg = arg;\n\n    if (finallyEntry) {\n      this.method = \"next\";\n      this.next = finallyEntry.finallyLoc;\n      return ContinueSentinel;\n    }\n\n    return this.complete(record);\n  },\n\n  complete: function(record, afterLoc) {\n    if (record.type === \"throw\") {\n      throw record.arg;\n    }\n\n    if (record.type === \"break\" ||\n      record.type === \"continue\") {\n      this.next = record.arg;\n    } else if (record.type === \"return\") {\n      this.rval = this.arg = record.arg;\n      this.method = \"return\";\n      this.next = \"end\";\n    } else if (record.type === \"normal\" && afterLoc) {\n      this.next = afterLoc;\n    }\n\n    return ContinueSentinel;\n  },\n\n  finish: function(finallyLoc) {\n    for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n      var entry = this.tryEntries[i];\n      if (entry.finallyLoc === finallyLoc) {\n        this.complete(entry.completion, entry.afterLoc);\n        resetTryEntry(entry);\n        return ContinueSentinel;\n      }\n    }\n  },\n\n  \"catch\": function(tryLoc) {\n    for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n      var entry = this.tryEntries[i];\n      if (entry.tryLoc === tryLoc) {\n        var record = entry.completion;\n        if (record.type === \"throw\") {\n          var thrown = record.arg;\n          resetTryEntry(entry);\n        }\n        return thrown;\n      }\n    }\n\n    // The context.catch method must only be called with a location\n    // argument that corresponds to a known catch block.\n    throw new Error(\"illegal catch attempt\");\n  },\n\n  delegateYield: function(iterable, resultName, nextLoc) {\n    this.delegate = {\n      iterator: values(iterable),\n      resultName: resultName,\n      nextLoc: nextLoc\n    };\n\n    if (this.method === \"next\") {\n      // Deliberately forget the last sent value so that we don't\n      // accidentally pass it on to the delegate.\n      this.arg = undefined;\n    }\n\n    return ContinueSentinel;\n  }\n};\n\n// Export a default namespace that plays well with Rollup\nexport default {\n  wrap,\n  isGeneratorFunction,\n  AsyncIterator,\n  mark,\n  awrap,\n  async,\n  keys,\n  values\n};\n`;\n","export function isDefined<T>(item: T | undefined | null): item is T {\n\treturn item != null;\n}\n","import type {CustomTransformersFunction} from \"./custom-transformer-options.js\";\nimport type {TS} from \"../../type/ts.js\";\nimport {isDefined} from \"../is-defined/is-defined.js\";\n\n/**\n * Merges all of the given transformers\n */\nexport function mergeTransformers(...transformers: (TS.CustomTransformers | CustomTransformersFunction | undefined)[]): CustomTransformersFunction {\n\treturn options => {\n\t\tconst instantiatedTransformers = transformers\n\t\t\t.filter(isDefined)\n\t\t\t.map((transformer: TS.CustomTransformers | CustomTransformersFunction) => (typeof transformer === \"function\" ? transformer(options) : transformer));\n\n\t\tconst beforeTransformers = ([] as (TS.TransformerFactory<TS.SourceFile> | TS.CustomTransformerFactory)[]).concat.apply(\n\t\t\t[],\n\t\t\tinstantiatedTransformers.map(transformer => transformer.before!).filter(beforeTransformer => beforeTransformer != null)\n\t\t);\n\n\t\tconst afterTransformers = ([] as (TS.TransformerFactory<TS.SourceFile> | TS.CustomTransformerFactory)[]).concat.apply(\n\t\t\t[],\n\t\t\tinstantiatedTransformers.map(transformer => transformer.after!).filter(afterTransformer => afterTransformer != null)\n\t\t);\n\n\t\tconst afterDeclarationsTransformers = ([] as (TS.TransformerFactory<TS.Bundle | TS.SourceFile> | TS.CustomTransformerFactory)[]).concat.apply(\n\t\t\t[],\n\t\t\tinstantiatedTransformers.map(transformer => transformer.afterDeclarations!).filter(afterDeclarationTransformer => afterDeclarationTransformer != null)\n\t\t);\n\n\t\treturn {\n\t\t\tbefore: beforeTransformers.length === 0 ? undefined : beforeTransformers,\n\t\t\tafter: afterTransformers.length === 0 ? undefined : afterTransformers,\n\t\t\tafterDeclarations: afterDeclarationsTransformers.length === 0 ? undefined : afterDeclarationsTransformers\n\t\t};\n\t};\n}\n","import {browsersWithSupportForEcmaVersion} from \"browserslist-generator\";\nimport {getEcmaVersionForScriptTarget} from \"../get-script-target-from-browserslist/get-script-target-from-browserslist.js\";\nimport type {TS} from \"../../type/ts.js\";\n\n/**\n * If a browserslist is given, that one will be used. Otherwise, if the given CompilerOptions has a 'target' property, a Browserslist\n * will be computed based on the targeted Ecma version\n */\nexport function takeBrowserslistOrComputeBasedOnCompilerOptions(\n\tbrowserslist: string[] | undefined | false,\n\tcompilerOptions: TS.CompilerOptions,\n\ttypescript: typeof TS\n): string[] | undefined {\n\tif (browserslist != null && browserslist !== false) {\n\t\t// If a browserslist is given, use it\n\t\treturn browserslist;\n\t} else if (browserslist === false) {\n\t\treturn undefined;\n\t} else {\n\t\t// Otherwise, generate a browserslist based on the tsconfig target if given\n\t\treturn compilerOptions.target == null ? undefined : browsersWithSupportForEcmaVersion(getEcmaVersionForScriptTarget(compilerOptions.target, typescript));\n\t}\n}\n","import type {OutputOptions} from \"rollup\";\nimport {ensureRelative} from \"../path/path-util.js\";\nimport {getOutDir} from \"../get-out-dir/get-out-dir.js\";\nimport type {TS} from \"../../type/ts.js\";\nimport type {AmbientExtension} from \"../../constant/constant.js\";\nimport {\n\tCJSX_EXTENSION,\n\tCJS_EXTENSION,\n\tCTSX_EXTENSION,\n\tCTS_EXTENSION,\n\tD_CTS_EXTENSION,\n\tD_CTS_MAP_EXTENSION,\n\tD_MTS_EXTENSION,\n\tD_MTS_MAP_EXTENSION,\n\tD_TS_EXTENSION,\n\tD_TS_MAP_EXTENSION,\n\tMJSX_EXTENSION,\n\tMJS_EXTENSION,\n\tMTSX_EXTENSION,\n\tMTS_EXTENSION\n} from \"../../constant/constant.js\";\nimport path from \"crosspath\";\nimport type {NormalizedChunk} from \"../chunk/normalize-chunk.js\";\nimport type {SupportedExtensions} from \"../get-supported-extensions/get-supported-extensions.js\";\n\n/**\n * Gets the destination directory to use for declarations based on the given CompilerOptions and Rollup output options\n */\nexport function getDeclarationOutDir(cwd: string, compilerOptions: TS.CompilerOptions, options?: Partial<OutputOptions>): string {\n\tconst outDir = compilerOptions.declarationDir != null ? ensureRelative(cwd, compilerOptions.declarationDir) : getOutDir(cwd, options);\n\n\t// Default to \".\" if it should be equal to cwd\n\treturn outDir === \"\" ? \".\" : outDir;\n}\n\nfunction selectDeclarationExtensionBasedOnFilename(filename: string, supportedExtensions: SupportedExtensions, sourcemap = false): AmbientExtension {\n\tswitch (path.extname(filename)) {\n\t\tcase CTS_EXTENSION:\n\t\tcase CTSX_EXTENSION:\n\t\tcase CJS_EXTENSION:\n\t\tcase CJSX_EXTENSION:\n\t\t\tif (supportedExtensions.has(D_CTS_EXTENSION)) {\n\t\t\t\treturn sourcemap ? D_CTS_MAP_EXTENSION : D_CTS_EXTENSION;\n\t\t\t} else {\n\t\t\t\treturn sourcemap ? D_TS_MAP_EXTENSION : D_TS_EXTENSION;\n\t\t\t}\n\n\t\tcase MTS_EXTENSION:\n\t\tcase MTSX_EXTENSION:\n\t\tcase MJS_EXTENSION:\n\t\tcase MJSX_EXTENSION:\n\t\t\tif (supportedExtensions.has(D_MTS_EXTENSION)) {\n\t\t\t\treturn sourcemap ? D_MTS_MAP_EXTENSION : D_MTS_EXTENSION;\n\t\t\t} else {\n\t\t\t\treturn sourcemap ? D_TS_MAP_EXTENSION : D_TS_EXTENSION;\n\t\t\t}\n\n\t\tdefault:\n\t\t\treturn sourcemap ? D_TS_MAP_EXTENSION : D_TS_EXTENSION;\n\t}\n}\n\n/**\n * Gets the destination directory to use for declarations based on the given CompilerOptions and Rollup output options\n */\nexport function getDeclarationOutExtension(outputOptions: Partial<OutputOptions>, supportedExtensions: SupportedExtensions, chunk?: NormalizedChunk, sourcemap = false): string {\n\tif (outputOptions.file != null) {\n\t\treturn selectDeclarationExtensionBasedOnFilename(outputOptions.file, supportedExtensions, sourcemap);\n\t} else if (chunk != null) {\n\t\treturn selectDeclarationExtensionBasedOnFilename(chunk.paths.fileName, supportedExtensions, sourcemap);\n\t} else {\n\t\tif (typeof outputOptions.entryFileNames === \"string\") {\n\t\t\treturn selectDeclarationExtensionBasedOnFilename(outputOptions.entryFileNames, supportedExtensions, sourcemap);\n\t\t} else if (typeof outputOptions.chunkFileNames === \"string\") {\n\t\t\treturn selectDeclarationExtensionBasedOnFilename(outputOptions.chunkFileNames, supportedExtensions, sourcemap);\n\t\t} else {\n\t\t\treturn selectDeclarationExtensionBasedOnFilename(`index.js`, supportedExtensions, sourcemap);\n\t\t}\n\t}\n}\n","import type {TS} from \"../../../../type/ts.js\";\nimport type {SourceFileBundlerVisitorOptions} from \"../transformers/source-file-bundler/source-file-bundler-visitor-options.js\";\nimport type {DeclarationTransformer} from \"../declaration-bundler-options.js\";\n\nexport interface ApplyTransformersOptions {\n\ttransformers: DeclarationTransformer[];\n\tvisitorOptions: SourceFileBundlerVisitorOptions;\n}\n\nexport function applyTransformers({transformers, visitorOptions}: ApplyTransformersOptions): TS.SourceFile {\n\tfor (const transformer of transformers) {\n\t\tvisitorOptions.sourceFile = transformer(visitorOptions);\n\t}\n\treturn visitorOptions.sourceFile;\n}\n","import type {NormalizedChunk, PreNormalizedChunk} from \"../../../../util/chunk/normalize-chunk.js\";\n\n/**\n * Gets the chunk filename that matches the given filename. It may be the same.\n */\nexport function getChunkFilename(module: string, chunks: NormalizedChunk[]): string | undefined {\n\treturn getChunkForModule(module, chunks)?.paths.absolute;\n}\n\nexport function getChunkForModule(module: string, chunks: NormalizedChunk[]): NormalizedChunk | undefined;\nexport function getChunkForModule(module: string, chunks: PreNormalizedChunk[]): PreNormalizedChunk | undefined;\nexport function getChunkForModule(module: string, chunks: PreNormalizedChunk[] | NormalizedChunk[]): NormalizedChunk | PreNormalizedChunk | undefined {\n\tfor (const chunk of chunks) {\n\t\tif (\"has\" in chunk.modules && chunk.modules.has(module)) {\n\t\t\treturn chunk;\n\t\t} else if (\"includes\" in chunk.modules && chunk.modules.includes(module)) {\n\t\t\treturn chunk;\n\t\t}\n\t}\n\n\treturn undefined;\n}\n","export function formatLibReferenceDirective(libName: string): string {\n\treturn `/// <reference lib=\"${libName}\" />`;\n}\n","export function formatTypeReferenceDirective(fileName: string): string {\n\treturn `/// <reference types=\"${fileName}\" />`;\n}\n","import type {ExtendedResolvedModule} from \"../service/cache/resolve-cache/extended-resolved-module.js\";\n\nexport function pickResolvedModule(resolvedModule: ExtendedResolvedModule, preferAmbient: true): string;\nexport function pickResolvedModule(resolvedModule: ExtendedResolvedModule, preferAmbient: false): string | undefined;\nexport function pickResolvedModule(resolvedModule: ExtendedResolvedModule, preferAmbient: boolean): string | undefined;\nexport function pickResolvedModule(resolvedModule: ExtendedResolvedModule, preferAmbient: boolean): string | undefined {\n\tif (preferAmbient) {\n\t\treturn resolvedModule.resolvedAmbientFileName ?? resolvedModule.resolvedFileName!;\n\t} else {\n\t\treturn resolvedModule.resolvedFileName;\n\t}\n}\n","import type {SafeNode} from \"../../../../type/safe-node.js\";\nimport type {TS} from \"../../../../type/ts.js\";\n\nexport function getOriginalNode<T extends SafeNode>(node: T, typescript: typeof TS): T {\n\tif (node._original != null) {\n\t\treturn getOriginalNode(node._original as T, typescript);\n\t}\n\n\treturn (typescript.getOriginalNode(node) as T) ?? node;\n}\n","/* eslint-disable deprecation/deprecation */\nimport type {SafeNode} from \"../../../../type/safe-node.js\";\nimport type {TS} from \"../../../../type/ts.js\";\nimport {getOriginalNode} from \"./get-original-node.js\";\n\nexport function markAsInternalAlias<T extends TS.Node>(node: T, typescript: typeof TS): void {\n\tgetOriginalNode(node as SafeNode, typescript)._internalAlias = true;\n}\n\nexport function isNodeInternalAlias<T extends TS.Node>(node: T, typescript: typeof TS): boolean {\n\treturn getOriginalNode(node as SafeNode, typescript)._internalAlias === true;\n}\n\nexport function getModifierLikes(node: TS.Node): readonly TS.ModifierLike[] | undefined {\n\tconst modifiers = \"modifiers\" in node && Array.isArray(node.modifiers) ? node.modifiers : [];\n\tif (\"decorators\" in node && Array.isArray(node.decorators)) {\n\t\treturn [...node.decorators, ...modifiers];\n\t} else {\n\t\treturn modifiers;\n\t}\n}\n\nexport function canHaveModifiers(node: TS.Node, typescript: typeof TS): node is TS.HasModifiers {\n\tif (\"canHaveModifiers\" in typescript) {\n\t\treturn typescript.canHaveModifiers(node);\n\t} else {\n\t\treturn true;\n\t}\n}\nexport function getModifiers(node: TS.HasModifiers, typescript: typeof TS): readonly TS.Modifier[] | undefined {\n\tif (\"getModifiers\" in typescript) {\n\t\treturn typescript.getModifiers(node);\n\t} else {\n\t\treturn node.modifiers?.filter(modifier => !(\"expression\" in modifier)) as readonly TS.Modifier[] | undefined;\n\t}\n}\n\nexport function canHaveDecorators(node: TS.Node, typescript: typeof TS): node is TS.HasDecorators {\n\tif (\"canHaveDecorators\" in typescript) {\n\t\treturn typescript.canHaveDecorators(node);\n\t} else {\n\t\treturn true;\n\t}\n}\nexport function getDecorators(node: TS.HasDecorators, typescript: typeof TS): readonly TS.Decorator[] | undefined {\n\tif (\"getDecorators\" in typescript) {\n\t\treturn typescript.getDecorators(node);\n\t} else {\n\t\tconst legacyDecorators = \"decorators\" in node && Array.isArray(node.decorators) ? node.decorators : undefined;\n\t\tconst decoratorModifierLikes = node.modifiers?.filter(modifier => \"expression\" in modifier) as readonly TS.Decorator[] | undefined;\n\t\treturn [...(legacyDecorators ?? []), ...(decoratorModifierLikes ?? [])];\n\t}\n}\n","import type {TS} from \"../../../../type/ts.js\";\nimport {canHaveModifiers, getModifiers} from \"./node-util.js\";\n\nexport type Modifiers = TS.ModifiersArray | TS.Modifier[] | readonly TS.Modifier[] | readonly TS.ModifierLike[];\n\n/**\n * Returns true if the given node has an Export keyword in front of it\n */\nexport function hasExportModifier(node: TS.Node, typescript: typeof TS): boolean {\n\treturn canHaveModifiers(node, typescript) ? getModifiers(node, typescript)?.some(modifier => isExportModifier(modifier, typescript)) ?? false : false;\n}\n\n/**\n * Returns true if the given node has an Declare keyword in front of it\n */\nexport function hasDeclareModifier(node: TS.Node, typescript: typeof TS): boolean {\n\treturn canHaveModifiers(node, typescript) ? getModifiers(node, typescript)?.some(modifier => isDeclareModifier(modifier, typescript)) ?? false : false;\n}\n\n/**\n * Returns true if the given modifier has an Export keyword in front of it\n */\nexport function isExportModifier(node: TS.ModifierLike, typescript: typeof TS): boolean {\n\treturn node.kind === typescript.SyntaxKind.ExportKeyword;\n}\n\n/**\n * Returns true if the given modifier has an Default keyword in front of it\n */\nexport function isDefaultModifier(node: TS.ModifierLike, typescript: typeof TS): boolean {\n\treturn node.kind === typescript.SyntaxKind.DefaultKeyword;\n}\n\n/**\n * Returns true if the given modifier has an declare keyword in front of it\n */\nexport function isDeclareModifier(node: TS.ModifierLike, typescript: typeof TS): boolean {\n\treturn node.kind === typescript.SyntaxKind.DeclareKeyword;\n}\n\n/**\n * Removes an export modifier from the given ModifiersArray\n */\nexport function removeExportModifier<T extends Modifiers>(modifiers: T | undefined, typescript: typeof TS): T | undefined {\n\tif (modifiers == null) return modifiers;\n\treturn modifiers.filter(modifier => !isExportModifier(modifier, typescript) && !isDefaultModifier(modifier, typescript)) as T;\n}\n\n/**\n * Removes a declare modifier from the given ModifiersArray\n */\nexport function removeDeclareModifier<T extends Modifiers>(modifiers: T | undefined, typescript: typeof TS): T | undefined {\n\tif (modifiers == null) return modifiers;\n\treturn modifiers.filter(modifier => !isDeclareModifier(modifier, typescript)) as T;\n}\n\n/**\n * Removes an export modifier from the given ModifiersArray\n */\nexport function ensureHasDeclareModifier(modifiers: undefined, factory: TS.NodeFactory, typescript: typeof TS): readonly TS.Modifier[];\nexport function ensureHasDeclareModifier<T extends Modifiers>(modifiers: T, factory: TS.NodeFactory, typescript: typeof TS): T;\nexport function ensureHasDeclareModifier<T extends Modifiers>(modifiers: T | undefined, factory: TS.NodeFactory, typescript: typeof TS): readonly TS.Modifier[] | T;\nexport function ensureHasDeclareModifier<T extends Modifiers>(modifiers: T | undefined, factory: TS.NodeFactory, typescript: typeof TS): readonly TS.Modifier[] | T {\n\tif (modifiers == null) return [factory.createModifier(typescript.SyntaxKind.DeclareKeyword)];\n\tif (modifiers.some(m => m.kind === typescript.SyntaxKind.DeclareKeyword)) return modifiers;\n\treturn [factory.createModifier(typescript.SyntaxKind.DeclareKeyword), ...modifiers] as T;\n}\n\n/**\n * Returns true if the given modifiers contain the keywords 'export' and 'default'\n */\nexport function hasDefaultExportModifier(modifiers: Modifiers | undefined, typescript: typeof TS): boolean {\n\tif (modifiers == null) return false;\n\treturn modifiers.some(modifier => isExportModifier(modifier, typescript)) && modifiers.some(modifier => isDefaultModifier(modifier, typescript));\n}\n","import type {TS} from \"../../../../type/ts.js\";\nimport {hasDefaultExportModifier} from \"./modifier-util.js\";\nimport type {ExportedSymbol} from \"../transformers/track-exports-transformer/track-exports-transformer-visitor-options.js\";\nimport type {ImportedSymbol} from \"../transformers/track-imports-transformer/track-imports-transformer-visitor-options.js\";\n\nexport interface CreateExportSpecifierFromNameAndModifiersOptions {\n\tisTypeOnly?: boolean;\n\tname: string;\n\tmodifiers: TS.ModifiersArray | readonly TS.Modifier[] | readonly TS.ModifierLike[] | undefined;\n\ttypescript: typeof TS;\n\tfactory: TS.NodeFactory;\n}\n\nexport interface CreateExportSpecifierFromNameAndModifiersResult {\n\texportSpecifier: TS.ExportSpecifier;\n\texportedSymbol: ExportedSymbol;\n}\n\nexport function getImportedSymbolFromImportSpecifier(specifier: TS.ImportSpecifier, moduleSpecifier: string): ImportedSymbol {\n\treturn {\n\t\tmoduleSpecifier,\n\t\tisDefaultImport: specifier.name.text === \"default\",\n\t\tpropertyName: specifier.propertyName ?? specifier.name,\n\t\tname: specifier.name\n\t};\n}\n\nexport function getImportedSymbolFromImportClauseName(clauseName: TS.Identifier, moduleSpecifier: string): ImportedSymbol {\n\treturn {\n\t\tmoduleSpecifier,\n\t\tisDefaultImport: true,\n\t\tpropertyName: clauseName,\n\t\tname: clauseName\n\t};\n}\n\nexport function getImportedSymbolFromNamespaceImport(namespaceImport: TS.NamespaceImport, moduleSpecifier: string): ImportedSymbol {\n\treturn {\n\t\tmoduleSpecifier,\n\t\tisNamespaceImport: true,\n\t\tpropertyName: namespaceImport.name,\n\t\tname: namespaceImport.name\n\t};\n}\n\nexport function getExportedSymbolFromExportSpecifier(specifier: TS.ExportSpecifier, parentIsTypeOnly?: boolean | undefined, moduleSpecifier?: string | undefined): ExportedSymbol {\n\treturn {\n\t\tmoduleSpecifier,\n\t\tisTypeOnly: specifier.isTypeOnly || Boolean(parentIsTypeOnly),\n\t\tisDefaultExport: specifier.name.text === \"default\",\n\t\tpropertyName: specifier.propertyName ?? specifier.name,\n\t\tname: specifier.name\n\t};\n}\n\nexport function createExportSpecifierFromNameAndModifiers({\n\tname,\n\tmodifiers,\n\ttypescript,\n\tfactory,\n\tisTypeOnly = false\n}: CreateExportSpecifierFromNameAndModifiersOptions): CreateExportSpecifierFromNameAndModifiersResult {\n\tif (hasDefaultExportModifier(modifiers, typescript)) {\n\t\tconst propertyNameText = name;\n\t\tconst nameText = \"default\";\n\t\tconst exportSpecifier = factory.createExportSpecifier(\n\t\t\tisTypeOnly,\n\t\t\tpropertyNameText === nameText ? undefined : factory.createIdentifier(propertyNameText),\n\t\t\tfactory.createIdentifier(nameText)\n\t\t);\n\n\t\treturn {\n\t\t\texportSpecifier,\n\t\t\texportedSymbol: getExportedSymbolFromExportSpecifier(exportSpecifier)\n\t\t};\n\t} else {\n\t\tconst propertyNameText = name;\n\t\tconst nameText = propertyNameText;\n\t\tconst exportSpecifier = factory.createExportSpecifier(\n\t\t\tisTypeOnly,\n\t\t\tpropertyNameText === nameText ? undefined : factory.createIdentifier(propertyNameText),\n\t\t\tfactory.createIdentifier(nameText)\n\t\t);\n\n\t\treturn {\n\t\t\texportSpecifier,\n\t\t\texportedSymbol: getExportedSymbolFromExportSpecifier(exportSpecifier)\n\t\t};\n\t}\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TrackImportsTransformerVisitorOptions} from \"../track-imports-transformer-visitor-options.js\";\nimport {\n\tgetImportedSymbolFromImportClauseName,\n\tgetImportedSymbolFromImportSpecifier,\n\tgetImportedSymbolFromNamespaceImport\n} from \"../../../util/create-export-specifier-from-name-and-modifiers.js\";\n\nexport function visitImportDeclaration({node, typescript, markAsImported}: TrackImportsTransformerVisitorOptions<TS.ImportDeclaration>): void {\n\tif (!typescript.isStringLiteralLike(node.moduleSpecifier)) return;\n\n\tif (node.importClause != null) {\n\t\tif (node.importClause.name != null) {\n\t\t\tmarkAsImported(getImportedSymbolFromImportClauseName(node.importClause.name, node.moduleSpecifier.text));\n\t\t}\n\n\t\tif (node.importClause.namedBindings != null) {\n\t\t\tif (typescript.isNamespaceImport(node.importClause.namedBindings)) {\n\t\t\t\tmarkAsImported(getImportedSymbolFromNamespaceImport(node.importClause.namedBindings, node.moduleSpecifier.text));\n\t\t\t} else {\n\t\t\t\t// Otherwise, check all ExportSpecifiers\n\t\t\t\tfor (const importSpecifier of node.importClause.namedBindings.elements) {\n\t\t\t\t\tmarkAsImported(getImportedSymbolFromImportSpecifier(importSpecifier, node.moduleSpecifier.text));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tmarkAsImported({\n\t\t\tmoduleSpecifier: node.moduleSpecifier.text,\n\t\t\tisClauseLessImport: true\n\t\t});\n\t}\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TrackImportsTransformerVisitorOptions} from \"../track-imports-transformer-visitor-options.js\";\n\nexport function visitImportTypeNode({node, typescript, markAsImported, continuation}: TrackImportsTransformerVisitorOptions<TS.ImportTypeNode>): void {\n\tif (!typescript.isLiteralTypeNode(node.argument) || !typescript.isStringLiteralLike(node.argument.literal)) return;\n\tconst moduleSpecifier = node.argument.literal.text;\n\n\tconst name =\n\t\tnode.qualifier == null ? undefined : typescript.isIdentifier(node.qualifier) ? node.qualifier : typescript.isIdentifier(node.qualifier.left) ? node.qualifier.left : undefined;\n\tif (name != null) {\n\t\tmarkAsImported({\n\t\t\tname,\n\t\t\tmoduleSpecifier,\n\t\t\tisDefaultImport: false,\n\t\t\tpropertyName: name\n\t\t});\n\t} else {\n\t\tmarkAsImported({\n\t\t\tmoduleSpecifier,\n\t\t\tisClauseLessImport: true\n\t\t});\n\t}\n\n\tif (node.typeArguments != null) {\n\t\tfor (const typeArgument of node.typeArguments) {\n\t\t\tcontinuation(typeArgument);\n\t\t}\n\t}\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TrackImportsTransformerVisitorOptions} from \"../track-imports-transformer-visitor-options.js\";\n\nexport function visitModuleDeclaration({node, ...options}: TrackImportsTransformerVisitorOptions<TS.ModuleDeclaration>): void {\n\tif (node.body == null) return;\n\treturn options.childContinuation(node.body);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TrackImportsTransformerVisitorOptions} from \"../track-imports-transformer-visitor-options.js\";\nimport {visitImportDeclaration} from \"./visit-import-declaration.js\";\nimport {visitImportTypeNode} from \"./visit-import-type-node.js\";\nimport {visitModuleDeclaration} from \"./visit-module-declaration.js\";\n\nexport function visitNode({node, ...options}: TrackImportsTransformerVisitorOptions<TS.Node>): void {\n\tif (options.typescript.isImportDeclaration(node)) {\n\t\treturn visitImportDeclaration({...options, node});\n\t} else if (options.typescript.isImportTypeNode(node)) {\n\t\treturn visitImportTypeNode({...options, node});\n\t} else if (options.typescript.isModuleDeclaration(node)) {\n\t\treturn visitModuleDeclaration({...options, node});\n\t} else if (options.shouldDeepTraverse) {\n\t\treturn options.childContinuation(node);\n\t}\n}\n","import type {TS} from \"../../../../../type/ts.js\";\nimport {visitNode} from \"./visitor/visit-node.js\";\nimport type {ImportedSymbol, ImportedSymbolSet, TrackImportsOptions, TrackImportsTransformerVisitorOptions} from \"./track-imports-transformer-visitor-options.js\";\n\nexport function trackImportsTransformer(options: TrackImportsOptions): ImportedSymbolSet {\n\tconst {typescript} = options;\n\tconst importedSymbolSet: ImportedSymbolSet = new Set();\n\n\t// Prepare some VisitorOptions\n\tconst visitorOptions: Omit<TrackImportsTransformerVisitorOptions<TS.Node>, \"node\"> = {\n\t\t...options,\n\t\t// Optimization: We only need to traverse nested nodes inside of the SourceFile if it contains at least one ImportTypeNode (or at least what appears to be one)\n\t\tshouldDeepTraverse: options.sourceFile.text.includes(\"import(\"),\n\n\t\tmarkAsImported(symbol: ImportedSymbol): void {\n\t\t\timportedSymbolSet.add(symbol);\n\t\t},\n\n\t\tchildContinuation: <U extends TS.Node>(node: U): void =>\n\t\t\ttypescript.forEachChild(node, nextNode => {\n\t\t\t\tvisitNode({\n\t\t\t\t\t...visitorOptions,\n\t\t\t\t\tnode: nextNode\n\t\t\t\t});\n\t\t\t}),\n\n\t\tcontinuation: <U extends TS.Node>(node: U): void => {\n\t\t\tvisitNode({\n\t\t\t\t...visitorOptions,\n\t\t\t\tnode\n\t\t\t});\n\t\t}\n\t};\n\n\ttypescript.forEachChild(options.sourceFile, nextNode => {\n\t\tvisitorOptions.continuation(nextNode);\n\t});\n\treturn importedSymbolSet;\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TrackExportsTransformerVisitorOptions} from \"../track-exports-transformer-visitor-options.js\";\nimport {createExportSpecifierFromNameAndModifiers} from \"../../../util/create-export-specifier-from-name-and-modifiers.js\";\nimport {hasExportModifier} from \"../../../util/modifier-util.js\";\nimport {getModifiers} from \"../../../util/node-util.js\";\n\nexport function visitClassDeclaration({node, typescript, markAsExported, ...options}: TrackExportsTransformerVisitorOptions<TS.ClassDeclaration>): void {\n\t// If the node has no export modifier, leave it as it is\n\tif (!hasExportModifier(node, typescript) || node.name == null) return;\n\n\tconst {exportedSymbol} = createExportSpecifierFromNameAndModifiers({\n\t\t...options,\n\t\tname: node.name.text,\n\t\tmodifiers: getModifiers(node, typescript),\n\t\ttypescript\n\t});\n\n\t// Also mark the node as exported so that we can track it later\n\tmarkAsExported(exportedSymbol);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TrackExportsTransformerVisitorOptions} from \"../track-exports-transformer-visitor-options.js\";\nimport {createExportSpecifierFromNameAndModifiers} from \"../../../util/create-export-specifier-from-name-and-modifiers.js\";\nimport {hasExportModifier} from \"../../../util/modifier-util.js\";\nimport {getModifiers} from \"../../../util/node-util.js\";\n\nexport function visitClassExpression({node, typescript, markAsExported, ...options}: TrackExportsTransformerVisitorOptions<TS.ClassExpression>): void {\n\t// If the node has no export modifier, leave it as it is\n\tif (!hasExportModifier(node, typescript) || node.name == null) return;\n\n\tconst {exportedSymbol} = createExportSpecifierFromNameAndModifiers({\n\t\t...options,\n\t\tname: node.name.text,\n\t\tmodifiers: getModifiers(node, typescript),\n\t\ttypescript\n\t});\n\n\t// Also mark the node as exported so that we can track it later\n\tmarkAsExported(exportedSymbol);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TrackExportsTransformerVisitorOptions} from \"../track-exports-transformer-visitor-options.js\";\nimport {createExportSpecifierFromNameAndModifiers} from \"../../../util/create-export-specifier-from-name-and-modifiers.js\";\nimport {hasExportModifier} from \"../../../util/modifier-util.js\";\n\nexport function visitFunctionDeclaration({node, typescript, markAsExported, ...options}: TrackExportsTransformerVisitorOptions<TS.FunctionDeclaration>): void {\n\t// If the node has no export modifier, leave it as it is\n\tif (!hasExportModifier(node, typescript) || node.name == null) return;\n\n\tconst {exportedSymbol} = createExportSpecifierFromNameAndModifiers({\n\t\t...options,\n\t\tname: node.name.text,\n\t\tmodifiers: node.modifiers,\n\t\ttypescript\n\t});\n\n\t// Also mark the node as exported so that we can track it later\n\tmarkAsExported(exportedSymbol);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TrackExportsTransformerVisitorOptions} from \"../track-exports-transformer-visitor-options.js\";\nimport {createExportSpecifierFromNameAndModifiers} from \"../../../util/create-export-specifier-from-name-and-modifiers.js\";\nimport {hasExportModifier} from \"../../../util/modifier-util.js\";\n\nexport function visitFunctionExpression({node, typescript, markAsExported, ...options}: TrackExportsTransformerVisitorOptions<TS.FunctionExpression>): void {\n\t// If the node has no export modifier, leave it as it is\n\tif (!hasExportModifier(node, typescript) || node.name == null) return;\n\n\tconst {exportedSymbol} = createExportSpecifierFromNameAndModifiers({\n\t\t...options,\n\t\tname: node.name.text,\n\t\tmodifiers: node.modifiers,\n\t\ttypescript\n\t});\n\n\t// Also mark the node as exported so that we can track it later\n\tmarkAsExported(exportedSymbol);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TrackExportsTransformerVisitorOptions} from \"../track-exports-transformer-visitor-options.js\";\nimport {createExportSpecifierFromNameAndModifiers} from \"../../../util/create-export-specifier-from-name-and-modifiers.js\";\nimport {hasExportModifier} from \"../../../util/modifier-util.js\";\n\nexport function visitEnumDeclaration({node, typescript, markAsExported, ...options}: TrackExportsTransformerVisitorOptions<TS.EnumDeclaration>): void {\n\t// If the node has no export modifier, leave it as it is\n\tif (!hasExportModifier(node, typescript)) return;\n\n\tconst {exportedSymbol} = createExportSpecifierFromNameAndModifiers({\n\t\t...options,\n\t\tname: node.name.text,\n\t\tmodifiers: node.modifiers,\n\t\ttypescript\n\t});\n\n\t// Also mark the node as exported so that we can track it later\n\tmarkAsExported(exportedSymbol);\n}\n","import type {TraceIdentifiersVisitorOptions} from \"../trace-identifiers-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\n\n/**\n * Deconflicts the given BindingElement.\n */\nexport function traceIdentifiersForBindingElement({node, continuation}: TraceIdentifiersVisitorOptions<TS.BindingElement>): void {\n\treturn continuation(node.name);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TraceIdentifiersVisitorOptions} from \"../trace-identifiers-visitor-options.js\";\n\n/**\n * Traces identifiers for the given ClassDeclaration.\n */\nexport function traceIdentifiersForClassDeclaration({node, addIdentifier}: TraceIdentifiersVisitorOptions<TS.ClassDeclaration>): void {\n\tif (node.name == null) return;\n\taddIdentifier(node.name.text);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TraceIdentifiersVisitorOptions} from \"../trace-identifiers-visitor-options.js\";\n\n/**\n * Traces identifiers for the given EnumDeclaration.\n */\nexport function traceIdentifiersForEnumDeclaration({node, addIdentifier}: TraceIdentifiersVisitorOptions<TS.EnumDeclaration>): void {\n\taddIdentifier(node.name.text);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TraceIdentifiersVisitorOptions} from \"../trace-identifiers-visitor-options.js\";\n\n/**\n * Traces identifiers for the given FunctionDeclaration.\n */\nexport function traceIdentifiersForFunctionDeclaration({node, addIdentifier}: TraceIdentifiersVisitorOptions<TS.FunctionDeclaration>): void {\n\tif (node.name == null) return;\n\taddIdentifier(node.name.text);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TraceIdentifiersVisitorOptions} from \"../trace-identifiers-visitor-options.js\";\n\n/**\n * Traces identifiers for the given ImportClause.\n */\nexport function traceIdentifiersForImportClause({node, addIdentifier, continuation}: TraceIdentifiersVisitorOptions<TS.ImportClause>): void {\n\tif (node.name != null) {\n\t\taddIdentifier(node.name.text);\n\t}\n\n\tif (node.namedBindings != null) {\n\t\treturn continuation(node.namedBindings);\n\t}\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TraceIdentifiersVisitorOptions} from \"../trace-identifiers-visitor-options.js\";\n\n/**\n * Traces identifiers for the given NamespaceImport.\n */\nexport function traceIdentifiersForNamespaceImport({node, addIdentifier}: TraceIdentifiersVisitorOptions<TS.NamespaceImport>): void {\n\tif (node.name != null) {\n\t\taddIdentifier(node.name.text);\n\t}\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TraceIdentifiersVisitorOptions} from \"../trace-identifiers-visitor-options.js\";\n\n/**\n * Traces identifiers for the given ImportSpecifier.\n */\nexport function traceIdentifiersForImportSpecifier({node, addIdentifier}: TraceIdentifiersVisitorOptions<TS.ImportSpecifier>): void {\n\taddIdentifier(node.name.text);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TraceIdentifiersVisitorOptions} from \"../trace-identifiers-visitor-options.js\";\n\n/**\n * Traces identifiers for the given ExportSpecifier.\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function traceIdentifiersForExportSpecifier(_options: TraceIdentifiersVisitorOptions<TS.ExportSpecifier>): void {\n\t// An ExportSpecifier doesn't produce any local module bindings\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TraceIdentifiersVisitorOptions} from \"../trace-identifiers-visitor-options.js\";\n\n/**\n * Deconflicts the given Identifier.\n */\nexport function traceIdentifiersForIdentifier({node, addIdentifier}: TraceIdentifiersVisitorOptions<TS.Identifier>): void {\n\taddIdentifier(node.text);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TraceIdentifiersVisitorOptions} from \"../trace-identifiers-visitor-options.js\";\n\n/**\n * Traces identifiers for the given InterfaceDeclaration.\n */\nexport function traceIdentifiersForInterfaceDeclaration({node, addIdentifier}: TraceIdentifiersVisitorOptions<TS.InterfaceDeclaration>): void {\n\taddIdentifier(node.name.text);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TraceIdentifiersVisitorOptions} from \"../trace-identifiers-visitor-options.js\";\n\n/**\n * Traces identifiers for the given TypeAliasDeclaration.\n */\nexport function traceIdentifiersForTypeAliasDeclaration({node, addIdentifier}: TraceIdentifiersVisitorOptions<TS.TypeAliasDeclaration>): void {\n\tif (node.name == null) return;\n\n\taddIdentifier(node.name.text);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TraceIdentifiersVisitorOptions} from \"../trace-identifiers-visitor-options.js\";\n\n/**\n * Deconflicts the given VariableDeclaration.\n */\nexport function traceIdentifiersForVariableDeclaration({node, continuation}: TraceIdentifiersVisitorOptions<TS.VariableDeclaration>): void {\n\tcontinuation(node.name);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TraceIdentifiersVisitorOptions} from \"../trace-identifiers-visitor-options.js\";\n\n/**\n * Traces identifiers for the given ExportAssignment.\n */\nexport function traceIdentifiersForExportAssignment({node, continuation}: TraceIdentifiersVisitorOptions<TS.ExportAssignment>): void {\n\tcontinuation(node.expression);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TraceIdentifiersVisitorOptions} from \"../trace-identifiers-visitor-options.js\";\n\n/**\n * Traces identifiers for the given CallExpression.\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function traceIdentifiersForCallExpression(_options: TraceIdentifiersVisitorOptions<TS.CallExpression>): void {\n\t// Do nothing\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TraceIdentifiersVisitorOptions} from \"../trace-identifiers-visitor-options.js\";\n\n/**\n * Traces identifiers for the given NewExpression.\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function traceIdentifiersForNewExpression(_options: TraceIdentifiersVisitorOptions<TS.NewExpression>): void {\n\t// Do nothing\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TraceIdentifiersVisitorOptions} from \"../trace-identifiers-visitor-options.js\";\n\n/**\n * Traces identifiers for the given ImportEqualsDeclaration.\n */\nexport function traceIdentifiersForImportEqualsDeclaration({node, addIdentifier}: TraceIdentifiersVisitorOptions<TS.ImportEqualsDeclaration>): void {\n\taddIdentifier(node.name.text);\n}\n","import {traceIdentifiersForBindingElement} from \"./trace-identifiers-for-binding-element.js\";\nimport {traceIdentifiersForClassDeclaration} from \"./trace-identifiers-for-class-declaration.js\";\nimport {traceIdentifiersForEnumDeclaration} from \"./trace-identifiers-for-enum-declaration.js\";\nimport {traceIdentifiersForFunctionDeclaration} from \"./trace-identifiers-for-function-declaration.js\";\nimport {traceIdentifiersForImportClause} from \"./trace-identifiers-for-import-clause.js\";\nimport {traceIdentifiersForNamespaceImport} from \"./trace-identifiers-for-namespace-import.js\";\nimport {traceIdentifiersForImportSpecifier} from \"./trace-identifiers-for-import-specifier.js\";\nimport {traceIdentifiersForExportSpecifier} from \"./trace-identifiers-for-export-specifier.js\";\nimport {traceIdentifiersForIdentifier} from \"./trace-identifiers-for-identifier.js\";\nimport {traceIdentifiersForInterfaceDeclaration} from \"./trace-identifiers-for-interface-declaration.js\";\nimport {traceIdentifiersForTypeAliasDeclaration} from \"./trace-identifiers-for-type-alias-declaration.js\";\nimport {traceIdentifiersForVariableDeclaration} from \"./trace-identifiers-for-variable-declaration.js\";\nimport type {TraceIdentifiersVisitorOptions} from \"../trace-identifiers-visitor-options.js\";\nimport {traceIdentifiersForExportAssignment} from \"./trace-identifiers-for-export-assignment.js\";\nimport {traceIdentifiersForCallExpression} from \"./trace-identifiers-for-call-expression.js\";\nimport {traceIdentifiersForNewExpression} from \"./trace-identifiers-for-new-expression.js\";\nimport {traceIdentifiersForImportEqualsDeclaration} from \"./trace-identifiers-for-import-equals-declaration.js\";\n\n/**\n * Traces identifiers for the given Node, potentially generating new unique variable names for them\n */\nexport function traceIdentifiersForNode({node, ...options}: TraceIdentifiersVisitorOptions): void {\n\tif (options.typescript.isBindingElement(node)) traceIdentifiersForBindingElement({...options, node});\n\telse if (options.typescript.isClassDeclaration(node)) traceIdentifiersForClassDeclaration({...options, node});\n\telse if (options.typescript.isEnumDeclaration(node)) traceIdentifiersForEnumDeclaration({...options, node});\n\telse if (options.typescript.isFunctionDeclaration(node)) traceIdentifiersForFunctionDeclaration({...options, node});\n\telse if (options.typescript.isImportClause(node)) traceIdentifiersForImportClause({...options, node});\n\telse if (options.typescript.isNamespaceImport(node)) traceIdentifiersForNamespaceImport({...options, node});\n\telse if (options.typescript.isImportSpecifier(node)) traceIdentifiersForImportSpecifier({...options, node});\n\telse if (options.typescript.isExportSpecifier(node)) traceIdentifiersForExportSpecifier({...options, node});\n\telse if (options.typescript.isImportEqualsDeclaration(node)) traceIdentifiersForImportEqualsDeclaration({...options, node});\n\telse if (options.typescript.isIdentifier(node)) traceIdentifiersForIdentifier({...options, node});\n\telse if (options.typescript.isInterfaceDeclaration(node)) traceIdentifiersForInterfaceDeclaration({...options, node});\n\telse if (options.typescript.isTypeAliasDeclaration(node)) traceIdentifiersForTypeAliasDeclaration({...options, node});\n\telse if (options.typescript.isVariableDeclaration(node)) traceIdentifiersForVariableDeclaration({...options, node});\n\telse if (options.typescript.isExportAssignment(node)) traceIdentifiersForExportAssignment({...options, node});\n\telse if (options.typescript.isCallExpression(node)) traceIdentifiersForCallExpression({...options, node});\n\telse if (options.typescript.isNewExpression(node)) traceIdentifiersForNewExpression({...options, node});\n\telse options.childContinuation(node);\n}\n","import type {TS} from \"../../../../../type/ts.js\";\nimport {traceIdentifiersForNode} from \"./visitor/trace-identifiers-for-node.js\";\n\nexport interface GetIdentifiersWithCacheOptions {\n\ttypescript: typeof TS;\n\tnode: TS.Node;\n\tsourceFile: TS.SourceFile;\n}\n\nexport function traceIdentifiers({node, ...rest}: GetIdentifiersWithCacheOptions, identifiers: Set<string> = new Set()): Set<string> {\n\treturn getIdentifiers({...rest, node}, identifiers);\n}\n\nfunction getIdentifiers({node, ...rest}: GetIdentifiersWithCacheOptions, identifiers: Set<string>): Set<string> {\n\ttraceIdentifiersForNode({\n\t\t...rest,\n\t\tnode,\n\t\tcontinuation: nextNode => getIdentifiers({...rest, node: nextNode}, identifiers),\n\t\tchildContinuation: nextNode =>\n\t\t\trest.typescript.forEachChild(nextNode, nextNextNode => {\n\t\t\t\tgetIdentifiers({...rest, node: nextNextNode}, identifiers);\n\t\t\t}),\n\t\taddIdentifier(name: string): void {\n\t\t\tidentifiers.add(name);\n\t\t}\n\t});\n\treturn identifiers;\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TrackExportsTransformerVisitorOptions} from \"../track-exports-transformer-visitor-options.js\";\nimport {createExportSpecifierFromNameAndModifiers} from \"../../../util/create-export-specifier-from-name-and-modifiers.js\";\nimport {hasExportModifier} from \"../../../util/modifier-util.js\";\nimport {traceIdentifiers} from \"../../trace-identifiers/trace-identifiers.js\";\n\nexport function visitVariableStatement({node, typescript, sourceFile, markAsExported, ...options}: TrackExportsTransformerVisitorOptions<TS.VariableStatement>): void {\n\t// If the node has no export modifier, leave it as it is\n\tif (!hasExportModifier(node, typescript)) return;\n\n\tconst identifiers = traceIdentifiers({node, sourceFile, typescript});\n\n\tfor (const identifier of identifiers) {\n\t\tconst {exportedSymbol} = createExportSpecifierFromNameAndModifiers({\n\t\t\t...options,\n\t\t\tname: identifier,\n\t\t\tmodifiers: node.modifiers,\n\t\t\ttypescript\n\t\t});\n\n\t\t// Also mark the node as exported so that we can track it later\n\t\tmarkAsExported(exportedSymbol);\n\t}\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TrackExportsTransformerVisitorOptions} from \"../track-exports-transformer-visitor-options.js\";\nimport {createExportSpecifierFromNameAndModifiers} from \"../../../util/create-export-specifier-from-name-and-modifiers.js\";\nimport {hasExportModifier} from \"../../../util/modifier-util.js\";\n\nexport function visitInterfaceDeclaration({node, typescript, markAsExported, ...options}: TrackExportsTransformerVisitorOptions<TS.InterfaceDeclaration>): void {\n\t// If the node has no export modifier, leave it as it is\n\tif (!hasExportModifier(node, typescript)) return;\n\n\tconst {exportedSymbol} = createExportSpecifierFromNameAndModifiers({\n\t\t...options,\n\t\tname: node.name.text,\n\t\tmodifiers: node.modifiers,\n\t\ttypescript\n\t});\n\n\t// Also mark the node as exported so that we can track it later\n\tmarkAsExported(exportedSymbol);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TrackExportsTransformerVisitorOptions} from \"../track-exports-transformer-visitor-options.js\";\nimport {createExportSpecifierFromNameAndModifiers} from \"../../../util/create-export-specifier-from-name-and-modifiers.js\";\nimport {hasExportModifier} from \"../../../util/modifier-util.js\";\n\nexport function visitModuleDeclaration({node, typescript, markAsExported, ...options}: TrackExportsTransformerVisitorOptions<TS.ModuleDeclaration>): void {\n\t// If the node has no export modifier, leave it as it is\n\tif (!hasExportModifier(node, typescript)) {\n\t\tif (node.body != null) return options.childContinuation(node.body);\n\t\telse return;\n\t}\n\n\tconst {exportedSymbol} = createExportSpecifierFromNameAndModifiers({\n\t\t...options,\n\t\tname: node.name.text,\n\t\tmodifiers: node.modifiers,\n\t\ttypescript\n\t});\n\n\t// Also mark the node as exported so that we can track it later\n\tmarkAsExported(exportedSymbol);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TrackExportsTransformerVisitorOptions} from \"../track-exports-transformer-visitor-options.js\";\nimport {createExportSpecifierFromNameAndModifiers} from \"../../../util/create-export-specifier-from-name-and-modifiers.js\";\nimport {hasExportModifier} from \"../../../util/modifier-util.js\";\n\nexport function visitTypeAliasDeclaration({node, typescript, markAsExported, ...options}: TrackExportsTransformerVisitorOptions<TS.TypeAliasDeclaration>): void {\n\t// If the node has no export modifier, leave it as it is\n\tif (!hasExportModifier(node, typescript)) return;\n\n\tconst {exportedSymbol} = createExportSpecifierFromNameAndModifiers({\n\t\t...options,\n\t\tname: node.name.text,\n\t\tmodifiers: node.modifiers,\n\t\ttypescript\n\t});\n\n\t// Also mark the node as exported so that we can track it later\n\tmarkAsExported(exportedSymbol);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TrackExportsTransformerVisitorOptions} from \"../track-exports-transformer-visitor-options.js\";\nimport {getExportedSymbolFromExportSpecifier} from \"../../../util/create-export-specifier-from-name-and-modifiers.js\";\n\nexport function visitExportDeclaration({node, typescript, markAsExported}: TrackExportsTransformerVisitorOptions<TS.ExportDeclaration>): void {\n\tif (node.moduleSpecifier != null && !typescript.isStringLiteralLike(node.moduleSpecifier)) return;\n\n\t// If there is no ExportClause, it is a NamespaceExport such as 'export * from \"...\"'.\n\t// If there is, and it is a NamespaceExport, it will be something like 'export * as Foo from \"...\"'\n\tif (node.exportClause == null || typescript.isNamespaceExport?.(node.exportClause)) {\n\t\t// It will never make sense to have a NamespaceExport with no ModuleSpecifier, but nevertheless do the check\n\t\tif (node.moduleSpecifier != null) {\n\t\t\tmarkAsExported({\n\t\t\t\tisNamespaceExport: true,\n\t\t\t\tname: node.exportClause == null ? undefined : node.exportClause.name,\n\t\t\t\tmoduleSpecifier: node.moduleSpecifier.text\n\t\t\t});\n\t\t}\n\t\treturn;\n\t}\n\n\t// Otherwise, check all ExportSpecifiers\n\tfor (const exportSpecifier of (node.exportClause as TS.NamedExports).elements) {\n\t\tmarkAsExported(getExportedSymbolFromExportSpecifier(exportSpecifier, node.isTypeOnly, node.moduleSpecifier?.text));\n\t}\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TrackExportsTransformerVisitorOptions} from \"../track-exports-transformer-visitor-options.js\";\n\nexport function visitExportAssignment(options: TrackExportsTransformerVisitorOptions<TS.ExportAssignment>): void {\n\tconst {node, typescript, markAsExported} = options;\n\tconst identifier = typescript.isIdentifier(node.expression) ? node.expression : undefined;\n\n\tif (identifier != null) {\n\t\tmarkAsExported({\n\t\t\tisDefaultExport: true,\n\t\t\tisTypeOnly: false,\n\t\t\tmoduleSpecifier: undefined,\n\t\t\tname: identifier,\n\t\t\tpropertyName: identifier\n\t\t});\n\t}\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TrackExportsTransformerVisitorOptions} from \"../track-exports-transformer-visitor-options.js\";\nimport {visitClassDeclaration} from \"./visit-class-declaration.js\";\nimport {visitClassExpression} from \"./visit-class-expression.js\";\nimport {visitFunctionDeclaration} from \"./visit-function-declaration.js\";\nimport {visitFunctionExpression} from \"./visit-function-expression.js\";\nimport {visitEnumDeclaration} from \"./visit-enum-declaration.js\";\nimport {visitVariableStatement} from \"./visit-variable-statement.js\";\nimport {visitInterfaceDeclaration} from \"./visit-interface-declaration.js\";\nimport {visitModuleDeclaration} from \"./visit-module-declaration.js\";\nimport {visitTypeAliasDeclaration} from \"./visit-type-alias-declaration.js\";\nimport {visitExportDeclaration} from \"./visit-export-declaration.js\";\nimport {visitExportAssignment} from \"./visit-export-assignment.js\";\n\nexport function visitNode({node, ...options}: TrackExportsTransformerVisitorOptions<TS.Node>): void {\n\tif (options.typescript.isClassDeclaration(node)) {\n\t\treturn visitClassDeclaration({...options, node});\n\t} else if (options.typescript.isClassExpression(node)) {\n\t\treturn visitClassExpression({...options, node});\n\t} else if (options.typescript.isFunctionDeclaration(node)) {\n\t\treturn visitFunctionDeclaration({...options, node});\n\t} else if (options.typescript.isFunctionExpression(node)) {\n\t\treturn visitFunctionExpression({...options, node});\n\t} else if (options.typescript.isEnumDeclaration(node)) {\n\t\treturn visitEnumDeclaration({...options, node});\n\t} else if (options.typescript.isInterfaceDeclaration(node)) {\n\t\treturn visitInterfaceDeclaration({...options, node});\n\t} else if (options.typescript.isTypeAliasDeclaration(node)) {\n\t\treturn visitTypeAliasDeclaration({...options, node});\n\t} else if (options.typescript.isModuleDeclaration(node)) {\n\t\treturn visitModuleDeclaration({...options, node});\n\t} else if (options.typescript.isVariableStatement(node)) {\n\t\treturn visitVariableStatement({...options, node});\n\t} else if (options.typescript.isExportDeclaration(node)) {\n\t\treturn visitExportDeclaration({...options, node});\n\t} else if (options.typescript.isExportAssignment(node)) {\n\t\treturn visitExportAssignment({...options, node});\n\t}\n}\n","import type {TS} from \"../../../../../type/ts.js\";\nimport {visitNode} from \"./visitor/visit-node.js\";\nimport type {ExportedSymbol, ExportedSymbolSet, TrackExportsOptions, TrackExportsTransformerVisitorOptions} from \"./track-exports-transformer-visitor-options.js\";\n\nexport function trackExportsTransformer(options: TrackExportsOptions): ExportedSymbolSet {\n\tconst {typescript} = options;\n\tconst exportedSymbolSet: ExportedSymbolSet = new Set();\n\n\t// Prepare some VisitorOptions\n\tconst visitorOptions: Omit<TrackExportsTransformerVisitorOptions<TS.Node>, \"node\"> = {\n\t\t...options,\n\n\t\tmarkAsExported(symbol: ExportedSymbol): void {\n\t\t\texportedSymbolSet.add(symbol);\n\t\t},\n\n\t\tchildContinuation: <U extends TS.Node>(node: U): void =>\n\t\t\ttypescript.forEachChild(node, nextNode => {\n\t\t\t\tvisitNode({\n\t\t\t\t\t...visitorOptions,\n\t\t\t\t\tnode: nextNode\n\t\t\t\t});\n\t\t\t}),\n\n\t\tcontinuation: <U extends TS.Node>(node: U): void => {\n\t\t\tvisitNode({\n\t\t\t\t...visitorOptions,\n\t\t\t\tnode\n\t\t\t});\n\t\t}\n\t};\n\n\ttypescript.forEachChild(options.sourceFile, nextNode => {\n\t\tvisitorOptions.continuation(nextNode);\n\t});\n\treturn exportedSymbolSet;\n}\n","import {trackImportsTransformer} from \"../track-imports-transformer/track-imports-transformer.js\";\nimport type {DeclarationChunkStats} from \"../../../../../type/declaration-stats.js\";\nimport type {StatsCollectorOptions} from \"./stats-collector-options.js\";\nimport type {ExtendedResolvedModule} from \"../../../../cache/resolve-cache/extended-resolved-module.js\";\n\nexport function statsCollector(options: StatsCollectorOptions): DeclarationChunkStats {\n\tconst {typescript, sourceFile, declarationPaths, host, sourceFileToTypeReferencesSet} = options;\n\n\tconst stats: DeclarationChunkStats = {\n\t\texternalTypes: []\n\t};\n\n\t// Track all imports\n\tconst importedSymbols = trackImportsTransformer({\n\t\tsourceFile,\n\t\ttypescript\n\t});\n\n\tconst resolveResults: (ExtendedResolvedModule & {moduleSpecifier: string})[] = [];\n\n\t// For each of the Imported Symbols, resolve them using the provided ModuleResolutionHost\n\tfor (const importedSymbol of importedSymbols) {\n\t\tconst resolved = host.resolve(importedSymbol.moduleSpecifier, declarationPaths.absolute);\n\t\tif (resolved == null) continue;\n\t\tresolveResults.push({\n\t\t\t...resolved,\n\t\t\tmoduleSpecifier: importedSymbol.moduleSpecifier\n\t\t});\n\t}\n\n\tfor (const typeReference of sourceFileToTypeReferencesSet.get(sourceFile.fileName) ?? new Set()) {\n\t\tconst resolved = host.resolve(typeReference.moduleSpecifier, declarationPaths.absolute);\n\t\tif (resolved == null) continue;\n\t\tresolveResults.push({\n\t\t\t...resolved,\n\t\t\tmoduleSpecifier: typeReference.moduleSpecifier\n\t\t});\n\t}\n\n\t// For each resolveResult, check if they represent external dependencies, and if so, add them to the 'externalTypes' stats\n\tfor (const resolveResult of resolveResults) {\n\t\tif (resolveResult.isExternalLibraryImport === true && resolveResult.packageId != null) {\n\t\t\t// If the external types already include this library, skip it\n\t\t\tif (stats.externalTypes.some(({library}) => library === resolveResult.packageId?.name)) continue;\n\n\t\t\tstats.externalTypes.push({\n\t\t\t\tlibrary: resolveResult.packageId.name,\n\t\t\t\tversion: resolveResult.packageId.version\n\t\t\t});\n\t\t}\n\t}\n\n\treturn stats;\n}\n","/* eslint-disable deprecation/deprecation */\nimport type {DeclarationBundlerOptions, DeclarationTransformer} from \"../../declaration-bundler-options.js\";\nimport type {TS} from \"../../../../../type/ts.js\";\nimport {applyTransformers} from \"../../util/apply-transformers.js\";\nimport {getChunkFilename} from \"../../util/get-chunk-filename.js\";\nimport type {SourceFileBundlerVisitorOptions} from \"./source-file-bundler-visitor-options.js\";\nimport {formatLibReferenceDirective} from \"../../util/format-lib-reference-directive.js\";\nimport {formatTypeReferenceDirective} from \"../../util/format-type-reference-directive.js\";\nimport {pickResolvedModule} from \"../../../../../util/pick-resolved-module.js\";\nimport {trackImportsTransformer} from \"../track-imports-transformer/track-imports-transformer.js\";\nimport {trackExportsTransformer} from \"../track-exports-transformer/track-exports-transformer.js\";\nimport {statsCollector} from \"../stats-collector/stats-collector.js\";\nimport type {TypeReference} from \"../../util/get-type-reference-module-from-file-name.js\";\nimport {ensureNodeFactory} from \"compatfactory\";\n\nfunction needsInitialize(options: DeclarationBundlerOptions): boolean {\n\treturn options.sourceFileToExportedSymbolSet.size === 0 || options.sourceFileToImportedSymbolSet.size === 0 || options.moduleSpecifierToSourceFileMap.size === 0;\n}\n\nexport function sourceFileBundler(options: DeclarationBundlerOptions, ...transformers: DeclarationTransformer[]): TS.TransformerFactory<TS.Bundle | TS.SourceFile> {\n\treturn context => bundle => {\n\t\tconst {typescript, host} = options;\n\t\tconst factory = ensureNodeFactory(context.factory ?? typescript);\n\n\t\t// A Bundle of SourceFiles is expected. In case the SourceFileBundler is invoked with something other than that, do an early return\n\t\tif (typescript.isSourceFile(bundle)) {\n\t\t\treturn bundle;\n\t\t}\n\n\t\tconst updatedSourceFiles: TS.SourceFile[] = [];\n\t\tconst entryModulesArr = [...options.chunk.entryModules];\n\n\t\tconst sourceFileMap = new Map<string, TS.SourceFile>(bundle.sourceFiles.map(sourceFile => [sourceFile.fileName, sourceFile]));\n\t\t// Take file names for all SourceFiles\n\t\tconst sourceFileNames = new Set(sourceFileMap.keys());\n\t\tconst sourceFiles = [...sourceFileMap.values()];\n\n\t\tif (needsInitialize(options)) {\n\t\t\tsourceFiles.forEach(sourceFile => {\n\t\t\t\tfor (const statement of sourceFile.statements) {\n\t\t\t\t\tif (typescript.isModuleDeclaration(statement)) {\n\t\t\t\t\t\toptions.moduleSpecifierToSourceFileMap.set(statement.name.text, sourceFile);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\toptions.sourceFileToImportedSymbolSet.set(\n\t\t\t\t\tsourceFile.fileName,\n\t\t\t\t\ttrackImportsTransformer({\n\t\t\t\t\t\ttypescript: typescript,\n\t\t\t\t\t\tsourceFile\n\t\t\t\t\t})\n\t\t\t\t);\n\n\t\t\t\toptions.sourceFileToExportedSymbolSet.set(\n\t\t\t\t\tsourceFile.fileName,\n\t\t\t\t\ttrackExportsTransformer({\n\t\t\t\t\t\ttypescript: typescript,\n\t\t\t\t\t\tfactory,\n\t\t\t\t\t\tsourceFile\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\t// Only consider those SourceFiles that are part of the current chunk to be emitted\n\t\tconst sourceFilesForChunk = sourceFiles.filter(sourceFile => getChunkFilename(sourceFile.fileName, options.chunks) === options.chunk.paths.absolute);\n\n\t\t// Visit only the entry SourceFile(s)\n\t\tconst entrySourceFiles = sourceFilesForChunk\n\t\t\t.filter(sourceFile => options.chunk.entryModules.has(sourceFile.fileName))\n\t\t\t.sort((a, b) => (entryModulesArr.indexOf(a.fileName) < entryModulesArr.indexOf(b.fileName) ? -1 : 1));\n\n\t\tconst nonEntrySourceFiles = sourceFilesForChunk.filter(sourceFile => !entrySourceFiles.includes(sourceFile));\n\n\t\tconst firstEntrySourceFile = entrySourceFiles[0] as TS.SourceFile | undefined;\n\t\tconst otherEntrySourceFilesForChunk = entrySourceFiles.filter(entrySourceFile => entrySourceFile !== firstEntrySourceFile);\n\n\t\tif (firstEntrySourceFile != null) {\n\t\t\t// Prepare some VisitorOptions\n\t\t\tconst visitorOptions: SourceFileBundlerVisitorOptions = {\n\t\t\t\t...options,\n\t\t\t\tcontext,\n\t\t\t\tfactory,\n\t\t\t\textensions: host.getAllKnownTypescriptExtensions(),\n\t\t\t\tentrySourceFilesForChunk: entrySourceFiles,\n\t\t\t\totherEntrySourceFilesForChunk,\n\t\t\t\tsourceFile: firstEntrySourceFile,\n\t\t\t\tlexicalEnvironment: {\n\t\t\t\t\tparent: undefined,\n\t\t\t\t\tbindings: new Map()\n\t\t\t\t},\n\t\t\t\tincludedSourceFiles: new Set<string>([firstEntrySourceFile.fileName]),\n\t\t\t\tdeclarationToDeconflictedBindingMap: new Map<number, string>(),\n\t\t\t\tpreservedImports: new Map(),\n\t\t\t\tinlinedModules: new Map(),\n\n\t\t\t\tresolveSourceFile: (fileName, from) => {\n\t\t\t\t\tfor (const file of [fileName, `${fileName}/index`]) {\n\t\t\t\t\t\tif (options.moduleSpecifierToSourceFileMap.has(file)) {\n\t\t\t\t\t\t\treturn options.moduleSpecifierToSourceFileMap.get(file)!;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tconst resolved = options.host.resolve(fileName, from);\n\n\t\t\t\t\tif (resolved == null) return undefined;\n\t\t\t\t\tconst pickedResolvedModule = pickResolvedModule(resolved, true);\n\n\t\t\t\t\tconst resolvedSourceFile = pickedResolvedModule == null ? undefined : sourceFileMap.get(pickedResolvedModule);\n\n\t\t\t\t\t// Never allow resolving SourceFiles representing content not part of the compilation unit,\n\t\t\t\t\t// since that would lead to module merging assuming that modules will be part of the emitted declarations\n\t\t\t\t\t// even though they want, leading to undefined symbols\n\t\t\t\t\tif (resolvedSourceFile == null || !sourceFileNames.has(resolvedSourceFile.fileName)) return undefined;\n\t\t\t\t\treturn resolvedSourceFile;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// Run all transformers on the SourceFile\n\t\t\tlet transformedSourceFile = applyTransformers({\n\t\t\t\tvisitorOptions,\n\t\t\t\ttransformers\n\t\t\t});\n\n\t\t\t// There may be additional transformers that are wrapped by this one. Run them on the transformed SourceFile rather than the entire bundle.\n\t\t\tif (options.wrappedTransformers != null && options.wrappedTransformers.afterDeclarations != null) {\n\t\t\t\tfor (const transformerFactory of options.wrappedTransformers.afterDeclarations) {\n\t\t\t\t\tconst transformer = transformerFactory(context);\n\t\t\t\t\tif (\"transformSourceFile\" in transformer) {\n\t\t\t\t\t\ttransformedSourceFile = transformer.transformSourceFile(transformedSourceFile);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttransformedSourceFile = transformer(transformedSourceFile) as TS.SourceFile;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If a declarationStats hook has been provided to the plugin, collect stats and invoke the hook with the information\n\t\t\tif (options.declarationStats != null) {\n\t\t\t\tObject.assign(options.declarationStats, {\n\t\t\t\t\t[options.declarationPaths.fileName]: statsCollector({...visitorOptions, sourceFile: transformedSourceFile})\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tupdatedSourceFiles.push(transformedSourceFile);\n\t\t}\n\n\t\tfor (const sourceFile of [...otherEntrySourceFilesForChunk, ...nonEntrySourceFiles]) {\n\t\t\tupdatedSourceFiles.push(factory.updateSourceFile(sourceFile, [], true));\n\t\t}\n\n\t\t// Merge lib- and type reference directives.\n\t\tconst libReferenceDirectiveFileNames = new Set<string>();\n\t\tconst typeReferenceDirectiveFileNames = new Set<string>();\n\t\tconst prepends: TS.UnparsedSource[] = [];\n\t\tconst bundleWithSyntheticLibReferences = bundle as unknown as {syntheticLibReferences?: readonly TS.FileReference[]};\n\n\t\tif (bundleWithSyntheticLibReferences.syntheticLibReferences != null) {\n\t\t\tfor (const {fileName} of bundleWithSyntheticLibReferences.syntheticLibReferences) {\n\t\t\t\tlibReferenceDirectiveFileNames.add(fileName);\n\t\t\t}\n\t\t}\n\n\t\tfor (const updatedSourceFile of updatedSourceFiles) {\n\t\t\tfor (const {fileName} of updatedSourceFile.libReferenceDirectives) {\n\t\t\t\tlibReferenceDirectiveFileNames.add(fileName);\n\t\t\t}\n\n\t\t\tfor (const {fileName} of updatedSourceFile.typeReferenceDirectives) {\n\t\t\t\ttypeReferenceDirectiveFileNames.add(fileName);\n\t\t\t}\n\n\t\t\tfor (const typeReferenceModule of options.sourceFileToTypeReferencesSet.get(updatedSourceFile.fileName) ?? new Set<TypeReference>()) {\n\t\t\t\ttypeReferenceDirectiveFileNames.add(typeReferenceModule.moduleSpecifier);\n\t\t\t}\n\t\t}\n\n\t\tfor (const fileName of libReferenceDirectiveFileNames) {\n\t\t\tprepends.push(typescript.createUnparsedSourceFile(formatLibReferenceDirective(fileName)));\n\t\t}\n\n\t\tfor (const fileName of typeReferenceDirectiveFileNames) {\n\t\t\tprepends.push(typescript.createUnparsedSourceFile(formatTypeReferenceDirective(fileName)));\n\t\t}\n\t\treturn factory.updateBundle(bundle, updatedSourceFiles, prepends);\n\t};\n}\n","/**\n * Calculates Levenshtein distance\n */\nexport function similarity(a: string, b: string): number {\n\tlet tmp: number | string | undefined;\n\tif (a.length === 0) {\n\t\treturn b.length;\n\t}\n\tif (b.length === 0) {\n\t\treturn a.length;\n\t}\n\n\tif (a.length > b.length) {\n\t\ttmp = a;\n\t\ta = b;\n\t\tb = tmp;\n\t}\n\n\tlet i = 0;\n\tlet j = 0;\n\tlet res = 0;\n\tconst alen = a.length;\n\tconst blen = b.length;\n\tconst row: number[] = Array(alen);\n\tfor (i = 0; i <= alen; i++) {\n\t\trow[i] = i;\n\t}\n\n\tfor (i = 1; i <= blen; i++) {\n\t\tres = i;\n\t\tfor (j = 1; j <= alen; j++) {\n\t\t\ttmp = row[j - 1];\n\t\t\trow[j - 1] = res;\n\t\t\tres = b[i - 1] === a[j - 1] ? tmp : Math.min(tmp + 1, Math.min(res + 1, row[j] + 1));\n\t\t}\n\t}\n\treturn res;\n}\n","import {ensureHasLeadingDotAndPosix, stripKnownExtension} from \"../../../../util/path/path-util.js\";\nimport {getChunkFilename} from \"./get-chunk-filename.js\";\nimport type {NormalizedChunk} from \"../../../../util/chunk/normalize-chunk.js\";\nimport type {SourceFileResolver} from \"../transformers/source-file-bundler/source-file-bundler-visitor-options.js\";\nimport type {CompilerHost} from \"../../../compiler-host/compiler-host.js\";\nimport {pickResolvedModule} from \"../../../../util/pick-resolved-module.js\";\nimport {similarity} from \"../../../../util/similarity-util.js\";\nimport path from \"crosspath\";\n\nexport interface GenerateModuleSpecifierOptions {\n\thost: CompilerHost;\n\tmoduleSpecifier: string;\n\tfrom: string;\n\tresolveSourceFile: SourceFileResolver;\n\tchunk: NormalizedChunk;\n\tchunks: NormalizedChunk[];\n}\n\nexport function isSameChunk(options: GenerateModuleSpecifierOptions): boolean {\n\treturn generateModuleSpecifier(options) == null;\n}\n\nexport function generateModuleSpecifier(options: GenerateModuleSpecifierOptions): string | undefined {\n\tconst {chunk, moduleSpecifier, resolveSourceFile, chunks, from, host} = options;\n\tconst sourceFile = resolveSourceFile(moduleSpecifier, from);\n\n\tif (sourceFile == null) {\n\t\treturn moduleSpecifier;\n\t}\n\n\tconst chunkForModuleSpecifier = getChunkFilename(sourceFile.fileName, chunks);\n\n\t// If no chunk could be located for the module specifier, it most likely marked as external.\n\t// Leave it exactly as it is to mimic the behavior of Rollup. Unfortunately, this is not as\n\t// easy as it could be, given that all module specifiers are rewritten to bare module specifiers\n\t// when leveraging TypeScript's 'outFile' feature, so we'll have to get a hold of the original SourceFile\n\t// to see what the original module specifier might have been.\n\tif (chunkForModuleSpecifier == null) {\n\t\tconst fromSourceFile = host.getSourceFile(from);\n\t\tif (fromSourceFile == null) {\n\t\t\treturn moduleSpecifier;\n\t\t}\n\t\tconst dependencies = host.getDependenciesForFile(fromSourceFile.fileName);\n\n\t\tif (dependencies == null) {\n\t\t\treturn moduleSpecifier;\n\t\t}\n\n\t\t// Take the most similar-looking module specifier by Levenshtein distance\n\t\treturn [...dependencies]\n\t\t\t.filter(dependency => path.normalize(pickResolvedModule(dependency, true)) === path.normalize(sourceFile.fileName))\n\t\t\t.map(dependency => [dependency.moduleSpecifier, similarity(moduleSpecifier, dependency.moduleSpecifier)] as [string, number])\n\t\t\t.sort(([, a], [, b]) => (a > b ? 1 : -1))\n\t\t\t.map(([specifier]) => specifier)[0];\n\t}\n\n\t// Never allow self-referencing chunks\n\tif (chunkForModuleSpecifier === chunk.paths.absolute) {\n\t\treturn undefined;\n\t}\n\n\tconst relativePath = path.relative(path.dirname(chunk.paths.absolute), chunkForModuleSpecifier);\n\treturn `${ensureHasLeadingDotAndPosix(stripKnownExtension(relativePath), false)}.js`;\n}\n","import type {TS} from \"../../../../type/ts.js\";\n\nexport function getSymbolFlagsForNode(node: TS.Node, typescript: typeof TS): TS.SymbolFlags {\n\tif (typescript.isClassLike(node)) {\n\t\treturn typescript.SymbolFlags.Class;\n\t} else if (typescript.isVariableDeclaration(node)) {\n\t\treturn typescript.SymbolFlags.Variable;\n\t} else if (typescript.isEnumDeclaration(node)) {\n\t\treturn typescript.SymbolFlags.Enum;\n\t} else if (typescript.isEnumMember(node)) {\n\t\treturn typescript.SymbolFlags.EnumMember;\n\t} else if (typescript.isPropertyDeclaration(node)) {\n\t\treturn typescript.SymbolFlags.Property;\n\t} else if (typescript.isGetAccessor(node)) {\n\t\treturn typescript.SymbolFlags.GetAccessor;\n\t} else if (typescript.isSetAccessor(node)) {\n\t\treturn typescript.SymbolFlags.SetAccessor;\n\t} else if (typescript.isFunctionLike(node)) {\n\t\treturn typescript.SymbolFlags.Function;\n\t} else if (typescript.isInterfaceDeclaration(node)) {\n\t\treturn typescript.SymbolFlags.Interface;\n\t} else if (typescript.isModuleDeclaration(node)) {\n\t\treturn typescript.SymbolFlags.Module;\n\t} else if (typescript.isTypeLiteralNode(node)) {\n\t\treturn typescript.SymbolFlags.TypeLiteral;\n\t} else if (typescript.isObjectLiteralExpression(node)) {\n\t\treturn typescript.SymbolFlags.ObjectLiteral;\n\t} else if (typescript.isMethodDeclaration(node)) {\n\t\treturn typescript.SymbolFlags.Method;\n\t} else if (typescript.isConstructorDeclaration(node)) {\n\t\treturn typescript.SymbolFlags.Constructor;\n\t} else if (typescript.isMethodSignature(node) || typescript.isCallSignatureDeclaration(node) || typescript.isPropertySignature(node)) {\n\t\treturn typescript.SymbolFlags.Signature;\n\t} else if (typescript.isTypeParameterDeclaration(node)) {\n\t\treturn typescript.SymbolFlags.TypeParameter;\n\t} else if (typescript.isTypeAliasDeclaration(node)) {\n\t\treturn typescript.SymbolFlags.TypeAlias;\n\t}\n\n\treturn typescript.SymbolFlags.None;\n}\n","import type {TS} from \"../../../../type/ts.js\";\nimport {getSymbolFlagsForNode} from \"./get-symbol-flags-for-node.js\";\nimport type {SafeNode} from \"../../../../type/safe-node.js\";\nimport {getOriginalNode} from \"./get-original-node.js\";\n\nexport interface GetSymbolAtLocationOptions {\n\tnode: SafeNode;\n\ttypeChecker: TS.TypeChecker;\n\ttypescript: typeof TS;\n}\n\nexport function getSymbolAtLocation({node, typescript, typeChecker}: GetSymbolAtLocationOptions): TS.Symbol {\n\tconst originalNode = getOriginalNode(node, typescript);\n\n\treturn (\n\t\toriginalNode._symbol ??\n\t\toriginalNode.symbol ??\n\t\ttypeChecker.getSymbolAtLocation(originalNode) ??\n\t\ttypeChecker.getSymbolsInScope(originalNode, getSymbolFlagsForNode(originalNode, typescript))[0]\n\t);\n}\n","import type {SourceFileBundlerVisitorOptions} from \"../transformers/source-file-bundler/source-file-bundler-visitor-options.js\";\nimport type {TS} from \"../../../../type/ts.js\";\nimport {cloneNode, preserveNode, setParentNodes} from \"ts-clone-node\";\nimport {getSymbolAtLocation} from \"./get-symbol-at-location.js\";\nimport type {SafeNode} from \"../../../../type/safe-node.js\";\n\nexport interface PreserveMetaOptions extends SourceFileBundlerVisitorOptions {}\n\nexport function preserveSymbols<T extends TS.Node>(node: T, otherNode: TS.Node, options: PreserveMetaOptions): T {\n\tif (node === otherNode) return node;\n\n\t(node as SafeNode)._symbol = getSymbolAtLocation({...options, node: otherNode});\n\treturn node;\n}\n\nexport function preserveMeta<T extends TS.Node>(newNode: T, oldNode: T, options: PreserveMetaOptions): T {\n\treturn preserveNode(newNode, oldNode, options);\n}\n\nexport function preserveParents<T extends TS.Node>(node: T, options: Pick<SourceFileBundlerVisitorOptions, \"typescript\">): T {\n\treturn setParentNodes(node, {typescript: options.typescript, propertyName: \"_parent\", deep: true});\n}\n\nexport function cloneNodeWithMeta<T extends TS.Node>(node: T, options: PreserveMetaOptions): T {\n\treturn cloneNode<T>(node, options);\n}\n","import type {LexicalEnvironment, LexicalEnvironmentBinding} from \"../transformers/deconflicter/deconflicter-options.js\";\n\nexport function cloneLexicalEnvironment(lexicalEnvironment?: LexicalEnvironment | undefined, ...entries: [string, LexicalEnvironmentBinding][]): LexicalEnvironment {\n\treturn {\n\t\tparent: lexicalEnvironment,\n\t\tbindings: new Map(entries)\n\t};\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureNoDeclareModifierTransformerVisitorOptions} from \"../ensure-no-declare-modifier-transformer-visitor-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {hasDeclareModifier, removeDeclareModifier} from \"../../../util/modifier-util.js\";\nimport {getModifierLikes} from \"../../../util/node-util.js\";\n\nexport function visitClassDeclaration(options: EnsureNoDeclareModifierTransformerVisitorOptions<TS.ClassDeclaration>): TS.ClassDeclaration {\n\tconst {node, factory, typescript} = options;\n\tif (!hasDeclareModifier(node, typescript)) return node;\n\n\tconst modifierLikes = removeDeclareModifier(getModifierLikes(node), typescript);\n\n\treturn preserveMeta(factory.updateClassDeclaration(node, modifierLikes, node.name, node.typeParameters, node.heritageClauses, node.members), node, options);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureNoDeclareModifierTransformerVisitorOptions} from \"../ensure-no-declare-modifier-transformer-visitor-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {hasDeclareModifier, removeDeclareModifier} from \"../../../util/modifier-util.js\";\nimport {getModifierLikes} from \"../../../util/node-util.js\";\n\nexport function visitClassExpression(options: EnsureNoDeclareModifierTransformerVisitorOptions<TS.ClassExpression>): TS.ClassExpression {\n\tconst {node, factory, typescript} = options;\n\tif (!hasDeclareModifier(node, typescript)) return node;\n\n\tconst modifierLikes = removeDeclareModifier(getModifierLikes(node), typescript);\n\n\treturn preserveMeta(factory.updateClassExpression(node, modifierLikes, node.name, node.typeParameters, node.heritageClauses, node.members), node, options);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureNoDeclareModifierTransformerVisitorOptions} from \"../ensure-no-declare-modifier-transformer-visitor-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {hasDeclareModifier, removeDeclareModifier} from \"../../../util/modifier-util.js\";\nimport {getModifierLikes} from \"../../../util/node-util.js\";\n\nexport function visitFunctionDeclaration(options: EnsureNoDeclareModifierTransformerVisitorOptions<TS.FunctionDeclaration>): TS.FunctionDeclaration {\n\tconst {node, factory, typescript} = options;\n\tif (!hasDeclareModifier(node, typescript)) return node;\n\n\tconst modifierLikes = removeDeclareModifier(getModifierLikes(node), typescript);\n\n\treturn preserveMeta(\n\t\tfactory.updateFunctionDeclaration(node, modifierLikes, node.asteriskToken, node.name, node.typeParameters, node.parameters, node.type, node.body),\n\t\tnode,\n\t\toptions\n\t);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureNoDeclareModifierTransformerVisitorOptions} from \"../ensure-no-declare-modifier-transformer-visitor-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {hasDeclareModifier, removeDeclareModifier} from \"../../../util/modifier-util.js\";\n\nexport function visitFunctionExpression(options: EnsureNoDeclareModifierTransformerVisitorOptions<TS.FunctionExpression>): TS.FunctionExpression {\n\tconst {node, factory, typescript} = options;\n\tif (!hasDeclareModifier(node, typescript)) return node;\n\n\treturn preserveMeta(\n\t\tfactory.updateFunctionExpression(\n\t\t\tnode,\n\t\t\tremoveDeclareModifier(node.modifiers, typescript),\n\t\t\tnode.asteriskToken,\n\t\t\tnode.name,\n\t\t\tnode.typeParameters,\n\t\t\tnode.parameters,\n\t\t\tnode.type,\n\t\t\tnode.body\n\t\t),\n\t\tnode,\n\t\toptions\n\t);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureNoDeclareModifierTransformerVisitorOptions} from \"../ensure-no-declare-modifier-transformer-visitor-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {hasDeclareModifier, removeDeclareModifier} from \"../../../util/modifier-util.js\";\n\nexport function visitEnumDeclaration(options: EnsureNoDeclareModifierTransformerVisitorOptions<TS.EnumDeclaration>): TS.EnumDeclaration {\n\tconst {node, factory, typescript} = options;\n\tif (!hasDeclareModifier(node, typescript)) return node;\n\n\treturn preserveMeta(factory.updateEnumDeclaration(node, removeDeclareModifier(node.modifiers, typescript), node.name, node.members), node, options);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureNoDeclareModifierTransformerVisitorOptions} from \"../ensure-no-declare-modifier-transformer-visitor-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {hasDeclareModifier, removeDeclareModifier} from \"../../../util/modifier-util.js\";\n\nexport function visitVariableStatement(options: EnsureNoDeclareModifierTransformerVisitorOptions<TS.VariableStatement>): TS.VariableStatement {\n\tconst {node, factory, typescript} = options;\n\tif (!hasDeclareModifier(node, typescript)) return node;\n\n\treturn preserveMeta(factory.updateVariableStatement(node, removeDeclareModifier(node.modifiers, typescript), node.declarationList), node, options);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureNoDeclareModifierTransformerVisitorOptions} from \"../ensure-no-declare-modifier-transformer-visitor-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {hasDeclareModifier, removeDeclareModifier} from \"../../../util/modifier-util.js\";\n\nexport function visitInterfaceDeclaration(options: EnsureNoDeclareModifierTransformerVisitorOptions<TS.InterfaceDeclaration>): TS.InterfaceDeclaration {\n\tconst {node, factory, typescript} = options;\n\tif (!hasDeclareModifier(node, typescript)) return node;\n\n\treturn preserveMeta(\n\t\tfactory.updateInterfaceDeclaration(node, removeDeclareModifier(node.modifiers, typescript), node.name, node.typeParameters, node.heritageClauses, node.members),\n\t\tnode,\n\t\toptions\n\t);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureNoDeclareModifierTransformerVisitorOptions} from \"../ensure-no-declare-modifier-transformer-visitor-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {hasDeclareModifier, removeDeclareModifier} from \"../../../util/modifier-util.js\";\n\nexport function visitModuleDeclaration(options: EnsureNoDeclareModifierTransformerVisitorOptions<TS.ModuleDeclaration>): TS.ModuleDeclaration {\n\tconst {node, factory, typescript} = options;\n\tif (!hasDeclareModifier(node, typescript)) return node;\n\n\treturn preserveMeta(factory.updateModuleDeclaration(node, removeDeclareModifier(node.modifiers, typescript), node.name, node.body), node, options);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureNoDeclareModifierTransformerVisitorOptions} from \"../ensure-no-declare-modifier-transformer-visitor-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {hasDeclareModifier, removeDeclareModifier} from \"../../../util/modifier-util.js\";\n\nexport function visitTypeAliasDeclaration(options: EnsureNoDeclareModifierTransformerVisitorOptions<TS.TypeAliasDeclaration>): TS.TypeAliasDeclaration {\n\tconst {node, factory, typescript} = options;\n\tif (!hasDeclareModifier(node, typescript)) return node;\n\n\treturn preserveMeta(factory.updateTypeAliasDeclaration(node, removeDeclareModifier(node.modifiers, typescript), node.name, node.typeParameters, node.type), node, options);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureNoDeclareModifierTransformerVisitorOptions} from \"../ensure-no-declare-modifier-transformer-visitor-options.js\";\nimport {visitClassDeclaration} from \"./visit-class-declaration.js\";\nimport {visitClassExpression} from \"./visit-class-expression.js\";\nimport {visitFunctionDeclaration} from \"./visit-function-declaration.js\";\nimport {visitFunctionExpression} from \"./visit-function-expression.js\";\nimport {visitEnumDeclaration} from \"./visit-enum-declaration.js\";\nimport {visitVariableStatement} from \"./visit-variable-statement.js\";\nimport {visitInterfaceDeclaration} from \"./visit-interface-declaration.js\";\nimport {visitModuleDeclaration} from \"./visit-module-declaration.js\";\nimport {visitTypeAliasDeclaration} from \"./visit-type-alias-declaration.js\";\n\nexport function visitNode({node, ...options}: EnsureNoDeclareModifierTransformerVisitorOptions<TS.Node>): TS.Node {\n\tif (options.typescript.isClassDeclaration(node)) {\n\t\treturn visitClassDeclaration({...options, node});\n\t} else if (options.typescript.isClassExpression(node)) {\n\t\treturn visitClassExpression({...options, node});\n\t} else if (options.typescript.isFunctionDeclaration(node)) {\n\t\treturn visitFunctionDeclaration({...options, node});\n\t} else if (options.typescript.isFunctionExpression(node)) {\n\t\treturn visitFunctionExpression({...options, node});\n\t} else if (options.typescript.isEnumDeclaration(node)) {\n\t\treturn visitEnumDeclaration({...options, node});\n\t} else if (options.typescript.isInterfaceDeclaration(node)) {\n\t\treturn visitInterfaceDeclaration({...options, node});\n\t} else if (options.typescript.isTypeAliasDeclaration(node)) {\n\t\treturn visitTypeAliasDeclaration({...options, node});\n\t} else if (options.typescript.isModuleDeclaration(node)) {\n\t\treturn visitModuleDeclaration({...options, node});\n\t} else if (options.typescript.isVariableStatement(node)) {\n\t\treturn visitVariableStatement({...options, node});\n\t} else {\n\t\t// Only consider root-level statements here\n\t\treturn node;\n\t}\n}\n","import color from \"ansi-colors\";\nimport {getFormattedDateTimePrefix} from \"./get-formatted-date-time-prefix.js\";\n\nexport interface LogMetrics {\n\tfinish(): void;\n}\nexport function logMetrics(message: string, fileName?: string): LogMetrics {\n\tconst uniqueMessage = `${getFormattedDateTimePrefix()}${color.green(`metrics: ${message}`)}${fileName == null ? \"\" : ` ${color.gray(`(${fileName})`)}`}`;\n\tconsole.time(uniqueMessage);\n\n\treturn {\n\t\tfinish: () => console.timeEnd(uniqueMessage)\n\t};\n}\n","import type {TS} from \"../../type/ts.js\";\nimport color from \"ansi-colors\";\nimport {getFormattedDateTimePrefix} from \"./get-formatted-date-time-prefix.js\";\n\nexport interface LogTransformationResult {\n\tfinish(sourceFile: TS.SourceFile): void;\n}\n\nfunction logTransformationStep(leadingText: string, name: string, sourceFile: TS.SourceFile, printer: TS.Printer): void {\n\tconst sourceFileWithoutRoot = sourceFile.fileName.replace(process.cwd(), \"\");\n\tconsole.log(`${getFormattedDateTimePrefix()}${color.magenta(`transformer: ${leadingText} ${name}`)} ${color.gray(`(${sourceFileWithoutRoot})`)}`);\n\tconsole.log(color.white(printer.printFile(sourceFile)));\n}\n\nexport function logTransformer(name: string, sourceFile: TS.SourceFile, printer: TS.Printer): LogTransformationResult {\n\tlogTransformationStep(\"Before\", name, sourceFile, printer);\n\treturn {\n\t\tfinish: nextSourceFile => logTransformationStep(\"After\", name, nextSourceFile, printer)\n\t};\n}\n","import type {TS} from \"../../../../../type/ts.js\";\nimport type {SourceFileBundlerVisitorOptions} from \"../source-file-bundler/source-file-bundler-visitor-options.js\";\nimport {visitNode} from \"./visitor/visit-node.js\";\nimport {shouldDebugMetrics, shouldDebugSourceFile} from \"../../../../../util/is-debug/should-debug.js\";\nimport {logMetrics} from \"../../../../../util/logging/log-metrics.js\";\nimport {logTransformer} from \"../../../../../util/logging/log-transformer.js\";\nimport {preserveMeta} from \"../../util/clone-node-with-meta.js\";\n\nexport function ensureNoDeclareModifierTransformer(options: SourceFileBundlerVisitorOptions): TS.SourceFile {\n\tconst {typescript, context, sourceFile, pluginOptions, printer} = options;\n\n\tconst fullBenchmark = shouldDebugMetrics(pluginOptions.debug, sourceFile) ? logMetrics(`Ensuring no declare modifiers`, sourceFile.fileName) : undefined;\n\n\tconst transformationLog = shouldDebugSourceFile(pluginOptions.debug, sourceFile) ? logTransformer(\"Ensuring no declare modifiers\", sourceFile, printer) : undefined;\n\n\t// Prepare some VisitorOptions\n\tconst visitorOptions = {\n\t\t...options,\n\n\t\tchildContinuation: <U extends TS.Node>(node: U): U =>\n\t\t\ttypescript.visitEachChild(\n\t\t\t\tnode,\n\t\t\t\tnextNode =>\n\t\t\t\t\tvisitNode({\n\t\t\t\t\t\t...visitorOptions,\n\t\t\t\t\t\tnode: nextNode\n\t\t\t\t\t}),\n\t\t\t\tcontext\n\t\t\t),\n\n\t\tcontinuation: <U extends TS.Node>(node: U): U =>\n\t\t\tvisitNode({\n\t\t\t\t...visitorOptions,\n\t\t\t\tnode\n\t\t\t}) as U\n\t};\n\n\tconst result = preserveMeta(\n\t\ttypescript.visitEachChild(sourceFile, nextNode => visitorOptions.continuation(nextNode), context),\n\t\tsourceFile,\n\t\toptions\n\t);\n\n\ttransformationLog?.finish(result);\n\tfullBenchmark?.finish();\n\n\treturn result;\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {StatementMergerVisitorOptions} from \"../statement-merger-visitor-options.js\";\n\nexport function visitImportDeclaration(options: StatementMergerVisitorOptions<TS.ImportDeclaration>): TS.ImportDeclaration[] | TS.ImportDeclaration | undefined {\n\tconst {node, factory, typescript} = options;\n\n\t// If the ModuleSpecifier is given and it isn't a string literal, leave it as it is\n\tif (!typescript.isStringLiteralLike(node.moduleSpecifier)) {\n\t\treturn node;\n\t}\n\n\t// Don't include binding-less imports. This doesn't make sense inside ambient modules\n\tif (node.importClause == null) {\n\t\treturn undefined;\n\t}\n\n\t// Otherwise, replace this ImportDeclaration with merged imports from the module\n\tconst replacements = options.preserveImportedModuleIfNeeded(node.moduleSpecifier.text);\n\n\tif (replacements == null || replacements.length === 0) return undefined;\n\tconst [first, ...other] = replacements;\n\n\t// Again, don't include binding-less imports. This doesn't make sense inside ambient modules\n\tif (first == null || first.importClause == null) {\n\t\treturn undefined;\n\t}\n\n\t// If there is neither a default name or a single named binding, don't preserve the import\n\tif (\n\t\tfirst.importClause.name == null &&\n\t\t(first.importClause.namedBindings == null || (!typescript.isNamespaceImport(first.importClause.namedBindings) && first.importClause.namedBindings.elements.length < 1))\n\t) {\n\t\treturn other;\n\t}\n\n\treturn [\n\t\tfactory.updateImportDeclaration(\n\t\t\tnode,\n\t\t\tnode.modifiers,\n\t\t\tfactory.updateImportClause(node.importClause, first.importClause.isTypeOnly, first.importClause.name, first.importClause.namedBindings),\n\t\t\tnode.moduleSpecifier,\n\t\t\tnode.assertClause\n\t\t),\n\t\t...other\n\t];\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {StatementMergerVisitorOptions} from \"../statement-merger-visitor-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\n\nexport function visitExportDeclaration(options: StatementMergerVisitorOptions<TS.ExportDeclaration>): TS.ExportDeclaration[] | TS.ExportDeclaration | undefined {\n\tconst {node, factory, typescript} = options;\n\n\t// If the ModuleSpecifier is given and it isn't a string literal, leave it as it is\n\tif (node.moduleSpecifier != null && !typescript.isStringLiteralLike(node.moduleSpecifier)) {\n\t\treturn node;\n\t}\n\n\t// Otherwise, replace this ExportDeclaration with merged exports from the module\n\tconst replacements = options.preserveExportedModuleIfNeeded(node.moduleSpecifier?.text, node.isTypeOnly);\n\n\tif (replacements == null || replacements.length === 0) return undefined;\n\tconst [first, ...other] = replacements;\n\n\tlet exportClause: TS.NamedExports | TS.NamespaceExport | undefined;\n\n\tif (first.exportClause != null && typescript.isNamedExports(first.exportClause)) {\n\t\texportClause =\n\t\t\tnode.exportClause != null && typescript.isNamedExports(node.exportClause)\n\t\t\t\t? factory.updateNamedExports(node.exportClause, first.exportClause.elements)\n\t\t\t\t: factory.createNamedExports(first.exportClause.elements);\n\t} else if (first.exportClause != null && typescript.isNamespaceExport?.(first.exportClause)) {\n\t\texportClause =\n\t\t\tnode.exportClause != null && typescript.isNamespaceExport?.(node.exportClause)\n\t\t\t\t? factory.updateNamespaceExport(node.exportClause, factory.createIdentifier(first.exportClause.name.text))\n\t\t\t\t: factory.createNamespaceExport(factory.createIdentifier(first.exportClause.name.text));\n\t}\n\n\treturn [preserveMeta(factory.updateExportDeclaration(node, node.modifiers, node.isTypeOnly, exportClause, node.moduleSpecifier, node.assertClause), node, options), ...other];\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {StatementMergerVisitorOptions} from \"../statement-merger-visitor-options.js\";\n\nexport function visitExportAssignment(\n\toptions: StatementMergerVisitorOptions<TS.ExportAssignment>\n): TS.ExportDeclaration[] | TS.ExportDeclaration | TS.ExportAssignment | undefined {\n\tconst {node, typescript} = options;\n\n\t// If the Expression isn't an identifier, leave the node as it is\n\tif (!typescript.isIdentifier(node.expression)) {\n\t\treturn node;\n\t}\n\n\t// Otherwise, replace this ExportDeclaration with merged exports from the module\n\treturn options.preserveExportedModuleIfNeeded(undefined, false);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {StatementMergerVisitorOptions} from \"../statement-merger-visitor-options.js\";\nimport {visitImportDeclaration} from \"./visit-import-declaration.js\";\nimport {visitExportDeclaration} from \"./visit-export-declaration.js\";\nimport {visitExportAssignment} from \"./visit-export-assignment.js\";\n\nexport function visitNode({node, ...options}: StatementMergerVisitorOptions<TS.Node>): TS.Node | TS.Node[] | undefined {\n\tif (options.typescript.isImportDeclaration(node)) {\n\t\treturn visitImportDeclaration({...options, node});\n\t} else if (options.typescript.isExportDeclaration(node)) {\n\t\treturn visitExportDeclaration({...options, node});\n\t} else if (options.typescript.isExportAssignment(node)) {\n\t\treturn visitExportAssignment({...options, node});\n\t} else {\n\t\t// Only consider root-level statements here\n\t\treturn node;\n\t}\n}\n","import {ensureHasLeadingDotAndPosix} from \"../../../../util/path/path-util.js\";\nimport type {TS} from \"../../../../type/ts.js\";\nimport {preserveParents} from \"./clone-node-with-meta.js\";\nimport type {TransformerBaseOptions} from \"../transformers/transformer-base-options.js\";\n\nexport type MergedImportDeclarationsMap = Map<string, TS.ImportDeclaration[]>;\n\nexport function getMergedImportDeclarationsForModules(options: TransformerBaseOptions): MergedImportDeclarationsMap {\n\tconst {sourceFile, typescript, factory} = options;\n\tconst imports = sourceFile.statements.filter(typescript.isImportDeclaration);\n\n\tconst moduleToImportDeclarations: MergedImportDeclarationsMap = new Map();\n\tconst namedImportsFromModulesMap: Map<string, {propertyName: string; alias: string}[][]> = new Map();\n\tconst defaultImportsFromModulesMap: Map<string, Set<string>> = new Map();\n\tconst namespaceImportsFromModulesMap: Map<string, Set<string>> = new Map();\n\n\tfor (const importDeclaration of imports) {\n\t\t// If the ModuleSpecifier is given and it isn't a string literal, skip it\n\t\tif (!typescript.isStringLiteralLike(importDeclaration.moduleSpecifier)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst specifierText = importDeclaration.moduleSpecifier.text;\n\n\t\tlet namedImportsFromModules = namedImportsFromModulesMap.get(specifierText);\n\t\tif (namedImportsFromModules == null) {\n\t\t\tnamedImportsFromModules = [[]];\n\t\t\tnamedImportsFromModulesMap.set(specifierText, namedImportsFromModules);\n\t\t}\n\n\t\tconst addAliasForNamedImport = (propertyName: string, alias: string) => {\n\t\t\tlet collectionWithProperty = namedImportsFromModules!.find(records => records.some(record => propertyName === record.propertyName && alias === record.alias));\n\t\t\tif (collectionWithProperty != null) return;\n\n\t\t\tif (propertyName === alias) {\n\t\t\t\t// append the pair to the 0-indexed collection\n\t\t\t\tconst [firstCollection] = namedImportsFromModules!;\n\t\t\t\tfirstCollection.push({propertyName, alias});\n\t\t\t} else {\n\t\t\t\t// Create a new collection\n\t\t\t\tcollectionWithProperty = [{propertyName, alias}];\n\t\t\t\tnamedImportsFromModules!.push(collectionWithProperty);\n\t\t\t}\n\t\t};\n\n\t\tlet defaultImportsFromModules = defaultImportsFromModulesMap.get(specifierText);\n\t\tif (defaultImportsFromModules == null) {\n\t\t\tdefaultImportsFromModules = new Set();\n\t\t\tdefaultImportsFromModulesMap.set(specifierText, defaultImportsFromModules);\n\t\t}\n\n\t\tlet namespaceImportsFromModules = namespaceImportsFromModulesMap.get(specifierText);\n\t\tif (namespaceImportsFromModules == null) {\n\t\t\tnamespaceImportsFromModules = new Set();\n\t\t\tnamespaceImportsFromModulesMap.set(specifierText, namespaceImportsFromModules);\n\t\t}\n\n\t\tif (importDeclaration.importClause != null) {\n\t\t\tif (importDeclaration.importClause.name != null) {\n\t\t\t\tdefaultImportsFromModules.add(importDeclaration.importClause.name.text);\n\t\t\t}\n\n\t\t\tif (importDeclaration.importClause.namedBindings != null) {\n\t\t\t\tif (typescript.isNamespaceImport(importDeclaration.importClause.namedBindings)) {\n\t\t\t\t\tnamespaceImportsFromModules.add(importDeclaration.importClause.namedBindings.name.text);\n\t\t\t\t} else {\n\t\t\t\t\tfor (const element of importDeclaration.importClause.namedBindings.elements) {\n\t\t\t\t\t\tif (element.propertyName == null) {\n\t\t\t\t\t\t\taddAliasForNamedImport(element.name.text, element.name.text);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\taddAliasForNamedImport(element.propertyName.text, element.name.text);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Add all default imports from the module (They may have different local names)\n\tfor (const [module, names] of defaultImportsFromModulesMap) {\n\t\tlet importDeclarationsForModule = moduleToImportDeclarations.get(module);\n\t\tif (importDeclarationsForModule == null) {\n\t\t\timportDeclarationsForModule = [];\n\t\t\tmoduleToImportDeclarations.set(module, importDeclarationsForModule);\n\t\t}\n\n\t\tfor (const name of names) {\n\t\t\timportDeclarationsForModule.push(\n\t\t\t\tpreserveParents(\n\t\t\t\t\tfactory.createImportDeclaration(\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tfactory.createImportClause(false, factory.createIdentifier(name), undefined),\n\t\t\t\t\t\tfactory.createStringLiteral(ensureHasLeadingDotAndPosix(module))\n\t\t\t\t\t),\n\t\t\t\t\t{typescript}\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n\n\t// Add all namespace imports from the module (They may have different local names)\n\tfor (const [module, names] of namespaceImportsFromModulesMap) {\n\t\tlet importDeclarationsForModule = moduleToImportDeclarations.get(module);\n\t\tif (importDeclarationsForModule == null) {\n\t\t\timportDeclarationsForModule = [];\n\t\t\tmoduleToImportDeclarations.set(module, importDeclarationsForModule);\n\t\t}\n\n\t\tfor (const name of names) {\n\t\t\timportDeclarationsForModule.push(\n\t\t\t\tpreserveParents(\n\t\t\t\t\tfactory.createImportDeclaration(\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tfactory.createImportClause(false, undefined, factory.createNamespaceImport(factory.createIdentifier(name))),\n\t\t\t\t\t\tfactory.createStringLiteral(ensureHasLeadingDotAndPosix(module))\n\t\t\t\t\t),\n\t\t\t\t\t{typescript}\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n\n\t// Add all named imports from the module (They may have different local names)\n\tfor (const [module, collections] of namedImportsFromModulesMap) {\n\t\tlet importDeclarationsForModule = moduleToImportDeclarations.get(module);\n\t\tif (importDeclarationsForModule == null) {\n\t\t\timportDeclarationsForModule = [];\n\t\t\tmoduleToImportDeclarations.set(module, importDeclarationsForModule);\n\t\t}\n\n\t\tfor (const collection of collections) {\n\t\t\t// Don't add empty collections\n\t\t\tif (collection.length < 1) continue;\n\n\t\t\timportDeclarationsForModule.push(\n\t\t\t\tpreserveParents(\n\t\t\t\t\tfactory.createImportDeclaration(\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tfactory.createImportClause(\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\tfactory.createNamedImports(\n\t\t\t\t\t\t\t\tcollection.map(record =>\n\t\t\t\t\t\t\t\t\trecord.propertyName !== record.alias\n\t\t\t\t\t\t\t\t\t\t? factory.createImportSpecifier(false, factory.createIdentifier(record.propertyName), factory.createIdentifier(record.alias))\n\t\t\t\t\t\t\t\t\t\t: factory.createImportSpecifier(false, undefined, factory.createIdentifier(record.alias))\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t),\n\t\t\t\t\t\tfactory.createStringLiteral(ensureHasLeadingDotAndPosix(module))\n\t\t\t\t\t),\n\t\t\t\t\t{typescript}\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n\n\treturn moduleToImportDeclarations;\n}\n","import {ensureHasLeadingDotAndPosix} from \"../../../../util/path/path-util.js\";\nimport type {TS} from \"../../../../type/ts.js\";\nimport {preserveParents} from \"./clone-node-with-meta.js\";\nimport type {TransformerBaseOptions} from \"../transformers/transformer-base-options.js\";\n\nexport type MergedExportDeclarationsMap = Map<string | undefined, TS.ExportDeclaration[]>;\nexport type ExportedAliasedBindingsForModuleMap = Map<string | undefined, Set<string>>;\n\nexport interface GetMergedExportDeclarationsForModulesResult {\n\tmergedExports: MergedExportDeclarationsMap;\n\texportedBindings: ExportedAliasedBindingsForModuleMap;\n}\n\nexport interface GetMergedExportDeclarationsForModulesOptions extends TransformerBaseOptions {\n\tinputBindings?: ExportedAliasedBindingsForModuleMap;\n\tisTypeOnly: boolean;\n}\n\n/**\n * Merges the exports based on the given Statements\n */\nexport function getMergedExportDeclarationsForModules(options: GetMergedExportDeclarationsForModulesOptions): GetMergedExportDeclarationsForModulesResult {\n\tconst {sourceFile, factory, typescript, isTypeOnly, inputBindings} = options;\n\tconst exports = sourceFile.statements.filter(typescript.isExportDeclaration);\n\tconst exportAssignments = sourceFile.statements.filter(typescript.isExportAssignment);\n\n\tconst moduleToExportDeclarations: MergedExportDeclarationsMap = new Map();\n\tconst moduleSpecifierToAliasedExportedBindings = new Map<string | undefined, Map<string, Set<string>>>();\n\tconst moduleSpecifierToExportedBindings: ExportedAliasedBindingsForModuleMap = new Map();\n\tconst namedNamespaceExportsFromModulesMap: Map<string, Set<string>> = new Map();\n\tconst reExportedSpecifiers = new Set<string | undefined>();\n\n\tfor (const exportAssignment of exportAssignments) {\n\t\tlet aliasedExportedBindings = moduleSpecifierToAliasedExportedBindings.get(undefined);\n\t\tlet exportedBindings = moduleSpecifierToExportedBindings.get(undefined);\n\n\t\tif (aliasedExportedBindings == null) {\n\t\t\taliasedExportedBindings = new Map();\n\t\t\tmoduleSpecifierToAliasedExportedBindings.set(undefined, aliasedExportedBindings);\n\t\t}\n\n\t\tif (exportedBindings == null) {\n\t\t\texportedBindings = new Set();\n\t\t\tmoduleSpecifierToExportedBindings.set(undefined, exportedBindings);\n\t\t}\n\n\t\t// If the Expression isn't an identifier, skip this ExportAssignment\n\t\tif (!typescript.isIdentifier(exportAssignment.expression)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst propertyName = exportAssignment.expression.text;\n\t\tconst alias = \"default\";\n\t\tlet setForExportedBinding = aliasedExportedBindings.get(propertyName);\n\t\tif (setForExportedBinding == null) {\n\t\t\tsetForExportedBinding = new Set();\n\t\t\taliasedExportedBindings.set(propertyName, setForExportedBinding);\n\t\t}\n\t\tsetForExportedBinding.add(alias);\n\t\texportedBindings.add(alias);\n\t}\n\n\tfor (const exportDeclaration of exports) {\n\t\tif (Boolean(exportDeclaration.isTypeOnly) !== Boolean(isTypeOnly)) continue;\n\n\t\t// If the ModuleSpecifier is given and it isn't a string literal, leave it as it is\n\t\tif (exportDeclaration.moduleSpecifier != null && !typescript.isStringLiteralLike(exportDeclaration.moduleSpecifier)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst specifierText = exportDeclaration.moduleSpecifier?.text;\n\n\t\tlet aliasedExportedBindings = moduleSpecifierToAliasedExportedBindings.get(specifierText);\n\t\tlet exportedBindings = moduleSpecifierToExportedBindings.get(specifierText);\n\t\tlet namedNamespaceExports = specifierText == null ? undefined : namedNamespaceExportsFromModulesMap.get(specifierText);\n\n\t\tif (aliasedExportedBindings == null) {\n\t\t\taliasedExportedBindings = new Map();\n\t\t\tmoduleSpecifierToAliasedExportedBindings.set(specifierText, aliasedExportedBindings);\n\t\t}\n\n\t\tif (exportedBindings == null) {\n\t\t\texportedBindings = new Set();\n\t\t\tmoduleSpecifierToExportedBindings.set(specifierText, exportedBindings);\n\t\t}\n\n\t\tif (namedNamespaceExports == null && specifierText != null) {\n\t\t\tnamedNamespaceExports = new Set();\n\t\t\tnamedNamespaceExportsFromModulesMap.set(specifierText, namedNamespaceExports);\n\t\t}\n\n\t\tif (exportDeclaration.exportClause != null) {\n\t\t\tif (typescript.isNamedExports(exportDeclaration.exportClause)) {\n\t\t\t\t// Take all aliased exports\n\t\t\t\tfor (const element of exportDeclaration.exportClause.elements) {\n\t\t\t\t\tconst propertyName = element.propertyName != null ? element.propertyName.text : element.name.text;\n\t\t\t\t\tconst alias = element.name.text;\n\t\t\t\t\tlet setForExportedBinding = aliasedExportedBindings.get(propertyName);\n\t\t\t\t\tif (setForExportedBinding == null) {\n\t\t\t\t\t\tsetForExportedBinding = new Set();\n\t\t\t\t\t\taliasedExportedBindings.set(propertyName, setForExportedBinding);\n\t\t\t\t\t}\n\t\t\t\t\tsetForExportedBinding.add(alias);\n\t\t\t\t\texportedBindings.add(alias);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Otherwise, it must be a named NamespaceExport (such as 'export * as Foo from \"...\"')\n\t\t\telse if (namedNamespaceExports != null) {\n\t\t\t\tnamedNamespaceExports.add(exportDeclaration.exportClause.name.text);\n\t\t\t}\n\t\t}\n\t\t// If it has no exportClause, it's a reexport (such as export * from \"./<specifier>.js\").\n\t\telse {\n\t\t\t// Don't include the same clause twice\n\t\t\tif (reExportedSpecifiers.has(specifierText)) continue;\n\t\t\treExportedSpecifiers.add(specifierText);\n\n\t\t\tlet exportDeclarationsForModule = moduleToExportDeclarations.get(specifierText);\n\t\t\tif (exportDeclarationsForModule == null) {\n\t\t\t\texportDeclarationsForModule = [];\n\t\t\t\tmoduleToExportDeclarations.set(specifierText, exportDeclarationsForModule);\n\t\t\t}\n\t\t\texportDeclarationsForModule.push(exportDeclaration);\n\t\t}\n\t}\n\n\tfor (const [specifier, exportedBindings] of moduleSpecifierToAliasedExportedBindings) {\n\t\tif (exportedBindings.size === 0) continue;\n\n\t\tconst exportSpecifiers: TS.ExportSpecifier[] = [];\n\t\tconst inputBindingsForSpecifier = inputBindings?.get(specifier);\n\t\tconst bindings = new Set<string>();\n\n\t\tfor (const [propertyName, aliases] of exportedBindings) {\n\t\t\tfor (const alias of aliases) {\n\t\t\t\t// If a binding, A, is exported already, it cannot be exported again.\n\t\t\t\tif (bindings.has(alias) || Boolean(inputBindingsForSpecifier?.has(alias))) continue;\n\t\t\t\tbindings.add(alias);\n\n\t\t\t\tif (propertyName === alias) {\n\t\t\t\t\texportSpecifiers.push(factory.createExportSpecifier(false, undefined, alias));\n\t\t\t\t} else {\n\t\t\t\t\texportSpecifiers.push(factory.createExportSpecifier(false, propertyName, alias));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// If no export specifiers were constucted, don't create a new ExportDeclaration\n\t\tif (exportSpecifiers.length < 1) continue;\n\n\t\tlet exportDeclarationsForModule = moduleToExportDeclarations.get(specifier);\n\t\tif (exportDeclarationsForModule == null) {\n\t\t\texportDeclarationsForModule = [];\n\t\t\tmoduleToExportDeclarations.set(specifier, exportDeclarationsForModule);\n\t\t}\n\t\texportDeclarationsForModule.push(\n\t\t\tpreserveParents(\n\t\t\t\tfactory.createExportDeclaration(\n\t\t\t\t\tundefined,\n\t\t\t\t\tisTypeOnly,\n\t\t\t\t\tfactory.createNamedExports(exportSpecifiers),\n\t\t\t\t\tspecifier == null ? undefined : factory.createStringLiteral(ensureHasLeadingDotAndPosix(specifier))\n\t\t\t\t),\n\t\t\t\t{typescript}\n\t\t\t)\n\t\t);\n\t}\n\n\t// Add all named namespace exports from the module (They may have different local names)\n\tfor (const [specifier, names] of namedNamespaceExportsFromModulesMap) {\n\t\tlet exportDeclarationsForModule = moduleToExportDeclarations.get(specifier);\n\t\tif (exportDeclarationsForModule == null) {\n\t\t\texportDeclarationsForModule = [];\n\t\t\tmoduleToExportDeclarations.set(specifier, exportDeclarationsForModule);\n\t\t}\n\n\t\tfor (const name of names) {\n\t\t\texportDeclarationsForModule.push(\n\t\t\t\tpreserveParents(\n\t\t\t\t\tfactory.createExportDeclaration(\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tisTypeOnly,\n\t\t\t\t\t\tfactory.createNamespaceExport(factory.createIdentifier(name)),\n\t\t\t\t\t\tfactory.createStringLiteral(ensureHasLeadingDotAndPosix(specifier))\n\t\t\t\t\t),\n\t\t\t\t\t{typescript}\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n\n\treturn {\n\t\tmergedExports: moduleToExportDeclarations,\n\t\texportedBindings: moduleSpecifierToExportedBindings\n\t};\n}\n","import path from \"crosspath\";\nimport type {KnownExtension} from \"../../../../constant/constant.js\";\nimport type {TS} from \"../../../../type/ts.js\";\nimport type {SupportedExtensions} from \"../../../../util/get-supported-extensions/get-supported-extensions.js\";\n\nexport function nodeHasSupportedExtension<T extends TS.ImportDeclaration | TS.ExportDeclaration | TS.Statement>(\n\tnode: T,\n\ttypescript: typeof TS,\n\textensions: SupportedExtensions\n): boolean {\n\t// Allow nodes for which there are no module specifiers or in case they aren't string literals for some reason.\n\tif (!(\"moduleSpecifier\" in node)) return true;\n\tif (node.moduleSpecifier == null || !typescript.isStringLiteralLike(node.moduleSpecifier)) return true;\n\n\treturn path.extname(node.moduleSpecifier.text) === \"\" || extensions.has(path.extname(node.moduleSpecifier.text) as KnownExtension);\n}\n","import type {TS} from \"../../../../../type/ts.js\";\nimport type {StatementMergerVisitorOptions} from \"./statement-merger-visitor-options.js\";\nimport {visitNode} from \"./visitor/visit-node.js\";\nimport {getMergedImportDeclarationsForModules} from \"../../util/get-merged-import-declarations-for-modules.js\";\nimport {getMergedExportDeclarationsForModules} from \"../../util/get-merged-export-declarations-for-modules.js\";\nimport {shouldDebugMetrics, shouldDebugSourceFile} from \"../../../../../util/is-debug/should-debug.js\";\nimport {hasExportModifier} from \"../../util/modifier-util.js\";\nimport {logMetrics} from \"../../../../../util/logging/log-metrics.js\";\nimport {logTransformer} from \"../../../../../util/logging/log-transformer.js\";\nimport {preserveMeta} from \"../../util/clone-node-with-meta.js\";\nimport type {DeclarationTransformer} from \"../../declaration-bundler-options.js\";\nimport type {StatementMergerOptions} from \"./statement-merger-options.js\";\nimport {nodeHasSupportedExtension} from \"../../util/node-has-supported-extension.js\";\n\nexport function statementMerger({markAsModuleIfNeeded}: StatementMergerOptions): DeclarationTransformer {\n\treturn options => {\n\t\tconst {factory, typescript, context, sourceFile, pluginOptions, printer, extensions} = options;\n\n\t\tconst fullBenchmark = shouldDebugMetrics(pluginOptions.debug, sourceFile) ? logMetrics(`Statement merging`, sourceFile.fileName) : undefined;\n\n\t\tconst transformationLog = shouldDebugSourceFile(pluginOptions.debug, sourceFile) ? logTransformer(\"Statement merging\", sourceFile, printer) : undefined;\n\n\t\t// Merge all of the imports\n\t\tconst mergedImports = getMergedImportDeclarationsForModules(options);\n\t\tconst {mergedExports, exportedBindings} = getMergedExportDeclarationsForModules({...options, isTypeOnly: false});\n\t\tconst {mergedExports: mergedTypeOnlyExports} = getMergedExportDeclarationsForModules({...options, inputBindings: exportedBindings, isTypeOnly: true});\n\t\tconst includedImportedModules = new Set<string>();\n\t\tconst includedExportedModules = new Set<string | undefined>();\n\t\tconst includedTypeOnlyExportedModules = new Set<string | undefined>();\n\n\t\t// Prepare some VisitorOptions\n\t\tconst visitorOptions: Omit<StatementMergerVisitorOptions<TS.Node>, \"node\"> = {\n\t\t\t...options,\n\n\t\t\tpreserveImportedModuleIfNeeded(module: string): TS.ImportDeclaration[] | undefined {\n\t\t\t\tif (includedImportedModules.has(module)) return undefined;\n\t\t\t\tincludedImportedModules.add(module);\n\t\t\t\treturn mergedImports.get(module);\n\t\t\t},\n\n\t\t\tpreserveExportedModuleIfNeeded(module: string | undefined, typeOnly: boolean): TS.ExportDeclaration[] | undefined {\n\t\t\t\tconst selectedIncludedExportedModules = typeOnly ? includedTypeOnlyExportedModules : includedExportedModules;\n\t\t\t\tconst selectedMergedExports = typeOnly ? mergedTypeOnlyExports : mergedExports;\n\n\t\t\t\tif (selectedIncludedExportedModules.has(module)) return undefined;\n\t\t\t\tselectedIncludedExportedModules.add(module);\n\t\t\t\treturn selectedMergedExports.get(module);\n\t\t\t},\n\n\t\t\tchildContinuation: <U extends TS.Node>(node: U): U | undefined =>\n\t\t\t\ttypescript.visitEachChild(\n\t\t\t\t\tnode,\n\t\t\t\t\tnextNode =>\n\t\t\t\t\t\tvisitNode({\n\t\t\t\t\t\t\t...visitorOptions,\n\t\t\t\t\t\t\tnode: nextNode\n\t\t\t\t\t\t}),\n\t\t\t\t\tcontext\n\t\t\t\t),\n\n\t\t\tcontinuation: <U extends TS.Node>(node: U): U | undefined =>\n\t\t\t\tvisitNode({\n\t\t\t\t\t...visitorOptions,\n\t\t\t\t\tnode\n\t\t\t\t}) as U | undefined\n\t\t};\n\n\t\tlet result = typescript.visitEachChild(sourceFile, nextNode => visitorOptions.continuation(nextNode), context);\n\t\tconst importDeclarations = result.statements.filter(typescript.isImportDeclaration);\n\t\tconst exportDeclarations = result.statements.filter(statement => typescript.isExportDeclaration(statement) || typescript.isExportAssignment(statement));\n\t\tconst statementsWithExportModifier = result.statements.filter(statement => hasExportModifier(statement, typescript));\n\n\t\tconst otherStatements = result.statements.filter(\n\t\t\tstatement => !typescript.isImportDeclaration(statement) && !typescript.isExportDeclaration(statement) && !typescript.isExportAssignment(statement)\n\t\t);\n\n\t\tconst importDeclarationsWithSupportedExtensions = importDeclarations.filter(importDeclaration => nodeHasSupportedExtension(importDeclaration, typescript, extensions));\n\t\tconst exportDeclarationsWithSupportedExtensions = exportDeclarations.filter(exportDeclaration => nodeHasSupportedExtension(exportDeclaration, typescript, extensions));\n\t\tconst importExportWithSupportedExtensionsCount =\n\t\t\timportDeclarationsWithSupportedExtensions.length + exportDeclarationsWithSupportedExtensions.length + statementsWithExportModifier.length;\n\n\t\tresult = preserveMeta(\n\t\t\tfactory.updateSourceFile(\n\t\t\t\tresult,\n\t\t\t\t[\n\t\t\t\t\t...importDeclarations,\n\t\t\t\t\t...otherStatements,\n\t\t\t\t\t...exportDeclarations,\n\t\t\t\t\t...(importExportWithSupportedExtensionsCount === 0 && markAsModuleIfNeeded\n\t\t\t\t\t\t? // Create an 'export {}' declaration to mark the declaration file as module-based if it has no imports or exports\n\t\t\t\t\t\t  [factory.createExportDeclaration(undefined, false, factory.createNamedExports([]))]\n\t\t\t\t\t\t: [])\n\t\t\t\t],\n\t\t\t\tresult.isDeclarationFile,\n\t\t\t\tresult.referencedFiles,\n\t\t\t\tresult.typeReferenceDirectives,\n\t\t\t\tresult.hasNoDefaultLib,\n\t\t\t\tresult.libReferenceDirectives\n\t\t\t),\n\t\t\tresult,\n\t\t\toptions\n\t\t);\n\n\t\ttransformationLog?.finish(result);\n\t\tfullBenchmark?.finish();\n\n\t\treturn result;\n\t};\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {InlineNamespaceModuleBlockVisitorOptions} from \"../inline-namespace-module-block-visitor-options.js\";\nimport {cloneNodeWithMeta} from \"../../../util/clone-node-with-meta.js\";\n\nexport function visitImportDeclaration(options: InlineNamespaceModuleBlockVisitorOptions<TS.ImportDeclaration>): undefined {\n\tconst {node, intentToAddImportDeclaration} = options;\n\tintentToAddImportDeclaration(cloneNodeWithMeta(node, options));\n\n\treturn undefined;\n}\n","import {stripKnownExtension} from \"../../../../util/path/path-util.js\";\nimport {camelCase} from \"@wessberg/stringutil\";\nimport path from \"crosspath\";\n\nexport type GenerateIdentifierNameHint = \"class\" | \"namespace\" | \"function\";\n\nfunction generateHintSuffix(hint: GenerateIdentifierNameHint): string {\n\tswitch (hint) {\n\t\tcase \"class\":\n\t\t\treturn \"Class\";\n\t\tcase \"function\":\n\t\t\treturn \"Func\";\n\t\tcase \"namespace\":\n\t\t\treturn \"NS\";\n\t}\n}\n\n/**\n * Generates an identifier based on the given module name\n */\nexport function generateIdentifierName(module: string, hint: GenerateIdentifierNameHint): string {\n\treturn `${camelCase(stripKnownExtension(path.basename(module)))}${generateHintSuffix(hint)}`;\n}\n","import type {LexicalEnvironment} from \"../transformers/deconflicter/deconflicter-options.js\";\n\nexport function addBindingToLexicalEnvironment(lexicalEnvironment: LexicalEnvironment, originalSourceFileName: string, value: string, oldValue: string = value): void {\n\tlexicalEnvironment.bindings.set(oldValue, {originalSourceFileName, value});\n}\n\nexport function removeBindingFromLexicalEnvironment(lexicalEnvironment: LexicalEnvironment, key: string): void {\n\tlexicalEnvironment.bindings.delete(key);\n}\n","import type {LexicalEnvironment} from \"../transformers/deconflicter/deconflicter-options.js\";\n\nexport const DECONFLICT_SUFFIX = \"$\";\nconst RESERVED_WORDS = new Set([\"default\"]);\n\nexport function ensureNonreservedWord(word: string): string {\n\tif (RESERVED_WORDS.has(word)) {\n\t\treturn `__${word}`;\n\t}\n\treturn word;\n}\n\nexport function generateUniqueBinding(lexicalEnvironment: LexicalEnvironment, candidate: string): string {\n\tlet counter = -1;\n\n\tif (lexicalEnvironment.bindings.has(candidate)) {\n\t\tconst {value} = lexicalEnvironment.bindings.get(candidate)!;\n\n\t\t// If the bound value isn't identical to the candidate, it has been deconflicted previously.\n\t\t// Start from this value instead\n\t\tif (value !== candidate) {\n\t\t\tcounter = parseInt(value.slice(candidate.length + DECONFLICT_SUFFIX.length));\n\t\t}\n\n\t\treturn `${candidate}${DECONFLICT_SUFFIX}${counter + 1}`;\n\t}\n\n\tif (lexicalEnvironment.parent == null) {\n\t\treturn candidate;\n\t}\n\n\treturn generateUniqueBinding(lexicalEnvironment.parent, candidate);\n}\n","import type {LexicalEnvironment} from \"../transformers/deconflicter/deconflicter-options.js\";\n\nexport function isIdentifierFree(lexicalEnvironment: LexicalEnvironment, identifier: string, originalSourceFileName: string, isInternalAlias = false): boolean {\n\t// So long as the current lexical environment doesn't already define the provided identifier,\n\t// it can be declared, even if it may shadow an existing identifier from the parent chain of Lexical environments\n\tconst binding = lexicalEnvironment.bindings.get(identifier);\n\n\t// if there is no binding, the identifier is free\n\tif (binding == null) return true;\n\n\t// Otherwise, the identifier is free if and only if it was originally declared in the same SourceFile (in which case it follows the\n\t// declaration merging rules outlined here: https://www.typescriptlang.org/docs/handbook/declaration-merging.html\n\treturn !isInternalAlias && binding.originalSourceFileName === originalSourceFileName;\n}\n","import type {SafeNode} from \"../../../../type/safe-node.js\";\nimport type {TS} from \"../../../../type/ts.js\";\nimport {getOriginalNode} from \"./get-original-node.js\";\n\nexport function getOriginalSourceFile<T extends SafeNode>(node: T, currentSourceFile: TS.SourceFile, typescript: typeof TS): TS.SourceFile {\n\tconst originalNode = getOriginalNode(node, typescript);\n\tlet sourceFile: TS.SourceFile | undefined = originalNode.getSourceFile();\n\tif (sourceFile != null) return sourceFile;\n\n\tif (originalNode._parent != null) {\n\t\tif (originalNode._parent.kind === typescript.SyntaxKind.SourceFile) {\n\t\t\treturn originalNode._parent as TS.SourceFile;\n\t\t}\n\t\tsourceFile = originalNode._parent?.getSourceFile();\n\t}\n\treturn sourceFile ?? currentSourceFile;\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {InlineNamespaceModuleBlockVisitorOptions} from \"../inline-namespace-module-block-visitor-options.js\";\nimport {preserveParents} from \"../../../util/clone-node-with-meta.js\";\nimport {generateIdentifierName} from \"../../../util/generate-identifier-name.js\";\nimport {addBindingToLexicalEnvironment} from \"../../../util/add-binding-to-lexical-environment.js\";\nimport {generateUniqueBinding} from \"../../../util/generate-unique-binding.js\";\nimport {isIdentifierFree} from \"../../../util/is-identifier-free.js\";\nimport {getOriginalSourceFile} from \"../../../util/get-original-source-file.js\";\n\nexport function visitExportDeclaration(options: InlineNamespaceModuleBlockVisitorOptions<TS.ExportDeclaration>): TS.ExportDeclaration | undefined {\n\tconst {node, typescript, factory, host, lexicalEnvironment, sourceFile, intentToAddImportDeclaration} = options;\n\n\tif (node.moduleSpecifier == null || !typescript.isStringLiteralLike(node.moduleSpecifier)) {\n\t\treturn node;\n\t}\n\n\t// Otherwise, we'll have to generate an ImportDeclaration outside the ModuleBlock and reference it here\n\n\tif (node.exportClause == null || typescript.isNamespaceExport?.(node.exportClause)) {\n\t\tconst bindingName = generateIdentifierName(node.moduleSpecifier.text, \"namespace\");\n\t\taddBindingToLexicalEnvironment(lexicalEnvironment, sourceFile.fileName, bindingName);\n\n\t\tconst resolveResult = host.resolve(node.moduleSpecifier.text, sourceFile.fileName);\n\t\tconst resolvedFileName = resolveResult?.resolvedAmbientFileName ?? resolveResult?.resolvedFileName;\n\t\tif (resolvedFileName == null) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst resolvedSourceFile = options.host.getSourceFile(resolvedFileName);\n\t\tif (resolvedSourceFile == null) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst originalSourceFile = getOriginalSourceFile(node, sourceFile, typescript);\n\n\t\tconst exportedBindings = [...((resolvedSourceFile as {symbol?: {exports?: Map<string, unknown>}}).symbol?.exports?.keys() ?? [])].map(binding =>\n\t\t\tbinding !== \"default\" && isIdentifierFree(lexicalEnvironment, binding, originalSourceFile.fileName)\n\t\t\t\t? [binding, binding]\n\t\t\t\t: [binding, generateUniqueBinding(lexicalEnvironment, binding === \"default\" ? \"_default\" : binding)]\n\t\t);\n\n\t\tconst namedImports = factory.createNamedImports(\n\t\t\texportedBindings.map(([name, deconflictedName]) =>\n\t\t\t\tfactory.createImportSpecifier(false, name === deconflictedName ? undefined : factory.createIdentifier(name), factory.createIdentifier(deconflictedName))\n\t\t\t)\n\t\t);\n\n\t\tintentToAddImportDeclaration(\n\t\t\tfactory.createImportDeclaration(undefined, factory.createImportClause(false, undefined, namedImports), factory.createStringLiteral(node.moduleSpecifier.text))\n\t\t);\n\n\t\tconst namedExports = factory.createNamedExports(\n\t\t\texportedBindings.map(([name, deconflictedName]) =>\n\t\t\t\tfactory.createExportSpecifier(false, name === deconflictedName ? undefined : factory.createIdentifier(deconflictedName), factory.createIdentifier(name))\n\t\t\t)\n\t\t);\n\n\t\treturn preserveParents(factory.updateExportDeclaration(node, node.modifiers, node.isTypeOnly, namedExports, undefined, node.assertClause), options);\n\t}\n\n\treturn node;\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {InlineNamespaceModuleBlockVisitorOptions} from \"../inline-namespace-module-block-visitor-options.js\";\nimport {cloneNodeWithMeta} from \"../../../util/clone-node-with-meta.js\";\n\nexport function visitModuleDeclaration(options: InlineNamespaceModuleBlockVisitorOptions<TS.ModuleDeclaration>): undefined {\n\tconst {node, intentToAddModuleDeclaration} = options;\n\tintentToAddModuleDeclaration(cloneNodeWithMeta(node, options));\n\n\treturn undefined;\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {InlineNamespaceModuleBlockVisitorOptions} from \"../inline-namespace-module-block-visitor-options.js\";\nimport {visitImportDeclaration} from \"./visit-import-declaration.js\";\nimport {visitExportDeclaration} from \"./visit-export-declaration.js\";\nimport {visitModuleDeclaration} from \"./visit-module-declaration.js\";\n\nexport function visitNode({node, ...options}: InlineNamespaceModuleBlockVisitorOptions<TS.Node>): TS.Node | undefined {\n\tif (options.typescript.isImportDeclaration(node)) {\n\t\treturn visitImportDeclaration({...options, node});\n\t} else if (options.typescript.isExportDeclaration(node)) {\n\t\treturn visitExportDeclaration({...options, node});\n\t} else if (options.typescript.isModuleDeclaration(node)) {\n\t\treturn visitModuleDeclaration({...options, node});\n\t} else {\n\t\t// Only consider root-level statements here\n\t\treturn node;\n\t}\n}\n","import type {TS} from \"../../../../../type/ts.js\";\nimport {visitNode} from \"./visitor/visit-node.js\";\nimport {shouldDebugMetrics, shouldDebugSourceFile} from \"../../../../../util/is-debug/should-debug.js\";\nimport {logMetrics} from \"../../../../../util/logging/log-metrics.js\";\nimport {logTransformer} from \"../../../../../util/logging/log-transformer.js\";\nimport {preserveMeta} from \"../../util/clone-node-with-meta.js\";\nimport type {DeclarationTransformer} from \"../../declaration-bundler-options.js\";\nimport type {InlineNamespaceModuleBlockOptions} from \"./inline-namespace-module-block-options.js\";\n\nexport function inlineNamespaceModuleBlockTransformer({intentToAddImportDeclaration, intentToAddModuleDeclaration}: InlineNamespaceModuleBlockOptions): DeclarationTransformer {\n\treturn options => {\n\t\tconst {typescript, context, sourceFile, pluginOptions, printer} = options;\n\n\t\tconst fullBenchmark = shouldDebugMetrics(pluginOptions.debug, sourceFile) ? logMetrics(`Inlining ModuleBlock to be wrapped in a Namespace`, sourceFile.fileName) : undefined;\n\n\t\tconst transformationLog = shouldDebugSourceFile(pluginOptions.debug, sourceFile)\n\t\t\t? logTransformer(\"Inlining ModuleBlock to be wrapped in a Namespace\", sourceFile, printer)\n\t\t\t: undefined;\n\n\t\t// Prepare some VisitorOptions\n\t\tconst visitorOptions = {\n\t\t\t...options,\n\t\t\tintentToAddImportDeclaration,\n\t\t\tintentToAddModuleDeclaration,\n\n\t\t\tchildContinuation: <U extends TS.Node>(node: U): U =>\n\t\t\t\ttypescript.visitEachChild(\n\t\t\t\t\tnode,\n\t\t\t\t\tnextNode =>\n\t\t\t\t\t\tvisitNode({\n\t\t\t\t\t\t\t...visitorOptions,\n\t\t\t\t\t\t\tnode: nextNode\n\t\t\t\t\t\t}),\n\t\t\t\t\tcontext\n\t\t\t\t),\n\n\t\t\tcontinuation: <U extends TS.Node>(node: U): U =>\n\t\t\t\tvisitNode({\n\t\t\t\t\t...visitorOptions,\n\t\t\t\t\tnode\n\t\t\t\t}) as U\n\t\t};\n\n\t\tconst result = preserveMeta(\n\t\t\ttypescript.visitEachChild(sourceFile, nextNode => visitorOptions.continuation(nextNode), context),\n\t\t\tsourceFile,\n\t\t\toptions\n\t\t);\n\n\t\ttransformationLog?.finish(result);\n\t\tfullBenchmark?.finish();\n\n\t\treturn result;\n\t};\n}\n","import type {ModuleMergerVisitorOptions, VisitResult} from \"../module-merger-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {generateModuleSpecifier} from \"../../../util/generate-module-specifier.js\";\nimport {preserveMeta, preserveParents, preserveSymbols} from \"../../../util/clone-node-with-meta.js\";\nimport {ensureHasDeclareModifier} from \"../../../util/modifier-util.js\";\nimport {cloneLexicalEnvironment} from \"../../../util/clone-lexical-environment.js\";\nimport {ensureNoDeclareModifierTransformer} from \"../../ensure-no-declare-modifier-transformer/ensure-no-declare-modifier-transformer.js\";\nimport {statementMerger} from \"../../statement-merger/statement-merger.js\";\nimport {inlineNamespaceModuleBlockTransformer} from \"../../inline-namespace-module-block-transformer/inline-namespace-module-block-transformer.js\";\n\nexport interface GenerateExportDeclarationsOptions extends Omit<ModuleMergerVisitorOptions<TS.ExportDeclaration>, \"node\"> {}\n\nfunction generateExportDeclarations(options: GenerateExportDeclarationsOptions, exportDeclarations: TS.ExportDeclaration[] = []): TS.ExportDeclaration[] {\n\tconst {sourceFile, sourceFileToExportedSymbolSet, factory, typescript} = options;\n\tconst exportedSymbols = sourceFileToExportedSymbolSet.get(sourceFile.fileName) ?? [];\n\tfor (const symbol of exportedSymbols) {\n\t\tconst matchingSourceFile = symbol.moduleSpecifier == null ? undefined : options.getMatchingSourceFile(symbol.moduleSpecifier, sourceFile);\n\t\tconst generatedModuleSpecifier =\n\t\t\tsymbol.moduleSpecifier == null\n\t\t\t\t? undefined\n\t\t\t\t: generateModuleSpecifier({\n\t\t\t\t\t\t...options,\n\t\t\t\t\t\tfrom: sourceFile.fileName,\n\t\t\t\t\t\tmoduleSpecifier: symbol.moduleSpecifier\n\t\t\t\t  });\n\n\t\t// If it is a NamespaceExport, we may need to recursively add all exports for the referenced SourceFiles\n\t\tif (\"isNamespaceExport\" in symbol) {\n\t\t\t// If no SourceFile was matched, add the Namespace Export directly.\n\t\t\t// If the generated moduleSpecifier is null, that's because it is a self-reference, in which case the 'export *' declaration must be skipped\n\t\t\t// in favor of all other named export bindings that will included anyway\n\t\t\tif (matchingSourceFile == null && generatedModuleSpecifier != null) {\n\t\t\t\texportDeclarations.push(preserveParents(factory.createExportDeclaration(undefined, false, undefined, factory.createStringLiteral(generatedModuleSpecifier)), {typescript}));\n\t\t\t}\n\n\t\t\t// Otherwise, recursively add all exports for the reexported module\n\t\t\telse if (matchingSourceFile != null) {\n\t\t\t\tgenerateExportDeclarations(\n\t\t\t\t\t{\n\t\t\t\t\t\t...options,\n\t\t\t\t\t\tsourceFile: matchingSourceFile\n\t\t\t\t\t},\n\t\t\t\t\texportDeclarations\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// Otherwise, we can just add an ExportDeclaration with an ExportSpecifier\n\t\telse {\n\t\t\tconst exportSpecifier = factory.createExportSpecifier(\n\t\t\t\tfalse,\n\t\t\t\tsymbol.propertyName.text === symbol.name.text ? undefined : factory.createIdentifier(symbol.propertyName.text),\n\t\t\t\tfactory.createIdentifier(symbol.name.text)\n\t\t\t);\n\n\t\t\texportDeclarations.push(\n\t\t\t\tpreserveParents(\n\t\t\t\t\tfactory.createExportDeclaration(\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tsymbol.isTypeOnly,\n\t\t\t\t\t\tfactory.createNamedExports([exportSpecifier]),\n\t\t\t\t\t\tsymbol.moduleSpecifier == null || generatedModuleSpecifier == null || matchingSourceFile != null ? undefined : factory.createStringLiteral(generatedModuleSpecifier)\n\t\t\t\t\t),\n\t\t\t\t\t{typescript}\n\t\t\t\t)\n\t\t\t);\n\t\t\tconst propertyName = exportSpecifier.propertyName ?? exportSpecifier.name;\n\t\t\tpreserveSymbols(propertyName, symbol.propertyName ?? symbol.name, options);\n\t\t}\n\t}\n\treturn exportDeclarations;\n}\n\nexport function visitExportDeclaration(options: ModuleMergerVisitorOptions<TS.ExportDeclaration>): VisitResult<TS.ExportDeclaration> {\n\tconst {node, factory, typescript} = options;\n\tconst moduleSpecifier = node.moduleSpecifier == null || !typescript.isStringLiteralLike(node.moduleSpecifier) ? undefined : node.moduleSpecifier.text;\n\tconst updatedModuleSpecifier =\n\t\tmoduleSpecifier == null\n\t\t\t? undefined\n\t\t\t: generateModuleSpecifier({\n\t\t\t\t\t...options,\n\t\t\t\t\tfrom: options.sourceFile.fileName,\n\t\t\t\t\tmoduleSpecifier\n\t\t\t  });\n\n\tconst matchingSourceFile = moduleSpecifier == null ? undefined : options.getMatchingSourceFile(moduleSpecifier, options.sourceFile);\n\tconst payload = {\n\t\tmoduleSpecifier,\n\t\tupdatedModuleSpecifier,\n\t\tmatchingSourceFile,\n\t\tisTypeOnly: node.isTypeOnly\n\t};\n\n\tconst contResult = options.childContinuation(node, payload);\n\n\t// If no SourceFile was resolved\n\tif (matchingSourceFile == null) {\n\t\t// If the module specifier didn't change, preserve the export as it is.\n\t\tif (moduleSpecifier === updatedModuleSpecifier || updatedModuleSpecifier == null) {\n\t\t\treturn contResult;\n\t\t}\n\n\t\t// Otherwise, update the module specifier\n\t\treturn preserveMeta(\n\t\t\tfactory.updateExportDeclaration(\n\t\t\t\tcontResult,\n\t\t\t\tcontResult.modifiers,\n\t\t\t\tcontResult.isTypeOnly,\n\t\t\t\tcontResult.exportClause,\n\t\t\t\tfactory.createStringLiteral(updatedModuleSpecifier),\n\t\t\t\tcontResult.assertClause\n\t\t\t),\n\t\t\tcontResult,\n\t\t\toptions\n\t\t);\n\t}\n\n\t// If it is a binding-less NamespaceExport (such as 'export * from \"...\"), we'll need to add explicit named ExportSpecifiers for all of the re-exported bindings instead\n\tif (contResult.exportClause == null) {\n\t\toptions.prependNodes(...options.includeSourceFile(matchingSourceFile));\n\t\treturn generateExportDeclarations({\n\t\t\t...options,\n\t\t\ttypescript,\n\t\t\tsourceFile: matchingSourceFile\n\t\t});\n\t}\n\n\t// Otherwise, it if is a named NamespaceExport (such as 'export * as Foo from \"..\"), we can't just lose the module specifier since 'export * as Foo' isn't valid.\n\t// Instead, we must declare the namespace inline and add an ExportDeclaration with a named export for it. The namespace might already *be* inlined however,\n\t// so we can potentially avoid inlining the same namespace multiple times\n\telse if (typescript.isNamespaceExport?.(contResult.exportClause)) {\n\t\tconst importDeclarations: TS.ImportDeclaration[] = [];\n\t\tconst moduleDeclarations: TS.ModuleDeclaration[] = [];\n\n\t\tconst existingInlinedModuleDeclarationName =\n\t\t\t(updatedModuleSpecifier ?? moduleSpecifier) == null ? undefined : options.getNameForInlinedModuleDeclaration(updatedModuleSpecifier ?? moduleSpecifier!);\n\n\t\tif (existingInlinedModuleDeclarationName == null) {\n\t\t\t// Otherwise, prepend the nodes for the SourceFile in a namespace declaration\n\t\t\tconst moduleBlock = factory.createModuleBlock([\n\t\t\t\t...options.includeSourceFile(matchingSourceFile, {\n\t\t\t\t\tallowDuplicate: true,\n\t\t\t\t\tallowExports: \"skip-optional\",\n\t\t\t\t\tlexicalEnvironment: cloneLexicalEnvironment(),\n\t\t\t\t\ttransformers: [\n\t\t\t\t\t\tensureNoDeclareModifierTransformer,\n\t\t\t\t\t\tstatementMerger({markAsModuleIfNeeded: false}),\n\t\t\t\t\t\tinlineNamespaceModuleBlockTransformer({\n\t\t\t\t\t\t\tintentToAddImportDeclaration: importDeclaration => {\n\t\t\t\t\t\t\t\timportDeclarations.push(importDeclaration);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tintentToAddModuleDeclaration: moduleDeclaration => {\n\t\t\t\t\t\t\t\tmoduleDeclarations.push(moduleDeclaration);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t]\n\t\t\t\t})\n\t\t\t]);\n\n\t\t\toptions.prependNodes(\n\t\t\t\t...importDeclarations.map(importDeclaration => preserveParents(importDeclaration, options)),\n\t\t\t\t...moduleDeclarations.map(moduleDeclaration => preserveParents(moduleDeclaration, options)),\n\t\t\t\tpreserveParents(\n\t\t\t\t\tfactory.createModuleDeclaration(\n\t\t\t\t\t\tensureHasDeclareModifier(undefined, factory, typescript),\n\t\t\t\t\t\tfactory.createIdentifier(contResult.exportClause.name.text),\n\t\t\t\t\t\tmoduleBlock,\n\t\t\t\t\t\ttypescript.NodeFlags.Namespace\n\t\t\t\t\t),\n\t\t\t\t\toptions\n\t\t\t\t),\n\t\t\t\tpreserveParents(\n\t\t\t\t\tfactory.createExportDeclaration(\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tfactory.createNamedExports([factory.createExportSpecifier(false, undefined, factory.createIdentifier(contResult.exportClause.name.text))]),\n\t\t\t\t\t\tundefined\n\t\t\t\t\t),\n\t\t\t\t\toptions\n\t\t\t\t)\n\t\t\t);\n\t\t\toptions.markModuleDeclarationAsInlined(updatedModuleSpecifier ?? moduleSpecifier!, contResult.exportClause.name.text);\n\t\t} else {\n\t\t\toptions.prependNodes(\n\t\t\t\tpreserveParents(\n\t\t\t\t\tfactory.createExportDeclaration(\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tfactory.createNamedExports([\n\t\t\t\t\t\t\tcontResult.exportClause.name.text === existingInlinedModuleDeclarationName\n\t\t\t\t\t\t\t\t? factory.createExportSpecifier(false, undefined, factory.createIdentifier(contResult.exportClause.name.text))\n\t\t\t\t\t\t\t\t: factory.createExportSpecifier(false, factory.createIdentifier(existingInlinedModuleDeclarationName), factory.createIdentifier(contResult.exportClause.name.text))\n\t\t\t\t\t\t]),\n\t\t\t\t\t\tundefined\n\t\t\t\t\t),\n\t\t\t\t\toptions\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n\n\t// Otherwise, preserve the continuation result, but without the ModuleSpecifier\n\treturn preserveMeta(\n\t\tfactory.updateExportDeclaration(contResult, contResult.modifiers, contResult.isTypeOnly, contResult.exportClause, undefined, contResult.assertClause),\n\t\tcontResult,\n\t\toptions\n\t);\n}\n","import type {SafeNode} from \"../../../../type/safe-node.js\";\n\nexport function getParentNode<T extends SafeNode>(node: T): T[\"parent\"] {\n\tif (node._parent != null) {\n\t\treturn node._parent as T[\"parent\"];\n\t}\n\n\treturn node.parent;\n}\n\nexport function setParentNode<T extends SafeNode>(node: T, parentNode: T[\"parent\"]): T {\n\tnode._parent = parentNode;\n\treturn node;\n}\n","import type {ModuleMergerVisitorOptions, VisitResult} from \"../module-merger-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {cloneLexicalEnvironment} from \"../../../util/clone-lexical-environment.js\";\nimport {ensureNoDeclareModifierTransformer} from \"../../ensure-no-declare-modifier-transformer/ensure-no-declare-modifier-transformer.js\";\nimport {ensureHasDeclareModifier} from \"../../../util/modifier-util.js\";\nimport {generateIdentifierName} from \"../../../util/generate-identifier-name.js\";\nimport {generateModuleSpecifier} from \"../../../util/generate-module-specifier.js\";\nimport {preserveMeta, preserveParents, preserveSymbols} from \"../../../util/clone-node-with-meta.js\";\nimport {statementMerger} from \"../../statement-merger/statement-merger.js\";\nimport {getParentNode, setParentNode} from \"../../../util/get-parent-node.js\";\nimport {inlineNamespaceModuleBlockTransformer} from \"../../inline-namespace-module-block-transformer/inline-namespace-module-block-transformer.js\";\n\nexport function visitImportTypeNode(options: ModuleMergerVisitorOptions<TS.ImportTypeNode>): VisitResult<TS.ImportTypeNode> {\n\tconst {node, factory, typescript} = options;\n\tconst moduleSpecifier = !typescript.isLiteralTypeNode(node.argument) || !typescript.isStringLiteralLike(node.argument.literal) ? undefined : node.argument.literal.text;\n\n\tconst matchingSourceFile = moduleSpecifier == null ? undefined : options.getMatchingSourceFile(moduleSpecifier, options.sourceFile);\n\tconst payload = {\n\t\tmoduleSpecifier,\n\t\tmatchingSourceFile\n\t};\n\n\tif (payload.moduleSpecifier == null) return options.childContinuation(node, payload);\n\tconst contResult = options.childContinuation(node, payload);\n\n\t// If no SourceFile was resolved, preserve the export as it is.\n\tif (matchingSourceFile == null) {\n\t\tconst generatedModuleSpecifier =\n\t\t\tmoduleSpecifier == null\n\t\t\t\t? undefined\n\t\t\t\t: generateModuleSpecifier({\n\t\t\t\t\t\t...options,\n\t\t\t\t\t\tfrom: options.sourceFile.fileName,\n\t\t\t\t\t\tmoduleSpecifier\n\t\t\t\t  });\n\t\treturn generatedModuleSpecifier == null\n\t\t\t? contResult\n\t\t\t: preserveMeta(\n\t\t\t\t\tfactory.updateImportTypeNode(\n\t\t\t\t\t\tcontResult,\n\t\t\t\t\t\tfactory.createLiteralTypeNode(factory.createStringLiteral(generatedModuleSpecifier)),\n\t\t\t\t\t\tcontResult.assertions,\n\t\t\t\t\t\tcontResult.qualifier,\n\t\t\t\t\t\tcontResult.typeArguments,\n\t\t\t\t\t\tcontResult.isTypeOf\n\t\t\t\t\t),\n\t\t\t\t\tnode,\n\t\t\t\t\toptions\n\t\t\t  );\n\t}\n\n\tlet returnNode: TS.TypeQueryNode | TS.TypeReferenceNode | TS.Identifier | TS.QualifiedName;\n\n\t// If the node has no qualifier, it imports the entire module as a namespace.\n\tif (contResult.qualifier == null) {\n\t\t// Generate a name for it\n\t\tconst namespaceName = generateIdentifierName(matchingSourceFile.fileName, \"namespace\");\n\t\tconst innerContent = factory.createIdentifier(namespaceName);\n\n\t\tconst importDeclarations: TS.ImportDeclaration[] = [];\n\t\tconst moduleDeclarations: TS.ModuleDeclaration[] = [];\n\t\tconst moduleBlock = factory.createModuleBlock([\n\t\t\t...options.includeSourceFile(matchingSourceFile, {\n\t\t\t\tallowDuplicate: true,\n\t\t\t\tallowExports: \"skip-optional\",\n\t\t\t\tlexicalEnvironment: cloneLexicalEnvironment(),\n\t\t\t\ttransformers: [\n\t\t\t\t\tensureNoDeclareModifierTransformer,\n\t\t\t\t\tstatementMerger({markAsModuleIfNeeded: false}),\n\t\t\t\t\tinlineNamespaceModuleBlockTransformer({\n\t\t\t\t\t\tintentToAddImportDeclaration: importDeclaration => {\n\t\t\t\t\t\t\timportDeclarations.push(importDeclaration);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tintentToAddModuleDeclaration: moduleDeclaration => {\n\t\t\t\t\t\t\tmoduleDeclarations.push(moduleDeclaration);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t]\n\t\t\t})\n\t\t]);\n\n\t\toptions.prependNodes(\n\t\t\t...importDeclarations.map(importDeclaration => preserveParents(importDeclaration, options)),\n\t\t\t...moduleDeclarations.map(moduleDeclaration => preserveParents(moduleDeclaration, options)),\n\t\t\tpreserveParents(\n\t\t\t\tfactory.createModuleDeclaration(\n\t\t\t\t\tensureHasDeclareModifier(undefined, factory, typescript),\n\t\t\t\t\tfactory.createIdentifier(namespaceName),\n\t\t\t\t\tmoduleBlock,\n\t\t\t\t\ttypescript.NodeFlags.Namespace\n\t\t\t\t),\n\t\t\t\toptions\n\t\t\t)\n\t\t);\n\n\t\treturnNode = contResult.isTypeOf != null && contResult.isTypeOf ? factory.createTypeQueryNode(innerContent) : innerContent;\n\t} else {\n\t\toptions.prependNodes(...options.includeSourceFile(matchingSourceFile));\n\n\t\treturnNode =\n\t\t\tcontResult.isTypeOf != null && contResult.isTypeOf\n\t\t\t\t? factory.createTypeQueryNode(contResult.qualifier)\n\t\t\t\t: factory.createTypeReferenceNode(contResult.qualifier, contResult.typeArguments);\n\t}\n\n\tpreserveSymbols(returnNode, contResult.qualifier ?? contResult, options);\n\tsetParentNode(returnNode, getParentNode(node));\n\treturn returnNode;\n}\n","import type {ModuleMergerVisitorOptions, VisitResult} from \"../module-merger-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {generateModuleSpecifier} from \"../../../util/generate-module-specifier.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\n\nexport function visitImportDeclaration(options: ModuleMergerVisitorOptions<TS.ImportDeclaration>): VisitResult<TS.ImportDeclaration> {\n\tconst {node, factory, typescript} = options;\n\tconst moduleSpecifier = node.moduleSpecifier == null || !typescript.isStringLiteralLike(node.moduleSpecifier) ? undefined : node.moduleSpecifier.text;\n\tconst updatedModuleSpecifier =\n\t\tmoduleSpecifier == null\n\t\t\t? undefined\n\t\t\t: generateModuleSpecifier({\n\t\t\t\t\t...options,\n\t\t\t\t\tfrom: options.sourceFile.fileName,\n\t\t\t\t\tmoduleSpecifier\n\t\t\t  });\n\n\tconst matchingSourceFile = moduleSpecifier == null ? undefined : options.getMatchingSourceFile(moduleSpecifier, options.sourceFile);\n\n\tconst payload = {\n\t\tmoduleSpecifier,\n\t\tmatchingSourceFile\n\t};\n\n\tconst contResult = options.childContinuation(node, payload);\n\n\tif (contResult.importClause == null) {\n\t\t// Don't allow moduleSpecifier-only imports inside ambient modules\n\t\treturn undefined;\n\t}\n\n\t// If the module specifier is to be preserved as it is, just return the continuation result\n\tif (moduleSpecifier === updatedModuleSpecifier || updatedModuleSpecifier == null) {\n\t\treturn contResult;\n\t}\n\n\t// Otherwise, update the ModuleSpecifier\n\treturn preserveMeta(\n\t\tfactory.updateImportDeclaration(contResult, contResult.modifiers, contResult.importClause, factory.createStringLiteral(updatedModuleSpecifier), contResult.assertClause),\n\t\tcontResult,\n\t\toptions\n\t);\n}\n","import type {TS} from \"../../../../type/ts.js\";\nimport type {SourceFileBundlerVisitorOptions} from \"../transformers/source-file-bundler/source-file-bundler-visitor-options.js\";\nimport type {GetSymbolAtLocationOptions} from \"./get-symbol-at-location.js\";\nimport {getSymbolAtLocation} from \"./get-symbol-at-location.js\";\nimport {getParentNode} from \"./get-parent-node.js\";\nimport {isSameChunk} from \"./generate-module-specifier.js\";\n\nexport interface GetAliasedDeclarationOptions extends SourceFileBundlerVisitorOptions {\n\tnode: TS.Expression | TS.Symbol | TS.Declaration | TS.QualifiedName | TS.TypeNode | undefined;\n}\n\nexport function getDeclarationFromSymbol(symbol: TS.Symbol): (TS.Declaration & {id: number}) | undefined {\n\tconst valueDeclaration = symbol.valueDeclaration != null ? symbol.valueDeclaration : symbol.declarations != null ? symbol.declarations[0] : undefined;\n\treturn valueDeclaration as TS.Declaration & {id: number};\n}\n\nexport function getAliasedDeclarationFromSymbol(symbol: TS.Symbol, typeChecker: TS.TypeChecker): (TS.Declaration & {id: number}) | undefined {\n\tlet valueDeclaration = getDeclarationFromSymbol(symbol);\n\ttry {\n\t\tconst aliasedDeclaration = typeChecker.getAliasedSymbol(symbol);\n\t\tif (aliasedDeclaration != null && (aliasedDeclaration.valueDeclaration != null || (aliasedDeclaration.declarations != null && aliasedDeclaration.declarations.length > 0))) {\n\t\t\tvalueDeclaration = (\n\t\t\t\taliasedDeclaration.valueDeclaration != null ? aliasedDeclaration.valueDeclaration : symbol.declarations != null ? aliasedDeclaration.declarations?.[0] : undefined\n\t\t\t) as (TS.Declaration & {id: number}) | undefined;\n\t\t}\n\t} catch {}\n\n\treturn valueDeclaration;\n}\n\nexport function isSymbol(node: TS.Node | TS.Symbol): node is TS.Symbol {\n\treturn \"valueDeclaration\" in node || \"declarations\" in node;\n}\n\n/**\n * Gets the Declaration for the given Expression\n */\nexport function getAliasedDeclaration(options: GetSymbolAtLocationOptions): (TS.Declaration & {id: number}) | undefined {\n\tconst {node, typeChecker} = options;\n\tlet symbol: TS.Symbol | undefined;\n\ttry {\n\t\tsymbol = node == null ? undefined : isSymbol(node) ? node : getSymbolAtLocation({...options, node});\n\t} catch {\n\t\t// Typescript couldn't produce a symbol for the Node\n\t}\n\n\tif (symbol == null) return undefined;\n\treturn getAliasedDeclarationFromSymbol(symbol, typeChecker);\n}\n\n/**\n * Gets the Declaration for the given Expression\n */\nexport function getDeclaration(options: GetSymbolAtLocationOptions): (TS.Declaration & {id: number}) | undefined {\n\tconst {node} = options;\n\tlet symbol: TS.Symbol | undefined;\n\ttry {\n\t\tsymbol = node == null ? undefined : isSymbol(node) ? node : getSymbolAtLocation({...options, node});\n\t} catch {\n\t\t// Typescript couldn't produce a symbol for the Node\n\t}\n\n\tif (symbol == null) return undefined;\n\treturn getDeclarationFromSymbol(symbol);\n}\n\n/**\n * In general, the \"best\" declaration is the non-aliased one, with the exception of import bindings that have been inlined in the chunk, in which case the actual declaration should be resolved and used.\n * This is where getAliasedDeclaration comes in handy.\n */\nexport function getBestDeclaration(options: GetAliasedDeclarationOptions & GetSymbolAtLocationOptions): (TS.Declaration & {id: number}) | undefined {\n\tconst declaration = getDeclaration(options);\n\tif (declaration == null) return declaration;\n\n\tlet moduleSpecifier: TS.Expression | undefined;\n\tif (options.typescript.isImportSpecifier(declaration)) {\n\t\tmoduleSpecifier = getParentNode(getParentNode(getParentNode(declaration))).moduleSpecifier;\n\t} else if (options.typescript.isNamespaceImport(declaration)) {\n\t\tmoduleSpecifier = getParentNode(getParentNode(declaration)).moduleSpecifier;\n\t} else if (options.typescript.isImportClause(declaration)) {\n\t\tmoduleSpecifier = getParentNode(declaration).moduleSpecifier;\n\t} else if (options.typescript.isIdentifier(declaration) && getParentNode(declaration) != null && options.typescript.isImportClause(getParentNode(declaration))) {\n\t\tmoduleSpecifier = getParentNode(getParentNode(declaration) as TS.ImportClause).moduleSpecifier;\n\t}\n\n\tif (moduleSpecifier == null || !options.typescript.isStringLiteralLike(moduleSpecifier)) {\n\t\treturn declaration;\n\t}\n\n\tif (options.typescript.isStringLiteralLike(moduleSpecifier)) {\n\t\tif (isSameChunk({...options, moduleSpecifier: moduleSpecifier.text, from: options.sourceFile.fileName})) {\n\t\t\treturn getAliasedDeclaration(options);\n\t\t}\n\t}\n\n\treturn declaration;\n}\n","import type {TS} from \"../../../../type/ts.js\";\nimport {ensureHasDeclareModifier} from \"./modifier-util.js\";\nimport {getAliasedDeclarationFromSymbol, isSymbol} from \"./get-aliased-declaration.js\";\nimport type {LexicalEnvironment} from \"../transformers/deconflicter/deconflicter-options.js\";\nimport {generateUniqueBinding} from \"./generate-unique-binding.js\";\nimport {preserveParents} from \"./clone-node-with-meta.js\";\nimport type {TransformerBaseOptions} from \"../transformers/transformer-base-options.js\";\nimport {markAsInternalAlias} from \"./node-util.js\";\n\nexport interface CreateAliasedBindingOptions extends TransformerBaseOptions {\n\tnode: TS.Node | TS.Symbol | undefined;\n\tpropertyName: string;\n\tname: string;\n\ttypeChecker: TS.TypeChecker;\n\tlexicalEnvironment: LexicalEnvironment;\n}\n\nexport function createAliasedBinding({\n\tfactory,\n\ttypescript,\n\tlexicalEnvironment,\n\tname,\n\tnode,\n\tpropertyName,\n\ttypeChecker\n}: CreateAliasedBindingOptions): (TS.ImportDeclaration | TS.TypeAliasDeclaration | TS.VariableStatement | TS.ModuleDeclaration | TS.ImportEqualsDeclaration)[] {\n\tconst declaration = node != null && isSymbol(node) ? getAliasedDeclarationFromSymbol(node, typeChecker) : node;\n\tconst moduleBinding = generateUniqueBinding(lexicalEnvironment, `${propertyName}Wrapper`);\n\tswitch (declaration?.kind) {\n\t\tcase typescript.SyntaxKind.ClassDeclaration:\n\t\tcase typescript.SyntaxKind.ClassExpression: {\n\t\t\tconst moduleDeclaration = factory.createModuleDeclaration(\n\t\t\t\tundefined,\n\t\t\t\tfactory.createIdentifier(moduleBinding),\n\t\t\t\tfactory.createModuleBlock([\n\t\t\t\t\tfactory.createExportDeclaration(undefined, false, factory.createNamedExports([factory.createExportSpecifier(false, undefined, factory.createIdentifier(propertyName))]))\n\t\t\t\t])\n\t\t\t);\n\n\t\t\tconst importEqualsDeclaration = factory.createImportEqualsDeclaration(\n\t\t\t\tundefined,\n\t\t\t\tfalse,\n\t\t\t\tfactory.createIdentifier(name),\n\t\t\t\tfactory.createQualifiedName(factory.createIdentifier(moduleBinding), factory.createIdentifier(propertyName))\n\t\t\t);\n\n\t\t\t// Typically module declarations are left in.\n\t\t\t// However, these should be treeshakeable.\n\t\t\tmarkAsInternalAlias(moduleDeclaration, typescript);\n\t\t\tmarkAsInternalAlias(importEqualsDeclaration, typescript);\n\n\t\t\treturn [preserveParents(moduleDeclaration, {typescript}), preserveParents(importEqualsDeclaration, {typescript})];\n\t\t}\n\t\tcase typescript.SyntaxKind.FunctionDeclaration:\n\t\tcase typescript.SyntaxKind.FunctionExpression:\n\t\tcase typescript.SyntaxKind.EnumDeclaration:\n\t\tcase typescript.SyntaxKind.VariableDeclaration:\n\t\tcase typescript.SyntaxKind.VariableStatement:\n\t\tcase typescript.SyntaxKind.ExportAssignment: {\n\t\t\tconst variableStatement = factory.createVariableStatement(\n\t\t\t\tensureHasDeclareModifier(undefined, factory, typescript),\n\t\t\t\tfactory.createVariableDeclarationList(\n\t\t\t\t\t[factory.createVariableDeclaration(factory.createIdentifier(name), undefined, factory.createTypeQueryNode(factory.createIdentifier(propertyName)))],\n\t\t\t\t\ttypescript.NodeFlags.Const\n\t\t\t\t)\n\t\t\t);\n\t\t\tmarkAsInternalAlias(variableStatement, typescript);\n\t\t\treturn [preserveParents(variableStatement, {typescript})];\n\t\t}\n\n\t\tdefault: {\n\t\t\tconst alias =\n\t\t\t\tpropertyName === \"_default\"\n\t\t\t\t\t? factory.createVariableStatement(\n\t\t\t\t\t\t\tensureHasDeclareModifier(undefined, factory, typescript),\n\t\t\t\t\t\t\tfactory.createVariableDeclarationList(\n\t\t\t\t\t\t\t\t[factory.createVariableDeclaration(factory.createIdentifier(name), undefined, factory.createTypeQueryNode(factory.createIdentifier(propertyName)))],\n\t\t\t\t\t\t\t\ttypescript.NodeFlags.Const\n\t\t\t\t\t\t\t)\n\t\t\t\t\t  )\n\t\t\t\t\t: factory.createTypeAliasDeclaration(\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\tfactory.createIdentifier(name),\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\tfactory.createTypeReferenceNode(factory.createIdentifier(propertyName), undefined)\n\t\t\t\t\t  );\n\t\t\tmarkAsInternalAlias(alias, typescript);\n\t\t\treturn [preserveParents(alias, {typescript})];\n\t\t}\n\t}\n}\n","import type {\n\tNamedExportedSymbol,\n\tNamespaceExportedSymbol,\n\tSourceFileToExportedSymbolSet\n} from \"../transformers/track-exports-transformer/track-exports-transformer-visitor-options.js\";\nimport type {CompilerHost} from \"../../../compiler-host/compiler-host.js\";\nimport type {SourceFileResolver} from \"../transformers/source-file-bundler/source-file-bundler-visitor-options.js\";\n\nexport interface LocateExportedSymbolContext {\n\thost: CompilerHost;\n\tresolveSourceFile: SourceFileResolver;\n\tsourceFileToExportedSymbolSet: SourceFileToExportedSymbolSet;\n\tsourceFile: string;\n}\n\nexport interface LocateExportedSymbolOptionsBase {\n\tmoduleSpecifier?: string;\n}\n\nexport interface LocateDefaultNamedExportedSymbolOptions extends LocateExportedSymbolOptionsBase {\n\tdefaultExport: true;\n}\n\nexport interface LocateNamedExportedSymbolOptions extends LocateExportedSymbolOptionsBase {\n\tdefaultExport: false;\n\tname?: string;\n\tpropertyName?: string;\n}\n\nexport interface LocateNamespaceExportedSymbolOptions extends LocateExportedSymbolOptionsBase {\n\tnamespaceExport: true;\n}\n\nexport type LocateExportedSymbolOptions = LocateNamespaceExportedSymbolOptions | LocateNamedExportedSymbolOptions | LocateDefaultNamedExportedSymbolOptions;\n\nexport function locateExportedSymbolForSourceFile(\n\toptions: LocateDefaultNamedExportedSymbolOptions,\n\tcontext: LocateExportedSymbolContext,\n\tseenSourceFiles?: Set<string>\n): (NamedExportedSymbol & {isDefaultExport: true}) | undefined;\nexport function locateExportedSymbolForSourceFile(\n\toptions: LocateNamedExportedSymbolOptions,\n\tcontext: LocateExportedSymbolContext,\n\tseenSourceFiles?: Set<string>\n): (NamedExportedSymbol & {isDefaultExport: false}) | undefined;\nexport function locateExportedSymbolForSourceFile(\n\toptions: LocateNamespaceExportedSymbolOptions,\n\tcontext: LocateExportedSymbolContext,\n\tseenSourceFiles?: Set<string>\n): NamespaceExportedSymbol | undefined;\nexport function locateExportedSymbolForSourceFile(\n\toptions: LocateExportedSymbolOptions,\n\tcontext: LocateExportedSymbolContext,\n\tseenSourceFiles?: Set<string>\n): (NamedExportedSymbol & {isDefaultExport: boolean}) | NamespaceExportedSymbol | undefined;\nexport function locateExportedSymbolForSourceFile(\n\toptions: LocateExportedSymbolOptions,\n\tcontext: LocateExportedSymbolContext,\n\tseenSourceFiles: Set<string> = new Set()\n): (NamedExportedSymbol & {isDefaultExport: boolean}) | NamespaceExportedSymbol | undefined {\n\tseenSourceFiles.add(context.sourceFile);\n\tconst exportedSymbols = context.sourceFileToExportedSymbolSet.get(context.sourceFile);\n\tif (exportedSymbols == null) return undefined;\n\tconst exportedSymbolsArr = [...exportedSymbols];\n\n\tif (\"defaultExport\" in options && options.defaultExport) {\n\t\treturn exportedSymbolsArr.find(\n\t\t\texportedSymbol =>\n\t\t\t\t\"isDefaultExport\" in exportedSymbol && exportedSymbol.isDefaultExport && (!(\"moduleSpecifier\" in options) || exportedSymbol.moduleSpecifier === options.moduleSpecifier)\n\t\t);\n\t}\n\n\tif (\"namespaceExport\" in options) {\n\t\treturn exportedSymbolsArr.find(\n\t\t\texportedSymbol => \"isNamespaceExport\" in exportedSymbol && (!(\"moduleSpecifier\" in options) || exportedSymbol.moduleSpecifier === options.moduleSpecifier)\n\t\t);\n\t} else {\n\t\tconst matchedNamedExport = exportedSymbolsArr.find(\n\t\t\texportedSymbol =>\n\t\t\t\t\"isDefaultExport\" in exportedSymbol &&\n\t\t\t\t!exportedSymbol.isDefaultExport &&\n\t\t\t\t(!(\"name\" in options) || exportedSymbol.name.text === options.name) &&\n\t\t\t\t(!(\"propertyName\" in options) || exportedSymbol.propertyName.text === options.propertyName) &&\n\t\t\t\t(!(\"moduleSpecifier\" in options) || exportedSymbol.moduleSpecifier === options.moduleSpecifier)\n\t\t);\n\t\tif (matchedNamedExport != null) {\n\t\t\treturn matchedNamedExport;\n\t\t} else {\n\t\t\tfor (const namespaceExport of exportedSymbolsArr.filter((exportedSymbol): exportedSymbol is NamespaceExportedSymbol => \"isNamespaceExport\" in exportedSymbol)) {\n\t\t\t\tconst sourceFile = context.resolveSourceFile(namespaceExport.moduleSpecifier, context.sourceFile);\n\t\t\t\tif (sourceFile != null && !seenSourceFiles.has(sourceFile.fileName)) {\n\t\t\t\t\tconst recursiveResult = locateExportedSymbolForSourceFile(options, {...context, sourceFile: sourceFile.fileName}, seenSourceFiles);\n\t\t\t\t\tif (recursiveResult != null) return recursiveResult;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn undefined;\n}\n","import type {ModuleMergerVisitorOptions, VisitResult} from \"../module-merger-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {createAliasedBinding} from \"../../../util/create-aliased-binding.js\";\nimport {getImportedSymbolFromImportSpecifier} from \"../../../util/create-export-specifier-from-name-and-modifiers.js\";\nimport {locateExportedSymbolForSourceFile} from \"../../../util/locate-exported-symbol.js\";\nimport {generateModuleSpecifier} from \"../../../util/generate-module-specifier.js\";\nimport {getAliasedDeclaration} from \"../../../util/get-aliased-declaration.js\";\nimport {preserveParents} from \"../../../util/clone-node-with-meta.js\";\nimport {ensureNonreservedWord} from \"../../../util/generate-unique-binding.js\";\n\nexport function visitImportSpecifier(options: ModuleMergerVisitorOptions<TS.ImportSpecifier>): VisitResult<TS.ImportSpecifier> {\n\tconst {node, payload, factory} = options;\n\tif (payload.moduleSpecifier == null) return options.childContinuation(node, undefined);\n\n\tconst contResult = options.childContinuation(node, undefined);\n\n\t// If no SourceFile was resolved, preserve the ImportSpecifier as-is, unless it is already included in the chunk\n\tif (payload.matchingSourceFile == null) {\n\t\treturn options.shouldPreserveImportedSymbol(getImportedSymbolFromImportSpecifier(contResult, payload.moduleSpecifier)) ? contResult : undefined;\n\t}\n\n\t// Otherwise, prepend the nodes for the SourceFile\n\toptions.prependNodes(...options.includeSourceFile(payload.matchingSourceFile));\n\n\tconst propertyName = contResult.propertyName ?? contResult.name;\n\n\tconst exportedSymbol =\n\t\tpropertyName.text === \"default\"\n\t\t\t? locateExportedSymbolForSourceFile({defaultExport: true}, {...options, sourceFile: payload.matchingSourceFile.fileName})\n\t\t\t: locateExportedSymbolForSourceFile({defaultExport: false, name: propertyName.text}, {...options, sourceFile: payload.matchingSourceFile.fileName});\n\n\tif (exportedSymbol != null) {\n\t\t// If the export exports a binding from another module *that points to a file that isn't part of the current chunk*,\n\t\t// Create a new ImportDeclaration that refers to that chunk or external module\n\t\tconst generatedModuleSpecifier =\n\t\t\texportedSymbol.moduleSpecifier == null\n\t\t\t\t? undefined\n\t\t\t\t: generateModuleSpecifier({\n\t\t\t\t\t\t...options,\n\t\t\t\t\t\tfrom: payload.matchingSourceFile.fileName,\n\t\t\t\t\t\tmoduleSpecifier: exportedSymbol.moduleSpecifier\n\t\t\t\t  });\n\t\tif (\n\t\t\texportedSymbol.moduleSpecifier != null &&\n\t\t\tgeneratedModuleSpecifier != null &&\n\t\t\toptions.getMatchingSourceFile(exportedSymbol.moduleSpecifier, payload.matchingSourceFile) == null\n\t\t) {\n\t\t\toptions.prependNodes(\n\t\t\t\tpreserveParents(\n\t\t\t\t\tfactory.createImportDeclaration(\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tfactory.createImportClause(\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\tfactory.createNamedImports([\n\t\t\t\t\t\t\t\tfactory.createImportSpecifier(\n\t\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\t\tpropertyName.text === \"default\"\n\t\t\t\t\t\t\t\t\t\t? factory.createIdentifier(\"default\")\n\t\t\t\t\t\t\t\t\t\t: exportedSymbol.propertyName.text === contResult.name.text\n\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t: factory.createIdentifier(exportedSymbol.propertyName.text),\n\t\t\t\t\t\t\t\t\tfactory.createIdentifier(contResult.name.text)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t])\n\t\t\t\t\t\t),\n\t\t\t\t\t\tfactory.createStringLiteral(generatedModuleSpecifier)\n\t\t\t\t\t),\n\t\t\t\t\toptions\n\t\t\t\t)\n\t\t\t);\n\t\t} else if (contResult.propertyName != null) {\n\t\t\tconst declaration = getAliasedDeclaration({...options, node: contResult.propertyName});\n\t\t\tconst safePropertyName = ensureNonreservedWord(exportedSymbol.propertyName.text);\n\t\t\toptions.prependNodes(\n\t\t\t\t...createAliasedBinding({\n\t\t\t\t\t...options,\n\t\t\t\t\tnode: declaration,\n\t\t\t\t\tpropertyName: safePropertyName,\n\t\t\t\t\tname: contResult.name.text\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t}\n\n\t// Don't include the ImportSpecifier\n\treturn undefined;\n}\n","import type {ModuleMergerVisitorOptions, VisitResult} from \"../module-merger-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {preserveMeta, preserveParents} from \"../../../util/clone-node-with-meta.js\";\nimport {locateExportedSymbolForSourceFile} from \"../../../util/locate-exported-symbol.js\";\nimport {generateModuleSpecifier} from \"../../../util/generate-module-specifier.js\";\nimport {createAliasedBinding} from \"../../../util/create-aliased-binding.js\";\nimport {getAliasedDeclaration} from \"../../../util/get-aliased-declaration.js\";\nimport {ensureNonreservedWord, generateUniqueBinding} from \"../../../util/generate-unique-binding.js\";\n\nexport function visitExportSpecifier(options: ModuleMergerVisitorOptions<TS.ExportSpecifier>): VisitResult<TS.ExportSpecifier> {\n\tconst {node, payload, factory} = options;\n\n\tconst contResult = options.childContinuation(node, undefined);\n\t// Now, we might be referencing the default export from the original module, in which case this should be rewritten to point to the exact identifier\n\tconst propertyName = contResult.propertyName ?? contResult.name;\n\n\t// If no SourceFile was resolved, preserve the export as it is.\n\tif (payload.moduleSpecifier == null || payload.matchingSourceFile == null) {\n\t\treturn contResult;\n\t}\n\n\toptions.prependNodes(...options.includeSourceFile(payload.matchingSourceFile));\n\tconst useLocalBinding = options.allowExports === false;\n\n\tconst namedExportedSymbol =\n\t\tpropertyName.text === \"default\"\n\t\t\t? locateExportedSymbolForSourceFile({defaultExport: true}, {...options, sourceFile: payload.matchingSourceFile.fileName})\n\t\t\t: locateExportedSymbolForSourceFile({defaultExport: false, name: propertyName.text}, {...options, sourceFile: payload.matchingSourceFile.fileName}) ??\n\t\t\t  locateExportedSymbolForSourceFile({namespaceExport: true}, {...options, sourceFile: payload.matchingSourceFile.fileName});\n\n\tif (namedExportedSymbol != null) {\n\t\t// If the export exports a binding from another module *that points to a file that isn't part of the current chunk*,\n\t\t// Create a new ExportDeclaration that refers to that chunk or external module\n\t\tconst generatedModuleSpecifier =\n\t\t\tnamedExportedSymbol.moduleSpecifier == null\n\t\t\t\t? undefined\n\t\t\t\t: generateModuleSpecifier({\n\t\t\t\t\t\t...options,\n\t\t\t\t\t\tfrom: payload.matchingSourceFile.fileName,\n\t\t\t\t\t\tmoduleSpecifier: namedExportedSymbol.moduleSpecifier\n\t\t\t\t  });\n\n\t\tif (\n\t\t\tnamedExportedSymbol.moduleSpecifier != null &&\n\t\t\tgeneratedModuleSpecifier != null &&\n\t\t\toptions.getMatchingSourceFile(namedExportedSymbol.moduleSpecifier, payload.matchingSourceFile) == null\n\t\t) {\n\t\t\toptions.prependNodes(\n\t\t\t\tpreserveParents(\n\t\t\t\t\tfactory.createExportDeclaration(\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tpayload.isTypeOnly,\n\t\t\t\t\t\tfactory.createNamedExports([\n\t\t\t\t\t\t\tfactory.createExportSpecifier(\n\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\tpropertyName.text === \"default\"\n\t\t\t\t\t\t\t\t\t? \"default\"\n\t\t\t\t\t\t\t\t\t: !(\"propertyName\" in namedExportedSymbol) || namedExportedSymbol.propertyName == null || namedExportedSymbol.propertyName.text === contResult.name.text\n\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t: factory.createIdentifier(namedExportedSymbol.propertyName.text),\n\t\t\t\t\t\t\t\tfactory.createIdentifier(contResult.name.text)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t]),\n\t\t\t\t\t\tfactory.createStringLiteral(generatedModuleSpecifier)\n\t\t\t\t\t),\n\t\t\t\t\toptions\n\t\t\t\t)\n\t\t\t);\n\n\t\t\treturn undefined;\n\t\t} else if (useLocalBinding) {\n\t\t\tconst safeName = generateUniqueBinding(options.lexicalEnvironment, ensureNonreservedWord(contResult.name.text));\n\t\t\tconst declaration = getAliasedDeclaration({...options, node: contResult.name});\n\n\t\t\tif (\"propertyName\" in namedExportedSymbol && namedExportedSymbol.propertyName != null) {\n\t\t\t\tconst safeNamedExportedSymbolPropertyName = ensureNonreservedWord(namedExportedSymbol.propertyName.text);\n\t\t\t\tif (safeNamedExportedSymbolPropertyName !== safeName) {\n\t\t\t\t\toptions.prependNodes(\n\t\t\t\t\t\t...createAliasedBinding({\n\t\t\t\t\t\t\t...options,\n\t\t\t\t\t\t\tnode: declaration,\n\t\t\t\t\t\t\tpropertyName: safeNamedExportedSymbolPropertyName,\n\t\t\t\t\t\t\tname: safeName\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (contResult.propertyName != null && contResult.propertyName.text !== contResult.name.text) {\n\t\t\t\tconst safePropertyName = generateUniqueBinding(options.lexicalEnvironment, ensureNonreservedWord(contResult.propertyName.text));\n\t\t\t\tif (safePropertyName !== safeName) {\n\t\t\t\t\toptions.prependNodes(\n\t\t\t\t\t\t...createAliasedBinding({\n\t\t\t\t\t\t\t...options,\n\t\t\t\t\t\t\tnode: declaration,\n\t\t\t\t\t\t\tpropertyName: safeName,\n\t\t\t\t\t\t\tname: safePropertyName\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn undefined;\n\t\t} else if (!useLocalBinding) {\n\t\t\tconst newPropertyName =\n\t\t\t\t!(\"propertyName\" in namedExportedSymbol) || namedExportedSymbol.propertyName == null || namedExportedSymbol.propertyName.text === contResult.name.text\n\t\t\t\t\t? undefined\n\t\t\t\t\t: ensureNonreservedWord(namedExportedSymbol.propertyName.text);\n\n\t\t\tif (newPropertyName !== contResult.propertyName?.text) {\n\t\t\t\treturn preserveMeta(\n\t\t\t\t\tfactory.updateExportSpecifier(\n\t\t\t\t\t\tcontResult,\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tnewPropertyName == null ? undefined : factory.createIdentifier(newPropertyName),\n\t\t\t\t\t\tfactory.createIdentifier(contResult.name.text)\n\t\t\t\t\t),\n\t\t\t\t\tcontResult,\n\t\t\t\t\toptions\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Fall back to preserving the node\n\treturn node;\n}\n","import type {ModuleMergerVisitorOptions, VisitResult} from \"../module-merger-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {getImportedSymbolFromImportClauseName} from \"../../../util/create-export-specifier-from-name-and-modifiers.js\";\nimport {preserveMeta, preserveParents} from \"../../../util/clone-node-with-meta.js\";\nimport {createAliasedBinding} from \"../../../util/create-aliased-binding.js\";\nimport {generateModuleSpecifier} from \"../../../util/generate-module-specifier.js\";\nimport {locateExportedSymbolForSourceFile} from \"../../../util/locate-exported-symbol.js\";\nimport {getAliasedDeclaration} from \"../../../util/get-aliased-declaration.js\";\nimport {ensureNonreservedWord} from \"../../../util/generate-unique-binding.js\";\n\nexport function visitImportClause(options: ModuleMergerVisitorOptions<TS.ImportClause>): VisitResult<TS.ImportClause> {\n\tconst {node, payload, factory, typescript} = options;\n\t// If there is no moduleSpecifier, proceed from the children.\n\tif (payload.moduleSpecifier == null) return options.childContinuation(node, payload);\n\tconst contResult = options.childContinuation(node, payload);\n\n\tif (node.name == null || contResult.name == null) {\n\t\t// If there is no name, just return the continuation result. We only concern ourselves with default imports here\n\t\treturn contResult;\n\t}\n\n\t// If no SourceFile was resolved, preserve the ImportClause, but potentially remove the default import\n\tif (payload.matchingSourceFile == null) {\n\t\t// If the default import should be preserved, return the continuation result\n\t\tif (options.shouldPreserveImportedSymbol(getImportedSymbolFromImportClauseName(contResult.name, payload.moduleSpecifier))) {\n\t\t\treturn contResult;\n\t\t}\n\n\t\t// Otherwise, remove the default import and remove the named bindings that was retrieved from the continuation.\n\t\treturn preserveMeta(factory.updateImportClause(contResult, contResult.isTypeOnly, undefined, contResult.namedBindings), contResult, options);\n\t}\n\n\t// Otherwise, prepend the nodes for the SourceFile\n\toptions.prependNodes(...options.includeSourceFile(payload.matchingSourceFile));\n\n\t// Now, take the default export for the referenced module\n\tconst defaultExportedSymbol = locateExportedSymbolForSourceFile({defaultExport: true}, {...options, sourceFile: payload.matchingSourceFile.fileName});\n\n\tif (defaultExportedSymbol != null) {\n\t\t// If the default export exports a binding from another module *that points to a file that isn't part of the current chunk*,\n\t\t// Create a new ImportDeclaration that refers to that chunk or external module\n\t\tconst generatedModuleSpecifier =\n\t\t\tdefaultExportedSymbol.moduleSpecifier == null\n\t\t\t\t? undefined\n\t\t\t\t: generateModuleSpecifier({\n\t\t\t\t\t\t...options,\n\t\t\t\t\t\tfrom: payload.matchingSourceFile.fileName,\n\t\t\t\t\t\tmoduleSpecifier: defaultExportedSymbol.moduleSpecifier\n\t\t\t\t  });\n\t\tif (\n\t\t\tdefaultExportedSymbol.moduleSpecifier != null &&\n\t\t\tgeneratedModuleSpecifier != null &&\n\t\t\toptions.getMatchingSourceFile(defaultExportedSymbol.moduleSpecifier, payload.matchingSourceFile) == null\n\t\t) {\n\t\t\toptions.prependNodes(\n\t\t\t\tpreserveParents(\n\t\t\t\t\tfactory.createImportDeclaration(\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tfactory.createImportClause(false, factory.createIdentifier(contResult.name.text), undefined),\n\t\t\t\t\t\tfactory.createStringLiteral(generatedModuleSpecifier)\n\t\t\t\t\t),\n\t\t\t\t\t{typescript}\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\t// Otherwise, if the names of the ImportClause and the default export exactly matches, we don't need to do anything.\n\t\t// If they don't, we'll need to alias it\n\t\telse if (defaultExportedSymbol.propertyName.text !== contResult.name.text) {\n\t\t\tconst declaration = getAliasedDeclaration({...options, node: contResult.name});\n\t\t\tconst safePropertyName = ensureNonreservedWord(defaultExportedSymbol.propertyName.text);\n\n\t\t\toptions.prependNodes(\n\t\t\t\t...createAliasedBinding({\n\t\t\t\t\t...options,\n\t\t\t\t\tnode: declaration,\n\t\t\t\t\tpropertyName: safePropertyName,\n\t\t\t\t\tname: contResult.name.text\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t}\n\n\t// Don't include the ImportClause\n\treturn undefined;\n}\n","import type {ModuleMergerVisitorOptions, VisitResult} from \"../module-merger-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {getImportedSymbolFromNamespaceImport} from \"../../../util/create-export-specifier-from-name-and-modifiers.js\";\nimport {ensureHasDeclareModifier} from \"../../../util/modifier-util.js\";\nimport {cloneLexicalEnvironment} from \"../../../util/clone-lexical-environment.js\";\nimport {ensureNoDeclareModifierTransformer} from \"../../ensure-no-declare-modifier-transformer/ensure-no-declare-modifier-transformer.js\";\nimport {statementMerger} from \"../../statement-merger/statement-merger.js\";\nimport {preserveParents} from \"../../../util/clone-node-with-meta.js\";\nimport {inlineNamespaceModuleBlockTransformer} from \"../../inline-namespace-module-block-transformer/inline-namespace-module-block-transformer.js\";\nimport type {NamespaceImportedSymbol} from \"../../track-imports-transformer/track-imports-transformer-visitor-options.js\";\n\nexport function visitNamespaceImport(options: ModuleMergerVisitorOptions<TS.NamespaceImport>): VisitResult<TS.NamespaceImport> {\n\tconst {node, factory, typescript, payload} = options;\n\tif (payload.moduleSpecifier == null) return options.childContinuation(node, undefined);\n\n\tconst contResult = options.childContinuation(node, undefined);\n\tconst importedSymbol = getImportedSymbolFromNamespaceImport(contResult, payload.moduleSpecifier) as NamespaceImportedSymbol;\n\n\t// If no SourceFile was resolved, preserve the ImportSpecifier as-is, unless it is already included in the chunk\n\tif (payload.matchingSourceFile == null) {\n\t\treturn options.shouldPreserveImportedSymbol(importedSymbol) ? contResult : undefined;\n\t} else if (options.shouldPreserveImportedSymbol(importedSymbol)) {\n\t\tconst existingInlinedModuleDeclarationName = options.getNameForInlinedModuleDeclaration(payload.moduleSpecifier);\n\n\t\tif (existingInlinedModuleDeclarationName == null) {\n\t\t\tconst importDeclarations: TS.ImportDeclaration[] = [];\n\t\t\tconst moduleDeclarations: TS.ModuleDeclaration[] = [];\n\t\t\tconst moduleBlock = factory.createModuleBlock([\n\t\t\t\t...options.includeSourceFile(payload.matchingSourceFile, {\n\t\t\t\t\tallowDuplicate: true,\n\t\t\t\t\tallowExports: \"skip-optional\",\n\t\t\t\t\tlexicalEnvironment: cloneLexicalEnvironment(),\n\t\t\t\t\ttransformers: [\n\t\t\t\t\t\tensureNoDeclareModifierTransformer,\n\t\t\t\t\t\tstatementMerger({markAsModuleIfNeeded: false}),\n\t\t\t\t\t\tinlineNamespaceModuleBlockTransformer({\n\t\t\t\t\t\t\tintentToAddImportDeclaration: importDeclaration => {\n\t\t\t\t\t\t\t\timportDeclarations.push(importDeclaration);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tintentToAddModuleDeclaration: moduleDeclaration => {\n\t\t\t\t\t\t\t\tmoduleDeclarations.push(moduleDeclaration);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t]\n\t\t\t\t})\n\t\t\t]);\n\n\t\t\t// Otherwise, prepend the nodes for the SourceFile in a namespace declaration\n\t\t\toptions.prependNodes(\n\t\t\t\t...importDeclarations.map(importDeclaration => preserveParents(importDeclaration, options)),\n\t\t\t\t...moduleDeclarations.map(moduleDeclaration => preserveParents(moduleDeclaration, options)),\n\t\t\t\tpreserveParents(\n\t\t\t\t\tfactory.createModuleDeclaration(\n\t\t\t\t\t\tensureHasDeclareModifier(undefined, factory, typescript),\n\t\t\t\t\t\tfactory.createIdentifier(contResult.name.text),\n\t\t\t\t\t\tmoduleBlock,\n\t\t\t\t\t\ttypescript.NodeFlags.Namespace\n\t\t\t\t\t),\n\t\t\t\t\toptions\n\t\t\t\t)\n\t\t\t);\n\t\t\toptions.markModuleDeclarationAsInlined(payload.moduleSpecifier, contResult.name.text);\n\t\t} else {\n\t\t\toptions.prependNodes(\n\t\t\t\tpreserveParents(\n\t\t\t\t\tfactory.createImportEqualsDeclaration(undefined, false, factory.createIdentifier(contResult.name.text), factory.createIdentifier(existingInlinedModuleDeclarationName)),\n\t\t\t\t\t{typescript}\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n\n\t// Don't include the NamespaceImport\n\treturn undefined;\n}\n","import type {ModuleMergerVisitorOptions, VisitResult} from \"../module-merger-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\n\nexport function visitSourceFile(options: ModuleMergerVisitorOptions<TS.SourceFile>): VisitResult<TS.SourceFile> {\n\tfor (const otherEntrySourceFileForChunk of options.otherEntrySourceFilesForChunk) {\n\t\toptions.prependNodes(...options.includeSourceFile(otherEntrySourceFileForChunk, {allowExports: true}));\n\t}\n\n\treturn options.childContinuation(options.node, undefined);\n}\n","import type {ModuleMergerVisitorOptions, VisitResult} from \"../module-merger-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {visitExportDeclaration} from \"./visit-export-declaration.js\";\nimport {visitImportTypeNode} from \"./visit-import-type-node.js\";\nimport {visitImportDeclaration} from \"./visit-import-declaration.js\";\nimport {visitImportSpecifier} from \"./visit-import-specifier.js\";\nimport {visitExportSpecifier} from \"./visit-export-specifier.js\";\nimport {visitImportClause} from \"./visit-import-clause.js\";\nimport {visitNamespaceImport} from \"./visit-namespace-import.js\";\nimport {visitSourceFile} from \"./visit-source-file.js\";\n\nexport function visitNode<T extends TS.Node>({node, ...options}: ModuleMergerVisitorOptions<T>): VisitResult<T> {\n\tif (options.typescript.isSourceFile(node)) {\n\t\treturn visitSourceFile({...options, node} as ModuleMergerVisitorOptions<TS.SourceFile>) as unknown as VisitResult<T>;\n\t} else if (options.typescript.isExportDeclaration(node)) {\n\t\treturn visitExportDeclaration({...options, node} as ModuleMergerVisitorOptions<TS.ExportDeclaration>) as unknown as VisitResult<T>;\n\t} else if (options.typescript.isImportDeclaration(node)) {\n\t\treturn visitImportDeclaration({...options, node} as ModuleMergerVisitorOptions<TS.ImportDeclaration>) as unknown as VisitResult<T>;\n\t} else if (options.typescript.isImportTypeNode(node)) {\n\t\treturn visitImportTypeNode({...options, node} as ModuleMergerVisitorOptions<TS.ImportTypeNode>) as unknown as VisitResult<T>;\n\t} else if (options.typescript.isImportClause(node)) {\n\t\treturn visitImportClause({...options, node} as ModuleMergerVisitorOptions<TS.ImportClause>) as unknown as VisitResult<T>;\n\t} else if (options.typescript.isNamespaceImport(node)) {\n\t\treturn visitNamespaceImport({...options, node} as ModuleMergerVisitorOptions<TS.NamespaceImport>) as unknown as VisitResult<T>;\n\t} else if (options.typescript.isImportSpecifier(node)) {\n\t\treturn visitImportSpecifier({...options, node} as ModuleMergerVisitorOptions<TS.ImportSpecifier>) as unknown as VisitResult<T>;\n\t} else if (options.typescript.isExportSpecifier(node)) {\n\t\treturn visitExportSpecifier({...options, node} as ModuleMergerVisitorOptions<TS.ExportSpecifier>) as unknown as VisitResult<T>;\n\t} else {\n\t\treturn options.childContinuation(node, options.payload as never) as unknown as VisitResult<T>;\n\t}\n}\n","import type {IgnoredLookupValue} from \"helpertypes\";\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isRecord<T>(value: T): value is Exclude<T, IgnoredLookupValue | unknown[]> & {} {\n\treturn (\n\t\t!Array.isArray(value) &&\n\t\ttypeof value === \"object\" &&\n\t\tvalue != null &&\n\t\t!(value instanceof Date) &&\n\t\t!(value instanceof Set) &&\n\t\t!(value instanceof WeakSet) &&\n\t\t!(value instanceof Map) &&\n\t\t!(value instanceof WeakMap)\n\t);\n}\n\nexport function isPromise<T>(value: unknown | Promise<T>): value is Promise<T> {\n\treturn typeof value === \"object\" && value != null && \"then\" in value;\n}\n\nexport function isArray<T>(value: unknown | readonly T[]): value is readonly T[];\nexport function isArray<T>(value: unknown | T[]): value is T[];\nexport function isArray<T>(value: unknown | T[] | readonly T[]): value is T[] | readonly T[];\nexport function isArray<T>(value: unknown | T[] | readonly T[]): value is T[] | readonly T[] {\n\treturn Array.isArray(value);\n}\n","import type {TS} from \"../../../../type/ts.js\";\n\n/**\n * Returns true if the given Node is a Statement\n * Uses an internal non-exposed Typescript helper to decide whether or not the Node is a Statement\n */\nexport function isStatement(node: TS.Node, typescript: typeof TS): node is TS.Statement {\n\treturn (typescript as unknown as {isStatementButNotDeclaration(node: TS.Node): boolean}).isStatementButNotDeclaration(node);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport {isArray} from \"../../../../../../util/object/object-util.js\";\nimport {isStatement} from \"../../../util/is-statement.js\";\n\nexport function isRootLevelNode(node: TS.VisitResult<TS.Node>, typescript: typeof TS): node is TS.Statement {\n\treturn (\n\t\tnode != null &&\n\t\t!isArray(node) &&\n\t\t(typescript.isClassDeclaration(node) ||\n\t\t\ttypescript.isClassExpression(node) ||\n\t\t\ttypescript.isEnumDeclaration(node) ||\n\t\t\ttypescript.isExportDeclaration(node) ||\n\t\t\ttypescript.isExportAssignment(node) ||\n\t\t\ttypescript.isFunctionDeclaration(node) ||\n\t\t\ttypescript.isFunctionExpression(node) ||\n\t\t\ttypescript.isExpressionStatement(node) ||\n\t\t\ttypescript.isImportDeclaration(node) ||\n\t\t\ttypescript.isImportEqualsDeclaration(node) ||\n\t\t\ttypescript.isInterfaceDeclaration(node) ||\n\t\t\ttypescript.isModuleDeclaration(node) ||\n\t\t\ttypescript.isTypeAliasDeclaration(node) ||\n\t\t\ttypescript.isVariableStatement(node) ||\n\t\t\tisStatement(node, typescript))\n\t);\n}\n","import type {TS} from \"../../../../type/ts.js\";\nimport {isRootLevelNode} from \"../transformers/module-merger/util/is-root-level-node.js\";\n\nexport interface NodePlacementQueue {\n\tprependNodes(...nodes: TS.Node[]): void;\n\tappendNodes(...nodes: TS.Node[]): void;\n\twrapVisitResult<T extends TS.Node>(node: TS.VisitResult<T> | undefined): TS.VisitResult<TS.Node> | undefined;\n\tflush(): readonly [readonly TS.Node[], readonly TS.Node[]];\n}\n\nexport interface GetNodePlacementQueueOptions {\n\ttypescript: typeof TS;\n}\n\nexport function getNodePlacementQueue({typescript}: GetNodePlacementQueueOptions): NodePlacementQueue {\n\tconst prependNodeQueue = new Set<TS.Node>();\n\tconst appendNodeQueue = new Set<TS.Node>();\n\tconst flush = (): readonly [readonly TS.Node[], readonly TS.Node[]] => {\n\t\tconst returnValue = [[...prependNodeQueue], [...appendNodeQueue]] as const;\n\t\tprependNodeQueue.clear();\n\t\tappendNodeQueue.clear();\n\t\treturn returnValue;\n\t};\n\n\treturn {\n\t\tflush,\n\t\tprependNodes(...nodes: TS.Node[]): void {\n\t\t\tfor (const node of nodes) prependNodeQueue.add(node);\n\t\t},\n\t\tappendNodes(...nodes: TS.Node[]): void {\n\t\t\tfor (const node of nodes) appendNodeQueue.add(node);\n\t\t},\n\t\twrapVisitResult<T extends TS.Node>(node: TS.VisitResult<T> | undefined): TS.VisitResult<TS.Node> | undefined {\n\t\t\tif (node == null) return node;\n\t\t\tif (isRootLevelNode(node, typescript) || (Array.isArray(node) && node.some(n => isRootLevelNode(n, typescript)))) {\n\t\t\t\tconst [prependNodes, appendNodes] = flush();\n\t\t\t\treturn [...prependNodes, ...(Array.isArray(node) ? node : [node]), ...appendNodes];\n\t\t\t} else {\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t};\n}\n","import type {ImportedSymbol} from \"../transformers/track-imports-transformer/track-imports-transformer-visitor-options.js\";\n\nexport interface FindMatchingImportedSymbolOptions {\n\tloose: boolean;\n}\n\nexport function findMatchingImportedSymbol(\n\timportedSymbol: ImportedSymbol,\n\timportedSymbols: Iterable<ImportedSymbol>,\n\t{loose = false}: Partial<FindMatchingImportedSymbolOptions> = {}\n): ImportedSymbol | undefined {\n\tfor (const otherImportedSymbol of importedSymbols) {\n\t\t// They both need to point to the same moduleSpecifier\n\t\tif (importedSymbol.moduleSpecifier !== otherImportedSymbol.moduleSpecifier) continue;\n\n\t\t// If it is a NamespaceImport, a matching ImportedSymbol must have the same name\n\t\tif (\"isNamespaceImport\" in importedSymbol) {\n\t\t\tif (\"isNamespaceImport\" in otherImportedSymbol && (loose || importedSymbol.name.text === otherImportedSymbol.name.text)) {\n\t\t\t\treturn otherImportedSymbol;\n\t\t\t}\n\t\t} else if (\"isClauseLessImport\" in importedSymbol) {\n\t\t\tif (\"isClauseLessImport\" in otherImportedSymbol) {\n\t\t\t\treturn otherImportedSymbol;\n\t\t\t}\n\t\t}\n\n\t\t// Otherwise, their names, property names, and default import values must be equal\n\t\telse {\n\t\t\tif (\n\t\t\t\t\"isDefaultImport\" in otherImportedSymbol &&\n\t\t\t\timportedSymbol.isDefaultImport === otherImportedSymbol.isDefaultImport &&\n\t\t\t\t(loose || (importedSymbol.name.text === otherImportedSymbol.name.text && importedSymbol.propertyName.text === otherImportedSymbol.propertyName.text))\n\t\t\t) {\n\t\t\t\treturn otherImportedSymbol;\n\t\t\t}\n\t\t}\n\t}\n\treturn undefined;\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureNoExportModifierTransformerVisitorOptions} from \"../ensure-no-export-modifier-transformer-visitor-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {hasExportModifier, removeExportModifier} from \"../../../util/modifier-util.js\";\nimport {getModifierLikes} from \"../../../util/node-util.js\";\n\nexport function visitClassDeclaration(options: EnsureNoExportModifierTransformerVisitorOptions<TS.ClassDeclaration>): TS.ClassDeclaration {\n\tconst {node, factory, typescript} = options;\n\tif (!hasExportModifier(node, typescript)) return node;\n\tconst modifierLikes = removeExportModifier(getModifierLikes(node), typescript);\n\treturn preserveMeta(factory.updateClassDeclaration(node, modifierLikes, node.name, node.typeParameters, node.heritageClauses, node.members), node, options);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureNoExportModifierTransformerVisitorOptions} from \"../ensure-no-export-modifier-transformer-visitor-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {hasExportModifier, removeExportModifier} from \"../../../util/modifier-util.js\";\nimport {getModifierLikes} from \"../../../util/node-util.js\";\n\nexport function visitClassExpression(options: EnsureNoExportModifierTransformerVisitorOptions<TS.ClassExpression>): TS.ClassExpression {\n\tconst {node, factory, typescript} = options;\n\tif (!hasExportModifier(node, typescript)) return node;\n\n\tconst modifierLikes = removeExportModifier(getModifierLikes(node), typescript);\n\n\treturn preserveMeta(factory.updateClassExpression(node, modifierLikes, node.name, node.typeParameters, node.heritageClauses, node.members), node, options);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureNoExportModifierTransformerVisitorOptions} from \"../ensure-no-export-modifier-transformer-visitor-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {hasExportModifier, removeExportModifier} from \"../../../util/modifier-util.js\";\nimport {getModifierLikes} from \"../../../util/node-util.js\";\n\nexport function visitFunctionDeclaration(options: EnsureNoExportModifierTransformerVisitorOptions<TS.FunctionDeclaration>): TS.FunctionDeclaration {\n\tconst {node, factory, typescript} = options;\n\tif (!hasExportModifier(node, typescript)) return node;\n\n\tconst modifierLikes = removeExportModifier(getModifierLikes(node), typescript);\n\n\treturn preserveMeta(\n\t\tfactory.updateFunctionDeclaration(node, modifierLikes, node.asteriskToken, node.name, node.typeParameters, node.parameters, node.type, node.body),\n\t\tnode,\n\t\toptions\n\t);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureNoExportModifierTransformerVisitorOptions} from \"../ensure-no-export-modifier-transformer-visitor-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {hasExportModifier, removeExportModifier} from \"../../../util/modifier-util.js\";\n\nexport function visitFunctionExpression(options: EnsureNoExportModifierTransformerVisitorOptions<TS.FunctionExpression>): TS.FunctionExpression {\n\tconst {node, factory, typescript} = options;\n\tif (!hasExportModifier(node, typescript)) return node;\n\n\treturn preserveMeta(\n\t\tfactory.updateFunctionExpression(\n\t\t\tnode,\n\t\t\tremoveExportModifier(node.modifiers, typescript),\n\t\t\tnode.asteriskToken,\n\t\t\tnode.name,\n\t\t\tnode.typeParameters,\n\t\t\tnode.parameters,\n\t\t\tnode.type,\n\t\t\tnode.body\n\t\t),\n\t\tnode,\n\t\toptions\n\t);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureNoExportModifierTransformerVisitorOptions} from \"../ensure-no-export-modifier-transformer-visitor-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {hasExportModifier, removeExportModifier} from \"../../../util/modifier-util.js\";\n\nexport function visitEnumDeclaration(options: EnsureNoExportModifierTransformerVisitorOptions<TS.EnumDeclaration>): TS.EnumDeclaration {\n\tconst {node, factory, typescript} = options;\n\tif (!hasExportModifier(node, typescript)) return node;\n\treturn preserveMeta(factory.updateEnumDeclaration(node, removeExportModifier(node.modifiers, typescript), node.name, node.members), node, options);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureNoExportModifierTransformerVisitorOptions} from \"../ensure-no-export-modifier-transformer-visitor-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {hasExportModifier, removeExportModifier} from \"../../../util/modifier-util.js\";\n\nexport function visitVariableStatement(options: EnsureNoExportModifierTransformerVisitorOptions<TS.VariableStatement>): TS.VariableStatement {\n\tconst {node, factory, typescript} = options;\n\tif (!hasExportModifier(node, typescript)) return node;\n\n\treturn preserveMeta(factory.updateVariableStatement(node, removeExportModifier(node.modifiers, typescript), node.declarationList), node, options);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureNoExportModifierTransformerVisitorOptions} from \"../ensure-no-export-modifier-transformer-visitor-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {hasExportModifier, removeExportModifier} from \"../../../util/modifier-util.js\";\n\nexport function visitInterfaceDeclaration(options: EnsureNoExportModifierTransformerVisitorOptions<TS.InterfaceDeclaration>): TS.InterfaceDeclaration {\n\tconst {node, factory, typescript} = options;\n\tif (!hasExportModifier(node, typescript)) return node;\n\n\treturn preserveMeta(\n\t\tfactory.updateInterfaceDeclaration(node, removeExportModifier(node.modifiers, typescript), node.name, node.typeParameters, node.heritageClauses, node.members),\n\t\tnode,\n\t\toptions\n\t);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureNoExportModifierTransformerVisitorOptions} from \"../ensure-no-export-modifier-transformer-visitor-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {hasExportModifier, removeExportModifier} from \"../../../util/modifier-util.js\";\n\nexport function visitModuleDeclaration(options: EnsureNoExportModifierTransformerVisitorOptions<TS.ModuleDeclaration>): TS.ModuleDeclaration {\n\tconst {node, factory, typescript} = options;\n\tif (!hasExportModifier(node, typescript)) return node;\n\treturn preserveMeta(factory.updateModuleDeclaration(node, removeExportModifier(node.modifiers, typescript), node.name, node.body), node, options);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureNoExportModifierTransformerVisitorOptions} from \"../ensure-no-export-modifier-transformer-visitor-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {hasExportModifier, removeExportModifier} from \"../../../util/modifier-util.js\";\n\nexport function visitTypeAliasDeclaration(options: EnsureNoExportModifierTransformerVisitorOptions<TS.TypeAliasDeclaration>): TS.TypeAliasDeclaration {\n\tconst {node, factory, typescript} = options;\n\tif (!hasExportModifier(node, typescript)) return node;\n\treturn preserveMeta(factory.updateTypeAliasDeclaration(node, removeExportModifier(node.modifiers, typescript), node.name, node.typeParameters, node.type), node, options);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureNoExportModifierTransformerVisitorOptions} from \"../ensure-no-export-modifier-transformer-visitor-options.js\";\nimport {visitClassDeclaration} from \"./visit-class-declaration.js\";\nimport {visitClassExpression} from \"./visit-class-expression.js\";\nimport {visitFunctionDeclaration} from \"./visit-function-declaration.js\";\nimport {visitFunctionExpression} from \"./visit-function-expression.js\";\nimport {visitEnumDeclaration} from \"./visit-enum-declaration.js\";\nimport {visitVariableStatement} from \"./visit-variable-statement.js\";\nimport {visitInterfaceDeclaration} from \"./visit-interface-declaration.js\";\nimport {visitModuleDeclaration} from \"./visit-module-declaration.js\";\nimport {visitTypeAliasDeclaration} from \"./visit-type-alias-declaration.js\";\n\nexport function visitNode({node, ...options}: EnsureNoExportModifierTransformerVisitorOptions<TS.Node>): TS.Node {\n\tif (options.typescript.isClassDeclaration(node)) {\n\t\treturn visitClassDeclaration({...options, node});\n\t} else if (options.typescript.isClassExpression(node)) {\n\t\treturn visitClassExpression({...options, node});\n\t} else if (options.typescript.isFunctionDeclaration(node)) {\n\t\treturn visitFunctionDeclaration({...options, node});\n\t} else if (options.typescript.isFunctionExpression(node)) {\n\t\treturn visitFunctionExpression({...options, node});\n\t} else if (options.typescript.isEnumDeclaration(node)) {\n\t\treturn visitEnumDeclaration({...options, node});\n\t} else if (options.typescript.isInterfaceDeclaration(node)) {\n\t\treturn visitInterfaceDeclaration({...options, node});\n\t} else if (options.typescript.isTypeAliasDeclaration(node)) {\n\t\treturn visitTypeAliasDeclaration({...options, node});\n\t} else if (options.typescript.isModuleDeclaration(node)) {\n\t\treturn visitModuleDeclaration({...options, node});\n\t} else if (options.typescript.isVariableStatement(node)) {\n\t\treturn visitVariableStatement({...options, node});\n\t} else {\n\t\t// Only consider root-level statements here\n\t\treturn node;\n\t}\n}\n","import type {TS} from \"../../../../../type/ts.js\";\nimport type {SourceFileBundlerVisitorOptions} from \"../source-file-bundler/source-file-bundler-visitor-options.js\";\nimport {visitNode} from \"./visitor/visit-node.js\";\nimport {shouldDebugMetrics, shouldDebugSourceFile} from \"../../../../../util/is-debug/should-debug.js\";\nimport {logMetrics} from \"../../../../../util/logging/log-metrics.js\";\nimport {logTransformer} from \"../../../../../util/logging/log-transformer.js\";\nimport {preserveMeta} from \"../../util/clone-node-with-meta.js\";\n\nexport function ensureNoExportModifierTransformer(options: SourceFileBundlerVisitorOptions): TS.SourceFile {\n\tconst {typescript, context, sourceFile, pluginOptions, printer} = options;\n\n\tconst fullBenchmark = shouldDebugMetrics(pluginOptions.debug, sourceFile) ? logMetrics(`Ensuring no export modifiers`, sourceFile.fileName) : undefined;\n\n\tconst transformationLog = shouldDebugSourceFile(pluginOptions.debug, sourceFile) ? logTransformer(\"Ensuring no export modifiers\", sourceFile, printer) : undefined;\n\n\t// Prepare some VisitorOptions\n\tconst visitorOptions = {\n\t\t...options,\n\n\t\tchildContinuation: <U extends TS.Node>(node: U): U =>\n\t\t\ttypescript.visitEachChild(\n\t\t\t\tnode,\n\t\t\t\tnextNode =>\n\t\t\t\t\tvisitNode({\n\t\t\t\t\t\t...visitorOptions,\n\t\t\t\t\t\tnode: nextNode\n\t\t\t\t\t}),\n\t\t\t\tcontext\n\t\t\t),\n\n\t\tcontinuation: <U extends TS.Node>(node: U): U =>\n\t\t\tvisitNode({\n\t\t\t\t...visitorOptions,\n\t\t\t\tnode\n\t\t\t}) as U\n\t};\n\n\tconst result = preserveMeta(\n\t\ttypescript.visitEachChild(sourceFile, nextNode => visitorOptions.continuation(nextNode), context),\n\t\tsourceFile,\n\t\toptions\n\t);\n\n\ttransformationLog?.finish(result);\n\tfullBenchmark?.finish();\n\n\treturn result;\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {NoExportDeclarationTransformerVisitorOptions} from \"../no-export-declaration-transformer-visitor-options.js\";\n\nexport function visitExportDeclaration(options: NoExportDeclarationTransformerVisitorOptions<TS.ExportDeclaration>): TS.ExportDeclaration | undefined {\n\tconst {node, typescript, preserveExportsWithModuleSpecifiers, preserveAliasedExports} = options;\n\tif (preserveExportsWithModuleSpecifiers && node.moduleSpecifier != null) {\n\t\treturn node;\n\t}\n\tconst isNamespaceExport = typescript.isNamespaceExport == null ? (_: TS.Node): _ is TS.NamespaceExport => false : typescript.isNamespaceExport;\n\n\tif (preserveAliasedExports && node.exportClause != null && (isNamespaceExport(node.exportClause) || node.exportClause.elements.some(element => element.propertyName != null))) {\n\t\treturn node;\n\t}\n\n\treturn undefined;\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {NoExportDeclarationTransformerVisitorOptions} from \"../no-export-declaration-transformer-visitor-options.js\";\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function visitExportAssignment(_options: NoExportDeclarationTransformerVisitorOptions<TS.ExportAssignment>): undefined {\n\treturn undefined;\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {NoExportDeclarationTransformerVisitorOptions} from \"../no-export-declaration-transformer-visitor-options.js\";\nimport {visitExportDeclaration} from \"./visit-export-declaration.js\";\nimport {visitExportAssignment} from \"./visit-export-assignment.js\";\n\nexport function visitNode({node, ...options}: NoExportDeclarationTransformerVisitorOptions<TS.Node>): TS.Node | undefined {\n\tif (options.typescript.isExportDeclaration(node)) {\n\t\treturn visitExportDeclaration({...options, node});\n\t} else if (options.typescript.isExportAssignment(node)) {\n\t\treturn visitExportAssignment({...options, node});\n\t} else {\n\t\t// Preserve the node\n\t\treturn node;\n\t}\n}\n","import type {TS} from \"../../../../../type/ts.js\";\nimport {visitNode} from \"./visitor/visit-node.js\";\nimport {getNodePlacementQueue} from \"../../util/get-node-placement-queue.js\";\nimport type {NoExportDeclarationTransformerVisitorOptions} from \"./no-export-declaration-transformer-visitor-options.js\";\nimport {shouldDebugMetrics, shouldDebugSourceFile} from \"../../../../../util/is-debug/should-debug.js\";\nimport {logMetrics} from \"../../../../../util/logging/log-metrics.js\";\nimport {logTransformer} from \"../../../../../util/logging/log-transformer.js\";\nimport {preserveMeta} from \"../../util/clone-node-with-meta.js\";\nimport type {DeclarationTransformer} from \"../../declaration-bundler-options.js\";\nimport type {NoExportDeclarationTransformerOptions} from \"./no-export-declaration-transformer-options.js\";\n\nexport function noExportDeclarationTransformer({\n\tpreserveAliasedExports = false,\n\tpreserveExportsWithModuleSpecifiers = false\n}: Partial<NoExportDeclarationTransformerOptions> = {}): DeclarationTransformer {\n\treturn options => {\n\t\tconst {typescript, context, sourceFile, pluginOptions, printer} = options;\n\n\t\tconst fullBenchmark = shouldDebugMetrics(pluginOptions.debug, sourceFile) ? logMetrics(`Removing ExportDeclarations`, sourceFile.fileName) : undefined;\n\n\t\tconst transformationLog = shouldDebugSourceFile(pluginOptions.debug, sourceFile) ? logTransformer(\"Removing ExportDeclarations\", sourceFile, printer) : undefined;\n\n\t\tconst nodePlacementQueue = getNodePlacementQueue({typescript});\n\n\t\t// Prepare some VisitorOptions\n\t\tconst visitorOptions: Omit<NoExportDeclarationTransformerVisitorOptions<TS.Node>, \"node\"> = {\n\t\t\t...options,\n\t\t\t...nodePlacementQueue,\n\t\t\tpreserveAliasedExports,\n\t\t\tpreserveExportsWithModuleSpecifiers,\n\n\t\t\tchildContinuation: <U extends TS.Node>(node: U): U =>\n\t\t\t\ttypescript.visitEachChild(\n\t\t\t\t\tnode,\n\t\t\t\t\tnextNode =>\n\t\t\t\t\t\tnodePlacementQueue.wrapVisitResult(\n\t\t\t\t\t\t\tvisitNode({\n\t\t\t\t\t\t\t\t...visitorOptions,\n\t\t\t\t\t\t\t\tnode: nextNode\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t),\n\t\t\t\t\tcontext\n\t\t\t\t),\n\n\t\t\tcontinuation: <U extends TS.Node>(node: U): U =>\n\t\t\t\tnodePlacementQueue.wrapVisitResult(\n\t\t\t\t\tvisitNode({\n\t\t\t\t\t\t...visitorOptions,\n\t\t\t\t\t\tnode\n\t\t\t\t\t})\n\t\t\t\t) as U\n\t\t};\n\n\t\tconst result = preserveMeta(\n\t\t\ttypescript.visitEachChild(sourceFile, nextNode => visitorOptions.continuation(nextNode), context),\n\t\t\tsourceFile,\n\t\t\toptions\n\t\t);\n\n\t\ttransformationLog?.finish(result);\n\t\tfullBenchmark?.finish();\n\n\t\treturn result;\n\t};\n}\n","import type {LexicalEnvironment} from \"../transformers/deconflicter/deconflicter-options.js\";\n\nexport function getBindingFromLexicalEnvironment(lexicalEnvironment: LexicalEnvironment, key: string): string | undefined {\n\tif (lexicalEnvironment.bindings.has(key)) {\n\t\treturn lexicalEnvironment.bindings.get(key)!.value;\n\t} else if (lexicalEnvironment.parent != null) {\n\t\treturn getBindingFromLexicalEnvironment(lexicalEnvironment.parent, key);\n\t} else {\n\t\treturn undefined;\n\t}\n}\n","import {visitNode} from \"./visitor/visit-node.js\";\nimport type {TS} from \"../../../../../type/ts.js\";\nimport type {ChildVisitResult, IncludeSourceFileOptions, ModuleMergerVisitorOptions, PayloadMap, VisitResult} from \"./module-merger-visitor-options.js\";\nimport type {DeclarationTransformer} from \"../../declaration-bundler-options.js\";\nimport {applyTransformers} from \"../../util/apply-transformers.js\";\nimport {getNodePlacementQueue} from \"../../util/get-node-placement-queue.js\";\nimport {findMatchingImportedSymbol} from \"../../util/find-matching-imported-symbol.js\";\nimport {cloneNodeWithMeta, preserveMeta} from \"../../util/clone-node-with-meta.js\";\nimport type {ImportedSymbol} from \"../track-imports-transformer/track-imports-transformer-visitor-options.js\";\nimport {getChunkFilename} from \"../../util/get-chunk-filename.js\";\nimport {ensureNoExportModifierTransformer} from \"../ensure-no-export-modifier-transformer/ensure-no-export-modifier-transformer.js\";\nimport {noExportDeclarationTransformer} from \"../no-export-declaration-transformer/no-export-declaration-transformer.js\";\nimport {shouldDebugMetrics, shouldDebugSourceFile} from \"../../../../../util/is-debug/should-debug.js\";\nimport {logMetrics} from \"../../../../../util/logging/log-metrics.js\";\nimport {logTransformer} from \"../../../../../util/logging/log-transformer.js\";\nimport {getBindingFromLexicalEnvironment} from \"../../util/get-binding-from-lexical-environment.js\";\n\nexport function moduleMerger(...transformers: DeclarationTransformer[]): DeclarationTransformer {\n\treturn options => {\n\t\tconst {typescript, context, factory, sourceFile, pluginOptions, printer, preservedImports, inlinedModules} = options;\n\n\t\tconst fullBenchmark = shouldDebugMetrics(pluginOptions.debug, sourceFile) ? logMetrics(`Merging modules`, sourceFile.fileName) : undefined;\n\n\t\tconst transformationLog = shouldDebugSourceFile(pluginOptions.debug, sourceFile) ? logTransformer(\"Merging modules\", sourceFile, printer) : undefined;\n\n\t\tconst nodePlacementQueue = getNodePlacementQueue({typescript});\n\n\t\t// Prepare some VisitorOptions\n\t\tconst visitorOptions: Omit<ModuleMergerVisitorOptions<TS.Node>, \"node\"> = {\n\t\t\t...options,\n\t\t\t...nodePlacementQueue,\n\t\t\ttransformers,\n\t\t\tpayload: undefined,\n\n\t\t\tchildContinuation: <U extends TS.Node>(node: U, payload: PayloadMap[U[\"kind\"]]): ChildVisitResult<U> =>\n\t\t\t\ttypescript.visitEachChild(\n\t\t\t\t\tnode,\n\t\t\t\t\tnextNode =>\n\t\t\t\t\t\tnodePlacementQueue.wrapVisitResult(\n\t\t\t\t\t\t\tvisitNode({\n\t\t\t\t\t\t\t\t...visitorOptions,\n\t\t\t\t\t\t\t\tpayload,\n\t\t\t\t\t\t\t\tnode: nextNode\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t),\n\t\t\t\t\tcontext\n\t\t\t\t),\n\n\t\t\tcontinuation: <U extends TS.Node>(node: U, payload: PayloadMap[U[\"kind\"]]): VisitResult<U> =>\n\t\t\t\tnodePlacementQueue.wrapVisitResult(\n\t\t\t\t\tvisitNode({\n\t\t\t\t\t\t...visitorOptions,\n\t\t\t\t\t\tpayload,\n\t\t\t\t\t\tnode\n\t\t\t\t\t} as ModuleMergerVisitorOptions<U>)\n\t\t\t\t) as VisitResult<U>,\n\n\t\t\tgetNameForInlinedModuleDeclaration(moduleSpecifier: string): string | undefined {\n\t\t\t\tconst name = inlinedModules.get(moduleSpecifier);\n\t\t\t\tif (name == null) return undefined;\n\t\t\t\treturn getBindingFromLexicalEnvironment(options.lexicalEnvironment, name) ?? name;\n\t\t\t},\n\t\t\tmarkModuleDeclarationAsInlined(moduleSpecifier: string, name: string): void {\n\t\t\t\tinlinedModules.set(moduleSpecifier, name);\n\t\t\t},\n\n\t\t\tshouldPreserveImportedSymbol(importedSymbol: ImportedSymbol): boolean {\n\t\t\t\tlet importedSymbols = preservedImports.get(importedSymbol.moduleSpecifier);\n\t\t\t\tif (importedSymbols == null) {\n\t\t\t\t\timportedSymbols = new Set();\n\t\t\t\t\tpreservedImports.set(importedSymbol.moduleSpecifier, importedSymbols);\n\t\t\t\t}\n\n\t\t\t\t// Preserve the import of there is no matching imported symbol already\n\t\t\t\tif (findMatchingImportedSymbol(importedSymbol, importedSymbols) != null) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Otherwise, the import should be preserved!\n\t\t\t\timportedSymbols.add(importedSymbol);\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\tgetMatchingSourceFile(moduleSpecifier: string, from: TS.SourceFile): TS.SourceFile | undefined {\n\t\t\t\tconst resolvedSourceFile = options.resolveSourceFile(moduleSpecifier, from.fileName);\n\n\t\t\t\tconst chunkForSourceFile = resolvedSourceFile == null ? undefined : getChunkFilename(resolvedSourceFile.fileName, options.chunks);\n\t\t\t\tconst isSameChunk = resolvedSourceFile != null && chunkForSourceFile != null && chunkForSourceFile === options.chunk.paths.absolute;\n\n\t\t\t\treturn resolvedSourceFile === from || !isSameChunk ? undefined : resolvedSourceFile;\n\t\t\t},\n\n\t\t\tincludeSourceFile(\n\t\t\t\tsourceFileToInclude: TS.SourceFile,\n\t\t\t\t{\n\t\t\t\t\tallowDuplicate = false,\n\t\t\t\t\tallowExports = options.otherEntrySourceFilesForChunk.some(otherEntrySourceFileForChunk => otherEntrySourceFileForChunk.fileName === sourceFileToInclude.fileName),\n\t\t\t\t\ttransformers: extraTransformers = [],\n\t\t\t\t\t...otherOptions\n\t\t\t\t}: Partial<IncludeSourceFileOptions> = {}\n\t\t\t): Iterable<TS.Statement> {\n\t\t\t\t// Never include the same SourceFile twice\n\t\t\t\tif (options.includedSourceFiles.has(sourceFileToInclude.fileName) && !allowDuplicate) return [];\n\t\t\t\toptions.includedSourceFiles.add(sourceFileToInclude.fileName);\n\n\t\t\t\tconst allTransformers =\n\t\t\t\t\tallowExports === true\n\t\t\t\t\t\t? [...transformers, ...extraTransformers]\n\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t...transformers,\n\t\t\t\t\t\t\t\t// Removes 'export' modifiers from Nodes\n\t\t\t\t\t\t\t\t...(allowExports === false || allowExports === \"skip-optional\" ? [ensureNoExportModifierTransformer] : []),\n\t\t\t\t\t\t\t\t// Removes ExportDeclarations and ExportAssignments\n\t\t\t\t\t\t\t\tnoExportDeclarationTransformer({\n\t\t\t\t\t\t\t\t\tpreserveAliasedExports: allowExports === \"skip-optional\",\n\t\t\t\t\t\t\t\t\tpreserveExportsWithModuleSpecifiers: allowExports === \"skip-optional\"\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t...extraTransformers\n\t\t\t\t\t\t  ];\n\n\t\t\t\tconst transformedSourceFile = applyTransformers({\n\t\t\t\t\tvisitorOptions: {\n\t\t\t\t\t\t...visitorOptions,\n\t\t\t\t\t\t...otherOptions,\n\t\t\t\t\t\tallowExports,\n\t\t\t\t\t\t// If duplicates should be allowed, treat this context as empty\n\t\t\t\t\t\tincludedSourceFiles: allowDuplicate ? new Set() : options.includedSourceFiles,\n\n\t\t\t\t\t\tsourceFile: sourceFileToInclude,\n\t\t\t\t\t\totherEntrySourceFilesForChunk: []\n\t\t\t\t\t},\n\t\t\t\t\ttransformers: [moduleMerger(...allTransformers), ...allTransformers]\n\t\t\t\t});\n\n\t\t\t\t// Keep track of the original symbols which will be lost when the nodes are cloned\n\t\t\t\treturn transformedSourceFile.statements.map(node => cloneNodeWithMeta(node, options));\n\t\t\t}\n\t\t};\n\n\t\tlet result = visitorOptions.continuation(sourceFile, undefined);\n\n\t\t// There may be prepended or appended nodes that hasn't been added yet. Do so!\n\t\tconst [missingPrependNodes, missingAppendNodes] = nodePlacementQueue.flush();\n\t\tif (missingPrependNodes.length > 0 || missingAppendNodes.length > 0) {\n\t\t\tresult = preserveMeta(\n\t\t\t\tfactory.updateSourceFile(\n\t\t\t\t\tresult,\n\t\t\t\t\t[...(missingPrependNodes as TS.Statement[]), ...result.statements, ...(missingAppendNodes as TS.Statement[])],\n\t\t\t\t\tresult.isDeclarationFile,\n\t\t\t\t\tresult.referencedFiles,\n\t\t\t\t\tresult.typeReferenceDirectives,\n\t\t\t\t\tresult.hasNoDefaultLib,\n\t\t\t\t\tresult.libReferenceDirectives\n\t\t\t\t),\n\t\t\t\tresult,\n\t\t\t\toptions\n\t\t\t);\n\t\t}\n\n\t\ttransformationLog?.finish(result);\n\t\tfullBenchmark?.finish();\n\n\t\t// Otherwise, return the result as it is\n\t\treturn result;\n\t};\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport {addBindingToLexicalEnvironment} from \"../../../util/add-binding-to-lexical-environment.js\";\nimport {isIdentifierFree} from \"../../../util/is-identifier-free.js\";\nimport {generateUniqueBinding} from \"../../../util/generate-unique-binding.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {getOriginalSourceFile} from \"../../../util/get-original-source-file.js\";\n\n/**\n * Deconflicts the given BindingElement.\n */\nexport function deconflictBindingElement(options: DeconflicterVisitorOptions<TS.BindingElement>): TS.BindingElement | undefined {\n\tconst {node, continuation, lexicalEnvironment, typescript, factory, sourceFile} = options;\n\n\tlet nameContResult: TS.BindingElement[\"name\"];\n\tconst originalSourceFile = getOriginalSourceFile(node, sourceFile, typescript);\n\n\tif (typescript.isIdentifier(node.name)) {\n\t\tif (isIdentifierFree(lexicalEnvironment, node.name.text, originalSourceFile.fileName)) {\n\t\t\tnameContResult = node.name;\n\n\t\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, node.name.text);\n\t\t} else {\n\t\t\t// Otherwise, deconflict it\n\t\t\tconst uniqueBinding = generateUniqueBinding(lexicalEnvironment, node.name.text);\n\t\t\tnameContResult = factory.createIdentifier(uniqueBinding);\n\n\t\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, uniqueBinding, node.name.text);\n\t\t}\n\t} else {\n\t\t// Otherwise, deconflict it\n\t\tnameContResult = continuation(node.name, {lexicalEnvironment});\n\t}\n\n\tconst propertyNameContResult =\n\t\tnode.propertyName == null ? undefined : typescript.isIdentifier(node.propertyName) ? node.propertyName : continuation(node.propertyName, {lexicalEnvironment});\n\tconst initializerContResult = node.initializer == null ? undefined : continuation(node.initializer, {lexicalEnvironment});\n\n\tconst isIdentical = nameContResult === node.name && propertyNameContResult === node.propertyName && initializerContResult === node.initializer;\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\treturn preserveMeta(factory.updateBindingElement(node, node.dotDotDotToken, propertyNameContResult, nameContResult, initializerContResult), node, options);\n}\n","import type {TS} from \"../../../../type/ts.js\";\n\nexport function nodeArraysAreEqual(a: TS.NodeArray<TS.Node> | TS.Node[] | undefined, b: TS.NodeArray<TS.Node> | TS.Node[] | undefined): boolean {\n\tif (a == null && b == null) return true;\n\treturn a != null && b != null && a.length === b.length && a.every((element, index) => element === b[index]);\n}\n","import type {GetSymbolAtLocationOptions} from \"./get-symbol-at-location.js\";\nimport {getSymbolAtLocation} from \"./get-symbol-at-location.js\";\nimport type {TS} from \"../../../../type/ts.js\";\nimport {generateRandomHash, generateRandomIntegerHash} from \"../../../../util/hash/generate-random-hash.js\";\nimport {getOriginalNode} from \"./get-original-node.js\";\nimport {getParentNode} from \"./get-parent-node.js\";\nimport {getAliasedDeclaration} from \"./get-aliased-declaration.js\";\nimport type {SafeNode} from \"../../../../type/safe-node.js\";\n\n/**\n * According to TypeScript, multiple namespace imports, identically named, from the same module may have different IDs, because they are all local bindings in their respective modules.\n * For example, in files a.ts and b.ts, both may include 'import * as Foo from \"foo\"', but the ids of 'Foo' will be unique for each SourceFile, given that it is indeed separate local bindings of Foo,\n * and they aren't equal to each other. However, we're merging ImportDeclarations here, and so, structurally identical imported bindings should share ids. This function makes sure to generate an id\n * that is shared for structurally identical NamespaceImports\n */\nfunction getIdForNamespaceImportName(options: GetSymbolAtLocationOptions & {node: TS.Identifier}): number {\n\tconst {node} = options;\n\tconst originalNode = getOriginalNode(node, options.typescript) as TS.Identifier & {parent: TS.NamespaceImport};\n\tconst moduleSpecifier = getParentNode(getParentNode(getParentNode(originalNode))).moduleSpecifier;\n\n\treturn generateRandomIntegerHash({\n\t\tkey: `NamespaceImport:${node.text}:${moduleSpecifier == null || !options.typescript.isStringLiteralLike(moduleSpecifier) ? generateRandomHash() : moduleSpecifier.text}`,\n\t\tlength: 100\n\t});\n}\n\n/**\n * According to TypeScript, multiple import specifiers, identically named, from the same module may have different IDs, because they are all local bindings in their respective modules.\n * For example, in files a.ts and b.ts, both may include 'import {foo} from \"foo\"', but the ids of 'foo' will be unique for each SourceFile, given that it is indeed separate local bindings of foo,\n * and they aren't equal to each other. However, we're merging ImportDeclarations here, and so, structurally identical imported bindings should share ids. This function makes sure to generate an id\n * that is shared for structurally identical ImportSpecifiers\n */\nfunction getIdForImportSpecifier(options: GetSymbolAtLocationOptions & {node: TS.Identifier}): number {\n\tconst {node} = options;\n\tconst originalNode = getOriginalNode(node, options.typescript) as TS.Identifier & {parent: TS.ImportSpecifier};\n\tconst moduleSpecifier = getParentNode(getParentNode(getParentNode(getParentNode(originalNode)))).moduleSpecifier;\n\n\treturn generateRandomIntegerHash({\n\t\tkey: `${node.text === \"default\" ? \"name\" : \"ImportSpecifier\"}:${node.text}:${\n\t\t\tmoduleSpecifier == null || !options.typescript.isStringLiteralLike(moduleSpecifier) ? generateRandomHash() : moduleSpecifier.text\n\t\t}`,\n\t\tlength: 100\n\t});\n}\n\n/**\n * According to TypeScript, multiple default imports, identically named, from the same module may have different IDs, because they are all local bindings in their respective modules.\n * For example, in files a.ts and b.ts, both may include 'import Foo from \"foo\"', but the ids of 'Foo' will be unique for each SourceFile, given that it is indeed separate local bindings of Foo,\n * and they aren't equal to each other. However, we're merging ImportDeclarations here, and so, structurally identical imported bindings should share ids. This function makes sure to generate an id\n * that is shared for structurally identical imported names\n */\nfunction getIdForImportedName(options: GetSymbolAtLocationOptions & {node: TS.Identifier}): number {\n\tconst {node} = options;\n\tconst originalNode = getOriginalNode(node, options.typescript) as TS.Identifier & {parent: TS.ImportClause};\n\tconst moduleSpecifier = getParentNode(getParentNode(originalNode)).moduleSpecifier;\n\n\treturn generateRandomIntegerHash({\n\t\tkey: `name:${node.text}:${moduleSpecifier == null || !options.typescript.isStringLiteralLike(moduleSpecifier) ? generateRandomHash() : moduleSpecifier.text}`,\n\t\tlength: 100\n\t});\n}\n\nfunction getIdForStructurallyEqualNode(options: GetSymbolAtLocationOptions): number | undefined {\n\tif (options.typescript.isImportSpecifier(options.node)) {\n\t\treturn getIdForImportSpecifier({...options, node: options.node.name});\n\t} else if (options.typescript.isNamespaceImport(options.node)) {\n\t\treturn getIdForNamespaceImportName({...options, node: options.node.name});\n\t} else if (options.typescript.isImportClause(options.node) && options.node.name != null) {\n\t\treturn getIdForImportedName({...options, node: options.node.name});\n\t} else {\n\t\treturn undefined;\n\t}\n}\n\nexport function getIdForNode(options: GetSymbolAtLocationOptions): number | undefined {\n\tif (options.typescript.isExportSpecifier(options.node)) {\n\t\tconst aliasedDeclaration = getAliasedDeclaration(options);\n\t\tif (aliasedDeclaration != null && (aliasedDeclaration as SafeNode) !== options.node) {\n\t\t\treturn getIdForNode({...options, node: aliasedDeclaration});\n\t\t}\n\t}\n\n\tconst importRelatedId = getIdForStructurallyEqualNode(options);\n\tif (importRelatedId != null) {\n\t\treturn importRelatedId;\n\t} else if (options.typescript.isIdentifier(options.node)) {\n\t\tconst parent = getParentNode(options.node) ?? getParentNode(getOriginalNode(options.node, options.typescript));\n\n\t\tif (parent != null) {\n\t\t\tconst parentImportRelatedId = getIdForStructurallyEqualNode({...options, node: parent});\n\t\t\tif (parentImportRelatedId != null) return parentImportRelatedId;\n\t\t}\n\t}\n\n\tconst symbol = getSymbolAtLocation(options);\n\tif (symbol == null) return undefined;\n\tlet declaration: ((TS.Declaration | TS.Type) & {id?: number}) | undefined;\n\n\tif (symbol.declarations != null) {\n\t\tdeclaration = symbol.declarations[0];\n\t} else if (symbol.valueDeclaration != null) {\n\t\tdeclaration = symbol.valueDeclaration;\n\t} else if (\"type\" in symbol) {\n\t\tdeclaration = (symbol as unknown as {type: TS.Type}).type;\n\t}\n\n\tif (declaration == null) return undefined;\n\n\treturn declaration.id;\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport {nodeArraysAreEqual} from \"../../../util/node-arrays-are-equal.js\";\nimport {addBindingToLexicalEnvironment} from \"../../../util/add-binding-to-lexical-environment.js\";\nimport {cloneLexicalEnvironment} from \"../../../util/clone-lexical-environment.js\";\nimport {isIdentifierFree} from \"../../../util/is-identifier-free.js\";\nimport {generateUniqueBinding} from \"../../../util/generate-unique-binding.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport type {ContinuationOptions} from \"../deconflicter-options.js\";\nimport {getIdForNode} from \"../../../util/get-id-for-node.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {getOriginalSourceFile} from \"../../../util/get-original-source-file.js\";\nimport {getModifierLikes} from \"../../../util/node-util.js\";\n\n/**\n * Deconflicts the given ClassDeclaration.\n */\nexport function deconflictClassDeclaration(options: DeconflicterVisitorOptions<TS.ClassDeclaration>): TS.ClassDeclaration | undefined {\n\tconst {node, continuation, lexicalEnvironment, typescript, factory, sourceFile, declarationToDeconflictedBindingMap} = options;\n\n\tlet nameContResult: TS.ClassDeclaration[\"name\"];\n\n\tif (node.name != null) {\n\t\tconst id = getIdForNode(options);\n\t\tconst originalSourceFile = getOriginalSourceFile(node, sourceFile, typescript);\n\n\t\tif (isIdentifierFree(lexicalEnvironment, node.name.text, originalSourceFile.fileName)) {\n\t\t\tnameContResult = node.name;\n\t\t\tif (id != null) declarationToDeconflictedBindingMap.set(id, node.name.text);\n\n\t\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, node.name.text);\n\t\t} else {\n\t\t\t// Otherwise, deconflict it\n\t\t\tconst uniqueBinding = generateUniqueBinding(lexicalEnvironment, node.name.text);\n\t\t\tnameContResult = factory.createIdentifier(uniqueBinding);\n\t\t\tif (id != null) declarationToDeconflictedBindingMap.set(id, uniqueBinding);\n\n\t\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, uniqueBinding, node.name.text);\n\t\t}\n\t}\n\n\t// The Type parameters, as well as the heritage clauses share the same lexical environment\n\tconst nextContinuationOptions: ContinuationOptions = {lexicalEnvironment: cloneLexicalEnvironment(lexicalEnvironment)};\n\n\tconst typeParametersContResult = node.typeParameters == null ? undefined : node.typeParameters.map(typeParameter => continuation(typeParameter, nextContinuationOptions));\n\tconst heritageClausesContResult = node.heritageClauses == null ? undefined : node.heritageClauses.map(heritageClause => continuation(heritageClause, nextContinuationOptions));\n\tconst membersContResult = node.members.map(member => continuation(member, {lexicalEnvironment}));\n\n\tconst isIdentical =\n\t\tnameContResult === node.name &&\n\t\tnodeArraysAreEqual(typeParametersContResult, node.typeParameters) &&\n\t\tnodeArraysAreEqual(heritageClausesContResult, node.heritageClauses) &&\n\t\tnodeArraysAreEqual(membersContResult, node.members);\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\tconst modifierLikes = getModifierLikes(node);\n\n\treturn preserveMeta(factory.updateClassDeclaration(node, modifierLikes, nameContResult, typeParametersContResult, heritageClausesContResult, membersContResult), node, options);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport {nodeArraysAreEqual} from \"../../../util/node-arrays-are-equal.js\";\nimport {addBindingToLexicalEnvironment} from \"../../../util/add-binding-to-lexical-environment.js\";\nimport {cloneLexicalEnvironment} from \"../../../util/clone-lexical-environment.js\";\nimport {isIdentifierFree} from \"../../../util/is-identifier-free.js\";\nimport {generateUniqueBinding} from \"../../../util/generate-unique-binding.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport type {ContinuationOptions} from \"../deconflicter-options.js\";\nimport {getIdForNode} from \"../../../util/get-id-for-node.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {getOriginalSourceFile} from \"../../../util/get-original-source-file.js\";\nimport {getModifierLikes} from \"../../../util/node-util.js\";\n\n/**\n * Deconflicts the given ClassExpression.\n */\nexport function deconflictClassExpression(options: DeconflicterVisitorOptions<TS.ClassExpression>): TS.ClassExpression | undefined {\n\tconst {node, continuation, lexicalEnvironment, typescript, factory, sourceFile, declarationToDeconflictedBindingMap} = options;\n\tlet nameContResult: TS.ClassExpression[\"name\"];\n\n\tif (node.name != null) {\n\t\tconst id = getIdForNode(options);\n\t\tconst originalSourceFile = getOriginalSourceFile(node, sourceFile, typescript);\n\n\t\tif (isIdentifierFree(lexicalEnvironment, node.name.text, originalSourceFile.fileName)) {\n\t\t\tnameContResult = node.name;\n\t\t\tif (id != null) declarationToDeconflictedBindingMap.set(id, node.name.text);\n\n\t\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, node.name.text);\n\t\t} else {\n\t\t\t// Otherwise, deconflict it\n\t\t\tconst uniqueBinding = generateUniqueBinding(lexicalEnvironment, node.name.text);\n\t\t\tnameContResult = factory.createIdentifier(uniqueBinding);\n\t\t\tif (id != null) declarationToDeconflictedBindingMap.set(id, uniqueBinding);\n\n\t\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, uniqueBinding, node.name.text);\n\t\t}\n\t}\n\n\t// The Type parameters, as well as the heritage clauses share the same lexical environment\n\tconst nextContinuationOptions: ContinuationOptions = {lexicalEnvironment: cloneLexicalEnvironment(lexicalEnvironment)};\n\n\tconst typeParametersContResult = node.typeParameters == null ? undefined : node.typeParameters.map(typeParameter => continuation(typeParameter, nextContinuationOptions));\n\tconst heritageClausesContResult = node.heritageClauses == null ? undefined : node.heritageClauses.map(heritageClause => continuation(heritageClause, nextContinuationOptions));\n\tconst membersContResult = node.members.map(member => continuation(member, {lexicalEnvironment}));\n\n\tconst isIdentical =\n\t\tnameContResult === node.name &&\n\t\tnodeArraysAreEqual(typeParametersContResult, node.typeParameters) &&\n\t\tnodeArraysAreEqual(heritageClausesContResult, node.heritageClauses) &&\n\t\tnodeArraysAreEqual(membersContResult, node.members);\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\tconst modifierLikes = getModifierLikes(node);\n\n\treturn preserveMeta(factory.updateClassExpression(node, modifierLikes, nameContResult, typeParametersContResult, heritageClausesContResult, membersContResult), node, options);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport {nodeArraysAreEqual} from \"../../../util/node-arrays-are-equal.js\";\nimport {addBindingToLexicalEnvironment} from \"../../../util/add-binding-to-lexical-environment.js\";\nimport {isIdentifierFree} from \"../../../util/is-identifier-free.js\";\nimport {generateUniqueBinding} from \"../../../util/generate-unique-binding.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {getIdForNode} from \"../../../util/get-id-for-node.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {getOriginalSourceFile} from \"../../../util/get-original-source-file.js\";\n\n/**\n * Deconflicts the given EnumDeclaration.\n */\nexport function deconflictEnumDeclaration(options: DeconflicterVisitorOptions<TS.EnumDeclaration>): TS.EnumDeclaration | undefined {\n\tconst {node, continuation, lexicalEnvironment, typescript, sourceFile, factory, declarationToDeconflictedBindingMap} = options;\n\tlet nameContResult: TS.EnumDeclaration[\"name\"];\n\tconst id = getIdForNode(options);\n\tconst originalSourceFile = getOriginalSourceFile(node, sourceFile, typescript);\n\n\tif (isIdentifierFree(lexicalEnvironment, node.name.text, originalSourceFile.fileName)) {\n\t\tnameContResult = node.name;\n\t\tif (id != null) declarationToDeconflictedBindingMap.set(id, node.name.text);\n\n\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, node.name.text);\n\t} else {\n\t\t// Otherwise, deconflict it\n\t\tconst uniqueBinding = generateUniqueBinding(lexicalEnvironment, node.name.text);\n\t\tnameContResult = factory.createIdentifier(uniqueBinding);\n\t\tif (id != null) declarationToDeconflictedBindingMap.set(id, uniqueBinding);\n\n\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, uniqueBinding, node.name.text);\n\t}\n\n\tconst membersContResult = node.members.map(member => continuation(member, {lexicalEnvironment}));\n\n\tconst isIdentical = nameContResult === node.name && nodeArraysAreEqual(membersContResult, node.members);\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\treturn preserveMeta(factory.updateEnumDeclaration(node, node.modifiers, nameContResult, membersContResult), node, options);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\n\n/**\n * Deconflicts the given EnumMember.\n */\nexport function deconflictEnumMember(options: DeconflicterVisitorOptions<TS.EnumMember>): TS.EnumMember | undefined {\n\tconst {node, continuation, lexicalEnvironment, typescript, factory} = options;\n\tconst nameContResult = typescript.isIdentifier(node.name) ? node.name : continuation(node.name, {lexicalEnvironment});\n\tconst initializerContResult = node.initializer == null ? undefined : continuation(node.initializer, {lexicalEnvironment});\n\n\tconst isIdentical = nameContResult === node.name && initializerContResult === node.initializer;\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\treturn preserveMeta(factory.updateEnumMember(node, nameContResult, initializerContResult), node, options);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\n\n/**\n * Deconflicts the given ExportSpecifier.\n */\nexport function deconflictExportSpecifier(options: DeconflicterVisitorOptions<TS.ExportSpecifier>): TS.ExportSpecifier | undefined {\n\tconst {node, continuation, lexicalEnvironment, factory} = options;\n\tconst propertyName = node.propertyName ?? node.name;\n\tconst propertyNameContResult = continuation(propertyName, {lexicalEnvironment});\n\n\t// If the ExportSpecifier is something like '{Foo}' but 'Foo' has been deconflicted in this SourceFile to something else,\n\t// we should re-write it to something like '{Foo$0 as Foo}'\n\tif (propertyNameContResult !== propertyName) {\n\t\treturn preserveMeta(factory.updateExportSpecifier(node, false, propertyNameContResult.text === node.name.text ? undefined : propertyNameContResult, node.name), node, options);\n\t}\n\n\treturn node;\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {cloneLexicalEnvironment} from \"../../../util/clone-lexical-environment.js\";\nimport {nodeArraysAreEqual} from \"../../../util/node-arrays-are-equal.js\";\nimport {addBindingToLexicalEnvironment} from \"../../../util/add-binding-to-lexical-environment.js\";\nimport {isIdentifierFree} from \"../../../util/is-identifier-free.js\";\nimport {generateUniqueBinding} from \"../../../util/generate-unique-binding.js\";\nimport type {ContinuationOptions} from \"../deconflicter-options.js\";\nimport {getIdForNode} from \"../../../util/get-id-for-node.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {getOriginalSourceFile} from \"../../../util/get-original-source-file.js\";\nimport {getModifierLikes} from \"../../../util/node-util.js\";\n\n/**\n * Deconflicts the given FunctionDeclaration.\n */\nexport function deconflictFunctionDeclaration(options: DeconflicterVisitorOptions<TS.FunctionDeclaration>): TS.FunctionDeclaration | undefined {\n\tconst {node, continuation, lexicalEnvironment, typescript, factory, sourceFile, declarationToDeconflictedBindingMap} = options;\n\tlet nameContResult: TS.FunctionDeclaration[\"name\"];\n\n\tif (node.name != null) {\n\t\tconst id = getIdForNode(options);\n\t\tconst originalSourceFile = getOriginalSourceFile(node, sourceFile, typescript);\n\n\t\tif (isIdentifierFree(lexicalEnvironment, node.name.text, originalSourceFile.fileName)) {\n\t\t\tnameContResult = node.name;\n\t\t\tif (id != null) declarationToDeconflictedBindingMap.set(id, node.name.text);\n\n\t\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, node.name.text);\n\t\t} else {\n\t\t\t// Otherwise, deconflict it\n\t\t\tconst uniqueBinding = generateUniqueBinding(lexicalEnvironment, node.name.text);\n\t\t\tnameContResult = factory.createIdentifier(uniqueBinding);\n\t\t\tif (id != null) declarationToDeconflictedBindingMap.set(id, uniqueBinding);\n\n\t\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, uniqueBinding, node.name.text);\n\t\t}\n\t}\n\n\t// The body, type, type parameters, as well as the parameters share the same lexical environment\n\tconst nextContinuationOptions: ContinuationOptions = {lexicalEnvironment: cloneLexicalEnvironment(lexicalEnvironment)};\n\n\tconst typeParametersContResult = node.typeParameters == null ? undefined : node.typeParameters.map(typeParameter => continuation(typeParameter, nextContinuationOptions));\n\tconst parametersContResult = node.parameters.map(parameter => continuation(parameter, nextContinuationOptions));\n\tconst typeContResult = node.type == null ? undefined : continuation(node.type, nextContinuationOptions);\n\tconst bodyContResult = node.body == null ? undefined : continuation(node.body, nextContinuationOptions);\n\n\tconst isIdentical =\n\t\tnameContResult === node.name &&\n\t\tnodeArraysAreEqual(typeParametersContResult, node.typeParameters) &&\n\t\tnodeArraysAreEqual(parametersContResult, node.parameters) &&\n\t\ttypeContResult === node.type &&\n\t\tbodyContResult === node.body;\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\tconst modifierLikes = getModifierLikes(node);\n\n\treturn preserveMeta(\n\t\tfactory.updateFunctionDeclaration(node, modifierLikes, node.asteriskToken, nameContResult, typeParametersContResult, parametersContResult, typeContResult, bodyContResult),\n\t\tnode,\n\t\toptions\n\t);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {cloneLexicalEnvironment} from \"../../../util/clone-lexical-environment.js\";\nimport {nodeArraysAreEqual} from \"../../../util/node-arrays-are-equal.js\";\nimport {addBindingToLexicalEnvironment} from \"../../../util/add-binding-to-lexical-environment.js\";\nimport {isIdentifierFree} from \"../../../util/is-identifier-free.js\";\nimport {generateUniqueBinding} from \"../../../util/generate-unique-binding.js\";\nimport type {ContinuationOptions} from \"../deconflicter-options.js\";\nimport {getIdForNode} from \"../../../util/get-id-for-node.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {getOriginalSourceFile} from \"../../../util/get-original-source-file.js\";\n\n/**\n * Deconflicts the given FunctionExpression.\n */\nexport function deconflictFunctionExpression(options: DeconflicterVisitorOptions<TS.FunctionExpression>): TS.FunctionExpression | undefined {\n\tconst {node, continuation, lexicalEnvironment, typescript, factory, sourceFile, declarationToDeconflictedBindingMap} = options;\n\tlet nameContResult: TS.FunctionExpression[\"name\"];\n\n\tif (node.name != null) {\n\t\tconst id = getIdForNode(options);\n\t\tconst originalSourceFile = getOriginalSourceFile(node, sourceFile, typescript);\n\t\tif (isIdentifierFree(lexicalEnvironment, node.name.text, originalSourceFile.fileName)) {\n\t\t\tnameContResult = node.name;\n\t\t\tif (id != null) declarationToDeconflictedBindingMap.set(id, node.name.text);\n\n\t\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, node.name.text);\n\t\t} else {\n\t\t\t// Otherwise, deconflict it\n\t\t\tconst uniqueBinding = generateUniqueBinding(lexicalEnvironment, node.name.text);\n\t\t\tnameContResult = factory.createIdentifier(uniqueBinding);\n\t\t\tif (id != null) declarationToDeconflictedBindingMap.set(id, uniqueBinding);\n\n\t\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, uniqueBinding, node.name.text);\n\t\t}\n\t}\n\n\t// The body, type, type parameters, as well as the parameters share the same lexical environment\n\tconst nextContinuationOptions: ContinuationOptions = {lexicalEnvironment: cloneLexicalEnvironment(lexicalEnvironment)};\n\n\tconst typeParametersContResult = node.typeParameters == null ? undefined : node.typeParameters.map(typeParameter => continuation(typeParameter, nextContinuationOptions));\n\tconst parametersContResult = node.parameters.map(parameter => continuation(parameter, nextContinuationOptions));\n\tconst typeContResult = node.type == null ? undefined : continuation(node.type, nextContinuationOptions);\n\tconst bodyContResult = continuation(node.body, nextContinuationOptions);\n\n\tconst isIdentical =\n\t\tnameContResult === node.name &&\n\t\tnodeArraysAreEqual(typeParametersContResult, node.typeParameters) &&\n\t\tnodeArraysAreEqual(parametersContResult, node.parameters) &&\n\t\ttypeContResult === node.type &&\n\t\tbodyContResult === node.body;\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\treturn preserveMeta(\n\t\tfactory.updateFunctionExpression(node, node.modifiers, node.asteriskToken, nameContResult, typeParametersContResult, parametersContResult, typeContResult, bodyContResult),\n\t\tnode,\n\t\toptions\n\t);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {cloneLexicalEnvironment} from \"../../../util/clone-lexical-environment.js\";\nimport {nodeArraysAreEqual} from \"../../../util/node-arrays-are-equal.js\";\nimport type {ContinuationOptions} from \"../deconflicter-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {getModifierLikes} from \"../../../util/node-util.js\";\n\n/**\n * Deconflicts the given GetAccessorDeclaration.\n */\nexport function deconflictGetAccessorDeclaration(options: DeconflicterVisitorOptions<TS.GetAccessorDeclaration>): TS.GetAccessorDeclaration | undefined {\n\tconst {node, continuation, lexicalEnvironment, factory, typescript} = options;\n\tconst nameContResult = typescript.isIdentifier(node.name) ? node.name : continuation(node.name, {lexicalEnvironment});\n\n\t// The body, as well as the parameters share the same lexical environment\n\tconst nextContinuationOptions: ContinuationOptions = {lexicalEnvironment: cloneLexicalEnvironment(lexicalEnvironment)};\n\n\tconst parametersContResult = node.parameters.map(parameter => continuation(parameter, nextContinuationOptions));\n\tconst typeContResult = node.type == null ? undefined : continuation(node.type, nextContinuationOptions);\n\tconst bodyContResult = node.body == null ? undefined : continuation(node.body, nextContinuationOptions);\n\n\tconst isIdentical = nameContResult === node.name && nodeArraysAreEqual(parametersContResult, node.parameters) && typeContResult === node.type && bodyContResult === node.body;\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\tconst modifierLikes = getModifierLikes(node);\n\n\treturn preserveMeta(factory.updateGetAccessorDeclaration(node, modifierLikes, nameContResult, parametersContResult, typeContResult, bodyContResult), node, options);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {getBindingFromLexicalEnvironment} from \"../../../util/get-binding-from-lexical-environment.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {getBestDeclaration} from \"../../../util/get-aliased-declaration.js\";\nimport {getIdForNode} from \"../../../util/get-id-for-node.js\";\n\n/**\n * Deconflicts the given Identifier.\n */\nexport function deconflictIdentifier(options: DeconflicterVisitorOptions<TS.Identifier>): TS.Identifier | undefined {\n\tconst {node, lexicalEnvironment, declarationToDeconflictedBindingMap, factory} = options;\n\tconst id = getIdForNode({...options, node: getBestDeclaration(options) ?? node});\n\n\tconst envLookupResult = getBindingFromLexicalEnvironment(lexicalEnvironment, node.text);\n\tconst deconflictedBindingMapLookupResult = id == null ? undefined : declarationToDeconflictedBindingMap.get(id);\n\tconst textResult = deconflictedBindingMapLookupResult != null && deconflictedBindingMapLookupResult.startsWith(node.text) ? deconflictedBindingMapLookupResult : envLookupResult;\n\tconst isIdentical = textResult === node.text;\n\n\tif (isIdentical || textResult == null) {\n\t\treturn node;\n\t}\n\n\treturn preserveMeta(factory.createIdentifier(textResult), node, options);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {addBindingToLexicalEnvironment} from \"../../../util/add-binding-to-lexical-environment.js\";\nimport {isIdentifierFree} from \"../../../util/is-identifier-free.js\";\nimport {generateUniqueBinding} from \"../../../util/generate-unique-binding.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {getOriginalSourceFile} from \"../../../util/get-original-source-file.js\";\nimport {getIdForNode} from \"../../../util/get-id-for-node.js\";\n\n/**\n * Deconflicts the given ImportClause.\n */\nexport function deconflictImportClause(options: DeconflicterVisitorOptions<TS.ImportClause>): TS.ImportClause | undefined {\n\tconst {node, continuation, lexicalEnvironment, sourceFile, typescript, factory, declarationToDeconflictedBindingMap} = options;\n\tlet nameContResult: TS.ImportClause[\"name\"];\n\tconst originalSourceFile = getOriginalSourceFile(node, sourceFile, typescript);\n\n\tconst id = getIdForNode({...options});\n\n\tif (node.name != null) {\n\t\tif (isIdentifierFree(lexicalEnvironment, node.name.text, originalSourceFile.fileName)) {\n\t\t\tnameContResult = node.name;\n\n\t\t\tif (id != null) {\n\t\t\t\tdeclarationToDeconflictedBindingMap.set(id, node.name.text);\n\t\t\t}\n\n\t\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, node.name.text);\n\t\t} else {\n\t\t\t// Otherwise, deconflict it\n\t\t\tconst uniqueBinding = generateUniqueBinding(lexicalEnvironment, node.name.text);\n\t\t\tnameContResult = factory.createIdentifier(uniqueBinding);\n\n\t\t\tif (id != null) {\n\t\t\t\tdeclarationToDeconflictedBindingMap.set(id, uniqueBinding);\n\t\t\t}\n\n\t\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, uniqueBinding, node.name.text);\n\t\t}\n\t}\n\n\tconst namedBindingsContResult = node.namedBindings == null ? undefined : continuation(node.namedBindings, {lexicalEnvironment});\n\n\tconst isIdentical = nameContResult === node.name && namedBindingsContResult === node.namedBindings;\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\treturn preserveMeta(factory.updateImportClause(node, node.isTypeOnly, nameContResult, namedBindingsContResult), node, options);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {addBindingToLexicalEnvironment} from \"../../../util/add-binding-to-lexical-environment.js\";\nimport {isIdentifierFree} from \"../../../util/is-identifier-free.js\";\nimport {generateUniqueBinding} from \"../../../util/generate-unique-binding.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {getOriginalSourceFile} from \"../../../util/get-original-source-file.js\";\nimport {getIdForNode} from \"../../../util/get-id-for-node.js\";\n\n/**\n * Deconflicts the given ImportSpecifier.\n */\nexport function deconflictImportSpecifier(options: DeconflicterVisitorOptions<TS.ImportSpecifier>): TS.ImportSpecifier | undefined {\n\tconst {node, lexicalEnvironment, typescript, factory, sourceFile, declarationToDeconflictedBindingMap} = options;\n\tconst originalSourceFile = getOriginalSourceFile(node, sourceFile, typescript);\n\n\tconst id = getIdForNode(options);\n\n\tif (isIdentifierFree(lexicalEnvironment, node.name.text, originalSourceFile.fileName)) {\n\t\tif (id != null) {\n\t\t\tdeclarationToDeconflictedBindingMap.set(id, node.name.text);\n\t\t}\n\n\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, node.name.text);\n\t\treturn node;\n\t} else {\n\t\t// Otherwise, deconflict it\n\t\tconst uniqueBinding = generateUniqueBinding(lexicalEnvironment, node.name.text);\n\n\t\tif (id != null) {\n\t\t\tdeclarationToDeconflictedBindingMap.set(id, uniqueBinding);\n\t\t}\n\n\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, uniqueBinding, node.name.text);\n\n\t\t// If the ImportSpecifier is something like '{Foo}' but 'Foo' is already bound in this SourceFile,\n\t\t// we should re-write it to something like '{Foo as Foo$0}'\n\t\tconst propertyName = node.propertyName ?? node.name;\n\t\treturn preserveMeta(factory.updateImportSpecifier(node, false, factory.createIdentifier(propertyName.text), factory.createIdentifier(uniqueBinding)), node, options);\n\t}\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {nodeArraysAreEqual} from \"../../../util/node-arrays-are-equal.js\";\nimport {addBindingToLexicalEnvironment} from \"../../../util/add-binding-to-lexical-environment.js\";\nimport {cloneLexicalEnvironment} from \"../../../util/clone-lexical-environment.js\";\nimport {isIdentifierFree} from \"../../../util/is-identifier-free.js\";\nimport {generateUniqueBinding} from \"../../../util/generate-unique-binding.js\";\nimport type {ContinuationOptions} from \"../deconflicter-options.js\";\nimport {getIdForNode} from \"../../../util/get-id-for-node.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {getOriginalSourceFile} from \"../../../util/get-original-source-file.js\";\n\n/**\n * Deconflicts the given InterfaceDeclaration.\n */\nexport function deconflictInterfaceDeclaration(options: DeconflicterVisitorOptions<TS.InterfaceDeclaration>): TS.InterfaceDeclaration | undefined {\n\tconst {node, continuation, lexicalEnvironment, factory, typescript, sourceFile, declarationToDeconflictedBindingMap} = options;\n\tlet nameContResult: TS.InterfaceDeclaration[\"name\"];\n\tconst id = getIdForNode(options);\n\tconst originalSourceFile = getOriginalSourceFile(node, sourceFile, typescript);\n\n\tif (isIdentifierFree(lexicalEnvironment, node.name.text, originalSourceFile.fileName)) {\n\t\tnameContResult = node.name;\n\t\tif (id != null) declarationToDeconflictedBindingMap.set(id, node.name.text);\n\n\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, node.name.text);\n\t} else {\n\t\t// Otherwise, deconflict it\n\t\tconst uniqueBinding = generateUniqueBinding(lexicalEnvironment, node.name.text);\n\t\tnameContResult = factory.createIdentifier(uniqueBinding);\n\t\tif (id != null) declarationToDeconflictedBindingMap.set(id, uniqueBinding);\n\n\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, uniqueBinding, node.name.text);\n\t}\n\n\t// The Type parameters, as well as the heritage clauses share the same lexical environment\n\tconst nextContinuationOptions: ContinuationOptions = {lexicalEnvironment: cloneLexicalEnvironment(lexicalEnvironment)};\n\n\tconst typeParametersContResult = node.typeParameters == null ? undefined : node.typeParameters.map(typeParameter => continuation(typeParameter, nextContinuationOptions));\n\tconst heritageClausesContResult = node.heritageClauses == null ? undefined : node.heritageClauses.map(heritageClause => continuation(heritageClause, nextContinuationOptions));\n\tconst membersContResult = node.members.map(member => continuation(member, {lexicalEnvironment}));\n\n\tconst isIdentical =\n\t\tnameContResult === node.name &&\n\t\tnodeArraysAreEqual(typeParametersContResult, node.typeParameters) &&\n\t\tnodeArraysAreEqual(heritageClausesContResult, node.heritageClauses) &&\n\t\tnodeArraysAreEqual(membersContResult, node.members);\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\treturn preserveMeta(\n\t\tfactory.updateInterfaceDeclaration(node, node.modifiers, nameContResult, typeParametersContResult, heritageClausesContResult, membersContResult),\n\t\tnode,\n\t\toptions\n\t);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {cloneLexicalEnvironment} from \"../../../util/clone-lexical-environment.js\";\nimport type {ContinuationOptions} from \"../deconflicter-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\n\n/**\n * Deconflicts the given MappedTypeNode.\n */\nexport function deconflictMappedTypeNode(options: DeconflicterVisitorOptions<TS.MappedTypeNode>): TS.MappedTypeNode | undefined {\n\tconst {node, continuation, lexicalEnvironment, factory} = options;\n\t// The TypeParameter has its own lexical environment\n\tconst nextContinuationOptions: ContinuationOptions = {lexicalEnvironment: cloneLexicalEnvironment(lexicalEnvironment)};\n\n\tconst typeParameterContResult = continuation(node.typeParameter, nextContinuationOptions);\n\tconst typeContResult = node.type == null ? undefined : continuation(node.type, nextContinuationOptions);\n\tconst nameTypeContResult = node.nameType == null ? undefined : continuation(node.nameType, nextContinuationOptions);\n\tconst membersContResult = node.members == null ? undefined : factory.createNodeArray(node.members.map(member => continuation(member, nextContinuationOptions)));\n\n\tconst isIdentical = typeParameterContResult === node.typeParameter && typeContResult === node.type && nameTypeContResult === node.nameType;\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\treturn preserveMeta(\n\t\tfactory.updateMappedTypeNode(node, node.readonlyToken, typeParameterContResult, nameTypeContResult, node.questionToken, typeContResult, membersContResult),\n\t\tnode,\n\t\toptions\n\t);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {cloneLexicalEnvironment} from \"../../../util/clone-lexical-environment.js\";\nimport {nodeArraysAreEqual} from \"../../../util/node-arrays-are-equal.js\";\nimport type {ContinuationOptions} from \"../deconflicter-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {getModifierLikes} from \"../../../util/node-util.js\";\n\n/**\n * Deconflicts the given MethodDeclaration.\n */\nexport function deconflictMethodDeclaration(options: DeconflicterVisitorOptions<TS.MethodDeclaration>): TS.MethodDeclaration | undefined {\n\tconst {node, continuation, lexicalEnvironment, factory, typescript} = options;\n\tconst nameContResult = typescript.isIdentifier(node.name) ? node.name : continuation(node.name, {lexicalEnvironment});\n\n\t// The body, type, type parameters, as well as the parameters share the same lexical environment\n\tconst nextContinuationOptions: ContinuationOptions = {lexicalEnvironment: cloneLexicalEnvironment(lexicalEnvironment)};\n\n\tconst typeParametersContResult = node.typeParameters == null ? undefined : node.typeParameters.map(typeParameter => continuation(typeParameter, nextContinuationOptions));\n\tconst parametersContResult = node.parameters.map(parameter => continuation(parameter, nextContinuationOptions));\n\tconst typeContResult = node.type == null ? undefined : continuation(node.type, nextContinuationOptions);\n\tconst bodyContResult = node.body == null ? undefined : continuation(node.body, nextContinuationOptions);\n\n\tconst isIdentical =\n\t\tnameContResult === node.name &&\n\t\tnodeArraysAreEqual(typeParametersContResult, node.typeParameters) &&\n\t\tnodeArraysAreEqual(parametersContResult, node.parameters) &&\n\t\ttypeContResult === node.type &&\n\t\tbodyContResult === node.body;\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\tconst modifierLikes = getModifierLikes(node);\n\n\treturn preserveMeta(\n\t\tfactory.updateMethodDeclaration(\n\t\t\tnode,\n\t\t\tmodifierLikes,\n\t\t\tnode.asteriskToken,\n\t\t\tnameContResult,\n\t\t\tnode.questionToken,\n\t\t\ttypeParametersContResult,\n\t\t\tparametersContResult,\n\t\t\ttypeContResult,\n\t\t\tbodyContResult\n\t\t),\n\t\tnode,\n\t\toptions\n\t);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {cloneLexicalEnvironment} from \"../../../util/clone-lexical-environment.js\";\nimport {nodeArraysAreEqual} from \"../../../util/node-arrays-are-equal.js\";\nimport type {ContinuationOptions} from \"../deconflicter-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\n\n/**\n * Deconflicts the given IndexSignatureDeclaration.\n */\nexport function deconflictIndexSignatureDeclaration(options: DeconflicterVisitorOptions<TS.IndexSignatureDeclaration>): TS.IndexSignatureDeclaration | undefined {\n\tconst {node, continuation, lexicalEnvironment, factory, typescript} = options;\n\t// The whole thing has its own lexical environment\n\tconst nextContinuationOptions: ContinuationOptions = {lexicalEnvironment: cloneLexicalEnvironment(lexicalEnvironment)};\n\n\tconst nameContResult = node.name == null ? undefined : typescript.isIdentifier(node.name) ? node.name : continuation(node.name, nextContinuationOptions);\n\tconst typeParametersContResult = node.typeParameters == null ? undefined : node.typeParameters.map(typeParameter => continuation(typeParameter, nextContinuationOptions));\n\tconst parametersContResult = node.parameters.map(parameter => continuation(parameter, nextContinuationOptions));\n\tconst typeContResult = node.type == null ? undefined : continuation(node.type, nextContinuationOptions);\n\n\tconst isIdentical =\n\t\tnameContResult === node.name &&\n\t\tnodeArraysAreEqual(typeParametersContResult, node.typeParameters) &&\n\t\tnodeArraysAreEqual(parametersContResult, node.parameters) &&\n\t\ttypeContResult === node.type;\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\treturn preserveMeta(factory.updateIndexSignature(node, node.modifiers, parametersContResult, typeContResult!), node, options);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {cloneLexicalEnvironment} from \"../../../util/clone-lexical-environment.js\";\nimport {nodeArraysAreEqual} from \"../../../util/node-arrays-are-equal.js\";\nimport type {ContinuationOptions} from \"../deconflicter-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\n\n/**\n * Deconflicts the given MethodSignature.\n */\nexport function deconflictMethodSignature(options: DeconflicterVisitorOptions<TS.MethodSignature>): TS.MethodSignature | undefined {\n\tconst {node, continuation, lexicalEnvironment, factory, typescript} = options;\n\tconst nameContResult = typescript.isIdentifier(node.name) ? node.name : continuation(node.name, {lexicalEnvironment});\n\n\t// The type, type parameters, as well as the parameters share the same lexical environment\n\tconst nextContinuationOptions: ContinuationOptions = {lexicalEnvironment: cloneLexicalEnvironment(lexicalEnvironment)};\n\n\tconst typeParametersContResult =\n\t\tnode.typeParameters == null ? undefined : factory.createNodeArray(node.typeParameters.map(typeParameter => continuation(typeParameter, nextContinuationOptions)));\n\tconst parametersContResult = factory.createNodeArray(node.parameters.map(parameter => continuation(parameter, nextContinuationOptions)));\n\tconst typeContResult = node.type == null ? undefined : continuation(node.type, nextContinuationOptions);\n\n\tconst isIdentical =\n\t\tnameContResult === node.name &&\n\t\tnodeArraysAreEqual(typeParametersContResult, node.typeParameters) &&\n\t\tnodeArraysAreEqual(parametersContResult, node.parameters) &&\n\t\ttypeContResult === node.type;\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\treturn preserveMeta(\n\t\tfactory.updateMethodSignature(node, node.modifiers, nameContResult, node.questionToken, typeParametersContResult, parametersContResult, typeContResult),\n\t\tnode,\n\t\toptions\n\t);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {cloneLexicalEnvironment} from \"../../../util/clone-lexical-environment.js\";\nimport {addBindingToLexicalEnvironment} from \"../../../util/add-binding-to-lexical-environment.js\";\nimport {isIdentifierFree} from \"../../../util/is-identifier-free.js\";\nimport {generateUniqueBinding} from \"../../../util/generate-unique-binding.js\";\nimport type {ContinuationOptions} from \"../deconflicter-options.js\";\nimport {getIdForNode} from \"../../../util/get-id-for-node.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {getOriginalSourceFile} from \"../../../util/get-original-source-file.js\";\nimport {getBindingFromLexicalEnvironment} from \"../../../util/get-binding-from-lexical-environment.js\";\nimport {isNodeInternalAlias} from \"../../../util/node-util.js\";\n\n/**\n * Deconflicts the given ModuleDeclaration.\n */\nexport function deconflictModuleDeclaration(options: DeconflicterVisitorOptions<TS.ModuleDeclaration>): TS.ModuleDeclaration | undefined {\n\tconst {node, continuation, lexicalEnvironment, factory, typescript, sourceFile, declarationToDeconflictedBindingMap} = options;\n\tlet nameContResult: TS.ModuleDeclaration[\"name\"];\n\tconst id = getIdForNode(options);\n\tconst originalSourceFile = getOriginalSourceFile(node.name, sourceFile, typescript);\n\n\t// Check if it is a namespace ModuleDeclaration. If it is, its name can be deconflicted. If it isn't, it should augment and merge with any existing declarations for it\n\tconst isNamespace = (node.flags & typescript.NodeFlags.Namespace) !== 0;\n\tif (!isNamespace) {\n\t\tconst binding = getBindingFromLexicalEnvironment(lexicalEnvironment, node.name.text) ?? node.name.text;\n\n\t\t// The body has its own lexical environment\n\t\tconst nextContinuationOptions: ContinuationOptions = {lexicalEnvironment: cloneLexicalEnvironment(lexicalEnvironment)};\n\t\tconst bodyContResult = node.body == null ? undefined : continuation(node.body, nextContinuationOptions);\n\n\t\tconst isIdentical = binding === node.name.text && bodyContResult === node.body;\n\n\t\tif (isIdentical) {\n\t\t\treturn node;\n\t\t} else {\n\t\t\treturn preserveMeta(factory.updateModuleDeclaration(node, node.modifiers, factory.createIdentifier(binding), bodyContResult), node, options);\n\t\t}\n\t}\n\n\tif (isIdentifierFree(lexicalEnvironment, node.name.text, originalSourceFile.fileName, isNodeInternalAlias(node, typescript))) {\n\t\tnameContResult = node.name;\n\t\tif (id != null) declarationToDeconflictedBindingMap.set(id, node.name.text);\n\n\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, node.name.text);\n\t} else {\n\t\t// Otherwise, deconflict it\n\t\tconst uniqueBinding = generateUniqueBinding(lexicalEnvironment, node.name.text);\n\t\tnameContResult = factory.createIdentifier(uniqueBinding);\n\t\tif (id != null) declarationToDeconflictedBindingMap.set(id, uniqueBinding);\n\n\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, uniqueBinding, node.name.text);\n\t}\n\n\t// The body has its own lexical environment\n\tconst nextContinuationOptions: ContinuationOptions = {lexicalEnvironment: cloneLexicalEnvironment(lexicalEnvironment)};\n\tconst bodyContResult = node.body == null ? undefined : continuation(node.body, nextContinuationOptions);\n\n\tconst isIdentical = nameContResult === node.name && bodyContResult === node.body;\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\treturn preserveMeta(factory.updateModuleDeclaration(node, node.modifiers, nameContResult, bodyContResult), node, options);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {addBindingToLexicalEnvironment} from \"../../../util/add-binding-to-lexical-environment.js\";\nimport {isIdentifierFree} from \"../../../util/is-identifier-free.js\";\nimport {generateUniqueBinding} from \"../../../util/generate-unique-binding.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {getOriginalSourceFile} from \"../../../util/get-original-source-file.js\";\nimport {getIdForNode} from \"../../../util/get-id-for-node.js\";\n\n/**\n * Deconflicts the given NamespaceImport.\n */\nexport function deconflictNamespaceImport(options: DeconflicterVisitorOptions<TS.NamespaceImport>): TS.NamespaceImport | undefined {\n\tconst {node, lexicalEnvironment, sourceFile, factory, typescript, declarationToDeconflictedBindingMap} = options;\n\tlet nameContResult: TS.NamespaceImport[\"name\"];\n\tconst originalSourceFile = getOriginalSourceFile(node, sourceFile, typescript);\n\n\tconst id = getIdForNode(options);\n\n\tif (isIdentifierFree(lexicalEnvironment, node.name.text, originalSourceFile.fileName)) {\n\t\tnameContResult = node.name;\n\n\t\tif (id != null) {\n\t\t\tdeclarationToDeconflictedBindingMap.set(id, node.name.text);\n\t\t}\n\n\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, node.name.text);\n\t} else {\n\t\t// Otherwise, deconflict it\n\t\tconst uniqueBinding = generateUniqueBinding(lexicalEnvironment, node.name.text);\n\t\tnameContResult = factory.createIdentifier(uniqueBinding);\n\n\t\tif (id != null) {\n\t\t\tdeclarationToDeconflictedBindingMap.set(id, uniqueBinding);\n\t\t}\n\n\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, uniqueBinding, node.name.text);\n\t}\n\n\tconst isIdentical = nameContResult === node.name;\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\treturn preserveMeta(factory.updateNamespaceImport(node, nameContResult), node, options);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {getModifierLikes} from \"../../../util/node-util.js\";\n\n/**\n * Deconflicts the given ParameterDeclaration.\n */\nexport function deconflictParameterDeclaration(options: DeconflicterVisitorOptions<TS.ParameterDeclaration>): TS.ParameterDeclaration | undefined {\n\tconst {node, continuation, lexicalEnvironment, factory, typescript} = options;\n\tconst nameContResult = typescript.isIdentifier(node.name) ? node.name : continuation(node.name, {lexicalEnvironment});\n\n\tconst typeContResult = node.type == null ? undefined : continuation(node.type, {lexicalEnvironment});\n\tconst initializerContResult = node.initializer == null ? undefined : continuation(node.initializer, {lexicalEnvironment});\n\n\tconst isIdentical = nameContResult === node.name && typeContResult === node.type && initializerContResult === node.initializer;\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\tconst modifierLikes = getModifierLikes(node);\n\n\treturn preserveMeta(\n\t\tfactory.updateParameterDeclaration(node, modifierLikes, node.dotDotDotToken, nameContResult, node.questionToken, typeContResult, initializerContResult),\n\t\tnode,\n\t\toptions\n\t);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\n\n/**\n * Deconflicts the given PropertyAssignment.\n */\nexport function deconflictPropertyAssignment(options: DeconflicterVisitorOptions<TS.PropertyAssignment>): TS.PropertyAssignment | undefined {\n\tconst {node, continuation, lexicalEnvironment, factory, typescript} = options;\n\tconst nameContResult = typescript.isIdentifier(node.name) ? node.name : continuation(node.name, {lexicalEnvironment});\n\tconst initializerContResult = node.initializer == null ? undefined : continuation(node.initializer, {lexicalEnvironment});\n\n\tconst isIdentical = nameContResult === node.name && initializerContResult === node.initializer;\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\treturn preserveMeta(factory.updatePropertyAssignment(node, nameContResult, initializerContResult!), node, options);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {getModifierLikes} from \"../../../util/node-util.js\";\n\n/**\n * Deconflicts the given PropertyDeclaration.\n */\nexport function deconflictPropertyDeclaration(options: DeconflicterVisitorOptions<TS.PropertyDeclaration>): TS.PropertyDeclaration | undefined {\n\tconst {node, continuation, lexicalEnvironment, factory, typescript} = options;\n\tconst nameContResult = typescript.isIdentifier(node.name) ? node.name : continuation(node.name, {lexicalEnvironment});\n\n\tconst typeContResult = node.type == null ? undefined : continuation(node.type, {lexicalEnvironment});\n\tconst initializerContResult = node.initializer == null ? undefined : continuation(node.initializer, {lexicalEnvironment});\n\n\tconst isIdentical = nameContResult === node.name && typeContResult === node.type && initializerContResult === node.initializer;\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\tconst modifierLikes = getModifierLikes(node);\n\n\treturn preserveMeta(\n\t\tfactory.updatePropertyDeclaration(node, modifierLikes, nameContResult, node.questionToken ?? node.exclamationToken, typeContResult, initializerContResult),\n\t\tnode,\n\t\toptions\n\t);\n}\n","/* eslint-disable deprecation/deprecation */\nimport type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\n\n/**\n * Deconflicts the given PropertySignature.\n */\nexport function deconflictPropertySignature(options: DeconflicterVisitorOptions<TS.PropertySignature>): TS.PropertySignature | undefined {\n\tconst {node, continuation, lexicalEnvironment, factory, typescript} = options;\n\tconst nameContResult = typescript.isIdentifier(node.name) ? node.name : continuation(node.name, {lexicalEnvironment});\n\n\tconst typeContResult = node.type == null ? undefined : continuation(node.type, {lexicalEnvironment});\n\tconst isIdentical = nameContResult === node.name && typeContResult === node.type;\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\treturn preserveMeta(factory.updatePropertySignature(node, node.modifiers, nameContResult, node.questionToken, typeContResult), node, options);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {cloneLexicalEnvironment} from \"../../../util/clone-lexical-environment.js\";\nimport {nodeArraysAreEqual} from \"../../../util/node-arrays-are-equal.js\";\nimport type {ContinuationOptions} from \"../deconflicter-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {getModifierLikes} from \"../../../util/node-util.js\";\n\n/**\n * Deconflicts the given SetAccessorDeclaration.\n */\nexport function deconflictSetAccessorDeclaration(options: DeconflicterVisitorOptions<TS.SetAccessorDeclaration>): TS.SetAccessorDeclaration | undefined {\n\tconst {node, continuation, lexicalEnvironment, factory, typescript} = options;\n\tconst nameContResult = typescript.isIdentifier(node.name) ? node.name : continuation(node.name, {lexicalEnvironment});\n\n\t// The body, as well as the parameters share the same lexical environment\n\tconst nextContinuationOptions: ContinuationOptions = {lexicalEnvironment: cloneLexicalEnvironment(lexicalEnvironment)};\n\n\tconst parametersContResult = node.parameters.map(parameter => continuation(parameter, nextContinuationOptions));\n\tconst bodyContResult = node.body == null ? undefined : continuation(node.body, nextContinuationOptions);\n\n\tconst isIdentical = nameContResult === node.name && nodeArraysAreEqual(parametersContResult, node.parameters) && bodyContResult === node.body;\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\tconst modifierLikes = getModifierLikes(node);\n\treturn preserveMeta(factory.updateSetAccessorDeclaration(node, modifierLikes, nameContResult, parametersContResult, bodyContResult), node, options);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {addBindingToLexicalEnvironment} from \"../../../util/add-binding-to-lexical-environment.js\";\nimport {cloneLexicalEnvironment} from \"../../../util/clone-lexical-environment.js\";\nimport {nodeArraysAreEqual} from \"../../../util/node-arrays-are-equal.js\";\nimport {isIdentifierFree} from \"../../../util/is-identifier-free.js\";\nimport {generateUniqueBinding} from \"../../../util/generate-unique-binding.js\";\nimport type {ContinuationOptions} from \"../deconflicter-options.js\";\nimport {getIdForNode} from \"../../../util/get-id-for-node.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {getOriginalSourceFile} from \"../../../util/get-original-source-file.js\";\nimport {isNodeInternalAlias} from \"../../../util/node-util.js\";\n\n/**\n * Deconflicts the given TypeAliasDeclaration.\n */\nexport function deconflictTypeAliasDeclaration(options: DeconflicterVisitorOptions<TS.TypeAliasDeclaration>): TS.TypeAliasDeclaration | undefined {\n\tconst {node, continuation, lexicalEnvironment, factory, typescript, sourceFile, declarationToDeconflictedBindingMap} = options;\n\tlet nameContResult: TS.TypeAliasDeclaration[\"name\"];\n\tconst id = getIdForNode(options);\n\tconst originalSourceFile = getOriginalSourceFile(node, sourceFile, typescript);\n\n\tif (isIdentifierFree(lexicalEnvironment, node.name.text, originalSourceFile.fileName, isNodeInternalAlias(node, typescript))) {\n\t\tnameContResult = node.name;\n\t\tif (id != null) declarationToDeconflictedBindingMap.set(id, node.name.text);\n\n\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, node.name.text);\n\t} else {\n\t\t// Otherwise, deconflict it\n\t\tconst uniqueBinding = generateUniqueBinding(lexicalEnvironment, node.name.text);\n\t\tnameContResult = factory.createIdentifier(uniqueBinding);\n\t\tif (id != null) declarationToDeconflictedBindingMap.set(id, uniqueBinding);\n\n\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, uniqueBinding, node.name.text);\n\t}\n\n\t// The Type parameters, as well as the initializer, share the same lexical environment\n\tconst nextContinuationOptions: ContinuationOptions = {lexicalEnvironment: cloneLexicalEnvironment(lexicalEnvironment)};\n\n\tconst typeParametersContResult = node.typeParameters == null ? undefined : node.typeParameters.map(typeParameter => continuation(typeParameter, nextContinuationOptions));\n\tconst typeContResult = continuation(node.type, nextContinuationOptions);\n\n\tconst isIdentical = nameContResult === node.name && nodeArraysAreEqual(typeParametersContResult, node.typeParameters) && typeContResult === node.type;\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\treturn preserveMeta(factory.updateTypeAliasDeclaration(node, node.modifiers, nameContResult, typeParametersContResult, typeContResult), node, options);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {addBindingToLexicalEnvironment} from \"../../../util/add-binding-to-lexical-environment.js\";\nimport {isIdentifierFree} from \"../../../util/is-identifier-free.js\";\nimport {generateUniqueBinding} from \"../../../util/generate-unique-binding.js\";\nimport {getIdForNode} from \"../../../util/get-id-for-node.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {getOriginalSourceFile} from \"../../../util/get-original-source-file.js\";\n\n/**\n * Deconflicts the given TypeParameterDeclaration.\n */\nexport function deconflictTypeParameterDeclaration(options: DeconflicterVisitorOptions<TS.TypeParameterDeclaration>): TS.TypeParameterDeclaration | undefined {\n\tconst {node, continuation, lexicalEnvironment, factory, typescript, sourceFile, declarationToDeconflictedBindingMap} = options;\n\tlet nameContResult: TS.TypeParameterDeclaration[\"name\"];\n\tconst id = getIdForNode(options);\n\tconst originalSourceFile = getOriginalSourceFile(node, sourceFile, typescript);\n\n\tif (isIdentifierFree(lexicalEnvironment, node.name.text, originalSourceFile.fileName)) {\n\t\tnameContResult = node.name;\n\t\tif (id != null) declarationToDeconflictedBindingMap.set(id, node.name.text);\n\n\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, node.name.text);\n\t} else {\n\t\t// Otherwise, deconflict it\n\t\tconst uniqueBinding = generateUniqueBinding(lexicalEnvironment, node.name.text);\n\t\tnameContResult = factory.createIdentifier(uniqueBinding);\n\t\tif (id != null) declarationToDeconflictedBindingMap.set(id, uniqueBinding);\n\n\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, uniqueBinding, node.name.text);\n\t}\n\n\tconst constraintContResult = node.constraint == null ? undefined : continuation(node.constraint, {lexicalEnvironment});\n\tconst defaultContResult = node.default == null ? undefined : continuation(node.default, {lexicalEnvironment});\n\n\tconst isIdentical = constraintContResult === node.constraint && defaultContResult === node.default;\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\treturn preserveMeta(factory.updateTypeParameterDeclaration(node, node.modifiers, nameContResult, constraintContResult, defaultContResult), node, options);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {addBindingToLexicalEnvironment} from \"../../../util/add-binding-to-lexical-environment.js\";\nimport {isIdentifierFree} from \"../../../util/is-identifier-free.js\";\nimport {generateUniqueBinding} from \"../../../util/generate-unique-binding.js\";\nimport {getIdForNode} from \"../../../util/get-id-for-node.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {getOriginalSourceFile} from \"../../../util/get-original-source-file.js\";\nimport {isNodeInternalAlias} from \"../../../util/node-util.js\";\nimport {getParentNode} from \"../../../util/get-parent-node.js\";\n\n/**\n * Deconflicts the given VariableDeclaration.\n */\nexport function deconflictVariableDeclaration(options: DeconflicterVisitorOptions<TS.VariableDeclaration>): TS.VariableDeclaration | undefined {\n\tconst {node, continuation, lexicalEnvironment, factory, typescript, sourceFile, declarationToDeconflictedBindingMap} = options;\n\tlet nameContResult: TS.VariableDeclaration[\"name\"];\n\tconst variableDeclarationList = getParentNode(node);\n\tconst upperNode = variableDeclarationList == null ? node : getParentNode(variableDeclarationList) ?? variableDeclarationList;\n\n\tif (typescript.isIdentifier(node.name)) {\n\t\tconst id = getIdForNode(options);\n\t\tconst originalSourceFile = getOriginalSourceFile(node, sourceFile, typescript);\n\n\t\tif (id != null) declarationToDeconflictedBindingMap.set(id, node.name.text);\n\n\t\tif (isIdentifierFree(lexicalEnvironment, node.name.text, originalSourceFile.fileName, isNodeInternalAlias(upperNode, typescript))) {\n\t\t\tnameContResult = node.name;\n\t\t\tif (id != null) declarationToDeconflictedBindingMap.set(id, node.name.text);\n\n\t\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, node.name.text);\n\t\t} else {\n\t\t\t// Otherwise, deconflict it\n\t\t\tconst uniqueBinding = generateUniqueBinding(lexicalEnvironment, node.name.text);\n\t\t\tnameContResult = factory.createIdentifier(uniqueBinding);\n\t\t\tif (id != null) declarationToDeconflictedBindingMap.set(id, uniqueBinding);\n\n\t\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, uniqueBinding, node.name.text);\n\t\t}\n\t} else {\n\t\t// Otherwise, deconflict it\n\t\tnameContResult = continuation(node.name, {lexicalEnvironment});\n\t}\n\n\tconst typeContResult = node.type == null ? undefined : continuation(node.type, {lexicalEnvironment});\n\tconst initializerContResult = node.initializer == null ? undefined : continuation(node.initializer, {lexicalEnvironment});\n\n\tconst isIdentical = nameContResult === node.name && typeContResult === node.type && initializerContResult === node.initializer;\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\treturn preserveMeta(factory.updateVariableDeclaration(node, nameContResult, node.exclamationToken, typeContResult, initializerContResult), node, options);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {cloneLexicalEnvironment} from \"../../../util/clone-lexical-environment.js\";\nimport {nodeArraysAreEqual} from \"../../../util/node-arrays-are-equal.js\";\nimport type {ContinuationOptions} from \"../deconflicter-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\n\n/**\n * Deconflicts the given FunctionTypeNode.\n */\nexport function deconflictFunctionTypeNode(options: DeconflicterVisitorOptions<TS.FunctionTypeNode>): TS.FunctionTypeNode | undefined {\n\tconst {node, continuation, lexicalEnvironment, factory} = options;\n\tlet nameContResult: TS.FunctionTypeNode[\"name\"];\n\n\t// The body, type, type parameters, as well as the parameters share the same lexical environment\n\tconst nextContinuationOptions: ContinuationOptions = {lexicalEnvironment: cloneLexicalEnvironment(lexicalEnvironment)};\n\n\tconst typeParametersContResult =\n\t\tnode.typeParameters == null ? undefined : factory.createNodeArray(node.typeParameters.map(typeParameter => continuation(typeParameter, nextContinuationOptions)));\n\tconst parametersContResult = factory.createNodeArray(node.parameters.map(parameter => continuation(parameter, nextContinuationOptions)));\n\tconst typeContResult = node.type == null ? undefined : continuation(node.type, nextContinuationOptions);\n\n\tconst isIdentical =\n\t\tnameContResult === node.name &&\n\t\tnodeArraysAreEqual(typeParametersContResult, node.typeParameters) &&\n\t\tnodeArraysAreEqual(parametersContResult, node.parameters) &&\n\t\ttypeContResult === node.type;\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\treturn preserveMeta(factory.updateFunctionTypeNode(node, typeParametersContResult, parametersContResult, typeContResult!), node, options);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {nodeArraysAreEqual} from \"../../../util/node-arrays-are-equal.js\";\n\n/**\n * Deconflicts the given ImportTypeNode.\n */\nexport function deconflictImportTypeNode(options: DeconflicterVisitorOptions<TS.ImportTypeNode>): TS.ImportTypeNode | undefined {\n\tconst {node, continuation, lexicalEnvironment, factory} = options;\n\n\tconst argumentContResult = continuation(node.argument, {lexicalEnvironment});\n\tconst typeArgumentsContResult = node.typeArguments == null ? undefined : node.typeArguments.map(typeArgument => continuation(typeArgument, {lexicalEnvironment}));\n\tconst assertionContResult = node.assertions == null ? undefined : continuation(node.assertions, {lexicalEnvironment});\n\n\tconst isIdentical = argumentContResult === node.argument && nodeArraysAreEqual(typeArgumentsContResult, node.typeArguments);\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\treturn preserveMeta(factory.updateImportTypeNode(node, argumentContResult, assertionContResult, node.qualifier, typeArgumentsContResult, node.isTypeOf), node, options);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {cloneLexicalEnvironment} from \"../../../util/clone-lexical-environment.js\";\nimport {nodeArraysAreEqual} from \"../../../util/node-arrays-are-equal.js\";\nimport type {ContinuationOptions} from \"../deconflicter-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\n\n/**\n * Deconflicts the given ConstructorDeclaration.\n */\nexport function deconflictConstructorDeclaration(options: DeconflicterVisitorOptions<TS.ConstructorDeclaration>): TS.ConstructorDeclaration | undefined {\n\tconst {node, continuation, lexicalEnvironment, factory} = options;\n\n\t// The body and parameters share the same lexical environment\n\tconst nextContinuationOptions: ContinuationOptions = {lexicalEnvironment: cloneLexicalEnvironment(lexicalEnvironment)};\n\n\tconst parametersContResult = node.parameters?.map(parameter => continuation(parameter, nextContinuationOptions)) ?? [];\n\tconst bodyContResult = node.body == null ? undefined : continuation(node.body, nextContinuationOptions);\n\n\tconst isIdentical = nodeArraysAreEqual(parametersContResult, node.parameters) && bodyContResult === node.body;\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\treturn preserveMeta(factory.updateConstructorDeclaration(node, node.modifiers, parametersContResult, bodyContResult), node, options);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {cloneLexicalEnvironment} from \"../../../util/clone-lexical-environment.js\";\nimport {nodeArraysAreEqual} from \"../../../util/node-arrays-are-equal.js\";\nimport type {ContinuationOptions} from \"../deconflicter-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\n\n/**\n * Deconflicts the given CallSignature.\n */\nexport function deconflictCallSignatureDeclaration(options: DeconflicterVisitorOptions<TS.CallSignatureDeclaration>): TS.CallSignatureDeclaration | undefined {\n\tconst {node, continuation, lexicalEnvironment, factory} = options;\n\n\t// The type, type parameters, as well as the parameters share the same lexical environment\n\tconst nextContinuationOptions: ContinuationOptions = {lexicalEnvironment: cloneLexicalEnvironment(lexicalEnvironment)};\n\n\tconst typeParametersContResult =\n\t\tnode.typeParameters == null ? undefined : factory.createNodeArray(node.typeParameters.map(typeParameter => continuation(typeParameter, nextContinuationOptions)));\n\tconst parametersContResult = factory.createNodeArray(node.parameters.map(parameter => continuation(parameter, nextContinuationOptions)));\n\tconst typeContResult = node.type == null ? undefined : continuation(node.type, nextContinuationOptions);\n\n\tconst isIdentical =\n\t\tnodeArraysAreEqual(typeParametersContResult, node.typeParameters) && nodeArraysAreEqual(parametersContResult, node.parameters) && typeContResult === node.type;\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\treturn preserveMeta(factory.updateCallSignature(node, typeParametersContResult, parametersContResult, typeContResult), node, options);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\n\n/**\n * Deconflicts the given QualifiedName.\n */\nexport function deconflictQualifiedName(options: DeconflicterVisitorOptions<TS.QualifiedName>): TS.QualifiedName | undefined {\n\tconst {node, continuation, lexicalEnvironment, factory} = options;\n\tconst leftContResult = continuation(node.left, {lexicalEnvironment});\n\n\tconst isIdentical = leftContResult === node.left;\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\treturn preserveMeta(factory.updateQualifiedName(node, leftContResult, node.right), node, options);\n}\n","import type {DeconflicterVisitorOptions} from \"../deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {addBindingToLexicalEnvironment} from \"../../../util/add-binding-to-lexical-environment.js\";\nimport {isIdentifierFree} from \"../../../util/is-identifier-free.js\";\nimport {generateUniqueBinding} from \"../../../util/generate-unique-binding.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {getOriginalSourceFile} from \"../../../util/get-original-source-file.js\";\nimport {getIdForNode} from \"../../../util/get-id-for-node.js\";\nimport {isNodeInternalAlias} from \"../../../util/node-util.js\";\n\n/**\n * Deconflicts the given ImportClause.\n */\nexport function deconflictImportEqualsDeclaration(options: DeconflicterVisitorOptions<TS.ImportEqualsDeclaration>): TS.ImportEqualsDeclaration | undefined {\n\tconst {node, lexicalEnvironment, sourceFile, typescript, factory, declarationToDeconflictedBindingMap} = options;\n\tlet nameContResult: TS.ImportClause[\"name\"];\n\tconst originalSourceFile = getOriginalSourceFile(node, sourceFile, typescript);\n\n\tconst id = getIdForNode({...options});\n\n\tif (isIdentifierFree(lexicalEnvironment, node.name.text, originalSourceFile.fileName, isNodeInternalAlias(node, typescript))) {\n\t\tnameContResult = node.name;\n\n\t\tif (id != null) {\n\t\t\tdeclarationToDeconflictedBindingMap.set(id, node.name.text);\n\t\t}\n\n\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, node.name.text);\n\t} else {\n\t\t// Otherwise, deconflict it\n\t\tconst uniqueBinding = generateUniqueBinding(lexicalEnvironment, node.name.text);\n\t\tnameContResult = factory.createIdentifier(uniqueBinding);\n\n\t\tif (id != null) {\n\t\t\tdeclarationToDeconflictedBindingMap.set(id, uniqueBinding);\n\t\t}\n\n\t\t// The name creates a new local binding within the current LexicalEnvironment\n\t\taddBindingToLexicalEnvironment(lexicalEnvironment, originalSourceFile.fileName, uniqueBinding, node.name.text);\n\t}\n\n\tconst isIdentical = nameContResult === node.name;\n\n\tif (isIdentical) {\n\t\treturn node;\n\t}\n\n\treturn preserveMeta(factory.updateImportEqualsDeclaration(node, node.modifiers, node.isTypeOnly, nameContResult, node.moduleReference), node, options);\n}\n","import type {DeconflicterVisitorOptions} from \"./deconflicter-visitor-options.js\";\nimport type {TS} from \"../../../../../type/ts.js\";\nimport {deconflictBindingElement} from \"./visitor/deconflict-binding-element.js\";\nimport {deconflictClassDeclaration} from \"./visitor/deconflict-class-declaration.js\";\nimport {deconflictClassExpression} from \"./visitor/deconflict-class-expression.js\";\nimport {deconflictEnumDeclaration} from \"./visitor/deconflict-enum-declaration.js\";\nimport {deconflictEnumMember} from \"./visitor/deconflict-enum-member.js\";\nimport {deconflictExportSpecifier} from \"./visitor/deconflict-export-specifier.js\";\nimport {deconflictFunctionDeclaration} from \"./visitor/deconflict-function-declaration.js\";\nimport {deconflictFunctionExpression} from \"./visitor/deconflict-function-expression.js\";\nimport {deconflictGetAccessorDeclaration} from \"./visitor/deconflict-get-accessor-declaration.js\";\nimport {deconflictIdentifier} from \"./visitor/deconflict-identifier.js\";\nimport {deconflictImportClause} from \"./visitor/deconflict-import-clause.js\";\nimport {deconflictImportSpecifier} from \"./visitor/deconflict-import-specifier.js\";\nimport {deconflictInterfaceDeclaration} from \"./visitor/deconflict-interface-declaration.js\";\nimport {deconflictMappedTypeNode} from \"./visitor/deconflict-mapped-type-node.js\";\nimport {deconflictMethodDeclaration} from \"./visitor/deconflict-method-declaration.js\";\nimport {deconflictIndexSignatureDeclaration} from \"./visitor/deconflict-index-signature-declaration.js\";\nimport {deconflictMethodSignature} from \"./visitor/deconflict-method-signature.js\";\nimport {deconflictModuleDeclaration} from \"./visitor/deconflict-module-declaration.js\";\nimport {deconflictNamespaceImport} from \"./visitor/deconflict-namespace-import.js\";\nimport {deconflictParameterDeclaration} from \"./visitor/deconflict-parameter-declaration.js\";\nimport {deconflictPropertyAssignment} from \"./visitor/deconflict-property-assignment.js\";\nimport {deconflictPropertyDeclaration} from \"./visitor/deconflict-property-declaration.js\";\nimport {deconflictPropertySignature} from \"./visitor/deconflict-property-signature.js\";\nimport {deconflictSetAccessorDeclaration} from \"./visitor/deconflict-set-accessor-declaration.js\";\nimport {deconflictTypeAliasDeclaration} from \"./visitor/deconflict-type-alias-declaration.js\";\nimport {deconflictTypeParameterDeclaration} from \"./visitor/deconflict-type-parameter-declaration.js\";\nimport {deconflictVariableDeclaration} from \"./visitor/deconflict-variable-declaration.js\";\nimport type {ContinuationOptions} from \"./deconflicter-options.js\";\nimport type {SourceFileBundlerVisitorOptions} from \"../source-file-bundler/source-file-bundler-visitor-options.js\";\nimport {shouldDebugMetrics, shouldDebugSourceFile} from \"../../../../../util/is-debug/should-debug.js\";\nimport {logMetrics} from \"../../../../../util/logging/log-metrics.js\";\nimport {logTransformer} from \"../../../../../util/logging/log-transformer.js\";\nimport {preserveMeta} from \"../../util/clone-node-with-meta.js\";\nimport {deconflictFunctionTypeNode} from \"./visitor/deconflict-function-type.js\";\nimport {deconflictImportTypeNode} from \"./visitor/deconflict-import-type-node.js\";\nimport {deconflictConstructorDeclaration} from \"./visitor/deconflict-constructor-declaration.js\";\nimport {deconflictCallSignatureDeclaration} from \"./visitor/deconflict-call-signature-declaration.js\";\nimport {deconflictQualifiedName} from \"./visitor/deconflict-qualified-name.js\";\nimport {deconflictImportEqualsDeclaration} from \"./visitor/deconflict-import-equals-declaration.js\";\n\n/**\n * Deconflicts the given Node. Everything but LValues will be updated here\n */\nfunction deconflictNode({node, ...options}: DeconflicterVisitorOptions<TS.Node>): TS.Node | undefined {\n\tif (options.typescript.isBindingElement(node)) {\n\t\treturn deconflictBindingElement({node, ...options});\n\t} else if (options.typescript.isQualifiedName(node)) {\n\t\treturn deconflictQualifiedName({node, ...options});\n\t} else if (options.typescript.isClassDeclaration(node)) {\n\t\treturn deconflictClassDeclaration({node, ...options});\n\t} else if (options.typescript.isClassExpression(node)) {\n\t\treturn deconflictClassExpression({node, ...options});\n\t} else if (options.typescript.isEnumDeclaration(node)) {\n\t\treturn deconflictEnumDeclaration({node, ...options});\n\t} else if (options.typescript.isEnumMember(node)) {\n\t\treturn deconflictEnumMember({node, ...options});\n\t} else if (options.typescript.isExportSpecifier(node)) {\n\t\treturn deconflictExportSpecifier({node, ...options});\n\t} else if (options.typescript.isFunctionDeclaration(node)) {\n\t\treturn deconflictFunctionDeclaration({node, ...options});\n\t} else if (options.typescript.isFunctionExpression(node)) {\n\t\treturn deconflictFunctionExpression({node, ...options});\n\t} else if (options.typescript.isConstructorDeclaration(node)) {\n\t\treturn deconflictConstructorDeclaration({node, ...options});\n\t} else if (options.typescript.isFunctionTypeNode(node)) {\n\t\treturn deconflictFunctionTypeNode({node, ...options});\n\t} else if (options.typescript.isGetAccessorDeclaration(node)) {\n\t\treturn deconflictGetAccessorDeclaration({node, ...options});\n\t} else if (options.typescript.isIdentifier(node)) {\n\t\treturn deconflictIdentifier({node, ...options});\n\t} else if (options.typescript.isImportClause(node)) {\n\t\treturn deconflictImportClause({node, ...options});\n\t} else if (options.typescript.isImportEqualsDeclaration(node)) {\n\t\treturn deconflictImportEqualsDeclaration({node, ...options});\n\t} else if (options.typescript.isImportSpecifier(node)) {\n\t\treturn deconflictImportSpecifier({node, ...options});\n\t} else if (options.typescript.isInterfaceDeclaration(node)) {\n\t\treturn deconflictInterfaceDeclaration({node, ...options});\n\t}\n\n\t// MappedTypeNodes may not be part of the current Typescript version, hence the optional call\n\telse if (options.typescript.isMappedTypeNode?.(node)) {\n\t\treturn deconflictMappedTypeNode({node, ...options});\n\t} else if (options.typescript.isMethodDeclaration(node)) {\n\t\treturn deconflictMethodDeclaration({node, ...options});\n\t} else if (options.typescript.isIndexSignatureDeclaration(node)) {\n\t\treturn deconflictIndexSignatureDeclaration({node, ...options});\n\t} else if (options.typescript.isMethodSignature(node)) {\n\t\treturn deconflictMethodSignature({node, ...options});\n\t} else if (options.typescript.isCallSignatureDeclaration(node)) {\n\t\treturn deconflictCallSignatureDeclaration({node, ...options});\n\t} else if (options.typescript.isModuleDeclaration(node)) {\n\t\treturn deconflictModuleDeclaration({node, ...options});\n\t} else if (options.typescript.isNamespaceImport(node)) {\n\t\treturn deconflictNamespaceImport({node, ...options});\n\t} else if (options.typescript.isParameter(node)) {\n\t\treturn deconflictParameterDeclaration({node, ...options});\n\t} else if (options.typescript.isPropertyAssignment(node)) {\n\t\treturn deconflictPropertyAssignment({node, ...options});\n\t} else if (options.typescript.isPropertyDeclaration(node)) {\n\t\treturn deconflictPropertyDeclaration({node, ...options});\n\t} else if (options.typescript.isPropertySignature(node)) {\n\t\treturn deconflictPropertySignature({node, ...options});\n\t} else if (options.typescript.isSetAccessorDeclaration(node)) {\n\t\treturn deconflictSetAccessorDeclaration({node, ...options});\n\t} else if (options.typescript.isTypeAliasDeclaration(node)) {\n\t\treturn deconflictTypeAliasDeclaration({node, ...options});\n\t} else if (options.typescript.isImportTypeNode(node)) {\n\t\treturn deconflictImportTypeNode({node, ...options});\n\t} else if (options.typescript.isTypeParameterDeclaration(node)) {\n\t\treturn deconflictTypeParameterDeclaration({node, ...options});\n\t} else if (options.typescript.isVariableDeclaration(node)) {\n\t\treturn deconflictVariableDeclaration({node, ...options});\n\t} else return options.childContinuation(node, {lexicalEnvironment: options.lexicalEnvironment});\n}\n\n/**\n * Deconflicts local bindings\n */\nexport function deconflicter(options: SourceFileBundlerVisitorOptions): TS.SourceFile {\n\tconst {typescript, context, sourceFile, pluginOptions, printer, lexicalEnvironment} = options;\n\n\tconst fullBenchmark = shouldDebugMetrics(pluginOptions.debug, sourceFile) ? logMetrics(`Deconflicting`, sourceFile.fileName) : undefined;\n\n\tconst transformationLog = shouldDebugSourceFile(pluginOptions.debug, sourceFile) ? logTransformer(\"Deconflicting\", sourceFile, printer) : undefined;\n\n\t// Prepare some VisitorOptions\n\tconst visitorOptions = {\n\t\t...options,\n\n\t\tchildContinuation: <U extends TS.Node>(node: U, continuationOptions: ContinuationOptions): U =>\n\t\t\ttypescript.visitEachChild(\n\t\t\t\tnode,\n\t\t\t\tnextNode =>\n\t\t\t\t\tdeconflictNode({\n\t\t\t\t\t\t...visitorOptions,\n\t\t\t\t\t\t...continuationOptions,\n\t\t\t\t\t\tnode: nextNode\n\t\t\t\t\t}),\n\t\t\t\tcontext\n\t\t\t),\n\n\t\tcontinuation: <U extends TS.Node>(node: U, continuationOptions: ContinuationOptions): U =>\n\t\t\tdeconflictNode({\n\t\t\t\t...visitorOptions,\n\t\t\t\t...continuationOptions,\n\t\t\t\tnode\n\t\t\t}) as U\n\t};\n\n\tconst result = preserveMeta(\n\t\ttypescript.visitEachChild(sourceFile, nextNode => visitorOptions.continuation(nextNode, {lexicalEnvironment}), context),\n\t\tsourceFile,\n\t\toptions\n\t);\n\n\ttransformationLog?.finish(result);\n\tfullBenchmark?.finish();\n\n\treturn result;\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureDeclareModifierTransformerVisitorOptions} from \"../ensure-declare-modifier-transformer-visitor-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {ensureHasDeclareModifier, hasDeclareModifier} from \"../../../util/modifier-util.js\";\nimport {getModifierLikes} from \"../../../util/node-util.js\";\n\nexport function visitClassDeclaration(options: EnsureDeclareModifierTransformerVisitorOptions<TS.ClassDeclaration>): TS.ClassDeclaration {\n\tconst {node, typescript, factory} = options;\n\tif (hasDeclareModifier(node, typescript)) return node;\n\n\tconst modifierLikes = ensureHasDeclareModifier(getModifierLikes(node), factory, typescript);\n\n\treturn preserveMeta(factory.updateClassDeclaration(node, modifierLikes, node.name, node.typeParameters, node.heritageClauses, node.members), node, options);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureDeclareModifierTransformerVisitorOptions} from \"../ensure-declare-modifier-transformer-visitor-options.js\";\nimport {ensureHasDeclareModifier, hasDeclareModifier} from \"../../../util/modifier-util.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {getModifierLikes} from \"../../../util/node-util.js\";\n\nexport function visitClassExpression(options: EnsureDeclareModifierTransformerVisitorOptions<TS.ClassExpression>): TS.ClassExpression {\n\tconst {node, typescript, factory} = options;\n\tif (hasDeclareModifier(node, typescript)) return node;\n\n\tconst modifierLikes = ensureHasDeclareModifier(getModifierLikes(node), factory, typescript);\n\n\treturn preserveMeta(factory.updateClassExpression(node, modifierLikes, node.name, node.typeParameters, node.heritageClauses, node.members), node, options);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureDeclareModifierTransformerVisitorOptions} from \"../ensure-declare-modifier-transformer-visitor-options.js\";\nimport {ensureHasDeclareModifier, hasDeclareModifier} from \"../../../util/modifier-util.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {getModifierLikes} from \"../../../util/node-util.js\";\n\nexport function visitFunctionDeclaration(options: EnsureDeclareModifierTransformerVisitorOptions<TS.FunctionDeclaration>): TS.FunctionDeclaration {\n\tconst {node, factory, typescript} = options;\n\tif (hasDeclareModifier(node, typescript)) return node;\n\n\tconst modifierLikes = ensureHasDeclareModifier(getModifierLikes(node), factory, typescript);\n\n\treturn preserveMeta(\n\t\tfactory.updateFunctionDeclaration(node, modifierLikes, node.asteriskToken, node.name, node.typeParameters, node.parameters, node.type, node.body),\n\t\tnode,\n\t\toptions\n\t);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureDeclareModifierTransformerVisitorOptions} from \"../ensure-declare-modifier-transformer-visitor-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {ensureHasDeclareModifier, hasDeclareModifier} from \"../../../util/modifier-util.js\";\n\nexport function visitFunctionExpression(options: EnsureDeclareModifierTransformerVisitorOptions<TS.FunctionExpression>): TS.FunctionExpression {\n\tconst {node, factory, typescript} = options;\n\tif (hasDeclareModifier(node, typescript)) return node;\n\n\treturn preserveMeta(\n\t\tfactory.updateFunctionExpression(\n\t\t\tnode,\n\t\t\tensureHasDeclareModifier(node.modifiers, factory, typescript),\n\t\t\tnode.asteriskToken,\n\t\t\tnode.name,\n\t\t\tnode.typeParameters,\n\t\t\tnode.parameters,\n\t\t\tnode.type,\n\t\t\tnode.body\n\t\t),\n\t\tnode,\n\t\toptions\n\t);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureDeclareModifierTransformerVisitorOptions} from \"../ensure-declare-modifier-transformer-visitor-options.js\";\nimport {ensureHasDeclareModifier, hasDeclareModifier} from \"../../../util/modifier-util.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\n\nexport function visitEnumDeclaration(options: EnsureDeclareModifierTransformerVisitorOptions<TS.EnumDeclaration>): TS.EnumDeclaration {\n\tconst {node, factory, typescript} = options;\n\tif (hasDeclareModifier(node, typescript)) return node;\n\n\treturn preserveMeta(factory.updateEnumDeclaration(node, ensureHasDeclareModifier(node.modifiers, factory, typescript), node.name, node.members), node, options);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureDeclareModifierTransformerVisitorOptions} from \"../ensure-declare-modifier-transformer-visitor-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {ensureHasDeclareModifier, hasDeclareModifier} from \"../../../util/modifier-util.js\";\n\nexport function visitVariableStatement(options: EnsureDeclareModifierTransformerVisitorOptions<TS.VariableStatement>): TS.VariableStatement {\n\tconst {node, factory, typescript} = options;\n\tif (hasDeclareModifier(node, typescript)) return node;\n\n\treturn preserveMeta(factory.updateVariableStatement(node, ensureHasDeclareModifier(node.modifiers, factory, typescript), node.declarationList), node, options);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureDeclareModifierTransformerVisitorOptions} from \"../ensure-declare-modifier-transformer-visitor-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {hasDeclareModifier, removeDeclareModifier} from \"../../../util/modifier-util.js\";\n\nexport function visitInterfaceDeclaration(options: EnsureDeclareModifierTransformerVisitorOptions<TS.InterfaceDeclaration>): TS.InterfaceDeclaration {\n\tconst {node, factory, typescript} = options;\n\tif (!hasDeclareModifier(node, typescript)) return node;\n\n\treturn preserveMeta(\n\t\tfactory.updateInterfaceDeclaration(node, removeDeclareModifier(node.modifiers, typescript), node.name, node.typeParameters, node.heritageClauses, node.members),\n\t\tnode,\n\t\toptions\n\t);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureDeclareModifierTransformerVisitorOptions} from \"../ensure-declare-modifier-transformer-visitor-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {ensureHasDeclareModifier, hasDeclareModifier} from \"../../../util/modifier-util.js\";\n\nexport function visitModuleDeclaration(options: EnsureDeclareModifierTransformerVisitorOptions<TS.ModuleDeclaration>): TS.ModuleDeclaration {\n\tconst {node, factory, typescript} = options;\n\tif (hasDeclareModifier(node, typescript)) return node;\n\n\treturn preserveMeta(factory.updateModuleDeclaration(node, ensureHasDeclareModifier(node.modifiers, factory, typescript), node.name, node.body), node, options);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureDeclareModifierTransformerVisitorOptions} from \"../ensure-declare-modifier-transformer-visitor-options.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\nimport {hasDeclareModifier, removeDeclareModifier} from \"../../../util/modifier-util.js\";\n\nexport function visitTypeAliasDeclaration(options: EnsureDeclareModifierTransformerVisitorOptions<TS.TypeAliasDeclaration>): TS.TypeAliasDeclaration {\n\tconst {node, factory, typescript} = options;\n\tif (!hasDeclareModifier(node, typescript)) return node;\n\n\treturn preserveMeta(factory.updateTypeAliasDeclaration(node, removeDeclareModifier(node.modifiers, typescript), node.name, node.typeParameters, node.type), node, options);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {EnsureDeclareModifierTransformerVisitorOptions} from \"../ensure-declare-modifier-transformer-visitor-options.js\";\nimport {visitClassDeclaration} from \"./visit-class-declaration.js\";\nimport {visitClassExpression} from \"./visit-class-expression.js\";\nimport {visitFunctionDeclaration} from \"./visit-function-declaration.js\";\nimport {visitFunctionExpression} from \"./visit-function-expression.js\";\nimport {visitEnumDeclaration} from \"./visit-enum-declaration.js\";\nimport {visitVariableStatement} from \"./visit-variable-statement.js\";\nimport {visitInterfaceDeclaration} from \"./visit-interface-declaration.js\";\nimport {visitModuleDeclaration} from \"./visit-module-declaration.js\";\nimport {visitTypeAliasDeclaration} from \"./visit-type-alias-declaration.js\";\n\nexport function visitNode({node, ...options}: EnsureDeclareModifierTransformerVisitorOptions<TS.Node>): TS.Node {\n\tif (options.typescript.isClassDeclaration(node)) {\n\t\treturn visitClassDeclaration({...options, node});\n\t} else if (options.typescript.isClassExpression(node)) {\n\t\treturn visitClassExpression({...options, node});\n\t} else if (options.typescript.isFunctionDeclaration(node)) {\n\t\treturn visitFunctionDeclaration({...options, node});\n\t} else if (options.typescript.isFunctionExpression(node)) {\n\t\treturn visitFunctionExpression({...options, node});\n\t} else if (options.typescript.isEnumDeclaration(node)) {\n\t\treturn visitEnumDeclaration({...options, node});\n\t} else if (options.typescript.isInterfaceDeclaration(node)) {\n\t\treturn visitInterfaceDeclaration({...options, node});\n\t} else if (options.typescript.isTypeAliasDeclaration(node)) {\n\t\treturn visitTypeAliasDeclaration({...options, node});\n\t} else if (options.typescript.isModuleDeclaration(node)) {\n\t\treturn visitModuleDeclaration({...options, node});\n\t} else if (options.typescript.isVariableStatement(node)) {\n\t\treturn visitVariableStatement({...options, node});\n\t} else {\n\t\t// Only consider root-level statements here\n\t\treturn node;\n\t}\n}\n","import type {TS} from \"../../../../../type/ts.js\";\nimport type {SourceFileBundlerVisitorOptions} from \"../source-file-bundler/source-file-bundler-visitor-options.js\";\nimport {visitNode} from \"./visitor/visit-node.js\";\nimport {shouldDebugMetrics, shouldDebugSourceFile} from \"../../../../../util/is-debug/should-debug.js\";\nimport {logTransformer} from \"../../../../../util/logging/log-transformer.js\";\nimport {logMetrics} from \"../../../../../util/logging/log-metrics.js\";\nimport {preserveMeta} from \"../../util/clone-node-with-meta.js\";\n\nexport function ensureDeclareModifierTransformer(options: SourceFileBundlerVisitorOptions): TS.SourceFile {\n\tconst {typescript, context, sourceFile, pluginOptions, printer} = options;\n\n\tconst fullBenchmark = shouldDebugMetrics(pluginOptions.debug, sourceFile) ? logMetrics(`Ensuring declare modifiers`, sourceFile.fileName) : undefined;\n\n\tconst transformationLog = shouldDebugSourceFile(pluginOptions.debug, sourceFile) ? logTransformer(\"Ensuring declare modifiers\", sourceFile, printer) : undefined;\n\n\t// Prepare some VisitorOptions\n\tconst visitorOptions = {\n\t\t...options,\n\n\t\tchildContinuation: <U extends TS.Node>(node: U): U =>\n\t\t\ttypescript.visitEachChild(\n\t\t\t\tnode,\n\t\t\t\tnextNode =>\n\t\t\t\t\tvisitNode({\n\t\t\t\t\t\t...visitorOptions,\n\t\t\t\t\t\tnode: nextNode\n\t\t\t\t\t}),\n\t\t\t\tcontext\n\t\t\t),\n\n\t\tcontinuation: <U extends TS.Node>(node: U): U =>\n\t\t\tvisitNode({\n\t\t\t\t...visitorOptions,\n\t\t\t\tnode\n\t\t\t}) as U\n\t};\n\n\tconst result = preserveMeta(\n\t\ttypescript.visitEachChild(sourceFile, nextNode => visitorOptions.continuation(nextNode), context),\n\t\tsourceFile,\n\t\toptions\n\t);\n\n\ttransformationLog?.finish(result);\n\tfullBenchmark?.finish();\n\n\treturn result;\n}\n","import type {ModuleBlockExtractorVisitorOptions} from \"../module-block-extractor-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\n\nexport function visitModuleDeclaration({node, typescript}: ModuleBlockExtractorVisitorOptions<TS.ModuleDeclaration>): TS.VisitResult<TS.Node> | undefined {\n\tif (node.body == null) return undefined;\n\tif (typescript.isModuleBlock(node.body) && typescript.isStringLiteralLike(node.name)) {\n\t\treturn [...node.body.statements];\n\t}\n\n\treturn node;\n}\n","import {visitModuleDeclaration} from \"./visit-module-declaration.js\";\nimport type {ModuleBlockExtractorVisitorOptions} from \"../module-block-extractor-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\n\nexport function visitNode<T extends TS.Node>({node, ...options}: ModuleBlockExtractorVisitorOptions<T>): TS.Node | TS.Node[] | readonly TS.Node[] | undefined {\n\tif (options.typescript.isModuleDeclaration(node)) {\n\t\treturn visitModuleDeclaration({...options, node});\n\t} else {\n\t\treturn options.childContinuation(node);\n\t}\n}\n","import type {TS} from \"../../../../../type/ts.js\";\nimport {visitNode} from \"./visitor/visit-node.js\";\nimport type {ModuleBlockExtractorOptions} from \"./module-block-extractor-options.js\";\nimport {shouldDebugMetrics, shouldDebugSourceFile} from \"../../../../../util/is-debug/should-debug.js\";\nimport {logMetrics} from \"../../../../../util/logging/log-metrics.js\";\nimport {logTransformer} from \"../../../../../util/logging/log-transformer.js\";\nimport type {ModuleBlockExtractorVisitorOptions} from \"./module-block-extractor-visitor-options.js\";\nimport {preserveMeta} from \"../../util/clone-node-with-meta.js\";\n\nexport function moduleBlockExtractor(options: ModuleBlockExtractorOptions): TS.SourceFile {\n\tconst {typescript, context, sourceFile, pluginOptions, printer} = options;\n\n\tconst fullBenchmark = shouldDebugMetrics(pluginOptions.debug, sourceFile) ? logMetrics(`Extracting module blocks`, sourceFile.fileName) : undefined;\n\n\tconst transformationLog = shouldDebugSourceFile(pluginOptions.debug, sourceFile) ? logTransformer(\"Extracting module blocks\", sourceFile, printer) : undefined;\n\n\t// Prepare some VisitorOptions\n\tconst visitorOptions: Omit<ModuleBlockExtractorVisitorOptions<TS.Node>, \"node\"> = {\n\t\t...options,\n\n\t\tchildContinuation: <U extends TS.Node>(node: U): TS.VisitResult<TS.Node> =>\n\t\t\ttypescript.visitEachChild(\n\t\t\t\tnode,\n\t\t\t\tnextNode =>\n\t\t\t\t\tvisitNode({\n\t\t\t\t\t\t...visitorOptions,\n\t\t\t\t\t\tnode: nextNode\n\t\t\t\t\t}),\n\t\t\t\tcontext\n\t\t\t),\n\n\t\tcontinuation: <U extends TS.Node>(node: U): TS.VisitResult<TS.Node> | undefined =>\n\t\t\tvisitNode({\n\t\t\t\t...visitorOptions,\n\t\t\t\tnode\n\t\t\t})\n\t};\n\n\tconst result = preserveMeta(\n\t\ttypescript.visitEachChild(sourceFile, nextNode => visitorOptions.continuation(nextNode), context),\n\t\tsourceFile,\n\t\toptions\n\t);\n\n\ttransformationLog?.finish(result);\n\tfullBenchmark?.finish();\n\n\treturn result;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkClassDeclaration({node, continuation, markIdentifiersAsReferenced}: ReferenceVisitorOptions<TS.ClassDeclaration>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\tif (node.heritageClauses != null) {\n\t\tfor (const heritageClause of node.heritageClauses) {\n\t\t\treferencedIdentifiers.push(...continuation(heritageClause));\n\t\t}\n\t}\n\n\tif (node.typeParameters != null) {\n\t\tfor (const typeParameter of node.typeParameters) {\n\t\t\treferencedIdentifiers.push(...continuation(typeParameter));\n\t\t}\n\t}\n\n\tfor (const member of node.members) {\n\t\treferencedIdentifiers.push(...continuation(member));\n\t}\n\n\tmarkIdentifiersAsReferenced(node, ...referencedIdentifiers);\n\treturn referencedIdentifiers;\n}\n","import type {TS} from \"../../../../type/ts.js\";\n\nexport function isSymbolIdentifier(node: TS.Node, typescript: typeof TS): node is TS.Identifier {\n\treturn typescript.isIdentifier(node) && node.text.startsWith(\"[\") && node.text.endsWith(\"]\");\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\nimport {isSymbolIdentifier} from \"../../../../util/is-symbol-identifier.js\";\n\nexport function checkIdentifier({node, typescript}: ReferenceVisitorOptions<TS.Identifier>): string[] {\n\treturn isSymbolIdentifier(node, typescript) ? [node.text.slice(1, -1)] : [(node as TS.Identifier).text];\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkClassExpression({node, continuation, markIdentifiersAsReferenced}: ReferenceVisitorOptions<TS.ClassExpression>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\tif (node.heritageClauses != null) {\n\t\tfor (const heritageClause of node.heritageClauses) {\n\t\t\treferencedIdentifiers.push(...continuation(heritageClause));\n\t\t}\n\t}\n\n\tif (node.typeParameters != null) {\n\t\tfor (const typeParameter of node.typeParameters) {\n\t\t\treferencedIdentifiers.push(...continuation(typeParameter));\n\t\t}\n\t}\n\n\tfor (const member of node.members) {\n\t\treferencedIdentifiers.push(...continuation(member));\n\t}\n\n\tmarkIdentifiersAsReferenced(node, ...referencedIdentifiers);\n\treturn referencedIdentifiers;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkInterfaceDeclaration({node, continuation, markIdentifiersAsReferenced}: ReferenceVisitorOptions<TS.InterfaceDeclaration>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\tif (node.heritageClauses != null) {\n\t\tfor (const heritageClause of node.heritageClauses) {\n\t\t\treferencedIdentifiers.push(...continuation(heritageClause));\n\t\t}\n\t}\n\n\tif (node.typeParameters != null) {\n\t\tfor (const typeParameter of node.typeParameters) {\n\t\t\treferencedIdentifiers.push(...continuation(typeParameter));\n\t\t}\n\t}\n\n\tfor (const member of node.members) {\n\t\treferencedIdentifiers.push(...continuation(member));\n\t}\n\n\tmarkIdentifiersAsReferenced(node, ...referencedIdentifiers);\n\treturn referencedIdentifiers;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkEnumDeclaration({node, continuation, markIdentifiersAsReferenced}: ReferenceVisitorOptions<TS.EnumDeclaration>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\n\tfor (const member of node.members) {\n\t\treferencedIdentifiers.push(...continuation(member));\n\t}\n\n\tmarkIdentifiersAsReferenced(node, ...referencedIdentifiers);\n\treturn referencedIdentifiers;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkTypeAliasDeclaration({node, continuation, markIdentifiersAsReferenced}: ReferenceVisitorOptions<TS.TypeAliasDeclaration>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\n\tif (node.typeParameters != null) {\n\t\tfor (const typeParameter of node.typeParameters) {\n\t\t\treferencedIdentifiers.push(...continuation(typeParameter));\n\t\t}\n\t}\n\n\treferencedIdentifiers.push(...continuation(node.type));\n\n\tmarkIdentifiersAsReferenced(node, ...referencedIdentifiers);\n\treturn referencedIdentifiers;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkFunctionDeclaration({node, continuation, markIdentifiersAsReferenced}: ReferenceVisitorOptions<TS.FunctionDeclaration>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\tfor (const parameter of node.parameters) {\n\t\treferencedIdentifiers.push(...continuation(parameter));\n\t}\n\n\tif (node.typeParameters != null) {\n\t\tfor (const typeParameter of node.typeParameters) {\n\t\t\treferencedIdentifiers.push(...continuation(typeParameter));\n\t\t}\n\t}\n\n\tif (node.body != null) {\n\t\treferencedIdentifiers.push(...continuation(node.body));\n\t}\n\n\tif (node.type != null) {\n\t\treferencedIdentifiers.push(...continuation(node.type));\n\t}\n\n\tmarkIdentifiersAsReferenced(node, ...referencedIdentifiers);\n\treturn referencedIdentifiers;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkFunctionExpression({node, continuation, markIdentifiersAsReferenced}: ReferenceVisitorOptions<TS.FunctionExpression>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\tfor (const parameter of node.parameters) {\n\t\treferencedIdentifiers.push(...continuation(parameter));\n\t}\n\n\tif (node.typeParameters != null) {\n\t\tfor (const typeParameter of node.typeParameters) {\n\t\t\treferencedIdentifiers.push(...continuation(typeParameter));\n\t\t}\n\t}\n\n\tif (node.body != null) {\n\t\treferencedIdentifiers.push(...continuation(node.body));\n\t}\n\n\tif (node.type != null) {\n\t\treferencedIdentifiers.push(...continuation(node.type));\n\t}\n\n\tmarkIdentifiersAsReferenced(node, ...referencedIdentifiers);\n\treturn referencedIdentifiers;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkVariableDeclaration({node, continuation}: ReferenceVisitorOptions<TS.VariableDeclaration>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\tif (node.initializer != null) {\n\t\treferencedIdentifiers.push(...continuation(node.initializer));\n\t}\n\n\tif (node.type != null) {\n\t\treferencedIdentifiers.push(...continuation(node.type));\n\t}\n\n\treturn referencedIdentifiers;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkExportSpecifier({node, continuation}: ReferenceVisitorOptions<TS.ExportSpecifier>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\tif (node.propertyName != null) {\n\t\treferencedIdentifiers.push(...continuation(node.propertyName));\n\t} else if (node.propertyName == null) {\n\t\treferencedIdentifiers.push(...continuation(node.name));\n\t}\n\n\treturn referencedIdentifiers;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkArrayBindingPattern({node, continuation}: ReferenceVisitorOptions<TS.ArrayBindingPattern>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\n\tfor (const element of node.elements) {\n\t\treferencedIdentifiers.push(...continuation(element));\n\t}\n\n\treturn referencedIdentifiers;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkObjectBindingPattern({node, continuation}: ReferenceVisitorOptions<TS.ObjectBindingPattern>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\n\tfor (const element of node.elements) {\n\t\treferencedIdentifiers.push(...continuation(element));\n\t}\n\n\treturn referencedIdentifiers;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkBindingElement({node, continuation, typescript}: ReferenceVisitorOptions<TS.BindingElement>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\n\tif (!typescript.isIdentifier(node.name)) {\n\t\treferencedIdentifiers.push(...continuation(node.name));\n\t}\n\n\tif (node.initializer != null) {\n\t\treferencedIdentifiers.push(...continuation(node.initializer));\n\t}\n\n\tif (node.propertyName != null && !typescript.isIdentifier(node.propertyName)) {\n\t\treferencedIdentifiers.push(...continuation(node.propertyName));\n\t}\n\treturn referencedIdentifiers;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkMethodDeclaration({node, continuation, typescript}: ReferenceVisitorOptions<TS.MethodDeclaration>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\n\tif (!typescript.isIdentifier(node.name)) {\n\t\treferencedIdentifiers.push(...continuation(node.name));\n\t}\n\tfor (const parameter of node.parameters) {\n\t\treferencedIdentifiers.push(...continuation(parameter));\n\t}\n\n\tif (node.typeParameters != null) {\n\t\tfor (const typeParameter of node.typeParameters) {\n\t\t\treferencedIdentifiers.push(...continuation(typeParameter));\n\t\t}\n\t}\n\n\tif (node.type != null) {\n\t\treferencedIdentifiers.push(...continuation(node.type));\n\t}\n\n\tif (node.body != null) {\n\t\treferencedIdentifiers.push(...continuation(node.body));\n\t}\n\n\treturn referencedIdentifiers;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\nimport {isSymbolIdentifier} from \"../../../../util/is-symbol-identifier.js\";\n\nexport function checkMethodSignature({node, continuation, typescript}: ReferenceVisitorOptions<TS.MethodSignature>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\n\tif (!typescript.isIdentifier(node.name) || isSymbolIdentifier(node.name, typescript)) {\n\t\treferencedIdentifiers.push(...continuation(node.name));\n\t}\n\tfor (const parameter of node.parameters) {\n\t\treferencedIdentifiers.push(...continuation(parameter));\n\t}\n\n\tif (node.typeParameters != null) {\n\t\tfor (const typeParameter of node.typeParameters) {\n\t\t\treferencedIdentifiers.push(...continuation(typeParameter));\n\t\t}\n\t}\n\n\tif (node.type != null) {\n\t\treferencedIdentifiers.push(...continuation(node.type));\n\t}\n\n\treturn referencedIdentifiers;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkPropertyDeclaration({node, continuation, typescript}: ReferenceVisitorOptions<TS.PropertyDeclaration>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\n\tif (!typescript.isIdentifier(node.name)) {\n\t\treferencedIdentifiers.push(...continuation(node.name));\n\t}\n\n\tif (node.type != null) {\n\t\treferencedIdentifiers.push(...continuation(node.type));\n\t}\n\n\tif (node.initializer != null) {\n\t\treferencedIdentifiers.push(...continuation(node.initializer));\n\t}\n\n\treturn referencedIdentifiers;\n}\n","/* eslint-disable deprecation/deprecation */\nimport type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\nimport {isSymbolIdentifier} from \"../../../../util/is-symbol-identifier.js\";\n\nexport function checkPropertySignature({node, continuation, typescript}: ReferenceVisitorOptions<TS.PropertySignature>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\n\tif (!typescript.isIdentifier(node.name) || isSymbolIdentifier(node.name, typescript)) {\n\t\treferencedIdentifiers.push(...continuation(node.name));\n\t}\n\n\tif (node.type != null) {\n\t\treferencedIdentifiers.push(...continuation(node.type));\n\t}\n\treturn referencedIdentifiers;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkGetAccessorDeclaration({node, continuation, typescript}: ReferenceVisitorOptions<TS.GetAccessorDeclaration>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\n\tif (!typescript.isIdentifier(node.name)) {\n\t\treferencedIdentifiers.push(...continuation(node.name));\n\t}\n\tfor (const parameter of node.parameters) {\n\t\treferencedIdentifiers.push(...continuation(parameter));\n\t}\n\n\tif (node.typeParameters != null) {\n\t\tfor (const typeParameter of node.typeParameters) {\n\t\t\treferencedIdentifiers.push(...continuation(typeParameter));\n\t\t}\n\t}\n\n\tif (node.type != null) {\n\t\treferencedIdentifiers.push(...continuation(node.type));\n\t}\n\n\tif (node.body != null) {\n\t\treferencedIdentifiers.push(...continuation(node.body));\n\t}\n\treturn referencedIdentifiers;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkSetAccessorDeclaration({node, continuation, typescript}: ReferenceVisitorOptions<TS.SetAccessorDeclaration>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\n\tif (!typescript.isIdentifier(node.name)) {\n\t\treferencedIdentifiers.push(...continuation(node.name));\n\t}\n\tfor (const parameter of node.parameters) {\n\t\treferencedIdentifiers.push(...continuation(parameter));\n\t}\n\n\tif (node.typeParameters != null) {\n\t\tfor (const typeParameter of node.typeParameters) {\n\t\t\treferencedIdentifiers.push(...continuation(typeParameter));\n\t\t}\n\t}\n\n\tif (node.type != null) {\n\t\treferencedIdentifiers.push(...continuation(node.type));\n\t}\n\n\tif (node.body != null) {\n\t\treferencedIdentifiers.push(...continuation(node.body));\n\t}\n\n\treturn referencedIdentifiers;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkParameterDeclaration({node, continuation, typescript}: ReferenceVisitorOptions<TS.ParameterDeclaration>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\n\tif (!typescript.isIdentifier(node.name)) {\n\t\treferencedIdentifiers.push(...continuation(node.name));\n\t}\n\n\tif (node.type != null) {\n\t\treferencedIdentifiers.push(...continuation(node.type));\n\t}\n\n\tif (node.initializer != null) {\n\t\treferencedIdentifiers.push(...continuation(node.initializer));\n\t}\n\n\treturn referencedIdentifiers;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkVariableDeclarationList({node, continuation}: ReferenceVisitorOptions<TS.VariableDeclarationList>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\n\tfor (const declaration of node.declarations) {\n\t\treferencedIdentifiers.push(...continuation(declaration));\n\t}\n\n\treturn referencedIdentifiers;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkVariableStatement({node, continuation, markIdentifiersAsReferenced}: ReferenceVisitorOptions<TS.VariableStatement>): string[] {\n\tconst referencedIdentifiers = continuation(node.declarationList);\n\tmarkIdentifiersAsReferenced(node, ...referencedIdentifiers);\n\n\treturn referencedIdentifiers;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkExportDeclaration({node, continuation, markIdentifiersAsReferenced}: ReferenceVisitorOptions<TS.ExportDeclaration>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\tif (node.exportClause != null) {\n\t\treferencedIdentifiers.push(...continuation(node.exportClause));\n\t}\n\n\tmarkIdentifiersAsReferenced(node, ...referencedIdentifiers);\n\treturn referencedIdentifiers;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkExportAssignment({node, continuation, markIdentifiersAsReferenced}: ReferenceVisitorOptions<TS.ExportAssignment>): string[] {\n\tconst referencedIdentifiers = continuation(node.expression);\n\n\tmarkIdentifiersAsReferenced(node, ...referencedIdentifiers);\n\treturn referencedIdentifiers;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkModuleDeclaration({node, continuation, markIdentifiersAsReferenced}: ReferenceVisitorOptions<TS.ModuleDeclaration>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\tif (node.body != null) {\n\t\treferencedIdentifiers.push(...continuation(node.body));\n\t}\n\n\tmarkIdentifiersAsReferenced(node, ...referencedIdentifiers);\n\treturn referencedIdentifiers;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkIndexedAccessTypeNode({node, continuation}: ReferenceVisitorOptions<TS.IndexedAccessTypeNode>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\n\treferencedIdentifiers.push(...continuation(node.indexType));\n\treferencedIdentifiers.push(...continuation(node.objectType));\n\treturn referencedIdentifiers;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkPropertyAccessExpression({node, continuation}: ReferenceVisitorOptions<TS.PropertyAccessExpression>): string[] {\n\treturn continuation(node.expression);\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkQualifiedName({node, continuation}: ReferenceVisitorOptions<TS.QualifiedName>): string[] {\n\treturn continuation(node.left);\n}\n","import type {TS} from \"../../../../type/ts.js\";\nimport {getParentNode} from \"./get-parent-node.js\";\n\n/**\n * Returns true if the given Node contains the given Child Node\n */\nexport function nodeContainsChild(parent: TS.Node, potentialChild: TS.Node): boolean {\n\tif (parent === potentialChild) return false;\n\n\tlet candidate = potentialChild;\n\twhile (candidate != null) {\n\t\tcandidate = getParentNode(candidate);\n\t\tif (candidate === parent) return true;\n\t}\n\n\treturn false;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkTemplateLiteralTypeNode({node, continuation}: ReferenceVisitorOptions<TS.TemplateLiteralTypeNode>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\n\tif (node.head != null) {\n\t\treferencedIdentifiers.push(...continuation(node.head));\n\t}\n\n\tif (node.templateSpans != null) {\n\t\tfor (const templateSpan of node.templateSpans) {\n\t\t\treferencedIdentifiers.push(...continuation(templateSpan));\n\t\t}\n\t}\n\n\treturn referencedIdentifiers;\n}\n","import type {TS} from \"../../type/ts.js\";\n\n/**\n * Returns true if the given Node is a TemplateLiteralTypeNode\n */\nexport function isTemplateLiteralTypeNode(node: TS.Node, typescript: typeof TS): node is TS.TemplateLiteralTypeNode {\n\treturn typescript.SyntaxKind.TemplateLiteralType != null && node.kind === typescript.SyntaxKind.TemplateLiteralType;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkTemplateLiteralTypeSpan({node, continuation}: ReferenceVisitorOptions<TS.TemplateLiteralTypeSpan>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\n\tif (node.type != null) {\n\t\treferencedIdentifiers.push(...continuation(node.type));\n\t}\n\n\treturn referencedIdentifiers;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkTypeReferenceNode({node, continuation}: ReferenceVisitorOptions<TS.TypeReferenceNode>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\n\tif (node.typeName != null) {\n\t\treferencedIdentifiers.push(...continuation(node.typeName));\n\t}\n\n\tif (node.typeArguments != null) {\n\t\tfor (const typeArgument of node.typeArguments) {\n\t\t\treferencedIdentifiers.push(...continuation(typeArgument));\n\t\t}\n\t}\n\n\treturn referencedIdentifiers;\n}\n","import type {ReferenceVisitorOptions} from \"../reference-visitor-options.js\";\nimport type {TS} from \"../../../../../../../type/ts.js\";\n\nexport function checkImportEqualsDeclaration({node, continuation, markIdentifiersAsReferenced}: ReferenceVisitorOptions<TS.ImportEqualsDeclaration>): string[] {\n\tconst referencedIdentifiers: string[] = [];\n\tif (node.moduleReference != null) {\n\t\treferencedIdentifiers.push(...continuation(node.moduleReference));\n\t}\n\n\tmarkIdentifiersAsReferenced(node, ...referencedIdentifiers);\n\treturn referencedIdentifiers;\n}\n","import type {IsReferencedOptions} from \"./is-referenced-options.js\";\nimport type {ReferenceVisitorOptions} from \"./reference-visitor-options.js\";\nimport {checkClassDeclaration} from \"./visitor/check-class-declaration.js\";\nimport {checkIdentifier} from \"./visitor/check-identifier.js\";\nimport {checkClassExpression} from \"./visitor/check-class-expression.js\";\nimport {checkInterfaceDeclaration} from \"./visitor/check-interface-declaration.js\";\nimport {checkEnumDeclaration} from \"./visitor/check-enum-declaration.js\";\nimport {checkTypeAliasDeclaration} from \"./visitor/check-type-alias-declaration.js\";\nimport {checkFunctionDeclaration} from \"./visitor/check-function-declaration.js\";\nimport {checkFunctionExpression} from \"./visitor/check-function-expression.js\";\nimport {checkVariableDeclaration} from \"./visitor/check-variable-declaration.js\";\nimport {checkExportSpecifier} from \"./visitor/check-export-specifier.js\";\nimport type {NodeToReferencedIdentifiersCache} from \"../cache/reference-cache.js\";\nimport {checkArrayBindingPattern} from \"./visitor/check-array-binding-pattern.js\";\nimport {checkObjectBindingPattern} from \"./visitor/check-object-binding-pattern.js\";\nimport {checkBindingElement} from \"./visitor/check-binding-element.js\";\nimport {checkMethodDeclaration} from \"./visitor/check-method-declaration.js\";\nimport {checkMethodSignature} from \"./visitor/check-method-signature.js\";\nimport {checkPropertyDeclaration} from \"./visitor/check-property-declaration.js\";\nimport {checkPropertySignature} from \"./visitor/check-property-signature.js\";\nimport {checkGetAccessorDeclaration} from \"./visitor/check-get-accessor-declaration.js\";\nimport {checkSetAccessorDeclaration} from \"./visitor/check-set-accessor-declaration.js\";\nimport {checkParameterDeclaration} from \"./visitor/check-parameter-declaration.js\";\nimport {checkVariableDeclarationList} from \"./visitor/check-variable-declaration-list.js\";\nimport {checkVariableStatement} from \"./visitor/check-variable-statement.js\";\nimport {checkExportDeclaration} from \"./visitor/check-export-declaration.js\";\nimport {checkExportAssignment} from \"./visitor/check-export-assignment.js\";\nimport {checkModuleDeclaration} from \"./visitor/check-module-declaration.js\";\nimport {checkIndexedAccessTypeNode} from \"./visitor/check-indexed-access-type-node.js\";\nimport {checkPropertyAccessExpression} from \"./visitor/check-property-access-expression.js\";\nimport {checkQualifiedName} from \"./visitor/check-qualified-name.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {nodeContainsChild} from \"../../../util/node-contains-child.js\";\nimport {hasExportModifier} from \"../../../util/modifier-util.js\";\nimport {traceIdentifiers} from \"../../trace-identifiers/trace-identifiers.js\";\nimport {checkTemplateLiteralTypeNode} from \"./visitor/check-template-literal-type-node.js\";\nimport {isTemplateLiteralTypeNode} from \"../../../../../../util/predicates/predicates.js\";\nimport {checkTemplateLiteralTypeSpan} from \"./visitor/check-template-literal-type-span.js\";\nimport {checkTypeReferenceNode} from \"./visitor/check-type-reference-node.js\";\nimport {isNodeInternalAlias} from \"../../../util/node-util.js\";\nimport {getParentNode} from \"../../../util/get-parent-node.js\";\nimport {checkImportEqualsDeclaration} from \"./visitor/check-import-equals-declaration.js\";\n\n/**\n * Visits the given node. Returns true if it references the node to check for references, and false otherwise\n */\nfunction checkNode({node, originalNode, ...options}: ReferenceVisitorOptions): string[] {\n\tif (options.typescript.isArrayBindingPattern(node)) {\n\t\treturn checkArrayBindingPattern({node, originalNode, ...options});\n\t} else if (options.typescript.isObjectBindingPattern(node)) {\n\t\treturn checkObjectBindingPattern({node, originalNode, ...options});\n\t} else if (options.typescript.isParameter(node)) {\n\t\treturn checkParameterDeclaration({node, originalNode, ...options});\n\t} else if (options.typescript.isQualifiedName(node)) {\n\t\treturn checkQualifiedName({node, originalNode, ...options});\n\t} else if (options.typescript.isBindingElement(node)) {\n\t\treturn checkBindingElement({node, originalNode, ...options});\n\t} else if (options.typescript.isMethodDeclaration(node)) {\n\t\treturn checkMethodDeclaration({node, originalNode, ...options});\n\t} else if (options.typescript.isMethodSignature(node)) {\n\t\treturn checkMethodSignature({node, originalNode, ...options});\n\t} else if (options.typescript.isGetAccessorDeclaration(node)) {\n\t\treturn checkGetAccessorDeclaration({node, originalNode, ...options});\n\t} else if (options.typescript.isSetAccessorDeclaration(node)) {\n\t\treturn checkSetAccessorDeclaration({node, originalNode, ...options});\n\t} else if (options.typescript.isPropertyAccessExpression(node)) {\n\t\treturn checkPropertyAccessExpression({node, originalNode, ...options});\n\t} else if (options.typescript.isPropertyDeclaration(node)) {\n\t\treturn checkPropertyDeclaration({node, originalNode, ...options});\n\t} else if (options.typescript.isPropertySignature(node)) {\n\t\treturn checkPropertySignature({node, originalNode, ...options});\n\t} else if (options.typescript.isClassDeclaration(node)) {\n\t\treturn checkClassDeclaration({node, originalNode, ...options});\n\t} else if (options.typescript.isClassExpression(node)) {\n\t\treturn checkClassExpression({node, originalNode, ...options});\n\t} else if (options.typescript.isFunctionDeclaration(node)) {\n\t\treturn checkFunctionDeclaration({node, originalNode, ...options});\n\t} else if (options.typescript.isFunctionExpression(node)) {\n\t\treturn checkFunctionExpression({node, originalNode, ...options});\n\t} else if (options.typescript.isInterfaceDeclaration(node)) {\n\t\treturn checkInterfaceDeclaration({node, originalNode, ...options});\n\t} else if (options.typescript.isEnumDeclaration(node)) {\n\t\treturn checkEnumDeclaration({node, originalNode, ...options});\n\t} else if (options.typescript.isTypeAliasDeclaration(node)) {\n\t\treturn checkTypeAliasDeclaration({node, originalNode, ...options});\n\t} else if (options.typescript.isIndexedAccessTypeNode(node)) {\n\t\treturn checkIndexedAccessTypeNode({node, originalNode, ...options});\n\t} else if (options.typescript.isVariableStatement(node)) {\n\t\treturn checkVariableStatement({node, originalNode, ...options});\n\t} else if (options.typescript.isVariableDeclarationList(node)) {\n\t\treturn checkVariableDeclarationList({node, originalNode, ...options});\n\t} else if (options.typescript.isVariableDeclaration(node)) {\n\t\treturn checkVariableDeclaration({node, originalNode, ...options});\n\t} else if (options.typescript.isExportDeclaration(node)) {\n\t\treturn checkExportDeclaration({node, originalNode, ...options});\n\t} else if (options.typescript.isImportEqualsDeclaration(node)) {\n\t\treturn checkImportEqualsDeclaration({node, originalNode, ...options});\n\t} else if (options.typescript.isExportAssignment(node)) {\n\t\treturn checkExportAssignment({node, originalNode, ...options});\n\t} else if (options.typescript.isExportSpecifier(node)) {\n\t\treturn checkExportSpecifier({node, originalNode, ...options});\n\t} else if (options.typescript.isModuleDeclaration(node)) {\n\t\treturn checkModuleDeclaration({node, originalNode, ...options});\n\t} else if (options.typescript.isIdentifier(node)) {\n\t\treturn checkIdentifier({node, originalNode, ...options});\n\t} else if (isTemplateLiteralTypeNode(node, options.typescript)) {\n\t\treturn checkTemplateLiteralTypeNode({node, originalNode, ...options});\n\t} else if (options.typescript.isTemplateLiteralTypeSpan?.(node)) {\n\t\treturn checkTemplateLiteralTypeSpan({node, originalNode, ...options});\n\t} else if (options.typescript.isTypeReferenceNode(node)) {\n\t\treturn checkTypeReferenceNode({node, originalNode, ...options});\n\t} else {\n\t\treturn options.childContinuation(node);\n\t}\n}\n\n/**\n * Visits the given node. Returns true if it references the node to check for references, and false otherwise\n */\nfunction getReferencingNodes(originalNode: TS.Node, identifiers: Set<string>, cache: NodeToReferencedIdentifiersCache): TS.Node[] {\n\t// TODO: Can all of this be replaced by typescript.FindAllReferences.Core.isSymbolReferencedInFile(identifier, typeChecker, sourceFile); ?\n\tconst referencingNodes = new Set<TS.Node>();\n\n\tfor (const identifier of identifiers) {\n\t\tconst nodesReferencingIdentifier = cache.get(identifier);\n\t\tif (nodesReferencingIdentifier != null) {\n\t\t\tfor (const node of nodesReferencingIdentifier) {\n\t\t\t\tif (node === originalNode || nodeContainsChild(originalNode, node)) continue;\n\t\t\t\treferencingNodes.add(node);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn [...referencingNodes];\n}\n\n/**\n * Returns true if the given Node is referenced within the given options\n */\nexport function isReferenced<T extends TS.Node>({seenNodes = new Set(), ...options}: IsReferencedOptions<T>): boolean {\n\t// Exports are always referenced and should never be removed, unless located within module declarations that themselves will be removed\n\tif (\n\t\toptions.typescript.isExportDeclaration(options.node) ||\n\t\toptions.typescript.isExportSpecifier(options.node) ||\n\t\toptions.typescript.isExportAssignment(options.node) ||\n\t\thasExportModifier(options.node, options.typescript) ||\n\t\t(options.typescript.isModuleDeclaration(options.node) && !isNodeInternalAlias(options.node, options.typescript))\n\t) {\n\t\tconst parentNode = getParentNode(options.node);\n\t\tif (parentNode == null || !options.typescript.isModuleBlock(parentNode)) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\treturn isReferenced({...options, seenNodes, node: getParentNode(parentNode)});\n\t\t}\n\t}\n\n\t// If it has been computed previously, use the cached result\n\tif (options.referenceCache.has(options.node)) {\n\t\treturn options.referenceCache.get(options.node)!;\n\t}\n\n\t// Assume that the node is referenced if we've seen it before\n\tif (seenNodes.has(options.node)) {\n\t\treturn true;\n\t} else {\n\t\t// Otherwise, add the node to the Set of seen nodes\n\t\tseenNodes.add(options.node);\n\t}\n\n\t// Collect the identifier for the node\n\tconst identifiers = traceIdentifiers(options);\n\n\t// If there are no identifiers for the node, include it since it cannot be referenced.\n\tif (identifiers.size === 0) {\n\t\treturn true;\n\t}\n\n\t// Collect all nodes that references the given node\n\tconst referencingNodes = collectReferences(options, identifiers);\n\n\t// Compute the result\n\tconst result =\n\t\treferencingNodes.length > 0 && referencingNodes.some(referencingNode => isReferenced({...options, seenNodes, node: referencingNode, referencedNode: options.node}));\n\n\t// Cache the result\n\toptions.referenceCache.set(options.node, result);\n\treturn result;\n}\n\nfunction collectReferences<T extends TS.Node>(options: IsReferencedOptions<T>, identifiers: Set<string>): TS.Node[] {\n\tlet nodeToReferencedIdentifiersCache = options.sourceFileToNodeToReferencedIdentifiersCache.get(options.sourceFile.fileName);\n\n\t// If it has been computed for the SourceFile previously, use it.\n\tif (nodeToReferencedIdentifiersCache == null) {\n\t\t// Otherwise, compute it\n\t\tnodeToReferencedIdentifiersCache = new Map();\n\t\toptions.sourceFileToNodeToReferencedIdentifiersCache.set(options.sourceFile.fileName, nodeToReferencedIdentifiersCache);\n\n\t\tconst visitorOptions = {\n\t\t\t...options,\n\t\t\toriginalNode: options.node,\n\t\t\tmarkIdentifiersAsReferenced(fromNode: TS.Node, ...referencedIdentifiers: string[]) {\n\t\t\t\tfor (const identifier of referencedIdentifiers) {\n\t\t\t\t\tlet matchingSet = nodeToReferencedIdentifiersCache!.get(identifier);\n\t\t\t\t\tif (matchingSet == null) {\n\t\t\t\t\t\tmatchingSet = new Set();\n\t\t\t\t\t\tnodeToReferencedIdentifiersCache!.set(identifier, matchingSet);\n\t\t\t\t\t}\n\t\t\t\t\tmatchingSet.add(fromNode);\n\t\t\t\t}\n\t\t\t},\n\t\t\tchildContinuation: (node: TS.Node): string[] => {\n\t\t\t\tconst referencedIdentifiers: string[] = [];\n\t\t\t\toptions.typescript.forEachChild<void>(node, nextNode => {\n\t\t\t\t\treferencedIdentifiers.push(...checkNode({...visitorOptions, node: nextNode}));\n\t\t\t\t});\n\t\t\t\treturn referencedIdentifiers;\n\t\t\t},\n\t\t\tcontinuation: (node: TS.Node): string[] => checkNode({...visitorOptions, node})\n\t\t};\n\n\t\toptions.typescript.forEachChild<void>(options.sourceFile, node => {\n\t\t\tcheckNode({...visitorOptions, node});\n\t\t});\n\t}\n\n\treturn getReferencingNodes(options.node, identifiers, nodeToReferencedIdentifiersCache);\n}\n","import type {TreeShakerVisitorOptions} from \"../tree-shaker-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {getModifierLikes} from \"../../../util/node-util.js\";\n\nexport function visitClassDeclaration({node, continuation, factory}: TreeShakerVisitorOptions<TS.ClassDeclaration>): TS.ClassDeclaration | undefined {\n\tconst nameContinuationResult = node.name == null ? undefined : continuation(node.name);\n\tif (nameContinuationResult == null) {\n\t\treturn undefined;\n\t}\n\n\tconst modifierLikes = getModifierLikes(node);\n\treturn node.name === nameContinuationResult\n\t\t? node\n\t\t: factory.updateClassDeclaration(node, modifierLikes, nameContinuationResult, node.typeParameters, node.heritageClauses, node.members);\n}\n","import type {TreeShakerVisitorOptions} from \"../tree-shaker-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {getModifierLikes} from \"../../../util/node-util.js\";\n\nexport function visitClassExpression({node, continuation, factory}: TreeShakerVisitorOptions<TS.ClassExpression>): TS.ClassExpression | undefined {\n\tconst nameContinuationResult = node.name == null ? undefined : continuation(node.name);\n\tif (nameContinuationResult == null) {\n\t\treturn undefined;\n\t}\n\tconst modifierLikes = getModifierLikes(node);\n\n\treturn node.name === nameContinuationResult\n\t\t? node\n\t\t: factory.updateClassExpression(node, modifierLikes, nameContinuationResult, node.typeParameters, node.heritageClauses, node.members);\n}\n","import type {TreeShakerVisitorOptions} from \"../tree-shaker-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {getModifierLikes} from \"../../../util/node-util.js\";\n\nexport function visitFunctionDeclaration({node, continuation, factory}: TreeShakerVisitorOptions<TS.FunctionDeclaration>): TS.FunctionDeclaration | undefined {\n\tconst nameContinuationResult = node.name == null ? undefined : continuation(node.name);\n\tif (nameContinuationResult == null) {\n\t\treturn undefined;\n\t}\n\treturn node.name === nameContinuationResult\n\t\t? node\n\t\t: factory.updateFunctionDeclaration(node, getModifierLikes(node), node.asteriskToken, nameContinuationResult, node.typeParameters, node.parameters, node.type, node.body);\n}\n","import type {TreeShakerVisitorOptions} from \"../tree-shaker-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\n\nexport function visitFunctionExpression({node, continuation, factory}: TreeShakerVisitorOptions<TS.FunctionExpression>): TS.FunctionExpression | undefined {\n\tconst nameContinuationResult = node.name == null ? undefined : continuation(node.name);\n\tif (nameContinuationResult == null) {\n\t\treturn undefined;\n\t}\n\treturn node.name === nameContinuationResult\n\t\t? node\n\t\t: factory.updateFunctionExpression(node, node.modifiers, node.asteriskToken, nameContinuationResult, node.typeParameters, node.parameters, node.type, node.body);\n}\n","import type {TreeShakerVisitorOptions} from \"../tree-shaker-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\n\nexport function visitEnumDeclaration({node, continuation, factory}: TreeShakerVisitorOptions<TS.EnumDeclaration>): TS.EnumDeclaration | undefined {\n\tconst nameContinuationResult = continuation(node.name);\n\tif (nameContinuationResult == null) {\n\t\treturn undefined;\n\t}\n\treturn node.name === nameContinuationResult ? node : factory.updateEnumDeclaration(node, node.modifiers, nameContinuationResult, node.members);\n}\n","import type {TreeShakerVisitorOptions} from \"../tree-shaker-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\n\nexport function visitInterfaceDeclaration(options: TreeShakerVisitorOptions<TS.InterfaceDeclaration>): TS.InterfaceDeclaration | undefined {\n\tconst {node, continuation, factory} = options;\n\tconst nameContinuationResult = continuation(node.name);\n\tif (nameContinuationResult == null) {\n\t\treturn undefined;\n\t}\n\treturn node.name === nameContinuationResult\n\t\t? node\n\t\t: preserveMeta(factory.updateInterfaceDeclaration(node, node.modifiers, nameContinuationResult, node.typeParameters, node.heritageClauses, node.members), node, options);\n}\n","import type {TreeShakerVisitorOptions} from \"../tree-shaker-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\n\nexport function visitTypeAliasDeclaration({node, continuation, factory}: TreeShakerVisitorOptions<TS.TypeAliasDeclaration>): TS.TypeAliasDeclaration | undefined {\n\tconst nameContinuationResult = continuation(node.name);\n\tif (nameContinuationResult == null) {\n\t\treturn undefined;\n\t}\n\treturn node.name === nameContinuationResult ? node : factory.updateTypeAliasDeclaration(node, node.modifiers, nameContinuationResult, node.typeParameters, node.type);\n}\n","import type {TreeShakerVisitorOptions} from \"../tree-shaker-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {isNodeInternalAlias} from \"../../../util/node-util.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\n\nexport function visitModuleDeclaration(options: TreeShakerVisitorOptions<TS.ModuleDeclaration>): TS.ModuleDeclaration | undefined {\n\tconst {node, continuation, factory, typescript} = options;\n\n\tif (!isNodeInternalAlias(node, typescript)) {\n\t\treturn node;\n\t}\n\n\tconst nameContinuationResult = continuation(node.name);\n\tif (nameContinuationResult == null) {\n\t\treturn undefined;\n\t}\n\treturn node.name === nameContinuationResult ? node : preserveMeta(factory.updateModuleDeclaration(node, node.modifiers, nameContinuationResult, node.body), node, options);\n}\n","import type {TreeShakerVisitorOptions} from \"../tree-shaker-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\n\nexport function visitExportDeclaration({node}: TreeShakerVisitorOptions<TS.ExportDeclaration>): TS.ExportDeclaration | undefined {\n\treturn node;\n}\n","import type {TreeShakerVisitorOptions} from \"../tree-shaker-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\n\nexport function visitExportAssignment({node}: TreeShakerVisitorOptions<TS.ExportAssignment>): TS.ExportAssignment | undefined {\n\treturn node;\n}\n","import type {TreeShakerVisitorOptions} from \"../tree-shaker-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\n\nexport function visitVariableStatement({node, continuation, factory}: TreeShakerVisitorOptions<TS.VariableStatement>): TS.VariableStatement | undefined {\n\tconst variableDeclarationListContinuationResult = continuation(node.declarationList);\n\n\tif (variableDeclarationListContinuationResult == null) {\n\t\treturn undefined;\n\t}\n\n\treturn factory.updateVariableStatement(node, node.modifiers, variableDeclarationListContinuationResult);\n}\n","import type {TreeShakerVisitorOptions} from \"../tree-shaker-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\n\nexport function visitVariableDeclarationList({node, continuation, factory}: TreeShakerVisitorOptions<TS.VariableDeclarationList>): TS.VariableDeclarationList | undefined {\n\tconst filteredVariableDeclarations: TS.VariableDeclaration[] = [];\n\tfor (const variableDeclaration of node.declarations) {\n\t\tconst variableDeclarationContinuationResult = continuation(variableDeclaration);\n\n\t\tif (variableDeclarationContinuationResult != null) {\n\t\t\tfilteredVariableDeclarations.push(variableDeclarationContinuationResult);\n\t\t}\n\t}\n\tif (filteredVariableDeclarations.length < 1) {\n\t\treturn undefined;\n\t}\n\n\treturn factory.updateVariableDeclarationList(node, filteredVariableDeclarations);\n}\n","import type {TreeShakerVisitorOptions} from \"../tree-shaker-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\n\nexport function visitVariableDeclaration({node, continuation, factory}: TreeShakerVisitorOptions<TS.VariableDeclaration>): TS.VariableDeclaration | undefined {\n\tconst nameContinuationResult = continuation(node.name);\n\tif (nameContinuationResult == null) {\n\t\treturn undefined;\n\t}\n\n\treturn node.name === nameContinuationResult ? node : factory.updateVariableDeclaration(node, nameContinuationResult, node.exclamationToken, node.type, node.initializer);\n}\n","import type {TreeShakerVisitorOptions} from \"../tree-shaker-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\n\nexport function visitImportDeclaration({node, continuation, factory}: TreeShakerVisitorOptions<TS.ImportDeclaration>): TS.ImportDeclaration | undefined {\n\tif (node.importClause == null) return undefined;\n\tconst importClauseContinuationResult = continuation(node.importClause);\n\n\tif (importClauseContinuationResult == null) {\n\t\treturn undefined;\n\t}\n\n\treturn importClauseContinuationResult === node.importClause\n\t\t? node\n\t\t: factory.updateImportDeclaration(node, node.modifiers, importClauseContinuationResult, node.moduleSpecifier, node.assertClause);\n}\n","import type {TreeShakerVisitorOptions} from \"../tree-shaker-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\n\nexport function visitImportSpecifier({node, continuation, factory}: TreeShakerVisitorOptions<TS.ImportSpecifier>): TS.ImportSpecifier | undefined {\n\tconst nameContinuationResult = continuation(node.name);\n\tif (nameContinuationResult == null) {\n\t\treturn undefined;\n\t}\n\n\treturn node.name === nameContinuationResult ? node : factory.updateImportSpecifier(node, false, node.propertyName, nameContinuationResult);\n}\n","import type {TreeShakerVisitorOptions} from \"../tree-shaker-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\n\nexport function visitImportClause({node, continuation, factory}: TreeShakerVisitorOptions<TS.ImportClause>): TS.ImportClause | undefined {\n\tconst namedBindingsContinuationResult = node.namedBindings == null ? undefined : continuation(node.namedBindings);\n\tconst nameContinuationResult = node.name == null ? undefined : continuation(node.name);\n\n\tconst removeNamedBindings = namedBindingsContinuationResult == null;\n\tconst removeName = nameContinuationResult == null;\n\n\tif (removeNamedBindings && removeName) {\n\t\treturn undefined;\n\t}\n\n\treturn factory.updateImportClause(node, node.isTypeOnly, removeName ? undefined : node.name, removeNamedBindings ? undefined : namedBindingsContinuationResult);\n}\n","import type {TreeShakerVisitorOptions} from \"../tree-shaker-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\n\nexport function visitNamedImports({node, continuation, factory}: TreeShakerVisitorOptions<TS.NamedImports>): TS.NamedImports | undefined {\n\tconst filteredSpecifiers: TS.ImportSpecifier[] = [];\n\tfor (const importSpecifier of node.elements) {\n\t\tconst importSpecifierContinuationResult = continuation(importSpecifier);\n\n\t\tif (importSpecifierContinuationResult != null) {\n\t\t\tfilteredSpecifiers.push(importSpecifierContinuationResult);\n\t\t}\n\t}\n\tif (filteredSpecifiers.length < 1) {\n\t\treturn undefined;\n\t}\n\n\treturn factory.updateNamedImports(node, filteredSpecifiers);\n}\n","import type {TreeShakerVisitorOptions} from \"../tree-shaker-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\n\nexport function visitNamespaceImport({node, continuation, factory}: TreeShakerVisitorOptions<TS.NamespaceImport>): TS.NamespaceImport | undefined {\n\tconst nameContinuationResult = continuation(node.name);\n\tif (nameContinuationResult == null) {\n\t\treturn undefined;\n\t}\n\treturn node.name === nameContinuationResult ? node : factory.updateNamespaceImport(node, nameContinuationResult);\n}\n","import type {TreeShakerVisitorOptions} from \"../tree-shaker-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\nimport {preserveMeta} from \"../../../util/clone-node-with-meta.js\";\n\nexport function visitImportEqualsDeclaration(options: TreeShakerVisitorOptions<TS.ImportEqualsDeclaration>): TS.ImportEqualsDeclaration | undefined {\n\tconst {node, continuation, factory} = options;\n\tconst nameContinuationResult = node.name == null ? undefined : continuation(node.name);\n\n\tif (nameContinuationResult == null) {\n\t\treturn undefined;\n\t}\n\treturn node.name === nameContinuationResult\n\t\t? node\n\t\t: preserveMeta(factory.updateImportEqualsDeclaration(node, node.modifiers, node.isTypeOnly, nameContinuationResult, node.moduleReference), node, options);\n}\n","import type {TreeShakerVisitorOptions} from \"../tree-shaker-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\n\nexport function visitArrayBindingPattern({node, continuation, factory}: TreeShakerVisitorOptions<TS.ArrayBindingPattern>): TS.ArrayBindingPattern | undefined {\n\tconst filteredArrayBindingElements: TS.ArrayBindingElement[] = [];\n\tfor (const arrayBindingElement of node.elements) {\n\t\tconst arrayBindingElementContinuationResult = continuation(arrayBindingElement);\n\n\t\tif (arrayBindingElementContinuationResult != null) {\n\t\t\tfilteredArrayBindingElements.push(arrayBindingElementContinuationResult);\n\t\t}\n\t}\n\tif (filteredArrayBindingElements.length < 1) {\n\t\treturn undefined;\n\t}\n\n\treturn factory.updateArrayBindingPattern(node, filteredArrayBindingElements);\n}\n","import type {TreeShakerVisitorOptions} from \"../tree-shaker-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\n\nexport function visitObjectBindingPattern({node, continuation, factory}: TreeShakerVisitorOptions<TS.ObjectBindingPattern>): TS.ObjectBindingPattern | undefined {\n\tconst filteredObjectBindingElements: TS.BindingElement[] = [];\n\tfor (const objectBindingElement of node.elements) {\n\t\tconst objectBindingElementContinuationResult = continuation(objectBindingElement);\n\n\t\tif (objectBindingElementContinuationResult != null) {\n\t\t\tfilteredObjectBindingElements.push(objectBindingElementContinuationResult);\n\t\t}\n\t}\n\tif (filteredObjectBindingElements.length < 1) {\n\t\treturn undefined;\n\t}\n\n\treturn factory.updateObjectBindingPattern(node, filteredObjectBindingElements);\n}\n","import type {TreeShakerVisitorOptions} from \"../tree-shaker-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\n\nexport function visitBindingElement({node, continuation, factory}: TreeShakerVisitorOptions<TS.BindingElement>): TS.BindingElement | undefined {\n\tconst nameContinuationResult = continuation(node.name);\n\tif (nameContinuationResult == null) {\n\t\treturn undefined;\n\t}\n\n\treturn node.name === nameContinuationResult ? node : factory.updateBindingElement(node, node.dotDotDotToken, node.propertyName, nameContinuationResult, node.initializer);\n}\n","import type {TreeShakerVisitorOptions} from \"../tree-shaker-visitor-options.js\";\nimport type {TS} from \"../../../../../../type/ts.js\";\n\nexport function visitIdentifier({node, isReferenced}: TreeShakerVisitorOptions<TS.Identifier>): TS.Identifier | undefined {\n\tif (node != null && isReferenced(node)) {\n\t\treturn node;\n\t}\n\treturn undefined;\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport {hasExportModifier} from \"../../../util/modifier-util.js\";\nimport {visitClassDeclaration} from \"./visit-class-declaration.js\";\nimport {visitClassExpression} from \"./visit-class-expression.js\";\nimport {visitFunctionDeclaration} from \"./visit-function-declaration.js\";\nimport {visitFunctionExpression} from \"./visit-function-expression.js\";\nimport {visitEnumDeclaration} from \"./visit-enum-declaration.js\";\nimport {visitInterfaceDeclaration} from \"./visit-interface-declaration.js\";\nimport {visitTypeAliasDeclaration} from \"./visit-type-alias-declaration.js\";\nimport {visitModuleDeclaration} from \"./visit-module-declaration.js\";\nimport {visitExportDeclaration} from \"./visit-export-declaration.js\";\nimport {visitExportAssignment} from \"./visit-export-assignment.js\";\nimport {visitVariableStatement} from \"./visit-variable-statement.js\";\nimport {visitVariableDeclarationList} from \"./visit-variable-declaration-list.js\";\nimport {visitVariableDeclaration} from \"./visit-variable-declaration.js\";\nimport {visitImportDeclaration} from \"./visit-import-declaration.js\";\nimport {visitImportSpecifier} from \"./visit-import-specifier.js\";\nimport {visitImportClause} from \"./visit-import-clause.js\";\nimport {visitNamedImports} from \"./visit-named-imports.js\";\nimport {visitNamespaceImport} from \"./visit-namespace-import.js\";\nimport {visitImportEqualsDeclaration} from \"./visit-import-equals-declaration.js\";\nimport {visitArrayBindingPattern} from \"./visit-array-binding-pattern.js\";\nimport {visitObjectBindingPattern} from \"./visit-object-binding-pattern.js\";\nimport {visitBindingElement} from \"./visit-binding-element.js\";\nimport {visitIdentifier} from \"./visit-identifier.js\";\nimport type {TreeShakerVisitorOptions} from \"../tree-shaker-visitor-options.js\";\n\nexport function visitNode(options: TreeShakerVisitorOptions<TS.Node>): TS.Node | undefined {\n\tconst {node, typescript} = options;\n\tif (hasExportModifier(node, typescript)) return node;\n\n\tif (typescript.isClassDeclaration(node)) {\n\t\treturn visitClassDeclaration({...options, node});\n\t} else if (typescript.isClassExpression(node)) {\n\t\treturn visitClassExpression({...options, node});\n\t} else if (typescript.isFunctionDeclaration(node)) {\n\t\treturn visitFunctionDeclaration({...options, node});\n\t} else if (typescript.isFunctionExpression(node)) {\n\t\treturn visitFunctionExpression({...options, node});\n\t} else if (typescript.isEnumDeclaration(node)) {\n\t\treturn visitEnumDeclaration({...options, node});\n\t} else if (typescript.isInterfaceDeclaration(node)) {\n\t\treturn visitInterfaceDeclaration({...options, node});\n\t} else if (typescript.isTypeAliasDeclaration(node)) {\n\t\treturn visitTypeAliasDeclaration({...options, node});\n\t} else if (typescript.isModuleDeclaration(node)) {\n\t\treturn visitModuleDeclaration({...options, node});\n\t} else if (typescript.isExportDeclaration(node)) {\n\t\treturn visitExportDeclaration({...options, node});\n\t} else if (typescript.isExportAssignment(node)) {\n\t\treturn visitExportAssignment({...options, node});\n\t} else if (typescript.isVariableStatement(node)) {\n\t\treturn visitVariableStatement({...options, node});\n\t} else if (typescript.isVariableDeclarationList(node)) {\n\t\treturn visitVariableDeclarationList({...options, node});\n\t} else if (typescript.isVariableDeclaration(node)) {\n\t\treturn visitVariableDeclaration({...options, node});\n\t} else if (typescript.isImportDeclaration(node)) {\n\t\treturn visitImportDeclaration({...options, node});\n\t} else if (typescript.isImportSpecifier(node)) {\n\t\treturn visitImportSpecifier({...options, node});\n\t} else if (typescript.isImportClause(node)) {\n\t\treturn visitImportClause({...options, node});\n\t} else if (typescript.isNamedImports(node)) {\n\t\treturn visitNamedImports({...options, node});\n\t} else if (typescript.isNamespaceImport(node)) {\n\t\treturn visitNamespaceImport({...options, node});\n\t} else if (typescript.isImportEqualsDeclaration(node)) {\n\t\treturn visitImportEqualsDeclaration({...options, node});\n\t} else if (typescript.isArrayBindingPattern(node)) {\n\t\treturn visitArrayBindingPattern({...options, node});\n\t} else if (typescript.isObjectBindingPattern(node)) {\n\t\treturn visitObjectBindingPattern({...options, node});\n\t} else if (typescript.isBindingElement(node)) {\n\t\treturn visitBindingElement({...options, node});\n\t} else if (typescript.isIdentifier(node)) {\n\t\treturn visitIdentifier({...options, node});\n\t} else {\n\t\t// Fall back to dropping the node\n\t\treturn undefined;\n\t}\n}\n","import type {SourceFileBundlerVisitorOptions} from \"../source-file-bundler/source-file-bundler-visitor-options.js\";\nimport type {TS} from \"../../../../../type/ts.js\";\nimport {isReferenced} from \"../reference/is-referenced/is-referenced.js\";\nimport {shouldDebugMetrics, shouldDebugSourceFile} from \"../../../../../util/is-debug/should-debug.js\";\nimport {logMetrics} from \"../../../../../util/logging/log-metrics.js\";\nimport {logTransformer} from \"../../../../../util/logging/log-transformer.js\";\nimport {preserveMeta} from \"../../util/clone-node-with-meta.js\";\nimport {visitNode} from \"./visitor/visit-node.js\";\n\nexport function treeShaker(options: SourceFileBundlerVisitorOptions): TS.SourceFile {\n\tconst {typescript, context, sourceFile, pluginOptions, printer} = options;\n\n\tconst fullBenchmark = shouldDebugMetrics(pluginOptions.debug, sourceFile) ? logMetrics(`Tree-shaking`, sourceFile.fileName) : undefined;\n\n\tconst transformationLog = shouldDebugSourceFile(pluginOptions.debug, sourceFile) ? logTransformer(\"Tree-shaking\", sourceFile, printer) : undefined;\n\n\t// Prepare some VisitorOptions\n\tconst visitorOptions = {\n\t\t...options,\n\t\ttreeshakenCommentRanges: [],\n\t\tisReferenced: <U extends TS.Node>(node: U): boolean => isReferenced({...visitorOptions, node}),\n\t\tcontinuation: <U extends TS.Node>(node: U): U | undefined => visitNode({...visitorOptions, node}) as U | undefined\n\t};\n\n\tconst updatedSourceFile = preserveMeta(typescript.visitEachChild(sourceFile, visitorOptions.continuation, context), sourceFile, options);\n\n\ttransformationLog?.finish(updatedSourceFile);\n\tfullBenchmark?.finish();\n\n\treturn updatedSourceFile;\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {ToExportDeclarationTransformerVisitorOptions} from \"../to-export-declaration-transformer-visitor-options.js\";\nimport {generateIdentifierName} from \"../../../util/generate-identifier-name.js\";\nimport {createExportSpecifierFromNameAndModifiers} from \"../../../util/create-export-specifier-from-name-and-modifiers.js\";\nimport {preserveMeta, preserveParents, preserveSymbols} from \"../../../util/clone-node-with-meta.js\";\nimport {hasExportModifier} from \"../../../util/modifier-util.js\";\nimport {getModifierLikes, getModifiers} from \"../../../util/node-util.js\";\n\nexport function visitClassDeclaration(options: ToExportDeclarationTransformerVisitorOptions<TS.ClassDeclaration>): TS.ClassDeclaration {\n\tconst {node, factory, typescript, appendNodes, sourceFile} = options;\n\t// If the node has no export modifier, leave it as it is\n\tif (!hasExportModifier(node, typescript)) return node;\n\n\tconst nameText = node.name == null ? generateIdentifierName(sourceFile.fileName, \"class\") : node.name.text;\n\tlet returnNode: TS.ClassDeclaration;\n\n\tconst {exportSpecifier} = createExportSpecifierFromNameAndModifiers({\n\t\t...options,\n\t\tname: nameText,\n\t\tmodifiers: getModifiers(node, typescript)\n\t});\n\n\t// Append an ExportDeclaration\n\tappendNodes(preserveParents(factory.createExportDeclaration(undefined, false, factory.createNamedExports([exportSpecifier])), {typescript}));\n\n\t// Update the name if it changed\n\tif (node.name != null && nameText === node.name.text) {\n\t\treturnNode = node;\n\t} else {\n\t\tconst modifierLikes = getModifierLikes(node);\n\t\treturnNode = preserveMeta(\n\t\t\tfactory.updateClassDeclaration(node, modifierLikes, factory.createIdentifier(nameText), node.typeParameters, node.heritageClauses, node.members),\n\t\t\tnode,\n\t\t\toptions\n\t\t);\n\t}\n\n\tconst propertyName = exportSpecifier.propertyName ?? exportSpecifier.name;\n\tpreserveSymbols(propertyName, returnNode, options);\n\n\treturn returnNode;\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {ToExportDeclarationTransformerVisitorOptions} from \"../to-export-declaration-transformer-visitor-options.js\";\nimport {generateIdentifierName} from \"../../../util/generate-identifier-name.js\";\nimport {createExportSpecifierFromNameAndModifiers} from \"../../../util/create-export-specifier-from-name-and-modifiers.js\";\nimport {preserveMeta, preserveParents, preserveSymbols} from \"../../../util/clone-node-with-meta.js\";\nimport {hasExportModifier} from \"../../../util/modifier-util.js\";\nimport {getModifierLikes, getModifiers} from \"../../../util/node-util.js\";\n\nexport function visitClassExpression(options: ToExportDeclarationTransformerVisitorOptions<TS.ClassExpression>): TS.ClassExpression {\n\tconst {node, factory, typescript, appendNodes, sourceFile} = options;\n\t// If the node has no export modifier, leave it as it is\n\tif (!hasExportModifier(node, typescript)) return node;\n\n\tconst nameText = node.name == null ? generateIdentifierName(sourceFile.fileName, \"class\") : node.name.text;\n\tlet returnNode: TS.ClassExpression;\n\n\tconst {exportSpecifier} = createExportSpecifierFromNameAndModifiers({...options, name: nameText, modifiers: getModifiers(node, typescript)});\n\n\t// Append an ExportDeclaration\n\tappendNodes(preserveParents(factory.createExportDeclaration(undefined, false, factory.createNamedExports([exportSpecifier])), {typescript}));\n\n\t// Update the name if it changed\n\tif (node.name != null && nameText === node.name.text) {\n\t\treturnNode = node;\n\t} else {\n\t\tconst modifierLikes = getModifierLikes(node);\n\t\treturnNode = preserveMeta(\n\t\t\tfactory.updateClassExpression(node, modifierLikes, factory.createIdentifier(nameText), node.typeParameters, node.heritageClauses, node.members),\n\t\t\tnode,\n\t\t\toptions\n\t\t);\n\t}\n\n\tconst propertyName = exportSpecifier.propertyName ?? exportSpecifier.name;\n\tpreserveSymbols(propertyName, returnNode, options);\n\n\treturn returnNode;\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {ToExportDeclarationTransformerVisitorOptions} from \"../to-export-declaration-transformer-visitor-options.js\";\nimport {generateIdentifierName} from \"../../../util/generate-identifier-name.js\";\nimport {createExportSpecifierFromNameAndModifiers} from \"../../../util/create-export-specifier-from-name-and-modifiers.js\";\nimport {preserveMeta, preserveParents, preserveSymbols} from \"../../../util/clone-node-with-meta.js\";\nimport {hasExportModifier} from \"../../../util/modifier-util.js\";\nimport {getModifierLikes} from \"../../../util/node-util.js\";\n\nexport function visitFunctionDeclaration(options: ToExportDeclarationTransformerVisitorOptions<TS.FunctionDeclaration>): TS.FunctionDeclaration {\n\tconst {node, factory, typescript, sourceFile, appendNodes} = options;\n\t// If the node has no export modifier, leave it as it is\n\tif (!hasExportModifier(node, typescript)) return node;\n\n\tconst nameText = node.name == null ? generateIdentifierName(sourceFile.fileName, \"function\") : node.name.text;\n\tlet returnNode: TS.FunctionDeclaration;\n\tconst {exportSpecifier} = createExportSpecifierFromNameAndModifiers({...options, name: nameText, modifiers: node.modifiers});\n\n\t// Append an ExportDeclaration\n\tappendNodes(preserveParents(factory.createExportDeclaration(undefined, false, factory.createNamedExports([exportSpecifier])), {typescript}));\n\n\t// Update the name if it changed\n\tif (node.name != null && nameText === node.name.text) {\n\t\treturnNode = node;\n\t} else {\n\t\tconst modifierLikes = getModifierLikes(node);\n\t\treturnNode = preserveMeta(\n\t\t\tfactory.updateFunctionDeclaration(node, modifierLikes, node.asteriskToken, factory.createIdentifier(nameText), node.typeParameters, node.parameters, node.type, node.body),\n\t\t\tnode,\n\t\t\toptions\n\t\t);\n\t}\n\n\tconst propertyName = exportSpecifier.propertyName ?? exportSpecifier.name;\n\tpreserveSymbols(propertyName, returnNode, options);\n\n\treturn returnNode;\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {ToExportDeclarationTransformerVisitorOptions} from \"../to-export-declaration-transformer-visitor-options.js\";\nimport {generateIdentifierName} from \"../../../util/generate-identifier-name.js\";\nimport {createExportSpecifierFromNameAndModifiers} from \"../../../util/create-export-specifier-from-name-and-modifiers.js\";\nimport {preserveMeta, preserveParents, preserveSymbols} from \"../../../util/clone-node-with-meta.js\";\nimport {hasExportModifier} from \"../../../util/modifier-util.js\";\n\nexport function visitFunctionExpression(options: ToExportDeclarationTransformerVisitorOptions<TS.FunctionExpression>): TS.FunctionExpression {\n\tconst {node, factory, typescript, sourceFile, appendNodes} = options;\n\t// If the node has no export modifier, leave it as it is\n\tif (!hasExportModifier(node, typescript)) return node;\n\n\tconst nameText = node.name == null ? generateIdentifierName(sourceFile.fileName, \"function\") : node.name.text;\n\tlet returnNode: TS.FunctionExpression;\n\tconst {exportSpecifier} = createExportSpecifierFromNameAndModifiers({...options, name: nameText, modifiers: node.modifiers});\n\n\t// Append an ExportDeclaration\n\tappendNodes(preserveParents(factory.createExportDeclaration(undefined, false, factory.createNamedExports([exportSpecifier])), {typescript}));\n\n\t// Update the name if it changed\n\tif (node.name != null && nameText === node.name.text) {\n\t\treturnNode = node;\n\t} else {\n\t\treturnNode = preserveMeta(\n\t\t\tfactory.updateFunctionExpression(node, node.modifiers, node.asteriskToken, factory.createIdentifier(nameText), node.typeParameters, node.parameters, node.type, node.body),\n\t\t\tnode,\n\t\t\toptions\n\t\t);\n\t}\n\n\tconst propertyName = exportSpecifier.propertyName ?? exportSpecifier.name;\n\tpreserveSymbols(propertyName, returnNode, options);\n\n\treturn returnNode;\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {ToExportDeclarationTransformerVisitorOptions} from \"../to-export-declaration-transformer-visitor-options.js\";\nimport {createExportSpecifierFromNameAndModifiers} from \"../../../util/create-export-specifier-from-name-and-modifiers.js\";\nimport {hasExportModifier} from \"../../../util/modifier-util.js\";\nimport {preserveParents, preserveSymbols} from \"../../../util/clone-node-with-meta.js\";\n\nexport function visitEnumDeclaration(options: ToExportDeclarationTransformerVisitorOptions<TS.EnumDeclaration>): TS.EnumDeclaration {\n\tconst {node, factory, typescript, appendNodes} = options;\n\t// If the node has no export modifier, leave it as it is\n\tif (!hasExportModifier(node, typescript)) return node;\n\n\tconst {exportSpecifier} = createExportSpecifierFromNameAndModifiers({...options, name: node.name.text, modifiers: node.modifiers});\n\n\t// Append an ExportDeclaration\n\tappendNodes(preserveParents(factory.createExportDeclaration(undefined, false, factory.createNamedExports([exportSpecifier])), {typescript}));\n\n\tconst propertyName = exportSpecifier.propertyName ?? exportSpecifier.name;\n\tpreserveSymbols(propertyName, node, options);\n\n\treturn node;\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {ToExportDeclarationTransformerVisitorOptions} from \"../to-export-declaration-transformer-visitor-options.js\";\nimport {createExportSpecifierFromNameAndModifiers} from \"../../../util/create-export-specifier-from-name-and-modifiers.js\";\nimport {hasExportModifier} from \"../../../util/modifier-util.js\";\nimport {traceIdentifiers} from \"../../trace-identifiers/trace-identifiers.js\";\nimport {preserveParents, preserveSymbols} from \"../../../util/clone-node-with-meta.js\";\n\nexport function visitVariableStatement(options: ToExportDeclarationTransformerVisitorOptions<TS.VariableStatement>): TS.VariableStatement {\n\tconst {node, factory, typescript, appendNodes} = options;\n\t// If the node has no export modifier, leave it as it is\n\tif (!hasExportModifier(node, typescript)) return node;\n\n\tfor (const declaration of node.declarationList.declarations) {\n\t\tconst identifiers = traceIdentifiers({...options, node: declaration});\n\n\t\tfor (const identifier of identifiers) {\n\t\t\tconst {exportSpecifier} = createExportSpecifierFromNameAndModifiers({\n\t\t\t\t...options,\n\t\t\t\tname: identifier,\n\t\t\t\tmodifiers: node.modifiers\n\t\t\t});\n\t\t\t// Append an ExportDeclaration\n\t\t\tappendNodes(preserveParents(factory.createExportDeclaration(undefined, false, factory.createNamedExports([exportSpecifier])), {typescript}));\n\n\t\t\tconst propertyName = exportSpecifier.propertyName ?? exportSpecifier.name;\n\t\t\tpreserveSymbols(propertyName, declaration, options);\n\t\t}\n\t}\n\n\treturn node;\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {ToExportDeclarationTransformerVisitorOptions} from \"../to-export-declaration-transformer-visitor-options.js\";\nimport {createExportSpecifierFromNameAndModifiers} from \"../../../util/create-export-specifier-from-name-and-modifiers.js\";\nimport {hasExportModifier} from \"../../../util/modifier-util.js\";\nimport {preserveParents, preserveSymbols} from \"../../../util/clone-node-with-meta.js\";\n\nexport function visitInterfaceDeclaration(options: ToExportDeclarationTransformerVisitorOptions<TS.InterfaceDeclaration>): TS.InterfaceDeclaration {\n\tconst {node, factory, typescript, appendNodes} = options;\n\t// If the node has no export modifier, leave it as it is\n\tif (!hasExportModifier(node, typescript)) return node;\n\n\tconst {exportSpecifier} = createExportSpecifierFromNameAndModifiers({...options, name: node.name.text, modifiers: node.modifiers});\n\n\t// Append an ExportDeclaration\n\tappendNodes(preserveParents(factory.createExportDeclaration(undefined, false, factory.createNamedExports([exportSpecifier])), {typescript}));\n\n\tconst propertyName = exportSpecifier.propertyName ?? exportSpecifier.name;\n\tpreserveSymbols(propertyName, node, options);\n\n\treturn node;\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {ToExportDeclarationTransformerVisitorOptions} from \"../to-export-declaration-transformer-visitor-options.js\";\nimport {createExportSpecifierFromNameAndModifiers} from \"../../../util/create-export-specifier-from-name-and-modifiers.js\";\nimport {hasExportModifier} from \"../../../util/modifier-util.js\";\nimport {preserveParents, preserveSymbols} from \"../../../util/clone-node-with-meta.js\";\n\nexport function visitModuleDeclaration(options: ToExportDeclarationTransformerVisitorOptions<TS.ModuleDeclaration>): TS.ModuleDeclaration {\n\tconst {node, factory, typescript, appendNodes} = options;\n\t// If the node has no export modifier, leave it as it is\n\tif (!hasExportModifier(node, typescript)) return node;\n\n\tconst {exportSpecifier} = createExportSpecifierFromNameAndModifiers({...options, name: node.name.text, modifiers: node.modifiers});\n\n\t// Append an ExportDeclaration\n\tappendNodes(preserveParents(factory.createExportDeclaration(undefined, false, factory.createNamedExports([exportSpecifier])), {typescript}));\n\n\tconst propertyName = exportSpecifier.propertyName ?? exportSpecifier.name;\n\tpreserveSymbols(propertyName, node, options);\n\n\treturn node;\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {ToExportDeclarationTransformerVisitorOptions} from \"../to-export-declaration-transformer-visitor-options.js\";\nimport {createExportSpecifierFromNameAndModifiers} from \"../../../util/create-export-specifier-from-name-and-modifiers.js\";\nimport {hasExportModifier} from \"../../../util/modifier-util.js\";\nimport {preserveParents, preserveSymbols} from \"../../../util/clone-node-with-meta.js\";\n\nexport function visitTypeAliasDeclaration(options: ToExportDeclarationTransformerVisitorOptions<TS.TypeAliasDeclaration>): TS.TypeAliasDeclaration {\n\tconst {node, factory, typescript, appendNodes} = options;\n\t// If the node has no export modifier, leave it as it is\n\tif (!hasExportModifier(node, typescript)) return node;\n\n\tconst {exportSpecifier} = createExportSpecifierFromNameAndModifiers({...options, name: node.name.text, modifiers: node.modifiers});\n\n\t// Append an ExportDeclaration\n\tappendNodes(preserveParents(factory.createExportDeclaration(undefined, false, factory.createNamedExports([exportSpecifier])), {typescript}));\n\n\tconst propertyName = exportSpecifier.propertyName ?? exportSpecifier.name;\n\tpreserveSymbols(propertyName, node, options);\n\n\treturn node;\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {ToExportDeclarationTransformerVisitorOptions} from \"../to-export-declaration-transformer-visitor-options.js\";\nimport {visitClassDeclaration} from \"./visit-class-declaration.js\";\nimport {visitClassExpression} from \"./visit-class-expression.js\";\nimport {visitFunctionDeclaration} from \"./visit-function-declaration.js\";\nimport {visitFunctionExpression} from \"./visit-function-expression.js\";\nimport {visitEnumDeclaration} from \"./visit-enum-declaration.js\";\nimport {visitVariableStatement} from \"./visit-variable-statement.js\";\nimport {visitInterfaceDeclaration} from \"./visit-interface-declaration.js\";\nimport {visitModuleDeclaration} from \"./visit-module-declaration.js\";\nimport {visitTypeAliasDeclaration} from \"./visit-type-alias-declaration.js\";\n\nexport function visitNode({node, ...options}: ToExportDeclarationTransformerVisitorOptions<TS.Node>): TS.Node {\n\tif (options.typescript.isClassDeclaration(node)) {\n\t\treturn visitClassDeclaration({...options, node});\n\t} else if (options.typescript.isClassExpression(node)) {\n\t\treturn visitClassExpression({...options, node});\n\t} else if (options.typescript.isFunctionDeclaration(node)) {\n\t\treturn visitFunctionDeclaration({...options, node});\n\t} else if (options.typescript.isFunctionExpression(node)) {\n\t\treturn visitFunctionExpression({...options, node});\n\t} else if (options.typescript.isEnumDeclaration(node)) {\n\t\treturn visitEnumDeclaration({...options, node});\n\t} else if (options.typescript.isInterfaceDeclaration(node)) {\n\t\treturn visitInterfaceDeclaration({...options, node});\n\t} else if (options.typescript.isTypeAliasDeclaration(node)) {\n\t\treturn visitTypeAliasDeclaration({...options, node});\n\t} else if (options.typescript.isModuleDeclaration(node)) {\n\t\treturn visitModuleDeclaration({...options, node});\n\t} else if (options.typescript.isVariableStatement(node)) {\n\t\treturn visitVariableStatement({...options, node});\n\t} else {\n\t\t// Only consider root-level statements here\n\t\treturn node;\n\t}\n}\n","import type {TS} from \"../../../../../type/ts.js\";\nimport type {SourceFileBundlerVisitorOptions} from \"../source-file-bundler/source-file-bundler-visitor-options.js\";\nimport {visitNode} from \"./visitor/visit-node.js\";\nimport {getNodePlacementQueue} from \"../../util/get-node-placement-queue.js\";\nimport type {ToExportDeclarationTransformerVisitorOptions} from \"./to-export-declaration-transformer-visitor-options.js\";\nimport {shouldDebugMetrics, shouldDebugSourceFile} from \"../../../../../util/is-debug/should-debug.js\";\nimport {logMetrics} from \"../../../../../util/logging/log-metrics.js\";\nimport {logTransformer} from \"../../../../../util/logging/log-transformer.js\";\nimport {preserveMeta} from \"../../util/clone-node-with-meta.js\";\n\nexport function toExportDeclarationTransformer(options: SourceFileBundlerVisitorOptions): TS.SourceFile {\n\tconst {factory, typescript, context, sourceFile, pluginOptions, printer} = options;\n\n\tconst fullBenchmark = shouldDebugMetrics(pluginOptions.debug, sourceFile) ? logMetrics(`Adding ExportDeclarations`, sourceFile.fileName) : undefined;\n\n\tconst transformationLog = shouldDebugSourceFile(pluginOptions.debug, sourceFile) ? logTransformer(\"Adding ExportDeclarations\", sourceFile, printer) : undefined;\n\n\tconst nodePlacementQueue = getNodePlacementQueue({typescript});\n\n\t// Prepare some VisitorOptions\n\tconst visitorOptions: Omit<ToExportDeclarationTransformerVisitorOptions<TS.Node>, \"node\"> = {\n\t\t...options,\n\t\t...nodePlacementQueue,\n\n\t\tchildContinuation: <U extends TS.Node>(node: U): U =>\n\t\t\ttypescript.visitEachChild(\n\t\t\t\tnode,\n\t\t\t\tnextNode =>\n\t\t\t\t\tnodePlacementQueue.wrapVisitResult(\n\t\t\t\t\t\tvisitNode({\n\t\t\t\t\t\t\t...visitorOptions,\n\t\t\t\t\t\t\tnode: nextNode\n\t\t\t\t\t\t})\n\t\t\t\t\t),\n\t\t\t\tcontext\n\t\t\t),\n\n\t\tcontinuation: <U extends TS.Node>(node: U): U =>\n\t\t\tnodePlacementQueue.wrapVisitResult(\n\t\t\t\tvisitNode({\n\t\t\t\t\t...visitorOptions,\n\t\t\t\t\tnode\n\t\t\t\t})\n\t\t\t) as U\n\t};\n\n\tlet result = typescript.visitEachChild(sourceFile, nextNode => visitorOptions.continuation(nextNode), context);\n\n\t// There may be prepended or appended nodes that hasn't been added yet. Do so!\n\tconst [missingPrependNodes, missingAppendNodes] = nodePlacementQueue.flush();\n\tif (missingPrependNodes.length > 0 || missingAppendNodes.length > 0) {\n\t\tresult = factory.updateSourceFile(\n\t\t\tresult,\n\t\t\t[...(missingPrependNodes as TS.Statement[]), ...result.statements, ...(missingAppendNodes as TS.Statement[])],\n\t\t\tresult.isDeclarationFile,\n\t\t\tresult.referencedFiles,\n\t\t\tresult.typeReferenceDirectives,\n\t\t\tresult.hasNoDefaultLib,\n\t\t\tresult.libReferenceDirectives\n\t\t);\n\t}\n\n\tresult = preserveMeta(result, result, options);\n\n\ttransformationLog?.finish(result);\n\tfullBenchmark?.finish();\n\n\treturn result;\n}\n","import type {CompilerHost} from \"../../../compiler-host/compiler-host.js\";\n\nexport interface TypeModuleReferenceIsAllowedOptions {\n\thost: CompilerHost;\n\tmoduleSpecifier: string;\n}\n\nexport function typeModuleReferenceIsAllowed({host, moduleSpecifier}: TypeModuleReferenceIsAllowedOptions): boolean {\n\tconst compilerOptions = host.getCompilationSettings();\n\tif (compilerOptions.types == null || compilerOptions.types.length < 1) return true;\n\treturn compilerOptions.types.includes(moduleSpecifier);\n}\n","import {typeModuleReferenceIsAllowed} from \"./type-module-reference-is-allowed.js\";\nimport type {CompilerHost} from \"../../../compiler-host/compiler-host.js\";\nimport path from \"crosspath\";\n\nexport interface GetTypeReferenceModuleFromFileNameOptions {\n\thost: CompilerHost;\n\tfileName: string;\n}\n\nexport interface TypeReference {\n\tmoduleSpecifier: string;\n\tfileName: string;\n}\n\nexport function getTypeReferenceModuleFromFileName({host, fileName}: GetTypeReferenceModuleFromFileNameOptions): TypeReference | undefined {\n\tfor (const typeRoot of host.getTypeRoots()) {\n\t\tconst typeRootIndex = fileName.indexOf(typeRoot);\n\t\tif (typeRootIndex < 0) continue;\n\n\t\tconst base = path.normalize(fileName.slice(typeRootIndex + typeRoot.length + 1));\n\t\tconst moduleSpecifier = base.includes(\"/\") ? base.slice(0, base.indexOf(\"/\")) : base;\n\n\t\tif (typeModuleReferenceIsAllowed({host, moduleSpecifier})) {\n\t\t\treturn {\n\t\t\t\tmoduleSpecifier,\n\t\t\t\tfileName\n\t\t\t};\n\t\t}\n\t}\n\n\treturn undefined;\n}\n","import type {GetAliasedDeclarationOptions} from \"./get-aliased-declaration.js\";\nimport {getAliasedDeclaration} from \"./get-aliased-declaration.js\";\nimport type {TypeReference} from \"./get-type-reference-module-from-file-name.js\";\nimport {getTypeReferenceModuleFromFileName} from \"./get-type-reference-module-from-file-name.js\";\nimport type {TS} from \"../../../../type/ts.js\";\n\nexport interface GetTypeReferenceModuleFromNodeOptions extends GetAliasedDeclarationOptions {\n\tnode: TS.Identifier;\n\timportDeclarations: TS.ImportDeclaration[];\n}\n\nexport function getTypeReferenceModuleFromNode(options: GetTypeReferenceModuleFromNodeOptions): TypeReference | undefined {\n\tconst aliasedDeclaration = getAliasedDeclaration(options);\n\n\tif (aliasedDeclaration == null) return;\n\tconst declarationSourceFile = aliasedDeclaration.getSourceFile();\n\tif (declarationSourceFile == null) return;\n\n\tconst typeReference = getTypeReferenceModuleFromFileName({...options, fileName: declarationSourceFile.fileName});\n\tif (typeReference == null) return undefined;\n\n\t// Otherwise, check if the particular binding is already directly imported somewhere, in which case the directive isn't needed\n\tfor (const importDeclaration of options.importDeclarations) {\n\t\t// The module specifier must be identical to the name of the type reference\n\t\tif (!options.typescript.isStringLiteralLike(importDeclaration.moduleSpecifier)) continue;\n\t\tif (importDeclaration.moduleSpecifier.text !== typeReference.moduleSpecifier) continue;\n\n\t\t// Otherwise, we only need to verify that the identifier is included as a binding inside the ImportClause\n\t\tif (importDeclaration.importClause == null) continue;\n\n\t\t// If the identifier is imported as a default import, we don't need the directive\n\t\tif (importDeclaration.importClause.name != null && importDeclaration.importClause.name.text === options.node.text) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// If there are no named bindings, there's no way the ImportClause may refer to the module of the type reference\n\t\tif (importDeclaration.importClause.namedBindings == null) continue;\n\n\t\tif (options.typescript.isNamespaceImport(importDeclaration.importClause.namedBindings)) {\n\t\t\t// If the identifier is imported as a namespace import, we don't need the directive\n\t\t\tif (importDeclaration.importClause.namedBindings.name.text === options.node.text) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t} else {\n\t\t\tfor (const importSpecifier of importDeclaration.importClause.namedBindings.elements) {\n\t\t\t\t// If the name of the ImportSpecifier is identical to that of the identifier, we don't need the directive\n\t\t\t\tif (importSpecifier.name.text === options.node.text) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Otherwise, preserve it!\n\treturn typeReference;\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TypeReferenceCollectorVisitorOptions} from \"../type-reference-collector-visitor-options.js\";\nimport {getTypeReferenceModuleFromNode} from \"../../../util/get-type-reference-module-from-node.js\";\n\nexport function visitIdentifier(options: TypeReferenceCollectorVisitorOptions<TS.Identifier>): void {\n\tconst {node, addTypeReference} = options;\n\n\tconst typeReferenceModule = getTypeReferenceModuleFromNode({...options, node});\n\tif (typeReferenceModule != null) {\n\t\taddTypeReference(typeReferenceModule);\n\t}\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TypeReferenceCollectorVisitorOptions} from \"../type-reference-collector-visitor-options.js\";\nimport {visitIdentifier} from \"./visit-identifier.js\";\n\nexport function visitNode({node, ...options}: TypeReferenceCollectorVisitorOptions<TS.Node>): void {\n\tif (options.typescript.isIdentifier(node)) {\n\t\treturn visitIdentifier({...options, node});\n\t} else {\n\t\t// Only consider root-level statements here\n\t\treturn options.childContinuation(node);\n\t}\n}\n","import type {SourceFileBundlerVisitorOptions} from \"../source-file-bundler/source-file-bundler-visitor-options.js\";\nimport type {TS} from \"../../../../../type/ts.js\";\nimport type {TypeReferenceCollectorVisitorOptions} from \"./type-reference-collector-visitor-options.js\";\nimport {visitNode} from \"./visitor/visit-node.js\";\nimport type {TypeReference} from \"../../util/get-type-reference-module-from-file-name.js\";\n\nexport function typeReferenceCollector(options: SourceFileBundlerVisitorOptions): TS.SourceFile {\n\tconst {typescript} = options;\n\tconst typeReferences = new Set<TypeReference>();\n\toptions.sourceFileToTypeReferencesSet.set(options.sourceFile.fileName, typeReferences);\n\n\t// Prepare some VisitorOptions\n\tconst visitorOptions: Omit<TypeReferenceCollectorVisitorOptions<TS.Node>, \"node\"> = {\n\t\t...options,\n\t\timportDeclarations: options.sourceFile.statements.filter(options.typescript.isImportDeclaration),\n\n\t\taddTypeReference(typeReference: TypeReference): void {\n\t\t\ttypeReferences.add(typeReference);\n\t\t},\n\n\t\tchildContinuation: <U extends TS.Node>(node: U): void =>\n\t\t\ttypescript.forEachChild(node, nextNode => {\n\t\t\t\tvisitNode({\n\t\t\t\t\t...visitorOptions,\n\t\t\t\t\tnode: nextNode\n\t\t\t\t});\n\t\t\t}),\n\n\t\tcontinuation: <U extends TS.Node>(node: U): void => {\n\t\t\tvisitNode({\n\t\t\t\t...visitorOptions,\n\t\t\t\tnode\n\t\t\t});\n\t\t}\n\t};\n\n\ttypescript.forEachChild(options.sourceFile, nextNode => {\n\t\tvisitorOptions.continuation(nextNode);\n\t});\n\treturn options.sourceFile;\n}\n","import type {DeclarationBundlerOptions} from \"./declaration-bundler-options.js\";\nimport type {TS} from \"../../../type/ts.js\";\nimport {sourceFileBundler} from \"./transformers/source-file-bundler/source-file-bundler.js\";\nimport {moduleMerger} from \"./transformers/module-merger/module-merger.js\";\nimport {deconflicter} from \"./transformers/deconflicter/deconflicter.js\";\nimport {ensureDeclareModifierTransformer} from \"./transformers/ensure-declare-modifier-transformer/ensure-declare-modifier-transformer.js\";\nimport {moduleBlockExtractor} from \"./transformers/module-block-extractor/module-block-extractor.js\";\nimport {treeShaker} from \"./transformers/tree-shaker/tree-shaker.js\";\nimport {statementMerger} from \"./transformers/statement-merger/statement-merger.js\";\nimport {toExportDeclarationTransformer} from \"./transformers/to-export-declaration-transformer/to-export-declaration-transformer.js\";\nimport {ensureNoExportModifierTransformer} from \"./transformers/ensure-no-export-modifier-transformer/ensure-no-export-modifier-transformer.js\";\nimport {typeReferenceCollector} from \"./transformers/type-reference-collector/type-reference-collector.js\";\n\n/**\n * Bundles declarations\n */\nexport function declarationBundler(options: DeclarationBundlerOptions): TS.CustomTransformers {\n\treturn {\n\t\tafterDeclarations: [\n\t\t\t// Bundle all SourceFiles within the declaration bundle\n\t\t\tsourceFileBundler(\n\t\t\t\toptions,\n\t\t\t\t// Merge modules inside the entry module(s),\n\t\t\t\tmoduleBlockExtractor,\n\n\t\t\t\tmoduleMerger(\n\t\t\t\t\t// Merge modules inside the entry module(s),\n\t\t\t\t\tmoduleBlockExtractor,\n\t\t\t\t\t// Ensure that nodes that require it have the 'declare' modifier\n\t\t\t\t\tensureDeclareModifierTransformer\n\t\t\t\t),\n\n\t\t\t\t// Generate ExportDeclarations where 'export' modifiers are otherwise being used\n\t\t\t\ttoExportDeclarationTransformer,\n\n\t\t\t\t// Deconflicts bindings\n\t\t\t\tdeconflicter,\n\n\t\t\t\t// Removes 'export' modifiers from Nodes\n\t\t\t\tensureNoExportModifierTransformer,\n\n\t\t\t\t// Ensure that nodes that require it have the 'declare' modifier\n\t\t\t\tensureDeclareModifierTransformer,\n\n\t\t\t\t// Tree-shake declarations\n\t\t\t\ttreeShaker,\n\n\t\t\t\t// Merge related statements\n\t\t\t\tstatementMerger({markAsModuleIfNeeded: true}),\n\n\t\t\t\t// Collects type references\n\t\t\t\ttypeReferenceCollector\n\t\t\t)\n\t\t]\n\t};\n}\n","import type {SourceDescription, SourceMap} from \"rollup\";\nimport {D_TS_EXTENSION, D_TS_MAP_EXTENSION, SOURCE_MAP_COMMENT, SOURCE_MAP_COMMENT_REGEXP} from \"../../../constant/constant.js\";\nimport {declarationBundler} from \"../../transformer/declaration-bundler/declaration-bundler.js\";\nimport type {DeclarationBundlerOptions} from \"../../transformer/declaration-bundler/declaration-bundler-options.js\";\n\nexport interface BundleDeclarationsForChunkOptions extends DeclarationBundlerOptions {}\n\nexport interface BundleDeclarationsForChunkResult extends SourceDescription {}\n\nexport function bundleDeclarationsForChunk(options: BundleDeclarationsForChunkOptions): BundleDeclarationsForChunkResult {\n\tlet code = \"\";\n\tlet map: SourceMap | undefined;\n\n\tconst emitOutput = options.host.emit(undefined, true, declarationBundler(options));\n\n\tfor (const {name, text} of emitOutput.outputFiles) {\n\t\tif (name.endsWith(D_TS_MAP_EXTENSION)) {\n\t\t\tmap = JSON.parse(text) as SourceMap;\n\t\t\tmap.file = options.declarationPaths.fileName;\n\t\t} else if (name.endsWith(D_TS_EXTENSION)) {\n\t\t\tcode += text.replace(SOURCE_MAP_COMMENT_REGEXP, `${SOURCE_MAP_COMMENT}=${options.declarationMapPaths.fileName}`);\n\t\t}\n\t}\n\n\treturn {\n\t\tcode,\n\t\t...(map == null ? {} : {map: JSON.stringify(map)})\n\t};\n}\n","import path from \"crosspath\";\n\nexport interface PreparePathsOptions {\n\tfileName: string;\n\trelativeOutDir: string;\n\tabsoluteOutDir: string;\n}\n\nexport interface PathsResult {\n\tfileName: string;\n\trelative: string;\n\tabsolute: string;\n}\n\nexport function preparePaths({relativeOutDir, absoluteOutDir, fileName}: PreparePathsOptions): PathsResult {\n\tconst absolutePath = path.join(absoluteOutDir, fileName);\n\tconst relativePath = path.join(relativeOutDir, fileName);\n\n\treturn {\n\t\tfileName,\n\t\tabsolute: absolutePath,\n\t\trelative: relativePath\n\t};\n}\n","import type {OutputChunk, OutputOptions} from \"rollup\";\nimport {getOutDir} from \"../get-out-dir/get-out-dir.js\";\nimport type {PathsResult} from \"../../service/transformer/declaration-bundler/util/prepare-paths/prepare-paths.js\";\nimport {preparePaths} from \"../../service/transformer/declaration-bundler/util/prepare-paths/prepare-paths.js\";\nimport type {CompilerHost} from \"../../service/compiler-host/compiler-host.js\";\nimport {ROLLUP_PLUGIN_MULTI_ENTRY_LEGACY} from \"../../constant/constant.js\";\nimport path from \"crosspath\";\nimport {removeSearchPathFromFilename} from \"../path/path-util.js\";\n\nexport interface PreNormalizedChunk {\n\tfileName: string;\n\tisEntry: boolean;\n\tmodules: string[];\n}\n\nexport interface NormalizedChunk {\n\tpaths: PathsResult;\n\tisEntry: boolean;\n\tmodules: Set<string>;\n\tentryModules: Set<string>;\n}\n\nexport interface NormalizeChunkOptions {\n\thost: CompilerHost;\n\toutputOptions: OutputOptions;\n\trelativeOutDir: string;\n\tmultiEntryModule: string | undefined;\n\tmultiEntryFileNames: Set<string> | undefined;\n}\n\nexport function preNormalizeChunk(chunk: OutputChunk, otherChunks: OutputChunk[]): PreNormalizedChunk {\n\tconst baseModules = new Set(Object.keys(chunk.modules).map(normalizeChunkFilename));\n\n\t// Make sure to remove any base modules that are also entry modules in other chunks\n\tfor (const baseModule of baseModules) {\n\t\tif (\n\t\t\totherChunks.some(\n\t\t\t\totherChunk => otherChunk.isEntry && otherChunk.facadeModuleId != null && normalizeChunkFilename(otherChunk.facadeModuleId) === normalizeChunkFilename(baseModule)\n\t\t\t)\n\t\t) {\n\t\t\tbaseModules.delete(baseModule);\n\t\t}\n\t}\n\n\t// Add the facadeModuleId to the base modules if it is an entry chunk and it wasn't already there.\n\t// Since Rollup v3.22.0, the facadeModuleId may no longer be included in the modules of the chunk if it only contains imports/exports, so we'll have to add it manually\n\tif (chunk.isEntry && chunk.facadeModuleId != null && !baseModules.has(chunk.facadeModuleId)) {\n\t\tbaseModules.add(normalizeChunkFilename(chunk.facadeModuleId));\n\t}\n\n\treturn {\n\t\tmodules: [...baseModules],\n\t\tfileName: path.normalize(chunk.fileName),\n\t\tisEntry: chunk.isEntry\n\t};\n}\n\nexport function normalizeChunkFilename(filename: string): string {\n\treturn removeSearchPathFromFilename(path.normalize(filename));\n}\n\nexport function normalizeChunk(chunk: PreNormalizedChunk, {host, outputOptions, relativeOutDir, multiEntryModule, multiEntryFileNames}: NormalizeChunkOptions): NormalizedChunk {\n\tconst cwd = host.getCwd();\n\tlet entryModules: string[] | undefined;\n\tlet isMultiEntryChunk = false;\n\n\tfor (let i = 0; i < chunk.modules.length; i++) {\n\t\tconst module = chunk.modules[i];\n\n\t\tif (multiEntryFileNames != null && (module === ROLLUP_PLUGIN_MULTI_ENTRY_LEGACY || (multiEntryModule != null && module === multiEntryModule))) {\n\t\t\t// Reassign the entry file names accordingly\n\t\t\tchunk.modules.splice(i, 1, ...[...multiEntryFileNames].filter(fileName => !chunk.modules.includes(fileName)));\n\t\t\tisMultiEntryChunk = true;\n\t\t}\n\t}\n\n\t// Ensure that there are no duplicates\n\tchunk.modules = [...new Set(chunk.modules)];\n\n\tconst visitableModules = chunk.modules.filter(module => host.isSupportedFileName(module, true));\n\n\t// If no entry module is predetermined, it should be the module on the last position for an entry chunk, or\n\t// every visible module for a non-entry chunk\n\tif (entryModules == null) {\n\t\tentryModules = isMultiEntryChunk && multiEntryFileNames != null ? [...multiEntryFileNames] : chunk.isEntry ? [visitableModules.slice(-1)[0]] : [...visitableModules].reverse();\n\t}\n\n\treturn {\n\t\tisEntry: chunk.isEntry,\n\t\tpaths: preparePaths({\n\t\t\tfileName: path.normalize(chunk.fileName),\n\t\t\trelativeOutDir: getOutDir(cwd, outputOptions),\n\t\t\tabsoluteOutDir: path.join(cwd, relativeOutDir)\n\t\t}),\n\t\tmodules: new Set(chunk.modules),\n\t\tentryModules: new Set(entryModules)\n\t};\n}\n","import type {ExternalOption, ModuleFormat, PreRenderedChunk} from \"rollup\";\nimport type {PreNormalizedChunk} from \"./normalize-chunk.js\";\nimport {getChunkForModule} from \"../../service/transformer/declaration-bundler/util/get-chunk-filename.js\";\nimport {isExternal, stripKnownExtension} from \"../path/path-util.js\";\nimport {generateRandomHash} from \"../hash/generate-random-hash.js\";\nimport type {SourceFileToDependenciesMap} from \"../../service/transformer/declaration-bundler/declaration-bundler-options.js\";\nimport type {CompilerHost} from \"../../service/compiler-host/compiler-host.js\";\nimport {pickResolvedModule} from \"../pick-resolved-module.js\";\nimport path from \"crosspath\";\n\nexport interface MergeChunksWithAmbientDependenciesOptions {\n\texternalOption: ExternalOption | undefined;\n\tchunks: PreNormalizedChunk[];\n\thost: CompilerHost;\n\tformat?: ModuleFormat;\n\tchunkFileNames: string | ((chunkInfo: PreRenderedChunk) => string) | undefined;\n}\n\nfunction createCommonChunk(\n\tmodule: string,\n\tcode: string,\n\tformat: ModuleFormat,\n\tchunkFileNames: string | ((chunkInfo: PreRenderedChunk) => string) = `[name]-[hash].js`\n): PreNormalizedChunk {\n\tconst name = stripKnownExtension(path.basename(module));\n\tconst hash = generateRandomHash({key: code});\n\tlet fileName: string;\n\n\tif (typeof chunkFileNames === \"string\") {\n\t\tfileName = chunkFileNames\n\t\t\t.replace(/\\[format]/g, format)\n\t\t\t.replace(/\\[hash]/g, hash)\n\t\t\t.replace(/\\[name]/g, name);\n\t} else {\n\t\tfileName = chunkFileNames({\n\t\t\tname: module,\n\t\t\ttype: \"chunk\",\n\t\t\tisEntry: false,\n\t\t\tisImplicitEntry: false,\n\t\t\tisDynamicEntry: false,\n\t\t\tfacadeModuleId: module,\n\t\t\tmoduleIds: [module],\n\t\t\texports: []\n\t\t});\n\t}\n\n\treturn {\n\t\tfileName,\n\t\tmodules: [module],\n\t\tisEntry: false\n\t};\n}\n\nfunction ensureChunkForModule(\n\tmodule: string,\n\tcode: string,\n\tchunks: PreNormalizedChunk[],\n\tmoduleDependencyMap: SourceFileToDependenciesMap,\n\tformat: ModuleFormat,\n\tchunkFileNames: string | ((chunkInfo: PreRenderedChunk) => string) | undefined\n): PreNormalizedChunk {\n\tlet chunk = getChunkForModule(module, chunks);\n\tconst [firstChunk] = chunks;\n\n\tif (chunk == null) {\n\t\tif (chunks.length === 1) {\n\t\t\tfirstChunk.modules.unshift(module);\n\t\t\treturn firstChunk;\n\t\t} else {\n\t\t\t// Find all modules that refer to this module.\n\t\t\tconst referencingModules = [...moduleDependencyMap.entries()]\n\t\t\t\t.map(([otherModule, dependencies]) => [otherModule, [...dependencies]] as const)\n\t\t\t\t.filter(([, dependencies]) => dependencies.find(resolveModule => pickResolvedModule(resolveModule, false) === module))\n\t\t\t\t.map(([otherModule]) => otherModule);\n\n\t\t\t// Find all chunks for the referencing modules\n\t\t\tconst [firstReferencingChunk, ...otherReferencingChunks] = new Set(\n\t\t\t\treferencingModules.map(referencingModule => getChunkForModule(referencingModule, chunks)).filter(chunkOrUndefined => chunkOrUndefined != null)\n\t\t\t);\n\n\t\t\t// If only 1 chunk is matched, use that one\n\t\t\tif (firstReferencingChunk != null && otherReferencingChunks.length === 0) {\n\t\t\t\tfirstReferencingChunk.modules.unshift(module);\n\t\t\t\treturn firstReferencingChunk;\n\t\t\t}\n\n\t\t\t// Otherwise, create a new chunk\n\t\t\telse {\n\t\t\t\tchunk = createCommonChunk(module, code, format, chunkFileNames);\n\t\t\t\tchunks.push(chunk);\n\t\t\t\treturn chunk;\n\t\t\t}\n\t\t}\n\t} else {\n\t\treturn chunk;\n\t}\n}\n\nexport function mergeChunksWithAmbientDependencies({format = \"esm\", chunkFileNames, chunks, externalOption, host}: MergeChunksWithAmbientDependenciesOptions): void {\n\tconst dependencyToModulesMap: Map<string, Set<string>> = new Map();\n\tconst sourceFileToDependenciesMap = host.getAllDependencies();\n\n\tfor (const [module, dependencies] of sourceFileToDependenciesMap.entries()) {\n\t\tfor (const resolvedModule of dependencies) {\n\t\t\tconst dependency = pickResolvedModule(resolvedModule, false);\n\n\t\t\tif (dependency == null || isExternal(resolvedModule.moduleSpecifier, module, externalOption)) continue;\n\n\t\t\tlet modulesForDependency = dependencyToModulesMap.get(dependency);\n\t\t\tif (modulesForDependency == null) {\n\t\t\t\tmodulesForDependency = new Set();\n\t\t\t\tdependencyToModulesMap.set(dependency, modulesForDependency);\n\t\t\t}\n\t\t\tmodulesForDependency.add(module);\n\t\t}\n\t}\n\n\tfor (const [dependency, modulesForDependency] of dependencyToModulesMap.entries()) {\n\t\tconst text = host.readFile(dependency);\n\t\tif (text == null) continue;\n\t\tconst chunkWithDependency = ensureChunkForModule(dependency, text, chunks, sourceFileToDependenciesMap, format, chunkFileNames);\n\n\t\tconst chunksForModulesForDependency = new Set<PreNormalizedChunk>(\n\t\t\t[...modulesForDependency].map(moduleForDependency => ensureChunkForModule(moduleForDependency, text, chunks, sourceFileToDependenciesMap, format, chunkFileNames))\n\t\t);\n\n\t\t// If the modules that refer to the dependency are divided across multiple chunks, and one of those chunks contain the dependency,\n\t\t// move it into its own chunk\n\t\tif (chunksForModulesForDependency.size > 1) {\n\t\t\tconst containingChunk = [...chunksForModulesForDependency].find(chunkForModuleDependency => chunkForModuleDependency === chunkWithDependency);\n\t\t\tif (containingChunk != null) {\n\t\t\t\tcontainingChunk.modules.splice(containingChunk.modules.indexOf(dependency), 1);\n\t\t\t\tchunks.push(createCommonChunk(dependency, text, format, chunkFileNames));\n\t\t\t}\n\t\t}\n\t}\n}\n","import color from \"ansi-colors\";\nimport {getFormattedDateTimePrefix} from \"./get-formatted-date-time-prefix.js\";\n\nexport function logEmit(fileName: string, text: string): void {\n\tconsole.log(`${getFormattedDateTimePrefix()}${color.blue(`emit: ${fileName}`)}`);\n\tconsole.log(color.white(text));\n}\n","import type {ExternalOption, OutputBundle, OutputOptions, PluginContext} from \"rollup\";\nimport type {TypescriptPluginOptions} from \"../../../plugin/typescript-plugin-options.js\";\nimport {isOutputChunk} from \"../../../util/is-output-chunk/is-output-chunk.js\";\nimport {getDeclarationOutDir, getDeclarationOutExtension} from \"../../../util/get-declaration-out-dir/get-declaration-out-dir.js\";\nimport {getOutDir} from \"../../../util/get-out-dir/get-out-dir.js\";\nimport {setExtension} from \"../../../util/path/path-util.js\";\nimport path from \"crosspath\";\nimport {D_TS_EXTENSION, D_TS_MAP_EXTENSION, JS_EXTENSION} from \"../../../constant/constant.js\";\nimport {bundleDeclarationsForChunk} from \"./bundle-declarations-for-chunk.js\";\nimport type {ReferenceCache, SourceFileToNodeToReferencedIdentifiersCache} from \"../../transformer/declaration-bundler/transformers/reference/cache/reference-cache.js\";\nimport {normalizeChunk, preNormalizeChunk} from \"../../../util/chunk/normalize-chunk.js\";\nimport {shouldDebugEmit, shouldDebugMetrics} from \"../../../util/is-debug/should-debug.js\";\nimport {logMetrics} from \"../../../util/logging/log-metrics.js\";\nimport type {CompilerHost} from \"../../compiler-host/compiler-host.js\";\nimport {mergeChunksWithAmbientDependencies} from \"../../../util/chunk/merge-chunks-with-ambient-dependencies.js\";\nimport {preparePaths} from \"../../transformer/declaration-bundler/util/prepare-paths/prepare-paths.js\";\nimport {logEmit} from \"../../../util/logging/log-emit.js\";\nimport type {TS} from \"../../../type/ts.js\";\nimport {createFilter} from \"@rollup/pluginutils\";\n\nexport interface EmitDeclarationsOptions {\n\tpluginContext: PluginContext;\n\tbundle: OutputBundle;\n\thost: CompilerHost;\n\tpluginOptions: TypescriptPluginOptions;\n\texternalOption: ExternalOption | undefined;\n\toutputOptions: OutputOptions;\n\tmultiEntryModule: string | undefined;\n\tmultiEntryFileNames: Set<string> | undefined;\n\toriginalCompilerOptions: TS.CompilerOptions;\n}\n\nexport function emitDeclarations(options: EmitDeclarationsOptions): void {\n\tconst fullBenchmark = shouldDebugMetrics(options.pluginOptions.debug) ? logMetrics(`Emit declarations`) : undefined;\n\n\tconst typescript = options.host.getTypescript();\n\tconst cwd = options.host.getCwd();\n\tconst relativeOutDir = getOutDir(cwd, options.outputOptions);\n\n\tconst baseOutputChunks = Object.values(options.bundle).filter(isOutputChunk);\n\n\tconst chunks = baseOutputChunks.map(baseOutputChunk =>\n\t\tpreNormalizeChunk(\n\t\t\tbaseOutputChunk,\n\t\t\tbaseOutputChunks.filter(otherBaseOutputChunk => otherBaseOutputChunk !== baseOutputChunk)\n\t\t)\n\t);\n\n\t// Merge ambient dependencies into the chunks\n\tmergeChunksWithAmbientDependencies({\n\t\tchunks,\n\t\thost: options.host,\n\t\texternalOption: options.externalOption,\n\t\tchunkFileNames: options.outputOptions.chunkFileNames,\n\t\tformat: options.outputOptions.format\n\t});\n\n\t// Normalize the chunks\n\tconst normalizedChunks = chunks.map(chunk => normalizeChunk(chunk, {...options, relativeOutDir}));\n\n\tconst relativeDeclarationOutDir = getDeclarationOutDir(cwd, options.originalCompilerOptions, options.outputOptions);\n\tconst absoluteDeclarationOutDir = path.join(cwd, relativeDeclarationOutDir);\n\n\tconst sourceFileToNodeToReferencedIdentifiersCache: SourceFileToNodeToReferencedIdentifiersCache = new Map();\n\tconst referenceCache: ReferenceCache = new Map();\n\n\tlet virtualOutFile = preparePaths({\n\t\tfileName: `index${getDeclarationOutExtension(options.outputOptions, options.host.getAllKnownTypescriptExtensions())}`,\n\t\trelativeOutDir: relativeDeclarationOutDir,\n\t\tabsoluteOutDir: absoluteDeclarationOutDir\n\t});\n\n\t// Rewrite the virtual out file if a hook is provided\n\tif (options.pluginOptions.hook.outputPath != null) {\n\t\tconst result = options.pluginOptions.hook.outputPath(virtualOutFile.absolute, \"declaration\");\n\n\t\tif (result != null) {\n\t\t\tvirtualOutFile = preparePaths({\n\t\t\t\tfileName: path.basename(result),\n\t\t\t\trelativeOutDir: path.relative(cwd, path.dirname(result)),\n\t\t\t\tabsoluteOutDir: path.dirname(result)\n\t\t\t});\n\t\t}\n\t}\n\n\tconst filter = createFilter(undefined, [setExtension(virtualOutFile.relative, D_TS_EXTENSION), setExtension(virtualOutFile.relative, D_TS_MAP_EXTENSION)]);\n\n\tconst host = options.host.clone(\n\t\t{\n\t\t\t...options.host.getCompilationSettings(),\n\t\t\tdeclaration: Boolean(options.originalCompilerOptions.declaration),\n\t\t\tdeclarationMap: Boolean(options.originalCompilerOptions.declarationMap),\n\t\t\tdeclarationDir: options.originalCompilerOptions.declarationDir,\n\t\t\toutFile: setExtension(virtualOutFile.relative, JS_EXTENSION),\n\t\t\tmodule: typescript.ModuleKind.System,\n\t\t\tnoEmit: false,\n\t\t\temitDeclarationOnly: true,\n\n\t\t\t// This can cause TS2612 errors that wouldn't otherwise happen\n\t\t\tuseDefineForClassFields: false,\n\n\t\t\t// Never allow these options for bundled declarations\n\t\t\tcomposite: false,\n\t\t\tincremental: false,\n\t\t\ttsBuildInfoFile: undefined\n\t\t},\n\t\tfilter,\n\t\t{\n\t\t\tallowTransformingDeclarations: true\n\t\t}\n\t);\n\n\tconst typeChecker = host.getTypeChecker();\n\n\tconst sharedOptions = {\n\t\t...options,\n\t\tchunks: normalizedChunks,\n\t\thost,\n\t\ttypeChecker,\n\t\ttypescript,\n\t\treferenceCache,\n\t\tsourceFileToNodeToReferencedIdentifiersCache,\n\t\tsourceFileToTypeReferencesSet: new Map(),\n\t\tsourceFileToExportedSymbolSet: new Map(),\n\t\tsourceFileToImportedSymbolSet: new Map(),\n\t\tsourceFileToDependenciesMap: new Map(),\n\t\tmoduleSpecifierToSourceFileMap: new Map(),\n\t\tprinter: host.getPrinter(),\n\t\t// Only prepare the record if a hook has been provided\n\t\tdeclarationStats: options.pluginOptions.hook.declarationStats != null ? {} : undefined\n\t};\n\n\tfor (const chunk of normalizedChunks) {\n\t\tlet declarationPaths = preparePaths({\n\t\t\tfileName: setExtension(chunk.paths.fileName, getDeclarationOutExtension(options.outputOptions, options.host.getAllKnownTypescriptExtensions(), chunk)),\n\t\t\trelativeOutDir: relativeDeclarationOutDir,\n\t\t\tabsoluteOutDir: absoluteDeclarationOutDir\n\t\t});\n\n\t\tlet declarationMapPaths = preparePaths({\n\t\t\tfileName: setExtension(chunk.paths.fileName, getDeclarationOutExtension(options.outputOptions, options.host.getAllKnownTypescriptExtensions(), chunk, true)),\n\t\t\trelativeOutDir: relativeDeclarationOutDir,\n\t\t\tabsoluteOutDir: absoluteDeclarationOutDir\n\t\t});\n\n\t\t// Rewrite the declaration paths\n\t\tif (options.pluginOptions.hook.outputPath != null) {\n\t\t\tconst declarationResult = options.pluginOptions.hook.outputPath(declarationPaths.absolute, \"declaration\");\n\t\t\tconst declarationMapResult = options.pluginOptions.hook.outputPath(declarationMapPaths.absolute, \"declarationMap\");\n\n\t\t\tif (declarationResult != null) {\n\t\t\t\tdeclarationPaths = preparePaths({\n\t\t\t\t\tfileName: path.basename(declarationResult),\n\t\t\t\t\trelativeOutDir: path.relative(cwd, path.dirname(declarationResult)),\n\t\t\t\t\tabsoluteOutDir: path.dirname(declarationResult)\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (declarationMapResult != null) {\n\t\t\t\tdeclarationMapPaths = {\n\t\t\t\t\t// Don't allow diverging from the declaration paths.\n\t\t\t\t\t// The two files must be placed together\n\t\t\t\t\tfileName: path.basename(declarationMapResult),\n\t\t\t\t\trelative: path.join(path.dirname(declarationPaths.relative), path.basename(declarationMapResult)),\n\t\t\t\t\tabsolute: path.join(path.dirname(declarationPaths.absolute), path.basename(declarationMapResult))\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tconst emitFileDeclarationFilename = path.relative(relativeOutDir, declarationPaths.relative);\n\t\tconst emitFileDeclarationMapFilename = path.relative(relativeOutDir, declarationMapPaths.relative);\n\n\t\t// Rollup does not allow emitting files outside of the root of the whatever 'dist' directory that has been provided.\n\t\t// Under such circumstances, unfortunately, we'll have to default to using whatever FileSystem was provided to write the files to disk\n\t\tconst declarationNeedsFileSystem = emitFileDeclarationFilename.startsWith(\"../\") || emitFileDeclarationFilename.startsWith(\"..\\\\\") || options.pluginContext.emitFile == null;\n\t\tconst declarationMapNeedsFileSystem =\n\t\t\temitFileDeclarationMapFilename.startsWith(\"../\") || emitFileDeclarationMapFilename.startsWith(\"..\\\\\") || options.pluginContext.emitFile == null;\n\n\t\t// Don't emit declarations when there is no compatible entry file\n\t\tif (chunk.entryModules.size < 1) continue;\n\n\t\tconst bundleResult = bundleDeclarationsForChunk({\n\t\t\t...sharedOptions,\n\t\t\tchunk,\n\t\t\tdeclarationPaths,\n\t\t\tdeclarationMapPaths,\n\t\t\twrappedTransformers: host.getCustomTransformers()\n\t\t});\n\n\t\tif (shouldDebugEmit(options.pluginOptions.debug, declarationPaths.absolute, bundleResult.code, \"declaration\")) {\n\t\t\tlogEmit(declarationPaths.absolute, bundleResult.code);\n\t\t}\n\n\t\tif (declarationNeedsFileSystem) {\n\t\t\toptions.host.getFileSystem().writeFile(path.native.normalize(declarationPaths.absolute), bundleResult.code);\n\t\t}\n\n\t\t// Otherwise, we can use Rollup, which is absolutely preferable\n\t\telse {\n\t\t\toptions.pluginContext.emitFile({\n\t\t\t\ttype: \"asset\",\n\t\t\t\tsource: bundleResult.code,\n\t\t\t\tfileName: path.native.normalize(emitFileDeclarationFilename)\n\t\t\t});\n\t\t}\n\n\t\t// If there is a SourceMap for the declarations, add that asset too\n\t\tif (bundleResult.map != null) {\n\t\t\tif (shouldDebugEmit(options.pluginOptions.debug, declarationMapPaths.absolute, bundleResult.map.toString(), \"declarationMap\")) {\n\t\t\t\tlogEmit(declarationMapPaths.absolute, bundleResult.map.toString());\n\t\t\t}\n\n\t\t\tif (declarationMapNeedsFileSystem) {\n\t\t\t\toptions.host.getFileSystem().writeFile(path.native.normalize(declarationMapPaths.absolute), bundleResult.map.toString());\n\t\t\t}\n\n\t\t\t// Otherwise, we can use Rollup, which is absolutely preferable\n\t\t\telse {\n\t\t\t\toptions.pluginContext.emitFile({\n\t\t\t\t\ttype: \"asset\",\n\t\t\t\t\tsource: bundleResult.map.toString(),\n\t\t\t\t\tfileName: path.native.normalize(emitFileDeclarationMapFilename)\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tif (sharedOptions.declarationStats != null) {\n\t\toptions.pluginOptions.hook.declarationStats?.(sharedOptions.declarationStats);\n\t}\n\n\tif (fullBenchmark != null) fullBenchmark.finish();\n}\n","import type {TS} from \"../../type/ts.js\";\nimport type {ModuleResolutionHostOptions} from \"./module-resolution-host-options.js\";\nimport {ensureAbsolute} from \"../../util/path/path-util.js\";\nimport type {SupportedExtensions} from \"../../util/get-supported-extensions/get-supported-extensions.js\";\nimport {getSupportedExtensions} from \"../../util/get-supported-extensions/get-supported-extensions.js\";\nimport type {VirtualFile, VirtualFileInput} from \"./virtual-file.js\";\nimport type {AmbientExtension} from \"../../constant/constant.js\";\nimport {AMBIENT_EXTENSIONS} from \"../../constant/constant.js\";\nimport path from \"crosspath\";\n\nexport class ModuleResolutionHost implements TS.ModuleResolutionHost {\n\tprivate readonly directoryExistsCache: Map<string, boolean> = new Map();\n\tprivate readonly fileExistsCache: Map<string, boolean> = new Map();\n\tprivate currentFileNames: Set<string> | undefined;\n\tprivate currentDirectories: Set<string> | undefined;\n\tprivate currentNonAmbientSupportedExtensions: SupportedExtensions | undefined;\n\tconstructor(\n\t\tprotected readonly options: ModuleResolutionHostOptions,\n\t\tprotected readonly files: Map<string, VirtualFile> = new Map()\n\t) {}\n\n\tadd(fileInput: VirtualFileInput | VirtualFile): VirtualFile {\n\t\tconst file = {\n\t\t\t...fileInput,\n\t\t\ttransformedText: \"transformedText\" in fileInput && fileInput.transformedText != null ? fileInput.transformedText : fileInput.text\n\t\t};\n\t\tthis.files.set(file.fileName, file);\n\t\tthis.clearCaches(file.fileName);\n\t\treturn file;\n\t}\n\n\tclearCaches(fileName?: string): void {\n\t\tif (fileName != null) {\n\t\t\tthis.fileExistsCache.delete(fileName);\n\t\t\tthis.directoryExistsCache.delete(path.dirname(fileName));\n\t\t\tthis.currentFileNames = undefined;\n\t\t\tthis.currentDirectories = undefined;\n\t\t} else {\n\t\t\tthis.directoryExistsCache.clear();\n\t\t\tthis.fileExistsCache.clear();\n\t\t}\n\t}\n\n\tdelete(fileName: string): boolean {\n\t\tthis.clearCaches(fileName);\n\t\treturn this.files.delete(fileName);\n\t}\n\n\thas(fileName: string): boolean {\n\t\treturn this.files.has(fileName);\n\t}\n\n\tget(fileName: string): VirtualFile | undefined {\n\t\treturn this.files.get(fileName);\n\t}\n\n\tgetFileNames(): Set<string> {\n\t\tif (this.currentFileNames == null) {\n\t\t\tthis.currentFileNames = new Set(this.files.keys());\n\t\t}\n\n\t\treturn this.currentFileNames;\n\t}\n\n\tgetFileNameDirectories(): Set<string> {\n\t\tif (this.currentDirectories == null) {\n\t\t\tthis.currentDirectories = new Set([...this.getFileNames()].map(fileName => path.dirname(fileName)));\n\t\t}\n\n\t\treturn this.currentDirectories;\n\t}\n\n\tgetRollupFileNames(): Set<string> {\n\t\treturn new Set([...this.getFileNames()].filter(fileName => this.get(fileName)!.fromRollup));\n\t}\n\n\tgetFileSystem(): TS.System {\n\t\treturn this.options.fileSystem;\n\t}\n\n\tgetParsedCommandLine(): TS.ParsedCommandLine {\n\t\treturn this.options.parsedCommandLineResult.parsedCommandLine;\n\t}\n\n\tgetCompilationSettings(): TS.CompilerOptions {\n\t\treturn this.getParsedCommandLine().options;\n\t}\n\n\tgetSupportedExtensions(): SupportedExtensions {\n\t\treturn this.options.extensions;\n\t}\n\n\tgetSupportedNonAmbientExtensions(): SupportedExtensions {\n\t\tif (this.currentNonAmbientSupportedExtensions == null) {\n\t\t\tthis.currentNonAmbientSupportedExtensions = new Set([...this.options.extensions].filter(extension => !AMBIENT_EXTENSIONS.has(extension as AmbientExtension)));\n\t\t}\n\t\treturn this.currentNonAmbientSupportedExtensions;\n\t}\n\n\tgetAllKnownTypescriptExtensions(): SupportedExtensions {\n\t\treturn getSupportedExtensions(true, true, this.getTypescript());\n\t}\n\n\tgetTypescript(): typeof TS {\n\t\treturn this.options.typescript;\n\t}\n\n\tgetCwd(): string {\n\t\treturn this.options.cwd;\n\t}\n\n\t/**\n\t * Returns true if the given file exists\n\t */\n\tfileExists(fileName: string): boolean {\n\t\tif (this.fileExistsCache.has(fileName)) {\n\t\t\treturn this.fileExistsCache.get(fileName)!;\n\t\t}\n\n\t\tconst exists = this.files.has(fileName) || this.getFileSystem().fileExists(path.native.normalize(fileName));\n\t\tthis.fileExistsCache.set(fileName, exists);\n\t\treturn exists;\n\t}\n\n\t/**\n\t * Reads the given file\n\t */\n\treadFile(fileName: string, encoding?: string): string | undefined {\n\t\t// Check if the file exists within the cached files and return it if so\n\t\tconst result = this.files.get(fileName);\n\t\tif (result != null) return result.text;\n\n\t\t// Otherwise, try to properly resolve the file\n\t\treturn this.getFileSystem().readFile(path.native.normalize(fileName), encoding);\n\t}\n\n\t/**\n\t * Returns true if the given directory exists\n\t */\n\tdirectoryExists(directoryName: string): boolean {\n\t\tif (this.directoryExistsCache.has(directoryName)) {\n\t\t\treturn this.directoryExistsCache.get(directoryName)!;\n\t\t}\n\t\tconst absoluteDirectoryName = ensureAbsolute(this.getCwd(), directoryName);\n\t\tconst fileNameDirectories = this.getFileNameDirectories();\n\n\t\tconst result =\n\t\t\tfileNameDirectories.has(directoryName) ||\n\t\t\tfileNameDirectories.has(absoluteDirectoryName) ||\n\t\t\tthis.getFileSystem().directoryExists(path.native.normalize(directoryName)) ||\n\t\t\tthis.getFileSystem().directoryExists(path.native.normalize(absoluteDirectoryName));\n\t\tthis.directoryExistsCache.set(directoryName, result);\n\t\treturn result;\n\t}\n\n\t/**\n\t * Gets the real path for the given path. Meant to resolve symlinks\n\t */\n\trealpath(p: string): string {\n\t\tconst normalized = path.native.normalize(p);\n\t\tconst fs = this.getFileSystem();\n\t\tif (fs.realpath == null) return normalized;\n\t\treturn path.normalize(fs.realpath(normalized));\n\t}\n\n\t/**\n\t * Gets the current directory\n\t */\n\tgetCurrentDirectory(): string {\n\t\treturn path.normalize(this.getCwd());\n\t}\n\n\t/**\n\t * Gets all directories within the given directory path\n\t */\n\tgetDirectories(directoryName: string): string[] {\n\t\treturn this.getFileSystem().getDirectories(path.native.normalize(directoryName)).map(path.normalize);\n\t}\n}\n","import type {TS} from \"../../type/ts.js\";\n\n/**\n * Gets the NewLineCharacter to use for a NewLineKind\n */\nexport function getNewLineCharacter(newLine: TS.NewLineKind, typescript: typeof TS): string {\n\tswitch (newLine) {\n\t\tcase typescript.NewLineKind.CarriageReturnLineFeed:\n\t\t\treturn \"\\r\\n\";\n\t\tcase typescript.NewLineKind.LineFeed:\n\t\t\treturn \"\\n\";\n\t}\n}\n","import type {ResolveModuleOptions} from \"./resolve-module-options.js\";\nimport type {ExtendedResolvedModule} from \"../../service/cache/resolve-cache/extended-resolved-module.js\";\n\n/**\n * Resolves an id from the given parent\n */\nexport function resolveId({resolveCache, ...options}: ResolveModuleOptions): ExtendedResolvedModule | null {\n\t// Don't proceed if there is no parent (in which case this is an entry module)\n\tif (options.parent == null) return null;\n\n\treturn resolveCache.get(options);\n}\n","import {JS_EXTENSION, JSON_EXTENSION, JSX_EXTENSION, TS_EXTENSION, TSX_EXTENSION} from \"../../constant/constant.js\";\nimport type {TS} from \"../../type/ts.js\";\n\n/**\n * Gets a ScriptKind from the given path\n */\nexport function getScriptKindFromPath(path: string, typescript: typeof TS): TS.ScriptKind {\n\tif (path.endsWith(JS_EXTENSION)) {\n\t\treturn typescript.ScriptKind.JS;\n\t} else if (path.endsWith(TS_EXTENSION)) {\n\t\treturn typescript.ScriptKind.TS;\n\t} else if (path.endsWith(TSX_EXTENSION)) {\n\t\treturn typescript.ScriptKind.TSX;\n\t} else if (path.endsWith(JSX_EXTENSION)) {\n\t\treturn typescript.ScriptKind.JSX;\n\t} else if (path.endsWith(JSON_EXTENSION)) {\n\t\treturn typescript.ScriptKind.JSON;\n\t} else {\n\t\treturn typescript.ScriptKind.Unknown;\n\t}\n}\n","import type {TS} from \"../../../type/ts.js\";\nimport type {TransformerBaseOptions} from \"../declaration-bundler/transformers/transformer-base-options.js\";\nimport {nodeHasSupportedExtension} from \"../declaration-bundler/util/node-has-supported-extension.js\";\n\nexport function ensureModuleTransformer({typescript, factory, sourceFile, extensions}: TransformerBaseOptions): TS.SourceFile {\n\t// Only consider import declarations from modules with supported filenames\n\tconst importDeclarationCount = sourceFile.statements\n\t\t.filter(typescript.isImportDeclaration)\n\t\t.filter(importDeclaration => nodeHasSupportedExtension(importDeclaration, typescript, extensions)).length;\n\t// Only consider import declarations from modules with supported filenames\n\tconst exportDeclarationCount = sourceFile.statements\n\t\t.filter(typescript.isExportDeclaration)\n\t\t.filter(exportDeclaration => nodeHasSupportedExtension(exportDeclaration, typescript, extensions)).length;\n\t// Only consider import declarations from modules with supported filenames\n\tconst exportAssignmentCount = sourceFile.statements.filter(typescript.isExportAssignment).length;\n\n\t// If there's nothing to mark the file as a module, add an empty ExportDeclaration to mark it as such\n\tif (importDeclarationCount < 1 && exportDeclarationCount < 1 && exportAssignmentCount < 1) {\n\t\treturn factory.updateSourceFile(\n\t\t\tsourceFile,\n\t\t\t[...sourceFile.statements, factory.createExportDeclaration(undefined, false, factory.createNamedExports([]))],\n\t\t\tsourceFile.isDeclarationFile,\n\t\t\tsourceFile.referencedFiles,\n\t\t\tsourceFile.typeReferenceDirectives,\n\t\t\tsourceFile.hasNoDefaultLib,\n\t\t\tsourceFile.libReferenceDirectives\n\t\t);\n\t}\n\n\treturn sourceFile;\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TrackDependenciesTransformerVisitorOptions} from \"../track-dependencies-transformer-visitor-options.js\";\n\nexport function visitImportDeclaration({node, typescript, host, sourceFile, addDependency}: TrackDependenciesTransformerVisitorOptions<TS.ImportDeclaration>): void {\n\tif (!typescript.isStringLiteralLike(node.moduleSpecifier)) return;\n\tconst resolvedModule = host.resolve(node.moduleSpecifier.text, sourceFile.fileName);\n\tif (resolvedModule != null) {\n\t\taddDependency({\n\t\t\t...resolvedModule,\n\t\t\tmoduleSpecifier: node.moduleSpecifier.text\n\t\t});\n\t}\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TrackDependenciesTransformerVisitorOptions} from \"../track-dependencies-transformer-visitor-options.js\";\n\nexport function visitImportTypeNode({node, typescript, host, sourceFile, addDependency, continuation}: TrackDependenciesTransformerVisitorOptions<TS.ImportTypeNode>): void {\n\tif (!typescript.isLiteralTypeNode(node.argument) || !typescript.isStringLiteralLike(node.argument.literal)) return;\n\tconst moduleSpecifier = node.argument.literal.text;\n\n\tconst resolvedModule = host.resolve(moduleSpecifier, sourceFile.fileName);\n\n\tif (resolvedModule != null) {\n\t\taddDependency({\n\t\t\t...resolvedModule,\n\t\t\tmoduleSpecifier\n\t\t});\n\t}\n\n\tif (node.qualifier != null) {\n\t\tcontinuation(node.qualifier);\n\t}\n\n\tif (node.typeArguments != null) {\n\t\tfor (const typeArgument of node.typeArguments) {\n\t\t\tcontinuation(typeArgument);\n\t\t}\n\t}\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TrackDependenciesTransformerVisitorOptions} from \"../track-dependencies-transformer-visitor-options.js\";\n\nexport function visitModuleDeclaration({node, ...options}: TrackDependenciesTransformerVisitorOptions<TS.ModuleDeclaration>): void {\n\tif (node.body == null) return;\n\treturn options.childContinuation(node.body);\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TrackDependenciesTransformerVisitorOptions} from \"../track-dependencies-transformer-visitor-options.js\";\n\nexport function visitExportDeclaration({node, typescript, host, sourceFile, addDependency}: TrackDependenciesTransformerVisitorOptions<TS.ExportDeclaration>): void {\n\tif (node.moduleSpecifier == null || !typescript.isStringLiteralLike(node.moduleSpecifier)) return;\n\n\tconst resolvedModule = host.resolve(node.moduleSpecifier.text, sourceFile.fileName);\n\tif (resolvedModule != null) {\n\t\taddDependency({\n\t\t\t...resolvedModule,\n\t\t\tmoduleSpecifier: node.moduleSpecifier.text\n\t\t});\n\t}\n}\n","import type {TS} from \"../../../../../../type/ts.js\";\nimport type {TrackDependenciesTransformerVisitorOptions} from \"../track-dependencies-transformer-visitor-options.js\";\nimport {visitImportDeclaration} from \"./visit-import-declaration.js\";\nimport {visitImportTypeNode} from \"./visit-import-type-node.js\";\nimport {visitModuleDeclaration} from \"./visit-module-declaration.js\";\nimport {visitExportDeclaration} from \"./visit-export-declaration.js\";\n\nexport function visitNode({node, ...options}: TrackDependenciesTransformerVisitorOptions<TS.Node>): void {\n\tif (options.typescript.isImportDeclaration(node)) {\n\t\treturn visitImportDeclaration({...options, node});\n\t} else if (options.typescript.isImportTypeNode(node)) {\n\t\treturn visitImportTypeNode({...options, node});\n\t} else if (options.typescript.isExportDeclaration(node)) {\n\t\treturn visitExportDeclaration({...options, node});\n\t} else if (options.typescript.isModuleDeclaration(node)) {\n\t\treturn visitModuleDeclaration({...options, node});\n\t} else if (options.shouldDeepTraverse) {\n\t\treturn options.childContinuation(node);\n\t}\n}\n","import type {TS} from \"../../../../../type/ts.js\";\nimport {visitNode} from \"./visitor/visit-node.js\";\nimport type {TrackDependenciesOptions, TrackDependenciesTransformerVisitorOptions} from \"./track-dependencies-transformer-visitor-options.js\";\nimport type {ModuleDependency} from \"../../../../../util/get-module-dependencies/get-module-dependencies.js\";\n\nexport function trackDependenciesTransformer(options: TrackDependenciesOptions): Set<ModuleDependency> {\n\tconst typescript = options.host.getTypescript();\n\tconst dependencies: Set<ModuleDependency> = new Set();\n\n\t// Prepare some VisitorOptions\n\tconst visitorOptions: Omit<TrackDependenciesTransformerVisitorOptions<TS.Node>, \"node\"> = {\n\t\t...options,\n\t\ttypescript,\n\t\t// Optimization: We only need to traverse nested nodes inside of the SourceFile if it contains at least one ImportTypeNode (or at least what appears to be one)\n\t\tshouldDeepTraverse: options.sourceFile.text.includes(\"import(\"),\n\n\t\taddDependency(resolvedModule: ModuleDependency): void {\n\t\t\tdependencies.add(resolvedModule);\n\t\t},\n\n\t\tchildContinuation: <U extends TS.Node>(node: U): void =>\n\t\t\ttypescript.forEachChild(node, nextNode => {\n\t\t\t\tvisitNode({\n\t\t\t\t\t...visitorOptions,\n\t\t\t\t\tnode: nextNode\n\t\t\t\t});\n\t\t\t}),\n\n\t\tcontinuation: <U extends TS.Node>(node: U): void => {\n\t\t\tvisitNode({\n\t\t\t\t...visitorOptions,\n\t\t\t\tnode\n\t\t\t});\n\t\t}\n\t};\n\n\ttypescript.forEachChild(options.sourceFile, nextNode => {\n\t\tvisitorOptions.continuation(nextNode);\n\t});\n\treturn dependencies;\n}\n","import type {CompilerHost} from \"../../service/compiler-host/compiler-host.js\";\nimport type {ExtendedResolvedModule} from \"../../service/cache/resolve-cache/extended-resolved-module.js\";\nimport {getExtension} from \"../path/path-util.js\";\nimport {D_TS_EXTENSION} from \"../../constant/constant.js\";\nimport {trackDependenciesTransformer} from \"../../service/transformer/declaration-bundler/transformers/track-dependencies-transformer/track-dependencies-transformer.js\";\n\nexport interface GetModuleDependenciesOptions {\n\tcompilerHost: CompilerHost;\n\tmodule: string;\n}\n\nexport interface ModuleDependency extends ExtendedResolvedModule {\n\tmoduleSpecifier: string;\n}\n\nexport function getModuleDependencies(options: GetModuleDependenciesOptions): Set<ModuleDependency> | undefined {\n\t// Skip .d.ts files\n\tif (getExtension(options.module) === D_TS_EXTENSION) return undefined;\n\n\tconst cachedDependencies = options.compilerHost.getDependenciesForFile(options.module);\n\n\tif (cachedDependencies != null) {\n\t\treturn cachedDependencies;\n\t}\n\n\tconst sourceFile = options.compilerHost.getSourceFile(options.module);\n\tif (sourceFile == null) {\n\t\treturn;\n\t}\n\n\treturn trackDependenciesTransformer({\n\t\thost: options.compilerHost,\n\t\tsourceFile\n\t});\n}\n","import type {TS} from \"../../type/ts.js\";\nimport type {CompilerHostOptions, CustomTransformersInput} from \"./compiler-host-options.js\";\nimport {ModuleResolutionHost} from \"../module-resolution-host/module-resolution-host.js\";\nimport {getNewLineCharacter} from \"../../util/get-new-line-character/get-new-line-character.js\";\nimport {resolveId} from \"../../util/resolve-id/resolve-id.js\";\nimport {getScriptKindFromPath} from \"../../util/get-script-kind-from-path/get-script-kind-from-path.js\";\nimport type {VirtualFile, VirtualFileInput} from \"../module-resolution-host/virtual-file.js\";\nimport {mergeTransformers} from \"../../util/merge-transformers/merge-transformers.js\";\nimport {ensureModuleTransformer} from \"../transformer/ensure-module/ensure-module-transformer.js\";\nimport type {SourceFileToDependenciesMap} from \"../transformer/declaration-bundler/declaration-bundler-options.js\";\nimport type {ExtendedResolvedModule} from \"../cache/resolve-cache/extended-resolved-module.js\";\nimport type {ModuleDependency} from \"../../util/get-module-dependencies/get-module-dependencies.js\";\nimport {getModuleDependencies} from \"../../util/get-module-dependencies/get-module-dependencies.js\";\nimport {pickResolvedModule} from \"../../util/pick-resolved-module.js\";\nimport path from \"crosspath\";\nimport {ensureAbsolute, getExtension, isExternal, isTypeScriptLib} from \"../../util/path/path-util.js\";\nimport {ensureNodeFactory} from \"compatfactory\";\nimport {isRecord} from \"../../util/object/object-util.js\";\nimport type {KnownExtension} from \"../../constant/constant.js\";\n\nexport class CompilerHost extends ModuleResolutionHost implements TS.CompilerHost {\n\tprivate previousProgram: TS.EmitAndSemanticDiagnosticsBuilderProgram | undefined;\n\tprivate currentProgram: TS.EmitAndSemanticDiagnosticsBuilderProgram | undefined;\n\tprivate currentTypeRoots: Set<string> | undefined;\n\tprivate currentProgramInstance: TS.Program | undefined;\n\tprivate currentTypeChecker: TS.TypeChecker | undefined;\n\tprivate emitOutput: TS.EmitOutput | undefined;\n\tprivate creatingProgram = false;\n\tprivate invalidateProgram = false;\n\tprivate readonly externalFiles = new Set<string>();\n\n\tconstructor(\n\t\tprotected readonly options: CompilerHostOptions,\n\t\tprotected readonly printer: TS.Printer = options.typescript.createPrinter({\n\t\t\tnewLine: options.parsedCommandLineResult.parsedCommandLine.options.newLine\n\t\t}),\n\t\tprotected readonly sourceFiles: Map<string, TS.SourceFile> = new Map(),\n\t\tprotected readonly transformerDiagnostics: Map<string, TS.Diagnostic[]> = new Map(),\n\t\tprotected readonly fileToVersionMap: Map<string, number> = new Map(),\n\t\tprotected readonly sourceFileToDependenciesMap: SourceFileToDependenciesMap = new Map(),\n\t\tfiles?: Map<string, VirtualFile>\n\t) {\n\t\tsuper(options, files);\n\t\tthis.addDefaultFileNames();\n\t}\n\n\tallowTransformingDeclarations(): boolean {\n\t\treturn this.options.allowTransformingDeclarations === true;\n\t}\n\n\tisSupportedFileName(fileName: string, ignoreFilter = false): boolean {\n\t\treturn (ignoreFilter || this.options.filter(fileName)) && this.getSupportedExtensions().has(getExtension(fileName) as KnownExtension);\n\t}\n\n\tgetDiagnostics(fileName?: string): readonly TS.Diagnostic[] {\n\t\tconst program = this.getProgram();\n\n\t\tconst sourceFile = fileName == null ? undefined : this.getSourceFile(fileName);\n\t\tconst baseDiagnostics = [\n\t\t\t...this.getParsedCommandLine().errors,\n\t\t\t...program.getConfigFileParsingDiagnostics(),\n\t\t\t...program.getOptionsDiagnostics(),\n\t\t\t...program.getSyntacticDiagnostics(sourceFile),\n\t\t\t...program.getGlobalDiagnostics(),\n\t\t\t...program.getSemanticDiagnostics(sourceFile)\n\t\t];\n\n\t\tif (sourceFile != null) {\n\t\t\treturn [...baseDiagnostics, ...(this.transformerDiagnostics.get(sourceFile.fileName) ?? [])];\n\t\t} else {\n\t\t\tconst extraDiagnostics: TS.Diagnostic[] = [];\n\t\t\tfor (const transformerDiagnostics of this.transformerDiagnostics.values()) {\n\t\t\t\textraDiagnostics.push(...transformerDiagnostics);\n\t\t\t}\n\n\t\t\treturn [...baseDiagnostics, ...extraDiagnostics];\n\t\t}\n\t}\n\n\temitBuildInfo(): TS.EmitOutput {\n\t\tthis.popEmitOutput();\n\t\tconst programWithEmitBuildInfo = this.getProgramInstance() as TS.Program & {emitBuildInfo?(writeFileCallback: TS.WriteFileCallback): void};\n\t\t// A non-exposed internal method, emitBuildInfo, is used, if available (which it is from TypeScript v3.4 and up)\n\t\t// If not, we would have to emit the entire Program (or pending affected files) which can be avoided for maximum performance\n\t\tprogramWithEmitBuildInfo.emitBuildInfo?.(this.writeFile.bind(this));\n\n\t\treturn this.popEmitOutput();\n\t}\n\n\temit(fileName?: string, onlyDts = false, transformers?: CustomTransformersInput): TS.EmitOutput {\n\t\tthis.popEmitOutput();\n\n\t\tconst sourceFile = fileName == null ? undefined : this.getSourceFile(fileName);\n\t\tconst customTransformers = this.getCustomTransformers(transformers);\n\t\tlet hasEmitted = false;\n\n\t\tconst runEmit = (program: TS.Program | TS.EmitAndSemanticDiagnosticsBuilderProgram) => {\n\t\t\t// There is an extra, private, argument that can be given to emit internally in TypeScript\n\t\t\t// which forces emit of declarations. Set this to true for dts emit.\n\t\t\t(\n\t\t\t\tprogram as TS.Program & {\n\t\t\t\t\temit: (\n\t\t\t\t\t\ttargetSourceFile?: TS.SourceFile,\n\t\t\t\t\t\twriteFile?: TS.WriteFileCallback,\n\t\t\t\t\t\tcancellationToken?: TS.CancellationToken,\n\t\t\t\t\t\temitOnlyDtsFiles?: boolean,\n\t\t\t\t\t\tcustomTransformers?: TS.CustomTransformers,\n\t\t\t\t\t\tforceDtsEmit?: boolean\n\t\t\t\t\t) => TS.EmitResult;\n\t\t\t\t}\n\t\t\t).emit(\n\t\t\t\tsourceFile,\n\t\t\t\t(file, data, writeByteOrderMark) => {\n\t\t\t\t\thasEmitted = true;\n\t\t\t\t\tthis.writeFile(file, data, writeByteOrderMark);\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\tonlyDts,\n\t\t\t\tcustomTransformers,\n\t\t\t\tonlyDts == null || !onlyDts ? undefined : true\n\t\t\t);\n\t\t};\n\n\t\trunEmit(this.getProgram());\n\n\t\t// TypeScript will not emit if a builder-program haven't changed. In that case, use the underlying program instance and emit with that one.\n\t\tif (!hasEmitted) {\n\t\t\trunEmit(this.getProgramInstance());\n\t\t}\n\n\t\treturn this.popEmitOutput();\n\t}\n\n\twriteFile(name: string, text: string, writeByteOrderMark: boolean): void {\n\t\tconst emitOutput = this.ensureEmitOutput();\n\t\temitOutput.outputFiles.push({\n\t\t\tname,\n\t\t\ttext,\n\t\t\twriteByteOrderMark\n\t\t});\n\t}\n\n\tgetScriptTarget(): TS.ScriptTarget {\n\t\treturn this.getCompilationSettings().target ?? this.getTypescript().ScriptTarget.ES5;\n\t}\n\n\tprivate createProgram(): TS.EmitAndSemanticDiagnosticsBuilderProgram {\n\t\tconst typescript = this.getTypescript();\n\n\t\tconst rootNames = [...this.getFileNames()];\n\t\tconst options = this.getCompilationSettings();\n\n\t\t// The --incremental option is part of TypeScript 3.4 and up only\n\t\tif (\"createIncrementalProgram\" in (typescript as Partial<typeof TS>)) {\n\t\t\treturn typescript.createIncrementalProgram({\n\t\t\t\trootNames,\n\t\t\t\toptions,\n\t\t\t\thost: this\n\t\t\t});\n\t\t} else {\n\t\t\treturn typescript.createEmitAndSemanticDiagnosticsBuilderProgram(rootNames, options, this, this.previousProgram);\n\t\t}\n\t}\n\n\tgetProgram(): TS.EmitAndSemanticDiagnosticsBuilderProgram {\n\t\t// If there is no current program, or if the list of root names is out of sync with the actual list of files, construct a new Program\n\t\tif (this.currentProgram == null) {\n\t\t\t// Construct a new program.\n\t\t\tthis.creatingProgram = true;\n\t\t\ttry {\n\t\t\t\tthis.currentProgram = this.createProgram();\n\t\t\t} finally {\n\t\t\t\tthis.creatingProgram = false;\n\t\t\t}\n\n\t\t\t// If the program was invalidated before it was ever finished being created,\n\t\t\t// Try again to ensure all SourceFiles will be part of it\n\t\t\tif (this.invalidateProgram) {\n\t\t\t\tthis.invalidateProgram = false;\n\t\t\t\tthis.currentProgram = this.createProgram();\n\t\t\t}\n\t\t}\n\n\t\treturn this.currentProgram;\n\t}\n\n\tgetPrinter(): TS.Printer {\n\t\treturn this.printer;\n\t}\n\n\tgetProgramInstance(): TS.Program {\n\t\tif (this.currentProgramInstance == null) {\n\t\t\tthis.currentProgramInstance = this.getProgram().getProgram();\n\t\t}\n\t\treturn this.currentProgramInstance;\n\t}\n\n\tgetTypeChecker(): TS.TypeChecker {\n\t\tif (this.currentTypeChecker == null) {\n\t\t\tthis.currentTypeChecker = this.getProgramInstance().getTypeChecker();\n\t\t}\n\t\treturn this.currentTypeChecker;\n\t}\n\n\tgetFilter(): (id: string) => boolean {\n\t\treturn this.options.filter;\n\t}\n\n\tgetTransformers(): CustomTransformersInput {\n\t\treturn this.options.transformers;\n\t}\n\n\tprivate getDependenciesForFileDeep(fileName: string, dependencies: Set<ModuleDependency> = new Set(), seenModules: Set<string> = new Set()): Set<ModuleDependency> {\n\t\tif (seenModules.has(fileName)) return dependencies;\n\t\tseenModules.add(fileName);\n\t\tconst localDependencies = this.sourceFileToDependenciesMap.get(fileName);\n\t\tconst dependenciesArr = [...dependencies];\n\t\tif (localDependencies != null) {\n\t\t\tfor (const dependency of localDependencies) {\n\t\t\t\tif (\n\t\t\t\t\t!dependenciesArr.some(\n\t\t\t\t\t\t({resolvedFileName, resolvedAmbientFileName}) => resolvedFileName === dependency.resolvedFileName && resolvedAmbientFileName === dependency.resolvedAmbientFileName\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tdependencies.add(dependency);\n\t\t\t\t\tif (dependency.resolvedFileName != null) this.getDependenciesForFileDeep(dependency.resolvedFileName, dependencies, seenModules);\n\t\t\t\t\tif (dependency.resolvedAmbientFileName != null) {\n\t\t\t\t\t\tthis.getDependenciesForFileDeep(dependency.resolvedAmbientFileName, dependencies, seenModules);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn dependencies;\n\t}\n\n\tgetDependenciesForFile(fileName: string, deep = false): Set<ModuleDependency> | undefined {\n\t\tif (deep) {\n\t\t\treturn this.getDependenciesForFileDeep(fileName);\n\t\t}\n\t\treturn this.sourceFileToDependenciesMap.get(fileName);\n\t}\n\n\tgetAllDependencies(): SourceFileToDependenciesMap {\n\t\treturn this.sourceFileToDependenciesMap;\n\t}\n\n\tadd(fileInput: VirtualFileInput | VirtualFile, traceDependencies = true): VirtualFile {\n\t\tconst existing = this.get(fileInput.fileName);\n\t\tif (existing != null && existing.text === fileInput.text) {\n\t\t\treturn existing;\n\t\t}\n\n\t\tthis.delete(fileInput.fileName);\n\n\t\tif (fileInput.fromRollup) {\n\t\t\tconst sourceFile = this.constructSourceFile(fileInput.fileName, fileInput.text);\n\t\t\tconst typescript = this.getTypescript();\n\t\t\tconst factory = ensureNodeFactory(typescript);\n\t\t\tconst transformedSourceFile = ensureModuleTransformer({typescript, factory, sourceFile, extensions: this.getAllKnownTypescriptExtensions()});\n\t\t\tif (transformedSourceFile !== sourceFile) {\n\t\t\t\t(fileInput as VirtualFile).transformedText = this.printer.printFile(transformedSourceFile);\n\t\t\t}\n\t\t}\n\n\t\tconst addedFile = super.add(fileInput);\n\t\tif (traceDependencies) {\n\t\t\tthis.refreshDependenciesForFileName(fileInput.fileName);\n\t\t}\n\n\t\treturn addedFile;\n\t}\n\n\tprivate refreshDependenciesForFileName(fileName: string, seenModules: Set<string> = new Set()): void {\n\t\tif (seenModules.has(fileName) || this.externalFiles.has(fileName)) return;\n\t\tseenModules.add(fileName);\n\n\t\tconst dependencies = getModuleDependencies({\n\t\t\tcompilerHost: this,\n\t\t\tmodule: fileName\n\t\t});\n\n\t\tif (dependencies == null) return;\n\t\tthis.sourceFileToDependenciesMap.set(fileName, dependencies);\n\n\t\tfor (const resolveResult of dependencies) {\n\t\t\t// Don't perform a recursive descent into the files that are external\n\t\t\tif (isExternal(resolveResult.moduleSpecifier, fileName, this.options.externalOption)) {\n\t\t\t\t// Mark the module as external\n\t\t\t\tthis.externalFiles.add(pickResolvedModule(resolveResult, true));\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tfor (const module of [resolveResult.resolvedFileName, resolveResult.resolvedAmbientFileName]) {\n\t\t\t\tif (module == null) continue;\n\t\t\t\tthis.refreshDependenciesForFileName(module, seenModules);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate constructSourceFile(fileName: string, text: string, languageVersion: TS.ScriptTarget = this.getScriptTarget()): TS.SourceFile {\n\t\treturn this.getTypescript().createSourceFile(fileName, text, languageVersion, true, getScriptKindFromPath(fileName, this.getTypescript()));\n\t}\n\n\tprivate clearProgram(): void {\n\t\tif (this.creatingProgram) {\n\t\t\tthis.invalidateProgram = true;\n\t\t}\n\n\t\tthis.previousProgram = this.currentProgram;\n\t\tthis.currentProgram = undefined;\n\t\tthis.currentProgramInstance = undefined;\n\t\tthis.currentTypeChecker = undefined;\n\t}\n\n\tprivate ensureEmitOutput(): TS.EmitOutput {\n\t\tif (this.emitOutput == null) {\n\t\t\tthis.emitOutput = {\n\t\t\t\toutputFiles: [],\n\t\t\t\temitSkipped: false\n\t\t\t};\n\t\t}\n\t\treturn this.emitOutput;\n\t}\n\n\tprivate popEmitOutput(): TS.EmitOutput {\n\t\tconst emitOutput = this.ensureEmitOutput();\n\t\tthis.emitOutput = undefined;\n\t\treturn emitOutput;\n\t}\n\n\tdelete(fileName: string): boolean {\n\t\tconst superDelete = super.delete(fileName);\n\t\tconst sourceFilesDelete = this.sourceFiles.delete(fileName);\n\t\tconst transformerDiagnosticsDelete = this.transformerDiagnostics.delete(fileName);\n\t\tconst sourceFileToDependenciesMapDelete = this.sourceFileToDependenciesMap.delete(fileName);\n\t\tconst success = superDelete || sourceFilesDelete || transformerDiagnosticsDelete || sourceFileToDependenciesMapDelete;\n\t\tthis.clearProgram();\n\t\treturn success;\n\t}\n\n\tclone(\n\t\tcompilerOptions: TS.CompilerOptions,\n\t\tfileNameFilter: (file: string) => boolean = () => true,\n\t\toverrides: Partial<Omit<CompilerHostOptions, \"parsedCommandLineResult\">> = {}\n\t): CompilerHost {\n\t\treturn new CompilerHost(\n\t\t\t{\n\t\t\t\t...this.options,\n\t\t\t\t...overrides,\n\t\t\t\tparsedCommandLineResult: {\n\t\t\t\t\t...this.options.parsedCommandLineResult,\n\t\t\t\t\tparsedCommandLine: {\n\t\t\t\t\t\t...this.getParsedCommandLine(),\n\t\t\t\t\t\tfileNames: this.getParsedCommandLine().fileNames.filter(fileNameFilter),\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t...this.getCompilationSettings(),\n\t\t\t\t\t\t\t...compilerOptions\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tthis.printer,\n\t\t\tnew Map([...this.sourceFiles.entries()].filter(([p]) => fileNameFilter(p))),\n\t\t\tnew Map([...this.transformerDiagnostics.entries()].filter(([p]) => fileNameFilter(p))),\n\t\t\tnew Map([...this.fileToVersionMap.entries()].filter(([p]) => fileNameFilter(p))),\n\t\t\tnew Map([...this.sourceFileToDependenciesMap.entries()].filter(([p]) => fileNameFilter(p))),\n\t\t\tnew Map([...this.files.entries()].filter(([p]) => fileNameFilter(p)))\n\t\t);\n\t}\n\n\tgetSourceFile(\n\t\tfileName: string,\n\t\tlanguageVersionOrOptions: TS.ScriptTarget | TS.CreateSourceFileOptions = this.getScriptTarget(),\n\t\tonError?: (message: string) => void\n\t): TS.SourceFile | undefined {\n\t\ttry {\n\t\t\tconst languageVersion = isRecord(languageVersionOrOptions) ? languageVersionOrOptions.languageVersion : languageVersionOrOptions;\n\t\t\tconst absoluteFileName = path.includeDriveLetter(isTypeScriptLib(fileName) ? path.join(this.getDefaultLibLocation(), fileName) : ensureAbsolute(this.getCwd(), fileName));\n\n\t\t\tif (this.sourceFiles.has(absoluteFileName)) {\n\t\t\t\treturn this.sourceFiles.get(absoluteFileName);\n\t\t\t}\n\n\t\t\tif (!this.isSupportedFileName(absoluteFileName, true)) return undefined;\n\t\t\tlet file = this.get(absoluteFileName);\n\n\t\t\tif (file == null) {\n\t\t\t\tconst text = this.readFile(absoluteFileName);\n\t\t\t\tif (text == null) return undefined;\n\n\t\t\t\tfile = this.add({fileName: absoluteFileName, text, fromRollup: false}, false);\n\t\t\t}\n\n\t\t\tconst sourceFile = this.constructSourceFile(absoluteFileName, file.transformedText, languageVersion);\n\t\t\tthis.sourceFiles.set(absoluteFileName, sourceFile);\n\n\t\t\tconst oldVersion = this.fileToVersionMap.get(absoluteFileName) ?? 0;\n\t\t\tconst newVersion = oldVersion + 1;\n\t\t\tthis.fileToVersionMap.set(absoluteFileName, newVersion);\n\n\t\t\t// SourceFiles in builder programs needs a version\n\t\t\t(sourceFile as unknown as {version: number}).version = newVersion;\n\n\t\t\treturn sourceFile;\n\t\t} catch (ex) {\n\t\t\tif (ex instanceof Error) {\n\t\t\t\tonError?.(ex.message);\n\t\t\t} else {\n\t\t\t\tonError?.(`An unknown error occured while getting a SourceFile for filename: ${fileName}`);\n\t\t\t}\n\n\t\t\t// Re-throw the exception\n\t\t\tthrow ex;\n\t\t}\n\t}\n\n\tgetTypeRoots() {\n\t\tif (this.currentTypeRoots == null) {\n\t\t\tthis.currentTypeRoots = new Set(this.getTypescript().getEffectiveTypeRoots(this.getCompilationSettings(), this));\n\t\t}\n\t\treturn this.currentTypeRoots;\n\t}\n\n\tgetDefaultLibLocation(): string {\n\t\treturn path.dirname(this.getTypescript().getDefaultLibFilePath(this.getCompilationSettings()));\n\t}\n\n\t/**\n\t * Gets the Custom Transformers to use, depending on the current emit mode\n\t */\n\tgetCustomTransformers(transformers: CustomTransformersInput = this.getTransformers()): TS.CustomTransformers | undefined {\n\t\tconst mergedTransformers = mergeTransformers(transformers);\n\t\tconst upgradedTransformers = mergedTransformers({\n\t\t\tprogram: this.getProgramInstance(),\n\t\t\ttypescript: this.getTypescript(),\n\t\t\tprinter: this.printer,\n\n\t\t\t/**\n\t\t\t * This hook can add diagnostics from within CustomTransformers. These will be emitted alongside Typescript diagnostics seamlessly\n\t\t\t */\n\t\t\taddDiagnostics: (...diagnostics) => {\n\t\t\t\tdiagnostics.forEach(diagnostic => {\n\t\t\t\t\t// Skip diagnostics that doesn't point to a specific file\n\t\t\t\t\tif (diagnostic.file == null) return;\n\t\t\t\t\tlet transformerDiagnostics = this.transformerDiagnostics.get(diagnostic.file.fileName);\n\t\t\t\t\t// If no file matches the one of the diagnostic, skip it\n\t\t\t\t\tif (transformerDiagnostics == null) {\n\t\t\t\t\t\ttransformerDiagnostics = [];\n\t\t\t\t\t\tthis.transformerDiagnostics.set(diagnostic.file.fileName, transformerDiagnostics);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Add the diagnostic\n\t\t\t\t\ttransformerDiagnostics.push(diagnostic);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\t// Ensure that declarations are never transformed if not allowed\n\t\tif (!this.allowTransformingDeclarations()) {\n\t\t\treturn {\n\t\t\t\t...upgradedTransformers,\n\t\t\t\tafterDeclarations: undefined\n\t\t\t};\n\t\t}\n\t\treturn upgradedTransformers;\n\t}\n\n\t/**\n\t * Gets the default lib file name based on the given CompilerOptions\n\t */\n\tgetDefaultLibFileName(compilerOptions: TS.CompilerOptions): string {\n\t\treturn this.getTypescript().getDefaultLibFileName(compilerOptions);\n\t}\n\n\t/**\n\t * Gets the canonical filename for the given file\n\t */\n\tgetCanonicalFileName(fileName: string): string {\n\t\treturn this.useCaseSensitiveFileNames() ? fileName : fileName.toLowerCase();\n\t}\n\n\t/**\n\t * Returns true if file names should be treated as case-sensitive\n\t */\n\tuseCaseSensitiveFileNames(): boolean {\n\t\treturn this.getFileSystem().useCaseSensitiveFileNames;\n\t}\n\n\t/**\n\t * Gets the newline to use\n\t */\n\tgetNewLine(): string {\n\t\tconst compilationSettings = this.getCompilationSettings();\n\t\treturn compilationSettings.newLine != null ? getNewLineCharacter(compilationSettings.newLine, this.getTypescript()) : this.getFileSystem().newLine;\n\t}\n\n\t/**\n\t * Reads the given directory\n\t */\n\treadDirectory(p: string, extensions: readonly string[], exclude: readonly string[] | undefined, include: readonly string[], depth?: number): string[] {\n\t\treturn this.getFileSystem().readDirectory(path.native.normalize(p), extensions, exclude, include, depth).map(path.normalize);\n\t}\n\n\tresolve(moduleName: string, containingFile: string): ExtendedResolvedModule | null {\n\t\treturn resolveId({\n\t\t\tmoduleResolutionHost: this,\n\t\t\tparent: containingFile,\n\t\t\tid: moduleName,\n\t\t\tresolveCache: this.options.resolveCache\n\t\t});\n\t}\n\n\tresolveModuleNames(moduleNames: string[], containingFile: string): (TS.ResolvedModuleFull | undefined)[] {\n\t\tconst resolvedModules: (TS.ResolvedModuleFull | undefined)[] = [];\n\t\tfor (const moduleName of moduleNames) {\n\t\t\tconst result = this.resolve(moduleName, containingFile);\n\n\t\t\tif (result != null && result.resolvedAmbientFileName != null) {\n\t\t\t\tresolvedModules.push({...result, resolvedFileName: result.resolvedAmbientFileName});\n\t\t\t} else if (result != null && result.resolvedFileName != null) {\n\t\t\t\tresolvedModules.push({...result, resolvedFileName: result.resolvedFileName});\n\t\t\t} else {\n\t\t\t\tresolvedModules.push(undefined);\n\t\t\t}\n\t\t}\n\t\treturn resolvedModules;\n\t}\n\n\tresolveTypeReferenceDirectives(typeReferenceDirectiveNames: string[] | readonly TS.FileReference[], containingFile: string): (TS.ResolvedTypeReferenceDirective | undefined)[] {\n\t\tconst resolvedTypeReferenceDirectives: (TS.ResolvedTypeReferenceDirective | undefined)[] = [];\n\t\tfor (const typeReferenceDirectiveName of typeReferenceDirectiveNames) {\n\t\t\t// try to use standard resolution\n\t\t\tconst result = resolveId({\n\t\t\t\tmoduleResolutionHost: this,\n\t\t\t\tparent: containingFile,\n\t\t\t\tid: isRecord(typeReferenceDirectiveName) ? typeReferenceDirectiveName.fileName : typeReferenceDirectiveName,\n\t\t\t\tresolveCache: this.options.resolveCache\n\t\t\t});\n\t\t\tif (result != null && result.resolvedAmbientFileName != null) {\n\t\t\t\tresolvedTypeReferenceDirectives.push({...result, primary: true, resolvedFileName: result.resolvedAmbientFileName});\n\t\t\t} else if (result != null && result.resolvedFileName != null) {\n\t\t\t\tresolvedTypeReferenceDirectives.push({...result, primary: true, resolvedFileName: result.resolvedFileName});\n\t\t\t} else {\n\t\t\t\tresolvedTypeReferenceDirectives.push(undefined);\n\t\t\t}\n\t\t}\n\t\treturn resolvedTypeReferenceDirectives;\n\t}\n\n\t/**\n\t * Adds all default declaration files to the LanguageService\n\t */\n\tprivate addDefaultFileNames(): void {\n\t\tthis.getParsedCommandLine().fileNames.forEach(file => {\n\t\t\tconst fileName = ensureAbsolute(this.getCwd(), file);\n\n\t\t\tif (!this.getFilter()(path.normalize(fileName))) return;\n\n\t\t\tconst text = this.readFile(fileName);\n\t\t\tif (text != null) {\n\t\t\t\tthis.add({\n\t\t\t\t\tfileName,\n\t\t\t\t\ttext,\n\t\t\t\t\tfromRollup: false\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n}\n","import {TSBUILDINFO_EXTENSION} from \"../../constant/constant.js\";\nimport {getExtension} from \"../path/path-util.js\";\nimport type {TS} from \"../../type/ts.js\";\n\n/**\n * Returns true if the given OutputFile represents .tsbuildinfo\n */\nexport function isBuildInfoOutputFile({name}: TS.OutputFile): boolean {\n\treturn getExtension(name) === TSBUILDINFO_EXTENSION;\n}\n","import type {OutputOptions, PluginContext} from \"rollup\";\nimport type {CompilerHost} from \"../../compiler-host/compiler-host.js\";\nimport type {TypescriptPluginOptions} from \"../../../plugin/typescript-plugin-options.js\";\nimport path from \"crosspath\";\nimport {getOutDir} from \"../../../util/get-out-dir/get-out-dir.js\";\nimport {isBuildInfoOutputFile} from \"../../../util/is-build-info-output-file/is-build-info-output-file.js\";\nimport {shouldDebugEmit} from \"../../../util/is-debug/should-debug.js\";\nimport {logEmit} from \"../../../util/logging/log-emit.js\";\n\nexport interface EmitBuildInfoOptions {\n\tpluginContext: PluginContext;\n\thost: CompilerHost;\n\tpluginOptions: TypescriptPluginOptions;\n\toutputOptions: OutputOptions;\n}\n\nexport function emitBuildInfo(options: EmitBuildInfoOptions): void {\n\tconst compilationSettings = options.host.getCompilationSettings();\n\tif (compilationSettings.tsBuildInfoFile == null) return;\n\n\tconst emitResult = options.host.emitBuildInfo();\n\tconst buildInfo = emitResult.outputFiles.find(isBuildInfoOutputFile);\n\tif (buildInfo == null) return;\n\n\tconst cwd = options.host.getCwd();\n\tconst relativeOutDir = getOutDir(cwd, options.outputOptions);\n\tlet outputPathCandidate = compilationSettings.tsBuildInfoFile;\n\n\t// Rewrite the path\n\tif (options.pluginOptions.hook.outputPath != null) {\n\t\tconst result = options.pluginOptions.hook.outputPath(outputPathCandidate, \"buildInfo\");\n\n\t\tif (result != null) {\n\t\t\toutputPathCandidate = result;\n\t\t}\n\t}\n\n\tif (shouldDebugEmit(options.pluginOptions.debug, outputPathCandidate, buildInfo.text, \"buildInfo\")) {\n\t\tlogEmit(outputPathCandidate, buildInfo.text);\n\t}\n\n\tconst emitFile = path.join(path.relative(relativeOutDir, outputPathCandidate));\n\t// Rollup does not allow emitting files outside of the root of the whatever 'dist' directory that has been provided.\n\t// Under such circumstances, unfortunately, we'll have to default to using whatever FileSystem was provided to write the file to disk\n\tconst needsFileSystem = emitFile.startsWith(\"../\") || emitFile.startsWith(\"..\\\\\") || options.pluginContext.emitFile == null;\n\n\tif (needsFileSystem) {\n\t\toptions.host.getFileSystem().writeFile(path.native.normalize(outputPathCandidate), buildInfo.text);\n\t}\n\n\t// Otherwise, we can use Rollup, which is absolutely preferable\n\telse {\n\t\toptions.pluginContext.emitFile({\n\t\t\ttype: \"asset\",\n\t\t\tsource: buildInfo.text,\n\t\t\tfileName: path.native.normalize(emitFile)\n\t\t});\n\t}\n}\n","/**\n * Checks if the given piece of code is JSON-like\n */\nexport function isJsonLike(code: string): boolean {\n\ttry {\n\t\treturn JSON.parse(code) != null;\n\t} catch {\n\t\treturn false;\n\t}\n}\n","/**\n * Formats the given iterable of strings in a list format (in the English locale)\n */\nexport function listFormat(elements: Iterable<string>, andOrOr: \"and\" | \"or\" = \"and\", mapper: (element: string) => string = element => element): string {\n\tconst arr = [...elements];\n\tif (arr.length === 0) return \"\";\n\telse if (arr.length === 1) return mapper(arr[0]);\n\telse if (arr.length === 2) {\n\t\tconst [first, last] = arr;\n\t\treturn `${mapper(first)} ${andOrOr} ${mapper(last)}`;\n\t} else {\n\t\tconst head = arr.slice(0, arr.length - 1).map(mapper);\n\t\tconst last = mapper(arr.slice(-1)[0]);\n\t\treturn `${head.join(\", \")}, ${andOrOr} ${last}`;\n\t}\n}\n","import type {Babel} from \"../type/babel.js\";\nimport type {Swc} from \"../type/swc.js\";\nimport {listFormat} from \"./list-format.js\";\n\n/**\n * The babel module is optionally imported on-demand as needed\n */\nlet babelModule: typeof Babel | undefined;\n\n/**\n * The swc module is optionally imported on-demand as needed\n */\nlet swcModule: typeof Swc | undefined;\n\nexport async function loadBabel(assertHasPresetTypescript = false): Promise<typeof Babel> {\n\treturn (babelModule ??= await loadModules(\"babel\", \"@babel/core\", [\n\t\t\"@babel/runtime\",\n\t\t\"@babel/plugin-transform-runtime\",\n\t\t\"@babel/preset-env\",\n\t\t...(assertHasPresetTypescript ? [`@babel/preset-typescript`] : [])\n\t]));\n}\n\nexport async function loadSwc(): Promise<typeof Swc> {\n\treturn (swcModule ??= await loadModules(\"swc\", \"@swc/core\", [\"@swc/helpers\"]));\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nasync function loadModules<TCoreModule extends string, TSubModules extends string[]>(context: string, coreModule: TCoreModule, subModules?: TSubModules): Promise<any> {\n\tconst moduleNames = [coreModule, ...(subModules ?? [])] as const;\n\n\t// We could be using Promise.allSettled here, but since we still allow Node v10 we'll have to shim it here.\n\t// Once we move up to Node v12.9 or newer, we can replace this with simply Promise.allSettled\n\tconst results = await Promise.all(\n\t\tmoduleNames\n\t\t\t.map(async moduleName => import(moduleName))\n\t\t\t.map(async promise =>\n\t\t\t\tpromise\n\t\t\t\t\t.then(\n\t\t\t\t\t\tvalue =>\n\t\t\t\t\t\t\t({\n\t\t\t\t\t\t\t\tstatus: \"fulfilled\",\n\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t}) as const\n\t\t\t\t\t)\n\t\t\t\t\t.catch(\n\t\t\t\t\t\treason =>\n\t\t\t\t\t\t\t({\n\t\t\t\t\t\t\t\tstatus: \"rejected\",\n\t\t\t\t\t\t\t\treason\n\t\t\t\t\t\t\t}) as const\n\t\t\t\t\t)\n\t\t\t)\n\t);\n\n\tconst [core] = results;\n\n\tconst rejectedModuleNames = moduleNames.filter((moduleName, index) => {\n\t\tconst result = results[index];\n\t\tif (result.status === \"fulfilled\") return false;\n\t\tif (!(result.reason instanceof Error)) return true;\n\n\t\treturn (\n\t\t\t\"code\" in result.reason &&\n\t\t\t\"message\" in result.reason &&\n\t\t\t(result.reason as {code: string}).code === \"MODULE_NOT_FOUND\" &&\n\t\t\t(result.reason as {message: string}).message.includes(moduleName)\n\t\t);\n\t});\n\n\tif (rejectedModuleNames.length > 0) {\n\t\tconst formattedRejectedModuleNames = listFormat(rejectedModuleNames, \"and\", rejectedModuleName => `\"${rejectedModuleName}\"`);\n\n\t\tthrow new ReferenceError(\n\t\t\t`The following ${context} ${\n\t\t\t\trejectedModuleNames.length === 1 ? \"dependency\" : \"dependencies\"\n\t\t\t} could not be found within your node_modules folder: ${formattedRejectedModuleNames}. Make sure to install ${\n\t\t\t\trejectedModuleNames.length === 1 ? \"it\" : \"them\"\n\t\t\t} if you want to use ${context} for transpilation`\n\t\t);\n\t} else if (core.status === \"rejected\") {\n\t\tif (core.reason instanceof Error) throw core.reason;\n\t\telse throw new Error(core.reason);\n\t}\n\n\t// At this point, the core module will always be defined\n\treturn core.value;\n}\n","import type {ConfigItem, PluginObj, TransformOptions} from \"@babel/core\";\nimport {\n\tBABEL_MINIFICATION_BLACKLIST_PLUGIN_NAMES,\n\tBABEL_MINIFICATION_BLACKLIST_PRESET_NAMES,\n\tBABEL_MINIFY_PLUGIN_NAMES,\n\tBABEL_MINIFY_PRESET_NAMES,\n\tFORCED_BABEL_PLUGIN_TRANSFORM_RUNTIME_OPTIONS,\n\tFORCED_BABEL_PRESET_ENV_OPTIONS,\n\tFORCED_BABEL_YEARLY_PRESET_OPTIONS,\n\tBABEL_REQUIRE_RUNTIME_HELPER_ESM_REGEXP_1,\n\tBABEL_REQUIRE_RUNTIME_HELPER_ESM_REGEXP_2,\n\tBABEL_IMPORT_RUNTIME_HELPER_CJS_REGEXP_1,\n\tBABEL_IMPORT_RUNTIME_HELPER_CJS_REGEXP_2,\n\tBABEL_IMPORT_RUNTIME_HELPER_CJS_REGEXP_3,\n\tBABEL_IMPORT_RUNTIME_HELPER_CJS_REGEXP_4\n} from \"../constant/constant.js\";\nimport type {BabelConfigHook, TranspilationPhase, TranspilerOptions, TypescriptPluginOptions} from \"../plugin/typescript-plugin-options.js\";\nimport type {Babel, BabelConfig} from \"../type/babel.js\";\nimport {isDefined} from \"../util/is-defined/is-defined.js\";\nimport {\n\tisBabelPluginTransformRuntime,\n\tisBabelPresetEnv,\n\tisBabelPresetTypescript,\n\tisYearlyBabelPreset,\n\tremoveSearchPathFromFilename,\n\tresolveModule,\n\tsomePathsAreRelated\n} from \"../util/path/path-util.js\";\nimport type {SourceMap} from \"rollup\";\nimport MagicString from \"magic-string\";\nimport {matchAll} from \"@wessberg/stringutil\";\n\nexport interface GetForcedBabelOptionsOptions {\n\tcwd: string;\n}\n\n/**\n * Retrieves the Babel config options that will be forced\n */\nexport function getForcedBabelOptions({cwd}: GetForcedBabelOptionsOptions): TransformOptions {\n\treturn {\n\t\t// Always use the cwd provided to the plugin\n\t\tcwd,\n\t\t// Always produce sourcemaps. Rollup will be the decider of what to do with them.\n\t\tsourceMaps: true,\n\n\t\t// Never let Babel be the decider of which files to ignore. Rather let Rollup decide that\n\t\tignore: undefined,\n\t\t// Never let Babel be the decider of which files to include. Rather let Rollup decide that\n\t\tonly: undefined,\n\t\t// Always parse things as modules. Rollup will then decide what to do based on the output format\n\t\tsourceType: \"module\",\n\t\tplugins: [\n\t\t\t// Needed to make babel understand dynamic imports\n\t\t\t// TODO: Add @babel/plugin-syntax-dynamic-import as an optional peer for next major\n\t\t\tresolveModule(\"@babel/plugin-syntax-dynamic-import\", resolveModule(\"@babel/preset-env\"))\n\t\t]\n\t};\n}\n\nexport interface GetDefaultBabelOptionsOptions {\n\tbrowserslist?: string[];\n\ttranspilerOptions: TranspilerOptions;\n}\n\n/**\n * Retrieves the Babel config options that will be used by default. If the user provides the same keys/presets/plugins, *they*\n * will take precedence\n */\nexport function getDefaultBabelOptions({browserslist, transpilerOptions}: GetDefaultBabelOptionsOptions): TransformOptions {\n\tconst includePresetEnv = browserslist != null;\n\tconst includePresetTypescript = transpilerOptions.typescriptSyntax === \"babel\";\n\n\treturn {\n\t\tpresets: [\n\t\t\t// Use @babel/preset-env when a Browserslist has been given\n\t\t\t...(!includePresetEnv\n\t\t\t\t? []\n\t\t\t\t: [\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tresolveModule(\"@babel/preset-env\"),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t...FORCED_BABEL_PRESET_ENV_OPTIONS,\n\t\t\t\t\t\t\t\t// Loose breaks things such as spreading an iterable that isn't an array\n\t\t\t\t\t\t\t\tloose: false,\n\t\t\t\t\t\t\t\tspec: false,\n\t\t\t\t\t\t\t\tdebug: false,\n\t\t\t\t\t\t\t\tignoreBrowserslistConfig: false,\n\t\t\t\t\t\t\t\tshippedProposals: true,\n\t\t\t\t\t\t\t\ttargets: {\n\t\t\t\t\t\t\t\t\tbrowsers: browserslist\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t  ]),\n\t\t\t// Use @babel/preset-typescript when Babel is responsible for transforming TypeScript specific syntax\n\t\t\t...(!includePresetTypescript\n\t\t\t\t? []\n\t\t\t\t: [\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tresolveModule(\"@babel/preset-typescript\"),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t// There are no default options here\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t  ])\n\t\t],\n\t\tplugins: [\n\t\t\t// Force the use of helpers (e.g. the runtime). But *don't* apply polyfills.\n\t\t\t[\n\t\t\t\tresolveModule(\"@babel/plugin-transform-runtime\"),\n\t\t\t\t{\n\t\t\t\t\t...FORCED_BABEL_PLUGIN_TRANSFORM_RUNTIME_OPTIONS,\n\t\t\t\t\tcorejs: false\n\t\t\t\t}\n\t\t\t]\n\t\t]\n\t};\n}\n\nexport interface GetBabelConfigOptions {\n\tbabel: typeof Babel;\n\tcwd: string;\n\thook: BabelConfigHook | undefined;\n\tbabelConfig: TypescriptPluginOptions[\"babelConfig\"];\n\tbrowserslist: string[] | undefined;\n\tforcedOptions: TransformOptions | undefined;\n\tdefaultOptions: TransformOptions | undefined;\n\tphase: TranspilationPhase;\n}\n\nexport interface PluginObject<S = unknown> extends PluginObj<S> {\n\tkey: string;\n}\n\nexport interface FullConfig {\n\tcwd: string;\n\troot: string;\n\tfilename: string | undefined;\n\tbabelrc: false;\n\tconfigFile: false;\n\tenvName: string;\n\tsourceMaps: boolean;\n\tsourceType: TransformOptions[\"sourceType\"];\n\tpassPerPreset: boolean;\n\tplugins: PluginObject[];\n\tpresets: PluginObject[];\n}\n\nexport interface GetBabelConfigResult {\n\tconfig: FullConfig | undefined;\n}\n\nexport type BabelConfigFactory = (filename: string, inTypescriptStep?: boolean) => Promise<GetBabelConfigResult>;\n\n/**\n * Gets a Babel Config based on the given options\n */\nexport function getBabelConfig({babel, babelConfig, cwd, forcedOptions = {}, defaultOptions = {}, browserslist, phase, hook}: GetBabelConfigOptions): BabelConfigFactory {\n\treturn async (filename: string, inTypescriptStep = false) => {\n\t\t// Load a partial Babel config based on the input options\n\t\tconst partialConfig = await babel.loadPartialConfigAsync(\n\t\t\t// If babel options are provided directly\n\t\t\tisBabelConfig(babelConfig) && Object.keys(babelConfig).length > 0\n\t\t\t\t? // If the given babelConfig is an object of input options, use that as the basis for the full config\n\t\t\t\t  {cwd, root: cwd, ...babelConfig}\n\t\t\t\t: // Load the path to a babel config provided to the plugin if any, otherwise try to resolve it\n\t\t\t\t  {\n\t\t\t\t\t\tcwd,\n\t\t\t\t\t\troot: cwd,\n\t\t\t\t\t\tfilename: removeSearchPathFromFilename(filename),\n\t\t\t\t\t\t...(babelConfig == null || typeof babelConfig !== \"string\" ? {} : {configFile: babelConfig})\n\t\t\t\t  }\n\t\t);\n\n\t\tif (partialConfig == null) {\n\t\t\treturn {\n\t\t\t\tconfig: undefined\n\t\t\t};\n\t\t}\n\n\t\tconst {options} = partialConfig;\n\t\tconst {presets: forcedPresets, plugins: forcedPlugins, ...otherForcedOptions} = forcedOptions;\n\t\tconst {presets: defaultPresets, plugins: defaultPlugins, ...otherDefaultOptions} = defaultOptions;\n\n\t\tconst configFileOption: TransformOptions = {configFile: false, babelrc: false};\n\n\t\t// If users have provided presets of their own, ensure that they are using respecting the forced options\n\t\tif (options.presets != null) {\n\t\t\toptions.presets = (options.presets as ConfigItem[]).map(preset => {\n\t\t\t\tif (preset.file == null) return preset;\n\n\t\t\t\t// Apply the forced @babel/preset-env options here\n\t\t\t\tif (isBabelPresetEnv(preset.file.resolved)) {\n\t\t\t\t\treturn babel.createConfigItem(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tpreset.file.request,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t...(preset.options == null ? {} : preset.options),\n\t\t\t\t\t\t\t\t...FORCED_BABEL_PRESET_ENV_OPTIONS,\n\t\t\t\t\t\t\t\t// If targets have already been provided by the user options, accept them.\n\t\t\t\t\t\t\t\t// Otherwise, apply the browserslist as the preset-env target\n\t\t\t\t\t\t\t\t...(preset.options != null && (preset.options as {targets?: unknown}).targets != null\n\t\t\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\t\ttargets: {\n\t\t\t\t\t\t\t\t\t\t\t\tbrowsers: browserslist\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t  })\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\t{type: \"preset\", dirname: cwd}\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Apply the forced @babel/preset-es[2015|2016|2017...] options here\n\t\t\t\telse if (isYearlyBabelPreset(preset.file.resolved)) {\n\t\t\t\t\treturn babel.createConfigItem(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tpreset.file.request,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t...(preset.options == null ? {} : preset.options),\n\t\t\t\t\t\t\t\t...FORCED_BABEL_YEARLY_PRESET_OPTIONS\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\t{type: \"preset\", dirname: cwd}\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn preset;\n\t\t\t});\n\t\t}\n\n\t\t// If users have provided plugins of their own, ensure that they are using respecting the forced options\n\t\tif (options.plugins != null) {\n\t\t\toptions.plugins = (options.plugins as ConfigItem[]).map((plugin: ConfigItem) => {\n\t\t\t\tif (plugin.file == null) return plugin;\n\n\t\t\t\tif (isBabelPluginTransformRuntime(plugin.file.resolved)) {\n\t\t\t\t\treturn babel.createConfigItem(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tplugin.file.request,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t...(plugin.options == null ? {} : plugin.options),\n\t\t\t\t\t\t\t\t...FORCED_BABEL_PLUGIN_TRANSFORM_RUNTIME_OPTIONS\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\t{type: \"plugin\", dirname: cwd}\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn plugin;\n\t\t\t});\n\t\t}\n\n\t\t// Combine the partial config with the default and forced options\n\t\tconst combined: TransformOptions = {\n\t\t\t...otherDefaultOptions,\n\t\t\t...options,\n\t\t\t...otherForcedOptions,\n\t\t\tpresets: combineConfigItems(\n\t\t\t\t(options.presets ?? []) as ConfigItem[],\n\t\t\t\tdefaultPresets == null ? undefined : (babel.loadPartialConfig({presets: defaultPresets, ...configFileOption})?.options.presets as ConfigItem[] | null) ?? undefined,\n\t\t\t\tforcedPresets == null\n\t\t\t\t\t? undefined\n\t\t\t\t\t: (babel.loadPartialConfig({presets: forcedPresets, ...configFileOption})?.options.presets as ConfigItem[] | null | undefined) ?? undefined,\n\t\t\t\tphase === \"chunk\",\n\t\t\t\tinTypescriptStep\n\t\t\t),\n\t\t\tplugins: combineConfigItems(\n\t\t\t\t(options.plugins ?? []) as ConfigItem[],\n\t\t\t\tdefaultPlugins == null ? undefined : (babel.loadPartialConfig({plugins: defaultPlugins, ...configFileOption})?.options.plugins as ConfigItem[] | null) ?? undefined,\n\t\t\t\tforcedPlugins == null\n\t\t\t\t\t? undefined\n\t\t\t\t\t: (babel.loadPartialConfig({plugins: forcedPlugins, ...configFileOption})?.options.plugins as ConfigItem[] | null | undefined) ?? undefined,\n\t\t\t\tphase === \"chunk\",\n\t\t\t\tinTypescriptStep\n\t\t\t)\n\t\t};\n\n\t\t// sourceMap is an alias for 'sourceMaps'. If the user provided it, make sure it is undefined. Otherwise, Babel will fail during validation\n\t\tif (\"sourceMap\" in (combined as {sourceMap?: unknown})) {\n\t\t\tdelete (combined as {sourceMap?: unknown}).sourceMap;\n\t\t}\n\n\t\tconst combinedOptionsAfterHook = hook != null ? hook(combined, partialConfig.config ?? partialConfig.babelrc ?? undefined, phase) : combined;\n\n\t\tconst loadedOptions = (babel.loadOptions({...combinedOptionsAfterHook, filename, ...configFileOption}) as FullConfig | null) ?? undefined;\n\n\t\t// Only return a config in the chunk phase if it includes at least one plugin or preset that is relevant to it\n\t\tif (phase === \"chunk\") {\n\t\t\tconst hasRelevantConfigItems =\n\t\t\t\tloadedOptions != null &&\n\t\t\t\t[\n\t\t\t\t\t...((combined.plugins as ConfigItem[]) ?? []).filter(configItemIsRelevantForChunkPhase),\n\t\t\t\t\t...((combined.presets as ConfigItem[]) ?? []).filter(configItemIsRelevantForChunkPhase)\n\t\t\t\t].length > 0;\n\t\t\treturn {\n\t\t\t\tconfig: hasRelevantConfigItems ? loadedOptions : undefined\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tconfig: loadedOptions\n\t\t\t};\n\t\t}\n\t};\n}\n\nfunction isBabelConfig(babelConfig?: TypescriptPluginOptions[\"babelConfig\"]): babelConfig is Partial<BabelConfig> {\n\treturn babelConfig != null && typeof babelConfig !== \"string\";\n}\n\n/**\n * Combines the given two sets of presets\n */\nfunction combineConfigItems(\n\tuserItems: ConfigItem[],\n\tdefaultItems: ConfigItem[] = [],\n\tforcedItems: ConfigItem[] = [],\n\tinChunkPhase: boolean,\n\tinTypescriptStep: boolean\n): ConfigItem[] {\n\tconst namesInUserItems = new Set(userItems.map(item => item.file?.resolved).filter(isDefined));\n\tconst namesInForcedItems = new Set(forcedItems.map(item => item.file?.resolved).filter(isDefined));\n\tconst userItemsHasYearlyPreset = [...namesInUserItems].some(isYearlyBabelPreset);\n\n\treturn (\n\t\t[\n\t\t\t// Only use those default items that doesn't appear within the forced items or the user-provided items.\n\t\t\t// If the options contains a yearly preset such as \"preset-es2015\", filter out preset-env from the default items if it is given\n\t\t\t...defaultItems.filter(\n\t\t\t\titem =>\n\t\t\t\t\titem.file == null ||\n\t\t\t\t\t(!somePathsAreRelated(namesInUserItems, item.file.resolved) &&\n\t\t\t\t\t\t!somePathsAreRelated(namesInForcedItems, item.file.resolved) &&\n\t\t\t\t\t\t(!userItemsHasYearlyPreset || !isBabelPresetEnv(item.file.resolved)))\n\t\t\t),\n\n\t\t\t// Only use those user items that doesn't appear within the forced items\n\t\t\t...userItems.filter(item => item.file == null || !namesInForcedItems.has(item.file.resolved)),\n\n\t\t\t// Apply the forced items at all times\n\t\t\t...forcedItems\n\t\t]\n\t\t\t// Filter out those options that do not apply depending on whether or not to apply minification\n\t\t\t.filter(configItem => (inChunkPhase ? configItemIsAllowedDuringChunkPhase(configItem) : configItemIsAllowedDuringFilePhase(configItem)))\n\n\t\t\t// Only allow @babel/preset-typescript if we're actually in the initial TypeScript phase\n\t\t\t.filter(configItem => configItem.file?.resolved == null || !isBabelPresetTypescript(configItem.file?.resolved) || inTypescriptStep)\n\t);\n}\n\n/**\n * Returns true if the given configItem is related to minification\n */\nfunction configItemIsRelevantForChunkPhase(configItem: ConfigItem): boolean {\n\treturn (\n\t\tBABEL_MINIFY_PRESET_NAMES.some(preset => configItem.file?.resolved.includes(preset)) || BABEL_MINIFY_PLUGIN_NAMES.some(plugin => configItem.file?.resolved.includes(plugin))\n\t);\n}\n\n/**\n * Returns true if the given configItem is allowed per chunk transformation\n */\nfunction configItemIsAllowedDuringChunkPhase(configItem: ConfigItem): boolean {\n\treturn (\n\t\tBABEL_MINIFICATION_BLACKLIST_PRESET_NAMES.every(preset => configItem.file == null || !configItem.file.resolved.includes(preset)) &&\n\t\tBABEL_MINIFICATION_BLACKLIST_PLUGIN_NAMES.every(plugin => configItem.file == null || !configItem.file.resolved.includes(plugin))\n\t);\n}\n\n/**\n * Returns true if the given configItem is allowed per file transformations\n */\nfunction configItemIsAllowedDuringFilePhase(configItem: ConfigItem): boolean {\n\treturn (\n\t\tBABEL_MINIFY_PRESET_NAMES.every(preset => configItem.file == null || !configItem.file.resolved.includes(preset)) &&\n\t\tBABEL_MINIFY_PLUGIN_NAMES.every(plugin => configItem.file == null || !configItem.file.resolved.includes(plugin))\n\t);\n}\n\nexport function replaceBabelHelpers(code: string, filename: string, target: \"cjs\" | \"esm\"): {code: string; map: SourceMap} | undefined {\n\tconst matches =\n\t\ttarget === \"cjs\"\n\t\t\t? [...matchAll(code, BABEL_REQUIRE_RUNTIME_HELPER_ESM_REGEXP_1), ...matchAll(code, BABEL_REQUIRE_RUNTIME_HELPER_ESM_REGEXP_2)]\n\t\t\t: [\n\t\t\t\t\t...matchAll(code, BABEL_IMPORT_RUNTIME_HELPER_CJS_REGEXP_1),\n\t\t\t\t\t...matchAll(code, BABEL_IMPORT_RUNTIME_HELPER_CJS_REGEXP_2),\n\t\t\t\t\t...matchAll(code, BABEL_IMPORT_RUNTIME_HELPER_CJS_REGEXP_3),\n\t\t\t\t\t...matchAll(code, BABEL_IMPORT_RUNTIME_HELPER_CJS_REGEXP_4)\n\t\t\t  ];\n\n\tif (matches.length < 1) return undefined;\n\n\tconst magicString = new MagicString(code, {filename, indentExclusionRanges: []});\n\tfor (const match of matches) {\n\t\tconst start = match.index + match[1].length;\n\t\tconst end = match.index + match[1].length + match[2].length;\n\n\t\tif (target === \"cjs\") {\n\t\t\tmagicString.overwrite(start, end, match[2].replace(`/esm/`, `/`));\n\t\t} else {\n\t\t\tmagicString.overwrite(start, end, match[2].replace(/\\/helpers\\/(?!esm)/g, `/helpers/esm/`));\n\t\t}\n\t}\n\treturn {\n\t\tcode: magicString.toString(),\n\t\tmap: magicString.generateMap({hires: true, source: filename, includeContent: true})\n\t};\n}\n","import type {Options} from \"@swc/core\";\nimport path from \"crosspath\";\nimport type {MaybeArray} from \"helpertypes\";\nimport {FORCED_SWC_JSC_OPTIONS, FORCED_SWC_MODULE_OPTIONS} from \"../constant/constant.js\";\nimport type {SwcConfigHook, TranspilationPhase, TypescriptPluginOptions} from \"../plugin/typescript-plugin-options.js\";\nimport type {SwcConfig} from \"../type/swc.js\";\nimport type {TS} from \"../type/ts.js\";\nimport {ensureArray} from \"../util/ensure-array/ensure-array.js\";\nimport {getEcmaVersionForScriptTarget} from \"../util/get-script-target-from-browserslist/get-script-target-from-browserslist.js\";\nimport {removeSearchPathFromFilename} from \"../util/path/path-util.js\";\nimport {getTranspilerOptions} from \"../util/plugin-options/get-plugin-options.js\";\nimport type {getAppropriateEcmaVersionForBrowserslist} from \"browserslist-generator\";\n\nexport interface GetSwcConfigOptions {\n\tcwd: string;\n\tfileSystem: TS.System;\n\tpluginOptions: TypescriptPluginOptions;\n\tswcConfig: TypescriptPluginOptions[\"swcConfig\"];\n\tbrowserslist: string[] | undefined;\n\tecmaVersion: TS.ScriptTarget | undefined;\n\ttypescript: typeof TS;\n\tphase: TranspilationPhase;\n\thook: SwcConfigHook | undefined;\n}\n\nexport type SwcConfigFactory = (filename: string, initial?: boolean) => Options | undefined;\n\nfunction readConfig(config: TypescriptPluginOptions[\"swcConfig\"], cwd: string, fileSystem: TS.System): MaybeArray<SwcConfig> {\n\tif (config == null) {\n\t\tconst absoluteConfig = path.normalize(path.join(cwd, `.swcrc`));\n\t\tif (!fileSystem.fileExists(absoluteConfig)) {\n\t\t\treturn {};\n\t\t}\n\t\treturn JSON.parse(fileSystem.readFile(absoluteConfig)!);\n\t} else if (typeof config === \"string\") {\n\t\tconst absoluteConfig = path.normalize(path.isAbsolute(config) ? config : path.join(cwd, config));\n\t\tif (!fileSystem.fileExists(absoluteConfig)) {\n\t\t\tthrow new ReferenceError(`Could not find swc config at path: ${config}`);\n\t\t}\n\t\treturn JSON.parse(fileSystem.readFile(absoluteConfig)!);\n\t} else {\n\t\treturn config;\n\t}\n}\n\n/**\n * SWC currently doesn't support \"es2023\", so for now it will be mapped to \"es2022\"\n */\nfunction mapEcmaVersionForSwc(\n\tversion: ReturnType<typeof getAppropriateEcmaVersionForBrowserslist>\n): Exclude<ReturnType<typeof getAppropriateEcmaVersionForBrowserslist>, \"es2023\"> {\n\tswitch (version) {\n\t\tcase \"es2023\":\n\t\t\treturn \"es2022\";\n\t\tdefault:\n\t\t\treturn version;\n\t}\n}\n\n/**\n * Gets a Swc Config based on the given options\n */\nexport function getSwcConfigFactory({fileSystem, swcConfig, cwd, browserslist, ecmaVersion, phase, typescript, hook, pluginOptions}: GetSwcConfigOptions): SwcConfigFactory {\n\tconst inputConfigs = ensureArray(readConfig(swcConfig, cwd, fileSystem));\n\n\t// Sanitize the 'test' properties of each individual input config\n\tfor (const inputConfig of inputConfigs) {\n\t\tif (inputConfig.test != null) {\n\t\t\tinputConfig.test = ensureArray(inputConfig.test).map(item => (item instanceof RegExp ? item : new RegExp(inputConfig.test)));\n\t\t}\n\t}\n\n\treturn (filename, initial = false) => {\n\t\t// Select the best input config based on which one matches the test Regex(es) in the order they are declared in\n\t\tconst inputConfig = inputConfigs.find(config => config.test == null || config.test.some((regex: RegExp) => regex.test(filename))) ?? inputConfigs[0];\n\n\t\t// Never allow minifying outside of the 'chunk' phase\n\t\tconst minify = phase === \"file\" ? false : Boolean(inputConfig.minify);\n\n\t\t// There's really no point to running jsc in the chunk phase if no minification should be applied\n\t\tif (phase === \"chunk\" && !minify) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst syntax = inputConfig.jsc?.parser?.syntax ?? (initial ? \"typescript\" : \"ecmascript\");\n\n\t\t// If something else than swc handles syntax lowering, ensure that the Ecma version is set to ESNext to avoid anything else but TypeScript transformations\n\t\tif (getTranspilerOptions(pluginOptions.transpiler).otherSyntax !== \"swc\") {\n\t\t\tecmaVersion = typescript.ScriptTarget.ESNext;\n\t\t\tbrowserslist = undefined;\n\t\t}\n\n\t\tconst config: Options = {\n\t\t\t...inputConfig,\n\n\t\t\tmodule: {\n\t\t\t\t...inputConfig.module,\n\t\t\t\t...FORCED_SWC_MODULE_OPTIONS\n\t\t\t},\n\t\t\tjsc: {\n\t\t\t\t// Loose breaks things such as spreading an iterable that isn't an array\n\t\t\t\tloose: false,\n\t\t\t\t...inputConfig.jsc,\n\t\t\t\tparser: {\n\t\t\t\t\tsyntax,\n\t\t\t\t\t...(syntax === \"typescript\" ? {} : {jsx: false}),\n\t\t\t\t\t...inputConfig.jsc?.parser\n\t\t\t\t},\n\t\t\t\t...(browserslist == null && ecmaVersion != null && (inputConfig.env == null || Object.keys(inputConfig.env).length < 1)\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ttarget: mapEcmaVersionForSwc(getEcmaVersionForScriptTarget(ecmaVersion, typescript))\n\t\t\t\t\t  }\n\t\t\t\t\t: {}),\n\t\t\t\t...FORCED_SWC_JSC_OPTIONS\n\t\t\t},\n\t\t\t...(browserslist == null && inputConfig.env == null\n\t\t\t\t? {}\n\t\t\t\t: {\n\t\t\t\t\t\tenv: {\n\t\t\t\t\t\t\t// Use swc's env option that behaves like @babel/preset-env when a Browserslist has been given\n\t\t\t\t\t\t\t...(browserslist == null\n\t\t\t\t\t\t\t\t? inputConfig.env\n\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\t// Loose breaks things such as spreading an iterable that isn't an array\n\t\t\t\t\t\t\t\t\t\tloose: false,\n\t\t\t\t\t\t\t\t\t\tshippedProposals: true,\n\t\t\t\t\t\t\t\t\t\ttargets: browserslist,\n\t\t\t\t\t\t\t\t\t\t...inputConfig.env\n\t\t\t\t\t\t\t\t  })\n\t\t\t\t\t\t}\n\t\t\t\t  }),\n\t\t\tcwd,\n\t\t\tfilename: removeSearchPathFromFilename(filename),\n\t\t\tminify,\n\t\t\tswcrc: false,\n\t\t\tconfigFile: false,\n\t\t\troot: cwd,\n\t\t\t// Always produce sourcemaps. Rollup will be the decider of what to do with them.\n\t\t\tsourceMaps: true,\n\t\t\t// Always use the cwd provided to the plugin\n\n\t\t\t// Never let swc be the decider of which files to ignore. Rather let Rollup decide that\n\t\t\texclude: undefined,\n\t\t\t// Never let swc be the decider of which files to include. Rather let Rollup decide that\n\t\t\ttest: undefined,\n\n\t\t\t// Always parse things as modules. Rollup will then decide what to do based on the output format\n\t\t\tisModule: true\n\t\t};\n\n\t\treturn hook?.(config, filename, phase) ?? config;\n\t};\n}\n","import type {InputOptions} from \"rollup\";\n\ninterface EqualResult {\n\tequal: true;\n}\n\ninterface NotEqualResult {\n\tequal: false;\n\tpath: string[];\n}\n\ntype EqualityResult = EqualResult | NotEqualResult;\n\nconst ignoredKeys = new Set([\"cache\"]);\n\n/**\n * Treat the options as equal if their properties are somewhat equal, not taking their cache into account\n */\nexport function inputOptionsAreEqual(a: InputOptions, b: InputOptions): boolean {\n\treturn inputValuesAreEqual(a, b).equal;\n}\n\nfunction inputValuesAreEqual(a: unknown, b: unknown, path: string[] = []): EqualityResult {\n\tif (a === b || (a == null && b == null)) return {equal: true};\n\telse if (typeof a !== typeof b) return {equal: false, path};\n\telse if (Array.isArray(a)) {\n\t\tif (!Array.isArray(b)) return {equal: false, path};\n\t\telse if (a.length !== b.length) return {equal: false, path};\n\t\telse if (a.some((element, index) => !inputValuesAreEqual(element, b[index], [...path, String(index)]).equal)) {\n\t\t\treturn {equal: false, path};\n\t\t} else {\n\t\t\treturn {equal: true};\n\t\t}\n\t} else if (typeof a === \"object\" && a != null) {\n\t\tif (typeof b !== \"object\" || b == null) return {equal: false, path};\n\n\t\tconst aKeys = Object.keys(a).filter(key => !ignoredKeys.has(key));\n\t\tconst bKeys = Object.keys(b).filter(key => !ignoredKeys.has(key));\n\n\t\tif (aKeys.length !== bKeys.length) return {equal: false, path};\n\t\telse if (aKeys.some(key => !inputValuesAreEqual(a[key as keyof typeof a], b[key as keyof typeof b], [...path, key]).equal)) {\n\t\t\treturn {equal: false, path};\n\t\t} else {\n\t\t\treturn {equal: true};\n\t\t}\n\t} else if (typeof a === \"function\") {\n\t\tif (typeof b !== \"function\") return {equal: false, path};\n\t\telse if (a.toString() !== b.toString()) return {equal: false, path};\n\t\telse {\n\t\t\treturn {equal: true};\n\t\t}\n\t} else {\n\t\treturn {equal: true};\n\t}\n}\n","import type {\n\tExistingRawSourceMap,\n\tInputOptions,\n\tInputPluginOption,\n\tOutputBundle,\n\tOutputOptions,\n\tPlugin,\n\tPluginContext,\n\tRenderedChunk,\n\tRollupCache,\n\tSourceDescription\n} from \"rollup\";\nimport {getParsedCommandLine} from \"../util/get-parsed-command-line/get-parsed-command-line.js\";\nimport {getForcedCompilerOptions} from \"../util/get-forced-compiler-options/get-forced-compiler-options.js\";\nimport {getSourceDescriptionFromEmitOutput} from \"../util/get-source-description-from-emit-output/get-source-description-from-emit-output.js\";\nimport {emitDiagnostics} from \"../service/emit/diagnostics/emit-diagnostics.js\";\nimport type {SupportedExtensions} from \"../util/get-supported-extensions/get-supported-extensions.js\";\nimport {getSupportedExtensions} from \"../util/get-supported-extensions/get-supported-extensions.js\";\nimport {ensureRelative, getExtension, isBabelHelper, isMultiEntryModule, isRegeneratorRuntime, isSwcHelper} from \"../util/path/path-util.js\";\nimport {takeBundledFilesNames} from \"../util/take-bundled-filenames/take-bundled-filenames.js\";\nimport type {TypescriptPluginOptions} from \"./typescript-plugin-options.js\";\nimport {getPluginOptions, getTranspilerOptions, isUsingTranspiler} from \"../util/plugin-options/get-plugin-options.js\";\nimport {getBrowserslist} from \"../util/get-browserslist/get-browserslist.js\";\nimport {ResolveCache} from \"../service/cache/resolve-cache/resolve-cache.js\";\nimport {JSON_EXTENSION, REGENERATOR_RUNTIME_VIRTUAL_SRC, ROLLUP_PLUGIN_VIRTUAL_PREFIX} from \"../constant/constant.js\";\nimport {REGENERATOR_SOURCE} from \"../lib/regenerator/regenerator.js\";\nimport {createFilter} from \"@rollup/pluginutils\";\nimport {mergeTransformers} from \"../util/merge-transformers/merge-transformers.js\";\nimport {ensureArray} from \"../util/ensure-array/ensure-array.js\";\nimport type {ParsedCommandLineResult} from \"../util/get-parsed-command-line/parsed-command-line-result.js\";\nimport {takeBrowserslistOrComputeBasedOnCompilerOptions} from \"../util/take-browserslist-or-compute-based-on-compiler-options/take-browserslist-or-compute-based-on-compiler-options.js\";\nimport {matchAll} from \"@wessberg/stringutil\";\nimport {emitDeclarations} from \"../service/emit/declaration/emit-declarations.js\";\nimport {CompilerHost} from \"../service/compiler-host/compiler-host.js\";\nimport {pickResolvedModule} from \"../util/pick-resolved-module.js\";\nimport {emitBuildInfo} from \"../service/emit/tsbuildinfo/emit-build-info.js\";\nimport {shouldDebugEmit} from \"../util/is-debug/should-debug.js\";\nimport {logEmit} from \"../util/logging/log-emit.js\";\nimport {isJsonLike} from \"../util/is-json-like/is-json-like.js\";\nimport path from \"crosspath\";\nimport {loadBabel, loadSwc} from \"../util/transpiler-loader.js\";\nimport type {BabelConfigFactory} from \"../transpiler/babel.js\";\nimport {getBabelConfig, getDefaultBabelOptions, getForcedBabelOptions, replaceBabelHelpers} from \"../transpiler/babel.js\";\nimport type {SwcConfigFactory} from \"../transpiler/swc.js\";\nimport {getSwcConfigFactory} from \"../transpiler/swc.js\";\nimport {inputOptionsAreEqual} from \"../util/rollup/rollup-util.js\";\nimport {isPromise} from \"../util/object/object-util.js\";\nimport {isDefined} from \"../util/is-defined/is-defined.js\";\n\n/**\n * The name of the Rollup plugin\n */\nconst PLUGIN_NAME = \"Typescript\";\n\n/**\n * A Rollup plugin that transpiles the given input with Typescript\n */\nexport default function typescriptRollupPlugin(pluginInputOptions: Partial<TypescriptPluginOptions> = {}): Plugin {\n\tconst pluginOptions: TypescriptPluginOptions = getPluginOptions(pluginInputOptions);\n\tconst {include, exclude, tsconfig, cwd, browserslist, typescript, fileSystem, transpileOnly} = pluginOptions;\n\tconst transformers = pluginOptions.transformers == null ? [] : ensureArray(pluginOptions.transformers);\n\tconst transpilerOptions = getTranspilerOptions(pluginOptions.transpiler);\n\n\t// Make sure to normalize the received Browserslist\n\tconst normalizedBrowserslist = getBrowserslist({browserslist, cwd, fileSystem});\n\n\t/**\n\t * The ParsedCommandLine to use with Typescript\n\t */\n\tlet parsedCommandLineResult: ParsedCommandLineResult;\n\n\t/**\n\t * The config to use with Babel for each file, if Babel should transpile source code\n\t */\n\tlet babelConfigFileFactory: BabelConfigFactory | undefined;\n\n\t/**\n\t * The config to use with Babel for each chunk, if Babel should transpile source code\n\t */\n\tlet babelConfigChunkFactory: BabelConfigFactory | undefined;\n\n\t/**\n\t * The config to use with swc for each file, if swc should transpile source code\n\t */\n\tlet swcConfigFileFactory: SwcConfigFactory | undefined;\n\n\t/**\n\t * The config to use with swc for each chunk, if swc should transpile source code\n\t */\n\tlet swcConfigChunkFactory: SwcConfigFactory | undefined;\n\n\t/**\n\t * The CompilerHost to use\n\t */\n\tlet host: CompilerHost;\n\n\t/**\n\t * The ResolveCache to use\n\t */\n\tconst resolveCache = new ResolveCache({fileSystem});\n\n\t/**\n\t * The filter function to use\n\t */\n\tconst internalFilter = createFilter(include, exclude);\n\tconst filter = (id: string): boolean => !isSwcHelper(id) && (internalFilter(id) || internalFilter(path.normalize(id)) || internalFilter(path.native.normalize(id)));\n\n\t/**\n\t * All supported extensions\n\t */\n\tlet SUPPORTED_EXTENSIONS: SupportedExtensions;\n\n\t/**\n\t * The InputOptions provided to Rollup\n\t */\n\tlet rollupInputOptions: InputOptions;\n\n\t/**\n\t * The previously emitted Rollup cache used as input, if any\n\t */\n\tlet inputCache: RollupCache | undefined;\n\n\t/**\n\t * A Set of the entry filenames for when using rollup-plugin-multi-entry (we need to track this for generating valid declarations)\n\t */\n\tlet MULTI_ENTRY_FILE_NAMES: Set<string> | undefined;\n\n\t/**\n\t * The virtual module name generated when using @rollup/plugin-multi-entry in combination with this plugin\n\t */\n\tlet MULTI_ENTRY_MODULE: string | undefined;\n\n\tconst addFile = (fileName: string, text: string, dependencyCb?: (dependency: string) => void): void => {\n\t\t// Add the file to the CompilerHost\n\t\thost.add({fileName, text, fromRollup: true});\n\n\t\tif (dependencyCb != null) {\n\t\t\t// Add all dependencies of the file to the File Watcher if missing\n\t\t\tconst dependencies = host.getDependenciesForFile(fileName, true);\n\n\t\t\tif (dependencies != null) {\n\t\t\t\tfor (const dependency of dependencies) {\n\t\t\t\t\tconst pickedDependency = pickResolvedModule(dependency, false);\n\t\t\t\t\tif (pickedDependency == null) continue;\n\t\t\t\t\tdependencyCb(pickedDependency);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tconst emitFile = (fileName: string): SourceDescription | undefined => {\n\t\t// Get some EmitOutput, optionally from the cache if the file contents are unchanged\n\t\tconst emitOutput = host.emit(path.normalize(fileName), false);\n\n\t\t// Return the emit output results to Rollup\n\t\treturn getSourceDescriptionFromEmitOutput(emitOutput);\n\t};\n\n\tconst transpileWithBabel = async (fileName: string, input: SourceDescription, initial = false): Promise<SourceDescription | undefined> => {\n\t\t// Conditionally initialize babel at this point.\n\t\t// Only require @babel/preset-typescript if relevant for the initial emit that may include TypeScript specific syntax\n\t\tconst babel = await loadBabel(initial);\n\t\tconst babelConfigResult = await babelConfigFileFactory!(fileName, initial);\n\n\t\tconst transpilationResult = await babel.transformAsync(input.code, {\n\t\t\t...babelConfigResult.config,\n\t\t\tfilenameRelative: ensureRelative(cwd, path.normalize(fileName)),\n\t\t\tinputSourceMap: typeof input.map === \"string\" ? JSON.parse(input.map) : input.map\n\t\t});\n\n\t\treturn transpilationResult?.code == null\n\t\t\t? undefined\n\t\t\t: {\n\t\t\t\t\tcode: transpilationResult.code,\n\t\t\t\t\tmap: transpilationResult.map ?? undefined\n\t\t\t  };\n\t};\n\n\tconst transpileWithSwc = async (fileName: string, input: SourceDescription, initial = false): Promise<SourceDescription | undefined> => {\n\t\t// Conditionally initialize swc at this point\n\t\tconst swc = await loadSwc();\n\t\tconst swcConfigResult = swcConfigFileFactory!(fileName, initial);\n\n\t\tconst transpilationResult = await swc.transform(input.code, {\n\t\t\t...swcConfigResult,\n\t\t\tinputSourceMap: typeof input.map === \"string\" ? input.map : JSON.stringify(input.map)\n\t\t});\n\n\t\treturn transpilationResult?.code == null\n\t\t\t? undefined\n\t\t\t: {\n\t\t\t\t\tcode: transpilationResult.code,\n\t\t\t\t\tmap: transpilationResult.map ?? undefined\n\t\t\t  };\n\t};\n\n\t/**\n\t * This little helper is used in very rare cases, when something other than the TypeScript Compiler APIs has removed TypeScript specific features, and TypeScript should now strictly\n\t * be used for applying additional syntax lowering. This will happen when something like babel or swc is used for TypeScript syntax, but typescript/tsc is used for other syntax.\n\t * This is likely a very rare, odd scenario, and one that bypasses the Compiler host entirely. It is, however, completely OK, and the closest tsc provides to a simple transformation,\n\t * akin to what babel and swc provides.\n\t */\n\tconst transpileWithTypescript = (fileName: string, input: SourceDescription): SourceDescription | undefined => {\n\t\tconst transpilationResult = typescript.transpileModule(input.code, {\n\t\t\tcompilerOptions: host.getCompilationSettings(),\n\t\t\tfileName: path.normalize(fileName),\n\t\t\ttransformers: host.getCustomTransformers(),\n\t\t\t// We've moved on from the TypeScript specific parts at this point, so do not report any diagnostics here. This is purely a syntax transformation!\n\t\t\treportDiagnostics: false\n\t\t});\n\n\t\treturn {\n\t\t\tcode: transpilationResult.outputText,\n\t\t\tmap: transpilationResult.sourceMapText\n\t\t};\n\t};\n\n\tconst isFileRelevant = (code: string, file: string): {relevant: boolean; isSupportedByCompilerHost: boolean} => {\n\t\tconst normalizedFile = path.normalize(file);\n\n\t\t// Skip the file if it doesn't match the filter or if the helper cannot be transformed\n\t\tif (!filter(normalizedFile)) {\n\t\t\treturn {relevant: false, isSupportedByCompilerHost: false};\n\t\t}\n\n\t\tconst hasJsonExtension = getExtension(normalizedFile) === JSON_EXTENSION;\n\n\t\t// Files with a .json extension may not necessarily be JSON, for example\n\t\t// if a JSON plugin came before rollup-plugin-ts, in which case it shouldn't be treated\n\t\t// as JSON.\n\t\tconst isJsInDisguise = hasJsonExtension && !isJsonLike(code);\n\n\t\treturn {\n\t\t\trelevant: true,\n\t\t\tisSupportedByCompilerHost: host.isSupportedFileName(normalizedFile) && !isJsInDisguise\n\t\t};\n\t};\n\n\tasync function flattenPlugins(plugins: InputPluginOption | undefined): Promise<Plugin[]> {\n\t\tconst flattened: Plugin[] = [];\n\t\tconst awaitedPlugins = ensureArray(isPromise(plugins) ? await plugins : plugins).filter(isDefined);\n\t\tfor (const awaitedPlugin of awaitedPlugins) {\n\t\t\tif (awaitedPlugin == null || awaitedPlugin === false) continue;\n\t\t\tif (Array.isArray(awaitedPlugin) || isPromise(awaitedPlugin)) {\n\t\t\t\tflattened.push(...(await flattenPlugins(awaitedPlugin)));\n\t\t\t} else {\n\t\t\t\tflattened.push(awaitedPlugin);\n\t\t\t}\n\t\t}\n\t\treturn flattened;\n\t}\n\n\treturn {\n\t\tname: PLUGIN_NAME,\n\n\t\t/**\n\t\t * Invoked when Input options has been received by Rollup\n\t\t */\n\t\tasync options(options: InputOptions): Promise<undefined> {\n\t\t\t// Always update the input cache\n\t\t\tinputCache = typeof options.cache === \"boolean\" ? undefined : options.cache;\n\n\t\t\t// Don't proceed if the options are identical to the previous ones\n\t\t\tif (rollupInputOptions != null && inputOptionsAreEqual(rollupInputOptions, options)) return;\n\n\t\t\t// Re-assign the full input options\n\t\t\trollupInputOptions = options;\n\n\t\t\tconst plugins = await flattenPlugins(options.plugins);\n\t\t\tconst multiEntryPlugin = plugins?.find(plugin => plugin != null && typeof plugin !== \"boolean\" && plugin.name === \"multi-entry\");\n\n\t\t\t// If the multi-entry plugin is being used, we can extract the name of the entry module\n\t\t\t// based on it\n\t\t\tif (multiEntryPlugin != null) {\n\t\t\t\tif (typeof options.input === \"string\") {\n\t\t\t\t\tMULTI_ENTRY_MODULE = `${ROLLUP_PLUGIN_VIRTUAL_PREFIX}${options.input}`;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Make sure we have a proper ParsedCommandLine to work with\n\t\t\tparsedCommandLineResult = getParsedCommandLine({\n\t\t\t\ttsconfig,\n\t\t\t\tcwd,\n\t\t\t\tfileSystem,\n\t\t\t\ttypescript,\n\t\t\t\tpluginOptions,\n\t\t\t\tfilter,\n\t\t\t\tforcedCompilerOptions: getForcedCompilerOptions({pluginOptions, rollupInputOptions, browserslist: normalizedBrowserslist})\n\t\t\t});\n\n\t\t\tif (isUsingTranspiler(\"babel\", transpilerOptions)) {\n\t\t\t\t// Prepare a Babel config if Babel should be the transpiler for some or all emit\n\t\t\t\t// A browserslist may already be provided, but if that is not the case, one can be computed based on the \"target\" from the tsconfig\n\t\t\t\tconst computedBrowserslist = takeBrowserslistOrComputeBasedOnCompilerOptions(normalizedBrowserslist, parsedCommandLineResult.originalCompilerOptions, typescript);\n\n\t\t\t\tconst sharedBabelConfigFactoryOptions = {\n\t\t\t\t\tbabel: await loadBabel(),\n\t\t\t\t\tcwd,\n\t\t\t\t\thook: pluginOptions.hook.babelConfig,\n\t\t\t\t\tbabelConfig: pluginOptions.babelConfig,\n\t\t\t\t\tforcedOptions: getForcedBabelOptions({cwd}),\n\t\t\t\t\tdefaultOptions: getDefaultBabelOptions({browserslist: computedBrowserslist, transpilerOptions}),\n\t\t\t\t\tbrowserslist: computedBrowserslist,\n\t\t\t\t\trollupInputOptions\n\t\t\t\t};\n\n\t\t\t\tbabelConfigFileFactory = getBabelConfig({\n\t\t\t\t\t...sharedBabelConfigFactoryOptions,\n\t\t\t\t\tphase: \"file\"\n\t\t\t\t});\n\n\t\t\t\tbabelConfigChunkFactory = getBabelConfig({\n\t\t\t\t\t...sharedBabelConfigFactoryOptions,\n\t\t\t\t\tphase: \"chunk\"\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (isUsingTranspiler(\"swc\", transpilerOptions)) {\n\t\t\t\t// Prepare a swc config file factory if swc should be the transpiler for some or all emit\n\t\t\t\tconst sharedSwcConfigFactoryOptions = {\n\t\t\t\t\tcwd,\n\t\t\t\t\tfileSystem,\n\t\t\t\t\ttypescript,\n\t\t\t\t\tpluginOptions,\n\t\t\t\t\thook: pluginOptions.hook.swcConfig,\n\t\t\t\t\tswcConfig: pluginOptions.swcConfig,\n\t\t\t\t\tbrowserslist: normalizedBrowserslist === false ? undefined : normalizedBrowserslist,\n\t\t\t\t\tecmaVersion: parsedCommandLineResult.originalCompilerOptions.target\n\t\t\t\t};\n\n\t\t\t\tswcConfigFileFactory = getSwcConfigFactory({\n\t\t\t\t\t...sharedSwcConfigFactoryOptions,\n\t\t\t\t\tphase: \"file\"\n\t\t\t\t});\n\n\t\t\t\tswcConfigChunkFactory = getSwcConfigFactory({\n\t\t\t\t\t...sharedSwcConfigFactoryOptions,\n\t\t\t\t\tphase: \"chunk\"\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tSUPPORTED_EXTENSIONS = getSupportedExtensions(\n\t\t\t\tBoolean(parsedCommandLineResult.parsedCommandLine.options.allowJs),\n\t\t\t\tBoolean(parsedCommandLineResult.parsedCommandLine.options.resolveJsonModule),\n\t\t\t\ttypescript\n\t\t\t);\n\n\t\t\t// Hook up a CompilerHost\n\t\t\thost = new CompilerHost({\n\t\t\t\tfilter,\n\t\t\t\tcwd,\n\t\t\t\tresolveCache,\n\t\t\t\tfileSystem,\n\t\t\t\ttypescript,\n\t\t\t\textensions: SUPPORTED_EXTENSIONS,\n\t\t\t\texternalOption: rollupInputOptions.external,\n\t\t\t\tparsedCommandLineResult,\n\t\t\t\ttransformers: mergeTransformers(...transformers)\n\t\t\t});\n\n\t\t\treturn undefined;\n\t\t},\n\n\t\t/**\n\t\t * Renders the given chunk. Will emit declaration files if the Typescript config says so.\n\t\t * Will also apply any minification via Babel if a minification plugin or preset has been provided,\n\t\t * and if Babel is the chosen transpiler. Otherwise, it will simply do nothing\n\t\t */\n\t\tasync renderChunk(this: PluginContext, code: string, chunk: RenderedChunk, outputOptions: OutputOptions): Promise<SourceDescription | null> {\n\t\t\tlet updatedSourceDescription: SourceDescription | undefined;\n\n\t\t\tif (transpilerOptions.otherSyntax === \"babel\") {\n\t\t\t\tconst {config} = await babelConfigChunkFactory!(chunk.fileName);\n\t\t\t\tconst babel = await loadBabel();\n\n\t\t\t\t// When targeting CommonJS and using babel as a transpiler, we may need to rewrite forced ESM paths for preserved external helpers to paths that are compatible with CommonJS.\n\t\t\t\tupdatedSourceDescription = replaceBabelHelpers(code, chunk.fileName, outputOptions.format === \"cjs\" || outputOptions.format === \"commonjs\" ? \"cjs\" : \"esm\");\n\n\t\t\t\t// Don't proceed if there is no minification config\n\t\t\t\tif (config == null) {\n\t\t\t\t\treturn updatedSourceDescription ?? null;\n\t\t\t\t}\n\n\t\t\t\tconst updatedCode = updatedSourceDescription != null ? updatedSourceDescription.code : code;\n\t\t\t\tconst updatedMap = updatedSourceDescription != null ? (updatedSourceDescription.map as ExistingRawSourceMap) : undefined;\n\n\t\t\t\tconst transpilationResult = await babel.transformAsync(updatedCode, {\n\t\t\t\t\t...config,\n\t\t\t\t\tfilenameRelative: ensureRelative(cwd, chunk.fileName),\n\t\t\t\t\t...(updatedMap == null\n\t\t\t\t\t\t? {}\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tinputSourceMap: {...updatedMap, file: updatedMap.file ?? \"\"} as never\n\t\t\t\t\t\t  })\n\t\t\t\t});\n\n\t\t\t\tif (transpilationResult == null || transpilationResult.code == null) {\n\t\t\t\t\treturn updatedSourceDescription == null ? null : updatedSourceDescription;\n\t\t\t\t}\n\n\t\t\t\t// Return the results\n\t\t\t\treturn {\n\t\t\t\t\tcode: transpilationResult.code,\n\t\t\t\t\tmap: transpilationResult.map ?? undefined\n\t\t\t\t};\n\t\t\t} else if (transpilerOptions.otherSyntax === \"swc\") {\n\t\t\t\tconst config = swcConfigChunkFactory!(chunk.fileName);\n\t\t\t\tconst swc = await loadSwc();\n\n\t\t\t\t// Don't proceed if there is no minification config\n\t\t\t\tif (config == null) {\n\t\t\t\t\treturn updatedSourceDescription ?? null;\n\t\t\t\t}\n\n\t\t\t\tconst updatedCode = updatedSourceDescription != null ? updatedSourceDescription.code : code;\n\t\t\t\tconst updatedMap = updatedSourceDescription != null ? (updatedSourceDescription.map as ExistingRawSourceMap) : undefined;\n\n\t\t\t\tconst transpilationResult = await swc.transform(updatedCode, {\n\t\t\t\t\t...config,\n\t\t\t\t\t...(updatedMap == null\n\t\t\t\t\t\t? {}\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tinputSourceMap: JSON.stringify(updatedMap)\n\t\t\t\t\t\t  })\n\t\t\t\t});\n\n\t\t\t\tif (transpilationResult == null || transpilationResult.code == null) {\n\t\t\t\t\treturn updatedSourceDescription == null ? null : updatedSourceDescription;\n\t\t\t\t}\n\n\t\t\t\t// Return the results\n\t\t\t\treturn {\n\t\t\t\t\tcode: transpilationResult.code,\n\t\t\t\t\tmap: transpilationResult.map ?? undefined\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\treturn updatedSourceDescription ?? null;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * When a file changes, make sure to clear it from any caches to avoid stale caches\n\t\t */\n\t\twatchChange(id: string): void {\n\t\t\thost.delete(id);\n\t\t\tresolveCache.delete(id);\n\t\t\thost.clearCaches();\n\t\t},\n\n\t\t/**\n\t\t * Transforms the given code and file\n\t\t */\n\t\tasync transform(this: PluginContext, code: string, file: string): Promise<SourceDescription | undefined> {\n\t\t\tconst normalizedFile = path.normalize(file);\n\n\t\t\t// If this file represents ROLLUP_PLUGIN_MULTI_ENTRY, we need to parse its' contents to understand which files it aliases.\n\t\t\t// Following that, there's nothing more to do\n\t\t\tif (isMultiEntryModule(normalizedFile, MULTI_ENTRY_MODULE)) {\n\t\t\t\tMULTI_ENTRY_FILE_NAMES = new Set(matchAll(code, /(import|export)\\s*(\\*\\s*from\\s*)?[\"'`]([^\"'`]*)[\"'`]/).map(([, , , p]) => path.normalize(p.replace(/\\\\\\\\/g, \"\\\\\"))));\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst {relevant, isSupportedByCompilerHost} = isFileRelevant(code, file);\n\n\t\t\tif (!relevant) return undefined;\n\n\t\t\tlet sourceDescription: SourceDescription = {code, map: undefined};\n\n\t\t\t// Some @babel/runtime helpers may depend on other helpers, but sometimes these are imported from the incorrect paths.\n\t\t\t// For example, some @babel/runtime/helpers/esm files depend on CJS helpers where they actually should depend on esm helpers instead.\n\t\t\t// In these cases, we'll have to transform the imports immediately since it will otherwise break for users who don't use something like the commonjs plugin,\n\t\t\t// even though this is technically not a problem directly caused by or related to rollup-plugin-ts\n\t\t\tif (isUsingTranspiler(\"babel\", transpilerOptions) && isBabelHelper(normalizedFile)) {\n\t\t\t\tsourceDescription = replaceBabelHelpers(code, normalizedFile, \"esm\") ?? sourceDescription;\n\t\t\t}\n\n\t\t\t// Only add the file to the Typescript CompilerHost if its extension is supported.\n\t\t\tif (isSupportedByCompilerHost) {\n\t\t\t\taddFile(normalizedFile, sourceDescription.code, dependency => this.addWatchFile(dependency));\n\t\t\t}\n\n\t\t\tswitch (transpilerOptions.typescriptSyntax) {\n\t\t\t\tcase \"typescript\": {\n\t\t\t\t\tif (isSupportedByCompilerHost) {\n\t\t\t\t\t\tsourceDescription = emitFile(file) ?? sourceDescription;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase \"babel\": {\n\t\t\t\t\tsourceDescription = (await transpileWithBabel(file, sourceDescription, true)) ?? sourceDescription;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase \"swc\": {\n\t\t\t\t\tsourceDescription = (await transpileWithSwc(file, sourceDescription, true)) ?? sourceDescription;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If the same transpiler is used for both TypeScript- and other syntax,\n\t\t\t// return the generated source description at this point.\n\t\t\tif (transpilerOptions.otherSyntax === transpilerOptions.typescriptSyntax) {\n\t\t\t\treturn sourceDescription;\n\t\t\t} else {\n\t\t\t\tswitch (transpilerOptions.otherSyntax) {\n\t\t\t\t\tcase \"typescript\": {\n\t\t\t\t\t\treturn transpileWithTypescript(file, sourceDescription) ?? sourceDescription;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase \"babel\": {\n\t\t\t\t\t\treturn (await transpileWithBabel(file, sourceDescription)) ?? sourceDescription;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase \"swc\": {\n\t\t\t\t\t\treturn (await transpileWithSwc(file, sourceDescription)) ?? sourceDescription;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Attempts to resolve the given id via the LanguageServiceHost\n\t\t */\n\t\tresolveId(this: PluginContext, id: string, parent: string | undefined): string | null {\n\t\t\t// Don't proceed if there is no parent (in which case this is an entry module)\n\t\t\tif (parent == null) return null;\n\n\t\t\tif (id === \"regenerator-runtime\") {\n\t\t\t\treturn REGENERATOR_RUNTIME_VIRTUAL_SRC;\n\t\t\t}\n\n\t\t\tconst resolveResult = host.resolve(id, parent);\n\n\t\t\tconst pickedResolveResult = resolveResult == null ? undefined : pickResolvedModule(resolveResult, false);\n\t\t\treturn pickedResolveResult == null ? null : path.native.normalize(pickedResolveResult);\n\t\t},\n\n\t\t/**\n\t\t * Optionally loads the given id. Is used to swap out the regenerator-runtime implementation used by babel\n\t\t * to use one that is using ESM by default to play nice with Rollup even when rollup-plugin-commonjs isn't\n\t\t * being used\n\t\t */\n\t\tload(this: PluginContext, id: string): string | null {\n\t\t\t// Return the alternative source for the regenerator runtime if that file is attempted to be loaded\n\t\t\tif (isRegeneratorRuntime(path.normalize(id))) {\n\t\t\t\treturn REGENERATOR_SOURCE;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\n\t\t/**\n\t\t * Invoked when a full bundle is generated. Will take all modules for all chunks and make sure to remove all removed files\n\t\t * from the LanguageService\n\t\t */\n\t\tgenerateBundle(this: PluginContext, outputOptions: OutputOptions, bundle: OutputBundle): void {\n\t\t\t// If a cache was provided to Rollup,\n\t\t\t// some or all files may not have been added to the CompilerHost\n\t\t\t// and therefore it will not be possible to compile correct diagnostics,\n\t\t\t// declarations, and/or .buildinfo. To work around this, we'll have to make sure\n\t\t\t// all files that are part of the compilation unit is in fact added to the CompilerHost\n\t\t\tif (inputCache != null) {\n\t\t\t\tfor (const module of inputCache.modules) {\n\t\t\t\t\tconst normalizedFile = path.normalize(module.id);\n\n\t\t\t\t\t// Don't proceed if we already know about that file\n\t\t\t\t\tif (host.has(normalizedFile) || !isFileRelevant(module.originalCode, normalizedFile).isSupportedByCompilerHost) continue;\n\n\t\t\t\t\t// Add to the CompilerHost\n\t\t\t\t\taddFile(normalizedFile, module.originalCode);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If debugging is active, log the outputted files\n\t\t\tfor (const file of Object.values(bundle)) {\n\t\t\t\tif (!(\"fileName\" in file)) continue;\n\n\t\t\t\tconst normalizedFileName = path.normalize(file.fileName);\n\t\t\t\tconst text = \"code\" in file ? file.code : file.source.toString();\n\n\t\t\t\tif (shouldDebugEmit(pluginOptions.debug, normalizedFileName, text, \"javascript\")) {\n\t\t\t\t\tlogEmit(normalizedFileName, text);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Only emit diagnostics if the plugin options allow it\n\t\t\tif (!Boolean(transpileOnly)) {\n\t\t\t\t// Emit all reported diagnostics\n\t\t\t\temitDiagnostics({host, pluginOptions, context: this});\n\t\t\t}\n\n\t\t\t// Emit tsbuildinfo files if required\n\t\t\tif (Boolean(parsedCommandLineResult.parsedCommandLine.options.incremental) || Boolean(parsedCommandLineResult.parsedCommandLine.options.composite)) {\n\t\t\t\temitBuildInfo({\n\t\t\t\t\thost,\n\t\t\t\t\toutputOptions,\n\t\t\t\t\tpluginOptions,\n\t\t\t\t\tpluginContext: this\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Emit declaration files if required\n\t\t\tif (Boolean(parsedCommandLineResult.originalCompilerOptions.declaration)) {\n\t\t\t\temitDeclarations({\n\t\t\t\t\thost,\n\t\t\t\t\tbundle,\n\t\t\t\t\texternalOption: rollupInputOptions.external,\n\t\t\t\t\toutputOptions,\n\t\t\t\t\tpluginOptions,\n\t\t\t\t\tpluginContext: this,\n\t\t\t\t\tmultiEntryFileNames: MULTI_ENTRY_FILE_NAMES,\n\t\t\t\t\tmultiEntryModule: MULTI_ENTRY_MODULE,\n\t\t\t\t\toriginalCompilerOptions: parsedCommandLineResult.originalCompilerOptions\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst bundledFilenames = takeBundledFilesNames(bundle);\n\n\t\t\t// Walk through all of the files of the LanguageService and make sure to remove them if they are not part of the bundle\n\t\t\tfor (const fileName of host.getRollupFileNames()) {\n\t\t\t\tif (!bundledFilenames.has(fileName)) {\n\t\t\t\t\thost.delete(fileName);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n"],"names":["createRequire","_inspect","getAppropriateEcmaVersionForBrowserslist","randomBytes","createHmac","normalizeBrowserslist","browsersWithSupportForEcmaVersion","visitImportDeclaration","visitImportTypeNode","visitModuleDeclaration","visitNode","visitClassDeclaration","visitClassExpression","visitFunctionDeclaration","visitFunctionExpression","visitEnumDeclaration","visitVariableStatement","visitInterfaceDeclaration","visitTypeAliasDeclaration","visitExportDeclaration","visitExportAssignment","ensureNodeFactory","preserveNode","setParentNodes","cloneNode","camelCase","visitImportSpecifier","visitImportClause","visitNamespaceImport","visitIdentifier","createFilter","matchAll"],"mappings":"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"}