{"version":3,"file":"index.cjs","sources":["../../src/transformer/util/path-util.ts","../../src/shared/util/util.ts","../../src/transformer/util/resolve-path.ts","../../src/transformer/util/walk-through-filler-nodes.ts","../../src/transformer/built-in/built-in-module-map.ts","../../src/transformer/util/transform-module-specifier.ts","../../src/transformer/util/is-require-call.ts","../../src/transformer/util/find-node-up.ts","../../src/transformer/util/is-statement.ts","../../src/transformer/util/is-declaration.ts","../../src/transformer/util/is-statement-or-declaration.ts","../../src/transformer/util/generate-name-from-module-specifier.ts","../../src/transformer/util/get-module-exports-from-require-data-in-context.ts","../../src/transformer/util/should-debug.ts","../../src/transformer/util/maybe-generate-assert-clause.ts","../../src/transformer/util/decorators-interop.ts","../../src/transformer/visitor/visit/visit-call-expression.ts","../../src/transformer/util/get-exports-data.ts","../../src/transformer/util/is-named-declaration.ts","../../src/transformer/util/ensure-node-has-export-modifier.ts","../../src/transformer/util/node-contains-super.ts","../../src/transformer/util/add-export-modifier.ts","../../src/transformer/util/is-expression.ts","../../src/transformer/util/get-locals-for-binding-name.ts","../../src/transformer/util/is-node-array.ts","../../src/transformer/visitor/visit/visit-binary-expression.ts","../../src/transformer/util/will-be-reassigned.ts","../../src/transformer/util/has-modifier.ts","../../src/transformer/util/has-export-modifier.ts","../../src/transformer/visitor/visit/visit-variable-declaration.ts","../../src/transformer/visitor/visit/is-not-emitted-statement.ts","../../src/transformer/visitor/visit/visit-variable-declaration-list.ts","../../src/transformer/util/get-best-body-in-scope.ts","../../src/transformer/visitor/visit/visit-node.ts","../../src/transformer/util/should-skip-emit.ts","../../src/transformer/visitor/visit/visit-import-declaration.ts","../../src/transformer/visitor/visit/visit-export-declaration.ts","../../src/transformer/visitor/visit/visit-export-assignment.ts","../../src/transformer/util/has-default-export-modifier.ts","../../src/transformer/visitor/visit/visit-import-and-export-declarations.ts","../../src/transformer/transform-source-file.ts","../../src/shared/file-system/file-system.ts","../../src/shared/logger/logger.ts","../../src/shared/task/create-task-options.ts","../../src/transformer/cjs-to-esm-transformer.ts","../../src/transformer/cjs-to-esm.ts","../../src/shared/compiler-host/create-compiler-host.ts","../../src/shared/constant.ts","../../src/cli/task/transform/transform-task.ts","../../src/shared/task/create-transform-task-options.ts","../../src/api/transform.ts"],"sourcesContent":["import {normalize} from \"crosspath\";\n\nexport const KNOWN_EXTENSIONS = [\n\t\".d.ts\",\n\t\".d.dts.map\",\n\t\".js.map\",\n\t\".ts\",\n\t\".tsx\",\n\t\".js\",\n\t\".jsx\",\n\t\".mjs\",\n\t\".mjs.map\",\n\t\".mjsx\",\n\t\".cjs\",\n\t\".cjs.map\",\n\t\".csjx\",\n\t\".d.cts\",\n\t\".d.cts.map\",\n\t\".d.mts\",\n\t\".d.mts.map\",\n\t\".json\",\n\t\".tsbuildinfo\"\n] as const;\n\n/**\n * Ensure that the given path has a leading \".\"\n */\nexport function ensureHasLeadingDotAndPosix(p: string): string {\n\tconst posixPath = normalize(p);\n\tif (posixPath.startsWith(\".\")) return posixPath;\n\tif (posixPath.startsWith(\"/\")) return `.${posixPath}`;\n\treturn `./${posixPath}`;\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 normalize(`${stripKnownExtension(file)}${extension}`);\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(\"/\");\n}\n\nexport function isJsonModule(p: string): boolean {\n\treturn p.endsWith(`.json`);\n}\n","import path from \"crosspath\";\nimport fs from \"fs\";\nimport {IgnoredLookupValue} from \"helpertypes\";\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\nexport function getNearestPackageJson(from = import.meta.url): Record<string, unknown> | undefined {\n\t// There may be a file protocol in from of the path\n\tconst normalizedFrom = path.urlToFilename(from);\n\tconst currentDir = path.dirname(normalizedFrom);\n\n\tconst pkgPath = path.join(currentDir, \"package.json\");\n\tif (fs.existsSync(pkgPath)) {\n\t\treturn JSON.parse(fs.readFileSync(pkgPath, \"utf-8\"));\n\t} else if (currentDir !== normalizedFrom) {\n\t\treturn getNearestPackageJson(currentDir);\n\t} else {\n\t\treturn undefined;\n\t}\n}\n\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\nexport function getFolderClosestToRoot(root: string, files: Iterable<string>): string {\n\tconst [head] = files;\n\tif (head == null) {\n\t\tthrow new ReferenceError(`At least 1 file must be provided`);\n\t}\n\tlet candidate = head;\n\n\tfor (const file of files) {\n\t\tconst relativeToRoot = path.relative(root, file);\n\t\tif (relativeToRoot.split(\"/\").length < candidate.split(\"/\").length) {\n\t\t\tcandidate = relativeToRoot;\n\t\t}\n\t}\n\n\treturn path.join(root, path.dirname(candidate));\n}\n\nexport function rewriteFilenamePath(root: string, filename: string, outDir?: string | undefined) {\n\tif (outDir == null) return path.normalize(filename);\n\tconst {dir, base} = path.parse(filename);\n\n\tlet relativeDirFromSrc = dir === \"\" ? path.join(path.relative(root, dir)) : path.join(path.relative(root, dir), \"../\");\n\n\tif (relativeDirFromSrc.startsWith(\"/\")) {\n\t\trelativeDirFromSrc = relativeDirFromSrc.slice(1);\n\t}\n\tif (relativeDirFromSrc.startsWith(\"./\")) {\n\t\trelativeDirFromSrc = relativeDirFromSrc.slice(2);\n\t}\n\tif (relativeDirFromSrc.includes(\"/\")) {\n\t\trelativeDirFromSrc = relativeDirFromSrc.slice(relativeDirFromSrc.indexOf(\"/\") + 1);\n\t} else {\n\t\trelativeDirFromSrc = ``;\n\t}\n\treturn path.join(outDir, relativeDirFromSrc, base);\n}\n\nexport function normalizeGlob(glob: string): string {\n\treturn path.extname(glob) === \"\" && !glob.endsWith(\"*\") ? `${glob}/*` : glob;\n}\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","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport resolve from \"resolve\";\nimport {SafeReadonlyFileSystem} from \"../../shared/file-system/file-system.js\";\nimport path from \"crosspath\";\nimport {isExternalLibrary} from \"./path-util.js\";\nimport {isRecord} from \"../../shared/util/util.js\";\n\nexport interface ResolveOptions {\n\tcwd: string;\n\tid: string;\n\tparent: string | null | undefined;\n\tmoduleDirectory?: string;\n\tprioritizedPackageKeys?: string[];\n\tprioritizedExtensions?: string[];\n\tresolveCache: Map<string, string | null>;\n\tfileSystem: SafeReadonlyFileSystem;\n}\n\n/**\n * Computes a cache key based on the combination of id and parent\n */\nfunction computeCacheKey(id: string, parent: string | null | undefined): string {\n\treturn isExternalLibrary(id) ? id : `${parent == null ? \"\" : `${parent}->`}${id}`;\n}\n\n/**\n * A function that can resolve an import path\n */\nexport function resolvePath({\n\tid,\n\tparent,\n\tcwd,\n\tprioritizedPackageKeys = [\"exports\", \"es2015\", \"esm2015\", \"module\", \"jsnext:main\", \"main\", \"browser\"],\n\tprioritizedExtensions = [\"\", \".js\", \".mjs\", \".cjs\", \".jsx\", \".ts\", \".mts\", \".cts\", \".tsx\", \".json\"],\n\tmoduleDirectory = \"node_modules\",\n\tfileSystem,\n\tresolveCache\n}: ResolveOptions): string | undefined {\n\tid = path.normalize(id);\n\tif (parent != null) {\n\t\tparent = path.normalize(parent);\n\t}\n\n\tconst cacheKey = computeCacheKey(id, parent);\n\n\t// Attempt to take the resolve result from the cache\n\tconst cacheResult = resolveCache.get(cacheKey);\n\n\t// If it is a proper path, return it\n\tif (cacheResult != null) return cacheResult;\n\n\t// Otherwise, if the cache result isn't strictly equal to 'undefined', it has previously been resolved to a non-existing file\n\tif (cacheResult === null) return;\n\n\tif (!isExternalLibrary(id)) {\n\t\tconst absolute = path.isAbsolute(id) ? path.normalize(id) : path.join(parent == null ? \"\" : path.dirname(parent), id);\n\t\tconst variants = [absolute, path.join(absolute, \"index\")];\n\n\t\tfor (const variant of variants) {\n\t\t\tfor (const ext of prioritizedExtensions) {\n\t\t\t\tconst withExtension = `${variant}${ext}`;\n\t\t\t\tif (fileSystem.safeStatSync(withExtension)?.isFile() ?? false) {\n\t\t\t\t\t// Add it to the cache\n\t\t\t\t\tresolveCache.set(cacheKey, withExtension);\n\t\t\t\t\treturn withExtension;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add it to the cache and mark it as unresolvable\n\t\tresolveCache.set(cacheKey, null);\n\t\treturn undefined;\n\t}\n\n\t// Otherwise, try to resolve it via node module resolution and put it in the cache\n\ttry {\n\t\tconst resolveResult = path.normalize(\n\t\t\tresolve.sync(id, {\n\t\t\t\tbasedir: path.normalize(cwd),\n\t\t\t\textensions: prioritizedExtensions,\n\t\t\t\tmoduleDirectory: moduleDirectory,\n\t\t\t\treadFileSync: p => fileSystem.readFileSync(p).toString(),\n\t\t\t\tisFile: p => fileSystem.safeStatSync(p)?.isFile() ?? false,\n\t\t\t\tisDirectory: p => fileSystem.safeStatSync(p)?.isDirectory() ?? false,\n\t\t\t\tpackageFilter(pkg: Record<string, string>): Record<string, string> {\n\t\t\t\t\tlet property: string | undefined | null | void;\n\n\t\t\t\t\t//  Otherwise, or if no key was selected, use the prioritized list of fields and take the first matched one\n\t\t\t\t\tif (property == null) {\n\t\t\t\t\t\tconst packageKeys = Object.keys(pkg);\n\t\t\t\t\t\tproperty = prioritizedPackageKeys.find(key => packageKeys.includes(key));\n\t\t\t\t\t}\n\n\t\t\t\t\t// If a property was resolved, set the 'main' property to it (resolve will use the main property no matter what)\n\t\t\t\t\tif (property != null) {\n\t\t\t\t\t\tlet pickedProperty = pkg[property];\n\t\t\t\t\t\twhile (isRecord(pickedProperty)) {\n\t\t\t\t\t\t\tif (\"import\" in pickedProperty) {\n\t\t\t\t\t\t\t\tpickedProperty = (pickedProperty as any).import;\n\t\t\t\t\t\t\t} else if (\".\" in pickedProperty) {\n\t\t\t\t\t\t\t\tpickedProperty = pickedProperty[\".\"];\n\t\t\t\t\t\t\t} else if (\"default\" in pickedProperty) {\n\t\t\t\t\t\t\t\tpickedProperty = (pickedProperty as any).default;\n\t\t\t\t\t\t\t} else if (\"require\" in pickedProperty) {\n\t\t\t\t\t\t\t\tpickedProperty = (pickedProperty as any).require;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tpickedProperty = pickedProperty[Object.keys(pickedProperty)[0]];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tpkg.main = pickedProperty;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Return the package\n\t\t\t\t\treturn pkg;\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\n\t\t// Add it to the cache\n\t\tresolveCache.set(cacheKey, resolveResult);\n\n\t\t// Return it\n\t\treturn resolveResult;\n\t} catch (ex) {\n\t\t// No file could be resolved. Set it in the cache as unresolvable and return void\n\t\tresolveCache.set(cacheKey, null);\n\n\t\t// Return undefined¬\n\t\treturn undefined;\n\t}\n}\n","/**\n * Returns the given Expression itself if it isn't considered a \"filler node\"\n *\n * @param expression\n * @returns\n */\nimport {TS} from \"../../type/ts.js\";\n\nexport function walkThroughFillerNodes(expression: TS.Expression, typescript: typeof TS): TS.Expression {\n\t// noinspection JSDeprecatedSymbols\n\tif (\n\t\ttypescript.isParenthesizedExpression(expression) ||\n\t\ttypescript.isAsExpression(expression) ||\n\t\tisTypeAssertion(typescript)(expression) ||\n\t\ttypescript.isNonNullExpression(expression) ||\n\t\ttypescript.isExpressionWithTypeArguments(expression)\n\t) {\n\t\treturn expression.expression;\n\t}\n\n\treturn expression;\n}\n\nfunction isTypeAssertion(typescript: typeof TS) {\n\tconst t = typescript as (\n\t\t// modern\n\t\t| {isTypeAssertionExpression: typeof TS.isTypeAssertionExpression}\n\t\t// legacy\n\t\t| {isTypeAssertion: typeof TS.isTypeAssertionExpression}\n\t)\n\treturn 'isTypeAssertionExpression' in t\n\t\t? t.isTypeAssertionExpression\n\t\t: t.isTypeAssertion\n}\n","/* eslint-disable */\n/**\n * @file This file is auto-generated. Do not change its contents.\n */\n\nimport {ElementOf} from \"helpertypes\";\nimport {ModuleExports} from \"../module-exports/module-exports.js\";\n\nexport const BUILT_IN_MODULE = new Set([\n\t\"assert\",\n\t\"assert/strict\",\n\t\"async_hooks\",\n\t\"buffer\",\n\t\"child_process\",\n\t\"cluster\",\n\t\"console\",\n\t\"constants\",\n\t\"crypto\",\n\t\"dgram\",\n\t\"diagnostics_channel\",\n\t\"dns\",\n\t\"dns/promises\",\n\t\"domain\",\n\t\"events\",\n\t\"fs\",\n\t\"fs/promises\",\n\t\"http\",\n\t\"http2\",\n\t\"https\",\n\t\"inspector\",\n\t\"module\",\n\t\"net\",\n\t\"os\",\n\t\"path\",\n\t\"path/posix\",\n\t\"path/win32\",\n\t\"perf_hooks\",\n\t\"process\",\n\t\"punycode\",\n\t\"querystring\",\n\t\"readline\",\n\t\"readline/promises\",\n\t\"repl\",\n\t\"stream\",\n\t\"stream/consumers\",\n\t\"stream/promises\",\n\t\"stream/web\",\n\t\"string_decoder\",\n\t\"timers\",\n\t\"timers/promises\",\n\t\"tls\",\n\t\"trace_events\",\n\t\"tty\",\n\t\"url\",\n\t\"util\",\n\t\"util/types\",\n\t\"v8\",\n\t\"vm\",\n\t\"worker_threads\",\n\t\"zlib\"\n] as const);\n\nexport type BuiltInModule = ElementOf<typeof BUILT_IN_MODULE>;\nexport type BuiltInModuleMap = {\n\t[Key in BuiltInModule]: ModuleExports;\n};\n\nexport function isBuiltInModule(moduleName: string): moduleName is BuiltInModule {\n\treturn BUILT_IN_MODULE.has(moduleName as BuiltInModule);\n}\n\nexport const BUILT_IN_MODULE_MAP: BuiltInModuleMap = {\n\tassert: {\n\t\tnamedExports: new Set([]),\n\t\thasDefaultExport: true\n\t},\n\t\"assert/strict\": {\n\t\tnamedExports: new Set([]),\n\t\thasDefaultExport: true\n\t},\n\tasync_hooks: {\n\t\tnamedExports: new Set([\"AsyncLocalStorage\", \"createHook\", \"executionAsyncId\", \"triggerAsyncId\", \"executionAsyncResource\", \"asyncWrapProviders\", \"AsyncResource\"]),\n\t\thasDefaultExport: true\n\t},\n\tbuffer: {\n\t\tnamedExports: new Set([\"Blob\", \"resolveObjectURL\", \"Buffer\", \"SlowBuffer\", \"transcode\", \"kMaxLength\", \"kStringMaxLength\", \"btoa\", \"atob\", \"constants\", \"INSPECT_MAX_BYTES\"]),\n\t\thasDefaultExport: true\n\t},\n\tchild_process: {\n\t\tnamedExports: new Set([\"ChildProcess\", \"exec\", \"execFile\", \"execFileSync\", \"execSync\", \"fork\", \"spawn\", \"spawnSync\"]),\n\t\thasDefaultExport: true\n\t},\n\tcluster: {\n\t\tnamedExports: new Set([\n\t\t\t\"isWorker\",\n\t\t\t\"isMaster\",\n\t\t\t\"isPrimary\",\n\t\t\t\"Worker\",\n\t\t\t\"workers\",\n\t\t\t\"settings\",\n\t\t\t\"SCHED_NONE\",\n\t\t\t\"SCHED_RR\",\n\t\t\t\"schedulingPolicy\",\n\t\t\t\"setupPrimary\",\n\t\t\t\"setupMaster\",\n\t\t\t\"fork\",\n\t\t\t\"disconnect\"\n\t\t]),\n\t\thasDefaultExport: true\n\t},\n\tconsole: {\n\t\tnamedExports: new Set([\n\t\t\t\"log\",\n\t\t\t\"warn\",\n\t\t\t\"dir\",\n\t\t\t\"time\",\n\t\t\t\"timeEnd\",\n\t\t\t\"timeLog\",\n\t\t\t\"trace\",\n\t\t\t\"assert\",\n\t\t\t\"clear\",\n\t\t\t\"count\",\n\t\t\t\"countReset\",\n\t\t\t\"group\",\n\t\t\t\"groupEnd\",\n\t\t\t\"table\",\n\t\t\t\"debug\",\n\t\t\t\"info\",\n\t\t\t\"dirxml\",\n\t\t\t\"error\",\n\t\t\t\"groupCollapsed\",\n\t\t\t\"Console\",\n\t\t\t\"profile\",\n\t\t\t\"profileEnd\",\n\t\t\t\"timeStamp\",\n\t\t\t\"context\"\n\t\t]),\n\t\thasDefaultExport: true\n\t},\n\tconstants: {\n\t\tnamedExports: new Set([\n\t\t\t\"E2BIG\",\n\t\t\t\"EACCES\",\n\t\t\t\"EADDRINUSE\",\n\t\t\t\"EADDRNOTAVAIL\",\n\t\t\t\"EAFNOSUPPORT\",\n\t\t\t\"EAGAIN\",\n\t\t\t\"EALREADY\",\n\t\t\t\"EBADF\",\n\t\t\t\"EBADMSG\",\n\t\t\t\"EBUSY\",\n\t\t\t\"ECANCELED\",\n\t\t\t\"ECHILD\",\n\t\t\t\"ECONNABORTED\",\n\t\t\t\"ECONNREFUSED\",\n\t\t\t\"ECONNRESET\",\n\t\t\t\"EDEADLK\",\n\t\t\t\"EDESTADDRREQ\",\n\t\t\t\"EDOM\",\n\t\t\t\"EEXIST\",\n\t\t\t\"EFAULT\",\n\t\t\t\"EFBIG\",\n\t\t\t\"EHOSTUNREACH\",\n\t\t\t\"EIDRM\",\n\t\t\t\"EILSEQ\",\n\t\t\t\"EINPROGRESS\",\n\t\t\t\"EINTR\",\n\t\t\t\"EINVAL\",\n\t\t\t\"EIO\",\n\t\t\t\"EISCONN\",\n\t\t\t\"EISDIR\",\n\t\t\t\"ELOOP\",\n\t\t\t\"EMFILE\",\n\t\t\t\"EMLINK\",\n\t\t\t\"EMSGSIZE\",\n\t\t\t\"ENAMETOOLONG\",\n\t\t\t\"ENETDOWN\",\n\t\t\t\"ENETRESET\",\n\t\t\t\"ENETUNREACH\",\n\t\t\t\"ENFILE\",\n\t\t\t\"ENOBUFS\",\n\t\t\t\"ENODATA\",\n\t\t\t\"ENODEV\",\n\t\t\t\"ENOENT\",\n\t\t\t\"ENOEXEC\",\n\t\t\t\"ENOLCK\",\n\t\t\t\"ENOLINK\",\n\t\t\t\"ENOMEM\",\n\t\t\t\"ENOMSG\",\n\t\t\t\"ENOPROTOOPT\",\n\t\t\t\"ENOSPC\",\n\t\t\t\"ENOSR\",\n\t\t\t\"ENOSTR\",\n\t\t\t\"ENOSYS\",\n\t\t\t\"ENOTCONN\",\n\t\t\t\"ENOTDIR\",\n\t\t\t\"ENOTEMPTY\",\n\t\t\t\"ENOTSOCK\",\n\t\t\t\"ENOTSUP\",\n\t\t\t\"ENOTTY\",\n\t\t\t\"ENXIO\",\n\t\t\t\"EOPNOTSUPP\",\n\t\t\t\"EOVERFLOW\",\n\t\t\t\"EPERM\",\n\t\t\t\"EPIPE\",\n\t\t\t\"EPROTO\",\n\t\t\t\"EPROTONOSUPPORT\",\n\t\t\t\"EPROTOTYPE\",\n\t\t\t\"ERANGE\",\n\t\t\t\"EROFS\",\n\t\t\t\"ESPIPE\",\n\t\t\t\"ESRCH\",\n\t\t\t\"ETIME\",\n\t\t\t\"ETIMEDOUT\",\n\t\t\t\"ETXTBSY\",\n\t\t\t\"EWOULDBLOCK\",\n\t\t\t\"EXDEV\",\n\t\t\t\"WSAEINTR\",\n\t\t\t\"WSAEBADF\",\n\t\t\t\"WSAEACCES\",\n\t\t\t\"WSAEFAULT\",\n\t\t\t\"WSAEINVAL\",\n\t\t\t\"WSAEMFILE\",\n\t\t\t\"WSAEWOULDBLOCK\",\n\t\t\t\"WSAEINPROGRESS\",\n\t\t\t\"WSAEALREADY\",\n\t\t\t\"WSAENOTSOCK\",\n\t\t\t\"WSAEDESTADDRREQ\",\n\t\t\t\"WSAEMSGSIZE\",\n\t\t\t\"WSAEPROTOTYPE\",\n\t\t\t\"WSAENOPROTOOPT\",\n\t\t\t\"WSAEPROTONOSUPPORT\",\n\t\t\t\"WSAESOCKTNOSUPPORT\",\n\t\t\t\"WSAEOPNOTSUPP\",\n\t\t\t\"WSAEPFNOSUPPORT\",\n\t\t\t\"WSAEAFNOSUPPORT\",\n\t\t\t\"WSAEADDRINUSE\",\n\t\t\t\"WSAEADDRNOTAVAIL\",\n\t\t\t\"WSAENETDOWN\",\n\t\t\t\"WSAENETUNREACH\",\n\t\t\t\"WSAENETRESET\",\n\t\t\t\"WSAECONNABORTED\",\n\t\t\t\"WSAECONNRESET\",\n\t\t\t\"WSAENOBUFS\",\n\t\t\t\"WSAEISCONN\",\n\t\t\t\"WSAENOTCONN\",\n\t\t\t\"WSAESHUTDOWN\",\n\t\t\t\"WSAETOOMANYREFS\",\n\t\t\t\"WSAETIMEDOUT\",\n\t\t\t\"WSAECONNREFUSED\",\n\t\t\t\"WSAELOOP\",\n\t\t\t\"WSAENAMETOOLONG\",\n\t\t\t\"WSAEHOSTDOWN\",\n\t\t\t\"WSAEHOSTUNREACH\",\n\t\t\t\"WSAENOTEMPTY\",\n\t\t\t\"WSAEPROCLIM\",\n\t\t\t\"WSAEUSERS\",\n\t\t\t\"WSAEDQUOT\",\n\t\t\t\"WSAESTALE\",\n\t\t\t\"WSAEREMOTE\",\n\t\t\t\"WSASYSNOTREADY\",\n\t\t\t\"WSAVERNOTSUPPORTED\",\n\t\t\t\"WSANOTINITIALISED\",\n\t\t\t\"WSAEDISCON\",\n\t\t\t\"WSAENOMORE\",\n\t\t\t\"WSAECANCELLED\",\n\t\t\t\"WSAEINVALIDPROCTABLE\",\n\t\t\t\"WSAEINVALIDPROVIDER\",\n\t\t\t\"WSAEPROVIDERFAILEDINIT\",\n\t\t\t\"WSASYSCALLFAILURE\",\n\t\t\t\"WSASERVICE_NOT_FOUND\",\n\t\t\t\"WSATYPE_NOT_FOUND\",\n\t\t\t\"WSA_E_NO_MORE\",\n\t\t\t\"WSA_E_CANCELLED\",\n\t\t\t\"WSAEREFUSED\",\n\t\t\t\"PRIORITY_LOW\",\n\t\t\t\"PRIORITY_BELOW_NORMAL\",\n\t\t\t\"PRIORITY_NORMAL\",\n\t\t\t\"PRIORITY_ABOVE_NORMAL\",\n\t\t\t\"PRIORITY_HIGH\",\n\t\t\t\"PRIORITY_HIGHEST\",\n\t\t\t\"SIGHUP\",\n\t\t\t\"SIGINT\",\n\t\t\t\"SIGILL\",\n\t\t\t\"SIGABRT\",\n\t\t\t\"SIGFPE\",\n\t\t\t\"SIGKILL\",\n\t\t\t\"SIGSEGV\",\n\t\t\t\"SIGTERM\",\n\t\t\t\"SIGBREAK\",\n\t\t\t\"SIGWINCH\",\n\t\t\t\"UV_FS_SYMLINK_DIR\",\n\t\t\t\"UV_FS_SYMLINK_JUNCTION\",\n\t\t\t\"O_RDONLY\",\n\t\t\t\"O_WRONLY\",\n\t\t\t\"O_RDWR\",\n\t\t\t\"UV_DIRENT_UNKNOWN\",\n\t\t\t\"UV_DIRENT_FILE\",\n\t\t\t\"UV_DIRENT_DIR\",\n\t\t\t\"UV_DIRENT_LINK\",\n\t\t\t\"UV_DIRENT_FIFO\",\n\t\t\t\"UV_DIRENT_SOCKET\",\n\t\t\t\"UV_DIRENT_CHAR\",\n\t\t\t\"UV_DIRENT_BLOCK\",\n\t\t\t\"S_IFMT\",\n\t\t\t\"S_IFREG\",\n\t\t\t\"S_IFDIR\",\n\t\t\t\"S_IFCHR\",\n\t\t\t\"S_IFLNK\",\n\t\t\t\"O_CREAT\",\n\t\t\t\"O_EXCL\",\n\t\t\t\"UV_FS_O_FILEMAP\",\n\t\t\t\"O_TRUNC\",\n\t\t\t\"O_APPEND\",\n\t\t\t\"S_IRUSR\",\n\t\t\t\"S_IWUSR\",\n\t\t\t\"F_OK\",\n\t\t\t\"R_OK\",\n\t\t\t\"W_OK\",\n\t\t\t\"X_OK\",\n\t\t\t\"UV_FS_COPYFILE_EXCL\",\n\t\t\t\"COPYFILE_EXCL\",\n\t\t\t\"UV_FS_COPYFILE_FICLONE\",\n\t\t\t\"COPYFILE_FICLONE\",\n\t\t\t\"UV_FS_COPYFILE_FICLONE_FORCE\",\n\t\t\t\"COPYFILE_FICLONE_FORCE\",\n\t\t\t\"OPENSSL_VERSION_NUMBER\",\n\t\t\t\"SSL_OP_ALL\",\n\t\t\t\"SSL_OP_ALLOW_NO_DHE_KEX\",\n\t\t\t\"SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION\",\n\t\t\t\"SSL_OP_CIPHER_SERVER_PREFERENCE\",\n\t\t\t\"SSL_OP_CISCO_ANYCONNECT\",\n\t\t\t\"SSL_OP_COOKIE_EXCHANGE\",\n\t\t\t\"SSL_OP_CRYPTOPRO_TLSEXT_BUG\",\n\t\t\t\"SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS\",\n\t\t\t\"SSL_OP_EPHEMERAL_RSA\",\n\t\t\t\"SSL_OP_LEGACY_SERVER_CONNECT\",\n\t\t\t\"SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER\",\n\t\t\t\"SSL_OP_MICROSOFT_SESS_ID_BUG\",\n\t\t\t\"SSL_OP_MSIE_SSLV2_RSA_PADDING\",\n\t\t\t\"SSL_OP_NETSCAPE_CA_DN_BUG\",\n\t\t\t\"SSL_OP_NETSCAPE_CHALLENGE_BUG\",\n\t\t\t\"SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG\",\n\t\t\t\"SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG\",\n\t\t\t\"SSL_OP_NO_COMPRESSION\",\n\t\t\t\"SSL_OP_NO_ENCRYPT_THEN_MAC\",\n\t\t\t\"SSL_OP_NO_QUERY_MTU\",\n\t\t\t\"SSL_OP_NO_RENEGOTIATION\",\n\t\t\t\"SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION\",\n\t\t\t\"SSL_OP_NO_SSLv2\",\n\t\t\t\"SSL_OP_NO_SSLv3\",\n\t\t\t\"SSL_OP_NO_TICKET\",\n\t\t\t\"SSL_OP_NO_TLSv1\",\n\t\t\t\"SSL_OP_NO_TLSv1_1\",\n\t\t\t\"SSL_OP_NO_TLSv1_2\",\n\t\t\t\"SSL_OP_NO_TLSv1_3\",\n\t\t\t\"SSL_OP_PKCS1_CHECK_1\",\n\t\t\t\"SSL_OP_PKCS1_CHECK_2\",\n\t\t\t\"SSL_OP_PRIORITIZE_CHACHA\",\n\t\t\t\"SSL_OP_SINGLE_DH_USE\",\n\t\t\t\"SSL_OP_SINGLE_ECDH_USE\",\n\t\t\t\"SSL_OP_SSLEAY_080_CLIENT_DH_BUG\",\n\t\t\t\"SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG\",\n\t\t\t\"SSL_OP_TLS_BLOCK_PADDING_BUG\",\n\t\t\t\"SSL_OP_TLS_D5_BUG\",\n\t\t\t\"SSL_OP_TLS_ROLLBACK_BUG\",\n\t\t\t\"ENGINE_METHOD_RSA\",\n\t\t\t\"ENGINE_METHOD_DSA\",\n\t\t\t\"ENGINE_METHOD_DH\",\n\t\t\t\"ENGINE_METHOD_RAND\",\n\t\t\t\"ENGINE_METHOD_EC\",\n\t\t\t\"ENGINE_METHOD_CIPHERS\",\n\t\t\t\"ENGINE_METHOD_DIGESTS\",\n\t\t\t\"ENGINE_METHOD_PKEY_METHS\",\n\t\t\t\"ENGINE_METHOD_PKEY_ASN1_METHS\",\n\t\t\t\"ENGINE_METHOD_ALL\",\n\t\t\t\"ENGINE_METHOD_NONE\",\n\t\t\t\"DH_CHECK_P_NOT_SAFE_PRIME\",\n\t\t\t\"DH_CHECK_P_NOT_PRIME\",\n\t\t\t\"DH_UNABLE_TO_CHECK_GENERATOR\",\n\t\t\t\"DH_NOT_SUITABLE_GENERATOR\",\n\t\t\t\"ALPN_ENABLED\",\n\t\t\t\"RSA_PKCS1_PADDING\",\n\t\t\t\"RSA_NO_PADDING\",\n\t\t\t\"RSA_PKCS1_OAEP_PADDING\",\n\t\t\t\"RSA_X931_PADDING\",\n\t\t\t\"RSA_PKCS1_PSS_PADDING\",\n\t\t\t\"RSA_PSS_SALTLEN_DIGEST\",\n\t\t\t\"RSA_PSS_SALTLEN_MAX_SIGN\",\n\t\t\t\"RSA_PSS_SALTLEN_AUTO\",\n\t\t\t\"defaultCoreCipherList\",\n\t\t\t\"TLS1_VERSION\",\n\t\t\t\"TLS1_1_VERSION\",\n\t\t\t\"TLS1_2_VERSION\",\n\t\t\t\"TLS1_3_VERSION\",\n\t\t\t\"POINT_CONVERSION_COMPRESSED\",\n\t\t\t\"POINT_CONVERSION_UNCOMPRESSED\",\n\t\t\t\"POINT_CONVERSION_HYBRID\",\n\t\t\t\"defaultCipherList\"\n\t\t]),\n\t\thasDefaultExport: true\n\t},\n\tcrypto: {\n\t\tnamedExports: new Set([\n\t\t\t\"checkPrime\",\n\t\t\t\"checkPrimeSync\",\n\t\t\t\"createCipheriv\",\n\t\t\t\"createDecipheriv\",\n\t\t\t\"createDiffieHellman\",\n\t\t\t\"createDiffieHellmanGroup\",\n\t\t\t\"createECDH\",\n\t\t\t\"createHash\",\n\t\t\t\"createHmac\",\n\t\t\t\"createPrivateKey\",\n\t\t\t\"createPublicKey\",\n\t\t\t\"createSecretKey\",\n\t\t\t\"createSign\",\n\t\t\t\"createVerify\",\n\t\t\t\"diffieHellman\",\n\t\t\t\"generatePrime\",\n\t\t\t\"generatePrimeSync\",\n\t\t\t\"getCiphers\",\n\t\t\t\"getCipherInfo\",\n\t\t\t\"getCurves\",\n\t\t\t\"getDiffieHellman\",\n\t\t\t\"getHashes\",\n\t\t\t\"hkdf\",\n\t\t\t\"hkdfSync\",\n\t\t\t\"pbkdf2\",\n\t\t\t\"pbkdf2Sync\",\n\t\t\t\"generateKeyPair\",\n\t\t\t\"generateKeyPairSync\",\n\t\t\t\"generateKey\",\n\t\t\t\"generateKeySync\",\n\t\t\t\"privateDecrypt\",\n\t\t\t\"privateEncrypt\",\n\t\t\t\"publicDecrypt\",\n\t\t\t\"publicEncrypt\",\n\t\t\t\"randomBytes\",\n\t\t\t\"randomFill\",\n\t\t\t\"randomFillSync\",\n\t\t\t\"randomInt\",\n\t\t\t\"randomUUID\",\n\t\t\t\"scrypt\",\n\t\t\t\"scryptSync\",\n\t\t\t\"sign\",\n\t\t\t\"setEngine\",\n\t\t\t\"timingSafeEqual\",\n\t\t\t\"getFips\",\n\t\t\t\"setFips\",\n\t\t\t\"verify\",\n\t\t\t\"Certificate\",\n\t\t\t\"Cipher\",\n\t\t\t\"Cipheriv\",\n\t\t\t\"Decipher\",\n\t\t\t\"Decipheriv\",\n\t\t\t\"DiffieHellman\",\n\t\t\t\"DiffieHellmanGroup\",\n\t\t\t\"ECDH\",\n\t\t\t\"Hash\",\n\t\t\t\"Hmac\",\n\t\t\t\"KeyObject\",\n\t\t\t\"Sign\",\n\t\t\t\"Verify\",\n\t\t\t\"X509Certificate\",\n\t\t\t\"secureHeapUsed\",\n\t\t\t\"constants\",\n\t\t\t\"webcrypto\",\n\t\t\t\"subtle\",\n\t\t\t\"getRandomValues\"\n\t\t]),\n\t\thasDefaultExport: true\n\t},\n\tdgram: {\n\t\tnamedExports: new Set([\"createSocket\", \"Socket\"]),\n\t\thasDefaultExport: true\n\t},\n\tdiagnostics_channel: {\n\t\tnamedExports: new Set([\"channel\", \"hasSubscribers\", \"Channel\"]),\n\t\thasDefaultExport: true\n\t},\n\tdns: {\n\t\tnamedExports: new Set([\n\t\t\t\"lookup\",\n\t\t\t\"lookupService\",\n\t\t\t\"Resolver\",\n\t\t\t\"setDefaultResultOrder\",\n\t\t\t\"setServers\",\n\t\t\t\"ADDRCONFIG\",\n\t\t\t\"ALL\",\n\t\t\t\"V4MAPPED\",\n\t\t\t\"NODATA\",\n\t\t\t\"FORMERR\",\n\t\t\t\"SERVFAIL\",\n\t\t\t\"NOTFOUND\",\n\t\t\t\"NOTIMP\",\n\t\t\t\"REFUSED\",\n\t\t\t\"BADQUERY\",\n\t\t\t\"BADNAME\",\n\t\t\t\"BADFAMILY\",\n\t\t\t\"BADRESP\",\n\t\t\t\"CONNREFUSED\",\n\t\t\t\"TIMEOUT\",\n\t\t\t\"EOF\",\n\t\t\t\"FILE\",\n\t\t\t\"NOMEM\",\n\t\t\t\"DESTRUCTION\",\n\t\t\t\"BADSTR\",\n\t\t\t\"BADFLAGS\",\n\t\t\t\"NONAME\",\n\t\t\t\"BADHINTS\",\n\t\t\t\"NOTINITIALIZED\",\n\t\t\t\"LOADIPHLPAPI\",\n\t\t\t\"ADDRGETNETWORKPARAMS\",\n\t\t\t\"CANCELLED\",\n\t\t\t\"getServers\",\n\t\t\t\"resolve\",\n\t\t\t\"resolve4\",\n\t\t\t\"resolve6\",\n\t\t\t\"resolveAny\",\n\t\t\t\"resolveCaa\",\n\t\t\t\"resolveCname\",\n\t\t\t\"resolveMx\",\n\t\t\t\"resolveNaptr\",\n\t\t\t\"resolveNs\",\n\t\t\t\"resolvePtr\",\n\t\t\t\"resolveSoa\",\n\t\t\t\"resolveSrv\",\n\t\t\t\"resolveTxt\",\n\t\t\t\"reverse\",\n\t\t\t\"promises\"\n\t\t]),\n\t\thasDefaultExport: true\n\t},\n\t\"dns/promises\": {\n\t\tnamedExports: new Set([\n\t\t\t\"lookup\",\n\t\t\t\"lookupService\",\n\t\t\t\"Resolver\",\n\t\t\t\"getServers\",\n\t\t\t\"resolve\",\n\t\t\t\"resolve4\",\n\t\t\t\"resolve6\",\n\t\t\t\"resolveAny\",\n\t\t\t\"resolveCaa\",\n\t\t\t\"resolveCname\",\n\t\t\t\"resolveMx\",\n\t\t\t\"resolveNaptr\",\n\t\t\t\"resolveNs\",\n\t\t\t\"resolvePtr\",\n\t\t\t\"resolveSoa\",\n\t\t\t\"resolveSrv\",\n\t\t\t\"resolveTxt\",\n\t\t\t\"reverse\",\n\t\t\t\"setServers\",\n\t\t\t\"setDefaultResultOrder\"\n\t\t]),\n\t\thasDefaultExport: true\n\t},\n\tdomain: {\n\t\tnamedExports: new Set([\"Domain\", \"createDomain\", \"create\", \"active\"]),\n\t\thasDefaultExport: true\n\t},\n\tevents: {\n\t\tnamedExports: new Set([]),\n\t\thasDefaultExport: true\n\t},\n\tfs: {\n\t\tnamedExports: new Set([\n\t\t\t\"appendFile\",\n\t\t\t\"appendFileSync\",\n\t\t\t\"access\",\n\t\t\t\"accessSync\",\n\t\t\t\"chown\",\n\t\t\t\"chownSync\",\n\t\t\t\"chmod\",\n\t\t\t\"chmodSync\",\n\t\t\t\"close\",\n\t\t\t\"closeSync\",\n\t\t\t\"copyFile\",\n\t\t\t\"copyFileSync\",\n\t\t\t\"cp\",\n\t\t\t\"cpSync\",\n\t\t\t\"createReadStream\",\n\t\t\t\"createWriteStream\",\n\t\t\t\"exists\",\n\t\t\t\"existsSync\",\n\t\t\t\"fchown\",\n\t\t\t\"fchownSync\",\n\t\t\t\"fchmod\",\n\t\t\t\"fchmodSync\",\n\t\t\t\"fdatasync\",\n\t\t\t\"fdatasyncSync\",\n\t\t\t\"fstat\",\n\t\t\t\"fstatSync\",\n\t\t\t\"fsync\",\n\t\t\t\"fsyncSync\",\n\t\t\t\"ftruncate\",\n\t\t\t\"ftruncateSync\",\n\t\t\t\"futimes\",\n\t\t\t\"futimesSync\",\n\t\t\t\"lchown\",\n\t\t\t\"lchownSync\",\n\t\t\t\"lchmod\",\n\t\t\t\"lchmodSync\",\n\t\t\t\"link\",\n\t\t\t\"linkSync\",\n\t\t\t\"lstat\",\n\t\t\t\"lstatSync\",\n\t\t\t\"lutimes\",\n\t\t\t\"lutimesSync\",\n\t\t\t\"mkdir\",\n\t\t\t\"mkdirSync\",\n\t\t\t\"mkdtemp\",\n\t\t\t\"mkdtempSync\",\n\t\t\t\"open\",\n\t\t\t\"openSync\",\n\t\t\t\"opendir\",\n\t\t\t\"opendirSync\",\n\t\t\t\"readdir\",\n\t\t\t\"readdirSync\",\n\t\t\t\"read\",\n\t\t\t\"readSync\",\n\t\t\t\"readv\",\n\t\t\t\"readvSync\",\n\t\t\t\"readFile\",\n\t\t\t\"readFileSync\",\n\t\t\t\"readlink\",\n\t\t\t\"readlinkSync\",\n\t\t\t\"realpath\",\n\t\t\t\"realpathSync\",\n\t\t\t\"rename\",\n\t\t\t\"renameSync\",\n\t\t\t\"rm\",\n\t\t\t\"rmSync\",\n\t\t\t\"rmdir\",\n\t\t\t\"rmdirSync\",\n\t\t\t\"stat\",\n\t\t\t\"statSync\",\n\t\t\t\"symlink\",\n\t\t\t\"symlinkSync\",\n\t\t\t\"truncate\",\n\t\t\t\"truncateSync\",\n\t\t\t\"unwatchFile\",\n\t\t\t\"unlink\",\n\t\t\t\"unlinkSync\",\n\t\t\t\"utimes\",\n\t\t\t\"utimesSync\",\n\t\t\t\"watch\",\n\t\t\t\"watchFile\",\n\t\t\t\"writeFile\",\n\t\t\t\"writeFileSync\",\n\t\t\t\"write\",\n\t\t\t\"writeSync\",\n\t\t\t\"writev\",\n\t\t\t\"writevSync\",\n\t\t\t\"Dir\",\n\t\t\t\"Dirent\",\n\t\t\t\"Stats\",\n\t\t\t\"ReadStream\",\n\t\t\t\"WriteStream\",\n\t\t\t\"FileReadStream\",\n\t\t\t\"FileWriteStream\",\n\t\t\t\"F_OK\",\n\t\t\t\"R_OK\",\n\t\t\t\"W_OK\",\n\t\t\t\"X_OK\",\n\t\t\t\"constants\",\n\t\t\t\"promises\"\n\t\t]),\n\t\thasDefaultExport: true\n\t},\n\t\"fs/promises\": {\n\t\tnamedExports: new Set([\n\t\t\t\"access\",\n\t\t\t\"copyFile\",\n\t\t\t\"cp\",\n\t\t\t\"open\",\n\t\t\t\"opendir\",\n\t\t\t\"rename\",\n\t\t\t\"truncate\",\n\t\t\t\"rm\",\n\t\t\t\"rmdir\",\n\t\t\t\"mkdir\",\n\t\t\t\"readdir\",\n\t\t\t\"readlink\",\n\t\t\t\"symlink\",\n\t\t\t\"lstat\",\n\t\t\t\"stat\",\n\t\t\t\"link\",\n\t\t\t\"unlink\",\n\t\t\t\"chmod\",\n\t\t\t\"lchmod\",\n\t\t\t\"lchown\",\n\t\t\t\"chown\",\n\t\t\t\"utimes\",\n\t\t\t\"lutimes\",\n\t\t\t\"realpath\",\n\t\t\t\"mkdtemp\",\n\t\t\t\"writeFile\",\n\t\t\t\"appendFile\",\n\t\t\t\"readFile\",\n\t\t\t\"watch\"\n\t\t]),\n\t\thasDefaultExport: true\n\t},\n\thttp: {\n\t\tnamedExports: new Set([\n\t\t\t\"METHODS\",\n\t\t\t\"STATUS_CODES\",\n\t\t\t\"Agent\",\n\t\t\t\"ClientRequest\",\n\t\t\t\"IncomingMessage\",\n\t\t\t\"OutgoingMessage\",\n\t\t\t\"Server\",\n\t\t\t\"ServerResponse\",\n\t\t\t\"createServer\",\n\t\t\t\"validateHeaderName\",\n\t\t\t\"validateHeaderValue\",\n\t\t\t\"get\",\n\t\t\t\"request\",\n\t\t\t\"maxHeaderSize\",\n\t\t\t\"globalAgent\"\n\t\t]),\n\t\thasDefaultExport: true\n\t},\n\thttp2: {\n\t\tnamedExports: new Set([\n\t\t\t\"connect\",\n\t\t\t\"constants\",\n\t\t\t\"createServer\",\n\t\t\t\"createSecureServer\",\n\t\t\t\"getDefaultSettings\",\n\t\t\t\"getPackedSettings\",\n\t\t\t\"getUnpackedSettings\",\n\t\t\t\"sensitiveHeaders\",\n\t\t\t\"Http2ServerRequest\",\n\t\t\t\"Http2ServerResponse\"\n\t\t]),\n\t\thasDefaultExport: true\n\t},\n\thttps: {\n\t\tnamedExports: new Set([\"Agent\", \"globalAgent\", \"Server\", \"createServer\", \"get\", \"request\"]),\n\t\thasDefaultExport: true\n\t},\n\tinspector: {\n\t\tnamedExports: new Set([\"open\", \"close\", \"url\", \"waitForDebugger\", \"console\", \"Session\"]),\n\t\thasDefaultExport: true\n\t},\n\tmodule: {\n\t\tnamedExports: new Set([]),\n\t\thasDefaultExport: true\n\t},\n\tnet: {\n\t\tnamedExports: new Set([\"BlockList\", \"SocketAddress\", \"connect\", \"createConnection\", \"createServer\", \"isIP\", \"isIPv4\", \"isIPv6\", \"Server\", \"Socket\", \"Stream\"]),\n\t\thasDefaultExport: true\n\t},\n\tos: {\n\t\tnamedExports: new Set([\n\t\t\t\"arch\",\n\t\t\t\"cpus\",\n\t\t\t\"endianness\",\n\t\t\t\"freemem\",\n\t\t\t\"getPriority\",\n\t\t\t\"homedir\",\n\t\t\t\"hostname\",\n\t\t\t\"loadavg\",\n\t\t\t\"networkInterfaces\",\n\t\t\t\"platform\",\n\t\t\t\"release\",\n\t\t\t\"setPriority\",\n\t\t\t\"tmpdir\",\n\t\t\t\"totalmem\",\n\t\t\t\"type\",\n\t\t\t\"userInfo\",\n\t\t\t\"uptime\",\n\t\t\t\"version\",\n\t\t\t\"constants\",\n\t\t\t\"EOL\",\n\t\t\t\"devNull\"\n\t\t]),\n\t\thasDefaultExport: true\n\t},\n\tpath: {\n\t\tnamedExports: new Set([\n\t\t\t\"resolve\",\n\t\t\t\"normalize\",\n\t\t\t\"isAbsolute\",\n\t\t\t\"join\",\n\t\t\t\"relative\",\n\t\t\t\"toNamespacedPath\",\n\t\t\t\"dirname\",\n\t\t\t\"basename\",\n\t\t\t\"extname\",\n\t\t\t\"format\",\n\t\t\t\"parse\",\n\t\t\t\"sep\",\n\t\t\t\"delimiter\",\n\t\t\t\"win32\",\n\t\t\t\"posix\"\n\t\t]),\n\t\thasDefaultExport: true\n\t},\n\t\"path/posix\": {\n\t\tnamedExports: new Set([\n\t\t\t\"resolve\",\n\t\t\t\"normalize\",\n\t\t\t\"isAbsolute\",\n\t\t\t\"join\",\n\t\t\t\"relative\",\n\t\t\t\"toNamespacedPath\",\n\t\t\t\"dirname\",\n\t\t\t\"basename\",\n\t\t\t\"extname\",\n\t\t\t\"format\",\n\t\t\t\"parse\",\n\t\t\t\"sep\",\n\t\t\t\"delimiter\",\n\t\t\t\"win32\",\n\t\t\t\"posix\"\n\t\t]),\n\t\thasDefaultExport: true\n\t},\n\t\"path/win32\": {\n\t\tnamedExports: new Set([\n\t\t\t\"resolve\",\n\t\t\t\"normalize\",\n\t\t\t\"isAbsolute\",\n\t\t\t\"join\",\n\t\t\t\"relative\",\n\t\t\t\"toNamespacedPath\",\n\t\t\t\"dirname\",\n\t\t\t\"basename\",\n\t\t\t\"extname\",\n\t\t\t\"format\",\n\t\t\t\"parse\",\n\t\t\t\"sep\",\n\t\t\t\"delimiter\",\n\t\t\t\"win32\",\n\t\t\t\"posix\"\n\t\t]),\n\t\thasDefaultExport: true\n\t},\n\tperf_hooks: {\n\t\tnamedExports: new Set([\n\t\t\t\"PerformanceEntry\",\n\t\t\t\"PerformanceMark\",\n\t\t\t\"PerformanceMeasure\",\n\t\t\t\"PerformanceObserver\",\n\t\t\t\"PerformanceObserverEntryList\",\n\t\t\t\"PerformanceResourceTiming\",\n\t\t\t\"monitorEventLoopDelay\",\n\t\t\t\"createHistogram\",\n\t\t\t\"performance\",\n\t\t\t\"constants\"\n\t\t]),\n\t\thasDefaultExport: true\n\t},\n\tprocess: {\n\t\tnamedExports: new Set([\n\t\t\t\"version\",\n\t\t\t\"versions\",\n\t\t\t\"arch\",\n\t\t\t\"platform\",\n\t\t\t\"release\",\n\t\t\t\"moduleLoadList\",\n\t\t\t\"binding\",\n\t\t\t\"domain\",\n\t\t\t\"config\",\n\t\t\t\"dlopen\",\n\t\t\t\"uptime\",\n\t\t\t\"getActiveResourcesInfo\",\n\t\t\t\"reallyExit\",\n\t\t\t\"cpuUsage\",\n\t\t\t\"resourceUsage\",\n\t\t\t\"memoryUsage\",\n\t\t\t\"kill\",\n\t\t\t\"exit\",\n\t\t\t\"hrtime\",\n\t\t\t\"openStdin\",\n\t\t\t\"allowedNodeEnvironmentFlags\",\n\t\t\t\"assert\",\n\t\t\t\"features\",\n\t\t\t\"setUncaughtExceptionCaptureCallback\",\n\t\t\t\"hasUncaughtExceptionCaptureCallback\",\n\t\t\t\"emitWarning\",\n\t\t\t\"nextTick\",\n\t\t\t\"stdout\",\n\t\t\t\"stdin\",\n\t\t\t\"stderr\",\n\t\t\t\"abort\",\n\t\t\t\"umask\",\n\t\t\t\"chdir\",\n\t\t\t\"cwd\",\n\t\t\t\"env\",\n\t\t\t\"title\",\n\t\t\t\"argv\",\n\t\t\t\"execArgv\",\n\t\t\t\"pid\",\n\t\t\t\"ppid\",\n\t\t\t\"execPath\",\n\t\t\t\"debugPort\",\n\t\t\t\"argv0\",\n\t\t\t\"exitCode\",\n\t\t\t\"report\",\n\t\t\t\"setSourceMapsEnabled\",\n\t\t\t\"mainModule\",\n\t\t\t\"emit\"\n\t\t]),\n\t\thasDefaultExport: true\n\t},\n\tpunycode: {\n\t\tnamedExports: new Set([\"version\", \"ucs2\", \"decode\", \"encode\", \"toASCII\", \"toUnicode\"]),\n\t\thasDefaultExport: true\n\t},\n\tquerystring: {\n\t\tnamedExports: new Set([\"unescapeBuffer\", \"unescape\", \"escape\", \"stringify\", \"encode\", \"parse\", \"decode\"]),\n\t\thasDefaultExport: true\n\t},\n\treadline: {\n\t\tnamedExports: new Set([\"Interface\", \"clearLine\", \"clearScreenDown\", \"createInterface\", \"cursorTo\", \"emitKeypressEvents\", \"moveCursor\", \"promises\"]),\n\t\thasDefaultExport: true\n\t},\n\t\"readline/promises\": {\n\t\tnamedExports: new Set([\"Interface\", \"Readline\", \"createInterface\"]),\n\t\thasDefaultExport: true\n\t},\n\trepl: {\n\t\tnamedExports: new Set([\"start\", \"writer\", \"REPLServer\", \"REPL_MODE_SLOPPY\", \"REPL_MODE_STRICT\", \"Recoverable\", \"builtinModules\"]),\n\t\thasDefaultExport: true\n\t},\n\tstream: {\n\t\tnamedExports: new Set([]),\n\t\thasDefaultExport: true\n\t},\n\t\"stream/consumers\": {\n\t\tnamedExports: new Set([\"arrayBuffer\", \"blob\", \"buffer\", \"text\", \"json\"]),\n\t\thasDefaultExport: true\n\t},\n\t\"stream/promises\": {\n\t\tnamedExports: new Set([\"finished\", \"pipeline\"]),\n\t\thasDefaultExport: true\n\t},\n\t\"stream/web\": {\n\t\tnamedExports: new Set([\n\t\t\t\"ReadableStream\",\n\t\t\t\"ReadableStreamDefaultReader\",\n\t\t\t\"ReadableStreamBYOBReader\",\n\t\t\t\"ReadableStreamBYOBRequest\",\n\t\t\t\"ReadableByteStreamController\",\n\t\t\t\"ReadableStreamDefaultController\",\n\t\t\t\"TransformStream\",\n\t\t\t\"TransformStreamDefaultController\",\n\t\t\t\"WritableStream\",\n\t\t\t\"WritableStreamDefaultWriter\",\n\t\t\t\"WritableStreamDefaultController\",\n\t\t\t\"ByteLengthQueuingStrategy\",\n\t\t\t\"CountQueuingStrategy\",\n\t\t\t\"TextEncoderStream\",\n\t\t\t\"TextDecoderStream\",\n\t\t\t\"CompressionStream\",\n\t\t\t\"DecompressionStream\"\n\t\t]),\n\t\thasDefaultExport: true\n\t},\n\tstring_decoder: {\n\t\tnamedExports: new Set([\"StringDecoder\"]),\n\t\thasDefaultExport: true\n\t},\n\ttimers: {\n\t\tnamedExports: new Set([\"setTimeout\", \"clearTimeout\", \"setImmediate\", \"clearImmediate\", \"setInterval\", \"clearInterval\", \"active\", \"unenroll\", \"enroll\"]),\n\t\thasDefaultExport: true\n\t},\n\t\"timers/promises\": {\n\t\tnamedExports: new Set([\"setTimeout\", \"setImmediate\", \"setInterval\", \"scheduler\"]),\n\t\thasDefaultExport: true\n\t},\n\ttls: {\n\t\tnamedExports: new Set([\n\t\t\t\"CLIENT_RENEG_LIMIT\",\n\t\t\t\"CLIENT_RENEG_WINDOW\",\n\t\t\t\"DEFAULT_CIPHERS\",\n\t\t\t\"DEFAULT_ECDH_CURVE\",\n\t\t\t\"DEFAULT_MIN_VERSION\",\n\t\t\t\"DEFAULT_MAX_VERSION\",\n\t\t\t\"getCiphers\",\n\t\t\t\"rootCertificates\",\n\t\t\t\"convertALPNProtocols\",\n\t\t\t\"checkServerIdentity\",\n\t\t\t\"createSecureContext\",\n\t\t\t\"SecureContext\",\n\t\t\t\"TLSSocket\",\n\t\t\t\"Server\",\n\t\t\t\"createServer\",\n\t\t\t\"connect\",\n\t\t\t\"createSecurePair\"\n\t\t]),\n\t\thasDefaultExport: true\n\t},\n\ttrace_events: {\n\t\tnamedExports: new Set([\"createTracing\", \"getEnabledCategories\"]),\n\t\thasDefaultExport: true\n\t},\n\ttty: {\n\t\tnamedExports: new Set([\"isatty\", \"ReadStream\", \"WriteStream\"]),\n\t\thasDefaultExport: true\n\t},\n\turl: {\n\t\tnamedExports: new Set([\n\t\t\t\"Url\",\n\t\t\t\"parse\",\n\t\t\t\"resolve\",\n\t\t\t\"resolveObject\",\n\t\t\t\"format\",\n\t\t\t\"URL\",\n\t\t\t\"URLSearchParams\",\n\t\t\t\"domainToASCII\",\n\t\t\t\"domainToUnicode\",\n\t\t\t\"pathToFileURL\",\n\t\t\t\"fileURLToPath\",\n\t\t\t\"urlToHttpOptions\"\n\t\t]),\n\t\thasDefaultExport: true\n\t},\n\tutil: {\n\t\tnamedExports: new Set([\n\t\t\t\"callbackify\",\n\t\t\t\"debug\",\n\t\t\t\"debuglog\",\n\t\t\t\"deprecate\",\n\t\t\t\"format\",\n\t\t\t\"formatWithOptions\",\n\t\t\t\"getSystemErrorMap\",\n\t\t\t\"getSystemErrorName\",\n\t\t\t\"inherits\",\n\t\t\t\"inspect\",\n\t\t\t\"isArray\",\n\t\t\t\"isBoolean\",\n\t\t\t\"isBuffer\",\n\t\t\t\"isDeepStrictEqual\",\n\t\t\t\"isNull\",\n\t\t\t\"isNullOrUndefined\",\n\t\t\t\"isNumber\",\n\t\t\t\"isString\",\n\t\t\t\"isSymbol\",\n\t\t\t\"isUndefined\",\n\t\t\t\"isRegExp\",\n\t\t\t\"isObject\",\n\t\t\t\"isDate\",\n\t\t\t\"isError\",\n\t\t\t\"isFunction\",\n\t\t\t\"isPrimitive\",\n\t\t\t\"log\",\n\t\t\t\"promisify\",\n\t\t\t\"stripVTControlCharacters\",\n\t\t\t\"toUSVString\",\n\t\t\t\"TextDecoder\",\n\t\t\t\"TextEncoder\",\n\t\t\t\"types\"\n\t\t]),\n\t\thasDefaultExport: true\n\t},\n\t\"util/types\": {\n\t\tnamedExports: new Set([\n\t\t\t\"isExternal\",\n\t\t\t\"isDate\",\n\t\t\t\"isArgumentsObject\",\n\t\t\t\"isBigIntObject\",\n\t\t\t\"isBooleanObject\",\n\t\t\t\"isNumberObject\",\n\t\t\t\"isStringObject\",\n\t\t\t\"isSymbolObject\",\n\t\t\t\"isNativeError\",\n\t\t\t\"isRegExp\",\n\t\t\t\"isAsyncFunction\",\n\t\t\t\"isGeneratorFunction\",\n\t\t\t\"isGeneratorObject\",\n\t\t\t\"isPromise\",\n\t\t\t\"isMap\",\n\t\t\t\"isSet\",\n\t\t\t\"isMapIterator\",\n\t\t\t\"isSetIterator\",\n\t\t\t\"isWeakMap\",\n\t\t\t\"isWeakSet\",\n\t\t\t\"isArrayBuffer\",\n\t\t\t\"isDataView\",\n\t\t\t\"isSharedArrayBuffer\",\n\t\t\t\"isProxy\",\n\t\t\t\"isModuleNamespaceObject\",\n\t\t\t\"isAnyArrayBuffer\",\n\t\t\t\"isBoxedPrimitive\",\n\t\t\t\"isArrayBufferView\",\n\t\t\t\"isTypedArray\",\n\t\t\t\"isUint8Array\",\n\t\t\t\"isUint8ClampedArray\",\n\t\t\t\"isUint16Array\",\n\t\t\t\"isUint32Array\",\n\t\t\t\"isInt8Array\",\n\t\t\t\"isInt16Array\",\n\t\t\t\"isInt32Array\",\n\t\t\t\"isFloat32Array\",\n\t\t\t\"isFloat64Array\",\n\t\t\t\"isBigInt64Array\",\n\t\t\t\"isBigUint64Array\",\n\t\t\t\"isKeyObject\",\n\t\t\t\"isCryptoKey\"\n\t\t]),\n\t\thasDefaultExport: true\n\t},\n\tv8: {\n\t\tnamedExports: new Set([\n\t\t\t\"cachedDataVersionTag\",\n\t\t\t\"getHeapSnapshot\",\n\t\t\t\"getHeapStatistics\",\n\t\t\t\"getHeapSpaceStatistics\",\n\t\t\t\"getHeapCodeStatistics\",\n\t\t\t\"setFlagsFromString\",\n\t\t\t\"Serializer\",\n\t\t\t\"Deserializer\",\n\t\t\t\"DefaultSerializer\",\n\t\t\t\"DefaultDeserializer\",\n\t\t\t\"deserialize\",\n\t\t\t\"takeCoverage\",\n\t\t\t\"stopCoverage\",\n\t\t\t\"serialize\",\n\t\t\t\"writeHeapSnapshot\",\n\t\t\t\"promiseHooks\"\n\t\t]),\n\t\thasDefaultExport: true\n\t},\n\tvm: {\n\t\tnamedExports: new Set([\"Script\", \"createContext\", \"createScript\", \"runInContext\", \"runInNewContext\", \"runInThisContext\", \"isContext\", \"compileFunction\", \"measureMemory\"]),\n\t\thasDefaultExport: true\n\t},\n\tworker_threads: {\n\t\tnamedExports: new Set([\n\t\t\t\"isMainThread\",\n\t\t\t\"MessagePort\",\n\t\t\t\"MessageChannel\",\n\t\t\t\"markAsUntransferable\",\n\t\t\t\"moveMessagePortToContext\",\n\t\t\t\"receiveMessageOnPort\",\n\t\t\t\"resourceLimits\",\n\t\t\t\"threadId\",\n\t\t\t\"SHARE_ENV\",\n\t\t\t\"Worker\",\n\t\t\t\"parentPort\",\n\t\t\t\"workerData\",\n\t\t\t\"BroadcastChannel\",\n\t\t\t\"setEnvironmentData\",\n\t\t\t\"getEnvironmentData\"\n\t\t]),\n\t\thasDefaultExport: true\n\t},\n\tzlib: {\n\t\tnamedExports: new Set([\n\t\t\t\"Deflate\",\n\t\t\t\"Inflate\",\n\t\t\t\"Gzip\",\n\t\t\t\"Gunzip\",\n\t\t\t\"DeflateRaw\",\n\t\t\t\"InflateRaw\",\n\t\t\t\"Unzip\",\n\t\t\t\"BrotliCompress\",\n\t\t\t\"BrotliDecompress\",\n\t\t\t\"deflate\",\n\t\t\t\"deflateSync\",\n\t\t\t\"gzip\",\n\t\t\t\"gzipSync\",\n\t\t\t\"deflateRaw\",\n\t\t\t\"deflateRawSync\",\n\t\t\t\"unzip\",\n\t\t\t\"unzipSync\",\n\t\t\t\"inflate\",\n\t\t\t\"inflateSync\",\n\t\t\t\"gunzip\",\n\t\t\t\"gunzipSync\",\n\t\t\t\"inflateRaw\",\n\t\t\t\"inflateRawSync\",\n\t\t\t\"brotliCompress\",\n\t\t\t\"brotliCompressSync\",\n\t\t\t\"brotliDecompress\",\n\t\t\t\"brotliDecompressSync\",\n\t\t\t\"createDeflate\",\n\t\t\t\"createInflate\",\n\t\t\t\"createDeflateRaw\",\n\t\t\t\"createInflateRaw\",\n\t\t\t\"createGzip\",\n\t\t\t\"createGunzip\",\n\t\t\t\"createUnzip\",\n\t\t\t\"createBrotliCompress\",\n\t\t\t\"createBrotliDecompress\",\n\t\t\t\"constants\",\n\t\t\t\"codes\"\n\t\t]),\n\t\thasDefaultExport: true\n\t}\n};\n","import {ensureHasLeadingDotAndPosix, isExternalLibrary, setExtension} from \"./path-util.js\";\nimport {VisitorContext} from \"../visitor-context.js\";\nimport path from \"crosspath\";\n\nexport interface TransformModuleSpecifierOptions {\n\tcontext: VisitorContext;\n\tparent: string;\n\tresolvedModuleSpecifier: string | undefined;\n}\n\nfunction determineNewExtension(currentExtension: string): string {\n\tswitch (currentExtension) {\n\t\tcase \".ts\":\n\t\tcase \".tsx\":\n\t\tcase \".d.ts\":\n\t\tcase \".d.mts\":\n\t\tcase \".js\":\n\t\tcase \".jsx\":\n\t\tcase \".cjs\":\n\t\tcase \".cjsx\":\n\t\tcase \".cts\":\n\t\t\treturn \".js\";\n\t\tcase \".mjs\":\n\t\tcase \".mts\":\n\t\tcase \".mjsx\":\n\t\tcase \".d.cts\":\n\t\t\treturn \".mjs\";\n\t\tdefault:\n\t\t\treturn currentExtension;\n\t}\n}\n\n/**\n * Converts the given module specifier to one that is supported by target runtime, based on the given context options\n */\nexport function transformModuleSpecifier(moduleSpecifier: string, {context, parent, resolvedModuleSpecifier}: TransformModuleSpecifierOptions): string {\n\t// If the module specifier already contains an extension, do nothing else\n\tif (path.extname(moduleSpecifier) !== \"\" || resolvedModuleSpecifier == null) {\n\t\treturn moduleSpecifier;\n\t}\n\n\tswitch (context.preserveModuleSpecifiers) {\n\t\tcase \"always\":\n\t\t\treturn moduleSpecifier;\n\t\tcase \"never\":\n\t\t\tbreak;\n\t\tcase \"external\":\n\t\t\tif (isExternalLibrary(moduleSpecifier)) {\n\t\t\t\treturn moduleSpecifier;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"internal\":\n\t\t\tif (!isExternalLibrary(moduleSpecifier)) {\n\t\t\t\treturn moduleSpecifier;\n\t\t\t}\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tif (context.preserveModuleSpecifiers(moduleSpecifier)) {\n\t\t\t\treturn moduleSpecifier;\n\t\t\t}\n\t}\n\n\treturn setExtension(ensureHasLeadingDotAndPosix(path.relative(path.dirname(parent), resolvedModuleSpecifier)), determineNewExtension(path.extname(resolvedModuleSpecifier)));\n}\n","import {VisitorContext} from \"../visitor-context.js\";\nimport {resolvePath} from \"./resolve-path.js\";\nimport {walkThroughFillerNodes} from \"./walk-through-filler-nodes.js\";\nimport {isBuiltInModule} from \"../built-in/built-in-module-map.js\";\nimport {TS} from \"../../type/ts.js\";\nimport {transformModuleSpecifier} from \"./transform-module-specifier.js\";\n\nexport interface IsRequireCallNoMatchResult {\n\tmatch: false;\n}\n\nexport interface IsRequireCallMatchResultWithNoResolvedModuleSpecifier {\n\tmatch: true;\n\tmoduleSpecifier: string | undefined;\n\ttransformedModuleSpecifier: string | undefined;\n\tresolvedModuleSpecifier: undefined;\n\tresolvedModuleSpecifierText: undefined;\n}\n\nexport interface IsRequireCallMatchResultWithResolvedModuleSpecifier {\n\tmatch: true;\n\tmoduleSpecifier: string;\n\tresolvedModuleSpecifier: string;\n\tresolvedModuleSpecifierText: string;\n\ttransformedModuleSpecifier: string;\n}\n\nexport type IsRequireCallResult = IsRequireCallNoMatchResult | IsRequireCallMatchResultWithNoResolvedModuleSpecifier | IsRequireCallMatchResultWithResolvedModuleSpecifier;\n\n/**\n * Checks if the CallExpression represents a require call (e.g.: 'require(...)')\n */\nexport function isRequireCall(inputExpression: TS.Expression, sourceFile: TS.SourceFile, context: VisitorContext): IsRequireCallResult {\n\tconst {typescript} = context;\n\tconst callExpression = walkThroughFillerNodes(inputExpression, typescript);\n\tif (!typescript.isCallExpression(callExpression)) return {match: false};\n\n\tconst expression = walkThroughFillerNodes(callExpression.expression, typescript);\n\tif (!typescript.isIdentifier(expression) || expression.text !== \"require\") return {match: false};\n\n\t// Take the first argument, if there is any\n\tconst [firstArgument] = callExpression.arguments;\n\tif (firstArgument == null) return {match: false};\n\n\tconst moduleSpecifier = typescript.isStringLiteralLike(firstArgument) ? firstArgument.text : undefined;\n\n\tconst resolvedModuleSpecifier =\n\t\tmoduleSpecifier == null\n\t\t\t? undefined\n\t\t\t: resolvePath({\n\t\t\t\t\t...context,\n\t\t\t\t\tid: moduleSpecifier,\n\t\t\t\t\tparent: sourceFile.fileName\n\t\t\t  });\n\n\tconst resolvedModuleSpecifierText =\n\t\tresolvedModuleSpecifier == null || isBuiltInModule(resolvedModuleSpecifier) ? undefined : context.fileSystem.safeReadFileSync(resolvedModuleSpecifier)?.toString();\n\n\tif (moduleSpecifier == null || resolvedModuleSpecifier == null || resolvedModuleSpecifierText == null) {\n\t\treturn {\n\t\t\tmatch: true,\n\t\t\tmoduleSpecifier,\n\t\t\ttransformedModuleSpecifier: moduleSpecifier,\n\t\t\tresolvedModuleSpecifier: undefined,\n\t\t\tresolvedModuleSpecifierText: undefined\n\t\t};\n\t} else {\n\t\treturn {\n\t\t\tmatch: true,\n\t\t\ttransformedModuleSpecifier: transformModuleSpecifier(moduleSpecifier, {resolvedModuleSpecifier, context, parent: sourceFile.fileName}),\n\t\t\tmoduleSpecifier,\n\t\t\tresolvedModuleSpecifier,\n\t\t\tresolvedModuleSpecifierText\n\t\t};\n\t}\n}\n","import {TS} from \"../../type/ts.js\";\n\nexport function findNodeUp<T extends TS.Node>(from: TS.Node, nodeCb: (node: TS.Node) => node is T, breakWhen?: (node: TS.Node) => boolean): T | undefined;\nexport function findNodeUp<T extends TS.Node>(from: TS.Node, nodeCb: (node: TS.Node) => boolean, breakWhen?: (node: TS.Node) => boolean): T | undefined;\nexport function findNodeUp<T extends TS.Node>(from: TS.Node, nodeCb: (node: TS.Node) => boolean, breakWhen?: (node: TS.Node) => boolean): T | undefined {\n\tlet current = from as TS.Node | T;\n\twhile (current.parent != null) {\n\t\tcurrent = current.parent;\n\t\tif (breakWhen != null && breakWhen(current)) return undefined;\n\t\tif (nodeCb(current)) return current as T;\n\t}\n\treturn undefined;\n}\n","import {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 an Expression\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 {TS} from \"../../type/ts.js\";\n\n/**\n * Returns true if the given Node is a Declaration\n * Uses an internal non-exposed Typescript helper to decide whether or not the Node is an Expression\n */\nexport function isDeclaration(node: TS.Node, typescript: typeof TS): node is TS.Declaration {\n\treturn (typescript as unknown as {isDeclaration(node: TS.Node): boolean}).isDeclaration(node);\n}\n","import {isStatement} from \"./is-statement.js\";\nimport {isDeclaration} from \"./is-declaration.js\";\nimport {TS} from \"../../type/ts.js\";\n\n/**\n * Returns true if the given Node is a Statement is a Declaration\n */\nexport function isStatementOrDeclaration(node: TS.Node, typescript: typeof TS): node is TS.Statement | TS.Declaration {\n\treturn isStatement(node, typescript) || isDeclaration(node, typescript);\n}\n","import {camelCase} from \"@wessberg/stringutil\";\nimport path from \"crosspath\";\n\n/**\n * Generates a proper name based on the given module specifier\n */\nexport function generateNameFromModuleSpecifier(moduleSpecifier: string): string {\n\tconst {name} = path.parse(moduleSpecifier);\n\treturn camelCase(name);\n}\n","import {IsRequireCallResult} from \"./is-require-call.js\";\nimport {ModuleExports} from \"../module-exports/module-exports.js\";\nimport {BUILT_IN_MODULE_MAP, isBuiltInModule} from \"../built-in/built-in-module-map.js\";\nimport {BeforeVisitorContext} from \"../visitor/before-visitor-context.js\";\nimport {isJsonModule} from \"./path-util.js\";\n\n/**\n * Tries to get or potentially parse module exports based on the given data in the given context\n */\nexport function getModuleExportsFromRequireDataInContext(data: IsRequireCallResult, context: BeforeVisitorContext): ModuleExports | undefined {\n\tif (!data.match) return undefined;\n\n\tconst {typescript} = context;\n\n\t// Otherwise, spread out the things we know about the require call\n\tconst {moduleSpecifier, resolvedModuleSpecifierText, resolvedModuleSpecifier} = data;\n\n\t// If no module specifier could be determined, remove the CallExpression from the SourceFile\n\tif (moduleSpecifier == null) {\n\t\treturn undefined;\n\t}\n\n\t// If we've been able to resolve a module as well as its contents,\n\t// Check it for exports so that we know more about its internals, for example whether or not it has any named exports, etc\n\tlet moduleExports: ModuleExports | undefined;\n\n\t// If no module specifier could be resolved, it may be a built in module - an we may know about its module exports already\n\tif (resolvedModuleSpecifier == null && isBuiltInModule(moduleSpecifier)) {\n\t\tmoduleExports = BUILT_IN_MODULE_MAP[moduleSpecifier];\n\t}\n\n\t// Otherwise, if we could resolve a module, try to get the exports for it\n\telse if (resolvedModuleSpecifier != null) {\n\t\t// Treat JSON modules as ones with a single default export\n\t\tif (isJsonModule(resolvedModuleSpecifier)) {\n\t\t\tmoduleExports = {\n\t\t\t\tassert: \"json\",\n\t\t\t\thasDefaultExport: true,\n\t\t\t\tnamedExports: new Set()\n\t\t\t};\n\t\t} else {\n\t\t\t// Try to get the ModuleExports for the resolved module, if we know them already\n\t\t\tmoduleExports = context.getModuleExportsForPath(resolvedModuleSpecifier);\n\n\t\t\t// If that wasn't possible, generate a new SourceFile and parse it\n\t\t\tif (moduleExports == null && resolvedModuleSpecifierText != null) {\n\t\t\t\tmoduleExports = context.transformSourceFile(\n\t\t\t\t\ttypescript.createSourceFile(resolvedModuleSpecifier, resolvedModuleSpecifierText, typescript.ScriptTarget.ESNext, true, typescript.ScriptKind.TS),\n\t\t\t\t\t{\n\t\t\t\t\t\t...context,\n\t\t\t\t\t\tonlyExports: true\n\t\t\t\t\t}\n\t\t\t\t).exports;\n\t\t\t}\n\t\t}\n\t}\n\treturn moduleExports;\n}\n","import {TS} from \"../../type/ts.js\";\nimport {TaskOptions} from \"../../shared/task/task-options.js\";\n\nexport function shouldDebug(debug: TaskOptions[\"debug\"], sourceFile?: TS.SourceFile): boolean {\n\tif (debug == null) return false;\n\tif (typeof debug === \"boolean\") return debug;\n\tif (sourceFile == null) return true;\n\tif (typeof debug === \"string\") return sourceFile.fileName === debug;\n\telse return debug(sourceFile.fileName);\n}\n","import type {TS} from \"../../type/ts.js\";\nimport {VisitorContext} from \"../visitor-context.js\";\n\nexport function maybeGenerateAssertClause(context: VisitorContext, moduleSpecifier: string, assert?: string): TS.AssertClause | undefined {\n\tif (assert == null) return undefined;\n\n\tconst {factory, importAssertions} = context;\n\n\tif (importAssertions === false || (typeof importAssertions === \"function\" && !importAssertions(moduleSpecifier))) {\n\t\treturn undefined;\n\t}\n\n\tif (!(\"createAssertClause\" in context.typescript.factory)) {\n\t\tcontext.logger.warn(\n\t\t\t`The current version of TypeScript (v${context.typescript.version}) does not support Import Assertions. No Import Assertion will be added for the module with specifier '${moduleSpecifier}' in the transformed code. To remove this warning, either disable import assertions or update to TypeScript v4.5 or newer.`\n\t\t);\n\t}\n\n\treturn factory.createAssertClause(factory.createNodeArray([factory.createAssertEntry(factory.createIdentifier(\"type\"), factory.createStringLiteral(assert))]));\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { TS } from '../../type/ts'\nimport { BeforeVisitorContext } from '../visitor/before-visitor-context'\n\n/**\n * Split the `decorators` and `modifiers` parameters for older versions of Typescript.\n * \n * The `decorators` parameter has been removed in\n * https://github.com/microsoft/TypeScript/commit/1e65b330a71cc09065b31f1724d78e931aafed51#diff-db6fa105c495d655ffce5b52d0f5abaa1d59947ce2fa102ee023de15d15a0b80\n */\nexport function tsFactoryDecoratorsInterop<\n    T extends (\n        // update\n        | ((node: any, modifiers: readonly TS.ModifierLike[]|undefined, ...others: any[]) => any)\n        // create\n        | ((modifiers: readonly TS.ModifierLike[]|undefined, ...others: any[]) => any)\n    )\n>(\n    context: BeforeVisitorContext,\n    func: T,\n) {\n    // I didn't check every Typescript version for different parameter names or different API types.\n    // This solution relies on the guess that any modern use of `ModifierLike` translates\n    // to `…decorators, modifiers…` parameters in older APIs and vice versa.\n    const m = /^(?:function )?\\w+\\(((?:\\s*\\w\\s*,)*)\\s*decorators\\s*,\\s*modifiers\\s*(?:,|\\))/.exec(Function.prototype.toString.call(func))\n    if (!m) {\n        return func\n    }\n    const position = m[1] ? m[1].split(',').length : 0\n\n    return function (this: unknown, ...a: unknown[]) {\n        const modiferLike = a[position] as TS.NodeArray<TS.ModifierLike>|undefined\n        if (!modiferLike) {\n            a.splice(position, 1, undefined, undefined)\n        } else {\n            const decorators: TS.Decorator[] = []\n            const modifiers: TS.Modifier[] = []\n            for (const el of modiferLike) {\n                if (el.kind === context.typescript.SyntaxKind.Decorator) {\n                    decorators.push(el)\n                } else {\n                    modifiers.push(el)\n                }\n            }\n            a.splice(position, 1,\n                decorators.length ? context.factory.createNodeArray(decorators) : undefined,\n                modifiers.length ? context.factory.createNodeArray(modifiers) : undefined,\n            )\n        }\n        return (func as any).apply(this, a)\n    } as T\n}\n","import {BeforeVisitorOptions} from \"../before-visitor-options.js\";\nimport {isRequireCall} from \"../../util/is-require-call.js\";\nimport {findNodeUp} from \"../../util/find-node-up.js\";\nimport {isStatementOrDeclaration} from \"../../util/is-statement-or-declaration.js\";\nimport {isStatement} from \"../../util/is-statement.js\";\nimport {generateNameFromModuleSpecifier} from \"../../util/generate-name-from-module-specifier.js\";\nimport {getModuleExportsFromRequireDataInContext} from \"../../util/get-module-exports-from-require-data-in-context.js\";\nimport {TS} from \"../../../type/ts.js\";\nimport {shouldDebug} from \"../../util/should-debug.js\";\nimport {walkThroughFillerNodes} from \"../../util/walk-through-filler-nodes.js\";\nimport {maybeGenerateAssertClause} from \"../../util/maybe-generate-assert-clause.js\";\nimport { tsFactoryDecoratorsInterop } from '../../util/decorators-interop.js'\n\n/**\n * Visits the given CallExpression\n */\nexport function visitCallExpression({node, childContinuation, sourceFile, context}: BeforeVisitorOptions<TS.CallExpression>): TS.VisitResult<TS.Node|undefined> {\n\tif (context.onlyExports) {\n\t\treturn childContinuation(node);\n\t}\n\n\t// Check if the node represents a require(...) call.\n\tconst requireData = isRequireCall(node, sourceFile, context);\n\tconst {typescript, factory} = context;\n\n\t// If it doesn't proceed without applying any transformations\n\tif (!requireData.match) {\n\t\treturn childContinuation(node);\n\t}\n\n\t// Otherwise, spread out the things we know about the require call\n\tconst {moduleSpecifier, transformedModuleSpecifier} = requireData;\n\n\t// If no module specifier could be determined, remove the CallExpression from the SourceFile\n\tif (moduleSpecifier == null || transformedModuleSpecifier == null) {\n\t\treturn undefined;\n\t}\n\n\t// If we've been able to resolve a module as well as its contents,\n\t// Check it for exports so that we know more about its internals, for example whether or not it has any named exports, etc\n\tconst moduleExports = getModuleExportsFromRequireDataInContext(requireData, context);\n\n\t// Find the first ExpressionStatement going up from the Node, breaking if part of a BinaryExpression, CallExpression, or a NewExpression\n\tconst expressionStatementParent = findNodeUp(\n\t\tnode,\n\t\ttypescript.isExpressionStatement,\n\t\tcurrentNode => typescript.isBinaryExpression(currentNode) || typescript.isCallExpression(currentNode) || typescript.isNewExpression(currentNode)\n\t);\n\n\t// If we don't know anything about the exports of the module, or if it doesn't export any named exports,\n\t// there's really not much we can do in terms of using the context of the CallExpression to import the maximally\n\t// minimal subset of the module. In these cases, the only thing that can be done is to import the default\n\t// export and maybe return an identifier for it depending on whether or not the CallExpression is part of an ExpressionStatement\n\tif (moduleExports == null || moduleExports.namedExports.size === 0 || (expressionStatementParent != null && !moduleExports.hasDefaultExport)) {\n\t\t// If part of an ExpressionStatement, simply return the module without any name or other bindings\n\t\tif (expressionStatementParent != null) {\n\t\t\t// Only add the import if there isn't already an import within the SourceFile of the entire module without any bindings\n\t\t\tif (!context.isModuleSpecifierImportedWithoutLocals(moduleSpecifier)) {\n\t\t\t\tcontext.addImport(\n\t\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createImportDeclaration)(\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tfactory.createStringLiteral(transformedModuleSpecifier),\n\t\t\t\t\t\tmaybeGenerateAssertClause(context, transformedModuleSpecifier, moduleExports?.assert)\n\t\t\t\t\t),\n\t\t\t\t\tmoduleSpecifier\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Drop this CallExpression\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Otherwise, we need to give the module a name and replace the CallExpression with an identifier for it\n\t\telse {\n\t\t\t// If the default export is already imported, get the local binding name for it and create an identifier for it\n\t\t\t// rather than generating a new unnecessary import\n\t\t\tif (context.hasLocalForDefaultImportFromModule(moduleSpecifier)) {\n\t\t\t\tconst local = context.getLocalForDefaultImportFromModule(moduleSpecifier)!;\n\t\t\t\treturn factory.createIdentifier(local);\n\t\t\t} else {\n\t\t\t\tconst identifier = factory.createIdentifier(context.getFreeIdentifier(generateNameFromModuleSpecifier(moduleSpecifier)));\n\n\t\t\t\tconst importClause = factory.createImportClause(false, identifier, undefined);\n\n\t\t\t\tcontext.addImport(\n\t\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createImportDeclaration)(\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\timportClause,\n\t\t\t\t\t\tfactory.createStringLiteral(transformedModuleSpecifier),\n\t\t\t\t\t\tmaybeGenerateAssertClause(context, transformedModuleSpecifier, moduleExports?.assert)\n\t\t\t\t\t),\n\t\t\t\t\tmoduleSpecifier\n\t\t\t\t);\n\n\t\t\t\t// Replace the CallExpression by the identifier\n\t\t\t\treturn identifier;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Otherwise, we know that we want to add an import instead of the CallExpression, but depending on the context of the CallExpression, we may\n\t// or may not import specific Named Exports, the Default Export, or the entire namespace.\n\n\t// Find the first Element- or PropertyAccessExpression that wraps the require(...) call, whatever it is.\n\t// That means that if it is wrapped in 'require(...)[\"foo\"].bar', then the ElementAccessExpression will be matched first\n\tconst elementOrPropertyAccessExpressionParent = findNodeUp<TS.PropertyAccessExpression | TS.ElementAccessExpression>(\n\t\tnode,\n\t\tchild => typescript.isElementAccessExpression(child) || typescript.isPropertyAccessExpression(child),\n\t\tnextNode => isStatementOrDeclaration(nextNode, typescript)\n\t);\n\n\tif (elementOrPropertyAccessExpressionParent != null) {\n\t\t// Try to evaluate the name or argument expression, depending on the kind of node\n\t\tlet rightValue: string | undefined;\n\n\t\t// If it is a PropertyAccessExpression, the name will always be an identifier\n\t\tif (typescript.isPropertyAccessExpression(elementOrPropertyAccessExpressionParent)) {\n\t\t\trightValue = elementOrPropertyAccessExpressionParent.name.text;\n\t\t} else {\n\t\t\t// Otherwise, the argument may be any kind of expression. Try to evaluate it to a string literal if possible\n\t\t\tif (typescript.isStringLiteralLike(elementOrPropertyAccessExpressionParent.argumentExpression)) {\n\t\t\t\trightValue = elementOrPropertyAccessExpressionParent.argumentExpression.text;\n\t\t\t}\n\t\t}\n\n\t\t// The argumentExpression or name matched a string, use that as a candidate for a lookup binding\n\t\tif (rightValue != null) {\n\t\t\t// If the module doesn't include a named export with a name matching the right value,\n\t\t\t// we should instead import the default export if it has any (otherwise we'll use a Namespace import) and replace the CallExpression with an identifier for it\n\t\t\tif (!moduleExports.namedExports.has(rightValue)) {\n\t\t\t\tlet identifier: TS.Identifier;\n\n\t\t\t\t// If the default export is already imported, get the local binding name for it and create an identifier for it\n\t\t\t\t// rather than generating a new unnecessary import\n\t\t\t\tif (moduleExports.hasDefaultExport && context.hasLocalForDefaultImportFromModule(moduleSpecifier)) {\n\t\t\t\t\tidentifier = factory.createIdentifier(context.getLocalForDefaultImportFromModule(moduleSpecifier)!);\n\t\t\t\t}\n\n\t\t\t\t// If the namespace is already imported, get the local binding name for it and create an identifier for it\n\t\t\t\t// rather than generating a new unnecessary import\n\t\t\t\telse if (!moduleExports.hasDefaultExport && context.hasLocalForNamespaceImportFromModule(moduleSpecifier)) {\n\t\t\t\t\tidentifier = factory.createIdentifier(context.getLocalForNamespaceImportFromModule(moduleSpecifier)!);\n\t\t\t\t} else {\n\t\t\t\t\tidentifier = factory.createIdentifier(context.getFreeIdentifier(generateNameFromModuleSpecifier(moduleSpecifier)));\n\n\t\t\t\t\tcontext.addImport(\n\t\t\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createImportDeclaration)(\n\t\t\t\t\t\t\tundefined,\n\n\t\t\t\t\t\t\tmoduleExports.hasDefaultExport\n\t\t\t\t\t\t\t\t? // Import the default if it has any (or if we don't know if it has)\n\t\t\t\t\t\t\t\t  factory.createImportClause(false, identifier, undefined)\n\t\t\t\t\t\t\t\t: // Otherwise, import the entire namespace\n\t\t\t\t\t\t\t\t  factory.createImportClause(false, undefined, factory.createNamespaceImport(identifier)),\n\t\t\t\t\t\t\tfactory.createStringLiteral(transformedModuleSpecifier),\n\t\t\t\t\t\t\tmaybeGenerateAssertClause(context, transformedModuleSpecifier, moduleExports?.assert)\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmoduleSpecifier\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Replace the CallExpression by an ObjectLiteral that can be accessed by the wrapping Element- or PropertyAccessExpression\n\t\t\t\tconst objectLiteralProperties = [\n\t\t\t\t\tidentifier.text !== rightValue\n\t\t\t\t\t\t? factory.createPropertyAssignment(rightValue, factory.createIdentifier(identifier.text))\n\t\t\t\t\t\t: factory.createShorthandPropertyAssignment(factory.createIdentifier(identifier.text))\n\t\t\t\t];\n\t\t\t\treturn factory.createObjectLiteralExpression(objectLiteralProperties);\n\t\t\t}\n\n\t\t\t// Otherwise, use the right value as the ImportSpecifier for a new import.\n\t\t\t// Depending on the placement of the CallExpression, we may or may not need to\n\t\t\t// replace it with an identifier or remove it entirely in favor of the ImportDeclaration\n\t\t\telse {\n\t\t\t\t// The property to import will be equal to the right value\n\t\t\t\tconst importBindingPropertyName = rightValue;\n\n\t\t\t\tlet importBindingName: string;\n\n\t\t\t\t// If the default export is already imported, get the local binding name for it and create an identifier for it\n\t\t\t\t// rather than generating a new unnecessary import\n\t\t\t\tif (context.hasLocalForNamedImportPropertyNameFromModule(importBindingPropertyName, moduleSpecifier)) {\n\t\t\t\t\timportBindingName = context.getLocalForNamedImportPropertyNameFromModule(importBindingPropertyName, moduleSpecifier)!;\n\t\t\t\t}\n\n\t\t\t\t// If the namespace is already imported, get the local binding name for it and create an identifier for it\n\t\t\t\t// rather than generating a new unnecessary import\n\t\t\t\telse if (!moduleExports.hasDefaultExport && context.hasLocalForNamespaceImportFromModule(moduleSpecifier)) {\n\t\t\t\t\timportBindingName = context.getLocalForNamespaceImportFromModule(moduleSpecifier)!;\n\t\t\t\t} else {\n\t\t\t\t\t// If that binding isn't free within the context, import it as another local name\n\t\t\t\t\timportBindingName = context.getFreeIdentifier(importBindingPropertyName);\n\n\t\t\t\t\tconst namedImports = factory.createNamedImports([\n\t\t\t\t\t\timportBindingPropertyName === importBindingName\n\t\t\t\t\t\t\t? // If the property name is free within the context, don't alias the import\n\t\t\t\t\t\t\t  factory.createImportSpecifier(false, undefined, factory.createIdentifier(importBindingPropertyName))\n\t\t\t\t\t\t\t: // Otherwise, import it aliased by another name that is free within the context\n\t\t\t\t\t\t\t  factory.createImportSpecifier(false, factory.createIdentifier(importBindingPropertyName), factory.createIdentifier(importBindingName))\n\t\t\t\t\t]);\n\n\t\t\t\t\tconst importClause = factory.createImportClause(false, undefined, namedImports);\n\n\t\t\t\t\tcontext.addImport(\n\t\t\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createImportDeclaration)(\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\timportClause,\n\t\t\t\t\t\t\tfactory.createStringLiteral(transformedModuleSpecifier),\n\t\t\t\t\t\t\tmaybeGenerateAssertClause(context, transformedModuleSpecifier, moduleExports?.assert)\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmoduleSpecifier\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// If the 'require(...)[<something>]' or 'require(...).<something>' expression is part of an ExpressionStatement\n\t\t\t\t// and isn't part of another expression such as a BinaryExpression, only preserve the import.\n\t\t\t\t// Otherwise leave an ObjectLiteral that can be accessed by the wrapping Element- or PropertyAccessExpression\n\t\t\t\tif (expressionStatementParent == null) {\n\t\t\t\t\tconst objectLiteralProperties = [\n\t\t\t\t\t\timportBindingName !== rightValue\n\t\t\t\t\t\t\t? factory.createPropertyAssignment(rightValue, factory.createIdentifier(importBindingName))\n\t\t\t\t\t\t\t: factory.createShorthandPropertyAssignment(factory.createIdentifier(importBindingName))\n\t\t\t\t\t];\n\t\t\t\t\treturn factory.createObjectLiteralExpression(objectLiteralProperties);\n\t\t\t\t} else {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// If no lookup binding candidate has been determined, it may be determined based on the parent VariableDeclaration,\n\t// if there is any.\n\n\t// Find the first VariableDeclaration that holds the require(...) call, if any.\n\t// For example, 'const foo = require(...)' would match the VariableDeclaration for 'foo'\n\tconst variableDeclarationParent = findNodeUp(node, typescript.isVariableDeclaration, nextNode => isStatement(nextNode, typescript));\n\n\tif (variableDeclarationParent != null) {\n\t\t// If the VariableDeclaration is simply bound to a name, it doesn't tell us anything interesting.\n\t\t// Simply add an import for the default export - if it has any (otherwise we'll import the entire namespace), and\n\t\t// replace this CallExpression by an identifier for it\n\t\tif (typescript.isIdentifier(variableDeclarationParent.name)) {\n\t\t\t// If the default export is already imported, get the local binding name for it and create an identifier for it\n\t\t\t// rather than generating a new unnecessary import\n\t\t\tif (moduleExports.hasDefaultExport && context.hasLocalForDefaultImportFromModule(moduleSpecifier)) {\n\t\t\t\tconst local = context.getLocalForDefaultImportFromModule(moduleSpecifier)!;\n\t\t\t\treturn factory.createIdentifier(local);\n\t\t\t}\n\n\t\t\t// If the namespace is already imported, get the local binding name for it and create an identifier for it\n\t\t\t// rather than generating a new unnecessary import\n\t\t\telse if (!moduleExports.hasDefaultExport && context.hasLocalForNamespaceImportFromModule(moduleSpecifier)) {\n\t\t\t\tconst local = context.getLocalForNamespaceImportFromModule(moduleSpecifier)!;\n\t\t\t\treturn factory.createIdentifier(local);\n\t\t\t}\n\n\t\t\t// Otherwise proceed as planned\n\t\t\telse {\n\t\t\t\tconst identifier = factory.createIdentifier(context.getFreeIdentifier(generateNameFromModuleSpecifier(moduleSpecifier)));\n\t\t\t\tcontext.addImport(\n\t\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createImportDeclaration)(\n\t\t\t\t\t\tundefined,\n\n\t\t\t\t\t\tmoduleExports.hasDefaultExport\n\t\t\t\t\t\t\t? // Import the default if it has any (or if we don't know if it has)\n\t\t\t\t\t\t\t  factory.createImportClause(false, identifier, undefined)\n\t\t\t\t\t\t\t: // Otherwise, import the entire namespace\n\t\t\t\t\t\t\t  factory.createImportClause(false, undefined, factory.createNamespaceImport(identifier)),\n\t\t\t\t\t\tfactory.createStringLiteral(transformedModuleSpecifier),\n\t\t\t\t\t\tmaybeGenerateAssertClause(context, transformedModuleSpecifier, moduleExports?.assert)\n\t\t\t\t\t),\n\t\t\t\t\tmoduleSpecifier\n\t\t\t\t);\n\t\t\t\treturn identifier;\n\t\t\t}\n\t\t}\n\n\t\t// If the VariableDeclaration is a BindingPattern, it may mimic destructuring specific named exports.\n\t\t// For example, 'const {foo, bar} = require(\"./bar\")' could import the named export bindings 'foo' and 'bar' from the module './bar'.\n\t\t// However, if as much as a single one of these elements don't directly match a named export, opt out of this behavior and instead\n\t\t// import the default export (if it has any, otherwise import the entire namespace).\n\t\telse if (typescript.isObjectBindingPattern(variableDeclarationParent.name)) {\n\t\t\tconst importSpecifiers: TS.ImportSpecifier[] = [];\n\t\t\tconst skippedImportSpecifiers: TS.ImportSpecifier[] = [];\n\n\t\t\t// Check each of the BindingElements\n\t\t\tfor (const element of variableDeclarationParent.name.elements) {\n\t\t\t\t// If the property name isn't given, the name will always be an Identifier\n\t\t\t\tif (element.propertyName == null && typescript.isIdentifier(element.name)) {\n\t\t\t\t\t// If the module exports contains a named export matching the identifier name,\n\t\t\t\t\t// use that as an ImportSpecifier\n\t\t\t\t\tif (moduleExports.namedExports.has(element.name.text)) {\n\t\t\t\t\t\t// If the property has already been imported, don't add an import, but instead push to 'skippedImportSpecifiers'.\n\t\t\t\t\t\tif (context.hasLocalForNamedImportPropertyNameFromModule(element.name.text, moduleSpecifier)) {\n\t\t\t\t\t\t\tconst local = context.getLocalForNamedImportPropertyNameFromModule(element.name.text, moduleSpecifier)!;\n\t\t\t\t\t\t\tskippedImportSpecifiers.push(\n\t\t\t\t\t\t\t\tlocal === element.name.text\n\t\t\t\t\t\t\t\t\t? factory.createImportSpecifier(false, undefined, factory.createIdentifier(local))\n\t\t\t\t\t\t\t\t\t: factory.createImportSpecifier(false, factory.createIdentifier(element.name.text), factory.createIdentifier(local))\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// If the name is free, just import it as it is\n\t\t\t\t\t\telse if (context.isIdentifierFree(element.name.text)) {\n\t\t\t\t\t\t\tcontext.addLocal(element.name.text);\n\t\t\t\t\t\t\timportSpecifiers.push(factory.createImportSpecifier(false, undefined, factory.createIdentifier(element.name.text)));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Otherwise, import it under an aliased name\n\t\t\t\t\t\t\tconst alias = context.getFreeIdentifier(element.name.text);\n\t\t\t\t\t\t\timportSpecifiers.push(factory.createImportSpecifier(false, factory.createIdentifier(element.name.text), factory.createIdentifier(alias)));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Otherwise, if it has a PropertyName,\n\t\t\t\t// It may be something like for example: '{foo: bar}' where 'foo' is the PropertyName and 'bar' is the name.\n\t\t\t\t// Of course it can get wilder than that, but for it to mimic ESM, we'll use at most the '{<propertyName>: <name>}' form\n\t\t\t\t// and preserve the remaining BindingName.\n\t\t\t\t// Since the ':bar' assignment comes from the VariableDeclaration that surrounds this CallExpression, we'll only\n\t\t\t\t// need to import the actual named export without considering the alias\n\t\t\t\telse if (element.propertyName != null && typescript.isIdentifier(element.propertyName)) {\n\t\t\t\t\t// If the name is free, just import it as it is\n\t\t\t\t\tif (context.isIdentifierFree(element.propertyName.text)) {\n\t\t\t\t\t\tcontext.addLocal(element.propertyName.text);\n\t\t\t\t\t\timportSpecifiers.push(factory.createImportSpecifier(false, undefined, factory.createIdentifier(element.propertyName.text)));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst alias = context.getFreeIdentifier(element.propertyName.text);\n\t\t\t\t\t\timportSpecifiers.push(factory.createImportSpecifier(false, factory.createIdentifier(element.propertyName.text), factory.createIdentifier(alias)));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If there aren't as many ImportSpecifiers as there are elements, opt out of this behavior and instead\n\t\t\t// import the default export (if it has any, otherwise import the entire namespace).\n\t\t\tif (importSpecifiers.length + skippedImportSpecifiers.length !== variableDeclarationParent.name.elements.length) {\n\t\t\t\t// If the default export is already imported, get the local binding name for it and create an identifier for it\n\t\t\t\t// rather than generating a new unnecessary import\n\t\t\t\tif (moduleExports.hasDefaultExport && context.hasLocalForDefaultImportFromModule(moduleSpecifier)) {\n\t\t\t\t\tconst local = context.getLocalForDefaultImportFromModule(moduleSpecifier)!;\n\t\t\t\t\treturn factory.createIdentifier(local);\n\t\t\t\t}\n\n\t\t\t\t// If the namespace is already imported, get the local binding name for it and create an identifier for it\n\t\t\t\t// rather than generating a new unnecessary import\n\t\t\t\telse if (!moduleExports.hasDefaultExport && context.hasLocalForNamespaceImportFromModule(moduleSpecifier)) {\n\t\t\t\t\tconst local = context.getLocalForNamespaceImportFromModule(moduleSpecifier)!;\n\t\t\t\t\treturn factory.createIdentifier(local);\n\t\t\t\t}\n\n\t\t\t\t// Otherwise proceed as planned\n\t\t\t\telse {\n\t\t\t\t\tconst identifier = factory.createIdentifier(context.getFreeIdentifier(generateNameFromModuleSpecifier(moduleSpecifier)));\n\t\t\t\t\tcontext.addImport(\n\t\t\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createImportDeclaration)(\n\t\t\t\t\t\t\tundefined,\n\n\t\t\t\t\t\t\tmoduleExports.hasDefaultExport\n\t\t\t\t\t\t\t\t? // Import the default if it has any (or if we don't know if it has)\n\t\t\t\t\t\t\t\t  factory.createImportClause(false, identifier, undefined)\n\t\t\t\t\t\t\t\t: // Otherwise, import the entire namespace\n\t\t\t\t\t\t\t\t  factory.createImportClause(false, undefined, factory.createNamespaceImport(identifier)),\n\t\t\t\t\t\t\tfactory.createStringLiteral(transformedModuleSpecifier),\n\t\t\t\t\t\t\tmaybeGenerateAssertClause(context, transformedModuleSpecifier, moduleExports?.assert)\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmoduleSpecifier\n\t\t\t\t\t);\n\t\t\t\t\treturn identifier;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Otherwise, add an import for those specific, optionally aliased, named exports\n\t\t\t// and then replace this CallExpression with an Object literal that can be destructured\n\t\t\telse {\n\t\t\t\tif (importSpecifiers.length > 0) {\n\t\t\t\t\tcontext.addImport(\n\t\t\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createImportDeclaration)(\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\tfactory.createImportClause(false, undefined, factory.createNamedImports(importSpecifiers)),\n\t\t\t\t\t\t\tfactory.createStringLiteral(transformedModuleSpecifier),\n\t\t\t\t\t\t\tmaybeGenerateAssertClause(context, transformedModuleSpecifier, moduleExports?.assert)\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmoduleSpecifier\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst objectLiteralProperties = [...importSpecifiers, ...skippedImportSpecifiers].map(specifier =>\n\t\t\t\t\tspecifier.propertyName != null\n\t\t\t\t\t\t? factory.createPropertyAssignment(specifier.propertyName.text, factory.createIdentifier(specifier.name.text))\n\t\t\t\t\t\t: factory.createShorthandPropertyAssignment(factory.createIdentifier(specifier.name.text))\n\t\t\t\t);\n\t\t\t\treturn factory.createObjectLiteralExpression(objectLiteralProperties);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Find the first BinaryExpression with an equals token that holds the require(...) call on the right side, and a PropertyAccessExpression or ElementAccessExpression on the left side, if any.\n\t// For example, 'exports.foo = require(...)'\n\tconst binaryExpressionParent = findNodeUp(node, typescript.isBinaryExpression, nextNode => isStatement(nextNode, typescript));\n\n\tif (\n\t\tbinaryExpressionParent != null &&\n\t\tbinaryExpressionParent.operatorToken.kind === typescript.SyntaxKind.EqualsToken &&\n\t\t(typescript.isPropertyAccessExpression(walkThroughFillerNodes(binaryExpressionParent.left, typescript)) ||\n\t\t\ttypescript.isElementAccessExpression(walkThroughFillerNodes(binaryExpressionParent.left, typescript)))\n\t) {\n\t\t// Simply add an import for the default export - if it has any (otherwise we'll import the entire namespace), and\n\t\t// replace this CallExpression by an identifier for it\n\t\t// If the default export is already imported, get the local binding name for it and create an identifier for it\n\t\t// rather than generating a new unnecessary import\n\t\tif (moduleExports.hasDefaultExport && context.hasLocalForDefaultImportFromModule(moduleSpecifier)) {\n\t\t\tconst local = context.getLocalForDefaultImportFromModule(moduleSpecifier)!;\n\t\t\treturn factory.createIdentifier(local);\n\t\t}\n\n\t\t// If the namespace is already imported, get the local binding name for it and create an identifier for it\n\t\t// rather than generating a new unnecessary import\n\t\telse if (!moduleExports.hasDefaultExport && context.hasLocalForNamespaceImportFromModule(moduleSpecifier)) {\n\t\t\tconst local = context.getLocalForNamespaceImportFromModule(moduleSpecifier)!;\n\t\t\treturn factory.createIdentifier(local);\n\t\t}\n\n\t\t// Otherwise proceed as planned\n\t\telse {\n\t\t\tconst identifier = factory.createIdentifier(context.getFreeIdentifier(generateNameFromModuleSpecifier(moduleSpecifier)));\n\t\t\tcontext.addImport(\n\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createImportDeclaration)(\n\t\t\t\t\tundefined,\n\n\t\t\t\t\tmoduleExports.hasDefaultExport\n\t\t\t\t\t\t? // Import the default if it has any (or if we don't know if it has)\n\t\t\t\t\t\t  factory.createImportClause(false, identifier, undefined)\n\t\t\t\t\t\t: // Otherwise, import the entire namespace\n\t\t\t\t\t\t  factory.createImportClause(false, undefined, factory.createNamespaceImport(identifier)),\n\t\t\t\t\tfactory.createStringLiteral(transformedModuleSpecifier),\n\t\t\t\t\tmaybeGenerateAssertClause(context, transformedModuleSpecifier, moduleExports?.assert)\n\t\t\t\t),\n\t\t\t\tmoduleSpecifier\n\t\t\t);\n\t\t\treturn identifier;\n\t\t}\n\t}\n\n\t// Otherwise, check if the require(...) call is part of another CallExpression.\n\t// For example: 'myFunction(require(...)' or 'require(...)(...)'\n\tconst callExpressionParent = findNodeUp(node, typescript.isCallExpression, nextNode => isStatementOrDeclaration(nextNode, typescript));\n\n\t// If it is wrapped in a CallExpression, import the default export if it has any (otherwise the entire namespace)\n\t// and replace the require() call by an identifier for it\n\tif (callExpressionParent != null) {\n\t\t// If the default export is already imported, get the local binding name for it and create an identifier for it\n\t\t// rather than generating a new unnecessary import\n\t\tif (moduleExports.hasDefaultExport && context.hasLocalForDefaultImportFromModule(moduleSpecifier)) {\n\t\t\tconst local = context.getLocalForDefaultImportFromModule(moduleSpecifier)!;\n\t\t\treturn factory.createIdentifier(local);\n\t\t}\n\n\t\t// If the namespace is already imported, get the local binding name for it and create an identifier for it\n\t\t// rather than generating a new unnecessary import\n\t\telse if (!moduleExports.hasDefaultExport && context.hasLocalForNamespaceImportFromModule(moduleSpecifier)) {\n\t\t\tconst local = context.getLocalForNamespaceImportFromModule(moduleSpecifier)!;\n\t\t\treturn factory.createIdentifier(local);\n\t\t}\n\n\t\t// Otherwise, proceed as planned\n\t\telse {\n\t\t\tconst identifier = factory.createIdentifier(context.getFreeIdentifier(generateNameFromModuleSpecifier(moduleSpecifier)));\n\t\t\tcontext.addImport(\n\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createImportDeclaration)(\n\t\t\t\t\tundefined,\n\n\t\t\t\t\tmoduleExports.hasDefaultExport\n\t\t\t\t\t\t? // Import the default if it has any (or if we don't know if it has)\n\t\t\t\t\t\t  factory.createImportClause(false, identifier, undefined)\n\t\t\t\t\t\t: // Otherwise, import the entire namespace\n\t\t\t\t\t\t  factory.createImportClause(false, undefined, factory.createNamespaceImport(identifier)),\n\t\t\t\t\tfactory.createStringLiteral(transformedModuleSpecifier),\n\t\t\t\t\tmaybeGenerateAssertClause(context, transformedModuleSpecifier, moduleExports?.assert)\n\t\t\t\t),\n\t\t\t\tmoduleSpecifier\n\t\t\t);\n\t\t\treturn identifier;\n\t\t}\n\t}\n\n\tif (shouldDebug(context.debug)) {\n\t\tthrow new TypeError(`Could not handle require() call`);\n\t} else {\n\t\treturn node;\n\t}\n}\n","import {walkThroughFillerNodes} from \"./walk-through-filler-nodes.js\";\nimport {TS} from \"../../type/ts.js\";\n\nexport interface ExportsData {\n\tproperty: string;\n}\n\nexport function getExportsData(expression: TS.Expression, exportsName = \"exports\", typescript: typeof TS): Partial<ExportsData> | undefined {\n\texpression = walkThroughFillerNodes(expression, typescript);\n\n\tif (typescript.isIdentifier(expression)) {\n\t\tif (expression.text === exportsName) {\n\t\t\treturn {};\n\t\t} else {\n\t\t\treturn undefined;\n\t\t}\n\t} else if (typescript.isPropertyAccessExpression(expression)) {\n\t\tconst left = walkThroughFillerNodes(expression.expression, typescript);\n\t\tconst right = expression.name;\n\n\t\t// If the left-hand side is an identifier, it may be something like 'module.exports',\n\t\t// but it may also be something completely unrelated such as 'foo.bar'\n\t\tif (typescript.isIdentifier(left)) {\n\t\t\tif (left.text === \"module\" && right.text === exportsName) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\t// This will be something like 'exports.foo'\n\t\t\telse if (left.text === exportsName) {\n\t\t\t\treturn {\n\t\t\t\t\tproperty: right.text\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// This will be something completely unrelated\n\t\t\telse {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t} else {\n\t\t\t// Otherwise, check if the left-hand side leads to exports data\n\t\t\tconst leftData = getExportsData(left, exportsName, typescript);\n\t\t\tif (leftData == null) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\t// If it does, this is something like 'module.exports.foo'\n\t\t\telse {\n\t\t\t\treturn {\n\t\t\t\t\t...leftData,\n\t\t\t\t\tproperty: right.text\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t} else if (typescript.isElementAccessExpression(expression)) {\n\t\tconst left = walkThroughFillerNodes(expression.expression, typescript);\n\t\tconst right = walkThroughFillerNodes(expression.argumentExpression, typescript);\n\n\t\t// If the argument expression is something that isn't statically analyzable, skip it\n\t\tif (!typescript.isStringLiteralLike(right)) return undefined;\n\n\t\t// If the left-hand side is an identifier, it may be something like 'module.exports',\n\t\t// but it may also be something completely unrelated such as 'foo.bar'\n\t\tif (typescript.isIdentifier(left)) {\n\t\t\tif (left.text === \"module\" && right.text === exportsName) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\t// This will be something like 'exports.foo'\n\t\t\telse if (left.text === exportsName) {\n\t\t\t\treturn {\n\t\t\t\t\tproperty: right.text\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// This will be something completely unrelated\n\t\t\telse {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t} else {\n\t\t\t// Otherwise, check if the left-hand side leads to exports data\n\t\t\tconst leftData = getExportsData(left, exportsName, typescript);\n\t\t\tif (leftData == null) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\t// If it does, this is something like 'module.exports.foo'\n\t\t\telse {\n\t\t\t\treturn {\n\t\t\t\t\t...leftData,\n\t\t\t\t\tproperty: right.text\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t} else {\n\t\treturn undefined;\n\t}\n}\n","import {TS} from \"../../type/ts.js\";\n\nexport function isNamedDeclaration(node: TS.Node | TS.NamedDeclaration, typescript: typeof TS): node is TS.NamedDeclaration {\n\tif (typescript.isPropertyAccessExpression(node)) return false;\n\treturn \"name\" in node && node.name != null;\n}\n","import {BeforeVisitorContext} from \"../visitor/before-visitor-context.js\";\nimport {TS} from \"../../type/ts.js\";\nimport {shouldDebug} from \"./should-debug.js\";\nimport { tsFactoryDecoratorsInterop } from './decorators-interop.js'\n\nexport function ensureNodeHasExportModifier<T extends TS.NamedDeclaration & (\n\t| { modifiers?: readonly TS.Modifier[] }\n\t| TS.FunctionDeclaration\n\t| TS.FunctionExpression\n\t| TS.ClassDeclaration\n\t| TS.ClassExpression\n\t| TS.VariableStatement\n\t| TS.EnumDeclaration\n\t| TS.InterfaceDeclaration\n\t| TS.TypeAliasDeclaration\n)>(node: T, context: BeforeVisitorContext): T {\n\tconst existingModifierKinds = node.modifiers == null ? [] : node.modifiers.map(m => m.kind);\n\tconst {typescript, factory} = context;\n\tconst declarationName = typescript.getNameOfDeclaration(node);\n\tif (declarationName != null && typescript.isIdentifier(declarationName)) {\n\t\t// If the declaration name is part of the exports of the SourceFile, return the node as it is\n\t\tif (context.isLocalExported(declarationName.text)) {\n\t\t\treturn node;\n\t\t}\n\n\t\tcontext.markLocalAsExported(declarationName.text);\n\t}\n\n\t// If the node already has an Export modifier, there's nothing to do\n\tif (existingModifierKinds.includes(typescript.SyntaxKind.ExportKeyword)) {\n\t\treturn node;\n\t}\n\n\tconst newModifiers = [\n\t\t...((node as {decorators?: TS.Decorator[]}).decorators ?? []),\n\t\tfactory.createModifier(typescript.SyntaxKind.ExportKeyword),\n\t\t...(node.modifiers ?? []),\n\t];\n\n\tif (typescript.isFunctionDeclaration(node)) {\n\t\treturn tsFactoryDecoratorsInterop(context, factory.updateFunctionDeclaration)(\n\t\t\tnode,\n\t\t\tnewModifiers,\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) as T;\n\t} else if (typescript.isFunctionExpression(node)) {\n\t\treturn factory.updateFunctionExpression(\n\t\t\tnode,\n\t\t\tnewModifiers as TS.Modifier[],\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) as T;\n\t} else if (typescript.isClassDeclaration(node)) {\n\t\treturn tsFactoryDecoratorsInterop(context, factory.updateClassDeclaration)(\n\t\t\tnode,\n\t\t\tnewModifiers,\n\t\t\tnode.name,\n\t\t\tnode.typeParameters,\n\t\t\tnode.heritageClauses,\n\t\t\tnode.members,\n\t\t) as T;\n\t} else if (typescript.isClassExpression(node)) {\n\t\treturn tsFactoryDecoratorsInterop(context, factory.updateClassExpression)(\n\t\t\tnode,\n\t\t\tnewModifiers,\n\t\t\tnode.name,\n\t\t\tnode.typeParameters,\n\t\t\tnode.heritageClauses,\n\t\t\tnode.members,\n\t\t) as T;\n\t} else if (typescript.isVariableStatement(node)) {\n\t\treturn tsFactoryDecoratorsInterop(context, factory.updateVariableStatement)(\n\t\t\tnode,\n\t\t\tnewModifiers,\n\t\t\tnode.declarationList,\n\t\t) as T;\n\t} else if (typescript.isEnumDeclaration(node)) {\n\t\treturn tsFactoryDecoratorsInterop(context, factory.updateEnumDeclaration)(\n\t\t\tnode,\n\t\t\tnewModifiers,\n\t\t\tnode.name,\n\t\t\tnode.members,\n\t\t) as T;\n\t} else if (typescript.isInterfaceDeclaration(node)) {\n\t\treturn tsFactoryDecoratorsInterop(context, factory.updateInterfaceDeclaration)(\n\t\t\tnode,\n\t\t\tnewModifiers,\n\t\t\tnode.name,\n\t\t\tnode.typeParameters,\n\t\t\tnode.heritageClauses,\n\t\t\tnode.members,\n\t\t) as T;\n\t} else if (typescript.isTypeAliasDeclaration(node)) {\n\t\treturn tsFactoryDecoratorsInterop(context, factory.updateTypeAliasDeclaration)(\n\t\t\tnode,\n\t\t\tnewModifiers,\n\t\t\tnode.name,\n\t\t\tnode.typeParameters,\n\t\t\tnode.type,\n\t\t) as T;\n\t}\n\n\t// Only throw if debugging is active\n\telse if (shouldDebug(context.debug)) {\n\t\tthrow new TypeError(`Could not handle Node of kind: ${typescript.SyntaxKind[node.kind]}`);\n\t} else {\n\t\treturn node;\n\t}\n}\n","import {TS} from \"../../type/ts.js\";\n\nexport function nodeContainsSuper<T extends TS.Node>(node: T, typescript: typeof TS): boolean {\n\tif (node.kind === typescript.SyntaxKind.ThisKeyword) return true;\n\treturn typescript.forEachChild<boolean>(node, nextNode => nodeContainsSuper(nextNode, typescript)) === true;\n}\n","import {TS} from \"../../type/ts.js\";\nimport {VisitorContext} from \"../visitor-context.js\";\n\nexport function addExportModifier<T extends TS.ModifierLike>(\n\tmodifiers: TS.NodeArray<T>|undefined,\n\tcontext: VisitorContext\n): TS.NodeArray<T | TS.ExportKeyword> {\n\tconst {factory, typescript} = context;\n\tif (!modifiers) {\n\t\tmodifiers = factory.createNodeArray<T>()\n\t} else if (modifiers.some(m => m.kind === typescript.SyntaxKind.ExportKeyword)) {\n\t\treturn modifiers\n\t}\n\n\treturn factory.createNodeArray([\n\t\tfactory.createModifier(typescript.SyntaxKind.ExportKeyword),\n\t\t...modifiers.map(m => (m.kind === typescript.SyntaxKind.Decorator\n\t\t\t\t? factory.createDecorator(m.expression)\n\t\t\t\t: factory.createModifier(m.kind)\n\t\t) as T)\n\t])\n}\n","import {TS} from \"../../type/ts.js\";\n\n/**\n * Returns true if the given Node is an Expression.\n * Uses an internal non-exposed Typescript helper to decide whether or not the Node is an Expression\n */\nexport function isExpression(node: TS.Node, typescript: typeof TS): node is TS.Expression {\n\ttry {\n\t\treturn (typescript as unknown as {isExpressionNode(node: TS.Node): boolean}).isExpressionNode(node) || typescript.isIdentifier(node);\n\t} catch {\n\t\treturn false;\n\t}\n}\n","import {TS} from \"../../type/ts.js\";\n\nexport function getLocalsForBindingName(name: TS.BindingName, typescript: typeof TS): string[] {\n\tif (typescript.isIdentifier(name)) {\n\t\treturn [name.text];\n\t} else if (typescript.isObjectBindingPattern(name)) {\n\t\tconst locals: string[] = [];\n\t\tfor (const element of name.elements) {\n\t\t\tlocals.push(...getLocalsForBindingName(element.name, typescript));\n\t\t}\n\t\treturn locals;\n\t} else {\n\t\tconst locals: string[] = [];\n\t\tfor (const element of name.elements) {\n\t\t\tif (typescript.isOmittedExpression(element)) continue;\n\t\t\tlocals.push(...getLocalsForBindingName(element.name, typescript));\n\t\t}\n\t\treturn locals;\n\t}\n}\n","import { TS } from '../../type/ts'\n\nexport function isNodeArray<T>(t: T): t is T & readonly TS.Node[] {\n    return Array.isArray(t)\n}","import {BeforeVisitorOptions} from \"../before-visitor-options.js\";\nimport {getExportsData} from \"../../util/get-exports-data.js\";\nimport {walkThroughFillerNodes} from \"../../util/walk-through-filler-nodes.js\";\nimport {isNamedDeclaration} from \"../../util/is-named-declaration.js\";\nimport {ensureNodeHasExportModifier} from \"../../util/ensure-node-has-export-modifier.js\";\nimport {nodeContainsSuper} from \"../../util/node-contains-super.js\";\nimport {addExportModifier} from \"../../util/add-export-modifier.js\";\nimport {isRequireCall} from \"../../util/is-require-call.js\";\nimport {getModuleExportsFromRequireDataInContext} from \"../../util/get-module-exports-from-require-data-in-context.js\";\nimport {isExpression} from \"../../util/is-expression.js\";\nimport {findNodeUp} from \"../../util/find-node-up.js\";\nimport {getLocalsForBindingName} from \"../../util/get-locals-for-binding-name.js\";\nimport {TS} from \"../../../type/ts.js\";\nimport {shouldDebug} from \"../../util/should-debug.js\";\nimport { tsFactoryDecoratorsInterop } from '../../util/decorators-interop.js'\nimport { isNodeArray } from '../../util/is-node-array.js'\n\n/**\n * Visits the given BinaryExpression\n */\nexport function visitBinaryExpression({node, sourceFile, context, continuation}: BeforeVisitorOptions<TS.BinaryExpression>): TS.VisitResult<TS.Node|undefined> {\n\t// Check if the left-hand side contains exports. For example: 'exports = ...' or 'exports.foo = 1' or event 'module.exports = 1'\n\tconst {typescript, factory} = context;\n\tconst exportsData = getExportsData(node.left, context.exportsName, typescript);\n\tconst right = walkThroughFillerNodes(node.right, typescript);\n\tif (exportsData == null) return node;\n\n\t// If it is an assignment\n\tif (node.operatorToken.kind === typescript.SyntaxKind.EqualsToken) {\n\t\t// Check if this expression is part of a VariableDeclaration.\n\t\t// For example: 'const foo = module.exports = ...'\n\t\tconst variableDeclarationParent = findNodeUp(node, typescript.isVariableDeclaration);\n\t\tconst variableDeclarationLocal =\n\t\t\tvariableDeclarationParent != null ? factory.createIdentifier(getLocalsForBindingName(variableDeclarationParent.name, typescript)[0]) : undefined;\n\n\t\t// This is something like for example 'exports = ...', 'module.exports = ...', 'exports.default', or 'module.exports.default'\n\t\tif (exportsData.property == null || exportsData.property === \"default\") {\n\t\t\t// Take all individual key-value pairs of that ObjectLiteral\n\t\t\t// and turn them into named exports if possible.\n\t\t\t// Also generate a default export of the entire exports object\n\t\t\tif (typescript.isObjectLiteralExpression(right)) {\n\t\t\t\t// If it has no properties, or if the literal is exported as part of the right-hand side of the assignment for a VariableDeclaration, create a simple default export declaration\n\t\t\t\tif (right.properties.length === 0 || variableDeclarationLocal != null) {\n\t\t\t\t\tconst continuationResult = continuation(node.right);\n\n\t\t\t\t\tif (continuationResult == null || isNodeArray(continuationResult) || !isExpression(continuationResult, typescript)) {\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst exportedSymbol = variableDeclarationLocal != null ? variableDeclarationLocal : continuationResult;\n\n\t\t\t\t\t// Only generate the default export if the module don't already include a default export\n\t\t\t\t\tif (!context.isDefaultExported) {\n\t\t\t\t\t\tcontext.markDefaultAsExported();\n\t\t\t\t\t\tcontext.addTrailingStatements(\n\t\t\t\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createExportAssignment)(\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\texportedSymbol,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn variableDeclarationParent != null ? node.right : undefined;\n\t\t\t\t}\n\n\t\t\t\tconst statements: TS.Statement[] = [];\n\t\t\t\tlet moduleExportsIdentifierName: string | undefined;\n\t\t\t\tconst elements: TS.ObjectLiteralElementLike[] = [];\n\n\t\t\t\tfor (const property of right.properties) {\n\t\t\t\t\tconst propertyName =\n\t\t\t\t\t\tproperty.name == null\n\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t: typescript.isLiteralExpression(property.name) || typescript.isIdentifier(property.name) || typescript.isPrivateIdentifier(property.name)\n\t\t\t\t\t\t\t? property.name.text\n\t\t\t\t\t\t\t: typescript.isLiteralExpression(property.name.expression)\n\t\t\t\t\t\t\t? property.name.expression.text\n\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t// If no property name could be decided, or if the local is already exported, or if it is a setter, skip this property\n\t\t\t\t\tif (propertyName == null || typescript.isSetAccessorDeclaration(property) || typescript.isGetAccessorDeclaration(property) || context.isLocalExported(propertyName)) {\n\t\t\t\t\t\telements.push(property);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\t// If it is a Shorthand Property assignment, we know that it holds a reference to some root-level identifier.\n\t\t\t\t\t// Based on this knowledge, we can safely generate a proper ExportDeclaration for it\n\t\t\t\t\tif (typescript.isShorthandPropertyAssignment(property)) {\n\t\t\t\t\t\tcontext.markLocalAsExported(propertyName);\n\n\t\t\t\t\t\telements.push(factory.createShorthandPropertyAssignment(propertyName, property.objectAssignmentInitializer));\n\n\t\t\t\t\t\tconst namedExports = factory.createNamedExports([factory.createExportSpecifier(false, undefined, propertyName)]);\n\t\t\t\t\t\tstatements.push(\n\t\t\t\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createExportDeclaration)(\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\tnamedExports,\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\t// If it is a PropertyAssignment that points to an Identifier, we know that it holds a reference to some root-level identifier.\n\t\t\t\t\t// Based on this knowledge, we can safely generate a proper ExportDeclaration for it\n\t\t\t\t\telse if (typescript.isPropertyAssignment(property) && typescript.isIdentifier(property.initializer)) {\n\t\t\t\t\t\tcontext.markLocalAsExported(propertyName);\n\n\t\t\t\t\t\telements.push(factory.createPropertyAssignment(propertyName, factory.createIdentifier(property.initializer.text)));\n\n\t\t\t\t\t\tconst namedExports = factory.createNamedExports([\n\t\t\t\t\t\t\tpropertyName === property.initializer.text\n\t\t\t\t\t\t\t\t? factory.createExportSpecifier(false, undefined, propertyName)\n\t\t\t\t\t\t\t\t: factory.createExportSpecifier(false, property.initializer.text, propertyName)\n\t\t\t\t\t\t]);\n\n\t\t\t\t\t\tstatements.push(\n\t\t\t\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createExportDeclaration)(\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\tnamedExports,\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (context.isIdentifierFree(propertyName) && typescript.isPropertyAssignment(property) && !nodeContainsSuper(property.initializer, typescript)) {\n\t\t\t\t\t\tcontext.addLocal(propertyName);\n\t\t\t\t\t\telements.push(factory.createShorthandPropertyAssignment(propertyName));\n\n\t\t\t\t\t\tstatements.push(\n\t\t\t\t\t\t\tfactory.createVariableStatement(\n\t\t\t\t\t\t\t\t[factory.createModifier(typescript.SyntaxKind.ExportKeyword)],\n\t\t\t\t\t\t\t\tfactory.createVariableDeclarationList([factory.createVariableDeclaration(propertyName, undefined, undefined, property.initializer)], typescript.NodeFlags.Const)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\t// If it is a MethodDeclaration that can be safely rewritten to a function, do so\n\t\t\t\t\telse if (\n\t\t\t\t\t\tcontext.isIdentifierFree(propertyName) &&\n\t\t\t\t\t\ttypescript.isMethodDeclaration(property) &&\n\t\t\t\t\t\ttypescript.isIdentifier(property.name) &&\n\t\t\t\t\t\t!nodeContainsSuper(property, typescript)\n\t\t\t\t\t) {\n\t\t\t\t\t\tcontext.addLocal(propertyName);\n\t\t\t\t\t\telements.push(factory.createShorthandPropertyAssignment(propertyName));\n\n\t\t\t\t\t\tstatements.push(\n\t\t\t\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createFunctionDeclaration)(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t...((property as {decorators?: TS.Decorator[]}).decorators ?? []),\n\t\t\t\t\t\t\t\t\t...addExportModifier(property.modifiers, context),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tproperty.asteriskToken,\n\t\t\t\t\t\t\t\tproperty.name,\n\t\t\t\t\t\t\t\tproperty.typeParameters,\n\t\t\t\t\t\t\t\tproperty.parameters,\n\t\t\t\t\t\t\t\tproperty.type,\n\t\t\t\t\t\t\t\tproperty.body\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Otherwise, so long as the identifier of the property is free, generate a VariableStatement that exports\n\t\t\t\t\t// the binding as a named export\n\t\t\t\t\telse if (context.isIdentifierFree(propertyName)) {\n\t\t\t\t\t\tcontext.addLocal(propertyName);\n\t\t\t\t\t\telements.push(property);\n\t\t\t\t\t\tif (moduleExportsIdentifierName == null) {\n\t\t\t\t\t\t\tmoduleExportsIdentifierName = context.getFreeIdentifier(\"moduleExports\");\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcontext.markLocalAsExported(propertyName);\n\t\t\t\t\t\tstatements.push(\n\t\t\t\t\t\t\tfactory.createVariableStatement(\n\t\t\t\t\t\t\t\t[factory.createModifier(typescript.SyntaxKind.ExportKeyword)],\n\t\t\t\t\t\t\t\tfactory.createVariableDeclarationList(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tfactory.createVariableDeclaration(\n\t\t\t\t\t\t\t\t\t\t\tpropertyName,\n\t\t\t\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\t\t\t\tfactory.createPropertyAccessExpression(factory.createIdentifier(moduleExportsIdentifierName), propertyName)\n\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\t\ttypescript.NodeFlags.Const\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} else {\n\t\t\t\t\t\telements.push(property);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If we need the default export the have a name such that it can be referenced in a later named export,\n\t\t\t\t// create a VariableStatement as well as an ExportAssignment that references it\n\t\t\t\tif (moduleExportsIdentifierName != null) {\n\t\t\t\t\t// Create a VariableStatement that exports the ObjectLiteral\n\t\t\t\t\tstatements.push(\n\t\t\t\t\t\tfactory.createVariableStatement(\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\tfactory.createVariableDeclarationList(\n\t\t\t\t\t\t\t\t[factory.createVariableDeclaration(moduleExportsIdentifierName, undefined, undefined, factory.createObjectLiteralExpression(elements, true))],\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\t)\n\t\t\t\t\t);\n\n\t\t\t\t\tif (!context.isDefaultExported) {\n\t\t\t\t\t\tstatements.push(\n\t\t\t\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createExportAssignment)(\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\tfactory.createIdentifier(moduleExportsIdentifierName),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tcontext.markDefaultAsExported();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Otherwise, we don't need to assign it to a VariableStatement. Instead, we can just provide the ObjectLiteralExpression to the ExportAssignment directly.\n\t\t\t\telse if (!context.isDefaultExported) {\n\t\t\t\t\tconst defaultExportInitializer = factory.createObjectLiteralExpression(elements, true);\n\t\t\t\t\tstatements.push(\n\t\t\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createExportAssignment)(\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\tdefaultExportInitializer,\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Return all of the statements\n\t\t\t\tcontext.addTrailingStatements(...statements);\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\t// Convert it into an ExportAssignment instead if possible\n\t\t\telse {\n\t\t\t\t// Check if the rightvalue represents a require(...) call.\n\t\t\t\tconst requireData = isRequireCall(node.right, sourceFile, context);\n\n\t\t\t\t// If it doesn't, export the right side\n\t\t\t\tif (!requireData.match) {\n\t\t\t\t\tif (!context.isDefaultExported) {\n\t\t\t\t\t\tcontext.markDefaultAsExported();\n\t\t\t\t\t\tconst continuationResult = continuation(node.right);\n\t\t\t\t\t\tif (continuationResult == null || isNodeArray(continuationResult) || !isExpression(continuationResult, typescript)) {\n\t\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst replacementNode = variableDeclarationParent != null ? continuationResult : undefined;\n\t\t\t\t\t\t\tconst exportedSymbol = variableDeclarationLocal != null ? variableDeclarationLocal : continuationResult;\n\n\t\t\t\t\t\t\tcontext.addTrailingStatements(\n\t\t\t\t\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createExportAssignment)(\n\t\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\t\texportedSymbol,\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn replacementNode;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\n\t\t\t\t// Otherwise, spread out the things we know about the require call\n\t\t\t\tconst {transformedModuleSpecifier} = requireData;\n\n\t\t\t\t// If no module specifier could be determined, there's nothing we can do\n\t\t\t\tif (transformedModuleSpecifier == null) {\n\t\t\t\t\tif (shouldDebug(context.debug)) {\n\t\t\t\t\t\tthrow new TypeError(`Could not handle re-export from require() call. The module specifier wasn't statically analyzable`);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Otherwise, take the exports from that module\n\t\t\t\telse {\n\t\t\t\t\tconst moduleExports = getModuleExportsFromRequireDataInContext(requireData, context);\n\t\t\t\t\tconst moduleSpecifierExpression = factory.createStringLiteral(transformedModuleSpecifier);\n\n\t\t\t\t\t// If the module has a default export, or if we know nothing about it,\n\t\t\t\t\t// export the default export from that module\n\t\t\t\t\tif (!context.isDefaultExported && (moduleExports == null || moduleExports.hasDefaultExport)) {\n\t\t\t\t\t\tcontext.markDefaultAsExported();\n\t\t\t\t\t\tconst namedExports = factory.createNamedExports([factory.createExportSpecifier(false, undefined, \"default\")]);\n\n\t\t\t\t\t\tcontext.addTrailingStatements(\n\t\t\t\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createExportDeclaration)(\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\tnamedExports,\n\t\t\t\t\t\t\t\tmoduleSpecifierExpression,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Otherwise, export the entire module (e.g. all named exports)\n\t\t\t\t\telse {\n\t\t\t\t\t\tcontext.addTrailingStatements(\n\t\t\t\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createExportDeclaration)(\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\tmoduleSpecifierExpression,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// If this is part of a VariableDeclaration, such as for 'const foo = exports.bar = ...', it should be translated into:\n\t\t// const foo = ...;\n\t\t// export {foo as bar}\n\t\telse if (variableDeclarationLocal != null) {\n\t\t\tconst local = exportsData.property;\n\t\t\tconst continuationResult = continuation(node.right);\n\n\t\t\tif (continuationResult == null || isNodeArray(continuationResult) || (!isExpression(continuationResult, typescript) && !typescript.isIdentifier(continuationResult))) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst namedExports = factory.createNamedExports([\n\t\t\t\tlocal === variableDeclarationLocal.text\n\t\t\t\t\t? factory.createExportSpecifier(false, undefined, factory.createIdentifier(local))\n\t\t\t\t\t: factory.createExportSpecifier(false, variableDeclarationLocal.text, factory.createIdentifier(local))\n\t\t\t]);\n\n\t\t\tcontext.addTrailingStatements(\n\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createExportDeclaration)(\n\t\t\t\t\tundefined,\n\t\t\t\t\tfalse,\n\t\t\t\t\tnamedExports,\n\t\t\t\t),\n\t\t\t);\n\t\t\treturn continuationResult;\n\t\t}\n\n\t\t// If the right-hand side is an identifier, this can safely be converted into an ExportDeclaration\n\t\t// such as 'export {foo}'\n\t\telse if (typescript.isIdentifier(right)) {\n\t\t\tconst local = exportsData.property;\n\t\t\tif (!context.isLocalExported(local)) {\n\t\t\t\tconst namedExports = factory.createNamedExports([\n\t\t\t\t\tlocal === right.text\n\t\t\t\t\t\t? factory.createExportSpecifier(false, undefined, factory.createIdentifier(local))\n\t\t\t\t\t\t: factory.createExportSpecifier(false, right.text, factory.createIdentifier(local))\n\t\t\t\t]);\n\t\t\t\tcontext.markLocalAsExported(local);\n\t\t\t\tcontext.addTrailingStatements(\n\t\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createExportDeclaration)(\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tnamedExports,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Otherwise, this is something like 'exports.foo = function foo () {}'\n\t\telse if (isNamedDeclaration(right, typescript) && right.name != null && typescript.isIdentifier(right.name) && exportsData.property === right.name.text) {\n\t\t\tcontext.addTrailingStatements(ensureNodeHasExportModifier(right, context) as unknown as TS.Statement);\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Otherwise, this can be converted into a VariableStatement\n\t\telse {\n\t\t\tconst continuationResult = continuation(node.right);\n\n\t\t\tif (continuationResult == null || isNodeArray(continuationResult)) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tif (!context.isLocalExported(exportsData.property)) {\n\t\t\t\tcontext.markLocalAsExported(exportsData.property);\n\n\t\t\t\tif (typescript.isIdentifier(continuationResult)) {\n\t\t\t\t\tconst namedExports = factory.createNamedExports([\n\t\t\t\t\t\tcontinuationResult.text === exportsData.property\n\t\t\t\t\t\t\t? factory.createExportSpecifier(false, undefined, factory.createIdentifier(exportsData.property))\n\t\t\t\t\t\t\t: factory.createExportSpecifier(false, factory.createIdentifier(continuationResult.text), factory.createIdentifier(exportsData.property))\n\t\t\t\t\t]);\n\t\t\t\t\tcontext.addTrailingStatements(\n\t\t\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createExportDeclaration)(\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\tnamedExports,\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t));\n\t\t\t\t} else {\n\t\t\t\t\tconst freeIdentifier = context.getFreeIdentifier(exportsData.property);\n\n\t\t\t\t\t// If it is free, we can simply add an export modifier in front of the expression\n\t\t\t\t\tif (freeIdentifier === exportsData.property) {\n\t\t\t\t\t\tcontext.addTrailingStatements(\n\t\t\t\t\t\t\tfactory.createVariableStatement(\n\t\t\t\t\t\t\t\t[factory.createModifier(typescript.SyntaxKind.ExportKeyword)],\n\t\t\t\t\t\t\t\tfactory.createVariableDeclarationList(\n\t\t\t\t\t\t\t\t\t[factory.createVariableDeclaration(exportsData.property, undefined, undefined, continuationResult as TS.Expression)],\n\t\t\t\t\t\t\t\t\ttypescript.NodeFlags.Const\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} else {\n\t\t\t\t\t\tconst namedExports = factory.createNamedExports([factory.createExportSpecifier(false, freeIdentifier, exportsData.property)]);\n\n\t\t\t\t\t\t// If it isn't, we'll need to bind it to a variable with the free name, but then export it under the original one\n\t\t\t\t\t\tcontext.addTrailingStatements(\n\t\t\t\t\t\t\tfactory.createVariableStatement(\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\tfactory.createVariableDeclarationList(\n\t\t\t\t\t\t\t\t\t[factory.createVariableDeclaration(freeIdentifier, undefined, undefined, continuationResult as TS.Expression)],\n\t\t\t\t\t\t\t\t\ttypescript.NodeFlags.Const\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createExportDeclaration)(\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\tnamedExports,\n\t\t\t\t\t\t\t\tundefined,\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\t\t\treturn undefined;\n\t\t}\n\t}\n\n\treturn node;\n}\n","import {TS} from \"../../type/ts.js\";\n\nexport function willReassignIdentifier(identifier: string, node: TS.Node, typescript: typeof TS): boolean {\n\tconst result = typescript.forEachChild<boolean>(node, nextNode => {\n\t\t// If it is an assignment to the given identifier\n\t\tif (\n\t\t\ttypescript.isBinaryExpression(nextNode) &&\n\t\t\tnextNode.operatorToken.kind === typescript.SyntaxKind.EqualsToken &&\n\t\t\ttypescript.isIdentifier(nextNode.left) &&\n\t\t\tnextNode.left.text === identifier\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (willReassignIdentifier(identifier, nextNode, typescript)) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn;\n\t});\n\n\treturn result != null ? result : false;\n}\n","import {TS} from \"../../type/ts.js\";\n\nexport function hasModifier(node: TS.Node, modifier: TS.ModifierSyntaxKind): boolean {\n    const nodeModifiers = (node as {modifiers?: readonly TS.ModifierLike[]}).modifiers\n    return !!nodeModifiers && nodeModifiers.some(m => m.kind === modifier);\n}\n","import {TS} from \"../../type/ts.js\";\nimport { hasModifier } from './has-modifier.js'\n\nexport function hasExportModifier(node: TS.Node, typescript: typeof TS): boolean {\n\treturn hasModifier(node, typescript.SyntaxKind.ExportKeyword);\n}\n","import {BeforeVisitorOptions} from \"../before-visitor-options.js\";\nimport {isRequireCall} from \"../../util/is-require-call.js\";\nimport {walkThroughFillerNodes} from \"../../util/walk-through-filler-nodes.js\";\nimport {getModuleExportsFromRequireDataInContext} from \"../../util/get-module-exports-from-require-data-in-context.js\";\nimport {TS} from \"../../../type/ts.js\";\nimport {willReassignIdentifier} from \"../../util/will-be-reassigned.js\";\nimport {hasExportModifier} from \"../../util/has-export-modifier.js\";\nimport {findNodeUp} from \"../../util/find-node-up.js\";\nimport {maybeGenerateAssertClause} from \"../../util/maybe-generate-assert-clause.js\";\nimport { tsFactoryDecoratorsInterop } from '../../util/decorators-interop.js'\n\n/**\n * Visits the given VariableDeclaration\n */\nexport function visitVariableDeclaration({node, childContinuation, sourceFile, context}: BeforeVisitorOptions<TS.VariableDeclaration>): TS.VisitResult<TS.Node|undefined> {\n\tif (context.onlyExports || node.initializer == null) {\n\t\treturn childContinuation(node);\n\t}\n\n\tconst {typescript, factory} = context;\n\n\t// Most sophisticated require(...) handling comes from the CallExpression visitor, but this Visitor is for rewriting simple\n\t// 'foo = require(\"bar\")' or '{foo} = require(\"bar\")' as well as '{foo: bar} = require(\"bar\")' expressions\n\n\tconst initializer = walkThroughFillerNodes(node.initializer, typescript);\n\tconst statement = findNodeUp(node, typescript.isVariableStatement, n => typescript.isBlock(n) || typescript.isSourceFile(n));\n\n\tif (!typescript.isCallExpression(initializer)) {\n\t\treturn childContinuation(node);\n\t}\n\n\t// Check if the initializer represents a require(...) call.\n\tconst requireData = isRequireCall(initializer, sourceFile, context);\n\n\t// If it doesn't, proceed without applying any transformations\n\tif (!requireData.match) {\n\t\treturn childContinuation(node);\n\t}\n\n\t// Otherwise, spread out the things we know about the require call\n\tconst {moduleSpecifier, transformedModuleSpecifier} = requireData;\n\n\t// If no module specifier could be determined, proceed with the child continuation\n\tif (moduleSpecifier == null || transformedModuleSpecifier == null) {\n\t\treturn childContinuation(node);\n\t}\n\n\t// If we've been able to resolve a module as well as its contents,\n\t// Check it for exports so that we know more about its internals, for example whether or not it has any named exports, etc\n\tconst moduleExports = getModuleExportsFromRequireDataInContext(requireData, context);\n\n\t// This will be something like 'foo = require(\"bar\")\n\tif (typescript.isIdentifier(node.name)) {\n\t\t// If the default export is already imported under the same local name as this VariableDeclaration binds,\n\t\t// proceed from the child continuation for more sophisticated behavior\n\t\tif ((moduleExports == null || moduleExports.hasDefaultExport) && context.hasLocalForDefaultImportFromModule(moduleSpecifier)) {\n\t\t\treturn childContinuation(node);\n\t\t}\n\n\t\t// If the namespace is already imported, under the same local name as this VariableDeclaration binds,\n\t\t// proceed from the child continuation for more sophisticated behavior\n\t\telse if (moduleExports != null && !moduleExports.hasDefaultExport && context.hasLocalForNamespaceImportFromModule(moduleSpecifier)) {\n\t\t\treturn childContinuation(node);\n\t\t}\n\n\t\t// Otherwise, the 'foo = require(\"bar\")' VariableDeclaration is part of an Exported VariableStatement such as 'export const foo = require(\"bar\")',\n\t\t// and it should preferably be converted into an ExportDeclaration\n\t\telse if (statement != null && hasExportModifier(statement, typescript)) {\n\t\t\tconst moduleSpecifierExpression = factory.createStringLiteral(transformedModuleSpecifier);\n\n\t\t\tif (moduleExports == null || moduleExports.hasDefaultExport) {\n\t\t\t\tconst exportClause = factory.createNamedExports([\n\t\t\t\t\tfactory.createExportSpecifier(false, node.name.text === \"default\" ? undefined : factory.createIdentifier(\"default\"), factory.createIdentifier(node.name.text))\n\t\t\t\t]);\n\n\t\t\t\tcontext.addTrailingStatements(\n\t\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createExportDeclaration)(\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\texportClause,\n\t\t\t\t\t\tmoduleSpecifierExpression,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\t// Otherwise, if the TypeScript version supports named namespace exports\n\t\t\telse if (factory.createNamespaceExport != null) {\n\t\t\t\tconst exportClause = factory.createNamespaceExport(factory.createIdentifier(node.name.text));\n\n\t\t\t\tcontext.addTrailingStatements(\n\t\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createExportDeclaration)(\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\texportClause,\n\t\t\t\t\t\tmoduleSpecifierExpression,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\t// Otherwise, for older TypeScript versions, we'll have to first import and then re-export the namespace\n\t\t\telse {\n\t\t\t\tcontext.addImport(\n\t\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createImportDeclaration)(\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tfactory.createImportClause(false, undefined, factory.createNamespaceImport(factory.createIdentifier(node.name.text))),\n\t\t\t\t\t\tmoduleSpecifierExpression,\n\t\t\t\t\t\tmaybeGenerateAssertClause(context, transformedModuleSpecifier, moduleExports?.assert)\n\t\t\t\t\t),\n\t\t\t\t\tmoduleSpecifier\n\t\t\t\t);\n\t\t\t\tconst exportClause = factory.createNamedExports([factory.createExportSpecifier(false, undefined, factory.createIdentifier(node.name.text))]);\n\t\t\t\tcontext.addTrailingStatements(\n\t\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createExportDeclaration)(\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\texportClause,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\n\t\t// Otherwise, the 'foo = require(\"bar\")' VariableDeclaration can be safely transformed into a simple import such as 'import foo from \"bar\"' or 'import * as foo from \"bar\"',\n\t\t// depending on whether or not the module has a default export\n\t\telse {\n\t\t\tconst willReassign = willReassignIdentifier(node.name.text, sourceFile, typescript);\n\t\t\tconst newName = willReassign ? context.getFreeIdentifier(node.name.text, true) : node.name.text;\n\n\t\t\tcontext.addImport(\n\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createImportDeclaration)(\n\t\t\t\t\tundefined,\n\n\t\t\t\t\tmoduleExports == null || moduleExports.hasDefaultExport\n\t\t\t\t\t\t? // Import the default if it has any (or if we don't know if it has)\n\t\t\t\t\t\t  factory.createImportClause(false, factory.createIdentifier(newName), undefined)\n\t\t\t\t\t\t: // Otherwise, import the entire namespace\n\t\t\t\t\t\t  factory.createImportClause(false, undefined, factory.createNamespaceImport(factory.createIdentifier(newName))),\n\t\t\t\t\tfactory.createStringLiteral(transformedModuleSpecifier),\n\t\t\t\t\tmaybeGenerateAssertClause(context, transformedModuleSpecifier, moduleExports?.assert)\n\t\t\t\t),\n\t\t\t\tmoduleSpecifier\n\t\t\t);\n\t\t\tif (willReassign) {\n\t\t\t\t// Now, immediately add a local mutable variable with the correct name\n\t\t\t\tcontext.addLeadingStatements(\n\t\t\t\t\tfactory.createVariableStatement(\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tfactory.createVariableDeclarationList(\n\t\t\t\t\t\t\t[factory.createVariableDeclaration(node.name.text, undefined, undefined, factory.createIdentifier(newName))],\n\t\t\t\t\t\t\ttypescript.NodeFlags.Let\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\treturn undefined;\n\t\t}\n\t}\n\n\t// This will be something like '{foo} = require(\"bar\")', '{foo, bar} = require(\"bar\")', '{foo: bar} = require(\"bar\")', or event '{foo: {bar: baz}} = require(\"bar\")'.\n\t// We will only consider the simplest variants of these before opting out and letting the CallExpression visitor handle more sophisticated behavior\n\telse if (moduleExports != null && typescript.isObjectBindingPattern(node.name)) {\n\t\tconst importSpecifiers: TS.ImportSpecifier[] = [];\n\t\tfor (const element of node.name.elements) {\n\t\t\t// When the propertyName is null, the name will always be an identifier.\n\t\t\t// This will be something like '{foo} = require(\"bar\")'\n\t\t\tif (element.propertyName == null && typescript.isIdentifier(element.name)) {\n\t\t\t\t// If there is no named export matching the identifier, opt out and proceed with the\n\t\t\t\t// child continuation for more sophisticated handling\n\t\t\t\tif (!moduleExports.namedExports.has(element.name.text)) {\n\t\t\t\t\treturn childContinuation(node);\n\t\t\t\t}\n\n\t\t\t\timportSpecifiers.push(factory.createImportSpecifier(false, undefined, factory.createIdentifier(element.name.text)));\n\t\t\t}\n\n\t\t\t// This will be something like '{foo: bar} = require(\"bar\")'\n\t\t\telse if (element.propertyName != null && typescript.isIdentifier(element.propertyName) && typescript.isIdentifier(element.name)) {\n\t\t\t\t// If there is no named export matching the identifier of the property name, opt out and proceed with the\n\t\t\t\t// child continuation for more sophisticated handling\n\t\t\t\tif (!moduleExports.namedExports.has(element.propertyName.text)) {\n\t\t\t\t\treturn childContinuation(node);\n\t\t\t\t}\n\n\t\t\t\timportSpecifiers.push(factory.createImportSpecifier(false, factory.createIdentifier(element.propertyName.text), factory.createIdentifier(element.name.text)));\n\t\t\t} else {\n\t\t\t\t// Opt out and proceed with the child continuation for more sophisticated handling\n\t\t\t\treturn childContinuation(node);\n\t\t\t}\n\t\t}\n\t\t// If more than 0 import specifier was generated, add an ImportDeclaration and remove this VariableDeclaration\n\t\tif (importSpecifiers.length > 0) {\n\t\t\tconst importSpecifiersThatWillBeReassigned = importSpecifiers.filter(importSpecifier => willReassignIdentifier(importSpecifier.name.text, sourceFile, typescript));\n\t\t\tconst otherImportSpecifiers = importSpecifiers.filter(importSpecifier => !importSpecifiersThatWillBeReassigned.includes(importSpecifier));\n\n\t\t\t// Add an import, but bind the name to free identifier\n\t\t\tfor (const importSpecifier of importSpecifiersThatWillBeReassigned) {\n\t\t\t\tconst propertyName = importSpecifier.propertyName ?? importSpecifier.name;\n\t\t\t\tconst newName = context.getFreeIdentifier(importSpecifier.name.text, true);\n\n\t\t\t\tconst namedImports = factory.createNamedImports([factory.createImportSpecifier(false, factory.createIdentifier(propertyName.text), factory.createIdentifier(newName))]);\n\n\t\t\t\tcontext.addImport(\n\t\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createImportDeclaration)(\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tfactory.createImportClause(false, undefined, namedImports),\n\t\t\t\t\t\tfactory.createStringLiteral(transformedModuleSpecifier),\n\t\t\t\t\t\tmaybeGenerateAssertClause(context, transformedModuleSpecifier, moduleExports?.assert)\n\t\t\t\t\t),\n\t\t\t\t\tmoduleSpecifier\n\t\t\t\t);\n\n\t\t\t\t// Now, immediately add a local mutable variable with the correct name\n\t\t\t\tcontext.addLeadingStatements(\n\t\t\t\t\tfactory.createVariableStatement(\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tfactory.createVariableDeclarationList(\n\t\t\t\t\t\t\t[factory.createVariableDeclaration(importSpecifier.name.text, undefined, undefined, factory.createIdentifier(newName))],\n\t\t\t\t\t\t\ttypescript.NodeFlags.Let\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 (otherImportSpecifiers.length > 0) {\n\t\t\t\tcontext.addImport(\n\t\t\t\t\ttsFactoryDecoratorsInterop(context, factory.createImportDeclaration)(\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tfactory.createImportClause(false, undefined, factory.createNamedImports(otherImportSpecifiers)),\n\t\t\t\t\t\tfactory.createStringLiteral(transformedModuleSpecifier),\n\t\t\t\t\t\tmaybeGenerateAssertClause(context, transformedModuleSpecifier, moduleExports?.assert)\n\t\t\t\t\t),\n\t\t\t\t\tmoduleSpecifier\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn undefined;\n\t\t}\n\t}\n\n\t// Otherwise, proceed with the child continuation\n\treturn childContinuation(node);\n}\n","import {TS} from \"../../../type/ts.js\";\n\nexport function isNotEmittedStatement(node: TS.Node, typescript: typeof TS): node is TS.NotEmittedStatement {\n\treturn node.kind === typescript.SyntaxKind.NotEmittedStatement;\n}\n","import {BeforeVisitorOptions} from \"../before-visitor-options.js\";\nimport {isNotEmittedStatement} from \"./is-not-emitted-statement.js\";\nimport {TS} from \"../../../type/ts.js\";\nimport { isNodeArray } from '../../util/is-node-array.js'\n\n/**\n * Visits the given VariableDeclarationList\n */\nexport function visitVariableDeclarationList({node, childContinuation, context}: BeforeVisitorOptions<TS.VariableDeclarationList>): TS.VisitResult<TS.Node|undefined> {\n\tif (context.onlyExports) {\n\t\treturn childContinuation(node);\n\t}\n\n\tconst {typescript, factory} = context;\n\tconst continuationResult = childContinuation(node);\n\n\t// If the result isn't a new VariableDeclarationList, return that result\n\tif (continuationResult == null || isNodeArray(continuationResult) || !typescript.isVariableDeclarationList(continuationResult)) {\n\t\treturn continuationResult;\n\t}\n\n\t// Check if there are any VariableDeclarations left to be emitted\n\tconst remainingDeclarations = continuationResult.declarations.filter(declaration => !isNotEmittedStatement(declaration, typescript));\n\t// If not, return the continuation result\n\tif (remainingDeclarations.length === 0) return continuationResult;\n\n\t// Otherwise, return an updated version of the declaration list, preserving only those declarations that should be emitted\n\treturn factory.updateVariableDeclarationList(node, remainingDeclarations);\n}\n","import {getExportsData} from \"./get-exports-data.js\";\nimport {isExpression} from \"./is-expression.js\";\nimport {walkThroughFillerNodes} from \"./walk-through-filler-nodes.js\";\nimport {BeforeVisitorOptions} from \"../visitor/before-visitor-options.js\";\nimport {TS} from \"../../type/ts.js\";\n\nfunction hasExportAssignments(node: TS.Node, exportsName: string, typescript: typeof TS): boolean {\n\tconst result = typescript.forEachChild<boolean>(node, nextNode => {\n\t\tif (isExpression(nextNode, typescript)) {\n\t\t\tif (getExportsData(nextNode, exportsName, typescript) != null) return true;\n\t\t}\n\t\tif (hasExportAssignments(nextNode, exportsName, typescript)) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn;\n\t});\n\n\treturn result != null ? result : false;\n}\n\nexport function getBestBodyInScope({node, context}: BeforeVisitorOptions<TS.Node>): TS.Node | undefined {\n\tconst {typescript, factory} = context;\n\tif (!typescript.isSourceFile(node)) {\n\t\treturn node;\n\t}\n\n\tconst [firstStatement] = node.statements;\n\tif (!typescript.isExpressionStatement(firstStatement)) return node;\n\tconst expression = walkThroughFillerNodes(firstStatement.expression, typescript);\n\n\tif (!typescript.isCallExpression(expression)) return node;\n\tconst expressionExpression = walkThroughFillerNodes(expression.expression, typescript);\n\tif (!typescript.isFunctionExpression(expressionExpression)) return node;\n\tif (expression.arguments.length < 2) return node;\n\tlet [, secondArgument] = expression.arguments;\n\tsecondArgument = walkThroughFillerNodes(secondArgument, typescript);\n\tif (!typescript.isFunctionExpression(secondArgument)) return node;\n\tif (secondArgument.parameters.length < 1) return node;\n\tconst [firstBodyParameter] = secondArgument.parameters;\n\tif (!typescript.isIdentifier(firstBodyParameter.name)) return node;\n\tif (hasExportAssignments(secondArgument.body, firstBodyParameter.name.text, typescript)) {\n\t\tcontext.exportsName = firstBodyParameter.name.text;\n\n\t\treturn factory.updateSourceFile(\n\t\t\tnode,\n\t\t\t[...secondArgument.body.statements, ...node.statements.slice(1)],\n\t\t\tnode.isDeclarationFile,\n\t\t\tnode.referencedFiles,\n\t\t\tnode.typeReferenceDirectives,\n\t\t\tnode.hasNoDefaultLib,\n\t\t\tnode.libReferenceDirectives\n\t\t);\n\t}\n\n\treturn node;\n}\n","import {BeforeVisitorOptions} from \"../before-visitor-options.js\";\nimport {visitCallExpression} from \"./visit-call-expression.js\";\nimport {visitBinaryExpression} from \"./visit-binary-expression.js\";\nimport {visitVariableDeclaration} from \"./visit-variable-declaration.js\";\nimport {visitVariableDeclarationList} from \"./visit-variable-declaration-list.js\";\nimport {getBestBodyInScope} from \"../../util/get-best-body-in-scope.js\";\nimport {TS} from \"../../../type/ts.js\";\n\n/**\n * Visits the given Node\n */\nexport function visitNode<T extends TS.Node>(options: BeforeVisitorOptions<T>): TS.VisitResult<TS.Node|undefined> {\n\tconst {typescript} = options.context;\n\tconst bestNode = getBestBodyInScope(options);\n\tif (bestNode != null && bestNode !== options.node) {\n\t\treturn options.childContinuation(bestNode);\n\t}\n\n\tif (typescript.isVariableDeclarationList(options.node)) {\n\t\treturn visitVariableDeclarationList(options as unknown as BeforeVisitorOptions<TS.VariableDeclarationList>);\n\t} else if (typescript.isVariableDeclaration(options.node)) {\n\t\treturn visitVariableDeclaration(options as unknown as BeforeVisitorOptions<TS.VariableDeclaration>);\n\t} else if (typescript.isBinaryExpression(options.node)) {\n\t\treturn visitBinaryExpression(options as unknown as BeforeVisitorOptions<TS.BinaryExpression>);\n\t} else if (typescript.isCallExpression(options.node)) {\n\t\treturn visitCallExpression(options as unknown as BeforeVisitorOptions<TS.CallExpression>);\n\t}\n\n\treturn options.childContinuation(options.node);\n}\n","import {isNotEmittedStatement} from \"../visitor/visit/is-not-emitted-statement.js\";\nimport {TS} from \"../../type/ts.js\";\nimport { isNodeArray } from './is-node-array.js'\n\n/**\n * Returns true if the given Node contains an empty child\n */\nexport function shouldSkipEmit(node: TS.VisitResult<TS.Node|undefined>, typescript: typeof TS): boolean {\n\tif (!node) return true;\n\tif (isNodeArray(node)) return node.some(otherNode => shouldSkipEmit(otherNode, typescript));\n\tif (typescript.isSourceFile(node)) return false;\n\tif (typescript.isBlock(node)) return false;\n\treturn isNotEmittedStatement(node, typescript) || Boolean(typescript.forEachChild<boolean>(node, nextNode => shouldSkipEmit(nextNode, typescript)));\n}\n","import {BeforeVisitorOptions} from \"../before-visitor-options.js\";\nimport {TS} from \"../../../type/ts.js\";\n\n/**\n * Visits the given ImportDeclaration\n */\nexport function visitImportDeclaration({node, context}: BeforeVisitorOptions<TS.ImportDeclaration>): TS.VisitResult<TS.Node|undefined> {\n\tif (!context.typescript.isStringLiteralLike(node.moduleSpecifier)) return undefined;\n\n\tcontext.addImport(node, node.moduleSpecifier.text, true);\n\treturn undefined;\n}\n","import {BeforeVisitorOptions} from \"../before-visitor-options.js\";\nimport {TS} from \"../../../type/ts.js\";\n\n/**\n * Visits the given ExportDeclaration\n */\nexport function visitExportDeclaration({node, context}: BeforeVisitorOptions<TS.ExportDeclaration>): TS.VisitResult<TS.Node|undefined> {\n\tif (node.exportClause != null && context.typescript.isNamedExports(node.exportClause)) {\n\t\tfor (const element of node.exportClause.elements) {\n\t\t\t// If the name is 'default' that name is considered special since it represents the default export\n\t\t\t// rather than a named export\n\t\t\tif (element.name.text === \"default\") {\n\t\t\t\tcontext.markDefaultAsExported();\n\t\t\t} else {\n\t\t\t\t// Mark the name as a named export. If the propertyName is different, that's fine\n\t\t\t\t// - we care about the exported binding name, nothing else\n\t\t\t\tcontext.markLocalAsExported(element.name.text);\n\t\t\t}\n\t\t}\n\t}\n\treturn undefined;\n}\n","import {BeforeVisitorOptions} from \"../before-visitor-options.js\";\nimport {TS} from \"../../../type/ts.js\";\n\n/**\n * Visits the given ExportAssignment\n *\n * @param options\n * @returns\n */\nexport function visitExportAssignment({context}: BeforeVisitorOptions<TS.ExportAssignment>): TS.VisitResult<TS.Node|undefined> {\n\tcontext.markDefaultAsExported();\n\treturn undefined;\n}\n","import {hasExportModifier} from \"./has-export-modifier.js\";\nimport {TS} from \"../../type/ts.js\";\nimport { hasModifier } from './has-modifier.js'\n\nexport function hasDefaultExportModifier(node: TS.Node, typescript: typeof TS): boolean {\n\treturn hasExportModifier(node, typescript) && hasModifier(node, typescript.SyntaxKind.DefaultKeyword)\n}\n","import {BeforeVisitorOptions} from \"../before-visitor-options.js\";\nimport {visitImportDeclaration} from \"./visit-import-declaration.js\";\nimport {visitExportDeclaration} from \"./visit-export-declaration.js\";\nimport {visitExportAssignment} from \"./visit-export-assignment.js\";\nimport {hasExportModifier} from \"../../util/has-export-modifier.js\";\nimport {hasDefaultExportModifier} from \"../../util/has-default-export-modifier.js\";\nimport {isDeclaration} from \"../../util/is-declaration.js\";\nimport {getLocalsForBindingName} from \"../../util/get-locals-for-binding-name.js\";\nimport {TS} from \"../../../type/ts.js\";\n\n/**\n * Visits the given Node\n *\n * @param options\n * @returns\n */\nexport function visitImportAndExportDeclarations<T extends TS.Node>(options: BeforeVisitorOptions<T>): TS.VisitResult<TS.Node|undefined> {\n\tconst {typescript} = options.context;\n\tif (typescript.isImportDeclaration(options.node)) {\n\t\treturn visitImportDeclaration(options as unknown as BeforeVisitorOptions<TS.ImportDeclaration>);\n\t} else if (typescript.isExportDeclaration(options.node)) {\n\t\treturn visitExportDeclaration(options as unknown as BeforeVisitorOptions<TS.ExportDeclaration>);\n\t} else if (typescript.isExportAssignment(options.node)) {\n\t\treturn visitExportAssignment(options as unknown as BeforeVisitorOptions<TS.ExportAssignment>);\n\t} else if (hasDefaultExportModifier(options.node, typescript)) {\n\t\toptions.context.markDefaultAsExported();\n\t} else if (hasExportModifier(options.node, typescript)) {\n\t\tif (isDeclaration(options.node, typescript)) {\n\t\t\tconst declarationName = typescript.getNameOfDeclaration(options.node);\n\t\t\tif (declarationName != null && typescript.isIdentifier(declarationName)) {\n\t\t\t\toptions.context.markLocalAsExported(declarationName.text);\n\t\t\t}\n\t\t} else if (typescript.isVariableStatement(options.node)) {\n\t\t\tfor (const declaration of options.node.declarationList.declarations) {\n\t\t\t\tfor (const local of getLocalsForBindingName(declaration.name, typescript)) {\n\t\t\t\t\toptions.context.markLocalAsExported(local);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn options.childContinuation(options.node);\n}\n","import {visitNode} from \"./visitor/visit/visit-node.js\";\nimport {BeforeTransformerSourceFileStepResult, BeforeVisitorContext} from \"./visitor/before-visitor-context.js\";\nimport {BeforeVisitorOptions} from \"./visitor/before-visitor-options.js\";\nimport {check} from \"reserved-words\";\nimport {isNamedDeclaration} from \"./util/is-named-declaration.js\";\nimport {getLocalsForBindingName} from \"./util/get-locals-for-binding-name.js\";\nimport {shouldSkipEmit} from \"./util/should-skip-emit.js\";\nimport {ModuleExports} from \"./module-exports/module-exports.js\";\nimport {visitImportAndExportDeclarations} from \"./visitor/visit/visit-import-and-export-declarations.js\";\nimport {TS} from \"../type/ts.js\";\nimport {shouldDebug} from \"./util/should-debug.js\";\nimport path from \"crosspath\";\nimport {VisitorContext} from \"./visitor-context.js\";\n\nexport function transformSourceFile(sourceFile: TS.SourceFile, context: VisitorContext): BeforeTransformerSourceFileStepResult {\n\t// Take a fast path of the text of the SourceFile doesn't contain anything that can be transformed\n\tif (!context.onlyExports && !sourceFile.text.includes(\"require\") && !sourceFile.text.includes(\"exports\")) {\n\t\treturn {sourceFile, exports: {namedExports: new Set(), hasDefaultExport: false}};\n\t}\n\n\tconst {typescript, factory, transformationContext} = context;\n\n\t// Prepare a VisitorContext\n\tconst visitorContext = ((): BeforeVisitorContext => {\n\t\tconst imports: Map<TS.ImportDeclaration, {originalModuleSpecifier: string; noEmit: boolean}> = new Map();\n\t\tconst leadingStatements: TS.Statement[] = [];\n\t\tconst trailingStatements: TS.Statement[] = [];\n\t\tconst moduleExportsMap: Map<string, ModuleExports> = new Map();\n\t\tconst localsMap = (sourceFile as {locals?: Map<string, symbol>}).locals;\n\t\tconst locals = localsMap == null ? new Set() : new Set(localsMap.keys());\n\t\tconst exportedLocals = new Set<string>();\n\t\tlet isDefaultExported = false;\n\n\t\tconst addImport = (declaration: TS.ImportDeclaration, originalModuleSpecifier: string, noEmit = false): void => {\n\t\t\timports.set(declaration, {originalModuleSpecifier, noEmit});\n\t\t};\n\n\t\tconst markLocalAsExported = (local: string): void => {\n\t\t\texportedLocals.add(local);\n\t\t};\n\n\t\tconst isLocalExported = (local: string): boolean => exportedLocals.has(local);\n\n\t\tconst markDefaultAsExported = (): void => {\n\t\t\tisDefaultExported = true;\n\t\t};\n\n\t\tconst addLocal = (local: string): void => {\n\t\t\tlocals.add(local);\n\t\t};\n\n\t\tconst getImportDeclarationWithModuleSpecifier = (moduleSpecifier: string): TS.ImportDeclaration | undefined =>\n\t\t\t[...imports.entries()].find(([, {originalModuleSpecifier}]) => originalModuleSpecifier === moduleSpecifier)?.[0];\n\n\t\tconst isModuleSpecifierImportedWithoutLocals = (moduleSpecifier: string): boolean => {\n\t\t\tconst matchingDeclaration = getImportDeclarationWithModuleSpecifier(moduleSpecifier);\n\t\t\tif (matchingDeclaration == null) return false;\n\t\t\treturn matchingDeclaration.importClause == null || (matchingDeclaration.importClause.name == null && matchingDeclaration.importClause.namedBindings == null);\n\t\t};\n\n\t\tconst getLocalForDefaultImportFromModule = (moduleSpecifier: string): string | undefined => {\n\t\t\tconst matchingDeclaration = getImportDeclarationWithModuleSpecifier(moduleSpecifier);\n\t\t\tif (matchingDeclaration == null) return undefined;\n\t\t\tif (matchingDeclaration.importClause == null || matchingDeclaration.importClause.name == null) return undefined;\n\t\t\treturn matchingDeclaration.importClause.name.text;\n\t\t};\n\n\t\tconst hasLocalForDefaultImportFromModule = (moduleSpecifier: string): boolean => getLocalForDefaultImportFromModule(moduleSpecifier) != null;\n\n\t\tconst getLocalForNamespaceImportFromModule = (moduleSpecifier: string): string | undefined => {\n\t\t\tconst matchingDeclaration = getImportDeclarationWithModuleSpecifier(moduleSpecifier);\n\t\t\tif (matchingDeclaration == null) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif (\n\t\t\t\tmatchingDeclaration.importClause == null ||\n\t\t\t\tmatchingDeclaration.importClause.namedBindings == null ||\n\t\t\t\t!typescript.isNamespaceImport(matchingDeclaration.importClause.namedBindings)\n\t\t\t) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\treturn matchingDeclaration.importClause.namedBindings.name.text;\n\t\t};\n\n\t\tconst hasLocalForNamespaceImportFromModule = (moduleSpecifier: string): boolean => getLocalForNamespaceImportFromModule(moduleSpecifier) != null;\n\n\t\tconst getLocalForNamedImportPropertyNameFromModule = (propertyName: string, moduleSpecifier: string): string | undefined => {\n\t\t\tconst matchingDeclaration = getImportDeclarationWithModuleSpecifier(moduleSpecifier);\n\t\t\tif (matchingDeclaration == null) return undefined;\n\t\t\tif (\n\t\t\t\tmatchingDeclaration.importClause == null ||\n\t\t\t\tmatchingDeclaration.importClause.namedBindings == null ||\n\t\t\t\t!typescript.isNamedImports(matchingDeclaration.importClause.namedBindings)\n\t\t\t) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tfor (const element of matchingDeclaration.importClause.namedBindings.elements) {\n\t\t\t\tif (element.propertyName != null && element.propertyName.text === propertyName) return element.name.text;\n\t\t\t\telse if (element.propertyName == null && element.name.text === propertyName) return element.name.text;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t};\n\n\t\tconst hasLocalForNamedImportPropertyNameFromModule = (propertyName: string, moduleSpecifier: string): boolean =>\n\t\t\tgetLocalForNamedImportPropertyNameFromModule(propertyName, moduleSpecifier) != null;\n\n\t\tconst addTrailingStatements = (...statements: TS.Statement[]): void => {\n\t\t\ttrailingStatements.push(...statements);\n\t\t};\n\n\t\tconst addLeadingStatements = (...statements: TS.Statement[]): void => {\n\t\t\tleadingStatements.push(...statements);\n\t\t};\n\n\t\tconst isIdentifierFree = (identifier: string): boolean =>\n\t\t\t// It should not be part of locals of the module already\n\t\t\t!locals.has(identifier) &&\n\t\t\t// It should not be a reserved word in any environment\n\t\t\t!check(identifier, \"es3\", true) &&\n\t\t\t!check(identifier, \"es5\", true) &&\n\t\t\t!check(identifier, \"es2015\", true);\n\n\t\tconst ignoreIdentifier = (identifier: string): boolean => locals.delete(identifier);\n\n\t\tconst getFreeIdentifier = (candidate: string, force = false): string => {\n\t\t\tconst suffix = \"$\";\n\t\t\tlet counter = 0;\n\n\t\t\tif (isIdentifierFree(candidate) && !force) {\n\t\t\t\taddLocal(candidate);\n\t\t\t\treturn candidate;\n\t\t\t}\n\n\t\t\twhile (true) {\n\t\t\t\tconst currentCandidate = candidate + suffix + counter;\n\t\t\t\tif (!isIdentifierFree(currentCandidate)) {\n\t\t\t\t\tcounter++;\n\t\t\t\t} else {\n\t\t\t\t\taddLocal(currentCandidate);\n\t\t\t\t\treturn currentCandidate;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\treturn {\n\t\t\t...context,\n\t\t\ttransformSourceFile,\n\t\t\texportsName: undefined,\n\t\t\taddImport,\n\t\t\taddLocal,\n\t\t\tmarkLocalAsExported,\n\t\t\tmarkDefaultAsExported,\n\t\t\tisLocalExported,\n\t\t\tisModuleSpecifierImportedWithoutLocals,\n\t\t\tgetImportDeclarationWithModuleSpecifier,\n\t\t\tgetLocalForDefaultImportFromModule,\n\t\t\thasLocalForDefaultImportFromModule,\n\t\t\tgetLocalForNamespaceImportFromModule,\n\t\t\thasLocalForNamespaceImportFromModule,\n\t\t\tgetLocalForNamedImportPropertyNameFromModule,\n\t\t\thasLocalForNamedImportPropertyNameFromModule,\n\t\t\taddLeadingStatements,\n\t\t\taddTrailingStatements,\n\t\t\tisIdentifierFree,\n\t\t\tgetFreeIdentifier,\n\t\t\tignoreIdentifier,\n\t\t\tgetModuleExportsForPath: p => moduleExportsMap.get(path.normalize(p)),\n\t\t\taddModuleExportsForPath: (p, exports) => moduleExportsMap.set(path.normalize(p), exports),\n\t\t\tget imports() {\n\t\t\t\treturn [...imports.entries()].filter(([, {noEmit}]) => !noEmit).map(([declaration]) => declaration);\n\t\t\t},\n\t\t\tget leadingStatements() {\n\t\t\t\treturn leadingStatements;\n\t\t\t},\n\t\t\tget trailingStatements() {\n\t\t\t\treturn trailingStatements;\n\t\t\t},\n\t\t\tget isDefaultExported() {\n\t\t\t\treturn isDefaultExported;\n\t\t\t},\n\t\t\tget exportedLocals() {\n\t\t\t\treturn exportedLocals;\n\t\t\t}\n\t\t};\n\t})();\n\n\tconst visitorBaseOptions: Pick<BeforeVisitorOptions<TS.Node>, Exclude<keyof BeforeVisitorOptions<TS.Node>, \"node\" | \"sourceFile\">> = {\n\t\tcontext: visitorContext,\n\n\t\tcontinuation: node =>\n\t\t\tvisitNode({\n\t\t\t\t...visitorBaseOptions,\n\t\t\t\tsourceFile,\n\t\t\t\tnode\n\t\t\t}),\n\t\tchildContinuation: node =>\n\t\t\ttypescript.visitEachChild(\n\t\t\t\tnode,\n\t\t\t\tcbNode => {\n\t\t\t\t\tconst visitResult = visitNode({\n\t\t\t\t\t\t...visitorBaseOptions,\n\t\t\t\t\t\tsourceFile,\n\t\t\t\t\t\tnode: cbNode\n\t\t\t\t\t});\n\t\t\t\t\tif (shouldSkipEmit(visitResult, typescript)) {\n\t\t\t\t\t\treturn factory.createNotEmittedStatement(cbNode);\n\t\t\t\t\t}\n\t\t\t\t\treturn visitResult;\n\t\t\t\t},\n\t\t\t\ttransformationContext\n\t\t\t)\n\t};\n\n\tconst importVisitorBaseOptions: Pick<BeforeVisitorOptions<TS.Node>, Exclude<keyof BeforeVisitorOptions<TS.Node>, \"node\" | \"sourceFile\">> = {\n\t\tcontext: visitorContext,\n\n\t\tcontinuation: node =>\n\t\t\tvisitImportAndExportDeclarations({\n\t\t\t\t...importVisitorBaseOptions,\n\t\t\t\tsourceFile,\n\t\t\t\tnode\n\t\t\t}),\n\t\tchildContinuation: node =>\n\t\t\ttypescript.visitEachChild(\n\t\t\t\tnode,\n\t\t\t\tcbNode => {\n\t\t\t\t\tconst visitResult = visitImportAndExportDeclarations({\n\t\t\t\t\t\t...importVisitorBaseOptions,\n\t\t\t\t\t\tsourceFile,\n\t\t\t\t\t\tnode: cbNode\n\t\t\t\t\t});\n\t\t\t\t\tif (shouldSkipEmit(visitResult, typescript)) {\n\t\t\t\t\t\treturn factory.createNotEmittedStatement(cbNode);\n\t\t\t\t\t}\n\t\t\t\t\treturn visitResult;\n\t\t\t\t},\n\t\t\t\ttransformationContext\n\t\t\t)\n\t};\n\n\t// Visit all imports and exports first\n\tvisitImportAndExportDeclarations({...importVisitorBaseOptions, sourceFile, node: sourceFile});\n\n\tlet updatedSourceFile = visitNode({...visitorBaseOptions, sourceFile, node: sourceFile}) as TS.SourceFile;\n\n\tconst allImports: TS.Statement[] = [\n\t\t...visitorContext.imports,\n\t\t...visitorContext.leadingStatements.filter(typescript.isImportDeclaration),\n\t\t...updatedSourceFile.statements.filter(typescript.isImportDeclaration),\n\t\t...visitorContext.trailingStatements.filter(typescript.isImportDeclaration)\n\t];\n\n\tconst allExports: TS.Statement[] = [\n\t\t...visitorContext.leadingStatements.filter(statement => typescript.isExportDeclaration(statement) || typescript.isExportAssignment(statement)),\n\t\t...updatedSourceFile.statements.filter(statement => typescript.isExportDeclaration(statement) || typescript.isExportAssignment(statement)),\n\t\t...visitorContext.trailingStatements.filter(statement => typescript.isExportDeclaration(statement) || typescript.isExportAssignment(statement))\n\t];\n\n\tconst allOtherStatements = [\n\t\t...visitorContext.leadingStatements.filter(statement => !allImports.includes(statement) && !allExports.includes(statement)),\n\t\t...updatedSourceFile.statements.filter(\n\t\t\tstatement => !allImports.includes(statement) && !allExports.includes(statement) && statement.kind !== typescript.SyntaxKind.NotEmittedStatement\n\t\t),\n\t\t...visitorContext.trailingStatements.filter(statement => !allImports.includes(statement) && !allExports.includes(statement))\n\t];\n\n\tupdatedSourceFile = factory.updateSourceFile(\n\t\tupdatedSourceFile,\n\t\t[...allImports, ...allOtherStatements, ...allExports],\n\t\tsourceFile.isDeclarationFile,\n\t\tsourceFile.referencedFiles,\n\t\tsourceFile.typeReferenceDirectives,\n\t\tsourceFile.hasNoDefaultLib,\n\t\tsourceFile.libReferenceDirectives\n\t);\n\n\t// Update the SourceFile with the extra statements\n\tconst moduleExports: ModuleExports = {\n\t\thasDefaultExport: false,\n\t\tnamedExports: new Set()\n\t};\n\n\tfunction hasModifiers<T extends TS.Node>(node: T): node is T & {modifiers: readonly TS.ModifierLike[]} {\n\t\treturn Boolean('modifiers' in node && node.modifiers)\n\t}\n\tfor (const statement of updatedSourceFile.statements) {\n\t\tif (typescript.isExportDeclaration(statement) && statement.exportClause != null && typescript.isNamedExports(statement.exportClause)) {\n\t\t\tfor (const element of statement.exportClause.elements) {\n\t\t\t\tmoduleExports.namedExports.add(element.name.text);\n\t\t\t}\n\t\t} else if (typescript.isExportAssignment(statement)) {\n\t\t\tmoduleExports.hasDefaultExport = true;\n\t\t} else if (hasModifiers(statement) && statement.modifiers.some((m) => m.kind === typescript.SyntaxKind.ExportKeyword)) {\n\t\t\tif (statement.modifiers.some((m) => m.kind === typescript.SyntaxKind.DefaultKeyword)) {\n\t\t\t\tmoduleExports.hasDefaultExport = true;\n\t\t\t} else if (typescript.isVariableStatement(statement)) {\n\t\t\t\tfor (const declaration of statement.declarationList.declarations) {\n\t\t\t\t\tfor (const local of getLocalsForBindingName(declaration.name, typescript)) {\n\t\t\t\t\t\tmoduleExports.namedExports.add(local);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (isNamedDeclaration(statement, typescript) && statement.name != null && typescript.isIdentifier(statement.name)) {\n\t\t\t\tmoduleExports.namedExports.add(statement.name.text);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Add the relevant module exports for the SourceFile\n\tvisitorContext.addModuleExportsForPath(path.normalize(sourceFile.fileName), moduleExports);\n\tif (!visitorContext.onlyExports && shouldDebug(visitorContext.debug, sourceFile) && visitorContext.printer != null) {\n\t\tvisitorContext.logger.debug(\"===\", path.native.normalize(sourceFile.fileName), \"===\");\n\t\tvisitorContext.logger.debug(visitorContext.printer.printFile(updatedSourceFile));\n\t\tvisitorContext.logger.debug(\"EXPORTS:\", visitorContext.exportedLocals);\n\t}\n\n\treturn {\n\t\tsourceFile: updatedSourceFile,\n\t\texports: moduleExports\n\t};\n}\n","import fs from \"fs\";\n\nexport type ReadonlyFileSystem = Pick<typeof fs, \"statSync\" | \"lstatSync\" | \"readFileSync\" | \"readdirSync\">;\n\nexport interface SafeReadonlyFileSystem extends ReadonlyFileSystem {\n\tsafeStatSync: (path: string) => fs.Stats | undefined;\n\tsafeReadFileSync: (path: string) => Buffer | undefined;\n}\n\nexport type FileSystem = ReadonlyFileSystem & Pick<typeof fs, \"writeFileSync\" | \"mkdirSync\">;\nexport type SafeFileSystem = SafeReadonlyFileSystem & Pick<typeof fs, \"writeFileSync\" | \"mkdirSync\">;\n\nexport const realReadonlyFileSystem: ReadonlyFileSystem = {\n\tstatSync: fs.statSync,\n\tlstatSync: fs.lstatSync,\n\treaddirSync: fs.readdirSync,\n\treadFileSync: fs.readFileSync\n};\n\nexport const realFileSystem: FileSystem = {\n\t...realReadonlyFileSystem,\n\tmkdirSync: fs.mkdirSync,\n\twriteFileSync: fs.writeFileSync\n};\n\nexport function createSafeFileSystem(fileSystem: FileSystem): SafeFileSystem;\nexport function createSafeFileSystem(fileSystem: ReadonlyFileSystem): SafeReadonlyFileSystem;\nexport function createSafeFileSystem(fileSystem: FileSystem | ReadonlyFileSystem): SafeFileSystem | SafeReadonlyFileSystem {\n\treturn {\n\t\t...fileSystem,\n\n\t\tsafeReadFileSync: path => {\n\t\t\ttry {\n\t\t\t\treturn fileSystem.readFileSync(path);\n\t\t\t} catch {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t},\n\t\tsafeStatSync: path => {\n\t\t\ttry {\n\t\t\t\treturn fileSystem.statSync(path);\n\t\t\t} catch {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\t};\n}\n","import {LogLevelKind} from \"./log-level-kind.js\";\nimport color from \"ansi-colors\";\nimport {Loggable} from \"./loggable.js\";\n\n/**\n * A logger that can print to the console\n */\nexport class Logger implements Loggable {\n\tprivate readonly VERBOSE_COLOR = \"cyan\";\n\tprivate readonly WARNING_COLOR = \"yellow\";\n\tprivate readonly DEBUG_COLOR = \"magenta\";\n\n\tconstructor(readonly logLevel: LogLevelKind) {}\n\n\t/**\n\t * Logs info-related messages\n\t */\n\tinfo(...messages: unknown[]): void {\n\t\tif (this.logLevel < LogLevelKind.INFO) return;\n\t\tconsole.log(...messages);\n\t}\n\n\t/**\n\t * Logs verbose-related messages\n\t */\n\tverbose(...messages: unknown[]): void {\n\t\tif (this.logLevel < LogLevelKind.VERBOSE) return;\n\t\tconsole.log(color[this.VERBOSE_COLOR](\"[VERBOSE]\"), ...messages);\n\t}\n\n\t/**\n\t * Logs debug-related messages\n\t */\n\tdebug(...messages: unknown[]): void {\n\t\tif (this.logLevel < LogLevelKind.DEBUG) return;\n\t\tconsole.log(color[this.DEBUG_COLOR](\"[DEBUG]\"), ...messages);\n\t}\n\n\t/**\n\t * Logs warning-related messages\n\t */\n\twarn(...messages: unknown[]): void {\n\t\tconsole.log(color[this.WARNING_COLOR](`(!)`), ...messages);\n\t}\n}\n","import {TaskOptions} from \"./task-options.js\";\nimport {realReadonlyFileSystem} from \"../file-system/file-system.js\";\nimport {Logger} from \"../logger/logger.js\";\nimport {LogLevelKind} from \"../logger/log-level-kind.js\";\nimport ts from \"typescript\";\n\nexport function createTaskOptions({\n\ttypescript = ts,\n\tfileSystem = realReadonlyFileSystem,\n\tdebug = false,\n\tcwd = process.cwd(),\n\tpreserveModuleSpecifiers = \"external\",\n\timportAssertions = true,\n\tlogger = new Logger(debug !== false ? LogLevelKind.DEBUG : LogLevelKind.NONE)\n}: Partial<TaskOptions> = {}): TaskOptions {\n\treturn {\n\t\ttypescript,\n\t\tfileSystem,\n\t\tdebug,\n\t\tcwd,\n\t\tpreserveModuleSpecifiers,\n\t\timportAssertions,\n\t\tlogger\n\t};\n}\n","import {transformSourceFile} from \"./transform-source-file.js\";\nimport {TS} from \"../type/ts.js\";\nimport {createTaskOptions} from \"../shared/task/create-task-options.js\";\nimport {createSafeFileSystem} from \"../shared/file-system/file-system.js\";\nimport {VisitorContext} from \"./visitor-context.js\";\nimport {ensureNodeFactory} from \"compatfactory\";\nimport {CjsToEsmOptions} from \"./cjs-to-esm-options.js\";\n\nexport function cjsToEsmTransformer(options: Partial<CjsToEsmOptions> = {}): TS.TransformerFactory<TS.SourceFile> {\n\treturn context => {\n\t\tconst sanitizedOptions = createTaskOptions(options);\n\t\tconst {fileSystem, typescript} = sanitizedOptions;\n\n\t\t// Prepare a VisitorContext\n\t\tconst visitorContext: VisitorContext = {\n\t\t\t...sanitizedOptions,\n\t\t\ttransformationContext: context,\n\t\t\tfactory: ensureNodeFactory(context.factory ?? typescript),\n\t\t\tfileSystem: createSafeFileSystem(fileSystem),\n\t\t\tonlyExports: false,\n\t\t\tresolveCache: new Map(),\n\t\t\tprinter: typescript.createPrinter()\n\t\t};\n\n\t\treturn sourceFile => transformSourceFile(sourceFile, visitorContext).sourceFile;\n\t};\n}\n","import {TS} from \"../type/ts.js\";\nimport {CjsToEsmOptions} from \"./cjs-to-esm-options.js\";\nimport {cjsToEsmTransformer} from \"./cjs-to-esm-transformer.js\";\n\n/**\n * CustomTransformer that converts CommonJS to tree-shakeable ESM\n */\nexport function cjsToEsm(options?: Partial<CjsToEsmOptions>): TS.CustomTransformers {\n\treturn {\n\t\tbefore: [cjsToEsmTransformer(options)]\n\t};\n}\n","import {FileSystem} from \"../file-system/file-system.js\";\nimport {TS} from \"../../type/ts.js\";\nimport path from \"crosspath\";\n\nexport interface CreateCompilerHostOptions {\n\tcwd: string;\n\tfileSystem: FileSystem;\n\ttypescript: typeof TS;\n}\n\nexport function createCompilerHost({cwd, fileSystem, typescript}: CreateCompilerHostOptions): TS.CompilerHost {\n\treturn {\n\t\treadFile(fileName: string): string | undefined {\n\t\t\ttry {\n\t\t\t\treturn fileSystem.readFileSync(fileName).toString();\n\t\t\t} catch {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t},\n\t\tdirectoryExists(directoryName: string): boolean {\n\t\t\ttry {\n\t\t\t\treturn fileSystem.statSync(directoryName).isDirectory();\n\t\t\t} catch {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tfileExists(directoryName: string): boolean {\n\t\t\ttry {\n\t\t\t\treturn fileSystem.statSync(directoryName).isFile();\n\t\t\t} catch {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\twriteFile: () => {\n\t\t\t// This is a noop\n\t\t},\n\n\t\tgetSourceFile(fileName: string, languageVersion: TS.ScriptTarget): TS.SourceFile | undefined {\n\t\t\tconst normalized = path.normalize(fileName);\n\t\t\tconst sourceText = this.readFile(fileName);\n\n\t\t\tif (sourceText == null) return undefined;\n\n\t\t\treturn typescript.createSourceFile(normalized, sourceText, languageVersion, true, getScriptKindFromPath(normalized, typescript));\n\t\t},\n\n\t\tgetCurrentDirectory() {\n\t\t\treturn path.native.normalize(cwd);\n\t\t},\n\n\t\tgetDirectories(directoryName: string) {\n\t\t\treturn typescript.sys.getDirectories(directoryName).map(path.native.normalize);\n\t\t},\n\n\t\tgetDefaultLibFileName(compilerOpts: TS.CompilerOptions): string {\n\t\t\treturn typescript.getDefaultLibFileName(compilerOpts);\n\t\t},\n\n\t\tgetCanonicalFileName(fileName: string): string {\n\t\t\treturn this.useCaseSensitiveFileNames() ? fileName : fileName.toLowerCase();\n\t\t},\n\n\t\tgetNewLine(): string {\n\t\t\treturn typescript.sys.newLine;\n\t\t},\n\n\t\tuseCaseSensitiveFileNames() {\n\t\t\treturn typescript.sys.useCaseSensitiveFileNames;\n\t\t},\n\n\t\trealpath(p: string): string {\n\t\t\treturn path.native.normalize(p);\n\t\t}\n\t};\n}\n\n/**\n * Gets a ScriptKind from the given path\n */\nconst getScriptKindFromPath = (p: string, typescript: typeof TS): TS.ScriptKind => {\n\tif (p.endsWith(\".js\")) {\n\t\treturn typescript.ScriptKind.JS;\n\t} else if (p.endsWith(\".ts\") || p.endsWith(\".mts\") || p.endsWith(\".cts\")) {\n\t\treturn typescript.ScriptKind.TS;\n\t} else if (p.endsWith(\".tsx\")) {\n\t\treturn typescript.ScriptKind.TSX;\n\t} else if (p.endsWith(\".jsx\")) {\n\t\treturn typescript.ScriptKind.JSX;\n\t} else if (p.endsWith(\".json\")) {\n\t\treturn typescript.ScriptKind.JSON;\n\t} else {\n\t\treturn typescript.ScriptKind.Unknown;\n\t}\n};\n","export const TEMPORARY_SUBFOLDER_NAME = \"__$$temporary_subfolder$$__\";\n","import {TransformTaskOptions} from \"../../../shared/task/transform-task-options.js\";\nimport {inspect} from \"util\";\nimport fastGlob from \"fast-glob\";\nimport {TS} from \"../../../type/ts.js\";\nimport {cjsToEsm} from \"../../../transformer/cjs-to-esm.js\";\nimport {createCompilerHost} from \"../../../shared/compiler-host/create-compiler-host.js\";\nimport {TransformResult} from \"../../../shared/task/transform-result.js\";\nimport color from \"ansi-colors\";\nimport {ensureArray, getFolderClosestToRoot, normalizeGlob} from \"../../../shared/util/util.js\";\nimport path from \"crosspath\";\nimport {TEMPORARY_SUBFOLDER_NAME} from \"../../../shared/constant.js\";\n\n/**\n * Executes the 'generate' task\n */\nexport async function transformTask(options: TransformTaskOptions): Promise<TransformResult> {\n\tlet {logger, input, cwd, outDir, fileSystem, write, typescript, debug, preserveModuleSpecifiers, importAssertions, hooks} = options;\n\n\tlogger.debug(\n\t\t\"Options:\",\n\t\tinspect(\n\t\t\t{input, outDir, cwd, write, debug, preserveModuleSpecifiers, importAssertions},\n\t\t\t{\n\t\t\t\tcolors: true,\n\t\t\t\tdepth: Infinity,\n\t\t\t\tmaxArrayLength: Infinity\n\t\t\t}\n\t\t)\n\t);\n\n\t// Match files based on the glob(s)\n\tconst matchedFiles = new Set(\n\t\tensureArray(input).flatMap(glob =>\n\t\t\tfastGlob.sync(normalizeGlob(path.normalize(glob)), {fs: fileSystem}).map(file => (path.isAbsolute(file) ? path.normalize(file) : path.join(cwd, file)))\n\t\t)\n\t);\n\n\tlogger.debug(`Matched files:`, matchedFiles.size < 1 ? \"(none)\" : [...matchedFiles].map(f => `\"${path.native.normalize(f)}\"`).join(\", \"));\n\n\t// Prepare the result object\n\tconst result: TransformResult = {\n\t\tfiles: []\n\t};\n\n\tif (matchedFiles.size < 1) {\n\t\treturn result;\n\t}\n\n\tconst closestFolderToRoot = getFolderClosestToRoot(cwd, matchedFiles);\n\n\t// We're going to need an outDir no matter what.\n\t// If none is given, get the folder closest to the root based on the matched files and use that one.\n\tif (outDir == null) {\n\t\toutDir = path.join(closestFolderToRoot, TEMPORARY_SUBFOLDER_NAME);\n\t}\n\n\t// Prepare CompilerOptions\n\tconst compilerOptions: TS.CompilerOptions = {\n\t\ttarget: typescript.ScriptTarget.ESNext,\n\t\tallowJs: true,\n\t\tdeclaration: false,\n\t\toutDir,\n\t\tsourceMap: false,\n\t\tnewLine: typescript.sys.newLine === \"\\n\" ? typescript.NewLineKind.LineFeed : typescript.NewLineKind.CarriageReturnLineFeed,\n\t\trootDir: closestFolderToRoot,\n\t\tmoduleResolution: typescript.ModuleResolutionKind.NodeJs\n\t};\n\n\t// Create a TypeScript program based on the glob\n\tconst program = typescript.createProgram({\n\t\trootNames: [...matchedFiles],\n\t\toptions: compilerOptions,\n\t\thost: createCompilerHost({\n\t\t\tcwd,\n\t\t\tfileSystem,\n\t\t\ttypescript\n\t\t})\n\t});\n\n\tprogram.emit(\n\t\tundefined,\n\t\t(fileName, text) => {\n\t\t\tconst newFilename = path.normalize(fileName).replace(`/${TEMPORARY_SUBFOLDER_NAME}`, ``);\n\t\t\tconst nativeNormalizedFileName = path.native.normalize(newFilename);\n\n\t\t\t// If a hook was provided, call it\n\t\t\tif (hooks.writeFile != null) {\n\t\t\t\tconst hookResult = hooks.writeFile(nativeNormalizedFileName, text);\n\t\t\t\t// If it returned a new value, reassign it to `text`\n\t\t\t\tif (hookResult != null) {\n\t\t\t\t\ttext = hookResult;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tresult.files.push({fileName: nativeNormalizedFileName, text});\n\n\t\t\t// Only write files to disk if requested\n\t\t\tif (write) {\n\t\t\t\tfileSystem.mkdirSync(path.native.dirname(nativeNormalizedFileName), {recursive: true});\n\t\t\t\tfileSystem.writeFileSync(nativeNormalizedFileName, text);\n\t\t\t}\n\t\t\tlogger.info(`${color.green(\"✔\")} ${path.native.relative(cwd, nativeNormalizedFileName)}`);\n\t\t},\n\t\tundefined,\n\t\tfalse,\n\t\tcjsToEsm(options)\n\t);\n\treturn result;\n}\n","import {realFileSystem} from \"../file-system/file-system.js\";\nimport {TransformTaskOptions} from \"./transform-task-options.js\";\nimport {createTaskOptions} from \"./create-task-options.js\";\nimport path from \"crosspath\";\nimport {ensureArray} from \"../util/util.js\";\nimport {PartialExcept} from \"helpertypes\";\n\nexport function createTransformTaskOptions({\n\tfileSystem = realFileSystem,\n\twrite = true,\n\tinput,\n\thooks = {},\n\toutDir,\n\t...rest\n}: PartialExcept<TransformTaskOptions, \"input\" | \"outDir\">): TransformTaskOptions {\n\tif (input == null) {\n\t\tthrow new ReferenceError(`Missing required argument: 'input'`);\n\t}\n\n\tconst taskOptions = createTaskOptions(rest);\n\treturn {\n\t\t...taskOptions,\n\t\twrite,\n\t\tfileSystem,\n\t\thooks,\n\t\tinput: ensureArray(input).map(file => path.normalize(path.isAbsolute(file) ? file : path.join(taskOptions.cwd, file))),\n\t\toutDir: outDir == null ? undefined : path.normalize(path.isAbsolute(outDir) ? outDir : path.join(taskOptions.cwd, outDir))\n\t};\n}\n","import {transformTask} from \"../cli/task/transform/transform-task.js\";\nimport {createTransformTaskOptions} from \"../shared/task/create-transform-task-options.js\";\nimport {TransformTaskOptions} from \"../shared/task/transform-task-options.js\";\nimport {TransformResult} from \"../shared/task/transform-result.js\";\nimport {PartialExcept} from \"helpertypes\";\n\nexport async function transform(options: PartialExcept<TransformTaskOptions, \"input\" | \"outDir\">): Promise<TransformResult> {\n\treturn transformTask(createTransformTaskOptions(options));\n}\n"],"names":["normalize","path","resolve","camelCase","check","fs","color","ts","ensureNodeFactory","inspect","fastGlob"],"mappings":"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"}