{"version":3,"file":"index.cjs","sources":["../../src/shared/constant/constant.ts","../../src/shared/util/util.ts","../../src/cli/task/transform/transform-task.ts","../../src/shared/file-system/file-system.ts","../../src/shared/logger/logger.ts","../../src/shared/task/create-task-options.ts","../../src/shared/task/create-transform-task-options.ts","../../src/api/transform.ts"],"sourcesContent":["export const RELEVANT_EXTENSIONS = [\r\n    \".js\",\r\n    \".js.map\",\r\n    \".cjs.d.ts\",\r\n    \".cjs.d.ts.map\",\r\n    \".d.ts\",\r\n    \".d.ts.map\"\r\n];\r\n\r\n","import path from \"crosspath\";\nimport {RELEVANT_EXTENSIONS} from \"../constant/constant.js\";\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\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 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\nexport function fileHasRelevantExtension(filename: string): boolean {\n\treturn RELEVANT_EXTENSIONS.some(ext => filename.endsWith(ext));\n}\n\nexport function getUpdatedExtension(filename: string): string {\n\tif (filename.endsWith(`.cjs.d.ts`)) {\n\t\treturn filename.replace(`.cjs.d.ts`, `.d.cts`);\n\t} else if (filename.endsWith(`.cjs.d.ts.map`)) {\n\t\treturn filename.replace(`.cjs.d.ts.map`, `.d.cts.map`);\n\t} else if (filename.endsWith(`.d.ts`)) {\n\t\treturn filename.replace(`.d.ts`, `.d.cts`);\n\t} else if (filename.endsWith(`.d.ts.map`)) {\n\t\treturn filename.replace(`.d.ts.map`, `.d.cts.map`);\n\t} else if (filename.endsWith(`.js.map`)) {\n\t\treturn filename.replace(`.js.map`, `.cjs.map`);\n\t} else if (filename.endsWith(`.js`)) {\n\t\treturn filename.replace(`.js`, `.cjs`);\n\t} else {\n\t\treturn filename;\n\t}\n}\n","import {TransformTaskOptions} from \"../../../shared/task/transform-task-options.js\";\nimport {inspect} from \"util\";\nimport fastGlob from \"fast-glob\";\nimport {TransformResult} from \"../../../shared/task/transform-result.js\";\nimport {ensureArray, fileHasRelevantExtension, getUpdatedExtension, normalizeGlob, rewriteFilenamePath} from \"../../../shared/util/util.js\";\nimport path from \"crosspath\";\nimport color from \"ansi-colors\";\n/**\n * Executes the 'generate' task\n */\nexport async function transformTask(options: TransformTaskOptions): Promise<TransformResult> {\n\tconst {logger, input, cwd, outDir, fileSystem, write, debug, hooks} = options;\n\n\tlogger.debug(\n\t\t\"Options:\",\n\t\tinspect(\n\t\t\t{input, outDir, cwd, write, debug},\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)\n\t\t\t.flatMap(glob => fastGlob.sync(normalizeGlob(path.normalize(glob)), {fs: fileSystem}).map(file => (path.isAbsolute(file) ? path.normalize(file) : path.join(cwd, file))))\n\t\t\t.filter(fileHasRelevantExtension)\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\tfor (const filename of matchedFiles) {\n\t\tconst nativeNormalizedFileName = path.native.normalize(filename);\n\t\tconst text = fileSystem.readFileSync(nativeNormalizedFileName, \"utf8\");\n\n\t\tlet newFilename = rewriteFilenamePath(cwd, getUpdatedExtension(filename), outDir);\n\n\t\t// If a hook was provided, call it\n\t\tif (hooks.writeFile != null) {\n\t\t\tconst hookResult = hooks.writeFile(newFilename, filename, text);\n\t\t\tif (hookResult != null) {\n\t\t\t\tnewFilename = hookResult;\n\t\t\t}\n\t\t}\n\n\t\tresult.files.push({filename: newFilename, oldFilename: filename, text});\n\n\t\t// Only write files to disk if requested\n\t\tif (write) {\n\t\t\tif (path.dirname(newFilename) === path.dirname(filename)) {\n\t\t\t\tfileSystem.renameSync(path.native.normalize(filename), path.native.normalize(newFilename));\n\t\t\t} else {\n\t\t\t\tfileSystem.mkdirSync(path.native.dirname(newFilename), {recursive: true});\n\t\t\t\tfileSystem.copyFileSync(path.native.normalize(filename), path.native.normalize(newFilename));\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t}\n\t\tlogger.info(`${color.green(\"✔\")} ${path.native.relative(cwd, path.native.normalize(newFilename))}`);\n\t}\n\n\treturn result;\n}\n","import * as 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, \"mkdirSync\" | \"renameSync\" | \"copyFileSync\">;\nexport type SafeFileSystem = SafeReadonlyFileSystem & Pick<typeof fs, \"mkdirSync\" | \"renameSync\" | \"copyFileSync\">;\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\tcopyFileSync: fs.copyFileSync,\n\trenameSync: fs.renameSync\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/**\n\t * Logs info-related messages\n\t */\n\t info(...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\";\n\nexport function createTaskOptions({\n\tfileSystem = realReadonlyFileSystem,\n\tdebug = false,\n\tcwd = process.cwd(),\n\tlogger = new Logger(debug !== false ? LogLevelKind.DEBUG : LogLevelKind.NONE)\n}: Partial<TaskOptions> = {}): TaskOptions {\n\treturn {\n\t\tfileSystem,\n\t\tdebug,\n\t\tcwd,\n\t\tlogger\n\t};\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":["path","inspect","fastGlob","color","fs"],"mappings":"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"}